IP Library Granted Patent US 8,902,994
Granted Patent B1
US 8,902,994 · App. 13/951,203 · Granted Dec 2, 2014

Deblocking filtering

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 8,902,994
App. No.
13/951,203
Granted
Dec 2, 2014
Kind
B1
Abstract

This disclosure describes tools capable of generating messages for use in deblocking filtering a video stream, the messages based on prediction parameters extracted from the video stream.

Claims (38)

1. A method comprising:

receiving, from a video stream processor, prediction parameters for blocks of pixels of a decoded video stream;

generating, based on the prediction parameters, data structures usable for deblocking filtering the decoded video stream;

writing the data structures usable for deblocking filtering the decoded video stream to a data queue of a pixel processor configured to perform the deblocking filtering; and

outputting a return value to the video stream processor effective to indicate to the video stream processor that the data structures have been written to the pixel processor.

2. The method as recited in claim 1 , wherein the blocks of pixels are chroma macroblocks or luma macroblocks of the decoded video stream.

3. The method as recited in claim 1 , wherein the decoded video stream comprises blocking artifacts from prior encoding of the decoded video stream, the artifacts reducing a visual quality of video rendered from the decoded video stream, and wherein the data structures are usable to reduce or eliminate some or all of the artifacts.

4. The method as recited in claim 1 , further comprising storing the return value until the data structures are written to the data queue of the pixel processor.

5. The method as recited in claim 1 , wherein generating the data structures comprises calculating loop filter parameters based on properties of the blocks of pixels of the decoded video stream.

6. The method as recited in claim 5 , wherein the blocks of pixels of the decoded video stream share a vertical or horizontal edge with a current block of pixels of the decoded video stream that has not yet been deblocking filtered and for which the data structures are usable for deblocking filtering.

7. The method as recited in claim 5 , wherein calculating the loop filter parameters calculates boundary strength parameters.

8. A filter operation accelerator comprising:

a filter operation calculation block configured to

receive, from a video stream processor, prediction parameters for blocks of pixels of a decoded video stream;

generate, based on the prediction parameters, data structures and a return value, the data structures usable for deblocking filtering the decoded video stream, the return value indicating whether deblocking filtering is to be performed for one or more of the blocks of pixels, and

write the data structures usable for deblocking filtering the decoded video stream to a data queue of a pixel processor configured to perform the deblocking filtering; and

an output buffer configured to

store the return value until the data structures are written to the data queue of the pixel processor; and

output the return value to the video stream processor effective to indicate to the video stream processor that the data structures have been written to the pixel processor.

9. The filter operation accelerator as recited in claim 8 , wherein the filter operation calculation block is further configured to calculate loop filter parameters based on properties of the blocks of pixels of the decoded video stream and provide the loop filter parameters via the data structures, and wherein the pixel processor is further configured to deblocking filter the decoded video stream using the loop filter parameters.

10. The filter operation accelerator as recited in claim 9 , wherein the blocks of pixels of the decoded video stream share a vertical or horizontal edge with a current block of pixels of the decoded video stream that has not yet been deblocking filtered and for which the data structures are usable for deblocking filtering.

11. The filter operation accelerator as recited in claim 9 , wherein calculating loop filter parameters calculates boundary strength parameters based on information about macro block edges of macro blocks neighboring a current macro block of the decoded video stream that has not yet been deblocking filtered and for which the data structures are usable for deblocking filtering.

12. The filter operation accelerator as recited in claim 11 , wherein calculating boundary strength parameters is further based at least in part on intra-coding or frame coding.

13. The filter operation accelerator as recited in claim 9 , wherein the filter operation calculation block is further configured to use lookup tables based on data extracted from the decoded video stream to calculate the loop filter parameters.

14. The filter operation accelerator as recited in claim 9 , wherein generating the data structures comprises calculating the loop filter parameters for blocks of pixels that share a vertical or horizontal edge with a current block of pixels of the decoded video stream that has not yet been deblocking filtered and for which the data structures are usable for deblocking filtering.

15. A System-on-Chip comprising:

a video stream processor configured to generate prediction parameters for blocks of pixels decoded from a video stream;

a pixel processor having a data queue and configured to perform deblocking operations;

a filter operation calculation block configured to

receive, from the video stream processor, the prediction parameters for the respective blocks of pixels;

generate, based on the prediction parameters, data structures and a return value, the data structures usable for deblocking filtering the decoded video stream, the return value indicating whether deblocking filtering is to be performed for one or more of the blocks of pixels, and

write the data structures usable for deblocking filtering the decoded video stream to a data queue of the pixel processor configured to perform the deblocking filtering; and

output the return value to the video stream processor effective to indicate to the video stream processor that the data structures have been written to the pixel processor.

16. The System-on-Chip as recited in claim 15 , wherein the filter operation calculation block is further configured to calculate loop filter parameters based on properties of the blocks of pixels of the decoded video stream and to provide the loop filter parameters in the data structures, and wherein the pixel processor is further configured to deblocking filter the decoded video stream using the loop filter parameters.

17. The System-on-Chip as recited in claim 16 , wherein the blocks of pixels of the decoded video stream share a vertical or horizontal edge with a current block of pixels of the decoded video stream that has not yet been deblocking filtered and for which the data structures are usable for deblocking filtering.

18. System-on-Chip as recited in claim 16 , wherein calculating loop filter parameters calculates boundary strength parameters based on information about macro block edges of macro blocks neighboring a current macro block of the decoded video stream that has not yet been deblocking filtered and for which the data structures are usable for deblocking filtering.

19. The System-on-Chip as recited in claim 18 , wherein calculating boundary strength parameters is further based at least in part on intra-coding or frame coding.

20. The System-on-Chip as recited in claim 16 , wherein the filter operation calculation block is further configured to use lookup tables based on data extracted from the decoded video stream to calculate the loop filter parameters.

Assignments (2)
SECURITY INTEREST Recorded Sep 27, 2017
From: SYNAPTICS INCORPORATED
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 044037/0896 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2017
From: MARVELL INTERNATIONAL LTD.
To: SYNAPTICS INCORPORATED; SYNAPTICS LLC
Reel/Frame 043853/0827 →