CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This is a continuation of the co-pending U.S. application Ser. No. 11/538,059 (filed on Oct. 3, 2006), which claims the benefit of U.S. Provisional Application No. 60/746,893 (filed on May. 10, 2006). The entire contents of the related applications are incorporated herein by reference. 
     
    
     BACKGROUND 
       [0002]    The present invention relates to Digital TV decoding systems, and more particularly to a Digital TV decoding system that incorporates a multiple transport stream decryption card. 
         [0003]    A CableCARD, or Point of Decryption card (POD) is a security module that enables a cable line to be directly plugged into a television set, without requiring a set-top box. The CableCARD provides conditional access and network connection for the television set, by decrypting received transport streams. Conventionally, CableCARDS are capable of processing single streams, meaning they can only decrypt/decode one transport stream at a time. For example, as defined by the CableCARD Interface 1.0 Specification, the CableCARDS are implemented for single-stream decryption/decoding. Current digital technology, however, requires multiple-stream cards in order to perform all digital functions, such as displaying one stream while recording another, or for picture in picture (PIP) mode. To meet these demands, manufacturers have developed a multiple point of decryption (M-POD) card that has the ability of decrypting multiple transport streams, and can operate in both Single-Stream mode and Multi-Stream mode. For example, as defined by the CableCARD Interface 2.0 Specification, the M-POD card is capable of receiving and processing multiple transport streams. The new standard therefore will also enable two-way functions, such as pay-per-view, Video On Demand, and electronic program guides. 
         [0004]    It is desired to provide a novel multiple transport stream decrypting and decoding architecture that can perform the decryption efficiently with reduced hardware complexity. 
       SUMMARY 
       [0005]    Systems including a multiple transport stream decryption card are disclosed. According to an embodiment of the present invention, a multiple stream decrypting and decoding system includes: a Multiple Transport stream Multiplexer (M-Mux), for receiving at least a first stream and a second stream, and outputting a resultant stream; a multiple stream decryption unit, coupled to the M-Mux, for decrypting the resultant stream to output a decrypted stream; a Source Multiplexer (S-Mux), coupled to the multiple stream decryption unit and the M-Mux, for receiving the decrypted stream from the multiple stream decryption unit and the resultant stream from the M-Mux, and outputting a final resultant stream; and a Multiple Transport Stream Processor (M-Processor), coupled to the S-Mux, for receiving the final resultant stream, and sending the final resultant stream to a corresponding framer. 
         [0006]    Further, a method for setting the bandwidth of a multiple stream decrypting and decoding system includes: authenticating a multiple transport stream decryption card; sending a transport stream through the system; extracting program information from the transport stream; utilizing the program information to set a bandwidth limit to the system; and enabling the multiple transport stream decryption card. 
         [0007]    These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]      FIG. 1  is a diagram of a multiple transport stream decrypting and decoding system according to a first embodiment of the present invention. 
           [0009]      FIG. 2  is a diagram of a multiple transport stream decrypting and decoding system according to a second embodiment of the present invention. 
           [0010]      FIG. 3  is a diagram of a multiple transport stream decrypting and decoding system according to a third embodiment of the present invention. 
           [0011]      FIG. 4  is a diagram of a multiple transport stream decrypting and decoding system according to a fourth embodiment of the present invention. 
           [0012]      FIG. 5  is a flowchart detailing steps of the method of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0013]    Please refer to  FIG. 1 .  FIG. 1  is a diagram of a multiple transport stream decrypting and decoding system  100  according to a first embodiment of the present invention, comprising a multiple transport stream decryption card  40 . For simplicity, the system  100  only shows two tuner+demodulator units (NIMs)  10 ,  20  respectively. Please note, however, that this is not a limitation of the present invention, and the number of connected NIMs depends on a capacity of the multiple transport stream decryption card  40 . Please note that in the following description, the term ‘CableCARD’ will be utilized, where CableCARD is a trademarked name of one embodiment of a multiple transport stream decryption card. The disclosed invention applies to any decryption cards that can support multiple transport stream decrypting and decoding, however. 
         [0014]    A first NIM  10  and a second NIM  20  are coupled to a Multiple Transport stream multiplexer (M-Mux)  30 , for outputting a first transport stream (TS) TS 1  and a second transport stream TS 2  respectively. The two transport streams TS 1  and TS 2  are multiplexed by the M-Mux  30 , and pre-headers comprising 12 bytes of information (such as the identification number of each transport stream) are added for identification purposes. The multiplexed TS is sent to a CableCARD  40 , and also to a Source Multiplexer (S-Mux)  50 . The CableCARD  40  decrypts the received multiplexed TS and sends the decrypted TS to the S-Mux  50 . The S-Mux  50  then multiplexes the original multiplexed TS and the decrypted multiplexed TS into a single TS, which is then output to a demux  60 . An embodiment of the demux  60  comprises a multiple transport stream processor (M-processor)  65 , a first framer  72 , a second framer  74 , an input buffer  80 , a section filter  85 , and a Central Processing Unit (CPU)  90 . The Central Processing Unit (CPU)  90 ,  290 ,  390 , and  490  could be a transport stream layer, packetized elementary stream layer, or elementary stream layer processor inside the demux  60 , or it could be a system processor of the whole chip or whole MPEG decoding system outside the demux  60  to control the whole system to function. Here, the M-Processor  65  acts as a demultiplexer with a single input and multiple outputs. As each original TS comprises the pre-header, when the M-Processor  65  demultiplexes the transport streams and strips every pre-header, it can determine which framer each TS should be framed in according to the attached ID in the pre-header. After the transport streams are framed using the framers  72 ,  74 , they can then be sent to the input buffer  80 , for being output to a destination apparatus, such as a digital television. It should be noted that the inclusion of the S-Mux  50  reduces the number of transport streams being input to the M-Processor  65 , thereby reducing the complexity of synchronization of the system  100 . 
         [0015]    As the CableCARD  40  has a limited bandwidth, the disclosed system  100  also includes a Packet Identifier (PID) Filter  35 , for controlling the data rate from the M-Mux  30  to the CableCARD  40 . Initially, the transport streams are sent directly to the CPU  90  and Section Tables are extracted. The CPU  90  then determines what the wanted PIDs are, and will set the PID filter  35  accordingly. This particularly applies to a system that utilizes many transport streams. The PID filter  35  serves as a cut-off bandwidth point for the CableCARD  40 . 
         [0016]    The disclosed system  100  of  FIG. 1  can also be modified while retaining the disclosed advantages. Please refer to  FIG. 2 .  FIG. 2  is a diagram of a multiple transport stream decrypting and decoding system  200  according to a second embodiment of the present invention. As can be seen, the system  200  in  FIG. 2  comprises two Source Multiplexers (S-Mux)  252 ,  254  respectively. In this embodiment, the first transport stream TS 1  is sent directly to a first S-Mux  252 , and the second transport stream TS 2  is sent directly to a second S-Mux  254 . The first transport stream TS 1  and the second transport stream TS 2  are also sent directly to the M-Mux  230 , multiplexed, and sent to the CableCARD  240 . The multiplexed TS will not be sent directly to the M-Processor  265 , however. The M-Processor  265  only receives the decrypted multiplexed TS output from the CableCARD  240 , demultiplexes the decrypted multiplexed TS and sends a first decrypted TS to the first S-Mux  252 , and a second decrypted TS to the second S-Mux  254 . The first S-Mux  252  then selects a first multiplexed TS from the first TS and the first decrypted TS according to a selection signal provided by the CPU  290 , and the second S-Mux  254  selects a second multiplexed TS from the second TS and the second decrypted TS according to the selection signal. The CPU  290  generates the selection signal in accordance with the usage of the CableCARD. The first multiplexed TS will then be sent to a first framer  272 , and the second multiplexed TS will be sent to a second framer  274 . Please note that the inclusion of an extra S-Mux and the reversal of the M-Processor and S-Mux connection means that each TS does not need a pre-header, and is delivered utilizing the conventional MPEG-2 standard. 
         [0017]    Please refer to  FIG. 3 .  FIG. 3  is a diagram of a multiple transport stream decrypting and decoding system  300  according to a third embodiment of the present invention. The system  300  shown in  FIG. 3  utilizes an extra M-Processor for replacing the function of the S-Mux. Please note that this system  300  requires two extra framers. As before, the first transport stream TS 1  and the second transport stream TS 2  are sent to the M-Mux  330 , where they are multiplexed to output a multiplexed TS. The multiplexed TS is directly input to a first M-Processor  365 . The multiplexed TS is also input to the CableCARD  340 , decrypted, and output to a second M-Processor  367 . The first M-Processor  365  will demultiplex the multiplexed TS (the transport streams received directly from the NIMs  310 ,  320 ) to a first framer  372  and a second framer  374 . The second M-Processor  367  will demultiplex the decrypted multiplexed TS to a third framer  376  and a fourth framer  378 . The advantage of this embodiment is that it contains fewer multiplexing-demultiplexing stages. 
         [0018]    Please refer to  FIG. 4 .  FIG. 4  is a diagram of a multiple transport stream decrypting and decoding system  400  according to a fourth embodiment of the present invention. The system  400  is almost the same as the system  100  shown in  FIG. 1 , except this system  400  only comprises one framer  472 . When the output of the S-Mux  450  reaches the M-Processor  465 , each TS in the multiplexed signal contains a pre-header. The framer  472  has a flexible index, meaning it can support receiving transport streams TS 1 , TS 2  from both NIMs  410 ,  420  respectively simply by changing the index. The M-Processor  465  receives the TS from the S-Mux  450 , and removes the pre-headers from each TS, so each TS is now in a standard MPEG format. The M-Processor  465  will then generate a new index signal accompanying the TS according to which TS is finally selected to be framed in the framer  472 . Please note that the selection of the TS is controlled by the CPU  490 . Compared to the frames in the other embodiments (such as framers  72 ,  74 ,  272 ,  274 ), the framer  472  processes at a faster rate, for example, two times the processing rate in the case of processing the TS multiplexed from two transport streams. 
         [0019]    A method for setting the PID filter  35 ,  235 ,  335 ,  435  to eliminate unwanted bandwidth is also disclosed. Initially, the system  100 ,  200 ,  300 ,  400  authenticates the CableCARD  40 ,  240 ,  340 ,  440  by confirming the CableCARD  40 ,  240 ,  340 ,  440  has been inserted. Then, the transport streams are sent directly from the NIMs  10 ,  20 ,  210 ,  220 ,  310 ,  320 ,  410 ,  420  to the input buffer  80 ,  280 ,  380 ,  480 . The Section Tables are extracted, utilizing the Section Filter  85 ,  285 ,  385 ,  485 , and the result sent to the CPU  90 ,  290 ,  390 ,  490 . From this information, the CPU  90 ,  290 ,  390 ,  490  is able to determine wanted Packet Identifiers, which it sets to the S-Mux  50 ,  252 ,  254 ,  450  (or M-Processor  365 ,  367  in the third embodiment). The CPU  90 ,  290 ,  390 ,  490  already knows the bandwidth limit of the inserted CableCARD  40 ,  240 ,  340 ,  440 . If the bandwidth is insufficient to support all desired PIDs, the CPU  90 ,  290 ,  390 ,  490  will further utilize the determined PIDs to set the PID filter  35 ,  235 ,  335 ,  435 . At this stage, the system  100 ,  200 ,  300 ,  400  can then enable the CableCARD  40 ,  240 ,  340 ,  440 . 
         [0020]    Please refer to  FIG. 5 .  FIG. 5  is a flowchart detailing the steps of the above-disclosed method. The steps are as follows: 
         [0021]    Step  500 : Is the CableCARD authenticated? If yes go to Step  504 , if no go to Step  502 ; 
         [0022]    Step  502 : Receive transport stream from NIM; 
         [0023]    Step  504 : Determine a bandwidth limit of the CableCARD; 
         [0024]    Step  506 : Send a transport stream; 
         [0025]    Step  508 : Extract Section Tables of the transport stream, and parse the Section Tables to obtain wanted Program Identifiers (PIDs); 
         [0026]    Step  510 : Is the bandwidth of the CableCARD sufficient to support the wanted PIDs? If yes go to Step  514 , if no go to Step  512 ; 
         [0027]    Step  512 : Set PIDs to PID Filter; 
         [0028]    Step  514 : Enable CableCARD. 
         [0029]    Initially, authentication of a CableCARD is carried out (Step  500 ). If the CableCARD is not authenticated, a transport stream will be received from the NIM (Step  502 ). If the CableCARD is authenticated, a bandwidth limit of the CableCARD is determined (Step  504 ). A transport stream is then sent (Step  506 ) and Section Tables extracted and parsed to obtain wanted Program Identifiers (Step  508 ). It is then determined if the bandwidth of the CableCARD is sufficient to support all wanted PIDs (Step  510 ). If it is sufficient then the CableCARD will be enabled (Step  514 ). If the bandwidth is not sufficient, PIDs will first be set to the PID filter (Step  512 ), and the CableCARD will then be enabled (Step  514 ). 
         [0030]    The inclusion of the S-Mux in the first, second, and fourth embodiments not only reduces the number of transport streams being input to the M-Processor, but also functions to select whether a TS from the source or from the CableCARD will be displayed. If a CableCARD is not inserted or not authenticated, the S-Mux can choose to select a transport stream from the NIM. The utilization of two M-Processors in the third embodiment also reduces the traffic on a single M-Processor. The disclosed multiple transport stream decrypting and decoding system also utilizes a PID filter, for balancing the input and output of the system. The PID filter can limit the amount of content being sent to the CableCARD, thereby ensuring the processing rate of the system can be maintained at a high level. Furthermore, the system can utilize an authentication process to set the PID filter. 
         [0031]    In short, the disclosed system can support multiple transport stream decryption while reducing the hardware complexity of the conventional architecture defined by the Multi-Stream CableCARD specification (e.g. the CableCARD specification 2.0). Additionally, the inclusion of the PID filter prevents excess data being sent to the CableCARD. 
         [0032]    Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
A method for setting the bandwidth of a multiple stream decrypting and decoding system includes at least the following steps: authenticating a multiple transport stream decryption card; sending a transport stream through the system; extracting program information from the transport stream; utilizing the program information to set a bandwidth limit to the system; and enabling the multiple transport stream decryption card.