# US 9,438,903 B2 · Encoding method and apparatus for reducing dynamic power consumption during video encoding

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

- Number: US 9,438,903 B2
- Document ID: US9438903B2
- Status: Granted
- Kind: B2
- Application number: 13/905,370
- Filed: 2013-05-30
- Published: 2013-12-05
- Granted: 2016-09-06
- Earliest claimed: 2012-05-30
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Ming Li
- Web page: https://patentgrep.com/patent/US9438903B2

## CPC

- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/105: Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/523: with sub-pixel accuracy
- H04N 19/107: between spatial and temporal predictive coding, e.g. picture refresh
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

An embodiment of the present invention discloses an encoding method, including: collecting characteristic information of a macroblock, where the characteristic information is generated during encoding and includes a motion vector, inter-frame complexity, and intra-frame complexity of the macroblock that has undergone integer pixel motion estimation; determining a motion type of the macroblock according to the motion vector of the macroblock that has undergone the integer pixel motion estimation and a motion vector of an adjacent block adjacent to the macroblock; and enabling or disabling, according to the motion type of the macroblock, a part of work processes that are performed during the encoding.

## Claims

### Claim 1

An encoding method, comprising:
collecting, by an encoder, characteristic information of a macroblock, wherein the characteristic information is generated during encoding and comprises a motion vector, inter-frame complexity, and intra-frame complexity of the macroblock that has undergone integer pixel motion estimation;
calculating, by the encoder, values of max(|mvx−mvxn|) and max(|mvy−mvyn|), wherein (mvx, mvy) is the motion vector of the macroblock that has undergone the integer pixel motion estimation, and (mvxn, mvyn) is a motion vector of an adjacent block adjacent to the macroblock;
determining, by the encoder, a motion type of the macroblock according to the calculated values, wherein the step of determining a motion type of the macroblock according to the motion vector of the macroblock that has undergone the integer pixel motion estimation and the motion vectors of the adjacent block adjacent to the macroblock comprises:
determining whether motion vector values mvx and mvy of the macroblock both are equal to 0 and whether the inter-frame complexity of the macroblock is less than a first threshold, wherein when the motion vector values mvx and mvy of the macroblock both are equal to 0 and the inter-frame complexity of the macroblock is less than a first threshold, the motion type of the macroblock is motionlessness;
determining whether the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a second threshold, wherein when the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a second threshold, the motion type of the macroblock is strictly true motion; and
determining whether the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a third threshold, wherein when the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a third threshold, the motion type of the macroblock is true motion, and the second threshold is less than the third threshold; and
enabling or disabling, by the encoder according to the motion type of the macroblock, a part of work processes that are performed during the encoding.

### Claim 2 (depends on 1)

The encoding method according to claim 1, wherein the adjacent block comprises at least one of a left adjacent block, an upper adjacent block, an upper left adjacent block, and an upper right adjacent block.

### Claim 3 (depends on 1)

The encoding method according to claim 1, wherein the motion type of the macroblock comprises motionlessness, true motion, and strictly true motion.

### Claim 4 (depends on 1)

The encoding method according to claim 1, wherein the step of enabling or disabling, according to the motion type of the macroblock, a part of work processes that are performed during the encoding comprises:
determining whether the motion type of the macroblock is motionlessness or true motion; and
when the motion type of the macroblock is motionlessness or true motion, disabling intra-frame prediction for the macroblock.

### Claim 5 (depends on 4)

The encoding method according to claim 4, wherein the step of enabling or disabling, according to the motion type of the macroblock, a part of work processes that are performed during the encoding further comprises:
determining whether the motion type of the macroblock is motionlessness or strictly true motion and whether the intra-frame complexity of the macroblock is less than a fourth threshold; and
when the motion type of the macroblock is motionlessness or strictly true motion and the intra-frame complexity of the macroblock is less than a fourth threshold, disabling fractional pixel motion estimation for the macroblock on the basis of disabling the intra-frame prediction for the macroblock.

### Claim 6 (depends on 1)

The encoding method according to claim 1, wherein a switch mode for enabling or disabling, according to the motion type of the macroblock, a part of work processes that are performed during the encoding is a self-adaptive switch mode.

### Claim 7

An encoding apparatus, comprising encoding circuitries configured to:
collect characteristic information of a macroblock, wherein the characteristic information is generated during encoding and comprises a motion vector, inter-frame complexity, and intra-frame complexity of the macroblock that has undergone integer pixel motion estimation;
calculate values of max(|mvx−mvxn|) and max(|mvy−mvyn|), wherein (mvx, mvy) is the motion vector of the macroblock that has undergone the integer pixel motion estimation, and (mvxn, mvyn) is the motion vector of an adjacent block adjacent to the macroblock;
determine a motion type of the macroblock according to the calculated values, wherein the motion type determination further comprises:
determine whether motion vector values mvx and mvy of the macroblock both are equal to 0 and whether the inter-frame complexity of the macroblock is less than a first threshold, wherein when the motion vector values mvx and mvy of the macroblock both are equal to 0 and the inter-frame complexity of the macroblock is less than a first threshold, the motion type of the macroblock is motionlessness;
determine whether the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a second threshold, wherein when the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a second threshold, the motion type of the macroblock is strictly true motion; and
determine whether the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a third threshold, wherein when the values of max(|mvx−mvxn|) and max(|mvy−mvyn|) are both less than a third threshold, the motion type of the macroblock is true motion, and the second threshold is less than the third threshold; and
enable or disable, according to the motion type of the macroblock, a part of work processes that are performed during the encoding.

### Claim 8 (depends on 7)

The encoding apparatus according to claim 7, wherein the adjacent block is at least of a left adjacent block, an upper adjacent block, an upper left adjacent block, and an upper right adjacent block.

### Claim 9 (depends on 7)

The encoding apparatus according to claim 7, further configured to:
determine whether the motion type of the macroblock is motionlessness or true motion, and when the motion type of the macroblock is motionlessness or true motion, disable intra-frame prediction for the macroblock; and
determine whether the motion type of the macroblock is motionlessness or strictly true motion and whether the intra-frame complexity of the macroblock is less than a fourth threshold, and when the motion type of the macroblock is motionlessness or strictly true motion and the intra-frame complexity of the macroblock is less than a fourth threshold, disable fractional pixel motion estimation for the macroblock on the basis of disabling the intra-frame prediction for the macroblock.

### Claim 10 (depends on 7)

The encoding apparatus according to claim 7, further comprising a switch that includes a self-adaptive switch mode.
