VIDEO DECODER WITH ENHANCED CABAC DECODING
20220377340 · 2022-11-24
Assignee
Inventors
Cpc classification
H04N19/91
ELECTRICITY
H04N19/15
ELECTRICITY
H04N19/70
ELECTRICITY
H04N19/46
ELECTRICITY
H04N19/13
ELECTRICITY
H04N19/86
ELECTRICITY
H04N19/159
ELECTRICITY
H04N19/463
ELECTRICITY
H04N19/44
ELECTRICITY
International classification
H04N19/13
ELECTRICITY
H04N19/15
ELECTRICITY
H04N19/159
ELECTRICITY
H04N19/44
ELECTRICITY
H04N19/46
ELECTRICITY
H04N19/70
ELECTRICITY
H04N19/86
ELECTRICITY
Abstract
A decoder receives a bitstream containing quantized coefficients representative of blocks of video representative of a plurality of pixels and decodes the bitstream using context adaptive binary arithmetic coding. The context adaptive binary arithmetic coding decodes the current syntax element using the first mode if the current syntax element is intra-coded and selecting between a first set of probable modes and a second set of probable modes, where the first set of probable modes are more likely than the second set of probable modes. The context adaptive binary arithmetic coding decodes the current syntax element using the second mode if the current syntax element is intra-coded and if selecting among one of the second set of probable modes.
Claims
1. An encoder for encoding a prediction mode of a current block, wherein the encoder comprises a regular coding engine and a bypass coding engine, the regular coding engine is configured for arithmetic coding using a context, the bypass coding engine is configured for arithmetic encoding with a bypass coding process, and wherein the encoder is configured to: derive the prediction mode of the current block; encode a first indicator using the regular coding engine; encode a second indicator using the bypass coding engine , wherein the prediction mode of the current block is in a set of most probable modes when a value of the first indicator is equal to a first value, wherein the set of most probable modes comprises one or more candidate prediction modes generated according to prediction modes of one or more adjacent blocks of the current block.
2. The encoder of claim 1, wherein the encoder is configured to: encode a third indicator using the bypass coding engine, wherein the prediction mode of the current block is not in a set of most probable modes when a value of the first indicator is equal to a second value, the second value is different from the first value.
3. The encoder of claim 1, wherein the first value is 1.
4. The encoder of claim 2, wherein the second value is 0.
5. A video encoding method for encoding a prediction mode of a current block, wherein the method comprises: deriving the prediction mode of the current block; encoding a first indicator using a regular coding engine; encoding a second indicator using a bypass coding engine, wherein the prediction mode of the current block is in a set of most probable modes, a value of the first indicator is equal to a first value in response to the prediction mode being in the set of most probably modes, and the set of most probable modes comprises one or more candidate prediction modes generated according to prediction modes of one or more adjacent blocks of the current block.
6. A video encoding method for encoding a prediction mode of a current block, wherein the method comprises: deriving the prediction mode of the current block; encoding a first indicator using a regular coding engine; encoding a third indicator using the bypass coding engine, wherein the prediction mode of the current block is not in a set of most probable modes, and a value of the first indicator is equal to a second value in response to the prediction mode of the current block not being in a set of most probable modes.
7. The method of claim 5, wherein the first value is 1.
8. The method of claim 6, wherein the second value is 0.
9. A computer program product, comprising computer executable instructions stored on a non-transitory computer-readable medium, wherein execution of the instructions by a processor causes the processor to: derive the prediction mode of the current block; encode a first indicator using a regular coding engine; encode a second indicator using a bypass coding engine, wherein the prediction mode of the current block is in a set of most probable modes when a value of the first indicator is equal to a first value, wherein the set of most probable modes comprises one or more candidate prediction modes generated according to prediction modes of one or more adjacent blocks of the current block.
10. The computer program product of claim 9, wherein execution of the instructions by a processor causes the processor to: encode a third indicator using the bypass coding engine, wherein the prediction mode of the current block is not in a set of most probable modes when a value of the first indicator is equal to a second value, the second value is different from the first value.
11. The computer program product of claim 9, wherein the first value is 1.
12. The computer program product of claim 10, wherein the second value is 0.
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
DETAILED DESCRIPTION
[0025] Referring to
[0026] Referring to
[0027] Referring to
[0028] The CABAC decodes the video based upon a complex set of potential encoding configurations. For example, the coding configurations may include motion compensated blocks and intra-prediction blocks. The encoding and decoding of motion compensated blocks of video tend to be relatively complicated and tend to generally benefit from the added complexity afforded by the CABAC regular coding engine. Part of the complexity, in addition to the decoding technique, is the storing of information on which the symbols depends and the need for updating the probability model mechanism each time a symbol is encoded and/or decoded. The encoding and decoding of intra predicted blocks of video tend to be relatively less complicated and tend to generally benefit to a lesser degree from the added complexity afforded by the CABAC regular coding engine. In this case, the bypass coding mode tends to reduce the need for additional storage, determining the context, and the updating of the probability model, without meaningfully impacting compression efficiency. In particular, some symbols in the bitstream are generally equally likely to contain bins with values of 0 or 1 after binarization. Moreover, at the same time such symbols do not result in meaningful compression benefits due to the context adaptation of the CABAC regular coding engine. It is speculated that this lack of meaningful compression benefits is likely due to rapid fluctuations in their probability distribution.
[0029] Referring to
[0030] Referring to
[0031] In one embodiment, the list of probable modes Mlist 656 generated by the function generate list of most probable modes using ƒ (Mleft, Mabove) 654 may include two lists of prediction modes (or otherwise combined in a single list), a first list including the “most probable modes” and a second list including the “not most probable modes”. From the bitstream the system may select MPM_FLAG bits 655, which indicate a suitability for using the regular decoding engine 657, and therefore a syntax element, such as MPM_FLAG 660, indicating whether the prediction mode for the current block is in the “most probable mode list” (typically signaled with a “1”) or is in the “not most probable mode list” (typically signaled with a “0”). A comparison 658 with the MPM_FLAG 660 for the current block may be used to determine whether the suitable prediction mode is in the “most probable mode list” 662 or in the “not most probable mode list” 664. In the event that the MPM_FLAG 660 for the current block indicates that the prediction mode is in the “most probable mode list” 662, and in the event that there exists only a single prediction mode in the “most probable mode list”, then that is a selected prediction mode 674 for the current block. The results of the selected prediction mode 674 is provide as a selected mode 675 as the output. In the event that the MPM_FLAG 660 for the current block indicates that the prediction mode is in the “most probable mode list” 662, and in the event that there exists only two prediction modes in a “most probable mode list” index, then a MPM_INDEX index 670 may be used to signal the selected prediction mode 674 to select between the two prediction modes and provide the selected mode 675 as an output. The MPM_INDEX index 670 may be determined by the system from the bitstream by selecting MPM_INDEX bits 671, which indicate a suitability for using the bypass decoding engine 673, and therefore provide the MPM_Index index 670. This process of selecting among the entries of the “most probable mode list” 662 may be expanded with additional bit allocation to MPM_INDEX index 670 to distinguish between additional different modes.
[0032] As noted, based upon the past bins in the bitstream, the CABAC may determine the probability that the current bin will be a “1” or a “0”. The selection between the “within the most probable list” and “not within the most probable list”, is a decision that has a meaningful impact on the coding efficiency of the CABAC, and accordingly having an updated probability is beneficial.
[0033] In the event that the MPM_FLAG 660 for the current block indicates that the prediction mode is in the “not most probable mode list” 664, and in the event that there exists only a single prediction mode in the “not most probable mode list” 664, then that is a selected prediction mode 680 for the current block. In the event that the MPM_FLAG 660 for the current block indicates that the prediction mode is in the “not most probable mode list” 664, and in the event that there exists only two prediction modes in a “not most probable mode list” index, then a REM_INTRA_PRED_MODE index 690 may be used to signal to the selected prediction mode 680 to select between the two prediction modes and provide the selected prediction mode 675 as an output. The REM_INTRA_PRED_MODE index 690 may be determined by the system from the bitstream by selecting REM_INTRA_PRED_MODE bits 691, which indicate a suitability for using the bypass decoding engine 693, and therefore provide the REM_INTRA_PRED_MODE index 690. In the event that the MPM_FLAG 660 for the current block indicates that the prediction mode is in the “not most probable mode list” 664, and in the event that there exists only four prediction modes in a “not most probable mode list” index, then a 2-bit REM_INTRA_PRED_MODE index 690 may be used to signal to the selected prediction mode 680 to select between the four prediction modes and provide the selected mode 675 as an output. In the event that the MPM_FLAG 660 for the current block indicates that the prediction mode is in the “not most probable mode list”, and in the event that there exists only eight prediction modes in the “not most probable mode list” index, then a 3-bit REM_INTRA_PRED_MODE index 690 may be used to signal to the selected prediction mode 680 to select between the eight prediction modes and provide the selected mode 675 as an output. This process of selecting modes from the not most probable mode list may be expanded with additional bit allocation to REM_INTRA_PRED_MODE index to distinguish between the different prediction modes.
[0034] As noted, based upon the past bins in the bitstream, the CABAC may determine the probability that the current bin will be a “1” or a “0”. As previously noted, the selection between the “most probable mode list” and the “not within the most probable mode list”, is a decision that has a meaningful impact on the coding efficiency of the CABAC, and accordingly having an updated probability is beneficial. However, the selection among the possibilities within the “not most probable mode list” 664 has limited impact on the coding efficiency of the CABAC, and accordingly the probabilities should not be updated, thus reducing the computational complexity of the system. In most cases, the probability assigned to a particular binarized symbol that is not updated is 50%.
[0035] Referring to
[0036] Referring to
[0037] The terms and expressions which have been 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 which follow.