Procédé de basculement de la ou des composantes vidéo d'un premier programme audiovisuel numérique sur la ou les composantes vidéo d'un second programme audiovisuel numérique
La présente invention concerne un procédé de basculement de la ou des composantes vidéo d'un premier programme audiovisuel numérique sur la ou les composantes vidéo d'un second programme audiovisuel numérique.
L'invention se situe dans le domaine des services audiovisuels numériques, dans lesquels des programmes numériques sont constitués d'au moins une composante vidéo, et peuvent comporter plusieurs composantes vidéo, aucune ou plusieurs composantes audio, et aucune ou plusieurs composantes de données. Dans l'invention, seul le cas des composantes vidéo est considéré.
Parmi ces services audiovisuels numériques, on peut citer ceux qui appliquent la norme dite MPEG-2 (Moving Pictures Expert Group) ISO/TEC JTC 1 IS 13818. Cette norme est décrite dans plusieurs documents correspondant chacun à une partie distincte (video, audio, System, conformance, etc.).
On comprendra cependant que la présente invention ne se limite pas à l'utilisation de cette norme particulière MPEG-2, mais concerne également des applications à tout service audiovisuel numérique.
Généralement, et en particulier dans la partie vidéo de la norme MPEG-2, on définit trois types d'image:
- les images Intra dites I (Intra-coded pictures) qui ne font référence à aucune autre image. Ce sont des images à taux de compression modéré. Leur codage n'implique pas l'utilisation de procédés d'estimation de mouvement,
- les images prédites dites P (Predictive-coded pictures) qui sont des images codées en utilisant des procédés de prédiction à estimation de mouvement à partir d'une image précédente, laquelle peut être une image de type I ou une image de type P; - les images bidirectionnelles dites B (Bidirectionnally predictive-coded pictures) qui sont codées en utilisant des procédés de prédiction à estimation de mouvement à partir d'une image précédente (en terme d'affichage, on parle alors de prédiction avant) et/ou d'une image future (en terme d'affichage, on parle alors de prédiction arrière) qui sont alors de type I ou de type P. D'une manière générale, les composantes vidéo dont il est question dans la présente invention sont donc constituées d'une suite ordonnées d'ensembles d'images ou Intra ou prédites ou bidirectionnelles, dont l'ordre varie suivant qu'il s'agit de l'ordre de présentation par exemple sur un écran, ou de l'ordre de transmission.
Un exemple d'application d'un procédé selon la présente invention concerne l'enchaînement de différents programmes de télévision. Il s'agit de basculer d'un premier programme choisi parmi un certain nombre de programmes d'un premier multiplex sur un second programme choisi parmi un certain nombre de programmes d'un second multiplex, pour éventuellement, plus tard, basculer à nouveau du second programme vers le premier. En d'autres termes, on décroche d'un premier programme vers un second programme, puis on raccroche du second programme vers le premier. Ces opérations font intervenir deux multiplex de même syntaxe qui sont codés en temps réel ou lus à partir d'un système de stockage.
Le problème que soulève cette application est maintenant décrit en relation avec les Figs. 1 et 2 et dans le cadre plus étroit d'un système qui utilise la norme MPEG-2. Aussi, au préalable, on va apporter des précisions quant à cette norme.
Les parties audio et vidéo de la norme MPEG-2 décrivent la façon de coder numériquement les données vidéo et audio. Selon la norme MPEG-2 partie système, les flux élémentaires compressés résultants sont mis sous forme de paquets de flux
élémentaires dits paquets PES (Packetized Elementary Stream). Les paquets PES contenant des données vidéo peuvent être de taille fixe ou de taille variable. L'exemple de réalisation décrit ci-après se situe dans le cadre de l'utilisation de paquets PES vidéo de taille variable, chaque paquet PES comportant une et une seule image (et éventuellement des en-têtes de séquence ou de groupe d'images GOP), avec un alignement des images en début de paquet PES. Les paquets PES véhiculant le même flux élémentaire sont identifiés par un même identificateur baptisé Stream ld (identificateur de flux).
La norme MPEG-2 système indique encore que les paquets PES (vidéo, audio ou données) peuvent être multiplexes, pour un usage local, avec, entre autre, des paquets PES de signalisation. Un tel multiplex peut être stocké sur des disques du type de ceux connus sous le nom disque DVD (Digital Versatile Disk) par exemple, il s'agit de la syntaxe MPEG-2 programme.
Selon la norme MPEG-2 système, le flux élémentaire mis sous la forme de paquets PES peut ensuite être découpé sous la forme de paquets de taille fixe nommés paquets transport (PT). Un tel paquet de taille fixe est identifié par un identificateur de paquet PID (Packet Identifier). Un flux de paquets PES de même identificateur de flux Stream_Id ne peut être véhiculé que dans des paquets transport ayant le même identificateur de paquet PID. Les paquets transport véhiculant un flux élémentaire particulier (et les paquets PES ayant une première fois découpé ce flux élémentaire) peuvent être multiplexes avec d'autres paquets transport PT véhiculant d'autres flux élémentaires, mais aussi avec, entre autres, des paquets transport PT contenant de la signalisation, etc. Ces multiplex de paquets transport PT sont alors utilisables pour la transmission, et leur organisation relève alors de la syntaxe MPEG-2 transport. La norme MPEG-2 vidéo prévoit six niveaux hiérarchiques pour la syntaxe d'un flux élémentaire vidéo : la séquence, le groupe d'images dit GOP (Group Of Pictures) qui est le seul niveau optionnel, l'image (qui est de type I, P ou B), la partie d'image (slice), le macrobloc et le bloc.
Une séquence vidéo débute par un en-tête de séquence qui est suivi d'un ou plusieurs ensembles d'images. Selon MPEG-2, ces ensembles d'images peuvent être regroupés dans des groupes d'images GOP. Un groupe d'images GOP est caractérisé par un en-tête de groupe d'images GOP situé avant les images. Dans l'ordre de transmission, un groupe d'images GOP débute par une image I suivie d'un certain nombre d'images bidirectionnelles B et d'images prédites P, et ce dans un ordre précis.
Un groupe d'images GOP est dit ouvert lorsque ses premières images B font référence à la dernière image P de l'ensemble d'images ou du groupe d'images GOP précédent ; il est dit fermé lorsqu'il n'y a pas une telle référence. L'invention est utile pour les flux élémentaires vidéo codés en groupe d'images GOP ouvert. Généralement, les composantes vidéo des programmes sont constituées de suites de séquences avec un seul groupe d'images GOP par séquence. Par abus de langage, dans la suite du document, on appelle donc groupe d'images GOP, tout groupe d'images GOP qui est précédé d'un en-tête de séquence.
Chaque image comporte un en-tête et des données constituées d'un certain nombre de tranches (slice en terminologie anglo-saxonne). Une tranche regroupe plusieurs macroblocs continus dans l'image. En télévision numérique classique (format 4 ; 2 ; 0), un macrobloc est l'association de quatre blocs de luminance, d'un bloc d'une première composante de chrominance pour les mêmes pixels et d'un bloc d'une seconde composante de chrominance toujours pour les mêmes pixels. Un bloc contient par exemple les données de carrés de huit par huit pixels.
L'exemple d'application de l'invention qui est décrit ci-après se situe au niveau MPEG-2 transport, mais les opérations effectuées au niveau élémentaire et au niveau des paquets PES sont directement applicables à MPEG-2 programme.
Même si toutes les précautions sont prises pour terminer la première composante vidéo en fin de séquence (et en fin de groupe d'images GOP) et pour démarrer la seconde composante vidéo en début de séquence (et donc en début de groupe d'images GOP), un problème majeur de tout basculement d'un premier programme audiovisuel numérique de télévision classique sur un second, est celui de la dégradation de l'image qui en résulte. On sait que cette dégradation a lieu lorsque le codage des premières images B font référence à la dernière image P ou I de la séquence précédente. Si la notion de groupe d'images GOP est utilisée, ce codage est appelé "codage en groupe d'images GOP ouvert". En effet, l'apparition d'une mosaïque dans l'image restituée est occasionnée, par la rupture de la référence arrière des premières images bidirectionnelles B du nouveau groupe d'images. On notera que chaque programme peut comporter plusieurs composantes vidéo, par exemple des composantes correspondant à des points de vue distincts du programme (plusieurs caméras par exemple). L'invention s'applique à chacune de ces composantes, mais par souci de simplification, il ne sera question dans la suite de la description que d'une composante vidéo pour chaque programme.
On notera que la Fig. 1 s'affranchit des niveaux paquet PES et paquet transport. Cette Fig. 1 représente un flux élémentaire vidéo Fi d'un premier programme et un flux élémentaire vidéo F2 d'un second programme. Chaque flux Fi, F2 est constitué d'une suite de groupe d'images GOP comprenant des images de type I, B et P dans l'ordre de transmission. Les en-têtes de séquences ne sont pas représentés, bien que chaque groupe d'images GOP débutant par une image 1 en comporte un. Les en-têtes de groupe d'images GOP ne sont pas non plus représentés.
Le décrochage que l'on a illustré par la flèche marquée DEC intervient en fin d'un groupe d'images GOPi du premier programme et au commencement d'un groupe d'images GOP2 du second programme. On notera que si le second multiplex est enregistré, aucun problème ne se pose pour démarrer sur un groupe d'images du second programme en fin d'un groupe d'images du premier programme. Par contre, comme c'est le cas sur la Fig. 1, si le second multiplex est diffusé en temps réel, le décrochage peut nécessiter de retarder le second programme afin de former un flux élémentaire vidéo retardé F2R. Pour ce faire, l'utilisation d'une mémoire tampon pour le stockage d'un groupe d'images (et son empaquetage en paquets PES et éventuellement en paquets transport) du flux élémentaire vidéo du second programme peut s'avérer nécessaire. Souvent, le retard induit par cette mémoire n'est pas souhaitable. Le moyen permettant de l'éviter n'est pas abordé dans le cadre de cette invention. De même, le raccrochage, que l'on a illustré par la flèche RAC, s'effectue en fin d'un groupe d'images GOP2' du flux élémentaire vidéo du second programme pour recommencer sur un groupe d'images GOPi' du flux élémentaire vidéo du premier programme. Pour ce faire, comme dans le cas du décrochage, il est possible de prévoir un retard du flux élémentaire vidéo du premier programme. Cela nécessite par conséquent une mémoire tampon pour le stockage d'un groupe d'images du flux élémentaire vidéo du premier programme ou l'utilisation du même moyen qu'au décrochage, permettant d'éviter le retard induit par cette mémoire.
Le problème majeur que pose le décrochage ou le raccrochage de programmes audiovisuels numériques en télévision classique, et de manière générale tout basculement d'un premier programme audiovisuel numérique sur un second, est celui de la dégradation de l'image qui en résulte. On sait que cette dégradation a lieu orsque le codage des groupes d'images est un codage en groupe d'images GOP ouverts dans lesquels les premières images bidirectionnelles B font référence à la dernière image prédite P ou intra I du groupe d'images GOP précédent
Par ailleurs, ce type de codage est le plus fréquemment utilisé, car dans un souci de bonne compression, les codeurs commerciaux n'exploitent généralement pas le codage en groupes d'images fermés.
La norme MPEG-2 donne la possibilité d'indiquer dans l'en-tête optionnel de groupe d'images GOP (s'il est présent) que la (ou les) premières images bidirectionnelles B du groupe d'images GOP ne peuvent pas être décodées correctement parce que l'image de référence utilisée pour la prédiction n'est plus valable. Il s'agit de l'indicateur BrokenJLink (lien brisé). D'une part, cette information ne permet de corriger le problème que si la notion de groupe d'images GOP est utilisée et, d'autre part, cette indication est inutile actuellement, car généralement les applications, pas plus que la norme MPEG-2, n'obligent les récepteurs à la traiter.
L'apparition d'une mosaïque dans l'image restituée est occasionnée, par la rupture de la référence arrière des premières images bidirectionnelles B du nouveau groupe d'images (le groupe GOP2 du second flux élémentaire vidéo au décrochage ou le groupe GOPi' du premier flux élémentaire vidéo au raccrochage à la Fig. 1).
La Fig. 2 schématise la fin d'un groupe d'images GOPi d'un flux élémentaire vidéo d'un premier programme et le début d'un groupe d'images GOP2 d'un flux élémentaire vidéo d'un second programme, le premier programme étant basculé sur le second. Ces groupes sont représentés dans l'ordre de transmission des images sur la ligne supérieure, et dans l'ordre d'affichage des images après décodage, sur la ligne inférieure. La flèche A représente le moment du basculement. En outre, sur cette Fig. 2, on a représenté par des arcs fléchés les références d'une image à une ou à plusieurs autres images. Par exemple, l'image B2 fait référence à la fois à l'image L, et à l'image P3 et cette image P3 fait référence à l'image Ii. Les numéros situés en indice des images correspondent à leur ordre de présentation (ou d'affichage).
Au moment du codage, la première image bidirectionnelle B0 du groupe d'images GOP2 a une prédiction arrière avec référence sur l'image L du groupe d'images GOP2 et une prédiction avant avec référence sur la dernière image Pu du groupe d'images GOPi précédent. Or, après basculement, cette dernière référence s'avère être à la dernière image Pu de l'ancien groupe d'images GOPi de la composante vidéo du premier programme, lequel ne concerne pas le- même programme. La prédiction arrière de la première image Bo ne se fait donc pas sur la bonne image P et cela entraîne un mauvais décodage de cette image B0. Dans l'exemple donné à la Fig. 2, cette image B0 sera composée de références (et donc de
parties) de l'image Pu de l'ancien programme et de références (et donc de parties) de la première image du nouveau programme, ce qui donne, à la restitution cet effet de «mosaïque».
Le but de la présente invention est de proposer un procédé de basculement d'une composante vidéo d'un premier programme audiovisuel numérique sur une composante vidéo d'un second programme audiovisuel numérique qui soit tel que la restitution ne présente pas un effet mosaïque au moment du basculement, et qui soit tel que la seule discontinuité présentée à l'usager soit celle qui est due au changement de programme. A cet effet, un procédé de basculement de la ou des composantes vidéo d'un premier programme audiovisuel numérique sur la ou les composantes vidéo d'un second programme audiovisuel numérique selon l'invention est caractérisé en ce qu'il consiste à basculer sur le début du premier ensemble d'images comportant une image Intra de la composante vidéo du second programme rencontré après la commande de basculement, et dans l'ordre de transmission des images, à substituer à chacune des images bidirectionnelles de ce premier ensemble d'images se référant à des images appartenant à l'ensemble d'images qui le précédait avant basculement, une image bidirectionnelle dont le codage vidéo est réalisé indépendamment du contenu du codage de l'image substituée et des contenus des images auxquelles elle se réfère. Selon une autre caractéristique de l'invention, lesdits vecteurs d'estimation de mouvement de la ou de chaque image de substitution sont déclarés nuls.
Selon une autre caractéristique de l'invention, ladite ou lesdites images de substitution se réfèrent uniquement à l'image Intra du premier ensemble d'images de la composante vidéo du second programme rencontré après la commande de basculement. La ou lesdites images de substitution sont avantageusement des images entrelacées (frame picture) analogues à des images de télévision numérique comportant ainsi une trame supérieure TOP et une trame inférieure BOTTOM et leurs prédictions sont du type prédiction par trame (field based prédiction). La trame supérieure TOP et la trame inférieure BOTTOM de la ou de chaque image de substitution font alors référence à la seule trame supérieure TOP de la première image Intra de l'ensemble d'images de la composante vidéo du second programme.
Selon une autre caractéristique de l'invention, ladite ou lesdites images de substitution se réfèrent uniquement à la dernière image prédite ou Intra précédant le basculement de la composante vidéo du second programme, ce qui peut être le cas
lorsque les ensembles d'images du premier et du second sont rendus jointifs. La ou lesdites images de substitution sont là aussi avantageusement des images entrelacées (frame picture) comportant une trame supérieure TOP et une trame inférieure BOTTOM analogues à des images de télévision numérique et leurs prédictions sont du type prédiction par trame (field based prédiction). La trame supérieure TOP et la trame inférieure BOTTOM de la ou de chaque image de substitution font alors référence à la seule trame inférieure BOTTOM de la dernière image prédite ou Intra du dernier ensemble d'images de la composante vidéo du premier programme.
Lesdites images de chacun desdits ensembles d'images du premier et du second programmes sont par exemple respectivement portés par des flux de paquets PES
(Packetised Elementary Stream), chaque paquet PES comportant une et une seule image et débutant par une unité d'accès vidéo (début d'images, de séquence ou de groupe d'images). Selon l'invention, ledit procédé consiste à :
- déterminer le premier paquet PES de la composante vidéo du second programme présent après la commande de basculement dans le flux de paquets PES qui comporte un en-tête de séquence afin de déterminer le début du premier ensemble d'images du second programme sur lequel le basculement s'opère,
- à partir de ce paquet PES, se positionner sur la première image bidirectionnelle B de ce premier ensemble d'images du second programme, - dans ce paquet PES correspondant à un début d'image B, substituer les données de la partie utile par les données de l'image de substitution,
- quand toutes les données de l'image de substitution ont été insérées, substituer les données de la partie utile de ce paquet PES par du bourrage vidéo, tel que des chiffres 0, jusqu'au dernier octet des données du paquet PES, - puis, si le nombre d'images bidirectionnelles précédant la première image prédite dans ledit ensemble d'images est supérieur à un, répéter les deux étapes précédentes pour les images B qui suivent, soit à partir du prochain paquet PES de cette composante vidéo.
Lesdites images de chacun desdits ensembles d'images du premier et du second programmes peuvent par exemple être aussi respectivement transportées par des flux de paquets transport, chaque paquet transport possédant un indicateur PUSI qui, lorsqu'il est positionné à un, indique que ledit paquet contient le début d'un paquet PES (Packetised Elementary Stream) contenant une et une seule image et commençant par une unité d'accès vidéo et où certains paquets transport sont destinés à porter des
informations de transport tel qu'un indicateur d'accès aléatoire RAI qui, lorsqu'il est positionné à un, indique que le prochain paquet transport contient les premières données d'une séquence (et d'un groupe d'images). Ledit procédé est alors caractérisé en ce qu'il consiste à : - déterminer le premier paquet transport (PT) de la composante vidéo du second programme présent après la commande de basculement dans le flux transport qui comporte un indicateur d'accès aléatoire RAI positionné à un afin de déterminer le début du premier ensemble d'images du second programme sur lequel le basculement s'opère, - positionner à un l'indicateur de discontinuité dans le champ d'adaptation (AF) de ce paquet transport PT,
- à partir de ce paquet transport PT avec indicateur d'accès aléatoire RAI, ce paquet inclus, se positionner sur la première image B de ce premier ensemble d'images du second programme, - à partir de ce paquet transport PT correspondant à un début d'image bidirectionnelle B, ce paquet inclus, passer l'en-tête du paquet PES puis substituer les données de la partie utile de chaque paquet transport de la composante vidéo par les données de l'image de substitution,
- quand toutes les données de l'image de substitution ont été insérées, substituer les données de la partie utile des paquets transport PT de la composante par du bourrage vidéo, tel que des chiffres 0, jusqu'au prochain paquet transport PT de cette composante vidéo du second programme dont l'indicateur PUSI est positionné à un, ce paquet transport PT non inclus,
- puis, si le nombre d'images bidirectionnelles précédant la première image prédite est supérieur à un, répéter les deux étapes précédentes pour les images bidirectionnelles B qui suivent, soit à partir du prochain paquet transport PT dont le indicateur PUSI positionné à un.
Lesdites images de chacun desdits ensembles d'images constituant les composantes vidéo du premier et du second programmes peuvent encore être transportées par des flux de paquets transport, chaque paquet transport possédant un indicateur PUSI qui, lorsqu'il est positionné à un, indique que ledit paquet contient le début d'un paquet PES (Packetised Elementary Stream) contenant une et une seule image, mais où le second flux n'a pas d'indicateur d'accès aléatoire RAI. Ledit procédé selon l'invention est alors caractérisé en ce qu'il consiste à :
- déterminer le premier paquet transport (PT) de la composante vidéo du second programme présent après la commande de basculement dans le flux transport qui comporte un indicateur PUSI positionné à un et dont les données de la partie utile débutent par un en-tête de séquence vidéo, éventuellement suivi d'un en-tête de groupe d'images GOP,
- rechercher l'en-tête de séquence soit, s'il est présent, immédiatement après l'entête de paquet PES, soit, si la composante vidéo est embrouillée, par la mise en œuvre d'un système de désembrouillage,
- si le paquet transport PT déterminé comporte un champ d'adaptation (AF), avec une référence d'horloge Program Clock Référence PCR dans le cas où la composante porte l'horloge du programme, positionner l'indice de discontinuité dans ce paquet transport PT,
- à partir de ce paquet transport PT inséré inclus, se positionner sur la première image bidirectionnelle B de ce premier ensemble d'images du second programme, - à partir de ce paquet transport PT correspondant à un début d'image B inclus, passer l'en-tête de paquet PES ou remplacer cet en-tête de paquet PES situé en début de partie utile par un en-tête de paquet PES reconstruit puis substituer les données de la partie utile de chaque paquet transport PT de la composante vidéo par les données de l'image bidirectionnelle B de substitution, et si les paquets transport PT sont embrouillés, les indiquer en clair en positionnant le champ de contrôle de l'embrouillage transport Transport scrambling control (TSC) à la valeur binaire 00,
- quand toutes les données de l'image de substitution ont été insérées, substituer les données de la partie utile des paquets transport PT suivants de la composante par du bourrage vidéo, tel que des octets 00, tout en continuant de les indiquer en clair, jusqu'au prochain paquet transport PT de cette composante vidéo du second programme dont l'indicateur PUSI est positionné à un (ce paquet transport PT non inclus),
- puis, si le nombre d'images B précédant la première image P est supérieur à un, répéter les deux étapes précédentes pour les images B qui suivent, soit à partir du prochain paquet transport PT dont l'indicateur PUSI positionné à un.
Selon une autre caractéristique de l'invention, le paquet transport PT inséré présente les caractéristiques suivantes :
- l'indicateur PUSI est positionné à 0,
- la valeur du compteur de continuité est positionnée à celle du compteur de continuité du paquet transport PT précédent de la composante vidéo,
- le champ de contrôle du champ d'adaptation (AFC) est positionné à la valeur binaire 11, qui signifie qu'un champ d'adaptation (AF) et une partie utile (payload) sont présents dans ce paquet transport PT, l'indicateur de discontinuité situé dans l'AF est positionné à un,
- si la composante vidéo porte l'horloge du programme, positionner dans l'AF une référence d'horloge programme (PCR), calculée d'après la ou les PCR précédentes de la même composante, Selon une variante selon laquelle un prétraitement permettant de positionner les
RAI est réalisé, le paquet transport PT inséré présente les caractéristiques suivantes :
- l'indicateur PUSI est positionné à un,
- la valeur du compteur de continuité est positionnée à celle du compteur de continuité du paquet transport PT précédent de la composante vidéo, - le champ de contrôle du champ d'adaptation (AFC) est positionné à la valeur binaire 11, qui signifie qu'un champ d'adaptation (AF) et une partie utile (payload) sont présents dans ce paquet transport PT,
- l'indicateur d'accès aléatoire (RAI) situé dans son champ d'adaptation AF est positionné à un, - si la composante vidéo porte l'horloge du programme, positionner dans le champ d'adaptation (AF) une référence d'horloge programme (PCR), calculée d'après la PCR précédente de la même composante,
- l'en-tête de paquet PES qui se trouvait dans le paquet transport PT remplacé est déplacé dans la partie utile de ce paquet transport PT inséré, et dans le cas où l'estampille de présentation (PTS) n'est pas présente dans l'en-tête du paquet PES, cette PTS est calculée et positionnée dans les données d'en-tête de ce paquet PES.
Selon une autre caractéristique de l'invention, l'en-tête de paquet PES reconstruit est de la forme : start code = 0x000001, 0x000001, StreamJDD = celui du premier programme, longueur paquet PES = 0x0000, octet de flag = 0x8500, longueur des données d'en-tête = 0x00 : paquet PES en clair, pas de PTS/DTS, ni aucune autre donnée d'en-tête paquet PES.
Selon une autre caractéristique de l'invention, si le paquet transport PT déterminé ne comporte pas de champ d'adaptation AF ou s'il s'agit de la composante portant l'horloge du programme et que le champ d'adaptation AF ne comporte pas de
référence d'horloge programme PCR, ledit procédé consiste à remplacer le paquet transport PT déterminé par un paquet de transport PT portant une référence d^horloge programme PCR, et à décaler le paquet transport PT remplacé, ainsi que les paquets transport PT suivants de cette composante vidéo dans le flux transport, jusqu'à ce que l'un d'entre eux puisse être inséré dans un paquet transport PT de bourrage.
Selon une autre caractéristique de l'invention, le procédé de basculement consiste à basculer sur le début du premier ensemble d'images du second programme rencontré après la commande de basculement, ladite commande de basculement pouvant avoir lieu sur une quelconque image de l'ensemble d'images courant du premier programme. Afin d'éviter des problèmes de régulation de la mémoire tampon du décodeur, le procédé de l'invention consiste avantageusement à substituer aux paquets transport contenant chaque image du ou des premiers ensembles d'images du second programme rencontrés après la commande de basculement un même nombre de paquets transport contenant une image correspondante surcompressée et des données de bourrage.
Ce processus peut être mis en œuvre lors d'un décrochage d'un programme principal (par exemple un programme national) vers un programme secondaire (par exemple un programme local)
Selon une autre caractéristique de l'invention, le procédé de basculement consiste à interrompre le premier programme au début d'une image prédite suivant la commande de basculement, à insérer un motif d'images au contenu prédéterminé, puis à basculer sur le début du premier ensemble d'images du second programme rencontré après la commande de basculement. Comme précédemment, afin d'éviter des problèmes de régulation de la mémoire tampon du décodeur, le procédé de l'invention consiste avantageusement à substituer aux paquets transport contenant chaque image du ou des derniers ensembles d'images du premier programme rencontrés après la commande de basculement un même nombre de paquets transport contenant une image correspondante surcompressée et des données de bourrage.
Ce processus peut être mis en œuvre lors d'un racccrochage d'un programme secondaire (par exemple un programme local) vers un programme principal (par exemple un programme national)
Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de
réalisation, ladite réalisation étant faite en relation avec les dessins joints, parmis lesquels :
La Fig. 1 est une vue illustrant les opérations de basculement (décrochage et raccrochage) sur des flux élémentaires vidéo, La Fig. 2 est une vue illustrant le problème de prédiction avec référence incorrecte de la première image B du flux élémentaire vidéo du nouveau programme,
La Fig. 3 est une vue illustrant le procédé de l'invention,
La Fig. 4 est une vue illustrant un premier mode de mise en oeuvre d'un procédé selon l'invention, La Fig. 5 est une vue illustrant un second mode de mise en œuvre d'un procédé selon l'invention,
La Fig. 6 est une vue illustrant le basculement au niveau des paquets PES, dans sa partie supérieure, et au niveau des paquets transport, dans sa partie inférieure,
Les Fig. 7a et 7b illustrent le format des paquets transport PT insérés au décrochage et au raccrochage si besoin est,
La Fig. 8 est un schéma synoptique d'un décodeur pourvu de sa mémoire tampon,
La Fig.9 est une vue illustrant le basculement ou décrochage d'un premier programme vers un second programme avec mise en œuvre d'un processus de surcompression, et
La Fig. 10 est une vue illustrant le basculement ou raccrochage d'un premier programme vers un second programme avec mise en œuvre d'un processus de surcompression.
L'exemple de réalisation maintenant décrit se réfère essentiellement à la norme MPEG-2. Mais on comprendra que la présente invention ne se limite pas à cette norme.
Dans la description qui suit d'un exemple de réalisation de l'invention, la structure des groupes d'images GOP des deux flux vidéo considérés qui est caractérisée par l'écart entre deux images P (appelé paramètre M) et par l'écart entre deux images I (appelé paramètre N) est telle que le paramètre M est égal à 2, signifiant par là qu'une seule image bidirectionnelle B est placée entre deux images prédites consécutives P. Quant au paramètre N, sa valeur est quelconque, le nombre d'images dans un groupe d'images GOP est sans importance pour l'invention.
A la Fig. 3, deux groupes d'images sont représentés: le dernier groupe d'images GOPi de la composante vidéo d'un premier programme et le premier groupe d'images GOP2 de la composante vidéo d'un second programme.
On notera que chaque programme peut comporter plusieurs composantes vidéo, par exemple des composantes correspondant à des points de vue distincts du programme (plusieurs caméras par exemple).
A la Fig. 3, on a représenté par une flèche A le moment de basculement du premier programme sur le second. A l'intérieur de chaque groupe d'images, une série d'images I, B et P est représentée et numérotée dans leur ordre d'affichage par un décodeur. Des arcs fléchés représentent les liens entre les différentes images.
Selon l'invention, la ou les premières images B du nouveau groupe d'images GOP2 sont remplacées par une image B*, notée B0* ici, dont le codage vidéo est réalisé indépendamment du contenu du codage de l'image B substituée et des contenus des images auxquelles elle se réfère. On notera que les images considérées peuvent être des images entrelacées de télévision numérique classique. Ainsi, chaque image est constituée de deux trames, une trame supérieure, dite trame TOP et une trame inférieure, dite trame BOTTOM. La prédiction des macroblocs de ces deux trames peut être commune (frame based = basée sur la trame) ou séparée (field based = basée sur le champ). Afin d'obtenir un maintien parfait et de ne pas avoir une impression de «retour arrière», la prédiction doit être faite séparément pour chaque trame.
Une illustration d'un premier mode d'utilisation de l'invention est représentée à la
Fig. 4. Son principe est de rompre la référence avant vers la dernière image P du GOPi et de figer l'image du groupe d'images GOP2 au lieu d'afficher l'image B incorrecte. Pour ce faire, la prédiction de l'image de substitution B* est faite uniquement sur l'image Ii (prédiction arrière), et ses vecteurs d'estimation de mouvement sont nuls.
Afin de ne pas avoir une impression de retour arrière, les deux trames de l'image de substitution B* doivent maintenir la seule trame inférieure de l'image L. Pour cela, la trame supérieure TOP et la trame inférieure BOTTOM de l'image de substitution Bo* font référence (prédiction arrière) à la seule trame supérieure TOP de l'image Ii du groupe d'images GOP2 du second programme suivant le basculement. On notera que seul le mode de prédiction par trame le permet. Ce motif de substitution permet donc un maintien de la trame supérieure de l'image , du groupe d'images GOP2 du second programme suivant le basculement. La trame supérieure TOP de l'image L est ainsi
présentée trois fois consécutives à la restitution : une première fois sur la trame TOP de l'image B, une seconde fois sur la trame BOTTOM de l'image B, et une troisième fois sur la trame TOP de l'image I. L'image B affichée présente une légère perte de résolution verticale en raison du décalage d'une ligne de la trame qui se répète. Une illustration d'un second mode d'utilisation de l'invention est représentée à la
Fig. 5. Son principe est de rompre la référence arrière vers l'image
du groupe d'images GOP
2 et de figer la dernière image Pu du groupe d'images GOPi au lieu d'afficher l'image B
0 incorrecte. Pour ce faire, la prédiction de l'image de substitution est faite uniquement sur l'image Pu (prédiction avant), et ses vecteurs d'estimation de mouvement sont nuls.
Afin de ne pas avoir une impression de retour arrière, les deux trames de l'image de substitution B* doivent maintenir la seule trame inférieure de l'image Pu. Pour cela, la trame supérieure TOP et la trame inférieure BOTTOM de l'image de substitution Bo* font référence (prédiction avant) à la seule trame inférieure (dite trame BOTTOM) de l'image Pu du groupe d'images GOPi du premier programme. On notera que là aussi seul le mode de prédiction par trame le permet. Ce motif de substitution permet donc un maintien de la trame inférieure de la dernière image P du groupe d'images GOPi du premier programme précédant le basculement. La trame inférieure BOTTOM de la dernière image P est ainsi présentée trois fois consécutives à la restitution : une première fois sur la trame BOTTOM de l'image P affichée, puis une seconde fois sur la trame TOP de l'image B, et enfin une troisième fois sur la trame BOTTOM de l'image B. L'image B affichée présente une légère perte de résolution verticale en raison du décalage d'une ligne de la trame qui se répète.
On notera que le motif de l'image de substitution B doit avoir le même format (résolution, soit tailles horizontale et verticale en particulier) que l'image qu'il remplace. Différents moyens peuvent être mis en œuvre pour récupérer rinfbrmation de taille. Par exemple, elle peut être extraite du descripteur dit Target background^rid (grille de fond cible) s'il est présent dans la table de description du programme PMT (Program Map Table). Elle peut également être extraite directement des informations du flux élémentaire vidéo, etc.
Par ailleurs, la référence temporelle (ordre des images à l'affichage) de chaque image B de substitution correspond à celle de l'image qu'elle remplace dans son groupe d'images GOP.
Enfin, et pour être conforme à la norme MPEG-2, le délai minimum à attendre avant de pouvoir décoder une image, ce délai étant dénommé VbV delay dans la norme MPEG-2, une fois que le premier octet de l'image est arrivé dans le tampon (buffer) du décodeur est défini de la manière suivante : - s'il est positionné dans les autres images du groupe d'images GOP, il doit être également positionné dans l'image de substitution : il peut être récupéré de l'image de substitution,
- s'il est positionné à 'FFFF dans les autres images du groupe d'images GOP, il doit être également positionné à 'FFFF dans l'image de substitution. On rappelle que selon la norme MPEG-2 transport, les paquets de flux élémentaires PES, qui contiennent chacun, dans leur charge utile, les données d'une ou plusieurs images (généralement une) sont découpés en paquets transport PT.
Ainsi, à la Fig. 6, on a représenté, sur la ligne supérieure, le flux des paquets de flux élémentaires PES et, sur la ligne inférieure, le flux des paquets transport correspondants. Ils sont représentés dans l'ordre de transmission. Sur cette Fig. 6, seuls les paquets véhiculant la composante vidéo d'un programme sont représentés, les paquets dont les identificateurs de flux Stream LD (niveau des paquets PES) ou dont les identificateurs de paquet PID (niveau des paquets transport) différent pouvant s'intercaler ont été volontairement omis par souci de simplification. Selon la norme MPEG-2, chaque paquet PES possède un en-tête h et une charge utile. Par exemple et selon ce qui est représenté à la Fig. 6, la charge utile contient les données d'une et une seule image. Les paquets PES sont donc alignés (l'indicateur d'alignement des données data alignment indicator est positionné à un). Par exemple, la charge utile du paquet PESo contient les données de l'image I] du nouveau groupe d'images GOP2 et le paquet PESi contient les données de l'image B0 du même groupe GOP2.
Chaque paquet transport possède un en-tête H et une charge utile dans laquelle est présente une partie des données des images. Par définition, les contenus des paquets PT sont alignés sur les débuts des paquets PES. Généralement, la charge utile des paquets PTi à PT3 portent donc l'en-tête h du paquet PESo suivi des données de l'image L, et la charge utile des paquets PT4 et PT5 portent l'en-tête h du paquet PESÏ suivi des données de l'image B0 du groupe d'images GOP2.
Les paquets transport dont la charge utile commence par l'en-tête h d'un paquet PES ont l'indicateur PUSI de l'en-tête (Payload Unit Start lndicator) positionné à un. Par définition de l'indicateur PUSI, il en est ainsi des paquets PTπ, PTi, PT4, et PT6.
Certains paquets transport destinés à porter des informations de transport comportent un champ dit d'adaptation ( Adaptation JField). Dans ce champ d'adaptation AF, un indicateur d'accès aléatoire RAI (Random_Access-Indicator) indique, quand il est positionné à un (cas du paquet transport PTo dans la Fig. 6), que le prochain paquet transport avec un indicateur PUSI positionné à un (paquet transport PTi en l'occurrence), contient non seulement un début de paquet PES (PESo), mais aussi un début de séquence vidéo (le groupe d'images GOP2 en l'occurrence). On notera que le paquet transport PT avec indicateur PUSI positionné à un peut être celui dont l'indicateur RAI est à positionné à un. Le champ d'adaptation
AF contient également un indicateur de discontinuité DI (Discontinuity indicator) qui, quand il est positionné à un, indique un état de discontinuité à partir de ce paquet transport PT. Cette discontinuité concerne aussi bien le compteur de continuité que la discontinuité des références d'horloge de programme PCR si la composante transporte ces références.
Généralement, les systèmes de télévision numérique prévoient un envoi fréquent et régulier (un toutes les 500ms) des en-têtes de séquence, afin de permettre aux décodeurs vidéo de réagir rapidement en cas de changement rapide de programme ('zapping' selon le terme anglosaxon) et de mise sous tension d'un récepteur.
Selon l'invention, ces en-têtes sont utilisés pour déterminer les positions de basculement afin de démarrer le second programme de façon propre, avec des données vidéo initialisées. Au niveau des paquets transport, ces en-têtes peuvent être balisés par des indicateurs d'accès aléatoire RAI.
Néanmoins, pour les flux transport issus de multiplexeurs qui ne positionnent pas ces indicateurs RAI, un pré-traitement permettant de les insérer est prévu, comme on le verra par la suite. Pour déterminer la ou les images bidirectionnelles B à substituer, (une seule image dans le cas où le paramètre M est égal à 2), on recherche d'abord le paquet transport contenant le début de la séquence et de l'image Ii de la composante vidéo du second programme sur lequel on bascule, et ce après la commande de basculement.
Pour ce faire, le paquet transport avec le champ d'adaptation AF où l'indicateur d'accès aléatoire RAI est positionné à un est recherché. A la Fig. 6, ce paquet est le paquet PTo. Un indice de discontinuité DI est positionné dans le champ d'adaptation AF de ce paquet transport PT. Ensuite, le prochain paquet transport PT de cette composante (celui avec l'indicateur d'accès aléatoire RAI inclus) dont l'indicateur PUSI positionné à un est recherché. Fig. 6, ce paquet est le paquet PTi. Par définition de l'indicateur RAI, ce paquet transport PT comporte le début de séquence du second programme, suivi du début de la première image du groupe d'images GOP
2, soit l'image
Le prochain paquet transport dont l'indicateur PUSI est positionné à un (en l'occurrence paquet transport PT
4) comporte le début du paquet PES contenant l'image suivante du groupe d'images GOP, soit l'image B
0. Ce paquet PT
4 ainsi que les paquets suivants de cette composante jusqu'au prochain paquet transport PT, dont l'indicateur PUSI est positionné à un (paquet transport PTβ dans la Fig. 6), contiennent l'en-tête de paquet PES suivi de toutes les données de l'image Bo.
Le paquet PT6 contient les données du début de l'image suivante, en l'occurrence la première image de type P, en l'occurrence l'image P3.
La substitution de l'image B commence donc au paquet transport PT et se terminera au paquet transport PTÔ non inclus. La charge utile du premier paquet transport PT contenant normalement l'en-tête de paquet PES et le début de l'image B0, est remplacée par un en-tête paquet PES reconstitué et les premiers octets de l'image de substitution B*. La charge utile des autres paquets transport considérés est remplacée par les octets suivants de l'image de substitution B*. Quand l'image de substitution B* a été entièrement insérée dans la charge utile des paquets transport considérés, les octets de la charge utile des paquets transport suivants sont remplacés par des octets de bourrage vidéo ('00) jusqu'au prochain paquet transport de cette composante dont l'indicateur PUSI est positionné à un (paquet transport PT6) non inclus.
L'en-tête du paquet PESi qui est situé au début de la charge utile du paquet transport PT est remplacé par un en-tête reconstruit. A titre d'exemple, on donne ci- après les valeurs affectées à différents champs avec leurs dénominations habituelles (norme MEPG-2) : start code - 0x000001, Stream LD, longueur paquet PES = 0x0000, flag = 0x8D, longueur data header = 0x00: pas d'estampilles PTS/DTS, ni aucune autre donnée de l'en-tête paquet PES. Si le flux est en clair, l'identificateur de
flux Stream ID est conservé. Par contre, s'il est embrouillé, l'indicateur de flux Stream ID doit être connu par ailleurs.
L'image de substitution B0* n'est pas embrouillée, même si le flux élémentaire vidéo du second programme est embrouillé. Le paquet PES qui la véhicule n'est donc pas embrouillé (le champ nommé Scrambling Control dans l'en-tête des paquets PES a sa valeur binaire h qui est égale a 00 indiquant par là que les paquets PES sont en clair), de même que les paquets de transport PT qui véhiculent ce paquet PES (le champ transport Scrambling Control TSC dans l'en-tête des paquets transport a sa valeur binaire H qui est égale à 00, indiquant par là que les paquets PES sont en clair). On notera que les messages de contrôle d'accès ECM (Entitlement Control Messages = messages de commande d'habilitation) qui contiennent les cryptogrammes des mots de contrôle continuent à être émis, mais ne sont pas utilisés puisque les paquets de transport qui véhiculent l'image de substitution sont en clair.
Dans l'exemple de la Fig.6, le paramètre M est égal à 2 : une seule image B est donc substituée. Dans le cas où le nombre d'images B consécutives au moment du basculement supérieur à un (M>2), les images B suivantes du nouveau groupe d'images GOP2 sont également substituées par un motif d'image constant B*. Ce motif d'image est le même que pour la première image du groupe d'images GOP2; mis à part la référence temporelle et éventuellement le délai Vbv Delay. Au niveau transport, le début de l'image B suivante est situé sur le prochain paquet transport de la composante dont l'indicateur PUSI est positionné à un, paquet transport qui détermine également la fin de l'image B précédente. Le procédé de substitution est le même pour chaque image B.
Le nombre des premières images B à substituer doit être connu. Cette information n'est pas présente dans les en-têtes de groupe d'images GOP ou de séquence, ni dans aucun descripteur. Dans le cas où ce nombre ne varie pas, une solution est de trouver un moyen de transmettre cette information dans le flux, sinon seul le décodage de l'en-tête d'image permettra de connaître le type des images et d'en déduire le nombre M. Ce décodage est simple si la composante est en clair, mais nécessite un système de désembrouillage en temps réel si la composante est embrouillée. Ce décodage peut se faire durant une phase d'apprentissage qui précède le basculement si M ne varie pas ou bien au moment de l'arrivée des images du second programme. Dans ce dernier cas, une fonction de retard est nécessaire pour permettre le remplacement.
Pour l'exemple d'application de l'invention, on rappelle que les indicateurs d'accès aléatoires RAI sont utilisés pour déterminer les positions de basculement. Dans le cas où un flux transport ne comporte pas d'indicateurs RAI, on prévoit un moyen pour les insérer quelques secondes avant le basculement. Le pré-traitement permettant de positionner les indicateurs d'accès aléatoires
RAI consiste à déterminer un paquet transport PT contenant un indicateur PUSI positionné à un et un début de séquence dans sa charge utile, et à insérer juste avant ce paquet transport un nouveau paquet transport où l'indicateur RAI est positionné à un. Selon la norme MPEG-2 système, l'indicateur RAI est situé dans le champ d'adaptation AF. Positionné à un, il indique que le prochain paquet transport PT de cette composante qui contient un début de paquet PES (et donc un indicateur PUSI positionné à 1) comporte un en-tête de séquence dans sa charge utile. Par ailleurs, toutes les informations de synchronisation doivent être présentes dans le paquet transport PT avec l'indicateur d'accès aléatoire RAI, en particulier une référence horloge PCR si la composante porte l'horloge du programme et une estampille de présentation PTS (Présentation Time Stamp) dans l'en-tête de paquet PES.
La Fig. 7a représente un exemple de mise en oeuvre du pré-traitement de positionnement de l'indicateur RAI dans le cas où l'estampille de présentation PTS est présente dans le paquet PES débutant dans le paquet transport PTi. A la ligne supérieure est représenté un paquet transport PTi dont l'indicateur PUSI est positionné à un dans l'en-tête H et dont la charge utile (payload) contient le début d'un paquet PES avec une estampille de temps PTS suivie d'un en-tête de séquence. L'identificateur PLD de la composante est 100 (dans cet exemple) et le compteur de continuité COMP est à la valeur arbitraire 5. A la ligne inférieure est représenté le paquet transport PT^ inséré à la place du paquet transport PTi qui est lui-même déplacé. Ce paquet PTins présente les caractéristiques suivantes :
- l'indicateur PUSI est positionné à 0 : ce paquet transport ne contient pas le début d'un paquet PES, - la valeur du compteur de continuité COMP est positionnée à celle du compteur de continuité précédent de cette composante vidéo, soit 5 - 1 = 4,
- le champ de contrôle du champ d'adaptation (AFC) est positionné à la valeur binaire 10 indiquant que le paquet transport possède un champ d'adaptation AF mais pas de charge utile,
l'indicateur RAI est positionné à un dans le champ d'adaptation AF, l'indicateur de discontinuité DI est positionné à un dans le champ d'adaptation
AF,
- si la composante porte l'horloge du programme, une référence d'horloge programme PCR est positionnée dans le champ d'adaptation AF. Elle est calculée par interpolation avec les deux références d'horloge PCR précédentes de la composante considérée ou uniquement d'après la référence d'horloge PCR précédente si l'horloge système du flux transport est connue de façon précise.
Les paquets transport de la composante vidéo sont alors décalés jusqu'à ce que l'un d'entre eux puisse être placé dans un paquet transport de bourrage (le plus tôt possible).
La Fig. 7b représente un autre exemple de mise en oeuvre du pré-traitement de positionnement de l'indicateur RAI dans le cas où l'estampille de présentation PTS n'est pas présente dans le paquet PES débutant dans le paquet transport PTi. A la ligne supérieure de la Fig. 7b, on voit le paquet transport PTi avec son en-tête H et sa charge utile PL.
On rappelle que la norme MPEG-2 impose qu'une estampille de présentation PTS soit présente pour le premier paquet PES (donc la première image) qui suit l'indicateur RAI. A la ligne inférieure, est représenté le paquet PTins inséré à la place du paquet transport PTi qui est lui-même modifié (PTmod). Le paquet inséré PT^ présente les caractéristiques suivantes :
- l'indicateur PUSI est positionné à un : ce paquet transport contient le début d'un paquet PES, - la valeur du compteur de continuité COMP est positionnée à celle du compteur de continuité du paquet transport précédent de cette composante vidéo, soit 5 - 1 = 4,
- le champ de contrôle AFC du champ d'adaptation AF est positionné à la valeur binaire 11 indiquant que le paquet transport possède un champ d'adaptation AF mais également une charge utile, - dans le champ d'adaptation AF, l'indice de discontinuité DI est positionné à un,
- dans le champ d'adaptation AF, l'indicateur RAI est positionné à un,
- une référence d'horloge programme PCR est positionnée dans le champ d'adaptation AF si la composante porte l'horloge du programme, elle est calculée par interpolation avec les deux références horloge PCR précédentes de la composante
considérée ou uniquement d'après la référence horloge PCR précédente si l'horloge système du flux transport est connue de façon précise.
- une charge utile comportant l'en-tête de paquet PES avec une estampille de présentation PTS calculée d'après la référence horloge PCR du paquet transport et le délai VbV Delay de l'image (VbV= video buffer vérifier). On rappelle que le délai
VbVJDelay est le délai minimum à attendre avant de pouvoir décoder une image, une fois que le premier octet de l'image est arrivé dans le tampon (buffer) du décodeur.
Le paquet initial PTi est modifié: son indicateur PUSI est positionné à 0 et l'entête de paquet PES est supprimé puisque le début de paquet PES a été placé dans le paquet PT^ : il devient le paquet PTm0d. La substitution commence au paquet PTm0d. Les paquets transport de la composante vidéo sont décalés jusqu'à ce que l'un d'entre eux puisse être placé dans un paquet transport de bourrage (le plus tôt possible).
Dans la description qui vient d'être faite, les décrochage et raccrochage se font au groupe d'images GOP près. On a cherché des solutions pour des décrochage et raccrochage à l'image près.
On va considérer la Fig. 8 qui montre une mémoire tampon 10 du type FIFO dont la sortie est reliée à un décodeur de flux élémentaires vidéo 20. La mémoire tampon 10 est alimentée par un flux élémentaire ES issu d'un flux de paquets élémentaires PES, lui-même issu d'un flux de paquets de transport. Au moyen d'un signal d'horloge H de période régulière, la mémoire tampon 10 délivre à chaque temps régulièrement espacé (par exemple toutes les 40 millisecondes) toutes les données concernant une image qui peut être du type I, B ou P. Le décodeur 20 décode alors ces données d'image délivrées par la mémoire tampon 10 et les délivre pour leur affichage à l'utilisateur. La capacité de la mémoire tampon 10 est nécessairement limitée et comme on le verra par la suite, au moment d'un décrochage à l'image près d'un flux vidéo élémentaire vers un autre flux vidéo élémentaire ou au moment d'un raccrochage à l'image près d'un flux vidéo élémentaire vers un autre flux vidéo élémentaire, la bonne régulation de mémoire tampon 10 peut être perturbée. Il en résultera alors une perte de données et des perturbations dans les images affichées.
Ce problème et la solution apportée par la présente invention sont illustrés à la Fig. 9 dans le cas du décrochage d'un flux vidéo F! vers un flux vidéo F2. A la Fig. 9, les flux Ft et F2 sont des flux de paquets transports. A cette Fig. 9, on a représenté un groupe d'images GOPi du flux Fi constitué d'une image I suivie d'une suite d'images B
et P. A un instant td, le flux Fi est basculé sur la première image I du flux F2 dont on a représenté un groupe d'images GOP2, lui-même constitué d'une image I et d'une succession d'images B et P.
Pour la Fig. 9, les images B et P sont représentées comme étant de tailles nettement inférieures aux images I, ce qui est généralement le cas.
Si le flux élémentaire constitué, d'une part, de la partie du groupe d'images GOPi précédant le temps de basculement et, d'autre part, des images du groupe d'images GOP2 alimentait directement une mémoire tampon 10 telle que celle qui est représentée à la Fig. 8, il pourrait en résulter une incohérence du niveau de remplissage de cette mémoire tampon 10, due notamment, par exemple, à l'arrivée consécutive de deux images de type I dans la mémoire tampon 10.
Pour résoudre ce problème particulier, un certain nombre N (N > 1) de groupes d'images du flux F constituant les premiers groupes d'images après le basculement au temps td est surcompressé de manière à former un ou plusieurs groupes d'images surcompressés GOP2S (à la Fig. 9, N est égal à 1).
La surcompression vidéo qui est mise en œuvre afin d'obtenir le ou les groupes d'images surcompressés est un algorithme de réduction de débit d'une composante vidéo. En d'autres termes, le processus de surcompression mis en œuvre consiste à extraire du flux de paquets transport et de paquets PES les groupes d'images GOP et les images du flux élémentaire ES à comprimer. Le processus de surcompression est alors mis en œuvre sur chacune de ces images. Chaque image ainsi surcompressée est placée, après sa mise en paquet PES, dans les mêmes paquets transport que l'image initiale, les paquets ne contenant pas de données d'images étant alors remplis de données de bourrage. Avantageusement, le début de chaque image surcompressée correspond au début de l'image correspondante initiale.
Sur la Fig. 9, les images surcompressées arborent un astérisque.
Ainsi, le procédé de la présente invention consiste à substituer aux paquets transport de chaque image du ou des premiers groupes d'images GOP2 rencontrés après la commande au temps tc un même nombre de paquets transport contenant une image correspondante sur compressée et des données de bourrage.
Ce processus de réinsertion consiste à remplacer les paquets transport en utilisant le ratio de surcompression.
On notera encore que le processus de surcompression peut être mis en œuvre préalablement à partir d'un flux vidéo F enregistré et que son résultat est lui-même
enregistré. Les groupes d'images surcompressés GOPs sont alors utilisés au moment voulu pour un processus de décrochage vers le flux enregistré F2.
Cependant, il peut également être mis en œuvre en temps réel sur un flux entrant F2. Le problème évoqué ci-dessus et la solution apportée par la présente invention sont maintenant illustrés à la Fig. 10 dans le cas du raccrochage d'un flux F2 vers un flux Fi. A cette Fig. 10, on a représenté un groupe d'images GOPi d'un flux vidéo Fi, ainsi qu'un groupe d'images GOP2 d'un flux vidéo F2. On a représenté le groupe d'images GOP2 comme une suite d'images I, B et P. Au temps tc, a lieu la commande de raccrochage. Au temps 4, le flux F2 est interrompu et un motif M, par exemple constitué d'une suite d'images B et P prédéfinies, est alors incrusté, et ce, jusqu'au temps tr de raccrochage sur la première image I du groupe d'images GOPi du flux d'images Fi.
Au moment du raccrochage, la mémoire tampon 10 peut contenir les groupes d'images GOPi et GOP2 ou partie de ceux-ci, ce qui peut entraîner une erreur de sa régulation.
Pour résoudre ce problème de régulation de la mémoire tampon 10, selon un mode de réalisation de l'invention, sont utilisés, dans le flux transport, les premières images surcompressées antérieures au temps d'interruption ta, puis le motif M jusqu'au temps de raccrochage ir. Le groupe constitué des images surcompressées et du motif M forme un groupe d'images surcompressé GOP2s constitué des images du groupe d'images GOP2 qui ont été surcompressées précédant le temps ta d'interruption du groupe GOP2, ainsi que du motif M.
A la Fig. 10, les images surcompressées arborent un astérisque. Selon une autre variante de l'invention, ce sont plusieurs groupes d'images du flux F2 précédant le temps tr de raccrochage qui sont surcompressés.
Le processus de surcompression et sa mise en œuvre est le même que celui qui a été précédemment décrit en relation avec la Fig. 9.
On notera que les processus de surcompression qui sont décrits ci-dessus pourraient être mis en œuvre indépendamment du processus de substitution de la présente invention, mais qu'ils en apportent néanmoins une synergie du fait qu'ils permettent des décrochage et raccrochage à l'image près.