Using Ada in Interactive Digital Television Systems

Thierry Lelegard


Since 1996, the Digital Television market has been exponentially growing. In addition to existing TV operators which switch from analog to digital, the high bandwidth which is offered by the digital television technologies allows the emergence of new operators.

Based on widely accepted MPEG and DVB standards, the digital television offers a higher image quality as well as an unlimited number of interactive services. These services include (but are not restricted to) pay-per-view, home shopping, tele-banking, home betting services, interactive advertising, internet access, etc. These services are equally available on cable, terrestrial and satellite television networks.

Canal+ Technologies is a subsidiary of the Canal+ Group, the largest Pay-TV group in Europe with 14 millions subscribers in 10 countries. The Canal+ Group is also a major actor in the film industry in Europe and in the USA (where it owns Universal Studios). Its subsidiary Canal+ Technologies provides a complete end-to-end solution for Digital Television operators, from the central broadcast centers to the set-top boxes at home. Its technology powers close to 7 millions set-top boxes for 20 TV operators (both inside and outside the Canal+ Group) in 13 countries.

The complexity of a digital television system is equally distributed among the broadcast systems and the set-top boxes. The embedded technologies in the set-top boxes are now essentially Java-based, which is enforced by the emerging DVB-MHP standards.

On the other hand, the servers in a digital TV broadcast center have availability, reliability and load constraints which require a robust implementation. For this reason, the server-side components of the Canal+ Technologies software have been developed in Ada.

This presentation explains the architecture of a Digital Television system and how Ada is used inside this system. It also describes how this system is currently re-engineered from a proprietary Ada 83 / OpenVMS implementation using the DEC Ada compiler to an Ada 95 multi-plaform implementation using the GNAT compiler.