Treillis à complexité réduite pour le décodage de codes à

publicité
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.
Téléchargement