AC3/EAC3格式总结
来源:互联网 发布:mysql可视化工具使用 编辑:程序博客网 时间:2024/06/06 00:11
关于AC3、EAC3比特流的基本格式
1 AC3基本格式
Ac3比特流由一系列的synchronization frame组成,每个synchronization frame包含6个audio block。每个frame的基本结构如图1:
SI
BSI
AB0
AB1
AB2
AB3
AB4
AB5
Aux
CRC
SI
BSI
图1
AC3 Sync frame可按如下流程,具体每个域的解释参考spec:
syncframe()
{
sync_info();//同步信息头为0x0B77
bsi();
for(blk=0;blk<6;blk++)
{
audblk();
}
auxdata();//可选
errorcheck();//可选
}/*end of syncframe*/
2 EAC3基本格式
EAC3,全称Enhanced AC-3 bit streams,与AC3类似,但不能后向兼容。AC3的decoder不能解EAC3的bitstream,EAC3的decoder即能解AC3,也能解EAC3。
每个Frame的基本结构与AC3一致。
EAC3 Sync frame可按如下流程,具体每个域的解释参考spec:
syncframe()
{
sync_info();//同步信息头为0x0B77
bsi();
Audfrm();
for(blk=0;blk<number_of_blocks_per_syncframe;blk++)
{
audblk();
}
auxdata();//可选
errorcheck();//可选
}/*end of syncframe*/
注意:bsi()域中的numblkscod标明每个syncframe包含多少个block,与AC3不同(AC3每个syncframe一定包含6个audio block,解码出来共1536个sample),EAC3每个syncframe不一定包含6个block,即如果每个syncframe只有一个有效block,那么该frame只包含256个sample。
Bsi()域中如果标明使用fscod2,Reduced Sampling Rates(24/22.05/16),numblkscod一定为0x11,即每个syncframe包含6个block。
Bsi()域中bsid,Bit Stream Identification:
0~8 标明是AC3;
11-16 标明是EAC3;
9、10或者大于16的值:不支持的bitstream,decoder必须要mute;
3 数字输出接口
IEC60958规定了PCM输出时的传输方式。每个Block包含192个frames,每个frames包含两个subframe,两个subframe则分别对应着左右两个channel的Sample值,默认16bits,最大可传输24bits。
IEC61937仍然采用IEC60958 frame格式,用来传递非PCM数值,即原始的audio bitstream。只适用于consumer application,professional mode不在该标准范围内。
IEC61937通过data burst的概念来传输audio bitstream。data burst由burst preamble(即Pa,Pb,Pc,Pd)和burst payload组成, 传输Data Burst时还需要做一些Stuffing动作,保持同步。
传输一个data burst,必须能够解出一个完整的帧。data burst结构如图:
|pa|pb|pc|pd|Bitstream|NULL|pa|pb|pc|pd|Bitstream|NULL pa|pb|pc|pd|Bitstream|NULL
IEC_DATA长度:pa~NULL,对AC3,该值为1536;对EAC3,该值为6144;即需要多少个IEC60958 frames来完成一个databurst的传输。
IEC_NULL:NULL,用于同步;
PD:Bitstream,传输的payload长度,必须要能够解出一个完整的帧。
传递一个Data Burst之前,首先需要传递pa,pb,pc,pd四个header,通过两个IEC60958 frame来传递。frame0的subframe0传递pa,subframe1传递pb;frame1的subframe0传递pc,frame1的subframe1传递pd。随后再传递audio bitstream的IEC60958 frames。
转自:http://blog.csdn.net/av_geek/article/details/18445369
- AC3/EAC3格式总结
- AC3/EAC3格式总结
- AC3/EAC3格式总结
- AC3/EAC3格式总结
- AC3/EAC3格式总结
- MP3,aac,ac3,eac3
- AC3 Header
- mx player ac3音频不能播放,mx player解码器,播放MKV格式视频
- _ATL_OBJMAP_ENTRY详解(AC3)
- EAC3文档目录关键字对应中文解释
- AC3简介及压制攻略
- dts,ac3,aac,mp3,opus
- AC3学习的博客地址记录
- 家電小常識什么DTS,AC3呀等等
- AC3简介及压制攻略 zz
- DTS、杜比2.0、杜比5.1、AC3
- ac3音频 机顶盒播放音量变小问题
- APM_for_PX4_NAVIO+_Erle-Brain AC3.3rc8
- ganglia学习2之Spark编译带有ganglia的版本
- bzoj1016: [JSOI2008]最小生成树计数
- C语言再学习 -- EOF、feof函数、ferror函数
- can’t convert between vector values of different size return (__m64) __builtin_ia32_vec_init_v2si
- Elasticsearch、Fluentd与Kibana:开源的日志搜索与可视化方案
- AC3/EAC3格式总结
- Linux 守护进程的启动方法
- hdoj-5969-最大的位或
- VC++内存泄漏的检测与定位
- Permutations II
- ICA独立成分分析
- 华信IT教育201611第一篇博客
- jquery.slimscroll.js兼容firefox和动态高度计算
- C++笔记2