zoukankan      html  css  js  c++  java
  • AC3 mantissa quantization and decoding

    1.overview

    所有的mantissa被quantize到固定精确度的level(有相应的bap标识)上,level小于等于15时,使用symmetric quantization.level大于15时,使用asymmetric quantization,用2的补码表示。

    下面table标识了每个bap使用的quantizer,当bap为0时,表示没有quantize mantissa,使用随机噪声代替。当bap为1,2,4时,3个mantissa使用7bit的code word group在一起。

    2. dither for 0 bit mantissa

    当bap为0时,表示不给mantissa分配bit,使用dither(random noise)来代替quantize value.

    是否使用dither,在bitstream中由ditherflag标识,当ditherflag = 1时,使用dither,当ditherflag为0时,使用0.

    每个channel的ditherflag可能不一样。dither应用在将coupling channel还原出individual channel之后。

    dither 的值非均匀的分布在-1~+1之间,通常会对dither用0.707进行scale后的范围是-0.707~0.707之间。

    那么对应的频率系数为:

    transform_coefficent[k]=scaled_dither_value>>exponent[k];

    3.asymmetric quantization

    bap在6~15之间时,使用asymmetric quantization.  使用asymmetric小数的2的补码进行quantization。

    每个mantissa使用浮点型的小数来表示。mantissa的小数点在MSB的左边。所以mantissa的范围是:

    一个audio block的有256个频率系数,每个频率系数对应一个mantissa。第k个mantissa的bit数为qntztb[bap[k]].

    从bitstream中读取qntztab[bap[k]]的mantissa为mantissa[k],那频率系数为:

    transform_coefficent[k]=mantissa[k]>>exponent[k];

     以bap=6为例,quantizer level是32,使用这个quantizer,mantissa占用的bit数为5(2^5=32)。quantizer使用5 bit将mantissa分为32个level,-1~+1之间的quantize level是asymetric的。

     3.symetric quantization

    bap在1~5之间时,mantissa的值在bitstream中并不直接读出来,而是用mantissa_code表示,使用mantissa_code查表才能得到真正的mantissa.

    transform_coefficent[k]=quantization_table[mantissa_code[k]]>>exponent[k];

     mantissa_code到mantissa的map关系如下面的table:

     bap等于1,2,4时,多个mantissa_code被group在一起用7bit的group_code来进一步提高压缩率。

    bap为1时,采用3进制将3个mantissa_code group成一个7bit的group_code.

    bap为2时,采用5进制将3个mantissa_code group成一个7bit的group_code

    bap为4时,采用11进制将2个mantissa_code group成一个7bit的group_code

  • 相关阅读:
    Keep it simple & stupid
    BZOJ 2631: tree( LCT )
    BZOJ 2843: 极地旅行社( LCT )
    BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊( LCT )
    BZOJ 1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草( dp )
    BZOJ 3531: [Sdoi2014]旅行( 树链剖分 )
    BZOJ 1269: [AHOI2006]文本编辑器editor( splay )
    BZOJ 2016: [Usaco2010]Chocolate Eating( 二分答案 )
    BZOJ 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛( 二分答案 )
    BZOJ 2101: [Usaco2010 Dec]Treasure Chest 藏宝箱( dp )
  • 原文地址:https://www.cnblogs.com/fellow1988/p/8836412.html
Copyright © 2011-2022 走看看