Treillis à complexité réduite pour le décodage de codes à longueur variable G. R. Mohammad-Khani, C. M. Lee, M. Kieer et P. Duhamel LSS CNRS Supélec Université Paris-Sud Plateau de Moulon - F-91192 Gif-sur-Yvette Cedex Tél. : 00 33 1 69 85 17 32 Fax : 00 33 1 69 85 17 65 {Gholam-Reza.Mohammad-Khani,lee,kieffer, Pierre.Duhamel}@lss.supelec.fr Adresse du ou des auteurs Adresse electronique Abstract Problème traité : priori De nombreux algorithmes ont été proposés pour le déco- au niveau du décodeur (nombre de MdC, longueur du train binaire à décoder, etc.). Les performances ob- dage souple de données codées à l'aide de codes à longueur tenues sont bien meilleures que celles atteintes par des variable (CLV), la plupart travaillant avec des treillis. Pour décodeurs classiques. un code réaliste, ces treillis sont très complexes à cause du Cependant, la complexité de ces treillis peut devenir nombre de mots de codes à considérer. Nous proposons très importante lorsque des CLV utilisant un nombre im- un moyen de réduire cette complexité, et démontrons que portant de MdC sont considérés. Cet article présente un cette technique permet d'utiliser des décodages souples de algorithme de construction de tables de MdC simpliées CLV dans des conditions réalistes. pour le décodage de données issues d'un CLV. Les MdC Originalité du travail : sont regroupés en un nombre minimal de classes. Au lieu Cet article présente un algorithme de regroupement de de travailler sur l'ensemble des MdC, les algorithmes de codes à longueur variable en un nombre minimal de classes, décodage souple présentés ci-dessus peuvent utiliser ces ce qui permet de réduire signicativement la complexité classes en nombre réduit, ce qui diminue la complexité du décodage souple. des treillis et les temps de calcul. Résultats nouveaux : Le paragraphe 2, présente brièvement le treillis utilisé Une preuve d'optimalité de l'algorithme de regroupe- par un algorithme de décodage au sens du maximum a ment est fournie, un exemple sur le CLV de la norme posteriori H263+ est présenté ainsi qu'un exemple d'application à cent sur la complexité du treillis à considérer. Le para- la localisation des frontières de blocs de texture H263+. graphe 3 décrit le principe de l'algorithme de simplication de données issues d'un CLV an de mettre l'ac- des MdC utilisés par un CLV donné. Les performances que l'on peut attendre des algorithmes de décodage seront dé- 1 Introduction crites au paragraphe 4. Un exemple de simplication des tables utilisé pour le codage de la texture par H263+ ainsi Dans de nombreux standards de compression, tel que que les performances d'un algorithme de décodage utili- JPEG [1], H263+ [2] ou le mode de base de H264 [3], une sant une table normale puis une table simpliée seront étape de codage à longueur variable (CLV) des données est présentés au paragraphe 5. eectuée. Les trains binaires générés lors d'un CLV sont particulièrement sensibles à l'égard d'erreurs de transmission, principalement à cause de la perte de synchronisation qui peut résulter de certaines erreurs introduites par le canal. Une solution classique consiste à insérer dans le train bi- 2 Décodage souple de données issues d'un CLV X générant des symboles apX = {X1 , . . . , XK }. A chaque associé une probabilité d'occurrence pk . à chaque symbole un mot de code xk de tel que `min 6 `k 6 `max . A une suite de On considère une source naire des marques de synchronisation ou de faire appel à partenant à un alphabet un codage canal puissant. Cependant, ceci résulte en une symbole augmentation signicative du débit binaire sur le canal. Un CLV associe Des techniques plus récentes ont exploité la structure par- `k = ` (xk ) bits, N symboles de la source peut donc être associé un vecteur N de N MdC résultant du CLV x1 = (x (1) , . . . , x (N )), PN avec i=1 ` (x (i)) = L. Cette suite peut aussi être vu L comme un vecteur de L bits b1 = (b1 , . . . , bL ). Lorsque ticulière des codes CLV pour développer des algorithme de décodage souple [48]. L'ensemble des successions de mots de codes (MdC) possibles est décrite à l'aide de treillis exploitant certaines informations supposés disponibles a Xk est bL 1 est placé à l'entrée d'un canal de transmission, la sor- tie du canal est notée y1L = (y1 , . . . , yL ). Au niveau du décodeur, lorsque seuls L et la table des MdC utilisée par le CLV sont connus, l'estimée du maximum de vraisemblance de xN 1 x̂ au sens est x̂ = arg max p y1L | x , (1) x∈SL où SL est l'ensemble de toutes les suites de MdC de L bits pouvant être générées par le CLV considéré. Lorsque le canal est gaussien sans mémoire, minimisation sur SL (1) semble des suites de MdC de longueur totale L pouvant être généré par un CLV. Une fois le treillis disponible, des algorithmes tels que SOVA [10] ou BCJR [11] peuvent être employés. Dans le treillis proposé, chaque n÷ud (a) représente la n d'une suite de MdC dont la longueur cubits. Chaque branche correspond à un MdC, ainsi, un groupe de branches parallèles reliant les n÷uds (a) et (a + `) représentent tous les MdC de `-bits. Après un certain temps, la structure devient périodique. Chaque période du treillis contient au plus total de n÷uds est égal à y1L , L, `max n÷uds. Le nombre le nombre de bits du vecteur cependant, le nombre de branches arrivant et émer- geant d'un n÷ud donné peut être très grand. Si l'on considère par exemple le CLV réalisé pour la texture dans la norme H263+, pour les MdC de 10 bits, 42 branches pa- rallèles relient (a − 10) et (a). Pour le décodage, le nombre de métriques de branche à évaluer est donc très important. 3 Algorithme de simplication de tables pour le CLV Une méthode permettant de réduire la complexité de décodage consiste à utiliser une table de MdC de taille réduite. Cet article présente un algorithme de regroupement des MdC de même longueur en classes. Ainsi, par exemple, les 16 MdC de 8 bits utilisés pour le codage de la texture dans la norme H263+ A8 = {00100000, 00100001, . . . , 00101110, 00101111} 0010 et de tous les suxes posA8 peut ainsi être décrit de manière com0010XXXX , où X représente soit 0, soit 1. sont formés du préxe sible de 4 bits. pacte par A l'aide de cette simplication, dans le treillis présenté au paragraphe 2, (a) et (a + 8) 16 d'une norme euclidienne. Pour résoudre ce problème de minimisation sous contrainte, a semble de classes tel que se traduit par la [9] propose la construction d'un treillis représentant l'en- mulée est B = {0, 1} , l'ensemble des mots binaires, qui peut B = {0, 1, X} avec l'élément indéterminé, correspondant à X = {0, 1}. Une classe c est un élément L L de B . Tout élément de B peut aussi être vu comme un L sous-ensemble de B , noté S (c). Ainsi, soit c = (c1 , . . . , cL ) ∈ L B , alors S (c) = (x1 , . . . , xL ) ∈ BL tq xi = ci si ci 6= X et xi ∈ {0, 1} Une classication C = {c1 , . . . , cM } de AL est un enSoit être étendu en ∀x ∈ A, ∃i tel que x ∈ S (ci ) , ∀x ∈ S (ci ) , i = 1, . . . , M , x ∈ A. La méthode de simplication proposée consiste ainsi à représenter AL à l'aide d'une classication minimale C , c'est-à-dire une classication comportant un nombre minimal de classes. Avant de présenter l'algorithme de construction de la classication minimale, quelques notions complémentaires d (·, ·) se B à B. Ainsi, si (x, y) ∈ B, d (x, y) = 1 si x 6= y et d (x, y) = 0 sinon. La distance de Hamming entre deux doivent être introduites. La distance de Hamming généralise de classes est la somme des distances entre les composantes de ces classes. Deux classes sont . adjacentes lorsque leur disordre o (c) = log2 (|S (c)|) tance de Hamming est de un L' d'une classe C, où |S (c)| est le cardinal de S (c) , corres- pond au nombre d'éléments indéterminés de cette classe. c2 peuvent être réunies pour c = c1 t c2 , on a alors S (c) = o (c) = o (c1 ) + 1. Deux classes adjacentes c1 et former une nouvelle classe S (c1 ) ∪ S (c2 ) et 3.2 Construction d'une classication minimale Dans ce résumé, seul le principe de l'algorithme de construction d'une classication minimale sera présenté. Le détail de l'algorithme sera présenté dans la version longue. AL . Chaque élément de AL 0. Une première classication C0 de AL est ainsi formée à l'aide des éléments de AL . Un ensemble de classes C1 est formé de toutes les classes adjacentes de C0 qu'il est possible de réunir. C1 n'est plus nécessairement une classication de AL (par exemple, s'il existe un élément c ∈ C0 n'ayant pas de classe adjacente, alors c ∈ / C1 . La procédure est itérée jusqu'à l'obtention d'une classe Ckmax ne comportant plus aucune classe adjaL'algorithme a pour entrée est également une classe d'ordre cente. L'union de tous les ensembles ainsi obtenus est une classication maximale de AL , C= Skmax k=0 Ck c'est-à-dire qu'elle branches parallèles entre les n÷uds contient toutes les classes qu'il est possible de former par peuvent être remplacées par une branche réunion de classes adjacentes formées à partir des élé- AL . unique. Ll'algorithme proposé est une généralisation de ments de cet exemple. La situation décrite est très simple, mais des alors un sous-ensemble de exemples non triviaux sont plus diciles à traiter. AL . Une classication minimale L'obtention de C consiste à éliminer de 3.1 Notations et dénitions intermédiaires Ck C C de AL est qui reste une classication de se fait en deux étapes. La première C tous les éléments des ensembles qui ont pu être regroupés en classes ap- AL = {a1 , . . . , aN } , utilisé par un CLV donné. Le cardinal de AL est noté |AL |. Il s'agit de regrouper les éléments de AL de Ck+1 . La classication C est alors obtenue. C, une méthode combinatoire consistant à éliminer un maximum de classes de C tout en vériant que le sous-ensemble obtenu reste une classication de AL est manière à obtenir un nombre minimal de représentants. ensuite appliquée. On considère l'ensemble des N MdC de partenant à L bits, Pour former si ci = X 4 Propriétés des tables de CLV simpliées Longueur EOB 9 0 Nb de mots 10 16 24 18 204 1 Les tables de CLV obtenue par la procédure de simpli- 10 0 cation décrite au paragraphe 3 contiennent légèrement 1 moins d'information que les tables initiales. Ceci est du Classication mini de code Total 000111XXX, 00011011X 00011010X, 0001100XX, 000101XX 00010010XX, 0001000XXX, 000011 00001100XX, 0000101XXX, 000010 au regroupement des MdC en classes. Cependant, l'impact de cette perte d'information peut être très limité, Tab. 1 Extrait d'un exemple de classication minimale selon l'algorithme de décodage utilisé. des mots de codes utilisés pour le codage de la texture Si un décodage au sens du maximum de vraisemblance est utilisé, l'algorithme utilisant les tables sim- dans la norme H263+. Les mots marquant la n d'un bloc (EOB) sont distingués des autres pliées fournira les mêmes résultats que s'il avait utilisé les tables complètes, les probabilités a priori des ML symboles n'ayant pas d'inuence. Lorsque l'algorithme de décodage cherche à fournir INTRA une estimée au sens du maximum de vraisemblance INTER MAP Table initiale Table compacte Table initiale 165.77 356.18 62.53 (−62%) 108.46 (−70%) 242.01 445.76 et fournit des sorties souples (en utilisant par exemple Tab. 2 Temps de décodage moyen (en ms/bloc) SOVA [10], [12]), on peut montrer qu'à nouveau, les résultats sont identiques à ceux obtenus avec une table complète. des tables de CLV appliquée aux MdC de même longueur Pour un décodeur optimal utilisant un critère de maximum a posteriori, tel que celui présenté dans [13], le résultat restera optimal si les probabilités a priori de A et de E. Les 204 MdC peuvent être regroupés en 34 classes. Un algorithme de Viterbi est ensuite employé pour la localisation des frontières de blocs dans des paquets de de chacun des MdC regroupés au sein d'une même texture. Les performances sont données en terme de taux classe sont les mêmes. Comme les MdC qui peuvent d'erreur bloc pour des images codées INTER et INTRA être regroupés doivent avoir la même longueur, il est sur la gure 1 en terme de temps de décodage moyen par raisonnable de penser que cette condition sera vé- bloc dans le tableau 2. Avec des temps de calcul presque riée. Cependant, dans le cas d'une utilisation des trois fois moindres, les performances sont la plupart du tables simpliées dans le cadre d'une procédure ité- temps très semblables, excepté pour le décodage au sens rative, les diérences entre les probabilités du maximum a priori des MdC formant une classe pourront être source de a posteriori une perte de l'ordre de 0.2 des blocs de type INTRA, où dB peut être notée. sous-optimalité. 5 Application Fig. 1 Comparaison d'algorithmes de localisation de blocs de texture générées par un codeur H263+ Dans [14], un algorithme de décodage des informations de texture générées par un codeur H263+ est considéré. Chaque bloc de texture de 8×8 pixels subit un CLV puis est placé dans des paquets qui sont ensuite envoyés sur 6 Conclusion le canal. Un paquet contient en général plusieurs blocs Cet article présente un algorithme de simplication des de texture. Le décodeur proposé par [14] comprend deux tables utilisés pour le décodage de CLV à l'aide d'algo- étapes. La première consiste à localiser les blocs de texture rithme de type maximum de vraisemblance ou maximum dans un paquet. La seconde consiste à décoder chaque a posteriori. Certains MdC peuvent être regroupés au sein bloc ainsi localisé en exploitant certaines contraintes liées de classes, ce qui permet de réduire la complexité des algo- à la syntaxe du train binaire que peut générer un codeur rithmes de décodage. Une preuve d'optimalité de la pro- H263+, voir [15] pour plus de détails. cédure présentée sera fournie dans la version longue de Pour la première étape, seul le nombre de blocs que comporte un paquet est connu a priori. Pour localiser la posi- l'article. Dans l'exemple traité, la simplication a permis de re- 204 MdC par 34 classes, ce qui réduit largement tion des blocs, le treillis présenté au paragraphe 2 doit être présenter modié pour faire apparaître comme propriété de chaque la complexité des treillis représentant l'ensemble des suc- n÷ud le nombre de blocs accumulés. Ceci revient à ajou- cession de MdC possibles pour une longueur de séquence ter une dimension au treillis. Pour chaque mot de code, il codée reçue donnée. Les performances du décodeur au sens convient également de distinguer ceux qui marquent la n du maximum de vraisemblance restent inchangées lorsque d'un bloc. des tables simpliées lui sont fournies, mais le temps de Ainsi, les 204 MdC dédiés au codage de la texture dans calcul est presque trois fois moindre. Pour un décodeur a posteriori, le standard H263+ sont partitionnés en deux sous-ensembles utilisant un critère de maximum A perte d'optimalité peut être notée lorsque les probabilités et E contenant respectivement les MdC ne marquant une légère pas et marquant la n d'un bloc. La table 1 rassemble a priori les résultats obtenus par la procédure de simplication sont diérents. Comme les MdC qui peuvent être regrou- des MdC regroupés au sein d'une même classe Table co 92.41 (− 131.03 ( pés doivent avoir la même longueur, les diérences restent faibles. Références [1] Recommandation IT-81, Information Technology Digital Compression and Coding of Continuous-Tone Still Images - Requirements and Guidelines (JPEG), ITU, CCITT, 1992. [2] H263 - Video Coding for Low Bitrate Communications, ITU, 1998. [3] ITU-T/SG16/VCEG, ISO/JTC1/SC29/WG11, H264 Joint Committee Draft, Document JVT-C167, rd 3 meeting : Fairfax, Virginia, USA, 6-10 may 2002. [4] V. Buttigieg and P. Farrell, A MAP decoding algorithm for variable-length error-correcting codes, in Codes and Cyphers : Cryptography and Coding IV. Essex, England : The Inst. of Mathematics and its Appl., 1995, pp. 103119. [5] V. B. Balakirsky, Joint source-channel coding with variable length codes, in Proceedings of lEEE ISIT, Ulm, Germany, 1997. [6] N. Demir and K. Sayood, Joint source/channel co- IEEE Data Compression Conf., Snowbird, UT, 1998, pp. 139148. ding for variable length codes, in [7] K. Sayood, H. H. Otu, and N. Demir, Joint source/channel coding for variable length codes, IEEE Trans. Commun., vol. 48, pp. 787794, 2000. [8] R. Thobaben and J. Kliewer, On iterative sourcechannel decoding for variable-length encoded markov sources using a bit-level trellis, in Proc. IV IEEE Signal Processing Workshop on Signal Processing Advances in Wireless Communications (SPAWC'03), Rome, 2003. [9] S. Kaiser and M. Bystrom, Soft decoding of variable- Proceedings of the IEEE International Conference on Communications, vol. 3, New length codes, in Orleans, 2000, pp. 12031207. [10] J. Hagenauer and P. Hoeher, A viterbi algorithm with soft-decision outputs and its applications, in Proc. Globecom, Dallas, TX, 1989, pp. 16801686. [11] L. R. Bahl, J. Cocke, F. Jelinek, and J. Raviv, Optimal decoding of linear codes for minimizing symbol error rate, IEEE Trans. Info. Theory, vol. 20, pp. 284287, 1974. [12] B. Vucetic and J. Yuan, Applications. [13] R. Bauer Turbo Codes - Principles and Dordrecht : Kluwer, 2000. and J. Hagenauer, Turbo-FEC/VLC- decoding and its application to text compression, in Proceedings of the Conference on Information Sciences and Systems (CISS'00), Princeton University, USA, 2000. [14] H. Nguyen and P. Duhamel, Compressed image and video redundancy for joint source-channel decoding, in Proc. Globecom, 2003.