IP Library Granted Patent US 10,511,843
Granted Patent B2
US 10,511,843 · App. 14/380,710 · Granted Dec 17, 2019

Method and apparatus for loop filtering across slice or tile boundaries

Inventors: Chih-Ming Fu (Hsinchu, TW); Chia-Yang Tsai (New Taipei, TW); Chih-Wei Hsu (Taipei, TW); Ching-Yeh Chen (Taipei, TW); Yu-Wen Huang (Taipei, TW); Shaw-Min Lei (Hsinchu County, TW)
Assignee: HFI Innovation Inc.
H04N19/176H04N19/117H04N19/167H04N19/174H04N19/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 10,511,843
App. No.
14/380,710
Granted
Dec 17, 2019
Kind
B2
Abstract

A method and apparatus for loop filter processing of video data in a video encoder or decoder are disclosed. Embodiments according to the present invention conditionally allow sharing of loop filter parameters. In one embodiment, sharing of loop filter information between the current block and a neighboring block is determined according to a condition. If the condition indicates that sharing of loop filter information is allowed, a merge flag is coded and incorporated in the video bitstream in an encoder, and a merge flag is parsed from the video bitstream and decoded in a decoder. In one embodiment, the condition depends on region partitioning of the picture, where region partitioning partitions the picture into regions and the region may correspond to a slice or a tile. The condition is set to indicate that sharing of loop filter information is allowed if the block and the neighboring block are in a same slice/tile.

Claims (50)

1. A method for loop filter processing of video data in a video decoder, the method comprising:

receiving a current block of processed-reconstructed pixels associated with a picture from a media or a processor, wherein the picture is partitioned into a plurality of slices or tiles by a plurality of region boundaries;

identifying a neighboring block directly adjacent to the current block, wherein the neighboring block is directly adjacent to a left side of the current block or an upper side of the current block;

identifying a first one of the plurality of slices or tiles comprising the current block, and a second one of the plurality of slices or tiles comprising the neighboring block;

when the first one of the plurality of slices or tiles is different from the second one of the plurality of slices or tiles, determining sharing of loop filter information between the current block and the neighboring block is not allowed independent of any parameters that are shared between the current block and the neighboring block;

when the first one of the plurality of slices or tiles is identical to the second one of the plurality of slices or tiles, determining sharing of the loop filter information between the current block and the neighboring block is allowed independent of any parameters that are shared between the current block and the neighboring block; and

parsing a merge flag from a video bitstream and decoding the merge flag only if sharing of the loop filter information is determined to be allowed, wherein the merge flag indicates whether the loop filter information is shared between the current block and the neighboring block.

2. The method of claim 1 , wherein the merge flag consists of a merge-left flag and a merge-up flag.

3. The method of claim 2 , wherein the merge-left flag is used if the neighboring block is adjacent to left side of the block.

4. The method of claim 2 , wherein the merge-up flag is used if the neighboring block is adjacent to upper side of the block.

5. The method of claim 2 , wherein the merge-up flag is used if merge-left flag indicated said sharing of loop filter information being not allowed.

6. The method of claim 1 , wherein said region partitions the picture into regions and the region corresponds to a slice or a tile.

7. The method of claim 1 , wherein said sharing of loop information is further based on a condition that is set to indicate said sharing of loop filter information being disallowed if the block and the neighboring block are in different regions or if the neighboring block is not available.

8. The method of claim 1 , wherein the block corresponds to a coding tree block or a largest coding unit (LCU).

9. The method of claim 1 , wherein the loop filter information corresponds to SAO (sample adaptive offset) information, ALF (adaptive loop filter) information, or DF (deblocking filter) information.

10. The method of claim 9 , wherein the SAO information comprises SAO type information, SAO offset values, edge offset type, band offset starting band position, offset magnitude, and offset sign.

11. The method of claim 9 , wherein the ALF information comprises filter coefficients, and filter shape, filter selection index, filter classification method, and filter on/off control flag.

12. The method of claim 1 , wherein said determining whether to allow sharing of loop filter information between the block and the neighboring block is enabled or disabled based on a control flag.

13. The method of claim 12 , wherein the control flag is parsed from slice header, picture parameter set, adaptation parameters set, sequence parameters set, or video parameter set of the video bitstream.

14. A method for loop filter processing of video data in a video encoder, the method comprising:

receiving a current block of processed-reconstructed pixels associated with a picture from a media or a processor, wherein the picture is partitioned into a plurality of slices or tiles by a plurality of region boundaries;

identifying a neighboring block directly adjacent to the current block, wherein the neighboring block is directly adjacent to a left side of the current block or an upper side of the current block;

identifying a first one of the plurality of slices or tiles comprising the current block, and a second one of the plurality of slices or tiles comprising the neighboring block;

when the first one of the plurality of slices or tiles is different from the second one of the plurality of slices or tiles, not allowing sharing of loop filter information between the current block and the neighboring block independent of any parameters that are shared between the current block and the neighboring block;

when the first one of the plurality of slices or tiles is identical to the second one of the plurality of slices or tiles, allowing sharing of the loop filter information between the current block and the neighboring block independent of any parameters that are shared between the current block and the neighboring block; and

coding a merge flag and incorporating the merge flag in a video bitstream only if sharing of the loop filter information is allowed, wherein the merge flag indicates whether the loop filter information is shared between the current block and the neighboring block.

15. The method of claim 14 , wherein the merge flag consists of a merge-left flag and a merge-up flag.

16. The method of claim 15 , wherein the merge-up flag is used if merge-left flag indicated said sharing of loop filter information being not allowed.

17. The method of claim 14 , wherein said region partitions the picture into regions and the region corresponds to a slice or a tile.

18. The method of claim 14 , wherein said sharing of loop information is further based on a condition that is set to indicate said sharing of loop filter information being disallowed if the block and the neighboring block are in different regions or if the neighboring block is not available.

19. The method of claim 14 , wherein the block corresponds to a coding tree block or a largest coding unit (LCU).

20. The method of claim 14 , wherein the loop filter information corresponds to SAO (sample adaptive offset) information, ALF (adaptive loop filter) information, or DF (deblocking filter) information.

21. The method of claim 14 , wherein said sharing of loop filter information between the block and the neighboring block is enabled or disabled based on a control flag.

22. The method of claim 21 , wherein the control flag is incorporated in slice header, picture parameter set, adaptation parameters set, sequence parameters set, or video parameter set of the video bitstream.

23. An apparatus for loop filter processing of video data in a video decoder, the apparatus comprising:

processing circuitry configured to:

receive a current block of processed-reconstructed pixels associated with a picture from a media or a processor, wherein the picture is partitioned into a plurality of slices or tiles by a plurality of region boundaries;

identify a neighboring block directly adjacent to the current block, wherein the neighboring block is directly adjacent to a left side of the current block or an upper side of the current block;

identify a first one of the plurality of slices or tiles comprising the current block, and a second one of the plurality of slices or tiles comprising the neighboring block;

when the first one of the plurality of slices or tiles is different from the second one of the plurality of slices or tiles, determine sharing of loop filter information between the current block and the neighboring block is not allowed independent of any parameters that are shared between the current block and the neighboring block;

when the first one of the plurality of slices or tiles is identical to the second one of the plurality of slices or tiles, determine sharing of the loop filter information between the current block and the neighboring block is allowed independent of any parameters that are shared between the current block and the neighboring block; and

parse a merge flag from a video bitstream and decoding the merge flag only if sharing of the loop filter information is determined to be allowed, wherein the merge flag indicates whether the loop filter information is shared between the current block and the neighboring block.

24. An apparatus for loop filter processing of video data in a video encoder, the apparatus comprising:

processing circuitry configured to:

receive a current block of processed-reconstructed pixels associated with a picture from a media or a processor, wherein the picture is partitioned into a plurality of slices or tiles by a plurality of region boundaries;

identify a neighboring block directly adjacent to the current block, wherein the neighboring block is directly adjacent to a left side of the current block or an upper side of the current block;

identify a first one of the plurality of slices or tiles comprising the current block, and a second one of the plurality of slices or tiles comprising the neighboring block;

when the first one of the plurality of slices or tiles is different from the second one of the plurality of slices or tiles, not allow sharing of loop filter information between the current block and the neighboring block independent of any parameters that are shared between the current block and the neighboring block;

when the first one of the plurality of slices or tiles is identical to the second one of the plurality of slices or tiles, allow sharing of the loop filter information between the current block and the neighboring block independent of any parameters that are shared between the current block and the neighboring block; and

code a merge flag and incorporating the merge flag in a video bitstream only if sharing of the loop filter information is allowed, wherein the merge flag indicates whether the loop filter information is shared between the current block and the neighboring block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2016
From: MEDIATEK INC.
To: HFI INNOVATION INC.
Reel/Frame 039609/0864 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2014
From: FU, CHIH-MING; TSAI, CHIA-YANG; HSU, CHIH-WEI; CHEN, CHING-YEH; HUANG, YU-WEN; LEI, SHAW-MIN
To: MEDIATEK INC.
Reel/Frame 033596/0365 →
Continuity (2)
Provisional Application 61624812 · Apr 16, 2012
Related Publication 20150016506A1 · Jan 15, 2015
Cited By (4)
US 12,262,059 US 12,445,646 US 12,501,081 US 12,615,366