Video switching for streaming video data
First Claim
1. A method of sending video data, the method comprising:
- providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence;
providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch comprising sending, to the client device, a delay value for switching from the first representation to the second representation;
in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device;
in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, sending the requested data from the second representation to the client device.
2 Assignments
0 Petitions
Accused Products
Abstract
In one example, an apparatus includes a processor configured to provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence, and to provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch, in response to a first request from the client device to retrieve data from the first representation. In this manner, the client device may use the information to perform seamless switching between the representations.
270 Citations
46 Claims
-
1. A method of sending video data, the method comprising:
-
providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch comprising sending, to the client device, a delay value for switching from the first representation to the second representation; in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device; in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, sending the requested data from the second representation to the client device. - View Dependent Claims (2, 3)
-
-
4. A method of sending video data, the method comprising:
-
providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device; determining a maximum size value of a random access point picture for coded video samples of the representations; and sending the maximum size value to the client device.
-
-
5. A method of sending video data, the method comprising:
-
providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device; receiving an initialization segment for the first representation; determining that the second representation can be decoded based on the initialization segment of the first representation; assigning a group identifier value to the first representation and to the second representation; and sending the group identifier value to the client device, wherein sending the requested data from the first representation comprises sending the initialization segment to the client device; and wherein sending the requested data of the second representation to the client device comprises sending the requested data of the second representation to the client device without sending an initialization segment of the second representation to the client device.
-
- 6. An apparatus for transferring video data, the apparatus comprising a processor configured to provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence, provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch, in response to a first request from the client device to retrieve data from the first representation, send the requested data from the first representation to the client device, in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, send the requested data from the second representation to the client device, and send, to the client device, a delay value for switching from the first representation to the second representation.
-
9. An apparatus for transferring video data, the apparatus comprising a processor configured to provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence, provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch, in response to a first request from the client device to retrieve data from the first representation, send the requested data from the first representation to the client device, in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, send the requested data from the second representation to the client device, wherein the processor is configured to determine a maximum size value of a random access point picture for coded video samples of the representations, and send the maximum size value to the client device.
-
10. An apparatus for transferring video data, the apparatus comprising a processor configured to provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence, provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch, in response to a first request from the client device to retrieve data from the first representation, send the requested data from the first representation to the client device, in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, send the requested data from the second representation to the client device, wherein the processor is configured to receive an initialization segment for the first representation, determine that the second representation can be decoded based on the initialization segment of the first representation, assign a group identifier value to the first representation and to the second representation, and send the group identifier value to the client device, send the initialization segment to the client device with the requested data from the first representation, and send the requested data of the second representation to the client device without sending an initialization segment of the second representation to the client device.
-
12. An apparatus for providing video data, the apparatus comprising:
-
means for providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; means for providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; means for, in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device; means for, in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, sending the requested data from the second representation to the client device; and means for sending, to the client device, a delay value for switching from the first representation to the second representation. - View Dependent Claims (13, 14)
-
-
15. An apparatus for providing video data, the apparatus comprising:
-
means for providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; means for providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; means for, in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device; means for, in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, sending the requested data from the second representation to the client device, means for determining a maximum size value of a random access point picture for coded video samples of the representations; and means for sending the maximum size value to the client device.
-
-
16. An apparatus for providing video data, the apparatus comprising:
-
means for providing information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; means for providing information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; means for, in response to a first request from the client device to retrieve data from the first representation, sending the requested data from the first representation to the client device; means for, in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, sending the requested data from the second representation to the client device, means for receiving an initialization segment for the first representation; means for determining that the second representation can be decoded based on the initialization segment of the first representation; means for assigning a group identifier value to the first representation and to the second representation; and means for sending the group identifier value to the client device, wherein the means for sending the requested data from the first representation comprises means for sending the initialization segment to the client device, and wherein the means for sending the requested data from the second representation comprises means for sending data of the second representation to the client device without sending an initialization segment of the second representation to the client device.
-
-
17. A computer program product comprising a computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for providing video data to:
-
provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; in response to a first request from the client device to retrieve data from the first representation, send the requested data from the first representation to the client device; in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, send the requested data from the second representation to the client device; and send, to the client device, a delay value for switching from the first representation to the second representation. - View Dependent Claims (18, 19)
-
-
20. A computer program product comprising a computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for providing video data to:
-
provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; in response to a first request from the client device to retrieve data from the first representation, send the requested data from the first representation to the client device; in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, send the requested data from the second representation to the client device; determine a maximum size value of a random access point picture for coded video samples of the representations; and send the maximum size value to the client device.
-
-
21. A computer program product comprising a computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for providing video data to:
-
provide information to a client device for accessing data for a first representation of a video sequence and a second representation of the video sequence; provide information to the client device indicating that the client device can, during transmission of the data for the first representation, switch to the second representation without experiencing a presentation gap when displaying the video sequence and without simultaneously executing more than one decoder to decode the data for the first representation and the second representation during the switch; in response to a first request from the client device to retrieve data from the first representation, send the requested data from the first representation to the client device; in response to a second request from the client device to retrieve data from the second representation after sending the requested data from the first representation, send the requested data from the second representation to the client device; receive an initialization segment for the first representation; determine that the second representation can be decoded based on the initialization segment of the first representation; assign a group identifier value to the first representation and to the second representation; and send the group identifier value to the client device, wherein the instructions that cause the processor to send the data from the first representation comprise instructions that cause the processor to send the initialization segment to the client device, and wherein the instructions that cause the processor to send the data from the second representation comprises instructions that cause the processor to send data from the second representation to the client device without sending an initialization segment of the second representation to the client device.
-
-
22. A method of receiving video data, the method comprising:
-
receiving a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; requesting data from the first representation of a video sequence in accordance with a streaming network protocol; in response to determining to switch from the first representation to the second representation, buffering an amount of data from the first representation based on the delay value; after buffering the amount of data from the first representation, requesting data from a second representation of the video sequence in accordance with the streaming network protocol; and requesting an initialization segment of the first representation prior to requesting the data of the first representation, wherein requesting the data from the second representation comprises requesting the data from the second representation without requesting an initialization segment of the second representation. - View Dependent Claims (23, 24)
-
-
25. A method of receiving video data, the method comprising:
-
receiving a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; requesting data from the first representation of a video sequence in accordance with a streaming network protocol; in response to determining to switch from the first representation to the second representation, buffering an amount of data from the first representation based on the delay value; after buffering the amount of data from the first representation, requesting data from a second representation of the video sequence in accordance with the streaming network protocol; receiving information indicating whether the first representation and the second representation are timely aligned; selecting a random access point of the second representation based on the information; wherein when the first representation and the second representation are timely aligned, selecting the random access point comprises; locating a first random access point of the first representation having an earliest presentation time value following presentation time values of samples of the buffered data of the first representation; selecting a second random access point of the second representation having the same presentation time value as the first random access point, and wherein requesting the data from the second representation comprises requesting a fragment of the second representation comprising the second random access point.
-
-
26. A method of receiving video data, the method comprising:
-
receiving a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; requesting data from the first representation of a video sequence in accordance with a streaming network protocol; in response to determining to switch from the first representation to the second representation, buffering an amount of data from the first representation based on the delay value; after buffering the amount of data from the first representation, requesting data from a second representation of the video sequence in accordance with the streaming network protocol; receiving information indicating whether the first representation and the second representation are timely aligned; selecting a random access point of the second representation based on the information; wherein when the first representation and the second representation are not timely aligned, the method comprises; selecting the random access point comprises selecting a random access point of the second representation having a presentation time value later than a presentation time value of at least one sample of the buffered data of the first representation, wherein buffering the amount of data comprises requesting and storing data of the first representation up to a first fragment having a starting presentation time value earlier than the presentation time value of the selected random access point and an ending presentation time value later than the presentation time value of the selected random access point, and wherein requesting data from the second representation comprises requesting data of the second representation starting at a second fragment of the second representation comprising the selected random access point. - View Dependent Claims (27)
-
- 28. An apparatus for receiving video data, the apparatus comprising a processor configured to receive a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence, request data from the first representation of a video sequence in accordance with a streaming network protocol, in response to determining to switch from the first representation to the second representation, buffer an amount of data from the first representation based on the delay value, and, after buffering the amount of data from the first representation, request data from a second representation of the video sequence in accordance with the streaming network protocol, wherein the processor is configured to request an initialization segment of the first representation prior to requesting the data of the first representation, wherein the processor is configured to request the data from the second representation without requesting an initialization segment of the second representation.
-
31. An apparatus for receiving video data, the apparatus comprising a processor configured to receive a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence, request data from the first representation of a video sequence in accordance with a streaming network protocol, in response to determining to switch from the first representation to the second representation, buffer an amount of data from the first representation based on the delay value, after buffering the amount of data from the first representation, request data from a second representation of the video sequence in accordance with the streaming network protocol, wherein the processor is configured to receive information indicating whether the first representation and the second representation are timely aligned, and select a random access point of the second representation based on the information, and, wherein to select the random access point when the first representation and the second representation are timely aligned, the processor is configured to locate a first random access point of the first representation having an earliest presentation time value following presentation time values of samples of the buffered data of the first representation, and select a second random access point of the second representation having the same presentation time value as the first random access point, wherein to request the data from the second representation, the processor is configured to request a fragment of the second representation comprising the second random access point.
- 32. An apparatus for receiving video data, the apparatus comprising a processor configured to receive a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence, request data from the first representation of a video sequence in accordance with a streaming network protocol, in response to determining to switch from the first representation to the second representation, buffer an amount of data from the first representation based on the delay value, after buffering the amount of data from the first representation, request data from a second representation of the video sequence in accordance with the streaming network protocol, wherein the processor is configured to receive information indicating whether the first representation and the second representation are timely aligned, and select a random access point of the second representation based on the information, and, wherein the processor is configured to, when the first representation and the second representation are not timely aligned, select the random access point comprises selecting a random access point of the second representation having a presentation time value later than a presentation time value of at least one sample of the buffered data of the first representation, wherein to buffer the amount of data, the processor is configured to request and store data of the first representation up to a first fragment having a starting presentation time value earlier than the presentation time value of the selected random access point and an ending presentation time value later than the presentation time value of the selected random access point, and to request data from the second representation, the processor is configured to request data of the second representation starting at a second fragment of the second representation comprising the selected random access point.
-
35. An apparatus for receiving video data, the apparatus comprising:
-
means for receiving a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; means for requesting data from the first representation of a video sequence in accordance with a streaming network protocol; means for in response to determining to switch from the first representation to the second representation, buffering an amount of data from the first representation based on the delay value; means for requesting, after buffering the amount of data from the first representation, data from a second representation of the video sequence in accordance with the streaming network protocol; and means for requesting an initialization segment of the first representation prior to requesting the data of the first representation, wherein the means for requesting the data from the second representation comprises means for requesting the data from the second representation without requesting an initialization segment of the second representation. - View Dependent Claims (36, 37)
-
-
38. An apparatus for receiving video data, the apparatus comprising:
-
means for receiving a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; means for requesting data from the first representation of a video sequence in accordance with a streaming network protocol; means for in response to determining to switch from the first representation to the second representation, buffering an amount of data from the first representation based on the delay value; means for requesting, after buffering the amount of data from the first representation, data from a second representation of the video sequence in accordance with the streaming network protocol; means for receiving information indicating whether the first representation and the second representation are timely aligned; means for selecting a random access point of the second representation based on the information, wherein when the first representation and the second representation are timely aligned, the means for selecting the random access point comprises; means for locating a first random access point of the first representation having an earliest presentation time value following presentation time values of samples of the buffered data of the first representation; and means for selecting a second random access point of the second representation having the same presentation time value as the first random access point, wherein the means for requesting the data from the second representation comprises means for requesting a fragment of the second representation comprising the second random access point.
-
-
39. An apparatus for receiving video data, the apparatus comprising:
-
means for receiving a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; means for requesting data from the first representation of a video sequence in accordance with a streaming network protocol; means for in response to determining to switch from the first representation to the second representation, buffering an amount of data from the first representation based on the delay value; means for requesting, after buffering the amount of data from the first representation, data from a second representation of the video sequence in accordance with the streaming network protocol; means for receiving information indicating whether the first representation and the second representation are timely aligned; means for selecting a random access point of the second representation based on the information, wherein when the first representation and the second representation are not timely aligned; the means for selecting the random access point comprises means for selecting a random access point of the second representation having a presentation time value later than a presentation time value of at least one sample of the buffered data of the first representation, the means for buffering the amount of data comprises means for requesting and storing data of the first representation up to a first fragment having a starting presentation time value earlier than the presentation time value of the selected random access point and an ending presentation time value later than the presentation time value of the selected random access point, and the means for requesting data from the second representation comprises means for requesting data of the second representation starting at a second fragment of the second representation comprising the selected random access point. - View Dependent Claims (40)
-
-
41. A computer program product comprising a computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for receiving video data to:
-
receive a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; request data from the first representation of a video sequence in accordance with a streaming network protocol; in response to determining to switch from the first representation to the second representation, buffer an amount of data from the first representation based on the delay value; and after buffering the amount of data from the first representation, request data from a second representation of the video sequence in accordance with the streaming network protocol; and request an initialization segment of the first representation prior to requesting the data of the first representation, wherein the means for requesting the data from the second representation comprises means for requesting the data from the second representation without requesting an initialization segment of the second representation. - View Dependent Claims (42, 43)
-
-
44. A computer program product comprising a computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for receiving video data to:
-
receive a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; request data from the first representation of a video sequence in accordance with a streaming network protocol; in response to determining to switch from the first representation to the second representation, buffer an amount of data from the first representation based on the delay value; after buffering the amount of data from the first representation, request data from a second representation of the video sequence in accordance with the streaming network protocol; receive information indicating whether the first representation and the second representation are timely aligned; select a random access point of the second representation based on the information, wherein when the first representation and the second representation are timely aligned, the instructions that cause the processor to selecting the random access point comprises; locate a first random access point of the first representation having an earliest presentation time value following presentation time values of samples of the buffered data of the first representation; and selecting a second random access point of the second representation having the same presentation time value as the first random access point, wherein requesting the data from the second representation comprises requesting a fragment of the second representation comprising the second random access point.
-
-
45. A computer program product comprising a computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a device for receiving video data to:
-
receive a delay value indicative of a delay for switching between a first representation of a video sequence and a second representation of the video sequence; request data from the first representation of a video sequence in accordance with a streaming network protocol; in response to determining to switch from the first representation to the second representation, buffer an amount of data from the first representation based on the delay value; after buffering the amount of data from the first representation, request data from a second representation of the video sequence in accordance with the streaming network protocol; receive information indicating whether the first representation and the second representation are timely aligned; select a random access point of the second representation based on the information, further comprising instructions that cause the processor to, when the first representation and the second representation are not timely aligned; select the random access point comprises selecting a random access point of the second representation having a presentation time value later than a presentation time value of at least one sample of the buffered data of the first representation, wherein the instructions that cause the processor to buffer the amount of data comprise that cause the processor to request and store data of the first representation up to a first fragment having a starting presentation time value earlier than the presentation time value of the selected random access point and an ending presentation time value later than the presentation time value of the selected random access point, and wherein the instructions that cause the processor to request data from the second representation comprise instructions that cause the processor to request data of the second representation starting at a second fragment of the second representation comprising the selected random access point. - View Dependent Claims (46)
-
Specification