WO2010086562A1 - Procede et dispositif de codage d'images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d'ordinateur correspondants - Google Patents

Procede et dispositif de codage d'images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d'ordinateur correspondants Download PDF

Info

Publication number
WO2010086562A1
WO2010086562A1 PCT/FR2010/050140 FR2010050140W WO2010086562A1 WO 2010086562 A1 WO2010086562 A1 WO 2010086562A1 FR 2010050140 W FR2010050140 W FR 2010050140W WO 2010086562 A1 WO2010086562 A1 WO 2010086562A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
coding
current block
blocks
image
Prior art date
Application number
PCT/FR2010/050140
Other languages
English (en)
Inventor
Stéphane PATEUX
Nathalie Cammas
Isabelle Amonou
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Publication of WO2010086562A1 publication Critical patent/WO2010086562A1/fr

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/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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é de codage d'image comprenant une étape de découpage d'une image courante en blocs et une étape de codage mettant en œuvre les étapes suivantes, pour au moins un bloc courant : détermination (61) d'un mode de codage du bloc courant; obtention (62) d'un mode de codage utilisé pour au moins un bloc voisin; si le mode de codage du bloc courant et le mode de codage utilisé pour au moins un bloc voisin sont distincts (63) : affectation (65) à au moins un bloc voisin d'une valeur de paramètre de prédiction propre au mode de codage du bloc courant, dite valeur d'affectation; affectation (66) au bloc courant d'une valeur représentative de la ou des valeurs d'affectation.

Description

Procédé et dispositif de codage d'images mettant en œuvre des modes de codage distincts, procédé et dispositif de décodage, et programmes d'ordinateur correspondants.
1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage d'images, et notamment d'un flux vidéo constitué d'une série d'images successives. Plus précisément, l'invention s'applique à la compression d'images ou de séquences d'images utilisant des transformées par bloc exploitant différents modes de codage. L'invention peut notamment s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels (MPEG, H.264, etc) ou à venir (ITU-T/VCEG (H.265) ou ISO/MPEG (HVC).
2. Art antérieur
On connaît déjà des schémas de codage d'image (JPEG, JPEG-XR), ou de codage vidéo hybride (MPEG, H264), ainsi que des techniques de compression de données vidéo. Parmi celles-ci, de nombreuses techniques de codages vidéo utilisent une représentation par bloc de la séquence vidéo, comme par exemple celles mettant en œuvre les standards de compression vidéo issus de l'organisation MPEG (MPEG-I, MPEG-2, MPEG-4 part 2, ...) ou de ITTU-T (H.261, ..., H.264/AVC). Ainsi, selon la technique H.264 et comme illustré en figure 1, chaque image 1 peut être découpée en tranches (en anglais « slice »), elles-mêmes découpées en macroblocs 10, qui sont ensuite subdivisés en blocs 1 1. Un bloc est constitué d'un ensemble de pixels.
Le codage d'un bloc est classiquement réalisé à l'aide d'une prédiction du bloc et d'un codage d'un résidu de prédiction à ajouter à la prédiction. La prédiction est établie à l'aide d'informations déjà reconstruites (blocs précédents déjà codés/décodés dans l'image courante, images préalablement codées dans le cadre d'un codage vidéo, etc).
Dans un schéma de codage donné, plusieurs modes de codage différents peuvent être mis en œuvre pour le codage des blocs. Un mode de codage comprend généralement deux phases, une première phase de prédiction des échantillons à coder, suivie d'une deuxième phase de codage de résidus de prédiction. Typiquement, les blocs peuvent être codés par différents modes de codage, comme les modes de codage « intra », « inter », « saut » (de l'anglais« skip), etc.
Pour ces différents modes de codage, la première phase de prédiction des échantillons est typiquement : une prédiction temporelle c'est-à-dire en référence à un bloc de référence appartenant à une ou plusieurs autres images ; et/ou - une prédiction spatiale, en fonction des blocs voisins de l'image courante.
Dans ce dernier cas, la prédiction ne peut être effectuée qu'à partir des blocs qui ont été précédemment codés.
Le mode de codage dit « intra » n'utilise que les informations contenues dans l'image elle-même. En d'autres termes, la prédiction d'un bloc d'une image codée en mode intra a recours aux blocs voisins précédemment codés de la même image. Par exemple, un bloc courant est codé par l'intermédiaire d'une valeur de texture des blocs voisins déjà codés-décodés.
Le mode de codage dit « inter » utilise une prédiction à l'aide d'une compensation de mouvement sur la base d'images précédemment codées. Plus précisément, ce type de codage consiste à considérer une (ou plusieurs) image de référence. Un déplacement ou mouvement entre l'image de référence et l'image courante est établi pour un bloc à coder de l'image courante. Le bloc servant de prédiction au bloc à coder est le bloc de pixels de l'image de référence déplacé du vecteur de mouvement.
Le mode de codage dit « saut » est un mode particulier du mode de codage
« inter » et réalise une prédiction temporelle pour laquelle aucune information n'est transmise au décodeur. En d'autres termes, il est possible de « sauter » un bloc, si des informations de codage de base ont déjà été déterminées pour ce bloc. Dans ce mode de codage, la prédiction est réalisée à partir d'une compensation en mouvement du bloc courant à l'aide des vecteurs de mouvement des blocs voisins s'ils existent dans l'image de référence, et aucun résidu de prédiction n'est codé ou décodé.
Avec l'arrivée de nouveaux formats vidéo haute résolution, de nouveaux modes de codage sont apparus pour le codage de certains blocs, en plus des modes de codage intra, inter et « skip » détaillés précédemment.
Par exemple, de nouveaux modes de codage intra liés à des techniques de restauration ont été proposés par A. Criminisi et al. dans le document « Région filling and object removal by exemplar-based image inpainting » (IEEE Transactions on Image Processing) ou T. K. Tan dans le document « Intra prédiction by template matching Image ». Selon cette dernière technique, encore appelée « Template Matching », pour estimer une région d'une image cible à coder, à partir d'une image source (l'image partiellement décodée), le candidat le plus proche du « template », c'est-à-dire la zone formée des pixels connus voisins de la zone à prédire, est recherché, grâce à une comparaison pixel à pixel. Une fois que le meilleur candidat est trouvé, les pixels correspondants sont recopiés de la source vers la cible, c'est-à-dire l'image à coder.
De nouveaux modes de codage inter utilisant des techniques de compensation en mouvement à l'aide de tubes de mouvement ont également été proposés dans la demande de brevet français FR 2 917 872.
Du fait de ces nouveaux modes de codage, on peut observer une variation des modes de codage utilisés entre les différents blocs d'une même image, telle que présenté sur la figure 2 avec trois modes de codage différents 21, 22, et 23.
Pour un mode de codage donné, des paramètres de prédiction sont alors établis, puis codés. Par exemple, selon la technique H.264, on peut coder des paramètres de prédiction pour chaque bloc, comme le mode de codage (intra, inter, « skip »), le type de partitionnement, des informations concernant la prédiction (orientation, image de référence, ...), des informations de mouvement
(vecteur de mouvement), des informations de texture (direction d'extrapolation des valeurs de texture), des coefficients codés, etc. Lors du codage de ces paramètres de prédiction (par exemple le vecteur de mouvement du bloc), afin de réduire leur coût de codage, une prédiction de leur valeur est réalisée à partir des valeurs des mêmes paramètres de prédiction pour les blocs voisins déjà codés, et ayant le même mode de codage (par exemple les vecteurs mouvement des blocs voisins).
L'annexe A, qui fait partie intégrante de la description, rappelle le fonctionnement de ces techniques de prédiction des paramètres de prédiction.
De ce fait, la multiplicité des modes de codage dans un schéma existant peut induire une perte d'efficacité, puisque la prédiction des paramètres de prédiction pour un bloc ne peut pas être réalisée à partir des valeurs des mêmes paramètres de prédiction pour les blocs voisins déjà codés s'ils n'ont pas été codés en utilisant le même mode de codage. Cette multiplicité de modes de codage au sein d'une même image limite donc les performances de codage à cause d'une performance limitée de la prédiction des valeurs des paramètres de prédiction. En reprenant l'exemple de la figure 2, pour le codage d'un bloc référencé
24 par exemple, on peut observer que le bloc voisin supérieur étant codé à l'aide d'un nouveau mode de codage (22), on ne peut pas utiliser les paramètres de prédiction de ce bloc pour déterminer les paramètres de prédiction du bloc 24. Il s'ensuit une potentielle moindre efficacité de compression de l'information portée par le bloc 24.
La non-disponibilité de valeurs de paramètres de prédiction sur les blocs voisins limite donc les performances de compression lors du codage d'un bloc donné. Cette constatation est d'autant plus présente que les modes de codage utilisés sont différents. 3. Exposé de l'invention
L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces inconvénients de l'art antérieur, sous la forme d'un procédé de codage d'au moins une image comprenant une étape de découpage d'une image courante en blocs et une étape de codage des blocs de ladite image courante mettant en œuvre au moins deux modes de codage distincts. Selon l'invention, l'étape de codage d'un tel procédé met en œuvre les étapes suivantes, pour un bloc courant :
- détermination d'un mode de codage dudit bloc courant ;
- obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts : o affectation à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation ; o affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation. L'invention propose ainsi une nouvelle technique de codage d'images permettant d'affecter une valeur de paramètre de prédiction aux blocs voisins d'un bloc courant, quels que soient les modes de codage utilisés pour le bloc courant et pour les blocs voisins.
Cette valeur de paramètre de prédiction est ensuite affectée au bloc courant en prenant en compte les valeurs de paramètre de prédiction des blocs voisins de ce bloc.
Ainsi, la technique selon l'invention, permet à terme de fournir pour tout bloc voisin une valeur d'affectation propre à chaque mode de codage utilisé au sein de l'image. L'insertion de nouveaux modes de codage ne vient donc pas limiter les performances de compression lors du codage d'un bloc donné.
En conséquence, il résulte de la technique de l'invention une meilleure efficacité de codage fournissant pour un bloc courant une valeur de paramètre de prédiction adaptée à l'introduction de nouvelles techniques de codage. Cette valeur sera en effet par la suite utilisable pour le codage du bloc suivant à coder. L'utilisation de différents modes de codage permet en effet d'utiliser des techniques de codage plus efficaces pour le codage d'un bloc défini. La sélection du meilleur mode de codage peut par exemple être effectuée en optimisant le rapport débit-distorsion obtenu par les différents modes de codage possibles.
Selon un mode de réalisation particulier, ladite valeur représentative de la ou desdites valeurs d'affectation, affectée audit bloc courant, appartient au groupe comprenant :
- si un seul du ou desdits blocs voisins présente un mode de codage distinct de celui dudit bloc courant : o ladite valeur d'affectation associée affectée audit bloc voisin, ou o ladite valeur d'affectation affectée audit bloc voisin après raffinement ;
- si plusieurs desdits blocs voisins présentent un mode de codage distinct de celui dudit bloc courant : o une combinaison des valeurs d'affectation affectées auxdits blocs voisins, ou o une combinaison des valeurs d'affectation affectées auxdits blocs voisins après raffinement.
En effet, on peut considérer plusieurs blocs voisins pour établir la valeur de paramètre de prédiction affectée au bloc courant. Dans ce cas, la valeur de paramètre de prédiction affectée au bloc courant peut être une combinaison des valeurs de paramètre de prédiction des blocs voisins (moyenne, valeur médiane, valeur minimale ou maximale, pondération, etc, des valeurs de paramètre de prédiction des blocs voisins).
On note que la valeur de paramètre de prédiction d'un bloc voisin peut être une valeur dite d'affectation si le bloc voisin considéré n'est pas codé selon le même mode de codage que le bloc courant, ou correspondre directement à la valeur de paramètre de prédiction d'origine du bloc voisin considéré si celui-ci est codé selon le même mode de codage que le bloc courant. La combinaison des valeurs de paramètre de prédiction des blocs voisins peut alors privilégier, par exemple, les valeurs de paramètre de prédiction d'origine aux valeurs d'affectation.
Par ailleurs, on peut considérer, pour un mode de codage donné, une notion de paramètre de prédiction dit « en entrée » et de paramètre de prédiction dit « en sortie », ces deux paramètres étant du même type (par exemple de type « vecteur de mouvement », « direction de texture », ...). Par exemple, au niveau du bloc courant, une prédiction du paramètre de prédiction en entrée est effectuée à partir des paramètres de prédiction des blocs voisins (lors de l'étape d'affectation au bloc courant d'une valeur représentative de la ou des valeurs d'affectation). Puis cette valeur de paramètre de prédiction en entrée peut être raffinée, délivrant le paramètre de prédiction en sortie.
En effet, cette valeur de paramètre de prédiction en entrée, affectée au bloc courant n'est peut être pas optimale, et peut dans ce cas être raffinée par un résidu utilisé pour la prédiction du bloc courant. Une fois raffinée, cette valeur de paramètre de prédiction correspond au paramètre de prédiction en sortie. Selon une caractéristique particulière de l'invention, la valeur d'affectation est déterminée à partir d'au moins un élément appartenant au groupe comprenant :
- un vecteur de mouvement ;
- un vecteur de contrôle ;
- un tube de mouvement ; - une direction de prédiction de texture ;
- une orientation de texture ; en tenant compte du mode de codage du bloc courant.
L'invention permet ainsi de fournir des valeurs de paramètre de prédiction pour tout bloc de l'image quel que soit le mode de codage de ce bloc et de ses voisins. Classiquement, les modes de codage les plus utilisés sont les modes de codage dit « inter » et « intra », définissant une valeur de paramètre de prédiction représentée respectivement par une information de mouvement (classiquement un vecteur de mouvement) ou de texture (classiquement une direction).
Selon un aspect particulier de l'invention, le bloc courant est codé selon un mode de codage dit « inter », à partir d'au moins une image de référence, et la valeur d'affectation affectée à un bloc voisin est une information de mouvement déterminée entre une image courante et la ou lesdites images de référence.
Par exemple, si le mode de codage du bloc courant correspond à un mode inter dont la valeur de paramètre de prédiction requise est un tube de mouvement, il est possible d'attribuer une valeur d'affectation de type tube de mouvement à un bloc voisin dont le mode de codage est différent de celui du bloc courant.
Selon une autre variante de l'invention le bloc courant est codé selon un mode de codage dit « intra », à partir d'au moins un bloc précédemment codé de ladite image courante, et la valeur d'affectation affectée à un bloc voisin est une information de texture, par exemple une direction de prédiction de texture ou une orientation de texture.
Ainsi, si le mode de codage du bloc courant correspond à un mode intra dont la valeur de paramètre de prédiction requise est une direction de prédiction, il est possible d'attribuer une valeur d'affectation de type direction de prédiction à un bloc voisin dont le mode de codage est différent de celui du bloc courant.
Selon un premier exemple, la direction de prédiction est déterminée en tenant compte d'une direction de prédiction d'au moins un du ou desdits blocs voisins (i.e. localisé à proximité), préalablement déterminée.
De cette façon, la technique selon l'invention permet de calculer pour le bloc voisin, dont le mode de codage est différent du mode de codage du bloc courant, une direction de prédiction héritée des blocs voisins. Cette direction de prédiction peut par exemple être égale directement à la valeur de direction de prédiction d'un bloc voisin ou une combinaison des valeurs de direction de prédiction de plusieurs blocs voisins considérés. Selon un deuxième exemple, la direction de prédiction correspond à une direction orthogonale au gradient moyen de texture d'au moins un du ou desdits blocs voisins.
Ainsi, le calcul de la valeur de direction de prédiction peut être mis en œuvre en ne considérant que le bloc voisin seul. En effet, le gradient moyen de texture est par exemple obtenu en moyennant les valeurs du gradient en tout point du bloc voisin et la direction de prédiction est définie comme étant la direction orthogonale à celle du gradient.
L'invention concerne aussi un procédé de codage d'au moins une image comprenant une étape de découpage d'une image courante en blocs et une étape de codage des blocs de ladite image courante mettant en œuvre au moins deux modes de codage distincts, caractérisé en ce que ladite étape de codage met en œuvre les étapes suivantes, pour au moins un bloc courant :
- détermination (61) d'un mode de codage dudit bloc courant ; - obtention (62) d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts (63) et le mode de codage dudit au moins un bloc voisin est un mode dit "saut" utilisant des tubes de mouvement : o affectation (65) à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant et du mode dit "saut" utilisant des tubes de mouvement d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation ; o affectation (66) audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation.
L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de codage, décrit précédemment, lorsque ce programme est exécuté par un processeur.
Dans un autre mode de réalisation, l'invention concerne un dispositif de codage d'au moins une image comprenant des moyens de découpage d'une image courante en blocs et des moyens de codage des blocs de ladite image courante mettant en œuvre au moins deux modes de codage distincts comprenant, pour au moins un bloc courant :
- des moyens de détermination d'un mode de codage dudit bloc courant ;
- des moyens d'obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- des moyens d'affectation, à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant, d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation, activés si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts ;
- des moyens d'affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation, activés si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts.
Un tel dispositif de codage est notamment adapté à mettre en œuvre le procédé de codage décrit précédemment. Il s'agit par exemple d'un codeur vidéo de type MPEG ou H.264, ou selon une future norme de compression. Un autre aspect de l'invention concerne également un procédé de décodage d'au moins une image, ladite image ayant subi un découpage en blocs et un codage desdits blocs mettant en œuvre au moins deux modes de codage distincts, ledit codage mettant en œuvre les étapes suivantes, pour un bloc courant : - détermination d'un mode de codage dudit bloc courant ;
- obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un bloc voisin sont distincts : o affectation à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation ; o affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation.
Un tel procédé de décodage met en œuvre une reconstruction de ladite image à partir de la valeur représentative de la ou des valeurs d'affectation.
De cette façon, la technique de décodage selon l'invention permet, à réception et lecture des informations de codage, de reconstruire une région de l'image correspondant à un bloc courant dont le mode de codage est différent du mode de codage d'un bloc voisin précédemment décodé.
On note que cette étape de reconstruction peut également tenir compte d'une valeur de paramètre de prédiction d'origine d'un bloc voisin si celui-ci est codé selon le même mode de codage que le bloc courant.
L'invention concerne également un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de décodage tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
Dans un autre mode de réalisation, l'invention concerne un dispositif de décodage d'au moins une image, ladite image ayant subi, dans un dispositif de codage, un découpage en blocs et un codage desdits blocs mettant en œuvre au moins deux modes de codage distincts, ledit dispositif de codage comprenant, pour un bloc courant :
- des moyens de détermination d'un mode de codage dudit bloc courant ; - des moyens d'obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- des moyens d'affectation à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant, d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation, activés si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts ;
- des moyens d'affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation, activés si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins distincts.
Un tel dispositif de décodage comprend des moyens de reconstruction de ladite image à partir de la valeur représentative de la ou des valeurs d'affectation. Un tel dispositif de décodage est notamment adapté à mettre en œuvre le procédé de décodage décrit précédemment. Il s'agit par exemple d'un décodeur vidéo de type MPEG ou H.264, ou selon une future norme de compression vidéo.
4. Liste des figures
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1, déjà commentée en relation avec l'art antérieur, présente le découpage d'une image en un ensemble de blocs ; la figure 2, également commentée en relation avec l'art antérieur, illustre la diversité des modes de codage au sein d'une image ;. la figure 3 décrit la relation de voisinage spatial entre les blocs d'une image ; la figure 4 présente, en fonction du temps, une prédiction en mouvement arrière ; la figure 5 présente les principales étapes du procédé de codage selon un mode de réalisation de l'invention ; - les figures 6 et 7 illustrent la mise en œuvre du procédé selon la figure 5 pour le codage d'un bloc courant en mode inter ; la figure 8 illustre la mise en œuvre du procédé selon la figure 5 pour le codage d'un bloc courant en mode intra ; les figures 9 et 10 présentent la structure d'un dispositif de codage et d'un dispositif de décodage selon un mode de réalisation particulier de l'invention; la figure 11 illustre la mise en œuvre du procédé pour le codage d'un bloc courant en mode intra dans le cas d'un schéma de codage à l'aide de tubes de mouvement.
5. Description d'un mode de réalisation de l'invention
5.1 Principe général
Le principe général de l'invention repose sur l'affectation aux blocs voisins d'un bloc courant à coder, dont le ou les mode(s) de codage sont distincts du mode de codage du bloc courant, d'une valeur de paramètre de prédiction, encore appelée valeur d'affectation, de même nature que celle requise par le mode de codage du bloc courant à coder.
Ainsi, selon l'invention, lors du codage des paramètres de prédiction d'un bloc courant d'une image courante (et par exemple pour tous les blocs), une prédiction de la valeur des paramètres de prédiction est réalisée à partir des valeurs de paramètre de prédiction des blocs voisins du bloc courant, afin de réduire le coût de codage.
On entend ici par « bloc voisin du bloc courant » un bloc précédemment codé/décodé qui est utilisé pour le codage du bloc courant. Ce bloc voisin est par exemple localisé dans une couronne comprenant les huit blocs entourant le bloc courant dans la même image que le bloc courant (pour une prédiction spatiale), ou localisé au même emplacement que le bloc courant dans une image de référence (pour une prédiction temporelle) ou dans une région de forme arbitraire entourant et comprenant le bloc courant, dans le cas d'un codage par tube de mouvement. La figure 3 illustre un exemple de relation de voisinage spatial entre les blocs. Ainsi, si l'on parcourt l'image courante (ou une portion de l'image) bloc par bloc, selon un sens de parcours prédéterminé ligne par ligne, généralement connu sous le terme anglais « Raster scan », pour coder les différents blocs de l'image, alors lors du codage du bloc courant 35, les blocs 31, 32, 33, et 34 auront déjà été codés/décodés et pourront être utilisés lors du codage du bloc courant. Les blocs 31, 32, 33, et 34 sont donc des blocs voisins du bloc courant 35.
D'autres sens de parcours existent, comme le parcours en spiral (« Spiral Scan ») qui propose de parcourir un groupe de blocs à partir de son centre, en progressant vers les bords par un parcours en forme de spirale.
On présente ci-après, en relation avec la figure 5, les principales étapes du procédé selon un mode de réalisation de l'invention appliqué à une image découpée en blocs telle que décrit précédemment (figure 1).
Pour au moins un bloc courant à coder, le procédé met en œuvre une étape 61 de détermination du mode de codage du bloc courant considéré. Par exemple, on sélectionne le meilleur mode de codage par « mise en compétition » des différents modes de codage. En d'autres termes cette sélection est effectuée selon une optimisation du rapport débit-distorsion obtenu par les différents modes de codage possibles. On obtient également (62) le mode de codage utilisé pour au moins un bloc voisin précédemment codé, selon un ordre de parcours du type ligne par ligne par exemple. En effet, le codage préalable du bloc voisin a permis de définir au moins une valeur de paramètre de prédiction associée au bloc voisin, sauf pour le mode de codage de type « Template Matching » pour lequel aucune valeur de paramètre de prédiction n'est nécessaire.
Une étape de test 63 est ensuite effectuée afin d'évaluer si le bloc voisin et le bloc courant sont codés selon le même mode de codage. En d'autres termes, deux cas de figure se présentent : d'une part, les blocs voisins déjà codés ont le même mode de codage que le bloc courant, d'autre part les blocs voisins déjà codés n'ont pas le même mode de codage. Cette étape met par exemple en œuvre une comparaison des modes de codage ou des types de paramètres de prédiction.
On propose selon ce mode de réalisation de déterminer systématiquement une valeur de paramètre de prédiction à affecter au bloc courant quel que soit le cas de figure.
Si le bloc voisin a été codé par le même mode de codage que le bloc courant, on peut récupérer directement la valeur du paramètre de prédiction du bloc voisin, et l'affecter au bloc courant, au cours d'une étape 64 d'affectation. Si plusieurs blocs voisins du bloc courant ont été codés par le même mode de codage que le bloc courant, on affecte une combinaison des valeurs de paramètre de prédiction des blocs voisins au bloc courant. Il résulte de ce traitement une affectation systématique d'une valeur de paramètre de prédiction au bloc courant dont au moins un bloc voisin a été codé par le même mode de codage que le bloc courant. Par contre, dans le cas où le bloc voisin n'a pas été codé avec le même mode de codage du bloc courant, une valeur de paramètre de prédiction propre au mode de codage du bloc courant, dite valeur d'affectation, est attribuée au bloc voisin au cours d'une étape 65 d'affectation aux blocs voisins d'une valeur d'affectation. Ainsi si le mode de codage du bloc courant est par exemple un mode de codage dit « inter » et qu'aucun bloc voisin précédemment codé n'est codé selon ce mode de codage dit « inter », on attribue une valeur d'affectation de type vecteur de mouvement au bloc voisin. Le bloc courant codé selon un mode de codage dit « inter » sera alors affecté d'une valeur de paramètre de prédiction représentative du vecteur de mouvement du bloc voisin de ce bloc courant. Cette étape 65 d'affectation dépend donc du mode de codage des blocs voisins et du mode de codage du bloc courant. Différents exemples pour la détermination de la valeur d'affectation sont décrits ci-après.
Au cours d'une étape 66 d'affectation au bloc courant d'une valeur représentative de la ou des valeurs d'affectation, cette valeur d'affectation est prise en compte pour l'estimation des paramètres de prédiction du bloc courant à coder.
Ainsi, la valeur de paramètre de prédiction affectée à un bloc courant n'est pas une valeur par défaut, par exemple une valeur nulle, mais dépendante du mode de codage du bloc courant.
On affecte ainsi aux blocs voisins une sorte de valeur virtuelle ou tampon (valeur d'affectation), et on combine ces valeurs virtuelles ou tampon pour définir la valeur de paramètre de prédiction qu'on affectera au bloc courant.
Cette étape 66 d'affectation au bloc courant d'une valeur représentative de la ou des valeurs d'affectation est suivie d'une étape 67 de codage du résidu de prédiction du bloc courant considéré et d'une étape 68 de codage des paramètres de prédiction de ce bloc courant.
5.2 Description de modes de réalisation
A) Exemple d'application pour un bloc courant codé selon un mode de codage inter
On présente tout d'abord ci-après des exemples de détermination de la valeur d'affectation pour des modes de codage inter existants mis en œuvre dans un codeur H.264/AVC, permettant de rendre plus efficace le codage des paramètres de prédiction des modes de codage du codeur H.264/AVC. On considère, selon un premier exemple, le cas d'un bloc courant codé par un mode de codage inter, présentant au moins un bloc voisin codé par un mode de codage « saut ». Selon cet exemple de réalisation, on affecte au bloc voisin codé par un mode de codage « saut » une valeur de paramètre de prédiction correspondant au vecteur de mouvement utilisé pour la reconstruction de ce bloc voisin. Le vecteur de mouvement est obtenu par calcul de la valeur médiane des vecteurs de mouvement des blocs voisins de ce bloc voisin. La valeur de paramètre de prédiction pour le bloc courant est alors la valeur médiane des vecteurs de mouvement des blocs voisins.
On considère, selon un deuxième exemple, le cas d'un bloc courant codé par un mode de codage inter, présentant au moins un bloc voisin codé par un mode codage intra. Selon cet exemple de réalisation, on affecte au bloc voisin codé par un mode de codage intra la valeur de paramètre de prédiction correspondant au vecteur de mouvement obtenu par la projection des vecteurs de mouvement des blocs d'une première image de référence par rapport à une deuxième image de référence sur l'image courante et la mise à l'échelle des vecteurs de mouvement. Pour rappel, la mise à l'échelle est une opération de multiplication du vecteur de mouvement pour prendre en compte la proportionnalité de l'amplitude du vecteur de mouvement par rapport à la distance entre l'image courante et l'image de référence. La figure 4, décrite plus précisément en relation avec l'annexe A, décrit cette technique.
On considère encore, selon un troisième exemple, le cas d'un bloc courant codé par un mode de codage inter, présentant au moins un bloc voisin codé par un mode codage intra. Selon cet exemple, si le bloc voisin codé par un mode de codage intra possède des blocs voisins codés par un mode de codage inter, on affecte au bloc voisin en mode de codage intra la valeur de paramètre de prédiction correspondant à la valeur médiane des vecteurs de mouvement de ses blocs voisins.
On présente ci-après, en relation avec la figure 6, un exemple de mise en oeuvre du procédé de codage selon l'invention, pour un schéma de codage vidéo exploitant un nouveau mode de codage inter au moyen de tubes de mouvement tels que décrits dans la demande de brevet français précitée FR 2 917 872,
Selon cet exemple, on met en œuvre les étapes suivantes, en considérant deux images non consécutives 70 et 71 : découpage de la première image 70 en un ensemble de blocs, - construction 76 d'une prédiction par compensation en mouvement en avant et obtention d'une image intermédiaire 73, à partir de l'image intermédiaire 73, reconstruction 77 d'une image complète 74, par exemple en utilisant une technique classique de restauration connue en anglais sous le nom de « inpainting », codage 78 de la seconde image 71 exploitant un codage prédictif par compétition, en d'autres termes lors du codage d'un bloc, on peut utiliser ou non la prédiction utilisant l'image de prédiction 74 et aboutissant au codage par bloc 75. Sur cet exemple, on peut observer que lors du codage de la seconde image
71 , on a utilisé respectivement les modes de codage suivant :
- pour les blocs référencés 101, 102, 103, 104, 121, 122 : utilisation du mode de codage de type « saut » utilisant des tubes de mouvements utilisant la prédiction venant de l'image de prédiction 74, - pour les blocs référencés 123 et 124 : utilisation du mode de codage inter, pour les blocs référencés 131 et 132 : utilisation du mode de codage « saut » (i.e. indication de l'utilisation de la prédiction venant de l'image de prédiction 74), pour le bloc référencé 133 : utilisation du mode de codage inter, - pour le bloc référencé 134 : utilisation du mode de codage intra.
Lors du codage du bloc 123 en mode inter, comme il n'existe pas de blocs voisins ayant été codé en mode inter, une implémentation directe ne délivrerait pas de vecteurs de mouvement de prédiction performant pour le codage de ce bloc. Avantageusement le procédé de codage selon l'invention permet de fournir une information de prédiction adéquate. En utilisant les opérations de compensation en mouvement de l'étape 76 de construction d'une prédiction et de complétion (« inpainting ») des informations manquantes de l'étape de reconstruction 77 d'une image complète sur les valeurs des vecteurs de champs de mouvement, il est possible d'obtenir un champ de mouvement dans l'image de prédiction 74, exploité pour prédire le mouvement du bloc courant 123.
Typiquement, à partir du champ de mouvement de l'image de prédiction 74, on peut définir des valeurs de paramètres de prédiction (valeurs d'affectation) correspondant ici à des valeurs de vecteurs mouvement sur les blocs voisins du bloc courant 123, et ainsi utiliser la prédiction usuelle d'un schéma de codage par bloc. Il est également possible de définir les valeurs de paramètres de prédiction à partir d'une pondération des vecteurs dans l'image de prédiction 74 correspondant à l'ensemble de pixel du bloc 123.
En reprenant l'exemple précédent, lors d'un codage utilisant une double prédiction telle qu'illustrée en figure 7, lors du codage d'une image intermédiaire 81, insérées entre deux images de référence (première image 80 et deuxième image 82), on dispose sur les première et deuxième images 80 et 82 d'un ensemble de tubes (définis sur la première image 80 par tous les blocs, et sur la deuxième image 82 par les blocs 8013, 8014, 8023 et 8024). Les tubes associés aux blocs de la deuxième image 82 correspondent par exemple à des zones non prédites par les tubes provenant de la première image 80 (par exemple des zones de découvrement).
Selon le procédé de codage défini dans la demande de brevet français FR 2 917 872 précitée, le codage de la première image 81 se fait alors en réalisant une compensation en mouvement (opérations référencées 800 et 801), une opération de fusion des prédictions 802 permettant le codage 803 de l'image intermédiaire 81.
Les informations des tubes liées à la deuxième image 82 sont par exemple codées selon un parcours ligne par ligne des blocs de la deuxième image 82. Selon cet exemple d'application aux tubes de mouvement, lors du parcours des blocs 8001, 8002, 8003, 8004, 8011, 8012, 8021 et 8022 aucune information n'est lue, ces blocs n'ayant pas été définis comme points de départ de nouveaux tubes lors du codage de l'image 82.
Ainsi lors du codage du bloc 8013, on utilise une prédiction 806 de vecteur de mouvement du bloc 8013 à l'aide des valeurs d'affectation (correspondant à des vecteurs de mouvement « virtuel ») affectées aux blocs voisins selon l'invention, via les opérations de projection 804 et de complétion des informations manquantes 805. Les valeurs de vecteurs de mouvement ainsi projetées depuis la première image 80 correspondent aux valeurs de mouvement relatif entre la première image 80 et la deuxième image 82. Les valeurs de vecteurs de mouvement de prédiction sont obtenues en mettant à l'échelle (illustrée par la figure 4 en relation avec l'annexe A) les vecteurs de mouvement projetés pour correspondre au sens et à la distance temporelle entre la seconde image 82 et l'image intermédiaire 81. Selon cet exemple, pour un mode de codage inter particulier, l'étape d'affectation proposée permet donc d'attribuer une valeur d'affectation de type tube de mouvement.
B) Exemple d'application pour un bloc courant codé selon un mode de codage intra On présente ci-après des exemples de détermination de la valeur d'affectation pour des modes de codage intra existants mis en œuvre dans un codeur H.264/AVC, permettant de rendre plus efficace le codage des paramètres de prédiction des modes de codage du codeur H.264/AVC.
On considère, selon un premier exemple, le cas d'un bloc courant codé par un mode de codage intra, présentant au moins un bloc voisin codé par un autre mode codage. Selon cet exemple de mise en œuvre, on affecte au(x) bloc(s) voisin(s) qui ne sont pas codés selon le mode de codage intra la valeur de paramètre de prédiction DC (la direction de prédiction DC de la norme
H.264/AVC correspondant à la moyenne des directions des pixels adjacents au bloc).
La valeur de paramètre de prédiction du bloc courant, qui correspond au mode le plus probable (ou MPM de l'anglais « Most Probable Mode »), correspond alors à l'indice minimum des indices de prédiction des blocs voisins. En effet dans la norme H.264/AVC, à chaque mode de prédiction est associé un indice, par exemple, l'indice 1 au mode horizontal, l'indice 2 au mode DC, etc.
On considère, selon un deuxième exemple, le cas d'un bloc courant codé par un mode de codage intra, présentant au moins un bloc voisin codé par un mode codage intra et au moins un bloc voisin codé par un autre mode codage. Selon cet exemple, la valeur de paramètre de prédiction du bloc courant (« Most Probable Mode ») correspond à la valeur du paramètre de prédiction du bloc voisin qui est codé par un mode intra.
On présente ci-après, en relation avec la figure 8, un exemple de mise en oeuvre du procédé de codage selon l'invention, pour un schéma de codage vidéo exploitant un nouveau mode de codage intra.
On considère un bloc 91 courant à coder. Ce bloc courant 91 a notamment pour voisin un bloc 94, localisé au-dessus du bloc courant 91 et codé par un autre mode intra, par exemple selon la technique dite du « Template Matching » décrite en relation avec l'art antérieur. Le bloc voisin 94 ne possède donc aucune valeur de paramètre de prédiction. Ce bloc voisin 94 est un bloc dit « réfèrent ».
On définit par bloc réfèrent, un bloc voisin du bloc courant ayant au moins un côté en commun avec ce bloc courant.
Le bloc courant 91 possède également deux blocs voisins non référents référencés 93 et 95, respectivement localisés en haut à gauche et en haut à droite du bloc courant 91, et un bloc réfèrent 92, localisé à gauche du bloc courant 91. Les blocs non référents 93 et 95, et le bloc réfèrent 92 sont codés selon un mode intra 4x4 (tel que décrit par la section 8.3.1 "Intra_4x4 prédiction process for luma samples" du standard ITU-T H.264).
Le codage classique AVC affecterait au bloc en cours de codage la direction de prédiction DC (pas de direction ou moyenne des directions de texture des blocs voisins) puisque le bloc réfèrent 94 n'a pas de direction (le bloc voisin 94 ne possède aucune valeur de paramètre de prédiction).
Selon cet exemple, le procédé selon l'invention cherche à déterminer une valeur d'affectation correspondant à une direction de prédiction, dite direction d'affectation, afin de ne pas limiter les performances de codage dues à l'absence de direction de référence.
Trois méthodes peuvent être appliquées pour affecter une direction d'affectation au bloc réfèrent 94.
Selon une première méthode, on peut calculer classiquement le gradient moyen de texture, par exemple, en moyennant les valeurs du vecteur gradient en tout point du bloc réfèrent 94, puis la direction de prédiction du bloc réfèrent 94 est définie comme étant la direction orthogonale à celle du gradient. Si le gradient moyen n'a pas de direction prononcée, c'est-à-dire si le gradient est nul, ou de faible valeur, on proposera alors le mode de prédiction DC, qui correspond à l'absence de direction de prédiction et donc l'attribution de la moyenne des directions des pixels adjacents au bloc réfèrent 94.
Selon une deuxième méthode, on peut affecter au bloc réfèrent 94 une direction de prédiction héritée des blocs intra 4x4 les plus proches (voisins géographiquement). Par exemple, on lui affecte la valeur de prédiction du bloc non réfèrent 93, ou du bloc non réfèrent 95, ou une combinaison des directions de prédiction de ces deux blocs non référents 93 et 95.
Selon une troisième méthode, on affecte le mode de prédiction "DC" au bloc qui n'a pas été codé en mode INTRA.
Puis la prédiction du bloc courant 91 utilise classiquement comme mode le plus probable celui correspondant à l'indice minimum entre les indices de direction de prédiction du bloc réfèrent 92 ou du bloc réfèrent 94.
On considère de nouveau l'exemple de la figure 6 relatif à la mise en œuvre du procédé de codage selon l'invention, pour un schéma de codage vidéo exploitant un nouveau mode de codage intra au moyen de tubes de mouvement tels que décrits dans la demande de brevet français précitée FR 2 917 872.
En relation avec la figure 11, on considère maintenant un bloc 102 pour lequel le mode de codage intra a été utilisé lors du codage de la seconde image, des blocs référencés 103, 104 et 105 pour lesquels le mode de codage "saut" avecs tubes de mouvement, a été utilisé et le bloc référencé 102 pour lequel le mode de codage inter a été utilisé.
Lors du codage du bloc 101 courant en mode intra, comme il n'existe pas de blocs voisins ayant été codé en mode intra, une implémentation directe ne délivrerait pas de prédiction correcte de la texture du bloc pour le codage de ce bloc. Avantageusement le procédé de codage selon l'invention permet de fournir une information de prédiction de texture adéquate pour le bloc 101. Selon la technique de projection associée aux tubes de mouvement, on reconstruit une image de prédiction de texture, à laide des opérations de compensation en mouvement de l'étape 76 de construction d'une prédiction et de complétion (« inpainting ») des informations manquantes de l'étape de reconstruction 77 d'une image complète.
Selon l'invention on utilise cette image de prédiction de texture pour prédire la texture du bloc courant. Dans un premier exemple, on élargit le tube de manière à ce qu'il englobe la position du bloc courant. Le tube ainsi élargi est projeté sur l'image de prédiction. A partir de la texture projetée sur l'image de prédiction, on définit des valeurs de paramètres de prédiction (valeurs d'affectation) correspondant à des valeurs de texture du bloc courant. Dans un second exemple, le tube est projeté sur l'image de prédiction. A partir de la texture projetée sur l'image de prédiction, on extrapole selon une certaine direction des valeurs de paramètres de prédiction (valeurs d'affectation) correspondant à des valeurs de texture du bloc courant. On peut tester par exemple toutes les directions de prédiction possibles (selon la norme H.264/AVC) et conserver la meilleure.
5.4 Structures du codeur et du décodeur
On présente finalement, en relation avec les figures 9 et 10, les structures simplifiées d'un dispositif de codage et d'un dispositif de décodage mettant respectivement en œuvre une technique de codage et une technique de décodage telles que décrites ci-dessus.
Un dispositif de codage tel qu'illustré en figure 9 comprend une mémoire
1001 comprenant une mémoire tampon, une unité de traitement 1002, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur 1003, mettant en œuvre le procédé de codage selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 1003 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 1002. L'unité de traitement 1002 reçoit en entrée au moins une image à coder ou un bloc d'une image à coder. Le microprocesseur de l'unité de traitement 1002 met en œuvre les étapes du procédé de codage décrit précédemment, selon les instructions du programme d'ordinateur
1003, pour déterminer une prédiction de l'image ou du bloc à coder, et coder le bloc ou l'image correspondante. Pour cela, le dispositif de codage comprend, outre la mémoire tampon 1001, au moins des moyens de détermination d'un mode de codage du bloc courant, des moyens de détermination d'un mode de codage utilisé pour au moins voisin, des moyens d'affectation au bloc courant d'une valeur de paramètre de prédiction dépendante desdits modes de codage distincts, des moyens d'affectation audit bloc courant de ladite valeur de paramètre de prédiction associée audit bloc voisin. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 1002.
Un dispositif de décodage tel qu'illustré en figure 10 comprend une mémoire 1111 comprenant une mémoire tampon, une unité de traitement 1112, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur 1113, mettant en œuvre le procédé de décodage selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 1113 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 1112. L'unité de traitement 1112 reçoit en entrée un signal représentatif d'au moins une image codée selon le procédé de codage de l'invention. Le microprocesseur de l'unité de traitement 1112 met en œuvre les étapes du procédé de décodage décrit précédemment, selon les instructions du programme d'ordinateur 1113, pour déterminer une prédiction du bloc donné, et reconstruire l'image correspondante. Pour cela, le dispositif de décodage comprend, outre la mémoire tampon 1 111, au moins des moyens de reconstruction de l'image à partir des valeurs de paramètre de prédiction. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 1112.
ANNEXE A 1. Mode de codage INTER et codage des paramètres mouvement
Pour le mode de codage inter, afin de construire la prédiction, le paramètre de prédiction associé correspond à un vecteur de mouvement Pour des raisons d'efficacité de compression, le codage de ce paramètre de prédiction est réalisé par l'établissement d'une prédiction du vecteur de mouvement et du codage d'un résidu de vecteur de mouvement.
Afin d'établir la prédiction de vecteur de mouvement, deux techniques sont proposées suivant le type de codage utilisé, prédiction spatiale, prédiction temporelle.
En revenant à la figure 3, pour le codage du bloc courant 35 dans le cadre d'une prédiction spatiale, on établit dans un premier temps une valeur de vecteur de mouvement pour les blocs voisins 31, 32, 33 et 34. L'obtention de telles valeurs de vecteurs de mouvement est plus précisément décrite dans la section 8.4.1.3 2 « Dérivation process for motion data of neighbouπng partitions » de la norme ITU-T H.264.
Selon cette norme standard, si un bloc voisin (bloc 32 par exemple) n'a pas été codé selon un mode de codage inter, alors que le bloc courant 35 est codé selon le mode de codage inter, un vecteur de mouvement nul est associé au bloc voisin 32 Par la suite le vecteur de mouvement du bloc courant 35 est codé à l'aide des informations déjà définies sur les blocs voisins. Par exemple, la valeur médiane des composantes des vecteurs mouvements sur les blocs voisins 31, 34, 32, et 33, est utilisée pour définir un vecteur de mouvement de prédiction pour le bloc courant 35 Un résidu de mouvement est ensuite codé. Dans le cadre d'une prédiction temporelle, la valeur de prédiction du vecteur de mouvement est établie à l'aide des valeurs des vecteurs mouvement des blocs co-locahsés dans une image de référence comme défini à la section 8 4 1 2 « Dérivation process for luma motion vectors for B_Skip, B_Direct_16xl6, and B_Direct_8x8 » de la norme ITU-T H 264 La figure 4 illustre cette technique, pour une succession temporelle d'une première image de référence 41, une image dite précédente 42 (non utilisée ici), une image courante 43 et une deuxième image de référence 44, et une technique de compensation de mouvement dite en « arrière » appliqué à l'image courante 43 Un bloc courant à coder de l'image courante 43 est représenté par le bloc 45, et le bloc co-locahsé de ce bloc dans la deuxième image de référence 44 est représenté par le bloc 46. La figure 4 illustre comment les valeurs de prédiction du vecteur de mouvement MVo correspondant au déplacement du bloc courant 45 de l'image courante 43 dans la première image de référence 41, et la valeur de prédiction du vecteur de mouvement MV \ correspondant au déplacement du bloc courant 45 de l'image courante 43 dans la deuxième image de référence 44, sont établies pour une compensation en mouvement arrière telle que :
77?
MVn = — ^ x MV 0 TR11
TRh - TR11 χ TR11 avec : - MVC correspondant au déplacement du bloc 46 de la deuxième image de référence 44 dans la première image de référence 41,
- TRb correspondant à la distance temporelle entre la première image de référence 41 et l'image courante 43,
- TRd correspondant à la distance temporelle entre la première image de référence 41 et la deuxième image de référence 44
2. Mode de codage INTRA et codage des paramètres de prédiction INTRA
Pour le mode de codage intra, une prédiction des valeurs de texture du bloc courant est établie à partir des valeurs de texture codées-décodées des blocs voisins, puis un résidu de prédiction vient s'ajouter à cette prédiction.
Par exemple, dans la norme ITU-T H 264, le mode de codage intra d'un bloc est réalisé à l'aide d'une technique d'extrapolation directionnelle des valeurs de texture codées-décodées sur les blocs voisins La section 8 3 1 « Intra_4x4 prédiction process for luma samples » de la norme ITU-T H 264 précise ainsi comment sont réalisées les différentes prédictions suivant la valeur de l'orientation choisie.
De même que pour le mode de codage inter, pour des raisons d'efficacité de compression, le paramètre de prédiction (i.e. direction d'extrapolation) est codé soit directement, soit à l'aide d'une prédiction de la direction à partir de celle observée sur des blocs voisins. La clause 8.3.1.1 « Dérivation process for the
Intra4x4PredMode » du standard ITU-T H.264 définit ainsi comment établir cette direction de prédiction à l'aide des différents mode Intra 4x4 : mode vertical, mode horizontal, mode DC. En effet, les modes de prédiction Intra pour les blocs 4x4 voisins sont très corrélés. Par exemple, en revenant à la figure 3, si les blocs voisins 34 et 32 ont été prédits à l'aide du mode DC, il est vraisemblable que le meilleur mode pour la prédiction du bloc courant 35 est également le mode DC.
Pour chaque bloc à prédire, le codeur détermine donc le mode le plus probable (ou MPM de l'anglais « Most Probable Mode »). Le MPM correspond au minimum de l'indice de prédiction des blocs voisins 34 et 32, ou au mode DC si l'un des blocs voisins 34 ou 32 n'est pas codé en mode Intra 4x4.

Claims

REVENDICATIONS
1. Procédé de codage d'au moins une image comprenant une étape de découpage d'une image courante en blocs et une étape de codage des blocs de ladite image courante mettant en œuvre au moins deux modes de codage distincts, caractérisé en ce que ladite étape de codage met en œuvre les étapes suivantes, pour au moins un bloc courant :
- détermination (61) d'un mode de codage dudit bloc courant ;
- obtention (62) d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts (63) : o affectation (65) à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation ; o affectation (66) audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation.
2. Procédé de codage selon la revendication 1, caractérisé en ce que ladite valeur représentative de la ou desdites valeurs d'affectation, affectée audit bloc courant, appartient au groupe comprenant :
- si un seul du ou desdits blocs voisins présente un mode de codage distinct de celui dudit bloc courant : o ladite valeur d'affectation affectée audit bloc voisin, ou o ladite valeur d'affectation affectée audit bloc voisin après raffinement ;
- si plusieurs desdits blocs voisins présentent un mode de codage distinct de celui dudit bloc courant : o une combinaison des valeurs d'affectation affectées auxdits blocs voisins, ou o une combinaison des valeurs d'affectation affectées auxdits blocs voisins après raffinement.
3. Procédé de codage selon la revendication 1, caractérisé en ce que ladite valeur d'affectation est déterminée à partir d'au moins un élément appartenant au groupe comprenant :
- un vecteur de mouvement ;
- un vecteur de contrôle ;
- un tube de mouvement ;
- une direction de prédiction de texture ; - une orientation de texture ; en tenant compte du mode de codage dudit bloc courant.
4. Procédé de codage selon la revendication 1, caractérisé en ce que, si ledit bloc courant est codé selon un mode de codage dit « inter », à partir d'au moins une image de référence, ladite valeur d'affectation est une information de mouvement déterminée entre une image courante et la ou lesdites images de référence.
5. Procédé de codage selon la revendication 1, caractérisé en ce que, si ledit bloc courant est codé selon un mode de codage dit « intra », à partir d'au moins un bloc précédemment codé de ladite image courante, ladite valeur d'affectation est une information de texture.
6. Procédé de codage selon la revendication 5, caractérisé en ce que ladite information de texture est une direction de prédiction déterminée en tenant compte d'une direction de prédiction d'au moins un du ou desdits blocs voisins, préalablement déterminée.
7. Procédé de codage selon la revendication 5, caractérisé en ce que ladite information de texture est une direction de prédiction correspondant à une direction orthogonale au gradient moyen de texture d'au moins un du ou desdits blocs voisins.
8. Programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de codage selon la revendication 1 lorsque ce programme est exécuté par un processeur.
9. Dispositif de codage d'au moins une image comprenant des moyens de découpage d'une image courante en blocs et des moyens de codage des blocs de ladite image courante mettant en œuvre au moins deux modes de codage distincts, caractérisé en ce que ledit dispositif de codage comprend, pour au moins un bloc courant :
- des moyens de détermination d'un mode de codage dudit bloc courant ;
- des moyens d'obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- des moyens d'affectation, à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant, d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation, mis en œuvre si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts ;
- des moyens d'affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation, mis en œuvre si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts.
10. Procédé de décodage d'au moins une image, ladite image ayant subi un découpage en blocs et un codage desdits blocs mettant en œuvre au moins deux modes de codage distincts, ledit codage mettant en œuvre les étapes suivantes, pour un bloc courant : - détermination d'un mode de codage dudit bloc courant ;
- obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
- si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts : o affectation à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation ; o affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation. caractérisé en ce que ledit procédé de décodage met en œuvre une reconstruction de ladite image à partir de ladite valeur représentative de la ou desdites valeurs d'affectation.
11. Programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de décodage selon la revendication 10 lorsque ce programme est exécuté par un processeur.
12. Dispositif de décodage d'au moins une image, ladite image ayant subi, dans un dispositif de codage, un découpage en blocs et un codage desdits blocs mettant en œuvre au moins deux modes de codage distincts, ledit dispositif de codage comprenant, pour un bloc courant :
- des moyens de détermination d'un mode de codage dudit bloc courant ;
— des moyens d'obtention d'un mode de codage utilisé pour au moins un bloc précédemment codé servant au codage dudit bloc courant, dit(s) bloc(s) voisin(s) ;
— des moyens d'affectation à au moins un du ou desdits blocs voisins dont le mode de codage est distinct de celui dudit bloc courant, d'une valeur de paramètre de prédiction propre au mode de codage dudit bloc courant, dite valeur d'affectation, mis en œuvre si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts ;
- des moyens d'affectation audit bloc courant d'une valeur représentative de la ou desdites valeurs d'affectation, mis en œuvre si le mode de codage dudit bloc courant et le mode de codage utilisé pour au moins un du ou desdits blocs voisins sont distincts ; caractérisé en ce que ledit dispositif de décodage comprend des moyens de reconstruction de ladite image à partir de ladite valeur représentative de la ou desdites valeurs d'affectation.
PCT/FR2010/050140 2009-01-28 2010-01-28 Procede et dispositif de codage d'images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d'ordinateur correspondants WO2010086562A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0950528 2009-01-28
FR0950528 2009-01-28

Publications (1)

Publication Number Publication Date
WO2010086562A1 true WO2010086562A1 (fr) 2010-08-05

Family

ID=41066204

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2010/050140 WO2010086562A1 (fr) 2009-01-28 2010-01-28 Procede et dispositif de codage d'images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d'ordinateur correspondants

Country Status (1)

Country Link
WO (1) WO2010086562A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3081657A1 (fr) * 2018-06-27 2019-11-29 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
CN113891095A (zh) * 2016-01-05 2022-01-04 韩国电子通信研究院 用于预测残差信号的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080181309A1 (en) * 2007-01-29 2008-07-31 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video
FR2917872A1 (fr) 2007-06-25 2008-12-26 France Telecom Procedes et dispositifs de codage et de decodage d'une sequence d'images representee a l'aide de tubes de mouvement, produits programme d'ordinateur et signal correspondant.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080181309A1 (en) * 2007-01-29 2008-07-31 Samsung Electronics Co., Ltd. Method and apparatus for encoding video and method and apparatus for decoding video
FR2917872A1 (fr) 2007-06-25 2008-12-26 France Telecom Procedes et dispositifs de codage et de decodage d'une sequence d'images representee a l'aide de tubes de mouvement, produits programme d'ordinateur et signal correspondant.

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. CRIMINISI ET AL.: "Region filling and object removal by exemplar-based image inpainting", IEEE TRANSACTIONS ON IMAGE PROCESSING
DA LIU; DEBIN ZHAO; QIANG WANG; WEN GAO: "An improved motion vector prediction scheme for video coding", ADVANCES IN MULTIMEDIA INFORMATION PROCESSING - PCM 2006. 7TH PACIFIC RIM CONFERENCE ON MULTIMEDIA. PROCEEDINGS 2-4 NOV. 2006 HANGZHOU, CHINA, November 2006 (2006-11-01), pages 598 - 605, XP002548080, Retrieved from the Internet <URL:http://www.jdl.ac.cn/doc/2006/An%20Improved%20Motion%20Vector%20Prediction%20Scheme%20for%20Video%20Coding.pdf> [retrieved on 20090930] *
T. K. TAN, INTRA PREDICTION BY TEMPLATE MATCHING IMAGE

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113891095A (zh) * 2016-01-05 2022-01-04 韩国电子通信研究院 用于预测残差信号的方法和装置
CN113891093A (zh) * 2016-01-05 2022-01-04 韩国电子通信研究院 用于预测残差信号的方法和装置
FR3081657A1 (fr) * 2018-06-27 2019-11-29 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
WO2020002796A1 (fr) * 2018-06-27 2020-01-02 Orange Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image
JP2021530141A (ja) * 2018-06-27 2021-11-04 オランジュ 少なくとも1つの画像を表すデータストリームをコーディングおよびデコーディングするための方法および装置
US11394964B2 (en) 2018-06-27 2022-07-19 Orange Methods and devices for coding and decoding a data stream representative of at least one image
JP7466470B2 (ja) 2018-06-27 2024-04-12 オランジュ 少なくとも1つの画像を表すデータストリームをコーディングおよびデコーディングするための方法および装置

Similar Documents

Publication Publication Date Title
EP2553927B1 (fr) Procedes et dispositifs de codage et de decodage d&#39;une sequence d&#39;images mettant en oeuvre une prediction par compensation de mouvement avant, et programme d&#39;ordinateur correspondant
EP2446628B1 (fr) Procédé de décodage d&#39;images, dispositifs de décodage et programme d&#39;ordinateur correspondants
WO2015197945A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, et programmes d&#39;ordinateurs associés
FR2907575A1 (fr) Procede et dispositif de codage d&#39;images representant des vues d&#39;une meme scene
EP2449784A1 (fr) Prédiction d&#39;un vecteur mouvement d&#39;une partition d&#39;image courante de forme géometrique ou de taille différente de celle d&#39;au moins une partition d&#39;image de référence voisine, codage et décodage utilisant une telle prédiction
EP4145825A1 (fr) Procédé et dispositif de codage d&#39;une séquence d&#39;image mettant en uvre des blocs de taille différente, signal, support de données, procédé et dispositif de décodage, et programmes d ordinateur correspondants
EP3058737A1 (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
EP2443835B1 (fr) Codage de vecteurs mouvement par compétition de prédicteurs
WO2010043809A1 (fr) Prediction d&#39;une image par compensation en mouvement en avant
EP2392142A1 (fr) Procedes de codage et de decodage d&#39;une sequence d&#39;image mettant en oeuvre une compensation en mouvement, dispositifs de codage et de decodage, signal et programmes d&#39;ordinateur correspondants
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP2377323A2 (fr) Prédiction d&#39;images par repartionnement d&#39;une portion de zone causale de référence, codage et decodage utilisant une telle prédiction
EP2761871B1 (fr) Estimation de mouvement au niveau du décodeur par mise en correspondance de modèles
WO2019008254A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
WO2010086562A1 (fr) Procede et dispositif de codage d&#39;images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d&#39;ordinateur correspondants
EP2716045A1 (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
WO2016102804A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs et programmes d&#39;ordinateurs associes
EP1714498B1 (fr) Procede de recherche de la directon de prediction en codage video intra-image
FR3042368A1 (fr) Procede de codage et de decodage multi-vues, dispositif de codage et de decodage multi-vues et programmes d&#39;ordinateur correspondants
WO2019008253A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR2959376A1 (fr) Procede de traitement d&#39;une information de mouvement, procedes de codage et de decodage, dispositifs, signal et programme d&#39;ordinateur correspondants
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
FR3098071A1 (fr) Procédé d’encodage et de décodage vidéo faible latence
EP4360319A1 (fr) Procédé de construction d&#39;une image de profondeur d&#39;une vidéo multi-vues, procédé de décodage d&#39;un flux de données représentatif d&#39;une vidéo multi-vues, procédé de codage, dispositifs, système, équipement terminal, signal et programmes d&#39;ordinateur correspondants
WO2024042286A1 (fr) Lissage hors boucle de codage d&#39;une frontière entre deux zones d&#39;image

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10707613

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10707613

Country of ref document: EP

Kind code of ref document: A1