FR2951345A1 - Procede et dispositif de traitement d'une sequence video - Google Patents
Procede et dispositif de traitement d'une sequence video Download PDFInfo
- Publication number
- FR2951345A1 FR2951345A1 FR0957159A FR0957159A FR2951345A1 FR 2951345 A1 FR2951345 A1 FR 2951345A1 FR 0957159 A FR0957159 A FR 0957159A FR 0957159 A FR0957159 A FR 0957159A FR 2951345 A1 FR2951345 A1 FR 2951345A1
- Authority
- FR
- France
- Prior art keywords
- image
- reconstruction
- block
- images
- reconstructions
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
La présente invention concerne un procédé et un dispositif (10, 20) de traitement, notamment de codage ou de décodage ou plus généralement de compression ou décompression, d'une séquence vidéo (110) constituée d'une suite d'images numériques (401 à 407) comprenant une image courante (401) à traiter. Le procédé comprend les étapes consistant à: - générer (511, 603, 720, 812) une première reconstruction d'au moins une première image (402 à 404) de la séquence, de sorte à obtenir une première image de référence (517, 610, 717, 810); - générer (519, 612, 720, 812) au moins une deuxième reconstruction (408 à 413) de ladite première image différente de la première reconstruction, de sorte à obtenir au moins une seconde image de référence (518, 611, 718, 811); et - prédire (505, 606, 705, 806) au moins une partie (414, 415, 416) de ladite image courante à partir d'au moins une desdites images de référence.
Description
La présente invention concerne un procédé et un dispositif de traitement, notamment de codage ou de décodage ou plus généralement de compression ou décompression, d'une séquence vidéo constituée d'une suite d'images numériques. Les algorithmes de compression vidéo, comme ceux normalisés par les organismes de standardisation ITU, ISO, SMPTE, exploitent les redondances spatiales et temporelles des images afin de générer des flux binaires de données de taille réduite par rapport à ces séquences vidéo. De telles compressions rendent la transmission et/ou le stockage des séquences vidéo plus efficaces.
Les figures 1 et 2 représentent respectivement le schéma d'un encodeur vidéo classique 10 et le schéma d'un décodeur vidéo classique 20 conformes à la norme de compression vidéo H.264/MPEG-4 AVC ("Advanced Video Coding"). Cette dernière est le résultat de la collaboration du "Video Coding Expert Group" (VCEG) de l'ITU et du "Moving Picture Experts Group" (MPEG) de l'ISO, sous la forme notamment d'une publication "Advanced Video Coding for Generic Audiovisual Services" (Mars 2005). La figure 1 représente un schéma d'un encodeur vidéo 10 de type H.264/AVC ou de l'un de ses prédécesseurs.
La séquence vidéo originale 101 est une succession d'images numériques "images f'. De façon connue en soi, une image numérique est représentée par une ou plusieurs matrices dont les coefficients représentent des pixels. Selon la norme H.264/AVC, les images sont découpées en tranches ou "slices". Un "slice" est une partie de l'image ou l'image entière. Ces slices sont divisés en macroblocs, généralement des blocs de taille 16 pixels x 16 pixels, et chaque macrobloc peut être divisé, à son tour, en différentes tailles de blocs de données 102, par exemple 4x4, 4x8, 8x4, 8x8, 8x16, 16x8. Le macrobloc est l'unité de codage dans la norme H.264. Lors d'une compression vidéo, chaque bloc d'une image en cours de traitement est prédit spatialement par un prédicteur "Intra" 103, ou temporellement par un prédicteur "Inter" 105. Chaque prédicteur est un bloc de pixels issu de la même image ou d'une autre image, à partir duquel on déduit un bloc de différences (ou "résiduel"). L'identification du bloc prédicteur et le codage du résiduel permettent de réduire la quantité d'information à encoder effectivement.
Dans le module de prédiction "Intra" 103, le bloc courant est prédit à l'aide d'un prédicteur "Intra", bloc de pixels construit à partir des informations de l'image courante déjà encodées. En ce qui concerne le codage "Inter", une estimation de mouvement 104 entre le bloc courant et des images de référence 116 est effectuée afin d'identifier, dans l'une de ces images de référence, un bloc de pixels pour l'utiliser comme prédicteur de ce bloc courant. Les images de référence utilisées sont constituées d'images de la séquence vidéo qui ont déjà été codées puis reconstruites (par décodage). Généralement, l'estimation de mouvement 104 est un algorithme de mise en correspondance de blocs dit "Block Matching Algorithm" (BMA). Le prédicteur obtenu par cet algorithme est ensuite soustrait du bloc courant de données à traiter de sorte à obtenir un bloc de différences (résiduel de bloc). Cette étape est appelée "compensation de mouvement" 105 dans les algorithmes de compression classiques.
Ces deux types de codage fournissent ainsi plusieurs résiduels (différence entre le bloc courant et le bloc prédicteur) de texture qui sont comparés dans un module de sélection du meilleur mode de codage 106. Si le codage "Intra" est sélectionné, une information permettant de décrire le prédicteur "Intra" utilisé est codée (109) avant d'être insérée dans le flux binaire 110. Si le module de sélection du meilleur mode de codage 106 choisit le codage "Inter", une information de mouvement est codée (109) et insérée dans le flux binaire 110. Cette information de mouvement est notamment composée d'un vecteur mouvement (indiquant la position du bloc prédicteur dans l'image de référence relativement à la position du bloc à prédire) et d'un indice d'image parmi les images de référence.
Le résiduel sélectionné par le module de choix 106 est ensuite transformé (107) à l'aide d'une transformée en cosinus discret DCT ("Discrete Cosinus Transform"), puis quantifié (108). Les coefficients du résiduel transformé quantifié sont ensuite codés à l'aide d'un codage entropique ou arithmétique (109) puis insérés dans le flux binaire compressé 110.
On fera, dans la suite du document, essentiellement référence au codage entropique. Toutefois, l'homme du métier est à même de le remplacer par un codage arithmétique ou tout autre codage adapté. Afin de calculer les prédicteurs "Intra" ou d'effectuer l'estimation de mouvement pour les prédicteurs "Inter", l'encodeur réalise un décodage des blocs déjà encodés à l'aide d'une boucle dite "de décodage" (111, 112, 113, 114, 115, 116). Cette boucle de décodage permet de reconstruire les blocs et les images à partir des résiduels transformés quantifiés. Ainsi, le résiduel transformé quantifié est déquantifié (111) par application de la quantification inverse de celle prévue à l'étape 108 et reconstruit (112) par application de la transformée inverse de celle de l'étape 107. Si le résiduel provient d'un codage "Intra" 103, le prédicteur "Intra" utilisé est ajouté à ce résiduel (113) pour récupérer un bloc reconstruit correspondant au bloc d'origine modifié par les pertes résultant d'une transformation à pertes, ici des opérations de quantification. Si le résiduel provient, en revanche, d'un codage "Inter" 105, le bloc pointé par le vecteur mouvement courant (ce bloc appartient à l'image de référence 116 visée par l'indice d'image courant) est ajouté à ce résiduel décodé (114). On obtient ainsi le bloc d'origine modifié par les pertes résultant des opérations de quantification. Afin d'atténuer, au sein d'une même image, les effets de blocs créés par une forte quantification des résiduels obtenus, l'encodeur intègrent un filtre de "deblocking" 115, qui a pour objectif de supprimer ces effets de blocs, notamment les hautes fréquences artificielles introduites aux frontières entre blocs. Le filtre de deblocking 115 permet de lisser les bordures entre les blocs afin d'atténuer visuellement ces hautes fréquences créées par le codage. Un tel filtre étant connu de l'art, il ne sera pas décrit plus en détail ici. Le filtre 115 est ainsi appliqué à une image lorsque tous les blocs de pixels de cette image ont été décodés. Les images filtrées, également nommées images reconstruites, sont alors stockées comme images de référence 116 pour permettre les prédictions "Inter" ultérieures ayant lieu lors de la compression des images suivantes de la séquence vidéo courante. Pour la suite des explications, on dénommera "classique" les informations résultantes de cette boucle de décodage mise en oeuvre dans l'état de l'art, c'est-à-dire en inversant notamment la quantification et la transformée avec des paramètres classiques. Ainsi, on parlera désormais d"'image reconstruite classique". Dans le cadre de la norme H.264, il est possible d'utiliser plusieurs images de référence 116 pour l'estimation et la compensation de mouvement de l'image courante, avec un maximum de 32 images de référence.
En d'autres termes, l'estimation de mouvement est effectuée sur N images. Ainsi, le meilleur prédicteur "Inter" du bloc courant, pour la compensation de mouvement, est sélectionné dans une des multiples images de référence. Par conséquent, deux blocs voisins peuvent avoir deux blocs prédicteurs qui proviennent de deux images de référence distinctes. C'est notamment la raison pour laquelle on indique, dans le flux binaire compressé, l'indice de l'image de référence (en plus du vecteur mouvement) utilisée pour le bloc prédicteur. La figure 3 illustre cette compensation de mouvement à l'aide d'une pluralité d'images de référence. Sur cette figure, l'image 301 représente l'image 30 courante en cours de codage correspondant à l'image i de la séquence vidéo.
Les images 302 à 307 correspondent aux images i-1 à i-n qui ont été précédemment encodées puis décodées (c'est-à-dire reconstruites) depuis la séquence vidéo compressée 110. Dans l'exemple illustré, trois images de référence 302, 303 et 304 sont utilisées dans la prédiction Inter de blocs de l'image 301. Pour rendre la représentation graphique lisible, seuls quelques blocs de l'image courante 301 ont été représentés, et aucune prédiction Intra n'est ici illustrée. Notamment, pour le bloc 308, un prédicteur Inter 311 appartenant à l'image de référence 303 est sélectionné. Les blocs 309 et 310 sont respectivement prédits par les blocs 312 de l'image de référence 302 et 313 de l'image de référence 304. Pour chacun de ces blocs, un vecteur mouvement (314, 315, 316) est codé et transmis avec l'indice (302, 303, 304) d'image de référence. L'utilisation des multiples images de référence _ on notera, toutefois, la préconisation du groupe VCEG susvisé recommandant de limiter le nombre d'images de référence à quatre _ est à la fois un outil de résistance aux erreurs et un outil d'amélioration de l'efficacité de compression. En effet, avec une sélection adaptée des images de référence pour chacun des blocs d'une image courante, il est possible de limiter l'effet de la perte d'une image de référence ou d'une partie d'une image de référence. De même, si la sélection de la meilleure image de référence est estimée bloc par bloc avec un critère de débit-distorsion minimal, cette utilisation de plusieurs images de référence permet d'obtenir des gains significatifs par rapport à l'utilisation d'une seule image de référence.
Toutefois, pour obtenir ces améliorations, il est nécessaire de faire une estimation de mouvement pour chacune des images de référence, ce qui augmente la complexité de calcul d'un codeur vidéo. En outre, l'ensemble des images de référence a besoin d'être conservé en mémoire, accroissant l'espace mémoire nécessaire dans l'encodeur. Ainsi, la complexité de calcul et de mémoire, nécessaire à l'utilisation de plusieurs images de référence selon la norme H.264, peut se révéler incompatible avec certaines applications ou équipements vidéo dont les capacités de calcul et de mémoire sont limitées. Tel est le cas, par exemple, des téléphones portables, des appareils photos ou des caméras numériques. Par ailleurs, on note que lorsque la sélection du meilleur bloc prédicteur est basée sur le critère débit-distorsion, une large majorité des pixels de l'image courante (en moyenne 85%), a pour prédicteur des pixels provenant de l'image de référence la plus proche en termes de distance "temporelle". Cette dépendance majoritaire à une seule image de référence n'est cependant pas optimale en termes de performance de compression.
La figure 2 représente un schéma global d'un décodeur 20 vidéo de type H.264/AVC. Le décodeur 20 reçoit en entrée un flux binaire 201 correspondant à une séquence vidéo compressée 110 par un encodeur de type H.264/AVC, tel que celui de la figure 1. Lors du processus de décodage, le flux binaire 201 est tout d'abord 15 décodé entropiquement (202). Le résiduel du bloc courant est alors déquantifié (203) à l'aide de la quantification inverse de celle prévue en 108, puis reconstruit (204) à l'aide de la transformée inverse de celle prévue en 107. Le décodage des données de la séquence vidéo est alors opéré 20 image par image, et au sein d'une image, bloc par bloc. Le mode "Inter" ou "Intra" de codage du bloc courant est extrait du flux binaire 201 et décodé entropiquement. Si le codage du bloc courant est de type "Intra", le numéro du prédicteur est extrait du flux binaire et décodé entropiquement. Le bloc 25 prédicteur Intra associé à cet indice est récupéré des données déjà décodées de l'image courante. Le résiduel associé au bloc courant est récupéré du flux binaire 201 puis décodé entropiquement. Enfin, le bloc prédicteur Intra récupéré est ajouté au résiduel ainsi déquantifié et reconstruit dans le module prédiction Intra 30 inverse (205) pour obtenir le bloc décodé.
Si le mode de codage du bloc courant indique que ce bloc est de type "Inter", alors l'information de mouvement est extraite du flux binaire 201 et décodée (202). Cette information de mouvement est utilisée dans le module de compensation de mouvement inverse 206 pour déterminer le bloc prédicteur "Inter" contenu dans les images de référence 208 du décodeur 20. De façon similaire à l'encodeur, ces images de référence 208 sont composées d'images précédant l'image en cours de décodage et qui sont reconstruites à partir du flux binaire (donc décodées précédemment).
Le résiduel associé au bloc courant est, ici aussi, récupéré du flux binaire 201 puis décodé entropiquement. Le bloc prédicteur Inter déterminé est alors ajouté au résiduel ainsi déquantifié reconstruit dans le module de compensation de mouvement inverse 206 pour obtenir le bloc décodé. A la fin du décodage de tous les blocs de l'image courante, le même filtre de deblocking 207 que celui (115) prévu au niveau de l'encodeur est utilisé pour éliminer les effets de bloc de manière à obtenir les images de référence 208. Les images ainsi décodées constituent le signal vidéo 209 de sortie du décodeur, qui peut être alors affiché et exploité.
Ces opérations de décodage sont similaires à la boucle de décodage du décodeur. A ce titre, l'illustration de la figure 3 s'applique également au décodage. De façon symétrique au codage, le décodeur selon la norme H.264 requiert l'utilisation de plusieurs images de références.
La présente invention vise à pallier au moins un des inconvénients des techniques de l'état de l'art, afin par exemple d'améliorer les prédicteurs "Inter" utilisés lors de la compression des séquences vidéo. Dans ce dessein, l'invention concerne notamment un procédé de traitement, notamment de codage ou de décodage, d'une séquence vidéo constituée d'une suite d'images numériques comprenant une image courante à traiter, le procédé comprenant les étapes consistant à: - générer une première reconstruction d'au moins une première image de la séquence, de sorte à obtenir une première image de référence; - générer au moins une deuxième reconstruction de ladite au moins une première image différente de la première reconstruction, de sorte à obtenir au moins une seconde image de référence; et - prédire au moins une partie de ladite image courante à partir d'au moins une desdites images de référence. Selon l'invention, les images de référence résultent de plusieurs reconstructions différentes d'une ou plusieurs images de la séquence vidéo, généralement parmi celles qui ont été encodées/décodées avant l'image courante à traiter. Tout comme pour la norme H.264/AVC, la présente invention permet l'utilisation d'un grand nombre d'images de référence, offrant ainsi une compression meilleure qu'en utilisant une seule image de référence.
En outre, l'invention contribue à réduire l'espace mémoire nécessaire au stockage d'un même nombre d'images de référence au niveau de l'encodeur ou du décodeur. En effet, une seule image de référence (généralement celle reconstruite selon les techniques connues de l'état de l'art) peut être stockée et, en produisant à la volée les autres images de référence correspondant à la même image de la séquence vidéo (les secondes reconstructions), on obtient plusieurs images de référence pour un espace mémoire occupé minimal. Les inventeurs ont, par ailleurs, pu observer que, pour de nombreuses séquences, l'utilisation, selon l'invention, d'images de référence reconstruites depuis une même image se révèle plus efficace que l'utilisation des multiples images de référence "classiques" comme dans H.264, qui sont des images encodées/décodées prises à différents décalages temporels par rapport à l'image à traiter dans la séquence vidéo. Il en résulte une diminution de l'entropie des résiduels de texture "Inter" et/ou de la qualité des blocs prédicteurs "Inter".
Dans un mode de réalisation, lesdites reconstructions sont réalisées à partir d'une version quantifiée de ladite première image, et lesdites première et deuxième reconstructions diffèrent par des quantifications inverses différentes. De façon générale, les multiples reconstructions peuvent être appliquées dès lors que le codage des images de la séquence vidéo implique une transformation avec pertes. Cette disposition permet de disposer d'images de référence 5 adaptées aux algorithmes de compression vidéo avec pertes incluant des mécanismes de quantification. En particulier, ladite version quantifiée de la première image est composée de blocs de données formés chacun d'un ensemble de coefficients, et les quantifications inverses différentes mettent en oeuvre, pour au moins un 10 coefficient donné de bloc, des décalages ("offsets" selon la terminologie anglo-saxonne) de quantification différents. Cette réalisation permet de contrôler les plages de quantification et d'offrir, sans complexité technique, des prédicteurs de meilleure qualité pour certains types de séquence vidéo. Un coefficient de bloc est un élément d'un résiduel de bloc transformé (puis quantifié) par la 15 transformée de la norme H.264 ou un pixel d'un résiduel ensuite quantifié, dans le cas d'un codage sans transformée. Notamment, on peut prévoir qu'un seul coefficient de bloc présente des décalages de quantification inverse différents entre la première et la seconde reconstruction, de manière à obtenir une faible quantité de données 20 supplémentaires à transmettre d'un codeur vers un décodeur. En alternative, il est possible d'utiliser des décalages différents pour plusieurs coefficients de bloc à la fois, mais cela induit une plus grande quantité de données supplémentaires à transmettre au décodeur. Selon une caractéristique de l'invention, le procédé comprend une 25 étape de sélection automatique d'au moins un coefficient de bloc et de son décalage de quantification associé pour générer une dite deuxième reconstruction différente de la première reconstruction. Différents critères alternatifs peuvent alors être mis en oeuvre, comme décrits par la suite. Dans un mode de réalisation, lesdites première et deuxième 30 reconstructions de la première image sont générées en parallèle à partir de ladite première image. Ainsi, on génère séparément chacune des images de référence en procédant à la reconstruction complète depuis la première image, généralement depuis une version quantifiée. Selon une variante, ladite étape consistant à générer au moins une deuxième reconstruction comprend: - la détermination d'au moins un résiduel correctif à partir d'au moins un paramètre de deuxième reconstruction et d'un bloc de coefficients égaux à zéro; et - l'ajout dudit au moins un résiduel correctif à ladite première image de référence de sorte à obtenir ladite au moins une seconde image de référence. Un paramètre de seconde reconstruction est par exemple composé de l'indication d'au moins un coefficient de bloc (par exemple, en utilisant le numéro ou l'indice du coefficient dans le bloc selon une convention prédéterminée d'ordonnancement des coefficients dans un bloc) et de son décalage de quantification. En utilisant autant de paramètres de reconstruction que souhaité, on peut obtenir plusieurs autres images de référence. Cette disposition présente une complexité réduite comparée à la variante visée ci-dessus, avec des résultats équivalents en termes de débit- distorsion. En effet, dans cette variante, on ne réalise la reconstruction complète que d'une seule image, puis pour produire les autres images de référence, on ajoute des correctifs plus simples à calculer. Cette disposition est ainsi simple à mettre en oeuvre à la volée. En général, ladite première reconstruction peut correspondre à une reconstruction "classique" prévue dans un format de codage standard pour générer une image vidéo de sortie. On notera par ailleurs que cette réalisation s'applique en particulier à la deuxième reconstruction partielle des seuls blocs utilisés lors des prédictions de décodage d'une image courante. En effet, il n'y a lieu alors d'appliquer les résiduels correctifs qu'à ces blocs.
Notamment, la détermination d'un résiduel correctif comprend une quantification inverse dudit bloc de coefficients égaux à zéro, ladite quantification inverse mettant en oeuvre, pour au moins un coefficient de bloc, un décalage de quantification différent de celui mis en oeuvre pour la première reconstruction. Selon une caractéristique particulière, ledit traitement de la séquence vidéo comprend une transformation de blocs d'image mettant en oeuvre plusieurs tailles de blocs, et ladite étape consistant à générer au moins une deuxième reconstruction met en oeuvre des résiduels correctifs d'une seule taille, généralement la plus petite desdites tailles de blocs. Des performances similaires à l'utilisation de résiduels correctifs de tailles adaptées à celles des blocs de l'image sont obtenues, avec une complexité de mise en oeuvre réduite.
Par ailleurs, lorsque le traitement de la séquence vidéo comprend une transformation de blocs mettant en oeuvre des blocs d'une taille donnée, l'étape consistant à générer au moins une deuxième reconstruction met en oeuvre des résiduels correctifs de la même taille que la taille des blocs. Dans un mode de réalisation, ladite prédiction comprend une estimation et une compensation de mouvement d'au moins un bloc de données de l'image courante, à partir des images de référence générées par reconstruction. En particulier, le procédé comprend, pour au moins un bloc de données de ladite image courante, le calcul de la compensation de mouvement par rapport à chacune des images de référence puis la sélection de l'une desdites images de référence selon un critère de sélection, typiquement selon le meilleur ratio débit-distorsion, de sorte à traiter ledit bloc de données. Dans un mode de réalisation de l'invention, pour ladite prédiction de l'au moins une partie de l'image courante, lesdites images de référence comprennent des reconstructions d'une unique première image de la séquence. On réduit ainsi l'espace mémoire utilisé puisque l'on ne stocke qu'une seule image dans l'encodeur et le décodeur, les reconstructions pouvant par exemple être générées à la volée. En particulier, ladite unique première image est l'image déjà reconstruite la plus proche temporellement de l'image courante à l'intérieur de ladite séquence vidéo. La notion de "temporel" est ici à rapprocher de la dimension temporelle d'une séquence vidéo, succession d'images dans le temps. Cette disposition permet, à moindre coût, une meilleure prédiction générale de l'ensemble de l'image à traiter. En outre, grâce aux autres images de référence résultant des reconstructions différentes selon l'invention, les prédicteurs "Inter" et la compression résultante sont encore améliorés.
Selon une caractéristique de l'invention, lesdites images sont composées d'une pluralité de blocs de données, et au moins une dite deuxième reconstruction de la première image comprend la reconstruction des seuls blocs de ladite première image utilisés lors de la prédiction de l'au moins une partie de l'image courante. Cette disposition s'applique notamment lors du décodage d'une séquence codée, car dans ce cas là, seuls ces blocs sont utiles. On limite ainsi l'espace mémoire utilisé au niveau du décodeur. On simplifie aussi la génération à la volée des reconstructions, le cas échéant. Bien entendu, lors du décodage, la reconstruction "classique", c'est-à-dire comme définie dans un format de codage standard, est menée sur l'ensemble des blocs de l'image de sorte à générer l'image vidéo de sortie. Cette dernière peut d'ailleurs être la seule image de référence complète qui est mémorisée. Dans un mode de réalisation de l'invention, le procédé comprend le remplacement de ladite première image de référence préalablement stockée en mémoire par une dite seconde image de référence. De la sorte, on optimise le stockage des images de référence en ne conservant, par exemple, que les plus efficaces en termes de compression selon un critère débit-distorsion. En particulier, ladite première image de référence stockée est une image reconstruite selon une reconstruction prévue dans un format de codage standard, notamment pour générer une image vidéo de sortie (appelée image de référence classique). Dans ce cas, on ne conserve, comme images de référence, que des images reconstruites avec des paramètres de reconstruction autres que ceux correspondant au traitement "classique" de l'image. Les images de référence obtenues sont ainsi toutes différentes de celles classiquement obtenues par la norme H.264 par exemple. Différents critères d'estimation de l'opportunité de procéder à un remplacement peuvent être prévus comme décrits par la suite.
Dans un mode de réalisation, le traitement comprend le codage de ladite séquence vidéo en un flux codé, et le procédé comprend une étape de signalisation, dans le flux codé résultant dudit codage, d'informations (tels que les décalages de quantification et les numéros des coefficients de bloc associés) représentatives de paramètres desdites reconstructions ayant abouti auxdites images de référence. On met ainsi à disposition du décodeur et à moindre coût, les informations utiles au décodage de la séquence vidéo compressée. Dans un mode de réalisation de l'invention, le procédé comprend la prédiction d'une partie de l'image courante à partir de ladite première image de référence correspondant à une première image de la séquence, et la prédiction d'au moins une autre partie de l'image courante à partir d'au moins une seconde image de référence correspondant à la même première image de la séquence. Ainsi, la même image vidéo est codée/décodée en référence à deux reconstructions différentes d'une même image précédemment codée/décodée. L'invention a également trait à un dispositif de traitement, codeur ou décodeur par exemple, d'une séquence vidéo constituée d'une suite d'images numériques comprenant une image courante à traiter, comprenant: - un moyen de génération apte à générer une première reconstruction d'au moins une première image de la séquence, de sorte à obtenir une première image de référence, et à générer au moins une deuxième reconstruction de ladite première image différente de la première reconstruction, de sorte à obtenir au moins une seconde image de référence; - un moyen de prédiction apte à prédire au moins une partie de ladite image courante à partir d'au moins une desdites images de référence. Le dispositif de traitement présente des avantages similaires à ceux du procédé de traitement exposé ci-dessus, notamment de permettre l'utilisation réduite des ressources mémoire, de réaliser des calculs de complexité réduite ou encore d'améliorer les prédicteurs Inter utilisés lors de la compensation de mouvement. De façon optionnelle, le dispositif peut comprendre des moyens se rapportant aux caractéristiques du procédé exposé précédemment.
En particulier, le dispositif peut comprendre un ensemble de décodage d'une image codée pour produire une image décodée, ledit ensemble de décodage comprenant: - un premier module de quantification inverse pour déquantifier ladite image codée selon des premiers paramètres, de sorte à générer ladite première reconstruction de ladite image codée, - un module de génération de paramètres de reconstruction aptes à générer des deuxièmes paramètres différents desdites premiers paramètres, et - au moins un deuxième module de quantification inverse pour générer une deuxième reconstruction de ladite image codée à partir desdits deuxièmes paramètres. En variante, le dispositif comprend: - un ensemble de décodage d'une image codée pour produire une image décodée correspondant à ladite première reconstruction de l'image, - un module de calcul d'au moins un résiduel correctif à partir d'un bloc de coefficients nuls et de deuxièmes paramètres, et d'application dudit au moins un résiduel correctif à ladite image décodée de sorte à générer ladite au moins une deuxième reconstruction. En particulier, le dispositif peut comprendre un module de génération de paramètres de reconstruction aptes à générer lesdits deuxièmes paramètres différents de premiers paramètres utilisés lors d'une quantification inverse dudit ensemble de décodage. Selon une caractéristique, ledit module de génération de paramètres est agencé pour déterminer et générer automatiquement lesdits paramètres parmi une pluralité de paramètres. L'invention concerne également un signal vidéo codé d'une séquence vidéo constituée d'une suite d'images numériques, comprenant des images codées par référence à au moins deux reconstructions différentes d'une image précédente de ladite séquence vidéo, et des informations représentatives de paramètres desdites reconstructions différentes de ladite image codée précédente. On notera que certains paramètres de reconstruction "classique" peuvent être implicites au codage utilisé, certains autres paramètres optionnels de cette reconstruction "classique" pouvant être prévu dans le flux codé. Selon l'invention, le flux codé comprend également les paramètres relatifs aux "secondes" reconstructions afin que le décodeur puisse obtenir les images de référence appropriées pour le décodage de la séquence codée.
L'invention concerne également un moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, comprenant des instructions pour un programme informatique adapté à mettre en oeuvre le procédé de traitement conforme à l'invention lorsque ce programme est chargé et exécuté par le système informatique. L'invention concerne également un programme d'ordinateur lisible par un microprocesseur, comprenant des portions de code logiciel adaptées à mettre en oeuvre le procédé de traitement conforme à l'invention, lorsqu'il est chargé et exécuté par le microprocesseur.
Les moyens de stockage d'information et programme d'ordinateur présentent des caractéristiques et avantages analogues aux procédés qu'ils mettent en oeuvre. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les dessins ci-joints, dans lesquels : - la figure 1 représente le schéma global d'un encodeur vidéo de l'état de l'art; - la figure 2 représente le schéma global d'un décodeur vidéo de l'état de l'art; - la figure 3 illustre le principe de la compensation de mouvement d'un codeur vidéo selon l'état de l'art; - la figure 4 illustre le principe de la compensation de mouvement d'un codeur incluant des multiples reconstructions d'images dans la liste d'images de référence, selon la présente invention; - la figure 5 représente le schéma global d'un encodeur vidéo selon un premier mode de réalisation de l'invention; - la figure 6 représente le schéma global d'un décodeur vidéo selon le premier mode de réalisation de l'invention; - la figure 7 représente le schéma global d'un encodeur vidéo selon un deuxième mode de réalisation de l'invention; - la figure 8 représente le schéma global d'un décodeur vidéo selon le deuxième mode de réalisation de l'invention; - la figure 9 montre une configuration matérielle particulière d'un dispositif apte à une mise en oeuvre du ou des procédés selon l'invention. Selon l'invention, le procédé de traitement d'une séquence vidéo d'images comprend la génération de deux ou plus reconstructions différentes d'au moins une image précédant, dans la séquence vidéo, l'image à traiter (coder ou décoder), de sorte à obtenir au moins deux images de référence pour la compensation de mouvement. Les traitements sur la séquence vidéo peuvent être de différente nature, incluant notamment des algorithmes de compression vidéo. En particulier, la séquence vidéo peut être soumise à un codage en vue d'une transmission ou d'un stockage. Pour la suite de la description, on s'intéressera plus particulièrement à un traitement de type compensation de mouvement appliqué à une image de la séquence, dans le cadre d'une compression vidéo. Toutefois, l'invention pourrait être appliquée à d'autres traitements, par exemple à l'estimation de mouvements lors de l'analyse de séquence. La figure 4 illustre une compensation de mouvement mettant en oeuvre l'invention, dans une représentation similaire à celle de la figure 3.
Les images de référence "classiques" 402 à 405, c'est-à-dire obtenues selon les techniques de l'art antérieur, et les nouvelles images de référence 408 à 413 générées par la présente invention sont représentées sur un axe perpendiculaire à celui du temps (définissant la séquence vidéo 110) afin de montrer quelles images générées par l'invention correspondent à une même image de référence classique. Plus précisément, les images de référence classiques 402 à 405 sont les images de la séquence vidéo qui ont précédemment été encodées puis décodées par la boucle de décodage: ces images correspondent donc à celles du signal vidéo 209 du décodeur. Les images 408 et 411 résultent d'autres décodages de l'image 452, également appelées "secondes" reconstructions de l'image 452. Les "seconds" décodages ou reconstructions signifient des décodages/reconstructions avec des paramètres différents de ceux utilisés pour le décodage/reconstruction classique (selon un format de codage standard par exemple) prévu pour générer le signal vidéo décodé 209. De même, les images 409 et 412 sont des seconds décodages de 10 l'image 403. Enfin, les images 410 et 413 sont des seconds décodages de l'image 404. Selon l'invention telle qu'illustrée dans cet exemple, les blocs de l'image courante (i, 401) qui doit être traitée (compressée) peuvent être prédits chacun par un bloc des images précédemment décodées 402 à 407 ou par un 15 bloc d'une "seconde" reconstruction 408 à 413 d'une de ces images 452 à 454. Dans cette figure, le bloc 414 de l'image courante 401 a, pour bloc prédicteur Inter, le bloc 418 de l'image de référence 408 qui est une "seconde" reconstruction de l'image 452. Le bloc 415 de l'image courante 401 a, pour bloc prédicteur, le bloc 417 de l'image de référence classique 402. Enfin, le bloc 416 20 a, pour prédicteur, le bloc 419 de l'image de référence 413 qui est une "seconde" reconstruction de l'image 453. De manière générale, les "secondes" reconstructions 408 à 413 d'une image ou de plusieurs images de référence classiques 402 à 407 peuvent être ajoutées dans la liste des images de référence 116, 208, voire même 25 remplacer une ou plusieurs de ces images de référence classiques. On notera que, généralement, il est plus efficace de remplacer les images de référence classiques par des "secondes" reconstructions, et de garder un nombre limité de nouvelles images de référence (multiples reconstructions), plutôt que d'ajouter systématiquement ces nouvelles images 30 dans la liste. En effet, un nombre élevé d'images de référence dans la liste augmente le débit nécessaire au codage d'un indice de ces images de référence (pour indiquer au décodeur laquelle utiliser).
De même, il a pu être observé que l'utilisation de multiples "secondes" reconstructions de la première image de référence (celle qui est la plus proche temporellement de l'image courante à traiter; généralement l'image qui la précède) est plus efficace que l'utilisation de multiples reconstructions d'une image de référence temporellement plus éloignée. Afin d'identifier les images de référence utilisées durant l'encodage, le codeur transmet, en plus du nombre et du numéro d'images de référence, un indicateur ou drapeau ("flag" en terminologie anglo-saxonne) pour indiquer si l'image de référence associée au numéro est une reconstruction classique ou une "seconde" reconstruction. Si l'image de référence provient d'une "seconde" reconstruction selon l'invention, les paramètres différents ("numéro du coefficient" et "valeur d'offset de reconstruction" tels que décrits par la suite) sont transmis au décodeur, pour chacune des images de référence utilisées. Dans une variante de cette signalisation, le codeur transmet au décodeur le nombre d'images de référence, puis il indique le numéro de la première image de référence suivi du nombre de reconstructions de cette image. En considérant que la première reconstruction est systématiquement une reconstruction classique les paramètres "numéro du coefficient" et "valeur d'offset de reconstruction" sont transmis uniquement pour les autres reconstructions. Si le nombre d'images de référence n'est pas atteint, le codeur inscrit donc le numéro d'une autre image de référence suivi du nombre de reconstructions utilisées pour cette image. En référence aux figures 5 à 8, on décrit maintenant deux modes de réalisation de l'invention pour générer de multiples reconstructions d'une image de référence classique, aussi bien lors de l'encodage d'une séquence vidéo, que lors du décodage d'une séquence encodée. Le deuxième mode de réalisation (figures 7 et 8) fait intervenir des approximations du premier mode de réalisation (figures 5 et 6) afin d'offrir une complexité moindre tout en conservant des performances similaires en terme de débit-distorsion de la séquence vidéo encodée/décodée. En référence à la figure 5, un encodeur vidéo 10 selon le premier mode de réalisation de l'invention comprend des modules 501 à 515 de traitement d'une séquence vidéo avec boucle de décodage, similaires aux modules 101 à 115 de la figure 1. En particulier, selon la norme H.264, le module de quantification 108/508 réalise une quantification du résiduel obtenu après transformation 107/507, par exemple de type DOT, sur le résiduel du bloc de pixels courant. La quantification est appliquée sur chacun des N coefficients de ce bloc résiduel (autant de coefficients qu'il y a dans le bloc de pixels initial). Le calcul d'une matrice de coefficients DCT et le parcours des coefficients à l'intérieur de la matrice de coefficients DCT sont des notions largement connues de l'homme du métier et ne seront pas plus détaillées ici. Un tel parcours de la matrice de coefficients DCT permet d'obtenir un ordre des coefficients du bloc, et donc un numéro d'indice pour chacun d'entre eux. Ainsi, si l'on nomme W le ième coefficient du résiduel du bloc courant (avec i variant de 0 à M-1 pour un bloc contenant M coefficients), le coefficient quantifié Z est obtenu par la formule suivante : Zi =int' W +f '•sgn(W ), où qi est le quantificateur associé au ième ql / coefficient dont la valeur dépend à la fois d'un pas de quantification noté QP et de la position (c'est-à-dire le numéro ou l'indice) du coefficient W dans le bloc transformé.
En effet, le quantificateur ql provient d'une matrice dite de quantification dont chaque élément (les valeurs ql) est pré-déterminé. Les éléments sont généralement fixés pour quantifier plus fortement les hautes fréquences. Par ailleurs, la fonction int(x) fournit la partie entière de la valeur x et la fonction sgn(x) donne le signe de la valeur x . Enfin, f est l'offset de quantification (également appelé décalage de quantification) qui permet de centrer l'intervalle de quantification. Si cet offset est fixe, il est généralement égal à ql 2 A l'issue de cette étape, on obtient pour chaque image, les blocs résiduels quantifiés prêts à être codés pour générer le flux binaire 510. Sur la figure 4, ces images portent les références 451 à 457. Le processus de quantification inverse (ou déquantification), 5 représenté par le module 111/511 dans la boucle de décodage de l'encodeur 10 prévoit que le ième coefficient déquantifié W' est obtenu par la formule suivante : W'= (ql ZZ -0, )• sgn(ZZ) . Dans cette formule, ZZ est le ième coefficient quantifié, calculé avec 10 l'équation de quantification ci-dessus. 6Z est l'offset de reconstruction qui permet de centrer l'intervalle de reconstruction. Par propriété, 6Z doit appartenir à l'intervalle[ùf ; f ]. En effet, il existe une valeur de 6Z appartenant à cet intervalle tel que W'= W . Cet offset est généralement égal à zéro. On notera que cette formule est également appliquée par le 15 décodeur 20, au niveau de la déquantification 203 (603 comme décrit par la suite en référence à la figure 6). Toujours en référence à la figure 5, la boîte 516 contient les images de référence au même titre que la boîte 116 de la figure 1, c'est-à-dire que les images contenues dans ce module sont utilisées pour l'estimation de 20 mouvement 504, la compensation de mouvement 505 lors du codage d'un bloc de pixels de la séquence vidéo, et la compensation de mouvement inverse 514 dans la boucle de décodage pour générer les images de référence. Pour illustrer la présente invention, on a schématisé, au sein de la boîte 516, les images de référence dites "classiques" 517 séparément des 25 images de référence 518 obtenues par des "seconds" décodages/reconstructions selon l'invention. Dans ce premier mode de réalisation de l'invention, les "secondes" reconstructions d'une image sont construites à l'intérieur de la boucle de décodage, comme représenté par les modules 519 et 520 permettant au moins 30 un "second" décodage par déquantification (519) à l'aide de paramètres de "seconde" reconstruction (520).
Ainsi, pour chacun des blocs de l'image courante, deux processus de déquantification (quantification inverse), 511 et 519 sont utilisés: la quantification inverse 511 classique pour générer une première reconstruction et la quantification inverse différente 519 pour générer une "seconde" reconstruction du bloc (et donc de l'image courante). On notera que pour obtenir de multiples "secondes" reconstructions de l'image de référence courante, un plus grand nombre de modules 519 et 520 peut être prévu dans l'encodeur 10, chacun générant une reconstruction différente avec des paramètres différents comme expliqués ci-après.
Notamment, toutes les multiples reconstructions peuvent être exécutées en parallèle de la reconstruction classique par le module 511. Des informations sur le nombre de multiples reconstructions et les paramètres associés sont insérées dans le flux codé 510 aux fins d'informer le décodeur 20 des valeurs à utiliser.
Le module 519 reçoit les paramètres d'une seconde reconstruction 520 différente de la reconstruction classique. Le fonctionnement de ce module 520 sera décrit par la suite. Les paramètres reçus sont par exemple un numéro i de coefficient du résiduel transformé qui va être reconstruit différemment et l'offset (décalage) de reconstruction OZ correspondant, comme décrits par ailleurs. Le numéro d'un coefficient est typiquement son numéro dans un ordonnancement classique tel qu'un parcours en zig-zag ("zig-zag scan" en terminologie anglo-saxonne). Ces deux paramètres sont notamment déterminés au préalable et peuvent être les mêmes pour toute la reconstruction (c'est-à-dire tous les blocs de pixels) de l'image de référence correspondante. En d'autres termes, ces paramètres sont transmis une seule fois au décodeur pour l'image. Toutefois, il est possible de transmettre ces paramètres (numéro de coefficient et offset OZ ) bloc par bloc ou par ensemble de blocs, mais le débit nécessaire à la transmission de ces informations s'accroît alors.
Ces deux paramètres générés par le module 520 sont codés par un codage entropique par le module 509 puis insérés dans le flux binaire (510).
Dans le module 519, la quantification inverse pour calculer W' est appliquée pour le coefficient et l'offset de reconstruction OZ définis dans les paramètres 520. Pour les autres coefficients du bloc, la quantification inverse est appliquée avec l'offset de reconstruction classique (utilisé dans le module 511). Ainsi, les "secondes" reconstructions diffèrent de la reconstruction classique par l'utilisation d'un seul couple (coefficient, offset) différent. En particulier, si l'encodeur utilise plusieurs types de transformée ou plusieurs tailles de transformée, on transmet, au décodeur, un numéro de coefficient et un offset de reconstruction pour chaque type ou chaque taille de transformée. A la fin de la seconde quantification inverse 519, les mêmes traitements que ceux appliqués au signal "classique" sont réalisés. En détail, une transformation inverse 512 est appliquée à ce nouveau résiduel (qui a donc été transformé 507, quantifié 508 puis déquantifié 519). Puis, en fonction du codage du bloc courant (Intra ou Inter), une compensation de mouvement inverse 514 ou une prédiction Intra inverse 513 est effectuée. Enfin, lorsque tous les blocs (414, 415, 416) de l'image courante sont décodés. Cette nouvelle reconstruction de l'image courante est filtrée par le filtre de deblocking 515 avant d'être insérée parmi les multiples "secondes" reconstructions 518. On obtient ainsi, en parallèle, l'image décodée via le module 511 constituant l'image de référence classique, et une ou plusieurs "secondes" reconstructions de l'image (via le module 519 et d'autres modules similaires le cas échéant) constituant d'autres images de référence correspondant à la même image de la séquence vidéo. Sur la figure 5, le traitement selon l'invention des résiduels transformés, quantifiés et déquantifiés par la seconde quantification inverse 519 est représenté par les flèches en pointillés. On comprend donc ici que, à l'instar de l'illustration de la figure 4, le codage de l'image suivante peut être réalisé par bloc de pixels avec compensation de mouvement en référence à n'importe quel bloc de l'une des images de référence ainsi reconstruites.
En référence maintenant à la figure 6, un décodeur 20 selon le premier mode de réalisation comprend des modules de traitement de décodage 601 à 609 équivalents aux modules 201 à 209 décrits ci-dessus en lien avec la figure 2, pour produire un signal vidéo 609 en vue d'une restitution de la séquence vidéo par affichage. En particulier, le module 603 de déquantification met en oeuvre par exemple la formule W'= (qz Zz -0Z ). sgn(ZZ) exposée précédemment. A titre illustratif et pour des raisons de simplification de représentation, les images 451 à 457 (figure 4) peuvent être considérées comme les images codées constituant le flux binaire 510 (les codage/décodage entropique ne modifiant pas les informations de l'image). Le décodage de ces images génère notamment les images reconstruites classiques composant le signal vidéo de sortie 609. Le module d'images de référence 608 est similaire au module 208 de la figure 2, et par analogie à la figure 5, il est composé d'un module des multiples "secondes" reconstructions 611 et d'un module contenant les images de référence classiques 610. Au début du décodage de l'image courante, le nombre de multiples reconstructions est extrait du flux binaire 601 et décodé entropiquement. De même, les paramètres (numéro de coefficient et offset correspondant) des "secondes" reconstructions sont aussi extraits du flux binaire, décodés entropiquement et transmis au(x) module(s) paramètres de seconde reconstruction 613. Dans cet exemple, nous décrirons le processus d'une seule seconde reconstruction, bien qu'à l'instar du codeur 10, d'autres reconstructions peuvent être réalisées, éventuellement en parallèle, avec des modules appropriés. Ainsi, un second module de déquantification 612 calcule, pour chaque bloc de données, une quantification inverse différente du module "classique" 603.
Dans cette nouvelle quantification inverse, pour le numéro du coefficient donné en paramètre 613, l'équation de déquantification est 24 appliquée avec l'offset de reconstruction OZ fourni également par le module paramètres de seconde reconstruction 613. Les autres coefficients de chaque résiduel sont, dans ce mode de réalisation, déquantifiés avec un offset de reconstruction similaire au module 5 603, généralement égal à zéro. Comme pour l'encodeur, le résiduel (transformé, quantifié, déquantifé) en sortie du module 612 est détransformé (604) par application de la transformée inverse de celle 507 utilisée au codage. Puis, en fonction du codage du bloc courant (Intra ou Inter), une 10 compensation de mouvement inverse 606 ou une prédiction Intra inverse 605 est effectuée. Enfin, lorsque tous les blocs de l'image courante sont décodés, la nouvelle reconstruction de l'image courante est filtrée par le filtre de deblocking 607 avant d'être insérée parmi les multiples "secondes" reconstructions 611. 15 Ce parcours des résiduels transformés, quantifiés et déquantifiés par la seconde quantification inverse 612 est symbolisé par les flèches en pointillés. On notera que ces "secondes" reconstructions de l'image courante ne sont pas utilisées en tant que sortie de signal vidéo 609. En effet, ces autres reconstructions ne sont utilisées qu'en tant qu'images de référence 20 supplémentaires pour des prédictions ultérieures, alors que seule l'image reconstruite classiquement constitue le signal de sortie vidéo 609. Du fait de cette non utilisation des "secondes" reconstructions comme signal de sortie, dans une variante de réalisation visant à diminuer les calculs et le temps de traitement, on envisage de reconstruire, en guise de 25 "seconde" reconstruction, que les blocs de la "seconde" reconstruction effectivement utilisés pour la compensation de mouvement. On entend par "effectivement utilisé" un bloc de la "seconde" reconstruction qui constitue une référence (c'est-à-dire un prédicteur de bloc) pour la compensation de mouvement d'un bloc d'une image ultérieurement encodée de la séquence 30 vidéo. On décrit maintenant un mode de réalisation simplifié de l'invention, en référence aux figures 7 et 8. Dans ce second mode de réalisation, les "secondes" reconstructions ne sont plus produites depuis les résiduels quantifiés en appliquant, pour chacune des reconstructions, l'ensemble des étapes de quantification inverse 519, transformée inverse 512, détermination Inter/Intra 513-514 puis deblocking 515. Ces "secondes" reconstructions sont produites plus simplement à partir de la reconstruction "classique" produisant l'image de référence classique 517. Ainsi, les autres reconstructions d'une image sont construites à l'extérieur de la boucle de décodage. Dans l'encodeur 10 de la figure 7, les modules 701 à 715 sont similaires aux modules 101 à 115 de la figure 1 et aux modules 501 à 515 de la figure 5. Il s'agit des modules pour un traitement classique selon l'état de l'art. Les images de référence 716 composées des images de référence classiques 717 et des "secondes" reconstructions 718 sont respectivement similaires aux modules 516, 517, 518 de la figure 5. Notamment, les images 717 sont les mêmes que les images 517.
Dans ce deuxième mode de réalisation, les multiples "secondes" reconstructions 718 d'une image sont calculées après la boucle de décodage, une fois que l'image de référence classique 717 correspondant à l'image courante a été calculée. Le module "paramètres de seconde reconstruction" dont un fonctionnement sera détaillé par la suite, fournit un numéro de coefficient i et un offset de reconstruction OZ au module 720, nommé module de résiduel correctif. Comme pour le module 520, les deux paramètres générés par le module 719 sont codés par un codage entropique par le module 709 puis insérés dans le flux binaire (710).
Ce dernier module 720 calcule une quantification inverse d'un bloc de coefficients tous égaux à zéro. Lors de cette déquantification, le coefficient ayant la position i fournie par le module 719 est déquantifié par l'équation W'= (ql Zz -0z ). sgn(ZZ) en appliquant l'offset de reconstruction OZ fourni par ce même module 719 et différent de l'offset (généralement nul) utilisé en 711.
Cette déquantification résulte en un bloc de coefficients dans lequel le coefficient numéro i prend la valeur OZ et les autres coefficients restent, quant à eux, égaux à zéro.
Le bloc généré subit ensuite une transformée inverse ce qui fournit un bloc résiduel correctif. Puis, le bloc résiduel correctif est ajouté a chacun des blocs de l'image courante reconstruite classiquement 717 pour fournir une nouvelle image de référence, qui est insérée dans le module 718. On remarque donc que le module 720 produit un résiduel correctif visant à corriger l'image de référence classique en des "secondes" images de référence telles qu'elles auraient dû être par application des paramètres de seconde reconstruction utilisés (au niveau du module 719).
Cette méthode est moins complexe que la précédente, d'une part, car on évite d'effectuer la boucle de décodage (étapes 711 à 715) pour chacune des "secondes" reconstructions, et d'autre part, car il suffit de calculer une seule fois le résiduel correctif au niveau du module 720. En particulier, on remarquera que cette réalisation est propice à l'absence de stockage des multiples "secondes" reconstructions 718, étant donné qu'il est aisé de calculer celles-ci à la volée (au moment d'effectuer la compensation de mouvement) à partir de l'image de référence classique et des résiduels correctifs 720. Notons que l'utilisation de plusieurs types ou tailles de transformée ou l'utilisation de pas de quantification QP adaptatifs, implique le calcul de seconds résiduels adaptés à ces paramètres. Par exemple, dans la norme H.264, lorsque deux tailles de transformée sont utilisées (4x4 et 8x8), le calcul de deux résiduels correctifs 720 devrait être nécessaire: un résiduel correctif de taille 4x4 qui est ajouté aux blocs codés avec la transformée 4x4 et un résiduel correctif de taille 8x8 qui est ajouté aux blocs codés avec la transformée 8x8. Expérimentalement, il a été remarqué que l'application d'un seul résiduel correctif de taille 4x4 à chacun des blocs 4x4 du bloc 8x8 est aussi efficace que l'utilisation de ces deux seconds résiduels correctifs même si les deux tailles de transformée sont utilisées. Ainsi, on peut prévoir d'appliquer un nombre de résiduels correctifs inférieur au nombre de tailles de transformées. Par exemple, on ne conserve que le résiduel de plus petite taille, ici 4x4.
Enfin, de façon similaire au premier mode de réalisation, d'autres "secondes" reconstructions de l'image courante sont obtenues en utilisant plusieurs fois le module résiduel correctif 720 avec des paramètres de seconde reconstruction 719 différents.
On notera que les approches des figures 5 et 7 peuvent être mélangées pour produire des "secondes" reconstructions de manière panachée. En référence maintenant à la figure 8, le décodeur 20 correspondant à ce mode de réalisation comprend des modules 801 à 809 équivalents au module 201 à 209 (et donc 601 à 609). De plus, le module des images de référence 808 est similaire au module 608, avec des images de référence classiques 810 (similaires à 610) et de multiples "secondes" reconstructions 811 (similaires à 611). Comme pour le codage de la figure 7, le décodage complet n'est ici réalisé que pour l'image de référence classique (qui est exploitée en tant que sortie vidéo 209), les autres reconstructions étant produites à l'aide de résiduels correctifs 812. En détail, au début du décodage de l'image courante, le nombre de multiples reconstructions est extrait du flux binaire 801 et décodé entropiquement. De même, les paramètres des "secondes" reconstructions sont aussi extraits du flux binaire, décodés entropiquement et transmis au module paramètres de seconde reconstruction 813. Ces paramètres sont utilisés pour créer un résiduel correctif de texture 812. Ce résiduel est calculé de la même manière que dans le module 720: à partir d'un bloc nul sur lequel sont appliqués une quantification inverse dont un décalage de quantification est modifié pour un numéro de coefficient particulier, puis une transformation inverse. A la fin du décodage de l'image courante 807, ce résiduel correctif 812 est ajouté à chacun des blocs de l'image courante avant que cette dernière ne soit insérée parmi les multiples autres reconstructions 811. En variante, ce résiduel correctif peut n'être appliqué qu'aux seuls blocs effectivement utilisés pour une prédiction ultérieure.
Comme pour le codage, le calcul du résiduel correctif 812 peut dépendre de la taille ou du type de transformation utilisé ou du pas de quantification QP utilisé pour le codage de chaque bloc. Les "seconds" décodages/reconstructions de l'image courante sont obtenues en utilisant plusieurs fois le module résiduel correctif 812 avec d'autres paramètres de seconde reconstruction 813 extraits du flux binaire et décodés. On décrit maintenant le fonctionnement des modules 520 et 719 pour la sélection de coefficients et de décalages de reconstruction associés optimum. Les algorithmes décrits ci-après peuvent en particulier être mis en oeuvre pour des sélections de paramètres d'autres types de décodages/reconstructions d'une image courante en plusieurs "secondes" reconstructions: par exemple des reconstructions appliquant un filtre de contraste et/ou un filtre de flou sur l'image de référence classique. Dans ce cas, la sélection peut consister à choisir une valeur pour un coefficient particulier d'un filtre de convolution mis en oeuvre dans ces filtres, ou choisir la taille de ce filtre. On notera que les modules 613 et 813 prévus au décodage ne font que récupérer des informations dans les flux binaires.
Comme introduit précédemment, dans le mode de réalisation décrit ici, on utilise deux paramètres pour réaliser une "seconde" reconstruction: le numéro i du coefficient à déquantifier différemment et l'offset de reconstruction OZ que l'on choisit pour réaliser cette quantification inverse différente. Les modules 520 et 719 réalisent une sélection automatique de ces 25 paramètres pour une seconde reconstruction. En détail, en ce qui concerne l'offset (décalage) de quantification, on considère tout d'abord, pour simplifier les explications, que l'offset de quantification f de l'équation ZZ = int/ W + f . sgn(W) ci-dessus est ql / systématiquement égal à qz 2 Par propriété des processus de quantification et de quantification inverse, l'offset de reconstruction OZ optimal appartient à l'intervalle [_q,';q,'] Comme précisé ci-dessus, la reconstruction "classique" pour générer le signal 609/809 met généralement en oeuvre un offset nul (OZ =0) Plusieurs approches pour fixer l'offset associé à un coefficient donné (la sélection du coefficient est décrite ci-après), pour une "seconde" reconstruction, peuvent alors être prévues: - selon une première approche : le choix de OZ est fixé en fonction du nombre de multiples "secondes" reconstructions de l'image courante déjà insérées dans la liste 518/718 des images de référence. Cette configuration offre une complexité réduite pour ce processus de sélection. En effet, on a pu observer que, pour un coefficient donné, l'offset de reconstruction OZ le plus efficace est égal à '7 ou ûql4 lorsqu'une seule reconstruction de la première image appartient à l'ensemble des images de référence utilisé.
Lorsque deux "secondes" reconstructions sont déjà disponibles (utilisant ql 4 et ûql4 ), un offset égal à q, ou ûq donne les meilleurs résultats 8 8 moyens en termes de débit-distorsion du signal pour les deux "secondes" reconstructions suivantes, etc.; - selon une deuxième approche : l'offset OZ peut être sélectionné en fonction d'un critère débit-distorsion. Si l'on souhaite ajouter une nouvelle "seconde" reconstruction de la première image de référence à l'ensemble des images de référence, on teste alors toutes les valeurs (par exemple entières) de OZ appartenant à l'intervalleûql 2 ; 1, 2 ] ; c'est-à-dire que chaque reconstruction (avec OZ différent pour le coefficient donné) est testée à l'intérieur de la boucle de codage. L'offset de quantification qui est sélectionné pour le codage est celui qui minimise le critère débit-distorsion; - selon une troisième approche : l'offset OZ qui fournit la reconstruction la plus "complémentaire" de la reconstruction "classique" (ou de l'ensemble des reconstructions déjà sélectionnées) est sélectionné. Pour cela, on compte le nombre de fois où un bloc de la reconstruction évaluée (associé à un offset 6Z , lequel varie sur la plage de valeurs possibles du fait du pas de quantification QP) fournit une qualité supérieure au bloc de la reconstruction "classique" (ou de l'ensemble des reconstructions déjà sélectionnées), la qualité pouvant être évaluée avec une mesure de distorsion telle qu'un SAD (erreur absolue ù "Sum ofAbsolute Differences"), SSD (erreur quadratique ù "Sum of Squared Differences" ) ou PSNR (rapport signal sur bruit ù "Peak Signal to Noise Ratio"). L'offset 6Z qui maximise ce nombre est sélectionné.
Selon la même approche, on peut construire l'image dont chaque bloc est égal au bloc qui maximise la qualité parmi le bloc de même position de la reconstruction à évaluer, celui de la reconstruction "classique" et des autres secondes reconstructions déjà sélectionnées. Chaque image complémentaire, correspondant à chaque offset 6Z (pour le coefficient donné), est évaluée par rapport à l'image originale selon un critère de qualité similaire à ceux ci-dessus. L'offset 6Z, dont l'image construite de cette manière maximise la qualité, est alors sélectionné. En ce qui concerne le choix du coefficient à modifier, on considère tout d'abord que seule la transformée DCT 4x4 est utilisée. Le choix consiste donc à sélectionner le coefficient optimal parmi les 16 de la transformée DCT 4x4. Plusieurs approches sont alors envisagées, le meilleur offset 6Z étant déjà connu pour chacun des coefficients comme déterminé ci-dessus: - tout d'abord, le coefficient utilisé pour la seconde reconstruction est prédéterminé. Cette réalisation offre une complexité faible. En particulier, le premier coefficient (coefficient noté "DC" selon l'état de l'art) est choisi. Il a en effet pu être observé que le choix de ce coefficient DC permet d'obtenir des "secondes" reconstructions qui présentent les meilleurs résultats moyens (en termes de débit-distorsion); - puis, l'offset 6Z de reconstruction étant fixé, on opère de façon similaire à la deuxième approche ci-dessus pour déterminer 6Z : on applique le meilleur offset pour chacun des coefficients du bloc et on sélectionne le coefficient qui minimise le critère débit-distorsion; - également, le numéro de coefficient peut être sélectionné de façon similaire à la troisième approche ci-dessus pour déterminer O : on applique le meilleur offset pour chacun des coefficients du bloc et on sélectionne le coefficient qui maximise la qualité (plus grand nombre de blocs évalués ayant une meilleure qualité que le bloc "classique"); - de même on peut construire l'image dont chaque bloc est égal au bloc qui maximise la qualité parmi le bloc de même position de la reconstruction à évaluer, celui de la reconstruction "classique" et des autres secondes reconstructions déjà sélectionnées. Le coefficient qui maximise la qualité est alors sélectionné. Ces quelques exemples d'approches permettent aux modules 520 et 719 de disposer de couples (numéro de coefficient; offset de reconstruction) pour piloter les modules 519 et 720 et réaliser autant de "secondes" reconstructions. On décrit maintenant un processus mis en oeuvre, toujours par ces modules 520 et 719, pour la sélection automatique du meilleur type d'image de référence.
En effet, les multiples "secondes" reconstructions ne fournissent pas systématiquement des gains positifs en termes de performance (réduction du débit, ratio débit-distorsion amélioré, etc.) de même que la reconstruction "classique". On propose donc ici des critères à mettre en oeuvre pour sélectionner un ensemble d'images de référence appartenant aux images de référence classiques (517 et 717) et aux "secondes" reconstructions de ces images (518 et 718). Afin de garantir un compromis débit-distorsion-complexité, le nombre maximal d'images de référence recommandé par le groupe VCEG est de quatre. A ce stade, on connaît déjà le numéro du coefficient et l'offset associé à chaque reconstruction traitée, et quatre images de référence classiques. Ici aussi, plusieurs approches peuvent être adoptées: - comme pour les premiers critères de la sélection du coefficient ou de l'offset de reconstruction, les images de référence peuvent être prédéfinies, à savoir par exemple conserver les trois images de référence les plus récentes et remplacer la plus ancienne des quatre par une "seconde" reconstruction de l'image la plus récente. Notamment, on a pu observer que le remplacement d'une image de référence (la plus ancienne) est plus efficace en moyenne que le remplacement des trois images de référence les plus anciennes par des "secondes" reconstructions de l'image la plus proche; - comme pour les deuxièmes critères de la sélection du coefficient ou de l'offset de reconstruction, on peut encoder une image suivante de la séquence vidéo avec chacun des ensembles d'images de référence possibles (plusieurs sous-ensembles d'images), et évaluer lequel de ces ensembles d'images de référence obtient le meilleur compromis débit- distorsion pour le codage de l'image suivante. Les remplacements correspondants sont alors réalisés;
- comme pour les troisièmes critères de la sélection du coefficient ou de l'offset de reconstruction, pour une nouvelle reconstruction et une image de référence déjà mémorisée (éventuellement l'image de référence classique), on crée une image dont chaque bloc est le bloc de meilleure qualité entre la les deux reconstructions. Le PSNR de cette image est alors calculé. Si la différence entre ce PSNR et celui de l'image de référence à remplacer (celle déjà mémorisée) est supérieure à b , alors la nouvelle reconstruction remplace cette image de référence. b est défini par la formule suivante : b = QP , où QP est le pas de quantification utilisé X FrameRate + X2lmageSize pour le codage, FrameRate est le nombre d'images par seconde, ImageSize est le nombre de pixel de l'image courante, et X1 et X2 sont des coefficients de pondération qui dépendent des choix de codage utilisés. Si plusieurs images de référence sont déjà stockées, on remplace celle correspondant au PSNR (supérieur à 8 ) le plus élevé.
En référence maintenant à la figure 9, il est décrit à titre d'exemple une configuration matérielle particulière d'un dispositif de traitement d'une séquence vidéo apte à une mise en oeuvre du procédé selon l'invention. Un dispositif de traitement d'information mettant en oeuvre l'invention est par exemple un micro-ordinateur 50, une station de travail, un assistant personnel, ou un téléphone mobile connecté à différents périphériques. Selon encore un autre mode de réalisation de l'invention, le dispositif de traitement d'information se présente sous la forme d'un appareil photographique muni d'une interface de communication pour autoriser une connexion à un réseau.
Les périphériques reliés au dispositif de traitement d'information comprennent par exemple une caméra numérique 64, ou un scanner ou tout autre moyen d'acquisition ou de stockage d'images, relié à une carte d'entrée/sortie (non représentée) et fournissant au dispositif de traitement d'information des données multimédia, par exemple de type séquence vidéo.
Le dispositif 50 comporte un bus de communication 51 auquel sont reliés : - une unité centrale de traitement CPU 52 se présentant par exemple sous la forme d'un microprocesseur ; - une mémoire morte 53 dans laquelle peuvent être contenus les 20 programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention. Il peut s'agir d'une mémoire flash ou EEPROM; - une mémoire vive 54 qui, après la mise sous tension du dispositif 50, contient le code exécutable des programmes de l'invention nécessaires à la mise en oeuvre de l'invention. Cette mémoire vive 54 est de type RAM (à accès 25 aléatoire), ce qui offre des accès rapide comparés à la mémoire morte 53. Cette mémoire RAM 54 mémorise en particulier les différentes images et les différents blocs de pixels au fur et à mesure des traitements (transformée, quantification, stockage des images de référence) sur les séquences vidéo ; - un écran 55 permettant de visualiser des données notamment 30 vidéo et/ou de servir d'interface graphique avec l'utilisateur qui peut ainsi interagir avec les programmes de l'invention, à l'aide d'un clavier 56 ou de tout autre moyen tel qu'un dispositif de pointage, comme par exemple une souris 57 ou un crayon optique ; - un disque dur 58 ou une mémoire de stockage, telle qu'une mémoire de type compact flash, pouvant comporter les programmes de l'invention ainsi que des données utilisées ou produites lors de la mise en oeuvre de l'invention; - un lecteur de disquettes 59 optionnel, ou un autre lecteur de support de données amovible, adapté à recevoir une disquette 63 et à y lire / écrire des données traitées ou à traiter conformément à l'invention ; et - une interface de communication 60 reliée au réseau de télécommunications 61, l'interface 60 étant apte à transmettre et à recevoir des données. Dans le cas de données audio, le dispositif 50 est équipé de préférence d'une carte d'entrée/sortie (non représentée) qui est reliée à un microphone 62. Le bus de communication 51 autorise une communication et une interopérabilité entre les différents éléments inclus dans le dispositif 50 ou reliés à celui-ci. La représentation du bus 51 n'est pas limitative et, notamment, l'unité centrale 52 est susceptible de communiquer des instructions à tout élément du dispositif 50 directement ou par l'intermédiaire d'un autre élément du dispositif 50. Les disquettes 63 peuvent être remplacées par tout support d'information tel que, par exemple, un disque compact (CD-ROM) réinscriptible ou non, un disque ZIP ou une carte mémoire. D'une manière générale, un moyen de stockage d'information, lisible par un micro-ordinateur ou par un microprocesseur, intégré ou non au dispositif de traitement (codage ou décodage) d'une séquence vidéo, éventuellement amovible, est adapté à mémoriser un ou plusieurs programmes dont l'exécution permet la mise en oeuvre du procédé selon l'invention.
Le code exécutable permettant au dispositif de traitement d'une séquence vidéo la mise en oeuvre de l'invention peut être indifféremment stocké en mémoire morte 53, sur le disque dur 58 ou sur un support numérique amovible tel que par exemple une disquette 63 comme décrite précédemment. Selon une variante, le code exécutable des programmes est reçu par l'intermédiaire du réseau de télécommunications 61, via l'interface 60, pour être stocké dans un des moyens de stockage du dispositif 50 (tel que le disque dur 58 par exemple) avant d'être exécuté. L'unité centrale 52 commande et dirige l'exécution des instructions ou portions de code logiciel du ou des programmes de l'invention, les instructions ou portions de code logiciel étant stockées dans l'un des moyens de stockage précités. Lors de la mise sous tension du dispositif 50, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 58 ou la mémoire morte 53, sont transférés dans la mémoire vive 54 qui contient alors le code exécutable du ou des programmes de l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en oeuvre de l'invention.
On notera également que le dispositif mettant en oeuvre l'invention ou incorporant celle-ci est réalisable aussi sous la forme d'un appareil programmé. Par exemple, un tel dispositif peut alors contenir le code du ou des programmes informatiques sous une forme figée dans un circuit intégré à application spécifique (ASIC).
Le dispositif décrit ici et, particulièrement, l'unité centrale 52, sont susceptibles de mettre en oeuvre tout ou partie des traitements décrits en lien avec les figures 4 à 8, pour mettre en oeuvre les procédés objets de la présente invention et constituer les dispositifs objets de la présente invention. Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas. En particulier, les modes de réalisation décrits ci-dessus prévoient la génération de "secondes" images de référence pour lesquelles seul un couple (numéro de coefficient; offset de quantification) est différent par rapport à l'image de référence "classique". Il peut toutefois être prévu qu'un plus grand nombre de paramètres soit modifié pour générer une "seconde" reconstruction: par exemple plusieurs couples (coefficient; offset).
Claims (21)
- REVENDICATIONS1. Procédé de traitement d'une séquence vidéo (110, 501, 601, 701, 801) constituée d'une suite d'images numériques (401 à 407) comprenant une image courante (401) à traiter, caractérisé en ce qu'il comprend les étapes consistant à: - générer (511, 603, 720, 812) une première reconstruction d'au moins une première image (402 à 404) de la séquence, de sorte à obtenir au moins une première image de référence (517, 610, 717, 810); - générer (519, 612, 720, 812) au moins une deuxième reconstruction (408 à 413) de ladite au moins une première image (402 à 404) différente de la première reconstruction, de sorte à obtenir au moins une seconde image de référence (518, 611, 718, 811); et - prédire (505, 606, 705, 806) au moins une partie (414, 415, 416) de ladite image courante (401) à partir d'au moins une desdites images de référence (516, 608, 716, 808).
- 2. Procédé selon la revendication précédente, dans lequel lesdites reconstructions sont réalisées à partir d'une version quantifiée de ladite première image, et lesdites première et deuxième reconstructions diffèrent par des quantifications inverses (511/519, 603/612, 711/720, 803/812) différentes.
- 3. Procédé selon la revendication précédente, dans lequel ladite version quantifiée de la première image est composée de blocs de données formés chacun d'un ensemble de coefficients, et les quantifications inverses différentes mettent en oeuvre, pour au moins un coefficient donné (W;) de bloc, des décalages (0;) de quantification différents.
- 4. Procédé selon la revendication précédente, comprenant une étape de sélection automatique (520, 613, 719, 813) d'au moins un coefficient de bloc (W;) et de son décalage de quantification associé (0;) pour générer une dite deuxième reconstruction (518, 511, 718, 811) différente de la première reconstruction.
- 5. Procédé selon l'une quelconque des revendications 3 et 4, dans lequel ladite étape consistant à générer au moins une deuxième reconstruction comprend:- la détermination (720, 812) d'au moins un résiduel correctif à partir d'au moins un paramètre de deuxième reconstruction et d'un bloc de coefficients égaux à zéro; et - l'ajout dudit au moins un résiduel correctif à ladite première image de référence (717, 810) de sorte à obtenir ladite au moins une seconde image de référence (718, 811).
- 6. Procédé selon la revendication 5, dans lequel la détermination d'un résiduel correctif (720, 812) comprend une quantification inverse dudit bloc de coefficients égaux à zéro, ladite quantification inverse mettant en oeuvre, pour au moins un coefficient de bloc, un décalage de quantification différent de celui mis en oeuvre pour la première reconstruction (711, 803).
- 7. Procédé selon la revendication 5 ou 6, dans lequel le traitement de la séquence vidéo comprend une transformation de blocs d'image mettant en oeuvre plusieurs tailles de blocs, et ladite étape consistant à générer au moins une deuxième reconstruction met en oeuvre des résiduels correctifs d'une seule taille.
- 8. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel lesdites première et deuxième reconstructions de la première image (402 à 404) sont générées en parallèle à partir de ladite première image.
- 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel, pour ladite prédiction de l'au moins une partie de l'image courante (401), lesdites images de référence (516, 608, 716, 808) comprennent des reconstructions d'une unique première image (402 à 404) de la séquence.
- 10. Procédé selon la revendication précédente, dans lequel ladite unique première image est l'image (402) déjà reconstruite la plus proche temporellement de l'image courante (401) à l'intérieur de ladite séquence vidéo (110).
- 11. Procédé selon l'une quelconque des revendications précédentes, dans lequel lesdites images sont composées d'une pluralité de blocs de données, et au moins une dite deuxième reconstruction (408 à 413) de la première image (402 à 404) comprend la reconstruction des seuls blocs (417à 419) de ladite première image utilisés lors de la prédiction de l'au moins une partie de l'image courante (401).
- 12. Procédé selon l'une quelconque des revendications précédentes, comprenant le remplacement de ladite première image de référence préalablement stockée en mémoire par une dite seconde image de référence.
- 13. Procédé selon la revendication précédente, dans lequel ladite première image de référence stockée est une image reconstruite (517, 610, 717, 810) selon une reconstruction prévue dans un format de codage standard.
- 14. Procédé selon l'une quelconque des revendications précédentes, dans lequel le traitement comprend le codage de ladite séquence vidéo (110) en un flux codé (510, 710), et le procédé comprend une étape de signalisation, dans le flux codé résultant dudit codage, d'informations représentatives des paramètres desdites reconstructions ayant abouti auxdites images de référence.
- 15. Procédé selon l'une quelconque des revendications précédentes, comprenant la prédiction d'une partie (415) de l'image courante (401) à partir de ladite première image de référence (402) correspondant à une première image (i-1) de la séquence (110), et la prédiction d'au moins une autre partie (414) de l'image courante (401) à partir d'au moins une seconde image de référence (408) correspondant à la même première image (i-1) de la séquence.
- 16. Dispositif de traitement (10, 20) d'une séquence vidéo (110) constituée d'une suite d'images numériques (401 à 407) comprenant une image 25 courante (401) à traiter, caractérisé en ce qu'il comprend: - un moyen de génération apte à générer une première reconstruction d'au moins une première image (402 à 404) de la séquence, de sorte à obtenir une première image de référence (517, 610, 717, 810), et à générer au moins une deuxième reconstruction (408 à 413) de ladite première image 30 (402 à 404) différente de la première reconstruction, de sorte à obtenir au moins une seconde image de référence (518, 611, 718, 811); 2951345 39 un moyen de prédiction apte à prédire au moins une partie (414, 415, 416) - de ladite image courante (401) à partir d'au moins une desdites images de référence (516, 608, 716, 808).
- 17. Dispositif (10, 20) selon la revendication 16, comprenant un 5 ensemble de décodage (511-515) d'une image codée pour produire une image décodée, ledit ensemble de décodage comprenant: - un premier module (511, 603) de quantification inverse pour déquantifier ladite image codée selon des premiers paramètres, de sorte à générer ladite première reconstruction (517, 610) de ladite image codée, 10 - un module (520, 613) de génération de paramètres de reconstruction aptes à générer des deuxièmes paramètres différents desdits premiers paramètres, et - au moins un deuxième module (519, 612) de quantification inverse pour générer une deuxième reconstruction (518, 611) de ladite image codée à 15 partir desdits deuxièmes paramètres.
- 18. Dispositif (10, 20) selon la revendication 16, comprenant: - un ensemble de décodage (711-715, 802-809) d'une image codée pour produire une image décodée correspondant à ladite première reconstruction (717, 810) de l'image, 20 un module (720, 812) de calcul d'au moins un résiduel correctif à partir d'un bloc de coefficients nuls et de deuxièmes paramètres, et d'application dudit au moins un résiduel correctif à ladite image décodée de sorte à générer ladite au moins une deuxième reconstruction (718, 811).
- 19. Signal vidéo codé (510, 710) d'une séquence vidéo (110) constituée d'une suite d'images numériques (401 à 407), comprenant une pluralité de données binaires représentatives d'une pluralité d'images codées (401) de la séquence vidéo, caractérisé en ce que des données binaires représentatives d'images codées (401) font référence à au moins deux reconstructions différentes d'une image précédente (402 à 404) représentée par d'autres données binaires dans le signal, et le signal comprend en outre des informations binaires représentatives de paramètres desditesreconstructions différentes de ladite image codée précédente à partir desdites autres données binaires.
- 20. Moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, comprenant des instructions pour un programme informatique adapté à mettre en oeuvre le procédé de traitement conforme à l'une quelconque des revendications 1 à 15, lorsque le programme est chargé et exécuté par le système informatique.
- 21. Produit programme d'ordinateur lisible par un microprocesseur, comprenant des portions de code logiciel adaptées à mettre en oeuvre le procédé de traitement selon l'une quelconque des revendications 1 à 15, lorsqu'il est chargé et exécuté par le microprocesseur.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0957159A FR2951345B1 (fr) | 2009-10-13 | 2009-10-13 | Procede et dispositif de traitement d'une sequence video |
US13/500,609 US9532070B2 (en) | 2009-10-13 | 2010-10-13 | Method and device for processing a video sequence |
PCT/IB2010/054638 WO2011045758A1 (fr) | 2009-10-13 | 2010-10-13 | Procédé et dispositif de traitement de séquence vidéo |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0957159A FR2951345B1 (fr) | 2009-10-13 | 2009-10-13 | Procede et dispositif de traitement d'une sequence video |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2951345A1 true FR2951345A1 (fr) | 2011-04-15 |
FR2951345B1 FR2951345B1 (fr) | 2013-11-22 |
Family
ID=42211659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0957159A Active FR2951345B1 (fr) | 2009-10-13 | 2009-10-13 | Procede et dispositif de traitement d'une sequence video |
Country Status (3)
Country | Link |
---|---|
US (1) | US9532070B2 (fr) |
FR (1) | FR2951345B1 (fr) |
WO (1) | WO2011045758A1 (fr) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2257073A1 (fr) * | 2009-05-25 | 2010-12-01 | Canon Kabushiki Kaisha | Procédé et dispositif pour transmettre des données vidéo |
GB2486692B (en) * | 2010-12-22 | 2014-04-16 | Canon Kk | Method for encoding a video sequence and associated encoding device |
GB2486733A (en) * | 2010-12-24 | 2012-06-27 | Canon Kk | Video encoding using multiple inverse quantizations of the same reference image with different quantization offsets |
GB2487197B (en) | 2011-01-11 | 2015-06-17 | Canon Kk | Video encoding and decoding with improved error resilience |
GB2487777B (en) * | 2011-02-04 | 2015-01-07 | Canon Kk | Method and device for motion estimation in a sequence of images |
GB2488816A (en) | 2011-03-09 | 2012-09-12 | Canon Kk | Mapping motion vectors from a plurality of reference frames to a single reference frame |
FR3075540A1 (fr) * | 2017-12-15 | 2019-06-21 | Orange | Procedes et dispositifs de codage et de decodage d'une sequence video multi-vues representative d'une video omnidirectionnelle. |
EP3499886A1 (fr) | 2017-12-18 | 2019-06-19 | Canon Kabushiki Kaisha | Procédé et dispositif de codage de données vidéo |
EP3499885B1 (fr) | 2017-12-18 | 2024-07-17 | Canon Kabushiki Kaisha | Procédé et dispositif de codage de données vidéo |
JP2022159639A (ja) * | 2021-04-05 | 2022-10-18 | キヤノン株式会社 | 画像処理装置および画像処理方法、プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1578131A1 (fr) * | 2004-03-18 | 2005-09-21 | STMicroelectronics S.r.l. | Procédés et dispositifs de coder/décoder, produit de programme d'ordinateur associé |
EP1615441A1 (fr) * | 2004-07-06 | 2006-01-11 | STMicroelectronics S.r.l. | Codage de source à description multiple combiné à un codage de canal |
US20070147497A1 (en) * | 2005-07-21 | 2007-06-28 | Nokia Corporation | System and method for progressive quantization for scalable image and video coding |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10285603A (ja) * | 1997-02-10 | 1998-10-23 | Kokusai Electric Co Ltd | 画像符号化方法 |
US6501860B1 (en) | 1998-01-19 | 2002-12-31 | Canon Kabushiki Kaisha | Digital signal coding and decoding based on subbands |
FR2792433A1 (fr) | 1999-04-15 | 2000-10-20 | Canon Kk | Dispositif et procede de transformation de signal numerique |
JP4214440B2 (ja) * | 2000-10-19 | 2009-01-28 | ソニー株式会社 | データ処理装置およびデータ処理方法、並びに記録媒体 |
FR2815748B1 (fr) | 2000-10-20 | 2003-01-24 | Canon Kk | Procede et dispositif de traitement et de decodage d'un signal numerique code |
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 |
FR2842378B1 (fr) | 2002-07-15 | 2005-02-04 | Canon Kk | Procede et dispositif de traitement d'une requete ou de donnees numeriques compressees |
FR2842691B1 (fr) | 2002-07-18 | 2005-01-14 | Canon Kk | Procede et dispositif de transformation d'un signal numerique |
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 |
JP2005223631A (ja) * | 2004-02-05 | 2005-08-18 | Sony Corp | データ処理装置およびその方法と符号化装置および復号装置 |
FR2869442A1 (fr) | 2004-04-23 | 2005-10-28 | Canon Kk | Procede et dispositif de decodage d'une image. |
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 |
FR2896371B1 (fr) | 2006-01-19 | 2008-11-07 | Canon Kk | Procede et dispositif de traitement d'une sequence d'images numeriques au format extensible |
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 |
FR2906433B1 (fr) | 2006-09-22 | 2009-02-27 | Canon Kk | Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre |
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 |
US8718139B2 (en) * | 2007-01-12 | 2014-05-06 | Mitsubishi Electric Corporation | Image decoding device and image decoding method |
US20080240257A1 (en) * | 2007-03-26 | 2008-10-02 | Microsoft Corporation | Using quantization bias that accounts for relations between transform bins and quantization bins |
CN101321284B (zh) * | 2007-06-10 | 2012-01-04 | 华为技术有限公司 | 一种编解码方法、设备及系统 |
US8237779B2 (en) * | 2008-04-04 | 2012-08-07 | Texas Instruments Incorporated | Coding scheme for digital video signals and an image architecture using the same |
FR2931025B1 (fr) | 2008-05-07 | 2010-05-21 | Canon Kk | Procede de determination d'attributs de priorite associes a des conteneurs de donnees, par exemple dans un flux video, procede de codage, programme d'ordinateur et dispositifs associes |
FR2931610B1 (fr) | 2008-05-20 | 2010-12-17 | Canon Kk | Procede et un dispositif de transmission de donnees d'images |
FR2932637B1 (fr) | 2008-06-17 | 2010-08-20 | Canon Kk | Procede et dispositif de codage d'une sequence d'images |
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 |
FR2952497B1 (fr) | 2009-11-09 | 2012-11-16 | Canon Kk | Procede de codage et de decodage d'un flux d'images; dispositifs associes |
FR2955995B1 (fr) | 2010-02-04 | 2012-02-17 | Canon Kk | Procede et dispositif de traitement d'une sequence video |
-
2009
- 2009-10-13 FR FR0957159A patent/FR2951345B1/fr active Active
-
2010
- 2010-10-13 US US13/500,609 patent/US9532070B2/en active Active
- 2010-10-13 WO PCT/IB2010/054638 patent/WO2011045758A1/fr active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1578131A1 (fr) * | 2004-03-18 | 2005-09-21 | STMicroelectronics S.r.l. | Procédés et dispositifs de coder/décoder, produit de programme d'ordinateur associé |
EP1615441A1 (fr) * | 2004-07-06 | 2006-01-11 | STMicroelectronics S.r.l. | Codage de source à description multiple combiné à un codage de canal |
US20070147497A1 (en) * | 2005-07-21 | 2007-06-28 | Nokia Corporation | System and method for progressive quantization for scalable image and video coding |
Non-Patent Citations (2)
Title |
---|
PARAMESWARAN V ET AL: "Adapting quantization offset in multiple description coding for error resilient video transmission", JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION, vol. 20, no. 7, 12 July 2009 (2009-07-12), pages 491 - 503, XP026467882, ISSN: 1047-3203, [retrieved on 20090712], DOI: 10.1016/J.JVCIR.2009.07.003 * |
WEDI T ET AL: "Quantization Offsets for Video Coding", CONFERENCE PROCEEDINGS / IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS), 23 May 2005 (2005-05-23), Kobe, JP, pages 324 - 327, XP010815543, ISBN: 978-0-7803-8834-5, DOI: 10.1109/ISCAS.2005.1464590 * |
Also Published As
Publication number | Publication date |
---|---|
FR2951345B1 (fr) | 2013-11-22 |
WO2011045758A1 (fr) | 2011-04-21 |
US20120207210A1 (en) | 2012-08-16 |
US9532070B2 (en) | 2016-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2951345A1 (fr) | Procede et dispositif de traitement d'une sequence video | |
FR2904494A1 (fr) | Procede et dispositif de compression d'image, systeme de telecommunication comportant un tel dispositif et programme mettant en oeuvre un tel procede | |
FR2906433A1 (fr) | Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre | |
FR2932637A1 (fr) | Procede et dispositif de codage d'une sequence d'images | |
FR2952497A1 (fr) | Procede de codage et de decodage d'un flux d'images; dispositifs associes | |
EP3198876B1 (fr) | Génération et codage d'images intégrales résiduelles | |
FR2955995A1 (fr) | Procede et dispositif de traitement d'une sequence video | |
EP2716045B1 (fr) | Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants | |
FR2956789A1 (fr) | Procede et dispositif de traitement d'une sequence video | |
FR2957744A1 (fr) | Procede de traitement d'une sequence video et dispositif associe | |
FR3057130B1 (fr) | Procede de codage d'une image, procede de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associes | |
FR2907989A1 (fr) | Procede et dispositif d'optimisation de la compression d'un flux video | |
US20120163465A1 (en) | Method for encoding a video sequence and associated encoding device | |
EP2633687B1 (fr) | Codage et décodage vidéo a partir d'un épitome | |
FR2956552A1 (fr) | Procede de codage ou de decodage d'une sequence video, dispositifs associes | |
FR2959093A1 (fr) | Procede et dispositif de prediction d'une information de complexite de texture contenue dans une image | |
EP3991436A1 (fr) | Procédé d'encodage et de décodage vidéo par signalisation d'un sous-ensemble de candidat | |
WO2020161413A1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
FR2918203A1 (fr) | Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants. | |
WO2020002795A1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
FR2851109A1 (fr) | Procede et dispositif de determination de parametres d'un modele d'estimation de la distorsion d'une sequence d'images | |
WO2006056720A1 (fr) | Compression video par modification de quantification par zones d'images | |
FR2903845A1 (fr) | Procede et dispositif de codage d'images, systeme de telecommunication comportant un tel dispositif et programme d'ordinateur mettant en oeuvre un tel procede | |
FR2927494A1 (fr) | Procede de decodage et codage d'une sequence d'images avec compensation de mouvement | |
FR3018149A1 (fr) | Procede et dispositif de selection d'un operateur de conversion de dynamique d'image, programme d'ordinateur et support de stockage correspondant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 7 |
|
PLFP | Fee payment |
Year of fee payment: 8 |
|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 13 |
|
PLFP | Fee payment |
Year of fee payment: 14 |
|
PLFP | Fee payment |
Year of fee payment: 15 |