Professional Documents
Culture Documents
Set-Top Box Software Architectures For Digital Video Broadcast
Set-Top Box Software Architectures For Digital Video Broadcast
Abstract
Consumer and Business demand for Multi-Media services has led to a proliferation of solutions that provide a wide range of services such as Digital Television, Internet Connectivity and others. Set-Top Boxes (STB), the consumer device employed in Digital Video Broadcasting Networks, are mainly used for digital television reception and also for interactive services such as Internet Access or Homeshopping. This paper presents the software architecture of two generations of STBs called the d-box. The first generation of the d-box shows a monolithic software structure with a native Application Programming Interface. In particular we will discuss the application download mechanism in detail. With the introduction of the Java language and a layered software approach it is possible to reach both goals, namely writing system independent applications and adapting to new hardware platform without a significant change in the d-box software. The second part of the paper discusses the software architecture of the second generation of the d-box focusing upon the employed inter-process communication means. In addition an example of an User Interface dialog for the set-up will be presented taking into account that both novices as well as experts are every day users of the d-box.
applications which are platform independent and providing an user interface which allows an easy access to the various services are other requirements which affect the software architecture. The following chapter discusses the two service models for interactive services. In chapter 3 we describe the architecture and some implementation issues of the first generation of the d-box. The emphasis is put upon the application download functionality offering some degree of interactive services. Chapter 4 presents the software architecture and its implementation of the second generation of the d-box focusing on the intersubsystem communication means. This chapter concludes with an example of an User Interface (UI) dialog.
for
digital
video
1. Introduction
Although the cost aspect is one of the most driving factor for deploying a Set-Top Box (STB) as a consumer device, the design and implementation of the software architecture becomes very important, because it must be flexible enough to adapt to new interactive services e.g. internet access. In addition adapting to the short life cycles of Hardware platforms, writing
Video on Demand (NVoD) service offering the same program at time shifted beginnings is a typical example of a local interactivity. For this scenario films are played out in an overlapped fashion. The necessary signalling information for selecting the film, obtaining further information of the film etc. is broadcast. Another example of local interactivity could be a simple data application e.g. a ticker, which is synchronised with the video stream. The application data and the actual ticker data are distributed via the data carousel mechanism. From the network point of view the digital broadcast network acts as a large serial disk for the storage of signalling information used for selection the video/audio streams, applications and actual data used by the applications. This communication model allows STBs with a very limited local caching capability to find the necessary data and code on the network at any time with a worst case access time equal to the carousel cycle duration. There are no connection and log-on latencies when using this kind of communication model.
number of Hardware devices for interfacing with the outside world. The various device driver modules were interfaced to the software modules of the middleware layer using driver specific interface definitions. There is no Hardware Abstraction Interface (HAI) which allows software components to be defined which are neither hardware-dependent nor middlewaredependent. The middleware layer contains modules to be used for - building the various service and program information needed for the video selection - performing conditional access related functions - performing the system software upgrade of the STB over air - providing the low level graphic functions. On top of the middleware layer the applicationdependent components are built. They consist of modules used to implement the specific details of an application e.g. an Electronic Program Guide (EPG). As the name implies, these modules are not reusable across different applications. In figure 1 such an architecture is shown. The first generation d-box also follows this approach. The device driver and subsystem modules written in C/C++ are highly dependent on each other because their interfaces were designed according to the other modules they interact with. For example the MPEG video decoding subsystem module written in C++ had many .h files of other modules #included. Thus this module becomes dependent on the interfaces of the other modules.
6\VWHP6RIWZDUH PRQROLWK
$SSOLFDWLRQ (3*
7LFNHU
$3,
2 S H U D W L Q J 6 \ V W H P
''
''
6RIWZDUH ''
LQWHUWDVNFRPPXQLFDWLRQ
'HYLFH
LQWHUPRGXO
'ULYHU
FRPPXQLFDWLRQ
Modules were assigned to tasks. The communication and the synchronisation among the tasks are accomplished by means of Operating System services. The outcome was a software architecture and an implementation characterised by a strong monolithic structure which consists of one single executable file (s. figure 1). The size of the entire system software (executable file) of the first generation d-box occupies less than 1 MByte FPROM thus fulfilling its stringent memory constraint.
blocks are received by the d-box, a CRC check is done to verify the correctness of that particular block. If the block is verified correctly, the block payload is stored and the block table is updated. If a data block reception fails due to transmission bit errors or the CRC is incorrect, the d-box waits for the next repetition of the file to be played out. After successful reception of the entire application image, the transition to the application linking state occurs automatically. 3. Application Linking The Dynamic Linker, which conforms to the IEEE-695 standard [4], and resident as a task in the d-box, links the system API function calls in the file image to the system software through the use of a linker symbol table. This table contains the string names and addresses of all the API functions available in the dbox. The current linker is able to support distributed linking, meaning that the copy of the object code used by the linker may be distributed over more than one memory area. An executable image is created and an automatic transition to the application start state occurs. 4. Application Start The application starts automatically and may be terminated in different application-specific ways but the primary way is to use the remote control by pressing the TV button. The executable remains in RAM until a new application is downloaded or the system software requires use of the memory.
79 YLHZLQJ
VKRZ DSSOLFDWLRQV
UHWXUQ WR79
OHDYH
$SSOLFDWLRQ /LVWHU
$SSOLFDWLRQ /LQNLQJ
DSSOLFDWLRQ
VHOHFW DSSOLFDWLRQ
GHVHOHFW DSSOLFDWLRQ
$SSOLFDWLRQ 6WDUW
The details of the modules can be found in [6]. In the following subsections the functionality and implementation of the HAI is explained in detail.
second
VXEV\VWHPDFWRU
'HYLFH'ULYHU
IXQFWLRQBWDEOH
of the Service Descriptor Table (SDT). The acquisition of the SDT table is done in conjunction with the HAI and the DEMUX device driver as outlined in the previous subsection. After completion of filtering, the table is stored in a shared memory area and a table complete message is returned to the calling Java thread ((2) in figure 5). The VM copies the tables into the Java environment where the channel search thread builds the actual data (channel name, bouquet name etc.) to be displayed by the UI subsystem ((3) in figure 5).
FKDQQH O VHDUFK -90
03(*
6'7
90KHDS
WKUHDG
Figure 4: Performing a DEMUX read command using the Hardware Abstraction Interface
WKUHDG
DFWRU
this, the expert UI dialog allows a broader and more direct access to d-box features, employing a more terse dialog-style well suited for expert users. An example is shown in figures 6 and 7.
user configurable d-box settings as well as an expert UI dialog excerpt for the automatic channel search user task.
5. Summary
The software architecture of the first generation of the d-box fulfilled the stringent memory constraints while offering significant functionality including support of downloadable applications. The size of the entire system software (executable file) occupies less than 1 MByte FPROM. This download capability allowed the enhancement of the service space from purely digital video reception to interactive data services. The major advantage of the modular and layered-oriented architecture of the second generation d-box presented is that it is highly independent of any specific hardware and OS platform. This allows the hardware platform to be quickly upgraded to add new features without significant redesign of the system software.
Figure 6: Assistant UI dialog for the channel search The figures show two ways to execute the user task perform automatic channel search. In the Start Assistant (s. figure 6), the user cannot modify parameters that are used for the channel search (e.g. number of antennas connected, installation options etc.). Rather, reasonable defaults for the parameters stored in the configuration data store are used for the operation. The user is fully guided through the whole configuration task.
6. Acknowledgement
The STBs presented herein summarises the work of many people. Special thanks to Michael Brandt, Frank Lonczewski, Martin Mohring, Wolfram Proske, Hartmut Wolf and Juergen Zeller for their tremendous contribution in the architectural design and implementation work of the second generation d-box. Thank you to David Gillies and Sven-Olof Koopmann for their review improving the readability of the paper.
7. References
[1] ETR 300 468 Specification for Service Information in DVB Systems, January, 1997 [2] ETR 211 Guidelines On Implementation and Usage Of Service Information (SI), August, 1997 [3] ISO 13818-6 Extension For Digital Storage Media Command And Control, MPEG 96, July 1996 [4] IEEE Std.695-1990 Standard For Microprocessor Universal Format For Object Modules, July 24, 1990 [5] Arnold K. and Gosling J., The JavaTM Programming Language, Second Edition Addison-Wesley, Reading, MA, 1998 [6] Lonczewski F. and Jaeger R., An extensible Set-Top-Box Architecture for interactive and broadcast Services offering sophisticated User Guidance, Proc. In ICME 2000, New York [7] Pekowsky S. and Jaeger R., The Set-Top-Box as a MultiMedia-Terminal, IEEE Transactions on Consumer Electronics, August 1998, Vol. 44, Nr. 3
Figure 7: Expert UI dialog for the channel search All the user has to do (e.g. in the absence of any error situation) is to press repeatedly the Ok button on the remote control. In contrast to this, the expert settings offer direct access to all user configurable parameter settings of the d-box. In the UI dialog no user guidance is employed. Figure 7 shows a menu with some of the