IP Library › Granted Patent US 8,761,538
Granted Patent B2
US 8,761,538 · App. 12/332,240 · Granted Jun 24, 2014

Measurement-based and scalable deblock filtering of image data

Inventors: Rochelle Pereira (Sunnyvale, CA); Santanu Dutta (Sunnyvale, CA)
Assignee: NVIDIA Corporation
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,761,538
App. No.
12/332,240
Granted
Jun 24, 2014
Kind
B2
Abstract

In a deblocking operation, pixel values within a first block of pixels are compared, and pixel values in the first block are also compared to pixel values in a second block of pixels that is adjacent to the first block. Based on the results of the comparisons, a digital deblocking filter and a region of interest can be selected, where the region of interest identifies a number of pixels in the first block and a number of pixels in the second block to which the selected filter is to be applied.

Claims (31)

1. A computer-readable device having computer-executable instructions for performing a method of deblocking image data, the method comprising:

making a comparison of pixel values within a first block of pixels and also making a comparison of pixel values in the first block to pixel values in a second block of pixels that is adjacent to the first block;

based on results of the comparisons, selecting a digital deblock filter from a plurality of filters and also selecting a region of interest to which the deblock filter is to be applied, the region of interest comprising a first number of pixels in the first block and a second number of pixels in the second block, wherein the deblock filter is selected by:

calculating a first value for the first block of pixels and a second value for the second block of pixels, wherein the first value is based on a measure of differences between selected pixel values for the first block and selected pixel values for a first plurality of blocks adjacent to the first block and including the second block, the first value also based on a measure of deviations in a first plurality of pixel values for the first block, wherein further the second value is based on a measure of differences between selected pixel values for the second block and selected pixel values for a second plurality of blocks adjacent to the second block and including the first block, the second value also based on a measure of deviations in a second plurality of pixel values for the second block; and

using one of the first and second values as an index to select the deblock filter from the plurality of filters; and

applying the deblock filter to the region of interest to generate new pixel values for the first and second blocks.

2. The computer-readable device of claim 1 wherein the first number and the second number are based on the first value and the second value, respectively.

3. The computer-readable device of claim 1 wherein the method further comprises:

calculating the differences between the selected pixel values for the first block and the selected pixel values for the first plurality of blocks by subtracting pixel values for first pairs of adjacent pixels, each of the first pairs associated with a pixel in the first block and a pixel in the first plurality of blocks; and

calculating the differences between the selected pixel values in the second block and the selected pixel values in the second plurality of blocks by subtracting pixel values for second pairs of adjacent pixels, each of the second pairs associated with a pixel in the second block and a pixel in the second plurality of blocks.

4. The computer-readable device of claim 1 wherein the method further comprises:

incrementing a first counter value for each of the differences between the selected pixel values for the first block and the selected pixel values for the first plurality of blocks that exceeds a first threshold, and incrementing the first counter value again for each of the differences between the selected pixel values for the first block and the selected pixel values for the first plurality of blocks that exceeds both the first threshold and a second threshold, wherein the first value is based on the first counter value; and

incrementing a second counter value for each of the differences between the selected pixel values for the second block and the selected pixel values for the second plurality of blocks that exceeds the first threshold, and incrementing the second counter value again for each of the differences between the selected pixel values for the second block and the selected pixel values for the second plurality of blocks that exceeds both the first threshold and the second threshold, wherein the second value is based on the second counter value.

5. The computer-readable device of claim 4 wherein the first threshold is adjustable and user-defined, and wherein the second threshold is a constant multiple of the first threshold.

6. The computer-readable device of claim 1 wherein the method further comprises:

calculating a first weighted mean for the first plurality of pixel values;

calculating a second weighted mean for the second plurality of pixel values;

summing differences between the first plurality of pixel values and the first weighted mean to determine the deviations in the first plurality of pixel values; and

summing differences between the second plurality of pixel values and the second weighted mean to determine the deviations in the second plurality of pixel values.

7. The computer-readable device of claim 6 wherein the method further comprises:

weighting the differences between the first plurality of pixel values and the first weighted mean; and

weighting the differences between the second plurality of pixel values and the second weighted mean.

8. The computer-readable device of claim 1 wherein the first value is proportional to the differences between the selected pixel values for the first block and the selected pixel values for the first plurality of blocks and inversely proportional to the deviations in the first plurality of pixel values, wherein further the second value is proportional to the differences between the selected pixel values for the second block and the selected pixel values for the second plurality of blocks and inversely proportional to the deviations in the second plurality of pixel values.

9. The computer-readable device of claim 1 wherein the minimum of the first and second values is used as the index to select the deblock filter.

10. A system for decoding and deblocking image data, the system comprising:

a computer-readable memory that stores decoded image data comprising: a first block comprising pixels having first pixel values, and a second block adjacent to the first block and comprising pixels having second pixel values; and

a deblocker coupled to the memory that selects a digital deblock filter from a plurality of deblock filters and applies the deblock filter to a first number of the first pixel values and to a second number of the second pixel values, wherein the first number is based on differences between selected pixel values for the first block and selected pixel values for a first plurality of blocks including the second block, the first number also based on deviations among the first pixel values, wherein further the second number is based on differences between selected pixel values for the second block and selected pixel values for a second plurality of blocks including the first block, the second number also based on deviations among the second pixel values; and wherein the deblock filter is selected by indexing the plurality of filters with one of the first and second numbers.

11. The system of claim 10 wherein the deblocker is further operable for comparing each of the differences between the selected pixel values for the first block and the selected pixel values for the first plurality of blocks to a first threshold and to a second threshold and for incrementing a first counter value accordingly, wherein the first number is a function of the first counter value, wherein further the deblocker is also operable for comparing each of the differences between the selected pixel values for the second block and the selected pixel values for the second plurality of blocks to the first threshold and to the second threshold and for incrementing a second counter value accordingly, wherein the second number is a function of the second counter value.

12. The system of claim 11 further comprising a user interface coupled to the deblocker and operable for receiving a user input that defines the first threshold, wherein the second threshold is a constant multiple of the first threshold.

13. The system of claim 10 wherein the deblocker is further operable for calculating a first weighted mean for the first pixel values and then summing differences between the first pixel values and the first weighted mean to determine the deviations among the first pixel values, wherein further the deblocker is also operable for calculating a second weighted mean for the second pixel values and then summing differences between the second pixel values and the second weighted mean to determine the deviations among the second pixel values.

14. The system of claim 12 wherein the deblocker is further operable for weighting the differences between the first pixel values and the first weighted mean, wherein further the deblocker is also operable for weighting the differences between the second pixel values and the second weighted mean.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2008
From: PEREIRA, ROCHELLE; DUTTA, SANTANU
To: NVIDIA CORPORATION
Reel/Frame 021957/0845 →
Continuity (1)
Related Publication 20100142844A1 · Jun 10, 2010