IP Library Granted Patent US 10,827,192
Granted Patent B2
US 10,827,192 · App. 16/179,529 · Granted Nov 3, 2020

Work allocation for JPEG accelerator

Inventors: Abhishek Kumar Dikshit (Fremont, CA); Rajan Goyal (Saratoga, CA); Jorge Cruz-Rios (Los Altos, CA)
Assignee: Fungible, Inc.
H04N19/436H04N19/129H04N19/14H04N19/176H04N19/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,827,192
App. No.
16/179,529
Granted
Nov 3, 2020
Kind
B2
Abstract

A device includes a memory configured to store image data and an image coding unit. The image coding unit is configured to decode a first set of one or more bits of a first value of a first instance of a first syntax element of a block of image data, determine that the first set of one or more bits have values indicating that one or more values of respective instances of one or more other syntax elements of the block of image data are to be decoded. In response to the determination, the image coding unit is configured to decode one or more bits of the one or more values of the respective instances of the one or more other syntax elements of the block prior to decoding a second set of one or more bits of the first value of the first instance of the first syntax element.

Claims (56)

1. A method comprising:

decoding, by an image coding unit implemented in circuitry of a device, a first set of one or more bits of a first value of a first instance of a first syntax element of a block of image data;

determining, by the image coding unit, that the first set of one or more bits have values indicating that one or more values of respective instances of one or more other syntax elements of the block of image data are to be decoded, wherein the one or more other syntax elements does not include the first syntax element;

in response to the determination, decoding, by the image coding unit, one or more bits of the one or more values of the respective instances of the one or more other syntax elements of the block prior to decoding a second set of one or more bits of the first value of the first instance of the first syntax element; and

outputting, by the image coding unit, an indication of the block of the image data based on the one or more values of the respective instances of the one or more other syntax elements of the block.

2. The method of claim 1 ,

wherein decoding the first set of one or more bits comprises decoding, by a first decoding engine of a plurality of decoding engines of the image coding unit, the first set of one or more bits, and

wherein decoding the one or more bits of the one or more values of the respective instances of the one or more other syntax elements comprises decoding, by a second decoding engine of the plurality of decoding engines, the one or more bits of the one or more values of the respective instances of the one or more other syntax elements, the second decoding engine being different than the first decoding engine.

3. The method of claim 1 , wherein the first syntax element comprises a last-non-zero (LNZ) syntax element, and wherein the one or more other syntax elements comprise syntax elements for transform coefficients of the block of image data.

4. The method of claim 3 ,

wherein the LNZ syntax element represents a position of a last-non-zero coefficient in zig-zag scan order of the block, and wherein the first set of one or more bits comprise most significant bits of the first value of the first instance of the LNZ syntax element defining a minimum number of the transform coefficients to be decoded, and

wherein the one or more values of the respective instances of the one or more other syntax elements correspond to no more than the minimum number of the transform coefficients to be decoded.

5. The method of claim 3 , wherein the one or more other syntax elements comprise one or more of a non-zero alternating current (AC) high values syntax element, a non-zero AC low values syntax element, or a direct current (DC) coefficient syntax element.

6. The method of claim 1 , wherein the first syntax element comprises a coefficient map syntax element for a transform coefficient of the block, and wherein the one or more other syntax elements comprises the transform coefficient.

7. The method of claim 1 , further comprising:

selecting a speculative decode tree associated with the first syntax element, each node of the speculative decode tree representing a sequence of bit values and a probability value associated with the sequence of bit values; and

after decoding the first set of one or more bits of the first value of the first instance of the first syntax element:

determining a node of the speculative decode tree having a sequence of bit values corresponding to the values of the first set of one or more bits; and

decoding a next bit, following the first set of one or more bits, of the first value of the first instance of the first syntax element according to the probability value of the determined node of the speculative decode tree.

8. A device comprising:

a memory configured to store image data; and

an image coding unit implemented in circuitry, the image coding unit being configured to:

decode a first set of one or more bits of a first value of a first instance of a first syntax element of a block of image data;

determine that the first set of one or more bits have values indicating that one or more values of respective instances of one or more other syntax elements of the block of image data are to be decoded, wherein the one or more other syntax elements does not include the first syntax element;

in response to the determination, decode one or more bits of the one or more values of the respective instances of the one or more other syntax elements of the block prior to decoding a second set of one or more bits of the first value of the first instance of the first syntax element; and

output an indication of the block of the image data based on the one or more values of the respective instances of the one or more other syntax elements of the block.

9. The device of claim 8 ,

wherein, to decode the first set of one or more bits, the image coding unit is configured to decode, by a first decoding engine of a plurality of decoding engines of the image coding unit, the first set of one or more bits, and

wherein, to decode the one or more bits of the one or more values of the respective instances of the one or more other syntax elements, the image coding unit is configured to decode, by a second decoding engine of the plurality of decoding engines, the one or more bits of the one or more values of the respective instances of the one or more other syntax elements, the second decoding engine being different than the first decoding engine.

10. The device of claim 8 , wherein the first syntax element comprises a coefficient map syntax element for a transform coefficient of the block, and wherein the one or more other syntax elements comprises the transform coefficient.

11. The device of claim 10 ,

wherein the LNZ syntax element represents a position of a last-non-zero coefficient in zig-zag scan order of the block, and wherein the first set of one or more bits comprise most significant bits of the first value of the first instance of the LNZ syntax element defining a minimum number of the transform coefficients to be decoded, and

wherein the one or more values of the respective instances of the one or more other syntax elements correspond to no more than the minimum number of the transform coefficients to be decoded.

12. The device of claim 10 , wherein the one or more other syntax elements comprise one or more of a non-zero alternating current (AC) high values syntax element, a non-zero AC low values syntax element, or a direct current (DC) coefficient syntax element.

13. The device of claim 8 , wherein the first syntax element comprises a coefficient map syntax element for a transform coefficient of the block, and wherein the one or more other syntax elements comprises the transform coefficient.

14. The device of claim 8 , wherein the image coding unit is further configured to:

select a speculative decode tree associated with the first syntax element, each node of the speculative decode tree representing a sequence of bit values and a probability value associated with the sequence of bit values; and

after decoding the first set of one or more bits of the first value of the first instance of the first syntax element:

determine a node of the speculative decode tree having a sequence of bit values corresponding to the values of the first set of one or more bits; and

decode a next bit, following the first set of one or more bits, of the first value of the first instance of the first syntax element according to the probability value of the determined node of the speculative decode tree.

15. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause a processor to:

decode a first set of one or more bits of a first value of a first instance of a first syntax element of a block of image data;

determine that the first set of one or more bits have values indicating that one or more values of respective instances of one or more other syntax elements of the block of image data are to be decoded, wherein the one or more other syntax elements does not include the first syntax element;

in response to the determination, decode one or more bits of the one or more values of the respective instances of the one or more other syntax elements of the block prior to decoding a second set of one or more bits of the first value of the first instance of the first syntax element; and

output an indication of the block of the image data based on the one or more values of the respective instances of the one or more other syntax elements of the block.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the first syntax element comprises a last-non-zero (LNZ) syntax element, and wherein the one or more other syntax elements comprise syntax elements for transform coefficients of the block of image data.

17. The non-transitory computer-readable storage medium of claim 16 ,

wherein the LNZ syntax element represents a position of a last-non-zero coefficient in zig-zag scan order of the block, and wherein the first set of one or more bits comprise most significant bits of the first value of the first instance of the LNZ syntax element defining a minimum number of the transform coefficients to be decoded, and

wherein the one or more values of the respective instances of the one or more other syntax elements correspond to no more than the minimum number of the transform coefficients to be decoded.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the one or more other syntax elements comprise one or more of a non-zero alternating current (AC) high values syntax element, a non-zero AC low values syntax element, or a direct current (DC) coefficient syntax element.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the first syntax element comprises a coefficient map syntax element for a transform coefficient of the block, and wherein the one or more other syntax elements comprises the transform coefficient.

20. The non-transitory computer-readable storage medium of claim 15 , wherein instructions further cause the processor to:

select a speculative decode tree associated with the first syntax element, each node of the speculative decode tree representing a sequence of bit values and a probability value associated with the sequence of bit values; and

after decoding the first set of one or more bits of the first value of the first instance of the first syntax element:

determine a node of the speculative decode tree having a sequence of bit values corresponding to the values of the first set of one or more bits; and

decode a next bit, following the first set of one or more bits, of the first value of the first instance of the first syntax element according to the probability value of the determined node of the speculative decode tree.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: FUNGIBLE, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064434/0430 →
RELEASE OF SECURITY INTEREST Recorded Jan 9, 2023
From: HERCULES CAPITAL, INC., AS AGENT
To: FUNGIBLE, INC.
Reel/Frame 062335/0803 →
RELEASE OF SECURITY INTEREST Recorded Jan 5, 2023
From: SILICON VALLEY BANK
To: FUNGIBLE, INC.
Reel/Frame 062308/0191 →
SECURITY INTEREST Recorded Dec 16, 2021
From: FUNGIBLE, INC.
To: SILICON VALLEY BANK
Reel/Frame 058523/0960 →
SECURITY INTEREST Recorded Dec 16, 2021
From: FUNGIBLE, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 058533/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2018
From: DIKSHIT, ABHISHEK KUMAR; GOYAL, RAJAN; CRUZ-RIOS, JORGE
To: FUNGIBLE, INC.
Reel/Frame 047643/0308 →
Continuity (1)
Related Publication 20200145682A1 · May 7, 2020