# US 2019/0246107 A1 · Encoding and decoding methods and corresponding devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0246107 A1
- Document ID: US20190246107A1
- Status: Published application
- Kind: A1
- Application number: 16/339,716
- Filed: 2017-09-25
- Published: 2019-08-08
- Earliest claimed: 2016-10-05
- Assignees: InterDigital Madison Patent Holdings, SAS
- Applicants: Interdigital Vc Holding, Inc.
- Inventors: Fabrice LELEANNEC; Antoine ROBERT; Tangi POIRIER
- Web page: https://patentgrep.com/patent/US20190246107A1

## CPC

- H04N 19/119: Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N 19/136: Incoming video signal characteristics or properties
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/91: Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A decoding method for decoding a block of an image is disclosed that comprises:—determining a split mode for said block in a set of split modes;—splitting said block into at least two sub-blocks responsive to said split mode;—decoding each of the at least two sub-blocks; wherein said set of split modes comprises at least one split mode for asymmetrically splitting said block into the at least two sub-blocks.

## Claims

### Claim 1

A decoding method for decoding a block of an image comprising:
determining a split mode for said block in a set of split modes, wherein said set of split modes comprises at least one split mode for asymmetrically splitting said block into the at least two sub-blocks;
splitting said block into at least two sub-blocks responsive to said split mode;
decoding each of the at least two sub-blocks, wherein determining said split mode comprises:
decoding a first syntax element (btSplitOrientation) specifying whether said block is split vertically or horizontally;
decoding a second syntax element (horAsymmetricSplitFlag, verAsymmetricSplitFlag) specifying whether said block is split symmetrically or asymmetrically; and
decoding a split mode syntax element (vertical_asymmetric_type/horizontal_asymmetric_type) in the case where said second syntax element specifies that said block is split asymmetrically.

### Claim 2

(canceled)

### Claim 3 (depends on 1)

The method according to claim 1, wherein decoding said second syntax element comprises:
determining a context for decoding said second syntax element, wherein said context is a function of a size of a neighboring block relative the size of the current block, wherein the size is the width or the height; and
context-based arithmetic decoding said second syntax element responsive to said determined context.

### Claim 4 (depends on 3)

The method according to claim 3, wherein said context is a function of a number of sub-blocks in a neighboring block having a size smaller than a quarter of a size of said block, wherein the size is the width or the height.

### Claim 5 (depends on 4)

The method according to claim 4, wherein in the case where said block is split horizontally, determining said context for decoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located to the left of said block having a height smaller than a quarter of a height of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 6 (depends on 4)

The method according to claim 4, wherein in the case where said block is split vertically, determining said context for decoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located on top of said block having a width smaller than a quarter of a width of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 7 (depends on 3)

The method according to claim 3, wherein said context is a function of a presence of a neighboring block with a size higher than half of the size of the block, wherein the size is the width or the height.

### Claim 8 (depends on 1)

The method according to claim 1, wherein decoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block;
determining a context for decoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 9 (depends on 1)

The method according to claim 1, wherein in the case where said block is split horizontally, decoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally;
determining a context for decoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 10 (depends on 1)

The method according to claim 1, wherein in the case where said block is split vertically, decoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically;
determining a context for decoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 11 (depends on 1)

The method according to claim 1, wherein decoding said split mode syntax element comprises:
determining a context for decoding said split mode syntax element, wherein said context is a function of a size of a first neighboring block of said block relative to the size of a second neighboring block of said block, wherein the size is the width or the height; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 12

A coding method for encoding a block of an image comprising:
determining a split mode for said block in a set of split modes, wherein said set of split modes comprises at least one split mode for asymmetrically splitting said block into the at least two sub-blocks;
splitting said block into at least two sub-blocks responsive to said split mode;
encoding each of the at least two sub-blocks, wherein determining said split mode comprises:
determining and encoding a first syntax element (btSplitOrientation) specifying whether said block is split vertically or horizontally;
determining and encoding a second syntax element (horAsymmetricSplitFlag, verAsymmetricSplitFlag) specifying whether said block is split symmetrically or asymmetrically; and
determining and encoding a split mode syntax element (vertical_asymmetric_type/horizontal_asymmetric_type) in the case where said second syntax element specifies that said block is split asymmetrically.

### Claim 13

(canceled)

### Claim 14 (depends on 12)

The method according to claim 12, wherein encoding said second syntax element comprises:
determining a context for encoding said second syntax element, wherein said context is a function of a size of a neighboring block relative the size of the current block, wherein the size is the width or the height; and
context-based arithmetic encoding said second syntax element responsive to said determined context.

### Claim 15 (depends on 14)

The method according to claim 14, wherein said context is a function of a number of sub-blocks in a neighboring block having a size smaller than a quarter of a size of said block, wherein the size is the width or the height.

### Claim 16 (depends on 15)

The method according to claim 15, wherein in the case where said block is split horizontally, determining said context for encoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located to the left of said block having a height smaller than a quarter of a height of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 17 (depends on 15)

The method according to claim 15, wherein in the case where said block is split vertically, determining said context for encoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located on top of said block having a width smaller than a quarter of a width of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 18 (depends on 14)

The method according to claim 14, wherein said context is a function of a presence of a neighboring block with a size higher than half of the size of the block, wherein the size is the width or the height.

### Claim 19 (depends on 12)

The method according to claim 12, wherein encoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block;
determining a context for encoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 20 (depends on 12)

The method according to claim 12, wherein in the case where said block is split horizontally, encoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally;
determining a context for encoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 21 (depends on 12)

The method according to claim 12, wherein in the case where said block is split vertically, encoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically;
determining a context for encoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 22 (depends on 12)

The method according to claim 12, wherein encoding said split mode syntax element comprises:
determining a context for encoding said split mode syntax element, wherein said context is a function of a size of a first neighboring block of said block relative to the size of a second neighboring block of said block, wherein the size is the width or the height; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 23

A decoding device comprising one or more processors configured to:
determine a split mode for said block in a set of split modes, wherein said set of split modes comprises at least one split mode for asymmetrically splitting said block into the at least two sub-blocks;
split said block into at least two sub-blocks responsive to said split mode;
decode each of the at least two sub-blocks, wherein determining said split mode comprises:
decoding a first syntax element (btSplitOrientation) specifying whether said block is split vertically or horizontally;
decoding a second syntax element (horAsymmetricSplitFlag, verAsymmetricSplitFlag) specifying whether said block is split symmetrically or asymmetrically; and
decoding a split mode syntax element (vertical_asymmetric_type/horizontal_asymmetric_type) in the case where said second syntax element specifies that said block is split asymmetrically.

### Claim 24 (depends on 23)

The device according to claim 23, wherein decoding said second syntax element comprises:
determining a context for decoding said second syntax element, wherein said context is a function of a size of a neighboring block relative the size of the current block, wherein the size is the width or the height; and
context-based arithmetic decoding said second syntax element responsive to said determined context.

### Claim 25 (depends on 24)

The device according to claim 24, wherein said context is a function of a number of sub-blocks in a neighboring block having a size smaller than a quarter of a size of said block, wherein the size is the width or the height.

### Claim 26 (depends on 25)

The device according to claim 25, wherein in the case where said block is split horizontally, determining said context for decoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located to the left of said block having a height smaller than a quarter of a height of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 27 (depends on 25)

The device according to claim 25, wherein in the case where said block is split vertically, determining said context for decoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located on top of said block having a width smaller than a quarter of a width of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 28 (depends on 24)

The device according to claim 24, wherein said context is function of a presence of a neighboring block with a size higher than half of the size of the block, wherein the size is the width or the height.

### Claim 29 (depends on 23)

The device according to claim 23, wherein decoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block;
determining a context for decoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 30 (depends on 23)

The device according to claim 23, wherein in the case where said block is split horizontally, decoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally;
determining a context for decoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 31 (depends on 23)

The device according to claim 23, wherein in the case where said block is split vertically, decoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically;
determining a context for decoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 32 (depends on 23)

The device according to claim 23, wherein decoding said split mode syntax element comprises:
determining a context for decoding said split mode syntax element, wherein said context is a function of a size of a first neighboring block of said block relative to the size of a second neighboring block of said block, wherein the size is the width or the height; and
context-based arithmetic decoding said split mode syntax element responsive to said determined context.

### Claim 33

A coding device comprising one or more processors configured to:
determine a split mode for said block in a set of split modes, wherein said set of split modes comprises at least one split mode for asymmetrically splitting said block into the at least two sub-blocks;
split said block into at least two sub-blocks responsive to said split mode;
encode each of the at least two sub-blocks, wherein determining a split mode comprises:
determining and encoding a first syntax element (btSplitOrientation) specifying whether said block is split vertically or horizontally;
determining and encoding a second syntax element (horAsymmetricSplitFlag, verAsymmetricSplitFlag) specifying whether said block is split symmetrically or asymmetrically; and
determining and encoding a split mode syntax element (vertical_asymmetric_type/horizontal_asymmetric_type) in the case where said second syntax element specifies that said block is split asymmetrically.

### Claim 34 (depends on 33)

The device according to claim 33, wherein encoding said second syntax element comprises:
determining a context for encoding said second syntax element, wherein said context is a function of a size of a neighboring block relative the size of the current block, wherein the size is the width or the height; and
context-based arithmetic encoding said second syntax element responsive to said determined context.

### Claim 35 (depends on 34)

The device according to claim 34, wherein said context is function of a number of sub-blocks in a neighboring block having a size smaller than a quarter of a size of said block, wherein the size is the width or the height.

### Claim 36 (depends on 35)

The device according to claim 35, wherein in the case where said block is split horizontally, determining said context for encoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located to the left of said block having a height smaller than a quarter of a height of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 37 (depends on 35)

The device according to claim 35, wherein in the case where said block is split vertically, determining said context for encoding said second syntax element comprises:
determining a number of sub-blocks in a neighboring block located on top of said block having a width smaller than a quarter of a width of said block; and
obtaining a first context in the case where said number is equal to zero and a second context otherwise.

### Claim 38 (depends on 34)

The device according to claim 34, wherein said context is a function of a presence of a neighboring block with a size higher than half of the size of the block, wherein the size is the width or the height.

### Claim 39 (depends on 33)

The device according to claim 33, wherein encoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block;
determining a context for encoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block of said block is aligned with a frontier resulting from asymmetrically splitting said block; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 40 (depends on 33)

The device according to claim 33, wherein in the case where said block is split horizontally, encoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally;
determining a context for encoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located to the left of said block is aligned with a frontier resulting from asymmetrically splitting said block horizontally; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 41 (depends on 33)

The device according to claim 33, wherein in the case where said block is split vertically, encoding said split mode syntax element comprises:
determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically;
determining a context for encoding said split mode syntax element, wherein said context is a function of said determining whether a frontier in a neighboring block located on the top of said block is aligned with a frontier resulting from asymmetrically splitting said block vertically; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.

### Claim 42 (depends on 33)

The device according to claim 33, wherein encoding said split mode syntax element comprises:
determining a context for encoding said split mode syntax element, wherein said context is a function of a size of a first neighboring block of said block relative to the size of a second neighboring block of said block, wherein the size is the width or the height; and
context-based arithmetic encoding said split mode syntax element responsive to said determined context.
