IP Library Granted Patent US 9,900,629
Granted Patent B2
US 9,900,629 · App. 13/800,905 · Granted Feb 20, 2018

Codec techniques for fast switching with intermediate sequence

Inventors: Yeping Su (Sunnyvale, CA); Chris Y. Chung (Sunnyvale, CA); Xiaosong Zhou (Campbell, CA); James Oliver Normile (Los Altos, CA); Hsi-Jung Wu (San Jose, CA); Thomas Jansen (Cupertino, CA); Hyeonkuk Jeong (Saratoga, CA); Joe S. Abuan (San Jose, CA); Douglas Scott Price (San Jose, CA)
Assignee: APPLE INC.
H04N21/234372H04N21/2381H04N21/23439H04N21/4384H04N21/44004
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,900,629
App. No.
13/800,905
Granted
Feb 20, 2018
Kind
B2
Abstract

A video streaming method for transitioning between multiple sequences of coded video data may include receiving and decoding transmission units from a first sequence of coded video data. In response to a request to transition to a second sequence of coded video data, the method may determine whether a time to transition to the second sequence of coded video data can be reduced by transitioning to the second sequence of coded video data via an intermediate sequence of coded video data. If the time can be reduced, the method may include receiving at least one transmission unit from an intermediate sequence of coded video data that corresponds to the request to transition, decoding the transmission unit from the intermediate sequence, and transitioning from the first sequence to the second sequence via the decoded transmission unit from the intermediate sequence.

Claims (63)

1. A video streaming method, comprising:

receiving, at a client device, transmission units from a first sequence of coded video data;

decoding, at the client device, the transmission units from the first sequence;

in response to a request at the client device to transition to a second sequence of coded video data, determining from a manifest file, at the client device, whether a time to transition to the second sequence of coded video data can be reduced at the client device by transitioning to the second sequence of coded video data via an intermediate sequence of coded video data;

if it is determined by the client device that the time can be reduced:

requesting, from the client device, at least one transmission unit from the intermediate sequence of coded video data that corresponds to the request to transition,

receiving and decoding the at least one transmission unit from the intermediate sequence at the client device, and

transitioning from the first sequence to the second sequence via the at least one decoded transmission unit from the intermediate sequence received at the client device;

otherwise, if it is determined by the client device that the time cannot be reduced:

requesting, from the client device, transmission units from the second sequence of coded video data; and

receiving and decoding the requested transmission units from the second sequence of coded video data at the client device,

where the determining is derived from data contained in the manifest file that is received from a source of the transmission units of the second sequence of coded video data that describes a correlation between the transmission units of the intermediate sequence and the transmission units of the second sequence.

2. The method of claim 1 , wherein the intermediate sequence of coded video data is coded at a lower bit rate than a bit rate of the second sequence of coded video data.

3. The method of claim 1 , wherein a duration of the transmission units in the intermediate sequence is smaller than a duration of the transmission units in the second sequence.

4. The method of claim 1 , wherein content of the first sequence of coded video data and the second sequence of coded video data are live broadcast.

5. The method of claim 1 , wherein the transition from the intermediate sequence to the second sequence is processed when a synchronization frame is encountered in the second sequence.

6. The method of claim 1 , wherein:

the intermediate sequence is part of a plurality of staggered intermediate sequences of coded video data that include transmission units in each of the staggered sequences having different durations and the transmission units are staggered such that synchronization frames of the plurality of staggered sequences are staggered; and

wherein the third intermediate sequence includes a synchronization frame that corresponds to the request to transition.

7. The method of claim 6 , wherein content of the first sequence of coded video data and the second sequence of coded video data are live broadcast.

8. The method of claim 6 , wherein the synchronization frames in each of the transmission units of the plurality of staggered sequences are located at the beginning of the transmission units.

9. The method of claim 6 , wherein the last frame of each of the transmission units of the plurality of staggered sequences is aligned with one of the synchronization frames of the second sequence.

10. The method of claim 1 , further comprising:

in response to a request to fast forward or rewind the content of the first sequence: selecting at least one of a plurality of channels including reference frames, each of

the channels including reference frames that are staggered from the reference frames in the other channels and at least one of the channels includes the reference frames at a

frequency that is higher than a frequency of the reference frames in the other channels, and

displaying the reference frames from the selected channels.

11. The method of claim 10 , wherein the channels are selected based on a speed of the fast forward or rewind request.

12. The method of claim 11 , wherein more channels are selected to provide additional reference frames for slower fast forward or rewind request and fewer channels are selected to provide fewer reference frames for faster fast forward or rewind request.

13. The method of claim 1 , further comprising:

determining whether a time to transition to the second sequence of coded video data exceeds a predetermined transition time; and

if the time to transition exceeds a predetermined transition time, slowing down playback of content of at least one of the first sequence of coded video data and the second sequence of coded video data.

14. The method of claim 13 , wherein the predetermined transition time is determined based on a time needed to buffer and decode the second sequence of coded video data at the time of the request to transition to the second sequence of coded video data.

15. The method of claim 1 , further comprising:

determining whether a time to transition to the second sequence of coded video data via an animated transition exceeds a predetermined transition time; and

if the time to transition exceeds a predetermined transition time, adjusting a speed of the animated transition between the first sequence of coded video data and the second sequence of coded video data.

16. The method of claim 15 , wherein the predetermined transition time is determined based on a time needed to buffer and decode the second sequence of coded video data at the time of the request to transition to the second sequence of coded video data.

17. The method of claim 15 , wherein the first sequence of coded video data includes video content having a first resolution, the second sequence of coded video data include video content having a second resolution, and the animated transition is adjusted to slow down the animated transition from the first resolution to the second resolution.

18. The method of claim 1 , where the determining is performed by a client device that performs the requesting, receiving and decoding steps.

19. A non-transitory computer-readable medium embodied with computer-executable instructions for causing a computer to execute instructions according to a method that comprises:

receiving, at a client device, transmission units from a first sequence of coded video data; decoding, at the client device, the transmission units from the first sequence;

in response to a request at the client device to transition to a second sequence of coded video data, determining from a manifest file, at the client device, whether a time to transition to the second sequence of coded video data can be reduced at the client device by transitioning to the second sequence of coded video data via a third intermediate sequence of coded video data; and

if it is determined by the client device that the time can be reduced:

requesting, from the client device, at least one transmission unit from the third intermediate sequence of coded video data that corresponds to the request to transition,

receiving and decoding the at least one transmission unit from the third intermediate sequence at the client device, and

transitioning from the first sequence to the second sequence via the at least one decoded transmission unit from the third intermediate sequence received at the client device;

otherwise, if it is determined by the client device that the time cannot be reduced:

requesting transmission units from the second sequence of coded video data; and

receiving and decoding the requested transmission units from the second sequence of coded video data at the client device,

wherein the determining is derived from data contained in the manifest file that is received from a source of the transmission units of the second sequence of coded video data that describes a correlation between the transmission units of the intermediate sequence and the transmission units of the second sequence.

20. The medium of claim 19 , wherein the third intermediate sequence of coded video data is coded at a lower bit rate than a bit rate of the second sequence of coded video data.

21. The medium of claim 19 , wherein a duration of the transmission units in the third intermediate sequence is smaller than a duration of the transmission units in the second sequence.

22. The medium of claim 19 , wherein content of the first sequence of coded video data and the second sequence of coded video data are live broadcast.

23. The medium of claim 19 , wherein the transition from the third intermediate sequence to the second sequence is processed when a synchronization frame is encountered in the second sequence.

24. The medium of claim 19 , wherein:

the third intermediate sequence is part of a plurality of staggered intermediate sequences of coded video data that include transmission units in each of the staggered sequences having different durations and the transmission units are staggered such that synchronization frames of the plurality of staggered sequences are staggered; and

wherein the third intermediate sequence includes a synchronization frame that corresponds to the request to transition.

25. The medium of claim 19 , further comprising:

determining whether a time to transition to the second sequence of coded video data exceeds a predetermined transition time; and

if the time to transition exceeds a predetermined transition time, slowing down playback of content of at least one of the first sequence of coded video data and the second sequence of coded video data.

26. The medium of claim 19 , further comprising:

determining whether a time to transition to the second sequence of coded video data via an animated transition exceeds a predetermined transition time; and

if the time to transition exceeds a predetermined transition time, adjusting a speed of the animated transition between the first sequence of coded video data and the second sequence of coded video data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2013
From: SU, YEPING; CHUNG, CHRIS Y.; ZHOU, XIAOSONG; NORMILE, JAMES O.; WU, HSI-JUNG; JANSEN, THOMAS; JEONG, HYEONKUK; ABUAN, JOE S.; PRICE, DOUGLAS S.
To: APPLE INC.
Reel/Frame 030278/0543 →
Continuity (1)
Related Publication 20140269932A1 · Sep 18, 2014