FR3064870A1 - Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes - Google Patents
Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes Download PDFInfo
- Publication number
- FR3064870A1 FR3064870A1 FR1752824A FR1752824A FR3064870A1 FR 3064870 A1 FR3064870 A1 FR 3064870A1 FR 1752824 A FR1752824 A FR 1752824A FR 1752824 A FR1752824 A FR 1752824A FR 3064870 A1 FR3064870 A1 FR 3064870A1
- Authority
- FR
- France
- Prior art keywords
- transforms
- list
- block
- transformed
- transform
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
L'invention concerne un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant (C') : - Décodage des coefficients du bloc courant à partir de données codées; - Transformation du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste (Sc) de Nc transformées, dites applicables; - Reconstruction de l'image à partir du bloc décodé transformé ; Evaluation des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur; Remise en cause des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur. Selon l'invention, le procédé comprend en outre les étapes suivantes : - Evaluation (T1) d'au moins une partie des transformées de l'ensemble (BT) de transformées pour le bloc décodé transformé à partir d'au moins un indicateur de performance, connu de l'encodeur; - Remise en cause (T2) de transformées de la liste de transformées (Sc) en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
Description
Titulaire(s) : BoCOM,ORANGE Société anonyme, TDF Société par actions simplifiée.
Demande(s) d’extension
Mandataire(s) : AVOXA.
PROCEDE DE DECODAGE D'AU MOINS UNE IMAGE NUMERIQUE, PROCEDE DE CODAGE, DISPOSITIFS, EQUIPEMENT TERMINAL ET PROGRAMMES D'ORDINATEURS ASSOCIES.
FR 3 064 870 - A1 'E/) L'invention concerne un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc, dit bloc courant (C') :
- Décodage des coefficients du bloc courant à partir de données codées;
- Transformation du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste (Sc) de Ne transformées, dites applicables;
- Reconstruction de l'image à partir du bloc décodé transformé;
Evaluation des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur;
Remise en cause des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
Selon l'invention, le procédé comprend en outre les étapes suivantes:
- Evaluation (T1) d'au moins une partie des transformées de l'ensemble (BT) de transformées pour le bloc décodé transformé à partir d'au moins un indicateur de performance, connu de l'encodeur;
- Remise en cause (T2) de transformées de la liste de transformées (Sc) en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
i
Procédé de décodage d'au moins une image numérique, procédé de codage, dispositifs, équipement terminal et programmes d'ordinateurs associés
1. Domaine de l'invention
Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, divisée en blocs de pixels.
L'invention concerne plus particulièrement la transformation d'un bloc de pixels, issu ou non d'une prédiction. Elle trouve notamment son application dans un contexte de compétition de transformées.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant :
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D),
- etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC (pour « Advanced Video Coding », en anglais) et HEVC (pour « High Efficiency Video Coding », en anglais) et leurs extensions futures (MVC, 3D-AVC, MVHEVC, 3D-HEVC, post-HEVC, etc), et au décodage correspondant.
2. Présentation de l'art antérieur
La compression de séquences d'images et de vidéo fait appel à des transformations. Cellesci sont appliquées sur un signal résiduel, obtenu par différence entre les pixels d'un bloc de l'image à coder et sa prédiction.
On connaît de l'article de Zhao, J. Chen, M. Karczewicz, X. Li et C. Wei-Jung, intitulé Enhanced Multiple Transform for Video Coding,, publié par la conférence Data Compression Conférence (DCC), en 2015, le fait de provisionner une liste de plusieurs transformées pour un mode de codage donné. Ainsi le codeur a la possibilité de sélectionner dans cette liste une transformée adaptée au résidu courant.
Par exemple, dans la solution décrite, une liste fixe de 5 transformées est dédiée au codage inter. Elle comprend des transformées DCT de type 2 et 8 et DST de type 7.
Afin d'effectuer la transformée inverse, le décodeur doit être informé de la transformée sélectionnée au codeur. Ainsi le codeur utilise un indicateur pour signaler au décodeur la transformée utilisée. La valeur de cet indicateur est portée sur un certain nombre de bits.
Le fait d'accroître le nombre de transformées permet d'améliorer les performances de compression.
3. Inconvénients de l'art antérieur
La compétition de transformées implique un surcoût de signalisation systématique, qui minimise le bénéfice apporté par le nombre de transformées.
La solution décrite dans le document cité offre un bon compromis entre nombre de transformées et signalisation, cependant la liste de transformées pour un contexte de codage donné est figée.
Or il apparaît que pour certaines images, seules certaines transformées de la liste proposée sont performantes et que pour d'autres, une plus grande diversité de transformées serait nécessaire pour obtenir une meilleure compression.
4. Objectifs de l'invention
L'invention vient améliorer la situation.
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de proposer une solution qui permettre d'améliorer les performances de compression sans contrepartie en termes de signalisation.
Un autre objectif de l'invention est de proposer une solution qui offre une plus grande flexibilité et permette d'adapter la liste de transformées aux images à coder.
5. Exposé de l'invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant :
Décodage des coefficients du bloc courant à partir de données codées;
- Transformation du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste de Nc transformées, dites applicables;
- Reconstruction de l'image à partir du bloc décodé transformé ;
Selon l'invention, le procédé comprend en outre les étapes suivantes :
- Evaluation des transformées d'une liste de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance, connu de l'encodeur;
- Remise en cause des transformées de la liste de transformées applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
Avec l'invention, le décodeur a la possibilité de remettre en cause la liste de transformées appliquées aux blocs de l'image courante, en vue d'améliorer les performances de compression. Pour ce faire, il évalue, pour le bloc courant, les performances des transformées d'une partie ou de la totalité des transformées disponibles au codeur comme au décodeur et exploite le résultat de cette évaluation pour prendre une décision. S'il décide de modifier la liste de transformées courantes, il le fait dans le respect de règles de modification, connues de l'encodeur. La liste de transformées ainsi modifiée est appliquée au bloc suivant.
L'invention propose une approche tout-à-fait nouvelle et inventive de la compression vidéo, selon laquelle le décodeur ne fait plus que subir les décisions prises par l'encodeur mais contribue activement à l'évolution des paramètres de codage.
L'invention s'applique avantageusement au décodeur intégré au codeur, et plus généralement à tout décodeur.
L'invention concerne aussi un procédé de codage d'au moins une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant, de dimensions prédéterminées :
- Transformation du bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Nc transformées d'un ensemble de Nt transformées ;
- Encodage du bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
- Insertion des données codées dans un train binaire représentatif de l'image codée ;
Selon l'invention, le procédé comprend en outre :
Décodage du bloc encodé ;
Transformation du bloc décodé à l'aide de la transformée sélectionnée ;
- Evaluation d'une liste Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance, connu du décodeur;
- Remise en cause des transformées de la liste de transformées applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur.
Avec l'invention, le codeur réalise une évaluation des transformées et une prise de décision similaires à celles du décodeur. La liste de transformées évolue ainsi de façon dynamique et synchrone au codeur comme au décodeur. De cette manière, aucune signalisation supplémentaire n'est requise entre eux, ce qui permet d'améliorer les performances de compression sans contrepartie sur la quantité d'informations à signaler entre le codeur et le décodeur.
Les différents modes ou caractéristiques de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux caractéristiques du procédé de décodage et/ou du procédé de codage défini ci-dessus.
Selon un aspect de l'invention, l'étape d'évaluation comprend un calcul d'un score par transformée à partir du au moins un indicateur de performance, un classement des transformées au moins à l'aide des scores calculés et selon un ordre de performance décroissante et l'étape de remise en cause comprend une formation d'une sous-liste à partir des transformées les mieux classées selon au moins une règle prédéterminée et un remplacement de transformées d'au moins une sous-liste de la liste transformées applicables par la sous-liste formée.
Un avantage de ce mode de réalisation est qu'il est à la fois simple et efficace. Une partie des transformées est systématiquement remplacée par la sous-liste des transformées les plus performantes selon l'indicateur de performance, sans comparaison préalable de la sous-liste à la liste initiale. On comprend que dans certains cas, l'opération peut être neutre.
Selon un autre aspect de l'invention, l'étape de classement prend en outre en compte les scores des transformées pour une pluralité de blocs précédemment traités.
Un avantage est de rendre la prise de décision plus fiable en lissant le classement et en évitant les variations locales de scores qui dévieraient de la tendance générale observée.
Selon encore un autre aspect de l'invention, la liste de transformées applicables au bloc courant comprend une sous-liste de Nf transformées fixes et une sous-liste de Nr transformées remplaçables, avec Nc = Nf + Nr et la banque de transformées comprend au moins la sous-liste de transformées remplaçables.
Un avantage est qu'on garantit que certaines transformées fixes, donc non remplaçables, participent systématiquement à la compétition de transformées.
Selon un autre aspect de l'invention, la liste de transformées applicables étant de longueur fixe égale à Ne, la sous-liste formée est de longueur fixe.
Un avantage de ce mode est qu'il maintient une liste de transformées applicables Sc de taille fixe égale à Ne, ce qui est simple à mettre en œuvre.
Dans le cas où seulement Nr<Nc transformées sont remplaçables, la sous-liste formée est de longueur Nr, qui est fixe elle aussi.
Selon encore un autre aspect de l'invention, l'étape de remise en cause compare les scores des transformées à au moins un seuil prédéterminé et la sous-liste est formée des transformées qui satisfont au moins un critère lié à ce au moins un seuil.
Un avantage de ce mode de réalisation est qu'il ne sélectionne que les transformées dont les performances sont suffisantes au sens d'un ou plusieurs critères. Le nombre Ne, Nr de transformées contenues dans la liste Sc est donc susceptible de varier au cours du temps.
Selon encore un autre aspect de l'invention, le procédé comprend une étape de validation de la remise en cause de liste de transformées applicables mettant en œuvre une information codée représentative d'une autorisation ou d'une interdiction de remise en cause de la liste de transformées applicables pour le bloc suivant.
Un avantage de ce mode de réalisation est que le codeur contrôle la remise en cause de la liste de transformées applicables au bloc suivant par le décodeur, à l'aide d'une information transmise dans le flux de données codées.
Avantageusement, en ce qui concerne le procédé de codage, l'étape de validation comprend une étape d'évaluation des transformées de la banque de transformées selon un critère débit-distorsion, une étape de classement des transformées évaluées selon ce critère et en ce que l'étape de validation compare le classement obtenu selon le critère débit-distorsion et le classement obtenu selon les scores calculés et valide la remise en cause en fonction d'un critère de similarité entre les deux classements.
Un avantage est de laisser à l'encodeur la validation de la décision finale. Seul l'encodeur a accès au signal source et donc à une vérité terrain. Il est seul capable d'évaluer l'impact d'une décision de changement de transformées sur la base d'un critère débit distorsion à partir du bloc reconstruit et du bloc original. Selon ce mode de réalisation de l'invention, le décodeur détermine qu'une remise en cause de la liste de transformées Sc est nécessaire, mais c'est l'encodeur qui valide le changement lorsque son évaluation lui indique qu'il va dans le sens d'une amélioration de la compression.
Avantageusement, en ce qui concerne le procédé de décodage, l'étape de validation comprend une lecture de ladite information dans les données codées et en ce que la validation de la remise en cause de la liste de transformées applicables dépend de la valeur de ladite information.
Le décodeur exploite donc l'indicateur de validité lu dans le flux pour valider ou invalider sa proposition de remise en cause de la liste de transformées applicables.
L'invention concerne également un dispositif de décodage adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de décodage sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de décodage est compris dans un terminal.
L'invention concerne également un dispositif de codage adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus.
Ce dispositif de codage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de codage sont les mêmes que ceux du procédé de codage, et ne sont pas détaillés plus amplement.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de codage est compris dans un terminal, ou un serveur.
L'invention concerne aussi un signal portant un train binaire comprenant des données codées représentatives d'au moins une image, ladite image étant divisée en blocs de pixels traités dans un ordre défini, les données codées comprenant, pour un bloc courant, une information représentative d'un index d'une transformée appliquée à ce bloc dans une liste de transformées prédéterminé.
Selon l'invention, les données codées comprennent en outre une information représentative d'une autorisation ou d'une interdiction d'une remise en cause de ladite liste pour le bloc suivant, et, sur réception dudit signal, un décodeur est apte à valider une remise en cause de ladite liste en fonction de la valeur de ladite information.
L'invention concerne en outre un équipement terminal comprenant un dispositif de décodage selon l'invention et/ou un dispositif de codage selon l'invention.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de codage d'une séquence d'images numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur et un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de décodage d'une séquence d'images numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur.
L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image ou d'une séquence d'images et au dispositif de décodage selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en œuvre un procédé de codage et un programme d'ordinateur mettant en œuvre un procédé de décodage, tel que décrits précédemment.
6. Liste des figures
D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :
la figure 1 présente de façon schématique des listes de transformées mises en œuvre par l'invention ;
la figure 2 présente de façon schématique les étapes d'évaluation d'un ensemble de transformées et de décision de changement d'une liste de transformées en fonction des résultats de l'évaluation, selon un mode de réalisation de l'invention ;
la figure 3 présente de façon schématique les étapes d'un procédé de codage selon un premier mode de réalisation de l'invention ;
la figure 4 détaille l'étape de compétition de transformées selon ce premier mode de réalisation de l'invention ;
la figure 5 présente de façon schématique les étapes d'un procédé de décodage selon le premier mode de réalisation de l'invention ;
la figure 6 présente de façon schématique les étapes d'un procédé de codage selon un deuxième mode de réalisation de l'invention ;
la figure 7 détaille les étapes d'évaluation et de décision selon ce deuxième mode de réalisation de l'invention ;
la figure 8 présente de façon schématique les étapes d'un procédé de décodage selon un deuxième mode de réalisation de l'invention ;
les figures 9 et 10 illustrent l'amélioration des performances de compression apportées par le procédé selon l'invention ;
la figure 11 présente de façon schématique un exemple de structure matérielle d'un dispositif de codage selon l'invention ; et la figure 12 présente de façon schématique un exemple de structure matérielle d'un dispositif de décodage selon l'invention.
7. Description d'un mode de réalisation particulier de l'invention
L'invention s'applique à la fois à un codeur et à un décodeur d'une séquence d'images. Le codeur applique un schéma de codage par blocs, selon lequel un bloc est transformé et les coefficients du bloc transformés sont encodés et transmis au décodeur sous la forme d'un train binaire. Préalablement à la transformation, le bloc courant peut être prédit par rapport à un ou plusieurs blocs déjà traités et c'est un bloc résidu obtenu par différence entre le bloc prédit et le bloc original, qui est transformé.
Le principe général de l'invention repose sur l'évaluation des transformées d'une banque de transformées, au moins sur la base du traitement du bloc courant et sur la remise en cause ou non de la liste de transformées prédéterminé pour le traitement du bloc suivant, en fonction des résultats de cette évaluation.
Le codeur et le décodeur réalisent ces opérations de façon identique de telle sorte qu'ils aboutissent à la même mise à jour de la liste de transformées applicable au bloc suivant.
On présente tout d'abord des modes de mises en œuvre de l'évaluation des transformées de la banque de transformées et de la décision de changement de la liste de transformées selon l'invention, puis un procédé de codage et un procédé de décodage mettant en œuvre ces différents modes de réalisation de l'invention.
Dans la suite de la description, on a recours à plusieurs ensembles et listes de transformées, qui sont illustrés par l'exemple de la Figure 1.
On désigne par Bt une banque de transformées évaluées lors du codage et du décodage d'un bloc d'une séquence d'images, et dont les transformées sont susceptibles d'être utilisées pour le codage ou le décodage d'un bloc suivant de la séquence d'images courantes. Elle comprend un nombre Nt de transformées, avec Nt entier non nul.
On définit par Sf une liste de transformées, dites fixes, au sens où elles ne sont pas remplaçables par d'autres transformées de la banque Bt. Elle comprend un nombre Nf de transformées. Les transformées de la liste Sf ne font pas partie de la banque de transformées BT.
On désigne par Sr une sous-liste de transformées applicables au bloc courant en complément de la liste fixe Sf, dites remplaçables, au sens où elles peuvent être supprimées et être remplacées par d'autres contenues dans la banque. La composition de cette sous-liste peut donc évoluer au cours du traitement. Cette liste comprend un nombre variable Nr de transformées, qui peut être fixe ou variable selon le mode de réalisation.
On désigne par Sc une liste dite courante, qui comprend toutes les transformées qui sont applicables au bloc courant. Par construction, cette liste est la concaténation des listes Sf et Sr. Elle comprend un nombre Ne de transformées, avec Ne = Nf + Nr.
En relation avec la Figure 2, on décrit l'étape Tl d'évaluation de transformées et l'étape T2 de remise en cause de liste courante de transformées Sc applicables au bloc suivant selon un premier mode de réalisation de l'invention.
Les transformées sont par exemple de type transformée en cosinus discrète ou DCT (pour « Discrète Cosine Transform », en anglais), transformée en sinus discrète ou DST (pour « Discrète Sine Transform », en anglais) ou des transformées dérivées par apprentissage, de type KLT ( pour « Karhunen Loeve Transform », en anglais) ou des transformées optimisées selon un critère débitdistorsion, conformément au document de Arrufat, intitulé « Mode-dependent transform compétition for HEVC » et publié par la conférence IEEE ICIP 2015.
L'étape Tl d'évaluation s'applique à une version décodée du bloc courant dans le domaine spatial ou au bloc résidu Res décodé. Autrement dit, l'étape de prédiction est optionnelle. Néanmoins, dans les modes de réalisation décrits ci-après, on considère des blocs résidus, sans limitation de portée de l'invention.
ίο
On notera ainsi que pour garantir un fonctionnement similaire du codeur et du décodeur, il convient d'évaluer au codeur comme au décodeur le bloc courant décodé ou le bloc résidu décodé, seules versions disponibles au niveau du décodeur.
L'étape Tl évalue les Nt transformées T, avec i entier compris entre 1 et Nt, de la banque de transformées Bt disponible au codeur comme au décodeur.
On suppose par exemple qu'elle les évalue successivement en mettant en œuvre les sous-étapes suivantes :
Au cours d'une sous-étape Tll, la transformée courante T, est appliquée au bloc résidu Res décodé. On obtient un bloc transformé Res-r.
Optionnellement une quantification des coefficients du bloc transformé est réalisée en T12. Elle produit un bloc résidu transformé quantifié ResTQ.
En T13, on calcule au moins un indicateur de performance IP de la transformée T,. Cet indicateur peut être obtenu à partir d'un ou plusieurs critères d'évaluation CR. Un de ces critères peut être par exemple le nombre de coefficients non nuis, encore appelés significatifs, dans le bloc transformé optionnellement quantifié. On désigne aussi ce critère par « norme-zéro ». En effet, cette mesure donne une bonne indication de la concentration d'énergie réalisée par la transformation du bloc et renseigne donc sur les performances de compression de la transformée. Ce critère peut également s'appuyer sur un nombre de coefficients nuis, une mesure de puissance d'erreur de quantification si l'étape de quantification est mise en œuvre. Avantageusement, il peut alors prendre en compte plusieurs critères, comme par exemple à la fois la puissance d'erreur et le nombre de coefficients, en les pondérant.
Avantageusement, lors d'une étape T14, l'indicateur IP obtenu est stocké en mémoire, par exemple une mémoire BUFO dite tampon (pour « buffer », en anglais).
On teste en T15 s'il reste des transformées à traiter. Par exemple, si on a choisi de traiter les transformées dans l'ordre de leur indice i, on vérifie que i est strictement inférieur au nombre total de transformées à traiter Nt. Si c'est bien le cas, on incrémente i et on répète les étapes TU à T15 pour la transformée suivante.
Avantageusement, on utilise les indicateurs de performance calculés pour le bloc courant pour mettre à jour en T16 des valeurs de scores déjà stockées en mémoire et calculées à partir d'au moins un bloc précédemment traité. Idéalement, il est intéressant de considérer plusieurs blocs précédemment traités, afin de lisser les résultats obtenus et les rendre moins sensibles aux variations locales des caractéristiques des blocs de l'image. Par exemple, on prend en compte un historique des IP sur les K derniers blocs traités avec K = 20 pour calculer le score attribué à une transformée, ce qui constitue un bon compromis.
Dans ce cas, on a stocké en mémoire BUFO les indicateurs de performances IP obtenus par les transformées de la banque de transformées sur les K derniers blocs et on exploite l'ensemble de ces indicateurs de performance IP pour calculer un score par transformée (par exemple un score moyenné ou une combinaison de scores moyennés, comprenant par exemple les moyennes des indicateurs de performances IP, les valeurs médianes des indicateurs de performance IP ou les indicateurs de performance IP cumulés de chacune des transformées.
De façon alternative, on peut calculer une valeur lissée Zcl du score courant comme une somme pondérée d'une valeur Zh stockée en mémoire et de la valeur courante Zc :
Zcl = 0,lZc + 0.9 Zh
Lorsque le nombre de blocs traité est inférieur à K, les indicateurs de performance IP obtenus par les transformées pour le bloc courant Bc peuvent être combinés à des indicateurs de performance IP initialisés au préalable pour chacune des transformées de la banque. Cette initialisation peut être prédéterminée, de façon identique au codeur et au décodeur, ou héritée de l'image précédente, ou déterminée par l'encodeur. Dans ce dernier cas, le codeur doit la transmettre au décodeur dans un en-tête afin d'assurer la synchronisation codeur/décodeur. Par exemple, il insère ces informations dans un en-tête SPS (pour « Sequence Parameter Set », en anglais) comprenant les paramètres de la séquence d'images ou bien dans un en-tête PPS (pour « Picture Parameter Set», en anglais) comprenant les paramètres de l'image courante.
Une fois les scores mis à jour, ils sont classés en T17 par exemple selon un ordre de performance décroissant, ou bien dans un ordre de transformées prédéfinie. Par exemple, si le score calculé correspond à un nombre de coefficients significatifs (« norme-zéro »), le classement est réalisé selon des valeurs croissantes des scores, la transformée classée la première étant celle pour laquelle le bloc courant transformé comprend le moins de coefficients significatifs.
On obtient ainsi une liste Si des Nt transformées classées, qu'on stocke en mémoire en T18. S, correspond donc la banque de transformées Bt réordonnée selon un critère défini, par exemple suivant l'ordre de performance.
Lors d'une étape T2, on remet en cause la liste Sc de transformées applicables en appliquant des règles de décision prédéterminées, communes au codeur et au décodeur.
• Dans un premier exemple de réalisation de l'invention, une règle prédéterminée est que le nombre de transformées contenues dans la liste Sc peut varier au cours de l'encodage, par conséquent le nombre Nr de transformées dans la liste Sr peut être changé. Dans ce cas, on détermine en T21 une sous-liste SO de transformées, issues de la liste S, dont le score est meilleur qu'un seuil prédéterminé τ . Par exemple, si l'indicateur de performance dépend du nombre de coefficients significatifs, on choisit les transformées de la banque dont la valeur de score est inférieure à τ. De façon alternative, ce seuil τ peut être dynamiquement calculé en le fixant à une fraction de la moyenne des valeurs des scores. En pratique une valeur seuil égale à 0.5 donne des bons résultats pour cette fraction.
Le nombre de transformées NO qui constituent la sous-liste SO correspond à la nouvelle valeur de Nr, et les transformées de la sous-liste SO remplacent celles de la liste Sr en T22. On dispose d'une nouvelle liste Sc de transformées applicable au bloc suivant, qui comprend les Nf transformées fixées et les Nr transformées de Sr. On remet donc à jour la valeur de Ne = Nf + Nr ainsi que Sc en T22. On stocke en mémoire la nouvelle liste Sc et la nouvelle valeur de Ne.
De façon alternative, on compare les Nr transformées ordonnées de SO à celles de Sr et on réalise effectivement une mise à jour si une différence existe.
• Dans un deuxième exemple de réalisation, une règle prédéterminée est que le nombre d'éléments dans la liste Ne est fixe et commun au codeur et au décodeur. Il en résulte que le nombre d'éléments Nr de la liste de transformées remplaçables Sr est fixe lui aussi. On forme la liste SO en T21 à partir des Nr premières transformées de la liste S, selon le classement mis à jour.
En T22 on met à jour la liste Sr des Nr transformées remplaçables à partir de SO et la liste Sc des transformées applicables, qui est elle aussi réordonnée en fonction de la nouvelle liste Sr. Par exemple, on forme la nouvelle liste Sc en concaténant la liste Sf et la liste Sr, les transformées de la liste Sf étant placées en premier. Ensuite, on stocke en mémoire la nouvelle liste Sc et la nouvelle valeur de Ne.
• Dans un troisième exemple de réalisation de l'invention, toutes les transformées de la liste Sc sont remplaçables. Autrement dit, Nr = Ne et Nf = 0. A partir du classement des Ni transformées produit par l'étape Tl sous la forme d'une liste Si, on forme une liste SO comprenant les Nr = Ne meilleures transformées de Si. Deux cas sont possibles :
Ne est fixe, ce qui impose de former la liste Si, en choisissant les Ne meilleures transformées plutôt qu'en appliquant un seuil lié à la valeur du score;
Ne peut varier, ce qui permet de choisir les Ni meilleures transformées en fonction d'un seuil τ lié à la valeur de score, quitte à en sélectionner un nombre Ντ inférieur à Ne. Dans ce cas, la valeur de Ne est mise à jour et stockée en mémoire. Avec l'invention, la liste Sc, mise à jour, est applicable au bloc suivant.
Bien sûr l'invention n'est pas limitée aux exemples qui viennent d'être présentés. Les mises à jour des listes Sr et Sc peuvent être réalisées de multiples façons, déterminées par des règles de décision communes au codeur et au décodeur.
Plusieurs exemples concrets de mise à jour de la liste Sc sont donnés ci-dessous.
Dans ces exemples, l'indicateur de performance IP utilisé est la norme-zéro, qui comptabilise, pour chaque transformée évaluée, le nombre de coefficients significatifs dans le bloc résidu transformé Res ou ResT du bloc courant.
Exemple 1 : Remise en cause de toutes les transformées de la liste Sc avec Ne constant
A titre d'exemple, on choisit Nr = Ne = 2, Nt=5. Par conséquent toutes les transformées de Sc sont remplaçables, donc Sr = Sc et Sf est vide. Le nombre Nr de transformées dans Sr est choisi fixe.
On considère la banque de transformées BT suivante : BT = {DCT2, DST7, DCT8, DST1, DCT5}. Par exemple le terme DCT2 désigne la DCT de type II et le fait qu'elle soit appliquée à la fois sur les lignes et les colonnes du bloc.
A un instant donné, on considère que pour le bloc résidu décodé courant Res la liste de transformées est Sr = Sc = {DCT2, DST7}.
Dans cet exemple, l'indicateur de performance IP considéré est la norme zéro. Il est calculé en T13 pour chaque transformée. Le score évalué en T16 est la moyenne des valeurs des indicateurs IP sur les X derniers blocs (par exemple X=4). On classe en T17 les transformées selon des valeurs de scores croissants et on forme une liste ordonnée Si de Nt transformées. On observe par exemple les résultats suivants :
DCT2 | DST7 | DCT8 | DST1 | DCT5 |
Scores | 3,5 | 9,2 | 5,5 | 7,0 | 8,9 |
Norme-zéro |
S, est constituée de la liste ordonnée et vaut {DCT2, DCT8, DST1, DCT5, DST7}.
On décide dans cet exemple de garder la taille Nr de la liste Sr constante et de choisir les 2 meilleures transformées au sens de l'indicateur de performance, dans l'ordre de classement. On remplace donc en T2 la liste Sr par les Nr=2 premières transformées de la liste Si.
La liste Sr mise à jour vaut : Sr = Sc = {DCT2, DCT8}.
Exemple 2 : Modification par suppression/aiout d'une ou plusieurs transformées
On considère la même banque de transformées BT que dans l'exemple précédent, de taille Nt=5. Toutes les transformées de Sc sont remplaçables donc Nr = Ne et Sr = Sc.
BT = {DCT2, DST7, DCT8, DST1, DCT5}
On initialise la sous-liste Sr avec Nr = 3 comme suit : Sr = Sc = {DCT2, DST7, DST1}.
A l'issue de l'étape d'évaluation des scores, on obtient les résultats suivants :
DCT2 | DST7 | DCT8 | DST1 | DCT5 | |
Scores | 2.0 | 3.3 | 12.4 | 8.9 | 10.2 |
Norme-zéro |
Avantageusement, on forme une liste ordonnée Si de taille Nt comme suit : Si= {DCT2, DST7, DST1, DCT5, DCT8}.
La règle de décision applicable dans cet exemple est de conserver dans la liste Sr uniquement les transformées dont le score a une valeur inférieure ou égale à un seuil τ prédéterminé, par exemple ici τ =5.
Après évaluation des transformées de la banque et application de la règle, le décodeur constate que deux transformées ont un score inférieur au seuil S=5. Par conséquent la liste Sr = Sc est mise à jour de la façon suivante :
Sr = Sc = {DCT2, DST7}.
Nr prend donc la valeur 2 et Ne est mis à jour avec Nc=2. Le prochain bloc pourra être transformé par l'une des deux transformées de Sc. Il en résulte que la signalisation de la transformée véhiculée entre le codeur et le décodeur sera réduite puisque la liste Sc compte une transformée de moins que pour le bloc précédent.
On répète l'étape d'évaluation pour le bloc suivant et on obtient les résultats ci-dessous :
DCT2 | DST7 | DCT8 | DST1 | DCT5 | |
Norme-0 | 2.4 | 3.1 | 3.2 | 4.9 | 10.1 |
SI = {DCT2, DST7, DCT8, DST1, DCT5}.
On constate que 4 transformées de la banque ont un score inférieur au seuil S=5. Par conséquent, la liste Sr est mise à jour de la façon suivante :
Sr = Sc = {DCT2, DST7, DCT8, DST1} et Nr=4.
En relation avec les figures 3 et 6, on décrit maintenant les étapes d'un procédé de codage mettant en œuvre le mécanisme qui vient d'être détaillé en relation avec la Figure 1. On détaille deux modes de réalisation particuliers de l'invention.
A. Mode de réalisation : sans contrôle de l'encodeur
Par exemple, un tel procédé de codage est mis en œuvre par un dispositif de codage tel que décrit en relation avec la Figure 11. La séquence d'images II, 12..., IJ à coder, avec J entier non nul, est fournie en entrée du procédé de codage. Le procédé de codage délivre en sortie un train binaire STR représentatif de la séquence d'images fournie en entrée. Ce train binaire peut être transmis sous la forme d'un flux ou d'un fichier au décodeur.
De façon connue en soi, le codage de la séquence d'images II, 12, ..., IJ est fait image par image selon un ordre de codage préalablement établi et connu du décodeur. Par exemple, les images peuvent être codées dans l'ordre temporel II, 12, ..., IJ ou selon un autre ordre, par exemple II, 13, 12.....IJ.
Lors d'une étape EO (non représentée), une image le à coder de la séquence d'images II, 12, ..., IK, dite image courante, est découpée en blocs de taille maximale, chaque bloc de taille maximale pouvant être redécoupé en blocs plus petits. Par exemple, un bloc de taille maximal est de taille 32x32 pixels. Un tel bloc de taille maximal peut être subdivisé en sous-blocs carrés ou rectangulaires, par exemple de taille 15x15, 8x8, 4x4, 15x8, 8x15, .... Puis, lors de l'étape EO, un bloc courant Bc à coder d'une image le est sélectionné selon un sens de parcours de l'image le prédéterminé.
Lors d'une étape El, le bloc courant Bc est prédit par rapport à un bloc déjà traité, dit bloc prédicteur P, d'une image de référence Ir, selon un mode de prédiction prédéterminé.
En E2, on obtient un bloc résidu Res par différence entre le bloc courant Bc et le bloc prédicteur P. Lors d'une étape E3, le résidu de prédiction Res est ensuite transformé par une transformée d'une liste Sc prédéterminée et par exemple de type DCT ou DST ou autre. Cette liste prédéterminée comprend Ne transformées, dont Nf transformées sont fixées et Nr transformées sont remplaçables. Une banque de Nt transformées, avec Nr<Nt et par exemple Nr=4 et Nt = 8, est disponible au codeur et au décodeur. On rappelle que les Nf transformées fixes ne font pas partie de la banque de transformées BT.
L'état initial de la liste Sc est prédéterminé (connu du codeur et du décodeur), ou hérité de l'image précédente, ou encore déterminé par l'encodeur. Si l'encodeur détermine cette liste de départ, il doit la transmettre au décodeur dans un en-tête (par exemple l'entête PPS comprenant les paramètres de l'image courant (pour « Picture Parameter Set », en anglais), ou l'entête SPS comprenant les paramètres de la séquence d'images (pour « Sequence Parameter Set », en anglais) afin d'assurer la synchronisation codeur/décodeur.
Dans ce mode de réalisation, le codeur met en œuvre, de façon connue et par exemple décrite dans le document de Zhao et al. déjà cité, une compétition de transformées, qui consiste à appliquer successivement au bloc résidu Res les transformées de la liste Sc de transformées prédéterminée, à évaluer une performance de la compression réalisée par chacune d'elles selon un critère de type débit-distorsion, puis à sélectionner la meilleure pour le bloc résidu courant Res.
En relation avec la Figure 4, on détaille un mode de réalisation de l'étape E3 de compétition de transformées. Pour chaque transformée Tn de la liste Sc, avec n allant de 1 à Nc, les étapes suivantes sont réalisées :
En E31, le bloc résidu courant Res est transformé par la transformée Tn.
En E32, le bloc résidu transformé ResT obtenu est quantifié.
En E33, un coût R de codage binaire des coefficients du bloc résidu transformé est évalué par exemple à l'aide d'un codeur entropique.
En E34, une quantification inverse est appliquée au bloc résidu transformé quantifié ResTQ, puis en E35 la transformée inverse de Tn.
En E36, on évalue une distorsion D entre le bloc Res' obtenu et le bloc Res d'entrée.
En E37, on estime un coût débit-distorsion, par exemple à l'aide d'une mesure de coût Lagrangien J = D + À x R, où D est la distorsion mesurée sur le bloc reconstruit, R le débit généré lors du codage et À le multiplicateur de Lagrange.
On répète donc cet enchaînement de sous-étapes pour les Nc transformées de la liste Sc. Enfin, on sélectionne en E38 la transformée T qui minimise le coût débit-distorsion pour les résidus Res, Res' correspondants.
On désigne parTno la transformée sélectionnée. Le bloc résidu quantifié obtenu ResQ[n0] est ensuite codé en E9, par codage entropique, par exemple un codeur CABAC décrit dans D. Marpe, H. Schwarz, T. Wiegand, « Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard » IEEE Transactions on Circuits and Systems for Video Technology (Volume: 13 , Issue: 7 ), pages 620 - 636, July 2003 , sous la forme d'un flux de données codées STR.
La transformée sélectionnée est identifiée par un code Tr-ID qui est soumis lui aussi au codage entropique. Avantageusement, le code choisi pour identifier la transformée Tno sélectionnée est de longueur variable et dépend du classement de la transformée dans la liste Sc. A titre d'exemple, on considère une liste Sc comprenant trois transformées. On leur associe les codes à longueur variable indiqués dans la table 1 ci-dessous :
Position dans Sc | Code Tr-ID |
1 | 0 |
2 | 10 |
3 | 11 |
Table 1
De cette manière, les codes les plus courts sont affectés aux meilleures transformées applicables selon l'indicateur de performance. Il en résulte que ces transformées seront moins coûteuses à signaler et qu'elles seront favorisées lors de la compétition de transformées qui s'appuie sur un critère débit-distorsion.
Le bloc résidu Res'[n0] obtenu au cours de l'étape E3 par quantification inverse et transformation inverse à l'aide de la transformée n0 sélectionnée, est présenté en entrée de l'étape Tl d'évaluation des transformées de la banque BT, selon l'invention et déjà décrite ci-dessus en relation avec la Figure 2.
Au cours de cette étape Tl sont évalués des indicateurs de performances IP de chaque transformée de la banque BT sur le bloc résidu spatial décodé Res', puis des scores à partir de ces indicateurs, d'une façon identique à celle du décodeur. Les Nt transformées de la banque sont classées dans une liste ordonnée Si en fonction de l'indicateur de performance, par exemple du meilleur score au plus mauvais, ou selon un autre critère prédéterminé.
La liste S, obtenue et les scores associés sont ensuite traités par l'étape T2 qui détermine une liste SO candidate pour remettre en cause la sous-liste Sr de transformées remplaçables de la liste Sc, d'une façon identique à celle du décodeur et telle que décrite précédemment en relation avec la Figure 2.
Si cette remise en cause aboutit à une mise à jour de la liste, alors la nouvelle liste Sc est stockée en mémoire BUF. Elle sera mise en œuvre pour le traitement du bloc suivant.
En E4, la prédiction du bloc courant Bc est additionnée au résidu spatial Res' afin d'obtenir un bloc reconstruit REC, qui sera utilisé pour la prédiction des blocs suivants.
En E5, on ajoute la contribution du bloc reconstruit BcRà l'image courante reconstruite ICr.
On teste en E6 si le bloc courant Bc est le dernier de l'image. S'il reste des blocs à coder, on sélectionne le bloc suivant comme nouveau bloc courant en E7. Sinon l'image reconstruite est filtrée en E8 afin d'obtenir une image de référence 1er exploitable pour le codage des images suivantes.
A l'issue du codage de l'image courante le, on teste s'il reste des images à coder dans la séquence. Si c'est le cas, l'image suivante dans l'ordre de codage des images devient l'image courante. Sinon, le traitement est terminé. Le train binaire produit STR peut être directement présenté à un décodeur ou bien lui être transmis via un réseau de télécommunications sous forme de flux ou de fichier.
En relation avec la figure 5, on décrit maintenant les étapes d'un procédé de décodage d'un train binaire STR représentatif d'une séquence d'images Ii, I2, ..., I] à décoder, selon un mode particulier de réalisation de l'invention.
Par exemple, le flux de données STR a été généré via le procédé de codage présenté en relation avec la Figure 3. Le flux de données STR est fourni en entrée d'un dispositif de décodage DEC, par tel que décrit en relation avec la Figure 12.
Le décodage du flux se fait image par image. Pour chaque image à décoder, le procédé de décodage réalise le décodage de l'image bloc par bloc. On considère une image courant le à décoder.
Lors d'une étape D0 d'initialisation, on détermine un premier bloc courant Bc de l'image le.
Les données du train binaire STR correspondant au bloc Bc sont décodées par un module de décodage entropique pour fournir en Dl des éléments de syntaxe relatifs au mode de codage du bloc courant Bc et en D2 un groupe de coefficients d'un bloc résidu Res'TQ d'une prédiction du bloc courant Bc. Les éléments de syntaxe décodés comprennent notamment une information de mode de prédiction identifiant pour le bloc courant Bc un mode de prédiction parmi une pluralité de modes de prédiction prédéterminés.
Lors d'une étape D3, les coefficients de résidus Res'TQ de prédiction du bloc Bc subissent une quantification inverse et un bloc résidu déquantifié Resùest obtenu.
En D4, on décode à partir du train binaire un index Tr-ID de la transformée inverse à appliquer au résidu du bloc courant Bc, dans la liste Sc prédéterminée de transformées, identique à celle utilisée par le codeur.
En D5, on applique au résidu Res'TQ du bloc courant Bc la transformée inverse identifiée par l'index Tr-ID décodé.
En D6, le bloc courant est prédit selon le mode de prédiction décodé en Dl. La prédiction peut se baser, dans un mode dit inter, sur des images de référence précédemment décodées et reconstruites (Iro, Iri, ), ou, dans un mode dit intra, à partir de blocs déjà décodés par exemple dans la même image. Un bloc prédit P' est obtenu.
En D7, le bloc prédit P' est additionné au bloc résidu spatial RES' afin d'obtenir le reconstruit local Rec qui sera utilisé pour la prédiction des prochains blocs.
En Tl, on évalue les performances de chacune des Nt transformées de la banque pour le bloc résidu spatial Res', selon l'invention, comme décrit précédemment en relation avec la figure 2.
Pour chaque transformée Tm, avec m entier compris entre 1 et Nt, on met donc successivement en œuvre les étapes suivantes :
Le résidu est transformé par la transformée Tm de la banque BT, puis quantifié ;
Un indicateur de performance IP est évalué selon un des modes de réalisation précédemment décrits ;
Une fois toutes les transformées traitées, un score leur est attribué à partir de valeurs de l'indicateur de performance IP et elles sont classées dans une liste Si en fonction de la valeur de ce score, par exemple du meilleur score au plus mauvais. Dans un mode de réalisation particulier, les scores contenus dans la liste Si sont formés à partir des valeurs d'indicateurs de performances lissés sur plusieurs blocs, comme précédemment décrit.
En T2, sur la base des scores déterminés en Tl on remet en cause la liste Sr, et donc la liste Sc, comme décrit précédemment en relation avec la Figure 2. Par exemple, dans un mode de réalisation particulier de l'invention, on met en œuvre les étapes suivantes :
On forme une liste SO à partir des Nt scores déterminés en Tl, par exemple, lorsque Nr peut varier, en appliquant un seuil prédéterminé ou, lorsque Nr est fixe, en sélectionnant les Nr meilleures transformées ;
On met à jour Sr en la remplaçant par la liste S0 formée. La liste des transformées applicables Sc est mise à jour à partir de la nouvelle liste Sr, par exemple en concaténant la liste Sr à celle des transformées fixes Sf. Elle sera utilisée pour le traitement du bloc suivant, en particulier pour l'étape D4 d'identification de la transformée par l'index Tr-ID pointant dans Sc et pour l'étape D5 de transformation inverse du résidu courant à l'aide de la transformée inverse identifiée.
En D8, le bloc Rec' reconstruit est ajouté à l'image courante ICr. Lors d'une étape D9, il est vérifié si tous les blocs de l'image à décoder ont été décodés et reconstruits. Dans le cas négatif, un nouveau bloc courant est identifié en DIO selon un parcours prédéterminé de l'image à décoder et le procédé de décodage reprend à l'étape Dl pour ce bloc.
Dans le cas où tous les blocs de l'image ont été traités, l'image Icr est filtrée en DU et sauvegardée dans une liste d'images de référence I1r, I2r,... pour être utilisée ultérieurement comme référence lors du décodage des images suivantes de la séquence d'images.
Un avantage du mode de réalisation qui vient d'être décrit en relation avec les Figures 3 et 5, est que le codeur et le décodeur sont capables de modifier automatiquement la liste Sc de transformées applicable au bloc courant, de manière optimale et synchrone. Aucune signalisation additionnelle n'est donc requise.
Selon les différentes options prévues par l'invention et décrites en relation avec la Figure 2, la liste Sc est donc mise à jour de différentes manières, qui peuvent être combinées entre elles :
Ajout ou suppression de transformées ;
Changement d'ordre des transformées dans la liste.
B. Mode de réalisation avec contrôle de l'encodeur
En relation avec la Figure 6, on décrit les étapes d'un procédé de codage d'une séquence d'images selon un deuxième mode de réalisation de l'invention. Les étapes EO à E2 et E4 à E8 sont inchangées par rapport au premier mode de réalisation décrit en relation avec la figure 3.
Dans ce deuxième mode de réalisation, l'étape E3 de compétition de transformées est remplacée par une étape E3', qui va maintenant être décrite en relation avec la Figure 7. L'étape E3' met en compétition et évalue non seulement les Ne transformées de la liste courante Sc mais aussi le cas échéant, les Nt-Nr transformées restantes dans la banque de transformées Bt, selon un critère débitdistorsion, analogue à celui décrit dans le premier mode. Un coût débit-distorsion est associé à chaque transformée appliquée et il est stocké en mémoire BUF1. En revanche, la sélection de la meilleure transformée pour le bloc courant est inchangée au sens où elle s'effectue toujours parmi les Ne transformées de la liste Sc.
L'étape Tl d'évaluation des transformées de la banque BT déjà décrite est elle aussi inchangée. Elle produit une liste ordonnée Si des transformées, par exemple de la meilleure à la pire valeur d'un score fonction d'un ou plusieurs indicateurs de performance prédéterminés, de façon analogue à celle déjà décrite pour le premier mode. Les scores peuvent être ceux du bloc Bc courant ou bien obtenus par lissage des valeurs d'indicateurs de performance IP des K derniers blocs traités.
Selon ce deuxième mode de réalisation de l'invention, l'étape T2 de décision est modifiée et remplacée par une étape T2'. Au cours de cette étape, une sous-liste SO est formée en Τ2Γ, pour remettre en cause la sous-liste Sr, de façon similaire à ce qui a été précédemment décrit, mais elle ne remplace pas automatiquement l'ancienne liste Sc. Elle constitue une proposition de mise à jour envoyée à l'unité de validation T4 en étape T22', qui nécessite une validation pour que la mise à jour effective soit exécutée.
Selon ce deuxième mode de réalisation, le procédé de codage comprend en outre une étape T3 d'évaluation des transformées de la banque BT à partir des coûts débit-distorsion produits par l'étape de compétition E3'. En relation avec la Figure 7, cette évaluation comprend en étape Τ3Γ où, pour chaque transformée, un score est calculé à partir du son coût débit-distorsion calculé en E3'. En T32', les transformées de la banque sont ordonnées et stockées dans une liste Si', en fonction de ces scores, par exemple selon un ordre de coût décroissant. Comme précédemment décrit, ce classement peut s'appuyer sur les coûts obtenus pour le bloc courant Bc seul ou sur les K blocs précédemment traités incluant le bloc courant.
On comprend que le classement contenu dans Si' représente en quelque sorte une « vérité terrain ». En effet, les transformées classées ont été obtenues à partir d'une mesure de la distorsion réelle entre l'image décodée reconstruite et l'image originale et du coût réel de codage du bloc courant. De telles informations ne sont disponibles que côté codeur.
Au contraire la liste Si est construite sur la base d'un indicateur de performance IP, par exemple la « norme-zéro » qui ne s'appuie pas sur la distorsion réellement introduite par les étapes de transformation et quantification. Elle n'utilise en revanche que des informations qui sont à la fois disponibles au codeur et au décodeur.
En relation avec la Figure 7, une étape T4 évalue la proposition de sous-liste SO faite en T2' concernant une mise à jour de la liste Sc.
En T41, la liste Si est comparée à la liste Si'. Si les deux listes ont un degré de similarité satisfaisant selon au moins un critère de similarité CS prédéterminé, alors la modification de la liste Sc est validée. Par exemple, on considère que les deux listes Si et Si' sont suffisamment similaires si elles produisent le même classement de transformées, ou bien si au moins les Nt/2 premières transformées sont similaires, ou bien si la transformées la plus performante est identique dans les deux listes. Dans un autre exemple, on peut considérer que les sous-listes sont similaires si elles placent les mêmes transformées en tête de liste (sur les X=2 premières). On en déduit la valeur d'un indicateur de validité bv. Par exemple, il vaut 1 en cas de validation, zéro sinon. Sa valeur est transmise au codeur entropique pour encodage et insertion dans le train binaire en T43.
Si bv vaut 1, l'étape T44 réalise la mise-à-jour des listes Sc et, Sr et ainsi que du nombre Ne, Nr de transformées qu'elles comprennent, à partir de la sous-liste SO en provenance de l'étape de décision T2'.Si bv vaut zéro, les listes Sc et Sr sont inchangées.
De cette manière, le codeur signale au décodeur s'il valide ou non la proposition de mise à jour produite par l'étape de décision. Pour ce faire, il s'appuie sur une évaluation de la distorsion réellement introduite par chacune des transformées et sur le coût réel de codage du bloc courant. Ce mécanisme additionnel permet de garantir tout risque de dérive de la liste Sc.
En relation avec la Figure 8, on décrit les étapes d'un procédé de décodage selon ce deuxième mode de réalisation de l'invention. Les étapes DO à DU sont inchangées. L'étape Tl d'évaluation des scores de la banque de transformées pour le bloc courant Bc est inchangée. Elle produit une liste Si contenant le classement des transformées de la banque. Une décision relative au changement de la liste Sc est prise en T2', mais à la différence de l'étape T2 précédemment décrite en relation avec la figure 1, selon ce deuxième mode de réalisation de l'invention, l'étape T2' produit une proposition SO de mise à jour de Sc, qui est ensuite traitée par une étape T4' de validation. Cette étape T4' de validation s'appuie sur la valeur d'un indicateur de validité bv, extraite du train binaire et décodée au cours d'une étape D4'. Par exemple, comme précédemment décrit pour le procédé de codage en relation avec les figures 6 et 7, cet indicateur prend la valeur 1 pour indiquer que le codeur valide le changement et la valeur 0 s'il l'invalide. Dans le premier cas, l'étape T4' stocke la nouvelle liste Sc validée dans une mémoire BUF. Elle sera utilisée pour sélectionner la transformée inverse à appliquer au bloc suivant. Dans le second cas, la mise à jour de la liste Sc n'est pas stockée en mémoire et la liste Sc reste inchangée.
Dans ce deuxième mode de réalisation, la remise en cause de la liste Sc de transformées par le décodeur est soumise à validation de l'encodeur. Ce dernier ayant accès au signal source, contrairement au décodeur, il est plus à même de déterminer la ou les transformées les plus adaptées aux images à traiter.
En relation avec les Figures 9 et 10, on évalue les performances de l'invention lorsqu'elle est mise en œuvre dans un codeur et un décodeur selon le premier mode de réalisation de l'invention, c'està-dire sans contrôle de l'encodeur.
Le codeur et le décodeur sont initialisés avec une liste fixe de transformées Sf, de taille Nf=4, comprenant les transformées suivantes :
Sf = {DCT2xDCT2, DCT8xDST7, DST7xDCT8, DST7xDST7}
Dans cet exemple, on désigne par transformée un couple de transformées, la première étant applicable aux lignes du bloc courant, la deuxième aux colonnes du bloc résultant de la première ou inversement. La liste de transformées remplaçable Sr est de taille fixe Nr=l et initialisée de la façon suivante :
Sr = {DCT8xDCT8}
La liste Sr peut être modifiée, comme précédemment décrit à l'aide de transformées comprises dans une banque de transformées Bt, de taille Nt=2, comprenant les transformées suivantes :
BT = {DCT8xDCT8, IDxDST7}
On a donc par conséquence une liste courante Sc contenant initialement les transformées suivantes :
Sc = Sf + Sr = {DCT2xDCT2, DCT8xDST7, DST7xDCT8, DST7xDST7, DCT8xDCT8}
Le procédé selon l'invention consiste d'abord à évaluer les transformées de la banque. Les indicateurs de performance IP des deux transformées de la banque Bt sont calculés, et sont stockés dans une mémoire BUFO. La valeur d'indicateur de performance IP attribuée à la transformée d'indice i pour un bloc n est noté nzni. Dans cet exemple, l'indicateur est basé sur un nombre de coefficients nuis dans le bloc courant. Un score yni est calculé en lissant les valeurs d'IP de chaque transformée de la façon suivante :
si n = 0
nzn l si n = 0
0.9 *+ 0.1 * nzni sin>0
Dans cet exemple, les transformées de la banque BT DCT8xDCT8 et IDxDST7 sont classées par score croissant dans la liste Si.
En T2, on remet en cause la liste Sc. Un critère de décision est appliqué sur les scores des transformées contenues dans la liste Si. Dans la suite on suppose que DCT8xDCT8 correspond à l'indice 1 et IDxDST7 à l'indice 2. On évalue tout d'abord la différence de scores entre la DCT8xDCT8 et l'IDxDST7 :
4yn = y„,! - y„,2
Une décision est prise en en fonction des valeurs de cette différence de score. Le signe de Δγη donne une indication claire sur la compaction d'énergie apportée par les deux transformées. Si cette différence est négative, alors c'est la DCT8xDCT8 qui compacte mieux l'énergie sur un nombre plus réduits de coefficients significatifs. Si cette différence est positive, alors c'est l'inverse et c'est l'IDxDST7 qui est la plus performante. Afin, d'éviter un phénomène d'oscillation, deux seuils a et b sont considérés lors du choix de SO :
a. Si Δγη < a, alors SO = Si[1 ] = {DCT8xDCT8}.
b. Si Δγη > b, alors SO = Si[2] = {IDxDST7}.
avec a, b réels distincts.
Il en résulte que la transformée de la liste Sr n'est remise en cause que si l'autre transformée apporte une amélioration suffisante, de façon à éviter un phénomène d'oscillation. On ne choisit donc pas toujours la transformée classée la première dans la listeSi.
Côté décodeur, on considère le traitement d'un bloc résidu courant Res'TQ[n] avec n numéro du bloc dans l'image. On met en œuvre l'étape de compétition de transformées sur le résidu Res[n], à partir de la liste Sc.
On choisit la transformée de Sc qui minimise le coût débit-distorsion J = D + λ* R et on met en œuvre les étapes de sélection Tl et de décision T2 déjà décrites pour le décodage afin de mettre éventuellement à jour la liste courante Sc.
L'objectif de l'expérimentation est de montrer qu'un changement de liste courante Sc de transformées basé sur le nombre de coefficients significatifs améliore les performances de compression.
Pour les blocs 4x4, le coût débit-distorsion et la norme-zéro du résidu transformé et quantifié sont extraits, ce pour toutes les transformées de la liste courante et de la banque.
Le calcul de l'indicateur de performance et la prise de décision se font tels que décrit aux étapes 5 et 6 du procédé de décodage. Les seuils pour la prise de décision sont les suivants : a = 0.5,b =
-0.44.
En relation avec la Figure 9, on illustre l'évolution de l'indicateur de performance, ainsi que les changements de la liste de transformées Sc applicables au cours du codage de plusieurs images consécutives. La séquence utilisée illustre un cas d'usage réel, représentant du contenu naturel sur les 620 premiers blocs et du contenu généré par ordinateur sur les blocs restants. La différence de score Ayn renseigne sur la transformée qui compresse la mieux l'énergie. Sur les 620 premiers blocs, l'indicateur de performance ne permet pas de distinguer globalement une transformée plus efficace qu'une autre. Par conséquent les changements de liste de transformées Sc sont localisés. Sur les blocs suivants, pour lesquels le contenu change radicalement, la différence de scores devient positive, la transformée IDxDST7 devient la meilleure option entre les blocs 620 et 1500.
Dans une deuxième partie de l'expérimentation, les choix de l'encodeur ont été simulés. Pour chaque bloc, la transformée minimisant le coût débit-distorsion dans la liste courante Sc est sélectionnée. La Erreur ! Source du renvoi introuvable, permet de comparer l'évolution de coûts débitdistorsion lissés, dans trois cas :
• Si Sr est une liste fixe et vaut {DCT8xDCT8} ;
• Si Sr est une liste fixe et vaut {IDxDST7} ;
• Si Sr est une liste modifiable et sa composition remise en cause comme décrit dans l'invention.
Sur les 600 premiers blocs, l'invention améliore localement les performances. Bien que l'invention ne permette pas systématiquement de sélectionner la transformée optimale pour un bloc, elle apporte néanmoins une amélioration des performances par rapport au cas selon lequel la liste Sr est fixée à {DCT8xDCT8} uniquement.
A partir du bloc 620 jusqu'au bloc 1200, l'invention choisit d'utiliser Sr={IDxDST7}. L'amélioration des performances est d'environ 15% par rapport à la liste Sr={DCT8xDCT8}.
On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « entité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'entité concerné(e).
On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « entité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'entité concerné(e).
En relation avec la Figure 11, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en œuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec la Figure 1.
Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur pl, et pilotée par un programme d'ordinateur Pgl 120, stocké dans une mémoire 130 et mettant en œuvre le procédé de selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120.
Dans cet exemple de réalisation de l'invention, le dispositif 100 comprend une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Transformer TRANS un bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste Sc de Ne transformées d'un ensemble de Nt transformées, avec Nc<Nt ;
Coder COD le bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
Décoder DEC les données codées représentatives du bloc transformé ;
Transformer TRANS1 le bloc transformé décodé à l'aide de la transformée sélectionnée ;
Evaluer EVAL les transformées de la banque BT de transformées pour le bloc décodé à partir d'au moins un indicateur de performance ;
Remettre en cause CHANG la liste de transformées en fonction d'un résultat de l'évaluation.
Avantageusement, la machine de calcul est configurée pour mettre en œuvre les modes de réalisation de l'invention qui viennent d'être décrits dans ses différents modes de réalisation. Notamment, dans le deuxième mode de réalisation, elle est apte à valider ou non la décision de changement de la liste de transformées Sc et à coder une information représentative d'une autorisation ou une interdiction de remise en cause de la liste applicable au bloc suivant, en fonction de cette validation.
Le dispositif 100 comprend en outre une unité Mi 140 de stockage, telle qu'une mémoire, par exemple de type mémoire tampon (pour « buffer », en anglais), apte à stocker par exemple la liste Sc et des résultats d'évaluation ou scores des transformées de la banque BT.
Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110.
De façon avantageuse, un tel dispositif 100 peut être intégré à un équipement terminal TU. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU :
un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire
TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire, sans fil ou un réseau hertzien.
En relation avec la Figure 12, on présente maintenant un exemple de structure simplifiée d'un dispositif 200 de décodage d'une image numérique selon l'invention. Le dispositif 200 met en œuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec les figures 4 et 8.
Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur p2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en œuvre le procédé de selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220.
Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Décoder DEC des coefficients d'un bloc courant à partir de données codées;
Transformer TRANS1 les coefficients du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste Sc de Ne transformées, dites applicables;
Reconstruire RECONST l'image à partir du bloc décodé transformé ;
Evaluer EVAL les transformées d'une liste BT de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance IP, connu de l'encodeur;
- Remettre en cause CHANG des transformées de la liste de transformées Sc applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
Avantageusement, la machine de calcul est configurée pour mettre en œuvre les modes de réalisation de l'invention qui viennent d'être décrits dans ses différents modes de réalisation. Notamment, dans le deuxième mode de réalisation, elle est apte à décoder l'information bv représentative d'une autorisation ou d'une interdiction de remettre en cause la liste de transformées Sc en fonction de la valeur de cette information.
Le dispositif 200 comprend en outre une unité M2 240 de stockage, telle qu'une mémoire, par exemple de type mémoire tampon, apte à stocker par exemple les listes Sc, Sr, Sf, BT et des résultats d'évaluation ou scores des transformées de la banque BT.
Ces unités sont pilotées par le processeur μ2 de l'unité de traitement 210.
De façon avantageuse, un tel dispositif 200 peut être intégré à un équipement terminal TU'. Le dispositif 200 est alors agencé pour coopérer au moins avec les modules suivants du terminal TU' :
un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire, sans fil ou un réseau hertzien ;
un module d'affichage DISP de l'image ou de la séquence d'image reconstruite par le dispositif de décodage 200.
Bien sûr, un équipement terminal TU, TU' peut intégrer à la fois un dispositif de codage et un dispositif de décodage selon l'invention. Il s'agit par exemple d'un terminal mobile, de type tablette ou téléphone intelligent (pour « smartphone », en anglais).
Les procédés de codage et de décodage décrits précédemment peuvent être intégrés dans des codeurs/décodeurs vidéo standards tels que HEVC/H.265, AVC/H.264 ou d'une future norme PostHEVC ou encore dans tout type de codeurs/décodeurs vidéo propriétaires. Les procédés de codage et de décodage selon l'invention s'appliquent également à tous types de codeurs/décodeurs d'images fixes et plus généralement de signaux mettant en œuvre une compétition de transformées.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement leur être apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.
Claims (15)
- REVENDICATIONS1. Procédé de décodage d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant (C') :Décodage des coefficients du bloc courant à partir de données codées;Transformation (D5) du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste (Sc) de Ne transformées, dites applicables; Reconstruction (D8) de l'image à partir du bloc décodé transformé ;caractérisé en ce que le procédé comprend en outre les étapes suivantes :- Evaluation (Tl) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur;- Remise en cause (T2) des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
- 2. Procédé de codage d'au moins une image numérique, ladite image (Ij) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant, de dimensions prédéterminées :- Transformation (E3, E3') du bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Ne transformées d'un ensemble de Nt transformées ;- Encodage (E9) du bloc transformé destiné à produire des données codées représentatives du bloc transformé ;- Insertion des données codées dans un train binaire représentatif de l'image codée ; caractérisé en ce que le procédé comprend en outre :Décodage du bloc encodé ;Transformation inverse du bloc décodé à l'aide de la transformée sélectionnée ;- Evaluation (Tl) d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur;- Remise en cause (T2) des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur.
- 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape d'évaluation comprend un calcul d'un score par transformée à partir du au moins un indicateur de performance, un classement des transformées au moins à l'aide des scores calculés et selon un ordre de performance décroissante et en ce que l'étape de remise en cause comprend une formation d'une sous-liste à partir des transformées les mieux classées selon au moins une règle prédéterminée et un remplacement de transformées d'au moins une sous-liste de la liste transformées applicables (Sc) par la sous-liste (SO).
- 4. Procédé selon la revendication 3, caractérisé en ce que l'étape de classement prend en outre en compte les scores des transformées pour une pluralité de blocs précédemment traités.
- 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que la liste de transformées applicables au bloc courant comprend une sous-liste (Sf) de Nf transformées fixes et une sous-liste (Sr) de (Nr) transformées remplaçables, avec Nc - Nf + Nr et en ce que la banque de transformées comprend au moins la sous-liste de transformées remplaçables.
- 6. Procédé selon l'une des revendications 3 à 5, caractérisé en ce que la liste de transformées applicables étant de longueur fixe égale à Nc, la sous-liste formée est de longueur fixe.
- 7. Procédé selon la revendication 3 ou 4, caractérisé en ce que l'étape de remise en cause compare les scores des transformées à au moins un seuil prédéterminé et en ce que la sousliste est formée des transformées qui satisfont au moins un critère lié à ce au moins un seuil.
- 8. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape de validation de la remise en cause de liste de transformées applicables mettant en œuvre une information codée (bv) représentative d'une autorisation ou d'une interdiction de remise en cause de la liste de transformées applicables pour le bloc suivant.
- 9. Procédé de codage selon la revendication 8, caractérisé en ce que l'étape de validation comprend une étape d'évaluation des transformées de la banque de transformées selon un critère débit-distorsion, une étape de classement des transformées évaluées selon ce critère et en ce que l'étape de validation compare le classement (SiQ obtenu selon le critère débitdistorsion et le classement (Si) obtenu selon les scores calculés et valide la remise en cause en fonction d'un critère de similarité (CS) entre les deux classements.
- 10. Procédé de décodage selon la revendication 8, caractérisé en ce que l'étape de validation comprend une lecture de ladite information codée et en ce que la validation de la remise en cause de la liste de transformées applicables dépend de la valeur de ladite information.
- 11. Dispositif de décodage (200) d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :Décoder (DEC) des coefficients d'un bloc courant à partir de données codées; Transformer le bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste (Sc) de Nc transformées, dites applicables;Reconstruire (REC) l'image à partir du bloc décodé transformé ; caractérisé en ce qu'elle est en outre apte à :- Evaluer (EVAL) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur; et- Remettre en cause (CHANG) des transformées de la liste de transformées (Sc) applicables en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
- 12. Dispositif (100) de codage d'au moins une image numérique, ladite image (Ij) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :Transformer (TRANS) un bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Nc transformées dites applicables ;Encoder (COD) le bloc transformé destiné à produire des données codées représentatives du bloc transformé ;caractérisé en ce qu'elle est en outre apte à :Décoder (DEC) les données codées représentatives du bloc transformé ;Transformer (TRANS) le bloc décodé à l'aide de la transformée sélectionnée ;- Evaluer (EVAL) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance (IP), connu de l'encodeur;- Remettre en cause (CHANG) de transformées de la liste de transformées (Sc) applicables en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur.
- 13. Signal portant un train binaire (STR) comprenant des données codées représentatives d'au moins une image (Ic), ladite image étant divisée en blocs de pixels traités dans un ordre défini, les données codées comprenant, pour un bloc courant, une information représentative d'un index d'une transformée appliquée à ce bloc dans une liste de transformées prédéterminé, caractérisé en ce que les données codées comprennent en outre une information (bv) représentative d'une autorisation ou d'une interdiction d'une remise en cause de ladite listeI pour le bloc suivant, et en ce que, sur réception dudit signal, un décodeur est apte à valider une remise en cause de ladite liste en fonction de la valeur de ladite information.
- 14. Equipement terminal d'utilisateur (TU, TU') caractérisé en ce qu'il comprend un dispositif de décodage (200) d'au moins une image numérique selon la revendication 11 et/ou un dispositif de codage (100) d'au moins une image numérique selon la revendication 12.
- 15. Programme d'ordinateur (Pgl, Pg2) comprenant des instructions pour la mise en œuvre du procédé de selon l'une des revendications 1 à 10, lorsqu'il est exécuté par un processeur.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1752824A FR3064870A1 (fr) | 2017-03-31 | 2017-03-31 | Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes |
PCT/EP2018/058307 WO2018178342A1 (fr) | 2017-03-31 | 2018-03-30 | Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordnateurs associes |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1752824A FR3064870A1 (fr) | 2017-03-31 | 2017-03-31 | Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes |
FR1752824 | 2017-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3064870A1 true FR3064870A1 (fr) | 2018-10-05 |
Family
ID=61223937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1752824A Withdrawn FR3064870A1 (fr) | 2017-03-31 | 2017-03-31 | Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3064870A1 (fr) |
WO (1) | WO2018178342A1 (fr) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2418855A1 (fr) * | 2009-04-08 | 2012-02-15 | Sharp Kabushiki Kaisha | Dispositif de codage vidéo et dispositif de décodage vidéo |
US20140348235A1 (en) * | 2009-04-08 | 2014-11-27 | Sharp Kabushiki Kaisha | Video encoding apparatus and video decoding apparatus |
US20160219290A1 (en) * | 2015-01-26 | 2016-07-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
-
2017
- 2017-03-31 FR FR1752824A patent/FR3064870A1/fr not_active Withdrawn
-
2018
- 2018-03-30 WO PCT/EP2018/058307 patent/WO2018178342A1/fr active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2418855A1 (fr) * | 2009-04-08 | 2012-02-15 | Sharp Kabushiki Kaisha | Dispositif de codage vidéo et dispositif de décodage vidéo |
US20140348235A1 (en) * | 2009-04-08 | 2014-11-27 | Sharp Kabushiki Kaisha | Video encoding apparatus and video decoding apparatus |
US20160219290A1 (en) * | 2015-01-26 | 2016-07-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
Also Published As
Publication number | Publication date |
---|---|
WO2018178342A1 (fr) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3183879A1 (fr) | Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés | |
EP3490258A1 (fr) | Procédé et support d'enregistrement mémorisant un flux de données d'images codées | |
WO2017001741A1 (fr) | Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés | |
WO2015059400A1 (fr) | Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants | |
EP2279621B1 (fr) | Procédé de codage, de décodage, codeur et décodeur | |
EP3449631A1 (fr) | Procede de decodage d'une image numerique, procede de codage, dispositifs, et programmes d'ordinateurs associes | |
EP3398330A1 (fr) | Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associés | |
WO2016102804A1 (fr) | Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes | |
WO2018073523A1 (fr) | Procédé de codage et de décodage de paramètres d'image, dispositif de codage et de décodage de paramètres d'image et programmes d'ordinateur correspondants | |
FR3064870A1 (fr) | Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes | |
WO2019015884A1 (fr) | Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes | |
FR3071690A1 (fr) | Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes | |
EP3520416B1 (fr) | Procédé de codage d'une image, procédé de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associés | |
EP3815369A1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
WO2019180350A1 (fr) | Procédé d'encodage et de décodage vidéo faible latence | |
FR2957744A1 (fr) | Procede de traitement d'une sequence video et dispositif associe | |
WO2020161413A1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
FR3033115A1 (fr) | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants | |
WO2020058595A1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
EP3878182A1 (fr) | Procédé et displositif de codage et de décodage d'une image par découpage de bloc en zones | |
EP3815366A1 (fr) | Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image | |
FR3057429A1 (fr) | Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20181005 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
TQ | Partial transmission of property |
Owner name: B COM, FR Effective date: 20190730 Owner name: TDF, FR Effective date: 20190730 |
|
ST | Notification of lapse |
Effective date: 20201110 |