FR2767986A1 - Codage et decodage de signal numerique - Google Patents

Codage et decodage de signal numerique Download PDF

Info

Publication number
FR2767986A1
FR2767986A1 FR9710804A FR9710804A FR2767986A1 FR 2767986 A1 FR2767986 A1 FR 2767986A1 FR 9710804 A FR9710804 A FR 9710804A FR 9710804 A FR9710804 A FR 9710804A FR 2767986 A1 FR2767986 A1 FR 2767986A1
Authority
FR
France
Prior art keywords
coding
sub
block
blocks
coded
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
FR9710804A
Other languages
English (en)
Inventor
Felix Henry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR9710804A priority Critical patent/FR2767986A1/fr
Priority to EP98401966A priority patent/EP0899960A3/fr
Priority to US09/129,913 priority patent/US6215422B1/en
Priority to JP10253232A priority patent/JPH11168385A/ja
Publication of FR2767986A1 publication Critical patent/FR2767986A1/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/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • 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
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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

Landscapes

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

Abstract

L'invention propose un procédé de codage de signal numérique comportant une étape d'analyse (E1) du signal numérique (IM) en une pluralité de sous-bandes de fréquence réparties selon au moins deux bandes de fréquence différentes, au moins une première sous-bande ayant une fréquence plus faible et au moins une seconde sous-bande ayant une fréquence plus élevée,caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de :- division (E4) de la seconde sous-bande en blocs (Bi,n ),- sélection (E9) de blocs à coder par mise à une valeur prédéterminée, selon un critère de sélection,- codage des blocs sélectionnés par mise à la valeur prédéterminée.

Description

1 2767986
La présente invention concerne d'une manière générale le codage de signal numérique et propose à cette fin un dispositif et un procédé de codage d'un signal numérique par décomposition en sous-bandes de fréquence du signal et codage des coefficients issus de la décomposition en sous-bandes. Elle concerne également un procédé et un dispositif de
décodage correspondants au procédé et au dispositif de codage.
Le codage a pour but de compresser le signal, ce qui permet de transmettre, respectivement mémoriser, le signal numérique en réduisant le temps de transmission, ou le débit de transmission, respectivement en
réduisant la place mémoire utilisée.
L'invention se situe dans le domaine de la compression avec perte
de signaux numériques.
Il est connu de décomposer un signal en sous-bandes de fréquence avant de le compresser. La décomposition consiste à créer, à partir du signal, un jeu de sous-bandes qui contiennent chacune une gamme limitée de fréquences. Les sous-bandes peuvent être de différentes résolutions, la résolution d'une sous-bande étant le nombre d'échantillons par unité de longueur utilisés pour représenter cette sous-bande. Dans le cas d'un signal numérique d'image, une sous-bande de fréquence de ce signal peut être elle-même considérée comme une image, c'est-à-dire un tableau
bidimensionnel de valeurs numériques.
2 2767986
Il est à noter que la décomposition d'un signal en sous-bandes de fréquence ne crée aucune compression en elle-même, mais permet de décorréler le signal de façon à en éliminer la redondance préalablement à la compression proprement dite. Les sous-bandes sont ainsi codées de manière plus efficace que le signal d'origine. Un procédé connu de codage de signal numérique, en l'occurrence d'une image numérique, comporte trois étapes principales. L'image est tout d'abord décomposée par une transformation en sous-bandes de fréquence, puis une quantification scalaire des coefficients ainsi obtenus est réalisée. Les
indices quantifiés sont enfin codés par un codage entropique sans perte.
Ce procédé permet un taux de compression élevé du signal.
Cependant, le rapport entre le taux de compression et l'erreur de codage est perfectible. La présente invention vise à remédier aux inconvénients de la technique antérieure, en fournissant un dispositif et un procédé de compression
de signal numérique qui offre un rapport compression sur distorsion élevé.
L'invention propose un procédé de codage de signal numérique, comportant l'analyse du signal pour séparer l'information pertinente et l'information non pertinente, puis le codage de l'information non pertinente selon un premier mode de codage qui offre un haut taux de compression, et codage de l'information pertinente selon un second mode de codage qui limite
la distorsion.
A cette fin, I'invention propose un procédé de codage de signal numérique comportant une étape d'analyse du signal numérique en une pluralité de sous-bandes de fréquence réparties selon au moins deux bandes de fréquence différentes, au moins une première sous-bande ayant une fréquence plus faible et au moins une seconde sous-bande ayant une fréquence plus élevée, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: - division de la seconde sous-bande en blocs,
3 2767986
- sélection de blocs qui sont à coder par mise à une valeur prédéterminée, selon un critère de sélection, - codage des blocs sélectionnés à l'étape précédente, par mise à la
valeur prédéterminée.
Corrélativement, I'invention propose un dispositif de codage de signal numérique comportant des moyens d'analyse du signal numérique en une pluralité de sous-bandes de fréquence réparties selon au moins deux bandes de fréquence différentes, au moins une première sous-bande ayant une fréquence plus faible et au moins une seconde sous-bande ayant une fréquence plus élevée, caractérisé en ce qu'il comporte: - des moyens de division de chaque seconde sous-bande en blocs, - des moyens de sélection de blocs qui sont à coder par mise à une valeur prédéterminée, dans chaque seconde sous-bande, selon un critère de 1 5 sélection, - des moyens de codage des blocs sélectionnés par mise à la valeur prédéterminée. Le procédé et le dispositif selon l'invention permettent d'obtenir un
rapport compression sur distorsion élevé.
La décomposition en sous-bande de fréquence permet de séparer l'information pertinente de l'information non pertinente. L'information non pertinente est ensuite codée par mise à la valeur prédéterminée, qui nécessite un débit nul. La compression de l'information non pertinente est maximale. Il est ainsi possible d'accorder plus de débit à l'information pertinente, qui est ainsi codée plus précisément. La distorsion de l'information pertinente est minimale.
Globalement, le rapport compression sur distorsion obtenu est élevé.
La valeur prédéterminée est par exemple nulle, de sorte qu'au
décodage, sont construits des blocs dont tous les coefficients sont nuls.
Selon une caractéristique préférée, pour chacun des blocs, I'étape de sélection comporte le codage du bloc par mise à la valeur prédéterminée et
4 2767986
par un second mode de codage, la comparaison des deux modes de codage selon le critère de sélection et la sélection du codage par mise à la valeur prédéterminée si le bloc codé par mise à la valeur prédéterminée satisfait le critère de sélection. La sélection repose ainsi sur une comparaison des deux modes de codage, pour chacun des blocs à coder. L'attribution du mode de codage par mise à la valeur prédéterminée est réalisée de manière simple et fiable. Les blocs qui ne sont pas sélectionnés à l'étape de sélection sont codés par le second mode de codage. Ce second mode est de préférence une quantification scalaire des coefficients du bloc. Le second mode de codage est adapté à coder de manière précise les blocs qui contiennent l'information pertinente. Le second mode de codage peut lui-même inclure une pluralité de modes de codage, un bloc étant codé par l'un des modes de codage sélectionné pour être le mieux adapté possible au bloc en question, ce qui
permet de coder encore plus finement l'information pertinente.
Selon une caractéristique préférée de l'invention, le critère de sélection minimise une somme pondérée du débit et de l'erreur de codage provoqués par le codage du bloc considéré. Ce critère permet de sélectionner les blocs à coder avec un débit faible, d'une part, et les blocs à coder avec
précision, d'autre part.
Selon une caractéristique préférée de l'invention, un indicateur est associé à chaque bloc pour indiquer si le bloc considéré est codé par mise à la valeur prédéterminée ou non. Cet indicateur fait partie de la forme codée du bloc et est utilisé au décodage pour déterminer quel mode de codage a été
utilisé pour le bloc considéré.
Dans un autre aspect de l'invention, ladite au moins une première
sous-bande est codée selon un troisième mode de codage. En effet, la sous-
bande de fréquence la plus faible contient généralement beaucoup d'information, et il est préférable de ne pas chercher à en coder des parties par mise à la valeur prédéterminée, car cela pourrait introduire des erreurs importantes.
2767986
Le dispositif de codage comporte des moyens adaptés à mettre en
oeuvre les caractéristiques précédentes.
L'invention concerne également un procédé de décodage d'un signal numérique codé, ledit signal comportant des représentations codées de blocs formés dans des sous-bandes de fréquence du signal d'origine, chaque représentation codée comportant au moins un indicateur représentatif d'un premier ou d'un second mode de codage, caractérisé en ce qu'il comporte les étapes de: - lecture de la valeur de l'indicateur, - décodage des représentations codées selon un premier ou un second mode de décodage, correspondant respectivement au premier ou au
second mode de codage, en fonction de la valeur de l'indicateur.
Corrélativement, l'invention concerne un dispositif de décodage d'un signal numérique codé, ledit signal comportant des représentations codées de blocs formés dans des sous-bandes de fréquence du signal d'origine, chaque représentation codée comportant au moins un indicateur représentatif d'un premier ou d'un second mode de codage, caractérisé en ce qu'il comporte: - des moyens de lecture de la valeur de l'indicateur, des moyens de décodage des représentations codées, selon un premier ou un second mode de décodage correspondant respectivement au
premier ou au second mode de codage, en fonction de la valeur de l'indicateur.
Le procédé et le dispositif de décodage permettent de reconstruire le signal, par exemple dans un appareil récepteur correspondant à un appareil
émetteur dans lequel le signal a été codé selon l'invention.
Les caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture d'un mode préféré de réalisation illustré par les dessins ci-joints, dans lesquels: - la figure 1 est un bloc diagramme d'un mode de réalisation d'un dispositif de codage de signal numérique selon l'invention; - la figure 2 est un circuit de décomposition en sous-bandes de fréquence, inclus dans le dispositif de la figure 1;
6 2767986
- la figure 3 est une image numérique à coder par le dispositif de codage selon l'invention; - la figure 4 est une image décomposée en sous- bandes par le circuit de la figure 2; - la figure 5 est une image décomposée en sous-bandes puis divisée en blocs; - la figure 6 est un bloc diagramme d'un mode de réalisation d'un dispositif de décodage selon l'invention; la figure 7 est un algorithme de codage d'un signal numérique selon un mode de réalisation de l'invention; - la figure 8 est un algorithme de décodage d'un signal numérique selon un mode de réalisation de l'invention; - la figure 9 est un algorithme de codage d'un signal numérique selon un autre mode de réalisation de l'invention; - la figure 10 est un algorithme de codage d'un bloc, inclus dans l'algorithme de la figure 9; - la figure 11 est un algorithme de décodage d'un signal numérique selon un autre mode de réalisation de l'invention; - la figure 12 est un algorithme de décodage d'un bloc, inclus dans l'algorithme de la figure 11; - la figure 13 est un algorithme de codage d'un signal numérique selon un autre mode de réalisation de l'invention; - la figure 14 est un algorithme d'initialisation inclus dans l'algorithme de la figure 13; - la figure 15 est un algorithme de détermination de mode de quantification et de mode de codage entropique, inclus dans l'algorithme de la figure 13; - la figure 16 est un algorithme de codage d'un signal numérique selon un autre mode de réalisation de l'invention; et - la figure 17 est un algorithme de décodage d'un signal numérique
selon un autre mode de réalisation de l'invention.
7 2767986
Selon le mode de réalisation choisi et représenté à la figure 1, un dispositif de codage selon l'invention est destiné à coder un signal numérique dans le but de le compresser. Le dispositif de codage est intégré dans un appareil 100, qui est par exemple un appareil photographique numérique, ou un camescope numérique, ou un système de gestion de base de données, ou
encore un ordinateur.
Le signal numérique à compresser SI est dans ce mode particulier
de réalisation une suite d'échantillons numériques représentant une image.
Le dispositif comporte une source de signal 1, ici de signal d'image.
De manière générale, la source de signal soit contient le signal numérique, et est par exemple une mémoire, un disque dur ou un CD-ROM, soit convertit un signal analogique en signal numérique, et est par exemple un camescope analogique associé à un convertisseur analogiquenumérique. Une sortie 1, de la source de signal est reliée à un circuit d'analyse, ou de décomposition en sous-bandes 2. Le circuit 2 a une première sortie 21 reliée à un circuit de
codage 3.
Des secondes sorties 22 du circuit de décomposition 2 sont reliées à un circuit de division en blocs 4. Le circuit 4 a des premières sorties 41 reliées à un premier circuit de codage 5 et des secondes sorties 42 reliées à un second
circuit de codage 6.
Une sortie 5, du circuit 5 et une sortie 61 du circuit 6 sont reliées à un circuit de comparaison 7, dont une sortie 71 constitue la sortie du dispositif de codage selon l'invention. La sortie 71 est reliée à un circuit de traitement 8, qui est par exemple un circuit de transmission, ou une mémoire. Une sortie 31
du circuit de codage 3 est également reliée au circuit de traitement 8.
La source d'image 1 est un dispositif pour générer une suite d'échantillons numériques représentant une image IM. La source 1 comporte une mémoire d'image et fournit un signal numérique d'image SI à l'entrée du circuit de décomposition 2. Le signal d'image SI est une suite de mots
8 2767986
numériques, par exemple des octets. Chaque valeur d'octet représente un pixel
de l'image IM, ici à 256 niveaux de gris, ou image noir et blanc.
Le circuit de décomposition en sous-bandes 2, ou circuit d'analyse, est un ensemble classique de filtres, respectivement associés à des décimateurs par deux, qui filtrent le signal d'image selon deux directions, en sous-bandes de hautes et basses fréquences spatiales. Selon la figure 2, le circuit 2 comporte trois blocs successifs d'analyse pour décomposer l'image IM en des sous-bandes selon trois niveaux de résolution. Il est à noter que l'invention n'implique pas nécessairement une décomposition selon plusieurs niveaux de résolution, mais seulement une décomposition du signal à coder en
plusieurs sous-bandes.
De manière générale, la résolution d'un signal est le nombre d'échantillons par unité de longueur utilisés pour représenter ce signal. Dans le cas d'un signal d'image, la résolution d'une sous-bande est liée au nombre d'échantillons par unité de longueur pour représenter cette sous-bande. La
résolution dépend du nombre de décimations effectuées.
Le premier bloc d'analyse reçoit le signal numérique d'image et l'applique à deux filtres numériques respectivement passe-bas et passe- haut 21 et 22 qui filtrent le signal d'image selon une première direction, par exemple horizontale dans le cas d'un signal d'image. Après passage par des décimateurs par deux 210 et 220, les signaux filtrés résultant sont respectivement appliqués à deux filtres passe-bas 23 et 25, et passe-haut 24 et 26, qui les filtrent selon une seconde direction, par exemple verticale dans le cas d'un signal d'image. Chaque signal filtré résultant passe par un décimateur par deux respectif 230, 240, 250 et 260. Le premier bloc délivre en sortie quatre sous-bandes LL1, LH1, HL1 et HH, de résolution RES1 la plus élevée
dans la décomposition.
La sous-bande LL1 comporte les composantes, ou coefficients, de basse fréquence, selon les deux directions, du signal d'image. La sous-bande LH1 comporte les composantes de basse fréquence selon une première
direction et de haute fréquence selon une seconde direction, du signal d'image.
9 2767986
La sous-bande HL, comporte les composantes de haute fréquence selon la première direction et les composantes de basse fréquence selon la seconde direction. Enfin, la sous-bande HH, comporte les composantes de haute
fréquence selon les deux directions.
Chaque sous-bande est une image construite à partir de l'image d'origine, qui contient de l'information correspondant à une orientation respectivement verticale, horizontale et diagonale des contours de l'image,
dans une bande de fréquence donnée.
La sous-bande LL, est analysée par un bloc d'analyse analogue au précédent pour fournir quatre sous-bandes LL2, LH2, HL2 et HH2 de niveau de résolution RES2 intermédiaire dans la décomposition. La sous-bande LL2 comporte les composantes de basse fréquence selon les deux directions d'analyse, et est à son tour analysée par le troisième bloc d'analyse analogue aux deux précédents. Le troisième bloc d'analyse fournit des sous-bandes LL3, LH3, HL3 et HH3, de résolution RES3 la plus faible dans la décomposition,
résultant du découpage en sous-bandes de la sous-bande LL2.
Chacune des sous-bandes de résolution RES2 et RES3 correspond
également à une orientation dans l'image.
La décomposition effectuée par le circuit 2 est telle qu'une sous-
bande d'une résolution donnée est découpée en quatre sous-bandes de résolution inférieure et a donc quatre fois plus de coefficients que chacune des
sous-bandes de résolution inférieure.
Une image numérique IM en sortie de la source d'image 1 est représentée de manière schématique à la figure 3, tandis que la figure 4 représente l'image IMD résultant de la décomposition de l'image IM, en dix sous-bandes selon trois niveaux de résolution, par le circuit 2. L'image IMD comporte autant d'information que l'image d'origine IM, mais l'information est
fréquentiellement découpée selon trois niveaux de résolution.
Le niveau de plus basse résolution RES3 comporte les sous-bandes LL3, HL3, LH3 et HH3, c'est-à-dire les sous-bandes de basse fréquence selon les deux directions d'analyse. Le second niveau de résolution RES2 comporte
2767986
les sous-bandes HL2, LH2 et HH2 et le niveau de plus haute résolution RES,
comporte les sous-bandes de plus haute fréquence HL1, LH, et HH1.
La sous-bande LL3 de plus basse fréquence est une réduction de
l'image d'origine. Les autres sous-bandes sont des sous-bandes de détail.
Bien entendu, le nombre de niveaux de résolution, et par conséquent de sous-bandes, peut être choisi différemment, par exemple 13 sous-bandes et quatre niveaux de résolution, pour un signal bidimensionnel tel qu'une image. Le nombre de sous-bandes par niveau de résolution peut également être différent. Les circuits d'analyse et de synthèse sont adaptés à la
dimension du signal traité.
La sous-bande LL3, de plus basse résolution RES3 est appliquée au circuit de codage 3 qui la code en une sous-bande codée, ou compressée, LLc3. Le circuit de codage 3 effectue un codage DPCM (Differential Pulse Code Modulation, ou en Français, Modulation par codage d'impulsion différentielle), qui est un codage par prédiction linéaire, avec perte. Chaque pixel de la sous-bande à coder LL3 est prédit en fonction de ses voisins, et cette prédiction est soustraite de la valeur du pixel considéré, dans le but de former une "image" différentielle qui présente moins de corrélation entre pixels que l'image originale. L'image différentielle est alors quantifiée et codée par un
codage de Huffman pour former la sous-bande codée LLc3.
Selon d'autres modes de réalisation, le circuit de codage 3 effectue un codage par transformation discrète en cosinus (DCT), ou par quantification vectorielle. Dans tous les cas, la sous-bande de plus basse fréquence est de préférence traitée à part. En effet, cette sous-bande contient une grande quantité d'information, et il est préférable de la coder avec le plus de précision possible, sans mise à zéro de bloc. Cependant, pour simplifier la mise en oeuvre, il est possible de coder la sous-bande de plus basse fréquence comme
les sous-bandes de détail.
il 2767986 Les sous-bandes LH3, HL3 et HH3, ainsi que les sous-bandes de résolution supérieure HL2, LH2, HH2, HL1, LH1 et HH, sont fournies au circuit de division 4, selon un ordre de sous-bande a priori quelconque, mais prédéterminé. Comme représenté à la figure 5, le circuit de division 4 divise chaque sous-bande de détail en bloc. Selon le mode de réalisation choisi, toutes les sous-bandes fournies au circuit 4 sont divisées en un même nombre N de blocs Bi,,, o l'indice i est un entier, ici entre 1 et 9, qui représente l'ordre de la sous-bande considérée et l'indice n, entre 1 et N, est un entier qui représente l'ordre du bloc dans la sous-bande considérée. Les blocs sont ici de forme carrée, mais peuvent être en variante de forme rectangulaire. De
manière générale, un bloc est un ensemble de coefficients extraits de la sous-
bande pour former un vecteur.
L'ordre des blocs est a priori quelconque, mais prédéterminé. Pour des raisons pratiques, les blocs sont ordonnés de la même manière dans
toutes les sous-bandes, par exemple de gauche à droite et de haut en bas.
En conséquence du mode de division en blocs, la surface des blocs est divisée par quatre en passant de la résolution RES, à la résolution RES2, et
de la résolution RES2 à la résolution RES3.
Cette division est simple à mettre en oeuvre, puisque toutes les sousbandes sont divisées en un même nombre de blocs. Cependant, pour la mise en oeuvre de l'invention, le nombre et le format des blocs peuvent être
différents d'une résolution à l'autre.
Le circuit de codage 5 code chaque bloc Bin fourni par le circuit 4 selon le premier mode de codage. Ce mode consiste à mettre tous les coefficients du bloc à une valeur prédéterminée, par exemple la valeur zéro. Ce codage est très économique en nombre de bits, puisqu'il n'implique la transmission ou la mémorisation d'aucune donnée de codage, et par conséquent nécessite un débit de transmission nul. Cependant, l'erreur de
codage risque d'être grande si le bloc considéré n'est pas d'énergie faible.
12 2767986
Le circuit de codage 6 code chaque bloc Bin fourni par le circuit 4 par un second mode de codage, ici par quantification scalaire uniforme de chacun des coefficients du bloc puis codage des indices issus de la quantification par
un codage de Huffman.
En variante, les blocs peuvent être codé selon une autre méthode de codage, par exemple par quantification vectorielle. La méthode de codage utilisé doit être susceptible de coder avec précision un bloc contenant une
quantité importante d'information.
Le second mode de codage peut lui-même comporter une pluralité de modes de codage, dont la sélection, pour chacun des blocs à coder, sera
exposée plus loin.
Pour chacun des blocs, le circuit 7 compare les deux codages selon un critère pour sélectionner le codage le plus approprié, selon ce critère, pour chaque bloc considéré. A cette fin, le circuit 7 détermine les débits R1li n et R2,in nécessaires pour transmettre le bloc codé par chacun des deux circuits 5 et 6, ainsi que les erreurs de codage, ou distorsion, D1,i,n et D2,in provoquées par le codage réalisé par chacun des deux circuits 5 et 6. Les erreurs D1,,,n et D2,in mesurent respectivement l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré, selon le premier et le second mode de codage. Dans le cas o la décomposition en sous-bande est orthogonale, les erreurs D1,,. et D2,in sont égales aux erreurs quadratiques
entre le bloc original et le bloc reconstruit.
Le circuit 7 compare ensuite, pour chacun des blocs, les sommes R1in + k. D1l,i,n et R2,i,n +.D2,i,n, o x, est un coefficient de réglage du rapport compression/distorsion. Le codage pour lequel la somme est la plus faible est
sélectionné, pour chacun des blocs considérés.
Un indicateur lin est associé à chacun des blocs pour indiquer quel est le codage sélectionné par le circuit 7. L'indicateur I,n est par exemple un bit qui est mis à zéro si le bloc considéré est codé par mise à zéro, et qui est mis à
un si le bloc considéré est codé par quantification scalaire.
13 2767986
Le circuit 7 transmet au circuit de traitement 8 I'indicateur li,n de chaque bloc codé, associé aux données de codage du bloc considéré, dans le
cas o le bloc considéré est codé par quantification scalaire.
En référence à la figure 6, le dispositif de décodage réalise globalement des opérations inverses de celles du dispositif de codage. Le dispositif de décodage est intégré dans un appareil 200, qui est par exemple un lecteur d'image numérique, ou de séquence vidéo numérique, ou un système
de gestion de base de données, ou encore un ordinateur.
Un même appareil peut comporter à la fois le dispositif de codage et le dispositif de décodage selon l'invention, de manière à effectuer des
opérations de codage et de décodage.
Le dispositif de décodage comporte une source de données codées qui comporte par exemple un circuit de réception associé à une mémoire tampon. Une première sortie 101 du circuit 10 est reliée à un circuit 11 de lecture d'indicateur lin. dont une sortie 111 est reliée à un circuit de décodage 12. Le circuit de décodage 12 a une sortie 121 reliée à un circuit de reconstruction 13. Ce dernier a une sortie 13, reliée à un circuit 14 d'exploitation des données décodées, comportant par exemple des moyens de
visualisation d'image.
Le circuit 10 fournit des données codées au circuit 11, qui détermine
le mode de codage utilisé pour chacun des blocs en analysant l'indicateur lin.
Si l'indicateur li, indique que le bloc considéré est codé par mise à zéro, son décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de
décodage, et est par exemple déterminée par l'indice du bloc.
Si l'indicateur I,,n indique que le bloc considéré est codé par quantification scalaire, les données de codage du bloc considéré sont lues et décodées par le circuit 12 qui forme un bloc décodé. Pour cela, les données codées par codage de Huffman sont lues et décodées. Les indices de
14 2767986
quantification correspondant aux coefficients du bloc en cours de décodage sont extraits. Les indices sont déquantifiés pour générer les coefficients du bloc
décodé Bdin.
Le circuit 12 fournit les blocs décodés Bdi,n au circuit de reconstruction 13, qui est un circuit de synthèse correspondant au circuit d'analyse 2 décrit précédemment et reconstruit l'image IMd correspondant aux
sous-bandes décodées.
Une seconde sortie 102 du circuit 10 est reliée à un circuit de décodage 15 de la sous-bande de plus basse fréquence, dont une première
sortie 151 est reliée au circuit de reconstruction 13.
Le circuit de décodage 15 effectue des opérations inverses de celles du circuit de codage 3 et fournit la sous-bande décodée LLd3 au circuit de
reconstruction 13.
Selon un mode préféré de réalisation de l'invention, les circuits de décomposition en sous-bandes 2, de codage 3, de division en bloc 4, de codage 5 et 6, de comparaison 7 et de traitement 8, tous inclus dans le dispositif de codage représenté à la figure 1, sont réalisés par un microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme pour coder chacun des blocs de données, et la mémoire vive comporte des registres adaptés à enregistrer des variables
modifiées au cours de l'exécution du programme.
De même, les circuits de lecture 11, de décodage 12 et 15, de reconstruction 13, inclus dans le dispositif de décodage représenté à la figure 6, sont réalisés par un second microprocesseur associé à des mémoires vives et mortes. La mémoire morte comporte un programme pour décoder chacun des blocs de données, et la mémoire vive comporte des registres adaptés à enregistrer des variables modifiées au cours de l'exécution du programme.
En référence à la figure 7, un procédé de codage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de codage, comporte des
étapes E1 à E15.
2767986
L'étape E1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 4. L'étape E1 a pour résultat les sous-bandes LL3, HL3, LH3 et HH3 de plus faible résolution RES3, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH1, HL1 et HH1 de plus haute résolution RES1. La sous-bande LL3 est séparée des autres sous-bandes à l'étape
suivante E2.
L'étape E3 code la sous-bande LL3 selon un codage DPCM (Differential Pulse Code Modulation) et a pour résultat la sous-bande codée
LLc3 qui est mémorisée et/ou transmise.
L'étape E3 est suivie par l'étape E4 qui est la division des autres
sous-bandes en blocs Bin, comme représenté à la figure 5.
L'étape suivante E5 est une initialisation pour considérer la première sous-bande. Les sous-bandes sont prises en compte selon un ordre a priori
quelconque, tout en étant prédéterminé.
L'étape suivante E6 est une initialisation pour considérer le premier bloc de la sous-bande courante. Les blocs dans la sous-bande courante sont
pris en compte selon un ordre quelconque et prédéterminé.
L'étape E6 est suivie par l'étape E7 qui est le codage par mise à une valeur prédéterminée, ici zéro, des coefficients du bloc courant B,,. L'étape suivante E8 est le codage par un second mode de codage, ici quantification scalaire, du bloc courant Bin. Le second mode de codage peut être une
pluralité de modes de codage.
L'étape suivante E9 est la comparaison des deux modes de codage, pour le bloc courant, selon un critère prédéterminé. L'étape E9 a pour résultat
la sélection de l'un des modes de codage, pour le bloc courant Bn.
A cette fin, les sommes R1,,n + k.D1,i,n et R2,i,n + k.D2,in sont calculées, o R.,i, et R2,in sont les débits nécessaires pour transmettre le bloc courant codé par les deux modes, D1in et D2,in sont les distorsions provoquées dans le bloc courant par les deux modes de codage, et; est un coefficient de réglage du rapport compression/distorsion. Comme exposé plus haut, les
16 2767986
erreurs D1,, et D2in mesurent respectivement l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré, selon le premier et le second mode de codage. Le codage pour lequel la somme est la plus faible
est sélectionné, pour le bloc courant.
A l'étape suivante El0, un indicateur li, est associé au bloc courant pour indiquer quel est le codage sélectionné à l'étape E9. L'indicateur lin est par exemple un bit qui est mis à zéro si le bloc considéré est codé par mise à zéro, et qui est mis à un si le bloc considéré est codé par quantification scalaire. L'étape suivante Ell est la mémorisation de la valeur de l'indicateur I,n ainsi que des données codées dans le cas o le bloc courant est codé par
quantification scalaire.
Les étapes E12 et E14 sont des tests pour vérifier, respectivement si
tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été codées.
S'il reste au moins un bloc à coder dans la sous-bande courante, l'étape E12 est suivie par l'étape E13 pour considérer le bloc suivant. L'étape E13 est
suivie par l'étape E7 précédemment décrite.
S'il reste au moins une sous-bande à coder, l'étape E14 est suivie par l'étape E15 pour considérer la sous-bande suivante. L'étape E15 est suivie
par l'étape E6 précédemment décrite.
En référence à la figure 8, un procédé de décodage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de décodage, comprend des
étapes E20 à E30.
L'étape E20 est le décodage de la sous-bande basse LLc3 pour
former une sous-bande basse décodée LLd3 qui est mémorisée.
L'étape suivante E21 est une initialisation pour considérer la
première sous-bande de détail à décoder.
L'étape E21 est suivie de l'étape E22 qui est une initialisation pour
considérer le premier bloc à décoder dans la sous-bande courante. Les sous-
bandes sont décodées dans le même ordre qu'au codage, et les blocs dans
17 2767986
une sous-bande donnée sont décodés dans le même ordre qu'au codage, bien
que des ordres différents soient possibles.
L'étape suivante E23 est la lecture de l'indicateur Ilj, pour déterminer
quel mode de codage a été utilisé pour coder le bloc courant.
L'étape E23 est suivie de l'étape E24 qui est le décodage du bloc courant. Si le bloc a été codé par mise à zéro, le décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage, et est par exemple déterminée par l'indice du bloc. Si le bloc a été codé par quantification scalaire, il est décodé. Pour cela, comme précisé plus haut, les données codées par codage de Huffman sont lues et décodées. Les indices de quantification correspondant aux coefficients du bloc en cours de décodage sont extraits. Les
indices sont déquantifiés pour générer les coefficients du bloc décodé Bdjn.
Le bloc décodé Bdjn est mémorisé à l'étape suivante E25.
Les étapes E26 et E28 sont des tests pour vérifier, respectivement si tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été décodées. S'il reste au moins un bloc à décoder dans la sous-bande courante, l'étape E26 est suivie par l'étape E27 pour considérer le bloc suivant. L'étape
E27 est suivie par l'étape E23 précédemment décrite.
S'il reste au moins une sous-bande à décoder, l'étape E28 est suivie par l'étape E29 pour considérer la sous-bande suivante. L'étape E29 est suivie
par l'étape E22 précédemment décrite.
Lorsque toutes les sous-bandes ont été décodées, c'est-à-dire que la réponse est positive à l'étape E28, cette dernière étape est suivie de l'étape E30 de construction de l'image décodée. Cette dernière peut ensuite être
visualisée, par exemple.
En référence à la figure 9, on expose plus particulièrement un mode de réalisation de deuxième mode de codage. Le procédé de codage d'une image IM, selon ce mode de réalisation de l'invention, mis en oeuvre dans le
dispositif de codage, comporte des étapes S1 à S17.
18 2767986
Le procédé comporte globalement la décomposition de l'image en sousbandes de différentes résolutions, puis le codage de la sous-bande basse à part. Chacune des sous-bandes de détail est ensuite codée, selon le deuxième mode de codage, en fonction de la sous-bande de même orientation et de résolution inférieure. Ce mode de réalisation repose donc sur une
décomposition multirésolution de l'image à coder.
Ce mode de réalisation de l'invention permet d'obtenir un rapport
compression sur distorsion élevé.
En effet, selon le deuxième mode de codage, on détermine tout d'abord, pour chaque bloc à coder, des blocs source dans une sous-bande de résolution inférieure, qui ont une énergie suffisamment élevée pour pouvoir
coder avec précision le bloc considéré.
On détermine ensuite, pour chaque bloc source "candidat", une transformation telle que le bloc source transformé par cette transformation soit
une bonne approximation du bloc à coder.
On détermine enfin, parmi tous les couples de blocs source "candidats" et transformations, quel est celui qui code le plus précisément le
bloc cible.
L'erreur de codage, ou distorsion, est donc faible.
Les données de codage d'un bloc sont donc le rang du bloc source et l'indice de la transformation qui sont utilisés pour le coder. Ces données de codage ne nécessitent qu'un débit faible. La compression résultant du codage
est donc élevée.
Globalement, ce mode de réalisation améliore la recherche de bloc source et fournit un code compact pour décrire les blocs codés selon le
deuxième mode de codage.
L'étape S1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 4. L'étape S1 a pour résultat les sous-bandes LL3, HL3, LH3 et HH3 de plus faible résolution RES3, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH, HL, et HH1 de
plus haute résolution RES1.
19 2767986
La sous-bande basse LL3 est séparée des autres sous-bandes à
l'étape suivante S2.
L'étape S3 code la sous-bande basse LL3, par exemple selon un
codage DPCM (Differential Pulse Code Modulation), et a pour résultat la sous-
bande codée LLc3 qui est mémorisée et/ou transmise.
L'étape S3 est suivie par l'étape S4 qui est le décodage de la sous-
bande LLc3. Une sous-bande décodée LLd3 est formée. Le mode de décodage
dépend du mode de codage utilisé à l'étape précédente.
A l'étape suivante S5, la sous-bande décodée LLd3 est décomposée en sous-bandes de résolution inférieure LL4, HL4, LH4 et HH4. Les sousbandes HL4, LH4 et HH4 sont utilisées pour coder les sous-bandes HL3, LH3 et HH3 de
résolution RES3.
L'étape S5 est suivie par l'étape S6 qui est la division des sous-
bandes en blocs Bi,,, comme représenté à la figure 5.
L'étape suivante S7 est une initialisation pour considérer la première sous-bande de détail à coder. Les niveaux de résolution sont traités par ordre croissant. Pour chaque niveau de résolution, les sous-bandes sont prises en
compte selon un ordre a priori quelconque, tout en étant prédéterminé.
L'étape suivante S8 est une initialisation pour considérer le premier bloc de la sous-bande courante. Les blocs dans la sous-bande courante sont
pris en compte selon un ordre quelconque et prédéterminé.
L'étape S8 est suivie par l'étape S9 qui est le codage par mise à une
valeur prédéterminée, ici zéro, des coefficients du bloc courant Bi.,.
L'étape suivante S10 est le codage du bloc courant B1,. L'étape S10 est détaillée dans la suite; elle a pour résultat une forme codée {k, m} du bloc courant, représentant un bloc source BSk et une transformation Tm. La valeur
de la forme codée {k, m} du bloc courant est mémorisée à l'étape S10.
* L'étape suivante Sl1 est la comparaison des deux modes de codage, pour le bloc courant, selon un critère prédéterminé. L'étape Sl 1 a pour
résultat la sélection de l'un des modes de codage, pour le bloc courant Bi,.
2767986
A cette fin, les sommes R1,i,n +;.D1,i,n et R2,i,n + X.D2,i,n sont calculées, o R1,,. et R2in sont les débits nécessaires pour transmettre le bloc courant codé par les deux modes, D1,i,n et D2,i,n sont les distorsions provoquées dans le bloc courant par les deux modes de codage, et k est un coefficient de réglage du rapport compression/distorsion. Comme exposé plus haut, les erreurs D,,n et D2i,n mesurent respectivement l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré, selon le premier et le second mode de codage. Le codage pour lequel la somme est la plus faible
est sélectionné, pour le bloc courant.
A l'étape suivante S12, un indicateur li,n est associé au bloc courant pour indiquer quel est le codage sélectionné à l'étape Sl 1. L'indicateur li,n est par exemple un bit qui est mis à zéro si le bloc considéré est codé par mise à zéro, et qui est mis à un si le bloc considéré est codé par le second mode de codage. L'étape S12 comporte également la mémorisation de la valeur de l'indicateur lin ainsi que des données codées dans le cas o le bloc courant est
codé par le second mode de codage.
Les étapes S13 et S16 sont des tests pour vérifier, respectivement, si tous les blocs d'une sous-bande ont été codés, et si toutes les sousbandes ont été codées. S'il reste au moins un bloc à coder dans la sous-bande
courante, l'étape S13 est suivie par l'étape S14 pour considérer le bloc suivant.
L'étape S14 est suivie par l'étape S9 précédemment décrite.
Lorsque tous les blocs d'une sous-bande ont été codés, l'étape S13 est suivie de l'étape S15 à laquelle les blocs sont décodés pour former une sous-bande décodée. Le décodage de chacun des blocs consiste soit à former un bloc dont tous les coefficients sont nuls, soit à rechercher le bloc source de rang k ayant une énergie supérieure au seuil SE et à appliquer la transformation Tm au bloc source BSk. Une sous-bande décodée est ensuite utilisée pour coder les blocs de la sous-bande de même orientation et de
résolution supérieure.
21 2767986
S'il reste au moins une sous-bande à coder, I'étape S16 est suivie par l'étape S17 pour considérer la sous-bande suivante. L'étape S17 est suivie
par l'étape S8 précédemment décrite.
L'étape S10 de codage d'un bloc d'une sous-bande de détail, dit bloc cible, selon le deuxième mode de codage, est détaillée à la figure 10 et
comporte des sous-étapes S91 à S105.
Le codage comporte globalement la sélection d'un ensemble de blocs source en fonction de leur énergie, puis la recherche pour chacun des blocs source sélectionnés d'une transformation, parmi un ensemble prédéterminé de transformations, qui permet de coder le bloc cible avec la plus grande précision. Le codage comporte enfin la comparaison des blocs source sélectionnés, chacun associés avec leur transformation, pour déterminer le
couple qui code le bloc cible avec la plus grande précision.
L'étape S91 est l'initialisation d'une variable k à zéro. La variable k
compte les blocs source sélectionnés pour chaque bloc à coder.
L'étape suivante S92 est la détermination du premier bloc source dans la sous-bande de même orientation et de résolution inférieure. Le premier bloc source est celui qui a le même emplacement, au facteur de résolution près, que le bloc cible, chacun dans leur sous-bande respective. Ce premier
bloc source est généralement un bon candidat pour coder le bloc cible.
L'étape suivante S93 est le calcul de l'énergie du bloc source courant. Le calcul de l'énergie est effectué de manière classique, par la somme
des carrés des coefficients du bloc.
L'étape S93 est suivie de l'étape S94 qui est un test pour déterminer
si l'énergie du bloc source courant est supérieure à un seuil prédéterminé SE.
Si la réponse est négative, le bloc source courant n'est plus pris en compte et l'étape S94 est suivie de l'étape S95 à laquelle le bloc source suivant est considéré. L'ordre des blocs source considérés est tel que ceux-ci ont une distance sensiblement croissante par rapport au premier bloc source, par exemple ils recouvrent sensiblement une spirale centrée sur le premier bloc
22 2767986
source. Les meilleurs blocs source pour coder le bloc cible sont généralement
au voisinage du premier bloc source.
Si à l'étape S94 l'énergie du bloc source considéré est supérieure au seuil SE, cette étape est suivie de l'étape S96 qui est un test pour déterminer si le compteur k a atteint une valeur limite prédéterminée, par exemple égale à NB 2NB, o NB représente le nombre de bits disponibles pour coder la valeur du
compteur k.
Si la réponse est négative, I'étape S96 est suivie de l'étape S97 à laquelle le compteur k est incrémenté de une unité. Le bloc source sélectionné
est alors repéré par son rang k.
L'étape suivante S98 est l'initialisation d'un paramètre m à la valeur un, pour considérer la première transformation T1 de l'ensemble prédéterminé
de transformations {T1,.... TM}.
A l'étape suivante S99 la transformation courante Tm est appliquée
au bloc source courant BSk.
L'étape S99 est suivie de l'étape S100 à laquelle la distorsion Dkm, dans la sous-bande courante, créée par l'application de la transformation Tm au bloc source courant BSk, est calculée. La distorsion Dk,m, ou erreur de codage, mesure l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré. Dans le cas o la décomposition en sous-bande est orthogonale, l'erreur est égale à l'erreur quadratique entre le bloc original et le bloc reconstruit. Ce critère est simple et rapide à mettre en oeuvre, tout en
donnant de bons résultats.
L'étape suivante S101 est un test pour déterminer si la transformation courante est la dernière de l'ensemble des transformations. Si la réponse est négative, le paramètre m est incrémenté de une unité à l'étape S102 pour considérer la transformation suivante. L'étape E102 est suivie de
l'étape S99 précédemment décrite.
Lorsque toutes les transformations T1 à TM ont été appliquées au bloc source courant, l'étape S101 est suivie de l'étape S103 à laquelle toutes les distorsions Dkjm précédemment calculées et relatives au bloc source
23 2767986
courant BSk sont comparées pour déterminer la plus petite d'entre elles. La transformation Tm correspondant à la distorsion la plus petite est associée au
bloc source courant, lui-même repéré par son rang k dans la recherche.
Le bloc source suivant est considéré à l'étape S104. Cette étape est suivie de l'étape S93. Lorsqu'à l'étape S96 le compteur k a atteint la valeur limite, cela signifie que le nombre maximal de blocs source sélectionnés est atteint; cette étape est suivie de l'étape S105 qui détermine quelle est la distorsion minimale parmi les 2NB distorsions Dkm associées aux couples de transformations et blocs source sélectionnés à l'étape S103. Cette distorsion minimale détermine le bloc source et la transformation associée qui constituent la forme codée du bloc courant. Cette forme codée est constituée du couple {k, m} et est
mémorisée et/ou transmise.
En référence à la figure 11, un procédé de décodage d'une image IM, selon ce mode de réalisation de l'invention, mis en oeuvre dans le dispositif
de décodage, comprend des étapes S20 à S32.
L'étape S20 est le décodage de la sous-bande basse LLc3 pour
former une sous-bande basse décodée LLd3 qui est mémorisée.
L'étape suivante S21 est la décomposition de la sous-bande basse
décodée LLd3 en sous-bandes de résolution inférieure LL4, HL4, LH4 et HH4.
Les sous-bandes HL4, LH4 et HH4 sont utilisées pour décoder les sousbandes
HL3, LH3 et HH3 de résolution supérieure RES3.
L'étape suivante S22 est une initialisation pour considérer la première sous-bande de détail à décoder. La première sous-bande est de
résolution RES3.
L'étape S22 est suivie de l'étape S23 qui est une initialisation pour
considérer le premier bloc à décoder dans la sous-bande courante. Les sous-
bandes sont décodées dans le même ordre qu'au codage, et les blocs dans une sous-bande donnée sont décodés dans le même ordre qu'au codage, bien
que des ordres différents soient possibles.
24 2767986
L'étape suivante S24 est la lecture de l'indicateur li,. pour déterminer
quel mode de codage a été utilisé pour coder le bloc courant.
Si le bloc a été codé par mise à zéro, l'étape S24 est suivie de l'étape S25 qui est le décodage du bloc courant par création d'un bloc Bdi,, dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage, et est par exemple déterminée par
l'indice du bloc.
Si le bloc a été codé par le second mode de codage, l'étape S24 est suivie de l'étape S26, qui comporte la lecture de la forme codée {k, m} du bloc courant pour déterminer quels sont le rang du bloc source et le mode de codage qui ont été utilisés pour coder le bloc courant. L'étape S26 comporte le décodage du bloc courant. Cette étape est détaillée dans la suite et a pour
résultat un bloc décodé Bdin.
Le bloc décodé Bdi,, est mémorisé à l'étape suivante S27.
Les étapes S28 et S30 sont des tests pour vérifier, respectivement si tous les blocs d'une sous-bande ont été décodés, et si toutes les sous- bandes ont été décodées. S'il reste au moins un bloc à décoder dans la sous-bande
courante, l'étape S28 est suivie par l'étape S29 pour considérer le bloc suivant.
L'étape S29 est suivie par l'étape S24 précédemment décrite.
S'il reste au moins une sous-bande à décoder, I'étape S30 est suivie par l'étape S31 pour considérer la sous-bande suivante. L'étape S31 est suivie
par l'étape S23 précédemment décrite.
Lorsque toutes les sous-bandes ont été décodées, c'est-à-dire que la réponse est positive à l'étape S30, cette dernière étape est suivie de l'étape S31 de synthèse de l'image décodée. Cette dernière peut ensuite être
visualisée, par exemple.
L'étape S26 de décodage d'un bloc d'une sous-bande de détail comporte des sous-étapes E260 à E269 et est décrite en référence à la figure 12.
2767986
L'étape E260 est la lecture de la forme codée {k, m} du bloc courant pour déterminer quels sont le rang du bloc source et le mode de codage qui ont
été utilisés pour coder le bloc courant.
L'étape suivante E261 est une initialisation d'un paramètre kl à zéro.
A l'étape suivante E262, le premier bloc source est considéré. Le premier bloc source est situé dans la sous-bande décodée de même orientation et de résolution inférieure par rapport à la sous-bande du bloc courant. L'étape suivante E263 est le calcul de l'énergie du bloc source
courant.
L'étape E263 est suivie de l'étape E264 qui est un test pour déterminer si l'énergie du bloc source courant est supérieure au seuil prédéterminé SE. Si la réponse est négative, le bloc source courant n'est plus pris en compte et l'étape E264 est suivie de l'étape E265 à laquelle le bloc
source suivant est considéré. L'étape E265 est suivie de l'étape E263.
Si, à l'étape E264, l'énergie du bloc source courant est supérieure au seuil SE, cette étape est suivie de l'étape E266 à laquelle le paramètre kl est
incrémenté de une unité.
L'étape suivante E267 est un test pour déterminer si le paramètre kl est égal au rang k. Si la réponse est négative, cette étape est suivie de l'étape E268 pour considérer le bloc source suivant. L'étape E268 est suivie de l'étape E263. Lorsqu'à l'étape E267 le paramètre kl est égal à la valeur k, le bloc source BSk qui a servi à coder le bloc courant a été trouvé. La transformation Tm est alors appliquée au bloc source à l'étape E269, ce qui forme le bloc
décodé Bdin.
En référence à la figure 13, un procédé de codage selon un autre mode de réalisation de l'invention d'une image IM, mis en oeuvre dans le
dispositif de codage, comporte des étapes R1 à R8.
Dans la suite, on considère que le codage d'un signal numérique comporte deux opérations principales: la quantification du signal, par exemple
26 2767986
une quantification vectorielle, qui fournit une suite de symboles, puis un codage entropique de ces symboles, par exemple un codage de Huffman, qui fournit
une suite binaire.
Dans ce contexte, le codage par mise à une valeur prédéterminée est un cas particulier dans lequel la suite binaire est de longueur nulle. Le procédé de codage utilise un nombre prédéterminé de
quantificateur Qw et un nombre prédéterminé de codeur entropique Ej.
Ce mode de réalisation de l'invention permet d'obtenir un rapport
compression sur distorsion élevé.
En effet, ce mode de réalisation permet d'attribuer un mode de quantification et un mode de codage entropique à chacun des blocs du signal, qui sont bien adaptés pour coder ce bloc et par conséquent qui le codent avec précision. L'étape R1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 4. L'étape R1 a pour résultat les sous-bandes LL3, HL3, LH3 et HH3 de plus faible résolution RES3, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH1, HL, et HH1 de
plus haute résolution RES1.
Dans ce mode de réalisation, la sous-bande basse est codée
comme les sous-bandes de détail. En variante, elle peut être codée à part.
L'étape R1 est suivie par l'étape R2 qui est la division des sous-
bandes en blocs Bin.
L'étape suivante R3 est une initialisation pour considérer la première sous-bande. Les sous-bandes sont prises en compte selon un ordre a priori quelconque, tout en étant prédéterminé. Chaque sous-bande est traitée
indépendamment des autres sous-bandes.
L'étape suivante R4 est une initialisation pour associer un codeur entropique Ej à chacun des quantificateurs Qw Cette étape a pour résultat des couples {Qw, Ej}, qui sont adaptés à la sous-bande en cours de traitement, en fonction d'un critère. Cette étape est décrite en détail dans la suite. Elle permet d'arriver à la convergence, qui sera exposée plus loin, avec un nombre réduit
27 2767986
d'itérations. Selon un mode de réalisation simplifiée, cette étape est remplacée
par une association effectuée a priori, quel que soit le signal à coder.
L'étape R4 est suivie par l'étape R5 qui est la détermination, pour chacun des blocs de la sous-bande en cours de traitement, du quantificateur Qw et du codeur entropique Ej qui lui sont le plus adaptés, en fonction d'un
critère. Cette étape est détaillée dans la suite.
L'étape suivante R6 est le codage proprement dit de chacun des blocs de la sous-bande en cours de traitement. Pour un bloc donné Bn; le codage consiste à effectuer la quantification du bloc considéré par le quantificateur Qw, pour former une suite de symboles qui est transformée en
une suite binaire par le codeur entropique Ej.
Un indicateur li,n est associé à chacun des blocs pour indiquer quels sont le quantificateur Qw et le codeur entropique Ej qui sont utilisés pour coder le bloc considéré. L'indicateur li,n est par exemple un mot dont la valeur représente le codage sélectionné (Qw, Ej). L'indicateur est ensuite utilisé pour le
décodage du bloc considéré.
L'étape suivante R7 est un test pour déterminer si toutes les sous-
bandes ont été traitées. S'il reste au moins une sous-bande à traiter, I'étape R7 est suivie par l'étape R8 pour considérer la sous-bande suivante. L'étape R8
est suivie par l'étape R4 précédemment décrite.
L'étape d'initialisation R4 est détaillée à la figure 14 et comporte des
sous-étapes R40 à R492.
On considère ici une sous-bande quelconque de l'image numérique,
I'ensemble de quantificateurs {Qw} et l'ensemble de codeurs entropiques {Ej}.
L'étape R40 est une initialisation pour considérer la première quantification Qj. Cette étape est suivie par l'étape R41 pour considérer le
premier bloc à coder dans la sous-bande considérée.
L'étape suivante R42 est la quantification du bloc considéré par le quantificateur considéré Qw. Cette étape a pour résultat une suite de symboles
qui sont mémorisés.
28 2767986
L'étape R42 est suivie par l'étape R43 qui est un test pour déterminer si le bloc considéré est le dernier de la sous-bande en cours de traitement. Si la réponse est négative, l'étape R43 est suivie de l'étape R44 pour considérer le bloc suivant dans la sous-bande. Les blocs sont considérésdans un ordre quelconque et prédéterminé. L'étape R44 est suivie de l'étape
R42 précédemment décrite.
Lorsque tous les blocs de la sous-bande ont été quantifiés, l'étape
R43 est suivie de l'étape R45 pour considérer le premier codeur entropique El.
L'étape suivante R46 est le codage, par le codeur entropique
courant Ej, des blocs précédemment quantifiés.
L'étape R46 est suivie de l'étape R47 à laquelle le débit Rwj de transmission de la sous-bande codée est calculé et mémorisé. Ce débit est égal à la somme des débits de tous les blocs codés de la sous-bande considerée. L'étape suivante E48 est un test pour déterminer si tous les codeurs entropiques ont été utilisés. Si la réponse est négative, l'étape R48 est suivie de l'étape R49 pour considérer le codeur entropique suivant. L'étape R49 est
suivie de l'étape R46 précédemment décrite.
Lorsque tous les codeurs entropiques ont été utilisés, I'étape R48 est suivie de l'étape R490 à laquelle est déterminé, relativement au quantificateur Qw, le minimum des débits calculés aux passages par l'étape R47, c'est-à-dire pour chacun des codeurs entropiques. Le débit minimum Rmin correspond à un codeur entropique Rj, qui est associé au quantificateur considéré Qw- Ce critère
participe à l'obtention d'un bon rapport compression sur distorsion.
L'étape suivante R491 est un test pour déterminer si tous les quantificateurs ont été traités. Si la réponse est négative, l'étape R491 est suivie de l'étape R492 pour considérer le quantificateur suivant. Les quantificateurs sont pris dans un ordre quelconque, prédéterminé. L'étape
R492 est suivie de l'étape R41 précédemment décrite.
Lorsque tous les quantificateurs ont été traités, l'étape R491 est
suivie de l'étape R5.
29 2767986
L'étape R4 a ainsi pour résultat d'associer un codeur entropique Ej à chacun des quantificateurs Qw, en utilisant un critère de débit minimum pour
transmettre le signal numérique codé, en l'occurrence une sous-bande codée.
L'étape R5 est détaillée à la figure 15 et comporte des sous-étapes
R50 à R598.
L'étape R50 est une initialisation pour considérer le premier bloc de
la sous-bande en cours de traitement.
L'étape suivante R51 est une initialisation pour considérer le premier couple (Qw, Ej) de quantificateur et codeur entropique, parmi les couples formés à l'étape R4. Les couples sont considérés dans un ordre quelconque et prédéterminé. L'étape suivante R52 est le calcul et la mémorisation de la somme Rwj+ X.Dwj, o Rwj est le débit nécessaire pour transmettre le bloc courant Bin codé par le couple (Qw, Ej), Dwj est l'erreur ou distorsion provoquée dans le bloc courant par le codage, et; est un coefficient de réglage du rapport compression/distorsion. Le coefficient X varie de zéro à l'infini. Pour des raisons pratiques, on peut utiliser de manière équivalente la somme (1-X).Rwj + X.Dwj, avec le
coefficient X variant entre zéro et un.
L'erreur Dwj mesure l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré. Dans le cas o la décomposition en sous-bande est orthogonale, I'erreur Dwj est égale à l'erreur quadratique entre le bloc original et le bloc reconstruit. Dans le cas d'une transformée biorthogonale, I'erreur Dwj est proche de l'erreur quadratique entre le bloc original et le bloc reconstruit, si bien qu'il est possible d'estimer l'erreur par cette grandeur. L'étape suivante R53 est un test pour déterminer si tous les couples de quantificateurs et codeur entropiques ont été utilisés. Si la réponse est négative, l'étape R53 est suivie de l'étape R54 à laquelle le couple suivant est
considéré. L'étape R54 est suivie de l'étape R52 précédemment décrite.
2767986
Lorsque tous les couples de quantificateurs et codeur entropiques ont été considérés, l'étape R53 est suivie de l'étape R55 à laquelle le minimum des sommes calculées aux passages par l'étape R52 est déterminé. Ce minimum correspond à l'un des couples de quantificateurs et codeur entropiques (Qw, Ej) qui est alors attribué au bloc considéré B.n. Ce critère de
sélection vise à l'obtention d'un bon rapport compression sur distorsion.
L'étape R55 est suivie de l'étape R56 qui est un test pour déterminer si tous les blocs de la sous-bande considérée ont été traités. Si la réponse est
négative, l'étape R56 est suivie de l'étape R57 pour considérer le bloc suivant.
L'étape R57 est suivie de l'étape R51 précédemment décrite.
Les étapes R50 à R57 ont ainsi pour résultat d'attribuer un quantificateur et un codeur entropique à chacun des blocs de la sous- bande considérée. Lorsque tous les blocs de la sous-bande ont été traités, l'étape R56
est suivie de l'étape R58 à laquelle le premier quantificateur est considéré.
A l'étape suivante R59, tous les blocs auxquels a été affecté le
quantificateur courant Qw (étape R55) sont quantifiés par le quantificateur Qw.
Ces blocs forment un sous-ensemble de la sous-bande considérée. L'étape R59 est suivie par l'étape R591 à laquelle est considéré le premier codeur
entropique.
L'étape suivante R592 est le codage des blocs quantifiés à l'étape R59 par le codeur entropique courant EjI. Les données de codage de chacun
des blocs sont mémorisées.
L'étape R592 est suivie de l'étape R593 qui est un test pour déterminer si tous les codeurs entropiques ont été utilisés. Si la réponse est négative, l'étape R593 est suivie de l'étape R594 pour considérer le codeur entropique suivant. L'étape R594 est suivie de l'étape R592 précédemment décrite. Lorsque tous les codeurs entropiques ont été utilisés, l'étape R593 est suivie de l'étape R595 à laquelle est déterminé le débit des données de codage des blocs du sous-ensemble considéré, par chacun des codeurs
31 2767986
entropiques. Le codeur entropique Ej1, pour lequel le débit est minimum, est attribué aux blocs du sous-ensemble considéré. Un nouveau couple (Qw, Ej1) a donc été attribué aux blocs du sous-ensemble considéré, auxquels avait été
précédemment attribué le couple (Qw, Ej) à l'étape R55.
L'étape R595 est suivie de l'étape R596 qui est un test pour déterminer si tous les quantificateurs ont été traités. Si la réponse est négative, l'étape R596 est suivie de l'étape R597 pour considérer le quantificateur
suivant. L'étape R597 est suivie de l'étape R592 précédemment décrite.
Lorsque tous les quantificateurs ont été traités, I'étape R596 est suivie de l'étape R598 qui est un test de convergence. Ce test consiste à vérifier si les mêmes couples de quantificateurs et de codeurs entropiques sont attribués aux mêmes blocs, au cours de plusieurs répétitions successives des étapes R50 à R597. Le nombre de répétitions est par exemple de deux. Ce critère de convergence est simple à mettre en oeuvre, puisqu'il suffit de mémoriser les sous-ensembles obtenus à chaque itération et de les comparer à
ceux mémorisés à l'itération précédente.
Tant que le test de convergence n'est pas positif, I'étape R598 est suivie de l'étape R50. Lorsque le test de convergence est positif, I'étape R598
est suivie de l'étape R6.
Le procédé de décodage selon ce mode de réalisation de l'invention
est analogue à celui décrit en référence à la figure 8.
En référence à la figure 16, un procédé de codage d'une image IM, selon un autre mode de réalisation de l'invention, mis en oeuvre dans le dispositif de codage, comporte des étapes T1 à T1 6. Le procédé met en oeuvre
M modes de codage.
L'utilisation de plusieurs modes de codage permet de choisir le mode de codage le plus approprié pour chacun des blocs, ce qui réduit l'erreur
globale de codage.
Un indicateur pour chaque bloc est nécessaire au décodage pour indiquer quel mode de codage a été utilisé. Il y a donc autant d'indicateurs que de blocs, ce qui réduit le taux de compression. Le groupement des indicateurs
32 2767986
en mots, lesquels mots sont ensuite codés, permet de limiter la réduction du
taux de compression.
Ainsi, I'invention offre globalement un rapport taux de compression
sur erreur de codage qui est élevé.
L'étape T1 est la décomposition en sous-bandes de l'image IM, comme représenté à la figure 4. L'étape T1 a pour résultat les sous-bandes LL3, HL3, LH3 et HH3 de plus faible résolution RES3, les sous-bandes LH2, HL2, HH2 de résolution intermédiaire RES2, et les sous-bandes LH1, HL, et HH1 de
plus haute résolution RESt.
La sous-bande LL3 est séparée des autres sous-bandes à l'étape
suivante T2.
L'étape T3 code la sous-bande LL3 selon un codage DPCM (Differential Pulse Code Modulation) et a pour résultat la sous-bande codée
LLc3 qui est mémorisée et/ou transmise.
L'étape T3 est suivie par l'étape T4 qui est la division des autres
sous-bandes en blocs Bin, comme représenté à la figure 5.
Selon le mode de réalisation choisi, toutes les sous-bandes fournies au circuit 4 sont divisées en un même nombre N de blocs B,n, o l'indice i est un entier, ici entre 1 et 9, qui représente l'ordre de la sous-bande considérée et
l'indice n, entre 1 et N, est un entier qui représente l'ordre du bloc dans la sous-
bande considérée. Les blocs sont ici de forme carrée, mais peuvent être en variante rectangulaire. L'ordre des blocs est a priori quelconque, mais prédéterminé. Pour des raisons pratiques, les blocs sont ordonnés de la même manière dans toutes les sous-bandes, par exemple de gauche à droite et de
hauten bas.
En conséquence du mode de division en blocs, la surface des blocs est divisée par quatre en passant de la résolution RES, à la résolution RES2, et de la résolution RES2 à la résolution RES3. Un bloc "original" de taille 16x16 pixels de l'image originale correspond à un bloc de taille 8x8 pixels dans chacune des sous-bandes de résolution RES1. Dans chacune des sous-bandes de résolution RES2, le bloc original correspond à un bloc de taille 4x4 pixels, et
33 2767986
à un bloc de taille 2x2 pixels dans chacune des sous-bandes de résolution RES3. Le bloc original correspond ainsi à neuf blocs dans les sous-bandes de détail. Tous les blocs des sous-bandes de détail peuvent ainsi être mis en groupe, un groupe donné comporte un bloc de chacune des sous-bandes de détail, et correspond à une partie, ici un bloc, de l'image d'origine. Bien entendu, il est possible de former des groupes de blocs issus de seulement certaines sous-bandes de détail, à condition que ces blocs correspondent à une même partie de l'image d'origine. Il est également possible de considérer plusieurs blocs adjacents dans chaque sous-bande de détail, formant des sous-groupes, puis de grouper ces sous-groupes en prenant un sous-groupe dans chaque sous-bandes de détail, ou dans certaines sous-bandes de détail, toujours à la condition que les blocs considérés correspondent à une même
partie de l'image d'origine.
L'étape suivante T5 est une initialisation pour considérer la première sous-bande. Les sous-bandes sont prises en compte selon un ordre a priori
quelconque, tout en étant prédéterminé.
L'étape suivante T6 est une initialisation pour considérer le premier bloc de la sous-bande courante. Les blocs dans la sous-bande courante sont
pris en compte selon un ordre quelconque et prédéterminé.
L'étape T6 est suivie par l'étape T7 qui est le codage du bloc courant Bin. Le bloc Bi,n est codé selon les M modes de codage prédéterminés,
notamment, par exemple, par quantification scalaire et par mise à zéro.
L'étape suivante T9 est la comparaison des M modes de codage, pour le bloc courant, selon un critère prédéterminé. L'étape T9 a pour résultat
la sélection de l'un des modes de codage, pour le bloc courant Bin.
A cette fin, les sommes Rm,i,n + X. Dmin sont calculées, pour m entier variant entre 1 et M, o Rm,in est le débit nécessaire pour transmettre le bloc courant codé par le mode de codage m, Dl,in est la distorsion provoquée dans le bloc courant par le mode de codage m, et; est un coefficient de réglage du rapport compression/distorsion. Comme exposé plus haut, I'erreur Dmin mesure
34 2767986
l'erreur quadratique apportée dans l'image reconstruite par le codage du bloc considéré. Le mode de codage pour lequel la somme est la plus faible est sélectionné, pour le bloc courant. Ce critère permet de sélectionner, pour
chaque bloc, le mode de codage le plus approprié.
A l'étape suivante T10, un indicateur I, est associé au bloc courant pour indiquer quel est le mode de codage sélectionné à l'étape T9. L'indicateur I, est par exemple un mot susceptible de prendre M valeurs différentes, et dont
la valeur représente le mode de codage choisi pour coder le bloc Bin.
L'étape suivante Tl1 est la mémorisation de la valeur de l'indicateur
I,n ainsi que des données de codage proprement dites du bloc considéré.
Les étapes T12 et T14 sont des tests pour vérifier, respectivement si
tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été codées.
S'il reste au moins un bloc à coder dans la sous-bande courante, I'étape T12 est suivie par l'étape Tl 3 pour considérer le bloc suivant. L'étape T1 3 est suivie
par l'étape T7 précédemment décrite.
S'il reste au moins une sous-bande à coder, l'étape T14 est suivie par l'étape T15 pour considérer la sous-bande suivante. L'étape T15 est suivie
par l'étape T6 précédemment décrite.
Lorsque toutes les sous-bandes ont été codées, l'étape T14 est
suivie de l'étape T16 qui est le codage des indicateurs.
L'ensemble des indicateurs I,n forme une table qui comporte autant d'éléments qu'il existe de blocs. La décomposition de l'image est telle qu'il existe la même correspondance entre les indicateurs qu'entre les blocs des différentes sous-bandes. Les indicateurs peuvent donc être regroupés en mot, ici par groupe de neuf, en fonction de cette correspondance. Un mot comporte ainsi un indicateur correspondant à un bloc de chacune des sous-bandes de
détail, ces blocs ayant le même support spatial dans l'image d'origine.
Selon d'autres modes de réalisation, les mots formés comportent un indicateur correspondant à un bloc de certaines des sous-bandes de détail, ou comportent des indicateurs correspondant à plusieurs blocs de chacune des,
ou de certaines des sous-bandes de détail.
2767986
Dans tous les cas, ces blocs ont le même support spatial dans l'image d'origine, autrement dit, les indicateurs d'un mot donné correspondent à une partie donnée, ici un bloc, de l'image d'origine. Les indicateurs de ce mot sont par conséquent interdépendants. Ce type de groupement exploite la corrélation qui existe entre les différentes sous-bandes du signal numérique. En fonction de cette interdépendance, les mots d'indicateurs sont codés selon un codage de type entropique. Le codage est également du type sans perte, car il est nécessaire de retrouver exactement les indicateurs au décodage, pour retrouver sans erreur le mode de codage utilisé pour coder
chaque bloc et effectuer le décodage correspondant.
Le codage est par exemple un codage de Huffman, qui donne des résultats satisfaisants, aussi bien en taux de compression qu'en facilité de mise en oeuvre, ou en variante est un codage arithmétique, ou encore un codage LZW. L'ensemble des mots codés est associé aux formes codées
proprement dites de chacun des blocs.
En référence à la figure 17, un procédé de décodage d'une image IM selon ce mode de réalisation de l'invention, mis en oeuvre dans le dispositif
de décodage, comprend des étapes T20 à T31.
L'étape T20 est le décodage de la sous-bande basse LLc3 pour
former une sous-bande basse décodée LLd3 qui est mémorisée.
* L'étape suivante T21 est le décodage des indicateurs. Comme exposé précédemment, les mots d'indicateur sont décodés selon un décodage de Huffman, par exemple. Les mots d'indicateurs décodés fournissent I'indicateur de chacun des blocs codés. Ainsi, pour un bloc donné, l'indicateur
décodé indique quel mode de codage a été utilisé pour coder le bloc considéré.
L'étape suivante T22 est une initialisation pour considérer la
première sous-bande de détail à décoder.
L'étape T22 est suivie de l'étape T23 qui est une initialisation pour
considérer le premier bloc à décoder dans la sous-bande courante. Les sous-
bandes sont décodées dans le même ordre qu'au codage, et les blocs dans
36 2767986
une sous-bande donnée sont décodés dans le même ordre qu'au codage, bien
que des ordres différents soient possibles.
L'étape suivante T24 est la lecture de l'indicateur I,, pour déterminer
quel mode de codage a été utilisé pour coder le bloc courant.
L'étape T24 est suivie de l'étape T25 qui est le décodage du bloc courant. Par exemple, si le bloc a été codé par mise à zéro, le décodage consiste à créer un bloc dont tous les coefficients sont à la valeur zéro. La taille du bloc créé dépend de la sous-bande en cours de décodage, et est par exemple déterminée par l'indice du bloc. Si le bloc a été codé par quantification scalaire, il est décodé. Pour cela, comme précisé plus haut, les données codées par codage de Huffman sont lues et décodées. Les indices de quantification correspondant aux coefficients du bloc en cours de décodage sont extraits. Les indices sont déquantifiés pour générer les coefficients du bloc
décodé Bdi,,.
Le bloc décodé Bdi, est mémorisé à l'étape suivante T26.
Les étapes T27 et T29 sont des tests pour vérifier, respectivement si tous les blocs d'une sous-bande, et si toutes les sous-bandes ont été décodées. S'il reste au moins un bloc à décoder dans la sous-bande courante, l'étape T27 est suivie par l'étape T28 pour considérer le bloc suivant. L'étape
T28 est suivie par l'étape T24 précédemment décrite.
S'il reste au moins une sous-bande à décoder, l'étape T29 est suivie par l'étape T30 pour considérer la sous-bande suivante. L'étape T30 est suivie
par l'étape T23 précédemment décrite.
Lorsque toutes les sous-bandes ont été décodées, c'est-à-dire que la réponse est positive à l'étape T29, cette dernière étape est suivie de l'étape R31 de construction de l'image décodée. Cette dernière peut ensuite être
visualisée, par exemple.
Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits et représentés, mais englobe, bien au contraire,
toute variante à la portée de l'homme du métier.
37 2767986
En particulier, I'invention peut aisément être appliquée à d'autres
types de signaux.
Ces signaux peuvent être des signaux mono-dimensionnels tel que des sons, ou des relevés sismiques, ou encore des électrocardiogrammes; en fonction de leur nature, I'analyse des signaux est réalisée selon des fréquences
temporelles ou spatiales.
Ces signaux peuvent être tridimensionnels tels que des séquences vidéo représentées selon deux fréquences spatiales et une fréquence temporelle. On met alors en oeuvre une décomposition en sous-bandes de fréquence en dimension trois, et la décomposition du signal en vecteurs
s'effectue également en dimension trois.
Pour un signal ayant des composantes dans plusieurs bandes de fréquences, tel qu'un signal d'image en couleur ayant des composantes rouge,
verte et bleue, I'invention s'applique dans chacune des bandes de fréquence.
38 2767986

Claims (27)

REVENDICATIONS
1. Procédé de codage de signal numérique comportant une étape d'analyse (El) du signal numérique (IM) en une pluralité de sous-bandes de fréquence réparties selon au moins deux bandes de fréquence différentes, au moins une première sous-bande ayant une fréquence plus faible et au moins une seconde sous-bande ayant une fréquence plus élevée, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: - division (E4) de la seconde sous-bande en blocs (Bi.,), - sélection (E9) de blocs qui sont à coder par mise à une valeur prédéterminée, selon un critère de sélection, - codage des blocs sélectionnés à l'étape précédente, par mise à la
valeur prédéterminée.
2. Procédé de codage selon la revendication 1, caractérisé en ce les blocs sélectionnés sont destinés à être décodés sous la forme de blocs dont
tous les coefficients sont nuls.
3. Procédé de codage selon la revendication 1 ou 2, caractérisé en ce que, pour chacun des blocs, l'étape de sélection comporte le codage (E7) du bloc (Bin) par mise à la valeur prédéterminée et par un second mode de codage (E8), la comparaison (E9) des deux modes de codage selon le critère de sélection et la sélection du codage par mise à la valeur prédéterminée si le
bloc codé par mise à la valeur prédéterminée satisfait le critère de sélection.
4. Procédé de codage selon la revendication 3, caractérisé en ce que les blocs qui ne sont pas sélectionnés à l'étape de sélection sont codés par
le second mode de codage.
5. Procédé de codage selon la revendication 4, caractérisé en ce que le second mode de codage est une quantification scalaire des coefficients
du bloc.
39 2767986
6. Procédé de codage selon l'une quelconque des revendications 1 à
, caractérisé en ce que le critère de sélection minimise une somme pondérée
du débit et de l'erreur de codage provoqués par le codage du bloc considéré.
7. Procédé de codage selon l'une quelconque des revendications 1 à
6, caractérisé en ce qu'un indicateur (1i,,) est associé à chaque bloc (Bin) pour indiquer si le bloc considéré est codé par mise à la valeur prédéterminée ou non.
8. Procédé de codage selon l'une quelconque des revendications 1 à
7, caractérisé en ce que ladite au moins une première sous-bande est codée
(E3) selon un troisième mode de codage.
9. Procédé de décodage d'un signal numérique codé, ledit signal comportant des représentations codées de blocs formés dans des sous- bandes de fréquence du signal d'origine, chaque représentation codée comportant au moins un indicateur (lin) représentatif d'un premier ou d'un second mode de codage, caractérisé en ce qu'il comporte les étapes de: - lecture (E23) de la valeur de l'indicateur, - décodage (E24) des représentations codées selon un premier ou un second mode de décodage, correspondant respectivement aux premier et
second modes de codage, en fonction de la valeur de l'indicateur.
10. Procédé de décodage selon la revendication 9, caractérisé en ce que l'un des modes de décodage comporte la formation de blocs reconstruits
dont tous les coefficients ont une valeur prédéterminée.
11. Procédé de décodage selon la revendication 10, caractérisé en
ce que la valeur prédéterminée est nulle.
12. Dispositif de codage de signal numérique comportant des
moyens d'analyse (2) du signal numérique (IM) en une pluralité de sous-
bandes de fréquence réparties selon au moins deux bandes de fréquence différentes, au moins une première sous-bande ayant une fréquence plus faible et au moins une seconde sous-bande ayant une fréquence plus élevée, caractérisé en ce qu'il comporte:
2767986
- des moyens (4) de division de chaque seconde sous-bande en blocs (Bi,, ), - des moyens (7) de sélection de blocs qui sont à coder par mise à une valeur prédéterminée, dans chaque seconde sous-bande, selon un critère de sélection, - des moyens (5) de codage des blocs sélectionnés par mise à la
valeur prédéterminée.
13. Dispositif de codage selon la revendication 12, caractérisé en ce qu'il comporte des moyens (5) de codage de chacun des blocs par mise à la valeur prédéterminée, des moyens (6) de codage de chacun des blocs par un second mode de codage, des moyens (7) de comparaison des deux modes de codage pour sélectionner le codage par mise à la valeur prédéterminée, si le
bloc codé par mise à la valeur prédéterminée satisfait le critère de sélection.
14. Dispositif de codage selon la revendication 13, caractérisé en ce qu'il est adapté à coder par le second mode de codage les blocs qui ne sont
pas sélectionnés par les moyens de sélection.
15. Dispositif de codage selon la revendication 13 ou 14, caractérisé en ce qu'il est adapté à mettre en oeuvre une quantification scalaire des
coefficients de bloc en tant que second mode de codage.
16. Dispositif de codage selon l'une quelconque des revendications
12 à 15, caractérisé en ce qu'il est adapté à mettre en oeuvre un critère de sélection qui minimise une somme pondérée du débit et de l'erreur de codage
provoqué par le codage du bloc considéré.
17. Dispositif de codage selon l'une quelconque des revendications
12 à 16, caractérisé en ce qu'il est adapté à associer un indicateur (lin) à chaque bloc pour indiquer si le bloc considéré est codé par mise à la valeur
prédéterminée ou non.
18. Dispositif de codage selon l'une quelconque des revendications
12 à 17, caractérisé en ce qu'il est adapté à coder ladite au moins une première
sous-bande selon un troisième mode de codage.
41 2767986
19. Dispositif de codage selon l'une quelconque des revendications
12 à 18, caractérisé en ce que les moyens de division, de sélection et de codage sont incorporés dans: - un microprocesseur, - une mémoire morte comportant un programme pour coder chacun des blocs de données, et - une mémoire vive comportant des registres adaptés à enregistrer
des variables modifiées au cours de l'exécution dudit programme.
20. Dispositif de décodage d'un signal numérique codé, ledit signal comportant des représentations codées de blocs formés dans des sousbandes de fréquence du signal d'origine, chaque représentation codée comportant au moins un indicateur représentatif d'un premier ou d'un second mode de codage, caractérisé en ce qu'il comporte: - des moyens (11) de lecture de la valeur de l'indicateur, - des moyens (12) de décodage des représentation codées selon un premier ou un second mode de codage, correspondant respectivement aux
premier et second modes de codage, en fonction de la valeur de l'indicateur.
21. Dispositif de décodage selon la revendication 20, caractérisé en ce qu'il est adapté à décoder les représentations codées selon l'un des modes de codage par formation de blocs dont les coefficients ont une valeur prédéterminée.
22. Dispositif de décodage selon la revendication 21, caractérisé en
ce que la valeur prédéterminée est nulle.
23. Dispositif de décodage selon l'une quelconque des
revendications 20 à 22, caractérisé en ce que les moyens de lecture et les
moyens de décodage sont incorporés dans: - un microprocesseur, - une mémoire morte comportant un programme pour décoder chacun des blocs de données, et - une mémoire vive comportant des registres adaptés à enregistrer
des variables modifiées au cours de l'exécution dudit programme.
42 2767986
24. Appareil (100) de traitement de signal numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de
codage selon l'une quelconque des revendications I à 8.
25. Appareil (200) de traitement de signal numérique, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre le procédé de
décodage selon l'une quelconque des revendications 9 à 11.
26. Appareil (100) de traitement de signal numérique, caractérisé en ce qu'il comporte le dispositif de codage selon l'une quelconque des
revendications 12 à 19.
27. Appareil (200) de traitement de signal numérique, caractérisé en ce qu'il comporte le dispositif de décodage selon l'une quelconque des
revendications 20 à 23.
FR9710804A 1997-08-29 1997-08-29 Codage et decodage de signal numerique Pending FR2767986A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR9710804A FR2767986A1 (fr) 1997-08-29 1997-08-29 Codage et decodage de signal numerique
EP98401966A EP0899960A3 (fr) 1997-08-29 1998-07-31 Codage et décodage de signaux numériques
US09/129,913 US6215422B1 (en) 1997-08-29 1998-08-06 Digital signal huffman coding with division of frequency sub-bands
JP10253232A JPH11168385A (ja) 1997-08-29 1998-08-24 デジタル信号の符号化と復号化

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9710804A FR2767986A1 (fr) 1997-08-29 1997-08-29 Codage et decodage de signal numerique

Publications (1)

Publication Number Publication Date
FR2767986A1 true FR2767986A1 (fr) 1999-03-05

Family

ID=9510601

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9710804A Pending FR2767986A1 (fr) 1997-08-29 1997-08-29 Codage et decodage de signal numerique

Country Status (1)

Country Link
FR (1) FR2767986A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6822587B2 (en) 2002-02-04 2004-11-23 Canon Kabushiki Kaisha Digital signal coding and decoding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481308A (en) * 1992-02-07 1996-01-02 At&T Corp. Method and apparatus for synthesizing subband video images

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481308A (en) * 1992-02-07 1996-01-02 At&T Corp. Method and apparatus for synthesizing subband video images

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
LABRIKI F ET AL: "CODAGE D'IMAGES TRANSFORMEES EN ONDELATTES", COLLOQUE SUR LE TRAITEMENT DU SIGNAL ET DES IMAGES, JUAN LES PINS, SEPT. 16 - 20, 1991, vol. VOL. 2, no. COLLOQUE 13, 16 September 1991 (1991-09-16), GRETSI, pages 897 - 900, XP000242921 *
LEE C W ET AL: "CLASSIFIED VECTOR QUANTIZER TECHNIQUE FOR IMAGE CODING EMPLOYING THE LINEAR PHASE PARAUNITARY M-BAND FILTER BANK", OPTICAL ENGINEERING, vol. 35, no. 8, August 1996 (1996-08-01), pages 2266 - 2275, XP000633912 *
REUSENS E ET AL: "NEW RESULTS IN SUBBAND/WAVELET IMAGE CODING", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC), GENEVA, MAY 23 - 26, 1993, vol. VOL. 1, no. -, 23 May 1993 (1993-05-23), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 381 - 385, XP000371119 *
RINALDO R ET AL: "HYBRID VECTOR QUANTIZATION FOR MULTIRESOLUTION IMAGE CODING", IEEE TRANSACTIONS ON IMAGE PROCESSING, vol. 6, no. 5, May 1997 (1997-05-01), pages 753 - 758, XP000655999 *
TAKANORI SENOO ET AL: "VECTOR QUANTIZATION FOR ENTROPY CODING OF IMAGE SUBBANDS", IEEE TRANSACTIONS ON IMAGE PROCESSING, vol. 1, no. 4, 1 October 1992 (1992-10-01), pages 526 - 533, XP000380782 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6822587B2 (en) 2002-02-04 2004-11-23 Canon Kabushiki Kaisha Digital signal coding and decoding

Similar Documents

Publication Publication Date Title
EP0572638B1 (fr) Methode et appareil permettant de coder des donnees en utilisant la quantification vectorielle, le codage rll et le codage rll adaptatif
US6987890B2 (en) Producing and encoding rate-distortion information allowing optimal transcoding of compressed digital image
EP3314897B1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés
JPH11168385A (ja) デジタル信号の符号化と復号化
FR2842983A1 (fr) Transcodage de donnees
FR2755818A1 (fr) Codage de signal numerique par decomposition en sous-bandes de frequence et quantification vectorielle a etats finis
FR2846835A1 (fr) Codage de donnees numeriques combinant plusieurs modes de codage
EP0668004B1 (fr) Procede et dispositif de reduction de debit pour l'enregistrement d'images sur magnetoscope
FR2670348A1 (fr) Dispositif de codage d'images appartenant a une sequence d'images, a rearrangement des lignes avant transformation mathematique, systeme de transmission d'images, recepteur et procede de codage correspondants.
WO2017187040A1 (fr) Procede de decodage d'une image numerique, procede de codage, dispositifs, et programmes d'ordinateurs associes
AU2004252577A1 (en) Method and apparatus for vector quantization using a shared codebook
FR2767986A1 (fr) Codage et decodage de signal numerique
WO2019015884A1 (fr) Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
FR3057130B1 (fr) Procede de codage d'une image, procede de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associes
FR2597282A1 (fr) Procede de quantification dans un codage par transformation pour la transmission de signaux d'image
FR2773927A1 (fr) Codage et decodage de signal numerique
FR2767987A1 (fr) Codage et decodage de signal numerique
FR2767988A1 (fr) Codage et decodage de signal numerique avec allocation adaptative de debit
Ning et al. Optical emission spectrum processing using discrete-wavelet transform compression
FR2790898A1 (fr) Codage et decodage de signal numerique
EP0427653A1 (fr) Système de compression d'images numériques appartenant à une séquence d'images, à quantification adaptative en fonction d'une information psychovisuelle
JP2002044662A (ja) データ符号化装置及び符号化方法並びにデータ復号化装置及び復号化方法
FR2773926A1 (fr) Dispositif et procede de codage de signal numerique
Farvardin et al. Subband image coding using entropy-coded quantization
Li et al. Lossless image compression based on DPCM-IWPT