FR 2880749 A1 20060714 FR 0550100 A 20050111 Méthode de transmission de flux MPEG sur IP et appareil implémentant la méthode [Domaine technique] La présente invention concerne le domaine du transport de services audio/vidéo sur un réseau IP. Plus précisément il concerne le transport de flux MPEG ( Moving Picture Expert Group en anglais) en utilisant le protocole RTP ( Real Time Protocol en anglais) . [Etat de la technique antérieur] La RFC ( Request For Comments en anglais) 3550 [3] décrit des moyens permettant le transport de flux ayant des contraintes temporelles sur IP et spécifie le rattachement d'une référence temporelle ( Timestamp en anglais) à chaque paquet RTP. La RFC 2250 [4] décrit comment plusieurs paquets de transport MPEG- 2 peuvent être transporté au sein de la partie donnée d'un paquet RTP. La spécification MPEG-2 [1] décrit la façon d'inclure des références temporelles dans un flux MPEG-2 et comment à la destination les différentes références temporelles sont utilisées pour re synchroniser l'horloge avec celle de la source. II est également décrit comment les références temporelles sont utilisées par le décodeur MPEG pour le contrôle des moments d'affichage des éléments contenus dans le flux transmis. La spécification DVB-IP [5] décrit une architecture générale pour la distribution de services multimédia sur des réseaux IP. Cette spécification adopte la RFC2250 comme mécanisme de transport de flux MPEG2 sur RTP. Le forum Pro-MPEG ( Pro-MPEG Wide Area Networking group en anglais) a édité un manuel de pratique ( code of practice en anglais) numéro 3 qui adopte également la IRFC2250 comme mécanisme de transport de flux multimédia. En conjonction avec DVB-IP, on dispose donc d'une architecture de services sur IP de bout en bout assurant l'interopérabilité des équipement basée sur la RFC2250. La référence temporelle incluse dans les paquets MPEG-2 et appelée PCR ( Programm Clock Reference en anglais) est une référence temporelle basée sur une horloge de précision de 27 MHz. Cette référence n'est pas incluse dans tous les paquets MPEG, mais seulement dans certains d'entre eux. Le débit du flux est supposé constant entre les paquets portant une référence PCR. La référence temporelle accolée à chaque paquet RTP est quant à elle basée sur une horloge d'une précision de 90 kHz, donc nettement moins précise. Dans le cas de RTP, chaque paquet contient une et une seule référence temporelle. Le recalage à la destination des paquets RTP se fait donc à la précision de l'horloge RTP soit 90 kHz. [Problème posé] On voit donc que l'utilisation de ces mécanismes engendre une modification du séquencement temporel des paquets MPEG. Cette modification vient d'une part du fait que les paquets MPEG-2 sont regroupé au sein d'un paquet RTP. Cette façon de faire entraîne que des paquets émis par la source à des instants différents vont être finalement transmis de manière groupée dans un paquet RTP ne contenant qu'une référence temporelle et vont donc être reçus de manière groupée par la destination à un instant recalé avec une précision 300 fois inférieure à celle des références temporelles, les PCR, incluses dans ces paquets. On doit donc faire face à une première source de modification du séquencement temporel due au regroupement et à une deuxième source de modification due au recalage des paquets RTP à 90 kHz et non à 27 MHz. [Résumé de l'invention] L'invention permet de compenser ces pertes de précision. Elle est basée sur une correction à la source de la valeur des références temporelles, les PCR, insérées dans des paquets MPEG. Cette correction à la source des références temporelles permet la correction de la gigue introduite dans le transport. [)e cette manière, la valeur du PCR correspond beaucoup plus précisément à sa place dans le flux à destination. L'invention concerne une méthode de transmission, par un appareil émetteur, d'un flux de données constitué de paquets de données, au moins certains de ces paquets comportant des références temporelles destinées à la synchronisation des horloges de l'émetteur et du récepteur caractérisée en ce qu'elle comporte au moins l'étape suivante: - une correction des références temporelles par le récepteur de façon à compenser la gigue introduite par la transmission. Selon un mode particulier de réalisation de l'invention la méthode comporte les étapes: - le stockage temporaire des paquets de données au sein d'un tampon pour constituer des ensembles de paquets pour le transport; - la correction des références temporelles portées par au moins certains des paquets rajoutant le temps passé dans le tampon. Selon un mode particulier de réalisation de l'invention la méthode comporte les étapes: - Les paquets étant transmis entre l'émetteur et le récepteur par protocole de transport assurant la reconstruction du séquencement temporel par le récepteur selon une horloge de précision moindre que celle utilisée par les références temporelles, la correction desdites références temporelles de la différence entre les deux horloges au moment de l'envoi du paquet porteur de cette référence temporelle. Selon un mode particulier de réalisation de l'invention la méthode comporte les étapes: - Les paquets étant transmis entre l'émetteur et le récepteur par protocole de transport assurant la reconstruction du séquencement temporel par le récepteur selon une horloge de précision moindre que celle utilisée par les références temporelles, le fait d'attendre pour l'envoi des paquets que la différence entre l'horloge de base des références temporelles et celle de moindre précision servant à la reconstruction du séquencement par le protocole de transfert soit nulle. L'invention concerne également un appareil L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels: La figure 1 représente schématiquement les étapes de la transmission d'un flux de données MPEG-2 de manière connue. La figure 2 représente schématiquement ces étapes incluant la correction selon un mode de réalisation de l'invention La figure 3 représente temporellement l'évolution des paquets lors de leur transmission. La figure 4 représente un exemple d'architecture d'un appareil à même d'envoyer un flux selon un mode de réalisation de l'invention. Le flux MPEG qui doit être transporté est constitué d'un ensemble de paquets MPEG généralement de 188 octets. Ces paquets forment un flux contigu que l'on veut transmettre entre un appareil source et un appareil destinataire. L'appareil source va donc fonctionner en émetteur du flux, tandis que l'appareil destinataire en sera De récepteur. Ce flux va contenir un ensemble multiplexé de flux élémentaires transportant du contenu temps réel, comme de l'audio et de la vidéo. Pour permettre à l'appareil destinataire de reconstituer le service multimédia de manière régulière et dont les différentes parties sont correctement synchronisée, il est important de maîtriser les temps relatifs entre les paquets et la synchronisation entre l'horloge de la source et celle de la destination. Pour ce faire, MPEG prévoit l'insertion sur certains des paquets du flux d'une référence temporelle appelée PCR permettant la synchronisation des horloges entre la source et la destination. Ces références temporelles transmettent la valeur de l'horloge de la source au moment de l'émission du paquet, et va servir à la réception du paquet à re synchroniser l'horloge de la destination selon un principe d'asservissement par PLL ( Phase locked Loop en anglais) connu. Cette façon de faire est d'autant plus efficace que le transport entre la source et la destination se fait de manière transparente. En particulier il est important que les temps de transport des paquets soient le plus uniformes possible. Le système s'accommode bien d'une latence tant que celle-ci est uniforme, mais la synchronisation souffre rapidement de temps de transports non uniformes. La transmission de paquets cle données sur un réseau IP ne permet pas d'assurer l'uniformité du ternps de transfert des paquets. La transmission peut même entraîner des duplications de paquets ainsi qu'une arrivée dans le désordre, les paquets ne prenant pas forcément le même chemin dans le réseau. Le protocole RTP tente de remédier à cet état de fait en préconisant l'ajout d'une référence temporelle à chaque paquet de données RTP transmis. Cette référence temporelle étant basée sur une horloge à 90 kHz. La destination d'un paquet RTP peut donc utiliser cette référence pour recaler les paquets reçus entre eux et reconstituer le séquencement temporel des paquets RTP reçus avec la précision de cette horloge de 90 kHz. Le transport d'un flux MPEG entre une source et une destination sur un réseau IP s'effectue en utilisant le protocole RTP lorsque l'on suit l'ensemble de normes DVB-IP, pro-MPEG. Ce transport se fait en encapsulant les paquets MPEG dans des paquets RTP. L'encapsulation typique consiste à mettre 7 paquets MPEG dans un paquet RTP. La figure 3 montre la façon dont cette encapsulation fonctionne. Les paquets MPEG, référencés 3.1, constituent un flux de départ appelé MPEG TS ( Transport Stream en anglais). Certains de ces paquets portent une référence temporelle, PCR, référencées 3.2. Ces paquets ne sont pas transmis tout de suite, ils doivent être stockés dans des tampons FIFO de façon à construire les paquets RTP, référencés 3.3. Quand un paquet RTP est prêt, il est envoyé doté de sa référence temporelle RTP, référencée 3.4, correspondant au moment de l'envoi du paquet. Du côté de la réception, on reçoit les paquets RTP selon un séquencement temporel non maîtrisé après le transport. Le séquencement de ces paquets est corrigé grâce aux références temporelle RTP à la précision de l'horloge RTP soit 90 kHz. Il en résulte un flux reconstitué MPEG constitué de groupes de paquets séquencés temporellement par rapport à une seule référence temporelle d'une précision 90 kHz. Cette façon de faire entraîne donc une double modification du séquencement relatif entre eux des paquets MPEG. D'une part l'introduction d'un regroupement de plusieurs paquets ayant la même référence temporelle et d'autre part le recalage de ces groupes à la précision moindre de 90 kHz. L'exemple de réalisation de D'invention repose sur l'apport de correction au PCR des paquets MPEG de façon à les faire correspondre au séquencement temporel reconstitué à l'arrivée. Ces corrections sont apportée sur les PCR référencés 3.5 sur la figure. Une première correction consiste à ajouter au PCR le temps entre son arrivée dans le tampon de stockage de la FIFO et le moment d'envoi du paquet RTP. De cette façon un PCR attaché à un paquet faisant partie d'un groupe et donc du même paquet RTP va avoir un PCR cohérent avec l'envoi du paquet RTP. Cette correction tenant compte pour chaque paquet du temps passé entre l'instant d'entrée du paquet dans la mémoire et son instant de sortie peut également être décrite comme suit. Cette mémoire sert à stocker les 1 à 7 paquets MPEG qui formeront la partie données de la trame RTP.Le temps de stockage de chaque paquet va correspondre au temps compris entre son moment d'arrivée dans le tampon et le moment de sortie du tampon lorsque la trame RTP est complète. Ce mécanisme va donc modifier les relations temporelles (création de gigue) entre des paquets successifs portant l'information temporelle PCR. Afin de connaître le temps passé dans le tampon, chaque paquet MPEG est stocké avec l'information de son temps d'arrivée (appelée T_in) fournie par le compteur PCR. L'instant de sortie du paquet (appelée Tout) est fournie par la valeur courante du compteur PCR au moment de la sortie du paquet. La correction effectuée sur le PCR d'un paquet MPEG consiste à corriger la valeur du PCR du temps (T_out-Tin) passé dans la mémoire. PCR(i)= valeur du PCR du paquet n i T in(i) = instant d'arrivée du paquet i dans le tampon T_out(i)= instant de départ du paquet i du tampon PCR'(i)= correction de la valeur du PCR en sortie de tampon PCR'(i) = PCR(i) + (T_out(i)-T_in(i)) Cette première correction va donc corriger la gigue créée par le phénomène de regroupement. Le PCR ainsi modifié est donc cohérent avec le moment d'envoi du paquet RTP. Ce paquet va être reçu et son séquencement temporel corrigé grâce au mécanisme des références temporelle intrinsèque à RTP. Ce paquet va donc être recalé côté destination à la précision de 90 kHz, or les PCR inclus dans les paquets MPEG ont eux une précision de 27 MHz 300 fois plus précise. Le séquencement du paquet RTP sera donc tronqué à la valeur entière inférieure de l'horloge à 90 kHz par rapport au moment réel de l'envoi considéré par rapport à l'horloge à 27 MHz. Une première solution pour corriger la différence de précision entre les deux horloges est d'introduire une seconde correction car à la source la présence d'une horloge à 27 MHz permet de connaître à cette échelle le moment d'envoi du paquet RTP. On peut donc calculer la différence entre la valeur prise par la référence temporelle à 90 kHz du paquet RTP et la même valeur à la précision de l'horloge à 27 MHz. Cette différence sera ajoutée au PCR de manière à ce que ce PCR soit cohérent à destination avec le séquencement recalé à 90 khz des paquets RTP ayant servi aux transport. Si on appelle PCR"(i)= correction finale du PCR tenant compte de l'arrondi à 90KHz du RTP et extension la différence entre la valeur de l'horloge à 27 MHz et celle à 90 kHz: PCR"(i)= PCR'(i) extension Une autre solution consiste à bloquer la trame RTP et à l'envoyer lorsque la différence entre l'horloge à 27IVIHz et celle à 90 kHz repasse à 0. La correction à apporter PCR" est identique à PCR' puisque l'extension est nulle. Cette solution se fait au détriment de la bande puisque la durée entre 2 débuts de trames RTP doit être un multiple de 1/90KHz. Un exemple d'appareil à même d'implémenter l'invention est illustré figure 4. Cet appareil, 4.1, se connecte à un réseau IP, 4.7, via une interface réseau 4.5. Il possède un processeur, 4.2, à même d'implémenter les méthodes décrites. Ce processeur utilise sa mémoire, 4. 4, pour exécuter ces méthodes. Les flux envoyés seront par exemple issus de la mémoire non volatile 4.3, celle-ci pouvant être constituée d'un disque. Tout autre réalisation tant logicielle que matérielle est possible sans sortir du cadre de l'invention. L'exemple de réalisation décrit l'invention de manière non limitative. Toute autre correction des références temporelles du flux de manière à prendre en compte préventivement une gigue dont on connaît les caractéristiques entre dans le cadre de l'invention. Références: [1] ISO/IEC 13818-1:2000 Information technology -- Generic coding of moving pictures and associated audio information: Systems, International Standards Organization. http://www.iso. orq/iso/en/CataloqueDetailPage.CataloqueDetail?C SNUMBER=31537 ISO/IEC 13818-2:2000 Information technology -- Generic coding of moving pictures and associated audio information: Video, International Standards Organization. http://www.iso.org/iso/en/CataloqueDetailPage. CataloqueDetail?C SNUMBER=31539 [2] MPEG-4 Video: ITU-T Rec H.264 1 ISO/IEC 14496-10 Information Technology - coding of audio-visual objects Part 10: Visual [3] IETF RFC 3550, RTP: A Transport Protocol for RealTime Applications, H. Schulzrinne et al., July 2003, available at http://www.ietf.orq/rfclrfc3550.txl [4] IETF RFC 2250, RTP Payload Format for MPEG1/MPEG2 Video, D. Hoffman et al., January 1998, available at http://www.ietf.orq/rfc/rfc2250.tx:t [5] DVB TM3022, Digital Video Broadcasting (DVB) - Transport of DVB Services over IP, ETSI, RTS/JTC-DVB93, 2004-03-26 [6] ARIB* STD-B24 Version 3.2, Data Coding and Transmission Specification for Digital Broadcasting, Association of Radio Industries and Businesses, November 15, 2001. [7] Digital Living Network Alliance - Home Networked Device lnteroperability Guidelines Version: 1.0 9 REVENDICATIONS 1. Méthode de transmission, par un appareil émetteur, d'un flux de données constitué de paquets de données, au moins certains de ces paquets comportant des références temporelles destinées à la synchronisation des horloges de l'émetteur et du récepteur caractérisée en ce qu'elle comporte au moins l'étape suivante: - une correction des références temporelles par le récepteur de façon à compenser la gigue introduite par la transmission. 2. Méthode selon la revendication 1 comportant les étapes: - le stockage temporaire des paquets de données au sein d'un tampon pour constituer des ensembles de paquets pour le transport; - la correction des références temporelles portées par au moins certains des paquets rajoutant le temps passé dans le tampon. 3. Méthode selon l'une des revendications 1 ou 2 comportant les étapes: Les paquets étant transmis entre l'émetteur et le récepteur par protocole de transport assurant la reconstruction du séquencement temporel par le récepteur selon une horloge de précision moindre que celle utilisée par les références temporelles, la correction desdites références temporelles de la différence entre les deux horloges au moment de l'envoi du paquet porteur de cette référence temporelle. 4. Méthode selon la revendication 2 comportant les étapes: - Les paquets étant transmis entre l'émetteur et le récepteur par protocole de transport assurant la reconstruction du séquencement temporel par le récepteur selon une horloge de précision moindre que celle utilisée par les références temporelles, le fait d'attendre pour l'envoi des paquets que la différence entre l'horloge de base des références temporelles et celle de moindre précision servant à la reconstruction du séquencement par le protocole de transfert soit nulle. 5. appareil d'émission d'un flux de données constitué de paquets de données, au moins certains de ces paquets comportant des références temporelles destinées à la synchronisation des horloges de l'émetteur et du récepteur caractérisée en ce qu'il comporte des moyens de correction des références temporelles par le récepteur de façon à compenser la gigue introduite par la transmission.