AAC MDCT
AAC采用MDCT进行时频变换。
在编码端,以block为单位取出N个sample,乘以合适的window function后再进行MDCT.N通常为2048,256.
每个输入到MDCT的sample block与前一个block有50%的overlap。
假设有3个1024的frame(A,B,C),那第一个进行MDCT的input sample block为(A,B),第二个进行MDCT的input sample block为(B,C).两个input sample block overlap的部分为frame B,即50%的overlap.

关于input sample block在spec中描述如下:

MDCT计算出频谱系数X(i,k)公式如下:

不同的window sequence, N的取值如下:

对于long_sequence,overlap后的2048个sample进行MDCT,输出为1024个频谱系数。
window可以选择KBD或者sine:

在进行MDCT时,可能会遇得到window switch的情况,

在解码端,对频谱系数进行IMDCT

MDCT与IMDCT并不可逆,即IMDCT变换后的结果并不是原始信号。
IMDCT的结果通过overlap + add后(当前frame的前半部分和前一个frame的后半部分相加),可还原出原始信号。
AAC MDCT的更多相关文章
- AAC 码流信息分析
AAC在对PCM数据进行编码时,使用window取出1024或128个数据进行MDCT转换到频域. Window的相关信息记录在ics_info中: 关于ics_info中各个字段的含义如下 wind ...
- 转载:AAC编解码概述
转自:http://www.cnblogs.com/gaozehua/archive/2012/05/03/2479960.html 编码概述 其整体AAC 编解码系统,如图所示,其编码流程概述如下: ...
- 转载:AAC文件解析及解码
转自:http://blog.csdn.net/wlsfling/article/details/5876016 http://www.cnblogs.com/gaozehua/archive/201 ...
- 解密H264、AAC硬件解码的关键扩展数据处理
通过上一篇文章,我们用ffmpeg分离出一个多媒体容器中的音视频数据,但是很可能这些数据是不能被正确解码的.为什么呢?因为在解码这些数据之前,需要对解码器做一些配置,典型的就是目前流行的高清编码“黄金 ...
- FFmpeg官方文档之————先进音频编码(AAC)
先进音频编码(AAC)的后继格式到MP3,和以MPEG-4部分3(ISO / IEC 14496-3)被定义.它通常用于MP4容器格式; 对于音乐,通常使用.m4a扩展名.第二最常见的用途是在MKV( ...
- wav转aac
//调用neroAacEnc.exe STARTUPINFO si={}; PROCESS_INFORMATION pi={};//隐藏窗口 si.cb=sizeof(si); si.dwFlags= ...
- faad解码aac
// faad2.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <cassert> #include <io ...
- faac编码aac
// faacode.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <faac.h> #include &l ...
- iOS音频AAC视频H264编码 推流最佳方案
iOS音频AAC视频H264编码 推流最佳方案 项目都是个人的调研与实验,可能很多不好或者不对的地方请多包涵. 1 功能概况 * 实现音视频的数据的采集 * 实现音视频数据的编码,视频编码成 ...
随机推荐
- Java_Day7(上)
Java learning_Day7(上) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- oracle Insert 一次插入多条记录
oracle Insert 一次插入多条记录有两种方法: 1)Insert All Into table_name values ... insert all into table_name valu ...
- 微信公众号和小程序可以共用access_token值吗?
微信公众号和小程序可以共用access_token值吗? 答案:是不能的 因为两者都可通过统一接口(https://api.weixin.qq.com/cgi-bin/message/subscrib ...
- Wannafly Camp 2020 Day 2B 萨博的方程式 - 数位dp
给定 \(n\) 个数 \(m_i\),求 \((x_1,x_2,...,x_n)\) 的个数,使得 \(x_1 \ xor\ x_2\ xor\ ...\ xor\ x_n = k\),且 \(0 ...
- 关于IO板的输出(Do的写入)
IO板的输入输出遵循MODBUS协议 1.单个DO开关量寄存器写入-功能码05 例子-打开信道3 01 05 00 02 00 00 CD CA 01 从机地址(由io的配置文件决定) 05 功能码 ...
- JN_0009:win下快捷键注销,关机,重启
注销: wn + x + U 再按 I 键 关机: win + x + U 再按 U 键 重启: win + x + U 再按 R 键
- NSSM 将jar 安装成windows服务
1.下载 nssm (下载地址: http://www.nssm.cc/release/nssm-2.24.zip ) 2.将打包好的jar包放到一个文件夹中,编写run.bat文件,run.bat内 ...
- 03_TypeScript函数
1.函数的定义 es5定义函数的方法 //函数声明法 function run(){ return 'run'; } //函数表达式 var run = function(){ return 'run ...
- Progressbar 实例
Progressbar 实例原创侠之大者为国为民 最后发布于2015-10-28 15:22:34 阅读数 5394 收藏展开Progressbar - orient 配置进度条的方向:"h ...
- K3/cloud执行计划插件示例
public class AutoCheckInventory : IScheduleService { /// <summary> /// 实际运行的Run 方法 ...