FR2875076A1 - Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes - Google Patents

Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes Download PDF

Info

Publication number
FR2875076A1
FR2875076A1 FR0409482A FR0409482A FR2875076A1 FR 2875076 A1 FR2875076 A1 FR 2875076A1 FR 0409482 A FR0409482 A FR 0409482A FR 0409482 A FR0409482 A FR 0409482A FR 2875076 A1 FR2875076 A1 FR 2875076A1
Authority
FR
France
Prior art keywords
coding
sample
decoding
mode
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.)
Granted
Application number
FR0409482A
Other languages
English (en)
Other versions
FR2875076B1 (fr
Inventor
Christophe Gisquet
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 FR0409482A priority Critical patent/FR2875076B1/fr
Priority to US11/219,733 priority patent/US7936938B2/en
Publication of FR2875076A1 publication Critical patent/FR2875076A1/fr
Application granted granted Critical
Publication of FR2875076B1 publication Critical patent/FR2875076B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

Un procédé pour coder un signal numérique d'image lequel comprend une pluralité d'échantillons, comprend les étapes suivantes appliquées lors du codage de chaque échantillon en vue de son stockage dans une mémoire tampon. Une première étape consiste à déterminer le taux d'occupation de la mémoire tampon. Une seconde étape consiste à comparer le taux d'occupation à un seuil prédéterminé. Une troisième étape consiste à déterminer un mode de codage parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé, et codage de l'échantillon courant selon le mode de codage déterminé. Enfin la quatrième étape consiste à coder ledit échantillon courant selon un mode de codage par défaut lorsque le taux d'occupation est inférieur au seuil prédéterminé. L'invention concerne également le procédé de décodage associé.

Description

La présente invention concerne un procédé et un dispositif de codage d'une image ainsi qu'un procédé et un dispositif de décodage d'une image codée.
La présente invention concerne de manière générale le codage et le décodage sans perte de signaux numériques d'entités multimédia, c'est-à-dire, de signaux numériques de texte, de voix et/ou d'image.
Une application privilégiée particulièrement intéressante, mais non exclusive, de la présente invention est le codage / décodage sans perte d'images numériques, par exemple dans le domaine de l'imagerie médicale.
Une image numérique provenant par exemple, d'un appareil photo numérique, est constituée d'un ensemble de N x M pixels, où N est la hauteur de l'image en pixels et M, la largeur de l'image. L'image ainsi obtenue est codée avant d'être stockée en mémoire. Les données initiales, c'est-à-dire l'information représentative des pixels de l'image, sont organisées en un tableau bidirectionnel accessible, par exemple, ligne à ligne.
Il est connu que les opérations de codage et de décodage d'images numériques nécessitent une capacité mémoire relativement élevée ainsi qu'un temps de traitement long.
Par ailleurs, la taille des données issues de ces opérations peut être relativement élevée ce qui a un impact direct sur la capacité de la ou des mémoires tampons nécessaires au stockage de ces données.
En effet, la ou les mémoires tampons ont pour rôle de mémoriser les données de longueur variable issues du dispositif de codage en vue de leur transport sur le bus de communication, ce dernier ayant une capacité de transport fixe et limité, par cycle d'horloge.
Or, le coût des mémoires tampons est généralement d'autant plus élevé que la capacité de stockage est grande.
Pour cette raison, de nombreuses études ont été menées depuis plusieurs années dans le but de minimiser l'impact du codage et du décodage sur la taille des données issues de ces opérations.
Ainsi, on connaît par exemple, d'après le brevet US 6,741,651, une méthode de codage d'une image dans un flux vidéo qui consiste à comparer la taille de l'image codée à un seuil prédéterminé. Si le seuil est dépassé, alors la méthode prévoit de remplacer cette image par un code représentant un indice d'image.
Toutefois, cette méthode présente l'inconvénient de réaliser un codage avec perte, ce qui n'est pas toujours acceptable.
Il serait par conséquent intéressant de pouvoir réguler le taux d'occupation d'une mémoire tampon servant au stockage de données codées, notamment, en réalisant un codage sans perte.
La présente invention vise en premier lieu à fournir un procédé de codage d'un signal numérique d'image comprenant une pluralité d'échantillons. Le procédé comprend les étapes suivantes appliquées lors du codage de chaque échantillon en vue de son stockage dans une mémoire tampon : - détermination du taux d'occupation de la mémoire tampon, - comparaison du taux d'occupation à un seuil prédéterminé, - détermination d'un mode de codage parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé, et codage de l'échantillon courant selon le mode de codage déterminé, - codage dudit échantillon courant selon un mode de codage par défaut lorsque le taux d'occupation est inférieur au seuil prédéterminé.
Ainsi, dans un premier temps, on détecte si la mémoire tampon recevant les données codées atteint un certain seuil de remplissage. Si ce taux de remplissage dépasse un seuil prédéterminé, l'invention prévoit de réduire la taille des données codées en entrée de la mémoire tampon. Pour cela, le mode de codage de l'échantillon courant est adapté afin de réduire la taille des données codées. L'adaptation se traduit ainsi par la détermination d'un mode de codage approprié.
Cependant, lorsque le taux d'occupation de la mémoire tampon est inférieur au seuil prédéterminé, le codage de l'échantillon courant est réalisé selon un mode de codage par défaut.
Selon ce procédé, le taux d'occupation maximal de la mémoire tampon est réduit et l'efficacité du codage est préservée.
Ainsi, la taille de la mémoire tampon peut être réduite de plus de la moitié, réduisant donc le coût de mise en oeuvre matérielle.
De plus, cette solution est compatible avec un système à flot continu, qui sont capables de traiter le signal sans interrompre l'envoi de données.
Selon autre caractéristique, le mode de codage déterminé est utilisé pour le codage d'un nombre prédéterminé d'échantillons suivant ledit échantillon courant.
En effet, lorsque le taux d'occupation de la mémoire tampon est supérieur au seuil prédéterminé, un mode de codage va être déterminé en vue de son application à un nombre déterminé d'échantillons, ceci afin de tenter de réduire le taux d'occupation de la mémoire tampon.
Selon une caractéristique additionnelle, le procédé comprend en outre une étape de simulation de codage dudit échantillon courant selon au moins un mode de codage différent du mode de codage déterminé parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé.
Parallèlement au codage de l'échantillon courant selon un mode de codage déterminé, le codage de cet échantillon courant selon au moins un autre mode de codage est simulé en vue d'évaluer le coût de codage induit par le mode de codage déterminé par rapport au coût induit par au moins un autre mode de codage.
Selon une caractéristique particulière, le procédé selon l'invention comprend une étape d'évaluation d'un coût de codage associé à chaque codage dudit échantillon courant selon le mode de codage déterminé et selon ledit au moins un autre mode de codage simulé.
Cette évaluation a pour but de déterminer le mode de codage générant a priori le moins d'éléments binaires parmi les résultats de codage et de simulation de codage obtenus avec les différents modes de codage utilisés.
Selon une caractéristique, la détermination d'un mode de codage d'au moins un échantillon à coder est fonction des coûts de codage évalués associés au codage d'au moins un échantillon précédant ledit au moins un échantillon à coder.
Ainsi, les coûts de codage, issus d'une part, du codage d'au moins un échantillon précédant ledit au moins un échantillon à coder et, d'autre part, de la simulation des codages dudit au moins un échantillon précédant ledit au moins un échantillon à coder, sont comparés en vue de déterminer le mode de codage le plus adapté pour réduire le taux d'occupation de la mémoire tampon.
Selon une caractéristique additionnelle, la détermination d'un mode de codage d'au moins un échantillon à coder comprend la sélection du mode de codage dont le coût de codage évalué, associé au codage dudit nombre prédéterminé d'échantillons précédant ledit au moins un échantillon à coder, est minimal.
Selon cette caractéristique, la détermination du prochain mode de codage est réalisée en fonction de l'évolution des coûts de codage, simulés ou non, concernant les échantillons précédents l'échantillon à coder.
Selon une caractéristique particulière, le procédé comprend en outre une étape d'association audit échantillon courant, d'une information représentative du mode de codage utilisé pour coder ledit échantillon courant.
En vue de simplifier le procédé de décodage associé au procédé de codage, une information est associée à l'échantillon courant à coder afin d'indiquer au procédé de décodage, le mode de codage utilisé.
Selon une variante, le procédé comprend en outre une étape d'association audit nombre prédéterminé d'échantillons, d'une information représentative du mode de codage déterminé pour coder ledit nombre prédéterminé d'échantillons.
En vue de simplifier le procédé de décodage associé au procédé de codage, une information est associée à un ensemble d'échantillons à coder afin d'indiquer au procédé de décodage, le mode de codage utilisé pour cet ensemble d'échantillons.
Selon un mode de réalisation particulier, la pluralité de modes de codage comprend un codage Rice-Golomb.
Selon un autre mode de réalisation particulier, la pluralité de modes de codage comprend un codage binaire.
Selon une caractéristique particulière, le mode de codage par défaut est un codage Rice-Golomb.
La présente invention a également pour but de fournir un procédé de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés. Le procédé comprend les étapes suivantes appliquées lors du décodage de chaque échantillon codé, ledit échantillon ayant été stocké dans une mémoire tampon après codage :- simulation du taux d'occupation de la mémoire tampon à l'issue de l'étape de codage de l'échantillon précédant l'échantillon courant, - comparaison du taux d'occupation simulé à un seuil prédéterminé, - détermination d'un mode de décodage parmi une pluralité de modes de décodage lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, et décodage dudit échantillon courant codé selon le mode de décodage déterminé, - décodage dudit échantillon courant codé selon un mode de décodage par défaut lorsque le taux d'occupation simulé est inférieur au seuil prédéterminé.
Le procédé de décodage selon l'invention s'appuie, dans un premier temps, sur la simulation du taux d'occupation de la mémoire tampon lorsque l'échantillon précédant l'échantillon courant a été codé. Si le taux d'occupation simulé est supérieur à un seuil prédéterminé, alors le procédé prévoit de déterminer un mode de décodage et de décoder ainsi cet échantillon courant, ce mode de décodage correspondant au mode de codage utilisé pour coder cet échantillon. Dans le cas contraire, c'est-à-dire lorsque le taux d'occupation simulé est inférieur au seuil prédéterminé, alors le décodage de l'échantillon courant est effectué selon le mode de décodage par défaut.
Le mode de codage de l'échantillon courant étant déterminé en fonction du taux d'occupation de la mémoire tampon, le décodage de cet échantillon codé est donc également fonction de ce taux d'occupation. Ainsi, pour déterminer le mode de codage adapté et donc par conséquent le mode de décodage adapté, il est nécessaire de simuler le taux d'occupation de la mémoire tampon lors du codage.
Selon une caractéristique, le mode de décodage déterminé est utilisé pour le décodage d'un nombre prédéterminé d'échantillons codés suivant ledit échantillon courant codé.
Lorsque le taux d'occupation simulé de la mémoire tampon est supérieur au seuil prédéterminé, le mode de décodage peut-être déterminé en vue de son application à un nombre déterminé d'échantillons codés. En effet, lors du processus de codage, le codage selon le mode de codage déterminé est réalisé sur un nombre déterminé d'échantillons. Le procédé de décodage doit donc également réaliser le décodage selon le mode de décodage déterminé sur le nombre déterminé d'échantillons.
Selon une caractéristique, lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, le procédé comprend en outre une étape de simulation de codage dudit échantillon courant décodé selon au moins un mode de codage choisi parmi une pluralité de modes de codage et différent du mode de codage utilisé pour coder ledit échantillon courant.
Ainsi, suite au décodage de l'échantillon courant codé selon un mode de décodage déterminé, on simule le codage de cet échantillon courant décodé selon au moins un autre mode de codage différent du mode de codage utilisé pour coder l'échantillon courant lors du processus de codage. Cette simulation a pour but de déterminer la longueur du code obtenu par codage selon au moins un autre mode de codage et donc le coût de codage associé.
Selon une caractéristique particulière, le procédé comprend une étape d'évaluation d'un coût de codage associé, d'une part, au codage dudit échantillon courant selon le mode de codage utilisé pour coder ledit échantillon courant et, d'autre part, à la simulation de codage dudit échantillon courant, selon ledit au moins un mode de codage choisi parmi une pluralité de modes de codage.
Cette simulation a pour but de déterminer le mode de codage utilisé lors du codage de l'échantillon suivant, et qui génère a priori le moins d'éléments binaires parmi les résultats de codage et de simulation de codage obtenus avec les différents modes de codage utilisés. On déduit le mode de décodage correspondant du mode de codage ainsi déterminé.
Selon une caractéristique, la détermination d'un mode de décodage d'au moins un échantillon à décoder est fonction des coûts de codage évalués associés au codage d'au moins un échantillon précédant ledit au moins un échantillon à décoder.
Ainsi, les coûts de codage, issus de la simulation des codages d'au moins un échantillon précédant ledit au moins un échantillon à décoder, sont comparés en vue de déterminer le mode de codage le plus adapté pour réduire le taux d'occupation de la mémoire tampon. On en déduit le mode de décodage à utiliser.
Selon une caractéristique, la détermination d'un mode de décodage d'au moins un échantillon à décoder comprend la sélection du mode de codage dont le coût de codage évalué associé audit nombre prédéterminé d'échantillons précédant ledit au moins un échantillon à décoder est minimal.
Selon cette caractéristique, la détermination du prochain mode de décodage est réalisée en fonction de l'évolution des coûts de codage simulés concernant les échantillons précédents l'échantillon à décoder.
Selon une autre caractéristique, le procédé comprend en outre une étape d'obtention d'une information représentative du mode de codage utilisé pour coder ledit échantillon courant, en vue de déterminer le mode de décodage dudit échantillon courant codé.
L'obtention de l'information représentative du mode de codage utilisé pour coder l'échantillon à décoder permet de réaliser immédiatement le décodage de cet échantillon, sans nécessiter un surcoût pour déterminer le codage effectué.
Selon une variante, le procédé comprend en outre une étape d'obtention d'une information représentative du mode de codage utilisé pour coder ledit nombre prédéterminé d'échantillons, en vue de déterminer le mode de décodage dudit nombre prédéterminé d'échantillons codés.
L'obtention de l'information représentative du mode de codage utilisé pour coder un ensemble d'échantillons à décoder permet de réaliser immédiatement le décodage de cet ensemble d'échantillons, sans nécessiter un surcoût pour déterminer le codage effectué.
Selon un mode de réalisation particulier, la pluralité de modes de décodage comprend un décodage Rice-Golomb.
Selon un autre mode de réalisation particulier, la pluralité de modes de décodage comprend un décodage binaire.
Selon une caractéristique particulière, le mode de décodage par défaut est un décodage Rice-Golomb.
Corrélativement, l'invention fournit également un dispositif de codage d'un signal numérique d'image comprenant une pluralité d'échantillons. Le dispositif comprend les moyens suivants appliqués sur des échantillons en vue de leur stockage dans une mémoire tampon : - des moyens de détermination du taux d'occupation de la mémoire tampon, - des moyens de comparaison du taux d'occupation à un seuil prédéterminé, - des moyens de détermination d'un mode de codage dudit au moins un échantillon courant parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé, et des moyens de codage dudit au moins un échantillon courant selon le mode de codage déterminé, - des moyens de codage dudit au moins un échantillon courant selon un mode de codage par défaut lorsque le taux d'occupation est inférieur au seuil prédéterminé.
Ce dispositif présente les mêmes avantages que le procédé de codage brièvement décrit ci-dessus.
La présente invention a également pour but de fournir un dispositif de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés. Le dispositif comprend des moyens suivants appliqués sur des échantillons codés, lesdits échantillons ayant été stockés dans une mémoire tampon après leur codage :- des moyens de simulation du taux d'occupation de la mémoire tampon à l'issue du codage de l'échantillon précédant ledit au moins un échantillon courant, - des moyens de comparaison du taux d'occupation simulé à un seuil prédéterminé, - des moyens de détermination d'un mode de décodage dudit au moins un échantillon courant codé parmi une pluralité de modes de décodage lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, et des moyens de décodage dudit au moins un échantillon courant codé selon le mode de décodage déterminé, - des moyens de décodage dudit au moins un échantillon courant codé selon un mode de décodage par défaut lorsque le taux d'occupation simulé est inférieur au seuil prédéterminé.
Ce dispositif présente les mêmes avantages que le procédé de décodage brièvement décrit ci-dessus.
Selon d'autres aspects, l'invention concerne aussi des dispositifs de traitement d'information aptes à fonctionner en tant que dispositifs de codage et de décodage de l'invention tels que décrits brièvement ci-dessus, un système de télécommunications, un dispositif de stockage d'entités multimédia, des supports d'information lisibles par un système informatique ainsi que des programmes d'ordinateur pour une mise en oeuvre des procédés de l'invention décrits brièvement ci-dessus.
D'autre aspects et avantages de la présente invention apparaîtront plus clairement à la lecture de la description des modes de réalisation qui va suivre, cette description étant donnée uniquement à titre d'exemple non limitatif et faite en référence aux dessins annexés, dans lesquels : - la figure 1 montre de manière simplifiée un processus de traitement d'images numériques dans lequel sont mis en oeuvre les procédés de codage / décodage selon l'invention ; - la figure 2 représente une grille dite de Bayer selon laquelle sont organisées les données initiales ; - la figure 3 représente de manière schématique un appareil de codage selon l'invention ; - la figure 4 est un algorithme d'un mode de réalisation du procédé de codage selon l'invention ; - la figure 5 est un exemple d'illustration de l'algorithme de codage selon l'invention ;- la figure 6 est un algorithme d'un mode de réalisation du procédé de décodage selon l'invention ; - la figure 7 est une variante de l'algorithme de codage de la figure 5 ; - la figure 8 est une variante de l'algorithme de décodage de la figure 6 ; - la figure 9 représente de manière schématique un appareil dans lequel est mis en u̇vre l'invention.
Les procédés et dispositifs de codage / décodage selon l'invention sont maintenant décrits dans le contexte de leur application à un traitement d'entités multimédia sous la forme d'images numériques.
En référence à la figure 1, un processus de traitement d'images numériques incorporant un traitement de codage / décodage sans perte selon l'invention fait intervenir un codeur 10, un réseau de transmission ou un dispositif de stockage 11 et un décodeur 12.
On notera ici que les procédés de codage / décodage selon l'invention trouvent une application particulièrement intéressante dans un système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications. Les procédés de codage / décodage selon l'invention sont alors mis en u̇vre dans les dispositifs terminaux du système de façon à autoriser une transmission de fichiers à travers le réseau de télécommunications et réduire ainsi le trafic et les temps de transmission.
Selon une autre application particulièrement intéressante, les procédés de codage / décodage selon l'invention sont mis en u̇vre dans un dispositif de stockage d'entités multimédia de façon à pouvoir stocker une grande quantité de données dans une unité de stockage.
Comme représenté à la figure 1, le codeur 10 comporte un dispositif de codage 100 selon l'invention et reçoit en entrée une image originale 10. L'image 10 est traitée par le codeur 10 qui délivre en sortie un fichier codé FC.
Le fichier codé FC est fourni au dispositif 11 par exemple pour être transmis à travers un réseau ou un moyen de transmission adapté ou pour être stocké dans une unité de stockage.
Le décodeur 12 comporte un dispositif de décodage 120 selon l'invention. Le décodeur 12 reçoit en entrée le fichier codé FC en provenance du dispositif 11 et fournit en sortie une image décodée ID sensiblement identique à l'image originale 10.
Généralement, les données initiales correspondant à l'image originale 10 sont organisées en un tableau bidimensionnel qui est accessible uniquement ligne à ligne.
Dans ce mode de réalisation, les données initiales sont, par exemple, représentées sur 10 bits et sont organisées selon une grille dite de Bayer, c'est-àdire selon une alternance sur une ligne de deux canaux. Un canal comprend l'ensemble des échantillons issus de l'image numérique et correspondant à une couleur. Les couleurs auxquelles il est fait appel sont généralement le rouge (R), le vert (G) et le bleu (B).
Un exemple de grille de Bayer est montré à la figure 2.
L'ordonnancement de la grille de Bayer implique une alternance régulière de lignes de type [RGRG...RG] et de lignes [GBGB...GB]. D'autres types d'entrelacement des canaux sont toutefois possibles dans des variantes de réalisation de l'invention.
Selon un schéma de fonctionnement de codage d'une image numérique, le codeur 10 est relié à un bus de communication 32 tel qu'illustré à la figure 3. Le bus de communication 32 permet de faire communiquer le codeur 10 avec différents éléments du dispositif auquel est associé le codeur, éléments qui seront détaillés en référence à la figure 9.
Etant donné la capacité de traitement du bus de communication 32 lors d'un cycle d'horloge, une mémoire tampon est insérée entre le codeur et de bus de communication.
En effet, le bus de communication 32 n'est capable, lors d'un cycle d'horloge, de transporter qu'un nombre déterminé d'éléments binaires issus du codeur 10. La mémoire tampon 30 insérée entre le codeur 10 et le bus de communication 32 mémorise ainsi temporairement les éléments binaires ne pouvant pas être transportés lors d'un cycle d'horloge par le bus de communication. Ces éléments binaires seront transportés par le bus de communication lors des cycles d'horloge suivants.
Selon un exemple donné, le bus de communication 32 est apte à traiter 12 éléments binaires. Comme représenté à la figure 3, lorsque le codeur 10 fournit en sortie 13 éléments binaires, seuls 12 éléments binaires peuvent être véhiculés lors d'un cycle d'horloge par le bus de communication 32. Afin de ne pas perdre l'élément binaire en sus des 12 premiers, celui-ci est mémorisé dans une mémoire tampon 30, tel qu'illustré à l'étape i+1 de la figure 3 par l'indication Occupation = 1 .
Ainsi, la présence de la mémoire tampon est due à la nécessaire adaptation du flot de données de longueur variable issu du codeur 10 à la capacité de traitement du bus de communication 32, ce dernier étant apte à lire un nombre fixe de données à une vitesse fixe.
Comme représenté à la figure 3, lors du cycle d'horloge suivant, illustré dans l'exemple par l'étape i + 1, le codeur 10 fournit en sortie 20 éléments binaires. Lors de ce cycle d'horloge, le bus de communication 32 va véhiculer l'élément binaire déjà présent au sein de la mémoire tampon 30 et 11 éléments binaires issus du codeur 10. Les éléments binaires au-delà des 11 premiers éléments binaires, c'est-à-dire les 9 éléments binaires suivant, sont mémorisés dans la mémoire tampon, tel qu'illustré à l'étape i+2 de la figure 3. Le taux d'occupation de la mémoire tampon est donc de 9 éléments binaires.
Ainsi le taux d'occupation de la mémoire tampon est augmenté du nombre d'éléments binaires issus du codeur duquel est retranchée la taille du bus de communication.
Les circuits de type mémoire, et en particulier ceux complexes tels que les mémoires tampons, sont particulièrement coûteux, comme décrit ciaprès, et l'invention permet justement de réduire la taille de ces mémoires tampons.
En référence à la figure 4, on décrit maintenant le procédé de codage d'image numérique selon l'invention mis en oeuvre dans le dispositif de codage 100 du codeur 10.
Dans ce mode de réalisation, l'image numérique est divisée en lignes de un échantillon, dans l'ordre de balayage naturel. Chaque ligne est ensuite divisée en une pluralité d'échantillons numériques.
Comme montré à la figure 4, le traitement du processus de codage, selon l'invention commence par l'initialisation d'un certain nombre de variables à l'étape E400.
Tout d'abord, la variable PANIC, représentant l'état d'occupation de la mémoire tampon, est initialisée à 0. Cette variable reflète également le statut selon lequel l'algorithme s'exécute. En effet, lorsque cette variable a pour valeur 0, alors le procédé de codage est en fonctionnement normal. Lorsque cette variable a la valeur 1, elle reflète un fonctionnement exceptionnel du procédé de codage, ce fonctionnement exceptionnel ayant pour but de tenter de réduire le taux d'occupation de la mémoire tampon.
Ainsi, la variable PANIC prend la valeur 0 lorsque le taux d'occupation de la mémoire tampon est faible et prend la valeur 1 lorsque le taux d'occupation de la mémoire tampon devient critique c'est-à-dire lorsque la mémoire tampon est en grande partie utilisée.
Par exemple, la variable PANIC prend la valeur 0 lorsque le taux d'occupation de la mémoire tampon est inférieur à un seuil prédéterminé, et la valeur 1, lorsque le taux d'occupation de la mémoire tampon est supérieur au seuil prédéterminé.
Ensuite, la variable Level, ayant pour but de mesurer le taux d'occupation de la mémoire tampon, est initialisée à 0.
La variable MODE identifie le mode de codage utilisé lorsque la variable PANIC a la valeur 1. Cette variable est initialisée à 0. La variable MODE identifie un mode de codage particulier parmi une pluralité de modes de codage possibles.
Par exemple, cette variable prend la valeur 0 pour identifier le codage Rice-Golomb et la valeur 1 pour identifier le codage binaire.
D'autres modes de codage peuvent également être utilisés, tel que le codage de Gray, de codage BCD ou le codage arithmétique.
Une variable n est également initialisée à 0. Cette variable comptabilise le nombre d'échantillons de l'image qui sont codés selon un même mode de codage, quand la variable PANIC a la valeur 1.
Enfin, la variable COST, correspondant au coût relatif du codage selon un premier mode de codage comparé au codage selon un second mode de codage, pour un même échantillon, est également initialisée à 0.
Par exemple, la variable COST indique le coût relatif du codage de Rice-Golomb comparé au codage binaire pour un même échantillon.
Selon une variante, le coût de codage est associé à chaque codage de l'échantillon selon les modes de codage utilisé ou simulé. Notamment si on dispose du choix entre plus de deux modes de codages, il est préférable d'associer une variable correspondant à chacun de ces modes de codage, afin de pouvoir ensuite comparer facilement leurs coûts.
L'étape E400 est suivie de l'étape E401 consistant à sélectionner le premier échantillon du signal de l'image numérique en vue de son codage.
Cette étape est suivie d'un premier test de vérification du statut selon lequel l'algorithme s'exécute (étape E402).
Si la variable PANIC a la valeur 0, alors l'algorithme s'exécute selon le mode de fonctionnement normal, et ainsi le mode de codage de l'échantillon courant est le mode de codage par défaut.
A titre d'exemple, ce mode de codage par défaut est le codage entropique de Rice-Golomb réalisé lors de l'étape E403.
L'échantillon courant va ainsi être codé selon le mode de codage par défaut c'est-à-dire un codage entropique de Rice-Golomb, décrit ci-après.
Si l'échantillon courant à coder est le premier échantillon, alors celuici est, par exemple, écrit sous sa forme binaire dans le flux de données. En effet, dans ce mode de réalisation, la valeur binaire du premier échantillon n'est pas décorrélée par une prédiction linéaire.
La forme binaire du premier échantillon est, par exemple, codée sur 12 éléments binaires.
Selon une variante, le premier échantillon peut être codé en utilisant le codage de Huffman, avec des codes prédéfinis. Toutefois, on notera que d'autres formes de codage peuvent être employées dans des variantes de réalisation.
Concernant les échantillons suivants, ils sont traités selon les étapes décrites ci-après.
Une première étape consiste en une étape de décorrélation de chaque canal par prédiction.
Par exemple, la décorrélation du signal consiste simplement en une décorrélation spatiale.
Plus particulièrement, la décorrélation est du type modèle autorégressif d'ordre 1. Ainsi, si les échantillons sont nommés X1, X2, ..., Xp, alors la valeur décorrélée Yi correspondant à l'échantillon Xi est :
Yi = Xi-Xi-1, i étant la position de Yi et de Xi dans l'image.
Ainsi, la valeur décorrélée Yi dépend de l'échantillon courant Xi et de l'échantillon précédent Xi-1.
Selon l'exemple précédemment défini, l'étape de décorrélation de chaque canal par prédiction peut conduire aux résultats suivants :
R'i = Ri - Ri-1 G'i = Gi - Gi-1 B'i = Bi - Bi-1 A l'issue de cette opération de décorrélation spatiale, la valeur décorrélée Yi est, par exemple, codée sur 13 éléments binaires.
Cependant, des schémas prédictifs plus complexes peuvent être envisagés.
Cette étape est suivie d'une étape consistant en un calcul de prédiction d'ordre pour les codes de Rice-Golomb.
Comme cela est connu dans le domaine du codage, les codes de Rice-Golomb forment une famille de codes à préfixe, qui sont dépendants d'un paramètre entier positif k, appelé aussi ordre . Ainsi, le codage de RiceGolomb d'une valeur décorrélée Yi est fonction d'un paramètre k. Le codage de Rice-Golomb est efficace si la valeur du paramètre k est optimale pour chaque échantillon à coder.
Il est connu que la valeur optimale de k est le nombre d'éléments binaires significatifs de Yi. Or, la valeur décorrélée Yi est inconnue puisqu'elle doit être décodée.
Une approche classique consiste à estimer la valeur de l'échantillon numérique à coder à partir de valeurs disponibles d'échantillons précédents du signal numérique à coder.
Ceci explique que le premier échantillon ne peut être codé de la sorte.
Ainsi, afin de déterminer au mieux la valeur décorrélée Y;, une estimation Zi de Y, à coder est réalisée. Des méthodes d'estimation de la valeur Z, par rapport à Yi sont connues de l'état de la technique.
Ainsi, l'ordre k à utiliser dans le codage de Rice-Golomb est déterminé en calculant le nombre d'éléments binaires significatif de Zi précédemment obtenu.
Ensuite, il est prévu de calculer le code de Rice-Golomb associé à la valeur décorrélée Y, et de le mettre en mémoire.
Il est connu de l'état de la technique qu'étant donné l'entier positif k visé ci-dessus, un code de Rice-Golomb est une succession d'éléments binaires composée des deux parties suivantes : - un préfixe qui est un code unaire représentant U = [Yi / 2k], avec L x J représentant la troncature à la partie entière de x. Ainsi, le préfixe est composé de U éléments binaires à 1 et d'un élément binaire à 0, représenté sous la forme (1)U0 ; et - un suffixe qui est une représentation binaire de la valeur (Yi - 2kU) codée sur k éléments binaires ; il s'agit du reste de la division entière de Y, par 2k.
Le code de Rice-Golomb de la valeur décorrélée Yi est donc calculé comme indiqué ci-dessus à partir du paramètre k déterminé précédemment. Le code de Rice-Golomb de Y, avec le paramètre k déterminé précédemment est inscrit dans le flot de données.
La longueur CodeLength du code est déterminée pour ensuite être utilisée lors de l'étape suivante E404. Cette étape a pour fonction de mettre à jour le taux d'occupation de la mémoire tampon représenté par la variable Level. Cette variable est mise à jour en l'augmentant de la valeur de CodeLength de laquelle est soustraite la taille du bus de communication 32.
La taille du bus de communication étant par exemple de 12, la variable Level est donc mise à jour en l'augmentant de la valeur de CodeLength moins la valeur 12.
L'étape E404 est suivie de l'étape E417 qui sera décrite plus loin.
De retour à l'étape E402, lorsque le résultat du test est positif, c'està-dire lorsque la valeur de la variable PANIC est à 1, signifiant que le taux d'occupation de la mémoire tampon a atteint un seuil d'occupation critique, l'algorithme se poursuit par l'étape suivante E405.
Au cours de l'étape E405, le mode de codage devant servir à coder l'échantillon courant est testé.
Par exemple, si la variable MODE a la valeur 0, alors l'échantillon courant subit un codage selon le codage Rice-Golomb (étape E408), sinon l'échantillon courant subit un codage selon le codage binaire (étape E406).
Consécutivement à l'étape E406 ou parallèlement à celle-ci, on effectue une simulation de codage de cet échantillon courant selon un codage Rice-Golomb (étape E406'), permettant de déterminer la longueur du code Rice-Golomb.
La longueur du code Rice-Golomb est utilisée ultérieurement (étape E410) afin d'évaluer le coût relatif aux deux modes de codage envisagés.
Cette simulation est effectuée en vue d'évaluer le coût du codage binaire relativement au coût simulé du codage Rice-Golomb, pour ensuite sélectionner parmi les deux modes de codage considéré, le mode de codage approprié permettant de réduire le taux d'occupation de la mémoire tampon sans toutefois perdre des données. Ce procédé a en effet pour but de réguler la quantité de données produites par le dispositif de codage et ainsi réduire la taille de la mémoire tampon.
On notera que l'on peut alternativement simuler le codage de l'échantillon courant selon deux modes de codage, voire davantage.
L'évolution du coût relatif va être étudiée afin de sélectionner le mode de codage approprié. Pour cela, l'étude de cette évolution va être effectuée sur un nombre déterminé d'échantillons à coder, cet ensemble d'échantillons étant appelé une fenêtre.
Selon un exemple de mise en oeuvre, la fenêtre comprend six échantillons. Cependant une autre taille peut être envisagée.
Cette notion de fenêtre n'est utilisée que dans le cas où la variable PANIC a la valeur 1, c'est-à-dire lorsque le taux d'occupation de la mémoire tampon a dépassé un seuil prédéterminé. Ainsi, les fenêtres n'ont pas de position prédéterminée dans le signal de l'image numérique.
Cette étape est suivie de l'étape E407 réalisant le calcul du taux d'occupation de la mémoire tampon.
Selon un mode de réalisation de l'invention, la variable Level est mise à jour en l'augmentant de la valeur b moins 12, 12 étant la taille du bus de communication mentionnée plus haut et b la taille du code binaire.
La valeur binaire de l'échantillon Xi est écrite sur b éléments binaires dans la mémoire tampon, b étant le nombre d'éléments binaires significatifs de l'échantillon. Ainsi, la variable Level est augmentée de b - 12 dans l'exemple considéré.
L'étape E407 est suivie de l'étape E410 qui sera décrite plus loin.
De retour à l'étape E405, lorsque la variable MODE prend la valeur 0, cette étape est suivie de l'étape E408, consistant à réaliser le codage de l'échantillon courant selon un codage Rice-Golomb.
Le codage Rice-Golomb est similaire au codage Rice-Golomb réalisé à l'étape E403, précédemment décrite.
De même qu'à l'étape E406, consécutivement à l'étape E408 ou parallèlement à celle-ci, on effectue une simulation de codage de cet échantillon courant selon un codage binaire permettant de déterminer la longueur du code (étape E408'). Étant donné que le codage binaire est de longueur fixe b, cette simulation est rendue optionnelle.
L'étape E408' est suivie de l'étape E409 consistant à déterminer le taux d'occupation de la mémoire tampon à l'issue du codage Rice-Golomb de l'échantillon courant.
Pour cela, la variable Level est augmentée de la longueur du code Rice-Golomb moins la taille du bus de communication, celui-ci transportant une partie des données issues du dispositif de codage.
L'étape E409 est suivie de l'étape E410 selon laquelle la variable COST est mise à jour en lui ajoutant la longueur du code Rice-Golomb, notée CodeLength, moins la longueur b du code binaire.
La variable COST correspond ainsi au coût relatif d'un code RiceGolomb comparé au code binaire pour le codage du même échantillon.
On notera que l'étape E407 décrite plus haut est également suivie de l'étape E410.
L'étape E410 est suivie de l'étape E411 consistant à incrémenter d'une unité la variable n représentative du nombre d'échantillons codés de la fenêtre courante (indice d'échantillons dans la fenêtre).
L'étape E412, faisant suite à l'étape E411, teste si l'ensemble des N échantillons de la fenêtre courante ont été codés.
Si tous les échantillons de la fenêtre n'ont pas été codés, alors l'étape suivante est l'étape E417 décrite plus loin.
Dans le cas contraire, on estime que suffisamment d'échantillons ont été codés et donc le mode de codage peut être réévalué.
A cet effet, l'étape E412 est suivie de l'étape E413 au cours de laquelle la variable COST est testée et le mode de codage réalisant un coût de codage minimal sur le nombre prédéterminé d'échantillons codés est retenu.
En effet, si la variable COST est supérieure à 0, c'est-à-dire que les codes de Rice-Golomb auraient produit plus d'éléments binaires que les codes binaires, alors les échantillons de la fenêtre suivante seront codés selon un codage binaire. Ces codages auront lieu sous réserve que le taux d'occupation de la mémoire tampon ne repasse pas sous la valeur de seuil prédéterminé.
Ainsi, à l'étape suivante E415, la variable MODE est positionnée à la valeur 1.
Dans le cas contraire, les échantillons de la fenêtre suivante seront codés selon le mode de codage Rice-Golomb. L'étape suivante E414 positionne donc la variable MODE à la valeur 0, cette dernière, étant représentative du mode de codage du prochain échantillon.
Selon la variante dans laquelle le coût de codage est associé à chaque codage de l'échantillon selon les modes de codage utilisé ou simulé, l'étape E413 consiste à comparer les coûts de codage associés d'une part, au codage de l'échantillon courant et, d'autre part, au codage selon le mode de codage simulé. De cette étape de comparaison, on en déduit le mode de codage à utiliser pour le codage du prochain échantillon à coder, qui correspond au mode dont le coût de codage est minimal.
Les étapes E414 et E415 sont suivies de l'étape E416 consistant à réinitialiser à 0 les variables n et COST. L'étape E416 est suivie de l'étape E417 consistant à vérifier si le taux d'occupation de la mémoire tampon est supérieur au seuil prédéterminé T.
Si la vérification est négative, alors, à l'étape suivante E418, la variable PANIC est positionnée à 0, indiquant par la même que le taux d'occupation de la mémoire tampon est inférieur au seuil prédéterminé. Cette étape est ensuite suivie de l'étape E421 qui sera décrite plus loin.
Si, au contraire, la vérification est positive, alors le statut représenté par la variable PANIC est testé lors de l'étape suivante E419.
Si la variable PANIC reflète un mode de fonctionnement normal alors l'étape E419 est suivie de l'étape E420 d'initialisation de différentes variables.
En effet, à l'étape E420, la variable PANIC est positionnée à 1, afin de mentionner que le taux d'occupation de la mémoire tampon a dépassé le seuil prédéterminé.
Ensuite les variables MODE, COST et n sont positionnées à 0.
Cette étape est ensuite suivie de l'étape E421 mentionnée ci-dessus.
De même, lorsque, à l'étape E419, la variable PANIC a la valeur 1, reflétant déjà le fait que le taux d'occupation de la mémoire tampon est supérieur au seuil prédéterminé, alors cette étape est suivie de l'étape E421.
L'étape E421 consiste à tester s'il reste des échantillons à coder dans l'image.
Dans la négative, il est mis fin à l'algorithme par l'étape E422.
Dans le cas contraire, à l'étape E423, l'échantillon suivant de l'image est sélectionné et devient le nouvel échantillon courant.
Selon le procédé de codage de l'invention, le taux d'occupation maximal de la mémoire tampon est réduit et l'efficacité du codage est préservée.
En effet, la mise en oeuvre de ce procédé présente l'avantage que la taille de la mémoire tampon peut être réduite de plus de la moitié. De plus, l'implémentation matérielle est simple et la solution est compatible avec un système à flot continu.
En référence à la figure 5, le procédé de codage d'images numériques selon l'invention est illustré selon un exemple donné.
Le tableau de la figure 5 contient sur la première ligne, l'indice i de l'échantillon, sur la seconde ligne, le taux d'occupation de la mémoire tampon en éléments binaires, sur la troisième ligne, la valeur de la variable PANIC, sur la quatrième ligne, la valeur de la variable MODE lorsque la variable PANIC a comme valeur 1, sur la cinquième ligne, la valeur de la variable COST, et enfin sur la sixième ligne sont représentées les fenêtres d'échantillons.
Selon l'exemple considéré, le seuil d'occupation de la mémoire tampon est fixé à T=56 éléments binaires.
Lors du codage des échantillons d'indice 10, 11 et 12, le taux d'occupation de la mémoire tampon est inférieur au seuil et le codage de ces échantillons est donc réalisé selon le mode de codage par défaut. Par exemple, le mode de codage par défaut est un codage Rice-Golomb.
Cependant, lors du codage de l'échantillon d'indice 13, on s'aperçoit que le taux d'occupation de la mémoire tampon est supérieur au seuil prédéterminé. La variable PANIC est donc positionnée à la valeur 1 et la variable MODE est positionnée à la valeur 0, cette dernière identifiant le mode de codage de l'échantillon courant selon le mode de codage Rice-Golomb. Ce mode de codage sera également utilisé pour le codage de la fenêtre courante composée, selon l'exemple, de six échantillons.
Parallèlement au codage de ces échantillons selon le codage RiceGolomb, le procédé selon l'invention prévoit de simuler le codage de ces échantillons selon au moins un second mode de codage, le codage binaire. À chaque étape de codage d'un échantillon, la variable COST est mise à jour afin de comparer les deux modes de codage. L'échantillon codé selon le mode de codage identifié par la variable MODE est inséré dans le flot des échantillons déjà codés de l'image.
La simulation du second codage, exécutée parallèlement ou consécutivement au premier codage, est réalisée dans le but de déterminer le mode de codage le plus adapté pour réduire le taux d'occupation de la mémoire tampon.
À l'issue du codage des échantillons d'indice 13 à 18, la variable COST étant négative, elle permet de déduire que le mode de codage selon le codage Rice-Golomb est plus efficace que le mode de codage selon le codage binaire. De plus, le niveau d'occupation observé de la mémoire tampon s'est vidé de deux éléments binaires entre l'échantillon d'indice 13 et l'échantillon d'indice 18.
A partir de cette observation de l'évolution du coût relatif entre les deux modes de codage, on en déduit le mode de codage du prochain échantillon à coder, à savoir l'échantillon d'indice 19. L'évolution du coût relatif entre les deux modes de codage est décroissante, ce qui signifie que le mode de codage précédemment utilisé est efficace. Le mode de codage de l'échantillon d'indice 19, identifié par la variable MODE, est donc inchangé et il s'agit du codage Rice-Golomb. Ce mode de codage, selon l'algorithme, sera utilisé pour la fenêtre de six échantillons allant de l'indice 19 à l'indice 24, à condition toutefois, que le niveau d'occupation de la mémoire tampon reste supérieur au seuil prédéterminé.
À l'issue du codage de l'échantillon d'indice 19, le taux d'occupation de la mémoire tampon passe de la valeur 58 à la valeur 53, valeur inférieure au seuil prédéterminé de valeur 56.
Le taux d'occupation de la mémoire tampon étant devenu normal, le codage de l'image revient sur un mode de codage par défaut, ce mode de codage par défaut étant, dans cet exemple d'implémentation, le codage RiceGolomb. La variable PANIC est donc positionnée à la valeur 0.
L'échantillon d'indice 20 est ensuite codé selon le mode de codage par défaut.
À l'issue du codage de l'échantillon d'indice 20, le taux d'occupation de la mémoire tampon passe de la valeur 53 à la valeur 66, et donc le seuil est dépassé.
La variable PANIC est alors positionnée à la valeur 1 et la variable MODE est initialisée à la valeur 0. Tel que décrit précédemment, l'échantillon d'indice 21, ainsi que les échantillons de la fenêtre courante allant de l'échantillon d'indice 21 à l'échantillon d'indice 26, sont codés selon le mode de codage Rice-Golomb.
De même, le codage de ces échantillons est simulé selon le mode de codage binaire afin d'évaluer le coût relatif entre les deux modes de codage.
À l'issue du codage de la fenêtre courante, on s'aperçoit que le coût de codage relatif est positif, signifiant par la même que le mode de codage binaire serait plus efficace que le mode de codage Rice-Golomb. En effet, on peut observer que le taux d'occupation de la mémoire tampon a continué de progresser au lieu de diminuer.
L'évolution du coût relatif entre les deux modes de codage étant croissante, le mode de codage précédemment utilisé est inefficace, et le mode de codage du nouvel échantillon d'indice 27, identifié par la variable MODE, doit donc être modifié.
Pour cela la variable MODE prend la valeur 1, identifiant ainsi dans l'exemple considéré, le codage binaire comme nouveau mode de codage.
Le nouveau mode de codage est donc appliqué à l'échantillon courant d'indice 27 ainsi que sur les cinq échantillons suivants, c'est-à-dire jusqu'à l'échantillon d'indice 32, non représenté sur la figure 5.
Parallèlement à ce codage, un codage selon le codage Rice-Golomb est simulé sur les échantillons précités permettant à chaque étape de déterminer le coût relatif entre les deux modes de codage.
À l'issue du codage de la fenêtre d'échantillons allant de l'indice 27 à l'indice 32, une nouvelle étude de l'évolution du coût relatif des deux modes de codage est effectuée afin de déterminer si le codage binaire semble approprié pour réduire le taux d'occupation de la mémoire tampon.
En référence à la figure 6, est maintenant décrit le procédé de décodage de l'image numérique codée selon l'invention et qui est mis en oeuvre dans le décodeur.
Le principe de ce procédé de décodage est basé sur une simulation du procédé de codage. En effet, la simulation du codage permet de posséder la même information au décodage de l'échantillon courant codé que lors du codage de l'échantillon.
Comme représenté à la figure 6, le traitement du processus de décodage selon l'invention commence par une étape d'initialisation d'un certain nombre de variables (étape E600).
Ainsi, l'étape E600 consiste à initialiser à 0 les variables suivantes : PANIC, MODE, COST, LEVEL et n.
Comme décrit précédemment, la variable PANIC prend par exemple, la valeur 0 lorsque le taux d'occupation de la mémoire tampon est inférieur à un seuil prédéterminé et la valeur 1 lorsque le taux d'occupation est supérieur au seuil prédéterminé.
La variable Level est représentative de la simulation du taux d'occupation de la mémoire tampon lorsque le processus de codage a été appliqué en vue de coder l'image. La variable MODE identifie un mode de décodage particulier parmi une pluralité de modes de décodage. Par exemple, la variable MODE prend la valeur 0 pour identifier le décodage Rice-Golomb et la valeur 1 pour identifier le décodage binaire.
La variable COST représente le coût relatif de la simulation du codage selon un premier mode de codage comparé à la simulation du codage selon un second mode de codage de l'échantillon courant codé ou des échantillons codés de la fenêtre courante.
Selon une variante, le coût de codage est associé à chaque mode de codage de l'échantillon, par exemple, un coût de codage est associé au codage de l'échantillon courant selon le mode de codage utilisé pour coder l'échantillon courant, et, un second coût de codage est associé à la simulation de codage de l'échantillon courant selon au moins un mode de codage choisi parmi une pluralité de modes de codage.
L'étape E601 est ensuite exécutée pour sélectionner le premier échantillon courant codé en vue de son décodage.
Cette étape est ensuite suivie d'un premier test de vérification du statut (E602) selon lequel le procédé selon l'invention est mis en oeuvre. Ce statut reflète l'état de la simulation du taux d'occupation de la mémoire tampon, et est représenté par la variable PANIC.
Si la variable PANIC à la valeur 0, alors la mémoire tampon simulée n'a pas atteint le seuil d'occupation critique et, donc, on en déduit que l'échantillon courant a été codé selon le mode de codage par défaut. Ainsi, le mode de décodage à appliquer en vue de décoder cet échantillon courant codé est le mode de décodage par défaut.
Comme précédemment défini pour le codage, le mode de décodage par défaut est le mode de décodage Rice-Golomb.
Le décodage entropique de l'échantillon courant codé est réalisé lors de l'étape E603.
L'étape de prédiction réalisée lors du codage est reproductible durant le décodage. Ceci effectué, on définit l'ordre k qui sera utilisé lors du décodage de Rice-Golomb comme le nombre d'éléments binaires significatifs de Zi.
Ensuite, l'échantillon courant codé est décodé selon le décodage Rice-Golomb à partir de l'ordre k obtenu.
La valeur de l'ordre k étant définie, il est possible de procéder au calcul de Y, suivant :
Yi = U x 2k, où U est le préfixe lu.
Ensuite, le procédé prévoit d'extraire du flux de données les k éléments binaires, ces k éléments binaires formant une représentation binaire B. La valeur correspondant à cette représentation binaire B est alors ajoutée à Yi. On obtient donc Yi de la manière suivante :

Ensuite, on effectue la re-corrélation afin de procéder au schéma inverse de celui décrit lors de l'étape de dé-corrélation, étape réalisée lors du codage.
Par exemple, un décodage autorégressif d'ordre 1 est réalisé de la manière suivante :

Selon l'exemple précédemment défini, l'étape de re-corrélation de chaque canal par prédiction peut prendre la forme suivante :
Ri = Estimation de Ri + Ri-1 Gi = Estimation de Gi + Gi-1 Bi = Estimation de Bi + Bi-1 Ensuite, la longueur CodeLength du code Rice-Golomb est déterminée pour être utilisée lors de l'étape suivante E604. Cette étape a pour fonction de mettre à jour la simulation du taux d'occupation de la mémoire tampon représentée par la variable Level. Cette variable est mise à jour en augmentant la variable Level de la valeur de CodeLength moins la taille du bus de communication 32.
Selon l'exemple précédemment considéré, la taille du bus de communication est de 12, ainsi la variable Level est donc mise à jour en l'augmentant de la valeur de CodeLength moins 12.
L'étape E604 est suivie de l'étape E617 qui sera décrite plus loin.
De retour à l'étape E602, lorsque la variable PANIC a la valeur 1, ce qui signifie que la simulation du taux d'occupation de la mémoire a atteint un seuil d'occupation critique, l'algorithme se poursuit à l'étape E605.
Au cours de cette étape, le mode de décodage devant servir à décoder l'échantillon courant codé est testé.
Si la variable MODE prend la valeur 0, alors l'échantillon courant codé subit un décodage selon le mode de décodage Rice-Golomb (étape E608), sinon l'échantillon courant codé subit un décodage selon le mode de décodage binaire (étape E606).
Suite à l'étape E606, on simule le codage de l'échantillon courant décodé selon le codage Rice-Golomb, (étape E606') pour déterminer la longueur du code Rice-Golomb.
La longueur du code Rice-Golomb est utilisée ultérieurement (étape E610) afin d'évaluer le coût relatif des deux modes de codage.
Lors du codage, afin de réguler la quantité de données produites par le dispositif de codage, ce dispositif tente de sélectionner un mode de codage adapté parmi une pluralité de modes de codage, afin de réduire le taux d'occupation de cette mémoire tampon sans toutefois perdre des données. Ainsi, lors du décodage, le dispositif de décodage détermine le mode de codage utilisé lors du processus de codage, afin d'exécuter le processus inverse en vue du décodage de l'échantillon courant codé.
L'étape E606' est suivie de l'étape E607 réalisant le calcul de la simulation du taux d'occupation de la mémoire tampon.
Dans l'exemple considéré, la variable Level est mise à jour en augmentant la variable Level de la valeur b moins 12, 12 étant la taille du bus de communication et b la taille du codage binaire.
Tel que décrit précédemment, la valeur binaire de l'échantillon Xi est écrite sur b éléments binaires. Ainsi, la variable Level est augmentée de la valeur b moins 12.
L'étape E607 est suivie de l'étape E610 qui sera décrite plus loin.
De retour à l'étape E605, lorsque la variable MODE prend la valeur 0, cette étape est suivie de l'étape E608 consistant à réaliser le décodage de l'échantillon courant codé selon un décodage Rice-Golomb.
Le décodage Rice-Golomb réalisé à l'étape E608 est similaire au décodage Rice-Golomb réalisé à l'étape E603 précédemment décrite.
De même qu'à l'étape E606, consécutivement à l'étape E608, on simule le codage de l'échantillon courant décodé selon le codage binaire permettant de déterminer la longueur du code (étape E608'). Etant donné que le codage binaire est de longueur fixe, cette simulation est rendue optionnelle.
L'étape E608' est suivie de l'étape E609 consistant à déterminer le taux d'occupation simulé de la mémoire tampon à l'issue de l'étape de codage de l'échantillon courant codé selon un codage Rice-Golomb lors du processus de codage.
Pour cela, la variable Level est augmentée de la longueur du code Rice-Golomb et diminuée de la taille du bus de communication, celui-ci transportant une partie des données issues du dispositif de codage.
L'étape E609 est suivie de l'étape E610 selon laquelle la variable COST est mise à jour en lui ajoutant la longueur du code Rice-Golomb, notée CodeLength, diminuée de la longueur du code binaire simulé.
La variable COST correspond ainsi au coût relatif d'un code de RiceGolomb comparé au code binaire simulé pour le codage du même échantillon.
L'étape E610 est ensuite suivie de l'étape E611 consistant à incrémenter d'une unité la variable n représentative du nombre d'échantillons décodés de la fenêtre courante.
L'étape suivante E612 prévoit de vérifier si l'ensemble des N échantillons de la fenêtre courante ont été décodés.
Si tous les échantillons de la fenêtre n'ont pas été décodés alors l'étape suivante est l'étape E617 qui sera décrite plus loin.
Dans le cas contraire, lors du processus de codage, il a été estimé que suffisamment d'échantillons ont été codés et, donc, le mode de codage peut-être réévalué. Le décodage doit déterminer la manière dont a été réévalué le mode de codage pour ensuite décoder l'échantillon codé suivant.
Pour cela, l'étape E612 est suivie de l'étape E613, consistant à tester la variable COST.
Si la variable COST est supérieure à 0, cela signifie que, lors du codage, les codes Rice-Golomb auraient produit plus d'éléments binaires que les codes binaires, et alors les échantillons de la fenêtre suivante ont été codés selon un codage binaire. Ainsi, on en déduit pour le processus de décodage, que les échantillons suivants doivent être décodés selon un décodage binaire.
Ainsi, à l'étape E615, la variable MODE est positionnée à la valeur 1 indiquant le mode de décodage du prochain échantillon codé.
Dans le cas contraire, les échantillons de la fenêtre suivante ont été codés selon le mode de codage Rice-Golomb et l'on en déduit que les échantillons de la fenêtre suivante doivent être décodés selon le mode de décodage Rice-Golomb. L'étape E614 positionnant la variable MODE à la valeur 0, indique le mode de décodage du prochain échantillon codé.
Selon la variante dans laquelle le coût de codage est associé à chaque mode de codage de l'échantillon, l'étape E613 consiste à comparer les coûts de codage associés d'une part, au codage de l'échantillon courant et, d'autre part, au codage selon le mode de codage simulé. Le mode de décodage à appliquer sur les échantillons suivants est le mode dont le coût de codage est minimal.
Les étapes E614 et E615 sont toutes deux suivies de l'étape E616 de remise à 0 des variables n et COST, la variable n servant d'indice d'échantillons codés dans la fenêtre courante, et la variable COST au calcul du coût de codage.
L'étape E616 est suivie de l'étape E617 consistant à vérifier si le taux d'occupation simulé de la mémoire tampon est supérieur ou non au seuil prédéterminé T.
Si la vérification est négative, alors la variable PANIC est positionnée à la valeur 0 à l'étape E618, indiquant par la même que le taux d'occupation simulé de la mémoire tampon est inférieur au seuil prédéterminé. Cette étape est ensuite suivie de l'étape E621 décrite plus loin.
Si la vérification est positive, alors le statut de la variable PANIC est testé lors de l'étape E619.
Si la variable PANIC reflète un mode de fonctionnement normal (PANIC = 0), alors l'étape E619 est suivie de l'étape E620 d'initialisation de différentes variables. La variable PANIC est positionnée à 1 afin d'indiquer que le taux d'occupation simulé a dépassé le seuil prédéterminé.
Ensuite, les variables MODE, COST et n sont positionnées à 0, et cette étape est suivie de l'étape E621.
De retour à l'étape E619, lorsque la variable PANIC a la valeur 1, ceci reflète le fait que le taux d'occupation simulé de la mémoire tampon est supérieur au seuil prédéterminé, et alors cette étape est suivie de l'étape E621 mentionnée ci-dessus.
L'étape E621 consiste à tester s'il reste des échantillons à décoder dans l'image.
Dans la négative, il est mis fin à l'algorithme par l'étape E622.
Dans le cas contraire, l'échantillon codé suivant de l'image est sélectionné, à l'étape E623.
Etant donné que lors du décodage, la simulation du dispositif de codage a un coût matériel, une variante peut être envisagée.
Selon cette variante, le dispositif de codage peut inscrire lors de l'écriture de l'échantillon codé, le mode de codage utilisé pour coder cet échantillon.
Sur la figure 7 illustrant cette variante, les étapes E700 à E723 sont similaires aux étapes E400 à E423, et les étapes E730, E731 et E732 sont rajoutées.
L'étape E730 teste la valeur de la variable n. Si cette valeur est différente de 0, alors, l'étape suivante est l'étape E705, Dans le cas contraire, c'est-à-dire l'échantillon courant est le premier échantillon de la fenêtre d'échantillons à coder, l'étape E730 est suivie de l'étape E731. Cette étape a pour rôle d'inscrire une information représentative du mode de codage, sur un élément binaire, cette information étant la valeur de la variable MODE. Cet élément binaire est associé, soit à l'échantillon à coder, soit à une fenêtre d'échantillons à coder.
L'étape E731 est suivie de l'étape E732 incrémentant de la valeur 1 la variable Level représentant l'élément binaire représentatif du mode de codage à insérer dans la mémoire tampon.
L'ajout de cette information occasionne la transmission d'éléments binaires supplémentaires, mais cependant, simplifie grandement le décodeur.
Le procédé de décodage correspondant est illustré à la figure 8.
Comme représenté à la figure 8, les étapes E800 à E823 sont similaires aux étapes E600 à E623, à l'exception des étapes E610, E613, E614 et E615 qui ne sont pas reprises. Les étapes E830, E831 et E832 correspondant aux étapes E730 à E732 sont ajoutées.
Lorsque la variable PANIC prend la valeur 1, à l'étape E802, cette étape est suivie de l'étape E830, consistant à tester la valeur de la variable n. Si cette valeur est différente de 0, alors, l'étape suivante est l'étape E805, Dans le cas contraire, c'est-à-dire l'échantillon courant codé à décoder est le premier échantillon de la fenêtre d'échantillons à décoder, l'étape E830 est suivie de l'étape E831 consistant à lire l'information représentative du mode de codage de l'échantillon suivant codé ou de la fenêtre d'échantillons suivants codés, cette information étant codée sur un élément binaire. L'étape E831 est suivie de l'étape E832 incrémentant de la valeur 1, la variable Level cette valeur étant l'élément binaire représentatif du mode de codage inséré dans la mémoire tampon lors du processus de codage.
Ainsi dans ce mode de mise en oeuvre le décodage est largement simplifié, au prix d'un surcroît d'éléments binaires transmis dans le fichier codé.
En référence à la figure 9, il est décrit un dispositif apte à la mise en u̇vre de l'invention.
Le dispositif de la figure 9 possède l'ensemble des moyens nécessaires à la mise en oeuvre d'exemples de réalisation de l'invention.
En référence à la figure 9, un dispositif ou machine de traitement d'information apte à fonctionner en tant que dispositif de codage de signal numérique d'entité multimédia et/ou dispositif d'accès et de décodage de signal numérique d'entité multimédia selon l'invention est maintenant décrit essentiellement dans sa configuration matérielle.
Le dispositif de traitement d'information autorise une mise en u̇vre du procédé de codage de signal numérique d'entité multimédia et/ou du procédé d'accès et de décodage de signal numérique d'entité multimédia selon l'invention. Plus précisément, un tel dispositif de traitement d'information est susceptible de contenir l'ensemble, ou seulement une partie, des procédés selon l'invention décrits dans la présente demande.
Selon le mode de réalisation choisi, ce dispositif peut être par exemple un micro-ordinateur 900 connecté à différentes périphériques, par exemple, une caméra numérique 907 (ou un scanner, ou tout autre moyen d'acquisition ou de stockage d'image) reliée à une carte graphique et fournissant ainsi les informations à traiter selon l'invention.
Le micro-ordinateur 900 comporte de préférence une interface de communication 912 reliée à un réseau 913 apte à transmettre des informations numériques. Le micro-ordinateur 90 comporte également un moyen de stockage 908, tel que par exemple un disque dur, ainsi qu'un lecteur de disquette 909.
La disquette 910 comme le disque 908 peuvent contenir des données d'implantation logicielle de l'invention ainsi que le code de l'invention qui, une fois lu par le micro-ordinateur 900, sera stocké dans le disque dur 908.
Selon une variante, le ou les programmes permettant au dispositif 90 de mettre en oeuvre l'invention sont stockés dans une mémoire morte ROM 902, et il en est de même pour les méthodes de codage décodage.
Comme autre variante, le ou les programmes sont reçus totalement ou partiellement à travers le réseau de communication 913 pour être stockés de manière identique à celle décrite ci-dessus.
Le micro-ordinateur 900 peut également être relié à un microphone 911 par l'intermédiaire d'une carte d'entrée/sortie (non représentée). Le microphone 911 est utile notamment lorsque les données à traiter conformément aux procédés de l'invention sont des données audio.
Le micro-ordinateur 900 comprend également un écran 904 pour visualiser les informations à traiter et/ou servir d'interface avec l'utilisateur, afin que l'utilisateur puisse par exemple paramétrer certains modes de traitement à l'aide du clavier 914 ou de tout autre moyen, une souris, par exemple.
L'unité centrale CPU 920 exécute les instructions relatives à la mise en oeuvre de l'invention, ces instructions étant stockées dans la mémoire morte ROM 902 ou dans les autres éléments de stockage décrits.
Lors de la mise sous tension, les programmes et méthodes de traitement stockés dans une des mémoires non-volatiles, par exemple la ROM 902, sont transférés dans la mémoire vive RAM 903 qui contiendra alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en oeuvre de l'invention.
En variante, les méthodes de traitement peuvent être stockées dans différents emplacements de stockage du dispositif 900. De manière générale, 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 u̇vre le procédé d'accès, de codage et respectivement de décodage. Il sera aussi possible de modifier un mode de réalisation de l'invention, par exemple, vers un mode plus perfectionné, en ajoutant des méthodes de traitement actualisées ou améliorées qui sont transmises par le réseau de communication 913 ou chargées par l'intermédiaire d'une ou plusieurs disquettes 910. Bien entendu, les disquettes 910 peuvent être remplacées par tout support d'information tel que CD-ROM ou carte mémoire.
Un bus de communication 901 permet la communication entre les différents éléments du micro-ordinateur 900 et les éléments reliés à celui-ci. On notera que la représentation du bus 901 n'est pas limitative. En effet, l'unité centrale CPU 920 est par exemple susceptible de communiquer des instructions à tout élément du micro-ordinateur 900, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 900.
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.
Revendications 1. Procédé de codage d'un signal numérique d'image comprenant une pluralité d'échantillons, caractérisé en ce que le procédé comprend les étapes suivantes, appliquées lors du codage de chaque échantillon en vue de son stockage dans une mémoire tampon : - détermination du taux d'occupation de la mémoire tampon, - comparaison du taux d'occupation à un seuil prédéterminé, - détermination d'un mode de codage parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé, et codage de l'échantillon courant selon le mode de codage déterminé, - codage dudit échantillon courant selon un mode de codage par défaut lorsque le taux d'occupation est inférieur au seuil prédéterminé.

Claims (21)

  1. 2. Procédé selon la revendication 1, caractérisé en ce que le mode de codage déterminé est utilisé pour le codage d'un nombre prédéterminé d'échantillons suivant ledit échantillon courant.
  2. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le procédé comprend en outre une étape de simulation de codage dudit échantillon courant selon au moins un mode de codage différent du mode de codage déterminé parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé.
  3. 4. Procédé selon la revendication 3, caractérisé en ce que le procédé comprend une étape d'évaluation d'un coût de codage associé à chaque codage dudit échantillon courant selon le mode de codage déterminé et selon ledit au moins un autre mode de codage simulé.
    5. Procédé selon la revendication 4, caractérisé en ce que la détermination d'un mode de codage d'au moins un échantillon à coder est fonction des coûts de codage évalués associés au codage d'au moins un échantillon précédant ledit au moins un échantillon à coder.
  4. 6. Procédé selon les revendications 2 et 5, caractérisé en ce que la détermination d'un mode de codage d'au moins un échantillon à coder comprend la sélection du mode de codage dont le coût de codage évalué, associé au codage dudit nombre prédéterminé d'échantillons précédant ledit au moins un échantillon à coder, est minimal.
    7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une étape d'association audit échantillon courant, d'une information représentative du mode de codage utilisé pour coder ledit échantillon courant.
  5. 8. Procédé selon la revendication 2 et l'une quelconque des revendications 3 à 6, caractérisé en ce qu'il comprend en outre une étape d'association audit nombre prédéterminé d'échantillons, d'une information représentative du mode de codage déterminé pour coder ledit nombre prédéterminé d'échantillons.
  6. 9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la pluralité de modes de codage comprend un codage Rice-Golomb.
    10. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la pluralité de modes de codage comprend un codage binaire.
  7. 11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le mode de codage par défaut est un codage Rice-Golomb.
    12. Procédé de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés, caractérisé en ce que le procédé comprend les étapes suivantes appliquées lors du décodage de chaque échantillon codé, ledit échantillon ayant été stocké dans une mémoire tampon après codage :
    - simulation du taux d'occupation de la mémoire tampon à l'issue de l'étape de codage de l'échantillon précédant l'échantillon courant,
    - comparaison du taux d'occupation simulé à un seuil prédéterminé,
    - détermination d'un mode de décodage parmi une pluralité de modes de décodage lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, et décodage dudit échantillon courant codé selon le mode de décodage déterminé,
    - décodage dudit échantillon courant codé selon un mode de décodage par défaut lorsque le taux d'occupation simulé est inférieur au seuil prédéterminé.
  8. 13. Procédé selon la revendication 12, caractérisé en ce que le mode de décodage déterminé est utilisé pour le décodage d'un nombre prédéterminé d'échantillons codés suivant ledit échantillon courant codé.
    14. Procédé selon la revendication 12 ou 13, caractérisé en ce que, lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, le procédé comprend en outre une étape de simulation de codage dudit échantillon courant décodé selon au moins un mode de codage choisi parmi une pluralité de modes de codage et différent du mode de codage utilisé pour coder ledit échantillon courant.
  9. 15. Procédé selon la revendication 14, caractérisé en ce que le procédé comprend une étape d'évaluation d'un coût de codage associé, d'une part, au codage dudit échantillon courant selon le mode de codage utilisé pour coder ledit échantillon courant et, d'autre part, à la simulation de codage dudit échantillon courant, selon ledit au moins un mode de codage choisi parmi une pluralité de modes de codage.
    16. Procédé selon la revendication 15, caractérisé en ce que la détermination d'un mode de décodage d'au moins un échantillon à décoder est fonction des coûts de codage évalués associés au codage d'au moins un échantillon précédant ledit au moins un échantillon à décoder.
  10. 17. Procédé selon la revendication 13 et 16, caractérisé en ce que la détermination d'un mode de décodage d'au moins un échantillon à décoder comprend la sélection du mode de codage dont le coût de codage évalué associé audit nombre prédéterminé d'échantillons précédant ledit au moins un échantillon à décoder est minimal.
    18. Procédé selon la revendication 12 ou 13, caractérisé en ce qu'il comprend en outre une étape d'obtention d'une information représentative du mode de codage utilisé pour coder ledit échantillon courant, en vue de déterminer le mode de décodage dudit échantillon courant codé.
  11. 19. Procédé selon la revendication 13, caractérisé en ce qu'il comprend en outre une étape d'obtention d'une information représentative du mode de codage utilisé pour coder ledit nombre prédéterminé d'échantillons, en vue de déterminer le mode de décodage dudit nombre prédéterminé d'échantillons codés.
  12. 20. Procédé selon l'une quelconque des revendications 12 à 19, caractérisé en ce que la pluralité de modes de décodage comprend un décodage Rice-Golomb.
    21. Procédé selon l'une quelconque des revendications 12 à 20, caractérisé en ce que la pluralité de modes de décodage comprend un décodage binaire.
  13. 22. Procédé selon l'une quelconque des revendications 12 à 21, caractérisé en ce que le mode de décodage par défaut est un décodage RiceGolomb.
    23. Dispositif de codage d'un signal numérique d'image comprenant une pluralité d'échantillons, caractérisé en ce que le dispositif comprend les moyens suivants appliqués lors du codage de chaque échantillon en vue de son stockage dans une mémoire tampon :
    - des moyens de détermination du taux d'occupation de la mémoire tampon,
    - des moyens de comparaison du taux d'occupation à un seuil prédéterminé,
    - des moyens de détermination d'un mode de codage parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé, et des moyens de codage de l'échantillon courant selon le mode de codage déterminé,
    - des moyens de codage dudit échantillon courant selon un mode de codage par défaut lorsque le taux d'occupation est inférieur au seuil prédéterminé.
    24. Dispositif selon la revendication 23, caractérisé en ce que le mode de codage déterminé est utilisé pour le codage d'un nombre prédéterminé d'échantillons suivant ledit échantillon courant.
  14. 25. Dispositif selon la revendication 23 ou 24, caractérisé en ce que le dispositif comprend en outre des moyens de simulation de codage dudit échantillon courant selon au moins un mode de codage différent du mode de codage déterminé parmi une pluralité de modes de codage lorsque le taux d'occupation est supérieur au seuil prédéterminé.
  15. 26. Dispositif selon la revendication 25, caractérisé en ce que le dispositif comprend des moyens d'évaluation d'un coût de codage associé à chaque codage dudit échantillon courant selon le mode de codage déterminé et selon ledit au moins un autre mode de codage simulé.
    27. Dispositif selon la revendication 26, caractérisé en ce que les moyens de détermination d'un mode de codage d'au moins un échantillon à coder sont aptes à déterminer le mode de codage en fonction des coûts de codage évalués associés au codage d'au moins un échantillon précédant ledit au moins un échantillon à coder.
  16. 28. Dispositif selon la revendication 24 et 27, caractérisé en ce que les moyens de détermination d'un mode de codage d'au moins un échantillon à coder sont aptes à sélectionner le mode de codage dont le coût de codage évalué associé au codage dudit nombre prédéterminé d'échantillons précédent ledit au moins un échantillon à coder est minimal.
    29. Dispositif selon l'une quelconque des revendications 23 à 28, caractérisé en ce qu'il comprend en outre des moyens d'association audit échantillon courant, d'une information représentative du mode de codage utilisé pour coder ledit échantillon courant.
  17. 30. Dispositif selon la revendication 24 et l'une quelconque des revendications 25 à 28, caractérisé en ce qu'il comprend en outre des moyens d'association audit nombre prédéterminé d'échantillons, d'une information représentative du mode de codage déterminé pour coder ledit nombre prédéterminé d'échantillons.
    31. Dispositif de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés, caractérisé en ce que le dispositif comprend les moyens suivants appliqués au décodage de chaque échantillon codé, ledit échantillon ayant été stocké dans une mémoire tampon après son codage :
    - des moyens de simulation du taux d'occupation de la mémoire tampon à l'issue du codage de l'échantillon précédant l'échantillon courant,
    - des moyens de comparaison du taux d'occupation simulé à un seuil prédéterminé,
    - des moyens de détermination d'un mode de décodage parmi une pluralité de modes de décodage lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, et des moyens de décodage dudit échantillon courant codé selon le mode de décodage déterminé,
    - des moyens de décodage dudit échantillon courant codé selon un mode de décodage par défaut lorsque le taux d'occupation simulé est inférieur au seuil prédéterminé.
    32. Dispositif selon la revendication 31, caractérisé en ce que le mode de décodage déterminé est utilisé pour le décodage d'un nombre prédéterminé d'échantillons codés suivant ledit a échantillon courant codé.
  18. 33. Dispositif selon la revendication 31 ou 32, caractérisé en ce que, lorsque le taux d'occupation simulé est supérieur au seuil prédéterminé, le dispositif comprend en outre des moyens de simulation de codage dudit échantillon courant décodé selon au moins un mode de codage choisi parmi une pluralité de modes de codage et différent du mode de codage utilisé pour coder ledit échantillon courant.
    34. Dispositif selon la revendication 33, caractérisé en ce que les moyens de détermination d'un mode de décodage d'au moins un échantillon à décoder sont aptes à déterminer le mode de décodage en fonction des coûts de codage évalués associés au codage d'au moins un échantillon précédant ledit au moins un échantillon à coder.
  19. 35. Dispositif selon la revendication 32 et 34, caractérisé en ce que les moyens de détermination d'un mode de décodage d'au moins un prochain échantillon à décoder sont aptes à sélectionner le mode de décodage dont le coût de codage évalué associé au codage dudit nombre prédéterminé d'échantillons précédant ledit au moins un prochain échantillon à décoder est minimal.
    36. Dispositif selon la revendication 31 ou 32, caractérisé en ce qu'il comprend en outre des moyens d'obtention d'une information représentative du mode de codage utilisé pour coder ledit échantillon courant, en vue de déterminer le mode de décodage dudit échantillon courant codé.
  20. 37. Dispositif selon la revendication 36, caractérisé en ce qu'il comprend en outre des moyens d'obtention d'une information représentative du mode de codage utilisé pour coder ledit nombre prédéterminé d'échantillons, en vue de déterminer le mode de décodage dudit nombre prédéterminé d'échantillons codés.
    38. Système de télécommunications comprenant une pluralité de dispositifs terminaux reliés à travers un réseau de télécommunications, caractérisé en ce qu'il comprend au moins un dispositif terminal équipé d'un dispositif de codage d'un signal numérique d'image comprenant une pluralité d'échantillons selon l'une quelconque des revendications 23 à 30 et/ou au moins un dispositif terminal équipé d'un dispositif de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés selon l'une quelconque des revendications 31 à 37.
    39. Dispositif de stockage d'entités multimédia, caractérisé en ce qu'il comprend au moins un dispositif de codage d'un signal numérique d'image comprenant une pluralité d'échantillons selon l'une quelconque des revendications 23 à 30 et/ou au moins d'un dispositif de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés selon l'une quelconque des revendications 31 à 37.
    40. Support d'informations lisible par un système informatique, éventuellement totalement ou partiellement amovible, notamment CD-ROM ou support magnétique, tel un disque dur ou une disquette, ou support transmissible tel un signal électrique ou optique, ce support d'informations comprenant des instructions d'un programme d'ordinateur permettant la mise en oeuvre du procédé de codage d'un signal numérique d'image comprenant une pluralité d'échantillons selon l'une quelconque des revendications 1 à 11, lorsque ce programme est chargé et exécuté par un système informatique.
    41. Support d'informations lisible par un système informatique, éventuellement totalement ou partiellement amovible, notamment CD-ROM ou support magnétique, tel un disque dur ou une disquette, ou support transmissible tel un signal électrique ou optique, ce support d'informations comprenant des instructions d'un programme d'ordinateur permettant la mise en u̇vre du procédé de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés selon l'une quelconque des revendications 12 à 22, lorsque ce programme est chargé et exécuté par un système informatique.
    42. Programme d'ordinateur stocké sur un support d'informations, ledit programme contenant des instructions permettant la mise en u̇vre du procédé de codage d'un signal numérique d'image comprenant une pluralité d'échantillons selon l'une quelconque des revendications 1 à 11, lorsque ce programme est chargé et exécuté par un système informatique.
  21. 43. Programme d'ordinateur stocké sur un support d'informations, ledit programme contenant des instructions permettant la mise en u̇vre du procédé de décodage d'un signal numérique d'image codé comprenant une pluralité d'échantillons codés selon l'une quelconque des revendications 12 à
    22, lorsque ce programme est chargé et exécuté par un système informatique.
FR0409482A 2004-09-07 2004-09-07 Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes Expired - Fee Related FR2875076B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0409482A FR2875076B1 (fr) 2004-09-07 2004-09-07 Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes
US11/219,733 US7936938B2 (en) 2004-09-07 2005-09-07 Methods and devices for encoding a digital image signal and associated decoding methods and devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0409482A FR2875076B1 (fr) 2004-09-07 2004-09-07 Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes

Publications (2)

Publication Number Publication Date
FR2875076A1 true FR2875076A1 (fr) 2006-03-10
FR2875076B1 FR2875076B1 (fr) 2007-02-02

Family

ID=34948333

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0409482A Expired - Fee Related FR2875076B1 (fr) 2004-09-07 2004-09-07 Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes

Country Status (1)

Country Link
FR (1) FR2875076B1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2691272A1 (fr) * 1992-05-15 1993-11-19 Thomson Csf Procédé de codage d'images très bas débit et dispositif de codage mettant en Óoeuvre ce procédé.
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
EP0680221A2 (fr) * 1994-03-30 1995-11-02 Sony Corporation Quantification de données d'image dans une compression d'images
EP1237378A2 (fr) * 2001-02-28 2002-09-04 Kabushiki Kaisha Toshiba Appareil et procédé de codage d'images animées
EP1351518A2 (fr) * 2002-03-28 2003-10-08 Sony United Kingdom Limited Compression de donées d'images multi-génération

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2691272A1 (fr) * 1992-05-15 1993-11-19 Thomson Csf Procédé de codage d'images très bas débit et dispositif de codage mettant en Óoeuvre ce procédé.
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
EP0680221A2 (fr) * 1994-03-30 1995-11-02 Sony Corporation Quantification de données d'image dans une compression d'images
EP1237378A2 (fr) * 2001-02-28 2002-09-04 Kabushiki Kaisha Toshiba Appareil et procédé de codage d'images animées
EP1351518A2 (fr) * 2002-03-28 2003-10-08 Sony United Kingdom Limited Compression de donées d'images multi-génération

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JAE-BEOM LEE ET AL: "Optimal shape coding under buffer constraints", IMAGE PROCESSING, 1998. ICIP 98. PROCEEDINGS. 1998 INTERNATIONAL CONFERENCE ON CHICAGO, IL, USA 4-7 OCT. 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, vol. 1, 4 October 1998 (1998-10-04), pages 290 - 294, XP010308787, ISBN: 0-8186-8821-1 *
ZHANG N ET AL: "Improving bits allocation and quantization level control for MPEG2 encoders", INDUSTRIAL ELECTRONICS, CONTROL, AND INSTRUMENTATION, 1996., PROCEEDINGS OF THE 1996 IEEE IECON 22ND INTERNATIONAL CONFERENCE ON TAIPEI, TAIWAN 5-10 AUG. 1996, NEW YORK, NY, USA,IEEE, US, vol. 1, 5 August 1996 (1996-08-05), pages 560 - 565, XP010203351, ISBN: 0-7803-2775-6 *

Also Published As

Publication number Publication date
FR2875076B1 (fr) 2007-02-02

Similar Documents

Publication Publication Date Title
FR2894421A1 (fr) Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
FR2817440A1 (fr) Insertion de messages dans des donnees numeriques
FR2889382A1 (fr) Procede et dispositif de filtrage d'un signal numerique multidimensionnel et procedes et dispositifs de codage et decodage associes
FR2792150A1 (fr) Procedes et dispositis de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
FR3073999A1 (fr) Compression intelligente de contenus video graines
FR2891685A1 (fr) Procede et dispositif d'estimation de mouvement a references multiples, procede et dispositif de codage, produits programme d'ordinateur et moyens de stockage correspondants.
FR2866183A1 (fr) Procedes d'emission et de reception d'une animation, et dispositifs associes
FR2919779A1 (fr) Procede et dispositif de codage avec perte d'un signal numerique
FR2792151A1 (fr) Procedes et dispositifs de codage et de decodage de signaux numeriques, et systemes les mettant en oeuvre
FR2796778A1 (fr) Procede et dispositif de compression par bloc de donnees numeriques
EP2203915B1 (fr) Dissimulation d'erreur de transmission dans un signal numerique avec repartition de la complexite
EP3646597B1 (fr) Procédé de décodage d'une image, procédé de codage, dispositifs, équipement terminal et programmes d'ordinateurs associés
FR2875076A1 (fr) Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes
EP2227908B1 (fr) Procede de decodage a complexite variable d'un signal d'images, terminal de decodage, procede de codage, dispositif de codage, signal et programmes d'ordinateur correspondants
EP3491825B1 (fr) Procédé de décodage d'une image, procédé de codage, dispositifs, équipement terminal et programmes d'ordinateurs associés
FR3143246A1 (fr) Procédé et dispositif de codage et décodage d’images.
FR3143248A1 (fr) Procédé et dispositif de codage et décodage d’images.
FR2882614A1 (fr) Procede et dispositif de codage d'un signal numerique d'entite multimedia et procede et dispositif de decodage associes.
FR3143245A1 (fr) Procédé et dispositif de codage et décodage d’images.
EP4104446A1 (fr) Procédé et dispositif de traitement de données de vidéo multi-vues
FR2927486A1 (fr) Procedes de codage et de decodage d'un histogramme et d'un signal de valeurs dont la distribution est representee par l'histogramme, et systemes associes
FR3143247A1 (fr) Procédé et dispositif de codage et décodage de séquences d’images.
WO2011064493A1 (fr) Procede et dispositif de codage avec correction d'erreur adapte au marquage transactionnel
FR2805941A1 (fr) Procede et dispositif de codage entropique
EP4356606A1 (fr) Procédés et dispositifs de décodage d'une partie au moins d'un flux de données, programme d'ordinateur et flux de données associés

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140530