# US 9,883,187 B2 · Fast video encoding method with block partitioning

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

- Number: US 9,883,187 B2
- Document ID: US9883187B2
- Status: Granted
- Kind: B2
- Application number: 14/737,271
- Filed: 2015-06-11
- Published: 2016-09-08
- Granted: 2018-01-30
- Earliest claimed: 2015-03-06
- Assignees: QUALCOMM Incorporated
- Applicants: QUALCOMM Incorporated
- Inventors: Chengjie Tu; Wei-Jung Chien; Xianglin Wang; Jaehong Chon; In Suk Chong; Marta Karczewicz; Woo-Shik Kim; Xin Zhao
- Web page: https://patentgrep.com/patent/US9883187B2

## CPC

- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/109: among a plurality of temporal predictive coding modes
- H04N 19/119: Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
- H04N 19/147: according to rate distortion criteria (rate-distortion as a criterion for motion estimation H04N19/567)
- H04N 19/157: Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/174: the region being a slice, e.g. a line of blocks or a group of blocks
- H04N 19/567: Motion estimation based on rate distortion criteria
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video encoding device comprises a memory configured to store video data and at least one processor configured to: select one of a full rate-distortion (RD) checking scheme or a fast RD checking scheme, determine an RD cost associated with encoding a block of the video data based on the selected full RD checking scheme or fast RD checking scheme, determine a partitioning scheme for the block based on the determined RD cost, and encode the block using the determined partitioning scheme based on the determined RD cost.

## Claims

### Claim 1

A method of encoding video data, the method comprising:
selecting one of a full rate-distortion (RD) checking scheme when a complexity of a block of video data exceeds a threshold value or a fast RD checking scheme when the complexity of the block does not exceed the threshold value, wherein the complexity of the block is based on a variation of distortion between sub-partitions of the block, and wherein the fast RD checking scheme comprises an early termination of the full RD checking scheme;
determining an RD cost associated with encoding the block of the video data based on the selected full RD checking scheme or fast RD checking scheme;
determining a partitioning scheme for the block based on the determined RD cost; and
encoding the block using the determined partitioning scheme based on the determined RD cost.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
responsive to selecting the fast RD checking scheme,
determining a distortion value associated with a largest partition size for the block;
responsive to determining that the distortion value associated with the largest partition size for the block exceeds a threshold distortion value, determining whether to partition the block into sub-partitions.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining whether to partition the block into sub-partitions further comprises:
comparing distortion values associated with each of the sub-partitions against a second distortion threshold value; and
responsive to determining that at least one of the sub-partitions has a distortion value greater than the second distortion threshold value, partitioning the block into the sub-partitions.

### Claim 4 (depends on 3)

The method of claim 3, wherein the second threshold distortion value is based on a scaled average of the distortion values associated with each of the sub-partitions.

### Claim 5 (depends on 3)

The method of claim 3, wherein the second threshold distortion value is based on a variation of the distortion values associated with each of the sub-partitions.

### Claim 6 (depends on 3)

The method of claim 3, wherein determining whether to partition the block into sub-partitions further comprises:
determining whether one of the sub-partitions is associated with different motion information relative to at least one other of the sub-partitions; and
responsive to determining that the one the sub-partitions is associated with different motion information relative to the at least one other of the sub-partitions, further partitioning the one of the sub-partitions into additional sub-partitions.

### Claim 7 (depends on 1)

The method of claim 1, wherein selecting the full RD checking scheme comprises selecting the full RD checking scheme if a current slice that includes the block of video data is an i-slice.

### Claim 8 (depends on 1)

The method of claim 1, wherein selecting the full RD checking scheme or the fast RD checking scheme is based on whether a fast encoding mode of a video encoder is enabled.

### Claim 9 (depends on 1)

The method of claim 1, wherein selecting the full RD checking scheme comprises selecting the full RD checking scheme when the block is coded using SKIP mode.

### Claim 10

A video encoding device comprising:
a memory configured to store video data; and
at least one processor configured to:
select one of a full rate-distortion (RD) checking scheme when a complexity of a block of video data exceeds a threshold value or a fast RD checking scheme when the complexity of the block does not exceed the threshold value, wherein the complexity of the block is based on a variation of distortion between sub-partitions of the block, and wherein the fast RD checking scheme comprises an early termination of the full RD checking scheme;
determine an RD cost associated with encoding the block of the video data based on the selected full RD checking scheme or fast RD checking scheme;
determine a partitioning scheme for the block based on the determined RD cost; and
encode the block using the determined partitioning scheme based on the determined RD cost.

### Claim 11 (depends on 10)

The device of claim 10, wherein the at least one processor is further configured to:
responsive to selecting the fast RD checking scheme,
determine a distortion value associated with a largest partition size for the block;
responsive to determining that the distortion value associated with the largest partition size for the block exceeds a threshold distortion value, determine whether to partition the block into sub-partitions.

### Claim 12 (depends on 11)

The device of claim 11, wherein to determine whether to partition the block into sub-partitions, the at least one processor is further configured to:
compare distortion values associated with each of the sub-partitions against a second distortion threshold value; and
responsive to determining that at least one of the sub-partitions has a distortion value greater than the second distortion threshold value, partition the block into the sub-partitions.

### Claim 13 (depends on 11)

The device of claim 11, wherein determining whether to partition the block into sub-partitions, the at least one processor is further configured to:
determine whether one of the sub-partitions is associated with different motion information relative to at least one other of the sub-partitions; and
responsive to determining that the one the sub-partitions is associated with different motion information relative to the at least one other of the sub-partitions, further partition the one of the sub-partitions into additional sub-partitions.

### Claim 14 (depends on 10)

The device of claim 10, wherein to select the full RD checking scheme, the at least one processor is further configured to select the full RD checking scheme if a current slice that includes the block of video data is an i-slice.

### Claim 15 (depends on 10)

The device of claim 10, wherein to select the full RD checking scheme, the at least one processor is configured to select the full RD checking scheme when the block is coded using SKIP mode.

### Claim 16

A non-transitory computer-readable storage medium including instructions stored thereon that, when executed, cause at least one processor of a video encoding device to:
select one of a full rate-distortion (RD) checking scheme when a complexity of a block of video data exceeds a threshold value or a fast RD checking scheme when the complexity of the block does not exceed the threshold value, wherein the complexity of the block is based on a variation of distortion between sub-partitions of the block, and wherein the fast RD checking scheme comprises an early termination of the full RD checking scheme;
determine an RD cost associated with encoding block of the video data based on the selected full RD checking scheme or fast RD checking scheme;
determine a partitioning scheme for the block based on the determined RD cost; and
encode the block using the determined partitioning scheme based on the determined RD cost.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, include instructions stored thereon that, when executed, cause the at least one processor to:
responsive to selecting the fast RD checking scheme,
determine a distortion value associated with a largest partition size for the block;
responsive to determining that the distortion value associated with the largest partition size for the block exceeds a threshold distortion value, determine whether to partition the block into sub-partitions.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein instructions to determine whether to partition the block into sub-partitions, when executed, cause the at least one processor to:
compare distortion values associated with each of the sub-partitions against a second distortion threshold value; and
responsive to determining that at least one of the sub-partitions has a distortion value greater than the second distortion threshold value, partition the block into the sub-partitions.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein instructions to determine whether to partition the block into sub-partitions, when executed, cause the at least one processor to:
determine whether one of the sub-partitions is associated with different motion information relative to at least one other of the sub-partitions; and
responsive to determining that the one the sub-partitions is associated with different motion information relative to the at least one other of the sub-partitions, further partition the one of the sub-partitions into additional sub-partitions.

### Claim 20 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein instructions to select the full RD checking scheme, when executed, cause the at least one processor to: select the full RD checking scheme if a current slice that includes the block of video data is an i-slice.

### Claim 21 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein instructions to select the full RD checking scheme, when executed, cause the at least one processor to: select the full RD checking scheme when the block is coded using SKIP mode.
