US 12,267,491 B2
Encoder, decoder and corresponding methods for adaptive loop filtering
Anand Meher Kotra, Munich (DE); Semih Esenlik, Munich (DE); Han Gao, Munich (DE); Biao Wang, Munich (DE); and Elena Alexandrovna Alshina, Munich (DE)
Assigned to HUAWEI TECHNOLOGIES CO., LTD., Guangdong (CN)
Filed by HUAWEI TECHNOLOGIES CO., LTD., Guangdong (CN)
Filed on Jul. 22, 2022, as Appl. No. 17/871,753.
Application 17/871,753 is a continuation of application No. PCT/CN2021/073233, filed on Jan. 22, 2021.
Claims priority of application No. PCT/EP2020/051788 (WO), filed on Jan. 24, 2020.
Prior Publication US 2022/0377326 A1, Nov. 24, 2022
Int. Cl. H04N 19/00 (2014.01); H04N 19/117 (2014.01); H04N 19/167 (2014.01); H04N 19/176 (2014.01); H04N 19/96 (2014.01)
CPC H04N 19/117 (2014.11) [H04N 19/167 (2014.11); H04N 19/176 (2014.11); H04N 19/96 (2014.11)] 14 Claims
OG exemplary drawing
 
1. A method of filtering a sample value of a picture, wherein the method comprises:
obtaining a reconstructed sample value for a block of the picture;
obtaining filter coefficients for adaptive loop filtering according to a bitstream;
obtaining a sum value according to the filter coefficients, and the reconstructed sample value for the block;
rounding the sum value according to a vertical position of a sample in the block to obtain a rounded sum value, wherein the vertical position of the sample in the block is a luma sample position, and wherein the rounded sum value equals curr+((sum+roundY)>>alfShiftY) and satisfies the following table:
 
Condition roundY alfShiftY y1 y2 y3
 
(y = = CtbSizeY − 5 | | y = = 512 10 0 0 0
CtbSizeY − 4) &&
 
 
 
 
 
(applyAlfLineBufBoundary = = 1)
 
 
 
 
 
(y = = CtbSizeY − 6 | | y = =  64  7 1 1 1
CtbSizeY − 3) &&
 
 
 
 
 
(applyAlfLineBufBoundary = = 1)
 
 
 
 
 
(y = = CtbSizeY − 7 | | y = =  64  7 1 2 2
CtbSizeY − 2) &&
 
 
 
 
 
(applyAlfLineBufBoundary = = 1)
 
 
 
 
 
Otherwise  64  7 1 2 3
 
wherein
y represents the vertical position of the sample;
curr represents the reconstructed sample value for the block;
sum represents the sum value;
CtbSizeY represents a size of a coding tree block (CTB) corresponding to the block;
v1, y2 and y3 represent vertical sample position offsets indicating other reconstructed sample values involved in the obtaining the sum value;
roundY and alfShiftY are variables that are determined based on the vertical position of the sample;
apply AlfLineBufBoundary is an index and derived as follows:
if a bottom boundary of the coding tree block is a bottom boundary of the picture and pic_height_in_luma_samples−yCtb≤CtbSizeY−4,
apply AlfLineBufBoundary is set equal to 0, otherwise,
apply AlfLineBufBoundary is set equal to 1,
wherein the pic_height_in_luma_samples represents a height of the picture in luma samples, and (xCtb, yCtb) represents a location of the CTB; and
obtaining a filter reconstructed sample value for the block according to the rounded sum value.