a-law to 16bits PCM

本文档提供了一种将A-law压缩编码转换为16位PCM线性数据的算法。首先,根据输入代码的符号获取3位段和4位线性数据。然后,结合段和线性数据进行位移和混合操作。最后,根据原始输入代码的符号设置结果的最高位,并对结果进行异或操作。同时提供了A-law解码算法,逆向执行此过程。
摘要由CSDN通过智能技术生成
/*
 *  alaw_encode table
 *  Linear Input Code     Compressed Code
 * --------------------  -----------------
 *                                  
 *                      seg(3 bits)     linear_data(4 bits)
 *  0000000wxyza        000             wxyz $mark1
 *  0000001wxyza        001             wxyz
 *  000001wxyzab        010             wxyz
 *  00001wxyzabc        011             wxyz
 *  0001wxyzabcd        100             wxyz
 *  001wxyzabcde        101             wxyz
 *  01wxyzabcdef        110             wxyz
 *  1wxyzabcdefg        111             wxyz
 *
 *  1. first, if input code is neg, invert input code all bits 
 *  2. by input code, get seg and linear_data
 *  3. shift and mix seg and linear_data 
 *  4. if original input code not neg, set result |= 0x80, else nodone 
 *  5. result xor 0x55
 */

unsigned char alaw_encode (short pcm_data)
{
    unsigned char alaw_8bits;
    unsigned char seg_3bits;
    unsigned short seg_limit &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值