METHOD AND ASSOCIATED DEVICE FOR FILTERING DIGITAL VIDEO IMAGES
The application relates to a method for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded. A block type is defined according to the coding method for a block selected according to a predetermined set of coding types. In the method filtering is performed to reduce visual artefacts due to a block boundary. The filtering performed depends on block types of the frame in the environment of the block boundary.
This application is a continuation of application Ser. No. 09/766,035 filed Jan. 19, 2001, which claims priority to FI Application No. 20000120 filed Jan. 20, 2000, the entire contents of which are incorporated herein by reference.
FIELD OF THE INVENTIONThe present invention relates to a method for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected from a predetermined set of coding types, in which filtering is performed to reduce visual artefacts due to a block boundary. The present invention also relates to a device for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, the device comprising a filter for reducing visual artefacts due to a block boundary. Furthermore, the present invention relates to a video encoder comprising means for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which encoder comprises a filter for reducing visual artefacts due to a block boundary. The present invention also relates to a video decoder comprising means for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which video decoder comprises a filter for reducing visual artefacts due to a block boundary. The present invention also relates to a video codec comprising means for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which video codec comprises a filter for reducing visual artefacts due to a block boundary. The present invention also relates to a mobile terminal comprising a video codec, which comprises means for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, which video codec comprises a filter for reducing visual artefacts due to a block boundary. The present invention further relates to a storage medium for storing a software program comprising machine executable steps for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, for reducing visual artefacts due to a block boundary by filtering.
BRIEF DESCRIPTION OF RELATED DEVELOPMENTSA transmission system like that shown in
The frames are further divided into blocks. One or more such blocks forms a block region. There can generally be four different region types: Intra region, copy region, coded region, and not-coded region. An intra region is a block region in which the blocks are coded independently without reference to any other frame. A copy region consists of blocks which are obtained by copying the content of the reference frame into exactly the same location without any motion compensated prediction. A coded region consists of blocks which are obtained using motion compensated prediction and prediction error coding. The prediction error is a difference between the pixel values of the actual frame and a reconstructed frame which is formed in the coding/decoding system using motion compensated prediction, as will be described in further detail later in the text. The prediction error is coded and sent to a receiver. A not-coded region is obtained using motion compensated prediction only. In fact the not-coded region is equivalent to a copy region if the motion information equals 0. All the block regions of one frame are not necessarily similar types, but one frame can comprise block regions which are of different types.
Referring to
Pn(x,y)=Rn[x+Dx(x,y),y+Dy(x,y)] (1)
The pair of numbers [Dx(x,y), Dy(x,y)] is called the motion vector of the pixel at location (x,y) and the numbers Dx(x,y) and Dy(x,y) are the horizontal and vertical shifts of the pixel. They are calculated in a motion estimation block 18. The set of motion vectors [Dx(•), Dy(•)] consisting of all motion vectors related to the pixels of the frame to be compressed is also coded using a motion model comprising basis functions and coefficients. The basis functions are known to both the encoder and the decoder. The coefficient values are coded and directed to the multiplexer 13, which multiplexes them into the same data stream with the coded prediction error frame for sending to a receiver. In this way the amount of information to be transmitted is dramatically reduced.
Some frames can be partly, or entirely, so difficult to predict that it is not practical to use motion compensated prediction when coding them. These frames or parts of frames are coded using intra-coding without prediction, and therefore it is not necessary to send motion vector information relating to them to the receiver.
In the receiver system 20, a demultiplexer 21 separates the coded prediction error frames and the motion information transmitted by the motion vectors and directs the coded prediction error frames to a decoder 22. The decoder 22 produces a decoded prediction error frame Ên(x,y), which is summed in a summer 23 with the prediction frame Pn(x,y) formed on the basis of a previous frame, resulting in a decoded frame În(x,y). The decoded frame is directed to an output 24 of the decoder and at the same time saved in a frame memory 25. When decoding the next frame, the frame saved in the frame memory is read as a reference frame and transformed into a new prediction frame in the motion compensation and prediction block 26, according to formula (1) presented above.
The coding method applied in block 12 to the coding of the prediction error frame or to the intra-coding of a frame or part of a P-frame to be sent without prediction, is generally based on a transformation, the most common of which is the Discrete Cosine Transformation, DCT. The frame is divided into adjacent blocks having a size of e.g. 8×8 pixels. In coding and decoding, the blocks are processed independent of one another. The transformation is calculated for the block to be coded, resulting in a series of terms. The coefficients of these terms are quantized on a discrete scale in order that they can be processed digitally. Quantization causes rounding errors, which can become visible in an image reconstructed from blocks, so that there is a discontinuity of pixel values at the boundary between two adjacent blocks. Because a certain decoded frame is used for calculating the prediction frame for subsequent predicted frames, these errors can be propagated in sequential frames, thus causing visible edges in the image reproduced by the receiver. Image errors of this type are called blocking artefacts.
Some prior art methods are known for removing blocking artefacts. These methods are characterized by the following features:
-
- determining which pixel/pixels require value correction in order to remove the blocking artefact,
- determining a suitable low-pass filtering for each pixel to be corrected, based on the values of other pixels contained by a filtering window placed around the pixel,
- calculating a new value for the pixel to be corrected, and
- rounding the new value to the closest digitized pixel value.
Factors that influence the selection of a filter and the decision whether to use filtering can be, for example, the difference between the values of pixels across the block boundary, the size of the quantization step of the coefficients received as the transformation result, and the difference of the pixel values on different sides of the pixel being processed.
It has been found that prior art methods tend to remove lines that belong to real features of the image. On the other hand, prior art methods are not always capable of removing all blocking artefacts.
SUMMARY OF THE INVENTIONAn objective of the present invention is to present a new kind of filtering arrangement for reducing blocking artefacts. The invention also has the objective that the method and associated device operate more reliably and efficiently than prior art solutions.
The method according to the invention adjusts filtering parameters according to the type of blocks whose boundary is to be filtered. Different filtering parameters are chosen according to the type of block on either side of the boundary in order to yield an improved filtering result.
The objectives of the invention are achieved by adapting the selection of pixels for filtering and the filtering process more flexibly than before to the features of the frame and the environment of the filtering point and by taking into account the nature/type of the blocks to be filtered.
According to a first aspect of the invention, there is provided a method for reducing visual artefacts in a frame that is coded by blocks, characterized in that the filtering performed on the block boundary depends on block types of the frame in the environment of the block boundary.
According to a second aspect of the invention, there is provided a device for implementing the method according to the invention. The device according to the invention is characterized in that the filter is arranged to operate adaptively according to the block types of the frame in the environment of the block boundary.
According to a third aspect of the invention, there is provided an encoder characterized in that the filter is arranged to operate adaptively according to the block types of the frame in the environment of the block boundary.
According to a fourth aspect of the invention, there is provided a decoder characterized in that the filter is arranged to operate adaptively according to the block types of the frame in the environment of the block boundary.
According to a fifth aspect of the invention, there is provided a codec characterized in that the filter is arranged to operate adaptively according to the block types of the frame in the environment of the block boundary.
According to a sixth aspect of the invention, there is provided a mobile terminal characterized in that the filter is arranged to operate adaptively according to the the block types of the frame in the environment of the block boundary.
According to a seventh aspect of the invention, there is provided a storage medium characterized in that the software program further comprises machine executable steps for filtering adaptively according to the block types of the frame in the environment of the block boundary.
Because blocking artefacts only occur at block boundaries, according to the invention, filtering is advantageously only applied to pixels at block boundaries and the vicinity thereof. Edges that are part of the image can reside anywhere in the image area. In order that only pixels containing blocking artefacts are selected for corrective filtering and that the quality of edges that are part of the image itself is not affected during filtering, the following assumptions are made:
Changes in pixel values associated with edges that are part of the image are generally larger than those associated with blocking artefacts, and those edges within the image, where the pixel value change is small, do not suffer considerably from the rounding of the pixel value difference caused by filtering.
Because the image to be coded is generally divided into blocks both vertically and horizontally, the image contains both vertical and horizontal block boundaries. With regard to vertical block boundaries, there are pixels to the right and left of the boundary, and with regard to horizontal block boundaries, there are pixels above and below the boundary. In general, the location of the pixels can be described as being on a first or a second side of the block boundary. In an exemplary embodiment of the filtering method according to the invention, the number of pixels to be corrected, the characteristic features of the filter being used and the size of the filtering window depend on the following factors:
- a) The type of block on either side of the boundary (e.g. inter, copy, coded, not-coded),
- b) the difference in pixel values Δ across the block boundary. The difference can be defined in many ways. One definition is Δ=|r1−l1|, where r1 is the value of the pixel on the first side of the block boundary closest to the boundary, and II is the value of the pixel on the second side of the block boundary closest to the boundary,
- c) the size of the quantization step QP of the coefficients received as the result of the transformation used in coding, and
- d) differences in pixel values between the pixels on the first side of the block boundary, and correspondingly between the pixels on the second side of the block boundary.
In an advantageous embodiment of the method according to the invention, the number of the pixels selected for filtering can vary, and it is not necessarily the same on different sides of a block boundary. The number of pixels also depends on the type of block on either side of the boundary. Because the number of pixels is adapted to the general features of the image information contained by the frame in a particular region according to the factors mentioned above, the method produces a better filtering result than that provided by prior art methods. A “better” result in this context is one in which blocking artefacts are reduced to a greater extent while real edges in the image are affected to a lesser degree. This means that a larger amount of blocking artefacts can be removed without weakening the real image edges unreasonably.
It should be noted that in other embodiments of the invention, the factors affecting the filtering performed at a block boundary may differ from those presented above.
In the following, the invention will be described in more detail with reference to the preferred embodiments and the accompanying drawings, in which
In the above, in connection with the description of the prior art, reference was made to
wherein α=QP·log(QP). If QP has a different value in blocks on different sides of the block boundary, the smaller value of QP is used in the calculations, as well as in all cases presented hereinafter, in which a definition includes reference to one QP value only. The invention does not place any limitations on the determination of the value of parameter n, but according to the guidelines of equation (2), it is advantageous that its value is generally higher when the difference of pixel values Δ across the block boundary is small in comparison with the size of the quantization step QP of the coefficients received as the result of the coding transformation. If the difference between the pixel values Δ is large, there is a high probability that there is a real image edge at the block boundary, and in this case the pixels are preferably not examined for filtering at all (n=0).
In the next step of the filtering method according to the invention, region type information concerning the two neighbouring blocks is examined, i.e. the type of the blocks on both sides of the block boundary in question is considered. According to the region type information, the value of the parameter n may further be limited (truncated) to provide even better results for reducing blocking artefacts. The region type information is included e.g. in the coded information relating to the pixels of a particular block, wherein that information is maintained, or temporarily stored, during decoding of the block until a truncated value ntr for parameter n is determined.
Table 1 shows truncation values according to an advantageous embodiment of the present invention. Table 1 applies in a situation where the maximum value of n is 6, and, of course, different truncated values would be appropriate in situations where the maximum value is other than 6. The truncation values are used for the first and second sides of the block boundary depending on the region type of the block on the first side of the block boundary and on the region type of the block on the second side of the block boundary.
Each cell of Table 1, corresponding to a particular region type combination, is split into two parts. The value on the left gives the truncation value trval for the first side of the block boundary and the value on the right gives the truncation value trval for the second side of the boundary. If the value of parameter n exceeds the value given in Table 1, n is truncated to the truncation value trval in Table 1. If, however, the value of the overall activity parameter n does not exceed the value given in Table 1, the value of the parameter n (originally determined from equation (2)) is retained. In Table 1 the symbol “n” indicates that further truncation is not performed and the parameter value is retained. The truncated value ntr for the parameter n can also be represented by the formula:
ntr=min(trval,n), (3)
The same table can be used both for filtering across vertical block boundaries (horizontal filtering) by putting “Left”/“Right” in place of “First”/“Second” and for filtering across horizontal block boundaries (vertical filtering) by putting “Bottom”/“Up” in place of “First”/“Second”, respectively. Now, the value on the left gives the truncation value for the pixels on the left/below the block boundary and the value on the right gives the truncation value for the pixels on the right/above the boundary.
To further clarify the use of Table 1, an example situation is presented in the following. In this illustrative example situation “horizontal filtering” is performed across a vertical block boundary 30. Assuming that the value for parameter n, calculated from equation 2, is e.g. 4, the block on the left-hand side of the block boundary 30 in question is of the Intra type, and the block on the right-hand side of the block boundary 30 in question is of the Not-coded type, Table 1 indicates that the truncation value for the left-hand side is n and the truncation value for the right-hand side is 2. This means that the 4 pixels closest to the block boundary (=the calculated value of n) are selected for examination from the left-hand side of the boundary, and 2 pixels closest to the block boundary (=the truncated value of n) are selected for examination from the right-hand side.
Another example situation is presented in the following. In this illustrative example situation “horizontal filtering” is performed across a vertical block boundary 30. Assuming that the value of parameter n calculated from equation (2) is e.g. 4, and the blocks on both sides of the block boundary 30 in question are of the Copy type, Table 1 indicates that the truncation value for the left-hand side is 2 and the truncation value for the right-hand side is 2. This means that the 2 pixels closest to the block boundary (=the truncated value of n) are selected for examination from the left-hand side of the boundary, and the 2 pixels closest to the block boundary (=the truncated value of n) are selected for examination from the right-hand side.
For bi-directionally predicted frames (B-frames), truncation of the parameter n is advantageously not applied because there is no unique block type information.
The next step in the filtering method according to the invention is to determine the values of the parameters dl and dr, which represent activity, or the differences of pixel values between pixels on one side of the block boundary. A preferred definition for dr is the following:
dr=6, if |r1−η|≦β/j with all jε[1,6],
otherwise: dr=i, where i fulfils the conditions
iε[1,ntr], (4)
|r1−ri+1|>β/i, and
|r1−rj|≦β/j with all jε[1,i].
Here, the auxiliary parameter β=4·log(QP). The value of parameter dl is determined similarly, except that all r's are replaced by l's and the corresponding truncated value ntr for the parameter n must be used. The number 6 appears in definition (4) because, according to equation (2), the highest possible value of n is 6 in this case. If n is defined differently, but the parameters dr and dl are defined according to definition (4), the number 6 must be replaced by the highest possible value of n according to the new definition.
It is advantageous that the values of the parameters dr and dl are calculated independent of one another, because the image information contained by the frame can be different on different sides of the block boundary. The invention does not limit the definition of parameters dr and dl, but according to the guidelines of definition (4), it is advantageous that these parameters are used to limit the blocking artefact processing relatively close to the block boundary, if there is a real image edge near the block boundary. The essential features of definition (4) can be summarised as follows: the value of parameter dr (and correspondingly the value of parameter dl) provides an indication of how many pixels counted from the block boundary have approximately the same value as the pixel at the block boundary.
A high value of parameter n (e.g. 6) indicates that the difference between the pixel values at the block boundary is relatively small compared with the general variation of the pixel values within the block. In this case, it is possible that there is a real image edge near the block boundary. By selecting a sufficiently small value of parameter dr (or dl), it is possible to restrict the filtering aimed at correcting blocking artefacts so that it does not have a deteriorating effect on a real image edge close to the block boundary. In some situations, a large number of pixels counted from the block boundary have approximately the same value as the pixel at the block boundary. In that case, definition (4) would give the parameter dr (or dl) a relatively high value. However, if there is a clear discontinuity in pixel values between the blocks, the parameter n has a small value and the truncated value ntr is used in the definition (4) which make sure that an unreasonably high value is not selected as the value of the parameter dr (or dl). Otherwise, a relatively high value of the parameter dr (or dl) would result in unnecessary filtering.
If blocks on both sides of the block boundary are Intra-type blocks, the truncation has no effect on the selection of the parameter values n, dr and dl. On the other hand, if at least one of the blocks has a type other than Intra, the truncation of the value n according to the formula (3) may limit the number of pixels filtered. This has the advantage that the block boundaries are not smoothed too much.
In addition, the largest possible number of pixels to be filtered must be decided. This does not have a notation of its own in
When the values of the parameters n, ntr, dr and dl have been determined, filtering is carried out using a suitable filter. The invention does not limit the kind of filter that can be used, but a filtering arrangement that has been found preferable, will be described in the following. Filtering is used to determine a new value for the pixels selected for filtering. In a preferred embodiment of the invention, a new pixel value is determined for a given pixel by calculating the mean of the pixel values that appear in a filtering window. In the preferred embodiment, the filtering window is symmetrical with regard to the pixel to be filtered and contains, in addition to the pixel to be filtered, one, two or three pixels from both sides, depending on the values of the parameters dr and dl as described hereinafter. Of course, these are only examples and other values could be chosen in situations where n, ntr, dr and dl are defined differently. The calculated mean value is rounded to the closest digitized pixel value, whereby it becomes the new value of the filtered pixel.
Table 2 shows the determination of the width of the filtering window for the pixels r1, r2 and r3 according to the value of parameter dr in a preferred embodiment of the invention. The values of the pixels l1, l2 and l3 are determined in the same manner according to the value of the parameter dl. In the table, “X” means that the pixel in question is not filtered at all, and the number means that the filtering window includes a number of pixels shown by the number from each side of the pixel being examined. Among other things, Table 2 shows that for filtering to be applied to any pixel, parameters dr and dl must both have a value greater than 1.
The above description relates to implementing the filtering on one horizontal part of a pixel row, which is 12 pixels long and located symmetrically on both sides of a vertical block boundary. The description can be easily generalized to concern vertical parts of pixel columns, which are located symmetrically on both sides of a horizontal block boundary:
In a particularly advantageous embodiment of the invention, the block carrying out the filtering according to the invention is implemented in a digital signal processor or a corresponding device suited for processing a digital signal, which can be programmed to apply predetermined processing functions to a signal received as input data.
A storage medium can be used for storing a software program comprising machine executable steps for performing the method according to the invention. In an advantageous embodiment of the invention, the software program is read from the storage medium to a device comprising programmable means, e.g. a processor, for performing the method of the invention.
The invention can be modified without departing from the scope defined by the claims presented hereinafter, using the capabilities of a person skilled in the art without actual inventive steps. For example, the parameter Δ can be calculated using the formula Δ=|(r1+r2)−(l1+l2)| or some other formula considered suitable. The definitions of the other parameters presented above should also be considered as examples only. A particularly advantageous use of the invention is in mobile video telecommunication applications, digital television receivers and other devices that at least receive and decode digital video image. It should further be noted that in general the method according to the invention may be applied to any image coding method in which an image is encoded/decoded on a block-by-block basis, including individual (i.e. still) digital images.
The present invention is not solely restricted to the above presented embodiments, but it can be modified within the scope of the appended claims.
Claims
1. A method for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected from a predetermined set of coding types, in which filtering is performed to reduce visual artefacts due to a block boundary, wherein the filtering performed on the block boundary depends on block types of the frame in the environment of the block boundary.
2. A method according to claim 1, wherein the frame comprises at least one region of blocks, each block within said region having a region type, and that the filtering performed on the block boundary depends on a region type of the blocks in the environment of the block boundary.
3. A method according to claim 1 wherein the filtering performed on the block boundary depends on a block type of a block on a first side of the block boundary and on a block type of a block on a second side of the block boundary.
4. A method according to claim 1, wherein at least one parameter of the filtering performed to reduce visual artefacts due to a block boundary on at least one side of the block boundary is modified according to the block type of at least one block in the environment of the block boundary.
5. A method according to claim 4, wherein at least one parameter of the filtering performed to reduce visual artefacts due to a block boundary is modified according to the block type of a first block and a second block, the first and second blocks being located on opposite sides of the block boundary.
6. A method according to claim 4, wherein said at least one parameter is selected from a group comprising: a number of pixels to be examined, a number of pixels to be filtered, an activity measure providing an indication of the difference between pixel values on one side of the block boundary, and a filtering window.
7. A method according to claim 1, in which a number of pixels is selected for examination from at least one side of the block boundary, wherein the number of pixels selected for examination depends on the image content of the frame in the environment of the block boundary, and that the number of pixels selected for examination further depends on the block type of a block in the environment of the block boundary.
8. A method according to claim 7, wherein the number of pixels selected for examination depends on the difference in pixel value between pixels across the block boundary.
9. A method according to claim 7, wherein the number of pixels selected for examination depends on the size of the quantization step of the coefficients used in the coding of the blocks.
10. A method according to claim 8, wherein the number of pixels is first defined according to the image content of the frame in the environment of the block boundary, and the number of pixels is further truncated according to the block type of a block in the environment of the block boundary to give a truncated number of pixels for examination.
11. A method according to claim 1, wherein certain pixels to be filtered are selected, and a new value is determined for each pixel to be filtered on the basis of pixels that appear in a filtering window set around the pixel.
12. A method according to claim 1, wherein pixels to be filtered are selected from the pixels selected for examination.
13. A method according to claim 11, wherein the new value of the pixel to be filtered is the mean value of the pixels that appear in the filtering window.
14. A device for reducing visual artefacts in a frame of a digital video signal, which is coded by blocks and then decoded, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, the device comprising a filter for reducing visual artefacts due to a block boundary, wherein the filter is arranged to operate adaptively according to the block types of the frame in the environment of the block boundary.
15. A device according to claim 14, wherein the filter is arranged such that the frame comprises at least one region of blocks, each block within said region having a region type, and that the filtering performed on the block boundary depends on a region type of the blocks in the environment of the block boundary.
16. A device according to claim 14, wherein the filter is arranged such that the filtering performed on the block boundary depends on a block type of a block on a first side of the block boundary and on a block type of a block on a second side of the block boundary.
17. A device according to claim 14, wherein the filter is arranged such that at least one parameter of the filtering performed to reduce visual artefacts due to a block boundary on at least one side of the block boundary is modified according to the block type of at least one block in the environment of the block boundary.
18. A device according to claim 17, wherein the filter is arranged such that at least one parameter of the filtering performed to reduce visual artefacts due to a block boundary is modified according to the block type of a first block and a second block, the first and second blocks being located on opposite sides of the block boundary.
19. A device according to claim 17, wherein said at least one parameter is selected from a group comprising: a number of pixels to be examined, a number of pixels to be filtered, an activity measure providing an indication of the difference between pixel values on one side of the block boundary, and a filtering window.
20. A non-transitory storage medium for storing a software program comprising machine executable operations for coding and decoding a digital video signal by blocks, a block type being defined according to the coding method for a block selected according to a predetermined set of coding types, for reducing visual artefacts due to a block boundary by filtering, wherein the software program further comprises machine executable operations for filtering adaptively according to the block types of the frame in the environment of the block boundary.
Type: Application
Filed: Oct 23, 2017
Publication Date: Feb 15, 2018
Inventors: Ossi Kalevo (Toijala), Emre Aksu (Tampere), Marta Karczewicz (Irving, TX)
Application Number: 15/790,314