# US 8,571,098 B1 · Variable bit rate encoding

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

- Number: US 8,571,098 B1
- Document ID: US8571098B1
- Status: Granted
- Kind: B1
- Application number: 13/363,776
- Filed: 2012-02-01
- Granted: 2013-10-29
- Earliest claimed: 2006-10-19
- Assignees: Vudu, Inc.
- Applicants: Prasanna Ganesan; Sumankar Shankar
- Inventors: Prasanna Ganesan; Sumankar Shankar
- Web page: https://patentgrep.com/patent/US8571098B1

## CPC

- H04N 19/179: the unit being a scene or a shot
- H04N 19/115: Selection of the code volume for a coding unit prior to coding
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A system, machine-readable medium and method for processing video comprising a video segmentor configured to receive a source video and to split the source video into segments; a bit rate allocator configured to receive the segments and generate target bit rates corresponding to the segments; a first encoder coupled to receive the plurality of segments and the target bit rates and configured to encode each of the segments using one of the target bit rates to generate encoded segments; and an output generator configured to receive the encoded segments and generate an encoded video.

## Claims

### Claim 1

A computer-implemented method for processing a plurality of video segments of a video in a video system, the method comprising:
identifying complexity information for each of the plurality of video segments, the complexity information identifying a first quality level for each of the plurality of video segments;
predicting a time when a total amount of data decoded will exceed a buffer constraint when each of the plurality of video segments having the first quality level are decoded and streamed in the video system; and
in response to determining the time, (i) adjusting some of the first quality levels of some the plurality of video segments to a respective second quality level, and (ii) generating a plurality of target bit rates to encode the plurality of video segments based on the first quality levels and second quality levels of the plurality of video segments.

### Claim 2 (depends on 1)

The method of claim 1, wherein predicting the time includes determining a predictive model for decoding and streaming video in the video system based on the complexity information for each of the plurality of video segments, and wherein the buffer constraint represents an amount of data being downloaded into a buffer of the video system.

### Claim 3 (depends on 1)

The method of claim 1, wherein each of the plurality of video segments is a frame in a sequence of frames of the video.

### Claim 4 (depends on 1)

The method of claim 1, wherein the complexity information for each of the plurality of video segments includes metadata corresponding to each respective video segment.

### Claim 5 (depends on 4)

The method of claim 4, wherein the complexity information for each of the plurality of video segments includes information corresponding to frame types, macroblock types, quantizer or motion vectors for each respective video segment.

### Claim 6 (depends on 1)

The method of claim 1, wherein adjusting some of the first quality levels of some of the plurality of video segments to the respective second quality level includes reducing the first quality levels of some of the plurality of video segments.

### Claim 7 (depends on 1)

The method of claim 1, wherein the video system comprises a server, a network, and a computing device to receive the plurality of video segments from the server.

### Claim 8 (depends on 7)

The method of claim 7, further comprising encoding each of the plurality of video segments using a corresponding target bit rate of the plurality of target bit rates.

### Claim 9 (depends on 8)

The method of claim 8, further comprising transmitting each of the plurality of encoded video segments to the computing device over the network.

### Claim 10

A system for processing a plurality of video segments comprising:
a server configured to:
identify complexity information for each of the plurality of video segments, the complexity information identifying a first quality level for each of the plurality of video segments;
predicting a time when a total amount of data decoded will exceed a buffer constraint when each of the plurality of video segments having the first quality level are decoded and streamed in the system; and
in response to determining the critical point, (i) adjust some of the first quality levels of some the plurality of video segments to a respective second quality level, and (ii) generate a plurality of target bit rates to encode the plurality of video segments based on the first quality levels and second quality levels of the plurality of video segments.

### Claim 11 (depends on 10)

The system of claim 10, wherein the server is configured to predict the time by includes determining a predictive model for decoding and streaming video in the video system based on the complexity information for each of the plurality of video segments, and wherein the buffer constraint represents an amount of data being downloaded into a buffer of the system.

### Claim 12 (depends on 10)

The system of claim 10, wherein each of the plurality of video segments is a frame in a sequence of frames of the video.

### Claim 13 (depends on 12)

The system of claim 12, wherein the complexity information for each of the plurality of video segments includes information corresponding to frame types, macroblock types, quantizer or motion vectors for each respective video segment.

### Claim 14 (depends on 10)

The system of claim 10, wherein the server is configured to adjust some of the first quality levels of some of the plurality of video segments to the respective second quality level by reducing the first quality levels of some of the plurality of video segments.

### Claim 15 (depends on 10)

The system of claim 10, wherein the system further comprises:
a network; and
a computing device to receive the plurality of video segments from the server.

### Claim 16 (depends on 15)

The system of claim 15, wherein the server is further configured to encode each of the plurality of video segments using a corresponding target bit rate of the plurality of target bit rates.

### Claim 17 (depends on 16)

The system of claim 16, wherein the server is further configured to transmit each of the plurality of encoded video segments to the computing device over the network.

### Claim 18 (depends on 17)

The system of claim 17, wherein the computing device is configured to decode each of the plurality of encoded video segments, generate a decoded video and present the decoded video on a display.

### Claim 19 (depends on 15)

The system of claim 15, wherein the computing device is a television.

### Claim 20 (depends on 10)

The system of claim 10, wherein the server is further configured to in response to determining that there is no critical point, generate a plurality of target bit rates based on the first quality levels of each of the plurality of video segments.
