Context model cache-management in a dual-pipeline CABAC architecture

US9258565B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9258565-B1
Application numberUS-201113172775-A
CountryUS
Kind codeB1
Filing dateJun 29, 2011
Priority dateJun 29, 2011
Publication dateFeb 9, 2016
Grant dateFeb 9, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method and system are disclosed for managing cache memory in a dual-pipelined CABAC encoder. A request for a context model is received from both encoder pipelines. If the requested context model is not stored in cache, the requested context model is retrieved from a context table. At least one context model stored in cache is written to the context table. The retrieved context model is updated and written to the cache. If the requested context model is stored in cache, and if the requested context model was updated in the previous clock cycle, the requested context model is retrieved from the pipeline, updated, and written to cache. If the requested context model is not stored in cache, and if the requested contest model was not updated in the previous clock cycle, the requested context model retrieved from cache, updated, and written back to cache.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for managing cache memory in context-adaptive binary arithmetic coding (CABAC) implemented in a synchronous dual-pipelined environment, the method comprising: receiving, at a CABAC encoder cache memory in a first clock cycle, a first request for a first context model from a first context lookup module communicatively coupled to a first encoder and a second request for a second context model from a second context lookup module communicatively coupled to a second encoder; determining if the first context model is stored in cache memory, wherein the cache memory is configured to store at least one previously updated context model; responsive to a determination that a cached version of the first context model is stored in the cache memory, determining whether an updated version of the first context model is available at a respective output of either the first encoder or the second encoder; responsive to a determination that the updated version of the first context model is available at the respective output, retrieving the updated version of the first context model from the respective output; providing the updated version of the first context model to the first encoder, wherein the first encoder is configured to utilize the updated version of the first context model to encode a first bin, and update the updated version of the first context model to produce a subsequent version of the first context model; receiving, at the cache memory in a second clock cycle, the subsequent version of the first context model from the output of the first encoder; and writing the subsequent version of the first context model in the cache memory in response to the receiving the subsequent version at the cache memory. 2. The method of claim 1 , further comprising: writing the subsequent version of the first context model in a context table, wherein the cache memory is communicatively coupled to the context table, the context table stores an older version of the first context model, and the subsequent version of the first context model overwrites the older version of the first context model in the context table. 3. The method of claim 2 , further comprising: determining which of the at least one previously updated context model stored in the cache memory was least recently updated; and writing the determined previously updated context model to the context table. 4. The method of claim 2 , further comprising: determining which of the at least one previously updated context model stored in the cache memory was most recently requested; and writing the determined previously updated context model to the context table. 5. The method of claim 2 , further comprising: determining which of the at least one previously updated context model stored in the cache memory is least likely to be requested in the future; and writing the determined previously updated context model to the context table. 6. The method of claim 1 , further comprising: writing the updated version of the first context model in the cache memory, wherein the cached version of the first context model is stored at a particular location in the cache memory, and the updated version of the first context model is written to the particular location in the cache memory. 7. The method of claim 1 , further comprising: responsive to a determination that the first context model is not stored in cache memory, retrieving a stored version of the first context model from a context table, wherein the context table is configured to store a plurality of context models utilized in the synchronous dual-pipelined environment; and providing the stored version of the first context model to the first encoder, wherein the first encoder is configured to utilize the stored version of the first context model to encode the first bin, and update the stored version of the first context model to produce the subsequent version of the first context model. 8. The method of claim 1 , further comprising: responsive to a determination that the updated version of the first context model is not available at the respective output, retrieving the cached version of the first context model from the cache memory; and providing the cached version of the first context model to the first encoder, wherein the first encoder is configured to utilize the cached version of the first context model to encode the first bin, and update the cached version of the first context model to produce the subsequent version of the first context model. 9. The method of claim 1 , wherein the method is implemented in an H.264 video encoder. 10. The method of claim 1 , wherein the requested first context model and the requested second context model comprise the same context model. 11. The method of claim 1 , wherein the first context lookup module is configured to: receive the first bin; issue the first request for the first context module based on the first bin; and output the first bin to the first encoder; and wherein the second context lookup module is configured to: receive a second bin; issue the second request for the second context module based on the second bin; and output the second bin to the second encoder. 12. The method of claim 1 , the method further comprising: determining if the second context model is stored in the cache memory; responsive to a determination that a cached version of the second context model is stored in the cache memory, determining whether an updated version of the second context model is available at the respective output of either the first encoder or the second encoder; responsive to a determination that the updated version of the second context model is available at the respective output, retrieving the updated version of the second context model from the respective output; providing the updated version of the second context model to the second encoder, wherein the second encoder is configured to utilize the updated version of the second context model to encode a second bin, and update the updated version of the second context model to produce a subsequent version of the second context model; receiving, at the cache memory in the second clock cycle, the subsequent version of the second context model from the output of the second encoder; and writing the subsequent version of the second context model in the cache memory in response to the receiving the subsequent version of the second context model at the cache memory. 13. A system for managing cache memory in context-adaptive binary arithmetic coding (CABAC) implemented in a synchronous dual-pipelined environment, the system comprising: a cache memory manager configured to: receive, in a first clock cycle, a first request for a first context model from a first context lookup module communicatively coupled to a first encoder and a second request for a second context model from a second context lookup module communicatively coupled to a second encoder; determine if the first context model is stored in cache memory, wherein the cache memory is configured to store at least one previously updated context model; responsive to a determination that a cached version of the first context model is stored in the cache memory, determine whether an updated version of the context model is available at a respective output of either the first encoder or the second encoder; responsive to a determination that the updated version of the first context model is available at the respective output, retrieve the updated version of the first context model from the respective output; provide the updated versi

Assignees

Inventors

Classifications

  • H04N19/91Primary

    Entropy coding, e.g. variable length coding [VLC] or arithmetic coding · CPC title

  • characterised by the element, parameter or selection affected or controlled by the adaptive coding · CPC title

  • H04N19/13Primary

    Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC] · CPC title

  • characterised by memory arrangements (H04N19/433 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9258565B1 cover?
A method and system are disclosed for managing cache memory in a dual-pipelined CABAC encoder. A request for a context model is received from both encoder pipelines. If the requested context model is not stored in cache, the requested context model is retrieved from a context table. At least one context model stored in cache is written to the context table. The retrieved context model is update…
Who is the assignee on this patent?
Jacob Rojit, Freescale Semiconductor Inc
What technology area does this patent fall under?
Primary CPC classification H04N19/91. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 09 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).