US-20260129203-A1 - VIDEO ENCODING AND DISTRIBUTION METHODS
Abstract
A method for encoding a video sequence is provided that includes entropy encoding syntax elements representative of transform coefficients generated as the video sequence is processed, wherein entropy encoding syntax elements representative of a transform coefficient includes binarizing the syntax elements representative of the transform coefficient to generate a plurality of binary symbols (bins), coding a portion of the plurality of bins in context coding mode, and coding a remaining portion of the plurality of bins in bypass coding mode. The method further includes reducing the number of bins that are coded in context coding mode for each transform coefficient in a plurality of subsequent transform coefficients that are entropy encoded after a specified number of transform coefficients have been entropy encoded.
Inventors
- Vivienne Sze
- Madhukar Budagavi
Assignees
- TEXAS INSTRUMENTS INCORPORATED
Dates
- Publication Date
- 20260507
- Application Date
- 20260102
Claims (20)
- 1 . A method comprising: initiating an encoding of a video sequence to produce an encoded video sequence; and distributing the encoded video sequence over a communication channel, wherein the encoding of the video sequence includes: maintaining a count of bins in a sub-block; context encoding a first portion of a plurality of bins, wherein the plurality of bins represent values of transform coefficients in the sub-block; bypass encoding a second portion of the plurality of bins; and switching from context encoding the first portion of the plurality of bins to bypass encoding the second portion of the plurality of bins in response to determining that the count of bins reaches a threshold value.
- 2 . The method of claim 1 , wherein the video sequence includes real-time video.
- 3 . The method of claim 1 , wherein the video sequence includes archived video.
- 4 . The method of claim 1 , wherein the video sequence includes a combination of video from a video content provider and computer-generated graphics.
- 5 . The method of claim 1 , wherein the video sequence includes a combination of real-time video and computer-generated graphics.
- 6 . The method of claim 1 , wherein distributing the encoded video sequence includes streaming the encoded video sequence over the communication channel.
- 7 . The method of claim 1 , wherein the first portion of the plurality of bins includes an absolute value greater than flag in the sub-block, and wherein the second portion of the plurality of bins includes a remaining absolute value of a transform coefficient level in the sub-block.
- 8 . The method of claim 7 , wherein the second portion of the plurality of bins includes a sign value of the transform coefficient level in the sub-block.
- 9 . A method comprising: encoding of a video sequence to produce an encoded video sequence; and causing a distribution of the encoded video sequence over a communication channel, wherein the encoding of the video sequence includes: maintaining a count of bins in a sub-block; context encoding a first portion of a plurality of bins, wherein the plurality of bins represent values of transform coefficients in the sub-block; bypass encoding a second portion of the plurality of bins; and switching from context encoding the first portion of the plurality of bins to bypass encoding the second portion of the plurality of bins in response to determining that the count of bins reaches a threshold value.
- 10 . The method of claim 9 , wherein the video sequence includes real-time video.
- 11 . The method of claim 9 , wherein the video sequence includes archived video.
- 12 . The method of claim 9 , wherein the video sequence includes a combination of video from a video content provider and computer-generated graphics.
- 13 . The method of claim 9 , wherein the video sequence includes a combination of real-time video and computer-generated graphics.
- 14 . The method of claim 9 , wherein causing the distribution of the encoded video sequence includes causing a streaming of the encoded video sequence over the communication channel.
- 15 . The method of claim 9 , wherein the first portion of the plurality of bins includes an absolute value greater than flag for a in the sub-block, and wherein the second portion of the plurality of bins includes a remaining absolute value of a transform coefficient level in the sub-block.
- 16 . The method of claim 15 , wherein the second portion of the plurality of bins includes a sign value of the transform coefficient level in the sub-block.
- 17 . A method comprising: initiating an encoding of a video sequence to produce an encoded video sequence; and causing a distribution of the encoded video sequence over a communication channel, wherein the encoding of the video sequence includes: maintaining a count of bins in a sub-block; context encoding a first portion of a plurality of bins, wherein the plurality of bins represent values of transform coefficients in the sub-block; bypass encoding a second portion of the plurality of bins; and switching from context encoding the first portion of the plurality of bins to bypass encoding the second portion of the plurality of bins in response to determining that the count of bins reaches a threshold value.
- 18 . The method of claim 17 , wherein the video sequence includes a combination of video from a video content provider and computer-generated graphics.
- 19 . The method of claim 17 , wherein the video sequence includes a combination of real-time video and computer-generated graphics.
- 20 . The method of claim 17 , wherein the first portion of the plurality of bins includes an absolute value greater than flag in the sub-block, and wherein the second portion of the plurality of bins includes: a remaining absolute value of a transform coefficient level in the sub-block; and a sign value of the transform coefficient level in the sub-block.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. application Ser. No. 19/328,418, filed Sep. 15, 2025, currently pending, which is a continuation of U.S. application Ser. No. 18/395,503, filed Dec. 23, 2023, currently pending, which is a continuation of U.S. application Ser. No. 17/875,478, filed Jul. 28, 2022 (now U.S. Pat. No. 11,856,199), which is a continuation of U.S. application Ser. No. 16/189,728, filed Nov. 13, 2018 (now U.S. Pat. No. 11,425,384), which is a continuation of U.S. application Ser. No. 15/357,641, filed Nov. 21, 2016 (now U.S. Pat. No. 10,129,546), which is a continuation of U.S. application Ser. No. 13/737,809, filed Jan. 9, 2013 (now U.S. Pat. No. 9,503,717), which claims the benefit of U.S. Provisional Application No. 61/584,457, filed Jan. 9, 2012, the contents of all of which are herein incorporated by reference in their entirety. BACKGROUND Field of the Invention Embodiments of the present invention generally relate to context adaptive binary arithmetic coding (CABAC) in video coding. Description of the Related Art Video compression, i.e., video coding, is an essential enabler for digital video products as it enables the storage and transmission of digital video. In general, video compression techniques apply prediction, transformation, quantization, and entropy coding to sequential blocks of pixels in a video sequence to compress, i.e., encode, the video sequence. Video decompression techniques generally perform the inverse of these operations in reverse order to decompress, i.e., decode, a compressed video sequence. Context-adaptive binary arithmetic coding (CABAC) is a form of entropy coding used in video encoding. CABAC is an inherently lossless compression technique notable for providing considerably better compression than most other encoding algorithms used in video encoding at the cost of increased complexity. In brief, CABAC has multiple probability modes for different contexts. It first converts all non-binary symbols to binary symbols referred to as bins. Then, for each bin, the coder selects which probability model to use, and uses information from nearby elements to optimize the probability estimate. Arithmetic coding is then applied to compress the data. The theory and operation of CABAC coding for H.264/AVC is defined in the International Telecommunication Union, Telecommunication Standardization Sector (ITU-T) standard “Advanced video coding for generic audiovisual services” H.264, revision 03/2005 or later, which is incorporated by reference herein. General principles are explained in “Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard,” Detlev Marpe, July 2003, which is incorporated by reference herein. CABAC is a well known throughput bottleneck in video codec implementations (particularly on the decoder side) due to the many feedback loops used. Further, the feedback loops make CABAC difficult to parallelize, which makes it difficult to achieve the high throughput necessary for high resolution and frame-rate videos. Furthermore, since high throughput can be traded-off for power savings using voltage scaling, the serial nature of CABAC limits the battery life for video codecs that reside on mobile devices. This limitation is a critical concern, as a significant portion of the future video codecs will be used on battery-operated devices. SUMMARY Embodiments of the present invention relate to methods and apparatus for context adaptive binary arithmetic coding (CABAC) with scalable throughput. In one aspect, a method for encoding a video sequence in a video encoder to generate a compressed video bit stream is provided that includes entropy encoding syntax elements representative of transform coefficients generated as the video sequence is processed in the video encoder, wherein entropy encoding syntax elements representative of a transform coefficient includes binarizing the syntax elements representative of the transform coefficient to generate a plurality of binary symbols (bins), coding a portion of the plurality of bins in context coding mode, and coding a remaining portion of the plurality of bins in bypass coding mode. The method further includes reducing a number of bins that are coded in context coding mode for each transform coefficient in a plurality of subsequent transform coefficients that are entropy encoded after a specified number of transform coefficients have been entropy encoded. In one aspect, an apparatus including a video encoder is provided. The video encoder includes means for receiving a video sequence, means for generating a plurality of syntax elements corresponding to a slice of a picture of the video sequence as the slice is processed in the video encoder, and means for entropy encoding the plurality of syntax elements to generate a portion of a compressed bit stream, the means for entropy coding configured to operate in a normal mode and a high throughput mode,