The present invention concerns a method to convert digital signals and the corresponding device. More in particular, the invention relates to the conversion of digital signal containing a media stream into a format suitable to a packet network, for example an IP network. Applications of the invention include, but are not limited to, distribution of media content across a home network LAN, with or without Digital Content Protection measures.
Broadcast networks are used since the beginning of the television as the simplest and most economic mean to deliver signals to a wide number of consumers. With the transition to digital signals new standards, for example the DVB suite, have been developed to further increase the services for the final users.
In addition to these widely available satellite, cable, and terrestrial networks the development of high speed internet connections allows also to deliver TV services to any IP connected devices. These devices connected to the home network (like smart phones, tablets, IP set-top-boxes, games consoles, laptops, connected TV, etc.) are now capable to receive and decode video contents coming from internet network but still can't access legacy signals from broadcast networks.
In a typical home network scenario, the IP connected devices are able to access media content from the internet, but lack a physical tuner interface to access broadcast content. Digital tuner for the various broadcast standard exist in many cases, but they typically permit the reception only to the network node on which they are installed. Sharing of content across a home network is difficult or cumbersome. Besides that, these solutions do not allow easily the distribution of media across a network with content protection or conditional access measures.
Despite the proliferation of diverse broadcasting methodology (satellite, cable or terrestrial) and standard (DVB, ATSC or ISDB), digital media in modern broadcast transmission systems are almost universally formatted as MPEG Transport Stream. This format (shortly indicated as MPEG-TS, or MTS or TS) is specified by ISO 13818-1 or ITU-T Rec. H222.0 standards, though several variants and modifications exist. In the present document the wordings ‘Transport Stream’ and TS are used as convenient abbreviations to indicate standard TS stream or similar formats suitable for the transmission of audio/video streams. TS streams are composed by sections, also called packets, which may include a number of fields, called also sub-sections.
Fields in a given Transport Stream section may be called header fields when they carry different kinds of transport-related information, for example information about the section itself or the stream in which the session is embedded, or payload field, when they comprise the actual audio/video program that is the purpose of the transmission, suitably encoded.
The media content such transmitted can be open to all copying, reuse or recording (free-to-air streams), or protected by various conditional access mechanisms. Conditional access is for example used to limit the access to registered users, to provide added-value services, to protect pay-per-view content from copy, and so on. Usually the end user needs a smart card (SC) to decrypt the protected content. This feature is normally provided by a set-top-box developed by an operator to certify the security of the delivering mechanism up to the display. These systems guarantee the access to broadcast media, but only to the television set connected with the set-top-box.
In the case of internet-delivered digital media, the content can be protected using a digital right management (DRM) system which enforces control on all the actions done on such content (viewing, copying, forwarding, storing, etc. . . . ). Broadcast TS streams can be forwarded over IP local networks using a wide variety of protocols: some of them (like the Real Time Internet Protocol, or RTP) guarantee real time performances for video distribution reducing the latency while others, like for HTTP example, are more resilient to network errors.
The distribution of TS video streams over IP network is generally done between the production sites and the operator/broadcaster facilities via dedicated high speed networks. In the case of over-the-top (OTT) distribution, various protocols have been developed to provide the required quality of service (QoS) needed to deliver a high bandwidth service through networks that does not intrinsically guarantee delivery. Examples of such protocols are the Http Live Streaming (HLS from Apple), Adobe Dynamic Streaming (from Adobe) or Microsoft Smooth Streaming. Such systems, however, require high-bandwidth IP connections from the production sites to the final user. Moreover, they are not easily adaptable to changing stream protocols and content protection systems.
US2009075585 published 2009 Mar. 19 discloses a system for receiving wireless digital video transmissions over a WLAN. This document describes a form of conditional access to selected contents that is, however, entirely implemented among the content provider and the set-top-box, the home network infrastructure being totally oblivious to access management.
US2009268807 published 2009 Oct. 29 discloses a system for forwarding video streams on IP packet networks with a sensitive-information-parts generator and a transcoder adapted to encode SIP areas with a higher bit rate than non-SIP areas.
There is therefore a need for a system that allows the reception of content-protected media without placing excessive burden to the network in terms of bandwidth and quality of service, and the distribution of free and protected media in a network.
Another shortcoming of the known techniques of transporting media stream in IP packet networks, is that they do not guarantee a deterministic execution time, in the sense that the time needed to process a given stream cannot be determined a priori. As a consequence, it is difficult to reliably maintain with these systems the QoS level required by high quality media reproduction.
Further, an object of the present invention is the provision of a scalable and re-programmable method/device for multi transport streams processing.
Moreover, an aim of the present invention is to provide, a conversion system with deterministic execution time.
According to the invention, these aims are achieved by means of the object of the appended claims.
Packet data are exchanged between the different nodes in the network of
A possible application of this invention is the transcoding for Transport Streams to IP Streams. Each sections of the stream generated by multiplexer block 101 is modified, in succession, by the chain of processing subunits 102, 103, 110, 104, 105. Preferably, each of them is arranged to recognize the received section by tagging data inserted in a suitable available field of the MPEG by one or several of the previous subunits. Once the unit has recognized a given section from the tagging, it applies a predetermined corresponding process using the information coming from the controller 112.
In the frame of the invention, the processing subunits acting on the stream sections can be implemented by software processors, or as hardware units. In the latter case, the processing subunit can work on the continuous main stream, as depicted for subunits 102, 103, 104, 105. Subunit 110, on the contrary, represents a software processor programmed to modify the stream sections stored in buffer 114 according to a program of instruction received from the supervising controller 112. Buffer memory 114 absorbs the non-deterministic execution time of software-implemented subunit 100 and guarantee even-timed output streams suitable for a smooth media reproduction. Hardware units are also preferably programmable, for example in the sense that the process that they apply to selected section of the transport stream depends from the content of programmable registers set by the supervising controller 112.
The invention will be better understood with the aid of the description of an embodiment given by way of example and illustrated by the figures, in which:
A possible implementation of the invention will now be discussed with reference to
In a typical implementation, the network represented in
In operation, the end devices 300, 400, 500 may request access to an information or a program contained in one of the incoming streams 15, 16, 17, for example by addressing a request to network device 200. The latter is aware of the content of incoming streams and forward appropriate instructions to converter block 100 to extract from the requested program from the relevant incoming streams. The requested information is transmitted by converter unit 100 to router 200 in a suitable format, for example a format by the router 200. The router forwards then the information received from converter unit 100 to the requesting device.
With reference to
The N incoming streams 15, 16, 17, . . . are merged into one single stream 113 by multiplexer 101. The generated signal 113 is processed by a cascade of subunits 102, 103, . . . 110 each of which is arranged to modify the stream in different ways and can perform different processes on the signal flow, for example either or more of the operation in the following non-exhaustive list: (a) adding information; (b) changing the tables used to describe the stream itself; (c) decrypting contents; (d) encrypting contents; (e) changing content format; (f) removing information; (g) splitting one input stream into more output streams having all, or part, or none of their content in common; (h) joining more input streams into one output stream combining content from several input streams, and so on.
In this embodiment of the invention, each all the subunit lay on the same signal path 310, and each of the stream's sections is processed by all the subunits in succession, though same of the subunits may selectively pass transparently some section to the following one, without altering its content. Other variants, as it will be seen later, sport different signal paths.
All the operational blocks are controlled and programmed by the supervising controller 112 that controls all the blocks and decides the process performed by each of them. According to this variant, the invention receives a plurality of transport streams 15, 16, . . . 17, which are processed by operational block 101. Block 101 filters the useful sections of the received streams and merges these sections in a single stream 113.
The controller 116 decides which section of the received streams must be selected and merged in the compound signal 113 and program or instructs accordingly the multiplexer 101. The latter optionally can insert an additional field in selected section, reporting information useful for further processing by other operational blocks along the signal path. The function carried out by the operational blocks on the signal path 310 can be manifold, as explained above.
The information added in additional fields by the converter of the invention shall be named in the following extrinsic information or equivalently e-information. All the operational blocks of the chain can modify the e-information and different kinds of e-information can be carried by this field, for example:
The e-information is used by the operational blocks to identify the sections and/or know the process to perform on a given section. In many kinds of stream there are fields that are defined but not presently used in the standard. It is often the case when spare field are reserved for a future use that is not yet implemented, or for the specific purpose of carrying additional information not defined by the particular stream coding in use. In such cases, the unused fields can be used to carry the e-information.
While in many cases the sections in the stream move along the sections by passing directly form an operational block to a subsequent one, they can also be temporarily stored in memory. In
As already mentioned, not all the operational blocks are directly placed on the signal path. Those working on data temporary stored in memory, named also processors in this document, load data from a memory, process the data, and rewrite the processed data in the same memory, or in an another one. In
Preferably the processors on the signal path are fully programmable and configurable. The execution time of the processes assigned to this block can strongly vary from one configuration to another one, and depend from interrupts, workloads or other events in a manner that is difficult to determine a priori. The memory 114 is used to absorb the variations in execution time and guarantee the correct functioning of the blocks before and after the processor. The partitioning of the memory used by the processor is preferably based on the execution time of the assigned processes and on the throughput of the incoming/outcoming data.
There are other operational blocks having input or output connected to a memory. Block 103 processes the stream coming from block 112 and stores the results of this process in memory 114. Block 104 loads the section to process from the memory 114 and generates a stream 116, comprising all the processed sections.
In the MPEG transport stream standard the table is also named Program Specific Information (PSI). The MPEG standard defines four different tables: (a) Program Association (PAT); (b) Program Map (PMT); (c) Conditional Access (CAT); (d) Network Information (NIT). The MPEG-2 specification does not specify the format of the CAT and NIT.
Reverting to
A set of streams, 15, 16, . . . , 17, are merged by multiplexer 1 into a multiplexed signal 14 that includes the useful sections of the original input streams. In the following, the generic i-th useful section filtered by Block 1 will be denoted by Si. Preferably, the selection of the useful sections is done using the information and the requests coming from the controller 13. Multiplexer 1 adds at each useful section a new field reporting e-information useful for the following processes. The e-information of the i-th section will be denoted by E_i. Signal 14 carries a stream of useful sections encapsulating the e-information Ei and/or contents Ci.
The packets of signal 14 carrying protected contents are decoded by a descrambler 2 or another suitable decoding means. The output of the de-scrambler can be translated, in transcoder sub-unit 3, into another format carrying the same information, Ex: from MPEG2 to MPEG4 or vice-versa.
The stream 19 generated by the transcoder 3 is filtered by the Stream Filter 4 that selects the useful packets from the incoming stream and writes the selected packets in different sections of the memory 5. The data of each memory section can be processed in different ways by a programmable processor 6. After the processing is performed by the processor the data are loaded from the memory and processed by the scrambler sub-unit 7 whose function is to apply content protection means to those sections and fields of the stream that require them. The output of the scrambler is stored in another memory 8 which is used a buffer by a set of IP generators, 9, . . . 12. The IP generators load the sections from the memory 8 and encapsulate the payload in IP streams. All the process is controlled by the supervising controller 13 that programs and controls the operational blocks on the signal path.
The sequence of the filtered sections in the signal 14 depends on the configuration of block 1. There is no guarantee that the order in combined stream 19 reflect the order of sections in input streams. The sequence in
In many standards the stream’ sections include empty fields, not defined fields reserved for future use. Such fields can be used by block 1 to carry the information, for example, FS1, FS2, FS3 and FS4. In such case block 1 does not add any extra field in the useful section but load in the already existing fields the extrinsic information. Then, signal 14, generated by block 1, is decrypted by descrambler block 2. According to an aspect of the invention, Block 2 selectively applies decryption and select which kind of decryption is applicable to the sections in stream 19 based on the extrinsic information. It could happen that not all the incoming sections carry protected contents. In such a case, block 2 identifies sections carrying clear content, for example based on the e-information in the section (or absence thereof), and does not apply any decryption process to those sections. Optionally, descrambler 2 could leave some protected contents undecripted and/or selectively change the e-information carried by some section, for example to indicate that a particular section has been deciphered.
The stream 18 generated at the output of descrambler 2 carries all the sections of signal 14. Since e-information and contents of the sections can be changed by descrambler 2, they will be respectively denoted by E_i and by
The output 18 of descrambler 2 is processed by transcoder block 3 that can change the format of the contents and also the e-information. Assuming video and audio contents, block 3 can for example change the format from MPEG2 to MPEG4 and vice-versa. Preferably, descrambler 2 selectively applies transcoding to sections in the stream 18 based on the respective e-information, or absence thereof. The e-information and the contents carried by the i-th section after the process performed by block 3 will be denoted by Ėi and Ċi, respectively. The output 19 of block 3 will be denoted by signal 19. The transcoding process performed by block 3 on the different sections are preferably defined by the supervising controller 13.
The output 19 of block 3 is processed by the Stream Filter 4 This sub-unit takes the sections carried by signal 19 and copies them in different areas of memory 5 of
The data stored in memory-A are processed by the Processor 6, which loads the data from memory-A and processes them in different ways, for example: (a) modifying the e-information, (b) merging contents, (c) adding, removing and/or changing tables, etc. The process to perform on A_i is preferably predefined by the controller (block 13) and depends from the e-information of each section.
Scrambler 7 has means to know which memory areas have been already processed by the processor 6. It loads the processed stream sections from those areas and optionally protects the contents. The way to protect the contents is defined by the supervising controller 13 and, preferably is dependent from the relative e-information in each section. The output of Block 7 is written in a memory 8 denoted also as memory-b. Scrambler 7 can encrypt all or part of the sections stored in memory 5, for example according to the DTCP standard, or apply any suitable content protection measure. It can change all or part of the e-information and it can change all or part of the tables stored in memory.
The last process of the invention is performed by IP generators 9, 10, 11, and 12. These blocks load the sections previously stored in the b-memory by scrambler 7 and insert the relative contents in M IP Streams 1, 10, 11, 12. Preferably, each of these blocks is associated to a given memory area and processes only the sections stored in such area.
In a non-illustrated variant, the IP generators could be replaced by Transport Stream Generator, or other formatting means, arranged to generate output streams a in any suitable format, preferably different from the format of input streams 15-17.
According to an inventive aspect, the converter 100 is suitable for QoS System because it is able to generate, in a predetermined processing time, M IP streams having predetermined rates. The processing time can be predetermined by the supervising controller 19 because the processing time of the operational blocks having as input and/or output the main stream is deterministic and because all the not well controlled processing time introduced by the processors is absorbed by memories.
In the example of
Moreover, in many cases in the process for transcoding from N Input Streams to M Output Streams there is a block used to change the content format, for example transcoder block 3 in
This invention proposed a scalable solution for TS Transcoding. Since each operational block is blind about the final goal of the system, and its process is determined by the e-information, the system can be easily increased adding more than one operational block performing the same process.
The division of the processing tasks among functionally equivalent subunit is preferably determined by the e-information that is inserted by multiplexer 101 and according to a program determined by the supervising controller 112.
Another possible solution to increase the computational capacity of the architecture is to parallelize the processing. If assume that the chain reported in
Several of the blocks of the chain are duplicated. Block 118, block −119, block 125, block 120, and block 121 are respectively equivalent to block 102, block 103, block 104 and block 105. Block 122 and block 123 are equivalent to block 106, block 107, block 108 and block 109. The system memories 128 and 129 are preferably increased, with respect to those required in a single-path implementation, in order to cope with the higher data throughput. The first subunit 124 of the chain is a multiplexer corresponding functionally to block 101 in
The supervising controller 112 in has the same functionality in this variant than in that of
The operational blocks on signal path 102 are functionally equivalent to those of
Perfect equivalence between the blocks is not always necessary. Block 118 could have the same functionalities of block 102 but not the same computation capacity. For example, its processing time could be longer. On the other hand, certain processing that are required only for a small fraction of the sections in the stream, may not be replicated in subunit of both signal paths 311 and 312.
Multiplexer 124 reported in
Having two streams at the output of block 124 gives the system the flexibility to process the same section in two different ways and to generates two different output carrying the same contents but in a different format. Let's assume that a given section carries HD contents, the invention is able to generate two output streams carrying the same contents but in a different format. To this purpose block 124 can generate two streams, signal 126 and signal 127, carrying the same section. The system can then decide to change the contents format, from HD to SD, for only one of the two signals. In this way, at the end of the chain the system can map on one output stream, ex signal 123, the HD content format and on another one, ex signal 106, the SD content format. Note that the two copies of the same section cannot be confused because the system takes care to tag them differently using the e-information.
The two memories 128 and 129 permit a given section to be processed by both paths of this architecture. Let's assume that an input section is mapped by block 124 onto signal 127. Such section will be processed by block 118 and block 119. Once it has been stored in block 128, the section can be independently produced by block 110 and/or block 125. After this process, the section can be loaded from the memory by block 104 and/or block 120. Note that both blocks can load the same section from the memory. In this case two copies are distinguished by a different e-information. This is the reason why, it could happen that a given section is processed first by block 118 and then by block 104.
According to another variant of the invention, the converter 100 is realized with structure that makes it suitable for Cloud Computing, and allows to change the order of action of the various sub-units. In the variants previously presented, the order of the sub-units along the signal path is hardwired, and sections in the stream are passed from one subunit to the next one. This structure can be changed to provide a flexible and reconfigurable succession of sub-units for each section, still retaining that each operational block is blind about the final goal of the system, and its process is determined by the e-information.
The proposed architecture allows to use twice or more times the same block for the same section. It means that a given section could be processed by the same block more than one time. For example, if a given content is to be encrypted twice using two different keys, it can be processed twice by the same encoding block without resource duplications.
Let's assume that a given section after being processed by block 103, must be processed twice by block 104. Block 104 must perform on the section the same parameterizable process but using two different parameter values. For example: the section must be encrypted twice but using two different keys. In this example the encryption is the process and key is the parameter.
Block 103 processes the section and modify its e-information. After that, from the e-information both, block 104 and block 130, know that section must be processed by block 104. Block 104 performs the process using a given parameter value (a given key), changes the e-information and re-transmit the processed section to block 130. Block 130 knows, from the e-information, that the output must be re-injected in the block 104. Block 104 re-processes the section but, because of a different e-information, using another parameter value. Since block 104 is blind about the final goal of the system, it could ignore to process twice the same section.
Preferably, the sequence subunits operate on each section according to a program defined by the supervising controller 112 without knowledge of the previous and successive steps on the same section, and their action is of determined by the e-information inserted in the sections, for example by subunit 101. The supervising controller 112 is the only block that is aware of the sequence of processes performed on a given section.
The addressing of a section from a block to another is preferably based on an identifier in the e-information. At each block is assigned a given identifier. In this way the bus 130 knows the addressee of each section or, equivalently, each sub-unit can be programmed to recognize the section that are addressed to it, process them, and push them back on the bus 130. The programs imposed to the sub-units by the supervising controller 112 can include instructions to change the identifier in the e-information, thereby addressing the section to another operational block. In this way each section can be processed by the invention following a sequence of operations, executed by diverse sub-units, determined by the programs imposed to the subunits by the supervising controller 112.
The introduced flexibility does not impact the system ability of processing streams for QoS-System. Since the supervising controller knows the execution time of all the blocks, it knows the time needed to generate the output and then it can guarantee output streams suitable for QoS System. Both the architectures reported in
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2012/069004 | 9/26/2012 | WO | 00 |