编解码器的详细介绍
媒體業務是網絡的主要業務之間。尤其移動互聯網業務的興起,在運營商和應用開發商中,媒體業務份量極重,其中媒體的編解碼服務涉及需求分析、應用開發、釋放license收費等等。最近因為項目的關系,需要理清媒體的codec,比較搞的是,在豆丁網上看運營商的規范 標準,同一運營商同樣的業務在不同文檔中不同的要求,而且有些要求就我看來應當是歷史的延續,也就是現在已經很少采用了。所以豆丁上看不出所以然,從 wiki上查。中文的wiki信息量有限,很短,而wiki的英文內容內多,刪減版也減肥得太過。我在網上還看到一個山寨的中文wiki,長得很像,紅色的,叫“天下維客”。wiki的中文還是很不錯的,但是閱讀后建議再閱讀英文。
我對媒體codec做了一些整理和總結,資料來源于wiki,小部分來源于網絡博客的收集。網友資料我們將給出來源。如果資料已經轉手幾趟就沒辦法,雁過留聲,我們只能給出某個軌跡。
基本概念
編解碼
編解碼器(codec)指的是一個能夠對一個信號或者一個數據流進行變換的設備或者程序。這里指的變換既包括將 信號或者數據流進行編碼(通常是為了傳輸、存儲或者加密)或者提取得到一個編碼流的操作,也包括為了觀察或者處理從這個編碼流中恢復適合觀察或操作的形式的操作。編解碼器經常用在視頻會議和流媒體等應用中。
容器
很多多媒體數據流需要同時包含音頻數據和視頻數據,這時通常會加入一些用于音頻和視頻數據同步的元數據,例如字幕。這三種數據流可能會被不同的程序,進程或者硬件處理,但是當它們傳輸或者存儲的時候,這三種數據通常是被封裝在一起的。通常這種封裝是通過視頻文件格 式來實現的,例如常見的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta. 這些格式中有些只能使用某些編解碼器,而更多可以以容器的方式使用各種編解碼器。
FourCC全稱Four-Character Codes,是由4個字符(4 bytes)組成,是一種獨立標示視頻數據流格式的四字節,在wav、avi檔案之中會有一段FourCC來描述這個AVI檔案,是利用何種codec來 編碼的。因此wav、avi大量存在等于“IDP3”的FourCC。
視頻是現在電腦中多媒體系統中的重要一環。為了適應儲存視頻的需要,人們設定了不同的視頻文件格式來把視頻和音頻放在一個文件中,以方便同時回放。視頻檔實際上都是一個容器里面包裹著不同的軌道,使用的容器的格式關系到視頻檔的可擴展性。
參數介紹
采樣率
采樣率(也稱為采樣速度或者采樣頻率)定義了每秒從連續信號中提取并組成離散信號的采樣個數,它用赫茲(Hz)來表示。采樣頻率的倒數叫作采樣周期或采樣時間,它是采樣之間的時間間隔。注意不要將采樣率與比特率(bit rate,亦稱“位速率”)相混淆。
采樣定理表明采樣頻率必須大于被采樣信號帶寬的兩倍,另外一種等同的說法是奈奎斯特頻率必須大于被采樣信號的帶寬。如果信號的帶寬是 100Hz,那么為了避免混疊現象采樣頻率必須大于200Hz。換句話說就是采樣頻率必須至少是信號中最大頻率分量頻率的兩倍,否則就不能從信號采樣中恢復原始信號。
對于語音采樣:
- 8,000 Hz - 電話所用采樣率, 對于人的說話已經足夠
- 11,025 Hz
- 22,050 Hz - 無線電廣播所用采樣率
- 32,000 Hz - miniDV 數碼視頻 camcorder、DAT (LP mode)所用采樣率
- 44,100 Hz - 音頻 CD, 也常用于 MPEG-1 音頻(VCD, SVCD, MP3)所用采樣率
- 47,250 Hz - Nippon Columbia (Denon)開發的世界上第一個商用 PCM 錄音機所用采樣率
- 48,000 Hz - miniDV、數字電視、DVD、DAT、電影和專業音頻所用的數字聲音所用采樣率
- 50,000 Hz - 二十世紀七十年代后期出現的 3M 和 Soundstream 開發的第一款商用數字錄音機所用采樣率
- 50,400 Hz - 三菱 X-80 數字錄音機所用所用采樣率
- 96,000 或者 192,000 Hz - DVD-Audio、一些 LPCM DVD 音軌、Blu-ray Disc(藍光盤)音軌、和 HD-DVD (高清晰度 DVD)音軌所用所用采樣率
- 2.8224 MHz - SACD、 索尼 和 飛利浦 聯合開發的稱為 Direct Stream Digital 的 1 位 sigma-delta modulation 過程所用采樣率。
在模擬視頻中,采樣率定義為幀頻和場頻,而不是概念上的像素時鐘。圖像采樣頻率是傳感器積分周期的循環速度。由于積分周期遠遠小于重復所需時間,采樣頻率可能與采樣時間的倒數不同。
- 50 Hz - PAL 視頻
- 60 / 1.001 Hz - NTSC 視頻
當模擬視頻轉換為數字視頻的時候,出現另外一種不同的采樣過程,這次是使用像素頻率。一些常見的像素采樣率有:
- 13.5 MHz - CCIR 601、D1 video
分辨率
分辨率,泛指量測或顯示系統對細節的分辨能力。此概念可以用時間、空間等領域的量測。日常用語中之分辨率多用于圖像的清晰度。分辨率越高代表圖像品質越好,越能表現出更多的細節。但相對的,因為紀錄的信息越多,文件也就會越大。目前個人電腦里的圖像,可以使用圖像 處理軟件,調整圖像的大小、編修照片等。例如 photoshop,或是photoimpact等軟件。
圖像分辨率?:
用以描述圖像細節分辨能力,同樣適用于數字圖像、膠卷圖像、及其他類型圖像。常用'線每毫米'、 '線每英吋'等來衡量。通常,“分辨率”被表示成每一個方向上的像素數量,比如640x480等。而在某些情況下,它也可以同時表示成“每英吋像素” (pixels per inch,ppi)以及圖形的長度和寬度。比如72ppi,和8x6英吋。
視頻分辨率?:
各種電視規格分辨率比較視 頻的畫面大小稱為“分辨率”。數位視頻以像素為度量單位,而類比視頻以水平掃瞄線數量為度量單位。標清電視頻號分辨率為 720/704/640x480i60(NTSC)或768/720x576i50(PAL/SECAM)。新的高清電視(HDTV)分辨率可達 1920x1080p60,即每條水平掃瞄線有1920個像素,每個畫面有1080條掃瞄線,以每秒鐘60張畫面的速度播放。
畫面更新率fps
Frame rate中文常譯為“畫面更新率”或“幀率”,是指視頻格式每秒鐘播放的靜態畫面數量。典型的畫面更新率由早期的每秒6或8張(frame persecond,簡稱fps),至現今的每秒120張不等。PAL (歐洲,亞洲,澳洲等地的電視廣播格式) 與 SECAM (法國,俄國,部分非洲等地的電視廣播格式) 規定其更新率為25fps,而NTSC (美國,加拿大,日本等地的電視廣播格式) 則規定其更新率為29.97 fps。電影膠卷則是以稍慢的24fps在拍攝,這使得各國電視廣播在播映電影時需要一些復雜的轉換手續(參考Telecine轉換)。要達成最基本的視覺暫留效果大約需要10fps的速度。
壓縮方法
有損壓縮和無損壓縮
在視頻壓縮中有損(Lossy )和無損(Lossless)的概念與靜態圖像中基本類似。無損壓縮也即壓縮前和解壓縮后的數據完全一致。多數的無損壓縮都采用RLE行程編碼算法。有損 壓縮意味著解壓縮后的數據與壓縮前的數據不一致。在壓縮的過程中要丟失一些人眼和人耳所不敏感的圖像或音頻信息,而且丟失的信息不可恢復。幾乎所有高壓縮的算法都采用有損壓縮,這樣才能達到低數據率的目標。丟失的數據率與壓縮比有關,壓縮比越小,丟失的數據越多,解壓縮后的效果一般越差。此外,某些有損壓 縮算法采用多次重復壓縮的方式,這樣還會引起額外的數據丟失。
- 無損格式,例如WAV,PCM,TTA,FLAC,AU,APE,TAK,WavPack(WV)
- 有損格式,例如MP3,Windows Media Audio(WMA),Ogg Vorbis(OGG),AAC
幀內壓縮和幀間壓縮
幀內(Intraframe)壓縮也稱為空間壓縮 (Spatial compression)。當壓縮一幀圖像時,僅考慮本幀的數據而不考慮相鄰幀之間的冗余信息,這實際上與靜態圖像壓縮類似。幀內一般采用有損壓縮算法,由于幀內壓縮時各個幀之間沒有相互關系,所以壓縮后的視頻數據仍可以以幀為單位進行編輯。幀內壓縮一般達不到很高的壓縮。
采用幀間(Interframe)壓縮是基于許多視頻或 動畫的連續前后兩幀具有很大的相關性,或者說前后兩幀信息變化很小的特點。也即連續的視頻其相鄰幀之間具有冗余信息,根據這一特性,壓縮相鄰幀之間的冗余量就可以進一步提高壓縮量,減小壓縮比。幀間壓縮也稱為時間壓縮(Temporalcompression),它通過比較時間軸上不同幀之間的數據進行壓縮。幀間壓縮一般是無損的。幀差值(Frame differencing)算法是一種典型的時間壓縮法,它通過比較本幀與相鄰幀之間的差異,僅記錄本幀與其相鄰幀的差值,這樣可以大大減少數據量。
對稱編碼和不對稱編碼
對稱性(symmetric)是壓縮編碼的一個關鍵特 征。對稱意味著壓縮和解壓縮占用相同的計算處理能力和時間,對稱算法適合于實時壓縮和傳送視頻,如視頻會議應用就以采用對稱的壓縮編碼算法為好。而在電子出版和其它多媒體應用中,一般是把視頻預先壓縮處理好,爾后再播放,因此可以采用不對稱(asymmetric)編碼。不對稱或非對稱意味著壓縮時需要花費大量的處理能力和時間,而解壓縮時則能較好地實時回放,也即以不同的速度進行壓縮和解壓縮。一般地說,壓縮一段視頻的時間比回放(解壓縮)該視頻的時間 要多得多。例如,壓縮一段三分鐘的視頻片斷可能需要10多分鐘的時間,而該片斷實時回放時間只有三分鐘。
總結
- 上一篇: [css] 如何让背景图片固定不随滚动
- 下一篇: [css] 怎么使图片宽度自适应呢?