第三章 MP3 簡介
3.1 MP3 解碼原理
衍生產品之數位音樂儲存盒與原產品之數位照片儲存盒最主要功能上 的差別是在原產品功能中新加入MP3解碼功能,所以先將針對MP3解碼原理 加以介紹。MP3解碼器(MP3 Decoder)的工作原理是先接收經由任何MP3編
碼器(MP3 Encoder)所壓縮編碼過之MP3位元流(Bitstream);MP3位元流包含 檔頭(Header)、錯誤偵測碼(CRC)、附屬資料(Side Information)、主要資訊 (Main Data)及補充資訊(Ancillary Data),請參照圖表 5。
檔頭記錄著MP3位元流的相關資訊,其中的第16個位元將記載是否使 用錯誤偵測碼,若此位元為零(protection_bit=0)則於檔頭之後,將使用16位 元之錯誤偵測碼(crc_check);若為壹(protection_bit=1)則不使用錯誤偵測碼 [7];使用錯誤偵測碼將可以對檔頭進行錯誤偵測及修正,以避免因檔頭錯 誤而無法進行解碼資料的情形發生。
檔頭 32 bits
錯誤偵測碼 0 or 16 bits
附屬資料 136 or 256 bits
主要資訊 補充資訊
取材自:ISO/IEC 11172-3[7]
圖表 5 MPEG-1 Layer 3 位元流格式
附屬資料主要是存放還原量化及霍夫曼編碼相關資訊,所以在對主要 資訊做還原量化及霍夫曼解碼之前必須要先解出附屬資料中之相關資訊,
附屬資料的長度因單聲道與雙聲道而有所不同,單聲道的音訊需使用136位 元的附屬資料,雙聲道的音訊需使用256位元的附屬資料。
主要資訊儲存著比例因子(Scalefactor)和經過量化、位元分配與無失真 霍夫曼編碼( Huffman Encoding)後的音訊資料[20],詳細格式請參考圖表 6。
取材自:吳炳飛等著”Audio Coding 技術手冊-MP3 篇”[20]
圖表 6 主要資訊格式圖
MP3為了提高編碼時的壓縮率,因此在音訊量化之後又使用了無失真 且非固定長度的霍夫曼編碼,量化器將頻線分為三個區間,可以讓編碼器 依照不同的區間使用不同的霍夫曼表,請參考圖表 6 主 要 資 訊 格 式 圖,在高頻區間,編碼器將連續的零視為一個區間,稱為零區間(zero region),第二個區間稱為count1區間,是由一連串的0和1組成,此區間的霍 夫曼碼是以四個取樣為一組來查表,第三個區間為big_value區間,此區間 會出現較大的數值,所以霍夫曼表是以兩個量化後的頻線為一組來編碼,
而此區間可以再分成三個區間,端看各區間的最大數值來決定適合的霍夫 曼表[20]。
補充資訊為使用者定義區,使用者可存放歌曲名稱等自行定義的資訊 於此區之中。
MP3解碼器處理流程大致可分為四個功能區塊[12],也就是同步位元流 (Synchronization)功能區塊、解開編碼框(Frame Unpacking) 功能區塊、重建 (Reconstruction)和合成濾頻(Synthesis Filtering) 功能區塊,詳細資訊請參照 圖表 7。
取材自:Kim, Seonjoo, et al., Real Time MPEG1 Audio Encoder and Decoder…”[12]
圖表 7 MP3 解碼處理流程
同步位元流(Synchronization)功能區塊的主要功能是將輸入之編碼過後的 MP3位元流,依據檔頭及錯誤偵測碼進行同步及偵錯(Synchronization and Error Checking)的處理作業[16],檔頭格式請參照圖表 8。
取材自:吳炳飛等著”Audio Coding 技術手冊-MP3 篇”[20]
圖表 8 MPEG-1 Layer 3 檔頭格式
同步化參考標記(Syncword):連續12個位元,“1111 1111 1111”表示MP3歌曲 的開頭。
辨識碼(ID):1位元,“1”表示為MPEG-1 Audio,“0”為保留值。
指定編碼層(Layer):2位元,“11” 表示為Layer-1,“10” 表示為Layer-2,“01”
表示為Layer-3,“00” 表示為保留值。
錯誤偵測碼(Protection_bit):1位元,表示是否需要加上額外16位元的錯誤偵 測碼,可提供檔頭的錯誤偵測碼及修正,“1”表示不需要額外16位元的錯誤 偵測碼,“0”表示需要額外16位元的錯誤偵測碼。
位元傳輸率(Bit_rate_index):4位元,用來指定位元傳輸率,請參考圖表 9。
Bitrate Index Layer-1 Layer-2 Layer-3
‘0000’ free format free format free format
‘0001’ 32kbit/s 32kbit/s 32kbit/s
‘0010’ 64kbit/s 48kbit/s 40kbit/s
‘0011’ 96kbit/s 56kbit/s 48kbit/s
‘0100’ 128kbit/s 64kbit/s 56kbit/s
‘0101’ 160kbit/s 80kbit/s 64kbit/s
‘0110’ 192kbit/s 96kbit/s 80kbit/s
‘0111’ 224kbit/s 112kbit/s 96kbit/s
‘1000’ 256kbit/s 128kbit/s 112kbit/s
‘1001’ 288kbit/s 160kbit/s 128kbit/s
‘1010’ 320kbit/s 192kbit/s 160kbit/s
‘1011’ 352kbit/s 224kbit/s 192kbit/s
‘1100’ 384kbit/s 256kbit/s 224kbit/s
‘1101’ 416kbit/s 320kbit/s 256kbit/s
‘1110’ 448kbit/s 384kbit/s 320kbit/s
取材自:ISO/IEC 11172-3[7]
圖表 9 位元傳輸對照表
取樣頻率(Sampling frequency):2位元,用來指定這首歌的取樣率,“00” 表 示為44.1kHz,“01” 表示為48kHz,“10” 表示為32kHz,“00” 表示為保留值。
填塞位元(Padding bit):1位元,只有在取樣頻率為44.1kHz時需要用到填塞 位元,使得每個編碼框可用來對音樂訊號編碼的位元數為8的倍數,使其可 以為位元組(bytes)為單位。
私密位元(Private bit):1位元,可用作私人用途,但ISO未來版本已不作使用。
音訊模式(Mode):2位元,“00” 表示為立體聲(stereo),“01” 表示為雙聲合 一(joint_stereo),“10” 表示對偶聲式(dual_channel),“00” 表示為單聲式 (single_channel)。
模式延伸(Mode extension):2位元,在第三層編碼中用來標記使用何種雙聲
合一(joint_stereo)的模式。
版權(copyright):1位元,“0”表示為此位元流沒有版權限制,“1” 表示為此 位元流有版權限制。
原版/拷貝版(Orignal/Home):1位元,“0”表示此位元流是拷貝過的版本,“1”
表示此位元流是原版。
加強模式(Emphasis):2位元,指定加強模式,“00” 表示為無加強,“01” 表 示為50/15 microsec.加強模式,“10” 表示保留值,“11” 表示為CCITT J.17 加強模式。
解開編碼框(Frame Unpacking) 功能區塊的主要功能是解譯MP3位元流中 之檔頭(Header)及附屬資訊資料(Side Information),同時依據針附屬資訊資 料中之資訊對主要資訊(Main Data)中之資料進行解碼;主要資訊包含編碼過 的霍夫曼碼及比例因子資訊,本區塊功能是將位元流中所包含的霍夫曼碼 (Huffman code)依據霍夫曼資訊(Huffman Information)進行解碼,同時也對比 例因子資訊(Scalefactor Information)進行解碼,MP3位元流格式請參考圖表 10,它為MP3位元流Layer-3的一個範例,這個範例中可以發現,一個編碼 框的主要資訊資料量大時則它的主要資訊可以跨越到其他的編碼框如編碼 框3。
取材自:Salomonsen, K.等著” Design and Implementation of an MPEG/Audio layer III …”[16]
圖表 10 MP3 位元流範例圖
重建(Reconstruction)功能區塊的主要功能是將解開後之位元流資訊,進行 還原量化(Inverse Quantization)、如有必要時進行之位元重組(Reordering)、
雙聲合一立體聲(Joint Stereo Decoding)解碼處理、降低失真(Alias Reduction) 處理、改良型餘弦反轉換(IMDCT)處理作業及頻域與時域轉換(Frequency Inversion),細部資料請參照圖表 11流程區塊圖[16]。
合成濾頻(Synthesis Filtering) 功能區塊的主要功能是多相合成濾頻器 (Synthesis Polyphase Filter bank) 之處理程序,最後合成輸出PCM格式之音 樂資料位元流,細部資料請參照圖表 11流程區塊圖。如欲獲得更詳盡之技 術資料請參考[16]。
取材自:Salomonsen, K.等著” Design and Implementation of an MPEG/Audio layer III …”[16]
圖表 11 MP3 解碼細部流程區塊圖
當接受輸入之編碼過的MP3位元資料流,經由上述MP3四大解碼功能區塊處 理完畢之後,則將MP3編碼位元資料流解碼還原成PCM格式,以PCM音樂 輸出資料即可進行音樂播放。