# US 10,313,719 B2 · Video stream splicing

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

- Number: US 10,313,719 B2
- Document ID: US10313719B2
- Status: Granted
- Kind: B2
- Application number: 15/383,672
- Filed: 2016-12-19
- Published: 2017-06-22
- Granted: 2019-06-04
- Earliest claimed: 2015-12-22
- Assignees: Harmonic, Inc.
- Applicants: Harmonic, Inc.
- Inventors: Eric Le Bars; Samuel Vermeulen; Benoit Oger
- Web page: https://patentgrep.com/patent/US10313719B2

## CPC

- H04N 21/2365: Multiplexing of several video streams
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/177: the unit being a group of pictures [GOP]
- H04N 19/50: using predictive coding (H04N19/61 takes precedence)
- H04N 21/23424: {involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement}
- H04N 21/2387: Stream processing in response to a playback request from an end-user, e.g. for trick-play
- H04N 21/4383: {Accessing a communication channel}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N 21/8547: involving timestamps for synchronizing content
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video splicer combines a first video stream, encoded in accordance with a block based coding algorithm, with a second video stream. A header processor detects a key position picture in each of a plurality of sequential GOPs of the first stream and determines a presentation time for each key position picture in each GOP in the first stream. A timing mapper identifies a respective image in the second stream having a presentation time corresponding to a key position picture of the first stream. An encoder encodes the second stream in accordance with the block based coding algorithm. A new GOP is started with the respective image in the second stream having a presentation time corresponding to the key position picture of the first stream. A switcher switches between outputting the first stream and the encoded second stream by a signal from the timing mapper.

## Claims

### Claim 1

A video splicer apparatus for combining a first video stream with a second video stream, said video splicer comprising:
a header processor detecting a key position picture in each of a plurality of sequential groups of pictures of said first video stream and to determine a presentation time of each said key position picture in each group of pictures in said plurality of sequential groups of pictures of said first video stream, wherein said first video stream is encoded in accordance with a block based coding algorithm;
a timing mapper identifying a respective image in said second video stream having a presentation time corresponding to one said key position picture of said first video stream;
an encoder encoding said second video stream in accordance with said block based coding algorithm, whereby a new group of pictures is started with said respective image in said second video stream having a presentation time corresponding to said key position picture of said first video stream; and
a switcher switching between outputting said first video stream or said encoded second video stream, wherein said switching is triggered by a signal from said timing mapper indicating the start of a new group of pictures in a selected stream, wherein said selected stream may one or more of said first video stream and said encoded second video stream.

### Claim 2 (depends on 1)

The video splicer apparatus of claim 1, wherein said key position picture is a first picture in each group of pictures with respect to playback timing.

### Claim 3 (depends on 1)

The video splicer apparatus of claim 1, wherein said key position picture is a last picture in each group of pictures with respect to playback timing.

### Claim 4 (depends on 1)

The video splicer apparatus of claim 1, wherein said timing mapper tags said respective image in said first video stream, and wherein said switcher is coupled to said timing mapper and switches between outputting said encoded first video stream or said second video stream based on said tagging.

### Claim 5 (depends on 1)

The video splicer apparatus of claim 1, wherein said header processor decodes headers of said first video stream and reconstitutes the playback order of the images of said first video stream to determine a playback timing for each said image.

### Claim 6 (depends on 1)

The video splicer apparatus of claim 1, wherein the header processor receives a transition time at which said switcher is to switch from outputting said encoded first video stream or said second video stream, and determines whether said transition time coincides with the start of a new group of pictures in said first video stream, wherein said video splicer further comprises an auxiliary block based decoder that decodes said group of pictures of said first video stream during which said transition time occurs and an auxiliary block based encoder that re-encodes the group of pictures during which said transition time of said first video stream output by said auxiliary block based decoder occurs, as a first split group of pictures and a second split group of pictures, and wherein the first split group of pictures ends and the second split group of pictures starts at said specified transition time.

### Claim 7

A method for combining a first video stream with a second video stream, comprising:
detecting a key position picture in a group of pictures of said first video stream, wherein said first video stream is encoded in accordance with a block based coding algorithm;
determining a first presentation time of said key position picture;
identifying a respective image in said second video stream having a second presentation time corresponding to said first presentation time;
encoding said second video stream in accordance with said block based coding algorithm, whereby a new group of pictures is started with said respective image in said second video stream having the second presentation time; and
switching between outputting said first video stream and said encoded second video stream, wherein said switching occurs to coincide with a new group of pictures in whichever stream is selected.

### Claim 8 (depends on 7)

The method of claim 7, wherein said key position picture is a first picture in each group of pictures with respect to playback timing.

### Claim 9 (depends on 7)

The method of claim 7, wherein said key position picture is a last picture in each group of pictures with respect to playback timing.

### Claim 10 (depends on 7)

The method of claim 7, wherein said step of identifying an image in said second video stream having a presentation time corresponding to said key position picture of said first video signal comprises tagging said image in said second video stream, and wherein said step of switching between outputting said encoded first video stream or said second video stream is carried out with reference to said tagging.

### Claim 11 (depends on 7)

The method of claim 7, wherein detecting the key position picture in said group of pictures of said first video stream comprises decoding a header of said first video stream and reconstituting the playback order of the images of said first video stream to determine a playback timing for said image.

### Claim 12 (depends on 7)

The method of claim 7, further comprising:
specifying a transition time at which said step of switching between outputting said first video stream or said encoded second video stream should occur; and
when said transition time does not coincide with the start of a new group of pictures in said first video stream, decoding the group of pictures of said first video stream during which said transition time occurs and re-encoding said group of pictures of said first video stream during which said transition time occurs as a first split group of pictures and a second split group of pictures, wherein the first split group of pictures ends and the second split group of pictures starts at said specified transition time.

### Claim 13 (depends on 7)

The method of claim 7, further comprising:
detecting a key position picture in a group of pictures of said first video stream;
identifying a respective image in said second video stream at the first presentation time.

### Claim 14

A non-transitory computer-readable storage medium storing one or more sequences of instructions for combining a first video stream with a second video stream, wherein execution of the one or more sequences of instructions cause:
detecting a key position picture in a group of pictures of said first video stream, wherein said first video stream is encoded in accordance with a block based coding algorithm;
determining a first presentation time of said key position picture;
identifying a respective image in said second video stream having a second presentation time corresponding to said first presentation time;
encoding said second video stream in accordance with said block based coding algorithm, whereby a new group of pictures is started with said respective image in said second video stream having the second presentation time; and
switching between outputting said first video stream and said encoded second video stream, wherein said switching occurs to coincide with a new group of pictures in whichever stream is selected.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein said key position picture is a first picture in each group of pictures with respect to playback timing.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein said key position picture is a last picture in each group of pictures with respect to playback timing.

### Claim 17 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein said step of identifying an image in said second video stream having a presentation time corresponding to said key position picture of said first video signal comprises tagging said image in said second video stream, and wherein said step of switching between outputting said encoded first video stream or said second video stream is carried out with reference to said tagging.

### Claim 18 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein detecting the key position picture in said group of pictures of said first video stream comprises decoding a header of said first video stream and reconstituting the playback order of the images of said first video stream to determine a playback timing for said image.

### Claim 19 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein execution of the one or more sequences of instructions further cause:
specifying a transition time at which said step of switching between outputting said first video stream or said encoded second video stream should occur; and
when said transition time does not coincide with the start of a new group of pictures in said first video stream, decoding the group of pictures of said first video stream during which said transition time occurs and re-encoding said group of pictures of said first video stream during which said transition time occurs as a first split group of pictures and a second split group of pictures, wherein the first split group of pictures ends and the second split group of pictures starts at said specified transition time.

### Claim 20 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, wherein execution of the one or more sequences of instructions further cause:
detecting a key position picture in a group of pictures of said first video stream;
identifying a respective image in said second video stream at the first presentation time.
