FR2790898A1 - Codage et decodage de signal numerique - Google Patents

Codage et decodage de signal numerique Download PDF

Info

Publication number
FR2790898A1
FR2790898A1 FR9902955A FR9902955A FR2790898A1 FR 2790898 A1 FR2790898 A1 FR 2790898A1 FR 9902955 A FR9902955 A FR 9902955A FR 9902955 A FR9902955 A FR 9902955A FR 2790898 A1 FR2790898 A1 FR 2790898A1
Authority
FR
France
Prior art keywords
sub
band
coding
block
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9902955A
Other languages
English (en)
Other versions
FR2790898B1 (fr
Inventor
Isabelle Amonou
Felix Henry
Claude Dierieck
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 FR9902955A priority Critical patent/FR2790898B1/fr
Publication of FR2790898A1 publication Critical patent/FR2790898A1/fr
Application granted granted Critical
Publication of FR2790898B1 publication Critical patent/FR2790898B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne le codage de signal numérique représentatif de grandeur physique, 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 résolutions différentes (RES1 , RES2 , RES3 ), au moins une première sous-bande ayant une résolution plus faible et au moins une seconde sous-bande ayant une résolution plus élevée.caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de :- division (E6) de la seconde sous-bande en blocs cible (Bm, n ),- sélection (E11, E13), pour la seconde sous-bande, d'au moins un paramètre de codage (PLOC, PAQ) en fonction d'un premier critère de sélection,- codage (E14) de chacun des blocs cible de la seconde sous-bande.

Description

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 sousbandes.
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.
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, exploite la similarité entre blocs de différentes sous-
bandes d'une décomposition multirésolution de l'image.
Ce procédé permet d'obtenir une bonne qualité visuelle de l'image restituée et une distorsion limitée. 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é.
A cette fin, I'invention propose un procédé de codage de signal numérique représentatif de grandeur physique, comportant une étape d'analyse du signal numérique en une pluralité de sous-bandes de fréquence réparties
selon au moins deux résolutions différentes, au moins une première sous-
bande ayant une résolution plus faible et au moins une seconde sous- bande ayant une résolution 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 cible, - sélection, pour la seconde sous- bande, d'au moins un paramètre de codage en fonction d'un premier critère de sélection,
- codage de chacun des blocs cible de la seconde sous-bande.
Le procédé et le dispositif selon l'invention permettent d'obtenir un
rapport compression sur distorsion élevé.
En effet, le codage est adapté à chacune des sous-bandes, grâce au paramètre de codage qui constitue un réglage. L'erreur de codage et ainsi minimisée. Selon une caractéristique préférée, le paramètre de codage est un nombre de bits utilisables, pour chacun des blocs cible, pour coder la position d'un bloc source sélectionné dans la première sous-bande pour coder le bloc
cible. Cette position est codée de manière efficace grâce à l'invention.
Selon une caractéristique préférée, le paramètre de codage est un paramètre de quantification. La quantification est ainsi réglée pour chacune des sous-bandes. Bien entendu, deux paramètres de codage peuvent être utilisés
selon l'invention.
Selon une caractéristique préférée, le premier critère de sélection est une minimisation du rapport débit sur distorsion de la sous-bande considérée codée. Ce critère permet d'obtenir un bon rapport compression sur distorsion
pour le signal codé.
Selon une caractéristique préférée, le procédé comporte en outre l'attribution à chacun des blocs cible d'un mode de codage, en fonction d'un
premier critère d'attribution. Ainsi, le codage est en outre adapté à chaque bloc.
Selon une caractéristique préférée, le mode de codage comporte, pour chaque seconde sous-bande, les étapes de: - sélection, pour chacun des blocs cible, d'un nombre prédéterminé de blocs source dans une première sous-bande, un bloc source étant sélectionné si son énergie est supérieure à un seuil prédéterminé, - attribution à chacun des blocs source sélectionnés à l'étape précédente, d'une transformation dans un ensemble prédéterminé de transformations, en fonction d'un second critère d'attribution, - sélection, pour chacun des blocs cible, de l'un des blocs source sélectionnés, associé à la transformation qui lui a été attribuée à l'étape
précédente, en fonction d'un second critère de sélection.
Il est ainsi possible de déterminer, pour chaque bloc cible à coder, des blocs source ayant une énergie suffisamment élevée pour pouvoir coder
avec précision le bloc cible.
L'invention permet ensuite de déterminer, pour chaque bloc source "candidat", une transformation telle que le bloc source transformé par cette
transformation soit une bonne approximation du bloc cible à coder.
L'invention permet enfin de déterminer, 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 cible 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.
Selon une caractéristique préférée, à l'étape de sélection du nombre prédéterminé de blocs source, un premier bloc source est considéré, ledit premier bloc source ayant une position, dans sa sous-bande de fréquence, identique à la position du bloc cible, dans sa sous-bande de fréquence, au facteur de résolution près. Le premier bloc source à prendre en compte est
ainsi déterminé simplement et rapidement.
Selon une caractéristique préférée, à l'étape de sélection du nombre prédéterminé de blocs source, les blocs source sont considérés selon un ordre tel que leur distance par rapport au premier bloc source est sensiblement croissante. Par exemple, les blocs source sont considérés selon un ordre tel
qu'ils recouvrent une ligne en spirale centrée sur le premier bloc source.
Selon une caractéristique préférée, le second critère d'attribution consiste à sélectionner, dans l'ensemble des transformations, la transformation pour laquelle une distance entre le bloc cible et le bloc résultant de l'application
de ladite transformation au bloc source considéré est minimale.
Selon une caractéristique préférée, le second critère de sélection consiste à sélectionner, parmi les blocs source sélectionnés, le bloc source et la transformation qui lui a été attribuée pour lesquels une distance entre le bloc cible et le bloc résultant de l'application de ladite transformation au bloc source
considéré est minimale.
Corrélativement, I'invention concerne un dispositif de codage de signal numérique qui comporte des moyens de mise en oeuvre des caractéristiques précédentes. Le dispositif de codage présente des avantages
analogues à ceux du procédé précédemment exposé.
L'invention concerne aussi un procédé de décodage d'un signal numérique codé par le procédé précédemment exposé, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: - lecture de la valeur de l'au moins un paramètre de codage, - décodage de chacun des blocs cible de la seconde sous-bande en
fonction de la valeur lue.
Selon une caractéristique préférée, le procédé de décodage comporte, pour chaque bloc cible de chaque seconde sous-bande, les étapes de: - lecture de la valeur d'un rang de bloc source et d'un indice de transformation, ledit bloc source et ladite transformation ayant été sélectionnés pour le bloc cible considéré, - sélection de blocs source, en nombre au moins égal à la valeur du rang précédemment lue, dans une sous-bande de résolution inférieure, un bloc source étant sélectionné si son énergie est supérieure à un seuil prédéterminé, - recherche du bloc source dont le rang a la valeur précédemment lue, parmi les blocs source sélectionnés, application de la transformation représentée par l'indice au bloc
source dont le rang a la valeur précédemment lue.
Corrélativement, l'invention propose un dispositif de décodage d'un signal numérique codé, qui comporte des moyens de mise en oeuvre des
caractéristiques précédentes.
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.
L'invention concerne aussi un appareil numérique incluant le dispositif de codage, respectivement de décodage ou des moyens de mise en oeuvre du procédé de codage, respectivement de décodage. Les avantages du dispositif et de l'appareil numérique sont identiques à ceux précédemment
exposes.
Un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé de codage,
respectivement de décodage.
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; - 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; - 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 représente un mode de réalisation du dispositif de codage et/ou de décodage selon l'invention; - la figure 8 est un algorithme de codage d'un signal numérique selon l'invention; - la figure 9 est un algorithme de détermination d'un mode de codage inclus dans l'algorithme de la figure 8; - la figure 10 est un algorithme de codage d'un bloc, inclus dans I'algorithme de la figure 9; - la figure 11 est un algorithme de codage d'une sous-bande, inclus dans l'algorithme de la figure 8; - les figures 12 et 13 illustrent la recherche de blocs source utilisée dans le codage de la figure 8; - la figure 14 est un algorithme de décodage d'un signal numérique selon l'invention; - la figure 15 est un algorithme de décodage d'un bloc, inclus dans
l'algorithme de la figure 14.
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 1i de la source de signal est reliée à un premier 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.
Le circuit de codage 3 a une première sortie 31 reliée à un circuit de traitement, et une seconde sortie 32 reliée à un circuit de décodage 31. Ce
dernier a une sortie 31, reliée à un second circuit de décomposition en sous-
bandes 32, dont une sortie 324 est reliée à un circuit de division en blocs 4.
Des secondes sorties 22 du circuit de décomposition 2 sont reliées au circuit de division en blocs 4. Le circuit 4 a une sortie 4, reliée à un circuit de
codage 5.
Une première sortie 5, du circuit 5 est reliée à un circuit de traitement 8, qui est par exemple un circuit de transmission, ou une mémoire. Le circuit 8 a une sortie 81 qui lui permet de communiquer, via un réseau de communication, notamment avec le décodeur décrit dans la suite. Une seconde sortie 52 du circuit 5 est reliée à un circuit de décodage 6, dont une sortie 61 est reliée à une
mémoire tampon 7.
Une sortie 71 de la mémoire tampon 7 est reliée au circuit de codage 5. 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 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.
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 LL, LH,, HL, et HH, de résolution RES, la plus élevée dans la
décomposition.
La sous-bande LL, comporte les composantes, ou coefficients, de basse fréquence, selon les deux directions, du signal d'image. La sous-bande LH, 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.
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 LL1 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 sousbandes selon trois niveaux de résolution, par le circuit 2. L'image IMD comporte autant d'échantillons 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 les sous-bandes HL2, LH2 et HH2 et le niveau de plus haute résolution RES1
comporte les sous-bandes de plus haute fréquence HL1, LH1 et HH1.
La sous-bande LL3 de plus basse fréquence, dite aussi sous-bande basse, est une version passe-bas sous-échantillonnée 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 bi-dimensionnel tel qu'une image.
Le nombre de sous-bandes par niveau de résolution peut également être différent. La décomposition peut être non séparable, par exemple une décomposition en quinconce. 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 Impulsion et Codage
Différentiel, soit MICD), 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. Le circuit de codage 3 fournit la sous-bande codée LLc3 au circuit de
traitement 8 et au circuit de décodage 31 qui la décode et forme une sous-
bande décodée LLd3.
Le circuit de décodage 31 effectue des opérations inverses de celles du circuit de codage 3 et fournit la sous-bande décodée LLd3 au circuit de décomposition en sous-bande 32 qui est analogue au premier bloc d'analyse du circuit 2 précédemment décrit (figure 2). Le circuit 32 forme quatre sous-bandes LL4, LH4, HL4 et HH4 de résolution RES4 qui sont fournies au circuit de division en blocs 4. Comme exposé dans la suite, les sous-bandes LH4, HL4 et HH4 sont utilisées pour coder les sous-bandes LH3, HL3 et HH3, respectivement. Les sous-bandes LH3, HL3 et HH3, ainsi que les sous-bandes de résolution supérieure HL2, LH2, HH2, HL,, LH1 et HH, sont fournies au circuit de division 4, selon un ordre de sous-bande a priori quelconque, mais prédéterminé. Le circuit de division 4 divise chaque sous-bande en blocs à coder, dits blocs cibles. 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 à coder Bmn,
o l'indice m 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 à coder Bm,,n dans la sous-bande considérée. Les blocs sont ici de forme carrée, mais peuvent être en variante rectangulaires. De manière générale, un bloc est un ensemble de coefficients extraits de la sous-bande
pour former un vecteur.
Le nombre de blocs à coder peut être différent d'une sous-bande à I'autre. 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.
Comme représenté à la figure 5, à un bloc donné quelconque, dit bloc cible, Bm,n des sous-bandes de résolution RES1, RES2 et RES3, correspond un bloc, dit premier bloc source, dans la sous-bande de même orientation et de résolution immédiatement inférieure RES2, RES3 et RES4, respectivement. Le premier bloc source a la même taille que le bloc cible, et ces deux blocs sont situés au même emplacement dans leurs sous- bandes
respectives, au facteur de résolution près.
Le circuit de codage 5 code chaque bloc Bmn des sous-bandes de détail. Un bloc cible Bm,n est codé selon un mode de codage sélectionné dans un ensemble prédéterminé de modes de codage. Le fonctionnement du circuit
de codage sera détaillé dans la suite.
Le circuit de codage 5 transmet chaque bloc codé au circuit de
traitement 8.
Le circuit de décodage 6 décode le bloc et fournit le bloc décodé Bdm,n à la mémoire tampon 7. Le décodage sera détaillé dans la suite. Les blocs décodés forment des sous-bandes décodées. 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, selon l'un des modes de codage.
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 10, du circuit 10 est reliée à un circuit 11 de lecture des formes codées des blocs dont une sortie 11, est reliée à un circuit
de décodage 12.
Le circuit de décodage 12 a une sortie 12, 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 a une seconde sortie 102 reliée à un circuit de décodage de la sous-bande basse, dont une première sortie 15, est reliée au circuit de reconstruction 13 et une seconde sortie 152 est reliée à un circuit de décomposition en sous-bande 16. Ce dernier a une sortie 16, reliée au circuit
de décodage 12.
Le circuit 10 fournit la forme codée LLc3 de la sous-bande basse au circuit de décodage 15. Ce dernier est identique au circuit 31 et effectue un décodage correspondant au codage du circuit 3 (figure 1). Le circuit de décodage 15 fournit la sous-bande basse décodée LLd3 au circuit de reconstruction 13 et au circuit de décomposition en sous- bande 16. Ce dernier construit les sous-bandes LL4, LH4, HL4 et HH4. Les sous-bandes LH4, HL4 et HH4 sont destinées à décoder les sous-bandes de détail LH3, HL3 et HH3 de
résolution RES3 qui ont été codées selon l'un des modes de codage.
Le circuit 10 fournit les formes codées des blocs des sous-bandes de
détail au circuit 11 qui les lit et les fournit au circuit 12.
Le fonctionnement du circuit 12 est détaillé dans la suite. Le
décodage a pour résultat des blocs décodés Bdm,n.
Le circuit 12 fournit les blocs décodés Bdm,,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. La structure du circuit 13 se déduit directement de celle
du circuit d'analyse 2.
En référence à la figure 7, est décrit un exemple de dispositif 300 mettant en oeuvre l'invention. Ce dispositif est adapté à coder et/ou décoder un
signal numérique.
Le dispositif 300 est ici un micro-ordinateur comportant un bus de communication 101 auquel sont reliés: - une unité centrale 105, - une mémoire morte 102, - une mémoire vive 103, - un écran 104, - un clavier 114, - un disque dur 108, - un lecteur de disquette 109 adapté à recevoir une disquette 110, - une interface 112 de communication avec un réseau de communication 113,
- une carte d'entrée/sortie 106 reliée à un microphone 111.
Le disque dur 108 mémorise les programmes mettant en oeuvre l'invention, et qui seront décrits dans la suite, ainsi que les données à coder et les données codées selon l'invention. Ces programmes peuvent aussi être lus sur la disquette 110, ou reçu via le réseau de communication 113, ou encore mémorisé en mémoire morte 102. De manière plus générale, les programmes selon la présente invention sont mémorisés dans un moyen de stockage. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une disquette ou un CD-ROM (disque
compact à mémoire figée).
Lors de la mise sous tension du dispositif, les programmes selon la présente invention sont transférés dans la mémoire vive 103 qui contient alors le code exécutable de l'invention et des registres contenant les variables nécessaires à la mise en ceuvre de l'invention. La mémoire vive inclut une
mémoire tampon.
Le dispositif 300 peut recevoir des données à coder depuis un dispositif périphérique 107, tel qu'un appareil photographique numérique, ou un
scanner, ou tout autre moyen d'acquisition ou de stockage de données.
Le dispositif 300 peut également recevoir des données à coder depuis un dispositif distant, via le réseau de communication 113, et transmettre desdonnées codées vers un dispositif distant, toujours via le réseau de
communication 113.
Le dispositif 300 peut aussi recevoir des données à coder depuis le
microphone 111. Ces données sont alors un signal de son.
L'écran 104 permet à un utilisateur notamment de visualiser les
données à coder, et sert, avec le clavier 114, d'interface utilisateur.
En référence à la figure 8, un procédé de codage selon l'invention d'une image IM, mis en oeuvre dans le dispositif de codage, comporte des
étapes E1 à E17.
L'algorithme de codage peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une
disquette ou un CD-ROM (disque compact à mémoire figée).
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 l'invention.
Le procédé de codage utilise pour les sous-bandes de détail un nombre prédéterminé de mode de codage Q1. Par codage, on entend ici un traitement d'un signal pour le transformer en une suite de symboles. Un codage
entropique de cette suite de symboles la transforme en une suite binaire.
Dans le mode de réalisation choisi, les modes de codage sont sélectionnés bloc par bloc. On envisage plus particulièrement deux modes de codage. Le premier mode de codage est une mise à une valeur prédéterminée de tous les coefficients du bloc considéré, par exemple la valeur zéro. Le second mode de codage est une prédiction inter- échelle qui sera détaillée dans
la suite.
Deux paramètres utilisés par le second mode de codage sont
déterminés selon l'invention, comme exposé dans la suite.
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 basse LL3 est séparée des autres sous-bandes à
l'étape suivante E2.
L'étape E3 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 E3 est suivie par l'étape E4 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 E5, la sous-bande décodée LLd3 est décomposée en sousbandes de résolution inférieure LL4, HL4, LH4 et HH4. Les sous-bandes HL4, LH4 et HH4 sont utilisées par le second mode de codage (prédiction
interéchelle) pour coder les sous-bandes HL3, LH3 et HH3 de résolution RES3.
L'étape E5 est suivie par l'étape E6 qui est la division des sous-
bandes en blocs Bm,n, comme décrit précédemment.
L'étape suivante E7 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 E8 est une initialisation de deux paramètres PLOC et PAQ qui sont utilisés par le second mode de codage. Le paramètre PLOC définit un nombre de bits utilisables pour coder la position d'un bloc source par rapport à un bloc cible, comme exposé dans la suite. Le paramètre PAQ représente de manière générale une loi de quantification. Le paramètre PAQ peut être un nombre de bits, ou un pas de quantification, ou un facteur de multiplication. Un ensemble prédéterminé et fini de paramètres PLOC et PAQ est utilisé par l'invention. L'initialisation consiste donc à sélectionner un premier
couple de valeurs des paramètres PLOC et PAQ.
L'étape suivante E9 est une initialisation à laquelle tous les blocs de la sous-bande considérée sont codés par prédiction interéchelle, qui sera décrite dans la suite, puis un codeur entropique, par exemple un codeur de Huffman, ou un codeur arithmétique, est calculé en fonction du résultat
statistique du codage par prédiction interéchelle.
L'étape E9 est suivie par l'étape El0 qui est la détermination, pour chacun des blocs de la sous-bande en cours de traitement, du mode de codage Qi qui lui est le plus adapté, en fonction d'un critère. Cette étape est détaillée
dans la suite.
L'étape suivante El est une mise à jour et une mémorisation des meilleures valeurs de paramètres PLOC et PAQ pour la sous-bande courante, ainsi que des données de codage de chacun des blocs de la sous-bande courante. Les données de codage comportent au minimum l'indication du mode de codage sélectionné pour chacun des blocs. En pratique, on mémorise également la forme codée de chacun des blocs, ce qui évite de la recalculer à
l'étape E14.
Pour cela, lors du premier passage par l'étape El1, les valeurs courantes des paramètres PLOC et PAQ et les données de codage de chacun des blocs de la sous-bande courante sont mémorisées. Ensuite, pour chaque passage ultérieur par l'étape Ell, le rapport débit/distorsion obtenu avec les valeurs courantes des paramètres PLOC et PAQ est comparé avec celui obtenu avec les valeurs précédemment mémorisées des paramètres PLOC et PAQ. Les valeurs des paramètres PLOC et PAQ et les données de codage de chacun des blocs de la sous-bande courante, associées au meilleur rapport
débit/distorsion, sont mémorisées.
L'étape suivante E12 est un test pour vérifier si toutes les valeurs des
paramètres PLOC et PAQ ont été utilisées.
S'il reste au moins un jeu de paramètres PLOC et PAQ à tester, l'étape E12 est suivie de l'étape E13 à laquelle deux autres valeurs de paramètres PLOC et PAQ sont sélectionnées. L'étape E13 est suivie de l'étape
E9 précédemment décrite.
Lorsque toutes les valeurs des paramètres PLOC et PAQ ont été
utilisées, l'étape E12 est suivie de l'étape E14.
L'étape E14 est le codage proprement dit de chacun des blocs de la sousbande en cours de traitement. Cette étape est décrite en détail dans la suite. Elle a pour résultat, pour chacun des blocs Bm,n, une forme codée du bloc considéré et un indicateur lm,n pour indiquer quel mode de codage est utilisé pour coder le bloc considéré. L'indicateur Imn est par exemple un mot dont la valeur représente le codage sélectionné. L'indicateur Im,n est ici un élément
binaire pour représenter deux modes de codage.
L'étape suivante E15 est un test pour déterminer si toutes les sous-
bandes ont été traitées. S'il reste au moins une sous-bande à traiter, l'étape E15 est suivie par l'étape E16 de décodage de la sous-bande courante. En effet, pour le second mode de codage (prédiction interéchelle), il est préférable d'utiliser comme sous-bande source une sous-bande préalablement codée puis décodée, puisque seules de telles sous-bandes source seront disponibles lors d'un décodage ultérieur. L'étape E16 est analogue au décodage qui sera décrit
dans la suite.
L'étape E16 est suivie de l'étape E17 pour considérer la sous-bande
suivante. L'étape E1 7 est suivie par l'étape E8 précédemment décrite.
L'étape E10 est détaillée à la figure 9 et comporte des sous-étapes El00 à E 111 qui visent à sélectionner, pour chacun des blocs de la sous- bande en cours de traitement, un mode de codage Qi qui lui est le plus adapté, en
fonction d'un critère.
L'étape E100 est une initialisation pour considérer le premier bloc cible de la sous-bande en cours de traitement. Les blocs sont considérés selon
un ordre quelconque et prédéterminé.
L'étape suivante E101 est une initialisation pour considérer le
premier mode de codage Q1.
L'étape suivante E102 est le calcul et la mémorisation d'un coût de codage pour le bloc considéré, qui est une somme Rimn + 2.Dimn, o Ri,m, n est le débit nécessaire pour transmettre le bloc courant Bm,n codé par le premier mode de codage Qi, Dmn est l'erreur ou distorsion provoquée dans le bloc courant par le premier mode de 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-Z).R,im,n + X.Dl,m,n, avec le
coefficient X variant entre zéro et un.
Comme déjà précisé, le premier mode de codage d'un bloc cible est une mise à une valeur prédéterminée, par exemple zéro, de tous les coefficients du bloc. Il n'y a alors aucun symbole de codage, et par conséquent, dans ce cas particulier, le débit Rl,mn est nul, et la distorsion Dmn est égale à
l'écart quadratique du bloc avec le bloc nul.
A l'étape suivante E103, le mode de codage par prédiction interéchelle est considéré. Cette étape est décrite en référence à la figure 10, et a pour résultat la forme codée du bloc cible courant codé par le second mode
de codage. On utilise ici les valeurs courantes des paramètres PLOC et PAQ.
L'étape suivante E104 est le calcul et la mémorisation d'un coût de codage pour le bloc considéré, qui est une somme R2.mn +,.D2,mn, o R2,m, n est le débit nécessaire pour transmettre le bloc courant Bm,n codé par le second mode de codage Q2, D2,m,n est l'erreur ou distorsion provoquée dans le bloc courant par le second mode de codage, et X est un coefficient de réglage du
rapport compression/distorsion.
L'étape E104 est suivie de l'étape E105 à laquelle, pour chacun des blocs Bm,n, le minimum des sommes calculées aux étapes E102 et E104 est déterminé. Ce minimum correspond à l'un des modes de codage Qi qui est
alors attribué au bloc considéré Bmn.
Ainsi, un mode de codage a été attribué à chacun des blocs de la
sous-bande considérée.
L'étape E105 est suivie de l'étape E106 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 E106 est suivie de l'étape E107 pour considérer le
* bloc suivant. L'étape E107 est suivie de l'étape E101 précédemment décrite.
Lorsque la réponse est positive à l'étape E106, alors cette étape est suivie de l'étape E109, à laquelle tous les blocs auxquels a été affecté le mode de codage par prédiction interéchelle (étape E105) sont codés par ce mode de codage. Il est à noter que ce codage ne constitue pas la forme codée définitive des blocs considérés. Ces blocs forment un sous- ensemble de la sous-bande considérée. L'étape E109 est suivie par l'étape E110 à laquelle est calculé un codeur entropique en fonction des résultats statistiques du codage de l'étape E109. Ce codeur entropique dépend ainsi de l'ensemble des blocs auxquels a été attribué le mode de codage par prédiction interéchelle au passage
précédent par l'étape E108.
L'étape suivante E 111 est un test de convergence. Ce test consiste à vérifier si le même de mode de codage est attribué aux même blocs, au cours de plusieurs répétitions successives, par exemple deux, des étapes ElOO à El10. Tant que le test de convergence n'est pas positif, l'étape Elll est suivie de l'étape E100. Lorsque le test de convergence est positif, l'étape E111 est suivie de l'étape El 1. En variante, le test peut être une comparaison des codeurs entropiques. Le second mode de codage d'un bloc cible (étape E103) est détaillé
en référence à la figure 10 et comporte des sous-étapes E200 à E211.
Le second mode de codage d'un bloc cible comporte globalement la sélection d'un ensemble de blocs source en fonction de leur énergie, puis la détermination pour chacun des blocs source sélectionnés d'une transformation, 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 de bloc source et
transformation qui code le bloc cible avec la plus grande précision.
L'étape E200 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 E201 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 a la même taille que le bloc cible et est situé au même emplacement, au facteur de résolution près, que le bloc cible, chacun dans leur
sous-bande respective.
L'étape suivante E202 est le calcul de l'énergie du bloc source courant. Le calcul de l'énergie est effectué de manière classique, et est par
exemple la somme des carrés des coefficients du bloc.
L'étape E202 est suivie de l'étape E203 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. En effet, il a été constaté qu'un bloc source ayant une faible énergie fournirait un codage moins précis qu'un autre bloc source ayant une
énergie plus grande.
L'étape E203 est alors suivie de l'étape E204 à 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 comme illustré à la figure 12. Selon le mode de réalisation préférée, ils recouvrent sensiblement une ligne en spirale centrée sur le premier bloc source comme illustré à la figure 13. Les blocs source sont formés de manière à se recouvrir partiellement, par exemple sont décalés d'un coefficient entre un bloc source et le suivant. Selon d'autres réalisations, le décalage peut
être plus grand, ou les blocs source peuvent être adjacents.
Si à l'étape E203 I'énergie du bloc source considéré est supérieure au seuil SE, cette étape est suivie de l'étape E205 qui est un test pour déterminer si le compteur k a atteint une valeur limite prédéterminée, ici égale à 2PL C, o le paramètre PLOC représente le nombre de bits disponibles pour coder la valeur du compteur k. Le paramètre PLOC est initialisé à l'étape E8 et
mis à jourà l'étape E13.
Si la réponse est négative, l'étape E205 est suivie de l'étape E206 à 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 E207 est le calcul d'une transformation qui permet d'approximer le bloc cible Bmrn à partir du bloc source courant BSk. La transformation recherchée est du type: Bm,n = A.BSk, o A est un réel, et o Bmn et BSk sont les blocs cible et source considérés ici comme des vecteurs. Le
réel A est déterminé par un calcul vectoriel classique.
Le bloc source suivant est ensuite considéré à l'étape E209. Cette
étape est suivie de l'étape E202 précédemment décrite.
Lorsqu'à l'étape E205 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 E210 qui détermine quelle est la distorsion minimale parmi les 2PLOC distorsions Dk associées aux couples de transformations et blocs source. Cette distorsion minimale détermine le bloc source et la
transformation associée qui constituent la forme codée du bloc cible courant.
Cette forme codée est constituée du couple {k, A} et est mémorisée et/ou transmise. En variante, I'erreur de prédiction fait en outre partie de la forme codée du bloc cible courant, ce qui permet d'améliorer la qualité de l'image
reconstruite au décodage.
A l'étape suivante E211, le réel A est quantifié sur PAQ bits puis est codé de manière entropique.
L'étape E14 est maintenant détaillée en référence à la figure 11.
L'étape E14 est la formation du fichier compressé relatif à la sous- bande
courante. L'étape E14 comporte des étapes E140 à E148.
A l'étape E140, les valeurs des paramètres PLOC et PAQ pour la
sous-bande courante sont écrites dans le fichier compressé.
L'étape E141 est une intialisation à laquelle le premier bloc cible de
la sous-bande considérée est pris en compte.
L'étape E142 est un test pour déterminer quel mode de codage a été
sélectionné pour le bloc cible courant Bmn.
Si le mode de codage par mise à zéro est sélectionné pour le bloc courant Bm,n, alors l'étape E142 est suivie de l'étape E143 à laquelle l'indicateur
Im,n reçoit une valeur représentative du mode de codage par mise à zéro.
L'indicateur Imn constitue la forme codée du bloc considéré.
Si le bloc Bm,n doit être codé par la transformation {k, A} déterminée à l'étape E109, alors l'étape E142 est suivie de l'étape E144 qui est un codage
entropique du paramètre A quantifié en utilisant le paramètre PAQ.
L'étape suivante E145 est le codage de k sur PLOC bits.
A l'étape suivante E146 I'indicateur Irm,n reçoit une valeur
représentative du mode de codage par prédiction interéchelle.
L'étape suivante E147 est un test pour déterminer si le bloc cible qui vient d'être traité est le dernier de la sous-bande. Si ce n'est pas le cas, l'étape
E147 est suivie de l'étape E148 à laquelle le bloc cible suivant est considéré.
L'étape E148 est suivie de l'étape E141 précédemment décrite.
Lorsque tous les blocs cible ont été traités, alors l'étape E147 est
suivie de l'étape E15 précédemment décrite.
En référence à la figure 14, 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 à E35.
L'algorithme de décodage peut être mémorisé en totalité ou en partie dans tout moyen de stockage d'information capable de coopérer avec le microprocesseur. Ce moyen de stockage est lisible par un ordinateur ou par un microprocesseur. Ce moyen de stockage est intégré ou non au dispositif, et peut être amovible. Par exemple, il peut comporter une bande magnétique, une
disquette ou un CD-ROM (disque compact à mémoire figée).
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 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 E22 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 E22 est suivie de l'étape E23 à laquelle sont lues les valeurs des paramètres PLOC et PAQ pour la sous-bande courante, dans le fichier compressé. L'étape E23 est suivie de l'étape E24 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.
L'étape suivante E25 est la lecture de l'indicateur Im,,n du bloc courant. L'étape E25 est suivie de l'étape E26 qui est un test pour déterminer
quel mode de codage est indiqué par l'indicateur précédemment lu.
Si l'indicateur indique que le mode de codage est la mise à zéro, alors l'étape E26 est suivie de l'étape E27 qui est la formation d'un bloc dont tous les coefficients sont nuls. L'étape E27 est suivie de l'étape E30 qui est la
mémorisation du bloc décodé.
Si l'indicateur indique que le mode de codage est une transformation {k, A}, alors l'étape E26 est suivie de l'étape E28, qui est la lecture de la forme codée {k, A} du bloc courant pour déterminer quels sont le rang du bloc source
et la transformation qui ont été utilisés pour coder le bloc courant.
L'étape E28 est suivie de l'étape E29 qui est le décodage du bloc courant. Cette étape est détaillée dans la suite et a pour résultat un bloc décodé Bdm,n.
Le bloc décodé Bdm.n est mémorisé à l'étape suivante E30.
Les étapes E31 et E33 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 E31 est suivie par l'étape E32 pour considérer le bloc suivant.
L'étape E32 est suivie par l'étape E25 précédemment décrite.
S'il reste au moins une sous-bande à décoder, l'étape E33 est suivie par l'étape E34 pour considérer la sous-bande suivante. L'étape E34 est suivie
par l'étape E23 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 E33, cette dernière étape est suivie de l'étape E35 de synthèse de l'image décodée. Cette dernière peut ensuite être
visualisée, par exemple.
L'étape E29 de décodage d'un bloc d'une sous-bande de détail, dans le cas d'une transformation {k, A}, comporte des sous-étapes E290 à E298 et
est décrite en référence à la figure 15.
L'étape E290 est une initialisation d'un paramètre kl à zéro.
A l'étape suivante E291, 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 E292 est le calcul de l'énergie du bloc source courant. L'étape E292 est suivie de l'étape E293 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 E293 est suivie de l'étape E294 à laquelle le bloc source suivant est considéré. L'étape E294 est suivie de l'étape E292. Si, à l'étape E293, l'énergie du bloc source courant est supérieure au seuil SE, cette étape est suivie de l'étape E295 à laquelle le paramètre kl est
incrémenté de une unité.
L'étape suivante E296 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 E297 pour considérer le bloc source suivant. L'étape E297 est suivie de l'étape E292. Lorsqu'à l'étape E296 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 E298, ce qui forme le bloc
décodé Bdmn.
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.
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, l'analyse des signaux est réalisée selon des fréquences
temporelles ou spatiales.
Ces signaux peuvent être tri-dimensionnels 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 plusieurs composantes, tel qu'un signal d'image en couleur ayant des composantes rouge, verte et bleue, l'invention s'applique
pour chacune des composantes.

Claims (32)

REVENDICATIONS
1. Procédé de codage de signal numérique représentatif de grandeur physique, 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 résolutions différentes (RES1, RES2, RES3), au moins une première sous-bande ayant une résolution plus faible et au moins une seconde sousbande ayant une résolution plus élevée, caractérisé en ce qu'il comporte, pour chaque seconde sous-bande, les étapes de: - division (E6) de la seconde sous-bande en blocs cible (Bm,n), - sélection (Ell, E13), pour la seconde sous-bande, d'au moins un paramètre de codage (PLOC, PAQ) en fonction d'un premier critère de sélection,
- codage (E14) de chacun des blocs cible de la seconde sous-bande.
2. Procédé de codage selon la revendication 1, caractérisé en ce que le paramètre de codage (PLOC) est un nombre de bits utilisables, pour chacun des blocs cible, pour coder la position d'un bloc source sélectionné dans la
première sous-bande pour coder le bloc cible.
3. Procédé de codage selon la revendication 1, caractérisé en ce que
le paramètre de codage (PAQ) est un paramètre de quantification.
4. Procédé de codage selon l'une quelconque des revendications 1 à
3, caractérisé en ce que le premier critère de sélection est une minimisation du
rapport débit sur distorsion de la sous-bande considérée codée.
5. Procédé de codage selon l'une quelconque des revendications 1 à
4, caractérisé en ce qu'il comporte en outre l'attribution (El0) à chacun des
blocs cible d'un mode de codage, en fonction d'un premier critère d'attribution.
6. Procédé de codage selon l'une quelconque des revendications 1 à
4, caractérisé en ce que le mode de codage comporte, pour chaque seconde sous-bande, les étapes de: - sélection (E201, E202, E209), pour chacun des blocs cible, d'un nombre prédéterminé de blocs source (BSk) dans une première sous-bande, un bloc source étant sélectionné si son énergie est supérieure à un seuil prédéterminé, - attribution (E207) à chacun des blocs source sélectionnés à l'étape précédente, d'une transformation (A) dans un ensemble prédéterminé de transformations, en fonction d'un second critère d'attribution, - sélection (E210), pour chacun des blocs cible (Bmin), de l'un des blocs source sélectionnés (BSk), associé à la transformation (A) qui lui a été
attribuée à l'étape précédente, en fonction d'un second critère de sélection.
7. Procédé de codage selon la revendication 6, caractérisé en ce qu'à l'étape de sélection du nombre prédéterminé de blocs source, un premier bloc source est considéré (E201), ledit premier bloc source ayant une position, dans sa sous-bande de fréquence, identique à la position du bloc cible, dans sa
sous-bande de fréquence, au facteur de résolution près.
8. Procédé de codage selon la revendication 7, caractérisé en ce qu'à l'étape de sélection du nombre prédéterminé de blocs source, les blocs source (BSk) sont considérés selon un ordre tel que leur distance par rapport au
premier bloc source est sensiblement croissante.
9. Procédé de codage selon l'une quelconque des revendications 7 à
8, caractérisé en ce qu'à à l'étape de sélection du nombre prédéterminé de blocs source, les blocs source (BSk) sont considérés selon un ordre tel qu'ils
recouvrent une ligne en spirale centrée sur le premier bloc source.
10. Procédé de codage selon l'une quelconque des revendications 6
à 9, caractérisé en ce que le second critère d'attribution consiste à sélectionner, dans l'ensemble des transformations, la transformation (A) pour laquelle une distance entre le bloc cible (Bm,n) et le bloc résultant de l'application de ladite
transformation au bloc source considéré (BSk) est minimale.
11. Procédé de codage selon l'une quelconque des revendications 6
à 10, caractérisé en ce que le second critère de sélection consiste à sélectionner, parmi les blocs source sélectionnés, le bloc source (BSk) et la transformation (A) qui lui a été attribuée pour lesquels une distance entre le bloc cible et le bloc résultant de l'application de ladite transformation au bloc
source considéré est minimale.
12. Procédé de décodage d'un signal numérique codé par le procédé
selon l'une quelconque des revendications 1 à 11, caractérisé en ce qu'il
comporte, pour chaque seconde sous-bande, les étapes de: - lecture (E23) de la valeur de l'au moins un paramètre de codage, - décodage (E29) de chacun des blocs cibles de la seconde sous-
bande en fonction de la valeur lue.
13. Procédé de décodage d'un signal numérique codé par le procédé
selon l'une quelconque des revendications 6 à 11, caractérisé en ce qu'il
comporte, pour chaque bloc cible de chaque seconde sous-bande, les étapes de: - lecture (E28) de la valeur d'un rang (k) de bloc source et d'un indice de transformation, ledit bloc source et ladite transformation ayant été sélectionnés pour le bloc cible considéré, - sélection (E29) de blocs source, en nombre au moins égal à la valeur du rang précédemment lue, dans une sous-bande de résolution inférieure, un bloc source étant sélectionné si son énergie est supérieure à un seuil prédéterminé, - recherche (E29) du bloc source (BSk) dont le rang a la valeur précédemment lue, parmi les blocs source sélectionnés, - application (E29) de la transformation représentée par l'indice au
bloc source (BSk) dont le rang a la valeur précédemment lue.
14. Dispositif de codage de signal numérique représentatif de grandeur physique, 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 résolutions différentes (RES1, RES2, RES3), au moins une première sous-
bande ayant une résolution plus faible et au moins une seconde sous- bande ayant une résolution plus élevée, caractérisé en ce qu'il comporte: - des moyens de division (4) de chaque seconde sous-bande en blocs cible (Bm,n),
- des premiers moyens de sélection (5), pour la seconde sous-
bande, d'au moins un paramètre de codage en fonction d'un premier critère de sélection, - des moyens de codage de chacun des blocs cible de la seconde sous-bande.
15. Dispositif de codage selon la revendication 14, caractérisé en ce que les premiers moyens de sélection sont adaptés à sélectionner un paramètre de codage (PLOC) qui est un nombre de bits utilisables, pour chacun des blocs cible, pour coder la position d'un bloc source sélectionné dans la
première sous-bande pour coder le bloc cible.
16. Dispositif de codage selon la revendication 14, caractérisé en ce que les premiers moyens de sélection sont adaptés à sélectionner un
paramètre de codage (PAQ) qui est un paramètre de quantification.
17. Dispositif de codage selon l'une quelconque des revendications
14 à 15, caractérisé en ce que les premiers moyens de sélection sont adaptés à mettre en oeuvre un premier critère de sélection qui est une minimisation du
rapport débit sur distorsion de la sous-bande considérée codée.
18. Dispositif de codage selon l'une quelconque des revendications
14 à 17, caractérisé en ce qu'il comporte en outre des premiers moyens d'attribution d'un mode de codage à chacun des blocs cible, en fonction d'un
premier critère d'attribution.
19. Dispositif de codage selon l'une quelconque des revendications
14 à 17, caractérisé en ce que les moyens de codage comportent, pour chaque seconde sous-bande: - des deuxièmes moyens de sélection (5), pour chacun des blocs cible, d'un nombre prédéterminé de blocs source (BSk) dans une première sous-bande, un bloc source étant sélectionné si son énergie est supérieure à un seuil prédéterminé, - des seconds moyens d'attribution (5) à chacun des blocs source sélectionnés à l'étape précédente, d'une transformation (Tm) dans un ensemble prédéterminé de transformations, en fonction d'un second critère d'attribution, - des troisièmes moyens de sélection (5), pour chacun des blocs cible (Brn), de l'un des blocs source sélectionnés (BSk), associé à la transformation (Tm) qui lui a été attribuée à l'étape précédente, en fonction d'un
second critère de sélection.
20. Dispositif de codage selon la revendication 19, caractérisé en ce que les deuxièmes moyens de sélection du nombre prédéterminé de blocs source sont adaptés à considérer un premier bloc source, ledit premier bloc source ayant une position, dans sa sous-bande de fréquence, identique à la position du bloc cible, dans sa sous-bande de fréquence, au facteur de
résolution près.
21. Dispositif de codage selon la revendication 20, caractérisé en ce que les deuxièmes moyens de sélection du nombre prédéterminé de blocs source sont adaptés à considérer les blocs source (BSk) selon un ordre tel que
leur distance par rapport au premier bloc source est sensiblement croissante.
22. Dispositif de codage selon l'une quelconque des revendications
à 21, caractérisé en ce que les deuxièmes moyens de sélection du nombre prédéterminé de blocs source sont adaptés à considérer les blocs source (BSk) selon un ordre tel qu'ils recouvrent une ligne en spirale centrée sur le premier
bloc source.
23. Dispositif de codage selon l'une quelconque des revendications
19 à 22, caractérisé en ce qu'il est adapté à mettre en oeuvre un second critère d'attribution qui consiste à sélectionner, dans l'ensemble des transformations, la transformation (Tm) pour laquelle une distance entre le bloc cible (Bm,n) et le bloc résultant de l'application de ladite transformation au bloc source considéré
(BSk) est minimale.
24. Dispositif de codage selon l'une quelconque des revendications
19 à 23, caractérisé en ce qu'il est adapté à mettre en ceuvre un second critère de sélection qui consiste à sélectionner, parmi les blocs source sélectionnés, le bloc source (BSk) et la transformation (A) qui lui a été attribuée pour lesquels une distance entre le bloc cible et le bloc résultant de l'application de ladite
transformation au bloc source considéré est minimale.
25. Dispositif de codage selon la revendication 17, caractérisé en ce que les moyens de division, sélection et codage sont incorporés dans: - un micro-processeur, - 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.
26. Dispositif de décodage d'un signal numérique codé par le
dispositif selon l'une quelconque des revendications 14 à 26, caractérisé en ce
qu'il comporte: - des moyens de lecture de la valeur de l'au moins un paramètre de codage, pour chaque seconde sous-bande, - des moyens de décodage de chacun des blocs cible en fonction de
la valeur lue, pour chaque seconde sous-bande.
27. Dispositif de décodage d'un signal numérique codé par le
procédé selon l'une quelconque des revendications 19 à 25, caractérisé en ce
qu'il comporte: - des moyens de lecture de la valeur d'un rang (k) de bloc source et d'un indice (m) de transformation pour chaque bloc cible de chaque seconde sous-bande, ledit bloc source et ladite transformation ayant été sélectionnés pour le bloc cible considéré, - des moyens de sélection de blocs source, en nombre au moins égal à la valeur du rang précédemment lue, dans une sous-bande de résolution inférieure, un bloc source étant sélectionné si son énergie est supérieure à un seuil prédéterminé, - des moyens de recherche du bloc source (BSk) dont le rang a la valeur précédemment lue, parmi les blocs source sélectionnés, - des moyens d'application de la transformation (Tm) représentée par
l'indice au bloc source (BSk) dont le rang a la valeur précédemment lue.
28. Dispositif de décodage selon la revendication 27, caractérisé en ce que les moyens de lecture, de sélection, de recherche et d'application sont incorporés dans: - un micro-processeur, - 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.
29. 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 1 à 11.
30. 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 la revendication 12 ou 13.
31. 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 14 à 25.
32. 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 26 à 28.
FR9902955A 1999-03-10 1999-03-10 Codage et decodage de signal numerique Expired - Fee Related FR2790898B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9902955A FR2790898B1 (fr) 1999-03-10 1999-03-10 Codage et decodage de signal numerique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9902955A FR2790898B1 (fr) 1999-03-10 1999-03-10 Codage et decodage de signal numerique

Publications (2)

Publication Number Publication Date
FR2790898A1 true FR2790898A1 (fr) 2000-09-15
FR2790898B1 FR2790898B1 (fr) 2001-06-08

Family

ID=9543019

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9902955A Expired - Fee Related FR2790898B1 (fr) 1999-03-10 1999-03-10 Codage et decodage de signal numerique

Country Status (1)

Country Link
FR (1) FR2790898B1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0841818A1 (fr) * 1996-11-08 1998-05-13 Canon Kabushiki Kaisha Codage de signal numérique par décomposition en sous-bandes de fréquence et quantification vectorielle à états finis
EP0899960A2 (fr) * 1997-08-29 1999-03-03 Canon Kabushiki Kaisha Codage et décodage de signaux numériques

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0841818A1 (fr) * 1996-11-08 1998-05-13 Canon Kabushiki Kaisha Codage de signal numérique par décomposition en sous-bandes de fréquence et quantification vectorielle à états finis
EP0899960A2 (fr) * 1997-08-29 1999-03-03 Canon Kabushiki Kaisha Codage et décodage de signaux numériques

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WOODS J W ET AL: "SUBBAND CODING OF IMAGES", IEEE TRANSACTIONS ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING,US,IEEE INC. NEW YORK, vol. ASSP-34, no. 5, October 1986 (1986-10-01), pages 1278-1288, XP000619357 *

Also Published As

Publication number Publication date
FR2790898B1 (fr) 2001-06-08

Similar Documents

Publication Publication Date Title
FR2842983A1 (fr) Transcodage de donnees
FR2835366A1 (fr) Procede et dispositif de formation d'un signal numerique compresse reduit
FR2826823A1 (fr) Procede et dispositif de traitement d'un signal numerique code
FR2755818A1 (fr) Codage de signal numerique par decomposition en sous-bandes de frequence et quantification vectorielle a etats finis
FR2831728A1 (fr) Procede et dispositif de formation d'un signal numerique derive a partir d'un signal numerique compresse
FR2826227A1 (fr) Procede et dispositif de traitement d'un signal numerique code
FR2846835A1 (fr) Codage de donnees numeriques combinant plusieurs modes de codage
FR2792150A1 (fr) Procedes et dispositis de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
WO2011072893A1 (fr) Codage vidéo au moyen des flux de pixels
FR2825224A1 (fr) Procede et dispositif de compression et ou d'indexation d'images numeriques
FR2790898A1 (fr) Codage et decodage de signal numerique
FR2872972A1 (fr) Procede et dispositif de transmission video entre un serveur et un client
FR2767986A1 (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
FR2773927A1 (fr) Codage et decodage de signal numerique
WO2004039075A2 (fr) Desembrouillage adaptatif et progressif de flux audio
WO2018065687A1 (fr) Procede de codage d'une image, procede de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associes
EP1582022B1 (fr) Systeme d'embrouillage securise de flux audio
FR2773926A1 (fr) Dispositif et procede de codage de signal numerique
FR2801743A1 (fr) Codage et decodage de signal numerique
FR2778039A1 (fr) Codage et decodage de signal numerique
FR3054764A1 (fr) Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
FR2862450A1 (fr) Codage et decodage de signal numerique
FR2862449A1 (fr) Codage et decodage de signal numerique

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20141128