A-law algorithm
{{Short description|Audio companding algorithm}}
{{no footnotes|date=February 2013}}
File:Comparison of A-law and μ-law compression on an input signal.svg (blue) and μ-law (red) compression on an input signal (green). Both axis use logarithmic scale in decibels.|350x350px]]
File:Plot of F(x) for A-Law for A = 87.6.svg
{{Listen
| type = speech
| header = Audio quality comparison
| filename = Speech 12dB s16.flac
| title = 16-bit linear PCM (reference/original)
| filename2 = Speech 12dB alaw8.flac
| title2 = 8-bit A-law PCM
| filename3 = Speech 12dB u8.flac
| title3 = 8-bit linear PCM
}}
An A-law algorithm is a standard companding algorithm, used in European 8-bit PCM digital communications systems to optimize, i.e. modify, the dynamic range of an analog signal for digitizing. It is one of the two companding algorithms in the G.711 standard from ITU-T, the other being the similar μ-law, used in North America and Japan.
For a given input , the equation for A-law encoding is as follows:
F(x) = \sgn(x) \begin{cases}
\dfrac{A |x|}{1 + \ln(A)}, & |x| < \dfrac{1}{A},
\\[1ex]
\dfrac{1+ \ln(A |x|)}{1 + \ln(A)}, & \dfrac{1}{A} \leq |x| \leq 1,
\end{cases}
where is the compression parameter. In Europe, .
A-law expansion is given by the inverse function:
F^{-1}(y) = \sgn(y) \begin{cases}
\dfrac{|y| (1 + \ln(A))}{A}, & |y| < \dfrac{1}{1 + \ln(A)},
\\
\dfrac{e^{-1 + |y| (1 + \ln(A))}}{A}, & \dfrac{1}{1 + \ln(A)} \leq |y| < 1.
\end{cases}
The reason for this encoding is that the wide dynamic range of speech does not lend itself well to efficient linear digital encoding. A-law encoding effectively reduces the dynamic range of the signal, thereby increasing the coding efficiency and resulting in a signal-to-distortion ratio that is superior to that obtained by linear encoding for a given number of bits.
Comparison to μ-law
The μ-law algorithm provides a slightly larger dynamic range than the A-law at the cost of worse proportional distortion for small signals. By convention, A-law is used for an international connection if at least one country uses it.
See also
External links
- [http://www.cisco.com/en/US/tech/tk1077/technologies_tech_note09186a00801149b3.shtml Waveform Coding Techniques] - Has details of implementation (but note that the A-law equation is incorrect)
- [https://github.com/deftio/companders A-law implementation in C-language with example code]
{{Compression Methods}}