US10085016B1ActiveUtility

Video prediction cache indexing systems and methods

80
Assignee: OvicsPriority: Jan 18, 2013Filed: Jan 18, 2013Granted: Sep 25, 2018
Est. expiryJan 18, 2033(~6.5 yrs left)· nominal 20-yr term from priority
Inventors:Sorin C. Cismas
H04N 19/433H04N 19/42G06F 12/0246H04N 19/423H04N 19/00569H04N 19/50G06F 2212/455G06F 12/0207G06F 12/0846G06F 12/0879G06T 1/60G06F 2212/1048
80
PatentIndex Score
4
Cited by
43
References
20
Claims

Abstract

In some embodiments, a video prediction (reference block) cache includes multiple (e.g. 4) independently-addressable subcaches, each storing a predetermined part of a cache back-end (memory subsystem) word. For example, a 16-byte word received by the cache from memory may be split between four 4-byte subcaches. Each subcache line/block stores the data of a 2-D pixel array. Retrieving a cached prediction may be performed by accessing different subcaches synchronously (on the same clock cycle) to assemble the prediction from parts stored in different subcaches. A cache tag may be defined by a 4-D vector having x-position, y-position, frame ID, and color component (luma/chroma) fields. Using sub-word, independently-addressable subcaches allows increasing the efficiency of cache access and allows addressing memory bandwidth limitations facing emerging video coding standards and applications, which employ relatively large and varied prediction sizes.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. An apparatus, comprising:
 a memory; 
 a plurality of cache memories; and 
 a cache controller coupled to the plurality of cache memories, wherein the cache controller is configured to:
 receive a cache word from a memory, wherein the cache word includes video prediction data for a pixel block; 
 subdivide the cache word into a plurality of subwords, wherein each subword of the plurality of subwords includes video prediction data of a corresponding quadrant of the pixel block, wherein each subword is associated with a respective valid data bit and a respective tag of a plurality of tags, and wherein a respective value of at least a portion of each tag of the plurality of tags includes an indication of a type of chroma data included in video prediction data of an associated quadrant of the pixel block; and 
 store a particular subword of the plurality of subwords into a respective cache memory of a plurality of cache memories. 
 
 
     
     
       2. The apparatus of  claim 1 , wherein the cache controller is further configured to increment a lock number field associated with a given subword stored in a particular cache memory in response to determining the video prediction data associated with the given subword is used in an additional overlapping image block. 
     
     
       3. The apparatus of  claim 1 , wherein a particular cache memory of the plurality of cache memories includes a plurality of lines, wherein each line of the plurality of lines includes a data field and a tag field. 
     
     
       4. The apparatus of  claim 1 , wherein the video prediction data for the pixel block includes at least a luma component and a chroma component for the pixel block. 
     
     
       5. The apparatus of  claim 1 , wherein the cache controller is further configured to:
 receive a request for a prediction block, wherein the prediction block is associated with an identification number, a chroma value, an x-address, and a y-address; 
 subdivide the prediction block into multiple sub-blocks; and 
 search the plurality of cache memories using a plurality of tag bits stored in cache memories and the identification number, the chroma value, the x-address, and the v-address, wherein a particular tag bit is associated with a respective sub-block of the multiple sub-blocks. 
 
     
     
       6. The apparatus of  claim 1 , wherein the pixel block includes an array of 4 pixels by 4 pixels. 
     
     
       7. The apparatus of  claim 6 , wherein the video prediction data associated with the corresponding quadrant of the pixel block includes video prediction data for a 2 pixel by 2 pixel array. 
     
     
       8. A method, comprising:
 receiving, by a cache controller, a cache word from a memory, wherein the cache word includes video prediction data for a pixel block; 
 subdividing, by the cache controller, the cache word into a plurality of subwords, wherein each subword of the plurality of subwords includes video prediction data of a corresponding quadrant of the pixel block, wherein each subword is associated with a respective valid data bit and a respective tag of a plurality of tags, and wherein a respective value of at least a portion of each tag of the plurality of tags includes an indication of a type of chroma data included in video prediction data of an associated quadrant of the pixel block; and 
 storing a particular subword of the plurality of subwords into a respective cache memory of a plurality of cache memories. 
 
     
     
       9. The method of  claim 8 , further comprising incrementing a lock number field associated with a given subword stored in a particular cache memory in response to determining the video prediction data associated with the given subword is used in an additional overlapping image block. 
     
     
       10. The method of  claim 8 , wherein a particular cache memory of the plurality of cache memories includes a plurality of lines, wherein each line of the plurality of lines includes a data field and a tag field. 
     
     
       11. The method of  claim 8 , wherein the video prediction data for the pixel block includes at least a luma component and a chroma component for the pixel block. 
     
     
       12. The method of  claim 8 , wherein the pixel block includes an array of 4 pixels by 4 pixels. 
     
     
       13. The method of  claim 12 , wherein the video prediction data associated with the corresponding quadrant of the pixel block includes video prediction data for a 2 pixel by 2 pixel array. 
     
     
       14. A system, comprising:
 a video prediction cache including a plurality of sub-caches; 
 a motion/compensation unit coupled to the video prediction cache; 
 wherein the video prediction cache is configured to:
 receive a cache word from a memory, wherein the cache word includes video prediction data for a pixel block; 
 subdivide the cache word into a plurality of subwords, wherein each subword of the plurality of subwords includes video prediction data of a corresponding quadrant of the pixel block, wherein each subword is associated with a respective valid data bit and a respective tag, and wherein a respective value of at least a portion of each tag of the plurality of tags includes an indication of a type of chroma data included in video prediction data of an associated quadrant of the pixel block; and 
 store a particular subword of the plurality of subwords into a respective sub-cache of the plurality of sub-caches. 
 
 
     
     
       15. The system of  claim 14 , wherein the video prediction cache is further configured to increment a lock number field associated with a given subword stored in a sub-cache in response to a determination that the video prediction data associated with the given subword is used in an additional overlapping image block. 
     
     
       16. The system of  claim 14 , wherein a particular sub-cache of the plurality of sub-caches includes a plurality of lines, wherein each line of the plurality of lines includes a data field and a tag field. 
     
     
       17. The system of  claim 14 , wherein the video prediction data for the pixel block includes at least a luma component and a chroma component for the pixel block. 
     
     
       18. The system of  claim 14 , wherein the video prediction cache is further configured to:
 receive a request for a prediction block, wherein the prediction block is associated with an identification number, a chroma value, an x-address, and a y-address; 
 subdivide the prediction block into multiple sub-blocks; and 
 search the plurality of sub-caches using a plurality of tag bits stored in cache memories and the identification number, the chroma value, the x-address, and the y-address, wherein a particular tag bit is associated with a respective sub-block of the multiple sub-blocks. 
 
     
     
       19. The system of  claim 14 , wherein the pixel block includes an array of 4 pixels by 4 pixels. 
     
     
       20. The system of  claim 19 , wherein the video prediction data associated with corresponding quadrant of the pixel block includes video prediction data for a 2 pixel by 2 pixel array.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.