Embodiments of the present invention relate to methods and systems for estimating a pixel prediction mode to be used in a video encoding or decoding process.
|
1. A method for determining an estimated pixel intra-prediction mode, said method comprising:
a) ordering a set of prediction modes in an order;
b) selecting a target block for prediction mode estimation;
c) determining a first prediction mode that has been used for encoding a first adjacent block, said first adjacent block being adjacent to said target block;
d) determining a second prediction mode that has been used for encoding a second adjacent block, said second adjacent block being adjacent to said target block;
e) selecting one of said first prediction mode and said second prediction mode as an estimated prediction mode, said selecting being based on the relative positions of said first and second prediction modes in said order; and
f) calculating an actual prediction mode based on target block content analysis and comparing said actual prediction mode to said estimated prediction mode.
9. A computer-readable medium comprising computer-executable instructions for estimating a pixel prediction mode, said instructions comprising the acts of:
a) ordering a set of prediction modes in an order based on a likelihood of producing a lesser prediction error;
b) selecting a target block for prediction mode estimation;
c) determining a first prediction mode that has been used for encoding a first adjacent block, said first adjacent block being adjacent to said target block;
d) determining a second prediction mode that has been used for encoding a second adjacent block, said second adjacent block being adjacent to said target block;
e) selecting one of said first prediction mode and said second prediction mode as an estimated prediction mode based on the relative positions of said first and second prediction modes in said order; and
f) calculating an actual prediction mode based on target block content analysis and comparing said actual prediction mode to said estimated prediction mode.
8. An apparatus for estimating a pixel prediction mode, said apparatus comprising:
a) a plurality of prediction modes arranged in an order based on a likelihood of producing a lesser prediction error;
b) a selector for selecting a target block for prediction mode estimation;
c) a first determiner for determining a first prediction mode that has been used to decode a first adjacent block, said first adjacent block being adjacent to said target block;
d) a second determiner for determining a second prediction mode that has been used to decode a second adjacent block, said second adjacent block being adjacent to said target block;
e) a selector for selecting an estimated prediction mode for said target block from among said first prediction mode and said second prediction mode based on the locations of said first and second prediction modes in said order; and
f) a calculator for calculating an actual prediction mode based on target block content analysis and comparing said actual prediction mode to said estimated prediction mode.
7. A method for determining a pixel intra-prediction mode, said method comprising:
a) selecting a target block for prediction mode estimation;
b) receiving an actual prediction mode indicator, wherein said actual prediction mode is based on target block content analysis;
c) when said indicator indicates that an estimated prediction mode shall be used:
i) determining a first prediction mode that has been used for encoding a first adjacent block, said first adjacent block being adjacent to said target block;
ii) determining a second prediction mode that has been used for encoding a second adjacent block, said second adjacent block being adjacent to said target block;
iii) determining an estimated prediction mode among said first prediction mode and said second prediction mode, wherein said estimated prediction mode is the prediction mode that is least likely to produce a lesser prediction error; and
iv) using said estimated prediction mode to decode said target block;
d) when said indicator indicates that said estimated prediction mode shall not be used:
i) receiving a mode numerical value indicating a prediction mode to be used; and
ii) using the prediction mode associated with said mode numerical value to decode said target block.
4. A method for determining an estimated pixel intra-prediction mode to be used for efficient prediction mode communication between an encoder and a decoder, said method comprising:
a) ordering a set of potential prediction modes in an order of decreasing likelihood of producing a lesser prediction error by associating a sequential numerical value with each prediction mode such that the lowest numerical value is associated with the prediction mode most likely to produce a lesser prediction error and the prediction mode that is least likely to produce a lesser prediction error is associated with the highest numerical value in the sequence;
b) selecting a target block for prediction mode estimation;
c) receiving a first prediction mode that has been used for encoding a first adjacent block, said first adjacent block being adjacent to said target block;
d) receiving a second prediction mode that has been used for encoding a second adjacent block, said second adjacent block being adjacent to said target block;
determining an estimated prediction mode among said first prediction mode and said second prediction mode, wherein said estimated prediction mode is the prediction mode associated with the lesser value; and
calculating an actual prediction mode based on target block content analysis and comparing said actual prediction mode to said estimated prediction mode.
0. 13. A method for selecting a numbered prediction mode for effective estimation of an estimated pixel intra-prediction mode, said method comprising:
giving ascending mode numbers to prediction modes in the order of a vertical prediction mode, a horizontal prediction mode, and a dc prediction mode, wherein
the vertical prediction mode takes a pixel value of a block adjacent to an upper side of a block to be encoded as a prediction value,
the horizontal prediction mode takes a pixel value of a block adjacent to a left side of the block to be encoded as a prediction value, and
the dc prediction mode takes an average value of the pixel value of the block adjacent to the upper side of the block to be encoded and the pixel value of the block adjacent to the left side of the block to be encoded as a prediction value;
identifying a target block for prediction mode estimation;
identifying a mode number of a first prediction mode that has actually been used for encoding a first adjacent block, said first adjacent block being adjacent to an upper side of said target block;
identifying a mode number of a second prediction mode that has actually been used for encoding a second adjacent block, said second adjacent block being adjacent to a left side of said target block; and
selecting a prediction mode having the smaller mode number between the first prediction mode and the second prediction mode as the estimated prediction mode of the target block.
0. 17. A computer-readable medium comprising computer-executable instructions for selecting a numbered prediction mode for effective estimation of a pixel prediction mode, said instructions comprising the acts of:
assigning ascending mode numbers to prediction modes in the order of a vertical prediction mode, a horizontal prediction mode, and a dc prediction mode, wherein
the vertical prediction mode takes a pixel value of a block adjacent to an upper side of a block to be encoded as a prediction value,
the horizontal prediction mode takes a pixel value of a block adjacent to a left side of the block to be encoded as a prediction value, and
the dc prediction mode takes an average value of the pixel value of the block adjacent to the upper side of the block to be encoded and the pixel value of the block adjacent to the left side of the block to be encoded as a prediction value;
identifying a target block for prediction mode estimation;
identifying a first prediction mode that has actually been used for encoding a first adjacent block, said first adjacent block being adjacent to an upper side of said target block;
identifying a second prediction mode that has actually been used for encoding a second adjacent block, said second adjacent block being adjacent to a left side of said target block; and
selecting a prediction mode having the smaller mode number between the first prediction mode and the second prediction mode as an estimated prediction mode of the target block.
0. 16. An apparatus for selecting a numbered prediction mode for effective estimation of a pixel prediction mode, said apparatus comprising:
a) an assignor for assigning ascending mode numbers to prediction modes in the order of a vertical prediction mode, a horizontal prediction mode, and a dc prediction mode, wherein
the vertical prediction mode takes a pixel value of a block adjacent to an upper side of a block to be encoded as a prediction value,
the horizontal prediction mode takes a pixel value of a block adjacent to a left side of the block to be encoded as a prediction value, and
the dc prediction mode takes an average value of the pixel value of the block adjacent to the upper side of the block to be encoded and the pixel value of the block adjacent to the left side of the block to be encoded as a prediction value;
b) a first identifier for identifying a target block for prediction mode estimation;
c) a second identifier for identifying a first prediction mode that has actually been used to decode a first adjacent block, said first adjacent block being adjacent to an upper side of said target block;
d) a third identifier for identifying a second prediction mode that has actually been used to decode a second adjacent block, said second adjacent block being adjacent to a left side of said target block; and
e) a selector for selecting a prediction mode having the smaller mode number between the first prediction mode and the second prediction mode as an estimated prediction mode of the target block.
0. 14. A method for selecting a numbered prediction mode for effective estimation of an estimated pixel intra-prediction mode to be used for efficient prediction mode communication between an encoder and a decoder, said method comprising:
giving ascending mode numbers to prediction modes in the order of a vertical prediction mode, a horizontal prediction mode, and a dc prediction mode, wherein
the vertical prediction mode takes a pixel value of a block adjacent to an upper side of a block to be encoded as a prediction value,
the horizontal prediction mode takes a pixel value of a block adjacent to a left side of the block to be encoded as a prediction value, and
the dc prediction mode takes an average value of the pixel value of the block adjacent to the upper side of the block to be encoded and the pixel value of the block adjacent to the left side of the block to be encoded as a prediction value;
identifying a target block for prediction mode estimation;
receiving a mode number of a first prediction mode that has actually been used for encoding a first adjacent block, said first adjacent block being adjacent to an upper side of said target block;
receiving a mode number of a second prediction mode that has actually been used for encoding a second adjacent block, said second adjacent block being adjacent to a left side of said target block; and
selecting a prediction mode having the smaller mode number between the first prediction mode and the second prediction mode as an estimated prediction mode of the target block.
0. 15. A method for selecting a numbered prediction mode for effective estimation of a pixel intra-prediction mode, said method comprising:
a) giving ascending mode numbers to prediction modes in the order of a vertical prediction mode, a horizontal prediction mode, and a dc prediction mode, wherein
the vertical prediction mode takes a pixel value of a block adjacent to an upper side of a block to be encoded as a prediction value,
the horizontal prediction mode takes a pixel value of a block adjacent to a left side of the block to be encoded as a prediction value, and
the dc prediction mode takes an average value of the pixel value of the block adjacent to the upper side of the block to be encoded and the pixel value of the block adjacent to the left side of the block to be encoded as a prediction value;
b) identifying a target block for prediction mode estimation;
c) receiving a prediction mode indicator indicating whether or not an estimated prediction mode shall be used to decode the target block;
d) when said indicator indicates that an estimated prediction mode shall be used:
i) identifying a mode number of a first prediction mode that has actually been used for encoding a first adjacent block, said first adjacent block being adjacent to an upper side of said target block;
ii) identifying a mode number of a second prediction mode that has actually been used for encoding a second adjacent block, said second adjacent block being adjacent to a left side of said target block;
iii) selecting a prediction mode having the smaller mode number between the first prediction mode and the second prediction mode as an estimated prediction mode of the target block; and
iv) using said estimated prediction mode to decode said target block;
e) when said indicator indicates that said estimated prediction mode shall not be used:
i) receiving a mode information indicating a prediction mode to be used; and
ii) using the prediction mode indicated by said mode information to decode said target block.
2. A method as described in
3. A method as described in
5. A method as described in
6. A method as described in
a) one mode taken from a first subset consisting of a horizontal prediction mode and a vertical prediction mode;
b) the other mode of said first subset; and
c) a dc prediction mode.
10. A method as described in
11. A method as described in
12. A method as described in
|
This application claims the benefits of U.S. patent application Ser. No. 60/319,272 filed May 28, 2002 and U.S. patent application Ser. No. 60/319,390 filed Jul. 11, 2002.
Embodiments of the present invention relate to intra-prediction for an image.
Digital video requires a large amount of data to represent each and every frame of a digital video sequence (e.g., series of frames) in an uncompressed manner. It is not feasible for most applications to transmit uncompressed digital video across computer networks because of bandwidth limitations. In addition, uncompressed digital video requires a large amount of storage space. The digital video is normally encoded in some manner to reduce the storage requirements and reduce the bandwidth requirements.
One technique for encoding digital video is interframe encoding. Interframe encoding exploits the fact that different frames of video typically include regions of pixels, normally selected as x by x blocks, that remain substantially the same. During the encoding process a motion vector interrelates the movement of a block of pixels in one frame to a block of similar pixels in another frame. Accordingly, the system is not required to encode the block of pixels twice, but rather encodes the block of pixels once and provides a motion vector to predict the other block of pixels.
Another technique for encoding digital video is intraframe encoding. Intraframe encoding encodes a frame or a portion thereof without reference to pixels in other frames. Typically intraframe encoding encodes the frame, or portions thereof, on a block by block basis. For example, in MEPG-2 the intraframe encoding makes use of discrete cosine transforms of a block of pixels and subsequent encoding of the transformed coefficients. Other intraframe encoding techniques exist, such as for example, wavelet encoding.
In general, these techniques employ relatively large data tables for referencing prediction modes. Memory for these data tables can be burdensomely expensive for many low cost machines. Moreover, it is also burdensomely expensive to provide sufficient memory within processing devices to store the data table. Also, the resulting system has increased complexity with the large data table.
The following drawings depict only typical embodiments of the present invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Embodiments of the present invention comprise methods and systems related to intra-prediction of images. As all embodiments are related to intra-prediction, the terms “intra-prediction” and “prediction” may be used interchangeably to refer to intra-prediction processes.
Embodiments of the present invention use intraframe coding or intracoding to exploit spatial redundancies within a video image. Because adjacent blocks generally have similar attributes, the efficiency of the coding process is improved by referencing the spatial correlation between adjacent blocks. This correlation may be exploited by prediction of a target block based on prediction modes used in adjacent blocks.
A digital image may be divided into blocks for more efficient processing or for other reasons. As illustrated in
Blocks may comprise various numbers of pixels in different configurations. For example, a block may comprise a 4×4 array of pixels. A block may also comprise a 16×16 array of pixels or an 8×8 array. Other pixel configurations, including both square and rectangular arrays may also make up a block.
Each pixel in a target block may be predicted with reference to data regarding pixels in adjacent blocks. This adjacent pixel data or adjacent block data comprises the prediction modes used to predict those adjacent blocks or adjacent pixels. Specific adjacent pixels and pixels within a target block may be referenced using an alphanumeric index as illustrated in
Prediction modes may comprise instructions or algorithms for predicting specific pixels in a target block. These modes may refer to one or more adjacent block pixels as described in the following mode descriptions.
Prediction Modes
If all samples A, B, C, D, I, J, K, L, are available, all samples may be predicted by (A+B+C+D+I+J+K+L+4)>>3. If A, B, C, and D are not available and I, J, K, and L are available, all samples may be predicted by (I+J+K+L+2)>>2. If I, J, K, and L are not available and A, B, C, and D are available, all samples may be predicted by (A+B+C+D+2)>>2. If all eight samples are not available, the prediction for all lama samples in the block may be 128. A block may be always predicted in this mode.
Mode 3: diagonal down/left prediction
a may be predicted by
(A + 2B + C + I + 2J + K + 4) >> 3
b, e may be predicted by
(B + 2C + D + J + 2K + L + 4) >> 3
c, f, i may be predicted by
(C + 2D + E + K + 2L + M + 4) >> 3
d, g, j, m may be predicted by
(D + 2E + F + L + 2M + N + 4) >> 3
h, k, n may be predicted by
(E + 2F + G + M + 2N + O + 4) >> 3
l, o may be predicted by
(F + 2G + H + N + 2O + P + 4) >> 3
p may be predicted by
(G + H + O + P + 2) >> 2
Mode 4: diagonal down/right prediction
m may be predicted by
(J + 2K + L + 3) >> 2
i, n may be predicted by
(I + 2J + K + 2) >> 2
e, j, o may be predicted by
(Q + 2I + J + 2) >> 2
a, f, k, p may be predicted by
(A + 2Q + I + 2) >> 2
b, g, l may be predicted by
(Q + 2A + B + 2) >> 2
c, h may be predicted by
(A + 2B + C + 2) >> 2
d may be predicted by
(B + 2C + D + 2) >> 2
Mode 5: vertical-left prediction
a, j may be predicted by
(Q + A + 1) >> 1
b, k, may be predicted by
(A + B + 1) >> 1
c, l may be predicted by
(B + C + 1) >> 1
d may be predicted by
(C + D + 1) >> 1
e, n may be predicted by
(I + 2Q + A + 2) >> 2
f, o may be predicted by
(Q + 2A + B + 2) >> 2
g, p may be predicted by
(A + 2B + C + 2) >> 2
h may be predicted by
(B + 2C + D + 2) >> 2
i may be predicted by
(Q + 2I + J + 2) >> 2
m may be predicted by
(I + 2J + K + 2) >> 2
Mode 6: horizontal-down prediction
a, g may be predicted by
(Q + I + 1) >> 1
b, h may be predicted by
(I + 2Q + A + 2) >> 2
c may be predicted by
(Q + 2A + B + 2) >> 2
d may be predicted by
(A + 2B + C + 2) >> 2
e, k may be predicted by
(I + J + 1) >> 1
f, l may be predicted by
(Q + 2I + J + 2) >> 2
i, o may be predicted by
(J + K + 1) >> 1
j, p may be predicted by
(I + 2J + K + 2) >> 2
m may be predicted by
(K + L + 1) >> 1
n may be predicted by
(J + 2K + L + 2) >> 2
Mode 7: vertical-right prediction
a may be predicted by
(2A + 2B + J + 2K + L + 4) >> 3
b, i may be predicted by
(B + C + 1) >> 1
c, j may be predicted by
(C + D + 1) >> 1
d, k may be predicted by
(D + E + 1) >> 1
l may be predicted by
(E + F + 1) >> 1
e may be predicted by
(A + 2B + C + K + 2L + M + 4) >> 3
f, m may be predicted by
(B + 2C + D + 2) >> 2
g, n may be predicted by
(C + 2D + E + 2) >> 2
h, o may be predicted by
(D + 2E + F + 2) >> 2
p may be predicted by
(E + 2F + G + 2) >> 2
Mode 8: horizontal-up prediction
a may be predicted by
(B + 2C + D + 2I + 2J + 4) >> 3
b may be predicted by
(C + 2D + E + I + 2J + K + 4) >> 3
c, e may be predicted by
(J + K + 1) >> 1
d, f may be predicted by
(J + 2K + L + 2) >> 2
g, i may be predicted by
(K + L + 1) >> 1
h, j may be predicted by
(K + 2L + M + 2) >> 2
l, n may be predicted by
(L + 2M + N + 2) >> 2
k, m may be predicted by
(L + M + 1) >> 1
o may be predicted by
(M + N + 1) >> 1
p may be predicted by
(M + 2N + O + 2) >> 2
The ordering process, which is based upon the likelihood of producing a lesser prediction error for each of the modes, increases the coding efficiently, reduces the memory requirements, and may be at least partially mathematically defined.
Each prediction mode may be described by a general direction of prediction as described verbally in each of the mode titles above (i.e., horizontal up, vertical and diagonal down left). A prediction mode may also be described graphically by an angular direction. This angular direction may be expressed through a diagram with arrows radiating outward from a center point as shown in
An arrow extending from the center point diagonally upward to the right at approximately a 22.5 degree angle from horizontal 42 may represent a Horizontal Up (HU) prediction mode. An arrow extending from the center point diagonally downward to the right at approximately a 22.5 degree angle from horizontal 44 may represent a Horizontal Down (HD) prediction mode. An arrow extending from the center point diagonally downward to the right at approximately a 67.5 degree angle from horizontal 46 may represent a Vertical Right (VR) prediction mode. An arrow extending from the center point diagonally downward to the left at approximately a 67.5 degree angle from horizontal 48 may represent a Vertical Left (VL) prediction mode. The HU, HD, VR and VL prediction modes may be referred to collectively as intermediate angle prediction modes.
Many other prediction modes may be created and described using this angular description scheme.
Prediction Mode Order
The present inventors have determined that prediction modes may be ordered in a manner generally consistent with their likelihood of producing a reduced prediction error. With the prediction modes ordered according to their general likelihood of producing a lesser prediction error, the resulting data itself may have a greater tendency to be more consistently ordered. Furthermore, communication of modes may take advantage of coding techniques that reduce memory and bandwidth requirements. For example, the present inventors determined that the horizontal prediction mode and the vertical prediction mode are generally more likely than diagonal prediction modes, which are generally more likely than intermediate angle prediction modes. In addition, a DC prediction mode (e.g., when an adjacent block is coded in inter mode) is generally less likely than horizontal and vertical prediction modes and generally more likely than diagonal prediction modes.
For blocks that do not border discontinuities such as image edges or swipe/swath boundaries, the order established in some embodiments of the present invention may be expressed, in general terms, as follows: vertical and horizontal prediction modes are more likely to produce a reduced prediction error than a DC prediction mode and that a DC prediction mode is more likely to produce a reduced prediction error than diagonal prediction modes and that diagonal prediction modes are more likely to produce a reduced prediction error than intermediate angle prediction modes.
For blocks near edges or boundaries or where adjacent block or pixel prediction mode data is not available, the order established in some embodiments of the present invention may be expressed, in general terms, as follows: DC prediction mode is more likely to produce a reduced prediction error than vertical and horizontal prediction modes and vertical and horizontal prediction modes are more likely to produce a reduced prediction error than diagonal prediction modes and that diagonal prediction modes are more likely to produce a reduced prediction error than intermediate angle prediction modes.
In a first set of embodiments as illustrated in
In a second set of embodiments, as illustrated in
In a third set of embodiments, as illustrate in
In a fourth set of embodiments, as illustrated in
In a fifth set of embodiments, as illustrated in
It should be noted that the mode order may vary beyond these exemplary orders in various other embodiments of the present invention.
In some embodiments of the present invention, the horizontal prediction (mode 0) and the vertical prediction (mode 1) may be reversed, if desired. Also, it is to be understood that the diagonal down/left prediction mode and the horizontal down prediction mode may be reversed, if desired. In addition, it is to be understood the diagonal down/right prediction (mode 5), the vertical right prediction (mode 6), the vertical left prediction (mode 7), and the horizontal up prediction (mode 8) may be reordered, if desired. Further, it is desirable that the DC prediction is between the mode 0/mode 1 set and the mode 3/mode 4 set, but may be located between mode 3/mode 4 set and mode 5/mode 6/mode 7/mode 8 set, if desired, or any other location. Moreover, the angled modes 3-8 may be renumbered as desired without significant impact on the encoding efficiency.
In some embodiments of the present invention, the prediction modes may be reordered for all of the respective blocks (e.g., those blocks using the described prediction scheme) using such a prediction basis. In addition, less than all of the respective blocks (e.g., those blocks using the described prediction scheme) may use such a prediction basis, for example, more than 50%, 75% or 90%, if desired. Also, the order of the prediction modes may be the same or varied for different blocks. Further, the reordering of each of the modes of such a prediction basis (e.g., in a predetermined consistent manner) is preferably at least 5 modes, 6 modes, or 7 modes, with the remaining being ordered in any other manner. In addition, the order of the prediction modes is preferably 0, 1, 2, 3, 4, 5, 6, 7, 8. Other predefined ordering of the prediction modes may likewise be employed.
Some embodiments of the present invention may comprise one or more data tables for organization of mode data. With the modes being generally arranged in an ordered manner, this may be used together with each cell in a data table, to provide a more ordered set. For example, each entry in the data table may include the ordered set of numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Alternatively, the ordered set of numbers in the data table may include 5, 6, 7, 8, or 9 sets of ordered numbers for each entry in the data table. For example, the data table entries may include the following sets of data entries {1, 2, 3, 5, 7}; {0, 1, 2, 3, 4, 5, 6}; {0, 1, 3, 5, 6, 7, 8}, where each of the numbers in the set are of increasing numerical value. Alternatively for example, the data table entries may include the following sets of data entries {1, 2, 3, 5, 7}; {0, 1, 2, 3, 4, 5, 6}; {0, 1, 3, 5, 6, 7, 8}, where each set is included in at least 25%, or 35%, or 50%, or 75%, or 90%, or more, of the cells. In this manner, the table will have significantly more predictability than known data table methods, which decreases memory requirements.
The predetermined manner of the ordering of the sets of data entries should be independent of the prediction modes of adjoining sets of pixels (e.g. macroblocks). It is to be understood that the data table may be “static” in nature or may be effectively dynamically generated, in whole or in part, when needed based upon patterns in the data. Accordingly, a mathematical equation or an algorithm may be used to determine the entries, which in this case the “table” could be created by such a technique. Accordingly, a “data table” as used herein is not merely restricted to a static table, but further includes such a set of values, however determined, that are used for such prediction.
Unfortunately, the substitution of the previous mode numbers with the new mode numbers (e.g., a substitution of numbers into the cells of known data tables), while perhaps an improvement, still results in a generally unordered set of data.
Estimating a Pixel Prediction Mode Based on Adjacent Block Data
In contrast to the generally unordered set of data shown, even with substitutions, the present inventors came to the further realization that the most likely prediction mode should be ordered first, the second most likely prediction mode ordered second, if desired, followed by the remaining modes in a predetermined manner. The predetermined manner should be independent of the prediction modes of adjoining macroblocks. The preferred order of the remaining modes should be in a decreasing likelihood of occurrence of the remaining modes (most likely prediction mode, and if desired, second most likely prediction mode).
Based on the intra prediction modes of block A and block B, as shown in
(1) If both block A and block B are “outside” (e.g., not available), only DC prediction (mode 2) is permitted, therefore the intra prediction mode order for block C is {2}.
(2) If block A is “outside” (e.g., not available) and block B is not “outside”, only DC prediction (mode 2) and horizontal prediction (mode 0) are permitted for block C, therefore;
(3) If block A is not “outside” but block B is “outside”, only DC prediction (mode 2) and vertical prediction (mode 1) are permitted for block C, therefore
(4) If neither block A nor block B is “outside”,
For example, if the prediction mode of block A is 3 and the prediction mode of block B is 1, then intra prediction mode order for block C is {1, 3, 0, 2, 4, 5, 6, 7, 8}. With the modes arranged in a generally decreasing likelihood (or increasing) of occurrence, then the automatic arrangement of the remaining modes of occurrence will still be generally arranged in the proper sequence. The ordering of the sequence from higher to lower probability increases the likelihood of the proper prediction toward the front. With entropy encoding this decreases the resulting encoded bit stream. Other arrangements may likewise be used.
Conceptually the aforementioned selection scheme is based upon the principle that if the prediction of block A is X and the prediction of block B is Y, then it is likely the prediction of block C is X or Y. The prediction for X and/or Y is located at the start of the list and the remaining modes are sequentially listed thereafter.
Stated another way, when the prediction modes of A and B are known (including the case that A or B or both are outside the slice) the most probable mode of C is given, namely, the minimum of the modes used for blocks A and B. If one of the blocks A or B is “outside” the most probable mode is equal to prediction mode 2. The ordering of prediction modes assigned to blocks C is therefore the most probable mode followed by the remaining modes in the ascending order.
Embodiments of the present invention may be described with reference to
In other embodiments of the present invention, as illustrated in
In further embodiments of the present invention, as illustrated in
In still further embodiments, as illustrated in
Modification of Prediction Mode Order Based on Adjacent Block Data
In some embodiments of the present invention the prediction mode orders described above, which have been determined independently of the adjacent block data, may be modified with adjacent block data. Prediction mode estimates determined with reference to adjacent block data can be inserted into prediction mode orders to modify the orders to reflect the additional information obtained from adjacent block data.
In some of these embodiments, a prediction mode estimate, based on adjacent block data, can be inserted directly into a prediction mode order set. Typically, the prediction mode estimate will be inserted or prepended at the front of the prediction mode order at the position of the mode most likely to produce a reduced prediction error. However, in some embodiments the estimate may be inserted at different positions in the mode order.
In some embodiments of the present invention, as shown in
A prediction mode estimate is also determined 104, as described above. This estimate is determined using adjacent block data. Generally, the estimate is the prediction mode used in one or more adjacent blocks that is likely to yield a lesser prediction error. However, the estimate may be determined in other ways. When sufficient adjacent block prediction mode data is not available, such as at an image edge or a slice boundary, a prediction mode for the target block may be estimated based on the lack of one or more adjacent blocks or their prediction mode data. In many cases, a DC prediction mode will be estimated when adjacent block data is limited or unavailable.
In some embodiments, once the estimated prediction mode is estimated, the estimated prediction mode may be placed 106 into the mode order as the mode most likely to yield a lesser prediction error. In some embodiments, this will be the first mode in the order or the mode associated with the lowest numerical value.
In other embodiments, the estimated prediction mode may take precedence over the pre-selected mode order. In some of these embodiments, as illustrated in
If the estimated prediction mode is not the actual best prediction mode, the encoder may signal to the decoder that another mode may be used 120. This may be performed by reference to the pre-established mode order. The encoder may determine which mode in the mode order is most equivalent to the actual best prediction mode and signal the decoder to use that mode.
When an ordered set of prediction modes is used, the set order may be rearranged once further data is obtained. For example, an ordered set of prediction modes may be reordered when an estimated prediction mode is determined or when a best actual prediction mode is determined. In these cases, the modifying mode may be interjected into the ordered set, placed ahead of the ordered set or, in some cases, removed from the ordered set.
In some embodiments of the present invention, each mode in the mode order may be associated with a numerical value according to the order. In these embodiments, the numerical value associated with the mode to be used may be sent to the decoder to signal the decoder to use that prediction mode. In some of these embodiments, as illustrated in
The terms and expressions employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims that follow.
Sun, Shijun, Kerofsky, Louis Joseph
Patent | Priority | Assignee | Title |
10250887, | Jun 13 2011 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
10306234, | Sep 30 2010 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit |
10313689, | Jul 15 2010 | Sharp Kabushiki Kaisha | Decoding device, coding device, and method |
10368066, | May 28 2002 | Dolby Laboratories Licensing Corporation | Methods and systems for image intra-prediction mode management |
10484692, | Jun 13 2011 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
10715799, | May 28 2002 | Dolby Laboratories Licensing Corporation | Methods and systems for image intra-prediction mode management |
10887599, | Sep 30 2010 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit |
10887606, | Jun 13 2011 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
10931946, | Jan 12 2011 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method, and image decoding method for generating a prediction image |
11032557, | Jul 15 2010 | Sharp Kabushiki Kaisha | Decoding device, coding device, and method |
11206409, | Sep 30 2010 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit |
11405624, | Jul 15 2010 | Sharp Kabushiki Kaisha | Decoding device, coding device, and method |
11431989, | Jun 13 2011 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
11758155, | Jun 13 2011 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
11770550, | Dec 07 2010 | Electronics and Telecommunications Research Institute; UNIVERSITY-INDUSTRY COOPERATION GROUP OF KYUNG HEE UNIVERSITY | Method and device for simplifying the encoding and decoding of ultra-high definition images |
9756338, | Sep 30 2010 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit |
9774868, | May 28 2002 | Dolby Laboratories Licensing Corporation | Methods and systems for image intra-prediction mode management |
9860539, | Jun 13 2011 | SUN PATENT TRUST | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
9930331, | Jul 15 2010 | Sharp Kabushiki Kaisha | Decoding and encoding devices using intra-frame prediction based on prediction modes of neighbor regions |
Patent | Priority | Assignee | Title |
6345121, | Nov 07 1996 | Godo Kaisha IP Bridge 1 | Image encoding apparatus and an image decoding apparatus |
6668095, | Dec 03 1998 | Koninklijke Philips Electronics N.V. | Systems and methods for compressing and decompressing images |
6765964, | Dec 06 2000 | Intel Corporation | System and method for intracoding video data |
6907142, | Jan 21 2000 | Nokia Technologies Oy | Method for encoding images, and an image coder |
20020031276, | |||
20030081838, | |||
JP2000295627, | |||
JP5183758, | |||
JP8186823, | |||
WO33583, | |||
WO2054779, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 29 2009 | Sharp Kabushiki Kaisha | (assignment on the face of the patent) | / | |||
Sep 29 2015 | Sharp Kabushiki Kaisha | Dolby Laboratories Licensing Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036724 | /0111 |
Date | Maintenance Fee Events |
Apr 15 2015 | ASPN: Payor Number Assigned. |
Apr 23 2015 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 30 2019 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 07 2015 | 4 years fee payment window open |
Feb 07 2016 | 6 months grace period start (w surcharge) |
Aug 07 2016 | patent expiry (for year 4) |
Aug 07 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 07 2019 | 8 years fee payment window open |
Feb 07 2020 | 6 months grace period start (w surcharge) |
Aug 07 2020 | patent expiry (for year 8) |
Aug 07 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 07 2023 | 12 years fee payment window open |
Feb 07 2024 | 6 months grace period start (w surcharge) |
Aug 07 2024 | patent expiry (for year 12) |
Aug 07 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |