Game Development Reference
In-Depth Information
7.4.2 Region-Based Adaptive Merge
In order to adapt different coding errors, AVS-2 adopts region-based multiple
adaptive loop filters for luminance component. The luminance component is divided
into 16 roughly-equal-size basic regions where each basic region is aligned with
largest coding unit (LCU) boundaries as shown in Fig. 7.11 , and one Wiener filter is
derived for each region. The more filters are used, the more distortions are reduced,
but the bits used to encode these coefficients increase along with the number of
filters. In order to achieve the best rate-distortion performance, these regions can be
merged into fewer larger regions, which share the same filter coefficients. In order
to simplify the merging process, each region is assigned with an index according
to a modified Hilbert order based on the image prior correlations. Two regions with
successive indices can be merged based on rate-distortion cost. In order to further
reduce the complexity in merge, a fast filtering distortion estimation method is used
(Tsaietal. 2011 ) to calculate filtering distortion without performing actual filtering
operations, as shown in Eq. ( 7.29 ).
c ,
Rc
2 V
s [ r ] 2
D est =
+
,
(7.29)
r
ʩ
,
where
denotes the inner product operation. The merge process is as follows:
1. Calculate filter coefficients for all the 16 regions, respectively;
2. While filter_number is larger than 1;
3. Calculate the filter coefficients for a larger region by merging adjacent two
regions;
4. Calculate the rate distortion for every merging results;
5. Merge the two adjacent regions into one region, which is with the smallest
rate-distortion cost;
6.
filter_number = filter_number
1;
7. End While
8. Find the merge case with the smallest rate distortion in the while loop as the finale
region division.
The variable filter_number represents filter number for current picture, initialized
with 16.
The mapping information between regions should be signaled to the decoder.
In AVS-2, the number of basic regions is used to represent the merge results and
the filter coefficients are compressed sequentially according to its region order. For
example, when {0, 1}, {2, 3, 4}, {5, 6, 7, 8, 9} and the left basic regions merged into
one region respectively, only three integers are coded to represent this merge map,
i.e., 2, 3, 5.
In order to improve the coding efficiency as possible, multiple switch flags are also
used inALF. The sequence switchflag, adaptive_loop_filter_enable, is used to control
whether adaptive loop filter is applied for thewhole sequence. The image switch flags,
 
Search WWH ::




Custom Search