亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: mp3: joint stereo & header frame [打印本頁]

作者: chg.s    時間: 2007-02-23 12:14
標題: mp3: joint stereo & header frame
The joint stereo effect
不少人曾經(jīng)有機會在聆聽立體聲的時候用上一個亞低音揚聲器(實際上絕大多數(shù)質(zhì)量較好的計算機揚聲器都包括了兩個,或者四個,輔助揚聲器,以及一個獨立的亞
低音揚聲器)。也許你已經(jīng)注意到了,主揚聲器以外的輔助揚聲器對產(chǎn)生高質(zhì)量的聲音是很重要的;但是亞低音揚聲器就不怎么受重視——亞低音揚聲器經(jīng)常被塞在
桌子底下,沙發(fā)后頭,甚至是和起居室的家具集成在一起了。這樣做對聲音質(zhì)量的影響很小,因為人耳朵對于高頻低頻聲音很不敏感。
一個立體聲mp3聲音文件的大小,理論上,應(yīng)該是同比特率的一個單聲道m(xù)p3文件的兩倍。但是如果考慮到,我們可以把左右兩個聲道的高頻部分進行一定的合
并,放到其中某一個聲道的數(shù)據(jù)中,那樣我們就可以讓文件變得小一些。在編碼的時候,很多編碼器都支持的”joint
stereo”就是這個意思。反正我們也聽不出高頻聲音到底是哪個喇叭發(fā)出來的,那就沒必要把這些數(shù)據(jù)分別在兩個聲道的數(shù)據(jù)中重復(fù)保存。
有些高級音響發(fā)燒友會說,低頻聲音并不是完全沒有方向感的,只不過和中頻高頻聲音相比,低頻聲音的方向感沒有那么強。要聽出這種效果,那么這個人的耳朵一
定受到過相當程度的訓練,對這樣一個耳朵來說,恐怕已經(jīng)不會滿足于mp3的音質(zhì)了。當joint
stereo選項被打開的時候,聲音文件中會被加入一些信息,用于引導播放器在播放過程中盡量地模擬這些聲音的空間效果。并且注意,joint
stereo編碼模式在某些情況下會帶來一些聲音被擠壓的效果,單純增高壓縮使用的比特率并不能解決這個問題,如果你覺得這些副作用讓你不滿意,只有關(guān)閉
joint stereo選項之后重新壓縮。
MP3文件的結(jié)構(gòu)
Inside the Header Frame
前面提到過,mp3文件被分割為很多很多的“幀”,每一個幀包含的聲音數(shù)據(jù)能夠播放很短很短的時間,大概是一秒的幾分之一。每一個數(shù)據(jù)幀前面都有一個“幀頭幀”,幀頭保存了32個比特的“元數(shù)據(jù)”,描述的是緊隨其后的數(shù)據(jù)幀的一些信息。幀頭的格式是
AAAA AAAA AAAB BCCD EEEE FFGH IIJJ KLMM,其中包含了下面13個域:
AAAA: Frame sync
B: MPEG audio version
C: MPEG Layer
D: protection bit. if on, checksum follows header
E: Bitrate index
F: Sampling rate frequency index
G: padding bit, on or off, compensates for unfilled frames
H: private bit, on or off, allows for application-specific triggers
I: Channel Mode: stereo, joint stereo, dual channel, single channel
J: Mode extension: used only with joint stereo, to conjoin channel data
K: copyright: on or off
L: original: off if copy of original, on if original.
M: Emphasis: respects emphasis bit in the original recording; now obsolete.
Mp3幀頭幀開始處是一個11bit的“同步”塊。Mp3播放器可以通過搜尋第一個同步塊,鎖定到第一個有效數(shù)據(jù)幀上,以便開始播放。在你拖動播放器的進
度滑塊,向前或者向后跳躍的時候,以及播放時跳過文件頭部的ID3數(shù)據(jù)等非音頻數(shù)據(jù)的時候,同步塊都會起作用。當然,mp3播放器不能隨便拿來一個文件,
只要在其中找到一個合法的同步塊就認為這個文件是一個合法的mp3文件。因為從理論上講,同步塊這11bit的模式可能出現(xiàn)在任何隨機的二進制文件中。因
此播放器還必須檢查幀頭中的其它數(shù)據(jù)是否合法,和/或檢測前后是否出現(xiàn)了多個合法的mp3幀。
    Locking onto the Data Stream
如何鎖定mp3數(shù)據(jù)流
Mp3的一個設(shè)計初衷是讓它適合于廣播。因此任何mp3數(shù)據(jù)流的任何接受方,必須能夠以一個mp3數(shù)據(jù)流中的任何一點為起點,有效地鎖定到這個數(shù)據(jù)流上。
我們之所以在每個數(shù)據(jù)幀前面都需要一個幀頭,很大程度上是因為這個原因。有趣的是,理論上說,這個設(shè)計使得我們可以有效地將一個mpeg文件分割為任意的
若干段,然后隨便地、獨立地播放其中任何一段。但是實際上,對layer
III的mpeg文件(就是mp3)來說,這是做不到的,因為mp3文件中一個數(shù)據(jù)幀的數(shù)據(jù),常常對同一文件中的其它數(shù)據(jù)幀的數(shù)據(jù)有依賴關(guān)系:還記得我們
說過,mp3編碼器在某一幀的空間不夠用的時候,會拆東墻補西墻吧?
緊跟在同步塊之后的是一個叫做ID的bit,這個bit說明文件壓縮的標準是mpeg-1還是mpeg-2。之后是兩個bit的“l(fā)ayer”參數(shù),決定
該幀的編碼方式是layer I, layer II, layer III還是“未定義”。如果protection
bit是1,聲音數(shù)據(jù)前面會被塞入一個16bit的校驗和,保證數(shù)據(jù)完整性。
Bitrate不用說了,之后是抽樣頻率,從16KHZ到44100HZ,這依賴于我們使用的是mpeg-1還是mpeg-2。Padding
bit用于保證每個frame都精確地滿足指定的比特率,例如一個128kbps layer
II,抽樣頻率44.1KHZ的比特流中,有的幀可能有417字節(jié),有的則可能有418字節(jié)。那些417字節(jié)的幀的padding
bit會被設(shè)置為1,以便補償幀長度的不同。
Mode指的是該幀是單聲道還是立體聲,如果使用joint stereo,緊跟在后面的mode extension會告訴解碼器一些附加的細節(jié),例如不同聲道的高頻分量是不是被合并了。
Copyright
bit并不是用來保存版權(quán)信息的(只有一個bit,顯然不夠),這個bit用來模擬CD和DAT文件中一個類似的關(guān)于版權(quán)的bit的。如果這個bit是
1,那么拷貝這個音軌就是違法的。如果數(shù)據(jù)是被保存在其原始媒介上,home bit就是1。Private
bit用于某些特定的應(yīng)用程序中來觸發(fā)一些特定的事件。Emphasis域被用作一個標志,當原始錄音中一個對應(yīng)的“emphasis
bit”被設(shè)置的時候,mp3文件中的這個標志也被設(shè)置為1,這個標志現(xiàn)在已經(jīng)很少被使用了。最后,解碼器會在幀頭部后面讀到校驗和(如果幀頭部中的
protection bit是1),校驗和之后就是真正的數(shù)據(jù)幀了。
上述過程會對一個mp3文件中成千上萬的幀反復(fù)重復(fù)。如果需要知道m(xù)p3幀頭的細節(jié),以及幀頭中的上述各個域中的合法取值及其意義,包括各種查找表等詳細信息,請參考www.mp3tech.org。如果需要馬上開始做些實際工作,可以看看www.iso.ch的內(nèi)容。
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/13667/showart_249072.html




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2