Brevet FR2754127A1 — publié le 19980403

PROCEDE DE CODAGE/DECODAGE DE SIGNAL VIDEO SUR LA BASE D'UNE QUANTIFICATION DE TREILLIS ADAPTATIVE CONTEXTE DE L'INVENTION La présente invention concerne un procédé de codage et/ou décodage d'un signal vidéo pour des supports de stockage et des supports de transmission numériques. Un quantificateur vectoriel de treillis (Lattice Vector Quantizer, LVQ) est largement utilisé dans de nombreux systèmes de compression de bande passante de signal vidéo numérique. Un treillis est défini comme un ensemble de vecteurs A = (x : x = UlxAl + U2xA2 + ... + UNxAN} où An (n = 1, 2, ..., N) sont les vecteurs de base du treillis et Un sont des entiers. Dans une application particulière, la quantification vectorielle de treillis suppose la troncature et le cadrage du treillis et la mise au point d'un procédé pour quantifier les vecteurs qui se situent en dehors du treillis tronqué. La troncature consiste à choisir L points de treillis x comme points de sortie Yi, de manière à ce que chaque vecteur source x soit remplacé par le point de treillis Yi le plus proche. La troncature et le cadrage sont habituellement effectués pour un nombre fixe de vecteurs de treillis L en essayant différents facteurs de cadrage de distance euclidiens sur les vecteurs générés par des fonctions de répartition appropriées et en choisissant le facteur de cadrage qui minimise l'erreur quadratique moyenne. Cette répartition doit être connue avant le processus de codage. Pour savoir où tronquer le treillis pour un vecteur de treillis L donné, le nombre de vecteurs de treillis dans les interprétateurs doit être calculé à différentes distances radiales à partir de l'origine de la répartition. Ces algorithmes de calcul ne sont connus que pour des répartitions symétriques, telles que des fonctions de répartition de Gauss ou de Laplace. Dans la pratique, une répartition réelle de vecteurs sources peut être complètement différente. Une troncature incorrecte produit toujours deux distorsions bien connues : bruit de quantification de surcharge et bruit de quantification granulaire. La première est due au découpage des vecteurs en dehors de la limite de troncature, la dernière concerne l'arrondissage des composantes vectorielles à l'intérieur de la zone de troncature. Le problème est de trouver un équilibre entre les deux. Un autre problème est qu'il n'existe pas d'algorithme pour calculer L pour un type quelconque de répartition. Cela signifie qu'en utilisant les répartitions mentionnées au lieu d'une valeur réelle, la quantification vectorielle de treillis produit un nombre redondant de vecteurs de treillis L qui augmentent le volume du recueil de codes et pèsent sur les ressources du système. Habituellement, les procédés classiques utilisent des procédures fixes de troncature et de cadrage. Par ailleurs, une quantification vectorielle de treillis fixée doit pouvoir être capable d'assurer simultanément une large gamme pour quantifier les vecteurs avec un contraste ou norme important et une faible distorsion pour les vecteurs avec un faible contraste. Ces exigences contradictoires forment l'obstacle principal à une amélioration de la performance des méthodes classiques. Habituellement, les tentatives pour augmenter la compression en abaissant L conduisent à une diminution rapide de la qualité visuelle d'un signal vidéo décodé. RESUME DE L'INVENTION La présente invention a pour objet de proposer un procédé de codage d'un signal vidéo qui peut assurer une meilleure reproduction du signal vidéo pour toute la gamme de contraste avec le même débit binaire ou la même qualité de reproduction avec un débit binaire inférieur. Un autre objet de la présente invention consiste à proposer un procédé de décodage du signal vidéo ainsi codé. Pour atteindre le premier objet de la présente invention, il est proposé un procédé de codage de signal vidéo comprenant les étapes consistant à découper chaque image d'un signal vidéo d'entrée en vecteurs découper un ensemble de vecteurs en macroblocs soumettre chaque vecteur dans un macrobloc à une quantification vectorielle de treillis qui examine la gamme de composantes vectorielles dans plusieurs dimensions et ajuste la densité de vecteurs de treillis conformément à la gamme de composantes vectorielles dans le macrobloc convertir chaque vecteur quantifié en un index d'un vecteur de treillis ; et transmettre ou stocker les informations de service concernant la gamme dans le macrobloc et l'ensemble d'index. Pour atteindre le deuxième objet de la présente invention, il est proposé un procédé de décodage de signal vidéo comprenant les étapes consistant à décoder les informations de service concernant la gamme dans un macrobloc et l'ensemble d'index convertir chaque index décodé de vecteur de treillis en un vecteur quantifié ; et rétablir la valeur des composantes vectorielles quantifiées conformément à la gamme de composantes vectorielles dans un macrobloc. BREVE DESCRIPTION DES DESSINS Les objets et avantages ci-dessus de la présente invention deviendront évidents en décrivant en détail des modes de réalisation préférés de celle-ci en référence aux dessins d'accompagnement, dans lesquels la figure 1 est un schéma synoptique d'un dispositif de codage de quantification vectorielle de treillis (LVQ) adaptatif adoptant un procédé de codage de signal vidéo basée sur une quantification de treillis adaptative selon la présente invention la figure 2 est un schéma synoptique d'un dispositif de décodage de signal vidéo adoptant un procédé de décodage de signal vidéo basée sur une quantification de treillis adaptative selon la présente invention ; et la figure 3 représente un exemple de quantification LVQ pour un cas à deux dimensions. DESCRIPTION DETAILLEE DE L'INVENTION La présente invention va maintenant être décrite en détail en référence aux dessins d'accompagnement. I1 a été découvert que la sensibilité de la vision humaine à la distorsion de quantification varie d'une partie d'une image à une autre. Dans les parties à fort contraste ou variance du signal, la sensibilité diminue. Cependant, dans les parties lissées avec une faible variation, la sensibilité augmente. Cette réduction de la sensibilité est appelée effet de masquage. On sait également que cet effet est local, c' est-à-dire qu'il ne se fait sentir qu'à proximité de variations importantes du signal vidéo. A une certaine distance d'une partie avec une grande variance du signal, la sensibilité de la vision humaine retrouve son niveau le plus élevé. La variance locale du signal (c'est-à-dire la variance mesurée dans un petit bloc de pixels) peut également varier de manière significative d'un bloc à un autre. De plus, dans un cas à plusieurs dimensions, la forme de la répartition locale du signal vidéo sans transformation est éloignée d'une répartition de Gauss ou de Laplace. On sait également que les parties avec une variance élevée du signal (HVAR) et une faible sensibilité de la vision humaine (LSENS) (faible variance du signal (LVAR) et sensibilité élevée de la vision humaine (HSENS)) coïncident dans une mémoire image. Cela signifie que la quantification vectorielle de treillis doit se faire selon les blocs et que la taille des pas de quantification doit être cadrée en proportion directe de la variance (ou d'une certaine mesure de l'activité) dans le bloc. En choisissant le cadrage et la taille appropriés des macroblocs, nous pouvons garantir les conditions importantes suivantes dans chaque macrobloc afin d'améliorer les caractéristiques de la quantification vectorielle de treillis, c'est-à-dire (HVAR et LSENS) ou (LVAR et HSENS). Sur la base de ce concept, dans un procédé de codage de signal vidéo selon la présente invention, une image d'entrée d'une séquence vidéo est découpée en blocs de données de pixels avec ou sans transformation appelés vecteurs. L'ensemble de vecteurs est découpé en blocs appelés macroblocs. Les vecteurs dans chaque macrobloc sont soumis à une quantification vectorielle de treillis qui examine la gamme des composantes vectorielles dans plusieurs dimensions et ajuste la densité de vecteurs de treillis en fonction de la gamme de composantes vectorielles. La quantification implique le remplacement de chaque vecteur d'entrée par le vecteur de treillis le plus proche dans l'espace multidimensionnel. Chaque vecteur quantifié dans le macrobloc est converti en un index de vecteur de treillis. Une information de service concernant la gamme dans le macrobloc et l'ensemble d'index avec ou sans codage de Huffman ou codage arithmétique ultérieur est transmise à l'extrémité réceptrice ou stockée dans celle-ci. La figure 1 représente un dispositif de codage de quantification vectorielle de treillis adaptative adoptant un procédé de codage de signal vidéo basée sur une quantification de treillis adaptative selon la présente invention. Une image d'entrée dans le dispositif de codage de signal vidéo est tout d'abord numérisée et découpée en blocs de données de pixels ne se chevauchant pas spatialement appelés vecteurs. Le nombre de pixels dans le vecteur peut être différent, mais on utilise normalement 4, 8 ou 16 pixels par vecteur. L'ensemble de vecteurs est découpé en macroblocs. La taille des macroblocs doit être un multiple entier de la taille du vecteur. Normalement, on utilise une taille de macrobloc de 16 x 16 ou 32 x 32. On peut utiliser différents critères de gamme de vecteurs en plusieurs dimensions. L'un de ceux utilisés dans la méthode proposée dans la présente invention est la différence entre les valeurs maximales et minimales des composantes vectorielles dans le macrobloc. Pour un vecteur à N dimensions X = (xl, x2, ..., xN), le vecteur de valeurs maximales Xmax = (xmaxl, xmax2, ..., xmaxN) et celui de valeurs minimales Xmin = (xminl, xmin2, ..., min). Ces valeurs sont des hyperplans tangents à un ensemble de vecteurs dans un macrobloc. Comme indiqué sur la figure 3, il peut y avoir davantage d'hyperplans, par exemple, à un angle de 45O et avec une dimension de 4, la transformation peut être une simple rotation de l'axe de 45 . Dans la méthode présentée, la transformation suivante s'est avérée utile F[0] = (1,1,1,1), F[1] = (1,-1,-1,-1), F2] = (-1,1,-1,1), F[3] = (-1,-1,1,-1), F[4] = (-1,-1,-1,1). Chaque vecteur F[i] décrit un certain hyperplan. Le vecteur source transformé peut être obtenu par la simple opération X* = F[0]xx[0] + F[l]xx[l] + F[2]xx[2] + F[3]xx[3]. Les hyperplans tangents à 45O sont obtenus en recherchant les valeurs maximales et minimales des composantes vectorielles transformées. Par exemple, si les vecteurs sont X*max = (x+maxl, x+max2, ..., x*maxN) et X*min = (x*minl, x*min2, ..., x*minN), où N = 5, on peut utiliser davantage d'hyperplans pour décrire la gamme de vecteurs dans l'espace multidimensionnel. Le corps convexe délimité par les hyperplans est un polyèdre. Comme indiqué sur la figure 3, en utilisant ces hyperplans, les vecteurs de treillis qui sont toujours en dehors des hyperplans peuvent être facilement déterminés. Cela permet de résoudre le problème de la troncature de treillis. L'opération décrite ci-dessus est effectuée par un extracteur de gamme 11 représenté sur la figure 3. Sur cette figure sont illustrés des points de treillis, des points de signal et des hyperplans. Comme informations de service, on utilise seulement un ensemble rectangulaire de vecteurs de gamme. D'autres vecteurs sont utilisés seulement dans la procédure de troncature. C'est-à-dire qu'il faut vérifier que chaque composante quantifiée d'un vecteur est dans la gamme spécifiée, c'est-à-dire que les conditions X* E (x*mini, x+maxi), xi E (xmini, xmaxi), et i = 1, ..., N, doivent être satisfaites. Si les résultats de la quantification ne satisfont pas cette exigence, la recherche d'un autre vecteur de treillis pour représenter un vecteur courant est commencée. Ici, n importe quelle stratégie de recherche classique peut être utilisée. L'ensemble mentionné précédemment de vecteurs constitue les informations de service envoyées une fois par macrobloc. Par exemple, pour un macrobloc de 32 > En principe, une quantification vectorielle de treillis peut construire un treillis existant quelconque, mais en pratique des treillis Zn et Dn simples sont suffisants pour une utilisation dans la quantification LVQ. Pour obtenir Zn, nous devons utiliser des quantificateurs scalaires pour chaque dimension. Le treillis Zn est un produit des recueils de codes scalaires. Le treillis Dn est dérivé des vecteurs de treillis Zn en faisant la somme des composantes. Sur la figure 1, le vecteur des pas de quantification pour chaque dimension est obtenu par la LVQ 13. Le nombre de niveaux de quantification est fixé et seul le pas est ajusté à la gamme courante de macroblocs. Le vecteur des pas S = (sl, s2, ..., sQ) peut être obtenu par si = (xmaxi-xmini)/Q, où Q est un niveau spécifié. Les valeurs peuvent être arrondies par rapport à tous types de composantes. Par exemple, il existe une procédure bien connue décrite par J.H. Convay et J.A. Sloan dans "Fast Quantizing and Decoding Algorithms for Lattice Quantizers and Codes", IEEE Transactions on Information Theorz, vol IT-28, N02, mars 1982. Les index et informations de service ainsi obtenus peuvent être soumis à une procédure de codage de Huffman ou de codage arithmétique pour éliminer la redondance statistique. Sur un dispositif de décodage représenté sur la figure 2, l'opération inverse au cas du dispositif de codage de la figure 1 est mise en oeuvre. Si on utilise le codage statistique, une procédure de décodage de Huffman ou de décodage arithmétique est mise en oeuvre pour rétablir les valeurs des index et des composantes vectorielles de service. Dans un rétablisseur de gamme 21, la conversion d'un index en composantes vectorielles quantifiées et le rétablissement de leurs valeurs réelles sont effectués en multipliant les composantes quantifiées et les composantes vectorielles de pas. Par exemple, si I = (I1, I2, ..., IN) et S = (sl, s2, ..., sN > sont quantifiés et les vecteurs de pas sont quantifiés de manière correspondante, alors le vecteur rétabli XR = (xrl, xr2, ..., xrN) est obtenu par xri = Ii x si, I = 1, 2, ..., N. Comme indiqué ci-dessus, selon la présente invention, un procédé de codage/décodage de signal vidéo basée sur une quantification de treillis adaptative permet d'assurer une meilleure reproduction d'un signal vidéo pour toute la gamme de contraste avec le même débit binaire ou la même qualité de reproduction avec un débit binaire inférieur. REVENDICATIONS 1. Procédé de codage de signal vidéo basé sur une quantification de treillis adaptative caractérisé en ce qu'il comprend les étapes consistant à découper chaque image d'un signal vidéo d'entrée en vecteurs ; découper un ensemble de vecteurs en macroblocs soumettre chaque vecteur dans un macrobloc à une quantification vectorielle de treillis qui examine la gamme de composantes vectorielles dans plusieurs dimensions et ajuste la densité de vecteurs de treillis conformément à la gamme de composantes vectorielles dans le macrobloc convertir chaque vecteur quantifié en un index d'un vecteur de treillis ; et transmettre ou stocker des informations de service concernant la gamme dans le macrobloc et l'ensemble d' index. 2. Procédé de décodage de signal vidéo basé sur une quantification de treillis adaptative caractérisé en ce qu'il comprend les étapes consistant à décoder les informations de service concernant la gamme dans un macrobloc et l'ensemble d'index convertir chaque index décodé de vecteur de treillis en un vecteur quantifié ; et rétablir la valeur des composantes vectorielles quantifiées conformément à la gamme de composantes vectorielles dans un macrobloc. 3. Procédé de codage et/ou décodage de signal vidéo basé sur une quantification de treillis adaptative caractérisé en ce qu'il comprend les étapes consistant à découper chaque image d'un signal vidéo d'entrée en vecteurs découper un ensemble de vecteurs en macroblocs soumettre chaque vecteur dans un macrobloc à une quantification vectorielle de treillis qui examine la gamme de composantes vectorielles dans plusieurs dimensions et ajuste la densité de vecteurs de treillis conformément à la gamme de composantes vectorielles dans le macrobloc convertir chaque vecteur quantifié en un index d'un vecteur de treillis ; et transmettre ou stocker des informations de service concernant la gamme dans le macrobloc et l'ensemble d'index décoder les informations de service concernant la gamme dans un macrobloc et l'ensemble d'index convertir chaque index décodé de vecteur de treillis en un vecteur quantifié ; et rétablir la valeur des composantes vectorielles quantifiées conformément à la gamme de composantes vectorielles dans un macrobloc.