FR2963865A1 - Procede et dispositif de codage d'un signal numerique - Google Patents

Procede et dispositif de codage d'un signal numerique Download PDF

Info

Publication number
FR2963865A1
FR2963865A1 FR1056618A FR1056618A FR2963865A1 FR 2963865 A1 FR2963865 A1 FR 2963865A1 FR 1056618 A FR1056618 A FR 1056618A FR 1056618 A FR1056618 A FR 1056618A FR 2963865 A1 FR2963865 A1 FR 2963865A1
Authority
FR
France
Prior art keywords
context
signal
filtering
information
function
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
FR1056618A
Other languages
English (en)
Other versions
FR2963865B1 (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 FR1056618A priority Critical patent/FR2963865B1/fr
Publication of FR2963865A1 publication Critical patent/FR2963865A1/fr
Application granted granted Critical
Publication of FR2963865B1 publication Critical patent/FR2963865B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

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

Abstract

L'invention concerne un procédé de codage d'informations de filtrage d'un signal numérique. Les informations sont obtenues par des opérations exécutées pour chaque sous-ensemble d'échantillons du signal. Le procédé comprend la détermination d'une fonction de contexte prenant, pour un échantillon quelconque du sous-ensemble considéré, une valeur parmi un ensemble fini de valeurs de contexte, et la détermination d'une table de filtrage associant un identifiant de filtre prédéfini à des valeurs de contexte de la fonction déterminée pour le sous-ensemble, la détermination d'une table de filtrage, incluant l'obtention d'une information d'occurrence de valeurs de contexte et relative aux valeurs prises par la fonction déterminée pour le sous-ensemble , les tables de filtrage étant codées dans un signal d'information de filtrage et le codage prenant en compte cette information d'occurrence.

Description

La présente invention se rapporte à des procédés de codage et de décodage d'un signa numérique ainsi qu'à des dispositifs correspondants. Erie appartient au domaine général du codage du décodage de signaux numériques représentant des grandeurs physiques. A titre d'exemples nullement limitatifs, les signaux concernés peuvent représenter des images fixes ou des vidéos ou, plus généralement, des données multimédia. Par exem%e, une image numérique provenant d'un appareil photo numérique est constituée d'un ensemble de N x M échantillons ou unités élémentaires d'image, encoappelées pixel« où N est b hauteur de l'image et M sa largeur. Cette image 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 bidimensionnel accessible, par exemple,ligne à ligne. Une image numérique subit généralement une transformation préalablement à son codage. De même, lors du décodage d'une Image numérique codée, ' mage subît une transformation inverse. La transformation peut indu une opération de filtrage appliquée à toute ou partie de l'image numérique. Un titre peut être vu comme un produit de convolution entre e signal d'image un vecteur préder iné permettant, pour chaque pixel de a région à laquelle il s'applique, de modifier sa valeur en fonction des valeurs des pixels avoisinants, affectées de coefficients. Le document F82927744 décrit une technique de filtrage d'un signal numérique qui utilise des filtres orientés. Selon cette technique, pour chaque échantillon à filtrer du signal (pixel pour un signal d'image), une orientation de filtrage optimale est sélectionnée enfonction de a valeur prise pour l'échantillon par une fonction dite « de contexte » qui tient compte d'un nombre prédéterminé d'autres échantillons du signal.
En pratique, e signa numérique est d'abord divisé en blocs d'écham@0ns. pour chaque échantillon d'un bloc considéré, 0n calcule a valeur de contexte prise par une fonction de contexte parmi une pluralité de fonctions de contexte. Ensuite, on subdivise e bloc d'échantillons en groupes d'échantillons enfonction des valeurs prises par b fonction de contexte, pour chaque groupe d'échantillons ainsi obtenu, 0n détermine un dit orienté optimal en fonction d'un premier critère, par exemple e critère consistant à minimiser e coût débit-distorsion. On obtient ainsi, pour e bloc d'échantillons considéré, une table d'orientation (encore appelée table de filtrage) dont chaque entrée associe un filtre orienté à une valeur de contexte p0ur a fonction de contexte considérée. On réitère 'opéra§0n précédente sur e même bloc d'échantillons pour chacune des fonctions de contexte, et on sélectionne une fonction de contexte optimale selon un second critère, par exemple celui consistant à sélectionner celle qui minimise e coût de codage de l'ensemble des groupes d'échantillons du bloc d'échantillons considéré. Au final, 0n obtient pour chaque bloc d'échamg0ns du signa, une fonction de contexte optimale une table d'orientation optimale correspondante associant un filtre orienté à chacune des valeurs de contexte prises par a fonction de contexte optimale. 2O Salon un exemple d'ap%ya§0n de codage d'un signal numérique, lorsqu'un tel filtrage est appliqué lors du codage du signal numérique, des informations de filtrage relatives aux tables d'orientation aux fonctions de contexte sont comprimées puis transmises au décodeur incorporées dans un signal transmis avec e signal vitré comprimé. Au niveau décodeur, après 25 réception du signa filtré codé, ce dernier est décomprimé subit une opération de filtrage inverse de celle appliquée lors du codage en utilisant pour chaque bloc du signal los inrma§0ns de filtrage çueS préalablement décomprimées. Dans a technique de ft ge exposée ci-dessus, pour un b oc 30 quelconque du signa, un vitre orienté est déterminé de manière systématique pour chacune des valeurs possibles que peut prendre la fonction de contexte associée, même si en pratique, une ou plusieurs valeurs de contexte ne sont pas prises pour es échantillons du bloc considéré. En d'autres termes, les tables d'orientation obtenues selon cette technique possèdent toutes une taille fixe correspondant au nombre total de valeurs que peut prendre la fonction de contexte.
On comprendra alors que cet aspect de a technique précitée ~m%\ ue un codage sous-optimal, en termes de volume de données codées ou d'efficacité de compression, du signa relatif aux informations de filtrage, puisque toutes es données contenues dans des tables d'orientation sont codées, même si certaines de ces données ne sont pas utilisées au décodage.
La présente invention vise notamment à fournir une technique de codage d'informations de filtrage pus efficace que celle décrite ci-dessus. La présente invention concerne ainsi, selon un premier aspect, un procédé de codage d'informations de filtrage d'un signal numérique, dans tique es informations de filtrage sont obtenues par des opérations exécutées pour chaque sous-ensemble d'échantillons du signal numérique préalablement divisé en sous-ensembles prédéfinis d'échantillons, et incluant: a détermination d'une fonction de contexte prenant, pour un échantillon quelconque du sous-ensemble d'échantillons considéré, une valeur parmi un ensemble fini de valeurs de contexte, et b détermination d'une table de filtrage associant un identifiant de filtre prédé nià des valeurs de contexte de la fonction de contexte déterminée pour e sous-ensemble d'échantillons considéré. Conformément à 'invention, ce procédé est remarquable en ce que: - a détermination d'une table de filtrage pour un sous-ensemble d'échantillons quelconque considéré du signal numérique, inclut l'obtention d'une information dite d'occurrence de valeurs de contexte relative aux valeurs de contexte prises par a fonction de contexte déterminée pour e sous-ensemble d'échantillons considéré; et - es tables de filtrage sont codées dans un signal d'information de filtrage, e codage de chacune des tables de filtrage prenant en compte adite 30 information d'occurrence de valeurs de contexte. Grâce à l'obtention d'une telle information d'occurrence des valeurs de contexte à un codage des tables de filtrage qui prend en compte cette inforrnation d'occurrence de valeurs de contexte, il n'est plus nécessaire de coder, dans une table de filtrage donnée, un Identifiant de filtre correspondant à une valeur de contexte qui n'est pas prise par la fonction de contexte correspondant sur le sous-ensemble d'échantillons considéré. AIns, Les tables de filtrage obtenues selon l'Invention, sont de telle variable en fonction des valeurs de contexte effectivement utilisées, contrairement à l'art antérieur mentionné dans la paille ntroductive de la description. Par conséquent, le codage, en particulier la compression, de telles tables de filtrage dans un signal d'information de filtrage, permet de diminuer le volume des données Ig comprimées pour le signal d'Information de filtrage et rendre le codage du signal globalement plus efficace que dans l'art antérieur mentionné plus haut. Selon un premier mode de réalisation de l'Invention, les dentifiants de filtres d'une table de filtrage forment une liste ordonnée selon un ordre prédéterminé parmi l'ordre croissant ou l'ordre décroissant des valeurs de 15 contexte auxquelles ces identifiants sont associés, et l'Information d'occurrence de valeurs de contexte est ndicative de l'ensemble des valeurs de contexte qui ne sont pas prises par a fonction de contexte pour le sous-ensemble d'échantillons considéré - cet ensemble pouvant être vide -, et est associée à la table de filtrage correspondante avant codage de cette table. 20 Plus précisément, selon le premier mode de réalisation le signal d'information de filtrage inclut un signal de table de filtrage contenant pour chaque sous-ensemble d'échantillons du signal numérique, au moins une table de filtrage correspondant à une fonction de contexte, et dans lequel edit signal de table de filtrage est divisé en sous-signaux de table de filtrage contenant 25 chacun les tables de filtrage qui correspondent à la même fonction de contexte. De plus, chaque sous-signal de table de filtrage est subdivise en fonction du nombre de valeurs de contexte effectivement prises par a fonction de contexte associée, de manière à ce que chaque subdivision de sous-signal contienne les tables de filtrage associées à une même fonction de contexte 30 ayant pris le même nombre de valeurs de contexte, et chaque subdivision de sous-signal de table de filtrage, ainsi obtenue, est codée de manière indépendante des autres subdivisions de sous-signa de table de q#age, en utilisant un codeur entropique spécifique. Ainsi, selon e mode de réalisation exposé ci-dessus, le fait de grouper es tables de filtrages associées à une mêmefonction de contexte, en fonction du nombre de valeurs de contexte effectivement prises sur e bloc d'échantillons concerné, de coder ensuite ces tables selon un codage de type entropique permet de s'affranchir du codage dans e signal d'information de filtrage, dune information relative au nombre de valeurs de contexte prises par a fonction de contexte déterminée pour un bloc d'échantillons considéré, cette information étant seulement utilisée pour derminerun mode de codage. Selon une variante de réalisation du premier mode de réalisation, information d'occurrence de valeurs de contexte est constituée d'un code binaire représentatif a configuration des valeurs de contexte effectivement prises par a fonction de contexte sur e sous-ensemble d'échantillons correspondant ; chaque sous-signal de table de filtrage correspondant à une fonction de contexte donnée est subdivisé en fonction de a valeur du mot binaire représentant a configuration des voeu de contexte prises ; chaque subdivision de sou signal de table de filtrage, ainsi obtenue, est codée en utilisant un codeur entropique associé à un dictionnaire dépendant de ces codes binais. Selon un exemple de réalisation, e code binaire est composé d'un nombre de bits égal au nombre de valeurs de contexte possibles, un bit quelconque du code binaire étant mis à une première valeur prédéterminée si la valeur de contexte correspondante est utilisée, à [autre valeur dans le cas contraire. Dans ce cas, l'information d'occurrence de valeurs de contexte est constituée du code binaire, lequel indique es valeurs de contexte qui ne sont pas prises par a fonction de contexte sur e sous-ensemble d'échant Mons concerné, Selon un second mode de réalis ion de l'invention, les identifiants de filtres contenus dans une table de fHtrage forment une liste ordonnée selon l'ordre d'occurrence des valeurs de contexte prises par a fonction de contexte correspondante, lorsque celle-ci est appliquée au sous-ensemble d'échantillons correspondant. De même que dans e premier mode de réalisation, e signal bue rma§on de qtr ge inclut un signa de table de filtrage contenant pour chaque sous-ensemble d'échantillons du signal numérique, au moins une table de filtrage correspondant à une fonction de contexte, et le signal de table de filtrage est divisé en sous signaux de table de filtrage contenant chacun es tables de filtrage qui correspondent à a mêmefonction de contexte. Ainsi, selon e second mode de réalisation, on obtient directement des tables de filtrage de mie variable, puisque pour une table de filtrage donnée, seuls es identifiants des filtres correspondant aux valeurs de contexte effectIvement prises par a fonction de contexte correspondante sont contenus dans a table de filtrage, ces Indices étanordonnés selon l'ordre d'occurrence des valeurs de contexte pour lesquelles ces filtres s'appliquent.
Selon une première variante de réalisation du second mode de réa sa§0n, information d'occurrence de valeurs de contexte est indicative du nombre de voeu de contexte différentes prises par a fonction de contexte pour e sous-ensemble d'échantillons considéré, cinformation indicative du nombre de valeurs de contexte prises étant transmiavec e signal de male de filtrage ; chaque sous-signal de table de filtrage correspondant à une fonction de contexte donnée est subdivisé enfonction du nombre de valeurs de contexte prises par a fonction de contexte ; et chaque subdivision de sous-signal de table de filtrage, ainsi obtenue, est codée en utilisant un codeur entropique dépendant du nombre de valeurs prises par a fonction de contexte associée.
L'information indicative du nombre de valeurs de contexte prises qui est transmise avec e signal de table de filtrage, permet en particulier, au niveau décodeur. de s'affranchir de a nécessité d'effectuer une première passe de calcul pour derminer es valeurs de contexte non utilisées pour une fonction de contexte donnée, sur un bloc d'échantillons considéré.
Selon une seconde variante de réalisation du second mode de réalisation précité, l'information d'occurrence de valeurs de contexte est représentative du rang d'apparition de chaque valeur de contexte prise par une fonction de contexte considérée, lorsque a fonction de contexte est appliquée au sous-ensemble d'échantillons correspondant ; chaque sous-signal de table de filtrage correspondant à une fonction de contexte donnée est subdivisé en fonction durang d'apparition de chaque valeur de contexte prise par a fonction de contexte considérée ; chaque subdivision de sous-signal de table de filtrage, ainsi obtenue, est codée en utilisant un codeur entpique dépendant du rang d'apparition de chaque valeur de contexte prise par a fonction de contexte associée. Grâce à un tel codage du signa de table de filtrage, il n'est pas 10 nécessaire de transmettre au décodeur une information relative au nombre de valeurs prises par une fonction de contexte considérée. Corrélativement, selon un deuxième aspect, §nvention concerne un dispositif de codage d'informations de filtrage d'un signal numérique, comportant des moyens adaptés à a mise en oeuvre d'un procédé de codage 15 d'informations de filtrage d'un signal numérique, te que brièvement exposé ci--dessus. Selon un autre aspect, 'invention concerne un programme d'ordinateur sur un support d'informations, ce programme comportant des instructions adaptées à a mise en oeuvre d'un procédé de codage selon 20 l'invention tel que brièvement exposé supra, braque e programme est chargé exécuté dans un ordinateur. Les avantages procurés par e d isposi de codage d'informations de filtrage, ainsi que ceux procurés par e programme d'ordinateur précité, sont identiques à ceux mentionnés pus haut en relation avec e procédé de codage 25 d'informations de filtrage, selon 'invention, ne seront, par conséquent, pas rappelés ici. D'autres aspects avantages de 'invention apparaîtront à a lecture de a description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui 30 'accompagnent, dans lesquels: - a figure ] représente de manière schématique un mode particulier de réalisation d'un dispositif de traitement d'information susceptible de mettre en oeuvre b présente invention; - b figure 2 illustre un système de traitement d'images numériques 5 susceptible de mettre en oeuvre des procédés de codage de décodage, selon un mode de réalisation de l'invention ; - b figure 3 est un organigramme illustrant es étapes principales d'un procédé de codage d'un signal vidéo numérique, relatives à a production d'informations de filtrage, selon un mode de réalisation de l'invention ; 10 - b figure 4 est un organigramme illustrant es opérations de détermination dune fonction de contexte optimale dune table de filtrage associée, selon l'invention; - b figure 5 illustre, dans un bloc de pixels d'image, dune part e calcul dune valeur de contexte pour un pixel particulier selon une fonction de 15 contexte, d'autre part un exemple de répartition des valeurs de contexte obtenues pour chacun des pixels du bloc; - a figure 6 illustre un exemple de filtrage selon sept orientations géométriques prédé b ies, susceptible d'être utilisé dans un procédé de codage d'un signal d'image, selon b présente invention; 20 - b figure 7 illustre un exemple d'informations de filtrage (fonctions de contexte, tables de filtrage, nombre d'itérations) obtenues pour 8 Rocs de pixels d'un signal d'images numérique ; - bfigure 8est un organigramme illustrant un exemple de traitement dans un décodeur d'un signal sur-échantillonné après décodage, utilisant des 25 informations de filtrage produites selon l'invention. La figure I montre un mode particulier de réalisation d'un dispositif de traitement d'information apte à fonctionner comme dispositif de codage ou de décodage d'un signal numérique, selon b présente invention. Le dispositif illustré sur b figure 4 peut comporter tout ou partie des 30 moyens de mise en oeuvre d'un procédé de codage ou de décodage conformes à b présente invention.
Selon e mode de réalisation chois, ce dispositif peut être par exemple un micro-ordinateur ou une station de tvall10 connecté à différents périphériques, par exemple, une caméra numérique 100 (ou un scanner, ou tout autre moyen d'acquisition ou de stockage d'images) ou un microphone 108, renés à une carte graphique (non représentée) fournissant ainsi des informations multimédias à traiter selon l'Invention. Le micro-ordinateur 10 comporte de préférence une interface de communication 102 liée à un réseau 103 apte à transmettre des informations érques. Le micro-ordinateur 10 comporte également un moyen de 10 stockage permanent 104,tlqu'un disque dur, ainsi qu'un lecteur dmoyens de stockage temporaire tel qu'un lecteur de disquettes 105 pour coopérer avec une disquette 106. La disquette 106 et le disque dur 104 peuvent contenir des données d'implantation logicielle de l'invention ans que e code du ou des programme(s) 15 d'ordinateur dont l'exécution par e micro-ordinateur 10 provoque a mise en oeuvre de a présente invention, ce code étant par exemple mémorisé sur e disque dur 104unefois gCria été u parle micro-ordinateur 10. En variante, e ou es programme(s) permettant au dispositif 10 de mettre en oeuvre l'invention sont stockés dans une mémoire morte (par exemp e 20 du type ROM) 107. Selon une autre variante, ce ou ces programme(s) sont reçus totalement ou partiellement àtravers e réseau de commun cation 103 pour être stockés comme indiqué. Le micro-ordinateur 10 comprend également un écran 109 pour 25 visualiser les informations àtmiter et/ou servir d'interface avec l'utilisateur, afin que l'utilisateur puisse par exemple param rceR+ns modes de titementà raide du caver 110 ou de tout autre moyen approprié de pointage et/ou de saisie tel qu'une souris, un crayon optique, etc. Une unité de calcul ou unité centmW de traitement (CPU) 111 30 exécute les instructions relatives à a mise en oeuvre de l'invention, ces instructions étant stockédans a mémoire morte ROM 107 ou dans es autres déments de stockage décrits.
Lors de a mise sous tension du dispositif 10, es programmes méthodes de traitement stockés dans une des mémoires non-volatiles, par exemple a ROM 107, sont transférés dans une mémoire vive (par exemple du type RAM)112,qu contient alors e code exécutable de l'invention ans que es variables nécessaires à a mise en oeuvre de l'invention. En variante, es méthodes de traitement du signal numérique peuvent être stockées dans différents emplacements de stockage. De façon 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, peut mémoriser un ou plusieurs programme(s) dont l'exécution met en oeuvre les procédés de codage ou de décodage selon l'invention, On peut faire évoluer e mode particulier de réalisation choisi pour §nventon,parexemple en ajoutant des méthodes de traitement actualisées ou améliorées dans un tel cas, ces nouvelles méthodes peuvent être transmis au dispositif 10 par e réseau de communication 103, ou chargées dans e dispositif 10 par l'intermédiaire dyne ou de puseurs disquettes 106. Bien entendu, les disquettes 106 peuvent être remplacées par tout support d'information jugé approprié (CD-ROM, carte mémoire, etc.), Un bus de communication 113 permet a communication entre es différents éléments du micro-ordinateur 10 et les éléments reliés à celui-ci. On notera que a représentation du bus 113 Rem pas limitative. En effet, Pureté centrale CPU 111 est, par exemple, susceptible de communiquer des instructions à tout élément du micro-ordinateur 10, directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 10.
La figure 2 montre de manière simplifiée un système de traitement d'images numériques susceptible de mettre en oeuvre des procédés de codage de décodage selon un mode de réalisation de a présente invention, L'application envisagée dans e cadre du mode de réalisation de l'invention exposé ici, concerne Rencodage d'un signal vidéo numérique en vue d'obtenir un signal vidéo sur-échantillonné de bonne qualité. De madère générale, un signal numérique, par exemple un signal vidéo, est capturé par un appareil de capture d'images tel qu'un caméscope 2963865 4]
numérique, disposant d'un capteur de haute qualité. E antdonne es capacités des appareils de capture limages modernes, un signal numérique original ainsi capturé est susceptible de posséder une très haute résolution, et par conséquent de nécessiter un débit de transmission très élevé, Par conséquent, 5 un signal d'une telle résolution n'est généralement pas adapté pour être transmis convenablement au travers d'un réseau, ou pour être simplement stocké dans une mémoire. Une solution consiste alors à comprimer e signa vidéo original et transmettre (ou de stocker, selon e cas) un flux de données comprimées. Cette compression peut alors consister, comme dans e mode de 10 réalisation présenté, en un sous-échantillonnage du signal. H est alors souhaitable de pouvoir reconstruire un signal de haute résolution et de bonne qualité visuelle à partir du signal codé. Comme illustré à b figure 2, e système de traitement d'images selon e mode de réalisation de invention, comprend un dispositif de codage 2, une 15 unité de transmission ou de stockage 4 un dispositif de décodage 6. Ces dispositifs de codage de décodage sont tous los deux des dispositifs de traitement d'information dutype décrit précédemment en liaison avec a figure 1 (dispositif 10). Dans e mode de réalisation choisi et représenté, un signa numérique 20 original Si ayant une haute résolution spatiale initiale est fourni en entrée du codeur 2. En pratique, a résolution du signal est trop élevée pour permettre une transmission convenable du signa sur un réseau ou même pour permettre un stockage local du signal. Par exemple, e signal d'images numérique original peut être un signal vidéo comprenant des trames de 1920x1080 pixels (largeur 25 x hauteur), correspondant au format consous a désignation : 1080p. Le système de traitement de a figure 2 permet ainsi de traiter un signal original de haute résolution et de produire des informations additionnelles désignées par "informations de filtrage" dans e cadre de a présente invention (appelées de manière générae +4e information en anglais) ; ces informations 30 de filtrage étant utilisées au décodage pour reconstruire une image de haute résolution avec une bonne qualité visuelle. 12
La présente invention est mise en oeuvre principalement lors de a création et b compression des informations de filtrage, au niveau codeur, lors de l'utilisation de ces informations pour reconstruire un signal vidéo sur- échantillonné de bonne qualité, au niveau décodage.
Comme représenté à a figure 2, e signal original Si est sous-échantillonné en un signal Sc; par une unité de sous-échantillonnage 200, laquelle peut mettre en oeuvre n'importe quelle méthode de sous-échantillonnage appropriée, He que par exemple a méthode connue de filtrage de Lanczos. Par exem/e, e signal vidéo original auformat 1080p peut être sous-échantillonné à une résolution de 1280x720 pixels classiquement désignée parte format 720p, En option, e signal sous -échantillonné Sd peut être traité par une unité de compression 202 pour être comprimé en un signal selon un format de compression adapté (par ex. H264, SVC ou MPEG-2 pour des données vidéo), afin d'améliorer encore la compression. Ensuite, e signal comprimé Sc est décomprimé par une unité de décompression 204 en un signal décomprimé Sd. De cette façon, e codeurreconstruit des données similaires à celles qui seraient disponibles au niveau décodeur, lorsque e signal numérique devant être transmis ou stocké subit un codage incluant une compression.
Le signal sous-échantillonné Sd a fortiori le signal sous- échantillonné comprimé S, ont un débit binai b ''rieur à celui du signal numérique original Si. Le signa décomprimé Sd est ensuite sur-échantillonné en un signal Sv par une unité de sur-échantillonnage 206, de manière à retrouver la résolution spatiale initiale du signal original Si. De préférence, l'unité de sur-échantillonnage 206 met en oeuvre e même procédé de sur-échantillonnage que celui utilisé côté décodeur (unité 218). Le signa sur-échantillonné S, encodésigné par "signal source", et e signal 0N/na Si sont ensuite fournis en entrée à une unité 208 de création d'informations de filtrage, qui génère des informations de filtrage contenues dans un signal d'information de gtra6e, de telle sorte que lorsque ces inrlatons sont combinées avec e signal source S, a qualité visuelle du signal résultant est optimisée. Le signal d'information de filtrage est ensuite comprimé par une unté 210 de compression d'informations de filtrage. Le signal vidéo sous-échantillonné comprimé Sc est m utp exé avec e signal d'informations de filtrage comprimé, par une unité de multiplexage 212, pour finalement produire signal codé destiné à être transmis ou stocké par l'unité 4 de transmission/stockage. Selon une application typique, e signal numérique codé est transmis 10 à un terminal client (10) au travers d'un réseau de télécommunications (103), selon un protocole de transmission approprié. Dans le terminal client, e signal numérique codé reçu est four 1 à un décodeur (6), dans tique H est d'abord traité par une unité 214 de démutp exage destinée à séparer e signal numérique comprimé Sc du signal 15 d'information de filtrage. Le signal numérique comprimé Sc est décomprimé par unité 216 de décompression pour constituer un signal reconstruit Sd' qui est ensuisur-échanMbnné, par une unté 218 de sur-échantillonnage, pour fournir un signal S disposant d'une résolution dentque à celle du signal original Si. En parallèle, e signal d'information de filtrage est décomprimé par 20 une unité 220 de décompression d'informations de vitrage, Enfin, e signal sur-échantillonné Sv et le signal d'information de vitrage sont traités ensembles par une unité de ti ment 222, qui délivre en sorte un signal d'images résultant SR ayant a même résolution que e signal d'images numérique original Si, et offrant une qualité visuelle améliorée par 25 rapport au signal reconstruit et sur-échantillonné S. L'objectif est d'obtenir un signal final SR qui soit le plus proche possible du signal original Si. En relation avec a figure 3, on va à présent détailler es étapes principales d'un procédé de codage d'un signal vidéo numérique, qu sont relatives à a production d'informations de filtrage, selon un mode de réalisation 30 de l'invention. On rappelle que es échantillons d'un signal |mage v déo numérique sont communément désignés par "pixels".
Toutes les étapes de l'organigramme représenté à la figure 3 peuvent être mises en oeuvre par logiciel et exécutées par l'unité centrale CRU 111 d'un dispositif 1g (figure 1). En particulier, ces étapes sont réalisées par l'unité 208 de création d'informations de filtrage (figure 2), qui reçoit en entrée le signal original S, ayant une résolution donnée, par exemple 1920x1E080 (format 1080p), et le signal source correspondant S au même format (1080p) obtenu par décompression et sur-échantillonnage du signal numérique comprimé S, comme expliqué plus haut en référence à la figure 2, IO Les facteurs de sous-échantillonnage/sur-échantillonnage dans les directions verticale et horizontale sont des paramètres externes, fournis par un utilisateur, par exemple. Ainsi, si le signal original a une résolution de 1920x1080 pixels et si le signal vidéo sous-échantillonné doit être transmis ou stocké avec une résolution de 1280x720 pixels (format 720p), le facteur de 15 sous-échantillonnage est de 1,5 dans chacune des directions. A a figure 3, lors d'une première étape E300, le signal source S, subit une division en sous-ensembles de pixels. Selon le mode choisi et présenté, le signal source est divisé en blocs de pixe si Divers types de division du signal en blocs peuvent être utilisés. Ainsi, selon un exemple de réalisation, 20 on peut diviser chaque trame de la vidéo en blocs carrés de pixels, par exemple des blocs de 8x8 pixels, En outre, une subdivision supplémentaire à l'intérieur de chaque bloc peut être envisagée, par exemple sous forme de grilles. A 'étape E301 qui suit, le processus est initialisé avec un premier bloc à traiter du signal S, constituant le bloc courant, noté Bk. 25 A 'étape E302, les valeurs des pixels constituant le bloc courant sont sauvegardées en mémoire, par exemple, dans un registre approprié de la RAM 112 du dispositif 1O de la figure 1, Le bloc de pixels ainsi mémorisé est noté MBki Initialement le bloc courant Bk est mémorisé avant filtrage, ensuite il est mémorisé après chaque itération validée de filtrage, comme cela sera 30 expliqué plus bas. Toujours lors de l'étape E302, le coût débit-distorsion, noté Ccurrent, pour le bloc de pixels courant Bk est calculé et sauvegardé en mémoire, De manière classique, e coût débit-distorsion est cacué selon Péquaton suivant : Cmr m = R \ Dk (1) où Rk désigne e débit de codage des informations de filtrage pour e Roc courant Bk, Dk b distorsion, X un paramètre prédéterminé, par exemple fourni par utflsateur, qu permet de réger e q?age enfoncon du comp m s voulu entre la valeur du débit allouée pour es informations de filtrage et l'amélioration de la qualité de sur-échantillonnage. La distorsion est évaluée entre e bloc MBk courant mémorisé du signal source Sv et le bloc de pixels correspondant, noté OBk du signal étique original S,c'est-à-dire e bloc situé à b même ponton dans l'image correspondante du signal Si. A l'état initial, MBk est e bloc courant mémorisé du signal Sv avant filtrage, e débit Rk est égal à 1, puisqu'un seul bit est nécessaire pour coder une seule itéton,e b distorsion Okest égale à l'erreur quadratique entre le bloc Bke le bloc OBk. A l'étape suivante E303, on détermine pour e bloc courant Bk du signal source S, une fonction de contexte prenant, pour un pixel quelconque du bloc courant, une valeur parmi un ensemble fini de valeurs de contexte, et la détermination dune table de filtrage associant des filtres orientés aux valeurs de contexte prises par a fonction de contexte pour es pixels du bloc, La fonction de contexte déterminée est a meilleure fonction de contexte oufonction de contexte optimale. Le but général du traitement effectué au cours de l'étape E303, est de sélectionner pour chaque pixel d'un bloc de pixels donné du signal source, un filtre parmi un ensemble de filtres orientés, de manière à satisfaire un premier critère, qu consiste, selon e mode de réalisation choisi, à minimiser un coût préderm né lorsque l'on applique les filtres sélectionnés aux échantillons du bloc considéré. Dans e mode de réalisation exposé, ce critère de coût est relatif au coûtdéMGdistogyn mentionné plus haut, a distorsion étant calculée entre le signal numérique source Svgtré et le signal original Si.
Les filtres ut sés selon l'Invention sont sélectionnés selon des camUéNm\ues locales du s gna numérique (S) qu doit être filtré. De ries caractéristiques locales sont d erra nées par Put saton de fonctions de contexte préd erm Cées qu représentent. lorsqu'elles sont app quées à un échanHbn de signal donné, es variations locales des valeurs des échan Wons se situant dans un voisinage de l'échantillon cons déré. L'étape E303 de détermination dunefonction de contexte optImale et de a table de filtrage associée, est détaillée pus bas en liaison avec a figure 4. A l'étape suivante, E304, chaque échantillon du bloc courant Bk du signal source S, est filtré en udplant a table de filtrage optimale associée à a fonction de contexte 0p|ma e,obtenues à tissue de l'étape précédente. A cette fin, on calcule d'abord pour chaque échandbn du bloc a valeur de contexte prise par a fonction de contexte optimale, puis on app que à chaque échanHbn du bloc, e filtre orienté qu est associé à a valeur de contexte prise pour l'échantillon considéré dans a table de filtrage. A l'étape E305, on détermine s l'itération courante de filtrage du bloc courant apporte ou non une amélioration du point de vue coût débit-distorslon. A cette fin, on calcule e coût déb td|stomyn selon l'équation (1) mentionnée pus haut (étape E302).
La d|stomyn Dk( r) pour l'itération courante est obtenue en calculant l'erreur quadm§que entre le bloc courant Bk filtré et e bloc original correspondant OSA Le débit Rk(ter) pour l'itération courante est obtenu en consultant une table de débit préétablie qu associent une valeur de débit pour chaque 25 filtre orienté de l'ensemble de filtres utilisables, Selon e mode de réa raton choisi, on dispose de plusieurs tables de débt dont es valeurs de débit changent selon a fonctIon de contexte optimale utilisée, et également selon la configuratIon des valeurs de contexte prises ou non par a fônUmn de contexte sur un bloc d'échantillons cons déré, 30 cette configuration de valeurs de contexte, pouvant Indiquer par exemple le nombre de valeurs prises et/ou constituer une représentation binaire utilisée comme un Index.
Les tables de débit précitées sont constituées au préalable, par exemple par apprentissage à partr d'un ensemble de séquences vidéo de référence. Le mode de calcul du débit Rk(iter) pour l'itération de filtrage courante est b suivant. D'abord on sé eUQnne b table de débit correspondant au bloc courant Bk, en fonction de b fonction de contexte optimale de a table de filtrage associée qu ont été déterminées lors de l'étape E303. Ensuite, on effectue b somme des débits us dans b table de débit sélectionnée, qu correspondent aux débits de codage des vitres réellement utilisés pour gR r e bloc d'échantillons courant. On obtient alors e débit de codage de b table de filtrage pour§tératon courante, Rk(iter). En effet, selon ce mode de réalisation, b détermination de chaque table de filtrage (étape E303) Inclut une étape de vér'Ca§on pour derm bers au moins une valeur parmi l'ensemRe de valeurs de contexte poss b es de b fonction de contexte n'est pas utH Gée pour los écharnions du bloc éChanMbns considérée lorsque c'est e cas, une information représentath./e de chaque valeur de contexte non utilisée est insérée dans a table de filtrage. Le mode de d ermbaton selon §nventon des tables de filtrage, est détaillé pus bas en liaison avec b figure 4.
Une fois obtenu e débit RkOter) de codage pour b table de filtrage pour l'itération courante, celui-ci est ajouté au débit de codage nécessaire pour coder les itérations précédentes (p v). A noter que Rk(prev) est nul lorsque l'itération courante est b première. Ans, on obtient e nouveau coût débit-distorsion, noté Cæ, 25 correspondant à Btératon courante selon l'équatIon suivante: Cne = (R/J )® R/2r )+2 D/J ) (2) A l'étape 305, ce nouveau coût débit-distorsion Cma est comparé avec e coût débtd|stogmn précédemment calculé mémorisé (étape E302), Ccurrent. 30 S| e nouveau coût débtd|stogyn Cn est Inférieur au coût précédent Ccurrent (E305, oui), cela signifie que l'itération de filtrage courante améliore b coût débit-distorsion, alors on passe à l'étape E306 au cours de laquelle a fonction de contexte optimale et b table de filtrage associée obtenues pour l'Itération courante de filtrage du bloc Bk courant, sont sauvegardées incorporées dans e signal de filtrage, ainsi qu'un !Dît indicateur chargé d nd querque §Cem§on courante est validée, cent -dr qu'elle a été ap%/ uée. Ensuite, e traitement reprend avec une nouvelle Itération (étape E307) puis e traitement recommence avec l'étape E302 au cours de laquelle le nouveau coût Ce< est mémorisé en tant que coût courant Ccurrent, et e traitement recommence comme expliqué ci-dessus. 10 Dei touràl'ape E305, s a nouvelle valeur du coût Cnew n'est pas ure au coût précédent Cam m dans ce cas on passe à l'étape E308 au cours de laquelle on supprime a dernière itération de filtrage pour e bloc courant, A cette étape, las valeurs des éChanHbns filtrés du bloc courant Bk résultant de a dernière itération sont remplacées par es valeurs précédemment 15 stockées dans e bloc MBk mémorisé (E302). Ensuite, à l'étape E309 un bt Indicateur est ajouté dans e signal bue rlmadon de filtrage pour nd quer a fin des itérations de filtrage appliquées au bloc courant Bk, b dernière Itération n'ayant pas été prise en compte puisq Celle a été supprimée. 20 L'ensemble de tous las Mm bd ça u rs bd quant Rap%Caton dune itération de filtrage (étape E306) et a fin des itérations de garage(étape E309) forme ainsi un code binaire indiquant e nombre d'itérations applIquées au bloc éChanHbns concerné. A l'étape E310 suivante, on détermine si le bloc d'échantillons 25 courant Bk est le dernier bloc du signa source Sv. Si ce n'est pas le cas (E310, Non), un bloc suivant du signal source est considéré (étape E311) et e traitement recommence pour ce nouveau bloc, avec l'étape E302, comme expliqué précédemment. Si e bloc courant est le dentier bloc du signal source (E310, OU), on 30 passe à l'étape E312, au cours de laquelle le signal d'Information de filtrage est comprimé. Cette étape de compression du signal de filtrage sera détaillée plus bas dans a description, en relation avec a figure 7.
En liaison avec a figure 4, on va à présent détailler las opérations de détermination d'unefonction de contexte optimale de détermination d'une table de filtrage associée, qui nt l'objet de E303 de a figure 3. La figure 4 représente ainsi un organigramme illustrant les opérations selon l'invention de détermination d'unefonction de contexte optimale et d'une table de filtrage associée, pour un bloc de pixels courant du signa source S. Selon un exemple de réalisation, es étapes de l'organigramme représenté à a figure 4 sont implémentées sous forme logicielle exécutées par une unité centrale (CPU 111) d'un dispositif de traitement d'information IO (figure 1) décrit pus haut. Le traitement illustré par l'organigramme de a figure 4, prend en entrée es pixels du bloc courant Bk du signal source S, débute par une étape E400 au cours de laquelle on choisit une première fonction de contexte à tester parmi un ensemble prédéterminé de fonctions de contexte, cette première fonction devient la fonction courante Ck. Dans e mode de réalisation décrit, on utilise un ensemble de fonctions de contexte définies chacune pour un pixel x(i,j) courant quelconque situé sur a 1eligne et bj ® colonne du bloc de pixels considéré, en fonction des pixels d'un voisinage prédéterminé du pixel courant.
En pratique, dans e mode de réalisation choisi, las pixels voisins, notés A, B, C, D, sont localisés respectivement aux positions spatiales suivantes : 0-1,j), (i,4), §)44) 044){ Les positions spatiales des pixels A, B, C, D du voisinage (fun pixel x(i,j) sont illustrées à a figure 5, référence 500. Selon un exemple de réalisation de l'invention, las fonctions de contexte utilisées sont au nombre de 16, notées Co à C15, et peuvent prendre chacune, pour un pixel courant donné d'un bloc, une valeur (valeurde contexte) parmi un ensemble de quatre valeurs possibles : {0,1,2,31. Pour une fonction de contexte donnée, chacune de valeurs de contexte est obtenue en comparant entre elles las valeurs de pixel d'au moins deux des pixels voisins A-D, et le cas échéant en comparant les valeurs des pixels voisins avec celle du pixel courant .
Les fonctions de contexte utilisées selon le mode de réalisation choisi sont définies par les expressions mathématiques qui suivent. O f A<_:3 et ABC 1 f A-.13 et A>C 2 f A>B et 3 f A>B et A>C co(x0j»= 5 10 15 20 25 30 CI(x(i,j 0 f A-B et Pitl) 1 f A-B et A>D 2 f A>B et A-D 3 if A>B et A>D
C2(x(i,j))= 0 f P,13 et E3çC 1 f AE3 et B>C 2 f A>B et E3C 3 f A>B et B>C
C3(x(ij))= 0 if A<B et BD 1 if A<B et B>D 2 if A>B et BD 3 f A>B et B>D
C4(x(ij))= 0 if A<B et C..",E) 1 if A-.13 et C>D 2 if A>B et CçID 3 f A>B et C>D
C5(x(i,j))= 0 f ABC et A<B 1 f et A>D 2 if A>C et AD 3 if A>C et A>D 0 if Af.'C' et 13C' 1 if Af._.0 et B>C 2 if A>C et BC 3 f A>C et B>C C6(x(iii 35 40 45 07(x(i,jn= 0 if et B,-,ID 1 if et B>D 2 if A>C et B_ÇD 3 f A>C et B>D Cs(x(ij))= 0 if AC et C',12, 1 if AC et C>D 2 if A>C et CM) 3 if A>C et C>D C9(x(ij))= O if A-D et [3--C 1 if A-D et B>C K A>D et B2C 3 K A>D et B>C Cæ(x(Ç)= OfA;D et BSD 1 K A;D et B> D 2K A>D et B3D 3 Æ A>D et B>D Cx (x§Ç)= 0 RA2D et CKD IfA2D et C>D 2 R A>D et C«D 3fA>D et C>D Ça(x§Ç)= OfBsC et BD 1 fBsC etB>D 2 R B>C et BD 3 K B>C et B>D Ça%§Ç)= 0fB«C et C2D 20 1 fB«C et C>D 2 K B>C et CzD 3fB>C et C>D OfBD et C2D 1fBSD et C>D 2K B>D et CsD 3fB>D et C>D Cs(x§Ç)= OfB«x\)et C D ]RB« \) et C>D 2 if B>x(\)et C2D 3if B>%/)et C>D La référence 550 de b figure 5 représente un exemple de répartition des valeurs de contexte obtenues pour chacun des pixels d'un bloc de 8x8 35 pixels. Ainsi, es p xe s des zones d|/ointes 514 515 (en gris foncé) correspondent à une valeur de contexte égale à 3, es pixels des zones disjointes 512 513 (en gris clair) correspondent à une valeur de contexte égale à 1, ceux des zones disjointes 510 511 correspondent à une valeur de contexte égale à 0. On notera que dans l'exemple représenté, trois valeurs 40 seulement de l'ensemble des valeurs de contexte possibles ont été prises pour e bloc de pixels donné en exemple, puisque b valeur 9° Rem utilisée pour aucun des pixels du bloc 550. Les valeurs de contexte obtenues pour l'ensemble des pixels d'un bloc de p xe s cons déré permet de paq§0nner es échantillons du bloc en 21 10 15 25 30 groupes d'échantillons correspondant chacun à une valeur de contexte distincte prise par la fonction de contexte pour les échantillons du groupe. Dans l'exemple de la figure 5 (550), on obtient ainsi trois groupes d'échantillons seulement, au Heu de quatre au maximum puisque la valeur '2' n'est pas utilisée dans le bloc considéré. De retour à la figure 4, étape E401, la fonction de contexte courante Ck est appliquée aux pixels composant le bloc courant du signal, en utilisant les pixels voisins A, B, C, D de chaque pixel du bloc courant, comme exposé plus haut, de manière à obtenir une valeur de contexte pour chaque pixel du bloc courant. Lors de l'étape E401, on mémorise en outre pour chaque pixel du bloc courant la valeur de contexte obtenue correspondante. Selon l'Invention, on détermine un filtre optimal parmi un ensemble prédéterminé de filtres pour chaque groupe d'échantillons ayant la même valeur de contexte, comme cela est expliqué plus bas.
En pratique, selon le mode de réalisation choisi de l'invention, l'ensemble de filtres utilisé est composé de neuf filtres Fo à F8 tels qu'Illustrés de manière schématique à la figure 6, où l'échantillon numérique à filtrer est le pixel x(i,j) situé sur la ié' ligne et la jè'"e colonne. Les lignes de pixels référencées 0 à 7 correspondent aux supports des filtres orientés (encore désignés par orientations) Fo à F7, c'est-à-dire aux ensembles de pixels utlllsés pour l'opération de filtrage linéaire. En pratique, les filtres Fo à Fi sont définis comme suit. = a.x(î,j)+b.(x(i,j+l)+x(i,j-l))+c.(x(i,j+2)+x(i,j-2))+d,(x(i,j+3)+x(i.j-3)) = a.x(i,j)+b.(x(i-1,j+2)+x(i+l,j-2))+c.(x(i-1,j+3)+x(i+l,j-3))+d.(x(i-2,j+3) +x(i+2,j-3)) F3 = a.x(l,j)+b.(x(l+2j-1 )+x(I-2,j+l ))+c.(x(I+3,j-1 )+x(1-3,j+l ))+d.(x(I+3,j-2)+x(I-3,j+2)) F4 = a.x(i,j)+b.(x(i+l,j)+x(i-1,j))+c,(x(i+2,j)+x(i-2,j))+d.(x(i+3,j)+x(i-3,j)) F5 = a,x(i,j)+b,(x(i+2,j+ 1 )+x(I-2,j-1 ))+c.(x(i+3,j+1 )+x(I-3, ))+d,(x(i+3,j+2)+x(I-3, 1-2)) F = a.x(l,j)+b,(x(i+1 ,j+l)+x(i-1,j-1))+c.(x(I-2,j-2)+x(i+2,j+2))+d,(x(i+3,j+3)+x(l-3,j-3)) F7 = a.x(i,j)+b.(x(i-1 ,I-2)+x(l+1,j+2))+c.(x(i-1,j-3)+x(l+1 ,j+3))+d.(x(I-2,j-3)+x(l+2,j+3)) F8 = x(i,j) Où a, b, c, d, sont des paramètres prédéfinis. A noter que, selon une variante de réalisation, les paramètres a, b, c, d peuvent varier selon le filtre considéré. Par ailleurs, on notera que e filtre F8 correspond à l'absence de filtrage« L'utilisation de tels filtres permet de ffltrer de façon précise des zones locales d'Image contenant des contours orientés, Chacune des tables de filtrage selon l'invention associe un identifiant de qtr prédéfini à des voeu de contexte de a fonction de contexte déterminée pour e sous-ensemble d'échantillons (par exemple un bloc de pixels) considéré. Pus précisément, chaque table de filtrage contient une liste d'identifiants de filtres, par exemple es indices des filtres, mentionnés plus haut. On va à présent détailler a détermination d'une table de filtrage associée à une fonction de contexte donnée, selon un premier mode de réa cation de l'Invention. Selon ce premier mode de réalisation, los Indices des filtres sont ordonnés dans une table de filtrage quelconque selon un ordre prédéterminé, soit l'ordre croissant, soit l'ordre décroissant des valeurs de contexte auxquelles los indices sont associés. Dans l'exemple exposé ici, l'ordre choisi est l'ordre croissant. Selon ce premier mode de réWGmÜn,à l'étape E402 de a figure 4, on initialise une variable Vavec une première valeur parmi l'ensemble de valeurs possibles pour a fonction de contexte courante, prises dans l'ordre croissant. Ainsi, à l'étape E402, en utilisant les fonctions de contexte dénies plus haut, V est W baisée à a valeur '0'. L'étape suivante, E403, est une étape de test au cours de laquelle on 25 détermine si b valeur de contexte courante \/ a été prise par a fonction de contexte courante Ck pour au moins un %XQ du bloc courant Bk. Si c'est e cas (E403, Oui), on passe à l'étape E404 au cours de laquelle un premier Ælr de l'ensemble de filtres est sélectionné, par exemple le filtre F% devenant e filtre courant nt Fm Ega ement à l'étape E404, une variable 30 Cwn est inÆR Rée à une valeur de coût minimale prédé n ie, choisie suffisamment levée de sorte à être supérieure au premier coût de codage de filtre qui doit être calculé (étape E406{ Ensuite à l'étape E405, le filtre courant Fn est app ué à tous es échangbns du groupe de p xe s ayant pour valeur de contexte, b valeur de contexte courante A l'étape E406, on calcule un coût débit-distorsion assolé au filtrage, par e filtre courant Fn, du groupe d'échantillons correspondant à a valeur de contexte courante V. Ce coût déb td| or ion, noté Cos m est calculé selon l'équation : dom\=+\xd où r est une valeur de débit pour e filtre F, lue dans une table de débit obtenue au préalable associant une valeur de débit à chaque filtre, en fonction de a fonUyn de contexte courante de a valeur de contexte courante; e paramètre 2 est défini comme précédemment (voir équation ) d est a distorsion évaluée par un calcul d'erreur quadratique entre le groupe de pixels garés considérés et les pixels correspondants du signal numérique original S. A l'étape E407, on compare le coût Cost du filtre courant Fn à a valeur de coût minimum Cwm Si e coût Cosrdu qtr courant est inférieur au coût minimum Cwn(E407,Ou), alors la valeur du coût minimum est mise à jour avec a valeur du coût du filtre courant Cos, et une variable d'Index mémorise l'indice n du +2e courant On passe ensuite àl'étape E409. Lorsque e coût Cos; du filtre courant n'est pas nféreur au coût minimum C6n(E407,Non), dans ce cas, on passe directement à étape E409. A l'étape E409, on vérifie s e filtre courant est le dernier filtre Fr, de l'ensemble de filtres, en pratique on détermine s l'Indice n est égal 8. SI c'est e cas (E409, Oui), l'évaluation de tous es filtres est terminée, et l'on passe à l'étape E411 au cours de laquelle on mémorise dans une table de filtrage associée à a fonction de contexte courante Ck l'indice du filtre déterminé comme étant e mGHeur filtre pour e groupe de pixels courant associé à a valeur de contexte courante V> On mémorise également e coût Costn calculé pour ce filtre.
Sinon (E409, Non), on sélectionne un nouveau filtre (E416) et l'on passe à nouveau à l'étape E405 et le traitement i commence comme expliqué précédemment. De retour à l'étape E403, s a val eurde contexte courante V, n'est pas prise par a fonctIon de contexte courante Ck pour au moins un pixel du bloc courant Bk (E403, Non) - comme c'est e cas pour a valeur '2' dans l'exemple de a figure 5 (550) -, alors dans ce cas aucun filtre n'est à sélectionner et aucune distorsion n'est à calculer, ce qu correspond à un coût Lagrang en de O.
Dans ce cas, on passe àl'étape E410 au cours de laquelle a valeur du coût minimum Cwn est m Ise à zéro, et b vaNaRe d'index est mise à une valeur prédéterminée stockée dans une varab e notée U N USED_VALU E représentative du fait que a valeur de contexte courante V Rem pas utilisée pour e bloc de pixels courant Bk. La variable UNUSED_VALUE est par exemple choisie comme ayant une valeur supérieure à a valeur maximale de l'indice correspondant aux filtres, /est-à îr, dans e mode de réa raton choisi, supérieure à 8. Ensuite, à l'étape E411, on mémorise dans a table de filtrage associée à a fonctIon de contexte courante Ck a variable U N US ED_VALU E 20 associée à a valeur de contexte courante V,, Comme on e verra pus bas dans a description, aucune information représentative de a variable U N USED_VALU E n'est codée dans une table de filtrage, dans e signal d'Information de filtrage comprimé. A l'étape E412, on détermine s a valeur de contexte courante est a 25 dernière e valeur de contexte pour a fonctIon de contexte courante. SI ce n'est pas e cas (E412, Non), on passe à a valeur de contexte suivante (E417) et l'étape E403 de test d'uMGa§on de a valeur de contexte est à nouveau exécutée et le traitement recommence comme expliqué précédemment. A l'étape E412, s a valeur de contexte courante est la dernlère 30 valeur de contexte pour a fonction de contexte courante (E412, Oui), alors on passe à l'étape E413 au cours de laquelle on calcule e coût total associé à a fonction de contexte courante. Le coût ta de codage pour a fonctIon de contexte courante est obtenu en' Gant b somme des coûts débit-distorsion obtenus pour les meilleurs filtres déterminés, assolés aux valeurs de contexte prises par b fonction de contexte courante Ck sur e bloc d échandbns courant Bk. Le coût total relatif à b fonction de contexte courante est stocké en mémoire avec b table de filtrage qu %î est associée. A l'étape suivante, E414, on détermine s a fonction de contexte courante est b dernière de l'ensemble des fonctions de contexte. Si ce n'est pas e cas (E414, Non), on passe à unefonction de contexte suivante (E418) l'on applique b nouvelle fonction de contexte courante au bloc d'échantillons courant Bk, à l'étape E401, et le traitement recommence comme décrit précédemment. SItoutes les fonctions de contexte ont été appliquées au bloc courant (E414, Ou), on passe ârétape finale E415, au cours de laquelle on détermine parmi les fonctions de contexte appliquées au bloc courant. c++ qu est b fonction de contexte optimale. La fonctIon de contexte optimale est déterminée comme étant celle dont e coût, calculé Al'étape E413, est le plus faible. Selon un second mode de détermination d'une table de filtrage assolée à une fonction de contexte, selon §nventon, les /entrants de filtres (par exemple les indices des filtres mentionnés plus haut) contenus dans une table de filtrage forment uHme ordonnée, non pas selon l'ordre crossant ou décroissant des valeurs de contexte correspondantes, mais selon l'ordre d'occurrence ou d appaNdOn des valeurs de contexte, lorsque b fonction de contexte correspondante est appliquée sur e bloc d échantWons considéré. Selon ce second mode de réalisation, à l'étape E401 de la figure 4, lorsque l'on applique b nUQn de contexte courante à chaque p xe du bloc courant pour obtenir une valeur de contexte, on mémorise en outre l'ordre d'occurrence des valeurs de contexte obtenues sural bloc considéré. Ans, en reprenant l'exemple de b figure 5 (référence 550), si l'on suppose que e bloc de 8x8 p xe s représenté est traité ligne par ligne à par-11r de b première ligne en partant du haut en commençant par e pixel situé à l'extrémité gauche de b première ligne, l'or d'occurrence des valeurs de 27
contexte ers: 1,0(a ors quel'ordre croissant des valeurs de contexte est 0, )- Ensuite, â 'étape E402, on considère les valeurs de contexte obtenues selon l'ordre occurrence mémorisé. Dans l'exemple précédent. on commencera ainsi par a valeur S\ Le test E403 qui suit est, dans ce cas, toujours positif (réponse 92) et l'étape E410 Red jamais exécutée. Les étapes E404-409 E416 se déroulent comme expliqué précédemment. A l'étape E411, en revanche, on ne mémorise dans a table de filtrage associée à a fonction de contexte courante Ck que les indices des filtres déterminés pour les valeurs de contexte effectivement prises par a fonction de contexte courante ordonnés selon l'ordre d'occurrence des valeurs de contexte. Selon ce mode de réalisation, on obtient aInsI directement des tables de filtrage de taille variable, puisque pour une table de filtrage donnée, seuls les indices des filtres correspondant aux valeurs de contexte effectivement prises par a fonction de contexte correspondante sont contenus dans a table de filtrage, ces indices étant ordonnés selon l'ordre d'occurrence des valeurs de contexte pour lesquelles ces filtres s'appliquent, En liaison avec a figure 7, on va maintenant d+Herlétape E312 de a figure 3, au cours de laquelle e signal d'information de filtrage est comprimé. En particulier, on va décrire le codage des tables de filtrages dans e signal d'informatIon de filtrage, en fonction des informations précitées d'occurrence de valeurs de contexte.
La figure 7 représente ainsi 8 Rocs d'échantillons BO - B7 d'un signa vidéo numérique Svà partir duquel des informations de filtrage ont été générées, conformément à §nven§0n. Ces 6 rmations de filtrage sont incorporées dans un signal d'information de filtrage comprimé transmis avec e signa sous-échantillonné comprimé S (voir figu2).
Le signal d'information de filtrage Inclut: - un signa d'information d'itération contenant pour chaque bloc du signa à filtrer, le nombre d'itérations de filtrage ; un signal de fonction de contexte optimale gemmant une fonction de contexte optimale déterminée pour chaque itération de filtrage d'un bloc considéré du signal ; un signal de table de filtrage contenant une table de rage associée à chaque fonction de contexte optimale. Comme indiqué sur a figure 7, e nombre d'itérations de filtrage appliquées sur es blocs BO- B7 du signa, sont respectivement 0, 1, 1, 1, 1, 2, 2, 1. Selon un mode de réalisation de l'invention, e signa d n rmati 10 d'itération est codé de manière indépendante des autres signaux contenus dans e signal d'information de filtrage, en utilisant un code de type unaire, par exemple un code binaire composé d'au moins un bit. En variante, on peut également utiliser pour coder l'information d'itération de filtrage un codeur arithmétique adaptatif. 15 Par exemple, ce code binaire est O si aucune itération de filtrage Rest applicable au bloc considéré, d'autre part un bit quelconque du code binaire valant ] indique une itéde filtrage, un bit à o suivant un '1' dans e code binaire, indique qu'il n'y a pas d'itération de filtrage supplémentaire pour e bloc considéré. 20 Ainsi pour es blocs BO-B7 de a figure 7, l'in ormation d'itération est respectivement a suivante : {01, {1,O\ {1,01, {1 01, {4,01, {1,1,01, {1,1,01, { ,O{ Comme mentionné pus haut, le signal de fonction de contexte optimale définit une fonction de contexte optimale pour chaque itération de filtrage d'un bloc considéré du signal, et le signal de table de filtrage contient 25 une table de filtrage associée à chaque fonction de contexte optimale déterminée pour un bloc d'échantillons du signal numérique à filtrer. En pratique, une table de filtrage est notée ,b c d]où a, b, ci d sont es indices des meilleurs filtres déterminées pour es valeurs de contextes prises par a fonction de contexte sur un bloc considéré. 30 Selon e premier mode de réalisation exposé plus haut, relatif à a détermination dune fonction de contexte optimale d'une table de filtrage associée, lorsqu'une valeur de contexte possible de a fonction de contexte Rem pas prise pour e bloc d'échantillons considéré du signal, une variable parc@± notée UNUSED_VALUE est codée àapacedunndCedegtre. Dans l'exemp e de a figure 7, cte variable particulière ou symbole spécifique est représentée par e symbole` , Ans, pour Pu tique itération app cah e au bloc B4, a fonction de contexte est C, et la table de filtrage associée est [ ,0,0,U{ ce q d s gnme que e filtre F, est associé à a valeur de contexte '0' de a fonction Cs le filtre Fo est associé à a valeur de contexte q' de a fonction Cs le filtre Fo est associé à a valeur de contexte 'Z de a fonction Cs et enfin a valeur de contexte '3' de a fonction de contexte Cl n'est pas utilisée pour e bloc d'échantillons courant du signal, On résume dans e tableau cl-après es Informations Informations de filtrage obtenues pour es blocs B0 B7 de a figure 7: Bloc |nom rma|on Fonction de Tables de BO d9tér gon contee filtra ge B] {0} [4,0,0,0] B2 {4,0} [ ,0,0, B3 {],0} ;,0,0 ] ^ {],0} B6 ... {] 0} C g [ ,6, , Ci [3,5,1,4] B7 {],0} C3 [0, ,0, Dans l'exemple de a figure 7, le signal de fonction de contexte optimale /en|main unefonction de contexte 0p|ma e déterminée pour chaque itéra bn de filtrage des blocs B4 à B7 considérés du signal contient es Informations su vantes: }], 3, 3, 3, ], ]4, 12, 4, 31 Ces informations correspondent aux indices des fonctions de contexte optimales détermînées, Selon e mode de réalisation choisi, e signal defonction de contexte est codé, c'est-à-dire comprimé, de madère Indépendante des autres signaux d'information de filtrage, selon un codage ente /que, par exemple un codage de Huffman ou un codage arithmétique. Par ailleurs, e signal de table de filtrage contenant une table de filtrage associée à chaque fonction de contexte optimale déterminée pour un bloc d'échantillons donné du signal à filtrer, est d 6Ré en sous-signaux contenant chacun es males de filtrage qui correspondent à a même fonction de contexte 0 |ma e. Ainsi, dans l'exemple de a figure 7, es sous-signaux de table de filtrage - notés ci-après SSTF1, SSTF3, SSTFII, SSTFI2 contiennent es Informations suivantes: SSTFI: tables de filtrage pour C,:} [1,0,0,0], [0,6,3,0], [3,5,1,4] } SSTF3 tables de filtrage pour C3:{[2,0,0, , ,0,0,1], [0,1,0, ,[0,2,0,7 } SSTF11: tables de filtrage pour C11 :} [3,0,0,4] SSTF42:tables de filtrage C 1 2: :} [2,6,1,0] Selon un mode de réalisation de l'Invention, chaque sous-signal de table de filtrage pour une fonction de contexte donnée, est subdivisé en fonction du nombre de valeurs de contexte de a fonction de contexte qui sont effectivement utilisées pour e bloc correspondant du signal. Ainsi, dans l'exemple de a figure 7, on obtient les subdîvlsîons suivantes à partir des Sous-signaux SSTF1, SSTF3, SSTFI1, SSTF12 25 précités: SSTF4_4: Cl: 4 valeurs de contexte : {[ ,5,4, ]} SSTF1_2: C,: 3 valeurs de contexte : { [1.0,0,0], [0,6; ,0 } SSTF3: C3: 2 valeurs de contexte : } [2,0,0,0], ,0,0,1] [0; ,0,0]. [0. 2, 0,7] } 30 SSTF11: C2: 3 valeurs de contexte : {[3,0,0;]} SSTF12: C12 : 4 valeurs de contexte : } ,6,1,0 } 31
On notera que dans cet exemple, seul e premier sou signal (SSTF1) a été subdvisé(SSTF4_] et SSTF4_2), étant donqu'il est le seul à contenir des tables de vitrage dont e nombre de vitres identifiés est différent, puisque a fonction de contexte associée (C/ ne prend pas e même nombre de valeurs de contexte surs blocs de pixels correspondants du signal à filtrer. Ensuite, chaque subdivision de sous-signal est codée de manière indépendante des autres en utilisant un codeur entropique spécifique, adapté aux statistiques propres de a subdivision. On peut utiliser par exemple un codeur de Huffman ou un codeur arithmétique.
A noter que dans e codage de chaque subdivision de sous-signal de table de §Rmge, e symbole (par exemp e:0) indicatif d'une valeur de contexte non prise, n'est pas codé dans e signal codé résultant. Ans, dans a subdivision `SSTFI 2' ci-dessus, seules les tables ,0,0] [63,0] sont encodées. C'est alors au décodeur de recalculer es valeurs de contexte en appliquant a fonction de contexte /entrée par e signal de fonction de contexte transms, donc de déterminer les valeurs de contexte effectivement utilisées pour y associer un indice de dit contenu dans a table de vitrage applicable. Ans, selon e mode de réalisation exposé ci-dessus, le fait de grouper les tables de filtrages associées à une même fonction de contexte, en fonction du nombre de valeurs de contexte effectivement prises sur e bloc d'échantillons concerné, et de coder ensuite ces tables selon un codage de type entrop que permet de s'affranchir du codage dans e signal d'information de filtrage, d'une information relative au nombre de voeu de contexte prises par a fonction de contexte déterminée pour un bloc d'échantillons considéré, cette information étant seulement utilisée pour derminer e mode de codage. Selon une variante de réalisation de l'invention, on associe à chaque table de filtrage un code binaire représentatif de a configuration des valeurs de contexte effectivement prises par a fonction de contexte sur e bloc d'échanMbns considéré. Dans ce cas, l'information d'occurrence de valeurs de contexte est constituée du code binaire, lequel indique les valeurs de contexte 32
qui ne sont pas prises par a fonction de contexte sur e sous-ensemble d'échantillons concerné. Selon un exemple de réalisation, 0n représente b prise en compte ou non dune valeur de contexte possible dans une table de filtrage, en associant à a table de filtrage un bit indicateur pour chaque valeur possible de a fonction de contexte. Ce bit indicateur prenant par exemp e a valeur 0 si la valeur de contexte corresp0ndante n'est pas utilisée, et b valeur1 dans e cas contraire. L'ensemble de ces bits indicateurs constitue alors un mot binaire représentant un nombre entier est associé à a table de filtrage correspondante dans e signal de table de filtrage. Chaque sous signal de table de filtrage corresp0ndantà unes fonction de contexte donnée est ensuite subdivisé en fonction de a valeur du mot binaire présentant a configuration des valeurs de contexte. Ainsi, dans exernpe de a figure 7, e signa de table de filtrage est subdivisé en sous-signaux comportant es informations suivantes : - Cs m t binaire 1111 (15): {[3,5,1,4]} C s mot binaire 1110 4): }1,0,0,0]1 C s mot binaire 0111 (7): {[0,6,3, 0]1 - C3, mot binaire 1001 (9) : {[2,0,0, 0], [6,0,0,1]) .- C3, mot binaire 0110(6): /U ,1,0,?/ - C3, mot binaire 0101 (5): qU, O, } Ce, mot binaire 1011 1): }[3,0,0,4]} - C12, mot binaire 1111 5): {[2,6,1,0]} En pratique, seuls sont transmis l'indice de la fonction de contexte et es indices des filtres pour es valeurs de contexte réellement prises sur le bloc d'échantillons considéré. Ces sous-signaux sont ensuite codés en utilisant un codeur entropique spécifique associé à un dictionnaire (codebook en anglais) dépendant des mots binaires, e la permet en particulier, au niveau du décodeur, de s'affranchir de la nécessité d'effectuer une première passe de calcul pour déterminer es valeurs de contexte non utilisées, pour une fonction de contexte donnée, sur un bloc d'échantillons considéré, comme c'est e cas avec e premier mode de réalisation. Selon une seconde variante de réalisation, lors du codage du signa d'information de filtrage, §nfor ation d'occurrence de valeurs de contexte, utilisée, est représentative durang d'apparition de chaque valeur de contexte prise par une fonction de contexte considérée, lorsque a fonction de contexte est appliquée au sous-ensemble d'échantillons correspondant. Dans ce cas, chaque sous -signal de table de filtrage correspondant à unefonction de contexte donnée est subdivisé en fonction du rang d'apparition de chaque valeur de contexte prise par a fonction de contexte considérée. Puis chaque subdivision de sous-signal de table de filtrage, ainsi obtenue, est codée en utilisant un codeur entropique dépendant du rang d'apparition de chaque valeur de contexte prise par a fonction de contexte associée, Selon cette seconde variante, il n'est pas nécessaire de tnsm tre au décodeur une information relative au nombre de valeurs prises par une fonction de contexte considérée. En effet, lors du décodage, e décodeur détermine à a volée los valeurs de contexte pour un bloc d'échantillons donné, ainsi que leur rang d'occurrence (expliqué plus en détail en relation avec a figure 8), puis sélectionne e décodeurentro%que approprie en fonction du rang d'apparition déterminé pour chaque valeur de contexte calculée. Dans los modes de réalisation exposés cidessus, le fait qu'aucune donnée (indice de filtre en particulier) concernant une valeur de contexte possible, pour une fonction de contexte donnée, qui n'est pas utilisée pour un bloc d'échantillons donné, n'est codée dans e signal d'information de filtrage, contribue à diminuer e volume des données comprimées pour e signa d'information de filtrage rendre b compression du signal pus efficace. Les tables de filtrage sont par conséquent de taille variable en fonction des valeurs de contexte effectivement utilisées, contrairement à l'art antérieur mentionné dans a partie introductive de a description.
Par ailleurs, comme mentionné précédemment, le signa d'information de filtrage selon 'invention comprend trois types de signaux différents un signa d'information d'itération de filtrage, un signal dei fonction de contexte, un signal de table de filtrage. Chacun de ces trois signaux est ensuite encodé de manière indépendante des autres, en utilisant un codage entrop que spécifique. On rappelle d| qu'un codage entro%que présente notamment l'avantage d'impliquer une faible complexité de calcul. De plus, selon l'invention, e signal de table de filtrage est divisé en sous-signaux contenant chacun es tables de filtrage qu correspondent à a efonction de contexte optimale. Selon l'invention, es sous-signaux de table de filtrage sont 10 subdivisés en fonction dune information supplémentaire relative aux valeurs de contexte effectivement prises par a fonction de contexte déterminée pour un bloc d'échantillons considéré. Ensuite, chaque subdivision de sous-signal de table de filtrage est encodée indépendamment des autres subdivisions selon un code entropique spécifique utilisant l'information supplémentaire précitée. 15 La figure 8 est un organigramme mustnt, selon un mode de réalisation de l'invention, e traitement, dans un décodeur, d'un signal numérique sur-échantillonné après décodage, en utilisant des informations de filtrage produites selon l'invention. Ce traitement est mis en oeuvre, par exemple, dans l'unité 222 du décodeur 6 décrit en liaison avec a figure 2, et fait 20 suite aux opérations de séparation ém utp exage, unité 214) du signal numérique comprimé Sc et du signal d'information de filtrage, de décompression des deux signaux séparés (unités 216, 220), de suréchammonnage(unté 218) du signal numérique décomprimé SS délivrant e signal sur-échantillonné Sv. Dans cet exemple e signal S est un signal vidéo. 25 Sur a figure 8, es opérations susmentionnées aboutissant au signal S, sont résumées parl'étape E800, Le signal numérique S obtenu possède a même résolution que e signal numérique original Si. Ensuite à r étape E801, e signal numérique Sv est divisé en blocs, selon e même mode de division que celui appliqué au codage (E300, figure 3). 30 A l'étape E802, un premier bloc du signal S, est sélectionné, cons uant e bloc courant (noté Bk).
A l'étape E803, e nombre d'itérations qu s pour e bloc courant e obtenu à partir du signal d'information d'itération contenu dans e signal d'information de filtrage. Ensuite, à l'étape E804, la fonction de contexte optimale pour e bloc courant est d'abord identifiée. En pratique, c'est indice de la fonction de contexte optimale qui est déterminé, à partir du signal de fonction de contexte contenu dans e signal d'information de filtrage. Toujours à l'étape E804, a table de filtrage correspondant à a fonction de contexte optimale est déterminée à partir du signal de table de filtrage contenu dans e signal d'information de filtrage. H /agit ensuite de déterminer un filtre, c'est-à-dire une orientation de fHtrage, pour chaque échantillon du bloc courant. En d'autres termes, H s'agit de déterminer indice de filtre, contenu dans a table de filtrage associée à a fonction de contexte pour e bloc courant, qui s'applique pour chaque échantillon du bloc. Lorsque e codage du signal d'information de filtrage a été effectué conformément au premier mode de réalisation décrit pus haut - selon lequel chaque sous-signal de table de filtrage pour une fonction de contexte donnée, est subdivisé en fonction du nombre de valeurs de contexte de a fonction de contexte qui sont effectivement utilisées pour e bloc considéré du signal, dans lequel chaque subdivision de sou signal est codée de manière indépendante des autres en utilisant un codeur entropique spécifique, adapté aux statistiques propres de a subdivision-, e bloc courant du signal numérique est d'abord analysé, lors dune première passe de traitement, pour derminer es valeurs de contexte utilisées. A cette fin, a fonction de contexte déterminée pour e bloc courant est appliquée pour chaque échantillon du bloc. Une fois que l'on e déterminé es valeurs de contexte effectivement prises par a fonction de contexte sur e b oc courant, le nombre de valeurs de contexte utilisées permet de sélectionner un décodeur entropique qui coïncide avec e codeur entropique utilisé pour coder e sous-signal de table de filtrage contenant a table de filtrage associée à a fonction de contexte déterminée pour e bloc courant, En utilisant e décodeur entropique précité, les indices des filtres par conséquent es filtres à utiliser pour filtrer les échantillons du bloc courant sont derminés. Les échantillons du bloc courant sont alors filtrés. Lorsque e codage du signal d'information de filtrage a été effectué conformément au second mode de re+Ra§on décrit pus haut, e décodeur détermine à a volée les valeurs de contexte pour un bloc d'échantillons donné, ainsi que leur rang d'occurrence, puis sélectionne e décodeur entr0pique approprié en fonction du rang apparition déterminé pour chaque valeur de contexte calculée. ]Û A cette fin, pour chaque bloc d'échantillons du signa reçu, les échangbns du bloc sont t |tés selon e même ordre qu'au codage. A chaque fois qu'une valeur de contexte est obtenue pour un échantillon donné, 0n teste si b valeur de contexte a été obtenue précédemment pour ce même bloc d'échantillons. Si ce n'est pas e cas - c'est-à-dire que a valeur de contexte 15 apparaît pour a première fois -, on mémorise a valeur son rang d'apparition dans a série de valeurs de contexte déjà obtenue, puis on sélectionne e décodeur entropique adapté pour déterminer 'ind Ce du filtre à utiliser pour filtrer l'échantillon courant, On filtre alors cet échantillon. Si a valeur de contexte a déjà été obtenue précédemment pour e 20 même bloc d'échantillon, dans ce cas 0n réuMGe e filtre précédemment déterminé pour filtrer l'échantillon courant. On procède ainsi jusqu'à ce que l'ensemble des échantillons du bloc courant ait été filtré.

Claims (13)

  1. REVENDICATIONS1. Procédé de codage d'informations de filtrage d'un signal numérique, dans lequel lesdites InformatIons de filtrage sont obtenues par des opérations exécutées pour chaque sous-ensemble d'échantillons du signal numérique préalablement divisé en sous-ensembles prédéfinis d'échantillons, et incluant: a détermination (E415) d'une fonction de contexte prenant, pour un échantillon quelconque du sous-ensemble d'échantillons considéré, une valeur parmi un ensemble §d de valeurs de contexte, et b d erm raton dune table de filtrage associant un identifiant de filtre prédé blà des valeurs de contexte de a fonction de contexte déterminée pour e sous-ensemble d'échantillons considéré ; ledit procédé étant caractérisé en ce que: - a d erm raton dune table de filtrage pour un sous-ensemble d'échantillons quelconque cons déré du signal numérique, inclut l'obtention (E403, E410) d'une information dite d'occurrence de valeurs de contexte et relative aux valeurs de contexte pHSeS par a fonction de contexte déterminée pour e sous-ensemble d écham@ons considéré; - es tables de filtrage sont codées dans un signal d'Information de filtrage, e codage de chacune des tables de filtrage prenant en compte ladIte 20 Information d'occurrence de valeurs de contexte.
  2. 2.P cédé selon a revendication 1, dans lequel : - les identifiants de filtres dune table de filtrage forment une liste ordonnée selon un ordre prédéterminé parmi l'ordre croissant ou l'ordre décroissant des valeurs de contexte auxquelles ces /entrants sont associés, 25 - ladite information oCCu mente de valeurs de contexte est Indicative de l'ensemble des valeurs de contexte qu ne sont pas prises par la fofonction de contexte pour e sous-ensemble d'échantillons considéré - cet ensemble pouvant être vide -, et est associée à a table de vitrage correspondante avant 30 codage de ladite table,
  3. 3. Procédé selon a revendication 2, dans lequel ledit signal d'information de filtrage inclut un signal de table de filtrage contenant pour chaque sous-ensemble d'échantillons du signal numérique, au moins une table de filtrage correspondant à unefonction de contexte, dans lequel ledit signal de table de filtrage est divisé en sous signaux de table de filtrage contenant chacun es tables de filtrage qui correspondent à la même fonction de contexte,
  4. 4. Pcédé selon a revendication 3, dans lequel : - chaque sous-signal de table de filtrage est en outre subdivisé en fonction du nombre de va eu rs de contexte effectivement prises par a fonction de contexte associée, de manière à ce que chaque subdivision de sous-signal contienne es tables de filtrage associées à une même fonction de contexte ayant pris e même nombre de valeurs de contexte, - chaque subdivision de sous-signa de table de filtrage, ainsi obtenue, est codée de manière indépendante des autres subdivisions de sous-signal de table de filtrage, en utilisant un codeur entropique spécifique.
  5. 5. Procédé selon a revendication 3 ou 4, dans lequel ladite information d'occurrence de voeu de contexte comprend un symbole spécifique remplaçant, dans a table de filtrage associée, chaque identifiant de filtre pour lequel a valeur de contexte correspondante n'a pas été prise par a fonction de contexte pour e sous-ensemble d'échantillons considéré, édit symbole spécifique n'étant pas codé dans e signal d'information de filtrage.
  6. 6. Pcédé selon a revendication 3, dans tique: - ladite information d'occurrence de valeurs de contexte est constituée d'un code binaire représentatif de la configurat on des valeurs de contexte effectivement prises par a fonction de contexte sur e sous-ensemble d'échantillons correspondant; - chaque sous-signal de table de filtrage correspondant à n ion de contexte donnée est subdivisé en fonction de a valeur du mot binaire présentant a configuration des valeurs de contexte prises ; et - chaque subdivision de sous-signal de table de filtrage, ainsi obtenue, est codée en utilisant un codeur entpique associé à un dictionnaire dépendant desdits codes binaires.
  7. 7. Procédé selon a revendication 6, dans lequel ledit code binaire est composé d'un nombre de bits égal au nombre de valeurs de contexte possibles, un bit quelconque du code binaire étant mis à une prem G valeur prédéterminée si a valeur de contexte correspondante est uMGée, et à autre valeur dans e cas contraire.
  8. 8. Procédé selon a vend Cation 1, dans lequel les identifiants de filtres contenus dans une table de filtrage forment une liste ordonnée selon l'ordre d'occurrence des valeurs de contexte prises par a fonction de contexte correspondante, lorsque celle-ci est appliquée au sous-ensemble d'échantillons correspondant.
  9. 9. Procédé selon a revend ica§0n 8, dans lequel ledit signal d'information de filtrage inclut un signal de table de filtrage contenant pour chaque sous-ensemble d'échantillons du signal numérique, au moins une table de filtrage correspondant à unefonction de contexte, et dans lequel ledit signal de table de filtrage est divisé en Sous signaux de table de filtrage contenant chacun los tables de filtrage qui correspondentà a même fonion de contexte.
  10. 10. Pcédé selon a revendication 9, dans lequel : - ladite information d'occurrence de valeurs de contexte est indicative du nombre de valeurs de contexte différentes prises par la fonction de contexte pour e sous-ensemble éChanHbnS considéré, cinformation IndicatIve du nombre de valeurs de contexte prises étant transmiavec e signal de mite de filtrage ; - chaque sous-signal de table de filtrage correspondant à une fonction de contexte donnée est subdivisé en fonction du nombre de valeurs de contexte prises par a fonction de contexte; - chaque subdivision de sous-signal de table de filtrage, ainsi 25 obtenue, est codée en uH&antun codeurent%que dépendant du nombre de valeurs prises par a fonction de contexte associée.
  11. 11.P cédé selon a vend Cation 9, dans lequel : ladite information d'occurrence de valeurs de contexte est présenm§ve du rang d'apparition de chaque valeur de contexte prise par une 30 nGyn de contexte considérée, lorsque a fonction de contexte est appliquée au sous-ensemble d'échantillons correspondant,- chaque sous-signal de table de filtrage correspondant à une fonction de contexte donnée est subdivisé en fonction du rang d'apparition de chaque valeur de contexte prise par la fonction de contexte considérée ; - chaque subdivision de sous-signal de table de filtrage, ainsi obtenue, est codée en utilisant un codeur entropique dépendant du rang d'apparition de chaque valeur de contexte prise par la fonction de contexte associée.
  12. 12. Dispositif de codage d'informations de filtrage d'un signal numérique, comportant des moyens adaptés à la mise en oeuvre d'un procédé 1O de codage d'informations de filtrage d'un signal numérique, selon l'une quelconque des revendications 1 à 11,
  13. 13. Programme d'ordinateur sur un support d'information lisible par un ordinateur, caractérisé en ce qu'il comporte des instructions de programme d'ordinateur adaptées à mettre en oeuvre un procédé selon l'une quelconque 15 des revendications 1 à 11, lorsque ledit programme est chargé et exécuté dans un ordinateur.
FR1056618A 2010-08-16 2010-08-16 Procede et dispositif de codage d'un signal numerique Expired - Fee Related FR2963865B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1056618A FR2963865B1 (fr) 2010-08-16 2010-08-16 Procede et dispositif de codage d'un signal numerique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1056618A FR2963865B1 (fr) 2010-08-16 2010-08-16 Procede et dispositif de codage d'un signal numerique

Publications (2)

Publication Number Publication Date
FR2963865A1 true FR2963865A1 (fr) 2012-02-17
FR2963865B1 FR2963865B1 (fr) 2013-09-27

Family

ID=43299629

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1056618A Expired - Fee Related FR2963865B1 (fr) 2010-08-16 2010-08-16 Procede et dispositif de codage d'un signal numerique

Country Status (1)

Country Link
FR (1) FR2963865B1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080084932A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation Controlling loop filtering for interlaced video frames
WO2008075247A1 (fr) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Compression et décompression d'images
EP1944974A1 (fr) * 2007-01-09 2008-07-16 Matsushita Electric Industrial Co., Ltd. Algorithmes d'optimisation post-filtre dépendants de la position
FR2927744A1 (fr) * 2008-02-20 2009-08-21 Canon Kk Procede et dispositif de filtrage d'un signal numerique.
WO2010136547A1 (fr) * 2009-05-27 2010-12-02 Canon Kabushiki Kaisha Procédé et dispositif de traitement d'un signal numérique

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080084932A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation Controlling loop filtering for interlaced video frames
WO2008075247A1 (fr) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Compression et décompression d'images
EP1944974A1 (fr) * 2007-01-09 2008-07-16 Matsushita Electric Industrial Co., Ltd. Algorithmes d'optimisation post-filtre dépendants de la position
FR2927744A1 (fr) * 2008-02-20 2009-08-21 Canon Kk Procede et dispositif de filtrage d'un signal numerique.
WO2010136547A1 (fr) * 2009-05-27 2010-12-02 Canon Kabushiki Kaisha Procédé et dispositif de traitement d'un signal numérique

Also Published As

Publication number Publication date
FR2963865B1 (fr) 2013-09-27

Similar Documents

Publication Publication Date Title
EP0448491B1 (fr) Procédé de codage et de transmission à au moins deux niveaux de qualité d&#39;images numériques appartenant à une séquence d&#39;images, et dispositifs correspondants
EP0547696B1 (fr) Système de transmission et/ou stockage de signaux correspondant à des images texturées
FR2889382A1 (fr) Procede et dispositif de filtrage d&#39;un signal numerique multidimensionnel et procedes et dispositifs de codage et decodage associes
FR2716587A1 (fr) Procédé et appareil de compression d&#39;images.
EP3707900B1 (fr) Procédé de formation d&#39;une séquence d&#39;images de sortie à partir d&#39;une séquence d&#39;images d&#39;entrée, procédé de reconstruction d&#39;une séquence d&#39;images d&#39;entrée à partir d&#39;une séquence d&#39;images de sortie, dispositifs, equipement serveur, equipement client et programmes d&#39;ordinateurs associés
FR2755818A1 (fr) Codage de signal numerique par decomposition en sous-bandes de frequence et quantification vectorielle a etats finis
FR2959636A1 (fr) Procede d&#39;acces a une partie spatio-temporelle d&#39;une sequence video d&#39;images
CA2346342C (fr) Compression et codage de reseau maille tridimensionnel
EP2368367B1 (fr) Système et procédé interactif pour la transmission sur un réseau bas débit d&#39;images clefs sélectionnées dans un flux video
FR2927744A1 (fr) Procede et dispositif de filtrage d&#39;un signal numerique.
FR2628276A1 (fr) Procede de reduction de debit d&#39;une sequence de donnees d&#39;assistance a la reconstitution d&#39;une image electronique a partir d&#39;un signal sous-echantillonne
WO2017055771A1 (fr) Procédé d&#39;encodage de flux de données vidéo basées sur des groupements d&#39;images (gop)
FR2963865A1 (fr) Procede et dispositif de codage d&#39;un signal numerique
EP1202577B1 (fr) Procédé de traîtement de données vidéo
WO2020188172A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;une séquence vidéo multi-vues
EP1714498B1 (fr) Procede de recherche de la directon de prediction en codage video intra-image
FR2927745A1 (fr) Procede et dispositif de codage d&#39;un signal numerique.
FR2929431A1 (fr) Procede et dispositif de classification des echantillons representatifs d&#39;un signal numerique d&#39;image
FR3086831A1 (fr) Codage et decodage d&#39;une video omnidirectionnelle
FR3143246A1 (fr) Procédé et dispositif de codage et décodage d’images.
WO2024121107A1 (fr) Procédé et dispositif de codage et décodage d&#39;images.
WO2024121109A1 (fr) Procédé et dispositif de codage et décodage d&#39;images
EP3203737A1 (fr) Procédé et dispositif d&#39;encodage d&#39;un signal numérique multidimensionnel, en particulier un signal d&#39;image, et procédé et dispositif correspondants de décodage
FR3143247A1 (fr) Procédé et dispositif de codage et décodage de séquences d’images.
WO2022175419A1 (fr) Procédé de fourniture d&#39;un contenu comportant au moins une image, format de fichier

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 7

ST Notification of lapse

Effective date: 20180430