FR3030975A1 - Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes - Google Patents

Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes Download PDF

Info

Publication number
FR3030975A1
FR3030975A1 FR1462889A FR1462889A FR3030975A1 FR 3030975 A1 FR3030975 A1 FR 3030975A1 FR 1462889 A FR1462889 A FR 1462889A FR 1462889 A FR1462889 A FR 1462889A FR 3030975 A1 FR3030975 A1 FR 3030975A1
Authority
FR
France
Prior art keywords
description
elements
subset
prediction
values
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
FR1462889A
Other languages
English (en)
Other versions
FR3030975B1 (fr
Inventor
Felix Henry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
B Com SAS
Original Assignee
Orange SA
B Com SAS
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 Orange SA, B Com SAS filed Critical Orange SA
Priority to FR1462889A priority Critical patent/FR3030975B1/fr
Priority to PCT/FR2015/053470 priority patent/WO2016097556A1/fr
Publication of FR3030975A1 publication Critical patent/FR3030975A1/fr
Application granted granted Critical
Publication of FR3030975B1 publication Critical patent/FR3030975B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/18Methods 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 set of transform coefficients
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

L'invention concerne un procédé de codage d'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 (C) : - Traitement (E1) du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; Sélection (E2) d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; Prédiction (E4) des éléments de description du sous-ensemble sélectionné; - Codage (E3) des valeurs des éléments de description non prédits ; Calcul (E5) d'un indicateur de prédiction (IP) des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales ; - Codage (E6) des valeurs d'indicateurs obtenues pour les éléments de description prédits. Le procédé est particulier en ce que l'étape de sélection (E2) sélectionne un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir.

Description

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur 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, dans lequel une prédiction d'une portion du signal à coder est réalisée à partir d'une portion du signal déjà codée. 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 oeuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3DAVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant. L'invention peut s'appliquer aussi au codage audio, par exemple mis en oeuvre dans les codeurs audio actuels (EVS, OPUS, MPEG-H, etc) et leurs extensions et au décodage correspondant. 2. Présentation de l'art antérieur On considère un schéma de compression classique d'une image numérique, selon lequel l'image est divisée en blocs de pixels. Un bloc courant à coder est prédit à partir d'un bloc précédemment codé décodé. Un bloc résidu est obtenu par soustraction des valeurs originales aux valeurs prédites. Il est ensuite transformé à l'aide d'une transformation de type DCT (pour « Discrete Cosinus Transform », en anglais) ou ondelettes. Les coefficients transformés sont quantifiés puis leurs amplitudes sont soumises à un codage entropique de type Huffmann ou arithmétique. Un tel codage obtient des performances efficaces, car, du fait de la transformation, les valeurs des amplitudes à coder sont en grande majorité nulles. En revanche, il ne s'applique pas aux valeurs des signes des coefficients, dont les valeurs + et - sont généralement associées à des probabilités d'apparition équivalentes. Ainsi, les signes des coefficients sont codés par un bit 0 ou 1. On connait de l'article de Koyama, J. et al, intitulé « Coefficient sign bit compression in video coding », et publié dans les proceedings de la conférence «Picture Coding Symposium (PCS) », en mai 2012, une méthode de sélection de signes de coefficients d'un bloc résidu à prédire. La sélection proposée est basée sur un nombre de coefficients prédéterminé en fonction de leur amplitude et de la taille du bloc dont ils sont issus. Les signes sélectionnés sont prédits en testant toutes les combinatoires possibles des valeurs de ces signes pour le bloc et en choisissant celle qui maximise un critère de vraisemblance prédéterminé Les prédictions obtenues sont comparées aux valeurs originales des signes pour déterminer la valeur d'un indicateur de prédiction, appelé aussi résidu d'un signe prédit. Cet indicateur peut prendre deux valeurs, qui sont une première valeur représentative d'une prédiction correcte et une deuxième valeur représentative d'une prédiction incorrecte. Le reste des signes est codé de façon explicite, sans prédiction. Un avantage d'une telle sélection est de prédire la valeur d'un signe avec une probabilité de prédiction correcte supérieure à 50%, donc de permettre l'application d'un codage entropique aux valeurs des indicateurs de prédiction. Ce codage entropique code l'information de signe avec un débit moyen inférieur à un bit par signe, et permet ainsi d'augmenter le taux de compression. 3. Inconvénients de l'art antérieur Néanmoins, cette technique présente au moins deux inconvénients majeurs : - Certains signes dont la probabilité de prédiction correcte est proche de 50 % entrent dans la sélection de coefficients à prédire. Si ceci n'a pas d'impact sur la performance de compression (pas de gain), il y a une augmentation inutile du nombre de calculs à effectuer ; - Certains coefficients dont la probabilité de prédiction correcte est élevée (supérieure à 50%) ne sont pas retenus dans la sélection de coefficients à prédire. Il y a alors une perte d'efficacité de compression, car ces coefficients pourraient être utilisés pour diminuer encore la taille du signal codé. 4. Objectifs de l'invention 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 sélectionne plus efficacement les signes à prédire. Un autre objectif de l'invention est de proposer une solution qui soit plus performante en compression. Encore un autre objectif de l'invention est de proposer une solution qui s'applique à tout type d'élément de description d'un bloc de pixels mis en oeuvre pour le codage d'une image numérique. 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 codage d'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 oeuvre pour un bloc courant : - Traitement du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; - Sélection d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; - Prédiction des éléments de description du sous-ensemble sélectionné; - Codage des valeurs des éléments de description non prédits ; - Calcul d'un indicateur de prédiction des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; - Codage des valeurs d'indicateurs obtenues pour les éléments de description prédits; Selon l'invention, ledit procédé est particulier en ce que l'étape de sélection sélectionne un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir. L'invention généralise le fait de sélectionner les signes à prédire à tout type d'élément de description des données à coder pour le bloc courant. Contrairement à l'art antérieur, qui pour sélectionner les signes à prédire, évalue conjointement la prédiction d'un ensemble de signes, l'invention cherche à déterminer un sous-ensemble de cet ensemble pour lequel il est possible de prédire chacun des éléments indépendamment des valeurs des autres. Pour ce faire, elle cherche à déterminer un ordre de parcours des éléments de description de ce sous-ensemble qui permette d'y parvenir. L'invention s'appuie sur une approche tout-à-fait nouvelle et inventive qui exploite le fait que la meilleure prédiction d'un élément de description est celle sachant les valeurs de tous les autres éléments et sélectionne le sous-ensemble d'éléments de description dont la prédiction maximise individuellement un critère de vraisemblance. De cette manière, pour un même nombre d'éléments de description prédits que dans l'art antérieur, c'est-à-dire pour une même complexité de traitement, les performances sont améliorées. Malgré le fait qu'on ne connaisse pas les autres éléments, on prédit l'élément identifié avec la même probabilité de prédiction correcte que si on connaissait la vraie valeur de tous les autres éléments de description.
Selon un autre aspect de l'invention, l'étape de sélection comprend au moins une itération d'une séquence de sous-étapes mise en oeuvre pour un sous-ensemble de l'ensemble d'éléments de description du bloc courant et comprenant: - Identification d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; - Construction d'une séquence d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; - Mise à jour du sous-ensemble par suppression de l'élément de description identifié ; La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification a identifié au moins un élément de description. Avantageusement, on construit itérativement la séquence ordonnée de éléments sélectionnées la plus longue possible à partir du sous-ensemble initial.Suite à une itération, la ou les valeurs du ou des signes identifiés sont fixées à leur valeur prédite et utilisées pour identifier d'autres signes du sous-ensemble, sachant ces valeurs.Si la séquence finale compte autant d'éléments que le sous-ensemble initial, c'est qu'on a trouvé un cheminement permettant de prédire individuellement chacun des éléments du sous ensemble. Selon un autre aspect de l'invention, l'étape de sélection comprend en outre une sous-étape de définition d'un sous-ensemble initial de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes précédentes est mise en oeuvre pour le sous-ensemble initial. Un avantage est de prendre comme point de départ pour construire la séquence ordonnée, un sous-ensemble d'éléments de description auxquels on associe un niveau de fiabilité de prédiction élevée, ce qui garantit un taux de compression élevé pour le codage entropique des résidus de prédiction des éléments de description sélectionnés. Selon un autre aspect de l'invention, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection comprend en outre une sous-étape de restriction du sous-ensemble par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que l'itération suivante de la séquence de sous-étapes est appliquée au sous-ensemble restreint. L'invention cherche à intégrer tous les éléments de description du sous-ensemble dans la séquence d'éléments de description. Si ce n'est pas possible avec le sous-ensemble initial, il est restreint par exemple en ne gardant que les éléments associés aux scores les plus élevés, jusqu'à ce qu'une séquence comprenant tous les éléments du sous-ensemble puisse être construite. Selon un autre aspect de l'invention, la sous-étape d'identification d'au moins un élément de description calcule la valeur prédite pour ledit au moins un élément de description et la stocke en mémoire et en ce que l'étape de prédiction comprend la lecture de la valeur stockée. Un avantage est que l'étape de prédiction n'a pas besoin de recalculer cette valeur. La charge de calcul est optimisée. Le procédé qui vient d'être décrit dans ses différents modes de réalisation est avantageusement mis en oeuvre par un dispositif de codage d'une image numérique selon l'invention, comprenant les unités suivantes, aptes à être mises en oeuvre pour un bloc courant : - Traitement du bloc courant destiné à fournir un ensemble d'éléments de description des données à coder pour le bloc traité ; - Sélection d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; - Prédiction des éléments de description du sous-ensemble sélectionné; - Codage des valeurs des éléments de description non prédits ; - Calcul d'un indicateur de prédiction des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; - Codage des valeurs d'indicateurs obtenues pour les éléments de description prédits; Selon l'invention, le dispositif de codage est particulier en ce que l'unité de sélection est apte à sélectionner un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante de valeurs des éléments de description qui restent à parcourir. Corrélativement, l'invention concerne aussi un procédé de décodage d'une image numérique à partir d'un train binaire, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc, dit bloc courant : - Sélection d'un sous-ensemble d'éléments de description du bloc courant à prédire parmi un ensemble d'éléments de description du bloc ; - Décodage des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; - Prédiction des valeurs des éléments de description du sous-ensemble sélectionné; - Décodage de valeurs d'indicateurs de prédiction des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; - Calcul des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs prédites et des valeurs d'indicateurs de prédiction décodées ; - Reconstruction du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description ; Selon l'invention, ledit procédé est particulier en ce que, pour le sous-ensemble sélectionné, l'étape de sélection sélectionne un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir. Avantageusement, le procédé de décodage selon l'invention exploite les données codées extraites du train binaire pour reproduire l'étape de sélection des éléments de description à prédire dans le bloc courant, mise en oeuvre par le procédé de codage Selon un autre aspect de l'invention, l'étape de sélection comprend au moins une itération d'une séquence de sous-étapes, mise en oeuvre pour un sous-ensemble de l'ensemble d'éléments de description du bloc courant et comprenant, pour une itération: - Identification d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; - Construction d'une séquence d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; - Mise à jour du sous-ensemble par suppression de l'élément de description identifié ; La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification de l'itération courante a identifié au moins un élément de description. Selon encore un autre aspect de l'invention, ladite étape de sélection d'un sous- ensemble d'éléments de description comprend une sous-étape de définition d'un sous-ensemble initial de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble initial en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes est mise en oeuvre pour le sous-ensemble initial. Selon encore un autre aspect de l'invention, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection comprend en outre une sous-étape de restriction du sous-ensemble initial par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, une sous-étape de décodage de l'élément de description supprimé à l'aide de données codées extraites du train binaire et en ce que la séquence itérative de sous-étapes est appliquée au sous-ensemble initial restreint. Selon encore un autre aspect de l'invention, un élément de description des données du bloc appartient à un groupe comprenant : - Un mode de prédiction du bloc courant ; - Un mode de prédiction du vecteur mouvement estimé pour le bloc courant ; - Un mode de codage du bloc courant ; - Une valeur d'un coefficient d'un résidu du bloc courant ; - Une information représentative d'une signifiance de la valeur du coefficient ; et - Un signe du coefficient. Avantageusement, le sous-ensemble sélectionné peut comprendre des éléments de description de types variés. Le procédé qui vient d'être décrit dans ses différents modes de réalisation est avantageusement mis en oeuvre par un dispositif de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, selon l'invention.
Un tel dispositif comprend les unités suivantes, aptes à être mises en oeuvre pour un bloc, dit bloc courant : - Sélection d'un sous-ensemble d'éléments de description du bloc courant à prédire parmi un ensemble d'éléments de description du bloc ; - Décodage des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; - Prédiction des valeurs des éléments de description du sous-ensemble sélectionné; - Décodage de valeurs d'indicateurs de prédiction (IP) des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; - Calcul des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs prédites et des valeurs d'indicateurs de prédiction décodées ; - Reconstruction du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description. Selon l'invention, ledit dispositif est particulier en ce que, pour le sous-ensemble sélectionné, l'unité de sélection est apte à sélectionner un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir. Corrélativement, l'invention concerne également un signal portant un train binaire comprenant des données codées représentatives d'éléments de description de blocs de pixels d'une image numérique, lesdits blocs de pixels étant traités dans un ordre défini. Le signal selon l'invention est particulier caractérisé en ce que lesdites données codées dans le train binaire sont obtenues conformément au procédé de codage selon l'invention. Corrélativement, l'invention concerne aussi un terminal d'utilisateur comprenant un dispositif de codage d'une image numérique et un dispositif de décodage d'une image numérique selon l'invention. L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de codage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en oeuvre des étapes d'un procédé de décodage d'une image 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 numérique et au dispositif de décodage d'une image numérique selon l'invention, éventuellement amovibles, mémorisant respectivement un programme d'ordinateur mettant en oeuvre un procédé de codage et un programme d'ordinateur mettant en oeuvre un procédé de décodage, tels 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 illustre de façon schématique une séquence d'images numériques à coder et le découpage en blocs de ces images selon l'art antérieur ; - la figure 2 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon un premier mode de réalisation de l'invention ; - la figure 3 détaille l'étape de traitement d'un bloc mise en oeuvre dans le procédé de codage selon l'invention ; - la figure 4 détaille l'étape de sélection d'un sous-ensemble d'éléments de description à prédire, mise en oeuvre par le procédé de codage selon un deuxième mode de réalisation de l'invention ; - la figure 5 présente de façon schématique un exemple de réalisation de l'étape de sélection de l'invention ; - la figure 6 présente de façon schématique un bloc courant décodé d'une image numérique décodée; - la figure 7 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon un premier mode de réalisation de l'invention ; la figure 8 détaille l'étape de sélection d'un sous-ensemble d'éléments de description à prédire, mise en oeuvre par le procédé de décodage selon un deuxième mode de réalisation de l'invention ; et la figure 9 présente un exemple de structure simplifiée d'un dispositif de codage d'une image numérique et d'un dispositif de décodage d'une image numérique selon un mode de réalisation de l'invention. 7. Description d'un mode de réalisation particulier de l'invention Le principe général de l'invention repose sur la sélection d'un sous-ensemble d'éléments de description de données à coder pour un bloc courant d'une image numérique, pour lequel on peut définir un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs de éléments de description qui restent à parcourir. En relation avec la Figure 1, on considère une vidéo originale constituée d'une suite de M images Il, 12, ...IM, avec M entier non nul. Les images sont encodées par un encodeur, les données codées sont insérées un train binaire TB transmis à un décodeur via un réseau de communication, ou un fichier compressé FC, destiné à être stocké sur un disque dur par exemple. Le décodeur extrait les données codées, puis reçues et décodées par un décodeur dans un ordre prédéfini connu de l'encodeur et du décodeur, par exemple dans l'ordre temporel Il, puis 12, ..., puis IM, cet ordre pouvant différer suivant le mode de réalisation. Lors de l'encodage d'une image Im, avec m entier compris entre 1 et M, celle-ci est subdivisée en blocs de taille maximale qui peuvent à leur tour être subdivisés en blocs plus petits. Chaque bloc C va subir une opération d'encodage ou de décodage consistant en une suite d'opérations, comprenant de manière non exhaustive une prédiction, un calcul de résidu du bloc courant, une transformation des pixels du bloc courant en coefficients, une quantification des coefficients et un codage entropique des coefficients quantifiés. Cette suite d'opérations sera détaillée par la suite. Les étapes du procédé de codage d'une image Im selon l'invention vont maintenant être décrites en relation avec la Figure 2. En E0, on commence par sélectionner comme bloc courant C le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels.Au cours d'une étape El, on traite un bloc C courant en mettant en oeuvre un schéma de codage, par exemple tel que spécifié dans la norme HEVC, dans le document "ISO/IEC 23008-2:2013 - High efficiency coding and media delivery in heterogeneous environments -- Part 2: High efficiency video coding », International Organization for Standardization, publié en novembre 2013. Cette étape de traitement est destinée à fournir un ensemble d'éléments ED de description des données à coder pour le bloc courant C. Ces éléments de description peuvent être de types variés. De façon non exhaustive, ils comprennent notamment : - les informations relatives à des choix de codage du bloc courant C, par exemple un mode de codage du bloc courant, tel que le mode INTRA, INTER ou SKIP, un mode de prédiction du bloc courant, parmi les 35 modes de prédiction d'un bloc INTRA, un mode de prédiction d'un vecteur mouvement estimé pour le bloc courant, ou encore la signifiance d'une amplitude d'un coefficient, connus en soi dans HEVC; - les valeurs de données à coder, telles que les composantes d'un vecteur mouvement, l'amplitude ou le signe d'un coefficient ; - etc On suppose qu'il existe L découpes en blocs possibles numérotées de 1 à L, et que la découpe utilisée sur le bloc C est la découpe numéro I. Par exemple, il peut y avoir 4 découpes possibles, en blocs de taille 4x4, 8x8, 16x16, et 32x32. En relation avec la Figure 6, l'image courante décodée est désignée par ID. On notera que, dans un codeur vidéo, l'image ID est (re)construite dans le codeur de façon à pouvoir servir pour prédire les autres pixels de la séquence d'images. En relation avec la Figure 3, on détaille un exemple de sous-étapes mises en oeuvre par ce traitement El du bloc courant C sélectionné, conformément à la norme HEVC. Au cours d'une étape Eh, on détermine une prédiction P du bloc original C. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée) dans le cas d'une prédiction dite INTER, ou par prédiction INTRA (bloc construit à partir des pixels décodés immédiatement adjacents au bloc courant dans l'image ID). Les informations de prédiction liées à P sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a K modes de prédiction possibles ml, m2,..., mK, avec K entier non nul, et que le mode de prédiction choisi pour le bloc C est le mode mk. Au cours d'une étape E12, un résidu original R est formé, par soustraction R = C-P de la prédiction P du bloc courant C au bloc courant C. Au cours d'une étape E13, le résidu R est transformé en un bloc résidu transformé, appelé RT, par une transformée de type DCT ou transformée en ondelettes, toutes les deux connues de l'homme de métier et notamment mises en oeuvre dans les normes JPEG pour la DCT et JPEG2000 pour la transformée en ondelettes. En E14, le résidu transformé RT est quantifié par des moyens classiques de quantification, par exemple scalaire ou vectorielle, en un bloc résidu quantifié RQ. Ce bloc quantifié RQ contient NxN coefficients. De façon connue dans l'état de l'art, ces coefficients sont scannés dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[i], où l'indice i varie de 0 à N2-1. L'indice i est appelé fréquence du coefficient RQ[i]. Classiquement, on scanne ces coefficients par ordre croissant de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. Lors d'une étape E15, on vient coder les informations d'amplitude des coefficients du bloc résidu RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Par amplitude, on entend ici la valeur absolue du coefficient. Des moyens de codage des amplitudes sont par exemple décrits dans la norme HEVC et dans l'article de Sole et al, intitulé « Transform Coefficient Coding in HEVC », publié dans la revue IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, en décembre 2012. Classiquement, on peut coder pour chaque coefficient une information représentative du fait que le coefficient est non nul. Ensuite, pour chaque coefficient non nul, une ou plusieurs informations relatives à l'amplitude sont codées. On obtient les amplitudes codées CA. A l'issue de l'étape El, on dispose donc pour le bloc courant C d'un ensemble d'éléments ED de description de données à coder, parmi lesquels on compte les coefficients résidus transformés quantifiés RQ[i]. En relation avec la Figure 2, on sélectionne au cours d'une étape E2, un sous-ensemble SE de cet ensemble, comprenant les éléments de description à prédire PED pour le bloc C. Selon l'invention, ce sous-ensemble est défini de façon particulière, puisqu'il ne comprend que des éléments de description qui, lorsqu'ils sont traités selon un ordre de parcours particulier, peuvent être prédits de façon indépendante des valeurs réelles des autres éléments de description de l'ensemble. En relation avec la Figure 4, on détaille maintenant l'étape de sélection E2 d'un sous-ensemble SE d'éléments de description à prédire selon un mode de réalisation de l'invention. Dans cet exemple, on considère des éléments de description d'un type particulier, par exemple des signes de coefficients transformés et quantifiés du bloc courant RQ. Bien sûr, l'invention n'est pas limitée à ce type d'éléments et s'applique à tout élément de description du bloc courant. Au cours d'une première sous-étape E21 on définit un sous-ensemble initial SEI d'éléments de description à prédire. De façon avantageuse, on exploite la connaissance d'un contexte Cxj associé à chaque coefficient parmi une pluralité 3 de contextes prédéterminés, avec 3 entier non nul et j entier compris entre 1 et J. Un tel contexte est défini par au moins une caractéristique de codage du coefficient ou du bloc dont il est issu.
De façon avantageuse, on considère les caractéristiques suivantes : - la taille du bloc résidu quantifié RQ, - l'amplitude du coefficient quantifié RQ[i], - la fréquence du coefficient ou indice i dans le bloc RQ, - le mode de prédiction du bloc courant mk parmi les K modes possibles. En effet, la prédiction du signe est d'autant plus fiable que l'amplitude est élevée. De même, il a été constaté que lorsque le bloc est de taille plus grande, la fréquence du coefficient plus faible, la prédiction est plus fiable. Enfin, il a été constaté que la prédiction est plus fiable lorsque le bloc courant est associé à une prédiction intra d'un certain type. De façon alternative, d'autres contextes sont envisageables. Ainsi, il est possible de tenir compte du type d'image dans lequel se trouve le bloc courant, par exemple du type Intra ou Inter, connu de la norme HEVC, en fonction de l'énergie du prédicteur P, ou encore en fonction du nombre total de coefficients non nuls dans le bloc courant. Au cours de l'étape E21, on sélectionne les signes des coefficients du bloc RQ à prédire, en fonction d'un score prédéterminé Sj, pour le contexte Cxj associé au coefficient RQ[i] considéré. Un tel score Sj est représentatif d'un niveau de fiabilité de la prédiction du signe du coefficient RQ[i]. Par exemple, le score Sj prend des valeurs dans un ensemble prédéterminé, par exemple de 0 à 10. Selon une variante, le score est une simple indication binaire, dont l'une des deux valeurs indique que le signe peut être prédit, et l'autre que le signe ne peut pas être prédit. Selon une autre variante, les scores Sj correspondent à des probabilités connues a priori, dépendantes du contexte Cxj associé au coefficient RQ[i]. On dispose, dans l'encodeur, d'un ensemble de probabilités de détection correcte des signes des coefficients RQ. Par exemple cet ensemble de probabilités est stocké en mémoire.
Ces probabilités ont été construites avant l'encodage et le décodage, soit par accumulation statistique sur un ensemble de signaux représentatifs des signaux à coder, soit par calcul mathématique à partir d'hypothèses sur la distribution des signes des coefficients. Pour un coefficient RQ[i] associé au contexte Cxj, on peut donc obtenir le score Sj[i] en calculant la probabilité p[1][mk][i][IRQ[i]l] de prédiction correcte du signe du coefficient RQ[i]. Avantageusement, les signes à prédire sont sélectionnés par seuillage des scores auxquels ils sont associés. Ainsi, pour chaque coefficient RQ[i] qui a un signe (c'est-à-dire, qui n'est pas nul) et qui est associé à un contexte Cxj de score Sj, on prédit le signe si et seulement si Sj>Th, où Th est un seuil prédéterminé, par exemple égal à 0,7. Par exemple, le seuil Th est connu du codeur et du décodeur. Selon une variante, le seuil Th peut être choisi en cours de codage et inscrit dans le fichier compressé ou dans le train binaire comprenant les données codées représentatives de l'image numérique Im. Par exemple, si l'unité qui effectue l'encodage ne dispose pas d'assez de ressources de calcul à un moment donné, il lui est possible d'augmenter ce seuil Th de façon à prédire moins de signes, et donc mettre en oeuvre moins de calculs. Il serait également possible de faire varier le seuil Th en fonction du contenu des images à coder : une image comportant beaucoup de contenu, tel que des variations de luminosité importantes ou des mouvements nombreux utiliserait un seuil élevé, et une image comportant peu de contenu tel que des variations de luminosité faibles ou mouvements peu nombreux, utiliserait un seuil Th plus bas, de façon à lisser la complexité ou la mémoire nécessaire au codage de chaque image. En relation avec la Figure 5, on considère un diagramme présentant des valeurs de probabilité de détection correcte d'éléments de description d'un type particulier, par exemple 10 signes de coefficients quantifiés RQ[i]. On considère un ensemble EED d'éléments de description comprenant dix éléments de ce type. Ils sont initialement ordonnés selon l'ordre de parcours des coefficients du bloc mis en oeuvre au cours de l'étape de traitement El précédemment décrite. Le seuil Th est utilisé pour sélectionner le sous-ensemble initial SEI. Dans l'exemple de la Figure 5, ne sont retenus pour former SEI que les 4 éléments d'indices 1, 4, 5 et 8, dont la probabilité de prédiction correcte est supérieure à Th. On comprend que les éléments de description de l'ensemble EED qui n'appartiennent pas au sous-ensemble initial SEI, ne seront pas prédits. Ils forment un premier sous-ensemble NPED1 d'éléments non prédits. Au cours d'une sous-étape E22, on cherche s'il existe, dans SEI, un élément de description ED dont la prédiction est toujours la même, quelle que soit la valeur attribuée aux autres éléments de description de SEI. Concrètement, cette étape consiste à produire toutes les combinatoires possibles pour ces autres éléments, puis d'observer quelle valeur de l'élément courant est produite pour prédire cet élément, pour chacune de ces combinatoires. A titre d'exemple, on considère un ensemble EED comprenant 10 coefficients du bloc résidu quantifié RQ, parmi lesquels 4 signes sont à prédire. Par exemple, supposons que le bloc RQ soit égal à { +8, +7, 0, -6, -3,0,0,2,-1,0}. Supposons également que les signes du sous-ensemble initial SEI soient ceux des 1er 4ème, 5ème et sème coefficients (d'amplitudes 8, 6, 3 et 2 respectivement). Selon l'invention, on commence par déterminer la prédiction du signe du premier coefficient 8 en fixant les trois autres signes de SEI à une première valeur, par exemple +}- Par exemple, on définit la combinatoire RQVO : RQVO = { +8, +7, 0, +6, +3,0,0,+2,-1,0} RQV1 = { -8, +7, 0, +6, +3,0,0,+2,-1,0} On décode ensuite les blocs RQVO et RQV1 avec les moyens classiques de déquantification et de transformée inverse, leur ajoute le bloc prédit P, pour produire deux blocs décodés virtuels BDVO et BDV1. La vraisemblance de ces blocs est testée avec un critère de vraisemblance. Est retenue la combinaison de signes correspondant au bloc décodé virtuel qui maximise le critère de vraisemblance. Avantageusement, le critère de vraisemblance utilisé est la minimisation de l'erreur quadratique le long de la frontière entre le bloc décodé virtuel et les pixels précédemment décodés.
En relation avec la Figure 6, on a représenté une image décodée ID et un bloc décodé virtuel DVs de taille NxN pixels de cette image, où DVs(n,m) est la valeur du pixel du bloc DVs situé sur la n'ème ligne et la m'ème colonne du bloc. La ligne brisée F représente la frontière entre le bloc virtuel décodée et le reste de l'image (précédemment décodé). ID(k,l) est la valeur du pixel de ID situé sur la kème ligne et la ième colonne de l'image, et (lin,col) sont les coordonnées du bloc DVs (coordonnées du pixel en haut à gauche de DVS) dans l'image ID. On considère un opérateur « Side Matching » avec .c3 image courante et B bloc courant, défini comme suit : N-1 N-1 B) =(B(0, a) - .c3 (lin - 1, col + a))2 + (a, 0) - .c3 (lin + a, col - 1))2 a=0 a=0 Sur la figure 6, ceci revient à former la somme (x1-y1)2+ (x2-y2)2+ (x3-y3)2+ (x4- y4)2+ (x5-y4)2+ (x6-y5)2+ (x7-y6)2+ (x8-y7)2. On détermine le bloc décodé virtuel optimal DVopt qui minimise cette mesure : Dvopt = ar gminDvsS M (ID , Dg.) où ID représente l'image reconstruite après décodage. Alternativement, le critère de vraisemblance utilisé est la minimisation de l'erreur avec le prédicteur P. Cela consiste à sélectionner le bloc décodé virtuel qui minimise l'erreur avec le prédicteur P. Le résidu virtuel associé au bloc décodé virtuel optimal est ainsi identifié. Supposons qu'il s'agisse de RQVO. On obtient alors comme prédiction un signe + pour le premier coefficient, lorsque les trois autres signes de SEI sont à {+, +, +}. Selon l'invention, on teste ensuite toutes les autres combinaisons possibles des valeurs de signes des trois coefficients et à chaque fois, on calcule la prédiction du signe + du ler coefficient Il s'agit de comparer les valeurs de vraisemblance obtenues pour les combinaisons des valeurs des coefficients 4,5 et 8 sachant + pour le coefficient d'indice 1 avec celles obtenues respectivement avec les mêmes valeurs des coefficients d'indice 4, 5 et 8 sachant - pour le ler coefficient.
Par exemple, pour la nouvelle combinaison {+, +, -} des trois autres signes de SEI, on compare les vraisemblances des combinaisons : RQV2 = { +8, +7, 0, +6, +3,0,0,-2,-1,0} RQV3 = { -8, +7, 0, +6, +3,0,0,-2,-1,0} et on vérifie que la combinaison RQV2 est plus vraisemblable que la combinaison RQV3. Si la vraisemblance est maximale pour toutes les combinaisons possibles des coefficients 4,5 et 8 alors que le signe du ler coefficient est prédit avec le signe +, alors on a identifié le ler coefficient comme prédictible indépendamment des valeurs attribuées aux autres. Autrement dit, si la valeur prédite pour l'élément courant est toujours la même, alors on considère en E23 que l'élément courant est identifié comme premier élément d'une séquence Seq que l'on construit en E24. En E23, on a préalablement vérifié que la séquence en cours de construction n'avait pas déjà été testée. En E25, on met à jour le sous-ensemble courant SEI en supprimant l'élément identifié du sous-ensemble initial SEIO. Pour la suite de la sélection, l'élément identifié est fixé à sa valeur prédite. On itère le processus en répétant les étapes E22 à E25 tant que le sous-ensemble SE comprend plus d'un élément et tant qu'on réussit à identifier un nouvel élément ED dont la prédiction est toujours la même, quelle que soit la valeur attribuée aux autres éléments de description de SE. Si le processus s'arrête parce que l'étape E22 n'a pas identifié de nouvel élément de description alors que le sous-ensemble SE n'est pas vide, la séquence Seq construite en E24 est incomplète, car elle n'inclut pas tous les éléments du sous-ensemble initial. C'est le cas pour la première séquence Seq1 obtenue dans l'exemple de la Figure 5 à partir du sous-ensemble initial SEIO comptant 4 éléments. Elle ne comprend que deux éléments d'indices 1 et 8. Avantageusement, on recommence le processus pour essayer de construire une autre séquence ordonnée Seq à partir du sous-ensemble SEIO, en identifiant un autre élément ED en première position de la séquence. Si le processus se termine, alors que cette autre séquence n'est pas complète, alors on relance le processus en E27, tant qu'on n'a pas testé toutes les séquences possibles pour le sous ensemble initial SEIO.
On réinitialise la séquence Seq en E28. Si toutes les séquences ordonnées ont été testées pour un SEI donné sans obtenir aucune séquence complète, on considère que le processus de sélection a échoué, au sens où il n'a pas trouvé d'ordre de parcours des éléments ED dans SEI permettant de les prédire individuellement. On restreint le sous ensemble initial SEIO au cours d'une étape E29. Avantageusement, on supprime l'élément ED qui est associé au score Si le plus faible et on obtient un nouveau sous-ensemble initial SEI1 Le processus est répété pour le nouveau sous ensemble initial SEI1. C'est le cas dans l'exemple de la Figure 5. On supprime l'élément d'indice 5 et on itère le processus de sélection d'un sous-ensemble d'éléments à prédire SEI1 réduit à 3 éléments d'indices 1,4 et 8. S'il n'est toujours pas possible d'obtenir une séquence complète pour le nouvel SEI1, on restreint encore SEI1 en SEI2. On notera à cet égard que lorsque SEI est réduit à un élément, l'algorithme s'arrête, puisque la prédiction de cet élément est forcément indépendante des autres. Si une séquence Seq complète a été trouvée pour un sous-ensemble SEI, alors tous les éléments ED de cet ensemble peuvent être prédits indépendamment les uns des autres dans l'ordre de la séquence trouvée. Avantageusement, on mémorise les valeurs prédites pour chacun des éléments de la séquence Seq. trouvée. Ainsi, elles pourront être réutilisées lors de l'étape de prédiction proprement dite. C'est le cas de la séquence Seq2 trouvée dans l'exemple de la Figure 5. Elle comprend dans l'ordre les trois éléments ED, d'indices 8,1 et 4. Les 7 autres éléments de l'ensemble EED appartiennent au sous-ensemble SENP des éléments non prédits. Les éléments de description du SEIO de départ qui ont été supprimés du sous-ensemble SE -SEI1 final forment un deuxième sous-ensemble NPED2 d'éléments qui ne seront pas prédits. Dans un autre mode de réalisation, on sélectionne des éléments de description à prédire d'un autre type. On considère en particulier l'élément de description M indicatif du mode de prédiction INTRA/INTER (dans la norme HEVC, un tel élément de description porte le nom « pred mode flag »), l'élément de description A indicatif de l'amplitude du premier coefficient résidu quantifié pour le bloc courant (dans la norme HEVC, un tel élément de description porte le nom « coeff abs level remaining ») et l'élément de description T indicateur de l'utilisation ou non d'une transformée inverse (dans la norme HEVC, un tel élément de description porte le nom « transform skip flag »). Pour le bloc courant, l'ensemble de départ est constitué des éléments de description {M, A,T}. On considère dans cet exemple que, pour le bloc courant C, et en fonction des informations contextuelles, il est trouvé lors de l'étape E21 que le score de T est inférieur au seuil nécessaire Th, tandis que M et A ont un score supérieur. Le sous-ensemble initial SEI = SEIO est donc {M,A}. Au cours de l'étape E22, on cherche, dans l'ensemble SEI, s'il existe un élément de description dont la prédiction est indépendante des valeurs des autres éléments de syntaxe. Dans un premier temps, on examine si la prédiction de l'amplitude A est différente suivant que le mode de prédiction M est INTER ou INTRA. Supposons que l'on trouve que l'amplitude est différente dans les deux cas. Alors, ceci signifie qu'une séquence Seq (dont chacun des éléments a une prédiction indépendante des éléments suivants de la série) commençant par A n'existe pas dans SEI. On va alors tester s'il est possible de trouver une telle séquence commençant par M. On va donc déterminer si la prédiction du mode INTER ou INTRA est la même quelle que soit la valeur de l'amplitude A. Supposons que, pour le bloc courant considéré, le mode de prédiction prédit est toujours le mode INTRA, quelle que soit la valeur de l'amplitude A. On peut alors choisir l'élément de description M comme premier élément de la série Seq. Du plus, il ne reste qu'un seul élément de description dans SEI, l'élément A. On sait qu'on pourra également prédire la valeur de A indépendamment des éléments de description restants -puisqu'il n'y en a plus. La séquence Seq est donc constituée des éléments M, A dans cet ordre. L'étape de sélection E2 qui vient d'être décrite peut avantageusement être mise en oeuvre sous la forme d'une fonction récursive f(C, LP), où C désigne le bloc courant à coder et LP le n-uplet des éléments descriptifs du sous-ensemble initial SEI, avec n entier compris entre 1 et N, avec N non nul. Un exemple de pseudo code de cette fonction f est donné ci-après : fonction récursive f( C, LP) si LP est vide, retourner vrai. sinon pour chaque élément EDk de LP la prédiction de EDk est-elle constante quelle que soit la valeur des autres éléments ED de LP? Si non, retourner faux si oui On retire de LP l'élement de syntaxe spk On mémorise la prédiction de spk. Dans le bloc C, l'élément de syntaxe spk est fixé à sa valeur réelle. Retourner f(C, LP) Début Liste Lfinal = LP Tant que Lfinal n'est pas vide si f(Lfinal) fin ; sinon Retirer de Lfinal l'élément s qui a la plus faible probabiltié p(s) de prédiction correcte Fin A l'issue de cette étape, on a donc construit une séquence ordonnée Seq d'éléments de description à prédire de longueur égale à celle du sous-ensemble SE défini par l'étape de sélection E2. Au cours d'une étape E3, on encode de façon classique les éléments de description des premier et deuxième sous-ensembles NPED1 et NPED2 de l'ensemble EED qui n'appartiennent pas au sous-ensemble SE sélectionné. Cette étape met en oeuvre des techniques de codage connues de l'homme de métier. Pour les signes des coefficients RQ[i] par exemple, il est connu notamment de la norme HEVC, en particulier de l'article de Sole et al., déjà cité, le fait de transmettre chaque signe sous forme d'un élément binaire 0 ou 1, avec une convention associant l'un au signe plus et l'autre au signe moins. Au cours d'une étape E4, on prédit les éléments ED du sous-ensemble SE obtenu. Ceci est effectué par simple appel à la valeur prédite mémorisée lors de l'étape E2 de sélection des signes à prédire. Au cours d'une étape E5, on calcule pour chaque élément de description à prédire PED, une information représentative de la différence entre la prédiction de l'élément de description et la valeur réelle de cet élément, appelée indicateur de prédiction IP ou résidu de l'élément de description PED.
Ainsi, si on reprend l'exemple de la Figure 5, en considérant que les éléments ED sont des signes, la prédiction des éléments d'indices 8, 1, 4 de la séquence Seq2 de la Figure 5, est {-,-,+} tandis que les vrais signes sont {±,-,+}. Par convention, l'indicateur de prédiction IP est mis à 1 lorsque la prédiction est correcte et à 0 lorsque la prédiction est incorrecte, on obtient donc {0, 1, 1}. Au cours d'une étape E6, les valeurs de l'indicateur de prédiction IP pour chaque élément PED à prédire sont codées par une technique de codage entropique connue, telle que par exemple un codage de Huffman, codage arithmétique ou encore codage CABAC tel qu'utilisé dans la norme HEVC. On obtient une valeur CIP de l'indicateur de prédiction codé. Selon l'invention, du fait que seuls sont prédits les éléments de description qui sont associés à un score représentatif d'un niveau de fiabilité suffisant, l'indicateur de prédiction prend plus souvent la valeur 1 que la valeur O. Ceci est mis à profit par le codage entropique pour réduire la taille du signal compressé. Avantageusement, le codage entropique tient compte du score Si associé au signe prédit pour coder l'indicateur IP. Par exemple, dans le mode de réalisation de l'invention selon lequel le score a une valeur comprise entre 0 (faible fiabilité de la prédiction) et 10 (haute fiabilité de la prédiction), le codage entropique des indicateurs est paramétré en tenant compte du score, de façon à exploiter la répartition plus ou moins uniforme des indicateurs. Par exemple, on utilise un codage entropique de type CABAC, connu de la norme HEVC, en initialisant les probabilités utilisées dans CABAC en fonction des scores prédéterminés. Au cours d'une étape E7, illustrée par les Figures 2 et 3, on construit le bloc décodé BD correspondant au bloc résidu quantifié RQ, en lui appliquant les étapes de déquantification et de transformée inverse connues de l'homme de métier. On obtient un bloc résidu décodé RD. On ajoute à RD le bloc prédicteur P pour obtenir le bloc décodé D. Au cours de cette étape on vient également ajouter le bloc décodé D à l'image reconstruite ID. Ceci permet de disposer dans le codeur d'une version décodée de l'image courante. Cette version décodée est utilisée dans notamment au cours de l'étape de construction d'une prédiction des signes sélectionnés pour être prédits.
Au cours d'une étape E8, les données codées, c'est-à-dire les indicateurs des éléments de description prédits PED et les éléments de description non prédits NPED sont insérés dans le train binaire TB ou dans le fichier compressé FC. A l'issue du traitement du bloc courant C, on vient tester en E9 si le bloc courant C est le dernier bloc à traiter par l'unité de codage, compte tenu de l'ordre de parcours de codage défini précédemment. Si oui, l'unité de codage a terminé son traitement. Si non, l'étape suivante est l'étape de sélection du bloc suivant E0. Ce bloc devient le bloc courant à traiter, et l'étape suivante est l'étape El de traitement du bloc courant, déjà décrite. Dans un exemple de réalisation de l'invention, le contexte Cxj auquel est associé un score Sj pour un élément de description de type signe, dépend de la taille de blocs I (parmi 4 tailles possibles, comme décrit précédemment), du mode de prédiction intra mk parmi 35 modes de prédiction possibles (tels que décrits dans la norme HEVC évoquée précédemment), de la fréquence i (parmi 16, 64, 256 ou 1024 fréquences possibles, en fonction de la taille des blocs), et de l'amplitude IRQ[i]l (qui peut prendre 256 valeurs possibles lorsqu'elle elle est codée sur 8 bits). Dans cet exemple, le nombre 3 de contextes utilisés est égal à 35x(16+64+256+1024)x256 = 12185600. Un examen préalable sur des séquences d'images typiques permet de calculer une probabilité de détection correcte du signe pour chacun des contextes Cxj. Cette probabilité est le score Sj associé à chaque contexte Cxj, ce qui permet de sélectionner les signes à prédire à partir d'un seuil Th de 0.7, comme décrit précédemment. Ainsi, un gain en compression de 1 à 2 % est observé par rapport à l'état de l'art. Le train binaire TB est destiné à être présenté en entrée d'un décodeur, local ou distant. Par exemple, un signal portant le train binaire est transmis au décodeur par l'intermédiaire d'un réseau de communication. En relation avec la Figure 7, on présente maintenant les étapes du procédé de décodage d'une image numérique codée selon un exemple de réalisation de l'invention. On suppose qu'un train binaire TB a été reçu par un dispositif de décodage mettant en oeuvre le procédé de décodage selon l'invention.
En DO, on commence par sélectionner comme bloc courant C' le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. Au cours d'une étape D1, le procédé lit dans le train binaire TB les données codées relatives aux éléments de description du bloc courant non prédits appartenant au sous-ensemble NPED1 et les décode. A l'issue de cette étape, il connait les valeurs décodées des éléments de description du bloc qui n'ont pas été prédits parce qu'ils étaient associés à un score Si inférieur à un seuil Th prédéterminé. Au cours d'une étape D2, il met en oeuvre l'étape de sélection des éléments de description à prédire, déjà décrite en détails pour le procédé de codage en relation avec les Figures 3 et 4. En relation avec la Figure 8, on présente un mode de réalisation particulier de cette étape de sélection. En D21, on définit un sous-ensemble initial SEI=SEIO, qui contient initialement tous les éléments de description qui n'ont pas été décodés dans l'étape précédente, puis on recherche dans ce sous-ensemble un ordre de parcours des éléments, selon lequel l'élément courant peut être prédit indépendamment de la valeur des autres. En D22, on cherche à identifier un premier élément de description du sous-ensemble SEI, qui peut être prédit indépendamment de la valeur des autres. Si un élément est identifié (D23), sa valeur prédite est stockée en mémoire. Cet élément est placé en première position d'une séquence Seq (D25), il est supprimé du sous-ensemble SEI initial et il est fixé à la valeur prédite. Les sous-étapes D22 à D25 sont itérées pour le sous-ensemble SE obtenu afin d'identifier un deuxième élément, puis un troisième, etc, pour la séquence Seq, tant que le sous-ensemble SE compte plus d'un élément. Si à l'issue de cette boucle, la séquence Seq inclut tous les éléments du sous-ensemble, l'étape de sélection D22 a réussi. Tous les éléments du sous-ensemble SEI=SEIO seront prédits en D3 selon l'ordre trouvé. Sinon, le sous-ensemble SEI est restreint en D29, en supprimant un élément de description, par exemple celui qui est associé au score le plus faible. Si le nouveau sous-ensemble SEI obtenu comprend au moins deux éléments (test en D210), il sert de base à une nouvelle itération des sous-étapes D22 à D211 qui viennent d'être décrites dans le but de construire une séquence ordonnée pour ce nouveau sous-ensemble.
L'élément de description supprimé en D29 n'a donc pas été prédit par le codeur. Il appartient à un deuxième sous-ensemble NPED2 d'éléments de description non prédits. Il est donc décodé, en D211 à partir de données codées extraites du train binaire TB. En effet, sa valeur décodée sera exploitée par la prochaine itération de la sous-étape D22 d'identification pour prédire l'élément de description courant connaissant les valeurs de tous les autres éléments de description du bloc courant. Le processus est répété tant qu'une séquence Seq complète n'a pas été trouvée pour un sous ensemble initial SEI ou que le sous-ensemble SEI restreint contient plus d'un élément. En effet, un seul élément peut nécessaire être prédit indépendamment des autres. A l'issue de l'étape D2, on a donc déterminé une séquence ordonnée d'éléments de description PED à prédire dans un sous-ensemble SEI comprenant au moins un élément. Les éléments de description du SEI de départ qui ont été supprimés du SEI final forment un deuxième sous-ensemble NPED2 d'éléments qui ne seront pas prédits. Si on reprend l'exemple de la Figure 5, la séquence Seq2 trouvée pour le sous-ensemble SEI comprend dans l'ordre les trois éléments ED, d'indices 8,1 et 4. Le premier ensemble NPED1 comprend les 6 éléments d'indices 2, 3, 6, 7, 9 et 10. Le deuxième sous-ensemble NPED2 comprend l'élément d'indice 5. En D3, les éléments de description PED de la séquence Seq trouvée sont prédits. Avantageusement, le procédé va simplement chercher en mémoire les valeurs prédites au cours de l'étape précédente D3. En D4, le procédé lit dans le train binaire TB les données codées relatives aux résidus de prédiction des valeurs prédites pour les éléments de description de la séquence Seq. Comme précédemment décrit pour le procédé de codage, ce résidu est une information représentative de la différence entre la prédiction de l'élément de description et la valeur réelle de cet élément, appelée indicateur de prédiction IP. Les données codées CIP lues dans le train binaire correspondent aux valeurs codées de cet indicateur de prédiction et doivent d'abord faire l'objet d'un décodage entropique correspondant à l'opération inverse de celle effectuée par le procédé de codage. Ainsi, si on reprend l'exemple de la Figure 5, en considérant que les éléments ED sont des signes, les données décodées lues dans le train binaire sont {0, 1, 1}, ce qui indique que la prédiction du premier signe de la séquence est incorrecte et que celles des deux signes suivant sont correctes. En D5, le procédé calcule les valeurs réelles des éléments de description prédits PED à partir de leurs prédictions et des indicateurs IP décodés. Dans l'exemple de la Figure 5, la prédiction des éléments d'indices 8, 1, 4 de la séquence Seq2 de la Figure 5, est {-,-,+} est corrigée par les indicateurs IP décodés {incorrecte, correcte, correcte} pour obtenir les vrais signes {±,-,+} En D6, on exploite les valeurs calculées des éléments de description prédits et non prédits pour reconstruire le bloc courant C'. Notamment, cette étape met en oeuvre des techniques connues en soir de : - déquantification du bloc courant RQ' pour obtenir un bloc déquantifié. Ceci est réalisé par des moyens adaptés à la quantification utilisée lors du codage (déquantification scalaire,déquantification vectorielle...) ; - De tranformation inverse du bloc courant déquantifié RT' ; et - De construction du bloc décodé par ajout du résidu R' à la prédiction P du bloc courant C'. Le bloc C' reconstruit est intégré à l'image en cours de décodage. Au cours d'une étape D7, on vient tester si le bloc courant est le dernier bloc à traiter le décodeur, compte tenu de l'ordre de parcours défini précédemment. Si oui, le procédé de décodage a terminé son traitement. Si non, l'étape suivante est l'étape de sélection du bloc suivant DO et les étapes de décodage D1 à D7 précédemment décrites sont répétées pour le bloc suivant sélectionné. On notera que l'invention qui vient d'être décrite, peut être mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « unité », 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 oeuvre la ou les fonctions décrites pour le module ou l'unité concerné(e).
En relation avec la figure 9, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique et d'un dispositif 200 de décodage d'un train binaire selon l'invention. Le dispositif 100 met en oeuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec la Figure 2. 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 oeuvre 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 oeuvre 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 au moins une unité PROC de traitement d'un bloc courant destinée à fournir un ensemble d'éléments de description du bloc courant, une unité SEL de sélection d'un sous ensemble d'éléments à prédire dans l'ensemble fourni pour le bloc courant, une unité COD NPED de codage des éléments non sélectionnés, une unité de PRED des éléments du sous-ensemble sélectionné, une unité CALC de calcul d'un indicateur de prédiction correcte d'un élément de description et une unité COD de codage des valeurs d'indicateurs calculées pour les éléments prédits. Le dispositif 100 comprend en outre une unité M1 de stockage des contextes de codage des coefficients, des scores prédéterminés associés à chacun de ces contextes, et des valeurs prédites pour les éléments de description sélectionnés. Ces unités sont pilotées par le processeur ii de l'unité de traitement 110. De façon avantageuse, un tel dispositif 100 peut être intégré à un terminal d'utilisateur 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 ou un réseau hertzien. Le dispositif de décodage 200 met en oeuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec la Figure 7. 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 oeuvre 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 oeuvre 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 au moins une unité DEC NPED de décodage des éléments de description non prédits d'un bloc courant C' à partir des données codées extraites du train binaire, une unité SEL' de sélection d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni, une unité PRED' de prédiction des valeurs des éléments de description du sous-ensemble sélectionné, une unité DEC IP de décodage de valeurs d'indicateurs de prédiction des éléments de description sélectionnés à partir de données codées extraites du train binaire, une unité CALC' PED de calcul des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs d'indicateurs de prédiction décodées et de leurs prédictions et une unité RECONST de reconstruction du bloc courant C'. Le dispositif 200 comprend en outre une unité M2 de stockage des contextes de codage des coefficients, des scores prédéterminés associés à chacun de ces contextes, et des valeurs prédites pour les éléments de description PED sélectionnés pour un bloc C'. Ces unités sont pilotées par le processeur ja2 de l'unité de traitement 210.
De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU. Le dispositif 200 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 reçu du réseau de télécommunications. 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 apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.

Claims (16)

  1. REVENDICATIONS1. Procédé de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels (C) traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc courant : - Traitement (El) du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; - Sélection (E2) d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; - Prédiction (E4) des éléments de description du sous-ensemble sélectionné; - Codage (E3) des valeurs des éléments de description non prédits ; - Calcul (E5) d'un indicateur de prédiction (IP) des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; - Codage (E6) des valeurs d'indicateurs obtenues pour les éléments de description prédits; ledit procédé étant caractérisé en ce que l'étape de sélection (E2) sélectionne un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir.
  2. 2. Procédé de codage d'une image numérique selon la revendication 1, caractérisé en ce que l'étape de sélection comprend au moins une itération d'une séquence de sous-étapes comprenant, pour une itération, mise en oeuvre pour un sous-ensemble de l'ensemble d'éléments de description du bloc courant:- Identification (E22) d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; - Construction (E24) d'une séquence d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; - Mise à jour (E25) du sous-ensemble par suppression de l'élément de description identifié ; La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification a identifié au moins un élément de description.
  3. 3. Procédé de codage d'une image numérique selon la revendication 2, caractérisé en ce que l'étape de sélection (E2) comprend en outre une sous-étape (E21) de définition d'un sous-ensemble initial (SEI) de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble en fonction d'un score (Sj) prédéterminé associé à un contexte de codage (Cxj) de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes précédentes est mise en oeuvre pour le sous-ensemble initial.
  4. 4. Procédé de codage d'une image numérique selon l'une des revendications 2 et 3, caractérisé en ce que, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection (E2) comprend en outre une sous-étape (E29) de restriction du sous-ensemble par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que l'itération suivante de la séquence de sous-étapes est appliquée au sous-ensemble restreint.
  5. 5. Procédé de codage d'une image numérique, selon l'une des revendications 2 à 4, caractérisé en ce que la sous-étape d'identification d'au moins un élément dedescription calcule la valeur prédite pour ledit au moins un élément de description et la stocke en mémoire et en ce que l'étape de prédiction (E4) comprend la lecture de la valeur stockée.
  6. 6. Dispositif (100) de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant les unités suivantes, aptes à être mises en oeuvre pour un bloc courant (C) : - Traitement (PROC) du bloc courant destiné à fournir un ensemble (EED) d'éléments de description du bloc traité ; - Sélection (SEL) d'un sous-ensemble (SE) d'éléments de description à prédire dans l'ensemble fourni; - Prédiction (PRED) des éléments de description du sous-ensemble sélectionné; - Codage (COD NPED) des valeurs des éléments de description non prédits ; - Calcul (CALC IP) d'un indicateur de prédiction (IP) des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : o une première valeur représentative d'une prédiction correcte ; o une deuxième valeur représentative d'une prédiction incorrecte ; - Codage (COD IP) des valeurs d'indicateurs obtenues pour les éléments de description prédits; ledit dispositif étant caractérisé en ce que l'unité de sélection est apte à sélectionner un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante de valeurs des éléments de description qui restent à parcourir.
  7. 7. Procédé de décodage d'une image numérique (Im) à partir d'un train binaire (TB), ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, letrain binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit procédé comprenant les étapes suivantes, mises en oeuvre pour un bloc (C'), dit bloc courant : - Sélection (D2) d'un sous-ensemble (SE) d'éléments de description du bloc courant à prédire (PED) parmi un ensemble d'éléments de description du bloc ; - Décodage (Dl) des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; - Prédiction (D3) des valeurs des éléments de description du sous-ensemble sélectionné; - Décodage (D4) de valeurs d'indicateurs de prédiction (IP) des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : a. une première valeur représentative d'une prédiction correcte ; b. une deuxième valeur représentative d'une prédiction incorrecte ; - Calcul (D5) des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs d'indicateurs de prédiction décodées ; - Reconstruction (D6) du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description ; ledit procédé étant caractérisé en ce que l'étape de sélection (D2) sélectionne un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description, selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir.
  8. 8. Procédé de décodage d'une image numérique selon la revendication 7, caractérisé en ce que l'étape de sélection (D2) comprend au moins une itération d'une séquence de sous-étapes comprenant, pour une itération: - Identification (D22) d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ;- Construction (D24) d'une séquence (Seq) d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; - Mise à jour (D25) du sous-ensemble par suppression de l'élément de description identifié ; La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification mise en oeuvre au cours de l'itération courante a identifié au moins un élément de description.
  9. 9. Procédé de décodage d'une image numérique (Im) à partir d'un train binaire (TB) comprenant des données codées représentatives de ladite image selon la revendication 8, caractérisé en ce que ladite étape (D2) de sélection d'un sous-ensemble d'éléments de description comprend une sous-étape (D21) de définition d'un sous-ensemble initial (SEI) de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble initial, en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes est mise en oeuvre pour le sous-ensemble initial (SEI).
  10. 10. Procédé de décodage d'une image numérique selon l'une des revendications 8 ou 9, caractérisé en ce que, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence (Seq) construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection (D2) comprend en outre une sous-étape (D29) de restriction du sous-ensemble initial par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, une sous-étape (D211) de décodage de l'élément de description supprimé à l'aide de données codées extraites du train binaire et en ce que l'itération suivante de la séquence de sous-étapes est appliquée au sous-ensemble initial restreint.
  11. 11. Procédé de décodage d'une image numérique selon l'une des revendications 7 à 10, caractérisé en ce qu'un élément de description des données du bloc appartient à un groupe comprenant au moins : - Un mode de prédiction du bloc courant ; - Un mode de prédiction du vecteur mouvement estimé pour le bloc courant ; - Un mode de codage du bloc courant ; - Une valeur d'un coefficient d'un résidu du bloc courant ; - Une information représentative d'une signifiance de la valeur du coefficient ; et - Un signe du coefficient.
  12. 12. Dispositif (200) de décodage d'une image numérique (ID) à partir d'un train binaire (TB), ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit dispositif comprenant les unités suivantes, aptes à être mises en oeuvre pour un bloc (C'), dit bloc courant : - Sélection (SEL') d'un sous-ensemble (SE) d'éléments de description du bloc courant à prédire (PED) parmi un ensemble d'éléments de description du bloc ; - Décodage (DEC NPED) des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; - Prédiction (PRED') des valeurs des éléments de description du sous-ensemble sélectionné; - Décodage (DEC IP) de valeurs d'indicateurs de prédiction (IP) des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : c. une première valeur représentative d'une prédiction correcte ; d. une deuxième valeur représentative d'une prédiction incorrecte ; - Calcul (CALC ED') des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs prédites des éléments de description et des valeurs d'indicateurs de prédiction décodées ; - Reconstruction (RECONST) du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description ;ledit dispositif étant caractérisé en ce que l'unité de sélection (SEL') est apte à sélectionner un sous-ensemble pour lequel il existe un ordre de parcours des éléments de description, selon lequel la prédiction de l'élément de description courant est indépendante des valeurs des éléments de description qui restent à parcourir.
  13. 13. Signal portant un train binaire (TB) comprenant des données codées représentatives d'éléments de description de blocs de pixels d'une image numérique, lesdits blocs de pixels étant traités dans un ordre défini, caractérisé en ce que lesdites données codées sont obtenues conformément au procédé de codage selon l'une des revendications 1 à 5.
  14. 14. Terminal d'utilisateur (TU) caractérisé en ce qu'il comprend un dispositif de codage d'une image numérique selon la revendication 6 et un dispositif de décodage d'une image numérique selon la revendication 12.
  15. 15. Programme d'ordinateur comprenant des instructions pour la mise en oeuvre du procédé de codage d'une image numérique selon l'une des revendications 1 à 5, lorsqu'il est exécuté par un processeur.
  16. 16. Programme d'ordinateur comprenant des instructions pour la mise en oeuvre du procédé de décodage d'une image numérique selon l'une des revendications 7 à 11, lorsqu'il est exécuté par un processeur.
FR1462889A 2014-12-19 2014-12-19 Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes Expired - Fee Related FR3030975B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1462889A FR3030975B1 (fr) 2014-12-19 2014-12-19 Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
PCT/FR2015/053470 WO2016097556A1 (fr) 2014-12-19 2015-12-14 Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1462889 2014-12-19
FR1462889A FR3030975B1 (fr) 2014-12-19 2014-12-19 Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes

Publications (2)

Publication Number Publication Date
FR3030975A1 true FR3030975A1 (fr) 2016-06-24
FR3030975B1 FR3030975B1 (fr) 2018-03-09

Family

ID=53059199

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1462889A Expired - Fee Related FR3030975B1 (fr) 2014-12-19 2014-12-19 Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes

Country Status (2)

Country Link
FR (1) FR3030975B1 (fr)
WO (1) WO2016097556A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790742A2 (fr) * 1996-02-19 1997-08-20 Fuji Xerox Co., Ltd. Système de codage et décodage prédictif d'image
EP2290990A1 (fr) * 2002-05-28 2011-03-02 Sharp Kabushiki Kaisha Procédés et systèmes pour l'estimation, la communication et l'organisation de modes d'intra-prédiction d'images
US20130044808A1 (en) * 2010-02-12 2013-02-21 Fujitsu Limited Image encoding device and image decoding device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8432968B2 (en) * 2007-10-15 2013-04-30 Qualcomm Incorporated Scalable video coding techniques for scalable bitdepths
WO2011150128A1 (fr) * 2010-05-25 2011-12-01 Vidyo, Inc. Systèmes et procédés permettant une communication de données vidéo évolutive à l'aide de multiples caméras et de multiples moniteurs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790742A2 (fr) * 1996-02-19 1997-08-20 Fuji Xerox Co., Ltd. Système de codage et décodage prédictif d'image
EP2290990A1 (fr) * 2002-05-28 2011-03-02 Sharp Kabushiki Kaisha Procédés et systèmes pour l'estimation, la communication et l'organisation de modes d'intra-prédiction d'images
US20130044808A1 (en) * 2010-02-12 2013-02-21 Fujitsu Limited Image encoding device and image decoding device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KAZUI (FUJITSU) K ET AL: "Video coding technology proposal by Fujitsu", 1. JCT-VC MEETING; 15-4-2010 - 23-4-2010; DRESDEN; (JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-A115, 12 April 2010 (2010-04-12), XP030007555, ISSN: 0000-0049 *
KOYAMA J ET AL: "Coefficient sign bit compression in video coding", 2012 PICTURE CODING SYMPOSIUM (PCS 2012) : KRAKOW, POLAND, 7 - 9 MAY 2012 ; [PROCEEDINGS], IEEE, PISCATAWAY, NJ, 7 May 2012 (2012-05-07), pages 385 - 388, XP032449909, ISBN: 978-1-4577-2047-5, DOI: 10.1109/PCS.2012.6213370 *
MINGJING AI ET AL: "<title>A novel intra prediction framework for H.264/AVC using macroblock-groups with optimized prediction order</title>", PROCEEDINGS OF SPIE, vol. 7497, 30 October 2009 (2009-10-30), pages 74970Q - 74970Q-7, XP055088078, ISSN: 0277-786X, DOI: 10.1117/12.832929 *

Also Published As

Publication number Publication date
WO2016097556A1 (fr) 2016-06-23
FR3030975B1 (fr) 2018-03-09

Similar Documents

Publication Publication Date Title
EP3183879A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, et programmes d&#39;ordinateurs associés
EP2985998B1 (fr) Support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
EP2991351B1 (fr) Procédé de décodage d&#39;images
WO2015059400A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP2932714B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3398330A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, terminal d&#39;utilisateur et programmes d&#39;ordinateurs associés
EP3646597B1 (fr) Procédé de décodage d&#39;une image, procédé de codage, dispositifs, équipement terminal et programmes d&#39;ordinateurs associés
FR3040578A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3632103B1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
EP3520416B1 (fr) Procédé de codage d&#39;une image, procédé de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associés
FR3030975A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs, terminal d&#39;utilisateur et programmes d&#39;ordinateurs associes
EP3409016A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
EP3491825B1 (fr) Procédé de décodage d&#39;une image, procédé de codage, dispositifs, équipement terminal et programmes d&#39;ordinateurs associés
WO2008049628A1 (fr) Procede et dispoitif d&#39;optimisation de la compression d&#39;un flux video
EP3456045B1 (fr) Procedes et dispositifs de codage et de decodage d&#39;un flux de donnees representatif d&#39;au moins une image

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160624

PLFP Fee payment

Year of fee payment: 3

CA Change of address

Effective date: 20170627

PLFP Fee payment

Year of fee payment: 4

ST Notification of lapse

Effective date: 20190906