Brevet FR2661063A1 — publié le 19911018

Procédé et dispositif de post-filtrage pour codage d'images par transformation cosinus discrète La présente invention concerne un procédé et un dispositif de post-filtrage pour codage d'images par transformation cosinus discrète. Elle s'applique notamment à la réalisation de vidéotéléphones. Le codage d'image par transformation cosinus discrète (DCT) est très utilisé pour la compression de débit numérique car cette transformation orthogonale présente les meilleures propriétés de décorrélation des images. Il consiste à découper l'image source en blocs de BxB pixels (en général B = 4, 8 ou 16) et à leur appliquer une transformation cosinus. Les coefficients obtenus sont quantifiés par division entière, donc avec troncation, par un pas de quantification P variable. Seuls les coefficients quantifiés non nuls ainsi que la valeur du pas de quantification P sont transmis. Le décodage consiste à déquantifier les coefficients, c'est-à-dire à les multiplier par la valeur du pas de quantification P, et à leur appliquer la transformation cosinus inverse.L'opération de quantification permet de réaliser le compromis débit/qualité d'image. Cependant plus la valeur du pas de quantification P est élevée, plus le débit est bas car les valeurs des coefficients sont de plus en plus faibles voir même nulles, et davantage est mauvaise la qualité de l'image reconstruite car les valeurs des coefficients sont de plus en plus faibles voir même nulles. Les défauts les plus visibles à bas débit se manifestent par des "effets de bloc" et le découpage en blocs est d'autant plus visible dans les zones quasi-uniformes où il donne un aspect de mosaïque. Un effet "moustiques" est aussi très visible et se manifeste sous les aspects d'artefacts dans les blocs présentant un fort contraste, par exemple autour des contours. Le but de l'invention est de pallier les inconvénients précités. A cet effet, l'invention a pour objet un Procédé de post-filtrage pour codage d'images par transformation cosinus discrète caractérisé en ce qu'il consiste à déterminer pour chaque pixel de l'image une incertitude de décodage Ez, à calculer la différence en valeur absolue y(i+k)-y(i) des valeurs de luminance et/ou de chrominance de chaque pixel avec un pixel voisin pour comparer le résultat obtenu à la somme des valeurs d'incertitude Ez pour ces pixels et à décider que les pixels considérés ont mêmes valeurs de luminance et/ou de chrominance lorsque la différence en valeur absolue est inférieure à la somme des valeurs d'incertitude ou possèdent des valeurs différentes dans le cas contraire. Elle a également pour objet un dispositif pour la mise en oeuvre du procédé précité. Ltinvention a pour avantage qu'elle permet des réalisations de cellules de post-filtrage à faible coût. Elle permet également d'améliorer efficacement la qualité visuelle des images numériques en supprimant notamment les artefacts apportés par le codage à bas débit utilisant les transformations cosinus discrètes et notamment celle prescrite par la recommandation H-261 du CCITT pour les vidéo communications. D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard des dessins annexés qui représentent - la figure 1 une organisation simplifiée d'une chaîne de transmission vidéo numérique - la figure 2 un exemple de répartition statistique des erreurs de codage obtenues en sortie d'un codeur d'image - les figures 3A et 3B deux graphes pour illustrer le principe du filtrage mis en oeuvre par l'invention; - la figure 4 un mode de réalisation d'une cellule de filtre monodimensionnelle selon l'invention; - la figure 5 un mode d'assemblage de deux cellules de filtres monodimensionnelles selon l'invention. Dans l'organisation simplifiée de la chaîne de transmission vidéo numérique représentée à la figure 1, chaque pixel d'image x(i,j) situé au croisement d'une ligne i et d'une colonne j de l'image est appliqué à un codeur d'émission 1 à transformée cosinus et les coefficients de la transformée sont transmis sur un canal de transmission 2 pour être reçus et décodés à l'autre extrémité du canal 2 par un décodeur 3. Selon l'invention un filtre 4 est placé à la sortie du codeur 3 pour supprimer les effets d'artefacts décrits précédemment. Suivant ce mode de réalisation la valeur de luminance et/ou de chrominance chaque pixel d'image y(i > ;) qui est obtenu en sortie du décodeur 3 peut être considérée comme étant égale à: y(i > j) = x(i,j) + e(i,j) où e(ij) représente l'erreur apportée par le codage. et x(i,j) est la valeur du pixel correspondant dans l'image source. L'erreur e(i,j) vérifie une loi de répartition gaussienne, du type ce celle représentée par la courbe en cloche de la figure 2. Comme le montre la figure 2, cette erreur peut être bornée au sens statistique entre deux limites + Ez telles que la relation e(i,j) 4 Ez(i,j) soit vérifiée dans un pourcentage z bien déterminé de cas. L'idée de l'invention est de considérer, comme le montre les diagrammes des figure 3A et 3B que si les incertitudes Ez des pixels codés se chevauchent les valeurs des pixels correspondant dans l'image source doivent être les mêmes et que si elles ne se chevauchent pas les valeurs des pixels correspondant doivent être considérées comme différentes. La décision est prise en comparant la valeur de luminance ou de chrominance de chaque pixel y(i) aux valeurs correspondantes d'un pixel voisin y(i+k). Si la différence correspondante en valeur absolue est plus petite que la somme des incertitudes Ez sur le codage des deux pixels alors les valeurs y(i) et y(i+k) sont considérées comme étant les mêmes. Par contre, si la différence en valeur absolue est plus grande que la somme des incertitudes alors les valeurs y(i+k) et y(i) sont considérées différentes. Ceci conduit à calculer l'estimation x' de x par deux filtres mono-dimensionnels successifs de structures identiques, l'un horizontal et l'autre vertical. Ce calcul a lieu par exécution de la relation Dans cette relation la valeur 2 Ez (i) est utilisée de préférence à la place de la somme Ez(i)+Ez(i+k) pour des raisons de simplification. La valeur 2 Ez(i) peut être choisie de façon connue dans une table, non représentée, en fonction de divers paramètres accessibles au décodeur.Le paramètre principal est le pas de quantification P et les paramètres secondaires pris en compte peuvent être par exemple les composantes de luminance ou de chrominance, le type de codage (inter ou intra), la compensation de mouvement de la norme H.261, etc... Ces paramètres sont en principe communs à tous les pixels d'un même bloc, et par conséquent 2Ez l'est aussi. Cependant, si un bloc peut ne pas être codé pour une image d'une séquence (comme c'est le cas pour l'exécution de la norme H.261), la valeur de 2Ez ou les paramètres de codage devront en principe être mémorisés pour chaque bloc. Dans le cas de la norme H. 261 le filtre décrit par la relation précédente peut être utilisée sur une demi longueur de fenêtre N=2 et les coefficients a(k) peuvent alors être égaux à 1 et M(i) égal à 4. Ez peut être seulement fonction croissante du pas de quantification P avec Ez(1)=O, les autres valeurs étant tirées de statistiques sur diverses séquences. Pour des dimensions de blocs B supérieures ou égales à 8, une longueur de fenêtre plus importante doit permettre de supprimer plus efficacement l'effet de "bloc". Les coefficients a(k) permettent alors de pondérer la fenêtre, avec des poids plus faibles pour les extrémités de la fenêtre, afin que les images ne soient pas trop floues. Une réalisation simple reste possible, par exemple a = (1 1 2 2 4 2 2 1 1) et M(i) = 16. Dans le cas général, M(i) est variable Un dispositif pour la mise en oeuvre de ce procédé est représenté à la figure 4. Il comprend un dispositif soustracteur 5 des valeurs de luminance et/ou de chrominance des pixels y(i+k) et y(i), un dispositif de calcul de valeur absolue 6, une première valeurs 7, un dispositif de comparaison 8, un circuit aiguilleur 9, un premier circuit multiplicateur 10, des deuxième et troisième tables 11 et 12, un registre accumulateur 13, un deuxième circuit multiplieur et un circuit additionneur 15. Le circuit soustracteur 5 calcule la différence des valeurs de luminance et/ou de chrominance des pixels y(i+k) et y(i). Le résultat est appliqué d'une part à l'entrée du dispositif de calcul de valeur absolue 6 et d'autre part, sur une première entrée du circuit aiguilleur 9. Le double de la borne Ez est choisi dans la table 7 selon les paramètres de codage éventuellement mémorisés. Le dispositif de comparaison 4 compare le contenu de la table 7 au résultat du calcul de valeur absolue fourni par le dispositif 6. Le résultat de la comparaison commande l'état du circuit aiguilleur 9. Lorsque le résultat de la table 7 est supérieur ou égal au résultat du dispositif 6, la différence y(i+k)-y(i) est appliquée sur une première entrée d'opérande du circuit multiplieur 10. Si le résultat de la comparaison est faux, le circuit aiguilleur 9 applique la valeur numérique zéro sur la première entrée d'opérande du circuit multiplieur 10. La valeur a K est choisie dans la table 11 et est appliquée sur la deuxième entrée d'opérande du circuit multiplieur 10. Chaque résultat de la multiplication effectuée pour chaque pixel de la fenêtre de dimension [-N, +N] est cumulé dans le registre accumulateur 13. Le résultat du cumul est appliqué sur une première entrée d'opérande du circuit multiplieur 14. La deuxième entrée d'opérande du circuit multiplieur reçoit la valeur 1'Mi choisie dans la table 12. Le circuit additionneur 15 ajoute à la valeur y(i) le résultat de la multiplication fourni par le circuit multiplieur 14. Une organisation d'une structure de calcul à deux filtres monodimensionnels successifs est représentée à la figure 5. Suivant cette organisation chaque pixel y(i) est chargé dans une mémoire tampon 16 à 2N+1 lignes. La lecture de la mémoire est synchronisée avec le balayage horizontal de l'image dans une fenêtre verticale 17 de 2N+1 pixels. Chaque pixel lu dans la fenêtre est appliqué sur l'entrée d'un premier filtre monodimensionnel 18 structuré de la façon représentée à la figure 4. La sortie du filtre 18 est ensuite lue dans une fenêtre horizontale 19 de 2N+1 pixels et chaque pixel de cette fenêtre est appliqué à l'entrée d'un deuxième filtre monodimensionnel de structure également semblable à celle de la figure 4. REVENDICATIONS 1. Procédé de post-filtrage pour codage d'images par transformation cosinus discrète caractérisé en ce qu'il consiste à déterminer pour chaque pixel de l'image une incertitude de décodage Ez, à calculer (5, 6) la différence en valeur absolue y(i+k)-y(i) des valeurs de luminance et/ou de chrominance de chaque pixel avec un pixel voisin pour comparer (8) le résultat obtenu à la somme des valeurs d'incertitude Ez pour ces pixels et à décider que les pixels considérés ont mêmes valeurs de luminance et/ou de chrominance lorsque la différence en valeur absolue est inférieure à la somme des valeurs d'incertitude ou possèdent des valeurs différentes dans le cas contraire. 2. Procédé selon la revendication 1 caractérisé en ce qu'il consiste à calculer une estimation x' (i) de chaque pixel x(i) de l'image par une relation de la forme où - y(i) est la valeur décodée du pixel d'indice i - M(i) et a(k) sont des coefficients - Ez(i) est une valeur d'incertitude égale pour chaque pixel et N est la demi-longueur en nombre de pixels de la fenêtre sur laquelle a lieu l'estimation. 3. Procédé selon l'une quelconque des revendications 1 et 2 caractérisé en ce que le post-filtrage a lieu selon les directions horizontales et verticales de l'image. 4. Dispositif pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 3 caractérisé en ce qu'il comprend un filtre monodimensionnel (18) pour filtrer les pixels décodés dans la direction horizontale de l'image. 5. Dispositif selon la revendication 4 caractérisé en ce qu'il comprend un deuxième filtre monodimensionnel (20) pour filtrer les pixels décodés dans la direction verticale de l'image. 6. Dispositif selon les revendications 4 et 5 caractérisé en ce que chaque filtre monodimensionnel (18, 20) comprend un dispositif soustracteur (5) des valeurs de luminance et/ou de chrominance des pixels y(i+k) et y(i) relié par sa sortie à un dispositif de calcul de valeur absolue (6), une première table (7) pour mémoriser une valeur d'incertitude (2Ez), un dispositif de comparaison couplé à la première table (7) et à une sortie du dispositif de calcul de valeur absolue (8), un circuit aiguilleur (9) commandé par le circuit de comparaison (8) pour appliquer le résultat de la soustraction effectuée par le dispositif soustracteur sur une première entrée d'opérande d'un premier circuit multiplieur (10) lorsque la différence en valeur absolue des valeurs y(i+k) et y(i) est inférieure à la valeur de l'incertitude (2Ez) ou la valeur O dans le cas contraire, une deuxième table (11) pour appliquer la valeur du coefficient (a(k)) sur la deuxième entrée d'opérande du circuit multiplieur (10), une troisième table (12) fournissant la valeur (1/Mi), un registre accumulateur (13) couplé au circuit multiplieur (10) pour cumuler les résultats de la multiplication fournis par le premier circuit multiplieur (10), un deuxième circuit multiplieur (14) couplé par une première entrée d'opérande au circuit accumulateur (13) et par une deuxième entrée d'opérande à la troisième table (12) et un circuit additionneur (15) couplé par une première entrée d'opérande à une sortie du deuxième circuit multiplieur (14) et recevant sur une deuxième entrée d'opérande la valeur du pixel (y(i)).