You are on page 1of 4

Dix-septime colloque GRETSI, Vannes, 13-17 septembre 1999

Systme de traitement du train transport MPEG-2


Christophe Alexandre, Herv Brunet, Didier Le Ruyet, Han Vu Thien CNAM, Laboratoire Signaux et Systmes 292 rue Saint Martin, 75141, PARIS Cedex 03, France
alex@cnam.fr, brunet@cnam.fr, leruyet@cnam.fr, vu-thien@cnam.fr

Rsum Dans le cadre dun contrat avec un oprateur satellite, nous avons dvelopp un systme danalyse et de traitement en temps rel
du train transport MPEG-2. Intgr sur une plate-forme de type PC sous Windows NT , les diffrents lments matriels et logiciels permettent de tester les aspects de transmission (diagramme de lil, constellation, taux derreurs), de conformit et de surveillance de la composition du train transport. Le systme peut aussi acqurir, enregistrer sur disque et restituer le train transport.

Abstract As part of a research contract supported by a broadcaster, we have developed an MPEG-2 transport stream real time analyzer. Running on a PC under Windows NT , the software and hardware parts of the system allow transmission measurements (eye diagram, constellation and error rate), compliance testing and program monitoring. Transport stream storage and reading are also available.

1. Introduction
La tlvision numrique a maintenant quitt le domaine de la recherche pour passer au stade industriel. Dans le cadre dun contrat avec un oprateur satellite, nous avons t amens dvelopper un systme danalyse innovant permettant de raliser diffrents traitements en temps rel sur le train transport MPEG-2. Nous avons pour cela intgr sur une plate-forme de type PC et sous Windows NT les diffrents lments matriels et logiciels permettant de tester les aspects de transmission (diagramme de lil, constellation, taux derreurs), de conformit et de surveillance de la composition du train transport. Le systme peut aussi lacqurir, lenregistrer sur disque et le restituer.

3. Le cahier des charges


Le systme danalyse a t conu afin de raliser trois types dapplication en temps rel : 1. Une application de mesure de la qualit de la transmission permettant : de calculer et denregistrer les taux derreurs dans le canal et aprs le dcodeur de Viterbi, de calculer et denregistrer le rapport signal sur bruit, de visualiser le diagramme de lil sur les voies I et Q ainsi que la constellation QPSK. 2. Une application de surveillance du train transport comprenant : lextraction (et le test) des tables PSI et DVB-SI afin dtablir le plan de service du rpteur puis sa vrification grce une requte SQL une base de donnes contenant le plan de service souhait, la surveillance des affluents lmentaires (dbit instantan et alarme programmable en cas de disparition), le test du compteur de continuit sur chaque PID, le test des champs Program Clock Recovery de chaque programme (ce champ PCR permet dasservir lhorloge numrique du dcodeur sur lhorloge systme du codeur). 3. Une application de laboratoire permettant : dacqurir le train transport et de le stocker sur disque, ou dacqurir les enttes des paquets de transport et de les stocker, ou dacqurir certains paquets (mode filtrage), de les dater puis de les stocker, ou de restituer un train transport stock sur disque avec une horloge externe.

2. Le train transport MPEG-2


Le train transport MPEG-2[1] est dcoup en paquets de transport dune longueur gale 188 octets auxquels on ajoute 16 octets de redondance. Leur entte, code sur 4 octets, dbute par un octet de synchronisation et comprend, entre autre, un identifieur de paquet (PID) cod sur 13 bits. Chacun des flux lmentaires (audio, vido, donnes ou tables systmes) composant le train transport est port par des paquets ayant le mme PID. On en trouve jusqu une centaine sur un rpteur satellite avec un dbit maximal de 6.5 Moctet/s. Linterface parallle synchrone (SPI) qui permet dacheminer ce signal en LVDS est normalise[2]. La figure 1 montre les signaux qui la composent.
Clock Data[7 :0] DVALID PSYNC
16 sync 1 2 186 187 1 2 16 sync 1

FIG. 1 : le train transport MPEG-2

107

Dix-septime colloque GRETSI, Vannes, 13-17 septembre 1999

4. Solutions retenues
Cest lapplication denregistrement et de restitution en temps rel du train transport qui est la plus critique. La limite de stockage ne doit tre dtermine que par la taille des disques utiliss et les fichiers stocks doivent tre directement accessibles depuis le systme dexploitation (Windows NT). Lenregistrement en temps rel dun train binaire en trs grosse quantit (plusieurs Go) des dbits relativement levs (jusqu 7.5 Moctet/s) a ncessit une tude dtaille des familles de disque dur disponibles. Nous avons choisi des disques SCSI-2 Ultra-Wide (monts en RAID0 logiciel) ayant une vitesse de rotation de 7200 tours/mn et une capacit de 4.5 Go pour leurs performances en transfert soutenu, puis nous avons mesur les temps de latence en lecture et en criture (ds principalement la recalibration thermique des ttes magntiques). Le dlai de latence, lors de nos mesures sur de longues dures, na jamais t suprieur 50 ms ce qui reprsente 375 ko de donnes au dbit maximal. Une pile FIFO doit donc obligatoirement se trouver sur la carte PCI assurant le transfert pour absorber ces dlais. Sa taille a t fixe 1 Mo et elle a t ralise avec de la mmoire RAM statique. La capacit dvolution de ce systme a ncessit une tude approfondie du partage entre le matriel et le logiciel, cest--dire du compromis entre la vitesse du matriel et la souplesse du langage C. Nous avons dvelopp une carte de traitement PCI qui permet de raliser, avec le driver et les routines de bas niveau associs, diffrents transferts entre linterface SPI et la mmoire vive du PC, ainsi quune carte tuner/dcodeur qui assure la dmodulation du signal QPSK et le dcodage de canal[3] et enfin un modulateur effectuant le codage de canal et la modulation QPSK. La figure 2 montre les trois lments du systme.
Carte de traitement
Embrouilleur Codeur ReedSolomon Entrelaeur convolutionnel codeur convolutif

Carte fille

ROM

Carte PCI

Train transport MPEG-2

LVDS <> TTL

FPGA XC4020E

Contrleur PCI AMCC S5933

Horloge 27 MHz

SRAM

bus PCI

Figure 3 : synoptique de lensemble carte PCI, carte fille. Lensemble est compos de deux cartes (voir figure 4) : une carte PCI gnrique et une carte fille monte en mezzanine qui comprend tous les circuits spcifiques notre application.

Figure 4 : carte dacquisition/restitution du train transport MPEG-2 Le FPGA XC4020E est le cur du systme. Il assure quatre fonctions : linterface avec le bus SPI via un convertisseur LVDS, linterface et le contrle de la mmoire SRAM afin de former une FIFO 256 k x 32 bits, linterface de communication avec le contrleur PCI AMCC et le contrle gnral du fonctionnement du systme. Lhorloge 27 MHz permet, avec une prcision 5 ppm, de dater larrive des paquets de transport en mode filtrage ou de tester la valeur des PCR de chaque programme.

C O N T R O L E U R P C I

Contrleur I N T E R F A C E FIFO Filtrage et traitement

Modulateur Train transport MPEG-2 (Interface SPI)

Modulateur QPSK

Canal satellite

Carte tuner/dcodeur

dmodulateur QPSK

6. La carte tuner/dcodeur
Cette carte est alimente par un connecteur PCI, mais elle est pilote par un bus I2C command par le port parallle du PC. Son synoptique est le suivant :
Bus I2C Signal reu 950-2150MHz Signaux DVB Rception Dmodulation QPSK Dcodage de canal

Dsembrouilleur

dcodeur ReedSolomon

dsentrelaeur convolutionnel

dcodeur de Viterbi

FIG. 2 : les trois lments du systme

5. La carte de traitement
Cette carte PCI (avec le driver et les routines de bas niveau associs) permet de raliser les trois transferts suivants entre le bus SPI (arrive du train transport) et la mmoire vive du PC : soit tous les paquets de transport, soit les enttes des paquets de transport, ou bien seulement les paquets de transport dont le PID correspond une liste prdfinie (64 PID au maximum). Elle peut aussi effectuer le transfert de tous les paquets de transport entre la mmoire vive du PC et le bus SPI (fonction restitution). Son synoptique est le suivant :

Polarisation et slection de la frquence du LNB

Signaux I et Q

Rcupration des voies I et Q

Carte de dmodulation satellite DVB

Figure 5 : carte tuner/dcodeur

108

Dix-septime colloque GRETSI, Vannes, 13-17 septembre 1999


Elle assure les fonctions principales de rception et de dmodulation analogique, de dmodulation QPSK, de dcodage de canal et de slection de la polarisation de lantenne et de la plage de fonctionnement de loscillateur local. Elle rcupre, via le bus I2C, le rapport signal sur bruit et diffrents taux derreurs fournis par le circuit tuner BSRV2 ainsi quun chantillonnage des voies I et Q. Elle se prsente sous la forme dune carte PCI courte. Daprs le cahier des charges, la frquence symbole doit pouvoir varier entre 17,5 et 30 Msym/s, ce qui implique quavec les diffrents rendements, lhorloge octet peut varier entre 2,1875 MHz et 6,5625 MHz. De plus, elle peut tre affecte dun jitter non ngligeable. Deux problmes doivent donc tre rsolus dans ces conditions : le passage du rythme octet au rythme bit (et vice versa) et le passage du rythme bit au rythme symbole. Aprs tude (notamment des problmes de jitter), nous avons choisi de travailler en mode rafale avec une horloge (H64M) dont la frquence est gale 64 MHz (suprieure 8x6,5625 MHz plus une marge pour le jitter). Les signaux de linterface SPI sont resynchroniss sur H64M et un signal de validation dune dure de 8 priodes est gnr. Cest grce ce signal que lon effectue la conversion octet/bit et que lon peut travailler au rythme bit et ce mme avec une instabilit leve de lhorloge octet. Linconvnient de cette mthode est une frquence de travail plus leve que si lon travaillait directement avec une horloge bit strictement gale 8 fois lhorloge octet. Lhorloge symbole (en fait 2 fois cette horloge cause du sur-chantillonage ncessaire la ralisation des filtres 1/2 Nyquist) pose plus de problmes. Elle doit tre gnre laide dun gnrateur de frquence programmable extrieur puisquelle est un multiple fractionnaire de lhorloge octet, ce multiple (voir tableau 1) dpendant du rendement du code interne. Tab. 1 : coefficient multiplicateur de lhorloge octet Rendement 2xFsymbole = Hoctet multiplie par 1/2 16 2/3 12 3/4 32/3 5/6 48/5 7/8 64/7 De plus, les frquences de travail de part et dautre de la perforation sont diffrentes et donc asynchrones. Il est ncessaire dutiliser une mmoire double port synchrone 32 bits sur chacune des deux voies pour assurer la resynchronisation des flux de donnes entrant et sortant. Cette mmoire est utilise pour former une sorte de FIFO asynchrone o le pointeur dcriture aurait toujours en moyenne 16 coups dhorloge davance sur le pointeur de lecture afin dassurer la continuit des symboles la sortie de la perforation. Ce bloc travaille donc une frquence de 64 MHz en entre et une frquence maximale de 60 MHz en sortie. Dun point de vue fonctionnel, cest lentrelaceur convolutionnel qui pose le plus de problmes. Il est compos de 12 branches qui occasionnent chacune un retard de Nx17 priodes de lhorloge octet divise par 12 (N tant compris entre 0 et 11) sur le train doctets sortant du codeur ReedSolomon. Un calcul rapide montre quil faudrait utiliser 8976 bascules D, cest--dire environ 5000 blocs logiques configurables (CLB) dans notre FPGA (famille 4000XL de chez Xilinx), ce qui est impossible avec les capacits actuelles. Il faut donc utiliser les blocs mmoires synchrones

Figure 6 : carte tuner/dcodeur

7. Le modulateur
Le modulateur ralise les fonctions suivantes : conversion, embrouillage, codage Reed-Solomon, entrelaage convolutionnel, codage convolutif, perforation, filtrage et modulation ; ce qui nous donne le synoptique gnral de la figure suivante.
Train transport MPEG-2 LVDS <> TTL Embrouilleur 1+x14+x15

FPGA
RS(204,188,8)

1/2 Nyquist Entrelaeur convolutionnel (I=12, M=17) codeur convolutif (R=1/2, K=7) perforation (2/3, 3/4, 5/6, 7/8) mapper 1/2 Nyquist

CNA

Passe-bas Modulateur QPSK Passe-bas Up converter

70 MHz CNA Passe-bas

Figure 7 : synoptique du modulateur Trois horloges sont ncessaires au fonctionnement du modulateur : 1. lhorloge octet entrante (Clock) qui cadence les blocs codeur Reed-Solomon et entrelaceur convolutionnel , 2. lhorloge bit utilise dans les blocs embrouilleur , codeur convolutif et lentre du bloc perforation , 3. et lhorloge symbole (ou deux fois cette horloge) la sortie du bloc perforation et dans les blocs mapper et Nyquist (ainsi que sur les CNA).

109

Dix-septime colloque GRETSI, Vannes, 13-17 septembre 1999


16x2 bits se trouvant dans chaque CLB pour raliser ces retards. Associe avec un compteur, une mmoire 16x1 peut raliser un retard de 16 priodes dhorloge (et mme 17 en ajoutant la bascule D encore disponible dans le CLB). Chaque bloc de 17 retards sur 8 bits tient donc en 4 CLB au lieu de 68 en nutilisant que des bascules D. De cette manire, on ralise lentrelaceur complet en 470 CLB (au lieu de 5000). Dvelopps en langage VHDL, lensemble des blocs du codage de canal occupe entirement un XC4044XL1 (1600CLB). Les diffrents lments du modulateur (voir figure 8) ont t tests sparment puis assembls et mis dans un rack 19 pouces de hauteur 1U.

Figure 11 : acquisition en mode filtrage Pour faciliter le traitement en temps rel, lapplication logiciel a t spare en deux thread (tches) indpendantes, un thread de haute priorit grant les traitements de bas niveau et un thread daffichage de priorit moindre.

9. Rsultats
Figure 8 : modulateur satellite Les rsultats des tests ont t conformes au cahier des charges. En fixant la taille des blocs transfrs via un accs DMA entre la FIFO et la mmoire vive du PC 64 ko, nous avons pu raliser en temps rel les traitements demands pour lapplication surveillance (notamment le test des PCR qui tait critique). En ce qui concerne lapplication de laboratoire, la fonction critique tait lacquisition et le stockage sur disque du train transport complet. Nos tests ont montr quil tait possible de la raliser sans dbordement de la FIFO jusqu un dbit de 8.5 Mo/s.

8. Lapplication logiciel
La premire fentre ouverte par le logiciel concerne la configuration de la carte tuner et la qualit de la transmission.

10. Perspectives
En vue dobtenir une version plus compacte du systme, il est prvu dimplmenter le modulateur sur une carte PCI afin que tous les lments tiennent dans un PC. Il sera de plus ncessaire dajouter une interface srie asynchrone ASI sur les trois cartes en plus de linterface SPI pour assurer une totale interoprabilit avec les quipements du commerce. FIG. 9 : configuration de la carte tuner et test de la rception Une fois la rception oprationnelle, on peut lancer soit lapplication de surveillance du train transport (voir figure 10) soit lapplication de laboratoire (voir figure 11).

Rfrences
[1] ISO/IEC 13818-1 : Information technology -- Generic coding of moving pictures and associated audio information : Systems. 1996. [2] CENELEC Standard EN 50083-9 : Cabled Distribution Systems for Television, Sound and Interactive Multimedia Signals; Part 9: Interfaces for CATV/SMATV Headends and similar Professional Equipment. 1997. [3] ETSI 300421 : Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for 11/12 GHz satellite services. 1997.

Figure 10 : fonction surveillance

110

You might also like