首页 > 技术文章 > iOS音频学习笔记一:常见音频封装格式及编码格式

gugupluto 2014-03-06 13:25 原文

(1) pcm格式
   pcm是经过话筒录音后直接得到的未经压缩的数据流
   数据大小=采样频率*采样位数*声道*秒数/8
    采样频率一般是22k或者44k,位数一般是8位或者16位,声道一般是单声道或者双声道
    pcm属于编码格式,就是一串由多个样本值组成的数据流, 本身没有任何头信息或者帧的概念,。如果不是音频的录制者,光凭一段PCM数据,是没有办法知道它的采样率等信息的。(网上有说法指2048个采样算一帧PCM,http://www.360doc.com/content/11/1230/19/2226925_176139396.shtml,不知道这种说法是否正确)
 
   参见:
   PCM文件格式简介 
   PCM数据格式 
   PCM音频格式文件请教 
 
 (2)WAV格式
   WAV格式是封装格式,里面本身可以存放多种编码格式的数据,不过一般都是存放的PCM数据,存放其他编码意义不是很大。
   wav文件由wav文件头部分和wav文件数据体部分组成,0-43字节存放采样率、通道数、数据部分的标识符等头信息,44字节以后的就是数据部分。 很显然,wav的头信息很重要,一旦头信息损坏了,播放估计会有问题。
   参见:
  WAV格式中常见的压缩编码   
  音频编解码·格式篇  
  wav文件格式分析    
  wav文件格式分析详解  
  WAV格式  
 
 (3)MP3格式
   MP3是封装格式,里面存放的数据使用的编码方式称为MPEG1 Layer-3 
   MP3文件由TAG_V2(ID3V2)结构体,一组Frame, TAG_V1(ID3V1)结构体组成,头部的TAG结构体不一定存在,需要进行判断,尾部的TAG长度为128个字节,也需要进行判断。
   中间的一组Frame,Frame长度可以定长也可以边长,每一个Frame都由帧头和数据实体组成,帧头记录了mp3的位率,采样率,版本等信息,每个帧之间相互独立,各帧相互独立。也就是说即使前面的帧损坏了,后面的也是可以播放的。
    参见:
    Mp3帧分析(数据帧)  
    MP3 File Structure   
    MP3文件格式解析  
    MP3文件格式解析 
    MP3格式分析
 
  (4)AMR格式
    AMR文件包含一个文件头,后面就是一帧一帧的AMR帧。文件头里面的值是固定值,用于标识该文件为AMR文件。每个帧分为帧头和数据部分,帧头里面包含编码方式以及辅助信息。AMR的采样率根据编码方式不同而不同,因此不像MP3一样,在每个帧里面存放采样率。
  参见:
  AMR format  
  AMR 文件解析及编解码流程   
  AMR 文件格式分析  
  AMR音频格式分析  
  AMR音频编解码 
  ios实现amr编解码  
  ios与android语音通用方案 
  iOS实现amr编解码  
 
(5)AAC格式
   初步了解,AAC文件可以没有文件头,全部由帧序列组成,每个帧由帧头和数据部分组成。帧头包含采样率、声道数、帧长度等,有点类似MP3格式。
   关于AAC格式的文章网上非常少,只看到以下几篇:
   AAC音频格式分析与解码 
   AAC文件格式解析  
   AAC 格式分析     
   AAC音频压缩编码标准的ADTS与LATM的格式分析    
   音频压缩编码原理及标准:
 
  (6)CAF文件
   CAF是苹果的一种音频封装格式,与WAV差不多,里面可以存放LPCM、MP3等多种编码数据。
   参见:
   CAF FILE OVERVIEW
   Iphone开发之音频101 
 
---------------------------------------------------------------------------------------- 

  本人博客内容系个人学习与研究的笔记,如存在谬误或缺失,请见谅并指出,谢谢。
  本文地址:http://www.cnblogs.com/gugupluto/p/3584320.html

  转载请注明来自:http://www.cnblogs.com/gugupluto/

---------------------------------------------------------------------------------------- 

 

推荐阅读