概述
AIFF是音頻交換檔案格式(AudioInterchangeFileFormat)的英文縮寫,AIFF是一種檔案格式存儲的數字音頻(波形)的數據。AIFF支持各種比特決議,採樣率和音頻通道。是Apple公司開發的一種聲音檔案格式,被Macintosh平台及其套用程式所支持,NetscapeNavigator瀏覽器中的LiveAudio支持AIFF格式,SGI及專業音頻軟體包都支持AIFF格式。AIFF套用於個人電腦及其它電子音響設備以存儲音樂數據。AIFF是Apple蘋果電腦上面的標準音頻格式,屬於QuickTime技術的一部分。
數據結構
AIFF格式是一個C語言將被用來描述數據結構的檔案。AIFF的常數在十進制值的一連串的數字,例如:123,0,100都是小數。AIFF的常數在十六進制位值之前加上0x-例如:0x0a,0x1,0x64。數據類型:
計算方式:
typedefstruct{
IDckID;/*chunkID*/
longckSize;/*chunkSize*/
charckData[];/*data*/
}Chunk;
1、char類型:8個位元組。一個char類型可以包含的不僅僅是ASCII字元。它可以包含任意數量從128至127位
2、unsigned char類型:8個位元組,無符號。包含任何數量從零發展到255位。
3、短型:16個位元組,包含任何數目從32768到32767位。
4、長型:32個位元組,包含任何數目從2147483648到2147483647位。
5、ID:32位的串連四個列印ASCII字元,不能先印刷字元,不允許尾隨空格,禁止控制字元。
6、OS類型:32位。串連四個字元。
數據組織:
AIFF檔案所有數據都存儲在endian的格式,位元組多位元組值是儲存與高階(即最重要的)第一個位元組。
檔案結構
AIFF檔案一個收集了不同類型的塊的格式,當中有一個需要共同大塊其中包含重要的參數描述的聲波,如:AIFF檔案的長度和採樣率。AIFF檔案聲音數據塊,其中包含的實際波形數據,如果波形數據長度大於0(即實際上是波形數據的形式)。在其他可選塊都是界定標誌,列出儀器參數,存儲應用程式特定的信息。所有申請使用形式AIFF格式必須能夠讀取所需的2塊,並可以選擇有選擇地忽略可選塊。沒有任何限制的命令塊內的一種形式AIFF格式。最小的AIFF格式的檔案,由一個單一的形式AIFF格式含有所需的2塊,一個共同的大塊和健全的數據塊組成。採樣點和採樣幀
AIFF採樣點和採樣幀樣本點的相當於樣品一個健全的某一時刻。每個樣本點都被保存為一個線性,2's補值可從1到32位全(所確定的samplesize領域中的共同塊)。如:每個樣本點的一個8位的波形將是一個8位位元組。因為大多數CPU的讀寫作業處理的8位位元組,這是決定一個樣本點應該是四捨五入的大小這是一個多8時,存儲在AIFF格式。這使得AIFF格式更容易閱讀到記憶體中。
如果AIFF檔案的ADC產生一個採樣點從1到8位全,一個採樣點應存放在一個AIFF格式作為一個8位位元組。如果AIFF檔案的ADC產生一個採樣點從9至16位寬,一個採樣點應存放在一個AIFF格式作為一個16位位元組。如果AIFF檔案的ADC產生一個採樣點從17日至24位元寬,抽樣點應存放在一個AIFF格式三個位元組。如果AIFF檔案的ADC產生一個採樣點從25到32位全,一個採樣點應存放在一個AIFF格式為32位。
此外,數據位應該是左對齊,與任何剩餘位清零。如:在12位的採樣點下必須被保存為一個16位字。這些12位應該是左對齊,並位0至3應設定為0。
為多聲道的聲音(例如,一個立體聲波形),單從採樣點的每個通道交錯。假定一個立體聲(即第2通道)波形。不是儲存的所有採樣點的左聲道,然後儲存的所有採樣點的右聲道未來,“組合”的兩個頻道採樣點在一起。要將存儲第一個樣本點的左聲道,儲存第二採樣點在左側通道。
主塊
AIFF的主塊描述基本參數的波形數據,如採樣率,位解析度,以及如何多渠道的數字音頻存儲的形式AIFF格式。定義CommonID 通信/*chunkid 共同大塊*/
typedef結構(
chunkid;
chunksize;
numchannels;
numsampleframes;
samplesize;
samplerate;
)commonchunk;
在chunksize領域的位元組數的大塊。這還不包括8個位元組使用的ID和大小領域。為了共同的大塊,chunksize始終1長度18因為沒有領域的可變長度(但保持兼容性與未來可能的擴展,如果chunksize是18,這些額外的位元組作為墊位元組)。numchannels包含一些音頻通道的聲音。值為1意味著單聲道聲音,2指立體聲,4是指四個聲道等等任何數目的音頻通道均可作為代表參加。為多聲道的聲音,單一樣本點從每個通道都交錯。實際波形數據存儲在另一大塊,聲音數據塊。numsampleframes包含一些示例框架。這不一定是相同的位元組數,也沒有一些採樣點的聲音數據塊(除非處理一個單一的波形)。在samplesize是位數在每個樣本點,可以是任何數目從1到32。samplerate在採樣率上的聲音是要發揮在樣本幀每秒。
聲音數據塊
聲音數據塊包含實際的抽樣框
計算方式
#defineCommonID'COMM'/*ckIDforCommonChunk*/
typedefstruct{
IDckID;
longckSize;
shortnumChannels;
unsignedlongnumSampleFrames;
shortsampleSize;
extendedsampleRate;
}CommonChunk;
採樣點數據塊
每個樣本點的抽樣框是一種線性,2的補充價值。樣本點是從1到32位元寬,所確定的sampleSize參數共同塊。樣本點都儲存在一個不可分割的連續位元組。之一8位全樣本點都存儲在一個位元組,9至16位寬度的樣本點都儲存在兩個位元組,17至24位寬度的樣本點都儲存在第3位元組,和25至32位的全樣本保存在4位元組。當寬度的採樣點小於多種8位,樣本點數據是離開的理由,其餘位清零。一個例子說明了情況如下。一個由12位採樣點,儲存離開兩個位元組。其餘位設定為0。
抽樣框數據塊
樣本幀存儲contiguously為了增加時間。樣本點的抽樣框包裝在一起,不存在未使用的位元組之間。同樣,抽樣框包裝在一起,沒有墊位元組。
標記塊
標記塊包含標記,職位的聲音數據。標記可用於何種用途的數據申請。
計算方式:
typedefstruct{
MarkerIdid;
unsignedlongposition;
pstringmarkerName;
}Marker;
ID是唯一識別的標記內表格AIFF格式。的ID可以是任何積極的非零整數,只要沒有其他標記在同一個表格AIFF格式具有相同的編號。
標記塊格式如下所示:
#defineMarkerID'MARK'/*ckIDforMarkerChunk*/
typedefstruct{
IDckID;
longckSize;
unsignedshortnumMarkers;
MarkerMarkers[];
}MarkerChunk;
相關詞條
音頻和視頻格式
多媒體(音頻/視頻)技術隨著人們不斷增加的需求而進入了資訊時代,並且得到了迅猛發展。大量信息的音視頻數據被廣泛使用。音頻信號的數位化、網路化傳輸與處理成了眾多致力於發展多媒體技術的公司爭相研究的課題。 |