# US 7,609,766 B2 · System of intra-picture complexity preprocessing

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

- Number: US 7,609,766 B2
- Document ID: US7609766B2
- Status: Granted
- Kind: B2
- Application number: 11/053,586
- Filed: 2005-02-08
- Published: 2006-08-10
- Granted: 2009-10-27
- Earliest claimed: 2005-02-08
- Assignees: ViXS Systems, Inc.
- Inventors: Steve Zhihua Zeng
- Web page: https://patentgrep.com/patent/US7609766B2

## 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/112: according to a given display mode, e.g. for interlaced or progressive display mode
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/60: using transform coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A system having a video pipeline that includes a variation calculation portion is disclosed. The variance calculation portion calculates a plurality of variance values for a macroblock. A DCT-type indicator for the macroblock is determined based upon the plurality of variance values.

## Claims

### Claim 1

A method comprising:
receiving, at a video pipeline, a first set of data representing a first portion of a video picture to be compressed, the first portion of the video picture comprising a plurality of fields, the plurality of fields comprising odd fields and even fields;
determining, using the video pipeline, a first variation value representative of a statistical variance of the odd fields;
determining, using the video pipeline, a second variation value representative of a statistical variance of the even fields;
determining, using the video pipeline, a third variation value representative of a statistical variance of the plurality of fields; and
determining, using the video pipeline, a discrete cosine transform (DCT) type to be used for encoding the first set of data based upon the minimum variation value of the first variation value, the second variation value, and the third variation value.

### Claim 2 (depends on 1)

The method of claim 1 wherein determining the DCT type comprises:
determining the DCT type as a frame DCT type responsive to the minimum variation value comprising the third variation value; and
determining the DCT type as a field DCT type responsive to the minimum variation value comprising one of the first variation value or the second variation value.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
providing at least one variation value to be stored in memory, the at least one variation value based on at least one of the first variation value, the second variation value, or the third variation value.

### Claim 4 (depends on 1)

The method of claim 1, further comprising: providing an indicator of the DCT type to be stored in memory.

### Claim 5 (depends on 4)

The method of claim 4, wherein the indicator of the DCT type and the at least one variation value are stored simultaneously.

### Claim 6 (depends on 4)

The method of claim 4, wherein the indicator of the DCT type and the one variation value are stored in a common data word.

### Claim 7 (depends on 1)

The method of claim 1, wherein receiving the first set of data comprises receiving the first set of data at a first stage of a pipeline from a second stage of the pipeline.

### Claim 8 (depends on 7)

The method of claim 7, wherein the second stage of the pipeline comprises a video scaler.

### Claim 9 (depends on 7)

The method of claim 7, wherein the second stage of the pipeline comprises a noise reduction filter.

### Claim 10 (depends on 7)

The method of claim 7 further comprising identifying the second stage of the pipeline as one of a third stage of the pipeline and a fourth stage of the pipeline.

### Claim 11 (depends on 10)

The method of claim 10, wherein identifying the second stage further comprises reading a value from a memory location to identify the second stage.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
compressing the first set of data at a video compressor based upon the DCT type to generate a second set of data.

### Claim 13 (depends on 1)

The method of claim 1, wherein determining the first variation value, the second variation value, and the third variation value comprises determining the first variation value, the second variation value, and the third variation value using a variation calculator integrated circuit of the video pipeline.

### Claim 14 (depends on 13)

The method of claim 13, wherein the variation calculator integrated circuit comprises:
a first circuit path comprising an input to receive a pixel value and an output to provide a first result value, the first circuit path comprising a first latch to latch the pixel value, a squaring portion to provide a first value that is the square of the pixel value, a second latch to latch the first value, a first sum portion to sum the latched value and a latched third value of a third latch, and the third latch to latch an output of the first sum portion as the latched third value; and
a second circuit path comprising an input to receive the pixel value and an output to provide a second result value, the second circuit patch comprising a fourth latch to latch the pixel value, a sum portion to sum the pixel value and a latched fourth value of a fifth latch, and the fifth latch to latch an output of the first sum portion.

### Claim 15

A method comprising:
receiving a plurality of video macroblocks from memory during a first time period;
processing the plurality of video macroblocks at a first stage of a pipeline during a second time frame to generate a plurality of modified macroblocks, each modified macroblock comprising a plurality of fields, the plurality of fields comprising odd fields and even fields;
processing the plurality of modified macroblocks at a second stage of the pipeline during a third time to determine a plurality of variation values for each macroblock, the plurality of variation values comprising a first variation value representative of a statistical variance of the odd fields of the macroblock, a second variation value representative of a statistical variance of the even fields of the macroblock, and a third variation value representative of a statistical variance of the plurality of fields of the macroblock.

### Claim 16 (depends on 15)

The method of claim 15, wherein processing the plurality of video macroblocks at the first stage of the pipeline operates on N macroblocks, wherein N is a positive integer greater than 1.

### Claim 17 (depends on 15)

The method of claim 15, wherein processing the plurality of modified macroblocks at the second stage of the pipeline during the third time to determine the plurality of variation values for each macroblock comprises determining the plurality of variation values using a variation calculator integrated circuit of the second stage.

### Claim 18 (depends on 17)

The method of claim 17, wherein the variation calculator integrated circuit comprises:
a first circuit path comprising an input to receive a pixel value and an output to provide a first result value, the first circuit path comprising a first latch to latch the pixel value, a squaring portion to provide a first value that is the square of the pixel value, a second latch to latch the first value, a first sum portion to sum the latched value and a latched third value of a third latch, and the third latch to latch an output of the first sum portion as the latched third value; and
a second circuit path comprising an input to receive the pixel value and an output to provide a second result value, the second circuit patch comprising a fourth latch to latch the pixel value, a sum portion to sum the pixel value and a latched fourth value of a fifth latch, and the fifth latch to latch an output of the first sum portion.

### Claim 19

A system comprising:
a first stage of a pipeline comprising an input to receive a first set of data representing a portion of a video picture and an output to provide a second set of data representing the portion of the video picture based upon the first set of data;
a second stage of the pipeline comprising an input coupled to the output of the first stage to receive the second set of data, and an output, the second stage of the pipeline comprising:
a first portion to determine one or more field variation values of the second set of data; and
a second portion to determine one or more frame variation values of the second set of data; and
a memory comprising an output to provide a third set of data representing the portion of the video picture to the pipeline, wherein the first set of data is one of the same as the third set of data or a representation of the third set of data.

### Claim 20 (depends on 19)

The system of claim 19 wherein the output of the first stage is coupled to the memory to provide the second set of data to an input of the memory.

### Claim 21

A system comprising:
a first stage of a pipeline comprising an input to receive a first set of data representing a portion of a video picture and an output to provide a second set of data representing the portion of the video picture based upon the first set of data; and
a second stage of the pipeline comprising an input coupled to the output of the first stage to receive the second set of data, and an output, the second stage of the pipeline comprising:
a first portion to determine a plurality of field variation values based on the second set of data;
a second portion to determine a plurality of frame variation values based on the second set of data; and
a third portion coupled to the first module and to the second module to receive variance values, and to provide an indicator to control compression of the second set of data.

### Claim 22

A system comprising:
a video pipeline to:
receive a first set of data representing a first portion of a video picture to be compressed, the first portion of the video picture comprising a plurality of fields, the plurality of fields comprising odd fields and even fields;
determine a first variation value representative of a statistical variance of the odd fields;
determine a second variation value representative of a statistical variance of the even fields;
determine a third variation value representative of a statistical variance of the plurality of fields; and
determining a discrete cosine transform (DCT) type to be used for encoding the first set of data based upon the minimum variation value of the first variation value, the second variation value, and the third variation value.

### Claim 23 (depends on 22)

The system of claim 22, further comprising:
a video compressor to compress the first set of data based upon the DCT type to generate a second set of data.

### Claim 24 (depends on 22)

The system of claim 22, wherein the video pipeline comprises variation calculator integrated circuit to determine the first variation value, the second variation value, and the third variation value, the variation calculator integrated circuit comprising:
a first circuit path comprising an input to receive a pixel value and an output to provide a first result value, the first circuit path comprising a first latch to latch the pixel value, a squaring portion to provide a first value that is the square of the pixel value, a second latch to latch the first value, a first sum portion to sum the latched value and a latched third value of a third latch, and the third latch to latch an output of the first sum portion as the latched third value; and
a second circuit path comprising an input to receive the pixel value and an output to provide a second result value, the second circuit patch comprising a fourth latch to latch the pixel value, a sum portion to sum the pixel value and a latched fourth value of a fifth latch, and the fifth latch to latch an output of the first sum portion.
