IP Library Granted Patent US 8,526,509
Granted Patent B2
US 8,526,509 · App. 13/583,437 · Granted Sep 3, 2013

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,526,509
App. No.
13/583,437
Granted
Sep 3, 2013
Kind
B2
Abstract

Blocking artifacts at a block boundary ( 1 ) between a block ( 10 ) and a neighboring block ( 20 ) in a video frame are reduced by calculating an offset based on pixel values of pixels ( 11, 13 ) in a line ( 12 ) of pixels ( 11, 13, 15, 17 ) in the block ( 10 ) and based on pixel values of pixels ( 21, 23 ) in a corresponding line ( 22 ) of pixels ( 21, 23, 25, 27 ) in the neighboring block ( 20 ). The offset is added to the pixel value of the pixel ( 11 ) closest to the block boundary ( 1 ) in the line ( 12 ) of pixels ( 11, 13, 15, 17 ) and is subtracted from the pixel value of the pixel ( 21 ) closest to the block boundary ( 1 ) in the corresponding line ( 22 ) of pixels ( 21, 23, 25, 27 ). The resulting deblocking filter has good low-pass characteristics and is efficient for reducing blocking artifact.

Claims (62)

1. A method of reducing blocking artifacts at a block boundary between a block of multiple pixels and a neighboring block of multiple pixels in a video frame, said method comprises:

a deblocking filter unit calculating a first offset to be equal to (9×(q 0 −p 0 )−3×(q 1 −pl)+8)>>4, wherein >> denotes a right shift operation, p 0 denotes a pixel value of a pixel closest to said block boundary in a line of pixels in said block, wherein said line of pixels is perpendicular to said block boundary, p 1 denotes a pixel value of a pixel next closest to said block boundary in said line of pixels, q 0 denotes a pixel value of a pixel closest to said block boundary in a corresponding line of pixels in said neighboring block, wherein said corresponding line of pixels is perpendicular to said block boundary and q 1 denotes a pixel value of a pixel next closest to said block boundary in said corresponding line of pixels;

the deblocking filter unit modifying said pixel value p 0 of said pixel closest to said block boundary in said line of pixels by adding said first offset to said pixel value p 0 of said pixel closest to said block boundary in said line of pixels to form a modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels; and

the deblocking filter unit modifying said pixel value q 0 of said pixel closest to said block boundary in said corresponding line of pixels by subtracting said first offset from said pixel value q 0 of said pixel closest to said block boundary in said corresponding line of pixels to form a modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels.

2. The method according to claim 1 , further comprising clipping said first offset to be within an interval of −t C and t C by setting said first offset to be equal to −t C if said first offset is smaller than −t C and by setting said first offset to be equal to t C if said first offset is larger than t C , wherein t C is a threshold value that is dependent on a quantization parameter value assigned to said block.

3. The method according to claim 1 , further comprising:

clipping said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels to be within an interval of zero and a defined maximum value by setting said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels to be equal to zero if said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels is smaller than zero and by setting said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels to be equal to said defined maximum value if said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels is larger than said defined maximum value; and

clipping said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels to be within an interval of zero and said defined maximum value by setting said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels to be equal to zero if said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels is smaller than zero and by setting said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels to be equal to said defined maximum if said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels is larger than said defined maximum value.

4. The method according to claim 1 , further comprising:

calculating a second offset to be based on (p 2 +p 0 =2×p 1 +2×Δ)/4, wherein p 2 denotes a pixel value of a pixel second next closest to said block boundary in said line of pixels and A denotes said first offset;

calculating a third offset to be based on (q 2 +q 0 −2×ql−2×Δ)/4, wherein q 2 denotes a pixel value of a pixel second next closest to said block boundary in said corresponding line of pixels;

modifying said pixel value p 1 of said pixel next closest to said block boundary in said line of pixels by adding said second offset to said pixel value p 1 of said pixel next closest to said block boundary in said line of pixels to form a modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels; and

modifying said pixel value ql of said pixel next closest to said block boundary in said corresponding line of pixels by adding said third offset to said pixel value ql of said pixel next closest to said block boundary in said corresponding line of pixels to form a modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels.

5. The method according to claim 4 , wherein

calculating said second offset comprises calculating said second offset to be equal to (((p 2 +p 0 + 1 )>>1)−p 1 +Δ)>>1, wherein >> denotes a right shift operation; and

calculating said third offset comprises calculating said third offset to be equal to (((q 2 +q 0 + 1 )>>1)−ql −Δ)>>1.

6. The method according to claim 4 , further comprising:

clipping said second offset to be within an interval of −t C2 and t C2 by setting said second offset to be equal to −t C2 if said second offset is smaller than −t C2 and by setting said second offset to be equal to t C2 if said second offset is larger than t C2 , wherein t C2 is a threshold value that is dependent on a quantization parameter value assigned to said block; and

clipping said third offset within an interval of −t C2 and t C2 by setting said third offset to be equal to −t C2 if said third offset is smaller than −t C2 and by setting said third offset to be equal to t C2 if said third offset is larger than t C2 .

7. The method according to claim 4 , further comprising:

clipping said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels to be within an interval of zero and a defined maximum value by setting said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels to be equal to zero if said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels is smaller than zero and by setting said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels to be equal to said defined maximum value if said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels is larger than said defined maximum value; and

clipping said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels to be within an interval of zero and said defined maximum value by setting said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels to be equal to zero if said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels is smaller than zero and by setting said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels to be equal to said defined maximum if said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels is larger than said defined maximum value.

8. The method according to claim 4 , further comprising:

calculating a fourth offset to be based on (p 3 +p 1 −2×p 2 +2×Δ p1 )/4, wherein p 3 denotes a pixel value of a pixel third next closest to said block boundary in said line of pixels and Δ p1 denotes said second offset; and

calculating a fifth offset to be based on (q 3 +q 1 −2×q 2 +2×Δ q1 )/4, wherein q 3 denotes a pixel value of a pixel third closest to said block boundary in said corresponding line of pixels and Δ q1 denotes said third offset;

modifying said pixel value p 2 of said pixel second next closest to said block boundary in said line of pixels by adding said fourth offset to said pixel value p 2 of said pixel second next closest to said block boundary in said line of pixels to form a modified pixel value p 2 ′ of said pixel second next closest to said block boundary in said line of pixels; and

modifying said pixel value q 2 of said pixel second next closest to said block boundary in said corresponding line of pixels by adding said fifth offset to said pixel value q 2 of said pixel second next closest to said block boundary in said corresponding line of pixels to form a modified pixel value q 2 ′ of said pixel second next closest to said block boundary in said corresponding line of pixels.

9. The method according to claim 8 , wherein

calculating said fourth offset comprises calculating said fourth offset to be equal to (((p 3 +p 1 +1)>>1)−p 2 +Δ p1 ) 1 , wherein >>denotes a right shift operation; and

calculating said fifth offset comprises calculating said fifth offset to be equal to (((q 3 +q 1 +1)>>1)−q 2 +Δ q1 )>>1.

10. A deblocking filter unit for reducing blocking artifacts at a block boundary between a block of multiple pixels and a neighboring block of multiple pixels in a video frame, comprising:

a first offset calculator configured to calculate a first offset to be equal to (9×(q 0 −p 0 )−3×)q 1 −p 1 )+8)>>4, wherein >> denotes a right shift operation, p 0 denotes a pixel value of a pixel closest to said block boundary in a line of pixels in said block, wherein said line of pixels is perpendicular to said block boundary, p 1 denotes a pixel value of a pixel next closest to said block boundary in said line of pixels, q 0 denotes a pixel value of a pixel closest to said block boundary in a corresponding line of pixels in said neighboring block, wherein said corresponding line of pixels is perpendicular to said block boundary, and q 1 denotes a pixel value of a pixel next closest to said block boundary in said corresponding line of pixels; and

a pixel value modifier configured to modify said pixel value p 0 of said pixel closest to said block boundary in said line of pixels by adding said first offset to said pixel value p 0 of said pixel closest to said block boundary in said line of pixels to form a modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels and to modify said pixel value q 0 of said pixel closest to said block boundary in said corresponding line of pixels by subtracting said first offset from said pixel value q 0 of said pixel closest to said block boundary in said corresponding line of pixels to form a modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels.

11. The deblocking filter unit according to claim 10 , further comprising a first clipping unit configured to clip said first offset within an interval of −t C and t C by setting said first offset to be equal to −t C if said first offset is smaller than −t C and by setting said first offset to be equal to t C if said first offset is larger than t C , wherein t C is a threshold value that is dependent on a quantization parameter value assigned to said block.

12. The deblocking filter unit according to claim 10 , further comprising a second clipping unit configured to clip said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels to be within an interval of zero and a defined maximum value by setting said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels to be equal to zero if said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels is smaller than zero and by setting said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels to be equal to said defined maximum value if said modified pixel value p 0 ′ of said pixel closest to said block boundary in said line of pixels is larger than said defined maximum value and to clip said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels to be within an interval of zero and said defined maximum value by setting said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels to be equal to zero if said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels is smaller than zero and by setting said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels to be equal to said defined maximum if said modified pixel value q 0 ′ of said pixel closest to said block boundary in said corresponding line of pixels is larger than said defined maximum value.

13. The deblocking filter unit according to claim 10 , further comprising:

a second offset calculator configured to calculate a second offset to be based on (p 2 +p 0 −2×p 1 +2×Δ)/4, wherein p 2 denotes a pixel value of a pixel second next closest to said block boundary in said line of pixels and Δ denotes said first offset; and

a third offset calculator configured to calculate a third offset to be based on (q 2 +q 0 −2×q 1 −2×Δ)/4, wherein q 2 denotes a pixel value of a pixel second next closest to said block boundary in said corresponding line of pixels,

wherein said pixel value modifier is configured to modify said pixel value p 2 of said pixel second next closest to said block boundary in said line of pixels by adding said fourth offset to said pixel value p 2 of said pixel second next closest to said block boundary in said line of pixels to form a modified pixel value p 2 ′ of said pixel second next closest to said block boundary in said line of pixels and to modify said pixel value q 2 of said pixel second next closest to said block boundary in said corresponding line of pixels by adding said fifth offset to said pixel value q 2 of said pixel second next closest to said block boundary in said corresponding line of pixels to form a modified pixel value q 2 ′ of said pixel second next closest to said block boundary in said corresponding line of pixels.

14. The deblocking filter unit according to claim 13 , wherein

said second offset calculator is configured to calculate said second offset to be equal to (((p 2 +p 0 +1)>>1)−p 1 +Δ)>>1, wherein >> denotes a right shift operation; and

said third offset calculator is configured to calculate said third offset to be equal to (((q 2 +q 0 +1)>>1)−q 1 −Δ)>>1.

15. The deblocking filter unit according to claim 13 , further comprising a third clipping unit configured to clip said second offset to be within an interval of −t C2 and t C2 by setting said second offset to be equal to −t C2 if said second offset is smaller than −t C2 and by setting said second offset to be equal to t C2 if said second offset is larger than t C2 , wherein t C2 is a threshold value that is dependent on a quantization parameter value assigned to said block, and to clip said third offset within an interval of −t C2 and t C2 by setting said third offset to be equal to −t C2 if said third offset is smaller than −t C2 and by setting said third offset to be equal to t C2 if said third offset is larger than t C2 .

16. The deblocking filter unit according to claim 13 , further comprising a second clipping unit configured to clip said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels to be within an interval of zero and a defined maximum value by setting said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels to be equal to zero if said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels is smaller than zero and by setting said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels to be equal to said defined maximum value if said modified pixel value p 1 ′ of said pixel next closest to said block boundary in said line of pixels is larger than said defined maximum value, and to clip said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels to be within an interval of zero and said defined maximum value by setting said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels to be equal to zero if said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels is smaller than zero and by setting said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels to be equal to said defined maximum if said modified pixel value q 1 ′ of said pixel next closest to said block boundary in said corresponding line of pixels is larger than said defined maximum value.

17. The deblocking filter unit according to claim 13 , further comprising:

a fourth offset calculator configured to calculate a fourth offset to be based on (p 3 +p 1 −2×p 2 +2×Δ p1 )/4, wherein p 3 denotes a pixel value of a pixel third next closest to said block boundary in said line of pixels and Δ p1 denotes said second offset; and a fifth offset calculator configured to calculate a fifth offset to be based on (q 3 +q 1 −2×q 2 +2×Δ q1 )/4, wherein q 3 denotes a pixel value of a pixel third closest to said block boundary in said corresponding line of pixels and Δ q1 denotes said third offset,

wherein said pixel value modifier is configured to modify said pixel value p 2 of said pixel second next closest to said block boundary in said line of pixels by adding said fourth offset to said pixel value p 2 of said pixel second next closest to said block boundary in said line of pixels to form a modified pixel value p 2 ′ of said pixel second next closest to said block boundary in said line of pixels, and to modify said pixel value q 2 of said pixel second next closest to said block boundary in said corresponding line of pixels by adding said fifth offset to said pixel value q 2 of said pixel second next closest to said block boundary in said corresponding line of pixels to form a modified pixel value q 2 ′ of said pixel second next closest to said block boundary in said corresponding line of pixels.

18. The deblocking filter unit according to claim 17 , wherein

said fourth offset calculator is configured to calculate calculating said fourth offset to be equal to (((p 3 +p 1 +1)>>1)−p 2 +Δ p1 )>>1, wherein >> denotes a right shift operation; and

said fifth offset calculator is configured to calculate said fifth offset to be equal to (((q 3 +q 1 +1)>>1)−q 2 +Δ q1 )>>1.

19. An encoder comprising a deblocking filter unit according to claim 10 .

20. A network device being or belonging to a network node in a communication network between a sending unit and a receiving user equipment, said network device comprises an encoder according to claim 19 .

21. A decoder comprising a deblocking filter unit according to claim 10 .

22. A user equipment comprising:

a memory configured to store encoded video frames;

a decoder according to claim 21 configured to decode said encoded video frames into decoded video frames; and

a media player configured to render said decoded video frames into video data displayable on a display.

23. A network device being or belonging to a network node in a communication network between a sending unit and a receiving user equipment, said network device comprising a decoder according to claim 21 .

24. A computer program product comprising a non-transitory computer readable medium and a computer program stored on said computer readable medium, said computer program for reducing blocking artifacts at a block boundary between a block of multiple pixels and a neighboring block of multiple pixels in a video frame, said computer program comprising code means which when run on a computer causes the computer to:

calculate a first offset to be equal to (9×(q 0 −p 0 )−3×( q 1 −p 1 )+8)>>4, wherein >> denotes a right shift operation, p 0 denotes a pixel value of a pixel closest to said block boundary in a line of pixels in said block, wherein said line of pixels is perpendicular to said block boundary, p 1 denotes a pixel value of a pixel next closest to said block boundary in said line of pixels, q 0 denotes a pixel value of a pixel closest to said block boundary in a corresponding line of pixels in said neighboring block, wherein said corresponding line of pixels is perpendicular to said block boundary, and q 1 denotes a pixel value of a pixel next closest to said block boundary in said corresponding line of pixels;

modify said pixel value of said pixel closest to said block boundary in said line of pixels by adding said first offset to said pixel value of said pixel closest to said block boundary in said line of pixels; and

modify said pixel value of said pixel closest to said block boundary in said corresponding line of pixels by subtracting said first offset from said pixel value of said pixel closest to said block boundary in said corresponding line of pixels.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2022
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 060923/0407 →
RELEASE OF SECURITY INTEREST Recorded Jul 20, 2022
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 060567/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: VELOS MEDIA, LLC
To: ERICSSON LLC
Reel/Frame 057583/0707 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: ERICSSON LLC
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 057583/0741 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2018
From: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
To: ERICSSON LLC
Reel/Frame 047526/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2018
From: ERICSSON LLC
To: VELOS MEDIA, LLC
Reel/Frame 047526/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2012
From: ANDERSSON, KENNETH; NORKIN, ANDREY; SJOBERG, RICKARD
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 028940/0352 →