Brevet FR2916931A1 — publié le 20081205

PROCEDE DE SELECTION D'UNE DONNEE DE CODAGE ET DISPOSITIF DE CODAGE IMPLEMENTANT LEDIT PROCEDE 1. Domaine de l'invention L'invention se rapporte au domaine général du codage vidéo. L'invention concerne, plus particulièrement, un procédé de sélection d'une donnée de codage dans un ensemble prédéfini de données de codage, ladite donnée de codage étant associée à une portion d'image en vue de son codage ultérieur. Elle concerne également un dispositif de codage d'une séquence d'images adapté pour mettre en oeuvre ledit procédé de sélection. 2. Etat de l'art Il est connu des codeurs vidéo aptes à coder des images en mode INTRA, i.e. indépendamment des autres images de la séquence et des images en mode INTER, i.e. par prédiction temporelle à partir d'autres images de la séquence, appelées images de référence. Dans une image divisée en blocs de données image (p.ex. données de luminance), chaque bloc est codé en mode INTRA si l'image est de type INTRA et en mode INTRA ou en mode INTER si l'image est de type INTER. Les normes de codage vidéo les plus récentes, p.ex. MPEG-4 AVC, définissent plusieurs modes de codage de type INTRA et plusieurs modes de codage de type INTER. La figure 1 représente différents modes de codage INTER tels que définis dans le document ISO/IEC 14496-10:2005 relatif à la norme MPEG-4 AVC. De tels codeurs vidéo sont adaptés pour sélectionner pour un bloc courant d'indice i un mode de codage mode; dans un ensemble E de K modes de codage mk. Ils sont également adaptés pour générer, pour ce bloc courant, un bloc de prédiction en fonction du mode de codage mode; sélectionné. Le codeur vidéo est apte à soustraire du bloc courant le bloc de prédiction et à coder, sous forme d'un train de données binaires, les données image résiduelles ainsi générées. Généralement, le mode de codage mode; est sélectionné dans l'ensemble E à l'aide d'un critère prédéfini. Ce critère est par exemple un critère de type débit-distorsion. Dans ce cas, le codeur vidéo calcule pour le bloc d'indice i et pour chacun des modes mk de l'ensemble E une valeur J;(mk) égale à D;(mk) +À*/R;(mk), où R;(mk) est le coût de codage du bloc d'indice i codé selon le mode mk et Di(mk) est la distorsion associée au bloc d'indice i codé selon le mode mk puis reconstruit. Le codeur vidéo sélectionne alors dans l'ensemble E, le mode de codage mode; du bloc d'indice i de telle sorte que mode;= argmin(J; (mk)). Or, ajouter de nouveaux modes de codage dans mkeE l'ensemble E, comme c'est le cas de la norme MPEG-4 AVC par rapport à la norme MPEG2, permet de prédire plus finement les données image du bloc d'indice i et de ce fait permet d'augmenter la qualité de reconstruction dudit bloc pour un coût de codage donné, i.e. un nombre de bits donné. Cela permet par ailleurs de diminuer le coût de codage dudit bloc pour une qualité de reconstruction donnée. Toutefois, plus le nombre K de modes de codage mk dans l'ensemble E est grand, plus le temps de sélection du mode de codage mode; associé au bloc d'indice i est important car plus le nombre de valeurs Ji(mk) à calculer est grand. Plus généralement, il est souvent nécessaire de sélectionner une donnée de codage dans un ensemble prédéfini selon un critère donné avant d'effectuer le codage à proprement parlé du bloc d'indice i. Or, plus cet ensemble prédéfini comprend d'éléments, plus le temps de sélection de la donnée de codage est grand. Ceci est problématique notamment pour la réalisation d'un dispositif de codage temps-réel. Comme illustré précédemment cette donnée de codage est par exemple le mode de codage. Il peut s'agir également d'un type de transformée, d'un nombre d'image de référence, etc. 3. Résumé de l'invention L'invention a pour but de pallier au moins un des inconvénients de l'art antérieur. L'invention concerne un procédé de sélection d'une donnée de codage dans un ensemble prédéfini de données de codage, la donnée de codage étant associée à une portion d'image en vue de son codage ultérieur. Le procédé comprend les étapes suivantes : - déterminer un sous-ensemble de l'ensemble de données de codage; et - sélectionner au moins une donnée de codage dans le sous-ensemble déterminé. Selon une caractéristique essentielle de l'invention, le sous-ensemble de données de codage est déterminé pour la portion d'image en fonction d'une valeur prédéterminée représentative de l'intérêt perceptuel de la portion d'image, dite valeur d'intérêt perceptuel. Avantageusement en présélectionnant des données de codage l'invention diminue de temps de sélection de la donnée de codage finalement sélectionnée. En outre, cette présélection étant effectuée en fonction de données d'intérêt perceptuel, la qualité de reconstruction de la séquence n'est pas dégradée. Selon une caractéristique de l'invention, la donnée de codage est un 10 mode de codage. Selon une autre caractéristique de l'invention, la portion d'image est un bloc de données image. Avantageusement, la valeur prédéterminée est une valeur de saillance associée à la portion d'image. 15 Selon une caractéristique de l'invention, le sous-ensemble est égal à l'ensemble si la valeur d'intérêt perceptuel est supérieure à un seuil prédéterminé. Si la valeur d'intérêt perceptuel du bloc est inférieure ou égale au seuil prédéterminé, le sous-ensemble comprend les p modes de codage de l'ensemble dont la probabilité de sélection est la plus élevée, cette 20 probabilité ayant été préalablement déterminée pour chaque mode de codage de l'ensemble. Selon une caractéristique de l'invention, le sous-ensemble est égal à un premier sous-ensemble si la valeur d'intérêt perceptuel est supérieure à un seuil prédéfini et est égal à un second sous-ensemble différent du premier 25 sous-ensemble si la valeur d'intérêt perceptuel est inférieure au seuil prédéfini. Selon une caractéristique particulière de l'invention, le premier sous-ensemble est égal à l'ensemble et le second sous-ensemble comprend les p modes de codage de l'ensemble dont la probabilité de sélection est la plus 30 élevée, cette probabilité ayant été préalablement déterminée pour chaque mode de codage de l'ensemble. L'invention concerne également, un dispositif de codage d'une séquence d'images, chaque image étant divisée en portions de données image. Le dispositif comprend: - des moyens de sélection aptes à sélectionner pour chaque portion de 5 données image au moins une donnée de codage ; et - des moyens de codage apte à coder chacune des portions de données image en fonction de la donnée de codage sélectionnée. Selon une caractéristique essentielle de l'invention, les moyens de sélection comprennent : 10 - des moyens pour déterminer pour chaque portion de données image un sous-ensemble de l'ensemble de données de codage en fonction d'une valeur prédéterminée représentative de l'intérêt perceptuel de la portion de données image et - des moyens pour sélectionner la au moins une donnée de codage dans le 15 sous-ensemble déterminé. 4. Listes des fiqures L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en 20 référence aux figures annexées sur lesquelles : la figure 1 représente différents modes de codage INTER selon la norme MPEG-4 AVC; la figure 2 illustre un procédé de sélection d'un mode de codage selon l'invention ; 25 la figure 3 illustre un dispositif de codage vidéo selon l'invention ; et la figure 4 illustre un dispositif de codage vidéo selon une variante de l'invention. 5. Description détaillée de l'invention 30 L'invention décrite dans le cadre de la norme MPEG-4 AVC peut être étendue à tout type de norme dans laquelle la sélection d'une donnée de codage doit être effectuée. L'invention décrite dans le cadre de la sélection d'un mode de codage peut être étendue au cas général de la sélection d'une donnée de codage dans un ensemble de données de codage prédéfini. Par exemple, l'invention peut s'appliquer au cas de la sélection du nombre d'images de référence utilisées pour coder une image courante de type INTER. De même elle peut être étendue à la sélection d'un type de transformée particulier. En référence à la figure 2, l'invention concerne un procédé de sélection pour chaque portion B; d'une image courante divisée en N portions d'image d'une donnée de codage dans un ensemble prédéfini E comprenant K données de codage. Selon un mode particulier de réalisation, les données de codage sont des modes de codage. Selon une caractéristique particulière de l'invention chaque portion d'image B; est un bloc de données image. Dans la suite de la description B; est appelé bloc. A l'étape 10, l'indice i du bloc B; est initialisé à zéro. A l'étape 12, un sous-ensemble SE; de l'ensemble E est déterminé pour le bloc B; en fonction d'une valeur prédéterminée Si associée au bloc B;, cette valeur étant représentative de l'intérêt perceptuel du bloc B. Dans un mode de réalisation particulier, le sous-ensemble SE; est égal à l'ensemble E si la valeur Si est supérieure à un seuil prédéfini T et l'ensemble SE; comprend les p modes mk les plus probables de l'ensemble E sinon, avec p un entier appartenant à l'ensemble [1 ; K] sinon. Afin de déterminer les p modes les plus probables de l'ensemble E, les K modes de l'ensemble E sont ordonnés en fonction de leur probabilité de sélection qui a été calculée au préalable par des statistiques de codage sur un nombre représentatif de séquences. Les p modes mk dont la probabilité de sélection est la plus élevée forment alors le sous-ensemble SE; si Si T. Dans le cas particulier des modes INTRA définis par la norme MPEG-4 AVC dans la section 8.3 du document ISO/IEC 14496-10 (version 3), les p modes les plus probables de l'ensemble E peuvent être déterminés par une analyse de la direction des contours dans le bloc B. Si les contours dans le bloc B; sont orientés majoritairement dans la direction verticale alors les p modes les plus proches de la direction verticale sont les plus probables et forment le sous-ensemble SE;, i.e. le mode INTRA vertical, INTRA verticale vers la droite et INTRA verticale vers la gauche. Bien entendu l'invention n'est pas limitée par la manière dont les p modes les plus probables de l'ensemble E sont déterminés. Selon une première variante, le sous-ensemble SE; est égal à l'ensemble E si la valeur Si est supérieure au seuil prédéfini T et l'ensemble SE; comprend p modes mk de l'ensemble E, lesdits p modes étant sélectionnés en fonction des tailles de sous-blocs qui leur sont associées. Par exemple, si l'image courante à laquelle appartient le bloc B; est une image de type INTER et que l'ensemble E comprend les modes de codage représenté sur la figure 1, alors si Si est inférieur ou égale à T, le sousûensemble SE; comprend les modes de codage associés aux plus grandes tailles de sous-blocs, par exemple INTER16x16, INTER16x8 et INTER8x16. Dans ce cas les autres modes de codage associés aux tailles de sous-blocs plus petites, i.e. INTER8x8, INTER8x4, INTER4x8, INTER4x4, n'appartiennent pas au sous-ensemble SE;. Selon une seconde variante, le sous-ensemble SE; est égal à l'ensemble E si la valeur Si est supérieure au seuil prédéfini T et l'ensemble SE; comprend p modes mk de l'ensemble E, lesdits p modes étant ceux qui nécessitent le moins de calcul. Selon une autre variante plusieurs seuils peuvent être définis. Par exemple, si la valeur Si est supérieure à un premier seuil prédéfini Ti, alors le sous-ensemble SE; est égal à l'ensemble E, si la valeur Si est inférieure à Ti et supérieure à un second seuil prédéfini T2 alors l'ensemble SE; comprend les p modes mk de l'ensemble E les plus probables, et si la valeur Si est inférieure à T2, alors l'ensemble SE; comprend les q modes mk de l'ensemble E les plus probables avec q un entier inférieur ou égal à p. La valeur Si est déterminée préalablement pour le bloc B; selon une méthode connue de l'état de l'art. Une telle valeur Si est, par exemple, obtenue en appliquant le procédé décrit dans la demande de brevet EP03293216.2 (publiée sous le numéro 1544792). Ce procédé est apte à générer pour l'image courante une carte de saillance. Cette carte de saillance est une représentation topographique bidimensionnelle du degré de saillance de chaque pixel de l'image courante. Cette carte est normalisée par exemple entre 0 et 1 mais peut également l'être entre 0 et 255. La carte de saillance fournit ainsi une valeur de saillance S(x,y) par pixel (où (x,y) sont les coordonnées d'un pixel de l'image) qui caractérise l'intérêt perceptuel de ce pixel. Plus la valeur de S(x,y) est élevée, plus le pixel de coordonnées (x,y) est pertinent d'un point de vue perceptuel. Afin d'obtenir une valeur de saillance Si par bloc B;, on calcule par exemple la valeur moyenne des valeurs de saillance S(x,y) associées à chacun des pixels de B. La valeur médiane peut également être utilisée au lieu de la valeur moyenne pour représenter le bloc B. Selon ce document, la carte de saillance est générée en appliquant les étapes suivantes: - projection dans un espace de couleur psycho-visuel de l'image selon la composante de luminance dans le cas d'une image monochrome et selon la composante de luminance et selon chacune des composantes de chrominance dans le cas d'une image colorée ; dans la suite on considèrera que l'image traitée est une image colorée ; - décomposition perceptuelle en sous-bandes des composantes projetées (une composante de luminance et deux composantes de chrominance) dans le domaine fréquentiel selon un seuil de visibilité de l'oeil humain ; les sous-bandes sont obtenues en partageant le domaine fréquentiel selon la fréquence spatiale radiale et l'orientation (sélectivité angulaire) ; chaque sous-bande peut être considérée comme l'image neuronale correspondant à une population de cellules visuelles accordées sur un intervalle de fréquences spatiales et une orientation particulière ; - extraction des éléments saillants des sous-bandes relative à la composante de luminance et relative à chacune des composantes de chrominance, i.e. les informations les plus importantes des sous-bandes; - amélioration des contours des éléments saillants dans chaque sous-bande relative à la composante de luminance et relative à chacune des composantes de chrominance; - calcul d'une carte de saillance pour la luminance à partir des contours améliorés des éléments saillants de chaque sous-bande relative à la composante de luminance; - calcul d'une carte de saillance pour chacune des composantes de chrominance à partir des contours améliorés des éléments saillants de chaque sous-bande relative aux composantes de chrominance; et - génération d'une carte de saillance finale à partir des cartes de saillance de luminance et de chrominance. A l'étape 14, le mode de codage mode; associé au bloc B; est sélectionné dans le sous-ensemble SE; selon un critère par exemple de type débit-distorsion. Avantageusement, si le bloc B; est un bloc dont la valeur Si représentative de l'intérêt perceptuel du bloc est inférieure à T, seuls les modes du sous-ensemble SE; sont testés. Dans ce cas, le procédé de sélection calcule pour chacun des modes mk du sous-ensemble SE; la valeur J;(mk) égale à D;(mk) +À*/R;(mk). Le procédé sélectionne dans le sous-ensemble SE;, le mode de codage mode; du bloc de telle sorte que mode;= argmin(J; (mk )) . La sélection du mode de codage mode; requiert moins mkeSE; de calcul. La qualité de reconstruction peut diminuer légèrement pour les blocs dont l'intérêt perceptuel est faible, i.e. tels que Si A l'étape 16, l'indice i est incrémenté de 1. A l'étape 18, i est comparé à N. Si i est supérieur ou égal à N alors la sélection des modes de codage pour l'image courante est terminée 20, sinon le procédé continue à l'étape 12 avec le bloc suivant. En référence aux figures 3 et 4, l'invention concerne un dispositif de codage 30 et 40. Sur ces figures seuls les éléments essentiels de l'invention sont représentés. Ne sont pas représentés les éléments bien connus par l'homme du métier des codeurs vidéos, p.ex. module d'estimation de mouvement, module de compensation de mouvement, etc. Sur les figures 3 et 4, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant, ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées. En référence à la figure 3, le dispositif de codage 30 comprend une première entrée 300, une seconde entrée 302, une sortie 310, un module de sélection 304, un module de codage 306 et une mémoire 308. La première entrée 300 est apte à recevoir des valeurs de saillance Si et la seconde entrée 302 est apte à recevoir les données image du bloc B. Le module de sélection 304 est apte à sélectionner pour chaque bloc B; reçu de la seconde entrée 302 un mode de codage mode; en fonction de la valeur de saillance Si reçue de la première entrée 300. Le module de sélection 304 est adapté pour mettre en oeuvre le procédé de sélection de l'invention. A cet effet, il comprend une unité 3040 apte à déterminer, pour le bloc B;, un sous-ensemble SE; de l'ensemble E en fonction de la valeur Si d'intérêt perceptuel dudit bloc B; conformément à l'étape 12 du procédé et une unité 3042 reliée à l'unité 3040 apte à sélectionner , conformément à l'étape 14 du procédé, dans le sous-ensemble SE; le mode de codage mode; finalement retenu pour coder ultérieurement le bloc B. L'unité 3042 est adaptée pour calculer par exemple la fonction de type de débit-distorsion J;(mk) et pour effectuer la sélection de mode; à partir des valeurs calculées. Le module de codage 306 est apte à coder sous forme binaire les données images B; transmises par la seconde entrée 302 en fonction du mode de codage mode; transmis par le module de sélection 304 et éventuellement en fonction de données images précédemment codées et reconstruites par ledit module codage 306 et stockées dans une mémoire 308, p.ex. des données images appartenant à une image précédemment codée (prédiction temporelle) ou à un bloc de la même image précédemment codé (prédiction spatiale). Le module de codage 306 est relié à la sortie 310 du dispositif de codage. La sortie 310 est apte à transmettre, p.ex. à un dispositif de décodage ou à un réseau de diffusion, un train binaire F représentatif des données images reçues sur la seconde entrée 302 et codées par le module de codage 306. Une variante du dispositif de codage 30 est représentée sur la figure 4. Les éléments communs aux deux dispositifs de codage sont identifiés à l'aide des mêmes références numériques. Le dispositif de codage 40 comprend une seule entrée 302 apte à recevoir les données images des blocs B. Il comprend en outre un module 400 apte à calculer pour chaque bloc B; une valeur d'intérêt perceptuel Si. Cette valeur Si est par exemple calculée selon la méthode décrite précédemment pour le procédé de sélection. Dans cette variante les valeurs d'intérêt perceptuel Si sont calculées directement par le dispositif de codage 40 à partir des données image reçues sur l'entrée 302. Bien entendu, l'invention n'est pas limitée aux exemples de réalisation mentionnés ci-dessus. En particulier, l'homme du métier peut apporter toute variante dans les modes de réalisation exposés et les combiner pour bénéficier de leurs différents avantages. Notamment l'invention décrite pour des données de codage de type mode de codage peut être étendue à la sélection de tout autre type de données de codage, notamment un nombre d'images de référence, un type de transformée, une taille de fenêtre de recherche pour l'estimation de mouvement, etc. Dans MPEG4 AVC, il est, en effet, possible de sélectionner l'image de référence utilisée pour la prédiction d'un bloc de données image dans un ensemble de 5 images de référence. Selon l'invention, il est possible de réduire le nombre d'images à tester pour certains blocs de l'image, i.e. ceux dont la valeur d'intérêt perceptuel Si est inférieure ou égale à T. De même, dans l'extension FRExt (acronyme anglais de Fidelity Range Extension ) de MPEG4 AVC, il est possible de transformer chaque bloc d'une image à l'aide d'une transformée de type 4x4 ou bien d'une transformée de type 8x8. Selon l'invention, il est possible de limiter ce choix pour les blocs dont la valeur d'intérêt perceptuel Si est inférieure ou égale à T. En outre, l'invention n'est pas limitée par le type de carte de saillance générée, ni par la fonction de sélection qui peut être une autre fonction que la fonction J définie précédemment.5 Revendications 1. Procédé de sélection d'une donnée de codage dans un ensemble prédéfini (E) de données de codage, ladite donnée de codage étant associée à une portion d'image (B;) en vue de son codage ultérieur, ledit procédé comprenant les étapes suivantes : - déterminer (12) un sous-ensemble (SEi) dudit ensemble (E) de données de codage; - sélectionner (14) au moins une donnée de codage dans ledit sous-ensemble déterminé (SEi); ledit procédé étant caractérisé en ce que ledit sous-ensemble (SEi) de données de codage est déterminé (12) pour ladite portion d'image (B;) en fonction d'une valeur prédéterminée (Si) représentative de l'intérêt perceptuel de ladite portion d'image (B;), dite valeur d'intérêt perceptuel. 2. Procédé selon la revendication 1, dans lequel ladite au moins une donnée de codage est un mode de codage. 3. Procédé selon la revendication 1 ou 2, dans lequel ladite portion d'image est un bloc de données image. 4. Procédé selon l'une des revendications 1 à 3, dans lequel ladite valeur prédéterminée est une valeur de saillance associée à ladite portion d'image. 25 5. Procédé selon l'une des revendications 1 à 4, dans lequel ledit sous-ensemble (SEi) est égal à un premier sous-ensemble si ladite valeur d'intérêt perceptuel (Si) est supérieure à un seuil prédéfini (T) et est égal à un second sous-ensemble différent du premier sous-ensemble si ladite valeur d'intérêt 30 perceptuel (Si) est inférieure ou égale audit seuil prédéfini (T). 6. Procédé selon la revendication 5, dans lequel ledit premier sous-ensemble est égal audit ensemble (E). 7. Procédé selon la revendication 5 ou 6, dans lequel, ledit second sous-ensemble comprend les p modes de codage dudit ensemble (E) dont la probabilité de sélection est la plus élevée, cette probabilité ayant été préalablement déterminée pour chaque mode de codage de l'ensemble (E). 8. Dispositif de codage d'une séquence d'images, chaque image étant divisée en portions de données image (B;), ledit dispositif comprenant : -des moyens de sélection (304) aptes à sélectionner pour chaque portion de données image (B;) au moins une donnée de codage ; et - des moyens (306) de codage apte à coder chacune desdites portions de données image (B;) en fonction de ladite donnée de codage sélectionnée; lesdits moyens de sélection (304) étant caractérisés en ce qu'ils comprennent : - des moyens (3040) pour déterminer pour chaque portion de données image (B;) un sous-ensemble (SEi) dudit ensemble (E) de données de codage en fonction d'une valeur prédéterminée (Si) représentative de l'intérêt perceptuel de ladite portion de données image (B;); et - des moyens (3042) pour sélectionner ladite au moins une donnée de codage dans ledit sous-ensemble déterminé (SEi).20