IP Library Granted Patent US 8,270,498
Granted Patent B2
US 8,270,498 · App. 12/463,859 · Granted Sep 18, 2012

Dynamic dithering for video compression

Assignee: Apple Inc.
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,270,498
App. No.
12/463,859
Granted
Sep 18, 2012
Kind
B2
Abstract

A method and device for dithering video from a decoder. The method and device provide: selecting a segment of video frames from the video; computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment; determining contours of quantization artifacts within the video frame based on the noise map and a histogram of pixel values in the video frame; computing a gradient measurement of pixel values along the contours; identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement; determining a dithering strength based on the noise map and the gradient measurement; and applying dithering noise to the identified regions at the determined dithering strength.

Claims (84)

1. A method for dithering video, comprising:

selecting a segment of video frames from the video;

computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment;

determining contours of quantization artifacts within the segment based on the noise map and a histogram of pixel values in the segment;

computing a gradient measurement of pixel values along the contours;

identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement;

determining a dithering strength based on the noise map and the gradient measurement; and

applying dithering noise to the identified regions at the determined dithering strength.

2. The method of claim 1 , wherein the segment of video frames includes only one video frame.

3. The method of claim 1 , wherein the segment of video includes more than one video frame.

4. The method of claim 1 , wherein the noise map includes an array of elements each representing a pixel location.

5. The method of claim 1 , wherein the noise map includes an array of elements each representing a location of a block of pixels.

6. The method of claim 1 , wherein the computing of the noise map is based on band-pass filtering the segment.

7. The method of claim 6 , wherein the band-pass filtering is a difference of gaussians filtering.

8. The method of claim 1 , wherein the computing of the noise map is based on a plurality of WSAD values each representing a weighted sum of absolute differences among pixels of a block of pixels, each WSAD value determined from a different sampling pattern taken across the block of pixels.

9. The method of claim 8 , wherein the noise map is further determined based on a confidence interval as a function of the plurality of WSAD values.

10. The method of claim 8 , wherein the different sampling pattern includes pairs of pixels.

11. The method of claim 8 , wherein the different sampling pattern is generated randomly.

12. The method of claim 1 , wherein the contours are represented by pixel locations.

13. The method of claim 1 , wherein the contours are represented by locations of pixel blocks.

14. The method of claim 1 , wherein the quantization artifacts include banding artifacts.

15. The method of claim 14 , wherein the banding artifacts are caused by video quantization.

16. The method of claim 15 , wherein the determining of the contours of banding artifacts is based on a detection of peaks in a statistical measurement of the noise map.

17. The method of claim 1 , wherein the computing of the gradient measurement is based on shift differences among adjacent blocks of pixels in up, down, left, or right direction.

18. The method of claim 17 , wherein the shift differences are directional to at least one of the up, down, left, and right directions.

19. The method of claim 17 , wherein the shift differences are isotropic to directions.

20. The method of claim 17 , wherein the gradient measurement is a sum of shift differences in the up, down, left, and right directions.

21. A method for dithering video and transmiting dithering information from a custom encoder over a communication channel, comprising:

(a) selecting a segment of video frames from the video;

(b) computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment;

(c) determining contours of quantization artifacts within the segment based on the noise map and a histogram of pixel values in the segment;

(d) computing a gradient measurement of pixel values along the contours;

(e) identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement;

(f) determining a dithering strength based on the noise map and the gradient measurement;

(g) transmitting the video and dithering information over the communication channel to a decoder, the dithering information including the contours of quantization artifacts, the identified regions along the contours, and the determined dithering strength.

22. The method of claim 21 , further comprising:

decoding the bitstream into the video at the decoder; and

dithering the video based on the dithering information.

23. The method of claim 21 , wherein the performance of steps (a)-(g) occurs only when the decoder has limited resources.

24. The method of claim 21 , wherein the encoder decodes the bitstream using an in-loop decoder built in the encoder.

25. The method of claim 21 , wherein the communication channel is wired.

26. The method of claim 21 , wherein the communication channel is wireless.

27. The method of claim 21 , wherein the quantization artifacts include banding artifacts.

28. A method for dithering video to be encoded in an encoder, comprising:

selecting a segment of video frames from the video;

computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment;

determining contours of quantization artifacts within the segment based on the noise map and a histogram of pixel values in the segment;

computing a gradient measurement of pixel values along the contours;

identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement;

determining a dithering strength based on the noise map and the gradient measurement;

applying dithering noise to the identified regions at the determined dithering strength,

encoding the dithered video at the encoder.

29. A device for dithering a video, comprising:

a processor configured to perform:

selecting a segment of video frames from the video;

computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment;

determining contours of quantization artifacts within the segment based on the noise map and a histogram of pixel values in the segment;

computing a gradient measurement of pixel values along the contours;

identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement;

determining a dithering strength based on the noise map and the gradient measurement; and

applying dithering noise to the identified regions at the determined dithering strength.

30. A non-transitory machine-readable medium stored thereon codes configured to perform a method for dithering video from a decoder, comprising:

selecting a segment of video frames from the video;

computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment;

determining contours of quantization artifacts within the segment based on the noise map and a histogram of pixel values in the segment;

computing a gradient measurement of pixel values along the contours;

identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement;

determining a dithering strength based on the noise map and the gradient measurement; and

applying dithering noise to the identified regions at the determined dithering strength.

31. A method for dithering video from a decoder, comprising:

computing directional shift differences for a video frame;

determining contours of quantization artifacts in the video frame based on the directional shift differences and a histogram of pixel values in the video frame;

computing a gradient measurement of pixel values along the contours;

identifying regions along the contours of quantization artifacts to apply dithering based on the gradient measurement;

determining a dithering strength based on the gradient measurement; and

applying dithering noise to the identified regions at the determined dithering strength.

32. The method of claim 31 , wherein the directional shift differences are computed in at least one of the up, down, left, and right directions.

33. A method comprising:

selecting a segment of video frames from a video;

computing a noise map for the segment of the video, the noise map computed from differences among pixels selected from spatially-distributed sampling patterns in the segment;

determining contours of quantization artifacts within the segment based on the noise map and a histogram of pixel values in the segment;

computing a gradient measurement of pixel values along the contours;

identifying regions along the contours of quantization artifacts to apply dithering based on the noise map and the gradient measurement; and

determining a dithering strength based on the noise map and the gradient measurement.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2009
From: FILIPPINI, GIANLUCA; WU, HSI-JUNG; NORMILE, JIM; SHI, XIAOJIN; ZHOU, XIAOSONG; HRISTODORESCU, IONUT
To: APPLE INC.
Reel/Frame 023007/0754 →
Continuity (2)
Provisional Application 61163658 · Mar 26, 2009
Related Publication 20100246689A1 · Sep 30, 2010