Low power context adaptive binary arithmetic decoder engine
US-10009606-B2 · Jun 26, 2018 · US
US10264264B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10264264-B2 |
| Application number | US-201615275373-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 24, 2016 |
| Priority date | Sep 24, 2016 |
| Publication date | Apr 16, 2019 |
| Grant date | Apr 16, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods for improving decoding of encoded image data using parallel multi-bin decoding are provided. In one embodiment, multiple context bins per cycle are decoded for a set of syntax elements, by decoupling and/or retiming particular syntax parsing and/or arithmetic decoding tasks of the decoding process.
Opening claim text (preview).
What is claimed is: 1. An electronic device comprising a video decoding pipeline configured to decode encoded source image data, wherein the video decoding pipeline comprises: one or more syntax finite state machines, configured to control parsing of one or more syntax elements of the encoded source image data; one or more entropy decoding engines, comprising one or more context bin decoders, the one or more context bin decoders configured to arithmetically decode bits of the encoded source image data; wherein the one or more syntax finite state machines comprise: a first sub-finite state machine (first sub-FSM) that assumes a first output from the one or more context bin decoders and computes a first context index update and a first next state in parallel with a current processing operation associated with the one or more context bin decoders; and a second sub-finite state machine (second sub-FSM) that assumes a second output from the one or more context bin decoders and computes a second context index update and a second next state in parallel with the current processing operation associated with the one or more context bin decoders; and wherein, upon completion of the current processing operation associated with the one or more context bin decoders, a selection between the first context index update and the second context index update and between the first next state and the second next state is determined based upon the bits of the encoded source image data that are arithmetically decoded. 2. The electronic device of claim 1 , wherein: the selection between the first context index update and the second context index update is configured to drive a subsequent arithmetic decoding process of the one or more context bin decoders. 3. The electronic device of claim 1 , comprising: a second syntax finite state machine wherein the selection between the first next state and the second next state of a first syntax finite state machine is provided to the second syntax finite state machine. 4. The electronic device of claim 3 , comprising: a third syntax finite state machine wherein the selection between the first next state and the second next state of the second syntax finite state machine is provided to the first syntax finite state machine. 5. The electronic device of claim 4 , wherein: the first syntax finite state machine, the second syntax finite state machine, and the third syntax finite state machine, in conjunction with corresponding first, second, and third context bin decoders, are configured to decode three context bins in parallel. 6. The electronic device of claim 1 , configured to decode multiple context bins per clock cycle. 7. The electronic device of claim 6 , configured to: decode the multiple context bins per clock cycle for only a subset of frequently occurring context adaptive binary arithmetic coded (CABAC) coded syntax elements. 8. The electronic device of claim 7 , wherein the CABAC coded syntax elements comprise: a last_sig_coeff_x_prefix syntax element that specifies a prefix of a column position of a last significant coefficient in a scanning order; a last_sig_coeff_y_prefix syntax element that specifies a prefix of a row position of the last significant coefficient in the scanning order; a coeef_abs_level_greater1_flag syntax element that indicates whether coefficients are greater than 1; and a sig_coeff_flag syntax element that indicates a significance of the coefficients. 9. The electronic device of claim 1 , wherein: at least one of the one or more syntax finite state machines is configured to pre-determine a set of indications used to decode of a string of multi-context-bins of a particular type in a next clock cycle; and a first context bin decoder of the one or more context bin decoders is configured to use the set of indications from a previous clock cycle in a current clock cycle. 10. The electronic device of claim 9 , wherein: the set of indications are pre-stored in one or more flip-flops of first context bin decoder in the current clock cycle. 11. The electronic device of claim 1 , configured to perform a Least Probable Symbol Range Table (rangeTabLps) lookup corresponding to a first bin decoder of the one or more context bin decoders in a previous clock cycle, prior to use in a current clock cycle. 12. A logic circuit for parsing an encoded bitstream, comprising: a syntax finite state machine comprising one or more sub-finite state machines; and an entropy decoding engine comprising a bin decoder configured to operate in parallel with processing operations of the one or more sub-finite state machines respective bin based at least in part on assuming an output of the bin decoder; wherein, for a set of critical syntax elements, the syntax finite state machine and the entropy decoding engine are configured to increase throughput of the logic circuit by processing multiple context adaptive binary arithmetic coded (CABAC)-encoded bins per clock cycle. 13. The logic circuit of claim 12 , comprising: a number C of chained context bin decoders; and a bin command interface, comprising C bins to be decoded and C context indices; wherein the entropy decoding engine is configured to return C bin values to the syntax finite state machine. 14. The logic circuit of claim 13 , wherein: a context buffer is implemented using flip-flops, allowing C read accesses per clock cycle. 15. The logic circuit of claim 13 , wherein the bin command interface comprises separate wires for providing a single-bin context index and a first multi-bin context index. 16. The logic circuit of claim 13 , wherein the number C of chained context bin decoders comprise a first context bin decoder configured to perform a context buffer lookup using a 1-cycle-early version of a state of the syntax finite state machine. 17. A set of context bin decoders of an entropy decoding engine, comprising: a first bin decoder configured to perform a context buffer lookup using a 1-cycle-early version of a state of a syntax finite state machine, wherein the first bin decoder is configured to process the 1-cycle-early version of the state of the syntax finite state machine parallel to one or more processing operations based on an assumed output from the first bin decoder. 18. The set of context bin decoders of claim 17 , wherein a context buffer for the context buffer lookup is implemented using a synchronous memory macro and wherein the context buffer lookup is performed in a previous clock cycle relative to a current clock cycle where a context bin is decoded using the 1-cycle-early version of the state of the syntax finite state machine. 19. The set of context bin decoders of claim 17 , wherein a context buffer for the context buffer lookup is implemented using one or more registers, an asynchronous-read memory macro, or both and wherein the context buffer lookup is performed in a beginning of a current clock cycle where a context bin is decoded using the 1-cycle-early version of the state of the syntax finite state machine. 20. The set of context bin decoders of claim 17 , comprising: a set of replicated bin decoders wherein the set of replicated bin decoders are used to assume each possible renormalization shift amount, enabling other portions of the set of context bin decoders to proceed without waiting for an actual computed renormalization shift amount.
Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC] · CPC title
Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder · CPC title
Entropy coding, e.g. variable length coding [VLC] or arithmetic coding · CPC title
with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE] · CPC title
characterised by syntax aspects related to video coding, e.g. related to compression standards · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.