1. Statement of the Technical Field
The present invention relates to packet-based communication systems. More particularly, the present invention relates to packet-based communication systems implementing methods for re-multiplexing decrypted transport packets.
2. Description of the Related Art
Digital television set-top boxes (STBs) or set-top units (STUs) are devices that connect to display devices (e.g., televisions and computing devices) and external sources of transport streams. The transport streams can include broadcast program data packets containing broadcast program data. The transport streams can also include non-broadcast program data packets containing non-broadcast program data and/or encrypted non-broadcast program data. The STBs/STUs are generally configured to process the transport streams for obtaining content which is then displayed on the display devices.
During operation of an STB/STU, each of the transport streams is processed for obtaining the broadcast program data packets and the non-broadcast program data packets therefrom. The broadcast program data packets are sent to a first transport packet parser for temporary storage and subsequent processing to obtain content that is to be displayed on a display device. The non-broadcast program data packets are sent to a multi-stream bi-directional cable card (e.g., an “M-card”) for decryption of the data contained therein and re-encryption of the decrypted data using an encryption key that is unique to the STB/STU. Subsequent to re-encrypting the data, the non-broadcast program data packets are sent to a second transport packet parser for temporary storage and subsequent processing to obtain content that is displayed on the display device. The above described multi-transport packet parser configuration provides an STB/STU implementing a data processing method that is computationally inefficient and hardware intensive.
This summary is provided to comply with 37 C.F.R. §1.73, presenting a summary of the invention briefly indicating the nature and substance of the invention. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
One embodiment of the present invention concern systems and methods for processing a plurality of transport streams. The transport streams include broadcast program data packets containing broadcast program data and non-broadcast program data packets comprising non-broadcast program data. The methods involve multiplexing at least a portion of the non-broadcast program data packets together to form a first signal. The first signal is processed to generate a second signal including re-encrypted non-broadcast program data. The methods further involve demultiplexing the second signal to obtain at least one data packet therefrom including the re-encrypted non-broadcast program data and multiplexing the data packet and at least one of the broadcast program data packets together to form at least one multiplexed packet.
Another embodiment of the present invention comprises integrated circuits (ICs) comprising a substrate having a semiconductor surface. The IC comprises a first multiplexer, a demultiplexer, and a second multiplexer. The first multiplexer is disposed on the substrate. The first multiplexer is configured for multiplexing at least a portion of the non-broadcast program data packets together to form a first signal. The demultiplexer is disposed on the substrate and demultiplexes a second signal including the non-broadcast program data that has been re-encrypted to obtain at least one data packet therefrom. The second multiplexer is coupled to the demultiplexer and disposed on the substrate. The second multiplexer is configured for multiplexing the data packet and at least one of the broadcast program data packets together to form at least one multiplexed packet.
The present invention is described with reference to the attached figures, wherein like reference numerals are used throughout the figures to designate similar or equivalent elements. The figures are not drawn to scale and they are provided merely to illustrate the instant invention. Several aspects of the invention are described below with reference to example applications for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One having ordinary skill in the relevant art, however, will readily recognize that the invention can be practiced without one or more of the specific details or with other methods. In other instances, well-known structures or operations are not shown in detail to avoid obscuring the invention. The present invention is not limited by the illustrated ordering of acts or events, as some acts may occur in different orders and/or concurrently with other acts or events. Furthermore, not all illustrated acts or events are required to implement a methodology in accordance with the present invention.
Embodiments of the present invention will now be described with respect to
Notably, embodiments of the present invention overcome certain drawbacks of conventional STBs/STUs. For example, embodiments of the present invention use a single processing pipeline (or a Transport Packet Parser) instead of multiple processing pipelines (or Transport Packet Parsers). This reduced processing pipeline configuration improves an overall efficiency of a packet processing device (e.g., an STB/STU) design as well as reduces the hardware logic thereof. As such, embodiments of the present invention are less hardware intensive than conventional STBs/STUs. Embodiments of the present invention are also relatively computationally efficient as compared to conventional STBs/STUs.
The system, method and apparatus desired herein, may be utilized in any application where data packets need to be processed. Such applications include, but are not limited to, television applications, computer applications, packet-based electronic communication applications, and packet-based optical communication applications. Accordingly, the system, apparatus and method will now be described generally in relation to one such application, namely the television application (and more broadly the packet-based electronic communication application).
The word “example” is used herein to mean serving as an instance or illustration. Any aspect or design described herein as “example” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word “example” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is if, X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances.
Referring now to
As shown in
The STB 104 is generally configured to receive and process the transport streams from the TS sources 1021, . . . , 102N. In particular, the STB 104 is configured to process the transport streams for obtaining the broadcast program data packets and the non-broadcast program data packets therefrom. The STB 104 is also configured to temporarily store the broadcast program data packets for use in at least one subsequent re-multiplex operation. The STB 104 is further configured to decrypt the data contained in the non-broadcast program data packets and re-encrypt the decrypted data using an encryption key that is unique to the STB 104. Thereafter, the non-broadcast program data packets are temporary stored for use in subsequent re-multiplex operations. The broadcast program data packets and the non-broadcast program data are multiplexed together to form one or more multiplexed signals. The multiplexed signals can be subsequently processed to obtain content that is subsequently displayed on the display device 106. The display device 106 can include, but is not limited to, a television and a computer monitor of a desktop personal computer system, a laptop personal computer system, a personal digital assistant, a wireless computing device, or any other general purpose computer processing device.
Referring now to
Although the front end hardware 204 and the M-Card 212 are shown coupled to the substrate 290, embodiments of the present invention are not limited in this regard. For example, embodiments of the M-Card 212 can comprise an M-Card disposed on a substrate having a semiconductor surface. Also, embodiments of the present invention can comprise a package 280 including one or more integrated circuits (ICs) 252, 254 (as shown in
Referring again to
The framer 206 is configured to process the digital transport streams 2421, 2422, 2423, . . . , 242N for detecting frames or identifying packets contained therein. The framer 206 is communicatively coupled to multiplexer 208. Subsequent to detecting the frames or identifying the packets, the framer 206 communicates (serially or in parallel) the packets 2221, 2222, 2223, . . . , 222N to the multiplexer 208. More particularly, the framer 206 writes all or a portion of the packets 2221, 2222, 2223, . . . , 222N (serially or in parallel) to a memory device (not shown) of the multiplexer 208. The framer 206 also communicates control signals 250 to and from the multiplexer 208.
The multiplexer 208 will be described in detail below in relation to
As shown in
The M-Card 212 is also configured to re-encrypt the decrypted data using at least one encryption key that is unique to the STB 104. In this regard, it should be understood that the M-Card 212 is communicatively coupled to the main processor 220. The main processor 220 provides the unique encryption key(s) to the M-Card 212. Encryption keys are well known to those having ordinary skill in the art, and therefore will not be described herein. However, it should be understood that the unique encryption key(s) and re-encryption process collectively ensure that the data contained in the multiplexed signal 224 will be securely retained within the STB 104.
The M-Card 212 is also communicatively coupled to the demultiplexer 210. The M-Card 212 provides the signal 228 including packets containing the re-encrypted data to the demultiplexer 210. The demultiplexer 210 will be described in detail below in relation to
The demultiplexer 210 is communicatively coupled to the transport packet parser 214. The demultiplexer 210 is configured to communicate one or more multiplexed packets 2301, 2302, 2303, . . . , 230N to the transport packet parser 214. Transport packet parsers are well known to those having ordinary skill in the art, and therefore will not be described herein. However, it should be understood that the transport packet parser 214 can generally check for which packets it is to receive using a program identifier, select the packets for which it is to receive, temporarily store packets, process the stored packets (to decrypt the data, re-encrypt the data, and/or index the data) and communicate stored packets 232 for a particular channel (e.g., a television channel and a particular downloaded movie) to the decoder 216. As should be understood, an indexing of the data can facilitate certain display device operations (such as a pause operation, a rewind operation, a play operation, and a fast forward operation). The transport packet parser 214 can also generally perform encryption key change operation, clock recovery operations, and other processing operations. As shown in
The decoder 216 process the packets 232 for decoding the same. The packet decoding is performed to decompress the data contained therein. The decoder 216 also communicates the decoded packets 234 to the secondary processor 218. The secondary processor 218 processes the packets for placing the same in a proper form for communication to a display device (e.g., the display device 106 of
Referring now to
Each of the TSP processors 3021, 3023, 3023, . . . , 302N is generally configured to process packets for a particular transport stream signal 2401, 2402, . . . , 240N. For example, the first TSP processor 302, can process packets 2261, 2221 for a first transport stream signal 2401. Similarly, the second TSP processor 3022 can process packets 2262, 2222 for a second transport stream signal 2402, and so on.
As shown in
The memory device 306 can generally include one or more buffers 3301, . . . , 330K. Each buffer 3301, . . . , 330K is provided to temporarily store a packet received from an external device (e.g., the framer 206 of
The MP generator 310 is configured to receive the non-broadcast program data packets 318 from the TSP parser 308. The MP generator 310 is configured to form modified packets 320 by adding a header to each of the non-broadcast program data packets 318. As noted above, this header can include, but is not limited to, data (such as a source address, a destination address, control information, and timing information) that is needed for a successful transmission of the MP packets 320 to an external device (e.g., the M-Card 212 of
The MP generator 310 is communicatively coupled to the multiplexer 312. Multiplexers are well known to those having ordinary skill in the art, and therefore will not be described herein. However, it should be understood that the multiplexer 312 is generally configured for multiplexing the MP packets 320 together to form a multiplexed signal 224. The multiplexer 312 is also generally configured for communicating the multiplexed signal 224 to an external device (e.g., the demultiplexer 210 of
Referring now to
Each of the packet processors 4021, 4022, 4023, . . . , 402N is generally configured to process packets for a particular transport stream signal 2401, 2402, . . . , 240N. For example, the first TSP processor 4021 can process packets 2261, 4221 for a first transport stream signal 2401. Similarly, the second TSP processor 4022 can process packets 2262, 4222 for a second transport stream signal 2402, and so on.
As shown in
The memory device 406 can generally include one or more buffers 4301, . . . , 430K. Each buffer 4301, . . . , 430K is provided to temporarily store a broadcast program data packet received from an external device (e.g., the multiplexer 208 of
The TS remultiplexer 410 is configured to retrieve packets from the memory devices 406, 408. Multiplexers are well known to those having ordinary skill in the art, and therefore will not be described herein. However, it should be understood that the TS remultiplexer 410 is generally configured for multiplexing the broadcast program data packets 2261 and non-broadcast program data packets 4221 together to form respective multiplexed packets 2301, 2302, 2303, . . . , 230N. The TS remultiplexer 410 is also generally configured for communicating the respective multiplexed packets 2301, 2302, 2303, . . . , 230N to an external device (e.g., the transport packet parser 214 of
The following
Referring now to
In step 508, packets (e.g., packets 2221, 2222, . . . , 222N of
In step 514, the broadcast program data packets are temporarily stored and used in a remulitplex operation to form multiplexed packets. The broadcast program data packets can be temporarily stored in a demultiplexer (e.g., the demultiplexer 210 of
After completing step 514, the method 500 continues with step 516. In step 516, the non-broadcast program data packets are processed to form modified packets. Step 516 can involve adding headers (e.g., MTS headers) to each of the packets. Packet headers are well known to those having ordinary skill in the art, and therefore will not be described herein. Step 516 can be performed by a modified packet generator (e.g., the MP generator 310 of
Referring now to
Step 528 generally involves performing remultiplex operations to form a plurality of multiplexed packets (e.g., the multiplexed packets 2301, 2302, 2303, . . . , 230N of
After completing step 528, the method 500 continues with step 530. In step 530, the multiplexed packets formed in step 528 are communicated to a single transport packet parser (e.g., the TP parser 214 of
Referring now to
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Numerous changes to the disclosed embodiments can be made in accordance with the disclosure herein without departing from the spirit or scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above described embodiments. Rather, the scope of the invention should be defined in accordance with the following claims and their equivalents.
Although the invention has been illustrated and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art upon the reading and understanding of this specification and the annexed drawings. In addition, while a particular feature of the invention may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, to the extent that the terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description and/or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the following claims.