APE格式及编解码说明
APE结构组成
APE_DESCRIPTOR |
描述信息 |
APE_HEADER |
头 |
Table |
表 |
(Wav头) |
标识头 |
Frame* |
帧 |
1,APE_DESCRIPTOR:
APE结构的描述数据块。它描述了APE的长度,偏移量等信息内容
<4*1> |
cID[4] |
必须为:‘MAC ‘ |
版本号<4> |
nVersion |
大于3980为现有的新版本,其他的为老式的压缩编解码 |
描述块<4> |
nDescriptorBytes |
为以后的头扩展用 |
表<4> |
nHeaderBytes |
表(Table)块的大小 |
头数据块<4> |
nSeekTableBytes |
源文件中获得 |
帧数据<4> |
nHeaderDataBytes |
帧数据所占的总字节数 |
高次序的帧数据<4> |
nHeaderDataBytesHigh |
|
终止符<4> |
nTerminatingDataBytes |
APE文件的终止符 |
MD5<16*1> |
CFileMD5[16] |
注:<n> n为字节数
2,APE_HEADER
压缩比<2> |
nCompressionLevel |
Fast=1000;normal=2000;high=3000;extrahigh=4000;insane=5000 |
格式标识<2> |
nFormatFlags |
用来判定有没有wave数据块 |
每一帧的大小<4> |
nBlocksPerFrame |
为每一帧采样数的大小 |
最后一帧的大小<4> |
nFinalFrameBlocks |
|
总帧数<4> |
nTotalFrames |
|
量化位数<2> |
nBitsPerSample |
|
声道<2> |
nChannels |
|
采样率<4> |
nSampleRate |
注:<n> n为字节数
3,Table< APE_DESCRIPTOR 中nSeekTableBytes大小 / 4>
4,Wav头格式(可选)<44>:
用APE_HEADER nFormatFlags判断
5,frame
① Frame-header <4> |
② (etc) <4> |
③ <1> |
④ Buffer <1> |
⑤ Data <n> |
①Frame-header |
注:<m> m代表字节数。此结构为ape帧的结构。第一帧的并不是音频数据,可能只是为了便于压缩而用。()代表可选,根据实际情况而定。
①
该数据块为帧头,所占的字节数,根据当前帧所处的位置而确定该帧所取的4个字节
根据m_nBits和m_nRefillBitThreshold的值确定:
m_nBits为开辟的缓存区所占的位数,m_nRefillBitThreshold=m_nbits-512。从第一帧开始计数为m_nCurrentBitIndex=0,然后依次读取并改变m_nCurrentBitIndex的值,并且进行下列判断:
if(m_nCurrentBitIndex> m_nRefillBitThreshold)
m_nCurrentBitIndex= m_nCurrentBitIndex&31
②
该数据块根据Frame-header值判断是否存在。
If(帧头的数据值与0x80000000的与运算值)
存在,获取该值,该值的获取与①相同
Else
不存在
③
此字节可以忽略,但是文件指针的值必须移动,该值的获取与①相同
④
此字节为解码中缓存的大小,用于后期解码音频数据之用,该值的获取与①相同
⑤
音频数据块,即样本值。该音频的样本数大小根据APE_HEADER的nBlocksPerFrame的值确定,当样本数=nBlocksPerFrame时,代表该帧结束。最后一帧的样本数= nFinalFrameBlocks时结束。
整个解码过程中用m_nCRC = 0xFFFFFFFF 进行CRC循环校验。
官网:http://www.monkeysaudio.com/
APE格式及编解码说明相关推荐
- android+ape解码,APE格式及编解码说明
APE结构组成 APE_DESCRIPTOR 描述信息 APE_HEADER 头 Table 表 (Wav头) 标识头 Frame* 帧 1,APE_DESCRIPTOR: APE结构的描述数据块.它 ...
- Androidpcm格式音频编解码及播放,socket文件传输通讯,soundTouch变声框架 合成的一款仿微信语音按住说话的demo
pcm格式音频编解码及播放,socket文件传输通讯,soundTouch变声框架 合成的一款仿微信语音按住播放的demo 效果: -------------- 代码: MainActivity ...
- BMP格式知识之三:bmp格式的编解码
bmp格式的编解码 BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持.随着Windows操作系统的流行与丰富的Window ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式 详解
http://blog.csdn.net/wishfly/article/details/50187417 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运 ...
- 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...
- FFmpeg之视频封装格式、流媒体协议、视频编解码协议和传输流格式、时间戳和时间基、视频像素数据
通用视频分析工具:Mediainfo.Elecard StreamEye(视频编码分析工具); 视频封装格式: ********************MP4****************** MP ...
- 各种音视频编解码学习详解 h264 mpeg4 aac 等所有音视频格式
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 编解码学 ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式(一)
编解码学习笔记(一):基本概念 媒 体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放 license收费 ...
最新文章
- struts2配置问题
- CRC源码生成工具,可生成Verilog和VHDL
- python画图程序没有图_Python实现画图软件功能方法详解
- 如何制作Linux程序启动脚本
- 微信公众号调用扫一扫,使扫一扫支持扫PDF417格式的条码
- 没有ADC的MCU如何实现音频播放?
- 《手机游戏引擎架构》信息总汇
- jQuery封装的获取Url中的Get参数
- VS高版本兼容XP系统
- 计算机网络名词解释dns_DNS名词解释
- 互联网经典算法面试题-验证二叉搜索树
- 安卓使用usb连接外设
- Kafka的消息模型
- 组学数据上传(五):代谢组学数据
- Cooperative Perception in an Automotive Context 综述
- Android百度语音识别/语音助手
- 【信号分解】LMD算法及其应用
- 新概念英语Unit5
- 三足鼎立c语言,三足鼎立_Coolbreeze_新浪博客
- 汽车电源高压互锁(HVIL)