The class of perceptual audio coding (PAC) algorithms yields efficient and high-quality stereo digital audio bitstreams at bit rates from 16 kb/sec to 128 kb/sec (and higher). To avoid "pops and clicks" in the decoded audio signals, channel error detection combined with source error concealment, or source error mitigation, techniques are preferred to pure channel error correction. One method of channel error detection is to use a high-rate block code, for example, a cyclic redundancy check (CRC) code. Several joint source-channel coding issues arise in this framework because PAC contains a fixed-to-variable source coding component in the form of Huffman codes, so that the output audio packets are of varying length. We explore two such issues. First, we develop methods for screening for undetected channel errors in the audio decoder by looking for inconsistencies between the number of bits decoded by the Huffman decoder and the number of bits in the packet as specified by control information in the bitstream. We evaluate this scheme by means of simulations of Bernoulli sources and real audio data encoded by PAC. Considerable reduction in undetected errors is obtained. Second, we consider several configurations for the channel error detection codes, in particular CRC codes. The preferred set of formats employs variable-block length, variable-rate outer codes matched to the individual audio packets, with one or more codewords used per audio packet. To maintain a constant bit rate into the channel, PAC and CRC encoding must be performed jointly, e.g., by incorporating the CRC into the bit allocation loop in the audio coder.
Read full abstract