| JP2006165850 | COMMUNICATIONS TERMINAL EQUIPMENT AND ITS PROGRAM |
| JP3167906 | DATA TRANSMISSION METHOD AND SYSTEM |
| JP2002111738 | ADDRESS NOTIFYING METHOD |
VERMEULEN, Samuel (4 rue du champ Michel, Chevaigne, F-35250, FR)
| REVENDICATIONS
1. Méthode d'optimisation de transmission d'un flux de trames audio à débit variable dans un flux de transport pour transmission sur un réseau de transport de paquets, caractérisée en ce que ladite méthode comprend les étapes suivants :
- réception d'au moins une trame audio (62) de débit variable ;
- génération d'une référence de temps (63) pour chaque trame audio appartenant à un ensemble de trames audio de débit variable reçues, ladite référence de temps étant associée à un moment de réception de ladite trame audio ;
- encapsulation d'au moins une trame audio de débit variable dans un paquet de flux élémentaire (641) audio avec la référence de temps générée, ledit paquet de flux élémentaire audio ayant une taille déterminée en fonction des caractéristiques dudit flux de trames audio à débit variable et en fonction d'une charge utile de paquets de transport dudit flux de transport ;
- encapsulation d'au moins une partie du paquet de flux élémentaire audio dans au moins un paquet de transport
(642); et
- transmission (65) d'au moins une partie d'un paquet de transport.
2. Méthode selon la revendication 1 , caractérisée en ce que la taille dudit paquet de flux élémentaire est déterminée selon au moins un des critères suivants :
- une première taille minimale dudit paquet de flux élémentaire hors entête est égale à la taille maximale des trames audio dudit flux de trames audio,
- une deuxième taille minimale dudit paquet de flux élémentaire est un nombre entier fois de la taille d'un paquet de transport hors entête dudit flux de transport,
- une troisième taille maximale dudit paquet de flux élémentaire en fonction d'un délai maximal de décodage dudit flux de transport, et que lorsque l'au moins un des critères comprend ladite première et ladite deuxième tailles minimales, ladite taille dudit paquet de flux élémentaire est égale ou supérieure à la plus grande desdits première et deuxième tailles minimales et que lorsque l'au moins un des critères comprend ladite troisième taille maximale, la taille dudit paquet de flux élémentaire est inférieure ou égale à la troisième taille maximale.
3. Méthode selon l'une quelconque des revendications 1 à 2, caractérisée en ce que la méthode comprend une étape d'analyse préalable des caractéristiques dudit flux de trames audio à débit variable et que ladite taille dudit paquet de flux élémentaire audio est déterminée en fonction du résultat de cette analyse.
4. Méthode selon l'une quelconque des revendications 1 à 3, caractérisée en ce que ladite taille dudit paquet de flux élémentaire audio est déterminée à partir de caractéristiques dudit flux de trames audio fourni à la méthode d'optimisation de transmission.
5. Méthode selon l'une quelconque des revendications 1 à 4, caractérisée en ce que l'étape d'encapsulation d'au moins une trame audio, et l'étape d'encapsulation d'au moins une partie du paquet de flux élémentaire audio sont rassemblées en une seule étape d'encapsulation de trames audio de débit variable dans des paquets de transport.
6. Méthode selon l'une quelconque des revendications 1 à 4, caractérisée en ce que l'étape d'encapsulation d'au moins une trame audio, et l'étape d'encapsulation d'au moins une partie du paquet de flux élémentaire audio sont distinctes.
7. Méthode selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite étape de génération d'une référence de temps comprend les étapes suivantes :
- lorsque la partie charge utile d'un paquet de flux élémentaire audio commence avec le début d'une trame audio, la référence de temps pour un entête d'un paquet de flux élémentaire audio est égale à la référence de temps correspondant à l'instant de la réception de la trame audio ; et
- lorsque la partie charge utile paquet de flux élémentaire audio ne commence pas avec le début d'une trame audio, la référence de temps pour ledit entête d'un paquet de flux élémentaire audio courant est égale à la somme d'une référence de temps de correspondant au moment de la réception du début de la trame audio et la durée de réception de la trame audio. |
Méthode d'optimisation de transmission d'un flux de trames audio à débit variable dans un flux de transport pour transmission sur un réseau.
1. Domaine de l'invention.
La présente invention se rapporte au domaine de la transmission de flux numérique audio à débit variable vers un ou plusieurs récepteurs via un réseau de transport de paquets. Plus précisément, l'invention concerne la réduction du débit d'un flux de trames audio à débit variable (ou « VBR » pour « Variable Bit Rate » en anglais) pour son envoi dans un flux de transport pour transmission sur un réseau.
2. Arrière-plan technologique.
Selon l'état de la technique, un encapsulateur de trames audio permet l'empaquetage de ces trames en vu de son adaptation pour l'envoi de paquets sur un réseau. Les tâches d'un tel encapsulateur comprennent l'empaquetage d'un flux de trames audio (ou « Audio Frame Stream » en anglais) dans des paquets de flux élémentaire (ou « PES » de l'anglais « Packetized Elementary Stream »). Le ou les flux audio PES sont ensuite mis dans des paquets de transport, comme par exemple selon le format MPEG2-TS (Moving Pictures Expert Group, Transport Stream ; le format MPEG2-TS est décrit dans le document ISO/IEC 13818-1), permettant la transmission du flux de trames audio sur un réseau de transport de paquets.
Les trames audio traitées par un tel encapsulateur peuvent être de débit constant ou de débit variable. Généralement, la gestion de ce type de réseau impose à un flux donné un débit limité. La bande passante (ou « Bandwidth » en anglais) allouée à un flux transporté par un réseau de transport de paquets (par exemple réseau DVB-H (de l'anglais « Digital Video Broadcasting - Handheld » ou « transmission de vidéo numérique vers des appareils portables » en français) ou 3GPP (« Third Génération Partnership Project » en anglais, pour « projet de coopération de troisième génération)) est limitée pour des raisons techniques, économiques ou réglementaires.
Le processus d'encapsulation d'un flux de trames audio à débit variable dans un flux de paquets de transport amène un délai. Dans le cadre du transport de trames audio par un réseau de transport paquets pour la téléphonie mobile, un délai de conversion court est avantageux car le délai
entre l'envoi et la réception d'un tel flux se trouvera réduit, ce qui augmente le confort d'utilisation d'un tel réseau.
Selon l'état de la technique, la conversion d'un flux de trames audio à débit variable dans un flux de paquets de transport est faite en ajoutant des données de bourrage (ou « stuffing bits » en anglais) lors de l'empaquetage du ou des paquets PES audio dans un paquet de flux de transport, notamment pour faire en sorte qu'un nouveau paquet PES audio commence au début d'un paquet de flux de transport, ce qui simplifie l'encodage d'un tel flux et son décodage, mais ce qui ne permet pas d'optimiser la bande passante du flux de trames audio ainsi converti.
Selon l'état de la technique, lors de la conversion d'un flux de trames audio à débit variable dans un flux de paquets de transport, et notamment dans l'empaquetage de trames audio à débit variable, et donc à longueur variable, le nombre de trames audio par paquet de flux élémentaire est fixe, encore pour faciliter l'encodage et le décodage, mais ce qui amène un délai d'encodage, car avant de pouvoir envoyer un paquet de flux élémentaire ainsi construit, l'entête de ce paquet de flux élémentaire doit être construit. L'entête comprend notamment la taille du paquet de flux élémentaire, qui est variable selon l'état de l'art car elle dépend de la taille des trames audio reçues. Ce procédé amène à une mémorisation temporaire d'un certain nombre de trames audio avant envoi dans un ou des paquets de flux de transport. Cette mémorisation temporaire (« bufferization » en anglais) résulte dans un délai d'encodage. Ainsi, l'art antérieur ne permet pas d'optimiser ce délai. Comme mentionné précédemment, le débit maximal d'un flux de paquets de transport est en pratique soumis à une contrainte de débit maximal. Dans ce contexte, l'ajout de données de bourrage réduit la bande passante disponible pour les données audio, ce qui a un impact sur la qualité des données audio transmises. Aussi, dans le cas où un flux PES audio est mis dans un flux de paquets de transport ensemble avec un flux vidéo, l'ajout de données de bourrage aux paquets PES audio réduit soit le débit maximal disponible pour le flux audio, soit sur le flux vidéo, soit sur les deux.
Aussi, l'état de la technique présente l'inconvénient d'une conversion non optimisée, d'un flux de trames audio à débit variable dans un flux de paquets de transport.
3. Résumé de l'invention.
L'invention a pour but de pallier au moins un de ces inconvénients de l'art antérieur.
Plus particulièrement, l'invention a pour objectif d'optimiser la transmission de trames audio de débit variable dans un flux de paquets de transport.
Une des optimisations de la transmission obtenue par l'invention se situe au niveau de la réduction de la bande passante prise pour la transmission d'un flux de paquets de transport construit selon l'invention, notamment par un remplissage optimale des paquets de flux élémentaire et des paquets de flux de transport. Par un remplissage optimal des paquets de flux élémentaire et des paquets de flux de transport, le procédé d'optimisation de transmission de trames audio à débit variable permet notamment de ne pas ajouter de données de bourrage aussi bien dans l'étape de mise en paquets de flux élémentaire de trames audio à débit variable que dans l'étape de mise en paquets de transport de paquets de flux élémentaire. Pour obtenir cet optimisation, le procédé de transmission de l'invention comprend une étape de détermination d'une taille d'un paquet de flux élémentaire, optimisé à la fois aux caractéristiques du flux de trames audio reçus et aux caractéristiques du flux de transport.
Une autre optimisation de la transmission obtenue par l'invention se situe au niveau de la réduction du délai de transmission d'une trame audio de débit variable reçue à l'entrée d'un émetteur effectuant l'empaquetage de ces trames dans un flux de paquets élémentaires et l'empaquetage de flux de paquets élémentaires dans un flux de transport. Cet optimisation est obtenue notamment par la fixation de la taille des paquets de flux élémentaire selon le procédé de l'invention, et par le calcul de la référence de temps de ces paquets selon l'invention, permettant ensuite de connaître très rapidement les paramètres qui doivent être mis dans l'entête d'un paquet de flux élémentaire, et ainsi de pouvoir transmettre des trames audio reçues à la volée, c'est-à-dire que le procédé de transmission selon l'invention ne nécessite que la mémorisation temporaire d'une seule trame audio avant sa transmission dans un flux de paquets de transport, ce qui réduit le délai de transmission des trames audio.
A cet effet, l'invention propose une méthode d'optimisation de transmission d'un flux de trames audio à débit variable dans un flux de
transport pour transmission sur un réseau de transport de paquets. Afin d'optimiser la transmission, la méthode comprend les étapes suivants :
- réception d'au moins une trame audio (62) de débit variable ;
- génération d'une référence de temps (63) pour chaque trame audio appartenant à un ensemble de trames audio de débit variable reçues, la référence de temps étant associée à un moment de réception de la trame audio ;
- encapsulation d'au moins une trame audio de débit variable dans un paquet de flux élémentaire (641) audio avec la référence de temps générée, le paquet de flux élémentaire audio ayant une taille déterminée en fonction de caractéristiques dudit flux de trames audio à débit variable et en fonction d'une charge utile de paquets de transport du flux de transport ; - encapsulation d'au moins une partie du paquet de flux élémentaire audio dans au moins un paquet de transport (642); et
- transmission (65) d'au moins une partie d'un paquet de transport. Avantageusement, le paquet de transport construit selon la méthode ne comprend pas de bit de bourrage ajouté à la composante audio présente dans le paquet de flux de transport,
- ni dans les paquets de flux élémentaire audio,
- ni ajouté au paquet de flux élémentaire audio à l'encapsulation dans au moins un paquet de transport.
Un flux de paquets de transport construit selon la méthode d'optimisation de transmission de l'invention, ne comprenant que des trames audio à débit variable, sera donc aussi à débit variable. Ensuite, le flux de transport selon l'invention peut être converti en flux de transport à débit constant si, par exemple, le flux de transport comprend aussi une autre composante que la composante audio, par exemple une composante vidéo et/ou données, à laquelle des données de bourrage sont ajoutées pour rendre le flux de transport total (audio + autres composantes) à débit constant, une technique comprise dans l'état de l'art. Avantageusement, la méthode comprend une détermination de la taille du paquet de flux élémentaire selon au moins les critères suivants :
- une première taille minimale du paquet de flux élémentaire hors entête est égale à la taille maximale des trames audio du flux de trames audio,
- une deuxième taille minimale du paquet de flux élémentaire est supérieure ou égale à la taille d'un paquet de transport hors entête du flux de transport,
- la troisième taille maximale du paquet de flux élémentaire est un nombre entier fois de la taille d'un paquet de transport hors entête du flux de transport, et que la taille du paquet de flux élémentaire est une valeur qui est égale ou supérieure à la plus grande des première et deuxième tailles minimales et qui est égale ou inférieure à au moins la troisième taille maximale.
Selon un mode de réalisation spécifique, la méthode comprend une étape de détermination d'une quatrième taille maximale du paquet de flux élémentaire en fonction d'un délai maximal de décodage du flux de transport, et que la taille du paquet de flux élémentaire est d'une valeur qui est égale ou inférieure à la plus petite des troisième et quatrième tailles maximales.
Selon un mode de réalisation spécifique, la méthode comprend une étape d'analyse préalable des caractéristiques du flux de trames audio à débit variable et que ladite taille dudit paquet de flux élémentaire audio est déterminée en fonction du résultat de cette analyse.
Selon un mode de réalisation spécifique, la valeur pour la taille du paquet de flux élémentaire audio est déterminée à partir de caractéristiques du flux de trames audio fourni à la méthode d'optimisation de transmission.
Selon un mode de réalisation spécifique, l'étape d'encapsulation d'au moins une trame audio, et l'étape d'encapsulation d'au moins une partie du paquet de flux élémentaire audio sont rassemblées en une seule étape d'encapsulation de trames audio de débit variable dans des paquets de transport.
Selon un mode de réalisation spécifique, l'étape d'encapsulation d'au moins une trame audio, et l'étape d'encapsulation d'au moins une partie du paquet de flux élémentaire audio sont distinctes.
Selon un mode de réalisation spécifique, l'étape de génération d'une référence de temps comprend les étapes suivantes :
- lorsque la partie charge utile d'un paquet de flux élémentaire audio commence avec le début d'une trame audio, la référence de temps
pour l'entête d'un paquet de flux élémentaire audio est égale à la référence de temps correspondant à l'instant de la réception de la trame audio ; et
- lorsque la partie charge utile paquet de flux élémentaire audio ne commence pas avec le début d'une trame audio, la référence de temps pour l'entête d'un paquet de flux élémentaire audio courant est égale à la somme d'une référence de temps de correspondant au moment de la réception du début de la trame audio et la durée de réception de la trame audio. La référence de temps de l'entête d'un paquet de flux élémentaire permet, à la réception, de cadencer le décodage du flux élémentaire. Pour permettre un tel cadencement, la référence de temps est comprise d'une façon déterminée. Selon par exemple la norme ISO/IEC 13818-1 , la référence de temps associé au moment de la réception de la première trame audio complète incluse dans le paquet de flux élémentaire.
4. Liste des figures.
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 présente un synoptique schématique d'une infrastructure mettant en œuvre l'invention dans deux types d'équipement différents ;
- la figure 2 représente un appareil permettant une mise en œuvre de l'invention selon un mode de réalisation particulier de l'invention, un tel appareil appartenant à l'infrastructure de la figure 1 ;
- la figure 3 représente un exemple de format de trames audio acceptées à l'entrée de l'appareil de la figure 2 ;
- la figure 4 représente un exemple de format de données de sortie fourni par l'appareil de la figure 2; - la figure 5 illustre schématiquement les différents niveaux d'encapsulation des données traités par l'appareil de la figure 2 ;
- les figures 6 à 8 illustrent une méthode d'optimisation de transmission de trames audio à débit variable dans un flux de transport pour transmission, selon l'invention et mise en œuvre dans l'appareil de la figure 2 ;
- la figure 9 illustre un mode de réalisation particulier d'une méthode de réception d'un flux de transport construit selon la méthode de transmission.
5. Description détaillée de l'invention.
La figure 1 présente un synoptique schématique d'une infrastructure 1 dans deux types d'équipements (encapsulateur 104 et rémultiplexeur 110) différents mettant en œuvre l'invention.
L'infrastructure 1 comprend : - une source audio 100 ;
- un encodeur 102, relié à la source 100 par une connexion 101 ;
- l'encapsulateur 104, relié à l'encodeur 102 par une connexion 103 ;
- un premier récepteur 108, relié à l'encapsulateur 104 par un premier réseau 106 et des connexions 105 et 107 ;
- ue rémultiplexeur 110, relié à l'encapsulateur 104 par le réseau 106 et des connexions 105 et 109 ; et
- un deuxième récepteur 114 relié au rémultiplexeur 110 par un deuxième réseau 112 et des connexions 111 et 113. La source audio 100 fournit des données audio à l'encodeur 102.
L'encodeur 102 fournit un flux de trames audio à débit variable à l'encapsulateur de paquets de transport 104. L'encapsulateur 104 fournit un flux de paquets de transport, comprenant un flux de trames audio à débit variable, au premier récepteur 108 et au rémultiplexeur 110 par le premier réseau 106. Le premier récepteur 108 est adapté à décoder le flux de trames audio compris dans le flux de transport. Le rémultiplexeur 110 (parfois aussi appelé rémux, ré-encodeur, ou transcodeur) est adapté à recevoir un flux de paquets de transport, multiplexe avec d'autres flux ou non, d'y extraire un flux de trames audio à débit variable, et de ré-encoder ce flux de trames audio à un autre débit et /ou selon une autre norme, et éventuellement de le ré-multiplexer avec d'autres flux. Par exemple, le rémultiplexeur 110 réencode un flux de trames audio encodés par l'encodeur 102 au format d'encodage audio AAC (selon la norme ISO/IEC 14496-3:2005) en format d'encodage audio AC3 (selon la norme ETSI TS 102 366). Le ré- multiplexeur 110 réencapsule ensuite le flux de trames audio résultant de cette conversion, pour créer un nouveau flux de paquets de transport comprenant un flux de trames audio à débit variable, qui est transmis au
deuxième récepteur 114 via le deuxième réseau 112. Le deuxième récepteur 114 est adapté à décoder le flux de trames audio compris dans le flux de transport provenant du rémultiplexeur 110.
Selon une variante, le rémultiplexeur reçoit un flux de paquets de transport multiplexe avec d'autres flux de type audio ou vidéo, y extrait un flux de trames audio à débit variable, le ré-encode selon un autre débit et/ou selon un autre standard d'encodage, l'encapsule dans un flux de paquets de transport et le transmet.
Selon une variante, le rémultiplexeur reçoit un flux de paquets de transport multiplexe avec d'autres flux de type audio ou vidéo, et y extrait un flux de trames audio à débit variable, le rémultiplexe avec au moins une autre flux de type audio ou vidéo, l'encapsule dans un flux de paquets de transport, et le transmet.
Selon une variante, le rémultiplexeur reçoit un flux de paquets de transport, y extrait un flux de trames audio à débit variable, le ré-encode avec un autre débit, l'encapsule dans un flux de paquets de transport, et le transmet.
Selon des variantes, les réseaux 106 et 112 comprennent plusieurs encodeurs audio (par exemple deux, trois, quatre ou plus) et/ou plusieurs encapsulateurs, plusieurs rémultiplexeurs, ainsi que d'autres équipements utiles à un bon fonctionnement.
Afin de simplifier le dessin, les réseaux 106 et 112 sont représentés avec un seul récepteur. Selon des variantes, les réseaux 106 et
112 comprennent plusieurs récepteurs (par exemple, deux, trois, dix, ...) adaptés pour recevoir et décoder un flux de paquets audio comprenant un flux de trames audio à débit variable.
Selon des variantes de l'invention, la méthode d'optimisation de transmission est mise en œuvre dans l'encapsulateur 104, le ré-multiplexeur 110, ou encore tout autre type d'appareil recevant un flux de trames audio à débit variable, encapsulant ces trames dans des paquets de transport (directement ou via une encapsulation dans un flux de paquets élémentaires), qui sont transmis vers un ou plusieurs destinataires.
La figure 2 illustre schématiquement un appareil 2 mettant en œuvre de l'invention selon un mode de réalisation particulier. L'appareil 2 est par exemple l'encapsulateur 104 ou le rémultiplexeur 110.
L'appareil 2 comprend, reliés entre eux par un bus d'adresses et de données 23 :
- un microprocesseur 21 (ou CPU, de l'Anglais « Central Processing Unit ») ;
- une mémoire non volatile de type ROM (de l'anglais « Read OnIy Memory ») 20 ; - une mémoire vive ou RAM (de l'anglais « Random Access
Memory ») 26 ;
- une interface 22 permettant la réception de trames audio à l'entrée ;
- une interface 24 permettant l'envoi d'un flux de paquets de transport sur un réseau de transport de paquets ; et
- une horloge interne 25 permettant d'associer une référence de temps à une trame audio reçue.
On observe que le mot « registre » utilisé dans la description des mémoires 20 et 26 désigne dans chacune des mémoires mentionnées, aussi bien une zone de mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier ou tout ou partie des données audio reçues).
La mémoire ROM 20 comprend notamment :
- un programme « prog » 201 ; - une adresse d'envoi de diffusion multiple (ou « multicast » en anglais) 202 ;
- une valeur de taille des paquets de transport 203 ;
- une valeur de taille de l'entête des paquets de transport 204 ; et - une valeur de taille de l'entête des paquets de flux élémentaire
205.
Les algorithmes mettant en œuvre les étapes du procédé décrit ci- après sont stockés dans la mémoire ROM 20 associée à l'appareil 2 mettant en œuvre ces étapes. A la mise sous tension, le microprocesseur 21 charge et exécute les instructions de ces algorithmes.
La mémoire vive 26 comprend notamment :
- dans un registre 261 , le programme de fonctionnement du microprocesseur 21 qui est chargé à la mise sous tension de l'appareil 2 ; - une zone de tampon pour le stockage d'une trame audio reçue, dans un registre 262;
- une référence temporelle associée au moment de la réception d'une trame audio, dans un registre 263 ;
- un registre 264 permettant la préparation et le stockage d'un paquet de transport; - un registre 265 permettant le stockage de la taille déterminée des paquets de flux élémentaire ; et
- une zone de données 266 permettant le stockage temporaire de données nécessaires pour le bon fonctionnement de l'appareil 2. D'autres structures que celle décrite en regard de la figure 2 sont compatibles avec l'invention. En particulier, selon des variantes, l'invention est mise en œuvre selon une réalisation purement matérielle ("hardware" en anglais), par exemple sous forme d'un composant dédié (par exemple dans un ASIC ou FPGA ou VLSI) (respectivement « Application Spécifie Integrated Circuit » en anglais, signifiant « Circuit Intégré à vocation d'une application spécifique », « Field-Programmable Gâte Array » en anglais, signifiant « Réseau de Portes Programmable In-Situ », « Very Large Scale Intégration » en anglais, signifiant « Intégration à très grande échelle »)) ou de plusieurs composants électroniques intégrés dans un appareil ou encore sous forme d'un mélange d'éléments matériels et d'éléments logiciels (« software » en anglais).
La figure 3 représente un exemple de format de trames audio 30, 31 et 32 reçues successivement à l'entrée de l'appareil 2. L'exemple de la figure 3 est présenté à titre de simple illustration ; l'appareil 2 peut recevoir d'autres trames audio de longueurs différentes et de formats différents.
Les trames audio 30, 31 et 32 acceptées à l'entrée de l'appareil 2 sont formatées selon la norme MPEG audio, et notamment MPEG 1 et 2 layer I, II et III (selon les références ISO/IEC 11172-3.et ISO/IEC 13818).
La trame 30 (respectivement 31 , 32) comprend : - un entête (ou « header » en anglais) 301 (resp. 311 , 321), comprenant des champs d'entêté 3011 à 3014 (resp. 3111 à 3114, 3211 à 3214) ; et
- un champ 302 (resp. 312, 322) de données audio utiles (ou « payload » en anglais) dont la taille est variable d'une trame à l'autre.
Les lettres dans l'entête 301 (resp. 311 , 321) représentent des champs de bit ; leur signification dépend de la norme associée. Selon la
norme MPEG audio évoquée précédemment, l'entête 301 (resp. 311 , 321) comprend quatre octets 3011 à 3014 (resp. 3111 à 3114, 3211 à 3214). Les octets 3011 et 3012 (resp. 3111 et 3112, 3211 et 3212 comprennent, par exemple, un mot de synchronisation (ou « syncword » en anglais) de 11 bits. Tous les bits du mot de synchronisation sont mis à « 1 », ce qui permet, dans un flux de trames audio, de reconnaitre le début d'une trame. L'octet 3012 (resp. 3112, 3212) comprend également deux bits indiquant la version du standard MPEG , deux bits indiquant la valeur de la couche du standard MPEG, puis un seul bit indiquant si l'entête est suivi par une valeur de seize bits de vérification de redondance cyclique (ou « cyclic redundancy check », ou « crc » en anglais). L'octet 3013 (resp. 3113, 3213) comprend une valeur d'indice dans une table selon la norme MPEG audio, représentant le débit de codage de la trame (« bit rate » en anglais)
L'octet 3013 (resp. 3113, 3213) comprend également deux bits permettant de connaître le débit d'échantillonnage (ou « sampling rate » en anglais) pour la trame, puis suivent deux indicateurs de présence d'un bit de rallonge (« padding bit » en anglais) et un bit sans signification selon la norme MPEG audio. L'octet 3014 (resp. 3114, 3214) comprend un indicateur permettant de connaître le codage stéréo ou mono, suivi par d'autres bits indiquant s'il s'agit d'une copie, si le contenu de la trame est soumise à des droits d'auteur etc.
Comme évoqué précédemment, la taille d'une trame audio est variable ; la longueur de la trame peut être calculée et fixée à partir d'informations présents dans l'entête de la trame audio. La figure 4 représente un exemple de format de données de sortie fourni par l'appareil 2 et plus particulièrement un paquet de transport comprenant successivement :
- un entête de paquet de transport 40 et une charge utile comprenant un paquet de flux élémentaire; - un paquet de flux élémentaire avec un entête 41 ; et
- une partie charge utile comprenant trois trames audio 30, 31 et 32.
Selon la norme MPEG2-transport (ISO/IEC 13818-1), les paquets de transport ont une longueur fixe de 188 octets, incluant un entête de quatre octets. L'entête 40 du paquet de transport est composée comme suit.
D'abord, un mot de synchronisation 401 , ayant une valeur fixe de 47 hexadécimale, permet, dans un flux de paquets de transport reçu, de trouver
le début d'un paquet de transport. Suivent un octet 402 comprenant un indicateur permettant de savoir qu'une erreur a été détectée en amont et un indicateur permettant de savoir si le paquet de transport comprend un entête d'un paquet de flux élémentaire ou non. Puis, un indicateur donne une valeur de priorité pour le paquet, suivi par 13 bits, répartis dans les octets 402 et 403 qui donnent une valeur d'identification du paquet de transport, utilisé par exemple dans un flux de transport comprenant des paquets de transport transportant des flux de type différent (audio, vidéo, ...). L'octet 404 comprend un indicateur de deux bits pour indiquer le type d'embrouillage transport utilisé, suivi par deux bits indiquant la présence d'un champ d'adaptation selon la norme, puis quatre bits pour contenir la valeur d'un compteur de continuité, permettant de connaître le numéro de séquence pour le réassemblage d'un paquet de flux élémentaire si ce paquet de flux élémentaire est trop grand pour être mis complètement dans un paquet de transport.
Selon l'exemple, l'entête de paquet de flux élémentaire PES 41 , comprend dans l'exemple illustré 9 octets. Les trois premiers octets 411 , 412 et 413 comprennent un mot de synchronisation ou (« Packet Start Code Prefix » en anglais, pour « code de préfixe de début de paquet »), d'une valeur fixe, permettant de connaître un début d'un paquet de flux élémentaire dans un flux. Suit un octet 414 qui comprend le « Streamjd » qui sert à identifier le type de flux élémentaire contenu dans le paquet PES. Selon la norme MPEG2-transport, une valeur de Streamjd identifie un flux élémentaire audio MPEG 1 ou MPEG 2 Les deux octets suivants 415 et 416 comprennent une valeur représentative de la longueur l'entête PES, et permettent de déterminer à quel endroit se trouve le début de la charge utile du paquet PES. Suivent dans les octets 417 et 418, divers drapeaux (ou « flags » en anglais) indiquant entre autres si le paquet est embrouillé (« scrambled » ou « encrypted » en anglais), suivi par l'octet 419 indiquant la longueur restante de l'entête. Dans l'exemple ici illustré, la longueur restante est zéro.
Dans cet exemple, les entêtes 40 du paquet de transport et 41 du paquet de flux élémentaire ne sont répétés qu'une seule fois pour les trois trames audio 30, 31 et 32. La fréquence d'occurrence d'un entête de flux élémentaire au sein d'un paquet de transport dépend de la taille de la charge utile d'un paquet de transport et de la taille du paquet de flux élémentaire. Selon une variante de l'invention, plusieurs entêtes de flux élémentaire sont
présents dans un paquet de transport si la taille de la charge utile d'un paquet de transport le permet. Selon une autre variante, un paquet de flux élémentaire est plus long qu'un paquet de transport (par exemple 2048 octets) ; un paquet de transport transporte, selon la norme, les données d'un seul paquet de flux élémentaire à la fois. La figure 5 illustre l'encapsulation de plusieurs trames audio dans un paquet de transport.
La figure 5 illustre schématiquement les différents niveaux d'encapsulation des données traitées par l'appareil 2 mettant en œuvre l'invention, et plus précisément deux paquets de transport 50 et 51. Le paquet de transport 50 (respectivement 51) comprend :
- un entête 501 (respectivement 511) ; et
- une partie charge utile 502 (respectivement 512) correspondant à un paquet de flux élémentaire 5021 (respectivement 5121). Selon une variante, la charge utile n'est pas limitée à un paquet de flux élémentaire et comprend plusieurs paquets de flux élémentaire.
Selon une variante, la charge utile comprend une partie d'un paquet de flux élémentaire.
Le paquet de flux élémentaire 5021 (respectivement 5121) comprend :
- un entête 50211 (respectivement 51211) ; et
- une partie charge utile 50212 (respectivement 51212) comprenant des trames audio 502121 , 502122 et 502123 (respectivement 512121 et 512212. Pour illustrer la méthode d'encapsulation, la trame 512121 est la suite de la trame 502123, qui n'a pas pu être mise complètement dans le paquet de transport 50.
Aussi, la trame 512212 n'est pas complète et les données de la trame 512212 non présent dans le paquet de transport 51 sont insérées dans un autre paquet de transport qui n'est pas illustré ici.
Comme évoqué précédemment, un paquet de flux élémentaire peut être d'une longueur plus grande qu'un paquet de transport ; dans ce cas, la charge utile d'un paquet de flux élémentaire est répartie dans un ou plusieurs paquets de transport, sans répétition de l'entête du paquet de flux élémentaire.
La figure 6 représente, sous forme d'algorithme, une méthode d'optimisation de transmission de trames audio à débit variable dans un flux
de transport pour transmission sur un réseau de transport de paquets mis en œuvre dans l'appareil 2.
La méthode d'optimisation de transmission de trames audio à débit variable dans un flux de transport pour transmission sur un réseau de transport de paquets commence par une étape 60 au cours de laquelle différentes variables nécessaires à son bon fonctionnement sont initialisées. Ensuite, au cours d'une étape 62, l'appareil 2 reçoit une trame audio 262 à débit variable (correspondant par exemple à l'une des trames 30, 31 ou 32). Lors d'une étape 63, l'appareil 2 génère une référence de temps pour chaque trame audio reçue (trame audio appartenant à un ensemble de trames de débit variable reçues), permettant d'associer une référence de temps 263 à un moment de réception d'une trame audio.
Lors d'une étape 641 , l'appareil 2 encapsule au moins une trame audio de débit variable dans un paquet de flux élémentaire avec la référence de temps associée 263, le paquet de flux élémentaire ayant une taille déterminée 265.
Lors d'une étape 642, au moins une partie du paquet de flux élémentaire est encapsulée dans au moins un paquet de transport (par exemple selon le format du paquet de transport de la figure 4.
Lors d'une étape 65, au moins une partie d'un paquet de transport est transmis, et l'étape 62 est réitérée.
Selon l'exemple décrit, les étapes 641 , et 642 sont distinctes Selon une variante de mise en oeuvre, les étapes 641 , et 642 sont rassemblées en une seule étape 64 ; selon cette variante, une trame audio reçue est directement encapsulée dans un paquet de transport en respectant le format de flux élémentaire (sans création explicite d'un paquet de flux élémentaire), et la transmission du paquet de transport est effectuée dès qu'au moins une partie déterminée de la trame est complète. Par exemple, dès que l'entête du paquet de transport est prêt, l'entête du paquet de transport est transmis ; ensuite, dès que l'entête d'un paquet de flux élémentaire est prêt, l'entête d'un paquet de flux élémentaire est transmis, et dès qu'une trame audio commence à être lue, les données lues sont transmises. Cette transmission à la volée est possible avec la méthode, toutes les informations nécessaires pour la construction d'au moins une partie d'un paquet de transport étant disponibles dès la réception d'une trame audio. Cette transmission à la volée est avantageuse, car la méthode
ne requiert pas une mémorisation et/ou réception de l'ensemble des données de trames audio qui sont insérées dans un paquet de transport pour que la transmission du paquet de transport commence. En fait, le méthode requiert seulement la mémorisation temporaire d'une seule trame audio à la fois, c'est-à-dire, de la dernière trame audio reçue. Ainsi, un délai entre le moment de réception d'une trame audio et la transmission d'au moins une partie d'un paquet de transport qui comprend la trame audio est réduit. Avantageusement, la transmission de chaque paquet de transport commence dès qu'un entête de paquet de transport est construit. Avantageusement, la transmission des données correspondant à un paquet de flux élémentaire, ces données étant encapsulées dans un paquet de transport, commence dès qu'un entête correspondant à ce paquet de flux élémentaire est construit.
Selon un mode de mise en œuvre avantageuse de l'invention, la détermination d'un taille pour les paquets de flux élémentaire comprend le respect de tous ou partie des critères suivants, permettant un taux de remplissage des paquets optimal :
- la taille minimale des paquets de flux élémentaire hors entête est égale à la taille maximale d'une trame audio ; ceci pour que les trames audio soient trop grandes pour être contenues dans un seul paquet de flux élémentaire, car dans ce cas il faut répartir la trame audio dans plusieurs paquets de flux élémentaire, et ainsi plusieurs entêtes de flux élémentaire sont nécessaires pour un même trame, ce qui n'est pas favorable à l'efficacité de l'empaquetage car le nombre de bits • nécessaires pour empaqueter une trame audio augmente ainsi ;
- la taille minimale des paquets de flux élémentaire est un nombre entier fois de la taille des paquets de transport hors entête, une contrainte qui peut être imposé par la norme d'encodage utilisée, comme la norme MPEG2-système, qui impose qu'il ne peut y avoir plusieurs entêtes PES dans un même paquet de transport. La taille déterminée est égale ou supérieure à plus grande des valeurs minimales et égale ou inférieure à valeur maximale. Si deux critères sont inclus dans la calcul de la taille minimale d'un paquet de flux élémentaire, on choisit entre les deux tailles minimales la taille maximale que l'on arrondit vers un multiple de la taille de la charge utile d'un paquet de transport.
D'un point de vue de l'efficacité de l'empaquetage, il est souhaitable d'inclure le moins possible d'entêtés de flux élémentaire, mais cela a un coût sur le zapping d'un récepteur recevant un tel flux, car quand ce récepteur change de flux lors d'un zapping, il ne peut commencer le décodage que par un entête de flux élémentaire ; si le flux de transport comprend un flux élémentaire avec des entêtes de flux élémentaire très espacées, il faut attendre relativement longtemps avant de pouvoir commencer le décodage d'un tel flux.
Selon une variante de mise en œuvre de l'invention, la taille maximale des paquets de flux élémentaire est déterminée par un temps de zapping maximal ; selon cette variante, la taille des paquets de flux élémentaire est limitée à une valeur permettant à un récepteur de trouver, lors d'un changement de flux, un entête de paquet de flux élémentaire dans un délai de temps maximal déterminé (jugé comme acceptable par un utilisateur), par exemple dans un délai maximal de 500 ms.
Selon une variante, cette détermination de la taille maximale des paquets de flux élémentaire peut être combinée avec la détermination de la taille minimale telle que décrite précédemment. Dans un tel cas, la taille déterminée des paquets de flux élémentaire est égale ou supérieure à la plus grande des valeurs minimales et égale ou inférieure à la valeur maximale.
Selon une variante, la taille des paquets de flux élémentaire est un paramètre configurable modifiable.
Selon une autre variante, la taille des paquets de flux élémentaire est un paramètre de configuration pré-enregistré et fixe.
Selon une autre variante, la taille des paquets de flux élémentaire est un paramètre de configuration pré-enregistré et modifiable.
Selon une variante de mise en œuvre de l'invention, une étape d'analyse préalable des caractéristiques du flux de trames audio à débit variable est effectuée ; ensuite, une valeur pour la taille des paquets de flux élémentaire est déterminée en fonction du résultat de cette analyse. Une telle analyse permet notamment de déterminer les caractéristiques comme le débit maximal du flux de trames et la taille maximale des trames audio fourni à la méthode d'optimisation de transmission. Selon une autre variante de mise en œuvre de l'invention, la détermination d'une valeur pour la taille des paquets de flux élémentaire est effectuée à partir de données sur le flux de trames audio fourni à la méthode
d'optimisation de transmission, comme le débit des trames et la taille maximale des trames. Avec cette information, la taille maximale d'une trame audio est calculée, le nombre minimal de paquets de transport permettant d'encapsuler une trame audio découlant de cette taille selon la relation suivante :
MinNbTpPourTrame = (MinTailleEntêtePES + (MaxDébitAudio / DuréeTrameAudio) ) / TailleChargeUtilePaquetTransport. dans laquelle : - MinNbTpPourTrame exprime le nombre minimal de paquets de transport nécessaire pour encapsulation d'une trame audio ;
- MinTailleEntêtePES exprime la taille minimale d'un entête de paquet de flux élémentaire ; - TailleChargeUtilePaquetTransport exprime la taille de la charge utile des paquets de transport, par exemple 184.
- MaxDébitAudio / DuréeTrameAudio donne la taille maximale de la trame audio. MaxDébitAudio est par exemple 128kbits/s, et DuréeTrameAudio est par exemple 10 millisecondes ; MinNbTpPourTrame ainsi calculé est arrondi ensuite vers le haut, et est donné la valeur du nombre entier de fois la valeur de la charge utile d'un paquet de transport. Par exemple, si MinNbTpPourTrame donne une valeur de 134,67, et que la taille de la charge utile d'un paquet de transport est 184, la valeur finale de MinNbTpPourTrame est 184. La taille du paquet de flux élémentaire est ensuite calculée ainsi :
Taille_PES = N * MinNbTpPourTrame * TailleChargeUtilePaquetTransport
La valeur du paramètre N permet de réduire d'avantage le débit du flux de transport mais cela a une implication sur le temps de zapping d'un récepteur d'un tel flux. N est minimal égal à 1 et peut aller jusqu'à
N = (TempsDeZapping / DuréeMaximaleTrameAudio) .
La variable TempsDeZapping a par exemple une valeur de 0,5 pour avoir un point d'accès chaque 0,5 secondes, permettant à un récepteur de commencer à décoder après un délai 0,5 secondes maximale. Selon une variante de mise en œuvre de l'invention, la transmission d'au moins un paquet de transport complet est faite dès la réception d'une trame audio à débit variable. Cette variante de mise en
œuvre permet notamment de réduire le délai entre la réception d'une trame audio et la transmission des paquets de transport.
Selon une autre variante de mise en œuvre de l'invention, la transmission d'au moins un paquet de transport complet est faite dès la réception de plusieurs trames audio à débit variable.
Le nombre de trames audio reçues avant la transmission d'un paquet de transport peut être calculé en observant le délai entre l'entrée et la sortie d'une trame audio, en prenant en compte le délai introduit par l'ajout des entêtes de flux élémentaire et de transport. La figure 7 représente de manière détaillée un exemple de mise en œuvre de l'étape 63.
L'étape 63 débute par un test 631 , au cours duquel l'appareil 2 vérifie si un entête de paquet de flux élémentaire (par exemple 50211 ou
51211 de la figure 5) est nécessaire. Un entête de flux élémentaire est nécessaire chaque fois qu'un nouveau paquet de flux élémentaire commence.
Si lors du test 631 , un entête de flux élémentaire s'avère utile ou nécessaire, lors d'un test 632, l'appareil 2 vérifie si le paquet de flux élémentaire traité commence par un début d'une trame audio ou non (par exemple : la trame audio 502121 commence dans le paquet de flux élémentaire 5021 , et la trame audio 512121 ne commence pas dans le paquet de flux élémentaire 5121).
Dans l'affirmative, le paquet de flux élémentaire commence par un début de trame audio, et au cours d'une étape 633, une référence de temps correspondant au moment de réception de la trame audio traité est retenue et mise dans l'entête du paquet de flux élémentaire (par exemple 50211).
Dans la négative, le paquet de flux élémentaire ne commence pas par un début de trame audio et au cours d'une étape 634, la référence de temps pour l'entête de flux élémentaire est déterminée comme étant la valeur du référence de temps associé au moment de la réception de la trame audio auquel on ajoute la durée de réception de la trame (par exemple, la référence de temps à mettre dans l'entête du paquet de flux élémentaire
5121 correspond au moment de la réception de la trame 502123 plus le nombre de bits de cette trame divisé par le débit de la trame 502123). L'étape 63 se termine à l'issue des étapes 633 ou 634 ou si le résultat du test 631 est négatif.
La figure 8 représente l'étape 64 d'encapsulation de trames audio à débit variable dans des paquets de transport, sans dissociation des étapes 641 , 642, 643.
Lors d'une étape 81 , un paquet de transport est créé si cela est nécessaire, c'est-à-dire à la première exécution de l'étape 64, ou si le paquet de transport en cours de traitement est plein. A la fin de cette étape, si un entête a été créé, il est prêt et est transmis.
Lors d'une étape 82, un entête de paquet PES ou flux élémentaire est ajouté au paquet de transport créé précédemment, si cela est nécessaire, c'est-à-dire, à la première exécution de l'étape 64, ou si le paquet PES en cours de traitement est plein. L'entête comprend une référence de temps, qui peut être calculée selon l'algorithme présenté par la figure 7. L'entête comprend aussi une valeur de longueur du paquet de flux élémentaire, ayant une valeur déterminée. A la fin de cette étape, si un entête est créé, il est prêt et est transmis.
Lors d'une étape 83, la trame audio lue est ajoutée entièrement ou en partie au paquet de transport en cours jusqu'à ce que le paquet de flux élémentaire en cours soit complètement rempli, ou jusqu'à ce que la trame audio lue soit complètement traitée, c'est-à-dire ajoutée dans son intégralité à un paquet de flux élémentaire.
Lors d'un test 84, l'appareil 2 vérifie si le paquet de flux élémentaire en cours est plein ou non. Si le paquet de flux élémentaire en cours est plein, l'étape 82 est réitérée.
Si le paquet n'est pas encore plein, lors d'un test 86, l'appareil 2 vérifie si le paquet de transport en cours est plein.
Si le paquet de transport en cours est plein, lors d'une étape 85, un nouveau paquet de transport est créé. L'étape 83 est ensuite réitérée.
Si le paquet de flux de transport en cours n'est pas encore plein, lors d'un test 87, l'appareil 2 vérifie si la trame audio dont le traitement est en cours, est complètement encapsulée. Si cela est le cas, une nouvelle trame audio est lue en revenant à l'étape 62. Si la trame audio en cours de traitement n'est pas encore complètement encapsulée, un nouveau paquet de transport est créé lors d'une étape 85 et l'étape 83 est réitérée.
Selon un variante, les étapes comprenant des transmissions fournissent les données prêtes à être transmises à un buffer de transmission ou FIFO (« first in, first out » en anglais, pour « premier arrivé, premier sorti » ) , qui les rassemble avant d'envoyer tout ou en partie. Cela permet
de regrouper des parties de paquets de transport ou des paquets de transport entiers pour les sortir en rafale (ou « burst » en anglais) ou, au contraire, d'étaler leur envoi dans le temps, selon les caractéristiques du réseau sur lequel les paquets sont transmis. Selon une autre variante de mise en œuvre de l'invention, les étapes comprenant des transmissions fournissent les données prêtes à être transmises à un buffer de transmission pour être regroupé et encapsulé dans des paquets de transport RTP selon la norme IETF RFC 3550 (pour « Real-time Transport Protocol » en anglais, pour « Protocole de Transport en temps réel ») permettant, à la réception, de corriger les délais de transmission survenues (jigue en français ou « jitter » en anglais) et/ou de remettre des paquets en ordre séquentielle pour les paquets qui ne sont pas reçus dans l'ordre.
L'invention permet également la réception de paquets de transport construits selon les formats décrits précédemment. La réception est par exemple mise en œuvre dans l'un des récepteurs 108 ou 114. La structure de ces récepteurs est similaire à celle de l'appareil 2, les interfaces étant adaptés à la réception de paquets de transport et à la fourniture de référence de temps et de trames audio à une application, et les programmes étant adaptés à la mise en œuvre de la méthode de réception.
La figure 9 illustre un mode de réalisation particulier d'une méthode de réception d'un flux de transport construit selon la méthode de transmission. La méthode commence par une étape 90 au cours de laquelle les différentes variables utiles à la mise en œuvre de la méthode sont initialisées.
Ensuite la méthode comprend une réception 91 d'au moins une partie d'un paquet de transport.
Ensuite, le récepteur extrait une référence de temps du paquet de transport (étape 92). Puis, il effectue une extraction 93 d'au moins une trame audio à débit variable des paquets de transport reçus. Cette opération est duale de l'opération ou des opérations d'encapsulation effectuée par l'appareil 2.
D'une manière générale, le récepteur est adapté à la reconstruction de trames audio émises par la source et encapsulées dans des paquets de transport. Selon des variantes, il met en œuvre un codage différent.
Selon différents modes de réalisation, l'extraction des trames audio commence avant la réception de l'intégralité d'un paquet de transport
comprenant la ou les trames audio extraites, ce qui permet de réduire la latence.
Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. Notamment, plusieurs des étapes de la méthode peuvent être exécutés en parallèle, comme la réception de trames, l'encapsulation, et la transmission, en ajoutant des moyens de communication et des zones de mémoires tampon entre ces étapes. Cela a notamment comme avantage de permettre une séparation de tâches spécifiques. Notamment, la méthode peut être mise en œuvre non pas par un seul appareil, mais par un ensemble d'appareils distincts.
Notamment, l'invention ne se limite pas aux formats de trames audio, format de paquets de flux élémentaire, et au format de paquets de flux de transport décrits ; la méthode peut être appliqué à d'autres formats de trames audio, d'autres format de paquets élémentaires, et d'autres formats de paquets de transport.
Plusieurs des avantages procurés par l'invention peuvent être illustrés par l'exemple d'application suivante. L'invention peut être particulièrement avantageuse dans un environnement de transmissions soumises à des fortes contraintes de débit maximal, comme la transmission de télévision vers des téléphones portables. Dans un tel environnement, un flux de transport comprenant de l'audio et de la vidéo ne doit typiquement pas dépasser quelques centaines de kbit/s (kilobits par seconde). Ainsi, l'impact de la composante audio sur la bande passante totale du flux de transport est relativement important, la composante audio occupant typiquement une bande passante de l'ordre de 15 à 20% de la bande passante totale (audio + vidéo). Soumis à la forte contrainte de débit maximal autorisé, les flux vidéo entrant dans une plate-forme de transmission pour téléphone portable sont donc préalablement fortement réduit en bande passante avant transmission. Dans ce contexte, l'optimisation de transmission de trames audio à débit variable dans un flux de transport selon la méthode d'optimisation de transmission de l'invention permet de transmettre la vidéo avec une meilleure qualité en permettant de moins réduire la bande passante avant transmission par le gain obtenu sur l'efficacité de l'empaquetage du flux audio, le tout en ne faisant aucune concession sur la qualité du flux audio.
