Implementations of cabac decoding for video decoding
Abstract
Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.
Claims
exact text as granted — not AI-modified1 .- 20 . (canceled)
21 . One or more computer-readable media storing computer-executable instructions for causing a computer system, when programmed thereby, to perform operations, wherein the one or more computer-readable media are selected from the group consisting of non-volatile memory, magnetic disk, CD ROM, and DVD, the operations comprising:
entropy decoding encoded video data from a bitstream, the encoded video data having been encoded using context-adaptive binary arithmetic coding, wherein the entropy decoding comprises:
storing a value being decoded and plural available stream bits together in a first variable;
storing bit count information for the first variable in a second variable; and
using the first and second variables in context-adaptive binary arithmetic decoding; and
using results of the entropy decoding in reconstruction of video content.
22 . The one or more computer-readable media of claim 21 , wherein the operations further comprise loading the plural available stream bits directly into the first variable, from the bitstream, after the value being decoded in the first variable.
23 . The one or more computer-readable media of claim 21 , wherein the operations further comprise, during the context-adaptive binary arithmetic decoding:
left shifting the first variable by one or more bits, thereby updating the value being decoded and incorporating, into the value being decoded, one or more of the plural available stream bits stored in the first variable; and updating the bit count information in the second variable.
24 . The one or more computer-readable media of claim 21 , wherein the operations further comprise:
determining whether or not to replace stream bits in the first variable; and if stream bits are to be replaced, adding at least some new stream bits from the bitstream to the first variable.
25 . The one or more computer-readable media of claim 24 , wherein stream bits are added on a half-word-by-half word basis.
26 . The one or more computer-readable media of claim 21 , wherein the first variable has 32 bits or 64 bits, the value being decoded is a 9-bit value, and the plural available stream bits are stored in remaining bits of the first variable.
27 . The one or more computer-readable media of claim 21 , wherein the operations further comprise, during renormalization in the context-adaptive binary arithmetic decoding:
determining a multiplication amount; and multiplying a range by the multiplication amount.
28 . A computer system comprising one or more processing units and memory, wherein the computer system implements a video decoder configured to perform operations comprising:
entropy decoding encoded video data from a bitstream, the encoded video data having been encoded using context-adaptive binary arithmetic coding, wherein the entropy decoding comprises, during renormalization in context-adaptive binary arithmetic decoding:
determining a multiplication amount; and
multiplying a range by the multiplication amount; and
using results of the entropy decoding in reconstruction of video content.
29 . The computer system of claim 28 , wherein the multiplying comprises left shifting by a left shift amount corresponding to the multiplication amount.
30 . The computer system of claim 28 , wherein the operations further comprise:
left shifting a value being decoded by a left shift amount corresponding to the multiplication amount.
31 . The computer system of claim 28 , wherein the multiplication amount is a dynamic shift amount, and wherein the multiplying comprises performing a dynamic shift operation.
32 . The computer system of claim 28 , wherein a table maps different range values to different multiplication amounts, and wherein the determining comprises looking up the range in the table to find the multiplication amount.
33 . The computer system of claim 28 , wherein unrolled loop logic maps at least some different range values to different multiplication amounts, and wherein the determining comprises traversing the unrolled loop logic.
34 . The computer system of claim 33 , wherein the determined multiplication amount is one of the different multiplication amounts in the unrolled loop logic, and wherein the multiplying comprises performing a fixed shift operation.
35 . The computer system of claim 33 , wherein a table maps remaining range values to other multiplication amounts, and wherein the determining further comprises, after traversing the unrolled loop logic, looking up the range in the table to find the multiplication amount.
36 . A method comprising:
entropy decoding encoded video data from a bitstream, the encoded video data having been encoded using context-adaptive binary arithmetic coding, wherein the entropy decoding comprises:
splitting context-adaptive binary arithmetic decoding for frequency coefficients into plural context-adaptive binary arithmetic decoding units, each of the plural context-adaptive binary arithmetic decoding units being adapted for a different frequency interval for the frequency coefficients; and
using results of the entropy decoding in reconstruction of video content.
37 . The method of claim 36 , wherein the plural context-adaptive binary arithmetic decoding units include a first decoding unit adapted for a lower frequency interval and a second decoding unit adapted for a higher frequency interval.
38 . The method of claim 36 , wherein the entropy decoding further comprises, calling a core decoding function from each of the plural context-adaptive binary arithmetic decoding units.
39 . The method of claim 36 , wherein each of the plural context adaptive binary arithmetic decoding units includes logic adapted for probabilistic expectations of the frequency interval of the context adaptive binary arithmetic decoding unit.
40 . The method of claim 39 , wherein the entropy decoding further comprises, for each of the plural context adaptive binary arithmetic decoding units:
calling a core decoding function from within the logic adapted for probabilistic expectations of the frequency interval of the context adaptive binary arithmetic decoding unit.Join the waitlist — get patent alerts
Track US2017244968A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.