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

  • 相关阅读:
    Socket通信的理解
    wpf listbox 内的内容显示问题,需要设置里面的itemsPresenter
    C#的两个大方向
    QT的安装和配置及helloqt程序的编写时遇到的问题
    华为交换机基础命令
    华为创建VLAN及VLAN间通讯
    powershell查询AD域账号详细信息
    Powershell从EXCEL导入大量用户
    映射网络驱动器
    域策略更新及导出
  • 原文地址:https://www.cnblogs.com/fellow1988/p/8870759.html
Copyright © 2011-2022 走看看