Conventional H.264 video codec systems include, as part of the main profile, a context adaptive binary arithmetic-coding (CABAC) process. The CABAC process uses a serial process which needs both a context (or context model) and the results of a previous arithmetic decode operation to decode a binary information bit (or bin) from an encoded bitstream. The arithmetic decode operation as normatively defined is a laborious time consuming operation. While determining the context, neighborhood information (both above and left) is needed from previously decoded syntax elements within either current or neighboring macroblocks (or neighboring macroblocks to the current macroblock). It is difficult to meet the goal of real-time high definition (HD) video decode because determining context and arithmetic decoding use significantly large calculations. H.264 main or high profile decoders will tend to encounter difficulties in video decoding of real-time high definition (HD) sources for the life of the H.264 standard protocol.
The H.264 standard (or JVT-050 H.264/AVC standard, JVT-050 or more recently: ITU-T Rec H.264|ISO/IEC 14496-10 and all amendments, Current Revisions H.264(E)) uses serial execution of arithmetic decodes, and a full syntax element decode. Further, a full decode of previous macroblocks is performed to provide macroblock neighbor context information. By providing the macroblock neighbor context information the period between decoding (i) the last bin of the previous macroblock and (ii) the first bin of the current macroblock is increased. Conventional methods limit the CABAC decode rate to the rate supported by the serial implementation. In particular, conventional methods limit CABAC decode rates by supporting lower profiles and/or constraining these limits within a proprietary framework.
It would be desirable to provide a method and/or apparatus that performs context calculations in parallel with arithmetic decoding operations.