Fast digital channel changing
First Claim
1. A system for tuning channels in a digital video broadcast network, the system comprising:
- a receiver configured to receive at a server a request to tune to a new digital channel from a client device;
a broadcast video extractor configured to seek for and retrieve a previous complete frame of broadcast video for the new digital channel from a storage device responsive to the received request;
a broadcast video booster configured to access the storage device and retrieve a plurality of incomplete frames of broadcast video that follow the retrieved previous complete frame of broadcast video; and
a transmitter configured to;
reallocate transient excess bandwidth from one or more other client devices to the client device responsive to receiving the request to tune to the new digital channel, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth currently being utilized by the one or more other client devices; and
transmit the retrieved plurality of incomplete frames of broadcast video to the client device at a transmission rate that exceeds a real-time transmission rate of the broadcast video using the transient excess bandwidth to fill the video decoder buffer with the retrieved plurality of incomplete frames of broadcast video, the transmitted retrieved plurality of incomplete frames of broadcast video being offset in time behind a current broadcast time of the new digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the previous complete frame of broadcast video, the plurality of incomplete frames of broadcast video being retrievable and transmittable over a duration of time that is less than a period of time used to seek for, retrieve, and transmit the previous complete frame of broadcast video.
2 Assignments
0 Petitions
Accused Products
Abstract
Fast channel changing in digital-television-based entertainment networks can be implemented, for example, by electing to tune to channels at opportune tuning times. In an exemplary implementation, a method includes: receiving a channel change request that indicates a requested new channel from a client device; preparing a broadcast video data stream of the requested new channel that is offset in time behind a current broadcast time for broadcast video data of the requested new channel; and streaming the broadcast video data stream responsive to the channel change request. In another exemplary implementation, a system includes: a storage device that retains broadcast video data for multiple channels; a video data extractor that accesses the retained broadcast video data and retrieves an intra frame of broadcast video data that is in the past for a requested channel; and a video data distributor that transmits the retrieved intra frame of broadcast video data.
-
Citations
45 Claims
-
1. A system for tuning channels in a digital video broadcast network, the system comprising:
-
a receiver configured to receive at a server a request to tune to a new digital channel from a client device; a broadcast video extractor configured to seek for and retrieve a previous complete frame of broadcast video for the new digital channel from a storage device responsive to the received request; a broadcast video booster configured to access the storage device and retrieve a plurality of incomplete frames of broadcast video that follow the retrieved previous complete frame of broadcast video; and a transmitter configured to; reallocate transient excess bandwidth from one or more other client devices to the client device responsive to receiving the request to tune to the new digital channel, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth currently being utilized by the one or more other client devices; and transmit the retrieved plurality of incomplete frames of broadcast video to the client device at a transmission rate that exceeds a real-time transmission rate of the broadcast video using the transient excess bandwidth to fill the video decoder buffer with the retrieved plurality of incomplete frames of broadcast video, the transmitted retrieved plurality of incomplete frames of broadcast video being offset in time behind a current broadcast time of the new digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the previous complete frame of broadcast video, the plurality of incomplete frames of broadcast video being retrievable and transmittable over a duration of time that is less than a period of time used to seek for, retrieve, and transmit the previous complete frame of broadcast video. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for tuning channels in a digital video broadcast network, the method comprising:
-
receiving at a server a request to tune to a requested digital channel from a client device; seeking for a previous complete frame of broadcast video for the requested digital channel; retrieving the previous complete frame of broadcast video for the requested digital channel; transmitting the previous complete frame of broadcast video for the requested digital channel to the client device to enable the client device to display an image of the requested digital channel; retrieving a plurality of incomplete frames of broadcast video that follow the previous complete frame of broadcast video for the requested digital channel; reallocating transient excess bandwidth from one or more other client devices to the client device responsive to receiving the request to tune to the requested digital channel, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth currently being utilized by the one or more other client devices; and transmitting, to the client device, the plurality of incomplete frames of broadcast video at a transmission rate that exceeds a real-time transmission rate of the broadcast video using the transient excess bandwidth to fill the video decoder buffer with the plurality of incomplete frames of broadcast video, the transmitted plurality of incomplete frames of broadcast video being offset in time behind a current broadcast time of the requested digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the previous complete frame of broadcast video, the plurality of incomplete frames being retrieved and transmitted over a duration of time that is less than a period of time used for the seeking, retrieving, and transmitting of the previous complete frame.
-
-
7. A system for accelerating channel changing in a video broadcast environment, the system comprising:
-
a storage device configured to retain broadcast video data for a plurality of digital channels; a video data extractor configured to access the retained broadcast video data and retrieve an intra frame of broadcast video data that is in the past for a requested digital channel, requested by a client device, of the plurality of digital channels; a video data booster configured to access the retained broadcast video data and retrieve a broadcast video data stream that follows the retrieved intra frame of broadcast video data; and a video data distributor configured to; receive the retrieved intra frame of broadcast video data; transmit the retrieved intra frame of broadcast video data; receive the retrieved broadcast video data stream; reallocate transient excess bandwidth from one or more other client devices to the client device responsive to receiving a channel change request by the client device, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth currently being utilized by to the one or more other client devices; and transmit the retrieved broadcast video data stream at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the retrieved broadcast video data stream, the transmitted retrieved broadcast video data stream being offset in time behind a current broadcast time of the requested digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the retrieved intra frame of broadcast video data, the broadcast video data stream being retrievable and transmittable over a duration of time that is less than a period of time used to access, retrieve, and transmit the intra frame of broadcast video data. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system for accelerating channel changing in a video broadcast environment, the system comprising:
a video data extractor configured to; retrieve an intra frame of broadcast video data that is prior to a current broadcast time for a requested digital channel responsive to receiving a channel change request from a client device; and retrieve a plurality of non-intra frames of broadcast video data following the retrieved intra frame; and
a video data distributor configured to;transmit the retrieved intra frame of broadcast video corresponding to the requested digital channel to the client device; reallocate transient excess bandwidth from one or more other client devices to the client device responsive to receiving the channel change request from the client device, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth currently being utilized by the one or more other client devices; and transmit the retrieved plurality of non-intra frames at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth, the plurality of non-intra frames being retrieved and transmitted over a duration of time that is less than a duration of time used to retrieve and transmit the intra frame of broadcast video data. - View Dependent Claims (13)
-
14. An arrangement for accelerating channel changing, the arrangement comprising:
distribution means for distributing an intra frame and a digital video stream of broadcast video data corresponding to a requested digital channel to a client device, the distribution means configured to; reallocate transient excess bandwidth from one or more other client devices to the client device responsive to receiving a channel change request, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth utilized by the one or more other client devices; and distribute the digital video stream of the broadcast video data to the client device at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the digital video stream of the broadcast video data, the digital video stream of the broadcast video data being distributable over a duration of time that is less than a duration of time used to distribute the intra frame to the client device. - View Dependent Claims (15, 16, 17)
-
18. A system for accelerating channel changing in a video broadcast environment, the system comprising:
-
one or more memories, the one or more memories including broadcast video data and electronically-executable instructions; and one or more processors capable of executing the electronically-executable instructions to perform actions comprising; receiving a request at a server for a new digital channel from a client device; accessing the broadcast video data for the new digital channel; seeking backward in time along the broadcast video data for the new digital channel until an intra frame is located, the seeking backward in time along the broadcast video data including selecting a most-recently-received intra frame when a condition is met, and selecting another intra frame received prior to the most-recently-received intra frame when the condition is not met, the condition being; a plurality of non-intra frames of broadcast video following the most-recently-received intra frame and stored by the one or more memories are, together with the most-recently-received intra frame, sufficient to fill a video decoder buffer of the client device at least enough for a video decoder to commence decoding, the sufficiency of the plurality of non-intra frames and the most-recently-received intra frame being determined from buffer size data provided by the client device to the server; retrieving the intra frame for the new digital channel from the broadcast video data; retrieving a stream of broadcast video data that starts after the intra frame and extends along the broadcast video data for the new digital channel; transmitting the intra frame for the new digital channel to the client device; reallocating transient excess bandwidth from one or more other client devices to the client device responsive to receiving the request for the new digital channel, the transient excess bandwidth comprising a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth utilized by the one or more other client devices; and transmitting the stream of broadcast video data for the new digital channel to the client device at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the stream of broadcast video data, the transmitted steam of broadcast video data for the new digital channel being offset in time behind a current broadcast time of the new digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the intra frame of the broadcast video data, the stream of broadcast video data being retrieved and transmitted over a duration of time that is less than a duration of time used for the seeking, retrieving, and transmitting of the intra frame. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. One or more computer storage media having computer-executable instructions stored thereon that, when executed by a processor, direct a server to:
-
retrieve an intra frame of broadcast video data from stored broadcast video data responsive to receiving a channel change request for a requested digital channel from a client device, the intra frame of broadcast video data comprising a most-recently-received intra frame in a portion of the stored broadcast video data that corresponds to the requested channel; retrieve a digital video stream of broadcast video data following the retrieved intra frame from the stored broadcast video data for the requested digital channel; reallocate transient excess bandwidth from one or more client devices to a client device responsive to receiving the channel change request for the requested digital channel from the client device, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more client devices and an amount of bandwidth utilized by the one or more client devices; and send the digital video stream associated with the requested digital channel to the client device at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the digital video stream for the requested digital channel, the sent digital video stream for the requested digital channel being offset in time behind a current broadcast time of the requested digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the intra frame of the broadcast video data, the digital video stream being retrievable and sendable over a duration of time that is less than a duration of time used to retrieve and transmit the intra frame of the broadcast video data. - View Dependent Claims (28, 29)
-
-
30. A method comprising:
-
receiving, at a client device, a channel change input from a user, the channel change input ordering a change to a requested digital channel; receiving an intra frame of broadcast video data associated with the requested digital channel; and receiving, at the client device, a broadcast video data stream that follows the intra frame of broadcast video data at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using transient excess bandwidth, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to one or more other client devices and an amount of bandwidth currently being utilized by the one or more other client devices, the received broadcast video data stream that follows the intra frame of broadcast video being offset in time behind a current broadcast time of the requested digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the intra frame of the broadcast video data, the broadcast video data stream that follows the intra frame of the broadcast video data being received over a duration of time that is less than a duration of time that elapses between the receiving of the channel change input from the user and the receiving of the intra frame of the broadcast video data. - View Dependent Claims (31, 32, 33)
-
-
34. A method for accelerating channel changing in a video broadcast environment, the method comprising:
-
receiving at a server a channel change request from a client device, the channel change request indicating a requested new digital channel; preparing a broadcast video data stream of the requested new digital channel that is offset in time behind a current broadcast time for broadcast video data of the requested new digital channel, the broadcast video data stream being prepared by at least determining whether a condition is met, and retrieving a most-recently-received complete frame when the condition is met or retrieving another complete frame received prior to the most-recently-received complete frame when the condition is not met, the condition including; a plurality of incomplete frames of broadcast video following the most-recently-received complete frame are, together with the most-recently-received complete frame, sufficient to fill a video decoder buffer of the client device at least enough for a video decoder to commence decoding, the sufficiency of the plurality of incomplete frames and the most-recently-received complete frame being determined from buffer size data provided by the client device to the server; reallocating transient excess bandwidth from one or more other client devices to the client device responsive to receiving the channel change request, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth utilized by the one or more other client devices; and streaming the broadcast video data stream of the requested new digital channel that is offset in time to the client device, the broadcast video data stream being streamed at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the broadcast video data stream, the broadcast video data stream of the requested new digital channel being offset in time behind the current broadcast time of the requested new digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the most-recently-received complete frame of the broadcast video data, the broadcast video data stream being streamed over a duration of time that is less than a duration of time used for the retrieving of the most-recently-received complete frame of the broadcast video data. - View Dependent Claims (35, 36, 37)
-
-
38. A headend capable of accelerating channel changing in a video broadcast environment, the headend comprising:
-
one or more memories, including electronically-executable instructions and stored broadcast video data, the stored broadcast video data including current broadcast video data and non-current broadcast video data; and one or more processors configured to execute the electronically-executable instructions to perform a method, the method comprising; receiving at the headend a request for a new digital channel from a client device; accessing the stored broadcast video data that corresponds to the new digital channel; retrieving a portion of non-current broadcast video data that corresponds to the new digital channel from the stored broadcast video data, the portion being retrieved by at least determining whether a condition is met, and retrieving a most-recently-received complete frame when the condition is met, or retrieving another complete frame received prior to the most-recently-received complete frame when the condition is not met, the condition including; a plurality of incomplete frames of broadcast video following the most-recently-received complete frame are, together with the most-recently-received complete frame, sufficient to fill a video decoder buffer of the client device at least enough for a video decoder to commence decoding, the sufficiency of the plurality of incomplete frames and the most-recently-received complete frame being determined from buffer size data provided by the client device to the headend; reallocating transient excess bandwidth from one or more other client devices to the client device responsive to receiving the request for the new digital channel, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth utilized by the one or more other client devices; and transmitting at least part of the portion of the non-current broadcast video data that corresponds to the new digital channel to the client device responsive to the request and at a transmission rate that exceeds a real-time transmission rate of the stored broadcast video using the transient excess bandwidth to fill the video decoder buffer with the at least part of the portion of the non-current broadcast video data that corresponds to the new digital channel, the at least part of the portion of the non-current broadcast video data that corresponds to the new digital channel being offset in time behind a current broadcast time of the requested new digital channel, the offset in time comprising a difference between a time that the request is received and the current broadcast time, the video decoder buffer being filled over a duration of time that is less than a duration of time used for the retrieving of the most-recently-received complete frame. - View Dependent Claims (39)
-
-
40. A method for a headend of a television-based entertainment network, the method comprising:
-
continuously receiving a stream of broadcast video data for a particular digital channel; storing the stream of broadcast video data for the particular digital channel in a storage device, the stream of broadcast video data including a plurality of intra frames of broadcast video data and a plurality of non-intra frames of broadcast video data, the plurality of intra frames of broadcast video data including a most-recently-received intra frame of broadcast video data, the plurality of non-intra frames of broadcast video data including a non-intra frame of broadcast video data that corresponds to a current broadcast time; receiving at the headend a channel change request from a client device, the channel change request indicating a request to change channels to the particular digital channel; retrieving an intra frame of broadcast video data and one or more non-intra frames of the plurality of non-intra frames of broadcast video data from the storage device, the one or more non-intra frames of broadcast video data being temporally located after the intra frame of broadcast video data and before the non-intra frame of broadcast video data that corresponds to the current broadcast time, the intra frame being retrieved by at least determining whether a condition is met, and retrieving the most-recently-received intra frame when the condition is met, or retrieving a second intra frame received prior to the most-recently-received intra frame when the condition is not met, the condition including; a plurality of received non-intra frames of broadcast video following the most-recently-received complete frame are, together with the most-recently-received complete frame, sufficient to fill a video decoder buffer of the client device at least enough for a video decoder to commence decoding, the sufficiency of the plurality of non-intra frames and the most-recently-received intra frame being determined from buffer size data provided by the client device to the headend; reallocating transient excess bandwidth from one or more other client devices to the client device responsive to receiving the channel change request, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth utilized by the one or more other client devices; and sending the most-recently-received intra frame of broadcast video data and the one or more non-intra frames of broadcast video data to the client device responsive to receiving the channel change request, the one or more non-intra frames of broadcast video data being sent to the client device at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the one or more non-intra frames of broadcast video data, the sent one or more non-intra frames of broadcast video data being offset in time behind a current broadcast time of the particular digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the most-recently-received intra frame of the broadcast video data, the one or more non-intra frames of broadcast video data being retrieved and sent over a duration of time that is less than a period of time used for the retrieving and sending of the intra frame of broadcast video data. - View Dependent Claims (41, 42)
-
-
43. A headend that is capable of accelerating channel changing in a video broadcast environment, the headend configured to perform actions comprising:
-
receiving a channel change request that corresponds to a first time and is directed to a requested digital channel; accessing broadcast video data for the requested digital channel; retrieving an intra frame of broadcast video data that corresponds to a second time from the broadcast video data for the requested digital channel, the second time being earlier than the first time; retrieving broadcast video data frames that follow the intra frame of broadcast video data from the broadcast video data for the requested digital channel, the intra frame being retrieved by at least determining whether a condition is met, and retrieving a most-recently-received intra frame when the condition is met, or retrieving a second intra frame received prior to the most-recently-received intra frame when the condition is not met, the condition including; a plurality of non-intra frames of broadcast video following the most-recently-received intra frame are, together with the most-recently-received intra frame, sufficient to fill a video decoder buffer of a client device at least enough for a video decoder to commence decoding, the sufficiency of the plurality of non-intra frames and the most-recently-received intra frame being determined from buffer size data provided by the client device to the headend; sending the intra frame of broadcast video data from the headend; reallocating transient excess bandwidth from one or more other client devices to the client device responsive to receiving the channel change request, the transient excess bandwidth comprising at least a portion of a difference between an amount of bandwidth allocated to the one or more other client devices and an amount of bandwidth utilized by the one or more other client devices; and sending the broadcast video data frames that follow the intra frame of broadcast video data from the headend at a transmission rate that exceeds a real-time transmission rate of the broadcast video data using the transient excess bandwidth to fill the video decoder buffer with the broadcast video data frames that follow the intra frame of broadcast video data, the sent broadcast video data frames that follow the intra frame of broadcast video data being offset in time behind a current broadcast time of the requested digital channel, the offset in time comprising a difference between a time that the request is received and a broadcast time of the intra frame of the broadcast video data, the broadcast video frames that follow the intra frame of broadcast video data being retrieved and sent over a duration of time that is less than a duration of time used for the retrieving and sending of the intra frame of broadcast video data. - View Dependent Claims (44, 45)
-
Specification