IP Library Granted Patent US 7,477,692
Granted Patent B2
US 7,477,692 · App. 11/610,173 · Granted Jan 13, 2009

Video encoding for seamless splicing between encoded video streams

Assignee: Tut Systems, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,477,692
App. No.
11/610,173
Granted
Jan 13, 2009
Kind
B2
Abstract

A method of splicing video content from a secondary encoded video stream into a primary encoded video stream, the method including the steps of identifying a splice out-time t out and a splice in-time t in , at least T time after t out , in the primary stream; causing the fullness of primary encoder's virtual buffer to be less than XB, where X is greater than 0 and less than 1, at the first decode times after t out and t in ; encoding the secondary stream such that an initial coded picture is transmitted in no more than B/(XR) time, and encoding the second stream such that, at a final coded picture's decode time, the fullness of the secondary encoder's virtual buffer is less than XB; and replacing video content of the primary stream from t out through t out +T, with the video data of the second stream.

Claims (47)

1. A method of temporarily replacing video content from a first encoded video transport stream with video content from a second encoded video transport stream, the first and second streams being transmitted at a peak bit rate R and respectively including video data representing first and second series of coded pictures, data representing first and second reference clocks interspersed with the coded picture data, and data representing a decoding time for each coded picture, relative to the respective reference clock, the second series of coded pictures beginning with an initial coded picture and ending with a final coded picture, the second series being of duration T relative to the second reference clock, the method comprising:

A) while encoding the first video stream by a first video encoder relative to the first reference clock:

maintaining a first virtual buffer for tracking the fullness of a first hypothetical decoder's coded picture buffer (CPB) of size B receiving the first stream,

at a first time, identifying a splice-out time t out occurring temporally after the first time and occurring in the first stream between video data representing a first coded picture and video data representing an immediately succeeding second coded picture,

between the first time and the splice-out time, encoding the first stream such that, at the first coded picture's decode time, the fullness of the first virtual buffer is less than XB, where X is greater than zero and less than 1,

at a second time, identifying a splice-in time t in occurring temporally at least T time after the splice-out time and occurring in the first stream between video data representing a third coded picture and video data representing an immediately succeeding fourth coded picture, and

between the second time and the splice-in time, encoding the first encoded video transport stream such that, at the third picture's decode time, the fullness of the first virtual buffer is less than XB,

B) while encoding the second stream by a second video encoder relative to the second reference clock, the second video encoder having a second CPB of at most size B:

maintaining a second virtual buffer for tracking the fullness of a second hypothetical decoder's coded picture buffer of size B receiving the second stream,

encoding the second stream such that the video data representing the initial coded picture is transmitted in no more than B/(XR) time, and

encoding the second stream such that, at the final coded picture's decode time, the fullness of the second virtual buffer is less than XB, and

C) replacing the video data in the first stream from t out through t out +T, relative to the first reference clock, with the video data of the second stream from the initial picture through the final picture.

2. A method according to claim 1 , wherein the method further comprises:

while encoding the first stream, inserting a marker in the first stream between the first time and the splice-out time,

monitoring the first stream for the marker, and

upon receiving the marker, sending a notification signal to a source of the second stream, the notification signal causing the source to provide the second stream, and

wherein the marker is placed at a point in the first stream such that the second stream will be provided no later than the splice-out time.

3. A method according to claim 1 , wherein X equals ½, the second coded picture is encoded independently of all other coded pictures, all coded pictures subsequent to the second coded picture are encoded independently of all coded pictures that preceded the second coded picture, the fourth coded picture is encoded independently of all other coded pictures, and all coded pictures subsequent to the fourth coded picture are encoded independently of all coded pictures that preceded the fourth coded picture.

4. A method according to claim 1 , the method further comprising encoding the second stream prior to encoding the first stream and storing the second stream in a storage device.

5. A method according to claim 4 , wherein the method further comprises:

while encoding the first stream, between the first time and the splice-out time, inserting a marker in the first stream,

monitoring the first stream for the marker, and

upon receiving the marker, sending a notification signal to the storage device, the notification signal causing the storage device to transmit the second stream, and

wherein the marker is placed at a point in the first stream such that the second stream will be transmitted no later than the splice-out time.

6. A method according to claim 5 , wherein the second stream is one of a plurality of encoded video streams stored on the storage device, each of the plurality of encoded video streams having been encoded according to step B, and the method further comprises providing at least one selection parameter to the storage device and selecting one of the plurality of encoded video streams as the second stream, the selection being at least partially determined by the selection parameter.

7. A method according to claim 6 , wherein at least one selection parameter provided by the splicer relates to a destination of the first stream.

8. A method according to claim 1 , wherein step A further comprises:

for each of a plurality of times relative to the first reference clock, identifying a potential splice-out time occurring temporally after each of the plurality of times and occurring in the first stream between video data representing a potential first coded picture and video data representing an immediately succeeding, potential second coded picture, and

between each of the plurality of times and the respective potential splice-out time, encoding the first stream such that, at the decode time of each of the potential first coded pictures, the fullness of the first virtual buffer is less than XB, and

the method further comprises:

selecting one of the potential second pictures to be the second picture of step C.

9. A method according to claim 8 , wherein each potential second coded picture is encoded independently of all other coded pictures, all coded pictures subsequent to the potential second coded pictures are encoded independently of all coded pictures that preceded each potential second coded picture, each potential fourth coded picture is encoded independently of all other coded pictures, and all coded pictures subsequent to the potential fourth coded pictures are encoded independently of all coded pictures that preceded each potential fourth coded picture.

10. A method according to claim 9 , wherein each potential second coded picture is encoded independently of all other coded pictures and all subsequent coded pictures are encoded independently of all coded pictures that preceded each potential second coded picture.

11. A method according to claim 1 , wherein step A further comprises:

for each of a plurality of times relative to the first reference clock, identifying a potential splice-in time occurring temporally after each of the plurality of times and occurring in the first stream between video data representing a potential third coded picture and video data representing an immediately succeeding, potential fourth coded picture, wherein each potential fourth coded picture is encoded independently of all other coded pictures and all coded pictures subsequent to each potential fourth coded picture are encoded independently of all coded pictures that precede the respective potential fourth coded picture, and

between each of the plurality of times and the respective potential splice-in time, encoding the first stream such that, at the decode time of each of the potential third coded pictures' decode time, the fullness of the first virtual buffer is less than XB, and

the method further comprises:

selecting one of the potential fourth pictures to be the fourth picture of step C.

12. A method according to claim 1 , wherein if tin occurs more than T time after t out , the method further comprises appending video data representing replacement coded pictures to the second stream for t in -t out -T time after the final coded picture.

13. A method according to claim 1 , wherein the second encoded video stream is an encoded version of a television commercial.

14. A method according to claim 1 , wherein the second encoded video stream is an encoded version of at least two television commercials.

15. A method according to claim 1 , wherein step A further comprises encrypting the video data of the first encoded video stream, wherein each coded picture of the first encoded video stream is encrypted independently of the other coded pictures of the first encoded video stream.

16. A method according to claim 1 , wherein step B further comprises using a hashing function to generate a hash value for the second encoded video stream and inserting the hash value into the second stream.

17. A method according to claim 1 , wherein the first video encoder is a stand alone video encoder.

18. A method according to claim 1 , wherein the first video encoder is an encoding stage of a transcoder.

19. A method according to claim 1 , wherein the first video encoder is an encoding stage of a transrater.

20. A method according to claim 1 , wherein X equals ½.

Assignments (12)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 051713 FRAME: 0524. ASSIGNOR(S) HEREBY CONFIRMS THE CERTIFICATE OF MERGER . Recorded Jul 1, 2022
From: TUT SYSTEMS, INC.
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 060561/0347 →
MERGER AND CHANGE OF NAME Recorded Jul 1, 2022
From: GENERAL INSTRUMENT CORPORATION; ARRIS TECHNOLOGY, INC.
To: ARRIS TECHNOLOGY, INC.
Reel/Frame 060571/0996 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2022
From: ARRIS TECHNOLOGY, INC.
To: ARRIS ENTERPRISES, INC.
Reel/Frame 060791/0583 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
CHANGE OF NAME Recorded Feb 4, 2020
From: ARRIS ENTERPRISES, INC.
To: ARRIS ENTERPRISES LLC
Reel/Frame 051797/0858 →
MERGER Recorded Feb 4, 2020
From: TUT SYSTEMS, INC.
To: MOTLEY, DENISE
Reel/Frame 051713/0524 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 8, 2019
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS SOLUTIONS, INC.; ARRIS KOREA, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; 4HOME, INC.; ACADIA AIC, INC.; AEROCAST, INC.; BROADBUS TECHNOLOGIES, INC.; GENERAL INSTRUMENT CORPORATION; GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC.; GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC.; IMEDIA CORPORATION; JERROLD DC RADIO, INC.; LEAPSTONE SYSTEMS, INC.; MODULUS VIDEO, INC.; MOTOROLA WIRELINE NETWORKS, INC.; NETOPIA, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; QUANTUM BRIDGE COMMUNICATIONS, INC.; SETJAM, INC.; SUNUP DESIGN SYSTEMS, INC.; UCENTRIC SYSTEMS, INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC; CCE SOFTWARE LLC; THE GI REALTY TRUST 1996
Reel/Frame 048825/0294 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2015
From: ARRIS TECHNOLOGY, INC
To: ARRIS ENTERPRISES, INC.
Reel/Frame 037328/0341 →
SECURITY AGREEMENT Recorded May 28, 2013
From: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS SOLUTIONS, INC.; ARRIS KOREA, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS; BIGBAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; 4HOME, INC.; ACADIA AIC, INC.; AEROCAST, INC.; BROADBUS TECHNOLOGIES, INC.; GENERAL INSTRUMENT CORPORATION; GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC.; GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC.; IMEDIA CORPORATION; JERROLD DC RADIO, INC.; LEAPSTONE SYSTEMS, INC.; MODULUS VIDEO, INC.; MOTOROLA WIRELINE NETWORKS, INC.; NETOPIA, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; QUANTUM BRIDGE COMMUNICATIONS, INC.; SETJAM, INC.; SUNUP DESIGN SYSTEMS, INC.; UCENTRIC SYSTEMS, INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC; CCE SOFTWARE LLC; THE GI REALTY TRUST 1996
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 030498/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2007
From: SCHWARTZ, MAYER D.; JENSEN, JEFFREY KIM
To: TUT SYSTEMS, INC.
Reel/Frame 018877/0171 →
Continuity (2)
Provisional Application 6075089300 · Dec 16, 2005
Related Publication 20070140358A1 · Jun 21, 2007