FR2918203A1 - Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants. - Google Patents

Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants. Download PDF

Info

Publication number
FR2918203A1
FR2918203A1 FR0756051A FR0756051A FR2918203A1 FR 2918203 A1 FR2918203 A1 FR 2918203A1 FR 0756051 A FR0756051 A FR 0756051A FR 0756051 A FR0756051 A FR 0756051A FR 2918203 A1 FR2918203 A1 FR 2918203A1
Authority
FR
France
Prior art keywords
blocks
block
source
pixels
rectification
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.)
Pending
Application number
FR0756051A
Other languages
English (en)
Inventor
Isabelle Amonou
Antoine Robert
Nathalie Cammas
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.)
Orange SA
Original Assignee
France Telecom SA
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 SA filed Critical France Telecom SA
Priority to FR0756051A priority Critical patent/FR2918203A1/fr
Priority to PCT/FR2008/051162 priority patent/WO2009007603A2/fr
Publication of FR2918203A1 publication Critical patent/FR2918203A1/fr
Pending legal-status Critical Current

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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne un procédé de codage d'images numériques comprenant une étape de découpage (21) d'une image en blocs source de pixels d'image.Selon l'invention, un tel procédé comprend une étape de modification (220) de l'orientation d'au moins un des blocs source, délivrant un bloc redressé, comprenant les sous-étapes de :- détermination (22) d'un ensemble de redressements à utiliser, en fonction du type du bloc source,- application (23) du ou des redressements dudit ensemble ;- sélection (24) d'un desdits redressements, dit redressement sélectionné, selon un critère de performance prédéterminé.

Description

Procédés et dispositifs de codage et de décodage d'images numériques
tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage d'images numériques, et notamment de séquences vidéo d'images. Plus précisément, l'invention concerne le traitement des images numériques, notamment, mais non exclusivement, dans le cadre du schéma de codage en cours de développement dans le cadre du groupe de travail H.265/MPEG-4, suite des travaux de la norme AVC H.264/MPEG-4 ( Advanced Video Coding pour codage vidéo avancé ) de l'Union Internationale des Télécommunications (en anglais ITU pour International Telecommunication Union ) présentée dans le document ISO/IEC 14496-10. 2. Art antérieur Les images et séquences d'images numériques sont connues pour occuper une grande place mémoire, et nécessiter un débit élevé. Il est donc nécessaire de compresser ces images. Pour les applications vidéo, la compression d'images est réalisée par des codeurs vidéo. L'amélioration de l'efficacité de codage des codeurs se traduit par un meilleur compromis débit / distorsion. En d'autres termes, cela revient à obtenir un flux représentatif des pixels qui prend le moins de place possible à qualité constante, ou bien à obtenir une meilleure qualité pour une taille de flux donné. La plupart des codeurs vidéo actuels agissent sur des blocs de pixels. Un bloc de pixels est un regroupement de pixels adjacents. Ces codeurs sont basés sur un traitement des informations contenues dans ces blocs qui implique une étape de transformation, une étape de quantification et une étape de codage entropique. En ce qui concerne l'étape de transformation, deux grandes familles de transformation sont connues : - la transformation de type DCT, ou transformée en cosinus discrète (en anglais Discrete Cosine Transform ), est notamment utilisée dans tous les codeurs vidéo normalisés à ce jour (MPEG-1, -2, -4, H263, H264, etc) ainsi que dans la plupart des codeurs d'images fixes de première génération (JPEG). Après transformation, les coefficients de la DCT sont mis à l'échelle (quantifiés), puis sont parcourus selon un sens de lecture en zig-zag et codés par plage. Ceci permet d'exploiter les coefficients nuls dans les hautes fréquences. La transformation DCT est notamment décrite dans le document Discrete Cosine Transform : algorithms, advantages, 5 applications de K.R.Rao et P.Yip ù Academic Press Professional, Inc., 1990 ; - la transformation par ondelettes est notamment utilisée dans les codeurs d'images fixes du type JPEG 2000, comme décrit par exemple dans le document ISO/IEC 15444 JPEG 2000 Final Committee Draft version 1.0, mars 2000.
Un inconvénient majeur de cette étape de transformation, notamment de type DCT, est qu'elle traite les lignes puis les colonnes de pixels d'une image, ou bien les colonnes puis les lignes, de manière séparée. Elle privilégie donc les deux orientations horizontale et verticale des images, alors que ces axes ne sont pas nécessairement adaptés à l'orientation de ces images.
Il est donc utile d'adapter l'orientation des images, autrement dit de redresser ces images, avant l'étape de transformation. Plus précisément, on entend par orientation d'une image l'orientation sa texture, elle-même définie par l'agencement des pixels et de leurs caractéristiques lumineuses. Cette orientation est ainsi définie en fonction d'informations de contours ou de gradients de texture. Il a ainsi été proposé des techniques de rotation d'image, permettant notamment d'effectuer une rotation globale de l'image, comme décrit dans le document Convolution-based interpolation for fast, high-quality rotation of images de Unser et al., IEEE Transactions on Images Processing, octobre 1995.
Cependant, ces techniques de l'art antérieur présentent de nombreux inconvénients. Tout d'abord, il est à noter que la plupart de ces techniques s'appliquent à une image complète. En effet, la rotation des blocs individuels d'une image pose des problèmes de recouvrement et découvrement qui sont très difficiles à résoudre. De plus, ces techniques sont généralement basées sur une rotation matricielle associée à une interpolation des données, cette interpolation étant nécessaire pour retomber sur des positions entières de pixels. Ainsi, la qualité de l'algorithme dépend directement de la qualité d'interpolation.
Finalement, les techniques proposées ne sont pas réversibles. 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'images numériques comprenant une étape de découpage d'une image en blocs source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2.
Selon l'invention, un tel procédé comprend , pour au moins un des blocs source, une étape de modification de l'orientation dudit bloc source, délivrant un bloc redressé, et comprenant les sous-étapes de : -détermination d'un ensemble de redressements à utiliser, en fonction du type du bloc source ; - application du ou des redressements dudit ensemble de redressements ; - sélection d'un desdits redressements, dit redressement sélectionné, selon un critère de performance prédéterminé. Ainsi, l'invention permet de réorganiser les pixels d'un ou de plusieurs 30 blocs source, afin de modifier l'orientation de ces blocs.
Par exemple, la sous-étape d'application d'un redressement met en oeuvre une rotation, un cisaillement, ou encore une permutation d'au moins un pixel dans le bloc source. En particulier, on détermine selon l'invention un ensemble de redressements à utiliser dans l'étape d'application du ou des redressements, en fonction du type de bloc. Cette étape permet notamment de diminuer le nombre d'orientations possibles, et donc le nombre de déplacements de pixels possibles, pour redresser un bloc source, et donc de limiter l'information à coder. Selon un aspect particulier de l'invention, l'étape de détermination retient l'un des ensembles suivants : - un premier ensemble de redressements disponibles pour les blocs carrés ; - un deuxième ensemble, sous-ensemble dudit premier ensemble, pour les blocs rectangulaires horizontaux ; - un troisième ensemble, sous-ensemble dudit premier ensemble, pour les blocs rectangulaires verticaux. On considère par exemple un premier ensemble de redressements disponibles pour les blocs carrés de taille 16x16. Un tel premier ensemble comprend trente orientations simples possibles. Les deuxième et troisième ensembles, pour des blocs rectangulaires horizontaux de taille 8x16, ou verticaux de taille 16x8, sont des ensembles, éventuellement disjoints, comprenant chacun certaines orientations parmi ces trente orientations simples. Par exemple, le deuxième ensemble comprend des permutations correspondant à une rotation du bloc source comprise entre 0 et 45 par rapport à l'horizontale, et le troisième ensemble comprend des permutations correspondant à une rotation dudit bloc source comprise entre 45 et 90 par rapport à l'horizontale. On diminue ainsi le nombre d'orientations que l'on peut utiliser pour redresser un bloc source. En particulier, le deuxième ensemble comprend essentiellement des 30 redressements appliquant un déplacement agissant sur certains pixels d'au moins une colonne du bloc source, et le troisième ensemble comprend essentiellement des redressements appliquant un déplacement agissant sur certains pixels d'au moins une ligne du bloc source. Selon une autre caractéristique particulière de l'invention, les déplacements sont appliqués sur des sous-blocs carrés pour les blocs rectangulaires. En effet, la limitation du nombre d'orientations permet de rendre indépendants les sous-blocs carrés formant un bloc rectangulaire, ce qui signifie qu'on peut appliquer un redressement distinct à chaque sous-bloc. Le déplacement de certains pixels d'au moins une ligne et/ou au moins une colonne dudit bloc source est par exemple une permutation circulaire. Par exemple, après permutation circulaire, la dernière ligne d'un bloc se retrouve en première position. Selon un autre aspect de l'invention, le procédé de codage comprend également une étape de transformation mathématique de chacun desdits blocs redressés, délivrant un bloc transformé. Cette étape de transformation mathématique est par exemple mise en oeuvre sous la forme d'une DCT, ou d'une transformation par ondelettes. On redresse ainsi l'information résiduelle issue d'une prédiction intra ou d'une estimation/compensation de mouvement inter, afin de faciliter le traitement ultérieur des données. Selon un mode de réalisation particulier, le procédé de codage comprend une étape de lecture des coefficients des blocs transformés s'ils existent, ou des blocs redressés sinon, l'ordre de lecture des coefficients étant fonction du type du bloc correspondant.
En particulier, l'ordre de lecture correspond à un balayage vertical, colonne par colonne, pour les blocs horizontaux, et à un balayage horizontal, ligne par ligne, pour les blocs verticaux. Ce mode de réalisation permet notamment de regrouper l'information résiduelle sur un nombre minimum de coefficients signifiants avant d'aborder les étapes suivantes de quantification/codage entropique.
Dans un autre mode de réalisation, l'invention concerne un dispositif de codage d'images numériques comprenant des moyens de découpage d'une image en blocs source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels.
Selon l'invention, un tel dispositif comprend, pour au moins un desdits blocs source, des moyens de modification de l'orientation dudit bloc source, délivrant un bloc redressé, et comprenant : - des moyens de détermination d'un ensemble de redressements à utiliser, en fonction du type du bloc source ; - des moyens d'application du ou des redressements dudit ensemble de redressements ; - des moyens de sélection d'un desdits redressements, dit redressement sélectionné, selon un critère de performance prédéterminé.
Un tel dispositif de codage est notamment adapté à mettre en oeuvre le procédé de codage décrit précédemment. Il s'agit par exemple d'un codeur vidéo de type H.264 ou H.264 amendé. Un autre aspect de l'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé de codage décrit précédemment. Encore un autre aspect de l'invention concerne un signal de données représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2.
Selon l'invention, un tel signal comprend, pour chacun desdits blocs redressés : - une information de type de bloc, permettant de déterminer le type dudit bloc source, et - une information de redressement, permettant de déterminer un redressement appliqué audit bloc source, lors du codage, l'information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés en fonction de l'information de type de bloc. En particulier, l'ordre des coefficients redressés d'un bloc redressé dans ce signal est fonction de l'information de type de bloc. Un tel signal peut notamment représenter un flux de données codé selon le procédé de codage décrit ci-dessus. Ce signal pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention. Un autre mode de réalisation de l'invention concerne un procédé de décodage d'un signal de données représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image, lesdits blocs source comprenant n1 lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2. Selon l'invention, un tel procédé de décodage comprend, pour chacun des blocs redressés, une étape d'application d'un redressement inverse de celui appliqué au codage, sélectionné parmi un ensemble de redressements, en fonction : - d'une information de type de bloc, permettant de déterminer le type dudit bloc source, et - d'une information de redressement, permettant de déterminer un redressement appliqué audit bloc source, lors du codage, 30 ladite information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés en fonction de ladite information de type de bloc. Un tel procédé de décodage est notamment adapté à décoder un signal de données d'images tel que décrit précédemment. Ainsi, l'orientation utilisée pour redresser un bloc est transmise au 5 décodeur sous la forme d'une information de type de bloc. Cette orientation est donc connue par le décodeur. Un tel procédé comprend notamment une étape de lecture des coefficients redressés des blocs redressés, l'ordre de lecture des coefficients étant fonction de l'information de type de bloc. 10 En particulier, si un bloc source est de type rectangulaire horizontal, on considère qu'il a été redressé selon l'horizontale, et on parcourt ses coefficients dans le sens vertical. Si un bloc source est de type rectangulaire vertical, alors on considère qu'il a été redressé selon la verticale, et on parcourt ses coefficients dans le sens horizontal. Dans les autres cas, par exemple si le bloc source n'a pas 15 été redressé, on parcourt ses coefficients en zigzag. Dans un autre mode de réalisation, l'invention concerne un dispositif de décodage d'un signal de données représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image. 20 Un tel dispositif comprend des moyens d'application d'un redressement inverse de celui appliqué au codage, sélectionné parmi un ensemble de redressements, en fonction : - d'une information de type de bloc, permettant de déterminer le type dudit bloc source, et 25 - d'une information de redressement, permettant de déterminer un redressement appliqué audit bloc source, lors du codage, ladite information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés fonction de ladite information de type de bloc. Un tel dispositif de décodage est notamment adapté à mettre en oeuvre le 30 procédé de décodage décrit précédemment. Il s'agit par exemple d'un décodeur vidéo de type H.264 ou H.264 amendé. Un autre aspect de l'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé de décodage décrit précédemment. 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 présente un synoptique d'un codeur vidéo ; - la figure 2 illustre les principales étapes du procédé de codage selon un mode de réalisation de l'invention ; - la figure 3 illustre le redressement d'un bloc source de taille 4x4 ; -les figures 4A et 4B présentent le partitionnement d'un bloc de 16x16 pixels en deux blocs de 8x16 pixels, ou en quatre blocs de 8x8 pixels ; -la figure 5 propose un exemple de permutations circulaires appliquées à un bloc source rectangulaire horizontal de taille 8x16, orienté à +14, 036 ; - la figure 6 illustre la structure d'un signal de données d'images selon un mode de réalisation de l'invention ; - la figure 7 présente un exemple de transformation appliquée à un bloc présentant un contour horizontal ; -la figure 8 illustre les principales étapes du procédé de décodage selon un 25 mode de réalisation de l'invention ; - les figures 9A et 9B présentent respectivement la structure d'un dispositif de codage et la structure d'un dispositif de décodage selon un mode de réalisation particulier de l'invention. 5. Description d'un mode de réalisation de l'invention 30 5.1 Principe général Le principe général de l'invention repose sur le découpage d'une image en blocs source de pixels d'image, de façon à définir des blocs carrés (comprenant nl lignes et nl colonnes de pixels), des blocs rectangulaires horizontaux (comprenant nl lignes et n2 colonnes de pixels, avec nl < n2) et des blocs rectangulaires verticaux (comprenant nl lignes et n2 colonnes de pixels, avec nl > n2), et sur la prise en compte du type de ces blocs source pour le codage de ces blocs. Ainsi, si l'on considère que les pixels formant un bloc source sont réorganisés, c'est-à-dire que les blocs source comprenant un contour orienté selon une direction horizontale ou verticale sont redressés, puis que ces blocs redressés sont transformés suivant une transformation mathématique (de type DCT par exemple), la technique selon l'invention permet de réduire le nombre de coefficients à la sortie de la transformation. Par la suite, on note n1xn2la taille d'un bloc de pixels, avec nl le nombre de lignes du bloc et n2 le nombre de colonnes. 5.2 Codage A titre d'exemple, l'invention est décrite par la suite pour un codeur vidéo de type H.264, tel qu'illustré en figure 1. Le codeur vidéo 10 est apte à coder une séquence d'images numériques en un flux de données 20. Par exemple, une séquence d'images numériques 1 est enregistrée par un capteur non représenté. L'enregistrement comporte des informations décrivant les images, plus particulièrement les coordonnées et caractéristiques des pixels formant l'image. Par la suite on appellera aussi pixels les informations enregistrées. Les images sont au préalable découpées en blocs source de pixels d'image, 25 de taille n1xn2 pixels. Par exemple, les images sont découpées en macroblocs de 16x16 pixels avant d'être traitées. Il est à noter qu'il existe plusieurs modes de codage dans le cas du codeur vidéo H.264, dont un mode 16x16 pixels, un mode 8x8 pixels et un mode 4x4 pixels. 30 Les pixels formant les images présentes à l'entrée 2 du codeur sont donc regroupés par blocs source, un bloc source correspondant à un regroupement de pixels adjacents. Chaque bloc source correspond à une partie 3 de l'image 1, par exemple un carré ou un rectangle. Une image est donc découpée en blocs source, la taille des blocs pouvant varier.
Les blocs source subissent une transformation et une quantification 4 à l'intérieur du codeur. Il est à noter que tous les blocs avant transformation contiennent uniquement de l'information résiduelle, dans le cas du schéma de codage H.264, puisqu'ils ont subi une prédiction 5. Ils subissent soit une prédiction intra, soit une prédiction inter, connues par ailleurs. Une image codée par rapport à elle-même dite image intra , est nécessaire pour le rafraîchissement et pour permettre un accès aléatoire dans la séquence. Une image dite inter est codée par rapport à une ou plusieurs images de référence, à partir de techniques d'estimation et de compensation de mouvement. De manière classique, après la prédiction, les données résiduelles de chaque bloc, intra et/ou inter, sont transformées en utilisant l'une des transformations du codeur H.264. Le codeur comporte par ailleurs une estimation des mouvements 7 à l'intérieur des images à partir de laquelle est réalisée une compensation de mouvement 8 qui sert à la prédiction des images. En sortie du circuit de transformation 4, les images sont reconstruites par une quantification et une transformation inverses 9 pour obtenir un ensemble d'images reconstruites 11 utilisées pour la prédiction des images suivantes. Enfin, à la suite de la transformation 4, les données subissent un codage entropique 12. La sortie du circuit de codage entropique 12 forme la sortie du codeur vidéo. On obtient en sortie de ce circuit le flux de données 20. Comme indiqué précédemment, le codeur vidéo de la figure 1 exécute donc successivement les étapes de transformation et quantification 4, ainsi que de codage entropique 12. Ces étapes peuvent être réalisées par un processeur implanté dans le codeur. Le codeur comporte par ailleurs de l'espace mémoire pour stocker les images reconstruites ou autres données intermédiaires ou de codage qui seront décrites par la suite.
La figure 2 illustre les principales étapes du procédé de codage selon l'invention. On considère pour ce faire qu'une image à coder est préalablement découpée 21 en blocs source de pixels d'image, ou en macroblocs, les blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2. Selon l'invention, on met en oeuvre, pour au moins un des blocs source de 10 l'image, une étape 220 de modification de l'orientation dudit bloc source, délivrant un bloc redressé, avant l'étape de transformation 4. En particulier, selon une variante de réalisation de l'invention, l'étape 220 de modification de l'orientation est mise en oeuvre pour chacun des blocs source de l'image. 15 Selon une autre variante, on utilise au codage un pré-traitement qui permet d'identifier des régions de l'image (c'est-à-dire des ensembles de macroblocs) qui présentent une orientation caractéristique. Par exemple, ce pré-traitement retient les régions présentant des contours ou des gradients de luminance homogène, et exclut les régions de texture aléatoire. Selon cette variante, l'étape 220 de 20 modification de l'orientation est mise en oeuvre seulement pour les blocs source composant ces régions orientées. Plus précisément, cette étape 220 de modification de l'orientation comprend les sous-étapes suivantes : -détermination 22 d'un ensemble de redressements à utiliser en 25 fonction du type du bloc source ; - application 23 du ou desdits redressements composant l'ensemble de redressements ; - sélection 24 d'un desdits redressements, dit redressement sélectionné, selon un critère de performance prédéterminé. 30 Par exemple, un redressement correspond à une permutation circulaire de certains pixels d'au moins une ligne et/ou au moins une colonne d'un bloc source, et la sous-étape de sélection 24 permet de déterminer pour chaque bloc source une permutation qui permet d'obtenir un gain de codage. Autrement dit, la permutation optimale est celle qui donne par exemple le meilleur rapport débit/distorsion. Ainsi, le procédé selon l'invention effectue un redressement d'un bloc source suivant au moins l'une de ses composantes pour la texture. De préférence, et pour optimiser la transformation DCT appliquée par la suite, les blocs sont redressés selon l'un des axes de la transformation DCT, c'est-à-dire par exemple l'axe horizontal ou l'axe vertical. Cette étape 220 de modification de l'orientation d'un ou de plusieurs blocs source est suivie d'une étape 25 de codage des blocs redressés. Dans cette étape 25, les blocs redressés sont codés classiquement avec les circuits 4, 12 du codeur vidéo. Par exemple, dans le cas du codeur H.264, les blocs redressés sont transformés avec la DCT 4x4 avant quantification et codage entropique. On considère par exemple en relation avec la figure 3 que les blocs source issus de l'étape de découpage sont tous des blocs carrés comprenant quatre lignes et quatre colonnes de pixels. Plus particulièrement la figure 3 illustre les orientations possibles d'un bloc 4x4 pixels et leurs redressements vers l'axe horizontal ou vertical. Comme indiqué précédemment, l'orientation d'un bloc correspond en fait à l'orientation de sa texture, elle-même définie par l'agencement des pixels et de leurs caractéristiques lumineuses. La figure 3 illustre un cas simple où le bloc est composé de pixels noirs et de pixels blancs. Pour un bloc 4x4, il existe par exemple sept états d'orientations dont six états simples 31, 32, 33, 34, 35, 36 sont représentés sur la figure 3. L'état d'orientation non représenté correspond au cas où le bloc a déjà une orientation horizontale ou verticale, ou une orientation distincte des six états simples. Les six états d'orientations simples, encore appelés orientations simples, considérées selon le sens trigonométrique, sont illustrées par : - un bloc 31 ayant une orientation H1, positive, et un bloc 32 ayant une orientation H2, négative, proche de l'horizontale lorsque le bloc a une orientation située dans un intervalle autour de 27 par rapport à l'horizontale ; - un bloc 33 ayant une orientation proche de la verticale positive et un bloc 34 ayant une orientation proche de la verticale négative, lorsque le bloc a une orientation située dans un intervalle autour de 63 par rapport à l'horizontale ; - un bloc 35 ayant une orientation proche de la diagonale positive et un bloc 36 ayant une orientation proche de la diagonale négative, lorsque le bloc a une orientation située dans un intervalle autour de 45 par rapport à l'horizontale. A chacune de ces orientations correspond un redressement particulier du bloc réalisé par des déplacements des pixels 37, par exemple des permutations circulaires, selon les lignes ou les colonnes de pixels. Ainsi, le bloc 31 dont l'orientation est proche de l'horizontale positive est redressé pour former un bloc 38 ayant une orientation horizontale. Dans l'exemple de ce bloc 31, deux pixels noirs sont situés en bas des deux premières colonnes et deux pixels noirs sont centrés dans les deux dernières colonnes. Une permutation circulaire 39 est par exemple appliquée sur les pixels de la première colonne. Une même permutation circulaire est appliquée sur les pixels de la deuxième colonne. Les pixels des troisième et quatrième colonnes bien orientés autour de l'horizontale restent inchangés. Après ces deux permutations, le bloc est orienté horizontalement, les pixels noirs se trouvant tous répartis autour de l'horizontale. Les autres blocs subissent des redressements analogues, par permutations circulaires de lignes ou de colonnes par exemple. Les blocs 33, 34 proches de la verticale sont redressés pour former un bloc à orientation verticale et les blocs 35, 36 proches de la diagonale sont redressés par exemple vers l'horizontale. Connaissant l'orientation initiale d'un bloc, donnée par sa texture, il est aisé de définir les permutations circulaires de pixels, en lignes ou en colonnes, qui orientent la texture selon l'axe vertical ou l'axe horizontal. D'autres modes de redressement pourraient être adoptés. Le principe de redressement par permutations circulaires a été décrit pour le bloc 31 d'orientation proche de l'horizontale. On obtient de la même manière des blocs redressés 38 pour les autres blocs 32, 33, 34, 35, 36 orientés différemment. Des redressements, obtenus selon le même principe, peuvent aussi s'appliquer à des blocs 8x8 pixels et 16x16 pixels. Pour un bloc 8x8, on peutsélectionner quinze états d'orientations : une non-orientation, si le bloc a une orientation horizontale ou verticale, ou n'est pas candidat à un redressement, et quatorze orientations simples positives ou négatives, lorsque par exemple le bloc a une orientation située dans un intervalle autour de 14 , 27 , 37 , 45 , 53 , 63 , 76 . Pour un bloc 16x16, on peut sélectionner de façon analogue trente et un états d'orientations possibles : une non-orientation et trente orientations simples positives ou négatives, lorsque par exemple le bloc a une orientation située dans un intervalle autour de 7 , 14 , 21 , 27 , 32 , 37 , 41 , 45 , 49 , 53 , 58 , 63 , 70 , 76 , ou 83 . L'invention s'applique également aux blocs de taille hybride, par exemple de taille 16x8, 8x16, 8x4, ou 4x8.
Ainsi, les blocs source issus de l'étape de découpage appartiennent à trois types de bloc distincts : - des blocs carrés, avec nl = n2, - des blocs rectangulaires horizontaux, avec nl < n2, et - des blocs rectangulaires verticaux, avec nl > n2, avec nl le nombre de lignes et n2 le nombre de colonnes de pixels. L'étape 21 de détermination d'un ensemble de redressements à utiliser dans l'étape 22 d'application des redressements dépend notamment de ce type de bloc. Ainsi, l'étape de détermination retient un premier ensemble de 30 redressements disponibles pour les blocs carrés de taille nlxnl, un deuxième ensemble compris dans le premier ensemble pour les blocs rectangulaires horizontaux de taille nlxn2, avec nl < n2, et un troisième ensemble compris dans le premier ensemble pour les blocs rectangulaires verticaux de taille nlxn2, avec nl>n2.
Par exemple, le premier ensemble comprend tous les redressements possibles applicables aux blocs carrés. Selon un autre exemple, si l'on considère un bloc source carré de taille 16x16 pixels, le premier ensemble comprend l'ensemble des redressements correspondants aux trente orientations simples définies précédemment.
Si l'on considère un bloc source rectangulaire horizontal de taille 8x16 pixels, le deuxième ensemble est défini comme un sous-ensemble du premier ensemble. Il comprend donc un ensemble de redressements correspondants à seulement certaines orientations parmi les trente orientations simples définies précédemment. Plus précisément, ce deuxième ensemble comprend essentiellement des redressements appliquant un déplacement (par exemple une permutation circulaire) agissant sur certains pixels d'une ou plusieurs colonnes du bloc source. Par exemple, le deuxième ensemble comprend des permutations correspondant à une rotation du bloc source comprise entre 0 et 45 par rapport à l'horizontal.
Finalement, si l'on considère un bloc source rectangulaire vertical de taille 16x8 pixels, le troisième ensemble est défini comme un sous-ensemble du premier ensemble. Il comprend donc un ensemble de redressements correspondants à seulement certaines orientations parmi les trente orientations simples définies précédemment, éventuellement distinctes de celles correspondants au second ensemble. Plus précisément, ce troisième ensemble comprend essentiellement des redressements appliquant un déplacement, par exemple une permutation circulaire, agissant sur certains pixels d'une ou plusieurs lignes du bloc source. Par exemple, le troisième ensemble comprend des permutations correspondant à une rotation du bloc source comprise entre 45 et 90 par rapport à l'horizontale.
Ainsi, selon un mode de réalisation particulier de l'invention, le partitionnement des macroblocs H.264 permet de définir la taille des blocs à orienter, mais aussi par analyse permet de limiter les orientations sélectionnées. Les blocs hybrides 16x8, 8x16, 8x4 et 4x8 sont alors redressés directement par des permutations circulaires appliquées au niveau pixel, permutations correspondant à une certaine orientation dont le nombre est limité par la taille et la forme du bloc traité. Les blocs sont redressés selon la verticale ou l'horizontale afin de réduire le nombre de coefficients à la sortie de la DCT (4x4 ou 8x8). En effet, on considère qu'un macrobloc de 16x16 pixels, tel qu'illustré en figure 4A, et découpé en deux blocs de 8x16 pixels, c'est-à-dire en deux blocs rectangulaires horizontaux 41 et 42, présente généralement un contour horizontal dans un des deux blocs (ou les deux) et une partie homogène dans l'autre (éventuellement aucune). De même, un macrobloc de 16x16 pixels découpé en deux blocs de 16x8 pixels, c'est-à-dire en deux blocs rectangulaires verticaux, présente un bloc avec un contour vertical et un bloc homogène (ou deux blocs avec des contours verticaux). L'invention propose donc d'utiliser les orientations définies pour les blocs 16x16 : -appartenant au deuxième ensemble, c'est-à-dire proches de l'horizontale pour les partitions 8x16 (par exemple les permutations correspondants aux orientations comprises entre 7 et 14 ) ; - appartenant au troisième ensemble, c'est-à-dire proches de la verticale pour les partitions 16x8 (par exemple les permutations correspondants aux orientations comprises entre 76 et 83 ). De même, on considère qu'un macrobloc de 16x16 pixels est découpé en quatre blocs de 8x8 pixels, tel qu'illustré en figure 4B, si plusieurs de ces blocs ont des orientations différentes. Certains de ces blocs de 8x8 pixels peuvent être découpés en deux blocs de 8x4 pixels, c'est-à-dire en deux blocs rectangulaires verticaux 43 et 44.
Si le bloc est découpé en deux partitions 8x4 (verticalement), il présente alors, généralement, un contour vertical dans une des partitions (ou les deux). Respectivement, s'il est découpé en deux partitions 4x8 (horizontalement), il présente alors, généralement, un contour horizontal dans une des partitions (ou les deux). L'invention propose donc d'utiliser les orientations définies pour les blocs 8x8 : - appartenant au deuxième ensemble, c'est-à-dire proches de l'horizontale pour les partitions 4x8 (par exemple les permutations correspondants aux orientations comprises entre 14 et 27 ) ; - appartenant au troisième ensemble, c'est-à-dire proches de la verticale pour les partitions 8x4 (par exemple les permutations correspondants aux orientations comprises entre 63 et 76 ). On utilise donc selon l'invention un nombre limité d'orientations et de déplacements correspondants pour redresser les blocs rectangulaires, permettant notamment de redresser les blocs en deux parties adaptées à la taille de la transformée. Autrement dit, les déplacements sont appliqués sur des sous-blocs carrés pour les blocs rectangulaires. Par exemple, pour les blocs rectangulaires de taille 16x8 et 8x16, on traite deux blocs 8x8, et pour les blocs rectangulaires de taille 8x4 et 4x8, on traite deux blocs 4x4. Ainsi, comme illustré en relation avec la figure 5, un bloc 51 de taille 8x16 est redressé en appliquant des déplacements sur des sous-blocs carrés 52 et 53 de taille 8x8. Ces déplacements, par exemple des permutations circulaires, sont adaptés aux tailles rectangulaires des différents blocs hybrides. Selon l'exemple décrit, les blocs hybrides 16x8, 8x16, 8x4 et 4x8 sont donc redressés directement par des permutations circulaires appliquées au niveau pixel, permutations correspondant à une certaine orientation dont le nombre est limité par la taille et la forme du bloc traité.
On décrit ci-après plus précisément l'étape de sélection d'un redressement 24, selon d'un critère de performance prédéterminé. Selon le mode de réalisation considéré, cette étape 24 part d'une image 21 découpée en macroblocs de 16x16 pixels. Un macrobloc peut être composé de différents blocs selon différentes partitions. Ainsi un macrobloc 16x16 peut être composé de deux blocs 8x8 et de huit blocs 4x4, ou de deux blocs rectangulaires verticaux ou horizontaux 8x16. D'autres partitions sont possibles. Cette étape 24 de sélection d'un redressement opère de façon systématique, c'est-à-dire qu'elle teste toutes les partitions et tous les déplacements possibles d'un macrobloc, et conserve la meilleure partition et le meilleur déplacement. Par cette série de tests et la sélection du meilleur redressement pour chaque macrobloc, le procédé selon l'invention effectue une réorganisation des pixels dans les macroblocs avant l'étape de transformation. On considère par exemple plusieurs modes de codage : un mode 16x16, un mode 16x8, un mode 8x16, un mode 8x8, un mode 8x4, un mode 4x8, et un mode 4x4. Selon cet exemple de réalisation de l'invention, les déplacements (par exemple les permutations circulaires) associés à tous ces modes sont testés afin d'en extraire le meilleur au sens débit/distorsion. Dans le cas d'un codeur vidéo H.264 par exemple, lorsque le mode 16x16 est utilisé, on teste chacune des trente et une orientations définies précédemment avec les redressements correspondants dans tous les modes de prédictions, spatiales intra ou temporelles inter. Les macroblocs ainsi redressés, dans chacun des modes et chacune des orientations, sont ensuite codés classiquement. Ils sont ainsi par exemple codés par la transformation DCT 4X4 et la transformation Hadamard DC. Puis on leur applique une quantification et un codage entropique.
De préférence, les macroblocs ainsi codés ne sont pas mis en mémoire dans le codeur, seuls leurs rapports débit/distorsion sont sauvegardés. Puis ces rapports débit/distorsion sont analysés. Le mode de prédiction et l'orientation donnant le meilleur rapport débit/distorsion sont alors conservés avec ce rapport. Pour obtenir ce meilleur rapport débit/distorsion, le procédé selon l'invention opère par exemple comme suit : - il effectue la somme des débits pour obtenir le débit global du macrobloc ; - il calcule la distorsion globale sur tout le macrobloc, entre l'ensemble du macrobloc codé puis décodé, quel que soit le mode, et l'original. La distorsion d'un macrobloc peut être donnée par l'erreur quadratique D définie selon la relation suivante : D = 11 (i (m,n) - i (m,n))2 (1) m n où imB(m, n) est le pixel considéré du macrobloc original, m et n étant respectivement les rangs en colonne et en ligne du pixel dans le macrobloc, m et n étant compris entre 1 et 16, et iMB (m, n) est le pixel dans le macrobloc reconstruit selon les rangs m et n. Quel que soit le mode utilisé, on détermine donc le rapport débit/distorsion comme décrit précédemment pour le mode 16x16 conformément à l'équation (1).
Cela permet ensuite de comparer les rapports débit/distorsion pour le macrobloc, correspondant aux sept modes 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, et 4x4. Le meilleur rapport débit / distorsion parmi ces sept modes définit la meilleure partition avec son orientation associée. Cette partition est alors sélectionnée, elle donne notamment le mode de codage à utiliser pour le macrobloc. Le macrobloc redressé est conservé 47, avec les informations de déplacement des pixels qui ont permis le redressement du macrobloc. En d'autres termes, on détermine, pour chaque macrobloc source d'une image, une information de redressement permettant de déterminer un redressement appliqué à chaque bloc source composant le macrobloc, à partir des étapes suivantes : a. comparaison à l'aide d'un critère débit-distorsion de : i. chaque partitionnement (16x16, 16x8, 8x16, 8x8, 8x4, ii. 4x8 ou 4x4 selon disponibilité intra/inter), pour chaque partition, et iii. avec toutes les orientations définies pour cette partition, b. isolation du meilleur partitionnement avec les meilleures orientations pour chaque partition ; puis on utilise cette information de redressement au codage pour redresser certains blocs selon la verticale et/ou horizontale à l'aide de déplacements de certains pixels (les autres blocs n'étant pas redressés). 5.3 Variante de réalisation Finalement, il est encore possible d'améliorer l'efficacité de codage des codeurs en choisissant un parcours adapté des coefficients : - des blocs source, ou -des blocs redressés si une étape de redressement des blocs source est mise en oeuvre, ou - des blocs transformés si une étape de transformation des blocs redressés est mise en oeuvre.
Plus précisément, l'ordre de lecture des coefficients est fonction du type du bloc source correspondant (bloc carré, rectangulaire horizontal, ou rectangulaire vertical). Cette caractéristique relative à l'orientation des blocs que l'on code est déterminée au niveau du codeur, et peut notamment être transmise à un décodeur.
Par exemple, la figure 6 illustre la structure d'un signal transmis du codeur vers le décodeur. Un tel signal comprend, pour chacun des blocs Bl , .., BN redressés : - une information de type de bloc IB , respectivement IB , 1 N permettant de déterminer le type du bloc source Bl , respectivement BN , et - une information de redressement IR , respectivement IR 1 N permettant de déterminer un redressement appliqué au bloc source Bl , respectivement BN , lors du codage, tel que l'information de redressement IRl , respectivement IRN , identifie un 30 redressement dans un ensemble de redressements prédéterminés fonction de l'information de type de bloc IBl , respectivement I BN En particulier, l'ordre de lecture des coefficients : - d'un bloc source, ou - d'un bloc redressé si une étape de redressement des blocs source est mise en oeuvre, ou - d'un bloc transformé si une étape de transformation des blocs redressés est mise en oeuvre, correspond à un balayage vertical, colonne par colonne, pour les blocs horizontaux, et un balayage horizontal, ligne par ligne, pour les blocs verticaux.
Ainsi, si l'on applique une transformation 72 de type DCT sur un bloc 71 redressé horizontalement comme illustré en figure 7, on obtient un bloc transformé 73. L'ordre de lecture des coefficients selon l'invention correspond alors à un balayage vertical, colonne par colonne, délivrant les valeurs 127, 160, 127, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, O. Le sens de lecture est donc optimisé, puisqu'il permet de regrouper les coefficients significatifs, c'est-à-dire les coefficients non nuls, de la DCT. Selon l'art antérieur en revanche, l'ordre de lecture des coefficients du bloc transformé serait un parcours en zigzag, particulièrement mal adapté, délivrant les valeurs 127, 160, 0, 127, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, O.
On utilise ainsi au codage l'information de type de bloc pour scanner (c'est-à-dire lire ) les coefficients selon le sens horizontal si le bloc est redressé sur la verticale, selon le sens vertical si le bloc est redressé sur l'horizontal, et selon le sens zig-zag standard sinon. Selon une autre variante, on utilise au codage l'information de type de bloc pour scanner (c'est-à-dire lire ) les coefficients selon le sens horizontal si le bloc source est un bloc vertical, ou selon le sens vertical si le bloc source est un bloc horizontal. On peut noter que selon cette variante, on considère l'ordre de lecture des coefficients d'un bloc source, selon le type du bloc source (carré, rectangulaire horizontal, ou rectangulaire vertical). Un tel bloc source n'a pas nécessairement besoin d'être redressé, ou transformé, pour améliorer l'efficacité de codage des codeurs, grâce à un parcours adapté des coefficients du bloc source. L'invention présente ainsi un certain nombre d'avantages par rapport aux techniques de l'art antérieur, selon les différents modes de réalisation envisagés. Plus précisément, l'invention offre selon un de ces modes de réalisation un gain en compression, grâce à l'utilisation, pour chaque macrobloc, de l'orientation de chacune des partitions le composant, permettant de limiter le nombre de coefficients à la sortie de la transformation DCT, et éventuellement à son association à un ordre de lecture qui lui est adapté. Ainsi, par rapport à l'art antérieur, la technique proposée permet par 10 exemple : - de redresser tous les types de partitions, même hybride ; - de limiter de nombre d'orientations par analyse de la taille des partitions (pour des blocs source horizontaux de taille 16x8, 8x16, 8x4, ou encore 4x8). 15 De plus, on peut noter que cette technique ne nécessite pas la transmission de l'ordre de lecture des coefficients, qui peut se déduire de l'information de type du bloc, et ne repose pas sur l'utilisation du voisinage d'un bloc source courant (valeurs de pixels ou de coefficients des blocs voisins du bloc source), mais sur une information caractéristique du bloc, et plus précisément de l'orientation du 20 bloc. En particulier, l'invention peut être appliquée dans tous les codeurs vidéo basés sur un codage par transformée. 5.4 Décodage On illustre désormais en relation avec la figure 8 les principales étapes du 25 procédé de décodage selon l'invention. Un tel procédé doit notamment prendre en compte la réorganisation des pixels (redressement des blocs) effectuée lors du codage avant l'étape de transformation, afin de restituer correctement les images. Plus précisément, le procédé de décodage comprend, selon un mode de réalisation particulier : 30 - une étape 81 de réception de macroblocs, sous la forme d'un signal de données représentatif d'images numériques comprenant des coefficients redressés. Ces coefficients sont groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image, les blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2 ; - une étape 82 de réception d'une information de type de bloc, permettant de déterminer le type du bloc source, et d'une information de redressement, permettant de déterminer un redressement appliqué au bloc source, lors du codage, ladite information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés fonction de l'information de type de bloc ; - une étape 83 d'application d'un redressement inverse de celui appliqué au codage, pour chacun des blocs redressés, sélectionné parmi l'ensemble de redressements, en fonction des informations de type de bloc et de redressement. Selon une variante de réalisation, le procédé de décodage comprend également une étape de lecture des coefficients redressés des blocs redressés, l'ordre de lecture des coefficients étant fonction de l'information de type de bloc. En d'autres termes, on utilise côté décodage l'information de type de bloc (bloc carré, bloc rectangulaire horizontal, ou rectangulaire vertical) pour réaliser le décodage et le réordonnancement des coefficients.
Plus précisément, on déduit si le redressement mis en oeuvre pour le bloc est du type redressement horizontal, redressement vertical, ou bien si aucun redressement n'est mis en oeuvre, à partir d'une lecture des informations de type de bloc. Ensuite, on lit les coefficients ( scan inverse ) selon un sens de lecture horizontal si le bloc a été redressé sur la verticale, selon un sens de lecture vertical si le bloc a été redressé sur l'horizontale, et selon un sens de lecture en zig-zag si le bloc n'a pas été redressé. Finalement, le procédé de décodage met en oeuvre un redressement du bloc, si nécessaire, à l'aide d'un déplacement des pixels (par exemple des permutations circulaires) inverse à celui mis en oeuvre côté codage. 5.5 Structures du codeur et du décodeur On présente finalement, en relation avec les figures 9A et 9B, les structures simplifiées d'un dispositif de codage et d'un dispositif de décodage mettant respectivement en oeuvre en oeuvre 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 9A comprend une mémoire 91 constituée d'une mémoire tampon, une unité de traitement 92, équipée par exemple d'un microprocesseur P, et pilotée par le programme d'ordinateur 93, mettant en oeuvre le procédé de codage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur 93 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 92. L'unité de traitement 92 reçoit en entrée au moins une image numérique 1 à coder. Le microprocesseur de l'unité de traitement 92 met en oeuvre les étapes du procédé de codage décrit précédemment, selon les instructions du programme d'ordinateur 93, pour analyser et décider d'un redressement à appliquer aux blocs source. Pour cela, le dispositif de codage comprend, outre la mémoire tampon 91, des moyens de découpage d'une image en blocs source de pixels d'image et des moyens de modification de l'orientation d'au moins un bloc source, délivrant un bloc redressé, en fonction du type de bloc. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 92.
Un dispositif de décodage tel qu'illustré en figure 9B comprend une mémoire 96 constituée d'une mémoire tampon, une unité de traitement 97, équipée par exemple d'un microprocesseur P, et pilotée par le programme d'ordinateur 98, mettant en oeuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur 98 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 97. L'unité de traitement 97 reçoit en entrée un signal 20 représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'images. Le microprocesseur de l'unité de traitement 97 met en oeuvre les étapes du procédé de décodage décrit précédemment, selon les instructions du programme d'ordinateur 98, pour appliquer aux blocs redressés un redressement inverse à celui mis en oeuvre côté codage. Pour cela, le dispositif de décodage comprend, outre la mémoire tampon 96, des moyens d'application d'un redressement inverse de celui appliqué au codage, sélectionné parmi un ensemble de redressements, en fonction d'une information de type de bloc, et d'une information de redressement. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 97.

Claims (13)

REVENDICATIONS
1. Procédé de codage d'images numériques comprenant une étape de découpage (21) d'une image en blocs source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2 ; caractérisé en ce qu'il comprend, pour au moins un desdits blocs source, une étape 10 de modification (220) de l'orientation dudit bloc source, délivrant un bloc redressé, et comprenant les sous-étapes de : - détermination (22) d'un ensemble de redressements à utiliser, en fonction du type dudit bloc source ; - application (23) du ou desdits redressements dudit ensemble de 15 redressements ; - sélection (24) d'un desdits redressements, dit redressement sélectionné, selon un critère de performance prédéterminé.
2. Procédé de codage selon la revendication 1, caractérisé en ce que ladite étape de détermination (22) retient l'un des ensembles suivants : 20 - un premier ensemble de redressements disponibles pour les blocs carrés - un deuxième ensemble, sous-ensemble dudit premier ensemble, pour les blocs rectangulaires horizontaux ; - un troisième ensemble, sous-ensemble dudit premier ensemble, pour les blocs rectangulaires verticaux. 25
3. Procédé de codage selon la revendication 2, caractérisé en ce que ledit deuxième ensemble comprend essentiellement des redressements appliquant un déplacement agissant sur certains pixels d'au moins une colonne dudit bloc source, et ledit troisième ensemble comprend essentiellement des redressements appliquant un déplacement agissant sur certains pixels d'au moins une ligne dudit 30 bloc source.
4. Procédé de codage selon les revendications 2 et 3, caractérisé en ce que ledit deuxième ensemble comprend des permutations correspondant à une rotation dudit bloc source comprise entre 0 et 45 , et en ce ledit troisième ensemble comprend des permutations correspondant à une rotation dudit bloc source comprise entre 45 et 90 .
5. Procédé de codage selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comprend également une étape de transformation mathématique de chacun desdits blocs redressés, délivrant un bloc transformé.
6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend une étape de lecture des coefficients desdits blocs transformés s'ils existent, ou desdits blocs redressés sinon, l'ordre de lecture desdits coefficients étant fonction du type du bloc correspondant.
7. Procédé de codage selon la revendication 6, caractérisé en ce que ledit ordre de lecture correspond à un balayage vertical, colonne par colonne, pour les blocs horizontaux, et à un balayage horizontal, ligne par ligne, pour les blocs verticaux.
8. Dispositif de codage d'images numériques comprenant des moyens de découpage (21) d'une image en blocs source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2 ; caractérisé en ce qu'il comprend, pour au moins un desdits blocs source, des 25 moyens de modification (220) de l'orientation dudit bloc source, délivrant un bloc redressé, et comprenant : - des moyens de détermination (22) d'un ensemble de redressements à utiliser, en fonction du type dudit bloc source ; - des moyens d'application (23) du ou desdits redressements dudit 30 ensemble de redressements ;- des moyens de sélection (24) d'un desdits redressements, dit redressement sélectionné, selon un critère de performance prédéterminé.
9. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé de codage selon l'une au moins des revendications 1 à 7.
10. Signal de données représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image, lesdits blocs source comprenant n1 lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2, caractérisé en ce qu'il comprend, pour chacun desdits blocs redressés : - une information de type de bloc, permettant de déterminer le type dudit bloc source, et - une information de redressement, permettant de déterminer un redressement appliqué audit bloc source, lors du codage, ladite information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés en fonction de ladite information de type de bloc.
11. Procédé de décodage d'un signal de données représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2,caractérisé en ce qu'il comprend, pour chacun desdits blocs redressés, une étape d'application d'un redressement inverse de celui appliqué au codage, sélectionné parmi un ensemble de redressements, en fonction : - d'une information de type de bloc, permettant de déterminer le type dudit bloc source, et - d'une information de redressement, permettant de déterminer un redressement appliqué audit bloc source, lors du codage, ladite information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés en fonction de ladite information de type de bloc.
12. Dispositif de décodage d'un signal de données représentatif d'images numériques comprenant des coefficients redressés, groupés en au moins un bloc redressé correspondant chacun à un bloc source de pixels d'image, lesdits blocs source comprenant nl lignes et n2 colonnes de pixels, et appartenant à trois types de bloc distincts : - des blocs carrés, avec nl = n2 ; - des blocs rectangulaires horizontaux, avec nl < n2 ; et - des blocs rectangulaires verticaux, avec nl > n2, caractérisé en ce qu'il comprend des moyens d'application d'un redressement inverse de celui appliqué au codage, sélectionné parmi un ensemble de 20 redressements, en fonction : - d'une information de type de bloc, permettant de déterminer le type dudit bloc source, et - d'une information de redressement, permettant de déterminer un redressement appliqué audit bloc source, lors du codage, 25 ladite information de redressement identifiant un redressement dans un ensemble de redressements prédéterminés fonction de ladite information de type de bloc.
13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de 30 code de programme pour la mise en oeuvre du procédé de décodage selon la 31revendication 11.
FR0756051A 2007-06-26 2007-06-26 Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants. Pending FR2918203A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0756051A FR2918203A1 (fr) 2007-06-26 2007-06-26 Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants.
PCT/FR2008/051162 WO2009007603A2 (fr) 2007-06-26 2008-06-25 Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0756051A FR2918203A1 (fr) 2007-06-26 2007-06-26 Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants.

Publications (1)

Publication Number Publication Date
FR2918203A1 true FR2918203A1 (fr) 2009-01-02

Family

ID=39276229

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0756051A Pending FR2918203A1 (fr) 2007-06-26 2007-06-26 Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants.

Country Status (2)

Country Link
FR (1) FR2918203A1 (fr)
WO (1) WO2009007603A2 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5700970B2 (ja) 2009-07-30 2015-04-15 トムソン ライセンシングThomson Licensing 画像シーケンスを表す符号化データストリームの復号方法と画像シーケンスの符号化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002037859A2 (fr) * 2000-11-03 2002-05-10 Compression Science Systeme de compression de donnees video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002037859A2 (fr) * 2000-11-03 2002-05-10 Compression Science Systeme de compression de donnees video

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LEE J H ET AL: "AN EFFICIENT ENCODING OF DCT BLOCKS WITH BLOCK-ADAPTIVE SCANNING", IEICE TRANSACTIONS ON COMMUNICATIONS, COMMUNICATIONS SOCIETY, TOKYO, JP, vol. E77-B, no. 12, 1 December 1994 (1994-12-01), pages 1489 - 1494, XP000498064, ISSN: 0916-8516 *
NICHOLAS D SIDIROPOULOS ET AL: "COPERM: Transform-Domain Energy Compaction by Optimal Permutation", IEEE TRANSACTIONS ON SIGNAL PROCESSING, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 47, no. 6, June 1999 (1999-06-01), XP011058602, ISSN: 1053-587X *
R. ANTOINE ET AL.: "Amélioration de codeurs DCT par orientation des blocs de la transformée", CORESA (COMPRESSION ET REPRÉSENTATION DES SIGNAUX AUDIOVISUELS) 2006, 9 November 2006 (2006-11-09), Caen, France, XP002477435, Retrieved from the Internet <URL:http://liris.cnrs.fr/m2disco/coresa/coresa-2006/files/147.pdf> [retrieved on 20080421] *

Also Published As

Publication number Publication date
WO2009007603A3 (fr) 2009-03-19
WO2009007603A2 (fr) 2009-01-15

Similar Documents

Publication Publication Date Title
Gibson et al. An investigation of dehazing effects on image and video coding
EP0294357B1 (fr) Procédé de codage de signaux d&#39;image
FR2947134A1 (fr) Procedes de codage et de decodages d&#39;images, dispositifs de codage et de decodage, flux de donnees et programme d&#39;ordinateur correspondants.
US10887608B2 (en) Methods and apparatuses for encoding and decoding digital light field images
FR2951345A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
EP2279621B1 (fr) Procédé de codage, de décodage, codeur et décodeur
EP3254467A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs, et programmes d&#39;ordinateurs associes
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
FR3040849A1 (fr) Procede de compression d&#39;un flux de donnees video
EP3345391A2 (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
FR3050598A1 (fr) Procede de decodage d&#39;une image numerique, procede de codage, dispositifs, et programmes d&#39;ordinateurs associes
FR2955995A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
WO2012160313A1 (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
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.
WO2019057368A1 (fr) Procedes de codage et de decodage d&#39;une image
US20230141888A1 (en) Bicriteria Block Splitting Heuristic For Lossy Compression
FR2956789A1 (fr) Procede et dispositif de traitement d&#39;une sequence video
FR3057130B1 (fr) Procede de codage d&#39;une image, procede de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
FR2907989A1 (fr) Procede et dispositif d&#39;optimisation de la compression d&#39;un flux video
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
FR2848373A1 (fr) Procede de mesure d&#39;artefacts de bloc
FR2916931A1 (fr) Procede de selection d&#39;une donnee de codage et dispositif de codage implementant ledit procede
WO2017093653A1 (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
FR2899744A1 (fr) Procede et dispositif de codage et de decodage d&#39;une image, notamment d&#39;une sequence d&#39;images video, signal correspondant et produit programme d&#39;ordinateur
WO2024042286A1 (fr) Lissage hors boucle de codage d&#39;une frontière entre deux zones d&#39;image