# US 11,444,999 B2 · Iterative techniques for generating multiple encoded versions of a media title

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

- Number: US 11,444,999 B2
- Document ID: US11444999B2
- Status: Granted
- Kind: B2
- Application number: 16/987,331
- Filed: 2020-08-06
- Published: 2020-11-19
- Granted: 2022-09-13
- Earliest claimed: 2017-02-23
- Assignees: Netflix, Inc.
- Applicants: Netflix, Inc.
- Inventors: Ioannis Katsavounidis; Anne Aaron; Jan De Cock
- Web page: https://patentgrep.com/patent/US11444999B2

## CPC

- H04L 65/70: Media network packetisation
- H04L 65/61: for supporting one-way streaming services, e.g. Internet radio
- H04L 65/612: for unicast
- H04L 65/765: {intermediate}
- H04N 19/115: Selection of the code volume for a coding unit prior to coding
- H04N 19/124: Quantisation
- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/146: Data rate or code amount at the encoder output
- H04N 19/147: according to rate distortion criteria (rate-distortion as a criterion for motion estimation H04N19/567)
- H04N 19/179: the unit being a scene or a shot
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

In various embodiments, an iterative encoding application generates shot encode points based on a first set of encoding points and a first shot sequence associated with a media title. The iterative encoding application performs convex hull operations across the shot encode points to generate a first convex hull. Subsequently, the iterative encoding application generates encoded media sequences based on the first convex hull and a second convex hull that is associated with both a second shot sequence associated with the media title and a second set of encoding points. The iterative encoding application determines a first optimized encoded media and a second optimized encoded media sequence from the encoded media sequences based on, respectively, a first target metric value and a second target metric value for a media metric. Portions of the optimized encoded media sequences are subsequently streamed to endpoint devices during playback of the media title.

## Claims

### Claim 1

A computer-implemented method for generating multiple encoded versions of a source video sequence, the method comprising:
generating a first global convex hull of video encode points based on a first set of encoded shot sequences associated with a first shot sequence that is included in the source video sequence and a second set of encoded shot sequences associated with a second shot sequence that is included in the source video sequence;
determining a first target encoded video sequence based on the first global convex hull and a first target metric value for a media metric; and
determining a second target encoded video sequence based on the first global convex hull and a second target metric value for the media metric,
wherein at least one of the first target encoded video sequence or the second target encoded video sequence is subsequently streamed to a client device for playback.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
computing at least a first encoding point based on the first global convex hull and a third target metric value for the media metric;
generating a second global convex hull of video encode points based on the at least the first encoding point, the first set of encoded shot sequences, and the second set of encoded shot sequences; and
generating a third target encoded video sequence based on the second global convex hull and the third target metric value.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein generating the first global convex hull comprises:
generating a first convex hull of shot encode points based on the first set of encoded shot sequences;
generating a second convex hull of shot encode points based on the second set of encoded shot sequences; and
computing a first video encode point to be included in the first global convex hull based on a first shot encode point included in the first convex hull and a second shot encode point included in the second convex hull.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein generating the first global convex hull comprises:
generating a first convex hull that includes at least a first shot encode point and a second shot encode point based on the first set of encoded shot sequences;
computing a first slope value between the first shot encode point and the second shot encode point; and
computing a first video encode point to be included in the first global convex hull based on the first slope value.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein determining the first target encoded video sequence comprises:
determining a first video encode point based on a plurality of metric values for the media metric and the first target metric value, wherein each metric value included in the plurality of metric values is associated with a different video encode point included in the first global convex hull; and
determining the first target encoded video sequence based on the first video encode point.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the first target encoded video sequence comprises a first encoded shot sequence that is included in the first set of encoded shot sequences and a second encoded shot sequence that is included in the second set of encoded shot sequences.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein each video encode point included in the first global convex hull is associated with both a bitrate and a value for either a distortion metric or a visual quality metric.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising encoding the first shot sequence using each encoding point included in a first plurality of encoding points to generate the first set of encoded shot sequences.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining a first video encode point from the first global convex hull based on a third target metric value for the media metric;
determining a first shot encode point that is included in both the first video encode point and a first convex hull of shot encode points that is associated with the first set of encoded shot sequences;
computing a first encoding point based on the first shot encode point and a second shot encode point included in the first convex hull; and
generating a third target encoded video sequence based on the first encoding point and the third target metric value.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein computing the first encoding point comprises performing one or more polynomial interpolation operations based on a first value for an encoding parameter that is associated with the first shot encode point and a second value for the encoding parameter that is associated with the second shot encode point.

### Claim 11

One or more non-transitory computer readable media including instructions that, when executed by one or more processors, cause the one or more processors to generate multiple encoded versions of a source video sequence by performing the steps of:
generating a first global convex hull of video encode points based on the source video sequence;
determining a first target encoded video sequence based on the first global convex hull; and
determining a second target encoded video sequence based on the first global convex hull,
wherein at least one of the first target encoded video sequence or the second target encoded video sequence is subsequently streamed to a client device for playback.

### Claim 12 (depends on 11)

The one or more non-transitory computer readable media of claim 11, further comprising:
computing a first encoding point based on the first global convex hull;
encoding a first shot sequence included in the source video sequence using the first encoding point to generate a first encoded shot sequence; and
generating a third target encoded video sequence based on the first encoded shot sequence.

### Claim 13 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein generating the first global convex hull comprises:
generating a plurality of convex hulls of shot encode points based on a plurality of sets of encoded shot sequences, wherein each convex hull included in the plurality of convex hulls is associated with a different shot sequence included in the source video sequence; and
computing the first global convex hull based on the plurality of convex hulls.

### Claim 14 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein generating the first global convex hull comprises:
generating a first convex hull that includes at least a first shot encode point and a second shot encode point;
computing a first slope value between the first shot encode point and the second shot encode point; and
computing a first video encode point to be included in the first global convex hull based on the first slope value.

### Claim 15 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein determining the first target encoded video sequence comprises:
determining a first video encode point based on a plurality of metric values for a media metric, wherein each metric value included in the plurality of metric values is associated with a different video encode point included in the first global convex hull; and
determining the first target encoded video sequence based on the first video encode point.

### Claim 16 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the first target encoded video sequence includes at least two encoded shot sequences that are associated with different encoding points.

### Claim 17 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein each video encode point included in the first global convex hull is associated with both a bitrate and a value for either a distortion metric or a visual quality metric.

### Claim 18 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein generating the first global convex hull comprises generating the first global convex hull based on a first set of encoded shot sequences associated with a first shot sequence that is included in the source video sequence, further comprising encoding the first shot sequence using each encoding point included in a first plurality of encoding points to generate the first set of encoded shot sequences.

### Claim 19 (depends on 11)

The one or more non-transitory computer readable media of claim 11, further comprising:
determining a first video encode point from the first global convex hull;
determining a first shot encode point that is included in both the first video encode point and a first convex hull of shot encode points that is associated with a first set of encoded shot sequences associated with a first shot sequence included in the source video sequence;
computing a first encoding point based on the first shot encode point and a second shot encode point included in the first convex hull; and
generating a third target encoded video sequence based on the first encoding point.

### Claim 20

A system comprising:
one or more memories storing instructions; and
one or more processors coupled to the one or more memories that, when
executing the instructions, perform the steps of:
generating a first global convex hull of video encode points based on the source video sequence;
determining a first target encoded video sequence based on the first global convex hull; and
determining a second target encoded video sequence based on the first global convex hull,
wherein at least one of the first target encoded video sequence or the second target encoded video sequence is subsequently streamed to a client device for playback.
