Abstract:
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.

Description:
FIELD OF THE INVENTION 
       [0001]    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. 
       BACKGROUND OF THE INVENTION 
       [0002]    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. 
         [0003]    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. 
         [0004]    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. 
         [0005]    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. 
       SUMMARY OF THE INVENTION 
       [0006]    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. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0007]    In the drawings: 
           [0008]      FIG. 1  is a block diagram of a video system in accordance with an exemplary embodiment of the present invention; 
           [0009]      FIG. 2  is a flow diagram of a channel search operation in accordance with an exemplary embodiment of the present invention; and 
           [0010]      FIG. 3  is a flow diagram of a video display operation in accordance with an exemplary embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0011]    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&#39; 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. 
         [0012]      FIG. 1  is a block diagram of a video system in accordance with an exemplary embodiment of the present invention. The system is generally referred to by the reference number  10 . The system  10  comprises a front end unit  12 , which may include a tuner, an input processor and the like. The specific functions and details of construction of the front unit  12  are not an essential aspect of the present invention. Generally, the front unit  12  is adapted to receive an input signal such as a broadcast signal and to prepare that signal for further processing by the remaining components of the system  10 . 
         [0013]    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  FIG. 1 , the descrambler  18  and the TSD  20  share the internal RAM  16 . The sharing of the internal RAM  16  enables the descrambler  18  to decrypt video data before that data is presented to the TSD  20 . This means that video data stored in the internal RAM  16  would be decrypted before it is accessed by the TSD  20 . In this manner, encrypted packet encoding stream (“PES”) data would not be presented to the TSD  20  if the descrambler  18  is able to decode that data. 
         [0014]    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. 
         [0015]    In the exemplary embodiment illustrated in  FIG. 1 , video data is decrypted in the descrambler  18  using transport scrambling control bits from a transport stream packet and PES scrambling control bits from PES packet data. Examples of transport scrambling information and PES scrambling control information are set forth in the MPEG2 system specification, which is hereby incorporated by reference. Exemplary transport scrambling information is referred to in table  2 - 2  of MPEG2 system specification as transport_scrambling_control bits. Exemplary PES scrambling control information is referred to in table  2 - 17  (PES packet) of the MPEG2 system specification as PES_scrambling_control bits. 
         [0016]      FIG. 2  is a flow diagram of a channel search operation in accordance with an exemplary embodiment of the present invention. The process is generally referred to by the reference numeral  100 . Those of ordinary skill in the art will appreciate that the functionality illustrated in  FIG. 2  may be implemented in a system such as the system  10  ( FIG. 1 ) in the form of hardware modules, software modules or some combination thereof, depending on considerations relevant to specific design goals. If software modules are employed, the software modules may comprise computer-readable instructions stored on a tangible medium, such as in a RAM or ROM device. 
         [0017]    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  ( FIG. 1 ). Accordingly, that information is available for reuse during the channel search operation illustrated in  FIG. 2 . 
         [0018]    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  FIG. 2 . At decision block  112 , a determination is made as to whether the current channel number is greater than a predetermined maximum channel number. If the channel number is less than the predetermined maximum channel number, process flow continues at block  114 , where the channel number is incremented. Thereafter, process flow continues with the incremented channel number at the decision block  104 . If the result of the decision block  112  is that the channel is greater than the predetermined maximum channel number, the process ends, as illustrated at block  116 . 
         [0019]    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  ( FIG. 1 ) for later access. Thereafter, process flow continues at decision block  112 , where the process  100  is repeated for successive channels up to and including the predetermined maximum channel number. After the channel corresponding to the predetermined maximum channel number is processed, process flow ends, as illustrated at block  116 . 
         [0020]      FIG. 3  is a flow diagram of a video play operation in accordance with an exemplary embodiment of the present invention. The process is generally illustrated by the reference numeral  200 . Those of ordinary skill in the art will appreciate that the functionality illustrated in  FIG. 3  may be implemented in a system such as the system  10  ( FIG. 1 ) in the form of hardware modules, software modules or some combination thereof, depending on considerations relevant to specific design goals. If software modules are employed, the software modules may comprise computer-readable instructions stored on a tangible medium, such as in a RAM or ROM device. 
         [0021]    The exemplary process illustrated in  FIG. 3  may be followed, for example, when a user of the system  10  ( FIG. 1 ) changes a channel that is being displayed by the system. Playback of the channel may begin based on decryption performed by the descrambler  18 , for channels indicated to be scrambled as a result of the process illustrated in  FIG. 2 . If changes have occurred in encryption information in the transport scrambling control, or if decrypted PES information is not available, this condition may be reported to a higher software layer with a request to update encryption information in the channel map. 
         [0022]    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. 
         [0023]    In the exemplary embodiment illustrated in  FIG. 3 , PES scrambling control information may be employed to determine if the descrambler  18  ( FIG. 1 ) is descrambling video correctly with the decryption information that is provided. It may be desirable to provide a number of trials before deciding that the video information is not susceptible to decryption using the currently available decryption information. For example, three attempts may be made before deciding that data is not susceptible to decryption. As explained below, a delay may be inserted between each of these trials to facilitate improved performance. 
         [0024]    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  FIG. 2 . If the channel is scrambled, descrambler  18  ( FIG. 1 ) may be started, as illustrated at block  206 . The descrambler  18  will attempt to decrypt the video information using the encryption data previously obtained, as described above. After the descrambler is started at block  206 , process flow continues at a decision block  216 , as described below. 
         [0025]    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 . 
         [0026]    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 . 
         [0027]    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  ( FIG. 1 ) is correctly decrypting video data. If decryption data already stored in the internal RAM  16  ( FIG. 1 ) works correctly, requested playback of the channel may begin sooner than if new decryption information has to be obtained by accessing a higher software layer for an update to the decryption information stored in the channel map. 
         [0028]    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  ( FIG. 1 ), the delay may be programmed to be in the range of about 10 milliseconds to about 1 second. Following the delay, the descrambler is started, as illustrated at block  209 , using existing decryption information. Process flow then returns to block  216 , where a decision is again made as to whether PES scrambling control information is being employed. As set forth above, this determination may include a determination of whether video information is being decoded correctly with the existing PES decryption information. 
         [0029]    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 . 
         [0030]    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.