DESCRIPTION
TRANSMITTING CAROUSEL FILES IN A DIGITAL BROADCASTING SYSTEM
This invention relates to the transmission of data files or modules in the form of a carousel in a digital broadcasting system. It also relates to receiving the files at a receiver in the system. Digital Video Broadcasting (DVB) systems are well-established and are used to transmit audio and video content to receivers. More recently, such systems have also been used to transmit digital code for applications which can be executed by a processor in the receiver. The applications can include electronic programme guides (EPG), games, quizzes, instructional guides and e-commerce applications such as home banking. Most broadcast receivers have a single tuner (also known as a front-end) which is capable of tuning to a particular broadcast channel or transport stream to receive content. The Digital Video Broadcasting Multimedia Home Platform (DVB-MHP) is an open, published, standard for interactive digital television. DVB-MHP 1.0.3 specifies a mechanism to broadcast an application with a digital TV signal. DVB systems transmit content using transport streams. Files for applications are stored in a repetitively broadcast data stream known as a Digital Storage Media Command and Control (DSM-CC) Object Carousel. Each transport stream can carry multiple individual services, such as television or radio services, as well as the carousel. A receiver in the system tunes to a particular transport stream and can then access individual services within the transport stream by appropriate selection. Most currently available MHP receivers have a single tuner (front-end). Many broadcasters want to provide the same key applications alongside all of their television services. An application associated with a television (or radio) service must be broadcast in the same transport stream as that service, otherwise terminals with a single tuner would not be able to display it.
Broadcasters with multiple transport streams broadcast data for their key applications in carousels carried by each of their transport streams. Data that forms part of an application is arranged into files. These files are arranged into DSM-CC modules. One module can contain several files. A DSM-CC object carousel comprises many DSM-CC modules, along with control information. When an MHP receiver selects a channel that has an application it will first parse some signalling. It then loads the main class (data file) of the application. The remaining classes (data files) of the application are loaded as they are required. Users can become frustrated when there is a long delay between requesting an application and the application being executed. The object carousel that carries the application files repeats on a regular basis, known as a cycle. The duration of the cycle depends on the number of files stored in the carousel and the total bandwidth that has been allocated to carry the carousel on the transport stream. Some known high-end receivers are arranged to cache the entire contents of the carousel in a memory on the receiver. Thus, after a single carousel cycle, the receiver has stored every file in local memory. This avoids the need for the receiver to wait for the required file to be broadcast, but is achieved at the expense of requiring a large memory at the receiver. It is known to provide a digital television receiver of a non-MHP kind with two tuners which can simultaneously tune to separate channels. The two tuners are provided so that a user can view a broadcast, live, on one channel whilst recording another broadcast on another broadcast channel. As a result, the second tuner is idle for most of the time.
The present invention seeks to provide a way of increasing the speed of downloading files from a carousel. Accordingly, a first aspect of the present invention provides a method of formatting data files for transmission in a digital broadcasting system, the method comprising:
creating a first data carousel for transmission on a first transport stream, the first data carousel comprising a plurality of data files which repeat after a cycle time; creating a second data carousel for transmission on a second transport stream, the second data carousel comprising a plurality of data files which repeat after a cycle time; wherein at least some of the files in the first and second data carousels are the same, those common files being offset from one another such that their transmission times will be different. Further aspects of the invention provide apparatus for formatting data files for transmission in a digital broadcasting system in the above manner and a method of transmitting transport streams which carry data carousels which have been formatted in this manner. A further aspect of the invention provides a signal, for transmission in a digital broadcasting system, comprising: a first transport stream which carries a first data carousel having a plurality of data files which repeat after a cycle time; a second transport stream which carries a second data carousel having a plurality of data files which repeat after a cycle time; and wherein at least some of the files in the first and second data carousels are the same, those common files being offset from one another such that their transmission times will be different. Preferably, the first transport stream further comprises an identifier which identifies that the second transport stream carries the same files as the first transport stream. Similarly, the second transport stream can identify the first transport stream. This allows a receiver to locate the other transport streams which carry the same files. A digital broadcasting receiver is modified to take advantage of the benefits of the invention. Accordingly, a further aspect of the invention provides a method of receiving data files at a receiver in a digital broadcasting system, the receiver having first and second receiving stages, the data files
being stored in the form of a data carousel which repeats after a predetermined cycle time, the method comprising: tuning the first receiving stage to receive a first data carousel on a first transport stream; tuning the second receiving stage to receive a second data carousel on a second transport stream, the second data carousel having at least some files in common with the first data carousel which are transmitted at times which are offset from the first carousel. For those receivers which already have two receiving stages (front- ends), they can be modified to use their receiving stages in this new way without the need for additional apparatus. A still further aspect of the invention provides a control apparatus for a digital broadcasting receiver which performs this method. The functionality described here can be implemented in software, hardware or a combination of these. The invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. Accordingly, another aspect of the invention provides software for implementing the methods. It will be appreciated that the software may be installed on the broadcasting receiver, or an element of the transmission chain, at any point during the life of the equipment. The software may be stored on an electronic memory device, hard disk, optical disk or other machine-readable storage medium. The software may be delivered as a computer program product on a machine-readable carrier or it may be downloaded directly via a network connection.
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:- Figure 1 shows a digital broadcasting system ; Figure 2 shows a receiver for use in the system of Figure 1 ; Figure 3 shows the steps of a method of operating the receiver of Figure 2.
Figure 1 shows a digital video broadcasting system for delivering content to receivers. Content is generated by a broadcaster 30. The content can take the form of live feeds 33 of audio and video content, such as live television and radio programmes, and content 32 which has been previously recorded and stored 31. Content is coded 34 into an appropriate format, such as MPEG-2 audio and video as set out in ISO/IEC 13818-2 and ISO/IEC 13818-3. Code for applications is also stored 31. Applications can be created by the broadcaster 30 or by independent application providers who supply the required files to the broadcaster 30. Examples of applications include electronic programme guides (EPG), games, quizzes, instructional guides and e-commerce applications such as home banking. In the DVB-MHP specification, data for applications is broadcast as part of a Digital Storage Media - Command and Control (DSM-CC) Object Carousel. This is a repetitively broadcast file system containing the data files for various applications. A carousel generator 40 constructs the carousel from files obtained from store 31. The format of the broadcast channel for the DVB-MHP system is an MPEG-2 transport stream and for further information on this, including the DSM-CC, the skilled reader is directed to ISO/IEC 13818-6. A broadcaster generates multiple transport streams TS1 , TS2, each carrying multiple channels of audio and video content and a data carousel. A formatting function 35A multiplexes audio/video content and a data carousel for a first transport stream TS1 , which is sent to a transmitter 38 over a communications link 37. A similar formatting function 35B performs the same functions for the audio/video content and data carousel for a second transport stream TS2. Further formatting functions can be provided for further transport streams. The transport streams TS1, TS2 are broadcast over delivery channel 39 to user premises. Each transport stream is carried by an individual delivery channel. The broadcast delivery channel 39 can be a radio frequency (RF) channel which is part of a satellite or terrestrial transmission network, a cable
distribution network, or a data network such as the Internet, and the method of delivery is not important to the invention. One receiving premises 100 is shown in Figure 1. A receiver (set-top box, STB) 60 at a user premises receives the broadcast signal, which in this embodiment is via an antenna 18. Set-top box 60 also includes a user interface with a remote control 20 or keyboard for receiving user inputs 22 and a graphical output for displaying messages which can be overlaid upon the video signal 10 which is fed to television display 12. Figure 2 shows the functional blocks within a typical MHP terminal 60. In a known manner, terminal 60 includes a front end 75A for processing a received broadcast signal 39. This includes a tuner and demodulator 61A for selecting and demodulating a required channel and may also include a conditional access unit (not shown) for descrambling the signal. The tuner 61A is controlled 76A by the processor 68. The resulting digital data stream is demultiplexed 63A into data streams representing audio and video data (typically in MPEG-2 format) and data for applications in the form of the repetitively broadcast DSM-CC Object Carousel 64A. The audio and video data can then be further processed 65 to derive suitable output signals 10, 14 for presentation to a user. A second front-end 75B is also provided, which has the same functional blocks as the first front-end 75A, namely a tuner/demodulator 61 B and a demultiplexer 63B. The second front-end 75B can be controlled 76B by processor 68 to tune to a different transport stream than the first front-end 75A. Consequently, another stream of data corresponding to the DSM-CC Object Carousel 64B carried by the second transport stream is extracted. Once downloaded from the broadcast stream, the application (or several applications) will reside on memory 69 in the terminal and will be executed by microprocessor 68. Control software for operating the terminal also resides on storage 69. It should be noted that Figure 2 shows a terminal which is intended to receive signals via a broadcast delivery channel. In other embodiments of the terminal, which are intended to interface with non-
broadcast delivery channels, the tuner/demodulators 61 A, 61 B are replaced by a network interface appropriate to the delivery channel. One important benchmark for measuring the performance of receivers is how long a receiver takes to start an application. Due to the carousel behaviour described above, it will usually take at least a single carousel cycle. The use of two tuners 75A, 75B at a receiver can reduce this time, by up to one half. Referring again to Figure 1 , transmission formatting function 35 at the broadcaster 30 transmits the same carousel contents on two different transport streams. The following tables show the transmission of a data carousel on two transport streams TS1 , TS2. For simplicity, the carousel contents are shown as a series of files numbered 0-9. It will be appreciated that an actual carousel will hold a much larger series of files, which may differ in their relative sizes rather than being of uniform size. A sequence of time periods 0-4 are considered.
Example 1 (worst case)
An identical data carousel (i.e. same set of files 0-9 in the same order) is simultaneously transmitted on both transport streams, with each data carousel starting at the same time. Thus, at any time, the same file is being broadcast on both transport streams. The total time to receive the entire carousel contents (files 0-9) with this arrangement is two time units. Even if receiver 60 were to receive both transport streams, there would be no improvement in download speed.
Example 2 (optimum layout).
An identical data carousel (i.e. same set of files 0-9 in the same order) is simultaneously transmitted on both transport streams. However, the start times of the data carousels are offset by a period equal to one half of the total cycle time. Thus, at any time, two different files are being broadcast on the transport streams. Considering the time period '0', a first tuner tuned to TS1 will receive files 0,1 ,2,3,4 and a second tuner tuned to TS2 will receive files 5,6,7,8,9. The total time to receive the entire carousel contents (files 0-9) with this arrangement is only one time unit. It is possible to offset the start times by any period in the range 0 - 1.0 of the total duration of the carousel, but 0.5 is the optimum amount. It will be appreciated that there are other ways of transmitting the files in the data carousel which have the effect of reducing (possibly halving) the overall receive time. In Example 3 below TS1 carries the files in ascending order (0..9) while TS2 carries the files in descending order (9..0). In any given time period (0-4), transport streams TS1 and TS2 carry the full set of files between them. Example 3
However, this example is less efficient if a pair of tuners can select any arbitrary period. Considering the period 0.5 - 1.5, in the transmission scheme of example 3 TS1 carries files 3,4,5,6,7 while TS2 carries files 6,5,4,3,2.
The most effective scheme is that shown in Example 2 where the files are sent in the same order (ascending or descending) and every commonly numbered pair of files is offset by one half of the carousel cycle time. Receivers which only have a single tuner, and receivers which have two tuners but which are not able to use the two tuners in this new manner, are not affected by transmitting the carousel data in this new way. If the receiver is arranged to cache the entire carousel contents then the second tuner can still be used to receive carousel contents from a second transport stream. The second tuner need only be used for the initial caching and can be used for other purposes whilst the application is running. The use of two tuners halves the time to initially cache the contents. If the receiver's cache is smaller than the total size of the object carousel, then the use of a second tuner will, on average, halve the waiting time for a file that is not already stored in the cache. The second tuner will be kept in use the entire time the carousel is mounted (although this would typically be low-priority, allowing an application to take control of the tuner and use it for something else). In order to make use of this invention some additional signalling is added to the object carousel so that compliant receivers (i.e. receivers with the ability to receive using two tuners) can find the other transport stream containing the carousel. A new descriptor is defined to identify alternative locations for the carousel. E.g.:
DVBcarouselNSAPaddress identifies a DVB service (which may be in a different transport stream) and a carousel within that service. For use within double_speed_carousel_descriptor, we add the restriction that it must refer to a different transport stream. It should be possible to specify more than one instance of this descriptor, in case the broadcaster has more than two transport streams. This is only beneficial if the second tuner is in use but happens to be tuned to a suitable transport stream. The above definition is only one example and other descriptor layouts are possible. For non-DVB standards (such as Open Cable Application Platform (OCAP)) the DVBcarouselNSAPaddress will need to be replaced with a local equivalent. A preferred location for this new descriptor is the PMT entry that identifies the carousel, adjacent to the existing carousel_id_descriptor (see MHP 1.0.3 section B.2.10.1). This allows the second carousel to be identified easily at the time the receiver mounts the first carousel. The new descriptor could also be placed in the DSI or ServiceGateway objects within the carousel. However, these locations are not preferred because they are parsed later than the PMT. Since this improvement is intended to increase download speed, it is important to find the information about alternative carousel locations as quickly as possible. The need for a new descriptor can be avoided by providing information about the second carousel in the same place as the information about the first carousel. For example, the Application Information Table (AIT) which is used to start an application contains a reference to the main carousel. This could be extended with references to the other carousel(s). Applications can also mount carousels, these methods could be extended to allow references to the other carousel(s). However, this is not preferred because it requires more invasive changes throughout the stack and changes to existing products - the descriptor proposed above is very simple, and an existing box without the additional capability will simply ignore the new descriptor.
Figure 3 shows a flow diagram of the main steps performed by processor 68 at receiver 60 to use two tuners. Firstly, at step 300, a command is received to attach to the carousel of the current transport stream. This command may be generated by a request from the user (such as a user selecting an application in a menu) or a request signalled by the television service the user is watching. It will be assumed that tuner 75A is currently receiving a first transport stream (TS1) and that the carousel is carried by that transport stream. The receiver reads the Program Map Table (PMT) carried by the transport stream. This provides information for where the receiver can find the carousel. As the receiver reads the PMT entry for the desired carousel it receives one or more identifiers (double_speed_carousel_descriptor) which indicate the presence of an additional carousel on a different transport stream. At step 302 the receiver determines, based on the identifiers, whether additional carousels are available which carry the same content. If no other transport streams carry the same carousel content, the receiver continues as normal (step 304) and downloads the required files from the carousel on the current transport stream. However, if the identifiers indicate that the same carousel content is also available on other transport streams, the receiver attempts to access the alternative transport streams using another tuner, such as tuner 75B. At step 306 the processor determines if a spare tuner is available. A resource management function at the receiver will be aware of which tuners are in use, and what is using them, at any time. Again, if no spare tuner is available the receiver continues as normal (step 308) and downloads the required files from the carousel on the current transport stream. If a spare tuner is available the processor determines (at step 310) whether tuner 75B is currently tuned to any of the transport streams identified by the double_speed_carousel_descriptor(s). This will avoid any delay in retuning to another transport stream. Otherwise, tuner 75B is instructed (at step 312) to tune to one of the transport streams identified by the double_speed_carousel_descriptor(s). In both cases, tuner 75B locates (at step 314) the additional carousel using the information provided in the double_speed_carousel_descriptor and both tuners 75A, 75B are used (step
316) to simultaneously download the required files from both transport streams. A DSM-CC carousel comprises a number of individual modules. A module is either a collection of files with a size limit or, to allow files larger than that limit to be transmitted, a single file with no size limit. In a preferred implementation, tuners 75A, 75B are used to receive data from the carousels on each transport stream to the level of DSM-CC modules. When the higher levels of the DSM-CC decoder request a module then the request may be satisfied by a module from either transport stream. Modules from both transport streams may be cached for future use. Modules with the same module ID in both transport streams are assumed to be identical, so only one needs to be cached. It is also possible to do more or less decoding before merging the two carousels. Decoding to the level of individual files may help if the carousels contain slight differences (e.g. if the module IDs are different). However, this is more complex, and will use twice as much memory as a single carousel decoder, and so is not preferred. Decoding carousels which are different is generally not preferred since it is very hard to obtain predictable behaviour. The object carousel decoder should fall back to single-tuner operation if this kind of discrepancy is noticed. Referring back to Figure 1 , at the broadcaster 30 a DSM-CC carousel generator 40 takes a stored application (comprising a collection of files) and a description of the carousel (stored with the application) and outputs the carousel. The carousel generator 40 generates two carousels 41 , 42 which are the same, or which share some common files, and supplies the carousels to the formatting functions 35A, 35B for the respective transport streams TS1 , TS2. The carousel generator 40 ensures that the common files will be transmitted by TS1 and TS2 with the required offset time between them. Program Map Tables (PMT) on each transport stream are also modified to add the double_speed_carousel_descriptors described above, which provide receivers with information about which transport streams carry the same carousel content. It will be appreciated that the transmission formatting
function may be performed at a later stage in the transmission chain, such as just prior to transmitter 38. It is possible to duplicate some files (modules) such that they are transmitted more than once during a carousel cycle. For example, the files that are required to start an application can be grouped into a small number of modules and these modules, along with the carousel control information needed to find those modules, can be broadcast more frequently than other modules during a cycle. In this case, the transmission times of those files (modules) on one transport stream is offset from the transmission times of the files on another transport stream. Although this invention is described in terms of MHP, it is applicable to any system based on DSM-CC object carousels or indeed any data which is transmitted on a repeating basis. A common set of files (or modules) can be simultaneously transmitted on more than two transport streams, with an offset between transmission times of the common files. For example, if three transport streams are used, an ideal offset would be one third of the total carousel cycle time. It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The words "comprising" and "including" do not exclude the presence of other elements or steps than those listed in the claim. Where the system/device/apparatus claims recite several means, several of these means can be embodied by one and the same item of hardware. In the description above, and with reference to the Figures, there is described a digital broadcasting system in which files, such as objects for applications, are broadcast to users using a repetitively broadcast carousel on a transport stream TS1. A common set of files are also broadcast on a second transport stream TS2. The common files are offset from one another such that their transmission times will be different, such as one half of the total cycle
time of the carousels. A receiver 60 with two front-end stages 75A, 75B can receive carousels from both transport streams TS1, TS2. A transport stream TS1 is modified to identify which other transport stream TS2 carries the same files.