FR2932637A1 - Procede et dispositif de codage d'une sequence d'images - Google Patents

Procede et dispositif de codage d'une sequence d'images Download PDF

Info

Publication number
FR2932637A1
FR2932637A1 FR0854000A FR0854000A FR2932637A1 FR 2932637 A1 FR2932637 A1 FR 2932637A1 FR 0854000 A FR0854000 A FR 0854000A FR 0854000 A FR0854000 A FR 0854000A FR 2932637 A1 FR2932637 A1 FR 2932637A1
Authority
FR
France
Prior art keywords
layer
coding
images
coded
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0854000A
Other languages
English (en)
Other versions
FR2932637B1 (fr
Inventor
Leannec Fabrice Le
Patrice Onno
Xavier Henocq
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0854000A priority Critical patent/FR2932637B1/fr
Priority to US12/484,734 priority patent/US20090310674A1/en
Publication of FR2932637A1 publication Critical patent/FR2932637A1/fr
Application granted granted Critical
Publication of FR2932637B1 publication Critical patent/FR2932637B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Le procédé de codage d'une séquence d'images comportant au moins un groupe d'une pluralité d'images originales, en plusieurs couches d'adaptabilité, comporte, pour coder ledit groupe d'images originale, une étape (400) de codage d'au moins une couche de base en fonction du groupe d'images originales à coder pour constituer un flux de données intermédiaire, une étape de stockage du flux intermédiaire dans un espace de stockage d'une mémoire de masse et, de manière itérative, pour chaque autre couche d'adaptabilité à coder : - une étape (410, 415) d'obtention de données de prédiction de la couche à coder dans ledit flux de données intermédiaire, - une étape (420) de codage de la couche à coder en mettant en oeuvre lesdites données de prédiction et le groupe d'images originales et - une étape (420) d'ajout, dans l'espace de stockage, de la couche codée au flux intermédiaire.

Description

La présente invention concerne un procédé et un dispositif de codage d'une séquence d'images. Elle s'applique, notamment au codage vidéo et, plus particulièrement au codage conforme au standard de compression vidéo SVC (acronyme de Scalable Video Coding pour codage vidéo adaptable). Le standard de compression vidéo SVC introduit des fonctionnalités d'adaptabilité aussi appelée scalabilité au-dessus du standard H264/AVC (acronyme de Advanced Video Coding pour codage vidéo avancé). Une séquence vidéo peut être codée en introduisant différents niveaux spatiaux, temporels et de qualité dans le même train ou flux binaire (en anglais bitstream ).
Le logiciel de référence SVC, appelé JSVM (acronyme de Joint Scalable Video Model pour modèle vidéo adaptable joint) comprend notamment un codeur SVC. Ce codeur est spécifié de telle manière qu'une quantité importante de mémoire soit allouée au codage d'un flux SVC avec plusieurs couches de scalabilité. La consommation de mémoire du codeur JSVM est telle qu'il est impossible de coder un flux SVC avec au moins deux couches de résolution spatiale 4CIF (de résolution 704 x 576) et des groupes d'images longs de 32 images sur un ordinateur personnel courant disposant de deux giga-octets de mémoire vive. Cette consommation de mémoire élevée est due aux nombreuses mémoires tampons ( buffers ) d'images allouées par le codeur avant de commencer à coder des images. En effet, le codeur de référence a été conçu de façon à coder conjointement toutes les couches de scalabilité du flux. Pour ce faire, un objet appelé LayerEncoder est instancié pour chaque couche de scalabilité spatiale et chaque couche de qualité. Chaque objet de type LayerEncoder est dédié au codage d'une couche de scalabilté et travaille sur une base de groupe d'images. En pratique, cela mène, pour chaque couche, à l'allocation d'au moins 407 buffers d'images dont la taille correspond à la résolution spatiale de la couche considérée. Pour une couche de résolution 4CIF, cela implique une allocation de 660 Méga-octets par couche. Par conséquent, lorsqu'on essaie de coder deux couches de résolution 4CIF dans le même flux SVC, plus de 1,3 giga-octets sont alloués au commencement du programme de compression vidéo, ce qui bloque le processus de codage. Ce problème de consommation de mémoire excessive est inhérent au JSVM, mais existe de façon plus générale pour tout codeur vidéo SVC qui tenterait de coder simultanément toutes les couches de scalabilité d'un flux SVC, en travaillant sur des groupes d'images.
On connait le document US 2007/0230914 qui propose une méthode pour coder un flux vidéo scalable comprenant une couche de base compatible MPEG-2 et une couche de raffinement au-dessus de la couche de base. Le codage de la couche de raffinement inclut une étape de classification des blocs de la couche de base en fonction de leur texture.
On connait aussi le document US 2001/0024470, qui divulgue une méthode de codage d'un flux vidéo scalable comprenant une couche de base (codée avec des techniques de prédiction temporelle) et une couche de raffinement à granularité fine. Dans chacun de ces documents, la prédiction inter-couche est effectuée via un décodage et une reconstruction complète de la couche de base puis un sur-échantillonnage spatial (pour la scalabilité spatiale) appliqués sur les images de la couche de base. Ces méthodes impliquent donc des images complètement décodées et reconstruites et donc une consommation de mémoire conséquente.
La présente invention vise à remédier à ces inconvénients. A cet effet, la présente invention vise, selon un premier aspect, un procédé de codage d'une séquence d'images comportant au moins un groupe d'une pluralité d'images originales, en plusieurs couches d'adaptabilité, caractérisé en ce qu'il comporte, pour coder ledit groupe d'images originales, une étape de codage d'au moins une couche de base en fonction du groupe d'images originales à coder pour constituer un flux de données intermédiaire, une étape de stockage du flux intermédiaire dans un espace de stockage d'une mémoire de masse et, de manière itérative, pour chaque autre couche d'adaptabilité à coder : - une étape d'obtention de données de prédiction de la couche à coder, issues d'au moins une couche déjà codée, - une étape de codage de la couche à coder en mettant en oeuvre lesdites données de prédiction et le groupe d'images originales et - une étape d'ajout, dans l'espace de stockage, de la couche codée au flux intermédiaire. Ainsi, le flux intermédiaire est enrichi d'une couche d'adaptabilité à chaque itération de l'étape élémentaire de codage d'une couche d'adaptabilité. Cette étape élémentaire de codage d'une couche d'adaptabilité est ainsi successivement invoquée jusqu'à ce que le flux intermédiaire contienne l'ensemble des couches d'adaptabilité à coder et devienne le flux de données final.
Par exemple, dans le cas de l'utilisation de l'objet LayerEncoder , puisqu'une seule couche d'adaptabilité est codée à la fois et que le résultat intermédiaire est stocké dans une mémoire de masse, un seul objet de type LayerEncoder est instancié à la fois. La modification d'architecture du codeur JSVM ainsi proposée réduit donc la consommation de mémoire vive nécessaire pour l'exécution du codage par rapport aux codeurs de l'art antérieur. La présente invention fournit ainsi une nouvelle architecture de codeur traitant une séquence d'images, couche par couche, en sauvegardant, entre les codages successifs de deux couches, un flux de données intermédiaire, jusqu'à ce que toutes les couches d'adaptabilité soient codées.
Dans le cas de l'utilisation de l'objet LayerEncoder , les avantages de la présente invention comportent que : - la consommation mémoire est limitée en comparaison avec le codeur JSVM et - on peut coder un flux SVC avec plusieurs couches de scalabilité de résolution spatiale supérieure ou égale à 704 x 576, avec une taille de GOP (Group Of Pictures, pour groupe d'images) supérieure ou égale à 32 images en utilisant moins de deux giga-octets de mémoire vive.
Selon des caractéristiques particulières, l'étape d'obtention de données de prédiction comporte une étape de sélection d'une couche codée déjà représentée par le flux intermédiaire, les données de prédiction étant obtenues depuis ladite couche sélectionnée. Ainsi, la couche sélectionnée constitue une couche de référence pour la couche à coder. Selon des caractéristiques particulières, l'étape d'obtention de données de prédiction comporte une étape de décodage partiel du flux de données intermédiaire sans compensation en mouvement. Les données de prédiction fournies par ce décodage partiel consistent, par exemple, en des macroblocs INTRA reconstruits, des modes de codage de macroblocs, des partitions de macroblocs, des vecteurs de mouvements, des résidus temporels, ainsi que des indices d'images de référence pour la prédiction temporelle. Selon des caractéristiques particulières, le procédé objet de la présente invention, tel que succinctement exposé ci-dessus comporte, en outre, pour au moins une couche d'adaptabilité, une étape de stockage dans l'espace de stockage d'une mémoire de masse de données de prédiction non codées et, pour au moins une autre couche d'adaptabilité, au cours de l'étape d'obtention de données de prédiction, on lit lesdites données de prédiction. Ainsi, on évite de décoder les données de prédiction et on augmente donc la rapidité de codage de la séquence d'images. Selon les caractéristiques des deux derniers paragraphes ci-dessus, les données de prédictions sont stockées dans l'espace de stockage d'une mémoire de masse. L'avantage en est que lors du codage de la couche d'adaptabilité en fonction des données de prédiction, seules les données de prédiction concernant l'image en cours de codage sont lues depuis l'espace de stockage de la mémoire de masses. La consommation de mémoire vive liée à l'allocation de ces données de prédiction est donc limitée. Selon des caractéristiques particulières, au cours de l'étape de codage de la couche d'adaptabilité en fonction des données de prédiction obtenues et du groupe d'images originales, on réalise une boucle de prédiction temporelle compensée en mouvement sur chaque groupe d'images originales à coder, puis on code des vecteurs de mouvement estimés et des résidus temporels et spatiaux. Selon des caractéristiques particulières, au cours de l'étape de codage de la couche d'adaptabilité en fonction des données de prédiction obtenues et du groupe d'images originales, on code les vecteurs de mouvement estimés et les résidus temporels et spatiaux comme des données de raffinement, en utilisant une prédiction inter-couches basée sur les données de prédiction obtenues au cours de l'étape d'obtention. Selon des caractéristiques particulières, le procédé objet de la présente invention réalise le codage de la même couche d'adaptabilité pour chaque groupe d'images de la séquence d'images avant le codage d'une autre couche d'adaptabilité. Selon un deuxième aspect, la présente invention vise un dispositif de codage d'une séquence d'images comportant au moins un groupe d'une pluralité d'images originales, en plusieurs couches d'adaptabilité, caractérisé en ce qu'il comporte un moyen de codage d'au moins une couche de base en fonction d'un groupe d'images originales à coder adapté à constituer un flux de données intermédiaire, un moyen de stockage du flux intermédiaire dans un espace de stockage d'une mémoire de masse et des moyens de traitement adaptés, de manière itérative, pour chaque autre couche d'adaptabilité à coder et pour ledit groupe d'images originales : - à obtenir des données de prédiction de la couche à coder, issues d'au moins une couche déjà codée, - à coder la couche à coder en mettant en oeuvre lesdites données 25 de prédiction et ledit groupe d'images originales et - à ajouter, dans l'espace de stockage, la couche codée au flux intermédiaire. Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme 30 contenant des instructions permettant la mise en oeuvre d'un procédé objet de la présente invention tel que succinctement exposé ci-dessus.
Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre d'un procédé objet de la présente invention tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques particulières de ce dispositif, de ce programme et de ce support d'information étant similaires à ceux du procédé objet de la présente invention, tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici.
D'autres avantages, buts et caractéristiques particulières de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif, en regard des dessins annexes, dans lesquels : - la figure 1 représente, schématiquement, un mode de réalisation particulier du dispositif objet de la présente invention, - la figure 2 représente, sous forme d'un schéma fonctionnel, un codeur vidéo SVC connu dans l'art antérieur, - les figures 3a et 3b illustrent des séquences d'images SVC et des relations entre leurs images, - la figure 4 illustre, sous forme d'un logigramme, des étapes mises 20 en oeuvre dans un mode de réalisation particulier du procédé de codage objet de la présente invention et - les figures 5 et 6 illustrent, sous forme de logigrammes, des étapes mises en oeuvre dans des étapes illustrées en figure 4. Dans toute la description, on utilise indifféremment les termes 25 adaptabilité et scalabilité et les termes train binaire ou flux de données . On observe, en figure 1, que, dans un mode de réalisation particulier, le dispositif objet de la présente invention, prend la forme d'un micro-ordinateur 100 muni d'un logiciel implémentant le procédé objet de la présente invention et 30 de différents périphériques. Le dispositif est constitué ici d'un serveur adapté à transmettre des images codées à des clients (non représentés).
Le micro-ordinateur 100 est connecté à différents périphériques, par exemple un moyen d'acquisition ou de stockage d'images 107, par exemple une caméra numérique ou un scanner, relié à une carte graphique (non représentée) et fournissant des informations d'image à coder et à transmettre.
Le micro-ordinateur 100 comporte une interface de communication 118 reliée à un réseau 134 apte à recevoir des données numériques à coder et à transmettre des données codées par le micro-ordinateur. Le micro-ordinateur 100 comporte également un moyen de stockage de type mémoire de masse 112 tel que, par exemple, un disque dur. Le micro-ordinateur 100 comporte aussi un lecteur de mémoire externe 114. Une mémoire de masse externe, ou clé comportant une mémoire (par exemple une clé dite USB par référence à son port de communication) 116, comme le moyen de stockage de masse 112, peuvent contenir des données à traiter. La mémoire externe 116 peut aussi contenir des instructions d'un logiciel implémentant le procédé objet de la présente invention, instructions qui, une fois lues par le micro-ordinateur 100, sont stocké dans le moyen de stockage de masse 112. Selon une variante, le programme permettant au dispositif de mettre en oeuvre la présente invention est stocké en mémoire morte 104 (appelée ROM , acronyme de read only memory, en figure 1), qui est également une mémoire de masse. En seconde variante, le programme est reçu par l'intermédiaire du réseau de communication 134 et est stocké dans le moyen de stockage 112. Le micro-ordinateur 100 est relié à un micro 124 par l'intermédiaire de la carte d'entrée/sortie 122. Le micro-ordinateur 100 possède un écran 108 permettant de visualiser les données à coder ou de servir d'interface avec l'utilisateur, à l'aide d'un clavier 110 ou de tout autre moyen (souris par exemple). Bien entendu, la mémoire de masse externe 116 peut être remplacée par tout support d'information tel que CD-ROM (acronyme de compact disc û read only memory pour mémoire en lecture seule en disque compact) ou une carte mémoire. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé objet de la présente invention.
Une unité centrale 120 (appelée CPU , acronyme de central processing unit, en figure 1) exécute les instructions du logiciel implémentant le procédé objet de la présente invention. Lors de la mise sous tension, les programmes permettant l'implémentation du procédé objet de la présente invention stockés dans une mémoire non volatile, par exemple la ROM 104, sont transférés dans la mémoire vive RAM 106 qui contient alors les instructions de ce logiciel ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. Un bus de communication 102 permet la communication entre les différents éléments du micro-ordinateur 100 ou reliés à lui. La représentation du bus 102 n'est pas limitative. Notamment, l'unité centrale 120 est susceptible de communiquer des instructions à tout élément du dispositif directement ou par l'intermédiaire d'un autre élément du dispositif. La figure 2 fournit un schéma bloc d'un codeur vidéo SVC générant trois couches de scalabilité. Ce schéma est organisé en trois étages 205, 240 et 275, respectivement dédiés au codage de chacune des couches de scalabilité générées. Chaque étage prend, en entrée, la séquence originale à coder, éventuellement sous-échantillonnée à la résolution spatiale de la couche de scalabilité codée par l'étage considéré, comme c'est le cas du premier étage 205 codant la couche de base. Au sein de chaque étage est mise en oeuvre une boucle de prédiction temporelle compensée en mouvement. Le premier étage 205 correspond au schéma de prédiction temporelle et spatiale d'un codeur vidéo non scalable H.264/AVC et est connu de l'homme du métier. Il réalise successivement les étapes suivantes pour coder la couche de base compatible H.264/AVC. Une image courante à coder, reçue en entrée du codeur, est découpée en macroblocs de taille 16 x 16 pixels par le module 207. Chaque macrobloc subit d'abord une étape d'estimation de mouvement, par le module 209 qui tente de trouver parmi des images de références stockées dans une mémoire tampon, des blocs de référence permettant de prédire au mieux le macrobloc courant. Cette étape d'estimation de mouvement fournit un ou deux indices d'images de référence contenant les blocs de référence trouvés, ainsi que les vecteurs de mouvement correspondants. Un module de compensation en mouvement 211 applique les vecteurs de mouvement estimés sur les blocs de référence trouvés et copie les blocs ainsi obtenus dans une image de prédiction temporelle. Par ailleurs, un module de prédiction infra 213 détermine le mode de prédiction spatiale du macrobloc courant qui fournirait les meilleures performances pour le codage du macrobloc courant en INTRA. Ensuite, un module 215 de choix de mode détermine le mode de codage, parmi les prédictions temporelle et spatiale, qui fournit le meilleur compromis débit distorsion dans le codage du macrobloc courant. La différence entre le macrobloc courant et le macrobloc de prédiction ainsi sélectionné est calculée par le module 217, fournissant un résidu (temporel ou spatial) à coder. Ce macrobloc résiduel subit alors des modules de transformation (DCT, acronyme de Discrete Cosine Transform pour transformation en cosinus discrète) et de quantification 219. Un module de codage entropique des échantillons ainsi quantifiés est alors mis en oeuvre et fournit les données de texture codées du macrobloc courant. Enfin, le macrobloc courant est reconstruit via un module 221 de quantification inverse, une transformation inverse, et une addition 222 du résidu après transformation inverse et du macrobloc de prédiction du macrobloc courant. Une fois l'image courante ainsi reconstruite, celle-ci est stockée dans le une mémoire tampon 223 pour servir, par l'intermédiaire d'un module adapté à enlever les effets de blocs ( deblocking ) 225, de référence à la prédiction temporelle de prochaines images à coder. Le deuxième étage 240 de la figure 2 illustre le codage de la première couche de raffinement du flux SVC. Cette couche apporte un raffinement en résolution spatiale par rapport à la couche de base. Le schéma de codage de cette couche est également connu de l'homme du métier. Comme l'indique la figure 2, il est analogue au schéma de codage de la couche de base 205, à ceci près que, pour chaque macrobloc d'une image courante en cours de codage, un mode de prédiction additionnel par rapport au codage de la couche de base peut être choisi par le module fonctionnel 245 de sélection de mode de codage. Ce mode de prédiction est appelé prédiction inter couche ( inter-layer prediction en anglais). Il consiste à réutiliser les données codées dans une couche inférieure à la couche de raffinement en cours de codage comme données de prédiction du macrobloc courant. Cette couche inférieure est appelée la couche de référence pour la prédiction inter couche de la couche de raffinement. Dans le cas où la couche de référence contient une image qui coïncide temporellement avec l'image courante, alors appelée image de base de l'image courante, le macrobloc co-localisé (ayant la même position spatiale) du macrobloc courant qui a été codé dans la couche de base peut servir de référence pour prédire le macrobloc courant. Plus précisément, il peut servir pour prédire le mode de codage, la partition de macrobloc, les données de mouvement (si présentes) ainsi que les données de texture (résidu dans le cas d'un macrobloc prédit temporellement, texture reconstruite dans le cas d'un macrobloc codé en INTRA). Dans le cas d'une couche de raffinement spatial, des opérations de sur-échantillonnage des données de texture et de mouvement de la couche de référence sont effectuées. En dehors de cette technique de prédiction inter couche utilisée dans l'extension SVC du standard H.264/AVC, le codage d'une couche de scalabilité SVC met en oeuvre une boucle de prédiction temporelle compensée en mouvement, similaire à celle utilisée pour le codage de la couche de base compatible H.264/AVC.
Enfin, comme l'indique la figure 2, le codage d'une troisième couche (deuxième couche de raffinement) met en oeuvre un schéma fonctionnel 275 de codage identique à celui de la première couche de raffinement. On comprend, en regard de la figure 2 que, pour coder un flux SVC avec plusieurs couches de scalabilité, on met en cascade plusieurs processus de codage correspondant à l'étage 240 de la figure 2 et on les fait fonctionner simultanément. Concernant l'architecture du codeur SVC de référence appelé JSVM (Joint Scalable Video Model), un objet appelé LayerEncoder est dédié au codage d'une couche de scalabilité, et réalise précisément les opérations décrites ci-dessus et correspondant à un étage de la figure 2.
Lorsque plusieurs couches de scalabilité sont désirées, plusieurs objets de type LayerEncoder sont instanciés (un par couche à coder) dans le JSVM et chacun réalise le codage de la couche de scalabilité qui le concerne. Toutes les couches de scalabilité sont donc codées en même temps dans le codeur JSVM. Il s'ensuit une forte consommation mémoire du codeur JSVM, qui provient précisément de l'allocation des multiples objets de type LayerEncoder qui est effectuée lorsque plusieurs couches doivent être codées. En effet, chacun des ces objets LayerEncoder doit, entre autres, allouer des buffers d'images de référence utiles à la prédiction temporelle dans chacune des couches. La figure 3a illustre la structuration en groupes d'image (appelés GOPs, pour Group Of Pictures ) 305 et 310 effectuée dans la séquence vidéo à coder, au sein de chaque couche de scalabilité. Un groupe d'image correspond aux images d'un intervalle de temps dans une séquence d'images. Un groupe d'images est délimité par deux images d'ancrage de type I ou P. Ces images ont la particularité de posséder un indice de niveau temporel égal à 0.
A l'intérieur d'un GOP se trouvent des images B hiérarchiques 315. Les images B hiérarchiques constituent un moyen de fournir la fonctionnalité de scalabilité temporelle de SVC. Elles sont notées Bi, où i > 1 représente le niveau temporel de l'image Bi, et suivent la règle suivante: une image de type Bi peut être prédite temporellement à partir des images d'ancrage I ou P l'entourant, ainsi que des images Bj, j < i, localisées dans le même intervalle d'images d'ancrage I ou P. Les images BI ne peuvent être prédites qu'à partir des images d'ancrage l'entourant. La figure 3b illustre un exemple d'organisation multicouche possible avec SVC. Deux couches de scalabilité sont illustrées: la couche de base 355 compatible H.264/AVC et une couche raffinement spatial 360. En figure 3b, les images se succèdent, de gauche à droite et les images alignées verticalement correspondant à la même image originale du groupe d'images à coder. La figure 3b indique les dépendances en termes de prédiction temporelle existant entre images d'un GOP dans une couche de scalabilité donnée. La figure 3b illustre également, par des flèches verticales ascendantes, les dépendances liant les images de différentes couches de scalabilité dues à la prédiction inter-couches. Au sein de chaque couche sont illustrés deux groupes d'images, à l'intérieur desquels se trouvent des images B hiérarchiques. Comme l'indique la figure 3b, la prédiction inter-couches, mise en oeuvre lors du codage d'une couche de raffinement spatial, consiste à prédire des données de la couche de raffinement spatial depuis des images coïncidant temporellement dans la couche de base. Pour ce faire, dans l'architecture d'un codeur SVC, où toutes les couches de scalabilité sont codées en même temps, il est nécessaire de maintenir en mémoire les données d'images relatives à des GOPs entiers, et ceci dans chaque couche de scalabilité.
Ceci est notamment le cas dans le JSVM, codeur de référence du standard SVC. En effet, étant donné l'ordre de codage des images imposé par l'organisation des groupes d'images dans chaque couche SVC, chaque objet de type LayerEncoder maintient en mémoire plusieurs ensembles (ou tableaux) d'images. La longueur de ces ensembles correspond à la longueur des groupes d'images utilisés dans le codage des couches de scalabilité. Ces différents ensembles stockent notamment les images suivantes: - les images originales à coder. Elles sont lues dans la séquence originale et chargées en mémoire par chaque objet de type LayerEncoder , par groupe d'images, - les images reconstruites après codage puis décodage sans filtre de réduction des effets de bloc des images du GOP courant, utiles pour la prédiction de couches supérieures, - les images de résidus temporels spatiaux décodés après codage/décodage des textures résiduelles des images du GOP courant, - les images reconstruites dans la couche maximale, lorsque l'estimation de mouvement se fait par rapport aux images reconstruites de la couche de scalabilité la plus haute et - les images reconstruites après filtre de réduction des effets de bloc dans les niveaux de qualité différents du niveau maximal lorsque la prédiction entre niveaux spatiaux s'opère en référence à des niveaux de qualité intermédiaires du niveau spatial inférieur.
En plus des tableaux de buffers d'images listés ci-dessus, d'autres buffers d'images sont également alloués par chaque objet LayerEncoder . Par conséquent, dans les couches SVC où la taille des images est significative (par exemple supérieure ou égale au format 4CIF), la quantité de mémoire allouée par chaque objet LayerEncoder est très importante (plus de 660 Méga-octets par couche pour des groupes d'images au format 4CIF de longueur 32). Il devient alors impossible de coder un flux SVC avec au moins deux couches de scalabilité de résolution spatiale supérieure ou égale à 4CIF et avec des longueurs de GOPs de 32 images, sur un ordinateur personnel muni de deux giga-octets de mémoire vive. La figure 4 présente des étapes de codage d'une séquence d'images originales en mettant en oeuvre le procédé de codage d'un groupe d'images objet de la présente invention. Ces étapes correspondent à une architecture de codeur SVC codant une séquence d'images, une couche après l'autre. Plus précisément, une couche de scalabilité donnée est codée sur la durée complète de la séquence d'images, avant de commencer à coder la prochaine couche de scalabilité. Tout d'abord, la couche de base du flux SVC à générer est codée, au cours d'une étape 400. Cette première étape prend en entrée la séquence d'images originales ré-échantillonnées à la résolution spatiale de la couche de base voulue notée Orig[O] . Ceci fournit un premier flux vidéo compatible H.264/AVC, qui est sauvegardé dans un fichier temporaire stocké dans un espace de stockage d'une mémoire de masse, au cours d'une étape 405. En variante, au cours de l'étape 400, on code plusieurs couches de base. Par exemple, on met en oeuvre un codage connu dans l'art antérieur jusqu'à avoir utilisé une proportion prédéterminée de la mémoire vive. On note que cette variante peut avoir comme conséquence que la mise en oeuvre du procédé objet de la présente invention ne soit déclenchée, après une phase de codage de type connu, qu'en cas de dépassement d'un certain seuil d'occupation de la mémoire vive disponible pour l'application de codage.
Selon des sous-variantes, au cours de l'étape 405, on sauvegarde, dans l'espace de stockage de la mémoire de masse, une ou plusieurs des couches de base codées au cours de la variante de l'étape 400. Ainsi, au moins une couche de base constitue le flux intermédiaire mis en oeuvre dans les étapes suivantes. Puis, au cours d'une étape 410, on sélectionne une couche de scalabilité dans le flux temporaire codé, pour fournir une couche de référence pour prédire la prochaine couche de scalabilité à coder. Au cours d'une étape 415, on obtient les données de prédiction utiles pour coder de façon prédictive une couche de raffinement (spatial ou en qualité) au-dessus de la couche de base codée au cours de l'étape 400. Selon le mode de mise en oeuvre détaillé ici, cette étape 415 met en oeuvre un décodage partiel du train binaire temporaire précédemment formé. Ce décodage partiel réalise le décodage SVC en omettant l'étape de compensation en mouvement.
En effet, le décodage standard d'un flux SVC comprend notamment une étape de prédiction temporelle compensée en mouvement, effectuée dans la couche de scalabilité la plus haute contenue dans le flux, de façon à réaliser les opérations réciproques du processus de codage illustré en figure 2. Cependant, dans le décodage SVC, pour effectuer la prédiction inter couche, un décodage seulement partiel des couches intermédiaires, sans compensation de mouvement, est effectué dans les couches autres que la couche décodée la plus haute. Ce décodage partiel fournit notamment les modes de codages des macroblocs, les macroblocs INTRA reconstruits, les données de mouvements, les résidus temporels. Ces données correspondent précisément aux éléments qui sont prédits dans le cadre de la prédiction entre couches de scalabilité SVC. L'étape 415 effectue donc ce décodage partiel du bitstream SVC sans faire la compensation en mouvement traditionnellement appliquée à la couche supérieure, et sauvegarde les données de prédiction citées ci-dessus, dans un fichier dédié. Dans un mode de mise en oeuvre alternatif, les données de prédiction sont stockées dans un espace mémoire de la mémoire vive RAM 106. Ces données de prédiction incluent notamment les paramètres suivants : - les modes de macroblocs (modes de codage et partitions de macroblocs), - les paramètres de mouvement (vecteurs de mouvement, indices d'images de référence), - les macroblocs INTRA reconstruits et - les résidus temporels décodés. L'algorithme de l'étape 415 de la figure 4 est détaillé par la figure 5. On note qu'en variante, on ne fait pas de décodage partiel du flux SVC temporaire pour obtenir les données de prédiction, mais on sauvegarde ces données dans un fichier au moment où elles sont déterminées au cours de l'étape de codage du flux temporaire qui précède. Le résultat de l'étape 415 est donc un fichier contenant les données de prédiction indiquées ci-dessus. Au cours d'une étape 420, on code une couche de scalabilité SVC au-dessus des couches déjà présentes dans le train binaire SVC temporaire en cours de construction, et on ajoute la nouvelle couche aux couches déjà codées dans le fichier temporaire stocké dans un espace de stockage d'une mémoire de masse. L'algorithme précis correspondant à cette étape 420 est exposé en regard de la figure 6. Le résultat de cette quatrième étape consiste en un nouveau train binaire SVC temporaire contenant une couche de scalabilité supplémentaire par rapport au flux temporaire précédent. On a donc enrichi, au cours de l'étape 420, le flux SVC en cours de construction sauvegardé dans un fichier temporaire stocké dans un espace de stockage d'une mémoire de masse d'une couche additionnelle. Au cours d'une étape 425, on détermine s'il reste au moins une couche à coder. Si oui, on réitère les étapes 410 à 425. Sinon, le flux SVC enrichi obtenu contient toutes les couches initialement demandées. L'algorithme de la figure 4 prend alors fin. Dans une variante (non représentée), pour au moins une couche d'adaptabilité, on réalise, parallèlement aux étapes 400 et 405, une étape de sauvegarde de données de prédiction non codées provenant de la couche en cours de codage et, pour au moins une autre couche d'adaptabilité, à la place de l'étape 415, on obtient les données de prédiction en lisant lesdites données de prédiction sauvegardées pour la couche sélectionnée au cours de l'étape 410. Ainsi, on évite de décoder les données de prédiction et on augmente donc la rapidité de codage de la séquence d'images. La figure 5 explicite l'étape de décodage partiel 415 de la figure 4.
L'algorithme de la figure 5 prend, en entrée, le train binaire SVC intermédiaire en cours de construction progressive par l'algorithme de la figure 4 ainsi que la couche de référence sélectionnée pour effectuer la prédiction inter-couches de la prochaine couche de scalabilité à coder. L'algorithme effectue un parcours de toutes les NAL units contenues dans le flux SVC temporaire. Une NAL unit constitue l'unité élémentaire d'un train binaire H.264/AVC ou SVC, et est constituée d'un en-tête et d'un corps. L'en-tête contient des paramètres relatifs aux données contenues dans le corps. Il indique notamment le type de données contenues dans le corps (données d'image codée, paramètres de codage de la séquence ou d'une ou plusieurs images, ...), et identifie la couche de scalabilité SVC à laquelle contribue la NAL unit. Cette couche de scalabilité est identifiée via le niveau spatial (appelé également dependency id ) et le niveau de qualité (appelé également quality level ) respectivement codés dans des champs notés dependency_id et quality_id de l'en-tête de NAL unit.
Après s'être positionné sur la première NAL unit, comme NAL unit courante, au cours d'une étape 505, au cours d'une étape 510, le décodage de l'en-tête de la NAL unit courante fournit les valeurs des champs dependency_id et quality_id de la NAL unit. Au cours d'une étape 515, on détermine si la NAL unit appartient à une couche de scalabilité inférieure ou égale à la couche de référence sélectionnée. Si c'est le cas, au cours d'une étape 520, le corps de la NAL unit courante est décodé sans faire de compensation en mouvement. Cela fournit, dans le cas de NAL units contenant des données d'image codée, les modes des macroblocs codés contenus dans la NAL unit, les données de mouvement des macroblocs prédits temporellement, les résidus temporels décodés pour les macroblocs prédits temporellement, et la texture reconstruite des macroblocs INTRA.
Puis, au cours d'une étape 525, on détermine si la NAL unit courante appartient à la couche de scalabilité qui a été sélectionnée comme couche de référence pour la prédiction de la prochaine couche de scalabilité à coder. Si c'est le cas, au cours d'une étape 530, les données fournies par le décodage de la NAL unit courante sont sauvegardées dans le fichier de sortie de l'algorithme de la figure 5. Puis, au cours d'une étape 535, on détermine s'il reste des NAL units dans le flux SVC temporaire en cours de décodage partiel. Si oui, au cours d'une étape 540, on passe à la prochaine NAL unit contenue dans ce flux et on retourne à l'étape 510. Dans le cas où la fin du flux temporaire a été atteinte, l'algorithme de la figure 5 prend fin. Si le résultat de l'une des étapes 515 ou 525 est négatif, on passe à l'étape 535. En sortie des étapes illustrées en figure 5, est fourni un fichier contenant des données de prédiction utiles à coder, via les techniques de prédiction inter couche propres au standard SVC, la prochaine couche de scalabilité à ajouter au flux SVC temporaire en cours de construction. La figure 6 détaille l'étape 420 de codage d'une couche de raffinement SVC additionnelle et de son écriture dans un nouveau flux SVC temporaire enrichi. L'algorithme de la figure 6 prend, en entrée, les éléments suivants : - l'indice de la nouvelle couche de scalabilité à coder noté currLayer , - la séquence d'images originales à coder, notée Orig[currLayer], dans sa version échantillonnée à la résolution spatiale de la couche courante à coder currLayer, - le fichier issu de l'étape 415 de décodage partiel du flux SVC temporaire à augmenter, - le flux SVC temporaire que l'on souhaite augmenter de la nouvelle couche de scalabilité currLayer. L'algorithme de la figure 6 débute, au cours d'une étape 605, par l'instanciation de objet de type LayerEncoder adapté à coder la nouvelle couche de scalabilité, et noté LayerEncoder[currLayer] . Cet objet est donc similaire aux multiples objets de type LayerEncoder mentionnés précédemment en référence à la figure 2. La différence est qu'ici on n'instancie qu'un seul objet de ce type.
Puis, au cours d'une étape 610, on se positionne au début de la séquence d'images originales à coder Orig[currLayer]. On procède, au cours des étapes 615 à 655, au codage de la séquence d'images, GOP par GOP, en codant successivement les images contenues dans chaque GOP. Au cours d'une étape 615, on charge donc les images originale de Orig[currLayer] appartenant au GOP courant dans des buffers de l'objet LayerEncoder[currLayer] prévus à cet effet. On parcourt ensuite, au cours des étapes 620 à 645, les access unit appartenant au GOP courant par ordre de codage. Une access unit, ou unité d'accès d'un flux SVC, contient l'ensemble de toutes les données d'images correspondant à une même image décodée. Par exemple, en référence à la figure 3b, la première access unit du premier GOP illustré contient à la fois des données de la couche de base (première image de la couche de base) et des données de raffinement dans la couche de raffinement spatial (première image de la couche haute). En revanche, la deuxième access unit, par ordre d'affichage, ne contient que des données dans la couche de raffinement. En effet, comme la fréquence d'images de la couche de base est deux fois plus basse que celle de la couche haute, une image sur deux de la couche haute ne possède pas d'image temporellement coïncidente dans la couche de base.
L'ordre de codage utilisé consiste à coder d'abord les images de niveau temporel 0, puis à coder les images par ordre croissant de niveau temporel. Au sein d'un même niveau temporel, les images sont codées par leur ordre d'apparition dans la séquence originale. Pour chaque access unit du GOP courant à coder, au cours d'une étape 625, on lit, dans le fichier issu du décodage partiel, les données de prédiction utiles à prédire l'access unit courante dans la couche de scalabilité currLayer, comme exposé en regard de la figure 5. Ces données de prédiction sont chargées dans les buffers adaptés à cet effet dans l'objet LayerEncoder[currLayer]. On invoque au cours d'une étape 630, le processus de codage le l'image courante, c'est à dire la contribution de la couche de scalabilité en cours de codage currLayer à l'access unit courante notée currAU en figure 6. Ce codage fournit alors une NAL unit qui contient les données d'images qui viennent d'être codées. Cette NAL unit est alors inscrite dans le nouveau fichier intermédiaire SVC en cours de construction, au cours d'une étape 635. Pour ce faire, toutes les NAL units appartenant à l'access unit currAU et qui étaient déjà présentes dans le flux temporaire en entrée de l'algorithme sont d'abord copiées dans le flux SVC de sortie de l'algorithme. La NAL unit qui vient d'être codée est alors écrite à la suite de ces NAL units copiées dans le flux SVC temporaire en cours de formation. Au cours d'une étape 640, on détermine si on a traité la dernière access unit du GOP courant. Si oui, on passe à une étape 650. Sinon, au cours d'une étape 645, on passe à la prochaine access unit à coder du GOP courant et on retourne à l'étape 625. Au cours de l'étape 650, on détermine si le dernier GOP a été traité. Sinon, au cours d'une étape 655, on passe au GOP suivant et on retourne à 20 l'étape 615. Enfin, l'algorithme de la figure 6 prend fin lorsque tous les GOP de la séquence Orig[currLayer] ont été traités. L'algorithme de la figure 6 fournit en sortie un nouveau flux SVC enrichi par rapport au flux SVC temporaire fourni en entrée de cet algorithme, ce flux enrichi étant stocké dans un espace de 25 stockage d'une mémoire de masse.

Claims (10)

  1. REVENDICATIONS1. Procédé de codage d'une séquence d'images comportant au moins un groupe d'une pluralité d'images originales, en plusieurs couches d'adaptabilité, caractérisé en ce qu'il comporte, pour coder ledit groupe d'images originale, une étape (400) de codage d'au moins une couche de base en fonction du groupe d'images originales à coder pour constituer un flux de données intermédiaire, une étape de stockage du flux intermédiaire dans un espace de stockage d'une mémoire de masse et, de manière itérative, pour chaque autre couche d'adaptabilité à coder : - une étape (410, 415) d'obtention de données de prédiction de la couche à coder, issues d'au moins une couche déjà codée, - une étape (420) de codage de la couche à coder en mettant en oeuvre lesdites données de prédiction et le groupe d'images originales et - une étape (420) d'ajout, dans l'espace de stockage, de la couche codée au flux intermédiaire.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape d'obtention de données de prédiction comporte une étape de sélection d'une couche codée déjà représentée par le flux intermédiaire, les données de prédiction étant obtenues depuis ladite couche sélectionnée.
  3. 3. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que l'étape d'obtention de données de prédiction comporte une étape de décodage partiel du flux de données intermédiaire sans compensation en mouvement.
  4. 4. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce qu'il comporte en outre, pour au moins une couche d'adaptabilité, une étape de stockage dans un espace de stockage d'une mémoire de masse des données de prédiction non codées et, pour au moins une autre couche d'adaptabilité, au cours de l'étape d'obtention de données de prédiction, on lit lesdites données de prédiction.
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, au cours de l'étape de codage de la couche d'adaptabilité en fonction des données de prédiction obtenues et du groupe d'images originales, on réalise une boucle de prédiction temporelle compensée en mouvement sur le groupe d'images originales à coder, puis on code des vecteurs de mouvement estimés et des résidus temporels et spatiaux.
  6. 6. Procédé selon la revendication 5, caractérisé en ce que, au cours de l'étape de codage de la couche d'adaptabilité en fonction des données de prédiction obtenues et du groupe d'images originales, on code les vecteurs de mouvement estimés et les résidus temporels et spatiaux comme des données de raffinement, en utilisant une prédiction inter-couches basée sur les données de prédiction obtenues au cours de l'étape d'obtention.
  7. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il réalise le codage de la même couche d'adaptabilité pour chaque groupe d'images de la séquence d'image avant le codage d'une autre couche d'adaptabilité.
  8. 8. Dispositif de codage d'une séquence d'images comportant au moins un groupe d'une pluralité d'images originales, en plusieurs couches d'adaptabilité, caractérisé en ce qu'il comporte un moyen de codage d'au moins une couche de base en fonction d'un groupe d'images originales à coder adapté à constituer un flux de données intermédiaire, un moyen de stockage du flux intermédiaire dans un espace de stockage d'une mémoire de masse et des moyens de traitement adaptés, de manière itérative, pour chaque autre couche d'adaptabilité à coder et pour ledit groupe d'images originales : - à obtenir des données de prédiction de la couche à coder, issues d'au moins une couche déjà codée, - à coder la couche à coder en mettant en oeuvre lesdites données de prédiction et ledit groupe d'images originales et - à ajouter, dans l'espace de stockage, la couche codée au flux 30 intermédiaire.
  9. 9. Programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 7.
  10. 10. Support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 7.
FR0854000A 2008-06-17 2008-06-17 Procede et dispositif de codage d'une sequence d'images Expired - Fee Related FR2932637B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0854000A FR2932637B1 (fr) 2008-06-17 2008-06-17 Procede et dispositif de codage d'une sequence d'images
US12/484,734 US20090310674A1 (en) 2008-06-17 2009-06-15 Method and device for coding a sequence of images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0854000A FR2932637B1 (fr) 2008-06-17 2008-06-17 Procede et dispositif de codage d'une sequence d'images

Publications (2)

Publication Number Publication Date
FR2932637A1 true FR2932637A1 (fr) 2009-12-18
FR2932637B1 FR2932637B1 (fr) 2010-08-20

Family

ID=40457018

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0854000A Expired - Fee Related FR2932637B1 (fr) 2008-06-17 2008-06-17 Procede et dispositif de codage d'une sequence d'images

Country Status (2)

Country Link
US (1) US20090310674A1 (fr)
FR (1) FR2932637B1 (fr)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2939593B1 (fr) * 2008-12-09 2010-12-31 Canon Kk Procede et dispositif de codage video
EP2257073A1 (fr) * 2009-05-25 2010-12-01 Canon Kabushiki Kaisha Procédé et dispositif pour transmettre des données vidéo
EP2265026A1 (fr) * 2009-06-16 2010-12-22 Canon Kabushiki Kaisha Procédé et dispositif pour débloquer le filtrage de flux vidéo de type SVC pendant le décodage
EP2285122B1 (fr) * 2009-07-17 2013-11-13 Canon Kabushiki Kaisha Procédé et dispositif pour reconstruire une séquence de données vidéo après la transmission dans un réseau
EP2285112A1 (fr) * 2009-08-07 2011-02-16 Canon Kabushiki Kaisha Procédé pour l'envoi de données compressées représentant une image numérique et dispositif correspondant
FR2951345B1 (fr) 2009-10-13 2013-11-22 Canon Kk Procede et dispositif de traitement d'une sequence video
FR2955995B1 (fr) * 2010-02-04 2012-02-17 Canon Kk Procede et dispositif de traitement d'une sequence video
US8724742B2 (en) * 2010-10-06 2014-05-13 Motorola Mobility Llc Method and apparatus for soft buffer management for carrier aggregation
KR20120062545A (ko) * 2010-12-06 2012-06-14 한국전자통신연구원 비디오 스트림의 패킷화 방법 및 장치
US9167279B2 (en) * 2011-08-22 2015-10-20 Electronics & Telecommunications Research Institute Method for payload formatting and deformatting for burst loss recovery
SG11201500311XA (en) * 2012-09-28 2015-02-27 Intel Corp Inter-layer pixel sample prediction
US10375405B2 (en) * 2012-10-05 2019-08-06 Qualcomm Incorporated Motion field upsampling for scalable coding based on high efficiency video coding
KR20140122673A (ko) * 2013-04-05 2014-10-20 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
EP3090549A1 (fr) * 2014-01-02 2016-11-09 VID SCALE, Inc. Procédés et systèmes pour le codage vidéo échelonnable utilisant un entrelacement mixte et un contenu progressif
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
EP3499886A1 (fr) 2017-12-18 2019-06-19 Canon Kabushiki Kaisha Procédé et dispositif de codage de données vidéo
EP3499885A1 (fr) 2017-12-18 2019-06-19 Canon Kabushiki Kaisha Procédé et dispositif de codage de données vidéo
CN114528031A (zh) * 2020-10-30 2022-05-24 武汉斗鱼鱼乐网络科技有限公司 一种图片展示方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614936B1 (en) * 1999-12-03 2003-09-02 Microsoft Corporation System and method for robust video coding using progressive fine-granularity scalable (PFGS) coding
US20060230162A1 (en) * 2005-03-10 2006-10-12 Peisong Chen Scalable video coding with two layer encoding and single layer decoding

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501860B1 (en) * 1998-01-19 2002-12-31 Canon Kabushiki Kaisha Digital signal coding and decoding based on subbands
US6292512B1 (en) * 1998-07-06 2001-09-18 U.S. Philips Corporation Scalable video coding system
FR2792433A1 (fr) * 1999-04-15 2000-10-20 Canon Kk Dispositif et procede de transformation de signal numerique
AUPR110400A0 (en) * 2000-10-30 2000-11-23 Canon Kabushiki Kaisha Image transfer optimisation
FR2816154A1 (fr) * 2000-10-31 2002-05-03 Canon Kk Insertion d'information supplementaire dans des donnees numeriques
FR2826227B1 (fr) * 2001-06-13 2003-11-28 Canon Kk Procede et dispositif de traitement d'un signal numerique code
FR2826823B1 (fr) * 2001-06-27 2003-10-10 Canon Kk Procede et dispositif de traitement d'un signal numerique code
FR2831728B1 (fr) * 2001-10-25 2004-03-12 Canon Kk Procede et dispositif de formation d'un signal numerique derive a partir d'un signal numerique compresse
FR2835366B1 (fr) * 2002-01-29 2004-06-18 Canon Kk Procede et dispositif de formation d'un signal numerique compresse reduit
FR2837330B1 (fr) * 2002-03-14 2004-12-10 Canon Kk Procede et dispositif de selection d'une methode de transcodage parmi un ensemble de methodes de transcodage
AU2003237279A1 (en) * 2002-05-29 2003-12-19 Pixonics, Inc. Classifying image areas of a video signal
FR2842378B1 (fr) * 2002-07-15 2005-02-04 Canon Kk Procede et dispositif de traitement d'une requete ou de donnees numeriques compressees
FR2842983B1 (fr) * 2002-07-24 2004-10-15 Canon Kk Transcodage de donnees
US7580578B1 (en) * 2003-02-03 2009-08-25 Canon Kabushiki Kaisha Method and device for forming a compressed transcoded digital image signal
FR2851397B1 (fr) * 2003-02-14 2005-05-13 Canon Europa Nv Procede et dispositif d'analyse de sequences video dans un reseau de communication
EP1618742A1 (fr) * 2003-04-18 2006-01-25 Koninklijke Philips Electronics N.V. Systeme et procede de partitionnement de donnees a optimisation debit-distorsion pour codage video faisant appel a un modele de debit-distorsion parametrique
FR2869442A1 (fr) * 2004-04-23 2005-10-28 Canon Kk Procede et dispositif de decodage d'une image.
IL162878A0 (en) * 2004-07-06 2005-11-20 Hi Tech Solutions Ltd Multi-level neural network based characters identification method and system
US20070014348A1 (en) * 2005-04-12 2007-01-18 Nokia Corporation Method and system for motion compensated fine granularity scalable video coding with drift control
FR2889004B1 (fr) * 2005-07-22 2007-08-24 Canon Kk Procede et dispositif de traitement d'une sequence d'images numeriques a scalabilite spatiale ou en qualite
US7282923B2 (en) * 2005-09-20 2007-10-16 General Electric Company Systems and methods for triggering a partial discharge acquisition
FR2894421B1 (fr) * 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
FR2896371B1 (fr) * 2006-01-19 2008-11-07 Canon Kk Procede et dispositif de traitement d'une sequence d'images numeriques au format extensible
US8340179B2 (en) * 2006-03-21 2012-12-25 Canon Kabushiki Kaisha Methods and devices for coding and decoding moving images, a telecommunication system comprising such a device and a program implementing such a method
FR2903556B1 (fr) * 2006-07-04 2008-10-03 Canon Kk Procedes et des dispositifs de codage et de decodage d'images, un systeme de telecommunications comportant de tels dispositifs et des programmes d'ordinateur mettant en oeuvre de tels procedes
FR2907575B1 (fr) * 2006-10-18 2009-02-13 Canon Res Ct France Soc Par Ac Procede et dispositif de codage d'images representant des vues d'une meme scene
FR2909474B1 (fr) * 2006-12-04 2009-05-15 Canon Kk Procede et dispositif de codage d'images numeriques et procede et dispositif de decodage d'images numeriques codees

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614936B1 (en) * 1999-12-03 2003-09-02 Microsoft Corporation System and method for robust video coding using progressive fine-granularity scalable (PFGS) coding
US20060230162A1 (en) * 2005-03-10 2006-10-12 Peisong Chen Scalable video coding with two layer encoding and single layer decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HSU Y-F ET AL: "Embedded SNR scalable MPEG-2 video encoder and its associated error resilience decoding procedures", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 14, no. 5, 1 March 1999 (1999-03-01), pages 397 - 412, XP004163262, ISSN: 0923-5965 *

Also Published As

Publication number Publication date
US20090310674A1 (en) 2009-12-17
FR2932637B1 (fr) 2010-08-20

Similar Documents

Publication Publication Date Title
FR2932637A1 (fr) Procede et dispositif de codage d&#39;une sequence d&#39;images
FR2906433A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;images, programme d&#39;ordinateur les mettant en oeuvre et support d&#39;informaton permettant de les mettre en oeuvre
FR2889004A1 (fr) Procede et dispositif de traitement d&#39;une sequence d&#39;images numeriques a scalabilite spatiale ou en qualite
FR2894421A1 (fr) Procede et dispositif de decodage d&#39;un flux video code suivant un codage hierarchique
FR2903556A1 (fr) Procedes et des dispositifs de codage et de decodage d&#39;images, un systeme de telecommunications comportant de tels dispositifs et des programmes d&#39;ordinateur mettant en oeuvre de tels procedes
EP2446628A1 (fr) Procédé de codage et de décodage d&#39;images, dispositifs de codage et de décodage, flux de données et programme d&#39;ordinateur correspondants
FR2896371A1 (fr) Procede et dispositif de traitement d&#39;une sequence d&#39;images numeriques au format extensible
FR2951345A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
FR3008840A1 (fr) Procede et dispositif de decodage d&#39;un train scalable representatif d&#39;une sequence d&#39;images et procede et dispositif de codage correspondants
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3198876B1 (fr) Génération et codage d&#39;images intégrales résiduelles
WO2017115028A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, terminal d&#39;utilisateur et programmes d&#39;ordinateurs associés
EP3350996A1 (fr) Procede d&#39;encodage d&#39;image et equipement pour la mise en oeuvre du procede
EP2633686B1 (fr) Codage video echelonnable a partir d&#39;un epitome hierarchique
FR2955995A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
WO2019057368A1 (fr) Procedes de codage et de decodage d&#39;une image
FR2872972A1 (fr) Procede et dispositif de transmission video entre un serveur et un client
EP3158749B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
FR2927758A1 (fr) Procede et dispositif de codage-decodage d&#39;images video successives selon un flux video principal en pleine resolution et selon un flux video secondaire en qualite reduite
FR2956789A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
EP3520416B1 (fr) Procédé de codage d&#39;une image, procédé de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associés
FR2959093A1 (fr) Procede et dispositif de prediction d&#39;une information de complexite de texture contenue dans une image
FR3092459A1 (fr) Procédé et dispositif de codage et de décodage de données correspondant à une séquence vidéo
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
EP2633687B1 (fr) Codage et décodage vidéo a partir d&#39;un épitome

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140228