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格式及编解码说明相关推荐

  1. android+ape解码,APE格式及编解码说明

    APE结构组成 APE_DESCRIPTOR 描述信息 APE_HEADER 头 Table 表 (Wav头) 标识头 Frame* 帧 1,APE_DESCRIPTOR: APE结构的描述数据块.它 ...

  2. Androidpcm格式音频编解码及播放,socket文件传输通讯,soundTouch变声框架 合成的一款仿微信语音按住说话的demo

    pcm格式音频编解码及播放,socket文件传输通讯,soundTouch变声框架 合成的一款仿微信语音按住播放的demo 效果:   -------------- 代码: MainActivity ...

  3. BMP格式知识之三:bmp格式的编解码

    bmp格式的编解码 BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持.随着Windows操作系统的流行与丰富的Window ...

  4. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  5. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式 详解

    http://blog.csdn.net/wishfly/article/details/50187417 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运 ...

  6. 【FFMPEG】各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    目录(?)[-] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列AAC音频 编解码学习笔 ...

  7. FFmpeg之视频封装格式、流媒体协议、视频编解码协议和传输流格式、时间戳和时间基、视频像素数据

    通用视频分析工具:Mediainfo.Elecard StreamEye(视频编码分析工具); 视频封装格式: ********************MP4****************** MP ...

  8. 各种音视频编解码学习详解 h264 mpeg4 aac 等所有音视频格式

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 编解码学 ...

  9. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式(一)

    编解码学习笔记(一):基本概念 媒 体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放 license收费 ...

最新文章

  1. struts2配置问题
  2. CRC源码生成工具,可生成Verilog和VHDL
  3. python画图程序没有图_Python实现画图软件功能方法详解
  4. 如何制作Linux程序启动脚本
  5. 微信公众号调用扫一扫,使扫一扫支持扫PDF417格式的条码
  6. 没有ADC的MCU如何实现音频播放?
  7. 《手机游戏引擎架构》信息总汇
  8. jQuery封装的获取Url中的Get参数
  9. VS高版本兼容XP系统
  10. 计算机网络名词解释dns_DNS名词解释
  11. 互联网经典算法面试题-验证二叉搜索树
  12. 安卓使用usb连接外设
  13. Kafka的消息模型
  14. 组学数据上传(五):代谢组学数据
  15. Cooperative Perception in an Automotive Context 综述
  16. Android百度语音识别/语音助手
  17. 【信号分解】LMD算法及其应用
  18. 新概念英语Unit5
  19. 三足鼎立c语言,三足鼎立_Coolbreeze_新浪博客
  20. 汽车电源高压互锁(HVIL)

热门文章

  1. 随笔-20191217
  2. 区块链入门教程(9)--使用WeBASE-Front部署及调用合约
  3. 卿盾安全中心【模仿火绒安全中心】
  4. jq取html下拉框的值,jquery设置下拉框的值为空
  5. android手机获取系统短信sqlite数据库并查看内容
  6. Java+Swing+mysql用户信息管理系统
  7. Java Swing五子棋项目
  8. 使用Socks5代理加速爬虫访问的方法
  9. python可以编程手机版_手机最强Python编程神器,在手机上运行Python
  10. 清朝后宫佳丽的真实照片