# US 10,375,430 B2 · Method for synchronizing GOPs and IDR-frames on multiple encoders without communication

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

- Number: US 10,375,430 B2
- Document ID: US10375430B2
- Status: Granted
- Kind: B2
- Application number: 15/685,110
- Filed: 2017-08-24
- Published: 2019-02-28
- Granted: 2019-08-06
- Earliest claimed: 2017-08-24
- Assignees: Skitter, Inc.
- Applicants: Skitter, Inc.
- Inventors: Mark Sauer; Robert Saunders
- Web page: https://patentgrep.com/patent/US10375430B2

## CPC

- H04N 21/242: Synchronisation processes, e.g. processing of PCR [Programme Clock References] {(arrangements for synchronising broadcast or distribution via plural systems in broadcast distribution systems H04H20/18)}
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L 65/70: Media network packetisation
- H04N 21/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/23439: {for generating different versions}
- H04N 21/23608: {Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers}
- H04N 21/4305: {Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets (arrangements for synchronising receiver with transmitter by comparing receiver clock with transmitter clock H04L7/0012; arrangements for synchronising receiver with transmitter wherein the receiver takes measures against momentary loss of synchronisation H04L7/0083)}
- H04N 21/4402: involving reformatting operations of video signals for household redistribution, storage or real-time display {(details of conversion of video standards at pixel level H04N7/01; video transcoding H04N19/40; adapting incoming signals to the display format of the display terminal G09G5/005; media handling at the source in data packet switching networks H04L65/764)}
- H04N 21/6437: Real-time Transport Protocol [RTP]
- H04N 21/854: Content authoring
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A video distribution system synchronizes video output streams on multiple encoders without communication therebetween. Each of the encoders is configured to decode a source video content stream into a sequence of uncompressed frames, where each frame in the sequence is marked with an associated presentation time stamp (PTS) clock value. The encoders calculate a number of clock cycles between instantaneous decoder refresh (IDR)-frames. For each frame in the sequence, the encoders calculate a remainder after a division of an associated PTS clock value of a given frame by the number of clock cycles between IDR-frames. The encoders mark each frame in the sequence as an IDR-frame where the corresponding remainder is strictly less than the number of PTS clock cycles per frame and mark a remainder of the frames in the sequence as an internal frame within a group of pictures (GOP) to produce a marked set of video frames. The encoders pass the marked set video frames through a video codec to produce the synchronized video output streams.

## Claims

### Claim 1

A content distribution system, comprising:
an encoder at a headend comprising a processor and computer instructions stored in a non-transitory computer readable storage medium, wherein the processor is configured to execute the instructions to cause the encoder to:
decode a source video content stream into a sequence of uncompressed frames, where each frame in the sequence is marked with an associated presentation time stamp (PTS) clock value;
calculate a number of clock cycles between instantaneous decoder refresh (IDR)-frames;
for each frame in the sequence, calculate a remainder after a division of an associated PTS clock value of a given frame by the number of clock cycles between IDR-frames;
mark each frame in the sequence as an IDR-frame where the corresponding remainder is strictly less than a number of PTS clock cycles per frame and mark a remainder of the frames in the sequence as an internal frame within a group of pictures (GOP) to produce a marked set of video frames;
discard frames in the sequence prior to a first IDR-frame in the marked set of video frames; and
pass the marked set video frames through a video codec to output an output video content stream, wherein the output video content stream has IDR-frames at the same locations as a second output video content stream of a second encoder.

### Claim 2 (depends on 1)

The content distribution system of claim 1, further comprising:
the second encoder comprising a second processor and second computer instructions stored in a non-transitory computer readable storage medium, wherein the second processor is configured to execute the second instructions to cause the second encoder to:
decode the source video content stream into a second sequence of uncompressed frames, where each frame in the second sequence is marked with an associated PTS clock value;
calculate the number of clock cycles between IDR-frames;
for each frame in the second sequence, calculate a remainder after a division of an associated PTS clock value of a given frame by the number of clock cycles between IDR-frames;
mark each frame in the second sequence as an IDR-frame where the corresponding remainder is strictly less than the number of PTS clock cycles per frame and mark a remainder of the frames in the second sequence as an internal frame within a GOP to produce a second marked set of video frames; and
pass the second marked set video frames through a second video codec to output the second output video content stream.

### Claim 3 (depends on 2)

The content distribution system of claim 2, wherein the second output video content stream is identical to the output video content stream.

### Claim 4 (depends on 3)

The content distribution system of claim 3, wherein the encoder and the second encoder are not in communication with one another.

### Claim 5 (depends on 3)

The content distribution system of claim 3, wherein the second encoder is at the headend.

### Claim 6 (depends on 3)

The content distribution system of claim 3, wherein the second encoder is at a location remote from the headend.

### Claim 7 (depends on 1)

The content distribution system of claim 1, further comprising:
a segmentation server configured to receive the output video content streams and generate segments and a playlist for the output video content stream.

### Claim 8 (depends on 1)

The content distribution system of claim 1, further comprising:
a video distribution network between the headend and one or more customer premise equipment, the video distribution network configured to receive the output video content stream and provide the output video content stream to the customer premise equipment.

### Claim 9 (depends on 1)

The content distribution system of claim 1, further comprising:
a receiver at the headend configured to receive the source video content stream.

### Claim 10 (depends on 1)

The content distribution system of claim 1, wherein the source video content stream is an MPEG-2 transport stream, a real time streaming protocol (RTSP) stream, a real time messaging protocol (RTMP) stream, an HTTP Live Streaming (HLS) stream, or a moving picture experts group—dynamic adaptive streaming over HTTP (MPEG-DASH) stream.

### Claim 11

A method of synchronizing video output streams on multiple encoders without communication therebetween, the method comprising:
decoding, at each of the encoders, a source video content stream into a sequence of uncompressed frames, where each frame in the sequence is marked with an associated presentation time stamp (PTS) clock value;
calculating, at each of the encoders, a number of clock cycles between instantaneous decoder refresh (IDR)-frames;
for each frame in the sequence, calculating, at each of the encoders, a remainder after a division of an associated PTS clock value of a given frame by the number of clock cycles between IDR-frames;
marking, at each of the encoders, each frame in the sequence as an IDR-frame where the corresponding remainder is strictly less than the number of PTS clock cycles per frame and marking a remainder of the frames in the sequence as an internal frame within a group of pictures (GOP) to produce a marked set of video frames;
discarding, by each of the encoders, frames in the sequence prior to a first IDR-frame in the marked set of video frames; and
passing the marked set video frames through a video codec to produce the synchronized video output streams.

### Claim 12 (depends on 11)

The method of claim 11, wherein the synchronized video output streams from each of the encoders is identical.

### Claim 13 (depends on 11)

The method of claim 11, wherein the encoders are located at the same headend.

### Claim 14 (depends on 11)

The method of claim 11, wherein the encoders are located at different headends.

### Claim 15 (depends on 11)

The method of claim 11, further comprising:
generating, by a segmentation server in communication with one of the encoders, segments and a playlist for the video output stream by the one of the encoders.

### Claim 16 (depends on 11)

The method of claim 11, further comprising:
distributing, via a video distribution network between the encoders and a plurality of customer premise equipment, the synchronized video output streams from the encoders to the plurality of customer premise equipment.

### Claim 17 (depends on 11)

The method of claim 11, further comprising:
receiving, by receivers in communication with the encoders, the source video content stream.

### Claim 18 (depends on 11)

The method of claim 11, wherein the source video content stream is an MPEG-2 transport stream, a real time streaming protocol (RTSP) stream, a real time messaging protocol (RTMP) stream, an HTTP Live Streaming (HLS) stream, or a moving picture experts group—dynamic adaptive streaming over HTTP (MPEG-DASH) stream.
