System and method for video encoding using adaptive loop filter
14 claims: 1 independent, 13 dependent
- 1A method for reducing blocking artifacts at the boundary between adjacent blocks reconstructed from a frame of compressed video information that includes a prediction stage parameter with respect to at least one of the blocks, the method comprising:reconstructing the one block based on the prediction stage parameter;computing a residual error attribute from the reconstructed block;computing a filter strength value based on combining a baseline filter strength (f) and at least one incremental value (δ1- δ8), the at least one incremental value selected from a plurality of preset values based at least on one of the prediction stage parameter or the residual error attribute associated with the one block, the baseline filter strength specified at the frame level in the encoded bitstream and the plurality of preset values are determined at the frame level;and filtering the boundary adjacent to the one block using the selected filter strength value.
- 5The method of any of claims 1-4, wherein computing the filter strength value further comprises computing the filter strength value based on a second incremental value selected from the plurality of preset values based on the other one of the prediction stage parameter and residual error attribute, wherein computing the filter strength includes adjusting the baseline filter strength based on the second incremental value.
Independent claims2
70 paragraphs in 6 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
0001This application claims priority to <patcit id="pcit0001" dnum="US12329070A" dnum-type="L"><text>U.S. patent application no. 12/329/070, filed December 5, 2008</text></patcit>, which claims priority to <patcit id="pcit0002" dnum="US61096147A" dnum-type="L"><text>U.S. provisional patent application no. 61/096,147, filed September 11, 2008</text></patcit>.
TECHNICAL FIELD
0002The present invention relates in general to video encoding and more particularly, video encoding using a loop filter.
BACKGROUND
0003An increasing number of applications today make use of digital video for various purposes including, for example, remote business meetings via video conferencing, high definition video entertainment, video advertisements, and sharing of user-generated videos. As technology is evolving, people have higher expectations for video quality and expect high resolution video with smooth playback at a high frame rate.
0004There can be many factors to consider when selecting a video coder for viewing digital video. Some applications may require excellent video quality where others may need to comply with various constraints including, for example, bandwidth or storage requirements. To permit higher quality transmission of video while limiting bandwidth consumption, a number of video compression schemes are noted including proprietary formats such as VPx (promulgated by On2 Technologies, Inc. of Clifton Park, N.Y.), H.264 standard promulgated by ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG), including present and future versions thereof. H.264 is also known as MPEG-4 Part 10 or MPEG-4 AVC (formally, ISO/IEC 14496-10).
0005Many video coding techniques use block based prediction and quantized block transforms. With block based prediction, a reconstructed frame buffer can be used to predict subsequent frames. The use of block based prediction and quantized block transforms can give rise to discontinuities along block boundaries. These discontinuities (commonly referred to as blocking artifacts) can be visually disturbing and can reduce the effectiveness of the reference frame as a predictor for subsequent frames. These discontinuities can be reduced by the application of a loop filter. The loop filter can be applied to the reconstructed frame buffers. Some conventional loop filters apply different filtering strengths to different block boundaries. For example, some compression systems vary the strength of the loop filter based on, for example, whether the block has been inter-coded or intra-coded. Other compression systems apply a filter strength based on, for example, the difference between the extent of the discontinuity and threshold level. Further, for example, some compression systems may vary the strength of the loop filter by computing, for example, a difference value illumination change of a block compared to its neighboring block.
0006<patcit id="pcit0003" dnum="EP1933566A2"><text>EP 1933566 A2</text></patcit> discloses a derivation process of boundary filtering strength, and deblocking filtering method and apparatus using the derivation process. <patcit id="pcit0004" dnum="US20070009044A1"><text>US 2007/0009044 A1</text></patcit> discloses a method and apparatus for decoding hybrid intra-inter coded blocks. "<nplcit id="ncit0001" npl-type="s"><text>Loop filtering and post-filtering for low-bit-rates moving picture coding", Lee at al., Signal Processing: Image Communication, Vol. 16, Issue 9, pages 871-890, June 2001</text></nplcit>, describes methods of adaptive filtering of a decompressed image according to blocking and ringing flags defined to reduce computation complexity.
SUMMARY
0007The present invention provides a method for reducing blocking artifacts as set out in claim 1.
0008There is disclosed as a method for reducing blocking artifacts at the boundary between adjacent blocks reconstructed from a frame of compressed video information. The video information includes a prediction stage parameter with respect to at least one of the blocks. The method includes reconstructing the at least one block based on the prediction stage parameter, computing a residual error attribute from the reconstructed block, computing a filter strength value based on a baseline filter strength and at least one incremental value. The incremental value is selected from a plurality of preset values based at least on one of the prediction stage parameter and the residual error attribute associated with the at least one block. The boundary adjacent to the at least one block is filtered using the filter strength value.
0009There is further disclosed a method for decoding frames of compressed video information where each frame includes a plurality of blocks having a prediction stage parameter and a residual error attribute. The method includes categorizing each of the blocks into categories based on at least one of the prediction stage parameter and the residual error attribute and determining a loop filter strength value to each of the categories. The boundary adjacent to at least one of the blocks is filtered using the loop filter strength assigned to the category in which that block is categorized.
0010There is further disclosed a method for decoding frames of compressed video information where each frame includes a plurality of blocks each having a prediction stage parameter and a residual error attribute. The method includes determining the block attributes for each block and determining a plurality of values of one or more loop filter attributes. Each value is associated with one or more block attributes. One of the values of one or more loop filter attributes is selected for a particular block based on that block's block attributes. The boundary adjacent to the particular block is filtered using the selected one or more loop filter attribute values.
0011These and other embodiments of the invention are described in additional detail hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
0012The description herein makes reference to the accompanying drawings wherein like reference numerals refer to like parts throughout the several views, and wherein: <ul id="ul0001" list-style="none" compact="compact"><li><figref idref="f0001">FIG. 1</figref> is a block diagram of a video compression system in accordance with one embodiment of the present invention.</li><li><figref idref="f0002">FIG. 2</figref> is a block diagram of a video decompression system in accordance with one embodiment of the present invention.</li><li><figref idref="f0003">FIG. 3</figref> is a schematic diagram of intra-prediction and inter-prediction modes used in the video compression and decompression systems of <figref idref="f0001">FIGS. 1</figref> and <figref idref="f0002">2</figref>.</li><li><figref idref="f0003">FIG. 4</figref> is a block diagram of a loop filter control used to compute a strength modifier used in the video compression system of <figref idref="f0001">FIG. 1</figref>.</li><li><figref idref="f0004">FIG. 5</figref> is a flowchart diagram of a method of selecting the strength modifier of <figref idref="f0003">FIG. 4</figref>.</li><li><figref idref="f0005">FIG. 6</figref> is a flowchart diagram of a method of updating loop filtering video data used in the video compression system of <figref idref="f0001">FIG. 1</figref>.</li><li><figref idref="f0006">FIG. 7</figref> is a flowchart diagram of another method of updating loop filtering video data used in the video compression system of <figref idref="f0001">FIG. 1</figref>.</li></ul>
DETAILED DESCRIPTION
0013Disclosed herein are embodiments of an adaptive loop filter that removes or reduces blocking artifacts. Further, disclosed herein are embodiments of an adaptive loop filter that either removes or reduces blocking artifacts using less overhead data and/or reduces computational complexity.
0014<figref idref="f0001">FIG. 1</figref> is a block diagram of a video encoder 14 using an adaptive loop filter 34 according to one embodiment of the present invention.
0015In the disclosed embodiments, block-based video compression operates on fixed-shaped groups of neighboring pixels, called a macroblock. In general, each frame of video can be divided into macroblocks, where each macroblock consists of a plurality of smaller-sized blocks. These pixel groups within the macroblocks and blocks can be compared with either data found in the current frame or in other frames in order to formulate motion data and error signals. In this embodiment each macroblock can be a group of 16x16 pixels. In other embodiments, macroblocks can also be any other suitable size.
0016Although the description of embodiments of the adaptive loop filter innovations are described in the context of the VP8 video coding format., alternative embodiments of the present invention can be implemented in the context of other video coding formats. Further, the embodiments are not limited to any specific video coding standard or format.
0017To remove discontinuities at block boundaries, loop filtering can be applied to reconstructed, frames during a reconstruction path. As explained in more detail, bellow, the choice of loop filter and the strength of the loop filter can have a significant effect on image quality. A filter that is too strong may cause blurring and loss of detail. A filter that it is too weak may not adequately suppress discontinuities between adjacent blocks.
0018Referring to <figref idref="f0001">FIG. 1</figref>, to encode an input video stream 16, encoder 14 performs the following functions in a forward path (shown by the solid connection lines) to produce an encoded bitstream 26: intra/inter prediction 18, transform 19, quantization 22 and entropy encoding 24. Encoder 14 also includes a reconstruction path (shown by the dotted connection lines) to reconstruct frame for encoding of further macroblocks. Encoder 14 performs the following functions in the reconstruction path: dequantization 28, inverse transformation 30, reconstruction 32 and loop filtering 34. Other structural variations of encoder 14 can be used to encode bitstream 26.
0019Referring to <figref idref="f0001">FIG. 1</figref>, when input video stream 16 is presented for encoding, each frame within input video stream 16 can be processed in units of macroblocks. At infra/inter prediction stage 18, each macroblock can be encoded using either intra prediction or inter prediction mode. In either case, a prediction macroblock can be formed based on a reconstructed frame. In the case of intra-prediction, for example, a prediction macroblock can be formed from samples in the current frame that have been previously encoded and reconstructed. In the case of inter-prediction, for example, a prediction macroblock can be formed from one or more previous or future frames (i.e. reference frames) that have already been encoded and reconstructed. Further, alternate embodiments can encode a macroblock by using some combination of both intra prediction and inter prediction.
0020Next, still referring to <figref idref="f0001">FIG. 1</figref>, the prediction macroblock can be subtracted from the current macroblock to produce a residual macroblock (residual). Transform stage 19 transform codes the residual and quantization stage 22 quantizes the residual to provide a set of quantized transformed coefficients. The quantized transformed coefficients can be then entropy coded by entropy encoding stage 24. The entropy-coded coefficients, together with the information required to decode the macroblock, such as the type of prediction mode used, motion vectors and quantizer value, can be outputted to compressed bitstream 26.
0021The reconstruction path, in <figref idref="f0001">FIG. 1</figref> can be present to permit that both the encoder and the decoder use the same reference frames required to decode the macroblocks. The reconstruction path, similar to functions that take place during the decoding process, which are discussed in more detail bellow, includes dequantizing the transformed coefficients by dequantization stage 28 and inverse transforming the coefficients by inverse transform stage 30 to produce a derivative residual macroblock (derivative residual). At the reconstruction stage 32, the prediction macroblock can be added to the derivative residual to create a reconstructed macroblock. The adaptive loop filter 34 can be applied to the reconstructed macroblock to reduce blocking artifacts.
0022Referring to <figref idref="f0002">FIG. 2</figref>, in accordance with one embodiment, to decode compressed bitstream 26, a decoder 21, similar to the reconstruction path of the encoder 14 discussed previously, performs the following functions to produce an output video stream 35; entropy decoding 25, dequantization 27, inverse transformation 29, intra/inter prediction 23, reconstruction 31, adaptive loop filter 34 and deblocking filtering 33. Other structural variations of decoder 21 can be used to decode compressed bitstream 26.
0023When compressed bitstream 26 is presented for decoding, the data elements can be entropy decoded by entropy decoding stage 25 to produce a set of quantized coefficients. Dequantization stage 27 dequantizes and inverse transform stage 29 inverse transforms the coefficients to produce a derivative residual that is identical to that created by the reconstruction stage in the encoder 14. Using header information decoded from the compressed bitstream 26, at intra/inter prediction stage 23, decoder 21 creates the same prediction macroblock as was created in encoder 14. At the reconstruction stage 31, the prediction macroblock can be added to the derivative residual to create a reconstructed macroblock. The adaptive loop filter 34 can be applied to the reconstructed macroblock to reduce blocking artifacts. A deblocking filter 33 can be applied to the reconstructed macroblock to further reduce blocking distortion and the result can be outputted to output video stream 35.
0024Although the description of embodiments of the adaptive loop filter innovations are described with reference to adaptive loop filter 34 in the encoder, the described filtering techniques are also implemented in adaptive loop filter 34 in the decoder. Reference to adaptive loop filter 34 in the decoder has been omitted throughout the disclosure only to aid in understanding of the invention. However, the filtering innovations are not limited to adaptive loop filter 34 it the encoder and can he applied to adaptive loop filter 34 in the decoder or any other unit incorporating filtering techniques.
0025<figref idref="f0003">FIG. 3</figref> shows reference frames 44, 48 and a current frame 36 that is currently being encoded or decoded. As discussed previously, each frame can be processed in units of macroblocks and at intra/inter prediction stage 18 and each macroblock can be encoded using either intra prediction, inter prediction mode or some combination of inter prediction and intra prediction. For example, a current macroblock 38 is being encoded or decoded using inter prediction from a macroblock 46 from previously coded reference frame 44. Similarly, a current macroblock 38' is being encoded or decoded using inter prediction from a macroblock 50 from previously encoded reference frame 48. Also, for example, a current macroblock 38" is being encoded or decoded using intra prediction from a macroblock 52 within current frame 36.
0026Blocking artifacts can be created during the encoding process and can originate from, for example, intra/inter prediction stage 18, transform stage 19 or quantization stage 22. Since some conventional filters make filter strength dependent on block boundaries, computational processing can be complex and time-consuming.
0027<figref idref="f0003">FiG. 4</figref> is a block diagram illustrating a loop filter control 61 of adaptive loop filter 34 in one embodiment of the present invention. According to one embodiment, loop filter control 61 determines strength modifier 60 based on block attributes. Block attributes are based on existing encoded information about a block or information that is passed to the decoder to assist in properly decoding the bitstream.
0028Block attributes can include a prediction stage parameter 65 and a residual error attribute 66. Prediction stage parameter 65 can include a reference frame type 62 and a type of prediction mode 64. As discussed in more detail below, strength modifier 60 alters the levels of thresholds in adaptive loop filter 34.
0029Reference frame type 62 can be determined by, similar to the illustration in <figref idref="f0003">FIG. 3</figref>, whether intra mode or inter frame mode coding is used when constructing prediction blocks. If intra mode predictive coding is used, reference frame type 62 can be intra-frame (i.e. the current frame). When using an intra-frame, the prediction block can be formed, as discussed previously, from samples in the current frame that have been previously encoded and reconstructed.
0030If inter mode predictive coding is used, inter-frames can be used as a basis for formulating the prediction block. When using inter-frames, the prediction block can be formed, for example, from one or more previous frames, future frames or some combination thereof that have already been encoded and reconstructed. Accordingly, when using inter-frames, reference frame type 62 may include, for example, a last frame, a golden frame or an alternate reference frame. The last frame can be the previously encoded frame before the current frame. The golden frame can be a past frame chosen arbitrarily from the distant past to use as a predictor for subsequent frames. The alternate reference frame may include any frame that is not the last frame or the golden frame. For example, the alternate reference can be a past frame, a future frame, or a constructed reference frame. Further, for example, the constructed reference may be the reference frame as disclosed in patent application titled "System and Method for Video Encoding Using Constructed Reference Frame" that is assigned to the assignee of the present invention, is filed concurrently herewith.
0031Type of prediction mode 64 can be determined, similar to reference frame type 62, by whether intra mode or inter frame mode coding is used when constructing prediction blocks (as illustrated in <figref idref="f0003">FIG. 4</figref>). If intra mode predictive coding is used, two types of intra-coding can be supported which are denoted as non-split mode and split mode. If inter mode predictive coding is used, two types of inter-coding can be supported which are denoted as non-split mode and split mode.
0032If inter mode predictive coding is used with non-split mode, residual error attribute 66 can be determined by whether the resulting motion vector is null or non-zero.
0033As discussed previously, a macroblock can be an array of 16x16 luminance pixels. In intra-coding, each macroblock can be further split into, for example, 4x4 luminance samples referred to as 4x4 sub-blocks. Accordingly, a macroblock can be made of 16 4x4 sub-blocks. This means that a prediction block may be formed for either a macroblock (i.e. non-split mode) or each of the 16 4x4 sub-blocks (i.e. split mode). Other sub-block sizes are also available such as 16x8, 8x16, and 8x8. Although the description of embodiments for intra-coding are described with reference to 4x4 sub-block split mode, any other sub-block size can be used with split mode, and the description of the embodiments are not limited to a 4x4 sub-block.
0034In intra-coding, non-split mode results in prediction of the whole 16x16 macroblock whereas split mode leads to separately predicting such 4x4 sub-block.
0035For intra-coding non-split mode, for example, one of four prediction modes can be utilized to reference neighboring pixel samples of previously-coded blocks which are to the left and/or above the 16x16 block to be predicted. The four selectable prediction modes may be vertical prediction, horizontal prediction, DC prediction and plane prediction.
0036For intra-coding split mode, for example, one of nine prediction modes can be utilized to reference neighboring pixel samples of previously-coded blocks which are to the left, and/or above the 4x4 sub-block to be predicted. The nine selectable prediction modes may be vertical prediction, horizontal prediction, DC prediction, diagonal down-left prediction, diagonal down-right prediction, vertical-right prediction, horizontal-down prediction, vertical-left prediction and horizontal-up prediction.
0037In inter-coding, non-split mode results in calculating one or motion vectors based on displacing an area of a corresponding reference frame for prediction of the whole 16x16 macroblock. Alternatively, split mode results in calculating a motion vector based on displacing an area of a corresponding reference frame for prediction of a partition, of the 16x16 macroblock. The 16x16 macroblock may be split into partitions of 16x8, 8x16, 8x8 or 4x4 each with its own motion vector. Other partition sizes are also available.
0038A motion vector can be calculated for each whole macroblock or each separate partition. In particular, motion compensation predicts the macroblock's (or the corresponding partition within the macroblock) pixel values from a translate of the reference frame. The motion vector for each macroblok or partition may either be null, which indicates there has been no change in motion or non-zero, which indicates there has been a change in motion.
0039Although the description of embodiments describe how adaptive loop filter 34 applies, a different strength modifier 60 based on the prediction stage parameter 65 and residual error attribute 64, any other loop filter attribute may be varied such as the filter type, filter coefficients, and filter taps, and the description of the embodiments are not limited to varying strength modifier 60.
0040<figref idref="f0004">FIG. 5</figref> is a flowchart showing the operation of loop filter control 61 from <figref idref="f0003">FIG. 4</figref> according to one embodiment of the present invention. Referring to <figref idref="f0004">FIG. 5</figref>, at block 100, a baseline loop filter strength f can be selected for the frame that defines the behavior of adaptive loop filter 34. Accordingly, baseline filter strength f will be specified at the frame level in the encoded bitstream. By specifying the baseline filter strength f at the frame level, overhead can be reduced since very few bits can be used to specify a single baseline filter value f for a whole frame. However, even though only one baseline filter strength f can be specified for the frame, filtering quality is not compromised since a filter strength value/modifier 60 alters the levels of thresholds in adaptive loop filter 34, as discussed below.
0041To adjust strength modifier 60 at the macroblock level, delta values 1-8 can be encoded in the bitstream. These delta values are, for example, added to baseline filter strength f. Other suitable procedures for combining baseline filter strength f and strength modifier 60 are also available. Delta values may also be incremental values or percentage increase/decrease values or the like. Delta values may also be positive, negative or zero. Application of the deltas according to the flowchart of <figref idref="f0004">FIG. 5</figref> gives rise to 11 different strength modifiers 60 identified as F1-F11.
0042At decision block 102, control 61 determines whether the current macroblock being reconstructed has been intra-coded.
0043If the current macroblock has been intra-coded, delta 1 can be added to baseline filter strength f. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, reference frame type 62 is an intra-frame. Then, control 61 moves to decision block 104.
0044At decision block 104, control 61 determines whether intra-coding split mode is being used. If intra-coding split mode is being used, delta 2 can be added to delta 1 and baseline filter strength f to yield strength modifier F2, Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inta-coding split, mode.
0045If intra-coding split mode is not being used (i.e. non-split, mode), only delta 1 can be added to baseline filter strength f to yield strength modifier F1. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is mtra-coding non-split mode.
0046If the current macroblock has not been intra-coded, control 61 moves to decision block 106 to determine the type of inter-coded reference frame used. If the last frame is used, delta 3 can be added to baseline filter strength f. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, reference frame type 62 is the last frame. Then, control 61 moves to decision block 108.
0047If a golden frame is used, delta 4 can be added to baseline filter strength f. Referring back to <figref idref="f0003">FIG, 4</figref>, in this case, reference frame type 62 is the golden frame. Then, control 61 moves to decision block 110.
0048If an alternate frame is used, delta 5 can be added to baseline filter strength f. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, reference frame type 62 is an alternate frame. Then, control 61 moves to decision block 112.
0049As discussed previously, if the last frame is used, control 61 determines prediction mode 64 at decision block 108. If inter-coding split mode is being used, delta 8 can be added to baseline filter strength f and delta 3 to yield strength modifier F5. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction, mode 64 is inter-coding split mode.
0050If inter-coding split, mode is not being used, control 61 determines whether the calculated motion vector is null or non-zero, If the motion vector is null, delta 6 can be added to baseline filter strength f and delta 3 to yield strength modifier F3. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inter-coding non-split mode, and residual error attribute 66 is a null motion vector. If the motion vector is non-zero, delta 7 can be added to baseline filter strength f and delta 3 to yield strength modifier F4, Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inter-coding non-split mode, and residual error attribute 66 is a non-zero motion vector.
0051As discussed previously, if a golden frame is used, control 61 determines prediction mode 64 at decision block 110. If inter-coding split mode is being used, delta 8 can be added to baseline filter strength f and delta 4 to yield strength modifier F8. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inter-coding split mode.
0052If inter-coding split mode is not being used with the golden frame, control 61 determines whether the calculated motion vector is null or non-zero. If the motion vector is null, delta 6 can be added to baseline filter strength f and delta 4 to yield strength modifier F6. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inter-coding non-split mode, and residual error attribute 66 is a null motion vector. If the motion vector is non-zero, delta 7 can be added to baseline filter strength r and delta 4 to yield strength modifier F7. Referring back to <figref idref="f0003">FIG. 4</figref>, in this ease, prediction mode 64 is inter-coding non-split mode, and residual error attribute 66 is a non-zero motion vector.
0053As discussed previously, if an alternate frame is used, control 61 determines prediction mode 64 at decision block 112. If inter-coding split mode is being used, delta 8 can be added to baseline filter strength f and delta 5 to yield strength modifier F11. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is be inter-coding split mode.
0054If inter-coding split mode is not being used with the alternative frame, control 61 determines whether the calculated motion vector is null or non-zero. If the motion vector is null, delta 6 can be added to baseline filter strength f and delta 5 to yield strength modifier F9. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inter-coding non-split mode, and residual error attribute 66 is a null motion vector. If the motion vector is non-zero, delta 7 can be added to baseline filter strength f and delta 5 to yield strength modifier F10. Referring back to <figref idref="f0003">FIG. 4</figref>, in this case, prediction mode 64 is inter-coding non-split mode, and residual error attribute 66 is a non-zero motion vector.
0055Generally, different levels of strength modifier 60 are applied to blocking artifacts the extent of which are more or less likely to be present depending on reference frame type 62 and prediction mode 64. As illustrated in <figref idref="f0004">FIG, 5</figref>, for example, a different strength modifier 60 can be applied to intra-coded macroblocks rather than inter-coded macroblocks (i.e. F1-F2 vs. F2-F11). Further, a different strength modifier 60 can be applied to intra-coded non-split mode macroblocks rather than intra-coded split-mode macroblocks (i.e. F1 vs. F2). Other suitable schemes to adjust strength modifier 60 are also available.
0056<figref idref="f0005">FIG. 6</figref> is a flowchart of a method of updating loop filtering video data according to one embodiment of the present invention. The loop filtering video data can include both the reference frame loop filter modifiers as well as the prediction mode loop filter modifiers. The reference frame loop filter modifiers can include the delta values for the reference frame type 62. The prediction mode loop filter modifiers can include the delta values for both prediction mode 64 and the residual error attribute 66,
0057Referring again to <figref idref="f0005">FIG. 6</figref>, at decision block 132, adaptive loop filter 34 determines whether the current frame is a frame coded without reference to any other frame except itself (commonly referred to as a key frame). If the current frame is a key frame, adaptive loop filter 34 moves to block 134 to set reference frame loop filter modifiers to default values. Then, at block 136, adaptive loop filter 34 sets prediction mode loop filter modifiers to default values. Once the values have been set to default, adaptive loop filter moves to decision block 130 to determine whether a filter condition is enabled at the frame level.
0058If current frame is a key frame and the values have been set to default or if the current frame is not a key frame, adaptive loop filter 34 moves to decision block 130 to determine whether a filter condition is enabled at the frame level. Adaptive loop filter 34 can determine whether loop filter modifiers are enabled through a single bit, a byte, a flag or the like.
0059If loop filter modifiers are not enabled (i.e. a single loop filter condition has been detected), loop filtering in adaptive loop filter 34 stage can be skipped for the current frame. In other words, a single loop filter strength can be applied to all the blocks within the frame. A single loop filter strength can also include not applying a loop filter for any part of the frame.
0060Once loop filtering has been skipped for the current frame, adaptive loop filter will return to decision block 130 to determine whether loop filter modifiers have been enabled for the next frame. Adaptive loop filter 34 may choose to skip loop filtering based on one or more characteristics of the residual error signal, reference frame type 62, prediction mode 64 or some combination thereof. Other suitable factors to skip loop filtering in adaptive loop filter 34 are also available.
0061For example, loop filtering may be skipped when there is no AC component of the residual macroblock in transform stage 19 and where the macroblock is inter-coded with a null motion vector. In this manner, skipping loop filtering in this instance will prevent repeated loop filtering over several frames in regions of the image where there is no motion. Accordingly, blurring will be reduced and less compulsions Will be involved reducing the overall computational complexity of the
0062Still referring to <figref idref="f0005">FIG. 6</figref>, if loop filter modifiers are enabled, adaptive loop filter 34 moves to decision block 138 to determine whether a loop filter strength value condition has been detected. More specifically, at decision block 138, adaptive loop filter 34 determines whether there have been any updates to the loop filter modifiers that have been encoded in the current frame. Adaptive loop filter 34 can determine whether loop filter modifiers are to be updated through a single bit, a byte, a flag or the like.
0063If there are no updates to loop filter modifiers, adaptive loop filter 34 uses the preset loop filter modifiers from the previous frame to apply to the current frame. Once the previous values have been applied, adaptive loop filter will return to decision block 130 to determine whether loop filter modifiers have been enabled for the next frame.
0064If there are updates to loop filter modifiers, at block 140, adaptive loop filter will update the preset, values of reference frame loop filter modifiers. Then, adaptive loop filter will move to block 142 to update the preset values of prediction mode loop filter modifiers. Once the values have been updated, adaptive loop filter will return to decision block 130 to determine whether loop filter modifiers have been enabled for the next frame.
0065Referring back to <figref idref="f0004">FIG. 5</figref>, reference frame loop filter modifiers and prediction mode loop filter modifiers can be delta values 1-8 applied at each of the junctions of the flowcharts. Specifically, delta values 1, 3, 4 and 5 can be reference frame loop filter modifiers corresponding to reference frame type 62, delta values 2 and 8 can be prediction mode loop filter modifiers corresponding to prediction mode 64 and delta values 6 and 7 can be prediction mode loop filter modifiers corresponding to residual error attribute 66. Each of these delta values can be updated in adaptive loop filter 34 using the method shown in the flowchart of <figref idref="f0005">FIG. 6</figref>
0066<figref idref="f0006">FIG. 7</figref> is a flowchart of a method of updating loop filtering video data according to one embodiment of the present invention. <figref idref="f0006">FIG. 7</figref> is similar to the flowchart of <figref idref="f0005">FIG. 6</figref> except that adaptive loop filter 34 does not determine whether the current frame is a key frame. Accordingly, if loop filter modifiers are enabled and there are updates to those loop filter modifiers, all frames may update the reference frame loop filter modifiers and prediction mode loop filter modifiers.
0067Exemplary pseudo code for implementing the steps of the method in <figref idref="f0006">FIG. 7</figref> is shown in Table 1. <tables id="tabl0001" num="0001"><img file="EP2324638B1_D0001.tif" /></tables>
0068The aforementioned pseudo code is not intended to be limited to any particular programming language and implementation thereof. It filter will be appreciated that a variety of programming languages and implementations thereof may be used to implement the teachings of embodiments of the invention as described herein.
0069Referring to <figref idref="f0005">FIGS. 6</figref> and <figref idref="f0006">7</figref> and the aforementioned pseudo code, embodiments of the present invention decrease the amount of overhead in the bitstream. For example, determining whether loop filter modifiers are enabled can be accomplished through a single bit. Further, for example, determining whether updates to loop filter modifiers are enabled can also be accomplished through a single bit.
0070While the invention has been described in connection with certain embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiments but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims, which scope is to be accorded the broadest interpretation so has to encompass all such modifications and equivalent structures as is permitted under the law.
Contents6
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| EP1555832A2 | Cites | European Patent Office (EPO) |
| EP1933566A2 | Cites | European Patent Office (EPO) |
| KR20050018730A | Cites | Republic of Korea |
| KR20080056083A | Cites | Republic of Korea |
| US2004179610A1 | Cites | United States of America |
| US2007009044A1 | Cites | United States of America |
| LEE<1> Y-L ET AL: "Loop filtering and post-filtering for low-bit-rates moving picture coding", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 16, no. 9, 1 June 2001 (2001-06-01), pages 871-890, XP004245273, ISSN: 0923-5965, DOI: 10.1016/S0923-5965(00)00048-5 | Non-patent | – |
23 members in 8 offices
Priority claims11
| Document | Office | Kind | Date |
|---|---|---|---|
| 9614708 | United States of America | P | |
| 96147P | United States of America | – | |
| 32907008 | United States of America | A | |
| 329070 | United States of America | – | |
| 2009056462 | United States of America | W | |
| WO2009US56462 | – | – | – |
| US20080096147P | – | – | – |
| US20080329070 | – | – | – |
| 96147P | – | – | – |
| 329070 | – | – | – |
| 2009056462 | – | – | – |
Members23
| Document | Office | Kind | |
|---|---|---|---|
| US2010061645A1 | United States of America | A1 | |
| CA2736887A1 | Canada | A1 | |
| WO2010030744A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2010030744A3 | World Intellectual Property Organization (WIPO) | A3 | |
| KR20110053245A | Republic of Korea | A | |
| EP2324638A2 | European Patent Office (EPO) | A2 | |
| CN102150427A | China | A | |
| JP2012502591A | Japan | A | |
| US8326075B2 | United States of America | B2 | |
| US2013114679A1 | United States of America | A1 | |
| US2013119036A1 | United States of America | A1 | |
| US2013119037A1 | United States of America | A1 | |
| WO2013068828A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2013068829A2 | World Intellectual Property Organization (WIPO) | A2 | |
| EP2324638A4 | European Patent Office (EPO) | A4 | |
| WO2013068829A3 | World Intellectual Property Organization (WIPO) | A3 | |
| JP5396478B2 | Japan | B2 | |
| CN102150427B | China | B | |
| DE202012012971U1 | Germany | U1 | |
| DE202012012977U1 | Germany | U1 | |
| US8897591B2 | United States of America | B2 | |
| EP2324638B1This record | European Patent Office (EPO) | B1 | |
| US10010959B2 | United States of America | B2 |
76 legal events, as 9 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Opt-out of the competence of the unified patent court (upc) registeredP01 | P01 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent lapsedLapsedMM4A | MM4A | IE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Change of name or company nameCD | CD | FR | |
| Change in legal formCJ | CJ | FR | |
| Change of applicant/patenteeR081 | R081 | DE | |
| Change of representativeR082 | R082 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Deletion acc. to par. 5 (withdrawal of the translation of the ep patent)MK05 | MK05 | AT | |
| Patent invalid in the netherlands as no translation has been filedMP | MP | NL | |
| Invalidated european patentMG4D | MG4D | LT | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| Reference to at number (ep patent validated in austria)REF | REF | AT | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Intention to grant announcedINTG | INTG | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Amendment of ipc main classPREVIOUS MAIN CLASS: H04N0007240000R079 | R079 | DE | |
| First examination report despatched17Q | 17Q | EP | |
| Supplementary search report drawn up and despatchedA4 | A4 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Request for extension of the european patent (deleted)DAX | DAX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 2324638
- Publication, DOCDB
- 2324638
- Publication, EPODOC
- EP2324638
- Application
- 9813582
- Application, DOCDB
- 09813582
- Application, EPODOC
- EP20090813582
Titles3
- German
- SYSTEM UND VERFAHREN ZUR VIDEOKODIERUNG MITHILFE EINES ADAPTIVEN SCHLEIFENFILTERS
- English
- SYSTEM AND METHOD FOR VIDEO ENCODING USING ADAPTIVE LOOP FILTER
- French
- SYSTÈME ET PROCÉDÉ D ENCODAGE VIDÉO UTILISANT UN FILTRE DE BOUCLE ADAPTATIF
Classification
- CPC, 9
- H04N19/117
- H04N19/139
- H04N19/159
- H04N19/176
- H04N19/50
- H04N19/513
- H04N19/65
- H04N19/82
- H04N19/86
- IPC, 2
- H04N19 82
- H04N19 89
Designated states1
- Contracting states, 1
- Türkiye
