FR2955995A1 - Procede et dispositif de traitement d'une sequence video - Google Patents

Procede et dispositif de traitement d'une sequence video Download PDF

Info

Publication number
FR2955995A1
FR2955995A1 FR1050797A FR1050797A FR2955995A1 FR 2955995 A1 FR2955995 A1 FR 2955995A1 FR 1050797 A FR1050797 A FR 1050797A FR 1050797 A FR1050797 A FR 1050797A FR 2955995 A1 FR2955995 A1 FR 2955995A1
Authority
FR
France
Prior art keywords
block
coefficient
image
reconstruction
coefficients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1050797A
Other languages
English (en)
Other versions
FR2955995B1 (fr
Inventor
Guillaume Laroche
Xavier Henocq
Patrice Onno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR1050797A priority Critical patent/FR2955995B1/fr
Priority to US13/021,070 priority patent/US20110188573A1/en
Publication of FR2955995A1 publication Critical patent/FR2955995A1/fr
Application granted granted Critical
Publication of FR2955995B1 publication Critical patent/FR2955995B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods 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

L'invention concerne un procédé et un dispositif (10, 20) de traitement d'une séquence vidéo (101) constituée d'images composées de blocs de coefficients, et comprenant les étapes de : - générer (511) des première et deuxième reconstructions (402 à 413) d'une première image, pour obtenir des première et deuxième images de référence (517), la deuxième reconstruction mettant en œuvre, sur un coefficient d'un bloc, une opération différente de celle de la première reconstruction; - prédire (505) une partie (414, 415, 416) de ladite image courante (401 ) à partir d'une des images de référence, et dans lequel la deuxième reconstruction comprend: - l'obtention, pour un bloc de la première image, de valeurs (Wi) calculées à partir des coefficients du bloc et représentatives d'une information de fréquence spatiale; - la sélection d'un coefficient en fonction de ces valeurs calculées, pour lui appliquer ladite opération différente et obtenir ladite deuxième image 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 aux fins de déterminer celui qui optimise un critère débit/distorsion. 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, par exemple image après image. 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) pour obtenir des images de référence. Cette boucle de décodage permet de reconstruire les blocs et les images à partir des résiduels transformés quantifiés. Elle garantit que le codeur et le décodeur utilisent les mêmes images de référence. Ainsi, le résiduel transformé quantifié est déquantifié (111) par application d'une opération de quantification, inverse de celle prévue à l'étape 108, puis 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 de l'opération 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é, au niveau de chaque bloc de l'image codée (en fait le résiduel correspondant), 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 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 5 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 10 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. 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 15 H.264/AVC, tel que celui de la figure 1. Lors du processus de décodage, le flux binaire 201 est tout d'abord décodé entropiquement (202), ce qui permet de traiter chaque résiduel codé. Le résiduel du bloc courant est déquantifié (203) à l'aide de la quantification inverse de celle prévue en 108, puis reconstruit (204) à l'aide de 20 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é 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. 25 Si le codage du bloc courant est de type "Intra", l'indice du bloc prédicteur est extrait du flux binaire et décodé entropiquement. Le bloc prédicteur Intra associé à cet indice est calculé à l'aide 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 30 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 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, et éventuellement l'identifiant de l'image de référence utilisée, sont extraits du flux binaire 201 et décodés (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 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érence.
Dans ce cadre, les inventeurs ont envisagé un procédé de traitement d'une séquence vidéo constituée d'une suite d'images numériques comprenant une image courante à traiter, lesdites images étant composées de blocs de données formés chacun d'un ensemble de coefficients prenant chacun une valeur. Le procédé comprend les étapes consistant à: - générer au moins des première et deuxième reconstructions, différentes entre elles, d'au moins une première image de la séquence, de sorte à obtenir au moins des première et deuxième images de référence, la deuxième reconstruction mettant en oeuvre, sur au moins un coefficient d'un bloc, une opération différente de celle mise en oeuvre lors de la première reconstruction sur le même coefficient de bloc; - prédire au moins une partie de ladite image courante à partir d'au 5 moins une desdites images de référence. A titre d'exemple, les opérations différentes peuvent concerner une quantification inverse ou une transformation inverse différente. Cette approche permet notamment de prédire une partie de l'image courante à partir de la première image de référence correspondant à une 10 première image de la séquence, et de prédire 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, 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 15 parmi celles qui ont été encodées/décodées avant l'image courante à traiter (voir en ce sens la figure 4). Tout comme pour la norme H.264/AVC, cela permet l'utilisation d'un grand nombre d'images de référence, avec cependant de meilleures versions des images de référence que celles classiquement utilisées. Il en résulte ainsi 20 une compression meilleure qu'en utilisant une seule image de référence par image déjà codée. En outre, cette approche 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 25 (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. 30 Il a, par ailleurs, pu être observé 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". De façon connue en soi, les blocs composant une image comprennent une pluralité de coefficients ayant chacun une valeur. La façon dont les coefficients sont parcourus à l'intérieur des blocs, par exemple un parcours en zig-zag ("zig-zag scan" en terminologie anglo-saxonne), définit un numéro de coefficient pour chaque coefficient de bloc. Pour la suite de la description, on parlera indifféremment de "coefficient de bloc", d"'index de coefficient" et de "numéro de coefficient" pour indiquer la position d'un coefficient à l'intérieur d'un bloc en fonction du parcours retenu. On parlera par ailleurs de "valeur de coefficient" pour indiquer la valeur prise par un coefficient donné dans un bloc. La présente invention vise à produire de multiples reconstructions d'une même image qui offrent, à moindre coût, de meilleures versions d'images de référence pour les prédictions ultérieures. Dans ce dessein, l'invention concerne notamment le procédé de traitement introduit ci-dessus, dans lequel la deuxième reconstruction de la première image comprend les étapes consistant à: - obtenir, pour au moins un bloc de la première image, des valeurs calculées à partir des coefficients du bloc et représentatives d'une information de fréquence spatiale; - sélectionner au moins un coefficient de bloc en fonction desdites valeurs calculées, et lui appliquer ladite opération différente de sorte à obtenir ladite deuxième image de référence. Ainsi, une analyse (spatio)-fréquentielle est conduite pour déterminer un ou plusieurs coefficients significatifs dans un bloc ou de façon plus générale dans l'image, à partir duquel ou desquels on réalise une autre reconstruction. En effet, l'analyse fréquentielle permet d'identifier, à moindre coût, les parties changeantes de l'image (contours, évolution horizontale, etc.).
L'invention permet alors de générer des reconstructions tenant compte de ces changements, ce qui améliore en moyenne les prédictions ultérieures. En outre, cette prédiction localisée des coefficients à modifier (lors de l'opération différente) peut être menée de façon similaire au niveau du codeur et du décodeur. Par conséquent, l'invention permet, dans ce cas, de s'affranchir de la transmission d'informations relatives à ces coefficients à modifier, à l'intérieur du flux codé. Il en résulte un coût de codage moindre de la même séquence vidéo. Dans un mode de réalisation, la deuxième reconstruction de la première image comprend en outre une étape consistant à déterminer un sous-ensemble de coefficients de bloc, en fonction desdites valeurs calculées; et ladite sélection d'au moins un coefficient de bloc est réalisée sur ledit sous-ensemble. L'invention permet ainsi de réduire la complexité de l'opération de sélection en restreignant le nombre de coefficients sur lesquels des calculs de sélection sont menés. Selon une caractéristique de l'invention, la détermination dudit sous-ensemble comprend le calcul, pour chaque coefficient de bloc et à partir desdites valeurs calculées, d'au moins une deuxième valeur représentative de l'importance relative des coefficients de bloc entre eux à l'intérieur de ladite première image, et la détermination de coefficients pour constituer ledit sous-ensemble par comparaison des deuxièmes valeurs avec une valeur seuil. Les coefficients sont importants si leurs valeurs (par exemple la somme des coefficients de même numéro pour l'ensemble des blocs de l'image, ou la valeur du coefficient dans un bloc donné) sont significatives par rapport aux autres. Cette disposition garantit que le sous-ensemble construit contient des coefficients dont les valeurs sont très significatives. Ainsi, les autres reconstructions mettant en oeuvre des reconstructions modifiées pour l'un de ces coefficients sont assurément des images de référence suffisamment distinctes de l'image de référence classique, pour améliorer l'efficacité des prédictions.
Par ailleurs, l'utilisateur peut régler la complexité des calculs en jouant sur la valeur seuil et ainsi indirectement sur la taille dudit sous-ensemble. Dans un mode de réalisation de l'invention, le procédé comprend une pluralité de reconstructions différentes de la première image, et la deuxième reconstruction de la première image comprend, en outre, l'étape consistant à supprimer, dudit sous-ensemble, un coefficient sur lequel ladite opération différente a déjà été appliquée pour un nombre prédéfini de reconstructions de la première image. En d'autres termes, on évite de modifier toujours le même coefficient lors d"'autres" reconstructions. On obtient ainsi un ensemble d'images de références plus disparate pour une compression plus efficace. Dans un autre mode de réalisation, étant donné un coefficient sélectionné, la deuxième reconstruction comprend l'application de l'opération différente sur ledit coefficient sélectionné pour chaque bloc de la première image à reconstruire. Cette disposition, appelée par la suite "approche globale", offre une complexité réduite car la même modification est appliquée à l'ensemble des blocs de l'image à reconstruire. En variante ou en combinaison, lors de la deuxième reconstruction, les étapes permettant d'obtenir lesdites valeurs calculées et de sélectionner au moins un coefficient sont réalisées répétitivement pour plusieurs blocs de la première image, de sorte à obtenir un coefficient particulier pour chacun de ces plusieurs blocs, et, dans un dit bloc, est appliquée, audit coefficient particulier, une opération différente de celle mise en oeuvre lors de la première reconstruction sur le même coefficient de bloc. En d'autres termes, cette disposition, appelée par la suite "approche locale", prévoit d'analyser chaque bloc individuellement et de procéder à une opération de reconstruction spécifique à chaque bloc. Il en résulte une amélioration de l'efficacité de codage car le codage de chaque bloc peut être optimisé. En particulier, lors de la deuxième reconstruction, une dite opération différente est appliquée sur au moins un dit premier coefficient pour chaque bloc de la première image à reconstruire et une dite opération différente est appliquée, pour chaque bloc de la première image, sur un coefficient sélectionné particulier audit bloc, et, la sélection dudit coefficient particulier avant d'appliquer ladite opération différente est réalisée parmi un ensemble de coefficients de bloc excluant ledit au moins un premier coefficient. Ce premier coefficient peut naturellement être sélectionné comme évoqué précédemment pour rapproche globale". Ici on combine donc approche globale et approche locale, en évitant de procéder, pour un bloc particulier, à des modifications sur un coefficient déjà modifié de façon globale. On favorise ainsi la diffusion des modifications sur différents coefficients de bloc aux fins d'obtenir des images de références plus disparates. Dans un mode de réalisation, les valeurs calculées représentatives d'une information de fréquence spatiale sont obtenues par transformation de la première image de référence résultant de la première reconstruction. Dans cette configuration, on procède à une analyse à partir notamment d'une image de référence déjà générée, notamment l'image de référence "classique". Comme le décodeur peut disposer de cette image de référence déjà créée via le flux binaire, ce même décodeur peut être en mesure de réaliser le même processus de sélection et donc d'obtenir lui-même la deuxième reconstruction, en transmettant un minimum d'information dans le flux binaire (notamment on peut éviter de transmettre les valeurs calculées). La compression de la séquence est alors améliorée. En variante, les valeurs calculées sont obtenues par transformation de ladite première image, c'est-à-dire l'image originale indépendamment de toute reconstruction. Dans ce cas, il est généralement un besoin de transmettre, dans le flux binaire au décodeur, les coefficients sélectionnés car ce même décodeur n'a pas connaissance de cette première image. En variante encore, la première reconstruction comprend une quantification inverse des valeurs de coefficient d'une version quantifiée de ladite première image, et lesdites valeurs calculées, pour la deuxième reconstruction, sont calculées à partir des valeurs déquantifiées de coefficient obtenues lors de la quantification inverse de la première reconstruction. Dans ce cas et notamment lorsque la première reconstruction est la reconstruction "classique", on récupère les coefficients transformés lors de cette reconstruction "classique". Dans cette configuration, on évite des traitements inutiles, notamment une opération de transformée inutile. En variante encore, lesdites valeurs calculées sont calculées pour chaque coefficient du bloc et sont représentatives d'un gradient au voisinage du coefficient du bloc. L'approche par analyse des gradients permet également une sélection efficace des coefficients à modifier pour obtenir des images de référence disparates et améliorer la compression de la séquence vidéo. Dans un mode de réalisation, l'opération différente de la deuxième reconstruction met en oeuvre une quantification inverse utilisant, pour ledit au moins un coefficient de bloc sélectionné, un décalage de quantification différent de celui utilisé pour le même coefficient lors de la première reconstruction. Le décalage de quantification est également nommé offset de quantification ou offset de reconstruction. Cette disposition permet de disposer d'images de référence adaptées aux algorithmes de compression vidéo avec pertes incluant des mécanismes de quantification. En outre, l'utilisation des décalages de quantification permet de contrôler les plages de quantification et d'offrir, sans complexité technique, des prédicteurs de meilleure qualité pour certains blocs. Dans un mode de réalisation, pour l'ensemble des blocs composant une première image donnée, on associe de façon unique, à un coefficient de bloc, un paramètre définissant ladite opération différente à appliquer, pour chaque bloc, sur ce coefficient de bloc s'il est sélectionné, et le procédé comprend une étape de codage de l'image courante en un flux codé et une étape d'insertion, dans le flux codé, desdits paramètres pour l'ensemble des blocs d'une image courante sous forme d'une unique liste ordonnée selon un ordre prédéterminé.
Ici, un même paramètre (par exemple un décalage de quantification) est associé de façon unique à un numéro de coefficient de bloc pour l'ensemble des blocs de l'image courante. Ainsi, il existe un nombre limité de paramètres à transmettre. Dans cette configuration, l'invention transmet, en une fois, ces paramètres pour l'ensemble de l'image courante, sans les transmettre bloc par bloc. On obtient ainsi une meilleure compression de la séquence vidéo puisque ces paramètres ne sont pas inutilement répétés dans le flux codé.
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, lesdites images étant composées de blocs de données formés chacun d'un ensemble de coefficients prenant chacun une valeur. Le dispositif comprend notamment: - un moyen de génération apte à générer au moins des première et deuxième reconstructions, différentes entre elles, d'au moins une première image de la séquence, de sorte à obtenir au moins des première et deuxième images de référence, la deuxième reconstruction mettant en oeuvre, sur au moins un coefficient d'un bloc, une opération différente de celle mise en oeuvre lors de la première reconstruction sur le même coefficient de bloc; - 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; et dans lequel le moyen de génération pour générer la deuxième reconstruction comprend: - un moyen pour obtenir, pour au moins un bloc de la première image, des valeurs calculées à partir des coefficients du bloc et représentatives d'une information de fréquence spatiale; - un moyen pour sélectionner au moins un coefficient de bloc en fonction desdites valeurs calculées, et pour lui appliquer ladite opération 25 différente de sorte à obtenir ladite deuxième image 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 30 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.
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, comme images de référence, de multiples reconstructions 25 d'au moins une même image; - 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; 30 - 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; - la figure 10 illustre des particularités d'un codeur selon l'invention pour la mise en oeuvre d'un premier algorithme de sélection de coefficients "locaux" à modifier pour une "seconde" reconstruction, par exemple du codeur de la figure 7; - la figure 11 illustre des particularités d'un décodeur selon l'invention pour la mise en oeuvre du premier algorithme, par exemple du décodeur de la figure 7; - la figure 12 illustre des particularités d'un codeur selon l'invention pour la mise en oeuvre d'un deuxième algorithme de sélection de coefficients "locaux" à modifier pour une "seconde" reconstruction, par exemple du codeur de lafigure7;et - la figure 13 illustre des particularités d'un codeur selon l'invention pour la mise en oeuvre d'un troisième algorithme de sélection de coefficients "locaux" à modifier pour une "seconde" reconstruction, par exemple du codeur de la figure 7.
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 même 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 101) 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. Comme vu par la suite, ces paramètres différents peuvent comprendre un coefficient de bloc DCT et un décalage OZ de quantification appliqué lors de la reconstruction. De même, les images 409 et 412 sont des seconds décodages de 25 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 30 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 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 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 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 premier 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 relatifs à cette seconde reconstruction ("numéro du coefficient" et "valeur d'offset de reconstruction", indicateur relatif à l'approche globale ou locale utilisée, etc. 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", etc. 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 principaux 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 chacune des N valeurs de 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 la valeur du ième coefficient du résiduel du bloc courant (avec i variant de 0 à M-1 pour un bloc contenant M coefficients), la valeur de coefficient quantifiée ZZ est obtenue par la formule suivante : Zi =int' 1wil + 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) de la valeur W de coefficient 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), représenté par le module 111/511 dans la boucle de décodage de l'encodeur 10 prévoit que la valeur déquantifiée W' du ième coefficient est obtenue par la formule suivante : W'= (ql ' ZZ -0Z )• sgn(ZZ) . Dans cette formule, ZZ est la valeur quantifiée du ième coefficient, calculée avec 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 telle que W'= W . Cet offset est généralement égal à zéro.
On notera que cette formule est également appliquée par le 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 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 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 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 paramètres peuvent notamment être déterminés au préalable et être les mêmes pour toute la reconstruction (c'est-à-dire pour tous les blocs de pixels) de l'image de référence correspondante. Dans ce cas, ces paramètres sont transmis une seule fois au décodeur pour l'image. Toutefois, comme décrit par la suite en référence aux figures 10 à 13, il est possible d'avoir des paramètres qui varient d'un bloc à l'autre et de transmettre ces paramètres (numéro de coefficient et offset OZ) bloc par bloc. D'autres mécanismes sont encore évoqués par la suite. Ces deux paramètres générés par le module 520 sont codés par codage entropique au niveau du 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 i et l'offset de reconstruction OZ définis dans les paramètres 520. Dans un mode de réalisation, pour les autres coefficients du bloc, la quantification inverse est appliquée avec l'offset de reconstruction classique (utilisé dans le module 511). Ainsi, dans cet exemple, les "secondes" reconstructions peuvent différer de la reconstruction classique par l'utilisation d'un seul couple (coefficient, offset). 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.
Comme on le verra par la suite, on peut toutefois appliquer plusieurs offsets de reconstruction OZ à plusieurs coefficients au sein d'un même bloc. 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 entre les modules 519, 512, 513, 514 et 515. 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 ûOZ ). 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écrivons 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 appliquée avec l'offset de reconstruction OZ fourni également par le module paramètres de seconde reconstruction 613. Les valeurs des autres coefficients de chaque résiduel sont, dans ce mode de réalisation, déquantifiées avec un offset de reconstruction similaire au module 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 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. 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 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 "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 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 dont les valeurs sont toutes égales à zéro. Lors de cette déquantification, la valeur du coefficient ayant la position i fournie par le module 719 est déquantifiée 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 la valeur du coefficient numéro i prend la valeur OZ et les autres valeurs de coefficients restent, quant à elles, égales à 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. Notamment, on peut prévoir de ne reconstruire que les blocs prédicteurs lorsqu'ils sont utilisés pour le (dé)codage d'un bloc courant.
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 l'image de référence résultante 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 généralement que récupérer des informations dans les flux binaires. Dans certains cas décrits ci-après, ces modules peuvent toutefois procéder à la détermination de ces paramètres. Dans ce cas, ces derniers ne sont pas transmis dans le flux binaire 510, 601, 710, 801 (ou alors partiellement), ce qui améliore la compression. 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 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 Oi 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 (Oi =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. Toutefois, dans un mode de réalisation, on réduit le nombre de coefficients parmi lesquels se fera la sélection. En effet, puisque l'on calcule au préalable l'offset associé à ces coefficients, ce sous-ensemble de coefficients permet de réduire la complexité de calcul, aussi bien dans la détermination des offsets associés, que dans la sélection ultérieure du ou des coefficients conservés pour réaliser la "seconde" reconstruction.
Ce traitement préalable comprend différentes sous-étapes.
Premièrement, on obtient, pour chaque bloc de l'image à reconstruire, des valeurs calculées à partir des coefficients du bloc, notamment dans le domaine fréquentiel. Il peut notamment s'agir de transformer chacun des blocs de l'image issue de la reconstruction "classique" (517, 610, 717, 810) par une transformée DCT permettant d'obtenir, pour chaque bloc, les valeurs W' de coefficients représentatives, par définition, d'une information de fréquence spatiale.
Afin d'améliorer l'efficacité de ce traitement, la taille choisie pour cette transformée (DCT) est la même que celle utilisée dans les autres reconstructions, par exemple une DCT 4 pixels x 4 pixels.
Deuxièmement, on calcule la somme Sumi des valeurs ainsi calculées par transformée et correspondant à des coefficients de même indice i sur l'ensemble des blocs ainsi transformes: Sumi = L W , ou Wj est j e image courante la valeur du coefficient i du bloc j transformé dans l'image courante à reconstruire. Cette somme reflète ainsi l'importance relative des coefficients de bloc entre eux sur l'ensemble de l'image.
Lorsque des blocs DCT 4 pixels x 4 pixels sont utilisés, on a ainsi seize sommes qui sont calculées, correspondant aux seize coefficients i=0 à 15. Enfin (troisièmement), parmi l'ensemble I = {0, ..., 15} de ces (seize) coefficients, on supprime ceux qui ne sont pas pertinents, notamment les coefficients k E I vérifiant Sumk < Max(Su A , dl E I) ou Max renvoie la valeur maximale et A est une variable qui dépend notamment du contenu de la séquence, du pas de quantification QP, de la matrice de quantification et/ou des performances du (dé)codeur. A peut être préfixé par l'utilisateur, par exemple A=20. En faisant varier A, l'utilisateur peut ainsi réduire le sous-ensemble I' ainsi obtenu afin de réduire encore la complexité pour les étapes suivantes. On obtient ainsi un sous-ensemble I' comprenant un nombre restreint d'indices de coefficients, comparé aux seize coefficients initialement possibles dans notre exemple.
En utilisant l'image issue de la reconstruction "classique", il est possible de faire procéder à ces mêmes traitements au niveau du décodeur sans transmettre de paramètres spécifiques (sauf peut-être A si celui-ci n'est pas prédéfini de façon globale ou n'est pas déterminable). Ainsi, sans perte de compression, le décodeur peut également déterminer les coefficients ainsi retenus (le sous-ensemble I' et éventuellement ceux résultant de la sélection décrite plus loin). En variante, au lieu de déterminer le sous-ensemble I' à partir de la reconstruction "classique" de l'image courante, on peut appliquer une transformée DCT directement à l'image courante (l'image i-1 de la figure 4 par exemple) et effectuer les calculs des Sum, à partir des valeurs de coefficient ainsi obtenues. Dans ce cas toutefois, les coefficients sélectionnés (soit l', soit ceux issus de la sélection ci-après) doivent être communiqués (dans le flux binaire) au décodeur, car ce dernier n'a pas connaissance de l'image courante. Dans une autre variante qui réduit la complexité de calcul, l'obtention des valeurs calculées à partir des coefficients du bloc peut consister à directement récupérer les coefficients W,J générés dans la boucle de décodage lors de la reconstruction "classique". Dans ce cas, le bloc de déquantification 511/711 communique au bloc 520/719 le résiduel déquantifié correspondant à chaque bloc (flèches discontinues sur les figures 5 et 7), auquel on applique les sous-étapes suivantes (calculs des Sum, et les suppressions pour obtenir I').
Ainsi, on évite les calculs relatifs à une nouvelle transformée DCT. A noter que, dans ce cas, la valeur A utilisée dans la troisième sous-étape est réduite, par exemple A=4, pour tenir compte du fait que l'on manipule ici les coefficients du résiduel de bloc. Enfin, en lieu et place de l'utilisation de la transformée DCT, il est possible d'utiliser d'autres transformations pour évaluer l'importance des coefficients, par exemple le calcul de gradients, comme illustré par la suite en référence à la figure 13. On notera également que la détermination du sous-ensemble I' est réalisée ici avant le calcul des décalages OZ de quantification, afin d'en limiter le nombre. Toutefois, l'invention permet également que ce sous-ensemble ne soit appliqué que lors de la détermination des coefficients auxquels ces décalages sont appliqués (voir ci-après). Dans un mode de réalisation, ce sous-ensemble I' peut être encore plus restreint, par exemple en y supprimant tout coefficient k qui a déjà été utilisé dans au moins n reconstructions précédentes de l'image courante à reconstruire (n étant prédéterminé, par exemple n=2). Ainsi, on réduit encore plus la complexité des calculs à venir pour déterminer les décalages et les coefficients retenus pour une nouvelle "seconde" reconstruction de la même image courante.
Une fois le sous-ensemble I' établi, on fixe donc l'offset associé à chacun des coefficients i de ce sous-ensemble ou des seize coefficients DCT si la construction du sous-ensemble I' n'est pas mise en oeuvre, selon l'une des approches suivantes: - 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 6Z 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 qz 4 et ûql4 ), un offset égal à q, ou ûq donne les meilleurs résultats moyens 8 8 en termes de débit-distorsion du signal pour les deux "secondes" reconstructions suivantes, etc.; - selon une deuxième approche : l'offset 6Z 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 6Z appartenant à l'intervalleûql 2 ;ql 21; c'est-à-dire que chaque reconstruction (avec 6Z différent pour le coefficient i 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 6Z 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 of Absolute 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é. On passe ensuite au choix du coefficient à modifier, en particulier pour rapproche globale" selon laquelle on modifie le même coefficient de bloc pour l'ensemble des blocs de l'image à reconstruire. Ce choix consiste à sélectionner le coefficient optimal parmi les coefficients du sous-ensemble I' lorsque celui-ci est construit, ou parmi les seize coefficients du bloc. 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). En variante, on peut prendre celui correspondant à la somme Sum, maximale telle que définie précédemment; - dans une variante, 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 ou du sous-ensemble I' et on sélectionne le coefficient qui minimise le critère débit- distorsion; - dans une autre variante, le numéro de coefficient peut être sélectionné de façon similaire à la troisième approche ci-dessus pour déterminer 6Z : on applique le meilleur offset pour chacun des coefficients du sous-ensemble I' ou 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"); - dans encore une autre variante, 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, ceux de la reconstruction "classique" et des autres secondes reconstructions déjà sélectionnées. Le coefficient parmi le bloc ou le sous-ensemble I' 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.
Dans certains cas, comme évoqués ci-dessus, les modules 613 et 813 du décodeur 20 peuvent réaliser les mêmes traitements pour disposer des mêmes couples. On évite ainsi de transmettre ces derniers dans le flux binaire. En référence maintenant aux figures 10 à 13, il est décrit une amélioration de l'efficacité du codage dans laquelle les coefficients modifiés pour les "secondes" reconstructions varient de bloc en bloc. On a décrit ci-dessus à titre principal, le cas où un même numéro de coefficient est modifié de façon similaire pour l'ensemble des blocs de l'image à reconstruire. Cette approche est dénommée, pour la suite, "approche globale". Les figures 10 à 13 présentent une approche dite "locale" où les coefficients modifiés sont particuliers à chaque bloc. L'invention permet cependant de combiner, sans difficulté, les approches "globale" et "locale": par exemple, certaines "secondes" reconstructions peuvent mettre en oeuvre l'approche globale et d'autres l'approche locale, ou bien dans une même reconstruction, certains coefficients (notamment le coefficient continu DC de la transformée DCT) peuvent être traités selon l'approche globale (utilisation de l'offset de quantification dans tous les blocs de l'image) et d'autres selon l'approche locale. Afin d'identifier quelle approche est utilisée, il est prévu d'ajouter, dans le flux binaire, un indicateur spécifiant si l'approche locale est utilisée et un indicateur spécifiant si l'approche globale est utilisée. Si l'indicateur de l'approche locale est égal à 1 alors une liste de couples {coefficient i; offset 6Z} est insérée dans le flux binaire après cet indicateur. Cette liste correspond aux paramètres de l'approche locale. Si le mode de réalisation de l'approche locale utilise l'ensemble des coefficients alors les numéros de coefficients i ne sont pas insérés dans le flux binaire pour améliorer la compression. Les figures 10 à 13 illustrent trois algorithmes différents relatifs à cette approche "locale". Ceux-ci mettent également en oeuvre une analyse (spatio)-fréquentielle pour déterminer le ou les coefficients de bloc à modifier lors des "secondes" reconstructions. On entend par "analyse (spatio)-fréquentielle" une analyse du contenu spatial des blocs, notamment par transformation fréquentielle par bloc, comme par exemple DCT, ou autre transformation "spatio-fréquentielle" appliquée sur une zone spatiale de l'image (qui pourrait inclure le calcul de gradient ou alors transformation de type transformée en ondelettes). La figure 10 illustre des particularités du codeur 10 de la figure 7 pour le premier algorithme. On a ainsi reporté sur la figure 10 les références communes avec celles de la figure 7, certains modules de cette dernière n'étant pas reproduits sur la figure 10. A noter que pour tenir compte des approches globale et locale, on a renommé le module 719/1006 "paramètres globaux de seconde reconstruction" et nommé le nouveau module 1008 "paramètres locaux de seconde reconstruction".
A noter également que, moyennant de légères modifications à la portée de l'homme de l'art, ce premier algorithme s'intègre également au codeur de la figure 5. Comme évoqué plus haut, la sélection des numéros de coefficients à utiliser pour appliquer les offsets de quantification peut être réalisée à partir des images de références classiques 717/1001. En variante toutefois, on rappelle que l'invention permet également d'utiliser les images originales (par exemple i-1 sur la figure 4). Au début de ce premier algorithme, le module 719/1006 connaît les couples {offset; coefficient} à appliquer selon l'approche globale, comme décrit 30 précédemment en lien avec les figures 5 à 8.
Pour sa part, le module 1008 définit un ensemble de couples {offset; coefficient} pour l'ensemble des coefficients possibles i=0 à 15. Ces couples peuvent notamment résulter des traitements décrits ci-dessus. Dans un mode de réalisation, le module 1008 reçoit, du module 719/1006, les coefficients utilisés dans l'approche globale et les supprime de sorte à constituer un ensemble restreint de couples. Il évite ainsi de calculer les offsets correspondant à ces coefficients déjà utilisés. A noter que s'il s'agit du coefficient continu DC, il est tout de même conservé. En revanche, l'offset de quantification correspondant est mis à zéro sans calcul.
Le module 1002 réalise une segmentation classique de l'image de référence courante en blocs, notamment de la taille de la transformée DOT, par exemple 4 pixels x 4 pixels. Chaque bloc est alors transformé par la DCT (module 1003), puis analysé au niveau du module d'analyse 1004. Le module 1008 envoie au module d'analyse 1004 l'ensemble des couples {offset, coefficient}. Pour chaque bloc transformé, le module 1004 sélectionne alors le coefficient ayant la valeur maximale (avec l'éventuelle exclusion des coefficients utilisés dans l'approche globale), la valeur du coefficient continu DC étant divisée par 10 lors de cette sélection car elle est généralement bien supérieure aux autres valeurs du bloc. Bien sûr, plusieurs coefficients (ayant les valeurs maximales) peuvent être sélectionnés dans un mode de réalisation particulier. Le module 1004 récupère alors le couple {offset, coefficient} correspondant au coefficient sélectionné, à partir des informations reçues du module 1008. Ce couple est alors transmis au module "second résiduel" 720/1005. De façon similaire à ce qui a été décrit ci-dessus pour le module 720 en lien avec la figure 7, le module 720/1005 calcule un bloc résiduel correctif en tenant compte des différents couples {coefficient i; offset OZ } provenant à la fois de l'approche globale (coefficient et offset fournis par le module 719/1006) et de l'approche locale (coefficients et offsets fournis par le module 1004). Ce résiduel correctif est ajouté au bloc courant donné par le module 1002. Tous les blocs sont traités de cette façon pour générer une "seconde" reconstruction de la première image de référence. L'image de référence correspondante est alors insérée dans le module 718/1007 et peut être utilisée de façon classique pour des prédictions comme décrit ci-dessus. En parallèle, la liste des couples {coefficient; offset} est codée au niveau du module de codage 709/1009 pour être insérée dans le flux binaire 710/1010. Dans un mode de réalisation, les modules 1006 et 1008 fournissent un seul offset 0Z par numéro de coefficient pour tous les blocs d'une image donnée. Dans l'exemple des DCT 4x4, il y a donc au maximum 16 offsets.
Ceux-ci sont alors ordonnés selon un ordre prédéterminé, par exemple le même ordre que les coefficients (parcours en zig-zag), encodés puis insérés dans l'entête de la trame courante codant l'image. A titre d'exemple, si seulement les coefficients 0, 1, 2, 3 et 5 sont utilisés pour les "secondes" reconstructions de l'image courante, la liste ordonnée {00, 01, 02, 03, 05} est insérée dans le flux binaire. Ainsi, la compression de la séquence vidéo est largement améliorée comparé au cas où, pour l'approche locale, les offsets sont indiqués bloc par bloc. La figure 11 illustre des particularités du décodeur 20 de la figure 8 pour le premier algorithme. On a ainsi reporté sur la figure 11 les références communes avec celles de la figure 8, certains modules de cette dernière n'étant pas reproduits sur la figure 11. De façon similaire à la figure 10, on a renommé le module 813/1106 "paramètres globaux de seconde reconstruction" et nommé le nouveau module 1108 "paramètres locaux de seconde reconstruction". A noter également que, moyennant de légères modifications à la portée de l'homme de l'art, ce premier algorithme s'intègre également au décodeur de la figure 6. Le fonctionnement du décodeur 20 est similaire à celui du codeur 10, en tenant compte du processus de décodage au lieu de celui de codage. Notamment, les couples {coefficient; offset} utilisés peuvent être extraits du flux binaire 801/1110, lorsqu'ils ne sont pas déduits directement d'une reconstruction "classique", puis décodés par le module 802/1109. Ils sont alors transmis aux modules de paramètres locaux/globaux de seconde reconstruction 1108 et 813/1106.
Les premiers (paramètres locaux) sont ensuite transmis au module 1104 d'analyse qui détermine quels paramètres à utiliser spécifiquement pour un bloc donné à reconstruire selon l'approche locale. Ces paramètres spécifiques ainsi que les paramètres globaux sont transmis au module de second résiduel 812/1105 qui calcule le résiduel correctif selon les mécanismes évoqués précédemment, de sorte à générer chacun des blocs d'une seconde reconstruction. La figure 12 illustre des particularités du codeur 10 de la figure 7 pour le deuxième exemple d'algorithme. On a ainsi reporté sur la figure 12 les références communes avec celles de la figure 7, certains modules de cette dernière n'étant pas reproduits sur la figure 12. De façon similaire à la figure 10, on a renommé le module 719/1206 "paramètres globaux de seconde reconstruction" et nommé le nouveau module 1208 "paramètres locaux de seconde reconstruction". Les mêmes modifications que celles évoquées précédemment peuvent être apportées pour appliquer ces particularités au codeur 10 de la figure 5. Dans ce mode de réalisation, au lieu de partir des images de référence classiques, on récupère directement les coefficients transformés déquantifiés en sortie du module de quantification inverse 711/1202. Ce traitement est schématisé sur les figures 5 et 7 par les flèches discontinues entre les modules 511/711 et 520/719. Grâce à cette récupération, ce deuxième algorithme est d'une complexité moindre que le premier. Les modules 719/1206 et 1208 de paramètres de seconde reconstruction sont similaires aux modules 719/1006 et 1008 de la figure 10.
Le module 711/1202 produit en sortie les résiduels de bloc qui sont transformés, quantifiés puis déquantifiés comme décrit précédemment.
Le module d'analyse 1204 est similaire au module 1004, et traite donc les résiduels déquantifiés (1203) ainsi obtenus pour sélectionner au moins un couple {coefficient; offset} à appliquer spécifiquement sur le bloc courant. Toutefois, aucune mise à l'échelle (division par 10 dans l'exemple ci-dessus) du coefficient continu DC n'est opérée lors de l'étape de sélection du coefficient ayant la valeur maximale, car on traite ici les résiduels de bloc. Le module de second résiduel 720/1205 calcule alors le résiduel correctif du bloc courant à partir d'au moins un couple {coefficient; offset} sélectionné par le module 1204 et éventuellement à partir du couple {coefficient; offset} transmis par le module approche globale 1206. Ce résiduel correctif est ajouté au bloc correspondant de l'image de référence "classique" pour créer progressivement une seconde reconstruction. La partie décodage est similaire à celle décrite ci-dessus en lien avec la figure 11, en tenant compte des particularités du deuxième algorithme.
La figure 13 illustre des particularités du codeur 10 de la figure 7 pour le troisième exemple d'algorithme. On a ainsi reporté sur la figure 13 les références communes avec celles de la figure 7, certains modules de cette dernière n'étant pas reproduits sur la figure 13. De façon similaire à la figure 10, on a renommé le module 719/1306 "paramètres globaux de seconde reconstruction" et nommé le nouveau module 1308 "paramètres locaux de seconde reconstruction". Les mêmes modifications que celles évoquées précédemment peuvent être apportées pour appliquer ces particularités au codeur 10 de la figure 5.
Dans ce mode de réalisation, la sélection des coefficients/offsets spécifiques à un bloc donné (paramètres locaux) est réalisée à partir d'une analyse de gradients et non plus d'une analyse de transformée DCT. De façon préconfigurée, le module 1308 associe trois indices de coefficients dans le parcours zig-zag de blocs DCT (ceux utilisés pendant les secondes reconstructions) à trois variables GX, Gy et G/8. Ces variables sont définies par la suite. A chacun de ces indices est également associé un offset de quantification OZ calculé selon l'une des approches décrites ci-dessus.
En variante, plusieurs offsets et/ou plusieurs couples {coefficient; offset} peuvent être associés à chacune de ces variables, selon la valeur qu'elles prennent: par exemple, un couple {coefficient; offset} pour chaque plage de valeurs que peut prendre une variable.
En particulier, le coefficient associé à G/8 est le premier coefficient (coefficient continu DC), et dans le cas où ce coefficient DC est utilisé dans l'approche globale (par le module 719/1306), l'offset associé est égal à 0. Le coefficient associé à Gx est choisi parmi la première colonne d'un bloc DOT, à l'exception du coefficient DC, et en particulier on choisit le deuxième coefficient dans cette colonne. Il s'agit donc du coefficient de plus faible fréquence après le coefficient DC dans cette colonne, et qui représente la variation principale des pixels du bloc selon l'axe horizontal. De même, le coefficient associé à Gy est choisi parmi la première ligne d'un bloc DOT, à l'exception du coefficient DC, et en particulier on choisit le deuxième coefficient dans cette ligne. Il s'agit donc du coefficient de plus faible fréquence après le coefficient DC dans cette ligne, et qui représente la variation principale des pixels du bloc selon l'axe vertical. En variante, des mécanismes de détermination et de sélection automatique de l'indice de coefficient pour chaque variable peuvent être mis en oeuvre, notamment à partir d'informations statistiques sur les blocs DOT. Considérant une image de référence "classique" (717/1301) à reconstruire selon une "seconde" reconstruction, le module 1302 segmente celle-ci en blocs de façon classique et les transmet successivement au module de calcul de gradients 1303 pour calculer les valeurs GX', G,°' et G`' représentatives d'informations de fréquence spatiale au niveau de chaque pixel (i'j). Pour un bloc courant, le module 1303 calcule, pour chaque pixel (i, j) du bloc: - le gradient horizontal GX' = OA où O est le produit de convolution et A est une matrice 3x3 incluant, au centre, la valeur du pixel (i,j) et autour, les valeurs des huit pixels voisins (avec, pour les pixels de bordure, recopie des pixels de bordure pour obtenir les pixels manquants). A noter que si le pixels (i,j) présente plusieurs composantes (Rouge-Vert-Bleu par exemple), chacune des composantes est traitée séparément; - le gradient vertical GY'j = 1 2 1 0 0 0 -1 -2 -1 OA; - le gradient Gi'j = ~GXj2 + G '2 . Ces divers gradients sont bien connus de l'homme de l'art au travers de l'algorithme de Sobel. Ces gradients sont ensuite transmis, pour l'ensemble des pixels du bloc courant, au module 1304.
Le module d'analyse 1304 calcule alors les sommes des différents gradients sur le bloc courant, et notamment: (i, j)e bloc courant - Gy= L Gpj,et (i, j)e bloc courant - G = L G~,J (i, j )e bloc courant Le module d'analyse compare ensuite les trois valeurs Gx, Gy et G/8 où 8 est une variable qui dépend notamment du contenu de la séquence, du pas de quantification QP, de la matrice de quantification et/ou des performances du (dé)codeur, par exemple 8=3. Dans un mode de réalisation, il sélectionne le coefficient et l'offset associé qui correspondent à la valeur maximale parmi les trois valeurs comparées. Par exemple, si Gx s'avère être le maximum des trois valeurs, le module 1304 sélectionne donc le couple {coefficient; offset} qui est associé, dans le module 1308, à Gx. De façon similaire à ce qui a été décrit supra pour les modules de "second résiduel", le module 720/1305 calcule ensuite le résiduel correctif de chaque bloc puis le bloc corrigé pour enfin construire une "seconde" reconstruction.
En parallèle, les trois couples {coefficient; offset} qui sont valables pour l'ensemble des blocs de l'image courante (même si de bloc en bloc, ce n'est pas le même coefficient qui est modifié) sont transmis au module de codage 709/1309 qui les insère dans le flux binaire 710/1310 sous forme codée. Encore une fois, le décodage est similaire à celui décrit ci-dessus en lien avec la figure 11, en tenant compte des particularités du troisième algorithme. Ce troisième algorithme présente notamment une complexité moindre comparé au premier algorithme mettant en oeuvre la transformation DCT. Dans un mode de réalisation, on peut prévoir un plus grand nombre de gradients et non uniquement trois. Par exemple, on peut utiliser seize gradients différents, associés chacun à l'un des coefficients de bloc DCT. On notera que l'invention peut s'appliquer à l'utilisation systématique de l'image de référence la plus proche en termes de distance "temporelle" de limage courante, pour produire les "secondes" reconstructions. En effet, cette utilisation de l'image la plus proche assure un bon ratio débit/distorsion comparé aux autres images plus éloignées. Toutefois, des mécanismes plus élaborés pour choisir une image de référence particulière pour chaque bloc de l'image, sur la base d'un critère débit-distorsion, permettent également d'améliorer les performances de débit/distorsion lors du codage. On veillera néanmoins à limiter à quatre le nombre d'images de référence utilisées pour une même image à coder, comme recommandé par le groupe VCEG.
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 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 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 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 et 10 à 13, 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 principalement 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 (15)

  1. REVENDICATIONS1. Procédé de traitement d'une séquence vidéo (101, 201, 501, 601, 701, 801) constituée d'une suite d'images numériques (401 à 407) comprenant une image courante (401) à traiter, lesdites images étant composées de blocs de données formés chacun d'un ensemble de coefficients prenant chacun une valeur, caractérisé en ce qu'il comprend les étapes consistant à : - générer (511, 603, 720, 812, 519, 612, 720, 812) au moins des première et deuxième reconstructions (402 à 413), différentes entre elles, d'au moins une première image (i-1 à i-n) de la séquence, de sorte à obtenir au moins des première et deuxième images de référence (517, 610, 717, 810, 518, 611, 718, 811), la deuxième reconstruction mettant en oeuvre, sur au moins un coefficient d'un bloc, une opération différente de celle mise en oeuvre lors de la première reconstruction sur le même coefficient de bloc ; - 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) et dans lequel la deuxième reconstruction de la première image comprend les étapes consistant à : - obtenir, pour au moins un bloc de la première image, des valeurs (W, Gx''', G@', G''') calculées à partir des coefficients du bloc et représentatives d'une information de fréquence spatiale ; - sélectionner au moins un coefficient de bloc en fonction desdites valeurs calculées, et lui appliquer ladite opération différente de sorte à obtenir ladite deuxième image de référence.
  2. 2. Procédé selon la revendication 1, dans lequel la deuxième reconstruction de la première image comprend en outre une étape consistant à déterminer un sous-ensemble (I') de coefficients de bloc, en fonction desdites valeurs calculées; - et ladite sélection d'au moins un coefficient de bloc est réalisée sur ledit sous-ensemble.
  3. 3. Procédé selon la revendication précédente, dans lequel la détermination dudit sous-ensemble comprend le calcul, pour chaque coefficient de bloc et à partir desdites valeurs calculées, d'au moins une deuxième valeur (Sum;) représentative de l'importance relative des coefficients de bloc entre eux à l'intérieur de ladite première image, et la détermination de coefficients pour constituer ledit sous-ensemble par comparaison des deuxièmes valeurs avec une valeur seuil (max/0).
  4. 4. Procédé selon la revendication 2 ou 3, comprenant une pluralité de reconstructions différentes de la première image, et dans lequel la deuxième reconstruction de la première image comprend, en outre, l'étape consistant à supprimer, dudit sous-ensemble, un coefficient sur lequel ladite opération différente a déjà été appliquée pour un nombre prédéfini de reconstructions de la première image.
  5. 5. Procédé selon l'une des revendications 1 à 4, dans lequel, étant donné un coefficient sélectionné, la deuxième reconstruction comprend l'application de l'opération différente sur ledit coefficient sélectionné pour chaque bloc de la première image à reconstruire.
  6. 6. Procédé selon l'une des revendications 1 à 5, dans lequel, lors de la deuxième reconstruction, les étapes permettant d'obtenir lesdites valeurs calculées et de sélectionner au moins un coefficient sont réalisées répétitivement pour plusieurs blocs de la première image, de sorte à obtenir un coefficient particulier pour chacun de ces plusieurs blocs, et, dans un dit bloc, est appliquée, au coefficient particulier, une opération différente de celle mise en oeuvre lors de la première reconstruction sur le même coefficient de bloc.
  7. 7. Procédé selon la revendication précédente, dans lequel, lors de la deuxième reconstruction, une dite opération différente est appliquée sur au moins un dit premier coefficient pour chaque bloc de la première image à reconstruire et une dite opération différente est appliquée, pour chaque bloc de la première image, sur un coefficient sélectionné particulier audit bloc, et la sélection dudit coefficient particulier avant d'appliquer ladite opération différente est réalisée parmi un ensemble de coefficients de bloc excluant ledit au moins un premier coefficient.
  8. 8. Procédé selon l'une des revendications 1 à 7, dans lequel les valeurs calculées représentatives d'une information de fréquence spatiale sont obtenues par transformation de la première image de référence résultant de la première reconstruction.
  9. 9. Procédé selon l'une des revendications 1 à 8, dans lequel la première reconstruction comprend une quantification inverse des valeurs de coefficient d'une version quantifiée de ladite première image, et lesdites valeurs calculées, pour la deuxième reconstruction, sont calculées à partir des valeurs déquantifiées de coefficient obtenues lors de la quantification inverse de la première reconstruction.
  10. 10. Procédé selon l'une des revendications 1 à 8, dans lequel lesdites valeurs calculées sont calculées pour chaque coefficient du bloc et sont représentatives d'un gradient au voisinage du coefficient du bloc.
  11. 11. Procédé selon l'une des revendications 1 à 10, dans lequel l'opération différente de la deuxième reconstruction met en oeuvre une quantification inverse utilisant, pour ledit au moins un coefficient (W;) de bloc sélectionné, un décalage (0;) de quantification différent de celui utilisé pour le même coefficient lors de la première reconstruction.
  12. 12. Procédé selon l'une des revendications 1 à 11, dans lequel, pour l'ensemble des blocs composant une première image donnée, on associe de façon unique, à un coefficient de bloc, un paramètre (01) définissant ladite opération différente à appliquer, pour chaque bloc, sur ce coefficient de bloc s'il est sélectionné, et le procédé comprend une étape de codage de l'image courante en un flux codé (510, 710), et une étape d'insertion, dans le flux codé, desdits paramètres pour l'ensemble des blocs d'une image courante, sous forme d'une unique liste ordonnée selon un ordre prédéterminé.
  13. 13. Dispositif de traitement (10, 20) d'une séquence vidéo (101, 201, 501, 601, 701, 801) constituée d'une suite d'images numériques (401 à 407) comprenant une image courante (401) à traiter, lesdites images étant composées de blocs de données formés chacun d'un ensemble de coefficients prenant chacun une valeur, caractérisé en ce qu'il comprend:- un moyen de génération apte à générer au moins des première et deuxième reconstructions (402 à 413), différentes entre elles, d'au moins une première image (i-1 à i-n) de la séquence, de sorte à obtenir au moins des première et deuxième images de référence (517, 610, 717, 810, 518, 611, 718, 811), la deuxième reconstruction mettant en oeuvre, sur au moins un coefficient d'un bloc, une opération différente de celle mise en oeuvre lors de la première reconstruction sur le même coefficient de bloc; - 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 10 images de référence (516, 608, 716, 808) et dans lequel le moyen de génération pour générer la deuxième reconstruction comprend : - un moyen pour obtenir, pour au moins un bloc de la première image, des valeurs (W;, GX', G@°', G''') calculées à partir des coefficients du bloc 15 et représentatives d'une information de fréquence spatiale; - un moyen pour sélectionner au moins un coefficient de bloc en fonction desdites valeurs calculées, et pour lui appliquer ladite opération différente de sorte à obtenir ladite deuxième image de référence.
  14. 14. Moyen de stockage d'informations, éventuellement 20 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 à 12, lorsque le programme est chargé et exécuté par le système informatique. 25
  15. 15. 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 à 12, lorsqu'il est chargé et exécuté par le microprocesseur.
FR1050797A 2010-02-04 2010-02-04 Procede et dispositif de traitement d'une sequence video Expired - Fee Related FR2955995B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1050797A FR2955995B1 (fr) 2010-02-04 2010-02-04 Procede et dispositif de traitement d'une sequence video
US13/021,070 US20110188573A1 (en) 2010-02-04 2011-02-04 Method and Device for Processing a Video Sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1050797A FR2955995B1 (fr) 2010-02-04 2010-02-04 Procede et dispositif de traitement d'une sequence video

Publications (2)

Publication Number Publication Date
FR2955995A1 true FR2955995A1 (fr) 2011-08-05
FR2955995B1 FR2955995B1 (fr) 2012-02-17

Family

ID=42556447

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1050797A Expired - Fee Related FR2955995B1 (fr) 2010-02-04 2010-02-04 Procede et dispositif de traitement d'une sequence video

Country Status (2)

Country Link
US (1) US20110188573A1 (fr)
FR (1) FR2955995B1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
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
FR2951345B1 (fr) 2009-10-13 2013-11-22 Canon Kk Procede et dispositif de traitement d'une sequence video
EP3499886B1 (fr) 2017-12-18 2025-02-12 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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615441A1 (fr) * 2004-07-06 2006-01-11 STMicroelectronics S.r.l. Codage de source à description multiple combiné à un codage de canal

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802213A (en) * 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
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
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
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
FR2851397B1 (fr) * 2003-02-14 2005-05-13 Canon Europa Nv Procede et dispositif d'analyse de sequences video dans un reseau de communication
EP1564997A1 (fr) * 2004-02-12 2005-08-17 Matsushita Electric Industrial Co., Ltd. Codage et décodage d'images video basé sur une quantisation avec une taille adaptative de zone morte
FR2869442A1 (fr) * 2004-04-23 2005-10-28 Canon Kk Procede et dispositif de decodage d'une image.
JP5053081B2 (ja) * 2004-06-18 2012-10-17 トムソン ライセンシング ビデオ・コーデック量子化のための方法および装置
US7620103B2 (en) * 2004-12-10 2009-11-17 Lsi Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
JP4146444B2 (ja) * 2005-03-16 2008-09-10 株式会社東芝 動画像符号化の方法及び装置
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
FR2894421B1 (fr) * 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
FR2895172A1 (fr) * 2005-12-20 2007-06-22 Canon Kk Procede et dispositif de codage d'un flux video code suivant un codage hierarchique, flux de donnees, procede et dispositif de decodage associes
FR2896371B1 (fr) * 2006-01-19 2008-11-07 Canon Kk Procede et dispositif de traitement d'une sequence d'images numeriques au format extensible
FR2897741B1 (fr) * 2006-02-17 2008-11-07 Canon Kk Procede et dispositif de generation de donnees representatives d'un degre d'importance de blocs de donnees et procede et dispositif de transmission d'une sequence video encodee
US8340179B2 (en) * 2006-03-21 2012-12-25 Canon Kabushiki Kaisha Methods and devices for coding and decoding moving images, a telecommunication system comprising such a device and a program implementing such a method
FR2903556B1 (fr) * 2006-07-04 2008-10-03 Canon Kk Procedes et des dispositifs de codage et de decodage d'images, un systeme de telecommunications comportant de tels dispositifs et des programmes d'ordinateur mettant en oeuvre de tels procedes
FR2904494B1 (fr) * 2006-07-26 2008-12-19 Canon Kk Procede et dispositif de compression d'image, systeme de telecommunication comportant un tel dispositif et programme mettant en oeuvre un tel procede
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
FR2910211A1 (fr) * 2006-12-19 2008-06-20 Canon Kk Procedes et dispositifs pour re-synchroniser un flux video endommage.
US8259793B2 (en) * 2007-03-19 2012-09-04 Sony Corporation System and method of fast MPEG-4/AVC quantization
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
FR2952497B1 (fr) * 2009-11-09 2012-11-16 Canon Kk Procede de codage et de decodage d'un flux d'images; dispositifs associes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615441A1 (fr) * 2004-07-06 2006-01-11 STMicroelectronics S.r.l. Codage de source à description multiple combiné à un codage de canal

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FENG WU ET AL: "A Framework for Efficient Progressive Fine Granularity Scalable Video Coding", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 11, no. 3, 1 March 2001 (2001-03-01), XP011014181, ISSN: 1051-8215 *
PARAMESWARAN V ET AL: "Adapting quantization offset in multiple description coding for error resilient video transmission", JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION, ACADEMIC PRESS, INC, US, vol. 20, no. 7, 1 October 2009 (2009-10-01), pages 491 - 503, XP026467882, ISSN: 1047-3203, [retrieved on 20090712], DOI: 10.1016/J.JVCIR.2009.07.003 *
WIEGAND T ET AL: "Overview of the H.264/AVC video coding standard", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 13, no. 7, 1 July 2003 (2003-07-01), pages 560 - 576, XP011099249, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2003.815165 *

Also Published As

Publication number Publication date
FR2955995B1 (fr) 2012-02-17
US20110188573A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
FR2951345A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
EP2985998B1 (fr) Support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
EP3490258A1 (fr) Procédé et support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
FR2932637A1 (fr) Procede et dispositif de codage d&#39;une sequence d&#39;images
FR2955995A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
EP2716045B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
FR3029333A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
FR2956789A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
EP3520416B1 (fr) Procédé de codage d&#39;une image, procédé de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associés
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
FR2956552A1 (fr) Procede de codage ou de decodage d&#39;une sequence video, dispositifs associes
EP2084910A1 (fr) Procede et dispoitif d&#39;optimisation de la compression d&#39;un flux video
WO2020002795A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP2633687B1 (fr) Codage et décodage vidéo a partir d&#39;un épitome
FR2918203A1 (fr) Procedes et dispositifs de codage et de decodage d&#39;images numeriques tenant compte du type des blocs source, signal et produits programme d&#39;ordinateur correspondants.
FR3153178A1 (fr) Procédé et dispositif de codage et décodage de séquences d’images.
EP3878182A1 (fr) Procédé et displositif de codage et de décodage d&#39;une image par découpage de bloc en zones
WO2020260843A1 (fr) Procédé d&#39;encodage et de décodage vidéo par signalisation d&#39;un sous-ensemble de candidat
EP3922017A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
FR2851109A1 (fr) Procede et dispositif de determination de parametres d&#39;un modele d&#39;estimation de la distorsion d&#39;une sequence d&#39;images
FR2903845A1 (fr) Procede et dispositif de codage d&#39;images, systeme de telecommunication comportant un tel dispositif et programme d&#39;ordinateur mettant en oeuvre un tel procede
FR2936388A1 (fr) Procede et dispositif de transcodage d&#39;une sequence video
WO2006056720A1 (fr) Compression video par modification de quantification par zones d&#39;images

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: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

ST Notification of lapse

Effective date: 20231005