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

AC3 IMDCT的更多相关文章

  1. [原创]桓泽学音频编解码(13):AC3 位分配模块算法分析

    [原创]桓泽学音频编解码(1):MPEG1 MP3 系统算法分析 [原创]桓泽学音频编解码(2):AC3/Dolby Digital 系统算法分析 [原创]桓泽学音频编解码(3):AAC 系统算法分析 ...

  2. MXPlayer ac3音轨支持问题

    下载的MXPlayer 在播放kvm视频的时候没有声音, 说是不支持ac3的音频 到官网下载单独的解码包: https://mxplayerdownloads.com/mx-player-ac3-dt ...

  3. ffmpeg mp4 mp3 wav flac webm aac ac3 ogg格式转换

    版权声明:本文为博主原创文章,未经允许不得转载. ffmpeg是Linux中转换音频视频文件的常用工具. mp4 to mp3: ffmpeg -i $ID.mp4 -acodec libmp3lam ...

  4. AC3 encoder flow

    AC3 encoder flow 如下: 1.input PCM PCM在进入encoder前会使用high pass filter来移除信号的DC部分来达到更有效的编码. 2.Transient d ...

  5. AC3 Rematrix

    当L R channel highly correlated时,AC3 encoder 使用rematrix技术压缩L/R的和和差. 原始信号为left,right,使用rematrix压缩信号为le ...

  6. AC3 exponent coding

    1.overview AC-3编码的audio信号中的频率系数由浮点型数据表示,并将其归一化到0~1之间. transform coefficient由exponent和mantissa组成. 设tr ...

  7. AC3 overview

    1.AC3 encode overview AC3 encoder的框图如下: AC3在频域采用粗量化(coarsely quantizing)来获取较高的压缩率. 1).输入PCM 经过MDCT变换 ...

  8. English trip M1 - AC3 Teacher:Corrine

    课堂上内容 16,black,games The clothes is Only $. is lucky number in China. God give us black eyes,but we ...

  9. AC3 channel coupling

    1.overview 如果使用channel coupling, encoder端计算所有channel的transform coefficients的平均值,将平均值压缩到coupling chan ...

随机推荐

  1. 我的翻译--一个针对TP-Link调试协议(TDDP)漏洞挖掘的故事

    前言 我写这篇文章原本是为了简化WiFi渗透测试研究工作.我们想使用去年由Core Security发布的WIWO,它可以在计算机网络接口和WiFi路由器之间建立一个透明的通道. 研究的第一步,就是选 ...

  2. phpcms v9 标签调用,函数,sql

    1.截取调用标题长度 {str_cut($r[title],36,'')} 2.格式化时间 调用格式化时间 2011-05-06 11:22:33 {date('Y-m-d H:i:s',$r[inp ...

  3. MySql 小表驱动大表

    在了解之前要先了解对应语法 in 与 exist. IN: select * from A where A.id in (select B.id from B) in后的括号的表达式结果要求之输出一列 ...

  4. vue keep-alive 遇见 vue-router

    keep-alive 遇见 vue-router ·keep-alive 是Vue内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染 ·routre-view也是一个组件,如果直接被包在kee ...

  5. 自定义Redux

    实现mini版redux 1. 理解redux模块 1). redux模块整体是一个对象模块 2). 内部包含几个函数 createStore(reducers) // reducers: funct ...

  6. CodeForces 1144A

    原题链接:https://vjudge.net/problem/CodeForces-1144A #include<bits/stdc++.h> using namespace std; ...

  7. prach 839滤波系数

  8. Codeforce 459A - Pashmak and Garden (已知两点求另外两点构成正方形)

    Pashmak has fallen in love with an attractive girl called Parmida since one year ago... Today, Pashm ...

  9. php私有组件以及创建自己的composer私有组件(packagist+git+composer)

    1.私有组件 大多数时候我们使用的都是公开可用的开源组件,但有时候如果公司使用内部开发的PHP组件,而基于许可证和安全方面的问题不能将其开源,就需要使用私有组件.对Composer而言,这是小菜一碟. ...

  10. jave的安装

    1.此电脑-属性-高级系统设置-环境变量2.点下面那个 新建-  JAVA_HOME3. 双击PATH变量,新建一个参数 4.新建CLASSPATH环境变量