Method and device for transmitting video stream between host device and electronic descrambling device

文档序号:1144530 发布日期:2020-09-11 浏览:10次 中文

阅读说明:本技术 在主机设备和电子解扰设备之间传输视频流的方法和设备 (Method and device for transmitting video stream between host device and electronic descrambling device ) 是由 法比安·格雷莫 于 2016-08-29 设计创作,主要内容包括:本发明涉及在主机设备和电子解扰设备之间传输视频流的方法和设备。提出了一种电子解扰设备,诸如USB软件狗,用于解扰源于至少一个生产商的至少一个视频流,该电子解扰设备用于:连接到主机设备;从主机设备接收输出传输链从而接收加扰数据块,其中,该数据块属于特定的生产商并根据视频流进行定义,并且输出传输链包括与多个链输出描述符(oqTD)链接的链输出报头(oqH),第一链输出描述符指向包含生产商ID的输出描述分组,第二链输出描述符以及随后的链输出描述符指向数据块;接收输出描述分组;从输出描述分组获取生产商ID;利用生产商ID识别与数据块相关联的密钥数据;使用密钥数据来解扰加扰数据块;将经解扰的数据返回到主机设备。(The invention relates to a method and a device for transmitting a video stream between a host device and an electronic descrambling device. An electronic descrambling device, such as a USB dongle, for descrambling at least one video stream originating from at least one producer is proposed, the electronic descrambling device being adapted to: connecting to a host device; receiving an output transport chain from a host device to receive a scrambled data block, wherein the data block belongs to a particular producer and is defined from a video stream, and the output transport chain comprises a chain output header (oqH) linked to a plurality of chain output descriptors (oqTD), a first chain output descriptor pointing to an output description packet containing a producer ID, a second chain output descriptor and subsequent chain output descriptors pointing to the data block; receiving an output description packet; obtaining a manufacturer ID from the output description packet; identifying key data associated with the data block using the manufacturer ID; descrambling the scrambled data block using the key data; the descrambled data is returned to the host device.)

1. A method of descrambling at least one video stream by an electronic descrambling device connected to a host device, the at least one video stream originating from at least one producer having a producer ID, the host device comprising a controller comprising a bulk pipe output transport and a bulk pipe input transport, the method comprising the steps of: at the location of the host device,

-defining blocks of data from the video stream for each producer,

-forming a chain of outgoing transports comprising a chain outgoing header (oqH) linked to a plurality of chain outgoing descriptors (oqTD), a first chain outgoing descriptor pointing to an outgoing description packet containing at least one producer ID, a second and subsequent chain outgoing descriptor pointing to data blocks, each data block belonging to a particular producer,

-forming, by the host device, an inbound transport chain comprising a chain input header (iqH) linked with a plurality of chain input descriptors (iqTD), each chain input descriptor pointing to a descrambled data block, and a last chain input descriptor being used for generating an interrupt,

-transmitting, by the controller, the output transmission chain to the electronic descrambling device and then the scrambled data block to the electronic descrambling device,

at the electronic descrambling device:

-receiving, by the electronic descrambling device, an outgoing description packet and identifying, by the electronic descrambling device, key data associated with at least one chunk, the key data being identified with the producer ID,

-descrambling the scrambled data block using the key data,

-returning the descrambled data to the host device,

at the host device:

-receiving, by the controller, the input transport chain, waiting for block descrambling data from the electronic descrambling device,

-storing the received descrambled data block in the address indicated by the corresponding chain input descriptor (iqTD),

-triggering an interrupt by the reception of the last descrambled block.

2. The method of claim 1, wherein the video stream is compliant with an MPEG standard.

3. A method according to claim 1 or 2, wherein the electronic descrambling device is a USB dongle.

4. The method of claim 2, wherein the MPEG stream comprises a multi-program transport stream (MPTS) including a plurality of sub-streams having respective program IDs and intended for the client, the method comprising the steps of:

-inserting a program ID for each sub-stream in an outgoing description packet, said incoming transport chain containing at least one block for each client associated with each program ID,

-informing each client that the transmitted block was descrambled.

5. The method of claim 2, wherein the MPEG stream is formed from a Single Program Transport Stream (SPTS) having one packet identifier PID.

6. Method according to any one of claims 4 or 5, wherein at least a first MPEG stream and a second MPEG stream are transmitted to the electronic descrambling device, each with a producer ID unique to each MPEG stream, the method comprising the steps of:

-inserting the producer ID of the first stream and the producer ID of the second stream in the first chain output descriptor,

-inserting data blocks from the first MPEG stream in the second chain output descriptor and inserting data blocks from the second MPEG stream in the third chain output descriptor.

7. The method of claim 6, wherein the transmission chain can contain different types of producers selected from among SPTS, MPTS or RAW mpeg, each identified using their producer ID.

8. Method according to any one of claims 1, 2, 4, 5 or 7, wherein said key data are transmitted to said electronic descrambling device through a dedicated channel, each key data being dedicated to one packet identifier PID, said key data being used together with data blocks of a specific program.

9. The method of any of claims 1, 2, 4, 5 or 7, wherein the descrambled block is re-encrypted by a channel key shared between the host device and the electronic descrambling device.

10. A host device having an interface with an electronic descrambling device to transfer at least one video stream originating from at least one producer having a producer ID from the host device to the interface with the electronic descrambling device, the host device comprising a controller comprising a bulk pipe output transport and a bulk pipe input transport, the controller being configured to:

-defining blocks of data from the video stream for each producer,

-forming a chain of outgoing transports comprising a chain outgoing header (oqH) linked to a plurality of chain outgoing descriptors (oqTD), a first chain outgoing descriptor pointing to an outgoing description packet containing at least one producer ID, a second and subsequent chain outgoing descriptor pointing to data blocks, each data block belonging to a particular producer,

-forming an import transport chain comprising a chain import header (iqH) linked with a plurality of chain import descriptors (iqTD), each chain import descriptor pointing to a descrambled data block and the last chain import descriptor being used to generate an interrupt,

-transmitting the outgoing transmission chain to the electronic descrambling device and then transmitting the scrambled data block to the electronic descrambling device, the key data used in the descrambling of the scrambled data block being identified with the producer ID,

-receiving said chain of in-transmissions, waiting for block descrambling data from said electronic descrambling device,

-storing the received descrambled data block in the address indicated by the corresponding chain input descriptor (iqTD),

-triggering an interrupt by the reception of the last descrambled block.

11. The host device of claim 10, wherein the video stream is compliant with an MPEG standard and comprises a multi-program transport stream (MPTS) comprising a plurality of sub-streams each having a packet identifier PID and intended for a client, the controller further to:

-inserting a program ID for each program in an outgoing description packet, said incoming transport chain containing at least one block for each client associated with each packet identifier PID,

-informing each client that the transmitted block was descrambled.

12. Host device according to claim 10 or 11, wherein a first video stream and a second video stream are transmitted to the electronic descrambling device, each having a producer ID unique for each video stream, the controller being configured to:

-inserting the producer ID of the first stream and the producer ID of the second stream in the outgoing description packet,

-inserting in the outgoing transport chain the client ID of the first stream and the client ID of the second stream,

-configuring at least two blocks in an input transport chain, one for a first stream and one for a second stream,

-informing the first client and the second client that the transmitted block is descrambled.

13. The host device of claim 10, wherein the host device is configured to decrypt the descrambled block with a channel key shared between the host device and a USB dongle.

14. An electronic descrambling device for descrambling at least one video stream originating from at least one producer, the electronic descrambling device being adapted to:

-receiving an outgoing transport chain from an I/O interface connectable to a host device, whereby a scrambled data block is received, wherein the data block belongs to a specific producer and is defined from the video stream, and the outgoing transport chain comprises a chain outgoing header (oqH) linked to a plurality of chain outgoing descriptors (oqTD), a first chain outgoing descriptor pointing to an outgoing descriptor packet containing a producer ID, a second chain outgoing descriptor and subsequent chain outgoing descriptors pointing to the data block;

-receiving an output description packet;

-obtaining a producer ID from the outgoing description packet;

-identifying key data associated with the data block using the manufacturer ID;

-descrambling the scrambled data block using the key data;

-returning the descrambled data to the I/O interface connectable to the host device.

15. The electronic descrambling device of claim 14, wherein said electronic descrambling device is a USB dongle.

16. The electronic descrambling device of claim 14 or 15, wherein said electronic descrambling device comprises a key table populated with key data relating to each of a plurality of producer IDs.

17. The electronic descrambling device of claim 16, wherein in case that one manufacturer ID is associated with a plurality of key data, said key table contains a packet identifier PID or a program ID.

18. The electronic descrambling device of any of claims 14 to 17, wherein said electronic descrambling device comprises a private key and is further configured to receive encrypted key data from said host device and to decrypt said encrypted key data with said private key.

19. Electronic descrambling device according to claim 18, wherein said electronic descrambling device is adapted to retrieve said encrypted key data in the form of entitlement control messages.

20. An electronic descrambling device as claimed in claim 18, wherein said electronic descrambling device is configured to retrieve said encrypted key data in the form of a license file.

21. Electronic descrambling device according to any of claims 14 to 20, wherein said electronic descrambling device comprises an I/O interface connectable to a host device, a memory functioning as a buffer memory and for storing data blocks, a processing module in charge of directing data streams to enter or leave said memory via said I/O interface, and a descrambling module, wherein said processing module is configured to process input and output pointers of said buffer memory, to transfer pointers for data blocks stored in memory to said descrambling module, to track producer IDs for said data blocks and to load related key data in said descrambling module.

22. Electronic descrambling device according to any of claims 14 to 21, wherein said electronic descrambling device comprises a key memory storing key data received from said host device.

Technical Field

The present invention relates to the field of video data transmission to USB dongles.

Background

Multimedia content may be transmitted from a provider to an end customer in a variety of ways. To protect this valuable content, the content may be scrambled (encrypted) so that only authorized persons can access it.

The reception of the scrambled multimedia content may be done in a different device, such as a personal computer, tablet device, smartphone, or other device that may not have the necessary descrambling (decryption) capability to access the content.

Disclosure of Invention

In one embodiment, an electronic descrambling device may be connected to a host device and used to descramble multimedia content. The electronic descrambling device is a portable module comprising an electronic chip connected with the host device via a communication port. It is commonly referred to as a "dongle". The electronic chip includes a descrambling engine and a memory for temporarily storing the incoming data blocks. According to a particular embodiment, the electronic descrambling device is a USB dongle and the video stream is an MPEG stream.

Currently, the transmission protocols for electronic descrambling devices are not suitable for the continuous exchange of data at bit rates compatible with video streams. They are designed to accommodate the transfer of stored data. To solve this problem, an electronic descrambling device connected to a host device is proposed to implement a method of descrambling at least one video stream originating from at least one producer having a producer ID, said host device comprising a controller comprising a bulk pipe output transport and a bulk pipe input transport, said method comprising: at the location of the host device,

-defining blocks of data from the video stream for each producer,

-forming an outgoing transport chain comprising a chain outgoing header (oqH) linked to a plurality of chain outgoing descriptors (oqTD), a first chain outgoing descriptor pointing to an outgoing description packet containing at least one producer ID, a second and subsequent chain outgoing descriptor pointing to data blocks, each data block belonging to a particular producer,

-forming, by the host device, an inbound transport chain comprising a chain input header (iqH) linked to a plurality of chain input descriptors (iqTD), each chain input descriptor pointing to a descrambled data block, and a last chain input descriptor for generating an interrupt,

-transmitting, by the controller, the output transmission chain to the electronic descrambling device and then the scrambled data block to the electronic descrambling device,

at the electronic descrambling device:

-receiving, by the electronic descrambling device, the description packet and identifying, by the electronic descrambling device, the key data associated with at least one chunk,

-descrambling the scrambled data block using the key data,

-returning the descrambled data to the host device,

at a host device:

-receiving, by a controller, an incoming transport chain, waiting for block descrambling data from an electronic descrambling device,

-storing the received descrambled data block in the address indicated by the corresponding chain input descriptor (iqTD),

-triggering an interrupt by the reception of the last descrambled block.

The format of the multimedia content is preferably an MPEG stream. An MPEG stream typically includes several sub-streams each having a different Packet Identifier (PID). Examples of sub-streams are audio, video, data and descriptive text. The sub-streams relate to the same multimedia content from the channel. An MPEG stream may comprise a plurality of channels, and the description of each sub-stream is located in a Program Map Table (PMT). In terms of scrambling of the data, the keys loaded into the electronic descrambling device are specific to the sub-streams and are identified using the manufacturer ID and PID.

Drawings

The following detailed description will be better understood with the benefit of the accompanying drawings, in which:

figure 1 shows a block diagram of a host device connected to an electronic descrambling device,

figure 2 shows the format of an example chain input and chain output queue according to the invention.

Figure 3a shows a first embodiment of a transmission chain,

figure 3b shows a second embodiment of a transmission chain,

figure 4 shows the management of queues in a buffer,

figure 5 shows an example of modules in an electronic descrambling device.

Detailed Description

FIG. 1 illustrates the various components of one embodiment of the present invention. The host (which may be, for example, a home multimedia receiver) includes a plurality of layers. The top layer may be a TV native application. The middleware layer may include DVB middleware and a media player module. The OS operator may be a lower layer that contains a stream management unit responsible for executing one embodiment of the present invention. The communication layer SoC may be configured for processing MPEG streams and may comprise a communication module (USB controller) with the electronic descrambling device. In the following description, the electronic descrambling device will be referred to as a "dongle".

Fig. 2 depicts one example of formatting for a chain of controllers, in particular USB controllers. The application layer in the host device receives the MPEG stream (or streams) and sets the format of the chain input and chain output (CT) in order to instruct the USB controller. The chain output starts with a chain output header (oqH) which functions as a link with a chain output descriptor (oqTD1 to oqTDn). A first chain output descriptor (oqTD1) points to an output description packet containing at least one producer ID. The application layer is responsible for composing the multiple chains and extracting the producer ID from the MPEG stream. The application layer then loads the producer ID in the outgoing description packet (oDP).

The first chain output descriptor (odTD1) points to the second chain output descriptor (odTD 2). The second chain output descriptor (and below the chain output descriptor) points to a block of data extracted from the MPEG stream. The application layer processing the MPEG stream divides the stream into data blocks and loads them into a buffer memory at addresses loaded into the chain output descriptor.

The application layer can load more than one block in the chain depending on the maximum number of chain output descriptors processed by the chain.

According to the example of fig. 3a and 3b, when the application layer processes more than one MPEG stream, the producer ID of each stream is loaded in the output descriptor packet (oDP). Fig. 3b shows that three streams are processed and that producer ID1, producer ID2, and producer ID3 are loaded into the outgoing descriptor packet.

The MPTS1 data forming the first data block is then indicated by the second chain output descriptor (oqTD2), the MPTS2 data forming the second data block is then indicated by the third chain output descriptor (oqTD), and the MPTS3 data forming the third data block is then indicated by the fourth chain output descriptor (oqTD 1).

The application layer also configures the chain input. The chain input and the chain output are connected together and form a single event. Once configured, the application layer invokes the USB controller to perform the chaining operation. The chain input is a chain starting with a chain input header (iqH) linked with a plurality of chain input descriptors (iqTD). Each chain input descriptor points to a data block resulting from the processing (i.e., descrambling) of the USB dongle.

When the USB controller receives the last block of processing data for the USB dongle, the last chain input descriptor (iqTDn) is used to trigger an interrupt.

Each chain input descriptor is associated with an MPEG stream. The size of the data block may vary depending on the implementation of the USB controller. According to one example, the data block includes a plurality of packets. Each packet represents a USB transaction. According to one example of forming a chain of packets, the size of each packet except the last packet is equal to the nominal size (e.g., 512 bytes). The non-nominal size of the packet indicates that this is the last packet of the data block. This is illustrated in FIG. 2 by blocks DCo1 through DCop. The size of the last packet of the data block is different from the nominal size and thus indicates that it is the last packet of the data block.

According to another example of an implementation, the chain output transport is configured to place the producer ID in a data block, such as in a first packet. The manufacturer ID is placed in the data header of the data block and both are concatenated by the USB controller and transmitted in a single USB transaction.

This is the situation shown in fig. 3 a. The first chain output descriptor points to at least two packets, one packet containing the producer ID and the second (and a few further) to a block packet of the MPEG stream. The chain input is the same as in the first example.

When the USB controller supports both 3a and 3b, 3a and 3b share a common field in their respective headers, allowing the dongle USB controller to distinguish between the 3a and 3b chains of descriptors. This allows the host to select the most efficient transport for a particular process.

Once the chain output and chain input are configured, the USB controller receives the signal from the application layer and the chain is processed. The transfer to the USB dongle is performed by the USB controller, for example, using bulk input and output transfers. The USB controller activates and transmits data according to the instruction.

The USB dongle receives the chain output and obtains the manufacturer ID from the corresponding packet. With the manufacturer ID, the USB dongle can obtain key data corresponding to the data block. The USB dongle receives key data relating to the MPEG stream over another USB channel to continue.

The USB dongle includes a key table populated with key data for each MPEG stream. According to a first example, the key table includes, for each manufacturer ID, key data relating to that manufacturer. Preferably, the key data includes an odd key and an even key, one currently in use and the other ready for the next key change. One bit in the block data indicates that the current key is used.

In the case where one manufacturer ID is associated with a plurality of key data, the key table may also contain a packet identifier PID (or program ID). The table is as follows:

manufacturer ID PID ID Even key Odd key
PRID1 PID12 Value of Value of
PRID1 PID15 Value of Value of
PRID2 PID3 Value of Value of
PRID3 PID10 Value of Value of

An example of a value of a key is a pseudo random number of 128 bits.

In the above example, the producer PRID1 is associated with an MPEG stream that includes two sub-streams that require key data for descrambling. Each sub-stream is identified by a PID identifier or program ID (PID 12 and PID15 in our example), each sub-stream being associated with different key data.

The key table is received by the host device from an authorization server or may be extracted from one or more MPEG streams. According to an embodiment of the invention, the USB dongle includes a key required to decrypt the encrypted key data. The encrypted key data may be in the form of ECMs (entitlement control messages) extracted from the MPEG stream by the host and transmitted to the USB dongle.

According to another embodiment, the host may request the license file from the authorization server and may pass it to the USB dongle upon receiving the license file from the authorization server. The license file is decrypted and the key data is used to populate the key table. The USB dongle may include a private key that decrypts the encrypted key data (license or ECM).

Once the USB dongle has descrambled the data block using the corresponding key data, the descrambled data block is sent to the host device, in particular the USB controller. The latter stores the received data at the address indicated in the first chain output descriptor. Thus, the data block DCo1 is transferred by the USB controller to the USB dongle and when the USB dongle returns the data block DCi1, the USB controller stores it at the address indicated by the first chain input descriptor iqTD 1.

When the last data chain has been stored in the chain of the queue, the USB controller initiates an interrupt to notify the application layer.

The application layer may then obtain the descrambled data block and be able to deliver it to a client, such as a multimedia player.

It should be noted that the MPEG stream is loaded in a stream buffer as shown in fig. 4. The host can process several MPEG streams in parallel, and fig. 4 shows two MPEG streams from two producers (producer #1, producer # 2). The application layer is responsible for management of stream buffer #1 and stream buffer # 2. The buffer is dedicated to one producer and the application layer mainly handles the pointers of the buffer. The buffer is filled with data from the MPEG source. When the chain inputs and chain outputs are defined, the USB controller processes the data blocks (block #1 for producer #1 and block #2 for producer #2) so that more than one MPEG source can be processed in parallel. The client is using the buffering architecture and handles its own pointers to the descrambled data.

According to the illustrated example, the stream buffer is the same for scrambled data and descrambled data. However, according to another example, the buffer of scrambled data is independent of the buffer of descrambled data. In this case, the USB controller stores the descrambled blocks in the buffer while receiving them from the USB dongle.

This formatting and processing of the chain buffer is particularly suitable for USB2.0 transfers. However, other protocol layers may be used to transfer data based on the stream buffers and chain pointers and descriptors as described above.

Fig. 5 shows a block diagram of a dongle. The dongle includes four main modules: I/O interface module, processing module PRO _ M, memory MEM and descrambling module DES _ M.

The I/O interface may connect with a host device to receive data via a dedicated USB signal. The processing module PRO _ M is responsible for directing the data flow into and out of the memory MEM via the I/O interface. The memory is used as a buffer memory and the pointers (input and output pointers) are processed by the processing module. The data block is stored in memory and a pointer to the block is passed to the descrambling module. The processing module also keeps track of the manufacturer ID for the data block and loads the associated key in the descrambling module. When the block is descrambled, the descrambling module stores the descrambled block and transmits a signal to the processing module. A pointer is then passed to the I/O interface that routes the descrambled block to the I/O interface. The processing module is responsible for executing the instructions of the chain. The processing module knows the structure of the chain and extracts the elements of the chain so that the processing module knows which producer ID each data block is related to. To this end, the processing block is connected with a key memory K _ MEM to store keys received from the host device via the USB interface.

According to another embodiment, the key memory K MEM is directly connected to the descrambling module and when the processing module instructs to descramble a data block identified by a producer ID, this module loads the key associated with said producer ID in the key register.

Although an overview of the inventive subject matter has been described with reference to specific exemplary embodiments, various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments of the invention. For example, various embodiments or their features may be mixed and matched, or selectively made by those skilled in the art. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term "invention" merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.

The embodiments illustrated herein are believed to be described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments, as well as embodiments derived therefrom, may be utilized and structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The detailed description is, therefore, not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种调整电视观看距离的交互方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类