# US 12,015,794 B2 · Method and apparatus for content-driven transcoder coordination

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

- Number: US 12,015,794 B2
- Document ID: US12015794B2
- Status: Granted
- Kind: B2
- Application number: 17/538,601
- Filed: 2021-11-30
- Published: 2023-06-01
- Granted: 2024-06-18
- Earliest claimed: 2021-11-30
- Assignees: Comcast Cable Communications, LLC
- Applicants: Comcast Cable Communications, LLC
- Inventors: Alexander Giladi
- Web page: https://patentgrep.com/patent/US12015794B2

## CPC

- H04N 19/40: using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
- 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/149: by estimating the code amount by means of a model, e.g. mathematical model or statistical model
- H04N 19/172: the region being a picture, frame or field
- H04N 19/463: by compressing encoding parameters before transmission
- H04N 19/65: using error resilience
- H04N 19/137: Motion inside a coding unit, e.g. average field, frame or block difference
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/51: Motion estimation or motion compensation
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems and methods are described herein for coordinating transcoders. Content may be received from different sources to be transcoded. Each transcoder of a plurality of transcoders may send data associated with content to each other to coordinate the plurality of transcoders. The data may indicate timing information for the encoded content and features of the content such as, for example, color, frame similarity, or frame type. The transcoders, while outputting encoded content, may coordinate either directly or via a broker. The transcoders may coordinate in order to synchronize their output so that frames, that may be received by each transcoder at different times, are aligned based on the timing information. The coordination and synchronization may improve error resilience. In the case of a transcoder/encoder or a site failure, there may be a seamless transition to a different transcoder/encoder and no reduction in performance because of the time alignment.

## Claims

### Claim 1

A method comprising:
receiving, from a video source, a first plurality of frames;
receiving data associated with a second plurality of frames encoded by one or more transcoders, wherein the data indicates, for each frame of the second plurality of frames, a frame type and timing information;
determining, based on the data, a degree of similarity between the first plurality of frames and the second plurality of frames, wherein the degree of similarity indicates one or more matching frame types;
synchronizing, based on the one or more matching frame types and the timing information, the first plurality of frames with the second plurality of frames; and
encoding, based on the synchronizing, the first plurality of frames to contain the timing information.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
sending of the encoded first plurality of frames to a computing device for playback.

### Claim 3 (depends on 1)

The method of claim 1, wherein the receiving data comprises:
receiving, from a server operating as a broker between the one or more transcoders, the data, or
receiving, from the one or more transcoders, the data.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving information indicating that the one or more transcoders are encoding a degraded input channel and are discontinuing encoding of the second plurality of frames; and
causing, based on the information, sending of the encoded first plurality of frames to a second computing device for playback.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first plurality of frames and the second plurality of frames are associated with different input channels.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data comprises statistical information resulting from motion estimation, and wherein the statistical information comprises at least one of:
a measure of similarity between consecutive frames of the plurality of frames,
a sum of absolute transformed differences (SATD),
a sum of absolute differences (SAD),
a histogram of oriented gradients (HOG),
a quantized HOG,
a histogram of edges, or
a quantized histogram of edges.

### Claim 7 (depends on 1)

The method of claim 1, wherein the timing information comprises a timestamp, and wherein the synchronizing the first plurality of frames comprises:
synchronizing, based on the matching and the timing information, a timestamp for each frame of the first plurality of frames to correspond with a timestamp in a frame of the second plurality of frames.

### Claim 8 (depends on 1)

The method of claim 1, wherein each transcoder of the plurality of transcoders is located at a different data center or associated with a different instance in a cloud platform.

### Claim 9 (depends on 1)

The method of claim 1, wherein the one or more matching frame types indicate at least one of: a similarity between one or more motion vectors, a matching color, or a matching resolution.

### Claim 10

A method comprising:
receiving data associated with a first plurality of frames encoded by one or more transcoders, wherein the data indicates, for each frame of the first plurality of frames, a frame type and timing information;
determining, based on the data and during encoding of a second plurality of frames, a degree of similarity between the first plurality of frames and the second plurality of frames, wherein the degree of similarity indicates one or more matching content features;
synchronizing, based on the one or more matching content features and the timing information, the second plurality of frames with the first plurality of frames; and
encoding, based on the synchronizing, the second plurality of frames to contain the timing information.

### Claim 11 (depends on 10)

The method of claim 10, wherein the receiving data comprises:
receiving, from a server operating as a broker between the one or more transcoders, the data, or
receiving, from the one or more transcoders, the data.

### Claim 12 (depends on 10)

The method of claim 10, further comprising:
receiving information indicating that the one or more transcoders are encoding a degraded input channel and are discontinuing encoding of the first plurality of frames.

### Claim 13 (depends on 10)

The method of claim 10, wherein the data comprises statistical information resulting from motion estimation, and wherein the statistical information comprises at least one of:
a measure of similarity between consecutive frames of the plurality of frames,
a sum of absolute transformed differences (SATD),
a sum of absolute differences (SAD),
a histogram of oriented gradients (HOG),
a quantized HOG,
a histogram of edges, or
a quantized histogram of edges.

### Claim 14 (depends on 10)

The method of claim 10, wherein the timing information comprises a timestamp, and wherein the synchronizing the first plurality of frames comprises:
synchronizing, based on the matching and the timing information, a timestamp for each frame of the second plurality of frames to correspond with a timestamp in a frame of the first plurality of frames.

### Claim 15 (depends on 10)

The method of claim 10, wherein each transcoder of the plurality of transcoders is located at a different data center or associated with a different instance in a cloud platform.

### Claim 16 (depends on 10)

The method of claim 10, wherein the one or more matching content features comprise at least one of: a frame type, a similarity between one or more motion vectors, a color, or a resolution.

### Claim 17

A method comprising:
receiving data associated with a first plurality of frames encoded by one or more transcoders, wherein the data indicates, for each frame of the first plurality of frames, a frame type and timing information;
determining, based on the data and during encoding of a second plurality of frames, a degree of similarity between the first plurality of frames and the second plurality of frames, wherein the degree of similarity indicates one or more matching content features;
synchronizing, based on the matching and the timing information, a timestamp for each frame of the second plurality of frames to correspond with a timestamp in a frame of the first plurality of frames; and
encoding, based on the synchronizing, the second plurality of frames.

### Claim 18 (depends on 17)

The method of claim 17, wherein each transcoder of the plurality of transcoders is located at a different data center or associated with a different instance in a cloud platform.

### Claim 19 (depends on 17)

The method of claim 17, wherein the one or more matching content features comprise at least one of: a frame type, a similarity between one or more motion vectors, a color, or a resolution.

### Claim 20 (depends on 17)

The method of claim 17, wherein the data comprises statistical information resulting from motion estimation, and wherein the statistical information comprises at least one of:
a measure of similarity between consecutive frames of the plurality of frames,
a sum of absolute transformed differences (SATD),
a sum of absolute differences (SAD),
a histogram of oriented gradients (HOG),
a quantized HOG,
a histogram of edges, or
a quantized histogram of edges.
