Loi A

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

La loi A (en anglais A-Law) est un système de quantification logarithmique d'un signal audio, utilisé principalement à des fins de compression pour les applications traitant la voix humaine. Elle est standardisée sous la référence ITU-T G.711. Utilisée principalement en Europe, elle est semblable à la loi Mu utilisée aux États-Unis et au Japon.

Caractéristiques principales de la loi A[modifier | modifier le code]

  • C'est un algorithme standardisé, défini dans le standard ITU-T G.711
  • Sa complexité est faible
  • Il est utilisé pour des applications de traitement de la voix humaine
  • Il n'introduit presque aucun retard, grâce à sa faible complexité
  • Il est adapté aux systèmes de transmission par multiplexage temporel
  • Il n'est pas adapté à la transmission par paquets
  • Son facteur de compression est d'environ 2:1

Description[modifier | modifier le code]

Transformation logarithmique

Transformation linéaire[modifier | modifier le code]

L'équation de sortie de la loi A est :


F(x) = \sgn(x) \begin{cases} {A |x| \over 1 + \ln(A)}, & |x| < {1 \over A} \\
\frac{1+ \ln(A |x|)}{1 + \ln(A)}, & {1 \over A} \leq |x| \leq 1 \end{cases}
,

A est le paramètre de compression. En Europe A = 87,7. La valeur A = 87,6 est parfois utilisée.

La fonction inverse est la suivante:


F^{-1}(y) = \sgn(y) \begin{cases} {|y| (1 + \ln(A)) \over A}, &  |y| < {1 \over 1 + \ln(A)} \\
{\exp(|y| (1 + \ln(A)) - 1) \over A}, & {1 \over 1 + \ln(A)} \leq |y| < 1 \end{cases}

Transformation discrète[modifier | modifier le code]

Dans le codec G.711, on n'utilise pas cette formule qui serait trop longue à calculer, mais un algorithme de transformation binaire qui donne des résultats approchants.

Cet algorithme prend en entrée un échantillon linéaire sur 12 bits (dont un bit de signe s), et donne en sortie un code sur 8 bits :

Échantillon linéaire Code compressé
s0000000wxyz s000wxyz
s0000001wxyz s001wxyz
s000001wxyza s010wxyz
s00001wxyzab s011wxyz
s0001wxyzabc s100wxyz
s001wxyzabcd s101wxyz
s01wxyzabcde s110wxyz
s1wxyzabcdef s111wxyz

Notes et références[modifier | modifier le code]