IP Library Granted Patent US 11,218,738
Granted Patent B2
US 11,218,738 · App. 16/336,261 · Granted Jan 4, 2022

Method and apparatus for restricting binary-tree split mode coding and decoding

Inventors: Tangi Poirier (Cesson-Sevigne, FR); Fabrice Leleannec (Cesson-Sevigne, FR); Fabien Racape (Cesson-Sevigne, FR)
Assignee: INTERDIGITAL MADISON PATENT HOLDINGS, SAS
H04N19/91H04N19/119H04N19/176H04N19/33H04N19/46H04N19/503H04N19/593H04N19/70H04N19/96
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,218,738
App. No.
16/336,261
Granted
Jan 4, 2022
Kind
B2
Abstract

Binary tree split mode coding is performed while encoding digital video image blocks using a quad tree plus binary tree coding. The quadtree split can be represented by some combinations of horizontal and vertical binary tree split. Blocks are constrained to be split down to a minimum block size and with certain split constraints such that some redundant tree structures are avoided. Redundant syntax in coding the binary tree split mode syntax element is removed to provide coding efficiency.

Claims (52)

1. A method of decoding video image blocks in an entropy decoder, comprising:

determining whether a block is enabled to undergo binary splitting by checking syntax elements representative of a minimum block size and splitting constraints, and if binary splitting is not enabled, do not decode any further split mode flags for the block;

decoding a first flag to determine whether the block is to be split if binary splitting is enabled;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed by checking syntax elements representative of a minimum block size and horizontal and vertical splitting constraints, and

decoding a second flag to determine whether the block is split in a horizontal or vertical direction, wherein asymmetric coding unit blocks are enabled by using two additional flags to indicate whether a horizontally split block is split at a top or bottom side of the block or a vertically split block is split in a left or right side of the block.

2. The method of claim 1 , wherein asymmetric coding units comprise blocks of size 16.

3. The method of claim 1 , wherein asymmetric coding units comprise blocks of size 32.

4. A method of encoding video image blocks in an entropy encoder, comprising:

determining whether a block is to undergo binary splitting by checking its block size relative to a minimum block size and whether there are any splitting constraints, and if binary splitting is not to be enabled, do not encode any further split mode flags for the block;

encoding a first flag to indicate whether the block is to be split if binary splitting is enabled;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed by checking its block size relative to a minimum block size and whether there are horizontal and vertical splitting constraints, and

encoding a second flag to indicate whether the block is split in a horizontal or vertical direction, wherein asymmetric coding unit blocks are enabled by using two additional flags to indicate whether a horizontally split block is split at a top or bottom side of the block or a vertically split block is split in a left or right side of the block.

5. The method of claim 4 , wherein asymmetric coding units comprise blocks of size 16.

6. The method of claim 4 , wherein asymmetric coding units comprise blocks of size 32.

7. An apparatus for decoding video image blocks in an entropy decoder, comprising:

a memory, and

a processor, configured to decode video image blocks by:

determining whether a block is enabled to undergo binary splitting by checking syntax elements representative of a minimum block size and splitting constraints, and if binary splitting is not enabled, do not decode any further split mode flags for the block;

decoding a first flag to determine whether the block is to be split if binary splitting is enabled;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed by checking syntax elements representative of a minimum block size and horizontal and vertical splitting constraints, and

decoding a second flag to determine whether the block is split in a horizontal or vertical direction, wherein asymmetric coding unit blocks are enabled by using two additional flags to indicate whether a horizontally split block is split at a top or bottom side of the block or a vertically split block is split in a left or right side of the block.

8. The apparatus of claim 7 , wherein asymmetric coding units comprise blocks of size 16.

9. The apparatus of claim 7 , wherein asymmetric coding units comprise blocks of size 32.

10. An apparatus for encoding video image blocks in an entropy encoder, comprising:

a memory, and

a processor, configured to decode video image blocks by:

determining whether a block is to undergo binary splitting by checking its block size relative to a minimum block size and whether there are any splitting constraints, and if binary splitting is not to be enabled, do not encode any further split mode flags for the block;

encoding a first flag to indicate whether the block is to be split if binary splitting is enabled;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed by checking its block size relative to a minimum block size and whether there are horizontal and vertical splitting constraints, and

encoding a second flag to indicate whether the block is split in a horizontal or vertical direction, wherein asymmetric coding unit blocks are enabled by using two additional flags to indicate whether a horizontally split block is split at a top or bottom side of the block or a vertically split block is split in a left or right side of the block.

11. The apparatus of claim 10 , wherein asymmetric coding units comprise blocks of size 16.

12. The apparatus of claim 10 , wherein asymmetric coding units comprise blocks of size 32.

13. A nontransitory computer readable storage medium storing instructions which when executed by a processor cause the processor to perform the method according to claim 1 when the computer program is executed by one or more processors.

14. A method of decoding video image blocks in an entropy decoder, comprising:

determining whether a block is allowed to undergo splitting by checking if said block is within a minimum and a maximum allowed coding unit size in width and height and, if so, decoding a first flag to indicate whether the block is to be split and decoding syntax elements representative of a minimum block size and splitting constraints, and if splitting is not enabled, do not decode any further split mode flags for the block;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed consistent with said syntax elements representative of a minimum block size and horizontal and vertical splitting constraints, and

decoding a second flag to indicate whether the block is split in a horizontal or vertical direction by checking that the block size in each direction is greater than a minimum size and also not equal to a multiple of three, and wherein additional syntax is indicative of a type of split by checking if asymmetric splitting in a direction is allowed.

15. An apparatus for decoding video image blocks, comprising:

a memory, and

a processor, configured to decode video image blocks by:

determining whether a block is allowed to undergo splitting by checking if said block is within a minimum and a maximum allowed coding unit size in width and height and, if so, decoding a first flag to indicate whether the block is to be split and decoding syntax elements representative of a minimum block size and splitting constraints, and if splitting is not enabled, do not decode any further split mode flags for the block;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed consistent with said syntax elements representative of a minimum block size and horizontal and vertical splitting constraints, and

decoding a second flag to indicate whether the block is split in a horizontal or vertical direction by checking that the block size in each direction is greater than a minimum size and also not equal to a multiple of three, and wherein additional syntax is indicative of a type of split by checking if asymmetric splitting in a direction is allowed.

16. A method of encoding video image blocks in an entropy encoder, comprising:

determining whether a block is allowed to undergo splitting by checking if said block is within a minimum and a maximum allowed coding unit size in width and height and, if so, encoding a first flag to indicate whether the block is to be split and encoding syntax elements representative of a minimum block size and splitting constraints, and if splitting is not enabled, do not encode any further split mode flags for the block;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed consistent with said syntax elements representative of a minimum block size and horizontal and vertical splitting constraints, and

encoding a second flag to indicate whether the block is split in a horizontal or vertical direction by checking that the block size in each direction is greater than a minimum size and also not equal to a multiple of three, and wherein additional syntax is indicative of a type of split by checking if asymmetric splitting in a direction is allowed.

17. An apparatus for encoding video image blocks, comprising:

a memory, and

a processor, configured to encode video image blocks by: determining whether a block is allowed to undergo splitting by checking if said block is within a minimum and a maximum allowed coding unit size in width and height and, if so, encoding a first flag to indicate whether the block is to be split and encoding syntax elements representative of a minimum block size and splitting constraints, and if splitting is not enabled, do not encode any further split mode flags for the block;

determining whether horizontal or vertical splitting is allowed for the block if binary splitting is allowed consistent with said syntax elements representative of a minimum block size and horizontal and vertical splitting constraints, and

encoding a second flag to indicate whether the block is split in a horizontal or vertical direction by checking that the block size in each direction is greater than a minimum size and also not equal to a multiple of three, and wherein additional syntax is indicative of a type of split by checking if asymmetric splitting in a direction is allowed.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2021
From: INTERDIGITAL VC HOLDINGS, INC.
To: INTERDIGITAL MADISON PATENT HOLDINGS, SAS
Reel/Frame 056541/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2019
From: THOMSON LICENSING
To: INTERDIGITAL VC HOLDINGS, INC.
Reel/Frame 050649/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: POIRIER, TANGI; LELEANNEC, FABRICE; FACAPE, FABIEN
To: THOMSON LICENSING
Reel/Frame 048791/0510 →