The present application relates generally to video image processing and, more specifically, to a system and method for video image encoding and decoding.
Hybrid video coding schemes, namely block-based motion compensation followed by transforms and quantization, results in coding artifacts due to its lossy nature. To further improve coding efficiency and the quality of encoded video, adaptive loop filtering (ALF) methods have been proposed, which design filters on a frame by frame basis to minimize the mean-squared error (MMSE filters). Frames after applying ALF will have improved visual quality, and serve as better references for temporal predictive coding to achieve higher coding efficiency. The estimated filter coefficients are encoded and transmitted as side information in the bitstream. Thus, the rate-distortion tradeoff in designing ALF schemes is between the size (rate) of side information and the quality improvement.
Various ALF approaches have been proposed to tackle different type of artifacts. For video content exhibiting localized focus changes, P. Lai, Y. Su, P. Yin, C. Gomila, and A. Ortega, “Adaptive filtering for video coding with focus change,” in Proc. IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP) 2007, Honolulu, Hi., USA, pp. I.661-664, April 2007; designed multiple filters by classifying macroblocks (MB) based on the type of estimated local MB-wise focus changes. Then for each class of blocks, a Wiener filter is designed to compensate for the associated type of focus change. In inter-view disparity compensation for multiview video coding (MVC), since focus mismatch is depth-dependent and depth is the reciprocal of disparity, P. Lai, Y. Su, P. Yin, C. Gomila, and A. Ortega, “Adaptive filtering for cross-view prediction in multi-view video coding,” in Proc. SPIE Visual Communications and Image Processing (VCIP) 2007, San Jose, Calif., USA, January 2007; classified blocks in a video frame according to the block-wise disparity vectors. Again each class adapts to a MMSE Wiener filter. For more generic denoising purposes, T. Chujoh, A. Tanizawa, and T. Yamakage, “Block-based adaptive loop filter,” ITU-SG16 Q6 VCEG-AJ13, San Diego, Calif., USA, October 2008; T. Chujoh, N. Wada, T. Watanabe, G. Yasuda, and T. Yamakage, “Specification and experimental results of quadtree-based adaptive loop filter”, ITU-SG16 Q6 VCEG-AK22, Apr. 200; T. Watanabe, N. Wada, G. Yasuda, A. Tanizawa, T. Chujoh, and T. Yamakage, “In-loop filter using block-based filter control for video coding,” in Proc. IEEE International Conference on Image Processing (ICIP) 2009, Cairo, Egypt, pp. 1013-1016, Nov. 200; all designed a single Wiener filter per frame, while enabling spatial adaptation with filtering on/off control on equal-sized block basis as used in “Block-based adaptive loop filter” and “In-loop filter using block-based filter control for video coding”, or on hierarchical quadtree basis as used in “Specification and experimental results of quadtree-based adaptive loop filter”. M. Karczewicz, P. Chen, R. Joshi, X. Wang, W.-J. Chien, and R. Panchal, “Video coding technology proposal by Qualcomm Inc.” JCTVC-A121, Dresden, Germany, April 2010; further extended the single filter with quadtree-on/off control as in “Specification and experimental results of quadtree-based adaptive loop filter” to multiple filters with quadtree-on/off control, by classifying individual pixels (instead of classifying blocks) in a frame into 16 classes according to the magnitudes of sums of local Laplacian. To achieve the best coding efficiency, initially, a Wiener filter is designed for each pixel class. Then rate-distortions tests are conducted to possibly reduce the number of filters by merging different filter class-labels and redesign filters for the merged classes. Clearly, this procedure presents additional complexity in designing filters. Improved coding efficiency, as compared to single filter with quadtree-on/off control, has been reported. We will denote the adaptive filter design in “Video coding technology proposal by Qualcomm Inc.” it as QC_ALF. However, besides the aforementioned additional complexity associated with filter class-label merging and filter redesign, another drawback of QC_ALF is that since its classification only considers the magnitude of local Laplacian, the resulting linear Wiener filters tend to be low-pass and isotropic in general, and hence are not suitable for reducing artifacts around sharp edges.
To improve both coding efficiency and visual quality of video coding, this disclosure present an adaptive loop filtering design, which exploits local directional characteristics exhibit in the video content. Multiple simple directional features are computed and compared to classify blocks in a video. Each class of blocks adapt to a directional filter, with symmetric constraints imposed on the filter coefficients according to the dominant orientation determined by the classification. The design optionally combines linear spatial filtering and directional filtering with a similarity mapping function. To emphasis pixel similarity for explicit adaptation to edges, a simple hard-threshold mapping function can optionally be used to avoid artifacts arising from across-edge filtering.
An apparatus includes a video/image encoder configured to design and apply multiple filters to video information. The multiple filters are designed according to classification of the video information based on at least one local directional feature of the video information. The video/image encoder is further configured to encode the filter coefficients of the multiple filters.
An apparatus includes a video/image encoder configured to design multiple filters with symmetric constraints on the filter coefficients configured according to the classification of the video information based on at least one local directional feature of the video information.
An apparatus includes a video/image decoder configured to decode filter coefficients of multiple filters and apply the multiple filters to the video information. The multiple filters are applied according to classification of the video information based on at least one local directional feature of the video information.
An apparatus includes a video/image decoder configured to construct, from decoded filter coefficients, multiple filters with symmetric constraints on the filter coefficients configured according to the classification of the video information based on at least one local directional feature of the video information.
A method includes classifying video information based on at least one local directional feature of the video information to design multiple filters. The method also includes encoding filter coefficients of the multiple filters. The method further includes applying multiple filters to the video information.
A method includes designing multiple filters with symmetric constraints on the filter coefficients configured according to the classification of the video information based on at least one local directional feature of the video information.
A method includes decoding filter coefficients of multiple filters. The method also includes applying the multiple filters to video information. Applying the multiple filters includes classifying the video information based on at least one local directional feature of the video information.
A method includes constructing, from decoded filter coefficients, multiple filters with symmetric constraints on the filter coefficients configured according to the classification of the video information based on at least one local directional feature of the video information.
Before undertaking the DETAILED DESCRIPTION OF THE INVENTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts:
The encoder 100 includes a de-blocking filter 105 and an Adaptive Loop Filter (ALF) 110. The ALF 110 designs and apply ALF after the de-blocking filter 105 and is configured to receive an output from the de-blocking filter 105 and provide an outputted signal to an entropy coding block 115 and a reference picture buffer 120. The filtered references are stored in the reference picture buffer 120. Filter coefficients and a control map need to be encoded into the bitstream.
Embodiments of the present disclosure provide a modified adaptive loop filter 110 that includes a Loop filter designed with directional features. There are two main ALF functionality provided in this disclosure: 1. Classifying pixels or blocks in a video frame by computing and comparing at least one directional features, for filter adaptation; and 2. Constructing directional filters wherein symmetric constraints are imposed on the filter coefficients according to the directional classification.
The video decoder 200 includes an entropy decoder 205, which decode the ALF filter coefficients and on/off control map; and a de-blocking filter 210 and an Adaptive Loop Filter (ALF) 215, which construct filter(s) according to the decoded filter coefficients, received as the output from the entropy decoder 205, and apply the filter(s) after the de-blocking filter 210. The ALF 215 provides an outputted signal to a reference picture buffer 220. The filtered references are stored in the reference picture buffer 220. Embodiments of the present disclosure provide a modified adaptive loop filter 215 that includes a Loop filter designed with directional features.
Similar to the ALF 110 in the encoder 100, embodiments of the present disclosure provide the ALF 215 in the video decoder with two main ALF functionality: 1. Classifying pixels or blocks in a video frame by computing and comparing at least one directional features, for filter adaptation; and 2. Constructing directional filters wherein symmetric constraints are imposed on the filter coefficients according to the directional classification.
First, the classification by computing and comparing at least one directional features is explained.
In certain embodiments, pixel classification is based on directional features, such as local gradients. That is, the reconstructed pixels in a video frame are classified into four classes based on the direction of local gradients.
For each pixel X(i,j), the four directional local gradients are computed as follows:
Therefore, within the neighborhood of ±L pixels, grad_h measures the horizontal gradient, grad_v measures the vertical gradient, grad_d measures the gradient of 45 degrees (°) down, and grad_u measures the gradient of 45° up. Then, the pixel X(i,j) will be assigned as directional class D(i,j) according to the direction with minimum local gradient: min_g(i,j)=min{grad_h(i,j), grad_v (i,j), grad_d(i,j), grad_u (i,j)}:
D(i,j)=0if min—g(i,j)=grad—h(i,j) [Eqn. 5]
D(i,j)=1if min—g(i,j)=grad—v(i,j) [Eqn. 6]
D(i,j)=2if min—g(i,j)=grad—d(i,j) [Eqn. 7]
D(i,j)=3if min—g(i,j)=grad—u(i,j) [Eqn. 8]
Using Equations 5 through 8, the ALF 110 classifies pixels into classes with similar edge and feature directions in step 305. The ALF 110 classifies blocks and/or pixels in the deblocked frame by computing and comparing multiple directional features. In certain embodiments, the ALF 110 applies, in block 310, a mapping function to deblocked pixels for a directional filter design. In block 315, the ALF 110 computes and encodes filter coefficients for each directional filter designed for the corresponding class of blocks and/or pixels. In certain embodiments, the ALF 110 determines filter on/off control on a block-basis in block 320. In block 325, the ALF 110 applies the computed and encoded filter coefficients to the corresponding class of blocks and/or pixels. Thereafter, in block 330, the ALF 110 computes rate-distortion cost for applying adaptive loop filtering and compares, in block 335, the computed rate-distortion cost against not applying adaptive loop filtering. If there is no rate-distortion cost reduction after applying ALF, the ALF 110 sets a flag to zero (0) and stores the deblocked frame into reference picture buffer in block 340. If there is a rate-distortion cost reduction after applying ALF, the ALF 110 sets a flag to one (1) and stores the filtered frame into reference picture buffer 120 and puts encoded ALF coefficients and the optional on/off controls into the bitstream in block 345. In some embodiments, the ALF 110 does not perform one or more of blocks 310 and 320. That is, in certain embodiments, on or more of blocks 310 and 320 are optional.
To decode the video frame, the ALF 215 determines, in block 405, whether the flag is set to zero (0) or one (1). If the flag is set to zero (0), the ALF 215 stores the deblocked frame into the reference picture buffer 220 in block 410. Alternatively, if the flag is set to one (1), the ALF 215 decodes the ALF coefficients and the optional on/off controls from the bitstream in block 415. Thereafter, in block 420, the ALF 215 classifies blocks and/or pixels in the deblocked frame by computing and comparing multiple directional features. In certain embodiments, the ALF 215 applies a mapping function to the deblocked pixels for directional filter design. In block 430, the ALF 215 applies decoded ALF filter coefficients, with optional on/off controls, to the corresponding class of blocks and/or pixels. Thereafter, the ALF 215 stores the ALF filtered frame into reference picture buffer 220 in block 435. In some embodiments, the ALF 215 does not perform block 425. That is, in certain embodiments, block 425 is optional.
The examples shown in
In certain embodiments, the ALF 410 is configured to employ a block-based filter adaptation based on direction of local gradients. The reconstructed blocks in a video frame are classified into four classes based on the direction of local gradients. For example, a 4-by-4 block 600 to be classified is shown in
In general, for a N-by-N block B(i,j) with the top-left pixel X(Ni,Nj), the four directional local gradients can be computed using [−1, 2, −1] weights as follows:
Alternatively, the four directional local gradients can be computed using [1, −1] weights as follows. It should be noted that similar [−1, 1] weights can be used and the corresponding equations are straightforward. Also note that the two-weight gradient computation can also be applied to pixel-based filter adaptation to modify Equation 1 through Equation 4.
Therefore, if L=1, the top-left 9 pixels illustrated by the 3-by-3 dash-line rectangle within the 4-by-4 block 600 will be used to compute directional features: grad_h measures the horizontal gradient, grad_v measures the vertical gradient, grad_d measures the gradient of 45 degree down, and grad_u measures the gradient of 45 degree up. Then all the pixel in block B(i,j) will be assigned as directional class D(i,j) according to the direction with minimum local gradient: min_g(i,j)=min{grad_h(i,j), grad_v (i,j), grad_d(i,j), grad_u (i,j)} according to Equations 5 through 8. Similarly, other embodiments can be constructed such as using the top-left 4 pixels within the current 4-by-4 block to be classified.
This will classify blocks into classes with similar edge and feature directions (block-based filter adaptation). Such filter adaptation will have lower complexity as compared to pixel-based filter adaptation where the gradients are computed for every pixel.
The utilization of [1, −1] weights in gradient computation also reduce complexity as compared to using [−1, 2, −1] weight. Note that for each N-by-N block B(i,j), pixels other than the top-left pixel X(Ni,Nj) can also be used to compute directional gradient to classify all pixels in into the same directional class. Using the top-left pixel X(Ni,Nj) is just an example.
In certain embodiments, a subset of pixels in the N-by-N block can be used. For example, four of the pixels 610a through 610d from the 4-by-4 block 600 may be selected, which corresponds to a uniform sub-sampling. The directional computations are then performed on the selected pixels 610a through 610d.
Computing directional features using pixel from the top-left corner could require accessing pixels outside the current 4-by-4 block 600 to be classified. For example to compute directional features at pixel 610a, pixels on top of 610a or to the left of 610a also need to be accessed, if the features are computed based on Equation 9-12. Thus, in certain embodiments, the ALF selects pixels 605d through 605g to ensure that the calculations access only pixels from within the 4-by-4 block 600 for the directional classification.
Beside classification by computing and comparing at least one directional features, a second functionality this disclosure provides is constructing directional filters wherein symmetric constraints are imposed on the filter coefficients according to the directional classification.
In certain embodiments, in order to consider the proximity between pixels as well as the directional pixel value similarity, the ALF 410 filters contain a spatial linear part (with M coefficients am) and another directional part (with N coefficients bn) with optional simple non-linear mapping. For a pixel Xp to be filtered, a diamond shaped 5×5 window centered at Xp and containing thirteen pixels will be used to produce the filtered results Yp:
where Xm are the neighboring pixels, and X′n are optionally modified neighboring pixels after applying the mapping function described later in this disclosure.
The coefficients am and bn can be obtained by solving MMSE equations for pixels in each directional class D_k:
where Ip are the original pixel before encoding.
As shown in Equation (17) and (18), the filters restore the reconstructed frames toward the original frame by applying coefficients am and bn to the neighboring pixels, subject to the optional similarity mapping.
In certain embodiments, only the directional filter (coefficients bn) is utilized, with optional simple non-linear mapping. That is, the spatial components 720, 820, 920, 1020, shown enclosed by dashed-box, are optional and are not included.
For example, using 5×5 filters, the four filters f_h, f_v, f_d, and f_u, include directional filter coefficients bn to exploit the characteristics of dominant edge/feature directions for pixels in each class. For example the directional filter in f_h 700, same coefficient is assigned only to pixels 705 on the same horizontal line 715, while pixels 710 on the same vertical line are all assigned to different coefficients. Similarly, 7×7 filters are constructed by only taking the directional parts with coefficients bk in with the center pixel (coefficients bc). Other filter shapes (such as larger/smaller diamond shapes, square-shapes, etc.), with or without the optional linear spatial part, could be used without departing from the scope of this disclosure which utilizes symmetric constraints on filter coefficients according to the directional classification.
In certain embodiments, a simple non-linear mapping for pixels is utilized in the directional filter. This non-linear mapping is configured to avoid using neighboring pixels Xn with large value differences from the pixel Xp to be filtered. A similar principle is used in the bilateral filtering discussed in C. Tomasi and R. Manduchi, “Bilateral Filtering for Gray and Color Images”, in Proc. IEEE International Conference on Computer Vision, Bombay, India 1998, the contents of which are incorporated by reference. In Bilateral Filtering for Gray and Color Images, smaller filter weights are assigned to pixels Xn with large value differences from the pixel Xp. However Tomasi and Manduchi bilateral filter is not a MMSE Wiener filter: The filter weights are determined based on kernels such as Gaussian functions, instead of being calculated to minimize prediction error. Thus it does not guarantee to improve PSNR measurement and consequently is typically not used as loop filter for video coding. The embodiments of directional similarity filter with mapping in the present disclosure maintain this edge-preserving capability, while can also use MMSE computation to obtain coefficients as in Equation 18.
In embodiments of the present disclosure, the non-linear mapping function is a simple hard-thresholding as the following:
For Xp to be filtered, map its neighboring pixels Xn to Xn′:
X
N
′=X
N if |XN−XP|≦σ/2 [Eqn. 19]
X
N
′=X
N if |XN−XP|>σ/2 [Eqn. 20]
That is, for a neighboring pixel Xn with |XN−XP|≦σ/2, the value for Xn will not be changed. However if |XN−XP|>σ/2, it is determined that this pixel value should not be considered in the directional similarity filter. The value of σ should take into account the degree of coding error, which is typically controlled by the quantization parameter QP: Larger QP values lead to higher degree of coding error, such that the reconstructed values could deviate farther away from their original values, while still not to the extent of having the values like pixels on the other side of an edge. Thus the filter design should be more aggressive under high QP scenario in order to suppress stronger coding artifacts, indicating the use of larger threshold σ. In certain embodiments, the threshold σ can be determined according to the quantization parameter QP as: σ=[2̂(QP/0.6)−1]*0.8, similar to the calculation of parameter α and β in the deblocking filter in H.264/AVC in P. list, A. Joch, J. Lainema, G. Bjontegaard, and M. Karczewicz, “Adaptive deblocking filter”, in IEEE Trans. on Circuits and Systems for Video Technology (CSVT), 2003, the contents of which are incorporated by reference. Other QP dependent functions could also be used to calculate threshold σ.
At the encoder side, pixels Xn′ after mapping and pixel Xn without mapping will be used in Equation (18) to compute coefficients am and bn simultaneously. Filtered frame will then be produced by applying filters as in Equation (17). The filter coefficients will be encoded and transmitted in the bitstream. At the decoder side, after the reconstructed frame is generated, ALF process is performed by first classifying the pixels or blocks based on directional features, and then applying the decoded filter coefficients am and bn to pixel Xn without mapping and to pixels Xn′ after mapping, respectively.
In certain embodiments, the ALF 110 is configured to employ efficient coding of filter coefficients. To further reduce the side information of transmitting filter coefficients, embodiments of the present disclosure provide two techniques for coding the coefficients prior to sending the coefficients to the “Entropy Coding” block 115 (in
In certain embodiments, the ALF 110 employs a differential coding of filter coefficients between frames. For the filter design, there will be four filters for a frame that utilizes adaptive loop filtering. The size of filter is fixed across different frames. The corresponding filters at different frames demonstrate similarity in their coefficients. Thus for frame m, instead of the ALF 110 sending the coefficients of f_hm, f_vm, f_dm, and f_um directly to the entropy coding 115, differential coding is applied to only send the differences between filter coefficients of frame m and filter coefficients of previously encoded frame n, which also utilizes the adaptive loop filter 110. The differences are computed as follows:
diff
—
f
—
h
m
=f
—
h
m
−f
—
h
n [Eqn. 21]
diff
—
f
—
v
m
=f
—
v
m
−f
—
v
n [Eqn. 22]
diff
—
f
—
d
m
=f
—
d
m
−f
—
d
n [Eqn. 23]
diff
—
f
—
u
m
=f
—
u
m
−f
—
u
n [Eqn. 24]
In certain embodiments, to achieve the best differential coding results, the ALF 110 selects frame n as the temporally closest one to frame m, such that the two frames will have the most similar characteristics and thus higher similarity in their filters. Note that to frame m, this temporally closest frame n might not be the closest one in encoding order. For example, in hierarchical B coding structure with GOP size 8, the encoding order will be frames 0, 8, 4, 2, 6, 1, 3, 5, 7 . . . . For frame m=1, the closest one in encoder order is frame 6, while frame 0 or frame 2 are actually the temporally closest ones to frame 1. If all these frames use adaptive loop filtering, n should be selected as 0 or 2, instead of 6.
Another aspect with regards to the filter coefficients is that, across frames, coefficients ak from the spatial part tend to have smaller variations than coefficients bk from the directional filter part. After performing differential coding, differences in ak are typically smaller than differences in bk. If all the differences of one filter (such as a1˜a5 and bc˜b7 of diff_f_hm) are sent followed by all the differences of another filter (say diff_f_vm) to the entropy coder 415, it is likely the entropy coder 415 will see the differences increase within the first filter diff_f_hm, and then decrease when it get differences from another filter (such as b7 of diff_f_hm followed by a1 of diff_f_vm), and then increase again within the second filter diff_f_vm. This variation would lead to lower efficiency for context based entropy coder such as CABAC.
In certain embodiments, the ALF 110 is configured to use the scanning order 1100 for coefficient differences across filters within a frame. Differences of a0 of all filters will be scanned first followed by differences of a1. After all the ak coefficients, the ALF 110 will then scan differences bk for diff_f_hm and diff_f_vm, and finally scan differences bk for diff_f_dm and diff_f_um. By doing so, the ALF 110 will send the differences to the entropy coder 115 with a gradually increasing order without sudden drops from large to small.
Note that the scanning order in 1100 can also be applied to filter coefficients themselves, not only to the filter coefficient differences. For example in 1100, each elements can be the coefficients from the filters f_hm, f_vm, f_dm, f_um.
Besides classifying pixels or blocks into 4 directional classes as described above, in certain embodiments, the ALF 110 and 215 is configured to construct the filters by classifying pixels or blocks into two directional classes by computing and comparing for example two directional features in horizontal and vertical directions. Each directional class can optionally further be classified into more classes based on measurements of the strength of local variation.
Embodiments of the present disclosure provide examples of classification of 8 filters with two directional classes. To classify a 4×4 block B with pixels {X(i,j) |i=0, 1, 2, 3; j=0, 1, 2, 3}, the following 3 values are computed according to Equations 25 through 29 (reproduced here):
H
B=Σi=0,2Σj=0,2H(i,j) [Eqn. 25]
V
B=Σi=0,2Σj=0,2V(i,j) [Eqn. 26]
L
B=(H′B+V′B)<<2 [Eqn. 27]
where
H(i,j)=abs(X(i,j)<<1−X(i,j−1)−X(i,j+1)) [Eqn. 28]
V(i,j)=abs(X(i,j)<<1−X(i−1,j)−X(i+1,j)) [Eqn. 29]
or
H(i,j)=abs(X(i,j)−X(i,j+1)) [Eqn. 30]
V(i,j)=abs(X(i,j)−X(i+1,j)) [Eqn. 31]
Note that the computation of above corresponds to feature computations at uniform sub-sampling of pixels as depicted by 610a through 610d. Other sub-sampling as described earlier in this disclosure can also be utilized. Then, for each directional class, there are four levels. The class label CB of block B is obtained from the Table 2 “varTab—8” below, as CB=varTab—8 [dir][avgVar]:
dir=1, if VB>HB
dir=0, otherwise [Eqn. 32]
avgVar=max{15,(LB*1024)>>(3+BitDepthY)} [Eqn. 33]
avgVar in Equation 33 is a normalized value of LB from Equation 27, to measure the strength of variation in the block B. Other measurements using the sum of VB and HB can be used
Table 2 is just an example embodiment to utilize Equations 32 and 33. Other tables can also be constructed using similar principles with labels that cover larger avgVar range as they go from the left to right in the tables.
In Table 2, the labels run in the order of magnitude (avgVar) first followed by directional class (dir). In the case where the label-merging process follows a 1D pattern (that is, only labels with consecutive values can be merged together), Table 2 results in merging only for different magnitudes (avgVar) in the same directional class (dir), but not the other way around. Thus embodiments of the present disclosure present varTab—8 in which the labels run in the order of directional class (dir) first followed by magnitude (avgVar), as below in Table 3.
Certain embodiments of the present disclosure provide classification of 8 filters with two directional classes and Scaled label table. In Table 2 and 3, for a given directional class (dir), there are more than half of the elements being assigned the same label (labels 3 and 7 in Table 2; labels 6 and 7 in Table 3). This indicates that a double of the value of avgVar (computed from LB) can be used, and the label distributions can be scaled accordingly to improve the classification in magnitude domain. In the following examples, the value LB is scaled by two (doubled) and use modified tables varTab—8S.
To classify a 4×4 block B with pixels {X(i,j)|i=0, 1, 2, 3; j=0, 1, 2, 3}, the following 3 values are computed:
H
B=Σi=0,2Σj=0,2H(i,j) [Eqn. 34]
V
B=Σi=0,2Σj=0,2H(i,j) [Eqn. 35]
L
B=(HB+VB)<<1 [Eqn. 36]
where H(i,j)=abs(X(i,j)<<1−X(i,j−1)−X(i,j+1)), V(i,j)=abs(X(i,j)<<1−X(i−1,j)−X(i+1,j)); or
H(i,j)=abs(X(i,j)−X(i,j+1)), V(i,j)=abs(X(i,j)−X(i+1,j))
dir=1, if VB>HB
dir=0, otherwise
avgVar=max{15,(LB*1024)>>(3+BitDepthY)}
In this example, while Equations 34 and 35 are the same as Equations 23 and 24, the computation of LB in Equation 25 is changed as shown in Equation 36 with only shift 1 bit, thus doubling its value. Label distribution in Table 4 is scaled to improve the classification of the doubled LB.
Again, similar to the principle used in constructing Table 3, Table 4 is changed such that the labels run in a different order, as in Table 5 below.
Table 4 and 5 are just example embodiments to utilize scaled value of LB. Other scaling and the corresponding tables can also be constructed using similar principles:
1. The label distributions should follow accordingly to how the value LB (hence avgVar) is scaled; and
2. Labels will cover larger avgVar range as they go from the left to right in the tables.
Embodiment example of classification using Hybrid label table:
It has been observed that for smaller avgVar index, directional classification using index dir might not provide best efficiency, due to the lack of directional features in the corresponding blocks with smaller LB values. Thus, in certain embodiments, a hybrid label table is constructed, where the labels for smaller avgVar index are assigned across different direction index (dir). An example of such design varTab8S_HB, using scaled LB, is provided as follows. (Note that table can be constructed accordingly if scaling of LB is not used.)
To classify a 4×4 block B with pixels {X(i,j) i=0, 1, 2, 3; j=0, 1, 2, 3}, the following three values are computed using Equations 34 through 36, reproduced here:
H
B=Σi=0,2Σj=0,2H(i,j) [Eqn. 34]
V
B=Σi=0,2Σj=0,2V(i,j) [Eqn. 35]
L
B=(HB+VB)<<1 [Eqn. 36
where H(i,j)=abs(X(i,j)<<1−X(i,j−1)−X(i,j+1)), V(i,j)=abs (X(i,j)<<1−X(i−1,j)−X(i+1,j));
or H(i,j)=abs(X(i,j)−X(i,j+1)), V(i,j)=abs(X(i,j)−X(i+1,j))
dir=1, if VB>HB
dir=0, otherwise
avgVar=max{15,(LB*1024)>>(3+BitDepthY)}
Table 6 is just an example embodiment to constructed hybrid label table. Other tables (with or without scaling) can also be constructed using similar principles:
1. The labels for smaller avgVar index are assigned across different direction index (dir);
2. Labels will cover larger avgVar range as they go from the left to right in the tables; and optionally,
3. The label distributions should follow accordingly to how the value LB (hence avgVar) is scaled.
Although the present disclosure has been described with an exemplary embodiment, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.
The present application is related to U.S. Provisional Patent Application No. 61/432,951, filed Jan. 14, 2011, entitled “LOOP FILTER WITH DIRECTIONAL SIMILARITY MAPPING FOR IMAGE/VIDEO CODING”; U.S. Provisional Patent Application No. 61/449,490, filed Mar. 4, 2011, entitled “LOOP FILTER DESIGN WITH DIRECTIONAL SIMILARITY MAPPING FOR IMAGE/VIDEO CODING”; U.S. Provisional Patent Application No. 61/450,404, filed Mar. 8, 2011, entitled “LOOP FILTER DESIGN WITH DIRECTIONAL FILTERS FOR IMAGE/VIDEO CODING” and U.S. Provisional Patent Application No. 61/534,267, filed Sep. 13, 2011, entitled “FILTER ADAPTATION WITH DIRECTIONAL FEATURES FOR IMAGE/VIDEO CODING”. Provisional Patent Application No. 61/432,951, 61/449,490, 61/450,404 and 61/534,267 are assigned to the assignee of the present application and is hereby incorporated by reference into the present application as if fully set forth herein. The present application hereby claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 61/432,951, 61/449,490, 61/450,404 and 61/534,267.
Number | Date | Country | |
---|---|---|---|
61432951 | Jan 2011 | US | |
61449490 | Mar 2011 | US | |
61450404 | Mar 2011 | US | |
61534267 | Sep 2011 | US |