Context initialization based on decoder picture buffer
View Patent ↗Technique for initialization of encoders and decoders. In some cases, the decoder receives a slice and identifies if the slice is either a forward predicted B-slice or a backward predicted B-slice, and not both a forward and backward predicted B-slice, and based upon this identification initializes, using a P-slice technique, a context associated with the slice.
1. A method for decoding a video frame, the method comprising:
(a) receiving a slice;
(b) receiving a flag that is used in determining one of three initialization methods; and
(c) initializing a Context-Adaptive Binary Arithmetic Coding (CABAC) context associated with a slice type; wherein
in a case that the slice type indicates a B slice type and a value of the flag is equal to a first value, a CABAC context associated with the B slice type is initialized by a first initialization method of the three initialization methods,
in a case that the slice type indicates the B slice type and the value of the flag is equal to a second value, the CABAC context associated with the B slice type is initialized by a second initialization method of the three initialization methods, wherein the second initialization method being used to initialize a CABAC context associated with a P slice type in a case that the slice type indicates the P slice type and the value of the flag is equal to the first value, and
in a case that the slice type indicates an I slice type, a CABAC context associated with the I slice type is initialized by a third initialization method of the three initialization methods without using the flag.
2. An apparatus for decoding a video frame, the apparatus comprising:
a decoding processor, the decoding processor being implemented with hardware,
wherein:
the decoding processor receives a slice;
the decoding processor receives a flag that is used in determining one of three initialization methods; and
the decoding processor initializes a Context-Adaptive Binary Arithmetic Coding (CABAC) context associated with a slice type; wherein
in a case that the slice type indicates a B slice type and a value of the flag is equal to a first value, a CABAC context associated with the B slice type is initialized by a first initialization method of the three initialization methods,
in a case that the slice type indicates the B slice type and the value of the flag is equal to a second value, the CABAC context associated with the B slice type is initialized by a second initialization method of the three initialization methods, wherein the second initialization method being used to initialize a CABAC context associated with a P slice type in a case that the slice type indicates the P slice type and the value of the flag is equal to the first value, and
in a case that the slice type indicates an I slice type, a CABAC context associated with the I slice type is initialized by a third initialization method of the three initialization methods without using the flag.