U.S. patent application number 10/799384 was filed with the patent office on 2004-09-30 for adaptive filtering based upon boundary strength.
Invention is credited to Katata, Hiroyuki, Lei, Shawmin, Sun, Shijun.
Application Number | 20040190626 10/799384 |
Document ID | / |
Family ID | 25493827 |
Filed Date | 2004-09-30 |
United States Patent
Application |
20040190626 |
Kind Code |
A1 |
Sun, Shijun ; et
al. |
September 30, 2004 |
Adaptive filtering based upon boundary strength
Abstract
Adjacent regions are identified in an image. Coding parameters
for the adjacent regions are identified. Selective filtering is
performed at the region between the identified adjacent
regions.
Inventors: |
Sun, Shijun; (Vancouver,
WA) ; Lei, Shawmin; (Camas, WA) ; Katata,
Hiroyuki; (Chiba, JP) |
Correspondence
Address: |
CHERNOFF, VILHAUER, MCCLUNG & STENZEL
1600 ODS TOWER
601 SW SECOND AVENUE
PORTLAND
OR
97204-3157
US
|
Family ID: |
25493827 |
Appl. No.: |
10/799384 |
Filed: |
March 11, 2004 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10799384 |
Mar 11, 2004 |
|
|
|
PCT/JP02/09306 |
Sep 11, 2002 |
|
|
|
PCT/JP02/09306 |
Sep 11, 2002 |
|
|
|
09953329 |
Sep 14, 2001 |
|
|
|
Current U.S.
Class: |
375/240.18 ;
375/240.01; 375/240.12; 375/E7.129; 375/E7.135; 375/E7.138;
375/E7.161; 375/E7.162; 375/E7.164; 375/E7.176; 375/E7.19;
375/E7.194; 375/E7.211; 375/E7.241 |
Current CPC
Class: |
H04N 19/15 20141101;
H04N 19/172 20141101; H04N 19/117 20141101; H04N 19/197 20141101;
H04N 19/167 20141101; H04N 19/159 20141101; H04N 19/58 20141101;
H04N 19/176 20141101; H04N 19/139 20141101; H04N 19/14 20141101;
H04N 19/85 20141101; H04N 19/573 20141101; H04N 19/43 20141101;
H04N 19/137 20141101; H04N 19/82 20141101; H04N 19/136 20141101;
H04N 19/46 20141101; H04N 19/60 20141101; H04N 19/615 20141101;
H04N 19/527 20141101; H04N 19/124 20141101; H04N 19/61 20141101;
H04N 19/51 20141101; H04N 19/86 20141101; H04N 19/105 20141101;
H04N 19/196 20141101 |
Class at
Publication: |
375/240.18 ;
375/240.12; 375/240.01 |
International
Class: |
H04N 007/12 |
Claims
1. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
identifying coding parameters for said adjacent regions; (c)
identifying transform coefficients for said adjacent regions; (d)
identifying DC components and AC components in said transform
coefficients; and (e) selectively filtering at least a portion of
said regions proximate the boundary between said adjacent regions
wherein said selectively filtering is based upon a similarity of
said DC components and said AC components.
2. A method for at least one of encoding and decoding an image,
said method comprising: (a) identifying adjacent regions in said
image; (b) examining coding parameters for said adjacent regions;
(c) selectively filtering at least a portion of said regions
proximate a boundary between said adjacent regions based upon said
coding parameters; (d) identifying similarities between coding
parameters in a luminance channel of said adjacent regions; and (e)
controlling filtering for both the luminance channel and a
chrominance channel in said image according to said
similarities.
3. A method for at least one of encoding and decoding an image,
said method comprising: (a) identifying adjacent regions in said
image; (b) examining coding parameters for said adjacent regions;
(c) selectively filtering at least a portion of said regions
proximate a boundary between said adjacent regions based upon
whether at least one of said adjacent regions is intra-coded.
4. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said regions proximate
a boundary between said adjacent regions based upon whether at
least one of said adjacent regions is encoded with residuals.
5. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said regions proximate
a boundary between said adjacent regions said filtering based upon
determining whether at least two of said adjacent regions are
predicted based upon two different reference frames.
6. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said regions proximate
a boundary between said adjacent regions based upon determining
whether at least two of said adjacent regions have an absolute
difference of motion vectors that has a mathematical relationship
to a threshold value.
7. The method of claim 6 wherein said absolute difference is in a
first direction.
8. The method of claim 7 wherein said absolute difference is also
in a second direction different than said first direction.
9. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said regions proximate
a boundary between said adjacent regions based upon said coding
parameters and wherein said selectively filtering uses a first
filter when said adjacent regions are intra-coded.
10. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said regions proximate
the boundary between said adjacent regions based upon said coding
parameters, wherein said selectively filtering uses a first filter
when said adjacent regions are intra-coded and a second filter when
at least one of said adjacent regions is encoded with
residuals.
11. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said regions proximate
a boundary between said adjacent regions based upon said coding
parameters; (d) wherein said selectively filtering uses a first
filter when said adjacent regions are intra-coded, a second filter
when at least one of said adjacent regions is encoded with
residuals, and a third filter when said adjacent regions are
predicted based upon two different reference frames.
12. A method for at least one of encoding and decoding an image,
comprising: (a) identifying adjacent regions in said image; (b)
examining coding parameters for said adjacent regions; and (c)
selectively filtering at least a portion of said the regions
proximate a boundary between said adjacent regions based upon said
coding parameters, wherein said selectively filtering uses a first
filter when said adjacent regions are intra-coded, a second filter
when at least one of said adjacent regions is encoded with
residuals, a third filter when at least two of said adjacent
regions are predicted based upon two different reference frames,
and said third filter when said at least two of said adjacent
regions have an absolute difference of motion vectors that falls
within a set of values including a threshold value as one
extreme.
13. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
(c) a filter for selectively filtering at least a portion of said
regions proximate a boundary between said adjacent regions based
upon said coding parameters; (d) a second identifier for
identifying DC and AC components for said adjacent regions; and (e)
a filter controller for controlling said selectively filtering
based upon a similarity of said DC and said AC components.
14. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
(c) a filter for selectively filtering at least a portion of said
regions proximate a boundary between said adjacent regions based
upon said coding parameters; (d) a second identifier for
identifying similarities between coding parameters in a luminance
channel of said adjacent regions; and (e) a filter controller for
controlling said filter wherein said filter is applied to said
luminance channel and a chrominance channel based on said
similarities.
15. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
(c) a filter for selectively filtering at least a portion of said
regions proximate a boundary between said adjacent regions based
upon said coding parameters; wherein said selectively filtering is
based upon determining whether at least one of said adjacent
regions is intra-coded.
16. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a filter for selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; wherein said selectively
filtering is based upon determining whether at least one of said
adjacent regions is encoded with residuals.
17. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a filter for selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; wherein said selectively
filtering is based upon determining whether at least two of said
adjacent regions are predicted based upon two different reference
frames.
18. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a filter for selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; wherein said selectively
filtering is based upon determining whether at least two of said
adjacent regions have an absolute difference of motion vectors that
is one of greater than or less than or less than a threshold
value.
19. The encoder of claim 18 wherein said absolute difference is
also in a first direction.
20. The encoder of claim 19 wherein said absolute difference is
also in a second direction different than said first direction.
21. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) at least one filter for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded.
22. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a plurality of filters for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded and a second filter when said at least one of said
adjacent regions is encoded with residuals.
23. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a plurality of filters for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded, a second filter when at least one of said adjacent
regions is encoded with residuals, and a third filter when at least
two of said adjacent regions are predicted based upon two different
reference frames.
24. An encoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a plurality of filters for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded, a second filter when at least one of said adjacent
regions is encoded with residuals, a third filter when at least two
of said adjacent regions are predicted based upon two different
reference frames, and said third filter when at least two of said
adjacent regions have an absolute difference of motion vectors that
is greater than or less than a threshold value.
25. A decoder for encoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
(c) a filter for selectively filtering at least a portion of said
regions proximate a boundary between said adjacent regions based
upon said coding parameters; (d) a second identifier for
identifying DC and AC components for said adjacent regions; and (e)
a filter controller for controlling said selectively filtering
based upon a similarity of said DC and said AC components.
26. An decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
(c) a filter for selectively filtering at least a portion of said
regions proximate a boundary between said adjacent regions based
upon said coding parameters; (d) a second identifier for
identifying similarities between coding parameters in a luminance
channel of said adjacent regions; and (e) a filter controller for
controlling said filter, wherein said filter is applied to said
luminance channel and a chrominance channel based on said
similarities.
27. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a filter for selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; wherein said selectively
filtering is based upon determining whether at least one of said
adjacent regions is intra-coded.
28. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a filter for selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; wherein said selectively
filtering is based upon determining whether at least one of said
adjacent regions is encoded with residuals.
29. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a filter for selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; wherein said selectively
filtering is based upon determining whether at least two of said
adjacent regions are predicted based upon two different reference
frames.
30. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner examining coding parameters for said adjacent regions; and
(c) a filter for selectively filtering at least a portion of said
regions proximate a boundary between said adjacent regions based
upon said coding parameters; wherein said selectively filtering is
based upon determining whether at least two of said adjacent
regions have an absolute difference of motion vectors that is
greater than or less than a threshold value.
31. The decoder of claim 30 wherein said absolute difference is in
a first direction.
32. The decoder of claim 31 wherein said absolute difference is
also in a second direction different than said first direction.
33. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) at least one filter for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded.
34. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a plurality of filters for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded and a second filter when said at least one of said
adjacent regions is encoded with residuals.
35. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a plurality of filters for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded, a second filter when at least one of said adjacent
regions is encoded with residuals, and a third filter when at least
two of said adjacent regions are predicted based upon two different
reference frames.
36. A decoder for decoding an image comprising: (a) a first
identifier for identifying adjacent regions in said image; (b) an
examiner for examining coding parameters for said adjacent regions;
and (c) a plurality of filters for selectively filtering at least a
portion of said regions proximate a boundary between said adjacent
regions based upon said coding parameters; wherein said selectively
filtering uses a first filter when said adjacent regions are
intra-coded, a second filter when at least one of said adjacent
regions is encoded with residuals, a third filter when at least two
of said adjacent regions are predicted based upon two different
reference frames, and said third filter when said at least two of
said adjacent regions have an absolute difference of motion vectors
that is a greater than or less than a threshold value.
37. A computer readable medium comprising instructions for
performing the acts of: (a) identifying adjacent regions in an
image; (b) examining coding parameters for said adjacent regions;
(c) selectively filtering at least a portion of said regions
proximate a boundary between said adjacent regions based upon said
coding parameters; (d) identifying similarities between said coding
parameters in a luminance channel of said adjacent regions; and (e)
controlling filtering for both the luminance channel and a
chrominance channel in said image according to said similarities in
the luminance channel.
38. A computer data signal embodied in an electronic transmission,
said signal comprising instructions for: (a) identifying adjacent
regions in an image; (b) examining coding parameters for said
adjacent regions; (c) selectively filtering at least a portion of
said regions proximate a boundary between said adjacent regions
based upon said coding parameters; (d) identifying similarities
between said coding parameters in a luminance channel of said
adjacent regions; and (e) controlling filtering for both the
luminance channel and a chrominance channel in said image according
to said similarities in the luminance channel.
Description
[0001] This application is a continuation of International
Application No. PCT/JP02/09306, filed Sep. 11, 2002, entitled
"Adaptive Filtering Based upon Boundary Strength," invented by
Shijun Sun, Shawmin Lei and Hiroyuki Katata, now published under
International Publication No. WO 03/026313; which is a continuation
of U.S. patent application Ser. No. 09/953,329, filed Sep. 14,
2001, entitled "Adaptive Filtering Based upon Boundary Strength,"
invented by Shijun Sun and Shawmin Lei.
BACKGROUND OF THE INVENTION
[0002] Block based motion compensated video coding is used in many
video compression standards, such as for example, H.261, H.263,
H.263+, MPEG-1, MPEG-2, and H26L. Block based motion compensation
encodes video pixels in a block by block manner using image
compression techniques. The image compression techniques normally
use lossy compression techniques that result in visual artifact in
the decoded images, referred to generally as image artifacts. One
type of image artifacts are blocking artifacts that occur along the
block boundaries in a reconstructed image. The primary source of
the blocking artifacts result from coarse quantization of transform
coefficients used to encode the blocks.
[0003] Reconstructed images are the images produced after the
blocks are inverse transformed and decoded. Image filtering
techniques may be used to reduce the artifacts in reconstructed
images. The rule of thumb for these image filtering techniques is
that image edges should be preserved while the rest of the image
should be smoothed. A low pass filter may be used as the image
filter and its characteristics should be selected based on the
characteristics of a particular pixel or set of pixels surrounding
the image edges.
[0004] Non-correlated image pixels that extend across image block
boundaries are specifically filtered to reduce blocking artifacts.
While filtering techniques reduce blocking artifacts, however,
these filtering techniques may unfortunately introduce blurring
artifacts into the image. For example, if there are few or no
blocking artifacts present between adjacent blocks, then the low
pass filtering needlessly incorporates blurring into the image
while at the same time wasting processing resources.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a diagram showing how deblock filtering is
selectively skipped according to similarities between adjacent
image blocks.
[0006] FIG. 2 is a diagram showing two adjacent image blocks having
similar motion vectors.
[0007] FIG. 3 is a diagram showing how transform coefficients are
identified for one of the image blocks.
[0008] FIG. 4 is a diagram showing how residual transform
coefficients are compared between two adjacent image blocks.
[0009] FIG. 5 is a block diagram showing how the video image is
encoded and decoded.
[0010] FIG. 6 is a block diagram showing how deblock filtering is
selectively skipped in a codec.
[0011] FIG. 7 is a representation of an existing block based image
filtering technique.
[0012] FIG. 8 is a block diagram showing a technique for
determining the boundaries to filter and the strength of the
respective filter to use.
[0013] FIG. 9 is a drawing for explaining other embodiments of the
present invention
[0014] FIG. 10 is a drawing for explaining further embodiments of
the present invention.
[0015] FIG. 11 is a drawing for explaining further embodiments of
the present invention.
[0016] FIG. 12 is a drawing for explaining further embodiments of
the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Conventional filtering processes consider a single
reconstructed image frame at a time. Block based video encoding
techniques may use motion vectors to estimate the movement of
blocks of pixels. The motion-vector information is available at
both the encoder and decoder but is not used with conventional
filtering processes. For example, if two adjacent blocks share the
same motion vector with respect to the same reference image frame,
(for a multiple reference frames system) there is likely no
significant difference between the image residuals of each block
and accordingly should not be filtered. In essence, adjacent
portions of the image have the same motion with respect to the same
reference frame and accordingly no significant difference between
the image residuals would be expected. In many cases, the block
boundary of these two adjacent blocks may have been filtered in the
reference frame and should therefore not be filtered again for the
current frame. If a deblock filter is used without considering this
motion-vector information, the conventional filtering process might
filter the same boundary again and again from frame to frame. This
unnecessary filtering not only causes unnecessary blurring but also
results in additional filter computations.
[0018] FIG. 1 illustrates an image 12 that selectively filters
blocking artifacts according to similarities between image blocks.
It is to be understood that the image may likewise use non-square
blocks or any other sets of pixels. The borders between some of the
blocks 14 include blocking artifacts 18. In general blocking
artifacts are any image discontinuities between blocks 14 that may
result from the encoding and/or decoding process. A low pass filter
or other filter may be used to reduce the blocking artifacts that
exist at the borders of adjacent image blocks.
[0019] For example, blocking artifacts 24 exist between blocks 20
and 22. A low pass filter may be used at the border 26 between
blocks 20 and 22 to remove or otherwise reduce the blocking
artifacts 24. The low pass filter, for example, selects a group of
pixels 28 from both sides of the border 26. An average pixel value,
or any other statistical measure, is derived from the group of
pixels 28. Then each individual pixel is compared to the average
pixel value. Any pixels in group 28 outside of a predetermined
range of the average pixel value is then replaced with the average
pixel value.
[0020] As previously described, if there are few or no blocking
artifacts 24 between the adjacent pixels, then the groups of pixels
28 may be needlessly filtered causing blurring in the image. A skip
mode filtering scheme may use the motion estimation and/or
compensation information for adjacent image blocks as a basis upon
which to selectively filter. If the motion estimation and
compensation information is sufficiently similar the filtering may
be skipped. This avoids unnecessary image blurring and
significantly reduces the required number of filtering operations,
or any other appropriate value.
[0021] As an example, it may be determined during the encoding
process that adjacent image blocks 30 and 32 have similar coding
parameters. Accordingly, the deblock filtering may be skipped for
the groups of pixels 34 that extend across the border 31 between
adjacent blocks 30 and 32. Skip mode filtering can be used for any
horizontal, vertical, or otherwise any boundary between adjacent
blocks in the image 12.
[0022] FIG. 2 illustrates a reference frame 42, reference frame 48,
and a current frame 40 that is currently being encoded or decoded.
The coding parameters for blocks 44 and 46 are compared to
determine whether the deblock filtering should be skipped between
the two adjacent blocks 44 and 46. One of the encoding parameters
that may be compared is the motion vectors (MV) for the blocks 44
and 46.
[0023] A motion vector MV1 points from block 44 in the current
image frame 40 to an associated block 44' in the reference image
42. A motion vector MV2 points from block 46 in the current image
frame 40 to an associated block 46' in the reference frame 42. A
skip mode filtering checks to see if the motion vectors MV1 and MV2
point to adjacent blocks in the same reference frame 42. If the
motion vectors point to adjacent blocks in the same reference frame
(MV1=MV2), then the deblock filtering may be skipped. This motion
vector information may be used along with other coding information
to decide whether to skip deblock filtering between the two image
blocks 44 and 46.
[0024] More than one reference frame may be used during the
encoding and decoding process. For example, there may be another
reference frame 48. The adjacent blocks 44 and 46 may have motion
vectors pointing to different reference frames. In one example, the
decision to skip deblock filtering depends on whether the motion
vectors for the two adjacent blocks point to the same reference
frame. For example, image block 44 may have a motion vector 49
pointing to reference frame 48 and image block 46 may have the
motion vector MV2 pointing to reference frame 42. The deblock
filtering is not skipped in this example because the motion vectors
49 and MV2 point to different reference frames.
[0025] FIG. 3 illustrates another example of a coding parameter
that may be used to decide whether or not to selectively skip
deblock filtering. The image block 44 from image frame 40 is
compared with reference block 44' from the reference frame 42
pointed to by the motion vector MVl as previously illustrated in
FIG. 2. A residual block 44" is output from the comparison between
image block 44 and reference block 44'. A transform 50 is performed
on the residual block 44" creating a transformed block 44" of
transform coefficients. In one example, the transform 50 is a
Discrete Cosine Transform. The transformed block 44" includes a
D.C. components 52 and A.C. components 53.
[0026] The D.C. component 52 refers to a lowest frequency transform
coefficient in image block 44. For example, the coefficient that
represents the average energy in the image block 44. The A.C.
components 53 refer to the transform coefficients that represent
the higher frequency components in the image block 44. For example,
the transform coefficients that represent the large energy
differences between pixels in the image block 44.
[0027] FIG. 4 illustrates the transformed residual blocks 44" and
46". The D.C. components 52 from the two transformed blocks 44" and
46" are compared in processor 54. If the D.C. components are the
same or within some range of each other, the processor 54 notifies
a deblock filter operation 56 to skip deblock filtering between the
border of the two adjacent blocks 44 and 46. If the D.C. components
52 are not similar, then no skip notification is initiated and the
border between blocks 44 and 46 is deblock filtered.
[0028] In one example, the skip mode filtering may be incorporated
into the Telecommunications Sector of the International
Telecommunication Union (ITU-T) proposed H.26L encoding scheme. The
H.26L scheme uses 4.times.4 integer Discrete Cosine Transform (DCT)
blocks. If desired, only the D.C. component of the two adjacent
blocks may be checked. However some limited low frequency A.C.
coefficients may likewise be checked, especially when the image
blocks are larger sizes, such as 9.times.9 or 16.times.16 blocks.
For example, the upper D.C. component 52 and the three lower
frequency A.C. transform coefficients 53 for block 44" maybe
compared with the upper D.C. component 52 and three lower frequency
A.C. transform coefficients 53 for block 46". Different
combinations of D.C. and/or any of the A.C. transform coefficients
can be used to identify the relative similarity between the two
adjacent blocks 44 and 46.
[0029] The processor 54 can also receive other coding parameters 55
that are generated during the coding process. These coding
parameters include the motion vectors and reference frame
information for the adjacent blocks 44 and 46 as previously
described. The processor 54 may use some or all of these coding
parameters to determine whether or not to skip deblock filtering
between adjacent image blocks 44 and 46. Other encoding and
transform functions performed on the image may be carried out in
the same processor 54 or in a different processing circuit. In the
case where all or most of the coding is done in the same processor,
the skip mode is simply enabled by setting a skip parameter in the
filtering routine.
[0030] FIG. 5 shows how skip mode filtering may be used in a
block-based motion-compensated Coder-Decoder (Codec) 60. The codec
60 is used for inter-frame coding. An input video block from the
current frame is fed from box 62 into a comparator 64. The output
of a frame buffering box 80 generates a reference block 81
according to the estimated motion vector (and possible reference
frame number). The difference between the input video block and the
reference block 81 is transformed in box 66 and then quantized in
box 68. The quantized transform block is encoded by a Variable
Length Coder (VLC) in box 70 and then transmitted, stored, etc.
[0031] The encoding section of the codec 60 reconstructs the
transformed and quantized image by first Inverse Quantizing (IQ)
the transformed image in box 72. The inverse quantized image is
then inverse transformed in box 74 to generate a reconstructed
residual image. This reconstructed residual block is then added in
box 76 to the reference block 81 to generate a reconstructed image
block. Generally the reconstructed image is loop filtered in box 78
to reduce blocking artifacts caused by the quantization and
transform process. The filtered image is then buffered in box 80 to
form reference frames. The frame buffering in box 80 uses the
reconstructed reference frames for motion estimation and
compensation. The reference block 81 is compared to the input video
block in comparator 64. An encoded image is output at node 71 from
the encoding section and is then either stored or transmitted.
[0032] In a decoder portion of the codec 60, a variable length
decoder (VLD) decodes the encoded image in box 82. The decoded
image is inverse quantized in box 84 and inverse transformed in box
86. The reconstructed residual image from box 86 is added in the
summing box 88 to the reference block 91 before being loop filtered
in box 90 to reduce blocking artifacts and buffered in box 92 as
reference frames. The reference block 91 is generated from box 92
according to the received motion vector information. The loop
filtered output from box 90 can optionally be post filtered in box
94 to fuirther reduce image artifacts before being displayed as, a
video image in box 96. The skip mode filtering scheme can be
performed in any combination of the filtering functions in boxes
78, 90 and 94.
[0033] The motion estimation and compensation information available
during video coding are used to determine when to skip deblock
filtering in boxes 78, 90 and/or 94. Since these coding parameters
are already generated during the encoding and decoding process,
there are no additional coding parameters that have to be generated
or transmitted specially for skip mode filtering.
[0034] FIG. 6 shows is further detail how skip mode filtering may
be used in the filters 78, 90, and/or 94 in the encoder and decoder
in FIG. 5. The interblock boundary between any two adjacent blocks
"i" and "k" is first identified in box 100. The two blocks may be
horizontally or vertically adjacent in the image frame. Decision
box 102 compares the motion vector mv(j) for block j with the
motion vector mv(k) for block k. It is first determined whether the
two adjacent blocks j and k have the same motion vector pointing to
the same reference frame. In other words, the motion vectors for
the adjacent blocks point to adjacent blocks (mv(j)=mv(k)) in the
same reference frame (ref(j)=ref(k)).
[0035] It is then determined whether the residual coefficients for
the two adjacent blocks are similar. If there is no significant
difference between the image residuals of the adjacent blocks, for
example, the two blocks j and k have the same of similar D.C.
component (dc(j) dc(k)), then the deblock filtering process in box
104 is skipped. Skip mode filtering then moves to the next
interblock boundary in box 106 and conducts the next comparison in
decision box 102. Skip mode filtering can be performed for both
horizontally adjacent blocks and vertically adjacent blocks.
[0036] In one embodiment, only the reference frame and motion
vector information for the adjacent image blocks are used to
determine block skipping. In another embodiment, only the D.C.
and/or A.C. residual coefficients are used to determine block
skipping. In another embodiment, the motion vector, reference frame
and residual coefficients are all used to determine block
skipping.
[0037] The skip mode filtering scheme can be applied to spatially
subsampled chrominance channels. For example in a case with 4:2:0
color format sequences, skip mode filtering for block boundaries
may only rely on the equality of motion vectors and D.C. components
for the luminance component of the image. If the motion vectors and
the D.C. components are the same, deblock filtering is skipped for
both the luminance and chrominance components of the adjacent image
blocks. In another embodiment, the motion vectors and the D.C.
components are considered separately for each luminance and
chrominance component of the adjacent blocks. In this case, a
luminance or chrominance component for adjacent blocks may be
deblock filtered while the other luminance or chrominance
components for the same adjacent blocks are not deblock
filtered.
[0038] Referring to FIG. 7, a technique recently proposed by others
in H.26L defines a "block strength" parameter for the loop filter
to control the loop filtering process. Each block of an image has a
strength value that is associated with the block and controls the
filtering performed on all of its four block boundaries. The block
strength value is derived based on the motion vectors and the
transform coefficients available in the bitstream. However, after
consideration of the use of the block strength value for all four
edges of the block, the present inventors came to the realization
this results in removing some blocking artifacts at some edges
while blurring along other edges.
[0039] In contrast to the block by block manner of filtering, the
present inventors came to the realization that filtering
determinations should be made in an edge by edge manner together
with other information. The other information, may include for
example, information related to intra-block encoding of blocks,
information related to motion estimation of blocks with residual
information, information related to motion estimation of blocks
without residual information, and information related to motion
estimation of blocks without residuals having sufficient
differences, information related to reference frames, and
information related to motion vectors of adjacent blocks. One, two,
three, or four of these information characteristics may be used to
improved filtering abilities in an edge by edge manner. Based upon
different sets of characteristics, the filtering may be modified,
as desired.
[0040] For each block boundary a control parameter is preferably
defined, namely, a boundary strength Bs. Referring to FIG. 8 a pair
of blocks sharing a common boundary are referred to as j and k. A
first block 200 checks to see if either one of the two blocks is
intra-coded. If either is intra-coded then the boundary strength is
set to three at block 202. Block 200 determines if both of the
blocks are not motion predicted. If no motion prediction is used
then the block derives from the frame itself and accordingly there
should be filtering performed on the boundary. This is normally
appropriate because intra-coded block boundaries normally include
blocking artifacts.
[0041] If both of the blocks j and k are, at least in part,
predicted from a previous or future frame, then the blocks j and k
are checked at block 204 to determine if any coefficients are
coded. The coefficients, may be for example, discrete cosine
transform coefficients. If either of the blocks j and k include
non-zero coefficients, then at least one of the blocks represent a
prediction from a previous or future frame together with
modifications to the block using the coefficients, generally
referred to as residuals. If either of the blocks j and k include
non-zero coefficients (and motion predicted) then the boundary
strength is set to two at block 206. This represents an occurrence
where the images are predicted but the prediction is corrected
using a residual. Accordingly, the images are likely to include
blocking artifacts.
[0042] If both of the blocks j and k are motion predicted and do
not include non-zero coefficients, generally referred to as
residuals, then a determination at block 208 is made to check if
the pixels on either side of the boundary are sufficiently
different from one another. This may likewise be used to determine
if the residuals are sufficiently small. If a sufficient difference
exists then a blocking artifact is likely to exist. Initially a
determination is made to determine if the two blocks use different
reference frames, namely, R(j).noteq.R(k). If the blocks j and k
are from two different reference frames then the boundary strength
is assigned a value of one at block 210. Alternatively, if the
absolute difference of the motion vectors of the two image blocks
is checked to determine if they are greater than or equal to 1
pixel in either vertical or horizontal directions, namely,
.vertline.V(j,x)-V(k,x).vertline..gtore- q.1 pixel or
.vertline.V(j,y)-V(k,y).vertline..gtoreq.1 pixel. Other threshold
values may likewise be used, as desired, including less than or
greater than depending on the test used. If the absolute difference
of the motion vectors is greater than or equal to one then the
boundary strength is assigned a value of one.
[0043] If the two blocks j and k are motion predicted, without
residuals, are based upon the same frame, and have insignificant
differences, then the boundary strength value is assigned a value
of zero. If the boundary strength value is assigned a value of zero
the boundary is not filtered or otherwise adaptively filtered
accordingly to the value of the boundary strength. It is to be
understood that the system may lightly filter if the boundary
strength is zero, if desired.
[0044] The value of the boundary strength, namely, one, two, and
three, is used to control the pixel value adaptation range in the
loop filter. If desired, each different boundary strength may be
the basis of a different filtering. For example, in some
embodiments, three kinds of filters may be used wherein a first
filter is used when Bs=1, a second filter is used when Bs=2 and a
third filter is used when Bs=3. It is to be understood that
non-filtering may be performed by minimal filtering in comparison
to other filtering which results in a more significant difference.
In the example shown in FIG. 8 the larger the value for Bs the
greater the filtering. The filtering may be performed by any
suitable technique, such as methods described in Joint Committee
Draft (CD) of the Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T
VCEG (JVT-C167) or other known methods for filtering image
artifacts.
[0045] Skip mode filtering can be used with any system that encodes
or decodes multiple image frames. For example, DVD players, video
recorders, or any system that transmits image data over a
communications channel, such as over television channels or over
the Internet. It is to be understood that the system may use the
quantization parameter as a coding parameter, either alone or in
combination with other coding parameters. In addition, it is to be
understood that the system may be free from using the quantization
parameter alone or free from using the quantization parameter at
all for purposes of filtering.
[0046] The skip mode filtering described above can be implemented
with dedicated processor systems, micro controllers, programmable
logic devices, or microprocessors that perform some or all of the
operations. Some of the operations described above may be
implemented in software and other operations may be implemented in
hardware.
[0047] For the sake of convenience, the operations are described as
various interconnected functional blocks or distinct software
modules. This is not necessary, however, and there may be cases
where these finctional blocks or modules are equivalently
aggregated into a single logic device, program or operation with
unclear boundaries. In any event, the functional blocks and
software modules or described features can be implemented by
themselves, or in combination with other operations in either
hardware or software.
[0048] In some embodiments of the present invention as illustrated
in FIG. 9, image data 902 may be input to an image data encoding
apparatus 904 which includes the adaptive filtering portion as
described above for some embodiments of the present invention.
Output from the image data encoding apparatus 904 is an encoded
image data and may then be stored on any computer-readable storage
media 906. The storage media may include, but is not limited to,
disc media, memory card media, or digital tape media. Storage media
906 may act as a short-term storage device. The encoded image data
may be read from storage media 906 and decoded by an image data
decoding apparatus 908 which includes the adaptive filtering
portion as described above for some embodiments of the present
invention. The decoded image data may be provided for output
decoded image data 910 to a display or other device.
[0049] In some embodiments of the present invention, as illustrated
in FIG. 10, image data 1002 may be encoded and the encoded image
data may then be stored on storage media 1006. The basic procedure
of image data encoding apparatus 1004, storage media 1006, and
image data decoding apparatus 1008 is the same as in FIG. 9. In
FIG. 10, Bs data encoding portion 1012 receives the value of the
boundary strength Bs for each block boundary and encoded by any
data encoding method which includes DPCM, multi-value run-length
coding, transform coding with loss-less feature and so on. The
boundary strength Bs may be generated as described in FIG. 8. The
encoded boundary strength may then be stored on storage media 1006.
In one example, the encoded boundary strength may be stored
separately from the encoded image data. In other example, the
encoded boundary strength and the encoded image data may be
multiplexed before storing on the storage media 1006.
[0050] The encoded boundary strength may be read from the storage
media 1006 and decoded by Bs data decoding portion 1014 to input
the decoded boundary strength to image data decoding apparatus
1008. When the decoded boundary strength is utilized in image data
decoding apparatus 1008 to perform the adaptive filtering of the
present invention, it may not be necessary to repeat the process
described in FIG. 8 to generate boundary strength and this may save
the processing power for the adaptive filtering.
[0051] In some embodiments of the present invention, as illustrated
in FIG. 11, image data 1102 may be input to an image data encoding
apparatus 1104 which includes the adaptive filtering portion as
described above for some embodiments of the present invention.
Output from the image data encoding apparatus 1104 is an encoded
image data and may then be sent over a network, such as a LAN, WAN
or the Internet 1106. The encoded image data may be received and
decoded by an image data decoding apparatus 1108 which also
communicates with network 1106. The image data decoding apparatus
1108 includes the adaptive filtering portion as described above for
some embodiments of the present invention. The decoded image data
may be provided for output decoded image data 1110 to a display or
other device.
[0052] In some embodiments of the present invention, as illustrated
in FIG. 12, image data 1202 may be encoded and the encoded image
data may then be sent over a network, such as a LAN, WAN or the
Internet 1206. The basic procedure of image data encoding apparatus
1204 and image data decoding apparatus 1208 is the same as FIG. 11.
In FIG. 12, Bs data encoding portion 1212 receives the value of the
boundary strength Bs for each block and encoded by any date
encoding method which includes DPCM, multi-value run-length coding,
transform coding with loss-less features and so on. The boundary
strength Bs may be generated as described in FIG. 8. The encoded
boundary strength may then be sent over the network 1206. In one
example, the encoded boundary strength may be sent separately from
the encoded image data. In other examples, the encoded boundary
strength and the encoded image data may be multiplexed before
sending over the network 1206.
[0053] The encoded boundary strength may be received from the
network 1206 and decoded by Bs data decoding portion 1214 to input
the decoded boundary strength to image data decoding apparatus
1208. When decoding boundary strength is utilized in image data
decoding apparatus 1208 to perform the adaptive filtering of the
present invention, it may not be necessary to repeat the process
described in FIG. 8 to generate boundary strength and this may same
the processing power for the adaptive filtering.
[0054] Having described and illustrated the principles of the
invention in a preferred embodiment thereof, it should be apparent
that the invention may be modified in arrangement and detail
without departing from such principles. Claim is made to all
modifications and variation coming within the spirit and scope of
the following claims.
* * * * *