This disclosure relates to digital video channel change performance. More particularly this disclosure relates to systems and methods for optimizing digital video channel change performance.
Any publication referred to in this patent application is preferably incorporated by reference herein in its entirety.
Broadcast digital cable, terrestrial and satellite networks distribute audio, video and data via multiplexed bitstreams. For the purposes of this application, such multiplexed bitstreams may be referred to herein as a “multiplex” and can be understood to refer to digital data streams that are combined into one streaming signal over a shared medium. The mutilplexed signal is typically transmitted over a physical communication medium. Such multiplexed bitstreams may follow a protocol specified by ISO/IEC13818-1, which is hereby incorporated by reference herein in its entirety.
A typical broadcast network may distribute many multiplexed bitstreams. One level of complexity of this distribution is attributable to the fact that each of the multiplexed bitstreams may carry a number of digital video/audio programs. Additionally, acquiring the digital signals themselves is a complex process. These complexities, among other factors, slow down the process of changing channels from one program to another program. In fact, changing channels between programs on a typical digital network may take much longer than changing channels in legacy analog broadcast environments.
There are several steps required to perform a broadcast digital video channel change. The event sequence shown in
Once RF tuning is complete, a digital signal is then acquired and demodulated, as shown at demodulator lock 104. The type of demodulation typically depends on the type of broadcast network. Nevertheless, many factors can influence the amount of time required to acquire and successfully demodulate the signal.
A conventional demodulated bitstream typically includes a multiplexed bitstream as described in ISO/IEC13818-1. For the purposes of discussing digital video channel change in this application, the multiplexed bitstream can be viewed as an alternating series of packets. In
It is known for a single multiplex bitstream to carry 10 or more different programs, each program being analogous to an audio/video channel. The bitstream also may carry data known as Program Specific Information (PSI), which may be acquired as shown at 106 of
In some broadcast system, individual programs can be encrypted or scrambled and often there is periodic PSI information in the bitstream necessary to decrypt or descramble the stream. This data is often referred to as Entitlement Control Messages (ECM). Acquisition of ECM is shown at 108.
Although requirements may vary with different digital video formats, digital video data carried in a bitstream is typically formatted in a predetermined sequence. A conventional sequence of the digital video data requires waiting for certain specific data prior to decoding and displaying the video data, as per ISO/IEC13818-2 section 6.1.1.6.
Other bitstream requirements that precede decoding and displaying of video may also exist in conventional systems. Such requirements may relate to the number of pictures, buffering and other dependent data such as audio data that must be received before a decoder can decode and display pictures having a sound track associated therewith. The amount of time consumed by video acquisition, as shown in 110, typically depends, at least in part, on when the video acquisition process begins as well as other encoding factors.
Specifically, the amount of time it takes to complete video acquisition depends, at least in part, on when sufficient data for the program is received by the decoder.
A system and/or method for implementing a digital video channel change, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
The objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
This patent application describes systems and methods for achieving improved and/or optimal digital video channel change performance in broadcast terrestrial cable or satellite networks. More specifically, the method described herein improves upon and is derived from conventional implementations of digital video channel change.
Point-in-time 302 shows the point in time when acquisition of exemplary program 5a begins. Point-in-time 304 shows when sufficient data of program 5a has been accumulated in order to allow the video decoding of program 5a to initiate and continue uninterrupted. The amount of sufficient data to allow decoding of program 5a may include an amount of data that ensures receipt and maintenance of least one random access point. Random access points are typically encoded in the video sequence to allow starting of video decoding of a predetermined program from an arbitrary point. A decoder may possess the ability to find a random access point in an incoming stream of data. The total amount of time to allow decoding of program 5a is shown as 306.
The multiplexed video for program 5a is typically received with intermittent and indeterminate delays. Such delays may occur between sections of the desired program. Accordingly, it may be necessary to accumulate, and preferably maintain, sufficient data to insure that video decode and display can continue uninterrupted.
The broadcast stream is depicted schematically at 402. The broadcast stream is demultiplexed at 404. Data for the display of Program 3 is stored in a compressed data buffer at 406. When sufficient data has been accumulated at 406, decoding for display may begin at 408.
Also, video data may contain information (timestamps) to insure the display is ordered and presented for display at the proper point in time. Such display must be synchronized with audio data also multiplexed in the bitstream. This delay is referred to as the timestamp management (TSM) delay, and is shown at 112 in
In order to analyze an exemplary video acquisition and TSM delay in a broadcast cable network with an MPEG-2 bitstream, five distinct events may be collected. These events include:
RF Tune Time
Demodulator Acquisition
PSI Acquisition
Sequence Header—First sequence header (ISO/IEC13818-2 section 6.1.1.6) observed; also approximates the “video acquisition” time.
First PTS—First video frame presentation time; also approximates the TSM delay.
An example of the sequence header and first PTS times seen in typical broadcast cable bitstreams is shown in Table 1. Table 1 breaks down the components of an exemplary channel change duration. The units used are milliseconds:
It should be noted according to methods of the invention, when changing channels between programs in the same multiplexed bitstream it is not necessary to tune (as represented by 102 in
Schematic representations of multiple bitstreams are shown at 702, 704, and 706, respectively. One of the programs in each bitstream is shown as being demultiplexed at each of 708, 710 and 712, respectively. An additional program, n, is shown as being demultiplexed at 714. Program n indicates that techniques according to the invention are adaptable to any suitable implementation, preferably independent of the total bitstream number and/or the total program number.
As long as the channel change occurs between channels in the same multiplex (or another multiplex already acquired on multiple tuner/demodulator systems) channel change can, according to the invention, occur substantially nearly instantaneously. The decreased time duration of the channel change may be attributable, at least in part, to the fact that PSI acquisition (see 106 in
Yet another aspect of the invention relates to optimized digital video channel change. While simultaneous decoding of programs improves speed, nevertheless, performing simultaneous decodes consumes a great deal of processing power and memory bandwidth, particularly with high definition video streams.
This additional load can be almost completely eliminated by implementing processes, according to the invention, that replace additional video decoders (see e.g., 506) needed to implement the digital video channel change described above in
In some embodiments, a primer according to the invention parses the bitstream and searches for pictures where a decode can begin—e.g., random access points. Once the primer identifies a random access point, the primer can maintain the random access point in storage, dispose of the previous video data, and continue to parse through incoming data for the next random access point. Whereas a decoder has the ability to identify a random access point, the decoder typically must always parse through incoming video data to find the random access point. The decoder does not identify the random access point and discard the extraneous data. The primer, on the other hand, may identify a random access point and then maintain the random access point in storage—e.g., a buffer, until the primer identifies a new random access point. In other words, to start decoding, the decoder must find a random access point by parsing through the incoming stream. The primer, on the other hand, looks for the random access point in the information already received. When a channel change event happens, a primer may substantially immediately provide a random access point for decoding instead of first searching for a random access point and then providing the random access point.
The primer may also operate as a consumer of video data. Specifically, the primer receives video data and may discard the non-random-access-point video data while storing information relating to the most recently received random access point data. As above, a primer may continually search through video data for a random access point and keep one ready for initiation of a decoding process. Elimination of the need to locate a random access point is what makes the channel change quicker.
In a system supporting optimized digital video channel change according to the invention, the decoder can decode and display the active program. Further, any suitable number of primers may be utilized to process other streams in the same multiplex or streams present in other multiplexes if multiple tuners and demodulators are employed.
Because primers maintain enough video data in a compressed data buffer such that the decoder can immediately decode and display using the video data buffered by the primer, a very fast channel change can occur by switching which compressed buffer the decoder processes.
As described above, the primer is responsible for maintaining preferably just enough data in a compressed data buffer to decode and display video. The amount of data and requirements for the types of data depend on the encoding standard of the video—e.g., ISO/IEC 13818-2 MPEG-2, ISO/IEC MPEG-4, SMPTE 421M VC-1, etc., each of which is incorporated by reference herein in its entirety.
The hardware-based CDB associated with a primer places the demultiplexed video data received in a buffer. If the video stream represents a channel that is not being viewed, the primer consumes data at the end of the buffer. In one preferred embodiment of the invention, the primer maintains buffer fullness at an optimal level so that initiation of a decoding process does not require pre-buffering of video data.
The more sophisticated primer according to the invention described above may substantially continuously maintain a random access point in the buffer. A less sophisticated primer according to the invention may simply consume data from the buffer in order to stop the buffer from overflowing. The less sophisticated primer may consume data (in the place of a decoder and display module) without identifying whether a random access point is currently resident in the buffer associated with the primer.
Thus, in some embodiments of the invention, it is not necessary for the primer to actually process any of the data and, thereby, to obtain an indication of the presence of a random access point in the buffer. Rather, the primer can maintain data necessary to begin video decode, assuming the buffer associated with the primer is sufficiently large to substantially always include a random access point for each program, and also evacuate extraneous or old data.
Alternatively, primer 1014 can also utilize random access points (sometimes referred to as “start codes”) in the broadcast video data stream 1006-1012 to maintain, preferably, the least possible amount of data necessary for allowing optimal switching to the stream following a channel change. Further, the primer may substantially continuously, or periodically, discard data (pictures) 1016 to maintain only the latest point-in-time video required by the decoder.
A suitable video engine, such as the RealTime Audio Video Engine (RAVE) in the BCM7002, BCM7003, BCM7004 manufactured by Broadcom Corporation of Irvine, Calif. is suitable to implement software that is configured to perform the tasks of a primer according to the invention. The suitable video engine preferably can scan incoming multiplexed streams and identify the existence of random access points and/or other required video sequences (see BCM7002A0 Transport Architecture Document, which is hereby incorporated by reference herein in its entirety).
Thus, it has been shown that by employing channel management techniques according to the invention to predict programs (channels) to be processed by primers, time consumed by channel change sequence of events can be reduced to approximately the TSM delay (See
On broadcast terrestrial, cable and satellite networks, channels are customarily organized in a linear format. The paradigm most familiar for changing channels is to simply move a current channel selector up and down in linear list 1202. Such a selector may obtain a selection of a current channel 1204.
One exemplary algorithm may determine which channels should be pre-processed. A list associated with such an algorithm is shown in
It is also common to jump between two channels, not necessarily in consecutive order. This is commonly referred to as skipping to the “last” channel 1310. If resources are available, the last channel should also be processed so that it is possible to change quickly to/from the last channel.
Aspects of the invention have been described in terms of illustrative embodiments thereof. A person having ordinary skill in the art will appreciate that numerous additional embodiments, modifications, and variations may exist that remain within the scope and spirit of the appended claims. For example, one of ordinary skill in the art will appreciate that the steps illustrated in the figures may be performed in other than the recited order and that one or more steps illustrated may be optional.
Thus, systems and methods for improving digital video channel change performance have been described. Persons skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which are presented for purposes of illustration rather than of limitation, and the present invention is limited only by the claims which follow.