A method of coding a moving picture reduces blocking artifacts. The method includes defining pixel sets S0, S1, S2 around a block boundary, selectively determining a deblocking mode as a default mode or a dc offset mode depending on the degree of blocking artifacts. If the default mode is selected, frequency information is obtained around the block boundary per pixel using a 4-point DCT kernel, for example, a magnitude of a discontinuous component belonging to the block boundary is replaced with a minimum magnitude of discontinuous components belonging to the surroundings of the block boundary in the frequency domain and the replacing step is applied to the spatial domain. If the dc offset mode is selected and a determination is made to perform dc offset mode, the blocking artifacts in a smooth region are removed in the dc offset mode.

Patent
   RE42693
Priority
Sep 09 1997
Filed
Sep 07 2007
Issued
Sep 13 2011
Expiry
Apr 24 2018

TERM.DISCL.
Assg.orig
Entity
Large
0
103
EXPIRED
0. 20. A method for removing blocking artifacts in a coding system comprising:
determining at least pixel sets S0, S1, S2 around a block boundary;
selecting one of a default mode and a dc offset mode as a deblocking mode based on an amount of blocking artifacts;
deblocking filtering of pixels adjacent the block boundary based on a simple inner product of a DCT kernel and pixels adjacent to the block boundary, if the default mode is selected; and
removing artifacts in the dc offset mode, if the dc offset mode is selected and a dc offset mode condition is satisfied, wherein the artifacts are removed in the dc offset mode according to the following equation:
v n = 4 k = - 4 b k · p n + k , 1 n 8
Pm=(|v1−v0|<QP)?v0:v1,
if m<1;
vm, if 1≦m≦8;
(|v8−v9|<QP)?v9:v8, if m>8;
{bk; −4≦k≦4}={1,1,2,2,4,2,2,1,1}//16
wherein v0−v9 are boundary pixels, QP is the quantization parameter of a block adjacent the block boundary, and vn is an adjusted pixel value,
wherein bk and pn+k are variables used to calculate the adjusted pixel value vn where n is an integer among 1, 2, 3, 4, 5, 6, 7, and 8,
wherein bk changes according to a value of k where k is one of −4, −3, −2, −1, 0, 1, 2, 3, 4,
wherein pn+k is decided according to pm where m=n+k and m is an integer,
wherein Pm is one of boundary pixels values v0 to v9 according to given conditions of (|v1−v0|<QP) and (|v8−v9|<QP) and a value of m.
0. 1. A method for removing blocking artifacts in a coding system of a moving picture comprising the steps of:
determining a plurality of pixel sets around a block boundary;
selecting one of a first mode and a second mode as a deblocking mode based on a degree of blocking artifacts;
performing an analysis, if the first mode is selected, comprising,
obtaining frequency information for each of the plurality of pixel sets,
replacing a magnitude of at least one discontinuous component in the frequency domain of a selected pixel set of the plurality of pixel sets belonging to the block boundary with a magnitude of at least one corresponding discontinuous component belonging to a replacement pixel set of the plurality of pixel sets near the block boundary, and
applying the replaced frequency information of the selected pixel set to the spatial domain to remove the blocking artifacts; and
removing the blocking artifacts in the second mode, if the second mode is selected and a second mode condition is satisfied.
0. 2. The method as claimed in claim 1, wherein the magnitude of the discontinuous component of the selected pixel set is replaced with a minimum value of a magnitude of discontinuous components of one of a first pixel set and a second pixel set when the selected pixel set is located across the block boundary and the first and second pixel sets are located within a block adjacent the block boundary.
0. 3. The method of claim 1, further comprising determining a mode decision value, wherein the second mode is selected if the mode decision value is greater than a first threshold value.
0. 4. The method as claimed in claim 3, wherein mode decision value is determined based on the following equation:

mode decision value=φ(v0−v1)+φ(v1−v2)+φ(v2−v3)+φ(v3−v4)+φ(v4−v5)+φ(v5−v1)+φ(v7−v8)+φ(v8−v9),
wherein φ(γ)=1 when |γ|≦ a second threshold value and φ(γ)=0 otherwise, and wherein v0−v9 are boundary pixel values.
0. 5. The method as claimed in claim 1, wherein the second mode condition is satisfied when an absolute value of a maximum data value minus a minimum data value in block boundary pixels is smaller than 2QP, wherein the maximum data value=MAX(v1, v2, v3, v4, v5, v6, v7, v8), the minimum data value=MIN(v1, v2, v3, v4, v5, v6, v7, v8), QP is the quantization parameter of a block adjacent the block boundary and v1−v8 are pixels.
0. 6. The method as claimed in claim 1, wherein the second mode performs low pass filtering to remove the blocking artifacts.
0. 7. The method as claimed in claim 1, wherein the deblocking filtering in the default mode is performed by replacing the magnitude of the discontinuous component of pixels v4 and v5 that sandwich the block boundary with v4′ and v5′, according to the following equation:
v4′=v4−d
v5′=v5+d
d=CLIP(c2.(a3,0′−a3,0)//c3,0,(v4−v5)/2)*δ(|a3,0|<QP)
a3,0′=SIGN(a3,0)*MIN(|a3,0|,|a3,1|,|a3,2|)
a3,0=([c1−c2 c2−c1]*[v3v4v5v6]T)//c3
a3,1=([c1−c2 c2−c1]*[v1v2v3v4]T)//c3
a3,2=([c1−c2 c2−c1]*[v5v6v7v8]T)//c3,
where QP is the quantization parameter of the block containing the pixel v5, values c1, c2, c3 are kernel constants used in a DCT, and values of a3,0, a3,1, a3,2 are the discontinuous component in each of the plurality of pixel sets, respectively.
0. 8. The method as claimed in claim 7, wherein c1 and c2 are approximated to an integer and c3 is approximated to a multiple of 2, wherein the DCT is a 4-point DCT used to determine the frequency information, and wherein a3,0, a3,1, a3,2 are evaluated from an inner product of the DCT kernel and the selected pixel set being S0, a first pixel set S1 and a second pixel set S2.
0. 9. The method as claimed in claim 7, wherein |a3,0|<QP prevents over-smoothing.
0. 10. The method as claimed in claim 1, further comprising performing the deblocking filtering process around horizontal and vertical block boundaries in a frame.
0. 11. The method of claim 1, wherein the removing blocking artifacts in the second mode satisfies the following equation:
v n = 4 k = - 4 b k · p n + k , 1 n 8
Pm=(|v1−v0<QP)?v0:v1,
if m<1;
vm, if 1≦m≦8;
(|v8−v9|<QP) v9: v8, if m>8;
{bk:−4≦k≦4}={1,1,2,2,4,2,2,1,1}//16,
where v0−v9 are boundary pixels, QP is the quantization parameter of a block adjacent the block boundary, and vn is an adjusted pixel value.
0. 12. The method of claim 1, wherein the replacement pixel set contains a minimum magnitude of the at least one corresponding discontinuous component.
0. 13. The method of claim 1, wherein the first mode is the default mode and the second mode is the dc offset mode, and wherein each of the plurality of pixel sets has four pixels.
0. 14. A method for removing blocking artifacts in a coding system comprising:
determining at least pixel sets S0, S1, S2 around a block boundary;
selecting one of a default mode and a dc offset mode as a deblocking mode based on an amount of blocking artifacts;
deblocking filtering of pixels adjacent the block boundary if the default mode is selected; and
removing artifacts in the dc offset mode, if the dc offset mode is selected and a dc offset mode condition is satisfied, wherein the artifacts are removed in the dc offset mode according to the following equation:
v n = 4 k = - 4 b k · p n + k , 1 n 8
Pm=(|v1−v0|<QP)?v0:v1,
if m<1;
vm, if 1≦m≦8;
(|v8−v9|<QP) v9:v8, if m>8;
{bk:−4≦k≦4}={1,1,2,2,4,2,2,1,1}//16,
wherein v0−v9 are boundary pixels, QP is the quanatation parameter of a block adjacent the block boundary, and vn is an adjusted pixel value.
0. 15. The method of claim 14, wherein the deblocking filtering step comprises:
obtaining frequency information for each of the plurality of pixel sets S0, S1, S2;
replacing a magnitude of at least one discontinuous component in the frequency domain of a selected pixel set S0 of the plurality of pixel sets belonging to the block boundary with a magnitude of at least one corresponding discontinuous component belonging to a replacement pixel set S1, S2 of the plurality of pixel sets near the block boundary; and
applying the replaced frequency information of the selected pixel set S0 to the spatial domain to remove the blocking artifacts.
0. 16. The method of claim 14, further comprising determining a mode decision value, wherein the dc offset mode is selected if the mode decision value is greater than a first threshold value, wherein mode decision value is determined based on the following equation:

mode decision value=φ(v0−v1)+φ(v1−v2)+φ(v2−v3)+φ(v3−v4)+φ(v4−v5)+φ(v5−v1)+φ(v7−v8)+φ(v8−v9),
wherein φ(γ)=1 when |γ|≦ a second threshold value and φ(γ)=0 otherwise, and wherein v0−v9 are boundary pixel values.
0. 17. The method of claim 14, wherein the dc offset mode condition is satisfied when an absolute value of a maximum data value minus a minimum data value in block boundary pixels is smaller than 2QP, wherein the maximum data value=MAX(v1, v2, v3, v4, v5, v6, v7, v8), the minimum data value=MIN(v1, v2, v3, v4, v5, v6, v7, v8), QP is the quantization parameter of a block adjacent the block boundary and v1−v8 are the block boundary pixels.
0. 18. The method of claim 14, wherein the deblocking filtering in the default mode is performed by replacing the magnitude of the discontinuous component of pixels v4 and v5 sandwiching the block boundary with v4′ and v5′, according to the following equation:
v4′=v4−d
v5′=v5+d
d=CLIP(c2.(a3,0′−a3,0)//c3,0,(v4−v5)/2)*δ(|a3,0|<QP
a3,0′=SIGN(a3,0)*MIN(|a3,0|,|a3,1|,|a3,2|)
a3,0=([c1−c2 c2−c1]*[v3v4v5v6]T)//c3
a3,1=([c1−c2 c2−c1]*[v1v2v3v4]T)//c3
a3,2=([c1−c2 c2−c1]*[v5v6v7v8]T)//c3,
where QP is the quantization parameter of the block containing the pixel v5, values c1, c2, c3 are kernel constants used in a 4-point DCT, and values of a3,0, a3,1, a3,2 are based on a simple inner product of the DCT kernel and the selected pixel set S0, a first pixel set S1 and the second pixel set S2.
0. 19. The method of claim 14, further comprising performing the determining through removing steps for each horizontal and vertical block boundaries in a frame.
0. 21. The method of claim 20, wherein the deblocking filtering step comprises:
obtaining frequency information for each of the plurality of pixel sets S0, S1, S2;
replacing a magnitude of at least one discontinuous component in the frequency domain of a selected pixel set S0 of the plurality of pixel sets belonging to the block boundary with a magnitude of at least one corresponding discontinuous component belonging to a replacement pixel set S1, S2 of the plurality of pixel sets near the block boundary; and
applying the replaced frequency information of the selected pixel set S0 to the spatial domain to remove the blocking artifacts.
0. 22. The method of claim 20, futher comprising determining a mode decision value, wherein the dc offset mode is selected if the mode decision value is greater than a first threshold value, wherein mode decision value is determined based on the following equation:
mode decision value=φ(v0−v1)+φ(v1−v2)+φ(v2−v3)+φ(v3−v4)+φ(v4−v5)+φ(v5−v1)+φ(v7−v8)+φ(v8−v9),
wherein φ(γ)=1 when |γ|≦ a second threshold value and φ(γ)=0 otherwise,
wherein v0−v9 are boundary pixel values, and
wherein φ(γ) is a function generating 1 or 0 according to |γ| and γ is a variable denoting a result of substraction of two given boundary pixel values.
0. 23. The method of claim 20, wherein the dc offset mode condition is satisfied when an absolute value of a maximum data value minus a minimum data value in block boundary pixels is smaller than 2QP, wherein the maximum data value=MAX(v1, v2, v3, v4, v5, v6, v7, v8), the minimum data value=MIN(v1, v2, v3, v4, v5, v6, v7, v8), and QP is the quantization parameter of a block adjacent the block boundary and v1−v8 are the block boundary pixels.
0. 24. The method of claim 20, wherein the deblocking filtering in the default mode is performed by replacing the magnitude of the discontinuous component of pixels v4 and v5 sandwiching the block boundary with v4′ and v5′, according to the following equation:
v4′=v4−d
v5′=v5+d
d=CLIP(c2·(a3,0′−a3,0)//c3,0,(v4−v5)/2)*δ(|a3,0|<QP)
a3,0′=SIGN(a3,0)*MIN(|a3,0|,|a3,1|,|a3,2|)
a3,0=([c1−c2 c2−c1]*[v3v4v5v6]T)//c3
a3,1=([c1−c2 c2−c1]*[v1v2v3v4]T)//c3
a3,2=([c1−c2 c2−c1]*[v5v6v7v8]T)//c3,
where QP is the quantization parameter of the block containing the pixel v5, values c1, c2, c3 are kernel constants used in a 4-point DCT, and values of a3,0, a3,1, a3,2, are based on a simple inner product of the DCT kernel and the selected pixel set S0, a first pixel set S1 and the second pixel set S2, and
wherein a3,0, a3,1, and a3,2 represent DCT coefficients of corresponding pixel sets,
wherein d is a variable used to calculate v4′ and v5′ and denotes a result of a function CLIP (x, p, q) where x, p, and q are integers,
wherein the function CLIP (x, p, q) clips x to a value between p and q,
wherein δ(condition) is a function generating 1 if the “condition” is true and generating 0 if the “condition” is not true,
wherein T denotes a transpose of vector matrix, and
wherein v1, v2, v3, v4, v5, v6, v7, and v8 denote boundary pixel values.
0. 25. The method of claim 20, further comprising performing the determining through removing steps for each horizontal and vertical block boundaries in a frame.
0. 26. The method of claim 20, further comprising dividing a picture into blocks that each include multiple pixels, wherein the pixels of a first block are separated from pixels of a neighboring second block by the block boundary,
wherein deblocking filtering of the pixels adjacent the block boundary further comprises adjusting a first pixel of the first block based upon a neighboring second pixel of the second block.
0. 27. The method of claim 26, wherein the simple inner product of the DCT kernel and the first and second pixels is expressed by:
a 3 , 0 = ( [ c 1 - c 2 c 2 - c 1 } * { v 2 v 3 v 4 v 5 ] T ) c 3 a 3 , 1 = ( [ c 1 - c 2 c 2 - c 1 } * { v 0 v 1 v 2 v 3 ] T ) c 3 a 3 , 2 = ( [ c 1 - c 2 c 2 - c 1 } * { v 4 v 5 v 6 v 7 ] T ) c 3 ,
wherein values of a3,0, a3,1, and a3,2 represent DCT coefficients of corresponding pixel sets,
c1, c2, and c3 represent kernel constant coefficients,
v0, v1, v2, v3, v4, v5, v6, and v7 denote boundary pixel values, and
T denotes a transpose of vector matrix.
0. 28. The method of claim 26,
wherein adjusting the first pixel further comprises replacing a pixel value v3 of the first pixel with a value v3′,
wherein the value v3′ is expressed as:
v3′=v3−d,
wherein d is expressed as:
d = CLIP ( c 2 ( a 3 , 0 - a 3 , 0 ) // c 3 , 0 , ( v 3 - v 4 ) 2 ) * δ ( a 3 , 0 < QP ) ,
wherein a3,0′ is expressed as:

a3,0′=SIGN(a3,0)*MIN(|a3,0|, |a3,1|, |a3,2|),
wherein QP represents a quantization paramter of the second block, c2, and c3 represent DCT kernel coefficients, and v4 represents a pixel value of the neighboring second pixel,
wherein values of a3,0, a3,1, and a3,2, represent DCT coefficients of corresponding pixel sets,
wherein d is a variable used to calculate v3′ and denotes a result of a function CLIP (x, p, q) where x, p, and q are integers,
wherein the function CLIP (x, p, q) clips x to a value between p and q, and
wherein δ(condition) is a function generating 1 if the “condition” is true and generating 0 if the “condition” is not true.
0. 29. The method of claim 28, wherein δ(|a3,0|<QP)=1 if |a3,0|<QP, and wherein δ(|a3,0|<QP)=0 if |a3,0|≧QP.
0. 30. The method of claim 28, wherein c2 is an interger and c3 is a multiple of 2.
0. 31. The method of claim 30, wherein c2=5 and c3=8.
0. 32. The method of claim 26, further comprising applying the adjusting operation to a spatial domain of the first pixel.
0. 33. The method of claim 26, wherein the block boundary is a vertical or horizontal block boundary.
0. 34. The method of claim 26, further comprising adjusting the neighboring second pixel based upon frequency information of the first pixel.
0. 35. The method of claim 26, wherein the magnitude of the adjusting operation is constrained to be no greater than half of the difference between a value of the first pixel and a value of the second pixel, using a clipping function.
0. 36. The method of claim 26, wherein the magnitude of the adjusting operation is based upon a minimum magnitude of frequency information of the first and second pixels.
0. 37. The method of claim 26, wherein the magnitude of the adjusting operation is based upon frequency information of the first pixel and the neighboring second pixel.
0. 38. The method of claim 26, further comprising obtaining the frequency information for the neighboring second pixel, wherein the first pixel is adjusted if a magnitude of the blocking artificat is less than a quantization parameter of the second block.

If m<1;