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
   RE42660
Priority
Sep 09 1997
Filed
Aug 06 2007
Issued
Aug 30 2011
Expiry
Apr 24 2018

TERM.DISCL.
Assg.orig
Entity
Large
0
103
EXPIRED
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.
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.
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.
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, and
wherein φ(γ) is a function generating 1 or 0 according to |γ| to γ is a variable denoting a result of substraction of two given boundary pixel values.
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.
6. The method as claimed in claim 1, wherein the second mode performs low pass filtering to remove the blocking artifacts.
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
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, and
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 ture and generating 0 if the “condition” is not ture,
wherein T denotes a transpose of vector matrix, and
wherein v1, v2, v3, v4, v5, v6, v7, and v8 denote boundary pixel values.
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.
9. The method as claimed in claim 7, wherein |a3,0|< QP prevents over-smoothing.
10. The method as claimed in claim 1, further comprising performing the deblocking filtering process around horizontal and vertical block boundaries in a frame.
11. The method of claim 1, wherein the removing blocking artifacts in the second mode satisfies the following equation:
v n = k = - 4 4 b k · p n + k , 1 n 8
Pm=(|v1−v0<QP)?v0:v1, Pm=(|v1−v0|<QP)?v0:v1,
if m<1;
vm, if 1≦m≦8;
(|v8−v9|<QP) v9:v8, if 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,
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 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.
12. The method of claim 1, wherein the replacement pixel set contains a minimum magnitude of the at least one corresponding discontinuous component.
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 = k = - 4 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}={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.