IP Library Granted Patent US 10,200,706
Granted Patent B2
US 10,200,706 · App. 15/876,015 · Granted Feb 5, 2019

Pipelined video decoder system

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,200,706
App. No.
15/876,015
Granted
Feb 5, 2019
Kind
B2
Abstract

Efficient decoding of video content that may involve intra block copy operations, such as copying pixel data from one region of a frame to another region of the same frame is described. For example, a method to decode the video content may involve identifying the video frame in which intra block copy operation is to be performed, prior to the intra block copy operation being initiated. A video decoder may prefetch the pixel data from the source region to a local buffer with low memory latency such that the source pixel data to be copied into the destination blocks in the video frame is readily available. Thus, costly, and time consuming memory access may be avoided, and in turn a video decoding pipeline may operate smoothly without any stalling.

Claims (44)

1. A device comprising:

at least one circuit configured to:

decode a current block within a frame of video data, the frame comprised of a plurality of blocks;

identify an intra-block copy request (IBC request) for the current block, wherein the IBC request comprises copying content from a source block to the current block of the frame, wherein the source block is within the frame and has been decoded; and

copy the content of the source block to the current block.

2. The device of claim 1 , wherein the at least one circuit is further configured to:

pre-fetch the content of the source block prior to completion of decoding of the current block.

3. The device of claim 1 , wherein the at least one circuit is further configured to filter decoded blocks of the video data.

4. The device of claim 3 , wherein, an internal memory is configured to store a predetermined number of decoded blocks within the frame of the video data, the frame being currently decoded by the device.

5. The device of claim 4 , wherein the predetermined number of decoded blocks stored within the internal memory are stored prior to a block copy operation of the device.

6. The device of claim 5 , wherein the decoded blocks, prior to the block copy operation, are further stored in an external memory.

7. The device of claim 6 , wherein memory latency of the internal memory is lower than memory latency of the external memory.

8. A method comprising:

receiving, using at least one circuit, a frame, the frame divided into a plurality of blocks;

decoding, using the at least one circuit, a block from among the blocks of the frame; and

decoding, using the at least one circuit, another block from among the blocks of the frame, the decoding the another block comprising copying contents of the decoded block of the frame as decoded contents of the another block, wherein the block is different than the another block.

9. The method of claim 8 , further comprising:

filtering, using circuitry, the decoded block of the frame; and

storing, using circuitry, the filtered block of the frame in a memory storage device, for display.

10. The method of claim 9 , further comprising:

storing, using the at least one circuit, at least a part of the decoded block of the frame, prior to filtering, in a local buffer.

11. The method of claim 10 , wherein, copying the contents of the decoded block comprises copying at least part of the contents of the decoded block from a memory storage device.

12. The method of claim 11 , wherein, copying the contents of the decoded block further comprises copying at least part of the contents of the decoded block from the local buffer.

13. The method of claim 8 , wherein the received frame is received from a source device for screen casting.

14. A computer program product comprising code stored in a non-transitory computer-readable medium, the code comprising:

code to receive video data, the video data comprising a plurality of video frames, each video frame of the video frames further comprising blocks of pixels;

code to decode a first block of pixels;

code to identify an intra block copy instruction associated with decoding a second block of pixels; and

code to, in response to the intra block copy instruction, copy part of the decoded first block of pixels to the second block of pixels.

15. The computer program product of claim 14 , wherein the intra block copy instruction identifies the first block of pixels as a source of contents for the second block of pixels.

16. The computer program product of claim 15 , wherein the code further comprises:

code to filter the decoded first block of pixels; and

code to store the filtered first block of pixels for display.

17. The computer program product of claim 15 , wherein the code further comprises:

code to, in response to the intra block copy instruction, copy part of a decoded third block of pixels to the second block of pixels, wherein the intra block copy instruction further identifies the third block of pixels as another source of contents for the second block of pixels.

18. The computer program product of claim 14 , wherein the code further comprises:

code to parse the intra block copy instruction to determine one or more source blocks for the intra block copy instruction for the second block of pixels, wherein contents of the one or more source blocks are copied into the second block of pixels;

code to identify one or more locations of the one or more source blocks for the intra block copy instruction; and

code to copy contents from the one or more source blocks from the identified one or more locations into the second block of pixels.

19. The computer program product of claim 18 , wherein:

the first block of pixels is identified as a source block for the intra block copy instruction and a location of the first block of pixels is identified as a first memory device; and

a third block of pixels is identified as another source block for the intra block copy instruction and a location of the third block of pixels is identified as a second memory device that has a higher latency than the first memory device.

20. The computer program product of claim 19 , wherein the code further comprises:

code to identify the one or more locations of the one or more source blocks for the intra block copy instruction based on a predetermined number of blocks of pixel stored in the first memory device.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048549/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2018
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 047821/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2018
From: HELLMAN, TIMOTHY MOORE
To: BROADCOM CORPORATION
Reel/Frame 047822/0210 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047231/0369 →