儲存格式理解筆記(一)WAV格式分析2,理解含意。

来源:互联网 发布:软件技术支持面试题 编辑:程序博客网 时间:2024/05/16 13:47
繼上一篇用C++解析出WAV Format Header之後,對於其儲存內容的意涵還是不甚了解,
於是發揮追根究柢的精神,希望能一次釐清;故查詢資料並統整翻譯後有以下筆記。

  • 採樣(Sample) – 表示一個通道音頻數據中聲波幅度的單個標量值。
  • 通道(Chanel)- 音頻數據中的獨立波形。 通道數量很重要:一個通道是“Mono”,兩個通道是“Stereo” - 左右揚聲器有不同的波形。 5.1環繞聲有5個通道,其中一個是最低的聲音,通常發送到低音炮(subwoofer)。 再次,每個通道保持獨立於所有其他通道的音頻數據,儘管所有通道將是相同的總長度。
  • 幀(Frame)- 幀類似於樣本,但是是多通道格式 - 它是特定數據點上所有通道的快照。
  • 採樣率(Sampling Rate) - 每秒數據存在的採樣(或幀)數。 該字段以Hz或“每秒”表示。例如,CD質量音頻每秒有44,100個樣本。 較高的採樣率意味著較高的保真度音頻。
  • 位深度/每樣本位數(Bit Depth / Bits per Sample)- 一個樣本可用的位數。 公共位深度為8位,16位和32位。 樣本幾乎總是由默認數據類型表示(native data type),例如byte,short或int。 較高的位深度意味著每個採樣可以更精確,導致更高的保真度音頻。
  • 塊對齊(Block Align) - 這是幀中的字節數。 這是通過將通道數乘以採樣中的字節數(而不是bit)來計算的。 要得到每個樣本的字節數,必須將比特深度除以8(一個字節是8比特)。 計算塊對齊的結果公式看起來像blockAlign = nChannels *(bitsPerSample / 8)。 對於16位立體聲格式=>2個通道* 2個字節= 4個字節。
  • 每秒平均字節數(Average Bytes per Second )- 主要用於分配內存,此測量等於採樣率*塊對齊。
參考資料來源:https://blogs.msdn.microsoft.com/dawate
參考資料來源:https://en.wikipedia.org/wiki/WAV

//==========================================================
//常見音樂數據格式(自己是看原文,以下來自google翻譯,若有不適請點最下方連結)
//==========================================================
.aac
國際標準。
文件可能包含原始數據(無容器),ADIF容器或ADTS(流式)容器。
文件包含MPEG-2 Part 7 AAC格式(AAC)格式的音頻數據,它只能由AAC編碼器或解碼器使用。
  AAC編碼的音頻也被MPEG-4使用,但在這種情況下出現與.m4a或.mp4擴展,並且通常使用不同的容器。
.ADIF和ADTS容器都不允許元(標籤)數據,但是一些代碼轉換器在音頻素材之前添加ID3幀,這樣的文件可能不是所有播放器可讀的。


 .aiff(.aif / .aifc)
Apple音頻交換文件格式標準。
 最新的AIFF規範是1989年,但是這有點令人困惑,因為有一個較新的AIFF-C(AIFF壓縮)規範約會從1990年/ 1991年。
  AIFF使用AIFF容器,但是在其基本形式中,這不允許元(標籤)數據的編碼或甚至編解碼器的選擇,
 因此假設其包含可以由AIFF編解碼器處理的未壓縮音頻(LPCM)數據。然而,
  使用.aiff擴展名的文件也可以是AIFF-C格式(有時他們使用.aifc擴展名),它提供了顯著的擴展。
  AIFF-C擴展格式允許COMM塊中的編解碼器類型字段。 AIFF文件被聲音專業人員廣泛使用。




  .flac(.fla)
xiph.org開放標準。指示在ogg容器中封裝(封裝)的FLAC(自由無損音頻編解碼器)音頻文件。
 Ogg容器提供對元(標籤)數據進行編碼的能力。由於這個文件類型使用ogg容器,它理論上可以包含其他格式,如Vorbis。
 所有Xiph.org編解碼器都是免版稅和開源的。 
 
 
  .m4a
國際標準(大多數)。
 定義容器格式為標準MP4,但內容為音頻(MP4可以支持音頻和視頻)。
 最常見的音頻格式是AAC或AAC +。這個名字很大程度上是由蘋果的iTunes。
  通常,擴展名為.m4a或.mp4的文件都可以由相同的播放器處理。
  因為.m4a文件使用標準MP4容器,所以提供了元(標籤)數據。
在某些情況下,擴展名為.m4a的文件可以包含使用蘋果公司的高級無損音頻編解碼器(ALAC)編碼的音頻數據,
  這種編解碼器在蘋果生態系統之外不被廣泛支持,並且這些文件通常無法在許多媒體播放器上播放。


  .m4p
將容器格式定義為標準MP4,但內容為僅音頻(MP4可支持音頻和視頻)並包含Apple的FairPlay數字版權管理(DRM)編碼。
 蘋果在2009年1月6日宣布所有音樂文件將被免費DRM,但FairPlay DRM將保留在電影和電視節目。


  .mp3
國際標準。沒有容器格式。文件包含MPEG-1/2音頻層3(MP3)格式的音頻數據,它只能由MP3編碼器或解碼器使用。
  MP3文件現在廣泛地包含用於諸如作者,藝術家等的元(標籤)數據的ID3標籤幀.ID3幀格式在打開時不是MPEG-1/2標準的一部分。
它被流行的需求所採用,並已成為在其他文件和容器類型中使用的事實標準。


  .mp4
國際標準。只定義容器格式 - 大量的音頻或視頻格式(編解碼器)可以出現在容器中。
  .mp4文件中包含的最常見的音頻格式是AAC或AAC +。為了消除僅包含音頻數據的文件,通常使用文件擴展名.m4a。
  有時,包含視頻的MP4文件被賦予extension.m4v
 
 
  .ogg
Xiph.org開放標準。表示在ogg容器中封裝(封裝)的vorbis音頻文件。
  Ogg容器提供對元(標籤)數據進行編碼的能力。
 由於這個文件類型使用ogg容器,它理論上可以包含其他格式,如FLAC。雖然通俗地稱為ogg文件或甚至ogg編解碼技術上ogg是容器和vorbis是編解碼器。
 所有Xiph.org編解碼器都是免版稅和開源的。 
 
 
 
  .opus
xiph.org開放標準。指示在ogg容器中封裝(包封)的Opus音頻文件。 
  Ogg容器提供對元(標籤)數據進行編碼的能力。由於這個文件類型使用ogg容器,它理論上可以包含其他格式,如Vorbis或FLAC。
  所有Xiph.org編解碼器都是免版稅和開源的。注意:Opus音頻數據格式由IETF(RFC 6716)定義。 
 
 
 .wav
IBM和Microsoft僅音頻標準。
  使用不包含元(標籤)數據的基本RIFF容器格式 - 雖然包括ID3標籤在內的各種組都添加了一些擴展。
  雖然文件可能包含各種格式的音頻數據,但是.wav文件的幾乎普遍使用是包含未壓縮的音頻數據。



資料來源:http://www.zytrax.com/tech/audio/formats.html

//=================================================================
//使用windows api 解析data chunk (待更新)連結
//==================================================================
0 0