IP Library Granted Patent US 10,848,775
Granted Patent B2
US 10,848,775 · App. 16/179,496 · Granted Nov 24, 2020

Memory layout for JPEG accelerator

Inventors: Abhishek Kumar Dikshit (Fremont, CA); Rajan Goyal (Saratoga, 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,848,775
App. No.
16/179,496
Granted
Nov 24, 2020
Kind
B2
Abstract

A device includes a memory configured to store image data and an image coding unit implemented in circuitry. The image coding unit is configured to store a first portion of a set of context information in memory of the image coding unit as an array representing a direct access table and store a second portion of the set of context information in a hash table. The image coding unit is further configured to determine whether a context value for context-based coding of a value of an instance of a syntax element for a block of image data is stored in the array or in the hash table, retrieve the context value from either the array or the hash table according to the determination, and context-based code the value of the instance of the syntax element using the context value.

Claims (44)

1. A method comprising:

storing, by an image coding unit implemented in circuitry of a device, a first portion of a set of context information in memory of the image coding unit as an array representing a direct access table;

storing, by the image coding unit, a second portion of the set of context information in a hash table;

determining, by the image coding unit, whether a context value for context-based coding of a value of an instance of a syntax element for a block of image data is stored in the array or in the hash table;

retrieving, by the image coding unit, the context value from either the array or the hash table according to the determination; and

context-based coding the value of the instance of the syntax element using the context value.

2. The method of claim 1 , wherein the block comprises a first block, wherein the value comprises a first value, wherein the instance comprises a first instance of the syntax element, and wherein the context value comprises a second value of a second instance of the syntax element for a second block.

3. The method of claim 1 , wherein storing the second portion comprises:

executing a hash function that maps a first identifier for a first value of a first reference block to a hash bucket;

storing a first context entry corresponding to the first value of the first reference block to the hash bucket;

executing the hash function that maps a second identifier for a second value of a second reference block to the hash bucket; and

in response to the hash function mapping the second identifier to the hash bucket including the first context entry, using the first context entry as context information during context-based coding when accessing the hash table using the second identifier.

4. The method of claim 1 , wherein storing the second portion comprises storing entries of the second portion to one of a plurality of banks of memory for storing the hash table, each of the banks corresponding to a different syntax element for blocks of image data.

5. The method of claim 4 , further comprising, when accessing the hash table, submitting requests to access the hash table through a queue data structure.

6. 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:

store a first portion of a set of context information in memory of the image coding unit as an array representing a direct access table;

store a second portion of the set of context information in a hash table;

determine whether a context value for context-based coding of a value of an instance of a syntax element for a block of image data is stored in the array or in the hash table;

retrieve the context value from either the array or the hash table according to the determination; and

context-based code the value of the instance of the syntax element using the context value.

7. The device of claim 6 , wherein the block comprises a first block, wherein the value comprises a first value, wherein the instance comprises a first instance of the syntax element, and wherein the context value comprises a second value of a second instance of the syntax element for a second block.

8. The device of claim 6 , wherein, to store the second portion, the image coding unit is configured to:

execute a hash function that maps a first identifier for a first value of a first reference block to a hash bucket;

store a first context entry corresponding to the first value of the first reference block to the hash bucket;

execute the hash function that maps a second identifier for a second value of a second reference block to the hash bucket; and

in response to the hash function mapping the second identifier to the hash bucket including the first context entry, use the first context entry as context information during context-based coding when accessing the hash table using the second identifier.

9. The device of claim 6 , wherein, to store the second portion, the image coding unit is configured to store entries of the second portion to one of a plurality of banks of memory for storing the hash table, each of the banks corresponding to a different syntax element for blocks of image data.

10. The device of claim 9 , wherein the image coding unit is configured to, when accessing the hash table, submit requests to access the hash table through a queue data structure.

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

store a first portion of a set of context information in memory of the image coding unit as an array representing a direct access table;

store a second portion of the set of context information in a hash table;

determine whether a context value for context-based coding of a value of an instance of a syntax element for a block of image data is stored in the array or in the hash table;

retrieve the context value from either the array or the hash table according to the determination; and

context-based code the value of the instance of the syntax element using the context value.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the block comprises a first block, wherein the value comprises a first value, wherein the instance comprises a first instance of the syntax element, and wherein the context value comprises a second value of a second instance of the syntax element for a second block.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions to store the second portion comprise instructions to:

execute a hash function that maps a first identifier for a first value of a first reference block to a hash bucket;

store a first context entry corresponding to the first value of the first reference block to the hash bucket;

execute the hash function that maps a second identifier for a second value of a second reference block to the hash bucket; and

in response to the hash function mapping the second identifier to the hash bucket including the first context entry, use the first context entry as context information during context-based coding when accessing the hash table using the second identifier.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions to store the second portion comprise instructions to store entries of the second portion to one of a plurality of banks of memory for storing the hash table, each of the banks corresponding to a different syntax element for blocks of image data.

15. The non-transitory computer-readable storage medium of claim 14 , where the instructions further cause the processor to, when accessing the hash table, submit requests to access the hash table through a queue data structure.

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 2, 2018
From: DIKSHIT, ABHISHEK KUMAR; GOYAL, RAJAN
To: FUNGIBLE, INC.
Reel/Frame 047398/0352 →
Continuity (1)
Related Publication 20200145681A1 · May 7, 2020