Brevet FR2842982A1 — publié le 20040130

i La présente invention se rapporte à un procédé et à un dispositif de traitement d'images numériques. Il est connu d'afficher une séquence d'images codées au moyen de données numériques selon divers modes, un mode d'affichage étant défini par un sens et une vitesse d'affichage fonction du nombre d'images affichées. Par exemple, une séquence comprenant cinq images successives M1, M2, M3, M4 et M5 peut être affichée selon un mode correspondant à un sens et à une vitesse tels que les images M1, M2, M3, M4 et M5 sont successivement affichées. Selon un autre mode, le sens d'affichage est inversé par rapport au premier mode tandis que la vitesse d'affichage de la séquence est accélérée de telle sorte que seules les images M5, M3 et M1 sont successivement affichées. Selon un dernier exemple, la vitesse d'affichage de la séquence est nulle de telle sorte qu'une image, par exemple M1, est affichée de façon continue. Par ailleurs, il est connu de coder des images numériques d'une séquence d'images en utilisant le codage d'une première image de la séquence pour effectuer le codage d'une deuxième image de cette séquence. Dans la suite du document, de telles images sont dites dépendantes. Des images codées d'une séquence peuvent être dépendantes, par exemple, lorsque cette séquence est codée selon la norme Motion Pictures 2 o Expert Group (MPEG). On rappelle que, conformément à cette norme MPEG, le codage d'une image associe l'image codée à l'une des trois catégories suivantes: - Une catégorie d'images dites intra (1), une image intra pouvant être décodée et affichée sans requérir le décodage d'une autre image. - Une catégorie d'images dites prédictives (P), une image prédictive requérant le décodage de l'image intra ou prédictive transmise préalablement à cette image prédictive pour être affichée, et - Une catégorie d'images dites bidirectionnelles (B), une image bidirectionnelle requérant le décodage des images affichées préalablement et 3 0 postérieurement à cette image bidirectionnelle pour être affichée. La présente invention résulte de la constatation que l'affichage d'images selon un mode déterminé, c'est-à-dire selon un sens et une vitesse déterminés, nécessite des manipulations importantes d'images et donc des ressources importantes dans les dispositifs de décodage. Par exemple, en considérant le codage d'images selon la norme MPEG, l'affichage d'une image bidirectionnelle requiert le décodage d'une image affichée antérieurement et d'une image affichée consécutivement à cette image bidirectionnelle, ces trois images décodées étant affichées lorsque le mode l1 d'affichage du terminal correspond à une vitesse telle que l'ensemble des images codées sont affichées. Inversement, si la vitesse d'affichage est telle que l'image bidirectionnelle est affichée alors que ses images préalable et postérieure ne sont pas affichées, par exemple pour un affichage accéléré, ces dernières doivent néanmoins être transmises et décodées pour permettre l'affichage de l'image bidirectionnelle. Il apparaît qu'en fonction du mode d'affichage, des premières images, non affichées, doivent être transmises et décodées pour permettre le décodage de deuxièmes images. De façon analogue, lorsque le mode d'affichage est tel que l'ensemble des images codées est affiché, une image prédictive est décodée au moyen d'une image préalablement transmise et préalablement décodée pour être affichée. Inversement, si la vitesse d'affichage est accélérée de telle sorte qu'une image préalable à une image prédictive ne doit pas être affichée, cette image préalable est néanmoins transmise et décodée pour permettre le décodage de l'image prédictive. Selon un dernier exemple, lorsque le sens d'affichage correspond à l'ordre de transmission de ces images, une image prédictive est décodée à l'aide d'une image préalablement décodée pour être affichée. Toutefois, si le sens d'affichage est inversé, le décodage d'une image prédictive requiert le décodage de J'image transmise préalablement à cette image prédictive alors même que cette image préalable n'est éventuellement affichée qu'après l'affichage de l'image prédictive. En d'autres termes, l'ordre dans lequel les images codées sont traitées est inadapté à un mode d'affichage inversé, ce qui rend complexe le traitement de ces images et accroît les délais d'affichage. Le traitement nécessite en effet une analyse de la structure du flux, un réarrangement des images, des décodages multiples engendrant des ressources nombreuses au niveau de la capacité mémoire requise et de la puissance des processeurs mis en oeuvre. Ces inconvénients sont accrus lorsque les images codées sont transmises par un serveur à un ou plusieurs terminaux d'affichage distants. En effet, outre les inconvénients relatifs à la complexité du décodage et aux délais nécessaires à ce décodage, des ressources de transmission sont utilisées pour transmettre des premières images codées, nécessaires pour effectuer le décodage de deuxièmes images codées, qui ne sont pas affichées. La présente invention remédie à au moins un de ces inconvénients. Elle concerne un procédé de traitement d'images numériques, ces images étant transmises d'un serveur vers un décodeur utilisant divers modes d'affichage, des images étant codées de façon dépendante telle que le codage d'une première image est utilisé pour coder une deuxième image. Selon l'invention, on détermine l'ordre de transmission des images du serveur vers le décodeur en fonction de la dépendance de ces images et du mode d'affichage demandé par le décodeur. Grâce à un tel procédé, la transmission d'images numériques peut potentiellement être adapté au mode d'affichage de façon à éventuellement permettre un allègement des traitements à effectuer dans le dispositif de décodage. Dans le cas o les images codées sont transmises par un serveur à un terminal, l'invention peut rendre possible une limitation de l'utilisation du réseau de transmission en ne transmettant qu'un nombre limité d'images. Selon un mode préféré de réalisation, on transmet au serveur le mode d'affichage utilisé par le décodeur pour que le serveur effectue la transmission des images en fonction du mode d'affichage utilisé par le décodeur. Ceci peut rendre possible une réduction du nombre d'images transmises entre le serveur et le ou les décodeurs à qui sont destinées ces images. Les décodeurs peuvent ainsi indiquer au serveur dans quel mode ils fonctionnent et ainsi le serveur adapte la transmission des images en fonction de ce mode. Selon un mode préféré de réalisation, lorsque le serveur transmet des images codées au terminal, le serveur transmet parallèlement une commande associée à chaque image comprenant des informations permettant au décodeur de traiter chaque image. Les images sont transmises du serveur vers le décodeur dans un ordre qui ne correspond plus nécessairement à l'ordre de codage. Dans le cas d'images codées selon la norme MPEG-2, le flux transmis du serveur vers le décodeur n'est plus conforme à un codage selon la norme MPEG-2 car les images sont transmises dans un ordre différent du codage. Ainsi, la commande transmise avec les données permet au décodeur de décoder les images du flux même si ce flux n'est plus conforme avec le standard dans lequel les données ont été codées. Selon un mode préféré de réalisation, les informations comportent - un champ indiquant si ladite image doit être affichée, - un champ indiquant si ladite image doit être décodée, - un champ indiquant dans quel tampon mémoire du décodeur ladite image doit être enregistrée après le décodage, - un champ indiquant les numéros des tampons mémoires contenant des images servant au décodage de ladite image, - un champ indiquant le sens d'affichage des images. Ces informations permettent au décodeur de savoir comment il doit traiter l'image qu'il reçoit et o il doit enregistrer cette image. Selon un mode préféré de réalisation, lorsque le terminal reçoit des images codées et une commande associée à chaque image, on transmet la commande à une première mémoire tampon tandis que les images codées sont transmises à d'autres mémoires tampons. Selon un mode préféré de réalisation, on traite les commandes stockées dans la première mémoire tampon en fonction de leur ordre de stockage dans ladite mémoire tampon. Selon un mode préféré de réalisation, on utilise des modes d'affichages définis par un sens d'affichage, c'est-à-dire l'ordre dans lequel des images sont affichées, ainsi que par une vitesse d'affichage telle qu'un nombre variable d'images est affiché pour un même groupe d'images traité. Les décodeurs numériques en charge du décodage de séquences vidéo sont souvent amenés à traiter des modes spéciaux tels que l'avance rapide, la lecture différée, le retour en arrière. Selon un mode préféré de réalisation, lorsque le décodeur change de mode d'affichage, on réduit la taille du premier tampon mémoire. De cette manière, il peut être possible d'adapter la profondeur de la mémoire tampon et par exemple, de diminuer la profondeur de la mémoire tampon lorsque la vitesse d'affichage diminue ou d'augmenter la profondeur de la mémoire tampon lorsque la vitesse d'affichage augmente. Ceci peut rendre possible une diminution de la latence dans le décodeur et ainsi peut rendre possible une amélioration du temps de réaction du décodeur. Ceci peut s'avérer particulièrement intéressant lors d'un changement de mode d'affichage. Selon un mode préféré de réalisation, lorsque le décodeur change de mode d'affichage, on vide le premier tampon mémoire. Ceci peut également rendre possible une diminution de la latence dans le décodeur lorsque l'on effectue un changement de mode d'affichage. L'invention concerne également un dispositif de traitement d'images numériques, comportant des moyens de transmettre ces images d'un serveur vers un décodeur utilisant divers modes d'affichage, les images étant codées de façon dépendante telle que le codage d'une première image est utilisé pour 2 0 coder une deuxième image. Selon l'invention, ledit dispositif comporte des moyens de déterminer l'ordre de transmission des images du serveur vers le décodeur en fonction de la dépendance de ces images et du mode d'affichage demandé par le décodeur. Finalement, il convient de signaler qu'un procédé conforme à l'invention peut aisément être implémenté dans un décodeur connu comme décrit ultérieurement. 3 0 L'invention concerne également un produit programme d'ordinateur comprenant des instructions de codes de programme pour l'exécution des étapes du procédé de traitement d'images numériques selon l'un des modes de réalisation de l'invention, lorsque ledit programme est exécuté sur un ordinateur. D'autres caractéristiques et avantages de l'invention apparaîtront dans la description effectuée ci-dessous, à titre non limitatif, en référence aux figures suivantes: - la figure 1 a représente l'ordre d'affichage des données en mode sens avant et en mode sens arrière, - les figures lb, lc et Id représentent un exemple de l'ordre de transmission des images selon différents modes d'affichage, - la figure 2 représente un serveur et deux terminaux conformes à un mode de réalisation de l'invention. La figure la représente une séquence d'images codées selon la norme MPEG-2. Les images sont groupées en une séquence (GOP en anglais pour " Group Of Pictures "), comportant des images codées selon les trois modes précédemment décrits, 1, B ou P. Une séquence comporte 12 images dans le mode de réalisation représenté. Sur les figures la, lb, lc et Id, les images notées 1, B et P appartiennent à un GOP, les images notées 1', B' et P' appartiennent à un autre GOP et les image notées 1", B" et P" appartiennent à encore un autre GOP. Lorsque le mode d'affichage est le sens avant, les images sont affichées dans un ordre correspondant à l'ordre de codage des images, l'image BO étant tout d'abord affichée puis les images BI, 12, B3....Pl1... Lorsque le mode d'affichage est le sens arrière, on commence par afficher tout d'abord l'image Pl1, BI0, B99,...,BO.... Dans ce dernier cas, on n'affiche dont pas les images dans l'ordre dans lequel elles ont été codées ce qui engendre des contraintes de décodage importantes et des ressources importantes dans un dispositif de décodage destiné à décoder ces images pour les transmettre à un dispositif d'affichage. Sur la figure lb est représentée une séquence d'images transmises du serveur vers le décodeur selon un mode de réalisation de l'invention lorsque le mode d'affichage est le sens avant. Afin de limiter les ressources nécessaires dans le décodeur, les images sont transmises dans un ordre permettant de diminuer les traitements dans le décodeur. Ainsi, les images sont transmises dans l'ordre suivant: 12, BO, BI, P5, B3, B4, P8, B6, B7, Pl1, B9, BIO. Sur la figure lc est représentée une séquence d'images transmises du serveur vers le décodeur selon un mode de réalisation de l'invention lorsque le mode d'affichage est le sens avant accéléré. Les images de type B ne sont pas transmises au décodeur. Les images I et P sont transmises du serveur vers le décodeur dans l'ordre suivant: 12, P5, P8, PlI.... Sur la figure ld, est représentée une séquence d'images transmises du serveur vers le décodeur selon un mode de réalisation de l'invention lorsque le mode d'affichage est le sens arrière. Les images d'un même GOP sont transmises dans le sens: 12, P5, P8, B10, B9, 12, P5, B7, B6, 12, B4, B3. On constate donc que certaines images (celles pour lesquelles une croix est indiquée sous la séquence) sont transmises plusieurs fois afin de faciliter le traitement dans le décodeur. Sur la figure 2 sont représentés un serveur 202 et des terminaux 206 et 208 destinés à afficher des images enregistrées dans un support d'enregistrement (disque dur, CD, DVD) 204 du serveur 202. Conformément à l'invention, le serveur 202 transmet des images Mi' codées de façon dépendante, c'est-à-dire qu'une première image Mj' est codée au moyen d'une deuxième image Mk' codée, aux terminaux 206 et 208. Par ailleurs, ces images Mi' sont transmises avec une commande Ci' identifiant un mode d'affichage associé aux images Mi', un mode d'affichage étant défini entre autre par un sens et une vitesse d'affichage. Pour effectuer une telle transmission d'images codées Mi' et de commande Ci', le terminal 206 transmet au serveur 204 des informations A206 relatives au mode d'affichage sélectionné par l'utilisateur du terminal. En fonction du mode d'affichage utilisé par le terminal 206, différentes séquences d'images comme représentées sur les figures lb, lc et ld, sont transmises au terminal 206 pour optimiser le traitement de ces images. Les commandes C'i et C"i transmises par le serveur 202 aux dispositifs 206 et 208 comportent des informations relatives aux décodages et aux affichages à effectuer par les dispositifs 206 et 208 de façon à permettre à ce dernier d'effectuer un contrôle du traitement à effectuer sur les images Mi', M"i et sur les commandes Ci', Ci" transmises. Le tableau 1 suivant illustre les différentes informations (la liste n'est pas exhaustive) des commandes C'i et C"i. Nom Description RDCId Identificateur de la commande Display Indique si l'image doit être affichée BuffNr Indique dans quel tampon mémoire l'image doit être enregistrée après décodage. Decode Indique si l'image doit être décodée P_BuffNr Indique le numéro du tampon mémoire contenant une image P pouvant être nécessaire pour décoder l'image courante. I_BuffNr Indique le numéro du tampon mémoire contenant une image I pouvant être nécessaire pour décoder l'image courante. Forward Indique le sens d'affichage. Cette information est utilisée par le décodeur pour afficher deux images dans le mode entrelacé. Optionnel Size Taille de l'image (nombre de paquets TS) Type Type de l'image TempRef Référence temporelle de l'image. commandeld Indique un numéro de commande permettant de savoir à quel mode d'affichage correspond l'image transmise. A partir de ces informations, le serveur 202 modélise le fonctionnement du terminal 206, notamment en terme de capacité de mémoire disponible, de façon à ne pas transmettre une quantité de données supérieures aux capacités de traitement, et aux ressources de stockage du terminal 206. Lorsque le signal comprenant les données Mi' et la commande Ci' sont l1 reçus par le terminal 206, le signal est traité par un démultiplexeur 210 transmettant la commande Ci' à un registre 212 et les images Mi' codées à une mémoire 214 de stockage. Le registre 212 est de manière préférée réalisée par une mémoire de type FIFO (acronyme anglais de " First-in First-out "). il Dans cette réalisation, cette mémoire comprend deux sous mémoires 214a et 214b utilisées pour stocker, respectivement, les informations audio et les informations vidéo reçues. Le registre 212 de stockage transmet les commandes Ci' à un contrôleur 216 selon un ordre correspondant à l'ordre de stockage dans ce registre 212. Lorsqu'une commande Ci' est reçue par le contrôleur 216, ce dernier commande au moyen d'un élément 218 la transmission d'images codées de la mémoire 214 de stockage à une mémoire 220 tampon utilisée pour le décodage des images. Le module 218 est notifié de l'arrivée d'une nouvelle image dans le tampon mémoire 214b et est commandé par le contrôleur 216 pour démarrer le décodage d'une image dans les mémoires tampons 220 de reconstruction. Les images décodées sont transmises à l'écran d'affichage 222 par l'intermédiaire d'un contrôleur d'affichage 200. Dans cette réalisation préférée, quatre mémoires tampons 220 sont utilisés afin d'accroître la rapidité de traitement des images, notamment lorsqu'une modification du mode d'affichage intervient. Lorsque le mode d'affichage est modifié, des informations A206 sont transmises au serveur 202 qui, modifiant le codage des images en fonction du 2 o nouveau mode d'affichage, transmet de nouvelles images codées Mi" associées à ce nouveau mode d'affichage au moyen d'une commande Ci". Dans un mode de réalisation préféré, le registre 212 a une profondeur adaptative qui permet de réduire la latence lorsque l'utilisateur change le mode d'affichage. Ainsi les commandes enregistrées dans le registre 212 sont éliminées et l'on peut passer au mode d'affichage suivant rapidement. Dans une variante, le registre 212 est vidé lorsque l'on change de mode d'affichage, ce qui permet également de réduire la latence lors d'un 3 0 changement de mode d'affichage. Le champ Commandld permet de savoir à quel mode d'affichage correspond chaque image. Cet identificateur est transmis dans un premier temps du décodeur 206 vers le serveur 202 avec le mode d'affichage. Ensuite, chaque image correspondant à ce mode d'affichage est transmise selon les séquences illustrées en figure lb, Ic ou ld avec l'identificateur Commandid. Ainsi, lors d'un changement de mode d'affichage, le décodeur, lorsqu'il reçoit des images correspondant au mode d'affichage précédent, peut vider le registre 212. Dans une variante, les mémoires tampons 220 sont spécifiques à une catégorie d'image codée intra, bidirectionnelle ou prédictive. Lorsque les images sont codées selon la norme MPEG-2, le champ CC (acronyme anglais de " continuity counter ") contenu dans les paquets de type transport n'est plus valide car les images sont transmises dans un ordre différent du codage. Afin d'éviter des discontinuités dans le flux, il peut être envisagé d'insérer des paquets de bourrage pour atteindre la valeur du champ CC escomptée. Selon une autre variante, il est également possible de ne pas tenir compte du champ CC dans le décodeur. Lorsque les images sont codées selon la norme MPEG-2, les commandes C'i, C"i peuvent être insérées dans des sections privées en utilisant un paquet TS avec un identificateur de paquet (PID) particulier. Dans ce cas, le décodeur décode les champs PAT et les tables privées. Les commandes C'i et C"i peuvent également être insérées dans un paquet de type TS spécialement crée pour cela qui ne contient qu'un identificateur et pas de données. REVENDICATIONS 1. Procédé de traitement d'images numériques, ces images (M'i, M"i) étant transmises d'un serveur (202) vers un décodeur (208, 206) utilisant divers modes d'affichage, des images étant codées de façon dépendante telle que le codage d'une première image est utilisé pour coder une deuxième image, ledit procédé étant caractérisé en ce que, on détermine l'ordre de transmission des images du serveur vers le décodeur en fonction de la dépendance de ces images et du mode d'affichage demandé par le décodeur. 2. Procédé selon la revendication 2 caractérisé en ce qu'on transmet au serveur (202) le mode d'affichage utilisé par le décodeur (206, 208) pour que le serveur (202) effectue la transmission des images en fonction du mode d'affichage utilisé par le décodeur (206, 208). 3. Procédé selon la revendication 3 caractérisé en ce que, lorsque le serveur (202) transmet des images codées (Mi', M"i) au décodeur (206, 208) , le serveur transmet parallèlement une commande (Ci', C"i) associée à chaque image comprenant des informations permettant au décodeur de traiter chaque image. 4. Procédé selon la revendication 3 caractérisé en ce que les informations comportent - un champ (Display) indiquant si ladite image doit être affichée, - un champ (Decode) indiquant si ladite image doit être décodée, - un champ (BuffNr) indiquant dans quel tampon mémoire du décodeur (206) ladite image (M'i) doit être enregistrée après le décodage, - un champ (PBuffNr, I_BuffNr) indiquant les numéros des tampons mémoires contenant des images servant au décodage de ladite image, - un champ (Forward) indiquant le sens d'affichage des images. 5. Procédé selon la revendication 4 caractérisé en ce que, lorsque le terminal reçoit des images codées (Mi') et une commande (Ci') associée à chaque image, on transmet la commande (Ci') à une première mémoire tampon (212) tandis que les images codées sont transmises à d'autres mémoires tampons (214b) 6. Procédé selon l'une des revendications 3 à 5 caractérisé en ce qu'on traite les commandes stockées dans la première mémoire tampon (212) en fonction de leur ordre de stockage dans ladite mémoire tampon. 7. Procédé selon l'une des revendications 1 à 6 caractérisé en ce qu'on utilise des modes d'affichages définis par un sens d'affichage, c'est-à-dire l'ordre dans lequel des images sont affichées, ainsi que par une vitesse d'affichage telle qu'un nombre variable d'images est affiché pour un même groupe d'images traité. 8. Procédé selon l'une des revendications 5 à 7 caractérisé en ce que lorsque le décodeur change de mode d'affichage, on réduit la taille du premier tampon mémoire (212). 9. Procédé selon l'une des revendications 5 à 8 caractérisé en ce que lorsque le décodeur change de mode d'affichage, on vide le premier tampon mémoire (212). 2 5 10. Dispositif de traitement d'images numériques, comportant des moyens de transmettre ces images d'un serveur (202) vers un décodeur (206, 208) utilisant divers modes d'affichage, les images (M'i, M"i) étant codées de façon dépendante telle que le codage d'une première image est utilisé pour coder une deuxième image, ledit dispositif étant caractérisé en ce qu'il comporte des moyens de déterminer l'ordre de transmission des images du serveur (202) vers le décodeur (206, 208) en fonction de la dépendance de ces images et du mode d'affichage demandé par le décodeur (206, 208), ledit dispositif étant de préférence adapté à mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 9. 11. Produit programme d'ordinateur comprenant des instructions de codes de programme pour l'exécution des étapes du procédé de traitement d'images numériques selon l'une des revendications 1 à 9, lorsque ledit programme est exécuté sur un ordinateur.