Brevet FR2841080A1 — publié le 20031219

L'invention concerne un procédé de visualisation vidéo utilisant un décodeur. Dans un système de réception et d'affichage utilisant un décodeur vidéo, un problème d'affichage se pose lorsque l'utilisateur commande certaines fonctions particulières qui interrompent la visualisation normale de la vidéo, telles que : - une commande d'arrêt sur image puis reprise de l'affichage en continu que nous appellerons freeze ou freeze/continue dans la suite de la description selon une terminologie couramment utilisée dans la technique, et qui correspond à figer l'affichage de l'image en cours sur l'écran de visualisation puis à reprendre l'affichage normalement en continu après un certain laps de temps correspondant à la durée du freeze, - une commutation de chaîne ou de service (zapping) durant laquelle il peut se produire une absence d'affichage et donc l'apparition d'un écran noir sur le moniteur de visualisation. Dans un décodeur bas coût limité en mémoire, lors d'une commande d'arrêt sur image (freeze) sur un service de réception vidéo, la première opération à effectuer est de figer l'affichage de la dernière image décodée au moment où survient le Freeze. Or pour ce faire, le processus de décodage de la vidéo MPEG doit nécessairement être arrêté pour ne pas écraser en mémoire l'image figée affichée à l'écran. En effet, les processus de décodage et d'affichage de la vidéo accèdent à la même mémoire vidéo où sont stockées, dans des mémoires d'affichage vidéo contenant les images décodées et appelées frames buffers, les images de référence (I ou P) décodées ainsi qu'une partie des images B (qui ne sont généralement pas stockées dans leur intégralité en mémoire vidéo). Le processus de décodage est toujours en avance sur le processus d'affichage, puisque ce processus prévoit d'écrire les images décodées dans les frames buffers, avant que le processus d'affichage ne vienne les lire pour les afficher. D'autre part, les processus de décodage et d'affichage de la vidéo sont respectivement synchronisés avec les processus de décodage et de jeu de l'audio, afin que l'audio et la vidéo restent synchrones. Donc, si on suspend le processus d'affichage de la vidéo, il est nécessaire d'arrêter au préalable le processus de décodage vidéo, et par conséquent de rompre la synchronisation entre l'audio et la vidéo. Notons par ailleurs que durant tout le temps du freeze, le décodage du service audio se poursuit, même si) n'est plus synchronisé sur la vidéo qui peut continuer. Lors de la reprise (continue) d'affichage en continu(et même si la sortie audio est coupée), il faut relancer le processus de décodage vidéo, attendre que la vidéo se soit resynchronisé sur l'audio, et rétablir enfin l'affichage de la vidéo. Or, au moment où le processus de décodage vidéo est relancé, il vient écraser en mémoire les données de la précédente image figée : il est donc nécessaire avant de relancer le décodage de la vidéo, d'afficher un écran noir temporaire pendant toute la phase de resynchronisation de la vidéo sur l'audio, avant de rétablir l'affichage de la vidéo. Or, la phase de resynchronisation peut prendre plusieurs centaines de millisecondes, durant lesquelles l'écran noir est affiché et l'utilisateur attend le redémarrage du service vidéo. Lors d'un zapping (commutation de chaîne), les contraintes sont les mêmes que pour la commande d'arrêt sur image pour la partie vidéo. Trois différences notables distinguent le zapping du Freeze/Continue : - premièrement, lors d'un zapping, au moment où la dernière image de référence décodée est figée à l'affichage, la sortie du Convertisseur Analogique Numérique Audio ou Digital Analog Converter (DAC audio) doit être coupée et le décodage audio doit être arrêté, alors que le décodage et le jeu de l'audio peuvent se poursuivre dans le cas de la commande freeze/Continue suivant que l'on souhaite ou non laisser l'audio continuer pendant la durée du freeze. - deuxièmement, lors d'un zapping, il y a par définition un changement de service entre le gel de la vidéo du service précédent et la reprise sur le nouveau service, alors que le service reste le même dans le cas de la commande freeze/continue ; - troisièmement, lors d'un zapping, la durée séparant le gel de la vidéo du redémarrage de la vidéo est directement liée au temps de zapping, variable suivant les cas, tandis qu'il est sous contrôle de l'utilisateur ou de la partie applicative dans le cas de la commande de freeze/Continue. Mais en dehors de ces trois différences, le problème de l'écran noir pendant la phase de resynchronisation de la vidéo sur l'audio, lors du redémarrage sur le service suivant, se pose de la même manière dans le cas du zapping que dans le cas du freeze/Continue. L'invention a pour objet de résoudre ces problèmes. L'invention concerne donc un procédé de visualisation vidéo applicable dans un décodeur destiné à recevoir en continu des informations vidéo/audio, à les décoder et à les afficher sur un écran d'un moniteur de visualisation. Un tel décodeur comprend au moins une mémoire d'affichage d'images vidéo ou plan vidéo et une mémoire d'affichage d'image fixe ou plan Still indépendant du plan vidéo au niveau de l'affichage, les plans vidéo et Still pouvant être activés ou désactivés indépendamment l'un de l'autre à l'affichage. Ce procédé prévoit que, sous une commande spéciale telle qu'une commande d'arrêt sur image (freeze) ou une commande de commutation de chaîne (zapping), on enregistre la dernière image reçue dans ledit plan Still puis on active l'affichage du plan Still et on désactive l'affichage du plan vidéo, ce qui permet de supprimer l'affichage d'un écran noir intermédiaire affiché habituellement durant la phase de synchronisation audio/vidéo lors d'une commande spéciale. Avant l'enregistrement dans le plan Still, le procédé de l'invention peut prévoir les étapes suivantes: a. le transfert de la dernière image (In) de type Intra ou 1 (selon la norme MPEG) en cours de réception à une mémoire d'un microprocesseur de commande du décodeur; b. Décodage logiciel de ladite dernière image par le microprocesseur. Après le transfert de la dernière image à la mémoire du microprocesseur, on peut prévoir l'arrêt des décodages audio et vidéo et une opération consistant à couper le son. Egalement, la commande spéciale peut provoquer l'arrêt des décodages audio/vidéo et la coupure du son. La dernière image décodée est figée dans le plan vidéo et est transférée du plan vidéo vers le plan Still et affichée dans le plan Still, le décodage audio et vidéo étant ensuite relancé. Lors d'un retour en fonctionnement normal du décodeur, le plan vidéo est réactivé, le plan Still est désactivé et la vidéo est affichée à nouveau en continu dans le plan vidéo en synchronisme avec l'audio. Par ailleurs, pendant le temps ou l'image est figée dans le plan Still, les processus de décodage audio et vidéo ayant été relancés, l'audio et la vidéo sont resynchronisées, puis le plan vidéo est réactivé, le plan Still est désactivé et la sortie audio est rétablie. Les différents objets et caractéristiques de l'invention apparaîtront plus clairement dans la description qui va suivre faite à titre d'exemple non limitatif et dans les figures qui représentent : - les figures la et lb, des chronogrammes illustrant un exemple de réalisation du procédé d'affichage selon l'invention déclenché par l'utilisateur, la figure la étant relative à une commande d'arrêt sur image (freeze) et la figure lb étant relative à une commande de changement de chaîne de réception (zapping); - les figure 2a et 2b, des chronogrammes illustrant un exemple d'une variante de réalisation du procédé d'affichage selon l'invention déclenché en figure 2a, par une commande d'arrêt sur image (freeze) et, en figure 2b, par une commande de changement de chaîne de réception (zapping). Un décodeur vidéo comporte pour l'affichage, une mémoire vidéo ou plan vidéo destiné à enregistrer temporairement les informations vidéos en vue de leur affichage, une mémoire image ou plan image destiné à enregistrer temporairement des images fixes à afficher, une mémoire graphique ou plan graphique destiné à enregistrer des informations graphiques ou alphanumériques à afficher selon les options de fonctionnement du décodeur. De façon générale, le procédé de l'invention prévoit, lorsque l'utilisateur émet une commande spéciale ayant pour effet de modifier le fonctionnement normal du décodeur, telle q'une commande d'arrêt sur image suivi d'une reprise d'image (freeze), ou une commande de changement de chaîne (zapping), d'enregistrer dans une mémoire temporaire la dernière image en cours de réception pour permettre à cette dernière image d'être affichée en fixe sur un écran de visualisation. Par exemple, dans un décodeur bas coût, le plan image est prévu mais n'est pas utilisé dans de nombreux cas. Cette mémoire temporaire pourra être alors le plan image du décodeur. On notera que le plan image (Still) et le plan vidéo du décodeur peuvent être activés ou désactivés indépendamment l'un de l'autre à l'affichage. En se reportant au chronogramme de la figure la, on va décrire un exemple de réalisation du procédé de l'invention appliqué tout d'abord au traitement d'une commande de pause (freeze) initiée par l'utilisateur. La ligne Ala représente le processus de remplissage, par le démultiplexeur, d'une mémoire tampon, appelée rate buffer dans la technique et destinée à contenir les données audio et vidéo avant décompression. La ligne Bla représente le processus hardware de décodage vidéo. La ligne Cla représente le processus hardware d'affichage vidéo. La ligne D1a représente un processus logiciel selon l'invention permettant de décoder la dernière image et de la mettre en mémoire temporaire, dans le plan image par exemple. Le décodeur est supposé recevoir en continu une séquence vidéo. Il est en cours de réception d'une image In (étape ET1) sur la figure la. L'image vidéo In est en cours de détection dans le flux vidéo codé MPEG venant du démultiplexeur et l'image In est capturée à la volée dans le rate buffer en avance de phase par rapport au processus de décodage de la vidéo. Durant cette étape, comme indiqué sur la ligne Cla, la pause est commandée (freeze). Au cours de l'étape ET2, l'image capturée In, qui est de type Intra ou 1 selon la norme MPEG, est transférée du rate buffer vers la mémoire RAM de l'unité de commande CPU du décodeur. Au cours de l'étape ET3 est réalisé un décodage logiciel de l'image In capturée en mémoire RAM CPU à un format particulier connu sous la dénomination format YUV 420. Au cours de l'étape ET4,1'image In décodée est enregistrée dans le plan image désigné plan Still sur les figures et dans la suite de la description. Au cours de l'étape ETS, le plan Still est activé et le plan Vidéo est désactivé, ce qui veut dire que le contenu du plan Still est affiché sur le moniteur de visualisation de l'utilisateur qui cesse de visionner la vidéo et qui voit à la place, sur son écran, l'image fixe In. Il convient de considérer que l'image In apparaît figée dans le plan Still. Pendant ce temps, le décodage et le jeu de l'audio MPEG se poursuivent en synchronisme. Dans certains cas de fonctionnement, il est possible que l'image figée In apparaissant à l'écran ne corresponde pas à la dernière image vidéo affichée, puisque les processus de décodage et d'affichage de la vidéo ont continué en parallèle en mémoire vidéo. Mais comme le temps de traitement de l'image In en mémoire CPU est inférieure à la durée (12*40ms = 480 ms) d'un paquet d'images appelé GOP (Group Of Pictures) dans la norme MPE, l'image In figée affichée sera en fait temporellement l'image précédant la dernière image 1 affichée par le décodeur vidéo (notée In+1 sur la figure la), et la différence entre les deux images ne devrait pas être perceptible par l'utilisateur dans la majorité des cas . Au cours de l'étape ET6, le fonctionnement normal du décodeur est commandé par l'utilisateur. Le plan vidéo est à nouveau activé. Au moment de la reprise du jeu de la séquence vidéo en fonctionnement continu, l'affichage du plan vidéo est réactivé: la vidéo réapparaît immédiatement et est toujours synchronisée avec l'audio. De plus, le plan Still est désactivé. En se reportant à la figure lb, on va maintenant décrire un exemple du procédé selon l'invention similaire à celui de la figure la appliqué à une commutation de chaîne ou zapping. Les lignes Alb à Dlb du chronogramme de la figure lb ont les mêmes significations que les lignes Ala à Dla de la figure la. Au cours de l'étape ET'l (figure lb), comme précédemment au cours de l'étape ET1 de la figure la, le décodeur est supposé recevoir en continu une séquence vidéo. Il est en cours de réception d'une image In. L'image vidéo In est en cours de détection dans le flux vidéo codé MPEG venant du démultiplexeur et l'image In est capturée à la volée dans le rate buffer en avance de phase par rapport au processus de décodage de la vidéo. Durant cette étape, comme indiqué sur la ligne Clb, le zapping est commandé. Au cours de l'étape ET'2, l'image capturée In est transférée du rate buffer vers la mémoire RAM de l'unité de commande CPU du décodeur. Au cours de l'étape ET'3, à la fin du transfert de l'image 1 à la mémoire RAM, les décodeurs audio et vidéo sont arrêtés. De plus, la sortie du convertisseur analogique numérique audio (DAC audio) est coupée . L'image In est alors figée dans le plan vidéo. Au cours de l'étape ET'4,l'image In (qui est de type Intra ou 1 selon la norme MPEG) est en mémoire RAM et fait l'objet d'un décodage logiciel (au format YUV 420). Au cours de l'étape ET'5 l'image In décodée est enregistrée dans le plan Still. Au cours de l'étape ET'6, le plan image (Still) est activé et le plan Vidéo est désactivé, ce qui veut dire que le contenu du plan image (Still) est affiché sur le moniteur de visualisation de l'utilisateur qui cesse de visionner la vidéo et qui voit à la place, sur son écran, l'image fixe In. Il convient de considérer que l'image In apparaît figée dans le plan Still. Pendant ce temps, après que l'ensemble tuner/démodulateur s'est calé sur la fréquence du multiplex où est diffusé le nouveau service appelé par l'utilisateur lors de son zapping, et que le démultiplexeur a démultiplexé tous les identifiants de paquets (connus dans la norme MPEG sous le terme de PIDS) du nouveau service et après acquisition des EMM ou Entitlement Management Message, on procède au redémarrage des décodeurs audio et vidéo. L'audio et la vidéo passent en phase de resynchronisation sur le nouveau service. Dans certains cas de fonctionnement, il est possible que l'image figée In apparaissant à l'écran ne corresponde pas à la dernière image vidéo affichée, puisque les processus de décodage et d'affichage de la vidéo ont continué en parallèle en mémoire vidéo. Mais comme précédemment, limage In figée affichée sera en fait temporellement l'image I précédant la dernière image affichée par le décodeur vidéo , et la différence entre les deux ne devrait pas être perceptible par l'utilisateur. Au cours de l'étape ET'7, la commande de zapping par l'utilisateur étant terminée, l'audio et la vidéo du nouveau service demandé par l'utilisateur étant synchronisés, le plan vidéo est à nouveau activé et la sortie du convertisseur analogique numérique audio (DAC audio) est rétablie. L'affichage du plan vidéo est réactivé: la vidéo réapparaît immédiatement en synchronisme avec l'audio. De plus, le plan Still est désactivé. Le système se retrouve dans l'état de fonctionnement initial. Dans l'exemple de procédé qui vient d'être décrit, on a donc prévu un traitement logiciel de la dernière image capturée au moment du déclenchement du freeze ou du zapping. On va maintenant décrire un autre exemple de réalisation du procédé selon lequel, lors du déclenchement spécial (freeze, zapping, ...), le décodeur vidéo est immédiatement arrêté et la dernière image en cours de capture est figée dans le plan vidéo. Comme précédemment on va décrire le fonctionnement du procédé tout d'abord lorsqu'il est déclenché par une commande de freeze (figure 2a), puis par un zapping (figure 2b). Les figures 2a et 2b représentent des chronogrammes de fonctionnements. Sur les lignes A2a et A2b on a représenté les processus hardwares de décodage vidéo et sur les lignes B2a et B2b, les traitements software réalisés sur la dernière image capturée In enregistrée en RAM CPU. Sur la figure 2a, on voit que, lorsque le freeze de la vidéo est déclenché par l'utilisateur, le décodeur vidéo est arrêté et la dernière image In décodée est figée à l'affichage dans le plan vidéo (étape ST1). L'étape ST1 entraîne une étape ST2 au cours de laquelle l'image décodée In est transféré dans le plan image (plan Still). Au cours de l'étape ST3, le plan image est activé.. Quasi-simultanément, au cours de l'étape ST4, le plan vidéo est désactivé et l'image In est affichée en image fixe sur l'écran de l'utilisateur. De plus, le décodeur vidéo est redémarré. Il se trouve ainsi que le décodeur vidéo n'est arrêté qu'un temps très court et que le retard accumulé entre l'audio et la vidéo est donc faible. Ensuite, le temps que met le décodeur vidéo à se resynchroniser sur l'audio (étape ST5) est également très bref comme on peut le voir sur la figure 2a. Pendant ce temps l'image In est toujours affichée en fixe à l'écran. Au cours de l'étape ST6, la vidéo et l'audio étant synchronisés, le plan vidéo est à nouveau activé: la vidéo réapparaît immédiatement en continu et est synchronisée avec l'audio. Enfin, (étape ST7) le plan image est désactivé. Le système se retrouve dans la situation d'origine en visionnement normal de la vidéo. En se reportant à la figure 2b, on va maintenant décrire cette variante de réalisation du procédé de l'invention lorsqu'il est déclenché par une commande de commutation de chaîne ou zapping. Lors du déclenchement du zapping par l'utilisateur, le gel (freeze) de la vidéo est initié. Au cours de l'étape ST'l, il est procédé à l'arrêt de la vidéo et audio et à la coupure de l'audio (coupure du décodeur analogique numérique DAC audio): la dernière image de référence In décodée est figée à l'affichage dans le plan vidéo. Au cours de l'étape ST'2, l'image décodée In est transférée en DMA dans le plan Still. Au cours de l'étape ST'3 le plan Still est activé. Au cours de l'étape ST'4 le plan Vidéo est désactivé : l'imageIn apparaît alors figée dans le plan Still, l'image In est affichée en fixe sur l'écran de l'utilisateur. Pendant ce temps, après que le tuner et le démodulateur se sont calés sur la fréquence du multiplex où est diffusé le nouveau service demandé par l'utilisateur et que le démultiplexeur a démultiplexé tous les identifiants pids du nouveau service (après acquisition des EMM), il est procédé au redémarrage des décodeurs audio et vidéo (étape ST'5). L'audio et la vidéo passent en phase de synchronisation sur le nouveau service. A la fin du zapping, c'est-à-dire au moment où l'audio et le du plan vidéo sont activés et l'audio est rétablie (rétablissement du DAC audio): l'audio et la vidéo du nouveau service apparaissent simultanément et sont synchronisés. La vidéo du nouveau service apparaît en continu sur l'écran de l'utilisateur. Le plan Still est désactivé. Les exemples de réalisation du procédé l'invention précédemment décrits on donc permis lors d'une commande spéciale (freeze, zapping) par l'utilisateur d'éviter l'affichage d'un écran noir habituellement affiché durant la phase de synchronisation audio/vidéo lors d'un zapping ou d'un arrêt sur image suivi d'une reprise d'image. REVENDICATIONS 1. Procédé de visualisation vidéo applicable dans un décodeur destiné à recevoir en continu des informations vidéo/audio, à les décoder et à les afficher sur un écran d'un moniteur de visualisation, ledit décodeur comprenant au moins une mémoire d'affichage d'images vidéo ou plan vidéo et une mémoire d'affichage d'image fixe ou plan Still indépendant du plan vidéo au niveau de l'affichage, les plans Still et vidéo pouvant être activés ou désactivés indépendamment l'un de l'autre à l'affichage, caractérisé en ce qu'il comporte, sous une commande spéciale telle qu'une commande d'arrêt sur image (freeze) ou une commande de commutation de chaîne (zapping), une étape d'enregistrement de la dernière image reçue dans ledit plan Still suivie d'une étape d'affichage de cette image dans le plan Still sur le moniteur de visualisation ainsi que de désactivation du plan vidéo. 2. Procédé de visualisation vidéo selon la revendication 1, caractérisé en ce qu'il comporte, avant l'étape d'enregistrement dans le plan Still, les étapes suivantes : a. Transfert de la dernière image (In) de type Intra ou I (selon la norme MPEG) en cours de réception à une mémoire d'un microprocesseur de commande du décodeur; b. Décodage logiciel de ladite dernière image par le microprocesseur 3. Procédé de visualisation vidéo selon la revendication 2, caractérisé en ce qu'après le transfert de la dernière image à la mémoire du microprocesseur, on prévoit l'arrêt des décodages audio et vidéo et une opération consistant à couper le son. 4. Procédé de visualisation vidéo selon la revendication 1, caractérisé en ce que ladite commande spéciale provoque l'arrêt des décodages audio/vidéo et la coupure du son, la dernière image décodée étant figée dans le plan vidéo, ladite image étant transférée du plan vidéo vers le plan Still et affichée dans le plan Still, et les décodages audio et vidéo étant ensuite relancés. 5. Procédé de visualisation vidéo selon l'une des revendications 2 ou 4, caractérisé en ce que lors d'un retour en fonctionnement normal du décodeur, le plan vidéo est réactivé, le plan Still est désactivé et la vidéo est affichée à nouveau en continu dans le plan vidéo en synchronisme avec l'audio. 6. Procédé de visualisation vidéo selon l'une des revendications 3 ou 5, caractérisé en ce que, pendant le temps ou l'image est figée dans le plan Still, les processus de décodage audio et vidéo ayant été relancés, l'audio et la vidéo sont resynchronisées, puis le plan vidéo est réactivé, le plan Still est désactivé et la sortie audio est rétablie.