IP Library Granted Patent US 9,319,753
Granted Patent B2
US 9,319,753 · App. 13/958,477 · Granted Apr 19, 2016

Seamless trick-mode with decreased latency for live transcode streaming

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 9,319,753
App. No.
13/958,477
Granted
Apr 19, 2016
Kind
B2
Abstract

A method for performing trick-mode operations with decreased latency for transcode streaming includes receiving and recording a stream of video data. A single transcoder may transcode the stream of video data and generate output video data in an output buffer following. Segmentation index information may be generated that refers to the output data in the output buffer. Skip-backwards, skip-ahead, and resume requests received from a client device are responded by retrieving transcoded video data from the output buffer or retrieving and transcoding video data from an input storage. A method for performing skip-ahead trick-mode operation with decreased latency may use two transcoders such as two threads of the single transcoder to transcode temporally current content and forward content. The forward content may be associated with a forward time offset with respect to the temporally current content. The transcoded forward content is provided in response to skip-ahead trick mode request.

Claims (65)

1. A method for performing seamless trick-mode operations with decreased latency for transcode streaming, the method comprising:

receiving, from a source, a stream of video data;

recording the stream of video data in an input buffer;

transcoding, by using a single transcoder, the stream of video data and generating output video data in an output buffer; and

responding to a skip-backwards request from a client device by:

retrieving transcoded video data from the output buffer, based on segment request information received from the client device if video data corresponding the segment request information associated with the skip-backwards request are available from the output buffer; and

otherwise, retrieving and transcoding recorded video data from an input storage, wherein the stream of video data comprises input segmentation boundary markers, and generating output video data comprises aligning the output video data with the input segmentation boundary markers of the stream of video data received from the source by inserting random access pictures in the output video data at positions corresponding to the input segmentation boundary markers.

2. The method of claim 1 , further comprising generating segment index information in the input storage, and generating the segmentation index information based on segment boundary information recorded in the input storage, wherein the input storage comprises the input buffer.

3. The method of claim 2 , further comprising:

receiving segment information including a segment identifier from the client device,

determining that the requested segments associated with the skip-backwards request are available from the output buffer, and

retrieving the recorded video data from the input storage further comprises finding the segment information received from the client device from segment boundary information stored in the input storage.

4. The method of claim 2 , further comprising:

responding to a resume request, wherein responding to the resume request comprises:

retrieving, from the output buffer, video data that corresponds to a start of a pause period, if available from the output buffer,

otherwise, retrieving and transcoding video data that corresponds to the start of the pause period from the input storage.

5. The method of claim 2 , further comprising responding to a skip-ahead request, wherein responding to the skip-ahead request comprises:

retrieving transcoded video data associated with the skip-ahead request from the output buffer, based on segment request information received from the client device if transcoded video associated with the skip-ahead request are available from the output buffer; and

otherwise, retrieving and transcoding recorded video data from the input storage.

6. The method of claim 1 , wherein transcoding the stream of video data comprises:

inserting segmentation boundary markers in the stream of video data fed to the transcoder, and

starting a random access picture in the stream of video data where a segmentation boundary marker is encountered, and wherein:

generating output video data comprises lining up segments of the output video data with input video segments in time domain, and

generating segmentation index information is based on random access pictures.

7. The method of claim 2 , wherein the method further comprises recording the stream of video data in the input storage and the input buffer if the source is a live source, wherein the input storage is capable of storing more video data than the input buffer, wherein the input storage comprises a stored source if the source is not a live source.

8. The method of claim 5 , wherein retrieving the transcoded recorded video data associated with the skip-ahead request comprises finding segment information associated with the skip-ahead request, wherein the segment information associated with the skip-ahead request is found from segment boundary information associated with the input storage, and wherein segment information associated with the skip-ahead request comprises a segment identifier advertised to the client device.

9. A device for performing seamless trick-mode operations with decreased latency for transcode streaming, the device comprising:

an input buffer to receive, from a source, and record a stream of video data while generating intended segment boundary information;

a single transcoder to transcode the stream of video data and to generate output video data in an output buffer; and

a controller to:

generate segmentation index information in an output index buffer; and

respond to a skip-backwards request from a client device by:

retrieving transcoded video data from the output buffer, based on segment request information received from the client device if video data corresponding the segment request information associated with the skip-backwards request are available from the output buffer; and

otherwise, retrieving recorded video data from a first storage and causing the single transcoder to transcode the retrieved recorded video data,

wherein the stream of video data comprises input segmentation boundary markers, and the single transcoder is to generate output video data by aligning the output video data with the input segmentation boundary markers of the stream of video data received from the source by inserting random access pictures in the output video data at positions corresponding to the input segmentation boundary markers.

10. The device of claim 9 , wherein the controller is further to generate the segmentation index information based on segment boundary information recorded in the first storage, wherein the first storage comprises the input buffer.

11. The device of claim 10 , wherein:

the segment request information received from the client device comprises a segment identifier,

the controller is further to:

determine that requested segments associated with the skip-backwards request are available from the output buffer, and

retrieve the recorded video data from the first storage.

12. The device of claim 10 , wherein the controller is to respond to a resume request by:

retrieving, from the output buffer, video data that corresponds to a start of a pause period, if available from the output buffer,

otherwise, retrieving video data that corresponds to the start of the pause period from the first storage, and cause the single transcoder to transcode the retrieved video data that corresponds to the start of the pause period.

13. The device of claim 10 , wherein the controller is to respond to a skip-ahead request by:

retrieving transcoded video data associated with the skip-ahead request from the output buffer, based on segment request information received from the client device if transcoded video associated with the skip-ahead request are available from the output buffer; and

otherwise, retrieving recorded video data from the first storage and cause the single transcoder to transcode retrieved recorded video data.

14. The method of claim 13 , wherein the controller is further to retrieve transcoded video segments associated with the skip-ahead request, and wherein segment information associated with the skip-ahead request comprises a segment identifier advertised to the client device.

15. The method of claim 10 , wherein the stream of video data is recorded in the first storage and the input buffer if the source is a live source, wherein the first storage is to store more video data than the input buffer, and wherein the first storage comprises a stored source if the source is not a live source.

16. The device of claim 9 , wherein

the controller is further to insert segmentation boundary markers in the stream of video data fed to the transcoder.

17. The method of claim 16 , wherein the segmentation boundary markers are according to the generated intended segment boundary information when recorded in the input buffer.

18. The method of claim 16 , wherein the single transcoder is to start a random access picture in the stream of video data where a segmentation boundary marker is encountered.

19. The method of claim 16 , wherein the controller is further to generate segmentation index information based on random access pictures, and to line up segments of the output video data with input video segments in time domain.

20. A system for performing seamless trick-mode operations with decreased latency for transcode streaming, the system comprising:

memory to store one or more program modules;

one or more processors coupled to the memory, the one or more processors to execute the one or more program modules to:

receive, from a source, a stream of video data;

record the stream of video data in an input storage;

generate segmentation boundary information in the input storage;

transcode, by using a single transcoder, the stream of video data and generate output video data in an output buffer; and

respond to a skip-backwards request from a client device by:

retrieving transcoded video data from the output buffer, based on segment request information received from the client device if video data corresponding the segment request information associated with the skip-backwards request are available from the output buffer; and

otherwise, retrieving and transcoding recorded video data from a first storage,

wherein the stream of video data comprises input segmentation boundary markers, and generating output video data comprises aligning the output video data with the input segmentation boundary markers of the stream of video data received from the source by inserting random access pictures at positions corresponding to the input segmentation boundary markers.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2013
From: ZHU, HONGTAO; MACINNIS, ALEXANDER GARLAND
To: BROADCOM CORPORATION
Reel/Frame 031065/0574 →