a-law to 16bits PCM

/*
 *  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 &#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值