语音编码算法的研究与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺点
运算量庞大,如果通过矩阵直接实现该运算 共需要(N^2)/2次乘法和N(N-1)/2次加法运算
利用FFT的共轭对称和三角函数的性质 N点的MDCT 只需进行N/4点FFT运算
快速
实现
对输入做移位
3N 3N N 1 2i ) x( 2i ) i 0,... 1 4 4 8 3N N N N x2 (i ) x( 1 2i ) x(2i ) i ,... 1 4 4 8 4 N N N x3 (i ) x( 2i ) x( 1 2i ) i 0,... 1 4 4 8 N 5N N N x4 (i ) x( 2i ) x( 1 2i 2i ) i ,... 1 4 4 8 4 x1 (i ) x(
根据贪心的规则往前读进bit,直到在树中 匹配Huffman码字(此时必定到达 Huffman树的叶子节点,左右指针为空)
因为Huffman编码是无前缀编码,所以利 用贪心的规则往前读入bit是正确的。
Your LOGO
EAAC+语音编码算法的研究与实现 4 毕业设计工作总结
取得的成果
EAAC+ 编解码器 MDCT和Huffman算法 代码、翻译、论文
3
加法次数降为 N+(N/2)*log(N/4)次
N越大时,算法效
改进后的MDCT快速算法的主要特点
率提高的越明显
Huffman模块
Huffman 编解码算法
•是一种无前缀,可 变长的编码方法; •Huffman编码的关 键是建Huffman树; •建树的原则根据符 号出现的概率来建立 ,符号累积出现概率 越小,则权值越小。
3GPP TS 26.404.V6.0.0
Enhanced aacPlus general audio codec; Encoder Specification SBR Part.
3GPP TS 26.405.V6.1.0
Enhanced aacPlus general audio codec; Encoder Specification parametric stereo part.
3. 学习Enhanced aacPlus 的编解码流程框架以及主要 算法模块
3GPP 技术规范
3GPP TS 26.401.V7.0.0
Enhanced aacPlus general audio codec; General description.
3GPP TS 26.403.V7.0.0
Enhanced aacPlus general audio codec; Encoder Specification AAC Part.
Your LOGO
感谢顿玉洁老师的指导,无论在课题的 研究上还是对我某些“投机”做法的严 厉,老师教会了我太多
特别感谢我体弱多病的父亲,父母对我 的付出难以言表
最后,感谢今天我的答辩评委老师, 您们辛苦了,谢谢!
汇报人:穆裔坤 指导教师:顿玉洁
2007年6月26日
N 1 4
后处理
X (2 p) Re[ Xfe ( p)] X ( N / 2 1 2 p) Im[ Xfe ( p)]
p 0,1,...
N 1 4
MDCT的快速实现
N点MDCT运算只 需N/4点FFT完成 乘法次数降为 2N+(N/2)*log(N/4)次
1
2
4
算法的时间渐进复 杂度由O(N^2)降 到O(NlogN)
1. 音频编解码算法的一般 方法和流程,以及主要 的编码技术
5. 完成毕设论文,文 献翻译和源代码
论文
理论 学习
4. 认真分析MDCT快 速算法和Huffman算 法模块,提出一类解 决方案
技术 规范
MDCT Huffman
2. 学习3GPP Technical pecification
EAAC+
在老师的指导下,通过查阅相关文 献资料,上述工作全部完成,并对 自己的实现方案进行了分析
2. 对部分关键算法深入的还不够, 在算法原理和技术细节方面更是 如此,有的时候还存在“投机” 的心理
存在的不 足和问题
4.编写的程序效率不够高,和 3GPP经过优化而实现的部分相 比较,无论在时间和空间上都存 在较大的优化空间
3.英文文献某些地方翻译不够准 确,特别是一些专业名词的翻译 上,不符合翻译习惯
• 掌握音频编解码算法的一般方法和流程,了解音频编码关键技术
课题的主 要任务
• 阅读并学习EAAC+音频编解码协议标准,掌握系统总体框架和编码流程
• 参考MPEG-4音频编码协议和相关文献,对编码关键技术进行详细分析
• 参考提供的EAAC+编码算法,在PC平台上完成编码算法的调试和测试工作 • 翻译外文文献 • 撰写毕业设计论文
AAC-LC
SBR
Parametric Stereo
2. Eaac+=aacPlus+PS Tools,也称为HE AAC V2; 3. Eaac+被3GPP采纳,也 成为Mpeg-4音频标准的一 部分; 4. SBR技术可以在同等质量 下节省一半的比特率,PS 工具则可以提高低码率下 立体声的编解码效率
2
i 0,...
N 1 4
FFT(N/4点)
Xf ( p)
N / 4 1 i 0
xf (i) exp[ j( N / 4 ip)]
e
p 0,1,...
N 1 4
旋转
Xf e ( p) Xf ( p) exp[ j (
2 2 i )] N 8N
p 0,1,...
aacPlus (= MPEG-4 High Efficiency AAC)
Enhanced aacPlus (= MPEG-4 High Efficiency AAC + MPEG-4 Parametric Stereo)
参考资料和任务要求
主要参 考资料
• EAAC+音频编解码协议标准 • MPEG-4音频编码协议标准 • EAAC+音频编解码算法参考源程序
x1 (i ) jx3 (i ) xf (i ) x (i ) jx (i) 4 2 N 1 8 N N i ,... 1 8 4 i 0,...
的 快 速 实 现
MDCT
预处理 旋转
xf e (i ) xf (i) exp[ j (
2 2 i )] N 8N
•Huffman解码是根 据建立的Huffman树 进行二进制码串的解 码,即找出一条从根 到叶的路径 •我的实现方案是基 于经典的“贪心原则 ”
Huffman模块
Step 3
树结点的数据结 构
Step 1
•经典Huffman定义: {Is_Leaf,Left_SubTree, Right_Subtree,index}; •huffman树的内部节点 不是符号。所以没有必 要有字段来表示是不是 叶子节点(isleaf)
源自文库
Setp3 11—14 周
Setp2 6—10 周
通读文档3GPP TS 26.401 V7.0.0 并翻译成中文 学习音频编解码的一般原理和心理声学模型 搭建参考程序平台,从整体上了解编码算法
Setp1 1—5 周
Your LOGO
EAAC+语音编码算法的研究与实现 3 所做的主要工作
主要工作简介
对AAC滤波器组中的
MDCT算法和Huffman模 块进行了深入分析; 对MDCT算法的快速实
现以及Huffman模块的二
叉树法提出了实现方案
认真分析了编码算法。
存在的问题
1. 对参考文献中的知识点的理解 不够深入,很多时候存在“知其 然而不知其所以然”甚至“不知 其然”的情况,暴露出专业知识 不够扎实的问题
AAC 编码
最简单的AAC编码框图 滤波器组的编解码结构框图
工作重点放在Huffman算法模块和MDCT算法上
MDCT的快速实现
MDCT的主要功能是完成输入信号的时频映射:
N 1 n 0
X (k ) 2 x(n) cos[
2 1 N (n n0 )(k )], k 0,1,... 1 N 2 2
通过查阅文献和资料, 掌握音频编解码算法的 一般方法和流程,了解 了音频编码的不同方法 和关键技术; 掌握了EAAC+音频编 解码系统的总体框架和 编码流程;
参考MPEG-4音频编码 协议,认真分析了AAC编 码算法
在C99标准下,编程实 现了MDCT快速算法和
Huffman模块二叉树法
翻译了3GPP TS 26401 以EAAC+编解码方案整 体框架以及实现的MDCT 快速算法、Huffman模块 为重点完成了毕设论文
typedef struct treeNode { struct treeNode *leftChild; struct treeNode *rightChild; int index; }Huffman; //树的定义即为递归定义 //非叶子.index=-1,叶子的index为 //序号
•根据符号的累积出现概 率,动态地建立一个二 叉树,用左右指针连起 来; •即将使用次数多的代码 转换成长度较短的代码 ,而使用次数少的可以 使用较长的编码,并且 保持编码的唯一可解性
Your LOGO
EAAC+语音编码算法的研究与实现
汇报内容
EAAC+语音编码算法的研究与实现
课题的主要任务
毕设工作思路
所做的主要工作
毕业设计总结
Your LOGO
EAAC+语音编码算法的研究与实现 1 课题的主要任务
EAAC+ 背景
Enhanced aacPlus编解码方案的组成
Eaac+
1. aacPlus=Mpeg AAC LC +SBR;
贪心法
贪心 原则
• 从枚举思想发展而来; • 每次选择局部最优策略, 而不考虑对今后的影响; • 可以做无回溯的决策;
贪心
性能
• 很多时候,贪心得不到最优 解,但效率高; • 贪心策略解的最优性较难分析。
Huffman解码
对于要解码的Huffman二进制流,依次读 入1个bit的数据,是0则进入左子树,是1 则进入右子树。
Your LOGO
EAAC+语音编码算法的研究与实现 2 毕设工作思路
工作时间表
对前一阶段的整体工作进行总结,拟定论文大纲 完成毕业论文
Setp4 15—18 周
对编码器的框架与流程进行分析 结合解码器,进一步加深对EAAC+编码框架与流程的理解 研究重点放在AAC算法部分,特别是其中的MDCT算法 及Huffman模块 阅读参考文献和源代码,学习EAAC+编码框架与流程 初步学习主要的算法模块 阅读参考源代码,理解SBR部分的实现过程和流程