comparison doc/PCM8-conversions @ 237:e4a4bf11f37c

doc/PCM8-conversions: document command line utilities
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 08 May 2023 04:29:05 +0000
parents 4c7d0dc1eecb
children
comparison
equal deleted inserted replaced
236:4c7d0dc1eecb 237:e4a4bf11f37c
165 identical output. 165 identical output.
166 166
167 For production software, our (Themyscira) recommendation is to use look-up 167 For production software, our (Themyscira) recommendation is to use look-up
168 tables (dev/s2a-regen.out and dev/s2u-regen.out) for both A-law and mu-law 168 tables (dev/s2a-regen.out and dev/s2u-regen.out) for both A-law and mu-law
169 encoding, using the upper 12 bits from 16-bit 2's complement input for A-law 169 encoding, using the upper 12 bits from 16-bit 2's complement input for A-law
170 encoding and the upper 13 bits for mu-law encoding. 170 encoding and the upper 13 bits for mu-law encoding. For mu-law encoding the
171 resulting mapping is different from what G.191 STL ulaw_compress() function
172 produces, and many will consider that function to be canon - but our approach
173 exhibits the same key properties, just mirrored around zero, and has the
174 advantage of needing only the upper 13 bits.
175
176 Command line utilities
177 ======================
178
179 As usual, the present Themyscira GSM codec libraries & utilities package
180 provides command line utilities for working with the subject of this article:
181 conversions between 16-bit linear PCM (the format read and written by other
182 tools in the present suite) and 8-bit PCM in G.711 A-law or mu-law. The
183 following utilities are provided:
184
185 pcm16-to-alaw These two utilities read 16-bit linear PCM in raw format (BE
186 pcm16-to-ulaw byte order by default, or LE with -l option) and convert the
187 recording into one byte per sample G.711 format, with each
188 program emitting its respective encoding law. pcm16-to-alaw
189 has only one mapping, but pcm16-to-ulaw supports two possible
190 mappings: by default it applies the mapping of G.191 STL
191 ulaw_compress(), or if use specify -t option it applies the
192 same mapping that would be produced by our recommended 13-bit
193 look-up table method.
194
195 pcm8-to-pcm16 This utility reads a G.711 8-bit PCM recording (alaw or ulaw
196 selected with a mandatory command line argument) from a "raw"
197 G.711 file and converts it to 16-bit linear PCM. The output
198 byte order is BE by default, or can be changed to LE with an
199 extra command line qualifier.