This invention relates to the field of digital signal processing, including providing improved performance in systems that employ both decoding and decryption of video data.
This section is intended to introduce the reader to various aspects of art which may be related to various aspects of the present invention which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
In video processing and storage applications, digital video data is typically encoded to conform to the requirements of a known standard. One such widely adopted standard is the MPEG2 (Moving Pictures Expert Group) image encoding standard, hereinafter referred to as the “MPEG standard”. The MPEG standard is comprised of a system encoding section (ISO/IEC 13818-1, 10 Jun. 1994) and a video encoding section (ISO/IEC 13818-2, 20 Jan. 1995), hereinafter referred to as the “MPEG systems standard” and “MPEG video standard” respectively. Video data encoded to the MPEG standard is in the form of a packetized datastream, which typically includes the data content of many program channels (analogous to channels 1-125 in cable TV, for example). The data content of premium program channels such as HBO™, Cinemax™ and Showtime™, for example, is usually protected from unauthorized access by methods such as encryption and scrambling. These methods may be used alone, repetitively, or in combination to provide a plurality of levels of protection.
In a decoder, access to the premium channels is typically governed by a conditional access system which manages user billing and controls program descrambling and decryption based on user entitlement. The conditional access system may determine whether access is authorized in a variety of ways. For example, authorization may be determined within the decoder from user entitlement information pre-programmed on a so-called “smart card”. Alternatively, authorization may be determined at a remote location and implemented within the decoder using user entitlement information that is transmitted from the remote location, as in a cable television pay-per-view service. The entitlement information typically includes codes used to generate descrambling and decryption keys that are used for program descrambling and decryption. However, the entitlement information may instead include the keys themselves.
The processing of encrypted and non-encrypted program data and the management of associated encryption and scrambling codes for storage, billing and other applications presents a number of problems. One such problem relates to the fact that decryption of video data is typically handled in a different hardware block than video/audio decoding. This results in a potential timing mismatch between the two respective blocks, making it difficult to determine whether to decrypt a new stream of data before starting to decode that stream. A system and method of improving this potential timing mismatch and facilitating a smooth transition to decoding a video stream is desirable. Hereinafter the term “encryption” encompasses scrambling functions to the extent that the functions are used to prevent unauthorized use.
The disclosed embodiments relate to a system that processes video data. An exemplary embodiment of the system includes a module that initiates a channel search procedure on a transport stream, a module that determines an encryption level of a first channel in the transport stream based on a control bit within the transport stream, and a module that adds the first channel and its associated encryption level to a channel map.
In the drawings:
One or more specific embodiments of the present invention will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions may be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
Transport stream data is delivered by the front end unit 12 to a memory bus 14. The memory bus delivers a transport stream to an internal RAM 16, a descrambler 18, and a transport stream demultiplexor (“TSD”) 20. In the exemplary embodiment illustrated in
The descrambler 18 may be able to decrypt video data using scrambling bit information included in a transport stream packet and PES layer data previously provided by the front end unit 12. Those bits include decryption information for encrypted video data. As set forth below, information determined during a typical channel search may be employed to optimize video and audio decoding in accordance with an exemplary embodiment of the present invention. The system 10 may be adapted to perform a channel search upon initialization.
In the exemplary embodiment illustrated in
In accordance with the exemplary process 100, a channel searching procedure is performed. During the channel search procedure, encrypted channels are marked based on information contained in transport scrambling control bits received with the video signal. This information is previously obtained from program specific information (“PSI”) during the making of a channel map, which may be performed as a part of initializing the system 10 (
At block 102, the exemplary channel search process 100 begins. At a decision block 104, a decision is made about whether the channel being examined is valid. If the channel is determined to be invalid, process flow continues to decision block 112, as illustrated in
If, at the decision block 104, a channel is determined to be valid, process flow continues at decision block 106. At a decision block 106, a determination is made regarding an encryption level of the channel being evaluated. Specifically, the channel is evaluated for the presence of control bits in the form of transport scrambling control information. If the channel employs transport control, the channel is marked as a scrambled channel at block 108. If, at decision block 106, the channel is determined to not employ transport scrambling control, block 108 is skipped and process flow continues at block 110. At block 110, information about the channel, including whether it is encrypted or not, is saved in a channel map in the system 10 (
The exemplary process illustrated in
When a play command is receive, transport scrambling control bits associated with the requested channel may be checked to see if they have changed since last being updated. If the transport control bits have changed, this condition may be reported to a higher software layer, as described previously. As a result of this request, new encryption data may be obtained for the specific channel before it is played.
In the exemplary embodiment illustrated in
At block 202, the process begins. At a decision block 204, a determination is made as to whether the channel for which playback has been requested is marked as scrambled. The channel may have been determined to be scrambled and marked as such by execution of the process illustrated in
If, as a result of the determination at the decision block 204, the channel is not identified as scrambled, process flow continues to a decision block 210. At block 210, a decision is made as to whether the channel employs transport scrambling control. If the channel employs transport scrambling control, it is marked as scrambled, as shown at block 212. Process flow then continues to block 214, where the channel is reported to an upper level software layer as not being playable. The upper layer software level may request updated encryption information before the channel can be displayed. Thereafter, the process ends, as illustrated at block 222.
If, at decision block 210, the channel is determined to not employ transport scrambling control, process flow continues at decision block 216, where a determination is made as to whether the channel employs PES scrambling control. If the channel does not employ PES scrambling control, process flow continues at block 220, where the channel is decoded and displayed. The process ends at block 222.
If the channel is determined to employ PES scrambling control at the decision block 216, process flow continues to a decision block 218. In an exemplary embodiment of the present invention, the decision block 216 may be adapted to determine whether decryption information already stored in the internal RAM 16 (
At the decision block 218, a determination is made as to how many unsuccessful attempts to decode video correctly with existing PES information have taken place so far. In block 218, the number of unsuccessful passes is indicated as “N.” The value of “N” may be determined by a system design considerations to optimize delay in presentation of a displayed image after playback is requested (for example, when a user changes the channel on a television). If the maximum “N” number of unsuccessful passes has not been reached, process flow continues at block 208 where a delay is incurred. Based on inherent delays in the operation of the descrambler 18 (
If, at the decision block 218, the maximum number of unsuccessful passes through the process 200 has been reached, the channel is reported as unplayable to an upper layer program, as illustrated at block 214. Updated decryption information may be obtained via the upper layer program prior to retrying playback of the video information. Thereafter, process flow ends at block 222.
While the invention may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the invention as defined by the following appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US05/46281 | 12/20/2005 | WO | 00 | 6/17/2008 |