zoukankan      html  css  js  c++  java
  • AC3 IMDCT

    AC3 encoder 在进行MDCT时,使用两种长度的block。

    512 samples的block用于输入信号频谱是stationary,或者在时间上变化缓慢。在fs 为48k时,使用512 samples block产生256个transform coefficients,对应频率分辨率为24k/256 =93.75, 时间分辨率为1/93.75=10.7ms

    256 samples的block用于输入信号在时间上变化较快,能够产生较小的时间分辨率,可以减小pre-echo的长度。在fs 为48k时,使用256samples block产生256个transform coefficients,对应频率分辨率为24k/128 =187.5, 时间分辨率为1/187.5=5.3ms

    在encoder端会分析输入信号的频谱或时间变化特性来选择合适的block 长度。在bitstream中,每个channel包含一个bit的字段blksw[ch]来标识选择哪个block.

    当blksw=0时,使用512 sample block,当blksw=1时,使用256 samples block.

    AC3 IMDCT:

    当N=512时,在decoder使用N/4点complex IFFT做pre-twiddle 和post-twiddle来计算IMDCT.

    512 点进行IMDCT计算过程如下:

    1)定义MDCT transform coefficients X[k],k=0,1,2....N/2-1

    2)pre-IFFT complex multiply

    2)进行complex IFFT

    3)post-IFFT complex multiply

    4) window and de-interleave

    5)overlap and add

    当前block的first half 和前一个block的second half相加来消除时域混叠(TDAC)

    256点进行IMDCT计算过程如下:

    1)定义MDCT transform coefficients X[k],k=0,1,2....N/2-1

     

    2)pre-IFFT complex multiply

     

    3)complex IFFT

    4)post-IFFT complex multiply

    5)window and de-interleave

    6) overlap and add

  • 相关阅读:
    git 常用命令
    svn常用命令
    mysql的bin或者sbin目录可执行文件
    SQL 函数
    SQL 通配符
    从一个Activity打开另外一个Activity
    断点下载数据
    多线程下载文件
    向服务器发送post请求
    android 查看网络图片
  • 原文地址:https://www.cnblogs.com/fellow1988/p/8870759.html
Copyright © 2011-2022 走看看