IP Library Granted Patent US 10,542,276
Granted Patent B2
US 10,542,276 · App. 15/393,266 · Granted Jan 21, 2020

Data caching method and apparatus for video decoder

Inventors: Zhimin Qiu (Shanghai, CN); Huanxin Wang (Shanghai, CN)
Assignees: MONTAGE LZ SEMICONDUCTOR (SHANGHAI) CO., LTD.; MONTAGE LZ TECHNOLOGIES (CHENDU) CO., LTD.
H04N19/51H04L67/2842H04N19/176H04N19/182H04N19/423H04N19/44
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,542,276
App. No.
15/393,266
Granted
Jan 21, 2020
Kind
B2
Abstract

A data caching method for a video decoder includes: receiving a data request from the video decoder, wherein the data request is for requesting one or more reference pixel blocks to decode a present pixel block, and the data request contains one or more reference motion vectors each corresponding to a reference pixel block; determining, for each reference motion vector in the data request, whether the reference pixel block corresponding to the reference motion vector has been cached in a cache memory which caches a plurality of reference pixel blocks; and if the reference pixel block corresponding to the reference motion vector has not been cached in the cache memory: A) determining an expected usage number and a historical usage condition for each reference pixel block which has been cached in the cache memory, wherein the expected usage number indicates how many times the cached reference pixel block will be used in decoding of a predetermined number of subsequent pixel blocks after the present pixel block, and the historical usage condition indicates a least recently used record of the cached reference pixel block; and B) selecting and deleting one of the cached reference pixel blocks according to the expected usage numbers and historical usage conditions of the cached reference pixel blocks, caching a reference pixel block corresponding to the reference motion vector from an external memory into the cache memory, and providing the reference pixel block to the video decoder.

Claims (42)

1. A data caching method for a video decoder, comprising the steps of:

receiving a data request from the video decoder, wherein the data request is for requesting one or more reference pixel blocks to decode a present pixel block, and the data request contains one or more reference motion vectors each corresponding to a reference pixel block;

determining, for each reference motion vector in the data request, whether the reference pixel block corresponding to the reference motion vector has been cached in a cache memory which caches a plurality of reference pixel blocks; and

responsive to a determination that the reference pixel block corresponding to the reference motion vector has not been cached in the cache memory, performing the following steps:

A) determining an expected usage number and a historical usage condition for each reference pixel block which has been cached in the cache memory, wherein the expected usage number indicates how many times the cached reference pixel block will be used in decoding of a predetermined number of subsequent pixel blocks after the present pixel block, and the historical usage condition indicates a least recently used record of the cached reference pixel block and relative usage time of each pixel block cached in the cache memory; and

B) selecting and deleting one of the cached reference pixel blocks according to the expected usage numbers and historical usage conditions of the cached reference pixel blocks, caching a reference pixel block corresponding to the reference motion vector from an external memory into the cache memory, and providing the reference pixel block to the video decoder;

wherein step B further comprises:

responsive to a determination of a first reference pixel block having an expected usage number of zero among the cached reference pixel blocks which are ordered according to the historical usage condition of the cached reference pixel blocks, selecting and deleting the first reference pixel block;

responsive to a determination that none of the reference pixel blocks have an expected usage number of zero and there are multiple reference pixel blocks having the same least expected usage number, selecting and deleting one of the multiple reference pixel blocks which is less recently used; and

responsive to a determination that none of the reference pixel blocks have an expected usage number of zero and there are no multiple reference pixel blocks having the same least expected usage number, selecting and deleting a reference pixel block having a least expected usage number.

2. The method of claim 1 , wherein step A further comprises:

obtaining data requests for decoding the predetermined number of subsequent pixel blocks; and

calculating the expected usage numbers of the cached reference pixel blocks based on reference motion vectors contained in the data requests.

3. The method of claim 1 , further comprising:

responsive to a determination that the reference pixel block corresponding to the reference motion vector has been cached in the cache memory, providing the reference pixel block to the video decoder.

4. The method of claim 1 , wherein the cached reference pixel blocks are cached in respective cache units of the cache memory, and each cache unit uses the reference motion vector of the reference pixel block cached therein as a cache tag.

5. The method of claim 1 , wherein each reference pixel block is a decoded pixel block.

6. A data caching apparatus for a video decoder, comprising:

a cache memory configured to cache a plurality of reference pixel blocks;

a cache usage recorder configured to record historical usage condition for the plurality of reference pixel blocks cached in the cache memory, wherein the historical usage condition indicates a least recently used record of a cached reference pixel block and relative usage time of each pixel block cached in the cache memory;

a cache controller configured to receive a data request from the video decoder, wherein the data request is for requesting one or more reference pixel blocks to decode a present pixel block, and the data request contains one or more reference motion vectors each corresponding to a reference pixel block; and

a block usage number counter configured to obtain data requests for decoding a predetermined number of subsequent pixel blocks after the present pixel block, and determine an expected usage number for each of the reference pixel blocks cached in the cache memory based on the data requests, wherein the expected usage number indicates how many times the corresponding cached reference pixel block will be used in decoding of the predetermined number of subsequent pixel blocks; and

wherein the cache controller is further configured to: responsive to a determination that a reference pixel block corresponding to the reference motion vector used for decoding the present pixel block has not been cached in the cache memory, select and delete one of the cached reference pixel blocks according to the expected usage numbers and historical usage conditions of the cached reference pixel blocks, cache a reference pixel block corresponding to the reference motion vector from an external memory into the cache memory based on the reference motion vector, and provide the corresponding reference pixel block to the video decoder;

wherein the cache controller is further configured to perform:

responsive to a determination of a first reference pixel block having an expected usage number of zero among the cached reference pixel blocks which are ordered according to the historical usage condition of the cached reference pixel blocks, selecting and deleting the first reference pixel block;

responsive to a determination that none of the reference pixel blocks have an expected usage number of zero and there are multiple reference pixel blocks having the same least expected usage number, selecting and deleting one of the multiple reference pixel blocks which is less recently used; and

responsive to a determination that none of the reference pixel blocks have an expected usage number of zero and there are no multiple reference pixel blocks having the same least expected usage number, selecting and deleting a reference pixel block having a least expected usage number.

7. The apparatus of claim 6 , wherein the cache controller is further configured to: responsive to a determination that the reference pixel block corresponding to the reference motion vector has been cached in the cache memory, provide the reference pixel block to the video decoder.

8. The apparatus of claim 6 , wherein the cache memory comprises a plurality of cache units, the cached reference pixel blocks are cached in the plurality of cache units of the cache memory, and each cache unit uses the reference motion vector of the reference pixel block cached therein as a cache tag.

9. The apparatus of claim 6 , wherein each reference pixel block is a decoded pixel block.

10. A video decoding system, comprising

a video decoder, and

a data caching apparatus, wherein the data caching apparatus comprises:

a cache memory configured to cache a plurality of reference pixel blocks;

a cache usage recorder configured to record historical usage condition for the plurality of reference pixel blocks cached in the cache memory, wherein the historical usage condition indicates a least recently used record of a cached reference pixel block and relative usage time of each pixel block cached in the cache memory;

a cache controller configured to receive a data request from the video decoder, wherein the data request is for requesting one or more reference pixel blocks to decode a present pixel block, and the data request contains one or more reference motion vectors each corresponding to a reference pixel block; and

a block usage number counter configured to obtain data requests for decoding a predetermined number of subsequent pixel blocks after the present pixel block, and determine an expected usage number for each of the reference pixel blocks cached in the cache memory based on the data requests, wherein the expected usage number indicates how many times the corresponding cached reference pixel block will be used in decoding of the predetermined number of subsequent pixel blocks; and

wherein the cache controller is further configured to: responsive to a determination that a reference pixel block corresponding to the reference motion vector used for decoding the present pixel block has not been cached in the cache memory, select and delete one of the cached reference pixel blocks according to the expected usage numbers and historical usage conditions of the cached reference pixel blocks, cache a reference pixel block corresponding to the reference motion vector from an external memory into the cache memory based on the reference motion vector, and provide the corresponding reference pixel block to the video decoder;

wherein the cache controller is further configured to perform:

responsive to a determination of a first reference pixel block having an expected usage number of zero among the cached reference pixel blocks which are ordered according to the historical usage condition of the cached reference pixel blocks, selecting and deleting the first reference pixel block;

responsive to a determination that none of the reference pixel blocks have an expected usage number of zero and there are multiple reference pixel blocks having the same least expected usage number, selecting and deleting one of the multiple reference pixel blocks which is less recently used; and

responsive to a determination that none of the reference pixel blocks have an expected usage number of zero and there are no multiple reference pixel blocks having the same least expected usage number, selecting and deleting a reference pixel block having a least expected usage number.

Assignments (3)
SECURITY INTEREST Recorded Apr 24, 2024
From: MONTAGE LZ SEMICONDUCTOR (SHANGHAI) CO., LTD.; MONTAGE LZ TECHNOLOGIES (CHENGDU) CO., LTD.
To: RENLAI ELECTRONIC TECHNOLOGIES (SHANGHAI) CO., LTD.
Reel/Frame 067200/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2017
From: MONTAGE TECHNOLOGY (SHANGHAI) CO., LTD.
To: MONTAGE LZ SEMICONDUCTOR (SHANGHAI) CO., LTD.; MONTAGE LZ TECHNOLOGIES (CHENGDU) CO., LTD.
Reel/Frame 043908/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2016
From: QIU, ZHIMIN; WANG, HUANXIN
To: MONTAGE TECHNOLOGY (SHANGHAI) CO., LTD.
Reel/Frame 041210/0117 →
Priority Claims (1)
CN 2016 1 0835486 · Sep 20, 2016 · national
Continuity (1)
Related Publication 20180084269A1 · Mar 22, 2018
Cited By (2)
US 12,489,912 US 12,689,756