Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
OPTIMISED ALGEBRAIC ENCODING AND DECODING METHOD, AND RELATED MODULES AND COMPUTER SOFTWARE
Document Type and Number:
WIPO Patent Application WO/2008/104725
Kind Code:
A1
Abstract:
The invention relates to an encoding method that comprises a decomposition into bit planes (P0, Pκ -1), after a quantification of the bit planes in an N-dimension quantification space (Λo) having an additive structure, while respecting the condition according to which p is a strictly positive integer such that the space 2pZN is strictly included in that quantification space. The method further comprises suppressing from the 0-rank bit plane (P0) a number of predetermined bits based on an error correction code including the zero-rank bit plane.

Inventors:
RAGOT STEPHANE (FR)
OGER MARIE (FR)
ANTONINI MARC (FR)
Application Number:
PCT/FR2008/050257
Publication Date:
September 04, 2008
Filing Date:
February 15, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
RAGOT STEPHANE (FR)
OGER MARIE (FR)
ANTONINI MARC (FR)
International Classes:
H03M7/30; H04N7/50
Other References:
ROAR HAGEN ET AL: "Robust Vector Quantization by a Linear Mapping of a Block Code", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 45, no. 1, January 1999 (1999-01-01), XP011027244, ISSN: 0018-9448
FORNEY G D: "COSET CODES - PART I: INTRODUCTION AND GEOMETRICAL CLASSIFICATION", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 34, no. 5, 1 September 1988 (1988-09-01), pages 1123 - 1151, XP000008917, ISSN: 0018-9448
FORNEY G D: "COSET CODES - PART II: BINARY LATTICES AND RELATED CODES", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 34, no. 5, 1 September 1988 (1988-09-01), pages 1152 - 1187, XP000008919, ISSN: 0018-9448
CONWAY J H ET AL: "Fast Quantizing and Decoding Algorithms for lattice Quantizers and Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 28, no. 2, March 1982 (1982-03-01), pages 227 - 232, XP002300007, ISSN: 0018-9448
HOWARD P G ET AL: "ARITHMETIC CODING FOR DATA COMPRESSION", PROCEEDINGS OF THE IEEE, IEEE. NEW YORK, US, vol. 82, no. 6, 1 June 1994 (1994-06-01), pages 857 - 865, XP000438336, ISSN: 0018-9219
Attorney, Agent or Firm:
FRANCE TELECOM/FTR & D/PIV/BREVETS (38/40 rue du Général Leclerc, Issy Moulineaux Cedex 9, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé de codage d'un signal, comprenant les étapes suivantes, à partir de N valeurs définies en fonction du signal, avec N>1 :

- dans une étape préalable, définir un réseau de points binaire (λo) de dimension N différent de 2 P Z N| avec p entier positif ou nul ; - dans une étape de quantification, déterminer, pour chacune desdites valeurs, un indice de quantification entier tel que le vecteur de dimension N (Y), ayant pour coordonnées lesdits indices de quantification déterminés, soit élément dudit réseau de points ;

- décomposer lesdits indices de quantification sous forme binaire pour former des plans de bits (Po, ... , Pκ-i ) de longueur N ;

- supprimer, dans au moins un (P 0 ) desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit

(Po * ) ;

- constituer une séquence binaire (Seq1) à partir d'au moins un plan réduit (P 0 * ).

2. Procédé selon la revendication 1 , selon lequel le nombre de bits supprimés, pour former un plan réduit (Po ), est inférieur ou égal au nombre de bits redondants d'un code détecteur et/ou correcteur d'erreurs en bloc déterminé de longueur N.

3. Procédé selon la revendication 1 ou 2, selon lequel, à partir de M blocs de N valeurs définis en fonction du signal, avec M strictement supérieur à 1 : pour chaque bloc de valeurs, on trouve N indices de quantification ; - on décompose l'ensemble des M blocs de N indices en plans de bits de longueur M * N ;

- on élimine, dans au moins un desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit ;

- on constitue une séquence binaire à partir d'au moins un plan réduit.

4. Procédé selon l'une quelconque des revendications 1 à 3, selon lequel :

- on supprime, dans chaque plan de bits d'une pluralité (Fl 0 , l ~ li) desdits plans de bits, un nombre respectifs de bits, pour former une pluralité de plans de bits réduits (Fl 0 * , FV), le nombre de bits supprimés dans chaque plan de bits étant inférieur ou égal au nombre de bits redondants d'un code détecteur et/ou correcteur d'erreurs en bloc déterminé de longueur N associé audit plan de bits ;

- on constitue une séquence binaire (Seq2) de codage du signal à l'aide d'éléments de codage définis en fonction au moins des ensembles de bits (Fl 0 * , l ~ li * ) réduits.

5. Module (1 ) de codage d'un signal comprenant :

- un quantificateur (2) adapté pour déterminer, pour chacune de N valeurs définies en fonction du signal, un indice de quantification entier tel que le vecteur (Y) de dimension N, ayant pour coordonnées lesdits indices de quantification déterminés, soit élément d'un réseau de points binaire déterminé (λo), de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- des moyens (3) de décomposition binaire adaptés pour décomposer lesdits indices de quantification sous forme binaire pour former des plans de bits (Po,... Pκ-i) de longueur N ;

- des moyens (4) de suppression adaptés pour supprimer, dans au moins un (P 0 ) desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit (P 0 ) ;

- des moyens (6) pour constituer une séquence binaire à partir d'au moins un plan réduit (P 0 ).

6. Programme d'ordinateur à installer dans un module (1 ) de codage d'un signal, ledit programme comprenant des instructions pour mettre en œuvre, lors d'une exécution du programme par des moyens de traitement dudit module les étapes suivantes :

- dans une étape de quantification, déterminer, pour chacune de N valeurs définies en fonction du signal, un indice de quantification entier tel que le vecteur (Y) de dimension N, ayant pour coordonnées lesdits indices de quantification déterminés, soit élément d'un réseau de points binaire (λo)) de dimension N différent de 2 P Z N| avec p entier positif ou nul dudit réseau de points ;

- décomposer lesdits indices de quantification sous forme binaire pour former des plans de bits (Po, ... , Pκ-i ) de longueur N ;

- supprimer, dans au moins un (P 0 ) desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit

(Po * ) ;

- constituer une séquence binaire (Seq1) à partir d'au moins un plan réduit (P 0 * ).

7. Procédé de décodage d'une séquence binaire (Seq1 ) comprenant des éléments de codage, en vue de restituer N valeurs de définition d'un signal, selon lequel : - en fonction d'éléments de codage compris dans la séquence binaire et relatifs à au moins un plan de bits (Po), déterminer un ensemble (PO * ) de bits relatifs audit plan de bits ;

- compléter ledit ensemble de bits (Po ) avec un nombre de bits supplémentaires dont les valeurs respectives sont définies en fonction des bits dudit ensemble (Po ) de bits et d'un code détecteur

et/ou correcteur d'erreurs en blocs déterminé, de dimension N, associé audit plan de bits, pour déterminer le plan de bits (Po) de longueur N ;

- calculer N indices de quantification en fonction d'au moins les N bits respectifs du plan de bits déterminé, tels que le vecteur de dimension

N, ayant pour coordonnées lesdits indices de quantification calculés, soit élément d'un réseau de points binaire (λ o ) déterminé de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- déterminer N valeurs de définition du signal en fonction d'au moins les N indices de quantification.

8. Procédé de décodage selon la revendication 7, selon lequel :

- en fonction d'éléments de codage compris dans la séquence binaire (Seq2) et relatifs à des plans de bits (Fl 0 , l ~ li) déterminer une pluralité d'ensembles (Fl 0 * , FV) de bits, chaque ensemble de bits correspondant à un plan de bits respectif (Fl 0 , Fh) de longueur N ;

- compléter chaque ensemble de bits de ladite pluralité d'ensemble de bits avec un nombre de bits supplémentaires dont les valeurs respectives sont définies en fonction des bits de l'ensemble de bits correspondant et d'un code détecteur et/ou correcteur d'erreurs en blocs déterminé, de dimension N, associé audit plan de bits, pour déterminer ladite pluralité de plans de bits (FI 0 , Fh) ;

- calculer N indices de quantification en fonction d'au moins les plans de bits déterminés, tels que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification calculés, soit élément d'un réseau de points binaire déterminé de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- déterminer N valeurs de définition du signal en fonction d'au moins les N indices de quantification.

9. Module de décodage (10) d'une séquence binaire (Seq1), ledit module comprenant :

- des moyens (11 ) pour, en fonction d'éléments de codage compris dans la séquence binaire et relatifs à au moins un plan de bits (FIo ), déterminer un ensemble de bits (FIo ) relatifs audit plan de bits ;

- des moyens (12) pour compléter ledit ensemble de bits (FIo ) avec un nombre de bits supplémentaires dont les valeurs respectives sont définies en fonction des bits dudit ensemble de bits et d'un code détecteur et/ou correcteur d'erreurs en blocs déterminé, de dimension N, associé audit plan de bits, pour déterminer le plan de bits (Fl 0 ) de dimension N ;

- des moyens pour calculer N indices de quantification en fonction d'au moins les N bits respectifs du plan de bits déterminé, tels que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification calculés, soit élément d'un réseau de points binaire déterminé de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- des moyens (13) pour déterminer N valeurs de définition du signal en fonction d'au moins les N indices de quantification.

10. Programme d'ordinateur à installer dans un module de décodage (10) d'une séquence binaire (Seq1 ), ledit programme comprenant des instructions pour mettre en œuvre les étapes suivantes lors d'une exécution du programme par des moyens de traitement dudit module : - en fonction d'éléments de codage compris dans la séquence binaire

(Seq1 ) et relatifs à au moins un plan de bits (Po), déterminer un ensemble (Po ) de bits relatifs audit plan de bits ;

- compléter ledit ensemble de bits avec un nombre de bits supplémentaires dont les valeurs respectives sont définies en fonction des bits dudit ensemble (Po ) de bits et d'un code détecteur et/ou correcteur d'erreurs en blocs déterminé, de dimension N,

associé audit plan de bits, pour déterminer le plan de bits (Po) de dimension N ;

- calculer N indices de quantification en fonction d'au moins les N bits respectifs du plan de bits déterminé, tels que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification calculés, soit élément d'un réseau de points binaire (λ o ) déterminé de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- déterminer N valeurs de définition du signal en fonction d'au moins les N indices de quantification.

Description:

PROCEDE DE CODAGE ET DECODAGE ALGEBRIQUE OPTIMISE, MODULES ET PROGRAMMES D'ORDINATEUR ASSOCIES

La présente invention concerne le domaine des dispositifs de codage et décodage de signaux, destinés notamment à prendre place dans des applications de transmission ou de stockage des signaux numérisés et compressés. Parmi ces signaux figurent par exemple des signaux audio, y compris des signaux de parole, des images et de la vidéo.

Sur la figure 1 sont représentés un dispositif de codage 106 et un dispositif de décodage 107. Le dispositif de codage 106 est adapté pour recevoir en entrée un signal S, le coder et délivrer en sortie un flux binaire φ comprenant les données issues du codage du signal S. Le dispositif de décodage 106 est adapté pour recevoir en entrée le flux binaire φ, le décoder et fournir en sortie une restitution du signal S. De façon générale, le dispositif de codage 106 comprend un bloc d'analyse 100, un bloc de quantification 101 et un bloc de compression sans perte 102, et le dispositif de décodage 107 comprend un bloc de décompression sans perte 103, un bloc de quantification inverse 104 et un bloc de synthèse 105. Suivant le type de signal S, l'analyse effectuée par le bloc d'analyse

100 comprend le calcul des paramètres d'un modèle, par exemple un modèle de prédiction linéaire, sinusoïdal ou de prédiction de mouvement, etc. et/ou réalise une transformation (de Fourier, par ondelettes, etc ...). Le bloc d'analyse 100 est optionnel. Par exemple, dans le cas du codage MIC (PCM en anglais), il n'y a pas de bloc d'analyse.

Le bloc de quantification 101 effectue une opération de compression avec perte, de type quantification scalaire ou vectorielle, de valeurs associées au signal qu'il reçoit en entrée. Dans le cas de la quantification scalaire, ces valeurs sont approximées par des niveaux de reconstruction (ou représentants) définis dans des intervalles adjacents ; chacun des intervalles est représenté par un niveau de reconstruction unique qui peut être associé à un indice de quantification (entier).

Le bloc de compression sans perte 102 vise à éliminer la redondance statistique existant dans un signal après quantification. Il met par exemple en œuvre des méthodes du type codage de Huffman, codage de Golomb-Rice ou encore codage arithmétique. Le bloc 102 de compression sans perte est optionnel : dans les applications requérant un débit fixe, il complique la mise en œuvre car il conduit à un débit variable. Les éléments fournis en sortie du bloc de compression sans perte sont insérés dans une séquence binaire selon un format déterminé. La séquence binaire ainsi constituée est ensuite insérée dans le flux binaire φ. Ce flux binaire φ est ensuite reçu en entrée du dispositif de décodage

107, par exemple suite à une transmission sur une liaison de transmission disposée entre le dispositif de codage 106 et le dispositif de décodage 107. Si on considère qu'aucune erreur n'a été introduite lors de la transmission, le bloc de décompression sans perte 103, optionnel, reconstruit l'information en sortie du bloc de quantification 101. Cette information est ensuite traitée par le bloc de quantification inverse 104, qui réaffecte une valeur à la place du coefficient quantifié (par exemple, la quantification inverse affecte une valeur ponctuelle dans l'intervalle indiqué par le coefficient quantifié, par exemple celle du milieu de l'intervalle). Le bloc de synthèse 105 synthétise un signal à l'aide par exemple d'une génération d'excitation suivie par un filtrage, une transformation inverse, etc. Dans le cas du codage MIC notamment, cette synthèse est omise.

Dans la suite du document, on s'intéresse plus particulièrement aux opérations réalisées au niveau de la quantification et de la compression sans perte (si elle existe) dans le dispositif de codage 106, et aux opérations correspondantes, réalisées au niveau de la décompression sans perte (si elle existe) et de la quantification inverse, dans le dispositif de décodage 107.

L'invention concerne plus particulièrement les techniques de codage et décodage dites « par plans de bits ».

De telles techniques sont par exemple utilisées en codage audio MPEG-4, notamment par le codeur « Bit Sliced Arithmetic Coding » (BSAC) (cf les documents « Multi-Layer Bit-Sliced Scalable Audio Coding », S. -H. Park, Y- B. Kim, Y.S. Seo, 103th AES convention, Sept. 1997, Paper 4520 et « Fine

grain scalability in MPEG-4 Audio », S.-W. Kim, S.-H. Park, and Y.-B. Kim, 111th AES convention, Sept. 2001 , Paper 5401).

Les documents EP0884850, EP0918407, EP1431963, EP1463206 et EP1509904 décrivent également des opérations de codage audio avec quantification scalaire suivie d'un traitement par plans de bits.

Ces techniques de codage par plans de bits sont également utilisées en codage d'images ou codage vidéo MPEG-4 FGS (pour Fine Grain Granularity).

L'intérêt principal du codage par plans de bits est qu'il conduit naturellement à un codage hiérarchique du signal, qui permet au dispositif de codage de fournir des débits variés.

Les données binaires issues de l'opération de codage se répartissent en couches successives de taille variable d'importance décroissante. Chaque couche correspond à des codes binaires décrivant tout ou partie d'un plan de bit d'un rang donné et les bits de signes pertinents. Au cas où le débit alloué serait insuffisant pour transmettre toutes les couches, les couches d'importance inférieure, c'est-à-dire celles associées aux plans de bits de rang inférieur, sont supprimées, le débit est ainsi réduit tout en conservant les couches les plus importantes, c'est-à-dire celles associées aux plans de bits de rang supérieur.

Un tel codage permet ainsi au dispositif de décodage de réaliser des approximations successives du signal de plus en plus précises, qui sont reconstruites au fur et à mesure de la réception de portions supplémentaires du flux binaire en provenance du dispositif de codage et relatives à des couches de niveau inférieur aux couches précédemment reçues.

Un exemple d'opérations effectuées par un dispositif de codage par plans de bits va être décrit ci-dessous.

Considérons un signal à coder représenté par X = [xi, ..., x N ], avec N>1. Les valeurs Xi, ..., x N sont par exemple N coefficients spectraux obtenus par transformation temps-fréquence et mise en forme (division par facteur d'échelle par exemple) d'une trame temporelle de signal échantillonné.

Une opération de quantification scalaire est d'abord réalisée sur le n- uplet X=[Xi, ..., X N ]. L'espace de quantification choisi est par exemple Z N = { [zi, ..., z N ] / ∑i e 2 , E étant l'ensemble des entiers relatifs}

Ainsi le vecteur Y = [V 1 , ..., y N ] est le vecteur tel que chaque coefficient de quantification y \ est le résultat de l'opération de "quantification" sur le paramètre Xi, c'est-à-dire que y\ est l'arrondi de Xi dans S . L'arrondi de Xi dans 2 pourrait être également effectué avec une "zone morte" autour de 0 (qui est communément appelée dead zone en anglais) ; on ne traite ici que le cas sans zone morte, sans perte de généralité. Une opération de décomposition par plans de bits est ensuite effectuée.

Tout d'abord, on distingue les signes et les valeurs absolues des coefficients de quantification, soit pour i= 1 à N, y t = (-l) s " χ «, avec Ci 1 = la

valeur a Puis on décompose les valeurs absolues α t , avec i= 1 à N, sous forme binaire, soit : Ci 1 = Ci 1 Kλ 2 + • • • + α t 1 2 1 + α t 0 2° , où K est le nombre de plans de bits minimal nécessaire à la décomposition des valeurs absolues, soit : £ = maχ(αrrsup[ Iog 2 (maχ î=1> >iV α,) ],l), où arrsup désigne l'arrondi à l'entier supérieur et avec Iog 2 (θ) = -∞ . On obtient par cette décomposition les K vecteurs (binaires)

P k = [α u • • • α NJζ ] avec k=0, ... , K-1 , et le vecteur de signe (binaire) S = [S 1 • • • s N ] .

Ces vecteurs sont de taille N.

Ces vecteurs Pk constituent les plans de bits déterminés pour le signal

X. Le vecteur P k est appelé plan de bits de rang (ou poids) k. Le plan de bits supérieur Pκ-i est le plan des bits le plus significatif (MSB ou Most Significant

Bits en anglais), tandis que le plan de bits inférieur Po est le plan des bits le moins significatif (LSB ou Least Significant Bits en anglais).

Le signe de zéro étant indéfini, la convention ci-dessus s, = 0 si y t = 0 peut être changée en ^ = I si y, = 0 .

En général, les plans de bits obtenus Pk avec k=0,..., K-1 sont ensuite codés par sous-blocs, puis les éléments de codage obtenus sont insérés dans la séquence binaire en commençant par les éléments de codage obtenus pour le plan de bit supérieur P κ- i , et en prenant ensuite les plans de bit successifs suivant un ordre de k décroissant. Si le débit alloué le permet, on poursuit l'insertion successive des éléments de codage pour chaque plan de bits jusqu'à ceux obtenus pour le plan de bits inférieur Po.

Les bits de signe S 1 , i = l,---,n , ne sont insérés dans la séquence binaire que si la valeur absolue correspondante a t est non nulle. Pour permettre un décodage des plans de bits, même lorsque seule une partie des plans de bits est reçue par le décodeur, le bit de signe S 1 caractérisant le signe associée à la valeur a-, est inséré dans la séquence binaire dès qu'un des bits codés {α hk ) k=Q κ ι vaut 1. Ainsi, lorsqu'on insère les éléments de codage relatifs au plan Pk dans la séquence binaire, on insère également des données définissant un vecteur S k , de taille variable et qui contient les signes associées aux valeurs α ι telles que α ι k est le premier bit non nul parmi α ι k , α ι k+ι ..., α ι K _ γ .

La figure 2 représente une décomposition en plans de bits pour N=8 et 7 = [-2,+7,+3,0,+l,-3,-6,+5] . Dans ce cas, K =3, P 0 = [0,1,1,0,1,1,0,1] ,

Pi = [1,1,1,0,0,1,1,0] , P 2 = [0,1,0,0,0,0,1,1] et S - [1,0,0,0,0,1,1,0] . II est souhaitable d'améliorer encore les performances de la quantification scalaire suivie par codage par plans de bits, notamment en augmentant le taux de compression, tout en minimisant la perte d'information. A cet effet, suivant un premier aspect, l'invention propose un procédé de codage d'un signal comprenant les étapes suivantes, à partir de N valeurs de signal avec N>1 :

- dans une étape préalable, définir un réseau de points binaire de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- dans une étape de quantification, déterminer, pour chacune desdites valeurs, un indice de quantification entier tel que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification déterminés, soit élément dudit réseau de points ;

- décomposer lesdits indices de quantification sous forme binaire pour former des plans de bits de longueur N ;

- supprimer, dans au moins un desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit ; - constituer une séquence binaire à partir d'au moins un plan réduit.

Un réseau de points est un ensemble discret de points dans l'espace R N = {ri,..., r N / n e R ensemble des réels}, qui possède une structure de groupe additif (la somme et la différence de deux vecteurs - ou points - quelconques du réseau est également un vecteur - ou point - du réseau), (cf. « Sphère Packing, Lattices and Groups », J. H. Conway and N.J.A. Sloane, Third Edition, Springer-Verlag, 1999).

Les réseaux de points trouvent de nombreuses applications dans les techniques de télécommunications : quantification vectorielle, modulation codée et cryptographie. Le réseau de points le plus simple est le réseau Z N , aussi appelé grille cartésienne ou réseau cubique. Celui-ci est associé à la quantification scalaire uniforme. D'autres exemples de réseaux sont :

• Le réseau D N , en dimension N, défini par l'équation:

N

D N = { Y = ( yi ,-, y N ) ≡ Z N ∑ y, est pair ι=l • Le réseau RE N = 2D N , avec N pair, défini par l'équation:

RE N = 2D N u {2D N + (l,h - -,I)] , Où 2D N = {Y = (2y ι ,- - -,2y N )/(y ι ,- - -, y N ) e Z N }.

Des cas particuliers bien connus sont le réseau D 4 appelé réseau de Schafli et le réseau RE^ appelé réseau de Gosset.

Un réseau de points de dimension N, noté λ , est dit entier si ses points ont des coordonnées entières, autrement dit si λ c Z* . Une classe particulière de réseaux entiers est la classe des réseaux de points binaires. Ceux-ci admettent comme sous-réseau 2 P Z N , où 2 P Z N =

Y ^ y 1 , , δ y N ) / Ky 1 , , y N > ^ ^ / . c ' es t-à-dire qu'il existe p entier supérieur ou égal à 0 tel que l'ensemble 2 P Z N c≡ A .

Un procédé selon l'invention tire ainsi avantageusement parti de la structure algébrique des réseaux de points binaires. Au moins un bit est éliminé dans au moins un plan de bit, sans perte d'information utile. Le taux de compression obtenu est donc plus important qu'un codage par plans de bits classique, et ceci en réduisant la perte d'information.

Utiliser une quantification dans un réseau de points binaire permet de tirer parti des valeurs de gain granulaire offertes par ces réseaux, ce qui réduit la perte d'information. Le gain granulaire mesure I' "efficacité" de la discrétisation de l'espace correspondant à un réseau de points. La performance de quantification, mesurée en terme d'erreur quadratique moyenne, est liée à une quantité appelée "moment généralisé d'ordre 2" du réseau (cf. J. H. Conway and N.J.A. Sloane, Sphère Packing, Lattices and Groups, Third Edition, Springer-Verlag, 1999 ). Pour un réseau entier λ , le moment généralisé d'ordre 2, noté G(A) , est un invariant caractérisant λ ; il représente l'erreur granulaire de quantification dans λ (c'est-à-dire l'erreur de quantification obtenue lorsque la source uniforme est codée sans "surcharge").

On définit alors le gain granulaire comme : γ g (A) = 10 log 10 -^- . Par exemple,

G(A) γ g (D 4 ) = 0.42 dB et γ g (RE,) = 0.62 dB.

Dans un mode de réalisation, le nombre de bits supprimé est fonction du nombre de bits redondants d'au moins un code détecteur/correcteur en bloc déterminé de longueur N. Ce nombre de bits est choisi inférieur ou égal au nombre de bits redondants d'au moins un code détecteur/correcteur en bloc déterminé de longueur N.

Cette disposition permet d'éliminer des bits redondants des plans de bits du fait de la structure algébrique du réseau binaire utilisé pour la quantification. Le taux de compression réalisé est encore plus élevé sans perte d'information supplémentaire.

Dans un mode de réalisation, à partir de M blocs de N valeurs, avec M strictement supérieur à 1 : - pour chaque bloc de valeurs, on trouve N indices de quantification ;

- on décompose l'ensemble des M blocs de N indices en plans de bits de longueur M * N.

Cette décomposition en M blocs permet de coder conjointement un nombre de valeurs plus grand que N.

Dans un mode de réalisation, on supprime, dans chaque plan de bits d'une pluralité desdits plans de bits, un nombre respectifs de bits, pour former une pluralité de plans de bits réduits, le nombre de bits supprimés dans chaque plan de bits étant inférieur ou égal au nombre de bits redondants d'un code détecteur et/ou correcteur d'erreurs en bloc déterminé de longueur N associé audit plan de bits. On constitue une séquence binaire de codage du signal à l'aide d'éléments de codage définis en fonction au moins des ensembles de bits réduits.

Cette disposition permet de supprimer les bits redondants pour plusieurs plans de bits, associés à des codes correcteurs d'erreur respectifs, c'est-à-dire tels que les plans de bits sont des mots de code de codes détecteurs et/ou correcteurs d'erreurs. Le nombre de bits supprimés sans perte d'information est ainsi augmenté.

Suivant un second aspect, l'invention propose un module de codage d'un signal comprenant : un quantificateur adapté pour déterminer, pour chacune de N valeurs définies en fonction du signal, un indice de quantification entier tel que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification déterminés, soit élément d'un réseau de points binaire déterminé, de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- des moyens de décomposition binaire adaptés pour décomposer lesdits indices de quantification sous forme binaire pour former des plans de bits de longueur N ;

- des moyens de suppression adaptés pour supprimer, dans au moins un desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit ; - des moyens pour constituer une séquence binaire à partir d'au moins un plan réduit.

Suivant un troisième aspect, l'invention propose un programme d'ordinateur à installer dans un module de codage d'un signal, ledit programme comprenant des instructions pour mettre en œuvre, lors d'une exécution du programme par des moyens de traitement dudit module les étapes suivantes : - dans une étape de quantification, déterminer, pour chacune de N valeurs définies en fonction du signal, un indice de quantification entier tel que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification déterminés, soit élément d'un réseau de points binaire de dimension N différent de 2 P Z N| avec p entier positif ou nul dudit réseau de points ;

- décomposer lesdits indices de quantification sous forme binaire pour former des plans de bits de longueur N ;

- supprimer, dans au moins un desdits plans de bits, au moins un bit de position prédéfinie et former ainsi au moins un plan réduit ; - constituer une séquence binaire à partir d'au moins un plan réduit.

Suivant un quatrième aspect, l'invention propose un procédé de décodage d'une séquence binaire comprenant des éléments de codage, en vue de restituer N valeurs de définition d'un signal, selon lequel :

- en fonction d'éléments de codage compris dans la séquence binaire et relatifs à au moins un plan de bits, déterminer un ensemble de bits relatifs audit plan de bits ;

- compléter ledit ensemble de bits avec un nombre de bits supplémentaires dont les valeurs respectives sont définies en fonction des bits dudit ensemble de bits et d'un code détecteur et/ou correcteur d'erreurs en blocs déterminé, de dimension N, associé audit plan de bits, pour déterminer le plan de bits donné de dimension N ;

- calculer N indices de quantification en fonction d'au moins les N bits respectifs du plan de bits déterminé, tels que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification calculés,

soit élément d'un réseau de points binaire déterminé de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- déterminer N valeurs de définition du signal en fonction d'au moins les N indices de quantification. Suivant un cinquième aspect, l'invention propose un module de décodage d'une séquence binaire, comprenant :

- des moyens pour, en fonction d'éléments de codage compris dans la séquence binaire et relatifs à au moins un plan de bits, déterminer un ensemble de bits relatifs audit plan de bits ; - des moyens pour compléter ledit ensemble de bits avec un nombre de bits supplémentaires dont les valeurs respectives sont définies en fonction des bits dudit ensemble de bits et d'un code détecteur et/ou correcteur d'erreurs en blocs déterminé, de dimension N, associé audit plan de bits, pour déterminer le plan de bits de dimension N ; - des moyens pour calculer N indices de quantification en fonction d'au moins les N bits respectifs du plan de bits déterminé, tels que le vecteur de dimension N, ayant pour coordonnées lesdits indices de quantification calculés, soit élément d'un réseau de points binaire déterminé de dimension N différent de 2 P Z N| avec p entier positif ou nul ;

- des moyens pour déterminer N valeurs de définition du signal en fonction d'au moins les N indices de quantification.

D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels : la figure 3 représente des blocs de traitement d'un module de codage dans un mode de réalisation de l'invention ; la figure 4 représente des blocs de traitement d'un module de décodage dans un mode de réalisation de l'invention ;

la figure 5 représente une séquence binaire constituée par le dispositif de codage de la figure 1 dans un mode de réalisation de l'invention ; la figure 6 est un organigramme représentant des étapes d'un procédé de décodage dans un mode de réalisation de l'invention ; la figure 7 représente une séquence binaire constituée par le dispositif de codage de la figure 1 dans un mode de réalisation de l'invention ; - la figure 8 est un organigramme représentant des étapes d'un procédé de décodage dans un mode de réalisation de l'invention.

L'invention tire avantageusement partie de certaines particularités propres aux réseaux binaires. Comme décrit dans « Coset codes ; I. Introduction and geometrical classification », Forney, G. D., IEEE Transactions on Information Theory, Volume 34, Issue 5, Part 1 , Sept. 1988 Page(s) :1123 - 1151 ), un réseau binaire λ o en dimension N incluant strictement un sous-réseau 2 P Z A ' , avec p strictement positif, est associé à un ou plusieurs codes correcteurs/détecteurs d'erreurs en bloc. Chacun de ces codes détecteur/correcteur d'erreur est de la forme [N, k, d] où N est la longueur ou dimension du code égale à la dimension du réseau λ o , k est le nombre de symboles indépendants au sein des N symboles constituant un mot du code considéré et d est la distance de Hamming au sein du code. Les valeurs k et d varient selon les codes. Pour un tel réseau binaire λ o , il existe j entier positif déterminé, tel que chaque élément du réseau binaire peut s'écrire sous la forme :

2 j+p y j+p + 2 j+p"1 yj + p-i + ...2 j+1 yj + i +2Vj +2 j"1 y H + - --2yi+y 0 , où y j+p , y j+p- i, ...,yj+i sont éléments de Z N et y, yj.i,...,yi et y 0 sont des mots de codes de codes correcteurs d'erreurs respectifs [N, kj, dj], [N, kj.i, dj-i],... [N, k 0 , do]. Un codage par plans de bit selon l'invention comprend une opération de quantification affectant un vecteur de quantification Y = [yi, ..., y ] élément du réseau λ o à un N-uplet de valeurs X=[Xi, ..., X N ]- Une telle quantification

suivie d'une décomposition en plans de bits donne lieu à un plan P 0 de rang 0 qui est un mot de code d'un code détecteur/correcteur d'erreurs [N, k 0 , do], et plus généralement si j >0, donne lieu à des plans de rang 0 à j Po à Pj qui sont des mots de code de codes détecteurs/correcteurs d'erreurs respectifs [N, k 0 , d 0 ], ..., [N, kj, dj.

Par exemple, le réseau binaire D N peut s'écrire sous la forme : D/v = 2Z N +[N, N-1 ,2] = J2)/ + c/ y G Z w ;c ε [iV,JV -l,2]}. Le code [N, N-1 ,2] est un code de parité dont les mots de codes comprennent N bits, parmi lesquels N-1 bits sont indépendants et un bit (dit bit de parité) est déduit de la valeur des N-1 autres bits. Ce bit de parité est donc redondant.

Le réseau binaire RE N peut s'écrire sous la forme : RE N = 4Z N + 2[N, N-1 , 2] + [N, 1 , N]

= {φy + 2c + d I y e Z N ;c e [_V,_V - 1,2];J e [_V,l,_V]}- Le code [N, N-1 ,2] est un code de parité dont les mots de codes comprennent N bits, dont N-1 sont indépendants et un bit est redondant (c'est- à-dire qu'à partie de N-1 bits, on peut déterminer sans perte le Nième bit). Le code [N, 1 , N] est un code à répétition dont les mots de codes comprennent N bits, dont 1 est indépendant et N-1 sont redondants. Les codes correcteurs/détecteurs d'erreurs en bloc considérés sont tels que le nombre de bits redondants dans le code est strictement supérieur à 0, car le réseau binaire est différent d'un réseau de la forme 2 P Z N .

Un procédé de codage selon l'invention comprend en outre au niveau du codeur une étape de réduction du nombre de bits, comprenant la suppression d'un ou plusieurs bits redondants à des positions prédéfinies dans au moins un plan de bits correspondant à un mot de code d'un code détecteur/correcteur d'erreurs. Le nombre de bits supprimés est fonction du nombre de symboles indépendants au sein des N symboles constituant un mode du code. Il est fixé égal ou inférieur au nombre de symboles redondants (ou dépendants) dans un mot dudit code détecteur/correcteur d'erreurs. Par exemple, dans le cas envisagé ci-dessus où des plans Po à Pj de rang 0 à j sont des mots de codes détecteurs/correcteurs d'erreurs, avec j >0, on procédera à une réduction du nombre de bits dans les différents plans P 0 à P j

Un tel codage permet ainsi de réduire le nombre de bits nécessaire pour coder le signal, sans aucune perte d'information supplémentaire.

Au niveau du décodeur recevant des éléments de codage relatifs à au moins un plan de bits dans lequel un ou des bits ont été supprimés selon un procédé de codage dans un mode de réalisation de l'invention, ces bits supprimés sont déduits, dans une étape d'extension du plan de bits, en fonction des bits reçus et du code détecteur/correcteur d'erreur auquel appartient le plan de bits considéré.

Considérons en référence à la figure 3, un codeur 1 dans un mode de mise en œuvre de l'invention.

Ce codeur 1 comprend notamment un bloc 2 de quantification associé à un espace de quantification qui est un réseau binaire λ o , un bloc 3 de décomposition en plan de bits, un bloc 4 de réduction de plan(s) de bits inférieur(s), un bloc 5 de compression sans perte et un bloc 6 de constitution de séquence binaire.

Le réseau binaire λ o de dimension N inclut un sous-réseau 2 P Z N , avec p strictement positif et le réseau binaire λ o est différent de W Z N .

Dans un premier mode de réalisation, choisissons comme réseau binaire λ o le réseau D N . Considérons un signal à coder représenté par X = [X 1 , ..., x N ], avec

N>1. Les valeurs Xi, ..., X N sont par exemple N coefficients spectraux obtenus par transformation temps-fréquence et mise en forme (division par facteur d'échelle par exemple) d'une trame temporelle de signal échantillonnée.

Une opération de quantification est d'abord réalisée par le bloc 2 de quantification sur le n-uplet X=[Xi, ..., X N ], afin de déterminer l'élément Y = [yi, ..., y N ] de D N qui est le plus proche voisin de X dans D N .

Dans un mode de réalisation, la recherche du plus proche voisin dans D N est effectuée suivant l'algorithme rapide pour " D n " (avec n=N) décrit dans l'article « Fast quantizing and decoding and algorithms for lattice quantizers and codes », Conway,J., Sloane, N., IEEE Trans. on Information Theory, Vol. 28, Issue 2, Mar 1982, pages 227 - 232. Cet élément Y est un vecteur de

quantification de dimension N comprenant N coefficients de quantification y u i=1 à N.

Une opération de décomposition par plans de bits est ensuite effectuée par le bloc 3 de décomposition en plans de bits. De même que décrit précédemment, on distingue les signes et les valeurs absolues des coefficients de quantifications, soit pour i= 1 à N, y, = (-iy' x a,

[1 si y, < 0 avec a = y la valeur absolue de Vi et s = <

[0 si y t > 0

Puis on décompose les valeurs absolues a t , avec i= 1 à N, sous forme binaire, soit : a t = a ι Kλ 2 + ••• + a ιX 2 1 + a ιfi 2° , où K est le nombre de plans de bits minimal nécessaire à la décomposition des valeurs absolues, soit : K = maχ(arrmp[ Iog 2 (maχ î=1 ; jJv α,) ],l), où arrsup désigne l'arrondi à l'entier supérieur et avec Iog 2 (θ) = -∞ .

On obtient par cette décomposition les K plans de bits Pk= Va 1 k •••a N k ] avec k = 0,--, K -I , et le vecteur de signes S = [S 1 • • • sv ] (on notera que dans des modes de réalisation, les plans de bits peuvent être obtenus en fonction de décompositions binaires alternatives, suite par exemple à des opérations réalisées sur les valeurs a ι telles que définies ci-dessus ; par exemple, dans un mode de réalisation, on peut fixer P k =[l-α l i ,-- l -α λ , J , ou une représentation en complément à 2, ou encore un codage de Gray sur les plans de bits successifs).

Les K plans de bits P k , avec k = 0,---,K -l et le vecteur de signes S sont ensuite fournis au bloc 4 de réduction de plan(s) de bits inférieur(s).

Etant donné que λ o est le réseau D N et que par conséquent tout plan de bits P 0 de rang 0 calculé lors de l'opération de quantification sur D N est un mot du code de parité [N, N-1 ,2], le bloc 4 supprime N-(N-I )=1 bit du plan P 0 reçu.

Dans un mode de réalisation, le dernier bit du plan Po (correspondant à a N 0 ) est supprimé. Dans un autre mode de réalisation, une convention

différente est retenue, et un bit dans une position autre prédéfinie est supprimé). Cette suppression ne s'accompagne d'aucune perte d'information puisque un nombre de bits égal au nombre de bits redondants dans le plan de rang 0 a été supprimé. Le plan de bits de rang 0 réduit, noté Po * , contenant N-1 bits, est alors fourni au bloc 5 de compression sans perte, ainsi que les plans de bits Pi à

Pκ-i contenant N bits chacun et le vecteur de signes S.

Ce bloc 5 de compression sans perte permet de convertir les plans de bits (y compris le plan réduit Po ) sous forme d'une séquence binaire. Dans le mode de réalisation considéré, il code un par un les plans de bits obtenus Po * et P k avec k = l,---,K -l, par exemple à l'aide d'un codage arithmétique contextuel (cf. « Arithmetic Coding for Data Compression », P. G. Howard and

J.S. Vitter, Proc. IEEE, vol. 82, no. 6, June.1994) et il obtient les éléments de codage respectifs L(P 0 * ) et L(P k ) avec k = l,---,K -l . Les éléments de codage obtenus, L(P 0 ) et L(P k ) avec k = l,---,K -l, sont ensuite fournis avec le vecteur de signes S au bloc 6 de constitution de séquence binaire.

Ce bloc 6 de constitution de séquence binaire constitue alors une séquence binaire Seq1 relative aux éléments de codage déterminés pour le signal X = [xi, ..., XN] considéré.

En référence à la figure 5, il insère en début de séquence binaire Seq1 à l'aide d'un nombre de bits fixe, par exemple égal à 4, le nombre K de plans de bits utilisé, qui est alors égal à 15 au maximum (si le nombre K=O, le codage est alors terminé). Puis les éléments de codage L(P κ- i), déterminés par le bloc 5 de compression sans perte pour le plan P κ- i , sont insérés dans la séquence binaire Seq1 , suivis du vecteur partiel de signes données Sκ-i (cette étape n'a lieu que si K est supérieur ou égal à 2).

Le vecteur partiel de signes Sκ-i comprend les signes associés aux valeurs a t telles que le bit a ι K _ ι est non nul, avec i=1 à N.

Puis les éléments de codage L(Pκ-2), déterminés par le bloc 5 de compression sans perte pour le plan P κ . 2 , sont insérés à la suite des éléments

indiqués ci-dessus dans la séquence Seq1 , suivis du vecteur partiel de signes

Sκ-2-

Le vecteur partiel de signes Sκ-2 contient les signes associées aux valeurs a t telles que a ι K 2 est le premier bit non nul parmi a ι K _ 2 et a ι K _ γ . Puis selon un ordre de k décroissant, de k=K-2 à 1 , les éléments de codage L(P k ), déterminés par le bloc 5 de compression sans perte pour le plan Pk, sont insérés, suivis du vecteur partiel de signes Sk.

Le vecteur partiel de signes Sk contient les signes associées aux valeurs a t telles que α α est le premier bit non nul parmi a ι k , a ιMi ..., a ι K _ v . Enfin, les éléments de codage L(Po ), déterminés par le bloc 5 de compression sans perte pour le plan réduit Po * , sont insérés, suivis du vecteur partiel de signes So.

Le vecteur partiel de signes So contient les signes associées aux valeurs a t telles que a ιfi est le premier bit non nul parmi a ιfi , a ιX ..., a ι Kλ . Dans un mode de réalisation, un flux binaire φ comprenant la séquence binaire Seq1 est transmis à destination d'un décodeur 10.

Un codage selon ce premier mode de réalisation de l'invention permet ainsi d'éliminer 1 bit parmi les N bits du plan Po, sans aucune perte d'information, puisque seule l'information redondante a été supprimée. Considérons à présent, en référence à la figure 4, un décodeur 10 dans un mode de mise en œuvre de l'invention. On suppose ici que le flux binaire φ a été transmis sans erreur binaire et sans réduction de débit ou perte de trame. Le décodeur reçoit donc la même information φ que l'information φ envoyée par le codeur. Ce décodeur 10 comprend notamment un bloc 11 de décompression sans perte, un bloc 12 d'extension de plan(s) de bits inférieurs et un bloc 13 de quantification inverse.

Le flux binaire φ comprenant la séquence binaire Seq1 est reçu par le décodeur 10. Le décodeur 10 est adapté pour mette en œuvre les étapes itératives suivantes, en référence à la figure 6 et à l'aide des blocs 11 et 12.

Le décodeur 10 lit d'abord le nombre K de plans de bits indiqué au début de la séquence Seq1.

Dans une étape d'initialisation 1000, la valeur [0,...,0] est affectée aux vecteurs Y' et S' de dimension N et la valeur K-1 est affectée à la variable k entière.

Le décodeur 10 extrait de la séquence binaire Seq1 reçue les éléments de codage relatifs aux plans de bits successifs, du plan de bits supérieur au plan de bits inférieurs, et les fournit au bloc 11 de décompression sans perte.

Dans un premier temps, le bloc 11 de décompression sans perte décode les éléments de codage reçus correspondant aux éléments de codage envoyés L(P κ- i) relatifs au plan de bits Pκ-i . On suppose ici qu'il n'y a pas d'erreurs binaires sur le canal et de plus que le canal a une capacité suffisante pour transmettre toute la séquence binaire de codage. Ainsi le bloc 11 de décompression sans perte détermine le plan de bits P κ- i . Dans une étape 1004, il actualise la valeur de Y' en multipliant par 2 la valeur Y' courante et en lui ajoutant le vecteur correspondant au plan de bits

Pκ-i

Les données de signes indiquées dans le vecteur partiel de signes Sκ-i lui aussi extrait de la séquence Seq1 sont exploitées pour mettre à jour le vecteur de signes S' (étape 1005), en y ajoutant les signes contenus dans le vecteur partiel de signes Sκ-i- Par exemple, si Sκ-i indique un indice i, avec i compris entre 1 et N, tel que le signe de a-, est positif, alors la i eme coordonnée de S' est maintenue à 0. si Sκ-i indique un indice i, avec i compris entre 1 et N, tel que le signe de a-, est négatif, alors la i eme coordonnée de S' est actualisée à 1.

La variable k est ensuite décrémentée de 1 (étape 1007), puis les étapes précédentes sont réitérées tant que k est différent de 0 (test de l'étape 1003).

Lorsque k atteint la valeur 0, le bloc 11 de décompression sans perte reçoit les éléments de codage L(P 0 ) et les décompresse. Il détermine ainsi le plan de bits Po * .

Le bloc 12 d'extension de plan(s) de bits inférieur(s) reconstitue, dans une étape 1009, le Nième bit de Po à partir du plan de bit P 0 * reçu comprenant N-1 bits.

Dans le mode de réalisation considéré, le plan P 0 est reconstitué en ajoutant un bit à la fin du plan de bits réduit P 0 * , soit P 0 = [Po * , b], où b représente la parité de Po * , c'est-à-dire est égale à la somme des N-1 bits de Po * modulo 2. Ceci résulte du fait que dans D N , le plan Po correspond à un mot de code du code à parité [N, N-1 , 2] (on suppose ici que le code à parité est à parité paire). Dans un autre mode de réalisation, dans lequel le bit supprimé aurait été situé à une position autre qu'à la fin du plan de bits Po, le bit ajouté aurait été inséré à la position correspondant à la suppression.

Puis dans une dernière itération de l'étape 1004, la valeur de Y' est actualisée en multipliant par 2 la valeur Y' courante et en lui ajoutant le vecteur correspondant au plan de bits Po Les données de signes indiquées dans le vecteur partiel des signes So sont exploitées pour mettre à jour le vecteur de signes S' (étape 1005).

A ce stade, le vecteur de signes S' ainsi calculé est égal au vecteur de signe S considéré lors du codage. Le vecteur de quantification Y considéré lors du codage est ainsi retrouvé dans une étape 1010, en fonction des valeurs de signes indiquées par le vecteur S' et de la valeur du vecteur Y' finalement déterminées. Si Y = [yi, - --, YN] 1 Y' = [y'i, ..., y'N] et S' = [Si, ..., s N ], alors y t = (-l) s - x y\ .

Puis ce vecteur de quantification Y est fourni au bloc 13 pour une opération de quantification inverse.

Dans un deuxième mode de réalisation, l'espace de quantification λ o choisi est le réseau RE N - Les étapes mises en œuvre dans un tel cas par le codeur 1 et le décodeur 10 sont décrites ci-dessous. Le signal à coder est représenté par X = [xi, ..., x N ], avec N pair > 2, qui sont par exemple N coefficients spectraux obtenus par transformation temps-fréquence d'une trame temporelle de signal échantillonnée.

Une opération de quantification dans l'espace RE N est d'abord réalisée par le bloc 2 de quantification sur le n-uplet X=[Xi, ..., X N ], afin de déterminer le vecteur de quantification Y 2 = [y 2 i, ..., V 2N ], élément de RE N et qui est le plus proche voisin de X. Dans un mode de réalisation, la recherche du plus proche voisin dans

RE N est effectuée suivant le principe de l'algorithme rapide pour "Eg" décrit dans l'article « Fast quantizing and decoding and algorithms for lattice quantizers and codes », Conway,J., Sloane, N., IEEE Trans. on Information Theory, Vol. 28, Issue 2, Mar 1982, pages 227 - 232. Une opération de décomposition par plans de bits est ensuite effectuée par le bloc 3 de décomposition en plans de bits, en fonction des N coefficients de quantification y 2 i, ..., y2N déterminés.

De même que décrit précédemment, on distingue les signes et les valeurs absolues des coefficients de quantifications, soit pour i= 1 à N, y 2 , = (-ï) σ - x a,

1 si y < 0 avec a, = y la valeur absolue de y 2 i et σ t =

0 si y,, ≥ 0

Puis on décompose les valeurs absolues a t , avec i= 1 à N, sous forme binaire, soit : a t = a uKï _ ι 2 κ'1~ι + --- + a ul 2 ι + a ι 0 2° , où .ST 2 est le nombre de plans de bits minimal nécessaire à la décomposition des valeurs absolues, soit : K 2 = maχ(α/rsup[ Iog 2 (maχ î=1 N a t ) ],l), où arrsup désigne l'arrondi à l'entier supérieur et avec Iog 2 (θ) = -∞ .

On obtient par cette décomposition les K 2 plans de bits π k =[« u ---a N k ] avec k = 0,---, .ST 2 - 1 , et le vecteur de signe ∑ = [σ ι ---σ N ] .

Les K 2 plans de bits l ~ l k , avec k = 0,---,K 2 -l et le vecteur de signes σ sont ensuite fournis au bloc 4 de réduction de plan(s) de bits inférieur(s).

Etant donné que l'espace de quantification est le réseau RE N , tout plan de bits FIo de rang 0 calculé lors de l'opération de quantification sur RE N est un mot du code de répétition [N, 1 ,N] et tout plan de bits l ~ li de rang 1 calculé lors de l'opération de quantification sur RE N est un mot du code de parité [N, N-1 ,2].

Par conséquent, quand l'espace de quantification est le réseau RE N, le bloc 4 de réduction de plan(s) de bits inférieur(s) du codeur 1 est adapté pour supprimer N-(N-I )=1 bit du plan l ~ li de rang 1 reçu et pour supprimer N-1 bits du plan Fl 0 de rang 0 reçu. Dans le mode de réalisation considéré, le dernier bit du plan l ~ li

(correspondant à a N l ) est supprimé. Dans un autre mode de réalisation, une convention différente est retenue, et un bit dans une position autre est supprimé. Le plan de bits de rang 1 ainsi réduit est noté l ~ li * . Il contient N-1 bits.

Dans un mode de réalisation, les N-1 derniers bits du plan FIo sont supprimés. Dans un autre mode de réalisation, une convention différente est retenue, et des bits dans des positions autres sont supprimés.

Le plan de bits de rang 0 ainsi réduit, noté Fl 0 * , contient donc 1 bit

( «i.o λ

Les plans de bits de rang 0 et 1 réduits, Fl 0 * et Fl/, sont alors fournis au bloc 5 de compression sans perte, ainsi que le vecteur de signes σ et les plans de bits Fl 2 à Flκ-i contenant N bits chacun.

De la même façon que vue précédemment en référence au premier mode de réalisation, le bloc 5 de compression sans perte code alors un par un les plans de bits réduits FIo * et Fh * , et les plans de bits FI k avec k = 2,- - - ,K 2 - l et obtient les éléments de codage respectifs L(FI 0 * ), L(FlT) et L(Fl k ) avecfc = 2,- - - , J - 2 - I .

Les éléments de codage obtenus sont ensuite fournis avec le vecteur de signes σ au bloc 6 de constitution de séquence binaire.

Ce bloc 6 de constitution de séquence binaire constitue alors une séquence binaire Seq2 relative aux éléments de codage déterminés pour le signal X = [xi , ..., XN] considéré. En référence à la figure 7, il indique en début de séquence binaire Seq2 à l'aide d'un nombre de bits fixe, le nombre K 2 de plans de bits considéré.

Le vecteur partiel de signes ∑ k contient les signes associées aux valeurs a t telles que a ι k est le premier bit non nul parmi a ι k , a ι k+ι ..., a ι :, R K, -l ' pour k = 0,---,K 2 -l .

Les éléments de codage L(π K 2-i) déterminés par le bloc 5 de compression sans perte pour le plan π K 2-i de rang K 2 -I , sont insérés dans la séquence binaire Seq2, suivis du vecteur partiel de signes E^ 2-1 .

Puis les éléments de codage L(π K 2-i) déterminés pour le plan π K 2-i sont insérés à la suite des éléments indiqués ci-dessus dans la séquence Seq2, suivis du vecteur partiel de signes ∑ Ki _ 2 .

Puis selon un ordre de k décroissant, de k=K 2 -2 à 2, les éléments de codage L(π k ) déterminés par le bloc 5 de compression sans perte pour le plan rik Sont insérés, suivis du vecteur partiel de signes ∑k. Les éléments de codage L(FIi ) déterminés pour le plan de rang 1 réduit sont insérés dans la séquence Seq2, suivis du vecteur partiel de signes ∑i et enfin, les éléments de codage L(FI 0 ) déterminés pour le plan de rang 0 réduit sont insérés, suivis du vecteur partiel de signes ∑o.

Dans un mode de réalisation, un flux binaire φ 2 comprenant la séquence binaire Seq2 est transmis à destination d'un décodeur 10.

Un codage selon ce premier mode de réalisation de l'invention permet ainsi d'éliminer 1 bit parmi les N bits du plan FIi et N-1 bits parmi les N bits du plan FIo, sans aucune perte d'information, puisque seule l'information redondante a été supprimée. Le flux binaire φ 2 comprenant la séquence binaire Seq2 est ensuite reçu par le décodeur 10.

Dans ce deuxième mode de réalisation, le décodeur 10 est adapté pour mettre en œuvre les étapes itératives suivantes à l'aide des blocs 11 et 12. Ces étapes sont similaires à celles décrites ci-dessus en référence à la figure 6, si ce n'est pour celles qui relèvent des plans de rang 0 et 1.

Le décodeur 10 lit d'abord le nombre de plans de bits K 2 indiquée au début de la séquence Seq2.

Puis en référence à la figure 8, dans une étape d'initialisation 2000, la valeur [0,...,0] est affectée aux vecteurs Y 2 et σ de dimension N et la valeur K 2 - 1 est affectée à une variable k entière.

Le décodeur 10 extrait de la séquence binaire Seq2 reçue les éléments de codage relatifs aux plans de bits successifs, du plan de bits supérieur au plan de bits inférieurs, et les fournit au bloc 11 de décompression sans perte.

Dans une étape 2002, le bloc 11 de décompression sans perte reçoit ainsi les éléments de codage L(π K 2-i) (on considère ici qu'il n'y a pas d'erreurs binaires sur le canal de transmission et de plus que le canal a une capacité suffisante pour transmettre toute la séquence binaire de codage) et les décompresse. Il détermine ainsi le plan de bits I ~ lκ2-i-

Puis, dans une étape 2004, si K 2 -I est différent de 0 et de 1 , il actualise la valeur de Y 2 en multipliant par 2 la valeur Y 2 courante (vecteur nul) et en lui ajoutant le vecteur correspondant au plan de bits I ~ lκ2-i Dans une étape 2005, les données de signes indiquées dans le vecteur partiel de signe ∑ κ ^ lui aussi extrait de la séquence Seq2 sont exploitées pour mettre à jour le vecteur de signes σ. La variable k est ensuite décrémentée de 1 si elle est différente de 0

(étape 2007), puis les étapes précédentes 2002, 2004, 2005 et 2007 sont réitérées tant que k est différent de 1 (test de l'étape 2003).

Lorsque k atteint la valeur 1 , dans une étape 2002, le bloc 11 de décompression sans perte reçoit les éléments de codage L(FI 1 ) et les décompresse. Il détermine ainsi le plan de bits réduit Fl 1 * .

Le bloc 12 d'extension de plan(s) de bits inférieur(s) reconstitue, dans une étape 2008, le Nième bit de Fl 1 à partir du plan de bit Fl 1 * réduit reçu comprenant N-1 bits.

Dans le mode de réalisation considéré, le plan Fh est reconstitué en ajoutant un bit à la fin du plan de bits réduit Fh * , soit FIi = [Fh * , b'], où b' représente la parité de π/, c'est-à-dire est égale à la somme des N-1 bits de FIi * modulo 2. Ceci résulte du fait que dans RE N , le plan FIi correspond à un mot de code du code à parité [N, N-1 , 2] (on suppose ici que le code à parité est à parité paire). Puis dans une nouvelle itération de l'étape 2004, la valeur de Y 2 est actualisée en multipliant par 2 la valeur Y' courante et en lui ajoutant le vecteur correspondant au plan de bits Fl 1 Les données de signes indiquées dans le

vecteur partiel de signes ∑i sont exploitées pour mettre à jour le vecteur de signes σ (étape 2005).

Puis k est décrémenté de 1 et atteint ainsi la valeur 0. Dans une étape 2002, le bloc 11 de décompression sans perte reçoit les éléments de codage L(FI 0 ) et les décompresse. Il détermine ainsi le plan de bits réduit Fl 0 * .

Le bloc 12 d'extension de plan(s) de bits inférieur(s) reconstitue, dans une étape 2009, les N-1 derniers bits de Fl 0 * à partir du plan de bit réduit Fl 0 * reçu comprenant 1 bit.

Dans le mode de réalisation considéré, le plan FIo est reconstitué en dupliquant N fois Fl 0 * , soit Fl 0 = [Fl 0 * , Fl 0 * ..., Fl 0 ]. Ceci résulte du fait que dans RE N , le plan FIo correspond à un mot de code du code à répétition [N, 1 , N].

Puis dans une dernière itération de l'étape 2004, la valeur de Y 2 est actualisée en multipliant par 2 la valeur Y 2 courante et en lui ajoutant le vecteur correspondant au plan de bits FIo Les données de signes indiquées dans le vecteur partiel de signes ∑o sont exploitées pour mettre à jour le vecteur de signes σ (étape 2005).

Le vecteur de quantification Y 2 est ainsi retrouvé dans une étape 2010, en fonction des valeurs de signes indiquées par le vecteur de signes σ et de la valeur du vecteur Y 2 finalement déterminées. Si Y 2 = [ y ,..., y 2ιN ], F 2 =[ J 2 1 ,..., J 2JV ] et σ = [σi, ..., O N ], alors y u = (-l) σ - χ y 2>1 .

Dans une étape 2011 , on vérifie la concordance de parité entre le plan de rang 1 FIi et le vecteur de signes σ. Si K 2 >1 , Flo * =[1] et si la parité de σ est impaire, alors le plan FIi de rang 1 est remplacé par [Fh * , b'], où b' est le complément du bit b' calculé précédemment. Les valeurs de Y 2 et Y 2 sont alors recalculées en conséquence. Cette disposition permet de respecter les contraintes algébriques du réseau RE N .

Il a été considéré ci-dessus dans les deux modes de réalisation décrits ci-dessus qu'aucune information n'était perdue lors de la phase de transmission. Néanmoins, en cas de perte d'information, un procédé de décodage selon l'invention peut néanmoins être mis en œuvre sur la base des informations reçues effectivement par le décodeur 10. Des techniques

classiques pour gérer et/ou restituer l'information perdue peuvent en outre être mise en œuvre.

Au cas où une partie de la séquence binaire doit être tronquée avant transmission, par exemple en raison d'un débit insuffisant disponible sur la liaison de transmission, une portion de la séquence binaire Seq1 , comprenant des plans de bits de niveau inférieur, est supprimée du flux. Cette portion comprend les éléments de codage les moins significatifs. Le décodage est alors été fait de manière classique au niveau du décodeur, en ne prenant en compte que les plans de bits de niveau supérieur effectivement reçus dans la séquence binaire et les parties reçues des plans de bits inférieurs.

Un procédé de codage selon l'invention permet la mise en œuvre d'un codage hiérarchique du signal.

Tout ou partie des traitements mis en œuvre par le codeur 1 sont dans un mode de réalisation mis en œuvre suite à l'exécution d'instructions de programme d'ordinateur sur des moyens de calcul du codeur 1.

De même, tout ou partie des traitements mis en œuvre par le décodeur 10 sont dans un mode de réalisation mis en œuvre suite à l'exécution d'instructions de programme d'ordinateur sur des moyens de calcul du décodeur 10. Dans le premier mode de mise en œuvre de l'invention décrit ci-dessus dans l'espace de quantification D N , on a supprimé un bit sur les N bits compris dans le plan de bits de rang 0. Par exemple si N=280 (correspondant par exemple au nombre d'échantillons dans une bande utile 50-7000Hz du spectre d'un signal audio échantillonné à 16kHz sur 20 ms), on supprime un bit sur N=280 bits compris dans le plan de bits de rang 0 après quantification dans l'espace D 28 o-

Dans un autre mode de réalisation, on répartit les N valeurs du signal Xi,..., X N en p blocs de n valeurs (N=p x n) et on met en œuvre un procédé selon l'invention sur chaque ensemble de valeurs de taille n. Par exemple, dans le cas N=280, on choisit le nombre de blocs p égal à 14 et la dimension n de chaque bloc égale à 20. La quantification a alors lieu dans l'espace de quantification D∑o- On supprime alors 1 bit dans chaque plan de rang 0 calculé

pour chaque bloc. On supprime ainsi 14 bits sur les 280 bits correspondant aux 14 plans de bits de rang 0.

Dans un tel cas, la séquence binaire comprend successivement les éléments de codage pour chacun des p=14 plans de bits de rang maximum, suivis des éléments de codage pour les 14 plans de bits de chaque rang selon un ordre de rang décroissant et se termine par les éléments de codage pour les 14 plans de bits réduits de rang 0.

Ces éléments de codage pour les 14 plans de bits réduit de rang 0 comprennent par exemple successivement les éléments de codage définis selon l'invention pour le plan de rang 0 du premier bloc réduit selon l'invention, puis les éléments de codage définis selon l'invention pour le plan de rang 0 réduit du second bloc etc, jusqu'aux éléments de codage définis selon l'invention pour le plan de rang 0 réduit du quatorzième bloc.

Ainsi augmenter le nombre de sous-blocs en diminuant la dimension n de l'espace D n considéré (n étant aussi la dimension de chaque plan de bits) permet d'augmenter le nombre de bits à supprimer sans perte d'information.

Néanmoins, les gains granulaires des réseaux D n ou RE n augmentent avec la dimension n jusqu'à un maximum, puis décroîssent. Ainsi le nombre M de blocs choisis résulte en réalité d'un compromis permettant un nombre de bits supprimés satisfaisant tout en garantissant un gain granulaire suffisant.

Dans un autre mode de réalisation, on considère M blocs comprenant chacun N valeurs définies en fonction du signal. On définit des plans de bits de dimension N pour chacun des M blocs, puis on effectue pour chacun des blocs les réductions de plans de bits. La séquence binaire peut alors comprendre une seule fois le nombre de plans de bits considéré commun aux M blocs, puis les éléments de codage pour les M plans de bits de rang maximum, etc jusqu'aux éléments de codage pour les M plans de bits de rang 0 réduit.

Dans un mode de réalisation, la représentation binaire des plans de bits peut être modifiée de façon réversible avant codage sans perte , par exemple par représentation en complément à 2 ou encore par codage de Gray.

Dans un mode de réalisation, les plans de bits supérieurs qui ne sont pas des mots de code détecteur/correcteur d'erreur, sont codés conjointement par une technique telle que le codage stack-run de séquences d'entiers qui est

décrit dans l'article « Stack-Run Image coding », M. J. Tsai, J. D. Villasenor et F. Chen, IEEE Trans. Circuits Syst. Video Technol., vol. 6, pp. 519-521 , Oct. 1996.

Dans un mode de réalisation, seules les coordonnées binaires de rang 0 à jo, 3ij, i=1 à N et j=0 à jo, avec jo strictement inférieur à K, sont calculées pour déterminer les plans de bits associés à des codes détecteurs/correcteurs d'erreurs. Et pour chaque y h on calcule ensuite la différence entre la valeur absolue de et le terme a l ]o 2 } ° + ••• + a ιX 2 ι + a ι 0 2° . Cette différence est ensuite codée avant insertion dans une séquence binaire. Seuls les plans de bits de rangs inférieurs 0 à jo sont alors insérés dans la séquence binaire.

Dans les modes de réalisation décrit, un nombre maximum de bits, égal au nombre de bits dépendants dans un mot du code détecteur/correcteur considéré, étaient supprimés dans le plan de bits associé au code détecteur/correcteur sans perte d'information. Bien sûr, selon les modes de réalisation, un nombre de bits inférieur au nombre maximum peut être supprimé.