IP Library › Granted Patent US 11,683,488
Granted Patent B2
US 11,683,488 · App. 17/705,488 · Granted Jun 20, 2023

Adaptive loop filtering between different video units

Inventors: Hongbin Liu (Beijing, CN); Li Zhang (San Diego, CA); Kai Zhang (San Diego, CA); Yue Wang (Beijing, CN)
Assignees: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.; BYTEDANCE INC.
H04N19/117H04N19/132H04N19/174H04N19/176H04N19/82
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,683,488
App. No.
17/705,488
Granted
Jun 20, 2023
Kind
B2
Abstract

An example method of video processing includes determining, for a conversion between a current video unit of a video and a bitstream representation of the video, availability of one or more samples in a first neighboring region of the current block for a coding process of the conversion independently from information of a second neighboring region of the current block. The second neighboring region is adjacent to the first neighboring region, and the one or more samples are padded in case determined to be unavailable. The method includes performing the conversion based on the determining.

Claims (54)

1. A method of processing video data, comprising:

determining, for a conversion between a current block of a video and a bitstream of the video, availability of one or more samples in a first neighboring region of the current block for a coding process of the conversion independently from information of a second neighboring region of the current block, wherein the second neighboring region is adjacent to the first neighboring region, and wherein the coding process comprises an adaptive loop filter tool that includes an adaptive loop filter classification process and/or an adaptive loop filtering process,

performing a padding process on the one or more samples in case that the one or more samples are determined to be unavailable; and

performing the conversion based on the determining and padded samples, if any,

wherein the first neighboring region comprises an above-left region of the current block, and the second neighboring region comprises a region above the current block or a region positioned to the left of the current block, and wherein when a top-left clip flag clipTopLeftFlag is equal to true, one or more samples in the above-left region are determined to be unavailable, and whether one or more samples in the region above the current block or the region positioned to the left of the current block are determined to be unavailable or not is based on an above horizontal boundary position variable clipTopPos and a left vertical boundary position variable clipLeftPos, or

wherein the first neighboring region comprises a below-right region of the current block, and the second neighboring region comprises a region below the current block or a region positioned to the right of the current block, and wherein when a bottom-right clip flag clipBottomRightFlag is equal to true, one or more samples in the below-right region are determined to be unavailable, and whether one or more samples in the region below the current block or the region positioned to the right of the current block are determined to be unavailable or not is based on a below horizontal boundary position variable clipBottomPos and a right vertical boundary position variable clipRightPos.

2. The method of claim 1 , wherein based on the top-left clip flag clipTopLeftFlag, the above horizontal boundary position variable clipTopPos and the left vertical boundary position variable clipLeftPos, it is allowed that the padding process is performed on the one or more samples in the above-left region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region above the current block or the region positioned to the left of the current block due to the one or more samples in the region above the current block or the region positioned to the left of the current block being not exceed the above horizontal boundary or the left vertical boundary.

3. The method of claim 2 , wherein the one or more samples in the above-left region are unavailable due to the top-left clip flag clipTopLeftFlag being equal to true which depends on that the above-left region is located in a video unit different from the current block and the coding process using samples across the video unit is disallowed.

4. The method of claim 3 , wherein the video unit is a slice.

5. The method of claim 1 , wherein based on the bottom-right clip flag clipBottomRightFlag, the below horizontal boundary position variable clipBottomPos and the right vertical boundary position variable clipRightPos, it is allowed that the padding process is performed on the one or more samples in the below-right region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region below the current block or the region positioned to the right of the current block due to the one or more samples in the region below the current block or the region positioned to the right of the current block being not exceed the below horizontal boundary or the right vertical boundary.

6. The method of claim 5 , wherein the one or more samples in the below-right region are unavailable due to the bottom-right clip flag clipBottomRightFlag being equal to true which depends on that the below-right region is located in a video unit different from the current block and the coding process using samples across the video unit is disallowed.

7. The method of claim 6 , wherein the video unit is a slice.

8. The method of claim 1 , wherein the conversion includes encoding the video into the bitstream.

9. The method of claim 1 , wherein the conversion includes decoding the video from the bitstream.

10. An apparatus for processing video data comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to:

determine, for a conversion between a current block of a video and a bitstream of the video, availability of one or more samples in a first neighboring region of the current block for a coding process of the conversion independently from information of a second neighboring region of the current block, wherein the second neighboring region is adjacent to the first neighboring region, wherein the coding process comprises an adaptive loop filter tool that includes an adaptive loop filter classification process and/or an adaptive loop filtering process,

perform a padding process on the one or more samples in case that the one or more samples are determined to be unavailable; and

perform the conversion based on the determining and padded samples, if any,

wherein the first neighboring region comprises an above-left region of the current block, and the second neighboring region comprises a region above the current block or a region positioned to the left of the current block, and wherein when a top-left clip flag clipTopLeftFlag is equal to true, one or more samples in the above-left region are determined to be unavailable, and whether one or more samples in the region above the current block or the region positioned to the left of the current block are determined to be unavailable or not is based on an above horizontal boundary position variable clipTopPos and a left vertical boundary position variable clipLeftPos, or

wherein the first neighboring region comprises a below-right region of the current block, and the second neighboring region comprises a region below the current block or a region positioned to the right of the current block, and wherein when a bottom-right clip flag clipBottomRightFlag is equal to true, one or more samples in the below-right region are determined to be unavailable, and whether one or more samples in the region below the current block or the region positioned to the right of the current block are determined to be unavailable or not is based on a below horizontal boundary position variable clipBottomPos and a right vertical boundary position variable clipRightPos.

11. The apparatus of claim 10 ,

wherein based on the top-left clip flag clipTopLeftFlag, the above horizontal boundary position variable clipTopPos and the left vertical boundary position variable clipLeftPos, it is allowed that the padding process is performed on the one or more samples in the above-left region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region above the current block or the region positioned to the left of the current block due to the one or more samples in the region above the current block or the region positioned to the left of the current block being not exceed the above horizontal boundary or the left vertical boundary;

wherein the one or more samples in the above-left region are unavailable due to the top-left clip flag clipTopLeftFlag being equal to true which depends on that the above-left region is located in a video unit different from the current block and the coding process using samples across the video unit is disallowed;

wherein the video unit is a slice.

12. The apparatus of claim 10 ,

wherein based on the bottom-right clip flag clipBottomRightFlag, the below horizontal boundary position variable clipBottomPos and the right vertical boundary position variable clipRightPos, it is allowed that the padding process is performed on the one or more samples in the below-right region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region below the current block or the region positioned to the right of the current block due to the one or more samples in the region below the current block or the region positioned to the right of the current block being not exceed the below horizontal boundary or the right vertical boundary;

wherein the one or more samples in the below-right region are unavailable due to the bottom-right clip flag clipBottomRightFlag being equal to true which depends on that the below-right region is located in a different video unit from the current block and the coding process using samples across the video unit is disallowed;

wherein the video unit is a slice.

13. A non-transitory computer-readable storage medium storing instructions that cause a processor to:

determine, for a conversion between a current block of a video and a bitstream of the video, availability of one or more samples in a first neighboring region of the current block for a coding process of the conversion independently from information of a second neighboring region of the current block, wherein the second neighboring region is adjacent to the first neighboring region, wherein the coding process comprises an adaptive loop filter tool that includes an adaptive loop filter classification process and/or an adaptive loop filtering process,

perform a padding process on the one or more samples in case that the one or more samples are determined to be unavailable; and

perform the conversion based on the determining and padded samples, if any,

wherein the first neighboring region comprises an above-left region of the current block, and the second neighboring region comprises a region above the current block or a region positioned to the left of the current block, and wherein when a top-left clip flag clipTopLeftFlag is equal to true, one or more samples in the above-left region are determined to be unavailable, and whether one or more samples in the region above the current block or the region positioned to the left of the current block are determined to be unavailable or not is based on an above horizontal boundary position variable clipTopPos and a left vertical boundary position variable clipLeftPos, or

wherein the first neighboring region comprises a below-right region of the current block, and the second neighboring region comprises a region below the current block or a region positioned to the right of the current block, and wherein when a bottom-right clip flag clipBottomRightFlag is equal to true, one or more samples in the below-right region are determined to be unavailable, and whether one or more samples in the region below the current block or the region positioned to the right of the current block are determined to be unavailable or not is based on a below horizontal boundary position variable clipBottomPos and a right vertical boundary position variable clipRightPos.

14. The non-transitory computer-readable storage medium of claim 13 ,

wherein based on the top-left clip flag clipTopLeftFlag, the above horizontal boundary position variable clipTopPos and the left vertical boundary position variable clipLeftPos, it is allowed that the padding process is performed on the one or more samples in the above-left region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region above the current block or the region positioned to the left of the current block due to the one or more samples in the region above the current block or the region positioned to the left of the current block being not exceed the above horizontal boundary or the left vertical boundary;

wherein the one or more samples in the above-left region are unavailable due to the top-left clip flag clipTopLeftFlag being equal to true which depends on that the above-left region is located in a video unit different from the current block and the coding process using samples across the video unit is disallowed;

wherein the video unit is a slice;

wherein based on the bottom-right clip flag clipBottomRightFlag, the below horizontal boundary position variable clipBottomPos and the right vertical boundary position variable clipRightPos, it is allowed that the padding process is performed on the one or more samples in the below-right region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region below the current block or the region positioned to the right of the current block due to the one or more samples in the region below the current block or the region positioned to the right of the current block being not exceed the below horizontal boundary or the right vertical boundary;

wherein the one or more samples in the below-right region are unavailable due to the bottom-right clip flag clipBottomRightFlag being equal to true which depends on that the below-right region is located in a different video unit from the current block and the coding process using samples across the video unit is disallowed;

wherein the video unit is a slice.

15. A non-transitory computer-readable recording medium storing a bitstream of a video which is generated by a method performed by a video processing apparatus, wherein the method comprises:

determining, for a current block of the video, availability of one or more samples in a first neighboring region of the current block for a coding process of a conversion between the current block and the bitstream independently from information of a second neighboring region of the current block, wherein the second neighboring region is adjacent to the first neighboring region, wherein the coding process comprises an adaptive loop filter tool that includes an adaptive loop filter classification process and/or an adaptive loop filtering process,

performing a padding process on the one or more samples in case that the one or more samples are determined to be unavailable; and

generating the bitstream based on the determining and padded samples, if any,

wherein the first neighboring region comprises an above-left region of the current block, and the second neighboring region comprises a region above the current block or a region positioned to the left of the current block, and wherein when a top-left clip flag clipTopLeftFlag is equal to true, one or more samples in the above-left region are determined to be unavailable, and whether one or more samples in the region above the current block or the region positioned to the left of the current block are determined to be unavailable or not is based on an above horizontal boundary position variable clipTopPos and a left vertical boundary position variable clipLeftPos, or

wherein the first neighboring region comprises a below-right region of the current block, and the second neighboring region comprises a region below the current block or a region positioned to the right of the current block, and wherein when a bottom-right clip flag clipBottomRightFlag is equal to true, one or more samples in the below-right region are determined to be unavailable, and whether one or more samples in the region below the current block or the region positioned to the right of the current block are determined to be unavailable or not is based on a below horizontal boundary position variable clipBottomPos and a right vertical boundary position variable clipRightPos.

16. The non-transitory computer-readable recording medium of claim 15 ,

wherein based on the top-left clip flag clipTopLeftFlag, the above horizontal boundary position variable clipTopPos and the left vertical boundary position variable clipLeftPos, it is allowed that the padding process is performed on the one or more samples in the above-left region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region above the current block or the region positioned to the left of the current block due to the one or more samples in the region above the current block or the region positioned to the left of the current block being not exceed the above horizontal boundary or the left vertical boundary;

wherein the one or more samples in the above-left region are unavailable due to the top-left clip flag clipTopLeftFlag being equal to true which depends on that the above-left region is located in a video unit different from the current block and the coding process using samples across the video unit is disallowed;

wherein the video unit is a slice;

wherein based on the bottom-right clip flag clipBottomRightFlag, the below horizontal boundary position variable clipBottomPos and the right vertical boundary position variable clipRightPos, it is allowed that the padding process is performed on the one or more samples in the below-right region due to the one or more samples being unavailable for the coding process, and the padding process is not performed on the one or more samples in the region below the current block or the region positioned to the right of the current block due to the one or more samples in the region below the current block or the region positioned to the right of the current block being not exceed the below horizontal boundary or the right vertical boundary;

wherein the one or more samples in the below-right region are unavailable due to the bottom-right clip flag clipBottomRightFlag being equal to true which depends on that the below-right region is located in a different video unit from the current block and the coding process using samples across the video unit is disallowed;

wherein the video unit is a slice.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2022
From: ZHANG, LI; ZHANG, KAI
To: BYTEDANCE INC.
Reel/Frame 059421/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2022
From: LIU, HONGBIN; WANG, YUE
To: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 059421/0829 →
Priority Claims (1)
WO PCT/CN2019/108763 · Sep 27, 2019 · international
Continuity (2)
Continuation PCTCN2020118029 · Sep 27, 2020
Related Publication 20230091813A1 · Mar 23, 2023
Cited By (7)
US 12,294,701 US 12,294,709 US 12,363,303 US 12,382,105 US 12,425,585 US 12,526,407 US 12,621,445