ulaw

Functions

int main(int argc, char *argv[])

ulaw [ option ] [ infile ]

  • -v int

    • absolute maximum value of input \((0 < V)\)

  • -u double

    • compression factor \((0 < \mu)\)

  • infile str

    • double-type input data sequence

  • stdout

    • double-type compressed data sequence

In the below example, 16-bit data read from data.short is compressed to 8-bit ulaw format.

x2x +sd data.short | ulaw | quantize > data.ulaw

Parameters
  • argc[in] Number of arguments.

  • argv[in] Argument vector.

Returns

0 on success, 1 on failure.

See also

iulaw

class sptk::MuLawCompression

Nonlinearly compress data based on \(\mu\)-law algorithm.

Given the input data \(x(n)\), the compression is performed as follows:

\[ y(n) = V \, \mathrm{sgn}(x(n)) \frac{\log (1 + \mu \frac{|x(n)|}{V})}{\log (1 + \mu)} \]
where \(V\) is the absolute maximum value of the input data and \(\mu\) is the compression factor, which is typically set to 255.

Public Functions

MuLawCompression(double abs_max_value, double compression_factor)
Parameters
  • abs_max_value[in] Absolute maximum value.

  • compression_factor[in] Compression factor, \(\mu\).

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.