Summary

  • RFC 2422 made the byte layout part of the audio/32KADPCM contract: the earlier codeword goes in the low nibble and its partner in the high nibble.
  • If the sample ends with an odd codeword count, the RFC prefers silence padding; absent that, the final codeword is discarded. The rule resolves interpretation, not whether a recording was delivered or heard.

The codec had already done its mathematical work. ITU-T Recommendation G.726 described adaptive differential pulse-code modulation and the conversion between 64 kbit/s A-law or μ-law PCM, sampled at 8,000 times per second, and lower-rate channels including 32 kbit/s. At that 32 kbit/s rate, four bits represent each sample. That tells an implementer how a codeword is produced. It does not, by itself, tell a file reader which half of an eight-bit byte contains the earlier one.

That distinction is small enough to disappear in a codec description and large enough to break interchange. Two implementations can agree on the sequence of four-bit values yet serialize each pair in opposite halves of the byte. The octets are valid data in both local conventions; a reader using the other convention reconstructs a different sequence. The result need not be a broken file or a failed mail transaction. The ambiguity sits one layer lower: the receiver cannot know which local convention the sender intended from the MIME subtype alone.

RFC 1911 had already placed Audio/32KADPCM among the mandatory common audio formats for its experimental Voice Profile for Internet Mail. It established a role for the encoding inside a constrained messaging profile, but it did not settle this four-bit ordering. RFC 2422, published in September 1998 as Standards Track and explicitly refining that earlier registration, narrowed the gap. It registered audio/32KADPCM for G.726 data and made a single serialization convention part of the subtype's meaning.

The mapping is exact. In every octet, the first codeword, A, occupies bits 0 through 3: its least significant bit, A0, lands in the octet's least significant position. The next codeword, B, occupies bits 4 through 7, with B3 at the octet's most significant end. Each later pair repeats that arrangement. This is not a reversal of the whole audio stream or a change to G.726's adaptive predictor. It is an ordering rule for two nibbles inside one byte.

That precision also assigns work. RFC 2422 notes that existing G.726 codecs may use different codeword orderings. Because this MIME type permits only the little-endian arrangement, a codec with the opposite convention must reorder codewords before it stores data in this type or after it retrieves them. A common name alone would not have made those codecs interoperable. The standard makes the conversion point legible and testable at the boundary instead of leaving each pair of implementations to negotiate privately.

The incomplete final pair exposes another boundary. The RFC prefers extending a voice sample with silence so the encoded value contains an even number of codewords. If it remains odd, the final codeword is discarded. That instruction is not an aesthetic recommendation about quiet endings; it tells a parser what the spare half-byte means. Without it, the container ends on a byte while the codec sequence ends between nibbles, and readers would need an unstated rule for whether the last half counts.

The subtype has no required or optional parameters. Its body contains the G.726 binary audio without an audio header; MIME transfer encoding may carry it as binary or, generally, Base64. Those are separate decisions. Base64 changes how body octets travel through a mail system; it does not change which nibble holds A or B after the body is decoded. Treating transport encoding as the answer to codeword order would confuse the envelope around bytes with the meaning assigned to the bytes themselves.

RFC 2422 therefore tells a compact but consequential story about standards work. Defining a transformation is not always enough to define an interoperable object. Once output crosses a boundary, ordering, padding and responsibility become part of the contract too. The document does not show how widely the rule was implemented, whether any particular codec was wrong, or whether a recipient heard a message. It does show where an implementation must make the choice explicit—and where the MIME subtype stops leaving that choice local.