ialaw
Functions
-
int main(int argc, char *argv[])
ialaw [ option ] [ infile ]
-v double
absolute maximum value of input \((0 < V)\)
-a double
compression factor \((1 \le A)\)
infile str
double-type compressed data sequence
stdout
double-type output data sequence
In the below example, 8-bit compressed and quantized data read from
data.alaw
is transformed into raw waveform.dequantize data.alaw | ialaw > data.raw
- Parameters:
argc – [in] Number of arguments.
argv – [in] Argument vector.
- Returns:
0 on success, 1 on failure.
-
class ALawExpansion
Nonlinearly decompress data based on A-law algorithm.
Given the input data \(y(n)\), the expansion is performed as follows:
\[\begin{split} x(n) = V \, \mathrm{sgn}(y(n)) \left\{ \begin{array}{ll} \frac{\frac{|y(n)|}{V}(1 + \log A)}{A}, & \frac{|y(n)|}{V} < \frac{1}{1 + \log A} \\ \frac{\exp(-1 + \frac{|y(n)|}{V}(1 + \log A))}{A}, & \frac{|y(n)|}{V} \ge \frac{1}{1 + \log A} \\ \end{array} \right. \end{split}\]where \(V\) is the absolute maximum value of the input data and \(A\) is the compression factor, which is typically set to 87.6.Public Functions
-
ALawExpansion(double abs_max_value, double compression_factor)
- Parameters:
abs_max_value – [in] Absolute maximum value.
compression_factor – [in] Compression factor, \(A\).
-
inline double GetAbsMaxValue() const
- Returns:
Absolute maximum value.
-
inline double GetCompressionFactor() const
- Returns:
Compression factor.
-
inline bool IsValid() const
- Returns:
True if this object is valid.
-
bool Run(double input, double *output) const
- Parameters:
input – [in] Input data.
output – [out] Output data.
- Returns:
True on success, false on failure.
-
bool Run(double *input_and_output) const
- Parameters:
input_and_output – [inout] Input/output data.
- Returns:
True on success, false on failure.
-
ALawExpansion(double abs_max_value, double compression_factor)