媒體業(yè)務(wù)是網(wǎng)絡(luò)的主要業(yè)務(wù)之間。尤其移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)的興起,在運(yùn)營(yíng)商和應(yīng)用開(kāi)發(fā)商中,媒體業(yè)務(wù)份量極重,其中媒體的編解碼服務(wù)涉及需求分析、應(yīng)用開(kāi)發(fā)、釋放license收費(fèi)等等。最近因?yàn)轫?xiàng)目的關(guān)系,需要理清媒體的codec,比較搞的是,在豆丁網(wǎng)上看運(yùn)營(yíng)商的規(guī)范標(biāo)準(zhǔn),同一運(yùn)營(yíng)商同樣的業(yè)務(wù)在不同文檔中不同的要求,而且有些要求就我看來(lái)應(yīng)當(dāng)是歷史的延續(xù),也就是現(xiàn)在已經(jīng)很少采用了。所以豆丁上看不出所以然,從wiki上查。中文的wiki信息量有限,很短,而wiki的英文內(nèi)容內(nèi)多,刪減版也減肥得太過(guò)。我在網(wǎng)上還看到一個(gè)山寨的中文wiki,長(zhǎng)得很像,紅色的,叫“天下維客”。wiki的中文還是很不錯(cuò)的,但是閱讀后建議再閱讀英文。
我對(duì)媒體codec做了一些整理和總結(jié),資料來(lái)源于wiki,小部分來(lái)源于網(wǎng)絡(luò)博客的收集。網(wǎng)友資料我們將給出來(lái)源。如果資料已經(jīng)轉(zhuǎn)手幾趟就沒(méi)辦法,雁過(guò)留聲,我們只能給出某個(gè)軌跡。
基本概念
編解碼
編解碼器(codec)指的是一個(gè)能夠?qū)σ粋€(gè)信號(hào)或者一個(gè)數(shù)據(jù)流進(jìn)行變換的設(shè)備或者程序。這里指的變換既包括將信號(hào)或者數(shù)據(jù)流進(jìn)行編碼(通常是為了傳輸、存儲(chǔ)或者加密)或者提取得到一個(gè)編碼流的操作,也包括為了觀察或者處理從這個(gè)編碼流中恢復(fù)適合觀察或操作的形式的操作。編解碼器經(jīng)常用在視頻會(huì)議和流媒體等應(yīng)用中。
容器
很多多媒體數(shù)據(jù)流需要同時(shí)包含音頻數(shù)據(jù)和視頻數(shù)據(jù),這時(shí)通常會(huì)加入一些用于音頻和視頻數(shù)據(jù)同步的元數(shù)據(jù),例如字幕。這三種數(shù)據(jù)流可能會(huì)被不同的程序,進(jìn)程或者硬件處理,但是當(dāng)它們傳輸或者存儲(chǔ)的時(shí)候,這三種數(shù)據(jù)通常是被封裝在一起的。通常這種封裝是通過(guò)視頻文件格式來(lái)實(shí)現(xiàn)的,例如常見(jiàn)的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or*.tta. 這些格式中有些只能使用某些編解碼器,而更多可以以容器的方式使用各種編解碼器。
FourCC全稱(chēng)Four-CharacterCodes,是由4個(gè)字符(4bytes)組成,是一種獨(dú)立標(biāo)示視頻數(shù)據(jù)流格式的四字節(jié),在wav、avi檔案之中會(huì)有一段FourCC來(lái)描述這個(gè)AVI檔案,是利用何種codec來(lái)編碼的。因此wav、avi大量存在等于“IDP3”的FourCC。
視頻是現(xiàn)在電腦中多媒體系統(tǒng)中的重要一環(huán)。為了適應(yīng)儲(chǔ)存視頻的需要,人們?cè)O(shè)定了不同的視頻文件格式來(lái)把視頻和音頻放在一個(gè)文件中,以方便同時(shí)回放。視頻檔實(shí)際上都是一個(gè)容器里面 包裹著不同的軌道,使用的容器的格式關(guān)系到視頻檔的可擴(kuò)展性。
參數(shù)介紹
采樣率
采樣率(也稱(chēng)為采樣速度或者采樣頻率)定義了每秒從連續(xù)信號(hào)中提取并組成離散信號(hào)的采樣個(gè)數(shù),它用赫茲(Hz)來(lái)表示。采樣頻率的倒數(shù)叫作采樣周期或采樣時(shí)間,它是采樣之間的時(shí)間間隔。注意不要將采樣率與比特率(bit rate,亦稱(chēng)“位速率”)相混淆。
采樣定理表明采樣頻率必須大于被采樣信號(hào)帶寬的兩倍,另外一種等同的說(shuō)法是奈奎斯特頻率必須大于被采樣信號(hào)的帶寬。如果信號(hào)的帶寬是 100Hz,那么為了避免混疊現(xiàn)象采樣頻率必須大于200Hz。換句話說(shuō)就是采樣頻率必須至少是信號(hào)中最大頻率分量頻率的兩倍,否則就不能從信號(hào)采樣中恢復(fù)原始信號(hào)。
對(duì)于語(yǔ)音采樣:
在模擬視頻中,采樣率定義為幀頻和場(chǎng)頻,而不是概念上的像素時(shí)鐘。圖像采樣頻率是傳感器積分周期的循環(huán)速度。由于積分周期遠(yuǎn)遠(yuǎn)小于重復(fù)所需時(shí)間,采樣頻率可能與采樣時(shí)間的倒數(shù)不同。
當(dāng)模擬視頻轉(zhuǎn)換為數(shù)字視頻的時(shí)候,出現(xiàn)另外一種不同的采樣過(guò)程,這次是使用像素頻率。一些常見(jiàn)的像素采樣率有:
分辨率
分辨率,泛指量測(cè)或顯示系統(tǒng)對(duì)細(xì)節(jié)的分辨能力。此概念可以用時(shí)間、空間等領(lǐng)域的量測(cè)。日常用語(yǔ)中之分辨率多用于圖像的清晰度。分辨率越高代表圖像品質(zhì)越好,越能表現(xiàn)出更多的細(xì)節(jié)。但相對(duì)的,因?yàn)榧o(jì)錄的信息越多,文件也就會(huì)越大。目前個(gè)人電腦里的圖像,可以使用圖像處理軟件,調(diào)整圖像的大小、編修照片等。例如 photoshop,或是photoimpact等軟件。
圖像分辨率:
用以描述圖像細(xì)節(jié)分辨能力,同樣適用于數(shù)字圖像、膠卷圖像、及其他類(lèi)型圖像。常用'線每毫米'、'線每英吋'等來(lái)衡量。通常,“分辨率”被表示成每一個(gè)方向上的像素?cái)?shù)量,比如640x480等。而在某些情況下,它也可以同時(shí)表示成“每英吋像素”(pixels per inch,ppi)以及圖形的長(zhǎng)度和寬度。比如72ppi,和8x6英吋。
視頻分辨率:
各種電視規(guī)格分辨率比較視頻的畫(huà)面大小稱(chēng)為“分辨率”。數(shù)位視頻以像素為度量單位,而類(lèi)比視頻以水平掃瞄線數(shù)量為度量單位。標(biāo)清電視頻號(hào)分辨率為720/704/640x480i60(NTSC)或768/720x576i50(PAL/SECAM)。新的高清電視(HDTV)分辨率可達(dá)1920x1080p60,即每條水平掃瞄線有1920個(gè)像素,每個(gè)畫(huà)面有1080條掃瞄線,以每秒鐘60張畫(huà)面的速度播放。
畫(huà)面更新率fps
Framerate中文常譯為“畫(huà)面更新率”或“幀率”,是指視頻格式每秒鐘播放的靜態(tài)畫(huà)面數(shù)量。典型的畫(huà)面更新率由早期的每秒6或8張(frame persecond,簡(jiǎn)稱(chēng)fps),至現(xiàn)今的每秒120張不等。PAL (歐洲,亞洲,澳洲等地的電視廣播格式) 與 SECAM(法國(guó),俄國(guó),部分非洲等地的電視廣播格式) 規(guī)定其更新率為25fps,而NTSC (美國(guó),加拿大,日本等地的電視廣播格式)則規(guī)定其更新率為29.97fps。電影膠卷則是以稍慢的24fps在拍攝,這使得各國(guó)電視廣播在播映電影時(shí)需要一些復(fù)雜的轉(zhuǎn)換手續(xù)(參考Telecine轉(zhuǎn)換)。要達(dá)成最基本的視覺(jué)暫留效果大約需要10fps的速度。
壓縮方法
有損壓縮和無(wú)損壓縮
在視頻壓縮中有損(Lossy)和無(wú)損(Lossless)的概念與靜態(tài)圖像中基本類(lèi)似。無(wú)損壓縮也即壓縮前和解壓縮后的數(shù)據(jù)完全一致。多數(shù)的無(wú)損壓縮都采用RLE行程編碼算法。有損壓縮意味著解壓縮后的數(shù)據(jù)與壓縮前的數(shù)據(jù)不一致。在壓縮的過(guò)程中要丟失一些人眼和人耳所不敏感的圖像或音頻信息,而且丟失的信息不可恢復(fù)。幾乎所有高壓縮的算法都采用有損壓縮,這樣才能達(dá)到低數(shù)據(jù)率的目標(biāo)。丟失的數(shù)據(jù)率與壓縮比有關(guān),壓縮比越小,丟失的數(shù)據(jù)越多,解壓縮后的效果一般越差。此外,某些有損壓縮算法采用多次重復(fù)壓縮的方式,這樣還會(huì)引起額外的數(shù)據(jù)丟失。
幀內(nèi)壓縮和幀間壓縮
幀內(nèi)(Intraframe)壓縮也稱(chēng)為空間壓縮(Spatialcompression)。當(dāng)壓縮一幀圖像時(shí),僅考慮本幀的數(shù)據(jù)而不考慮相鄰幀之間的冗余信息,這實(shí)際上與靜態(tài)圖像壓縮類(lèi)似。幀內(nèi)一般采用有損壓縮算法,由于幀內(nèi)壓縮時(shí)各個(gè)幀之間沒(méi)有相互關(guān)系,所以壓縮后的視頻數(shù)據(jù)仍可以以幀為單位進(jìn)行編輯。幀內(nèi)壓縮一般達(dá)不到很高的壓縮。
采用幀間(Interframe)壓縮是基于許多視頻或動(dòng)畫(huà)的連續(xù)前后兩幀具有很大的相關(guān)性,或者說(shuō)前后兩幀信息變化很小的特點(diǎn)。也即連續(xù)的視頻其相鄰幀之間具有冗余信息,根據(jù)這一特性,壓縮相鄰幀之間的冗余量就可以進(jìn)一步提高壓縮量,減小壓縮比。幀間壓縮也稱(chēng)為時(shí)間壓縮(Temporalcompression),它通過(guò)比較時(shí)間軸上不同幀之間的數(shù)據(jù)進(jìn)行壓縮。幀間壓縮一般是無(wú)損的。幀差值(Framedifferencing)算法是一種典型的時(shí)間壓縮法,它通過(guò)比較本幀與相鄰幀之間的差異,僅記錄本幀與其相鄰幀的差值,這樣可以大大減少數(shù)據(jù)量。
對(duì)稱(chēng)編碼和不對(duì)稱(chēng)編碼
對(duì)稱(chēng)性(symmetric)是壓縮編碼的一個(gè)關(guān)鍵特征。對(duì)稱(chēng)意味著壓縮和解壓縮占用相同的計(jì)算處理能力和時(shí)間,對(duì)稱(chēng)算法適合于實(shí)時(shí)壓縮和傳送視頻,如視頻會(huì)議應(yīng)用就以采用對(duì)稱(chēng)的壓縮編碼算法為好。而在電子出版和其它多媒體應(yīng)用中,一般是把視頻預(yù)先壓縮處理好,爾后再播放,因此可以采用不對(duì)稱(chēng)(asymmetric)編碼。不對(duì)稱(chēng)或非對(duì)稱(chēng)意味著壓縮時(shí)需要花費(fèi)大量的處理能力和時(shí)間,而解壓縮時(shí)則能較好地實(shí)時(shí)回放,也即以不同的速度進(jìn)行壓縮和解壓縮。一般地說(shuō),壓縮一段視頻的時(shí)間比回放(解壓縮)該視頻的時(shí)間要多得多。例如,壓縮一段三分鐘的視頻片斷可能需要10多分鐘的時(shí)間,而該片斷實(shí)時(shí)回放時(shí)間只有三分鐘。
除wiki外的資料來(lái)源:http://tech.lmtw.com/csyy/Using/200411/3142.html
聯(lián)系客服