This application claims priority to the European Patent Application No. EP 05461004.3, filed Oct. 27, 2005, the contents of which are incorporated herein by reference.
1. Field of the Invention
The object of the invention is a system for controlling conditional access systems in a digital television decoder receiving a plurality of streams and a method for controlling conditional access systems.
2. Brief Description of the Background of the Invention Including Prior Art
In digital television decoders (so-called set-top boxes) the received stream of data can be descrambled by conditional access (CA) systems embedded in the decoder or provided by external modules.
The conditional access systems embedded in the decoder make use of a decoder descrambler, which is an integral part of the decoder, and smart cards placed in smart card slots of the decoder. The smart cards provide data necessary to configure the decoder descrambler. There are several companies designing embedded CA systems, usually in form of software modules, and the interfaces of CA systems of various providers differ. A typical digital television decoder, to support a specific embedded CA system, must have its software adapted to the interface of the CA system. Such adaptation is problematic for decoder designers, since it requires a considerable workload and resources.
The conditional access systems provided by external modules use an external descrambler, which is an integral part of the module, and therefore external to the digital television decoder, and smart cards placed in a smart card slot of the module. The smart cards provide data necessary to configure the external descrambler. The external CA systems are usually provided by Common Interface (CI) modules, or by Point of Deployment (POD) modules. These modules are placed in module slots of the decoder. Such systems can be operated via a standard CI or POD interface, which is provided by a software driver embedded in the decoder. If the stream is descrambled by the descrambler of the external module, the decoder descrambler is deactivated, to avoid double descrambling.
In a typical digital television decoder, a separate decoder descrambler is required for each CA system to be handled. Digital television decoders equipped with PIP (Picture-in-Picture) or DVR (Digital Video Recording) functionality require a concurrent reception of a plurality of data streams. In such a case, the number of necessary descramblers would be equal to the number of handled CA systems multiplied by the number of handled streams, which would greatly expand the structure of the decoder.
From the U.S. Pat. No. 6,185,735 entitled “Method of operating an apparatus intended to permit access to services” there is known a method for operating a digital television decoder, in which the processing of streams, scrambled by an algorithm other than the one used by a decoder provider, is blocked for a specific time. The decoder has only one conditional access system, which can support various scrambling methods but only if they are compatible with that conditional access system. Therefore, this solution does not allow concurrent operation of several conditional access systems in the decoder.
From the U.S. patent application No. US 2004/0237099 “Scramble release device for scrambled digital broadcasting streams in broadcasting communication convergence system” is known a device for reception of a plurality of scrambled digital broadcasting streams, having a control section, to which several descramblers are connected. The streams are directed to specific descramblers on the basis of their PID identifiers. Therefore, the descramblers and so their conditional access systems are static, i.e. a descrambler is preconfigured to descramble certain scrambling algorithm. Although the system is configured to receive several streams, only one descrambler for each scrambling algorithm is provided. If two streams of the same scrambling system would have to be received, the number of descramblers would double. Therefore, the complexity of the system, due to its static nature, is high.
A European Patent Application No. EP05105666.1 “System for controlling conditional access systems and method for controlling conditional access systems” presents a system for a digital television decoder receiving a single stream with a single decoder descrambler, to which access is allowed for a plurality of conditional access systems via virtual descramblers. Each conditional access system is provided with a client, which enables communication with the CA system via a client interface, uniform for all clients. However, the system is capable of receiving a single stream only.
The drawback of the known systems for controlling conditional access systems is their inability to provide easy coordination of the different conditional access systems for descrambling a plurality of data streams. The addition of each new conditional access system requires modification of the existing software to provide compatibility, which is time-consuming and expensive.
Purposes of the Invention
It is an object of the present invention to provide system for controlling various conditional access systems in a digital television decoder receiving a plurality of streams.
This and other objects and advantages of the present invention will become apparent from the detailed description, which follows.
In a system for controlling conditional access systems in a digital television decoder with a signal receiving block receiving a plurality of streams, a signal processing block having a plurality of decoder descramblers and a conditional access block with at least one conditional access system provided with a client supporting communication via a client interface, the conditional access block additionally is provided with a client manager handling communication with conditional access systems via clients using the client interface and controlling descrambling of the streams by granting access to decoder descramblers to selected conditional access systems.
The client manager incorporates a plurality of virtual descrambler sets, each virtual descrambler set assigned individually to each decoder descrambler, where the virtual descrambler sets comprise virtual descramblers assigned to each conditional access systems registered for the decoder descrambler, being software objects emulating an interface of the decoder descrambler and a plurality of decoder descrambler switches, each decoder descrambler switch assigned individually to each decoder descrambler, for controlling the decoder descrambler by transmitting to it a configuration of the virtual descrambler assigned to a conditional access system which has been granted access to the particular decoder descrambler.
Preferably, at least one of the conditional access systems is a system handling a plurality of streams and the client provided for the conditional access system handling a plurality of streams comprises a plurality of PSI converters translating commands related to PSI data between the client interface and the system-specific interface and a plurality of descrambler converters translating commands related to descrambler configuration between the client interface and the system-specific interface.
It is of special advantage that at least one of the conditional access systems is a system handling a single stream and the client provided for the conditional access system handling a single stream comprises a single PSI converter translating commands related to PSI data between the client interface and the system-specific interface, a single descrambler converter translating commands related to descrambler configuration between the client interface and the system-specific interface, a PSI converter switch selecting the source of PSI data for the PSI converter and a descrambler converter switch selecting the virtual descrambler for sending commands related to descrambler configuration.
The client manager can comprise a client table for storing data describing the systems handled by individual clients, the data describing at least a capability to descramble each of the streams, the data being used to select the conditional access systems to be granted access to decoder descramblers.
Preferably, in the client table there are additionally stored priorities of individual clients, deciding on a priority of one system versus other systems to be granted access to a particular decoder descrambler.
The conditional access systems can be systems embedded in the decoder and/or systems provided by external modules.
The number of decoder descramblers can be equal to the number of received streams.
In a method for controlling conditional access systems in a digital television decoder with a signal receiving block receiving a plurality of streams and a signal processing block having a plurality of decoder descramblers and a conditional access block with at least one conditional access system provided with a client supporting communication via a client interface, handling communication with conditional access systems via clients using the client interface is executed by a client manager and descrambling of the streams is controlled by granting access to decoder descramblers to selected conditional access systems.
In the accompanying drawings one of the possible embodiments of the present invention is shown, where:
The decoder is provided with a CI slot 121 for handling CI modules 111 and two SC slots 122, 123 for handling smart cards (SC) 112, 113. The configuration shown is exemplary only. The decoder may be provided with additional SC or CI slots. In addition to, or instead of the CI slot, the decoder may be provided with a slot for handling POD modules. The access to resources of the CI module 111 is enabled by a CI slot interface 104. The access to resources of the smart cards 112, 113 is enabled by SC slot interfaces 105, 106. These interfaces are low-level software modules and they provide the resources of a card or a module inserted to a specific slot via a specific program interface. The CI slot interface is additionally connected to the signal processing block 131, from which it reads a scrambled stream, and after its descrambling, returns a descrambled stream.
The conditional access block 141 controls the process of descrambling of the received streams. In the presented embodiment, the streams can be descrambled by the decoder descramblers 133, 135, controlled by selected embedded conditional access systems, or by a descrambler of the CI module, controlled by a conditional access system of the CI module.
The conditional access block 141 cooperates with conditional access systems. These can be embedded conditional access (CA) systems 143, 145, 147, which cooperate with smart cards, or conditional access systems provided by CI or POD modules, which may be communicated by the CI or POD driver 149.
One of the elements of the invention are conditional access system clients 142, 144, 146, 148, which allow communication with those systems via an application program interface (API) uniform for all clients. Thanks to such solution, the other software modules of the decoder need to handle only the client interface 152 to communicate with any CA system.
The conditional access block 141 also comprises a client manager 151. The client manager 151 controls the process of descrambling streams by selecting CA systems responsible for descrambling and controlling the decoder descramblers. It can be a separate hardware module, a hardware element of the decoder controller, or a software module operated by the decoder controller.
The client manager 151, described in more details in
The system according to the invention has been constructed in such a way that each CA system operates independently of the other systems. The cooperation of the systems is controlled by the client manager, so there is no need for any changes in the CA systems themselves to enable their cooperation.
The client manager 401 comprises a descrambler controller 421 for handling communication between clients and descramblers, by transmitting commands from a particular client of embedded conditional access system to a particular decoder descrambler. The descrambler controller 421 comprises virtual descramblers organized in sets, one set is provided for each decoder descrambler. In each set there is one virtual descrambler for each client. In the presented example, there are two sets 430, 440 with three virtual descramblers 431, 432, 433, 441, 442, 443 in each set. The virtual descrambler is a software object whose structure emulates the hardware interface of the decoder descrambler, so that each embedded CA system may operate as if it were connected directly to the hardware decoder descrambler.
An exemplary structure of the virtual descrambler as a software object is presented below. In the example, the syntax of the C language is used:
The virtual_descrambler_s structure comprises a table slots_table, describing the slots of the virtual descrambler, with the number of slots specified by a MAX_DESC_SLOTS constant, which emulate the slots of the decoder descrambler. A client_id element identifies the identifier of the client to which the virtual descrambler is assigned. The structure also comprises an indicator of the number of open slots open_slots_count, which is useful to determine the number of the next descrambler slot to be opened. The descrambler slots are described by the virtual_descrambler_slot_s structure. An example of such a structure is presented below:
The pid field specifies the PID identifier of packets to be descrambled by a slot of the decoder descrambler specified in the decoder_descrambler_slot field. The fields algorithm, odd_key having the size of ODD_SIZE and even_key having the size of EVEN_SIZE, specify the current algorithm and the descrambling keys for a particular slot of the decoder descrambler. The fields odd_key_length and even_key_length are used to change the length of the descrambler keys during the operation. The virtual_descrambler_status field may have the value of “Open” or “Closed”, which informs whether a particular slot has been already opened by a client. The decoder_descrambler_status field may have the value of “Open” or “Closed”, which informs whether a particular slot of the decoder descrambler has been already opened, and is useful for debugging purposes.
The number of the slot of the virtual descrambler in the descrambler structure can be assigned consecutively for each opened slot, or can be a number referring to the number of the slot of the decoder descrambler which is to be opened by a particular conditional access system.
The decoder descrambler controller 421 comprises switches 422, 423 for each decoder descrambler 461, 462. Each switch connects the virtual descrambler, which is granted access to descrambling the currently received stream, with the decoder descrambler, according to the procedure shown in
The client manager 401 also comprises an interface 405 for communicating with other blocks 481, such as middleware software, by which those blocks may gain access to data from the client table 453 or may gain access to the client interface 404, via which they may communicate with a selected CA system. For example, the other blocks may change the priority of clients if a particular high-level software module requires descrambling by a specified CA system, or collect important data from a specific conditional access system, such as a smart card number, smart card entitlements, or the versions of registered CA systems handled by clients.
The client manager 401 comprises a client table 453, which describes properties of individual clients. An exemplary format and contents of the table are presented below:
The first column of the client table specifies a client identifier. For clients capable of handling a plurality of streams simultaneously, individual entries are listed in the table for each stream, such as in the case of the CA 2 client.
The second column specifies if a client handles an embedded conditional access system (E) or a system provided by an external module (M).
The third column specifies the priority of a client, which decides on priority of one system versus other systems capable of descrambling the currently received stream. Alternatively, the priority may be specified individually for each stream.
The next columns specify the ability of descrambling the TS1 and TS2 streams, as well as the client which has been granted access to the decoder descrambler for descrambling the specific stream.
In the table presented above, the clients CA 1, CA 2 and CA 3 are the clients of systems embedded in the decoder, which require access to the decoder descrambler, and the CA CI client is a client of a conditional access system provided by a CI module, which uses the descrambler of the module. The CA 1 and CA CI clients are currently capable of descrambling the first stream TS1. The CA 2 client is capable of handling two streams simultaneously, and it is currently capable of descrambling the second stream TS2. The CA 3 client is incapable of descrambling any of the received streams. Therefore, the access to descrambling the first stream TS1 is granted to the CA 1 client, since it has greater priority than the CA CI client. The access to descrambling the second stream TS2 is granted to the CA 2_1 client.
In case when the stream is to be descrambled by a decoder descrambler, a command is sent to the clients of systems using descramblers of CI or POD modules, to deactivate those descramblers. In case when the stream is to be descrambled by a descrambler of the CI or POD module, the other descramblers, including the decoder descrambler, are deactivated. This guarantees that the stream is descrambled by a single descrambler.
The descrambling capability is specified by each client on the basis of the PSI data, which is provided to the client by the client manager, according to the procedures shown in
The described invention enables convenient coordination of various conditional access systems for descrambling a plurality of data streams. The decoder descrambler switches and sets of virtual descramblers make it possible to descramble a plurality of streams scrambled by various CA systems by using a single decoder descrambler for each stream. Therefore, it enhances the functionality of the decoder without extending its hardware structure, which saves costs and makes the solution possible to implement in current digital television decoder architectures.
The preferred embodiment having been thus described, it will now be evident to those skilled in the art that further variation thereto may be contemplated. Such variations are not regarded as a departure from the invention, the true scope of the invention being set forth in the claims appended hereto.
Number | Date | Country | Kind |
---|---|---|---|
05461004.3 | Oct 2005 | EP | regional |