IP Library Granted Patent US 10,575,021
Granted Patent B2
US 10,575,021 · App. 14/412,830 · Granted Feb 25, 2020

Controlling deblocking filtering

Inventor: Andrey Norkin (Solna, SE)
Assignee: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
H04N19/86H04N19/119H04N19/126H04N19/182H04N19/80
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,575,021
App. No.
14/412,830
Granted
Feb 25, 2020
Kind
B2
Abstract

Pixel values of pixels ( 12, 14, 16, 22, 24, 26 ) in a line ( 15 ) of pixels ( 12, 14, 16, 18, 22, 24, 26, 28 ) are filtered with a strong deblocking filter to obtain filtered pixel values. Each filtered pixel value is clipped off to a respective clipping parameter value defined based on a position of the pixel ( 12, 14, 16, 22, 24, 26 ) relative to a block boundary ( 2 ) between two adjacent blocks ( 10, 20 ) of pixels ( 12, 14, 16, 18, 22, 24, 26, 28 ). The clipping parameter values change at least linearly depending in the pixel position relative to the block boundary ( 2 ) so that pixels ( 12, 16 ) in the line ( 15 ) of pixels ( 12, 14, 16, 18, 22, 24, 26, 28 ) having different positions from the block boundary ( 2 ) will have different clipping parameter values.

Claims (183)

1. A filtering control method, the method being performed in a system comprising a memory and a processor, the method comprising:

filtering pixel values of pixels in a line of pixels in a block of pixels with a strong deblocking filter to obtain filtered pixel values, the line of pixels comprising a first pixel, a second pixel, and a third pixel, the first pixel being closer to a block boundary than the second pixel, and the second pixel being closer to the block boundary than the third pixel; and

for each filtered pixel value in said line of pixels:

determining whether the filtered pixel is within a respective range defined from a minimum value, equal to the unfiltered pixel value minus a respective clipping parameter value for that pixel, to a maximum value, equal to the unfiltered pixel value plus the respective clipping parameter value, the clipping parameter value indicating a maximum permissible modification for that pixel; and

upon determining that filtered pixel value exceeds the respective range, clipping off said filtered pixel value to a clipped filtered pixel value that is within the respective range;

wherein the respective clipping parameter value is defined based on a position of said pixel relative to the block boundary between said block of pixels and a neighboring block of pixels; and

wherein the clipping parameter values are defined to change at least approximately linearly with distance from the block boundary such that the third pixel in said line of pixels has a smaller clipping parameter value than the second pixel.

2. The filtering control method according to claim 1 , further comprising defining said clipping parameter values to form a straight line depending on the distance from the block boundary of each respective first, second, and third pixels.

3. The filtering control method according to claim 1 , wherein clipping off said filtered pixel value comprises calculating, for each filtered pixel value, a clipped filtered pixel value x′=Clip3(A, B, x) defined as x′=x, or if x<A then x′=A, or if x>B then x′=B, wherein x denotes said filtered pixel value of said pixel, A=p x −tcX and B=p x +tcX, p x denotes a pixel value of said pixel and tcX denotes said clipping parameter value for said pixel.

4. The filtering control method according to claim 1 , further comprising calculating said clipping parameter values to be (tc×3+1)>>1 for the first pixel, relative to said block boundary, in said line of pixels, tc for the second pixel, relative to said block boundary, in said line of pixels and (tc+1)>>1 for the third pixel, relative to said block boundary, in said line of pixels, wherein tc is a parameter that depends on a quantization parameter value associated with said block of pixels and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

5. The filtering control method according to claim 1 , further comprising calculating said clipping parameter values to be tc1=((tc<<1)+tc+1)>>2 for the second pixel, relative to said block boundary in said line of pixels, (tc1×3+1)>>1 for the first pixel, relative to said block boundary, in said line of pixels and (tc1+1)>>1 for the third pixel, relative to said block boundary, in said line of pixels, wherein tc is a parameter that depends on a quantization parameter value associated with said block of pixels and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

6. The filtering control method according to claim 1 , wherein filtering said pixel values comprises calculating said filtered pixel values according to:

p 0 ′=( p 2 +2× p 1 +2× p 0 +2× q 0 +q 1 +4)>>3

p 1 ′=( p 3 +2× p 2 +2× p 1 +P+ 2× q 0 +4)>>3

p 2 ′=(3× p 3 +3× p 2 +p+q 0 +4)>>3

wherein p 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 2 represents a pixel value of the third pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 3 represents a pixel value of a fourth pixel, relative to said block boundary, in said line of pixels in said block of pixels, q 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, q 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, p 0 ′ represents a filtered pixel value for said first pixel in said line of pixels in said block of pixels, p 1 ′ represents a filtered pixel value for said second pixel in said line of pixels in said block of pixels, p 2 ′ represents a filtered pixel value for said third pixel in said line of pixels in said block of pixels, and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

7. The filtering control method according to claim 1 , wherein filtering said pixel values comprises calculating said filtered pixel values according to:

p 0 ′=( p 2 +2× p 1 +2× p 0 +2× q 0 +q 1 +4)>>3

p 1 ′=( p 3 +3× p 2 +2× p 1 +q 0 +q 1 +4)>>3

p 2 ′=(3 ×p 3 +4× p 2 +q 0 +4)>>3

wherein p 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 2 represents a pixel value of the third pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 3 represents a pixel value of a fourth pixel, relative to said block boundary, in said line of pixels in said block of pixels, q 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, q 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, p 0 ′ represents a filtered pixel value for said first pixel in said line of pixels in said block of pixels, p 1 ′ represents a filtered pixel value for said second pixel in said line of pixels in said block of pixels, p 2 ′ represents a filtered pixel value for said third pixel in said line of pixels in said block of pixels, and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

8. The filtering control method according to claim 1 , wherein filtering said pixel values comprises calculating said filtered pixel values according to:

p 0 ′=( p 2 +2× p 1 +2× p 0 +2× q 0 +q 1 +4)>>3

p 1 ′=( p 2 +p 1 +p 0 +q 0 +2)>>2

p 2 ′=(2 ×p 3 +3× p 2 +p+p 0 +q 0 +4)>>3

wherein p 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 2 represents a pixel value of the third pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 3 represents a pixel value of a fourth pixel, relative to said block boundary, in said line of pixels in said block of pixels, q 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, q 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, p 0 ′ represents a filtered pixel value for said first pixel in said line of pixels in said block of pixels, p 1 ′ represents a filtered pixel value for said second pixel in said line of pixels in said block of pixels, p 2 ′ represents a filtered pixel value for said third pixel in said line of pixels in said block of pixels, and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

9. A filtering control device comprising:

a filtering unit configured to filter pixel values of pixels in a line of pixels in a block of pixels with a strong deblocking filter to obtain filtered pixel values, the line of pixels comprising a first pixel, a second pixel, and a third pixel, the first pixel being closer to a block boundary than the second pixel, and the second pixel being closer to the block boundary than the third pixel; and

a clipping unit configured to, for each filtered pixel value in said line of pixels:

determine whether the filtered pixel is within a respective range defined from a minimum value, equal to the unfiltered pixel value minus a respective clipping parameter value for that pixel, to a maximum value, equal to the unfiltered pixel value plus the respective clipping parameter value, the clipping parameter value indicating a maximum permissible modification for that pixel; and

upon determining that the filtered pixel value exceeds the respective range, clip off said filtered pixel value to a clipped filtered pixel value that is within the respective range;

wherein the respective clipping parameter value is defined based on a position of said pixel relative to the block boundary between said block of pixels and a neighboring block of pixels; and

wherein the clipping parameter values are defined to change at least approximately linearly with distance from the block boundary such that the third pixel in said line of pixels has a smaller clipping parameter value than the second pixel.

10. A filtering control device comprising:

a processing unit comprising at least one processor; and

a memory comprising instructions executable by said processing unit, whereby said filtering control device is configured to:

filter pixel values of pixels in a line of pixels in a block of pixels with a strong deblocking filter to obtain filtered pixel values, the line of pixels comprising a first pixel, a second pixel, and a third pixel, the first pixel being closer to a block boundary than the second pixel, and the second pixel being closer to the block boundary than the third pixel; and

for each filtered pixel value in said line of pixels:

determine whether the filtered pixel is within a respective range defined from a minimum value, equal to the unfiltered pixel value minus a respective clipping parameter value for that pixel, to a maximum value, equal to the unfiltered pixel value plus the respective clipping parameter value, the clipping parameter value indicating a maximum permissible modification for that pixel; and

upon determining that the filtered pixel value exceeds the respective range, clip off said filtered pixel value to a clipped filtered pixel value that is within the respective range;

wherein the respective clipping parameter value is defined based on a position of said pixel relative to the block boundary between said block of pixels and a neighboring block of pixels; and

wherein the clipping parameter values are defined to change at least approximately linearly with distance from the block boundary such that the third pixel in said line of pixels has a smaller clipping parameter value than the second pixel.

11. A computer program stored on a non-transitory computer-readable medium, said computer program comprising code which when executed by a processor causes said processor to:

filter pixel values of pixels in a line of pixels in a block of pixels with a strong deblocking filter to obtain filtered pixel values, the line of pixels comprising a first pixel, a second pixel, and a third pixel, the first pixel being closer to a block boundary than the second pixel, and the second pixel being closer to the block boundary than the third pixel; and

for each filtered pixel value in said line of pixels:

determine whether the filtered pixel is within a respective range defined from a minimum value, equal to the unfiltered pixel value minus a respective clipping parameter value for that pixel, to a maximum value, equal to the unfiltered pixel value plus the respective clipping parameter value, the clipping parameter value indicating a maximum permissible modification for that pixel; and

upon determining that the filtered pixel value exceeds the respective range, clip off said filtered pixel value to a clipped filtered pixel value that is within the respective range;

wherein said respective clipping parameter value is defined based on a position of said pixel relative to the block boundary between said block of pixels and a neighboring block of pixels; and

wherein the clipping parameter values are defined to change at least approximately linearly with distance from the block boundary such that the third pixel in said line of pixels has a smaller clipping parameter value than the second pixel.

12. A computer program product stored on a non-transitory computer-readable medium, the computer program product comprising computer readable code means and a computer program according to claim 11 stored on said computer readable code means.

13. A filtering system comprising:

a processor; and

a memory comprising instructions executable by said processor, whereby said filtering system is operative to:

filter pixel values of pixels in a line of pixels in a block of pixels with a strong deblocking filter to obtain filtered pixel values, the line of pixels comprising a first pixel, a second pixel, and a third pixel, the first pixel being closer to a block boundary than the second pixel, and the second pixel being closer to the block boundary than the third pixel; and

for each filtered pixel value in said line of pixels:

determine whether the filtered pixel is within a respective range defined from a minimum value, equal to the unfiltered pixel value minus a respective clipping parameter value for that pixel, to a maximum value, equal to the unfiltered pixel value plus the respective clipping parameter value, the clipping parameter value indicating a maximum permissible modification for that pixel; and

upon determining that the filtered pixel value exceeds the respective range, clip off said filtered pixel value to a clipped filtered pixel value that is within the respective range;

wherein the respective clipping parameter value is defined based on a position of said pixel relative to the block boundary between said block of pixels and a neighboring block of pixels; and

wherein the clipping parameter values are defined to change at least approximately linearly with distance from the block boundary such that the third pixel in said line of pixels has a smaller clipping parameter value than the second pixel.

14. The filtering system according to claim 13 , wherein said clipping parameter values form a straight line depending on a distance of said pixel from said block boundary.

15. The filtering system according to claim 13 , wherein said filtering system is further configured to calculate, for each filtered pixel value, a clipped filtered pixel value x′=Clip3(A, B, x) defined as x′=x, or if x<A then x′=A, or if x>B then x′=B, wherein x denotes said filtered pixel value of said pixel, A=p x −tcX and B=p x +tcX, p x denotes a pixel value of said pixel and tcX denotes said clipping parameter value for said pixel.

16. The filtering system according to claim 13 , wherein the system is further configured to calculate said clipping parameter values to be (tc×3+1)>>1 for the first pixel, relative to said block boundary, in said line of pixels, tc for the second pixel, relative to said block boundary, in said line of pixels and (tc+1)>>1 for the third pixel, relative to said block boundary, in said line of pixels, wherein tc is a parameter that depends on a quantization parameter value associated with said block of pixels and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

17. The filtering system according to claim 13 , wherein the system is further configured to calculate said clipping parameter values to be tc1=((tc<<1)+tc+1)>>2 for the second pixel, relative to said block boundary, in said line of pixels, (tc1×3+1)>>1 for the first pixel, relative to said block boundary, in said line of pixels and (tc1+1)>>1 for the third pixel, relative to said block boundary, in said line of pixels, wherein tc is a parameter that depends on a quantization parameter value associated with said block of pixels and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

18. The filtering system according to claim 13 , wherein said filtering system is further configured to calculate said filtered pixel values according to:

p 0 ′=( p 2 +2× p 1 +2× p 0 +2× q 0 +q 1 +4)>>3

p 1 ′=( p 3 +2× p 2 +2× p 1 +p 0 +2× q 0 +4)>>3

p 2 ′=(3 ×p 3 +3× p 2 ++q 0 +4)>>3

wherein p 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 2 represents a pixel value of the third pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 3 represents a pixel value of a fourth pixel, relative to said block boundary, in said line of pixels in said block of pixels, q 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, q 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, p 0 ′ represents a filtered pixel value for said first pixel in said line of pixels in said block of pixels, p 1 ′ represents a filtered pixel value for said second pixel in said line of pixels in said block of pixels, p 2 ′ represents a filtered pixel value for said third pixel in said line of pixels in said block of pixels, and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

19. The filtering system according to claim 13 , wherein said filtering system is further configured to calculate said filtered pixel values according to:

p 0 ′=( p 2 +2× p 1 +2× p 0 +2× q 0 +q 1 +4)>>3

p 1 ′=( p 3 +3× p 2 +2× p 1 +q 0 +q 1 +4)>>3

p 2 ′=(3 ×p 3 +4× p 2 +q 0 +4)>>3

wherein p 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 2 represents a pixel value of the third pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 3 represents a pixel value of a fourth pixel, relative to said block boundary, in said line of pixels in said block of pixels, q 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, q 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, p 0 ′ represents a filtered pixel value for said first pixel in said line of pixels in said block of pixels, p 1 ′ represents a filtered pixel value for said second pixel in said line of pixels in said block of pixels, p 2 ′ represents a filtered pixel value for said third pixel in said line of pixels in said block of pixels, and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

20. The filtering system according to claim 13 , wherein said filtering system is further configured to calculate said filtered pixel values according to:

p 0 ′=( p 2 +2× p 1 +2× p 0 +2× q 0 +q 1 +4)>>3

p 1 ′=( p 2 +p 1 +p 1 +q 0 +2)>>2

p 2 ′=(2 ×p 3 +3× p 2 +p 1 +p 0 +q 0 +4)>>3

wherein p 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 2 represents a pixel value of the third pixel, relative to said block boundary, in said line of pixels in said block of pixels, p 3 represents a pixel value of a fourth pixel, relative to said block boundary, in said line of pixels in said block of pixels, q 0 represents a pixel value of the first pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, q 1 represents a pixel value of the second pixel, relative to said block boundary, in said line of pixels in said neighboring block of pixels, p 0 ′ represents a filtered pixel value for said first pixel in said line of pixels in said block of pixels, p 1 ′ represents a filtered pixel value for said second pixel in said line of pixels in said block of pixels, p 2 ′ represents a filtered pixel value for said third pixel in said line of pixels in said block of pixels, and >> represents a right shift operator defined as

a

>>

b

=

a

2

b

and └c┘ is a largest integer not greater than c.

21. An encoder comprising a filtering system according to claim 13 .

22. A network node in a communication network, said network node comprising an encoder according to claim 21 .

23. A decoder comprising a filtering system according to claim 13 .

24. A user equipment comprising a decoder according to claim 23 .

25. The method of claim 1 , further wherein each of the respective clipping parameter values for the first, second, and third pixels are calculated using a quantization parameter value associated with said block of pixels.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2015
From: NORKIN, ANDREY
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 035022/0472 →
Continuity (2)
Provisional Application 61667501 · Jul 3, 2012
Related Publication 20150146795A1 · May 28, 2015
Cited By (3)
US 12,192,534 US 12,445,646 US 12,501,081