“高清”,就是高清晰度,是相對于“標清”(即標準清晰度)而言的,主要是指高清晰度的視頻媒體,高清技術的發(fā)展,越來越多的人接觸到高清,現在網絡上是鋪天蓋地的高清視頻資源,高清電視、高清電影、高清 MTV 等等。 一、常見的高清視頻的編碼及封裝格式 對于高清視頻來說,主流的編碼技術目前主要有 MPEG-2、DivX、XVID、H264/AVC、VC-1、RMVB 和 WMV-HD 等等。其中,H264/AVC、VC-1、MPEG-2 是藍光(Blu-ray Disc)所選擇的編碼格式,也是目前最流行的高清視頻編碼格式。另外就是高清視頻的封裝格式,封裝格式和編碼格式是互相區(qū)別的,許多人會把它們混淆。 1、H264/X264/AVC 編碼格式 絕大多數視聽玩家對于 H264 編碼都不會感到陌生,H264 編碼的身世顯赫,是 ITU-T(國際電信聯盟視頻編碼專家組)與 ISO/IEC(國際標準化組織動態(tài)圖像專家組)合作組成的 JVT(聯合視頻組)推動的新一代數字視頻編碼標準,也稱為 MPEG-4/AVC 編碼。H264 編碼依托雄厚的背景,在技術上獨樹一幟,大幅領先于其它編碼算法。 X264 編碼,是 H264 編碼的一個開源分支,它符合 H264 標準,其功能在于編碼,而不作為解碼器使用,X264 編碼最大的特點在于注重實用,它在不明顯降低編碼性能的前提下,努力降低編碼的計算復雜度,X264 對于 H264 編碼中的一些復雜編碼特性做了折衷處理,其壓縮視頻體積小于 XVID(MPEG-4)編碼視頻,以小體積、高畫質的特點得到了廣泛認可。 2、MPEG-2 編碼格式 MPEG-2 編碼標準是由 MPEG(Moving Picture Experts Group)工作組發(fā)布的視頻與音頻壓縮國際標準。MPEG-2 編碼于 1994 年發(fā)布,常用于廣播信號(衛(wèi)星電視、有線電視)的視頻和音頻編碼,經過后期不斷修改,不僅成為 DVD 的核心技術,還應用于 HDTV 高清電視傳輸。 3、VC-1 編碼格式 WMV(Windows Media Video)作為經久不衰的一種視頻編碼,一直在不斷改進,2003 年,微軟基于 WMV 第九版(WMV9)編碼技術,正式提出了 VC-1 編碼標準,并于 2006 年正式成為國際標準。VC-1 編碼作為較晚推出的高清編碼算法,自然吸收了 MPEG-2 與 H264 編碼的優(yōu)點,其壓縮比介于 MPEG2 和 H264 之間,編解碼復雜性僅有 H264 的一半,即壓縮時間更短、解碼計算更小,在微軟的大力推動下,VC-1 編碼已經得到了 BD 藍光光盤、電影及電視學會(SMPTE)的支持。 近幾年來,為了更好的推廣 WMV9/VC-1 編碼標準,微軟不遺余力的建立了 WMV-HD 高清資源站點,大量發(fā)布采用 VC-1 編碼壓制的 720P、1080P 宣傳片及演示片(WMV-HD 視頻格式) ,試圖營造聲勢,吸引用戶關注。不過,中庸的技術(與 H264 相比無明顯編碼優(yōu)勢)、封閉的平臺(限于 Windows 系統)、后發(fā)的劣勢(2006 年通過成為國際標準)仍然給微軟 VC-1 編碼的應用前景帶來了較大的不確定性。 4、高清視頻的封裝格式 封裝格式其實是一個“容器”,它不同于編碼格式,封裝就相當于捆綁打包,將已經編碼好的視頻文件和音軌文件打包在一起,并按照一定規(guī)則建立排序和索引,便于播放器或播放軟件來索引播放。常見的封裝格式有 MKV、AVI、MOV、TS、PS 等等,高清媒體文件的后綴名(擴展文件名)一般都是媒體的封裝格式。 ?。?)MOV 格式:MOV 多見于 Apple QuickTime 網站上的電影預告片。MOV 類似于 RMVB,過于封閉自守,民間制作組沒有人會用這個不方便的形式。 二、高清視頻的播放組件及調用流程 視頻文件的解碼過程如下依次需要用到的組件有“分離器”、“解碼器”、“渲染器”,它們統稱為“濾鏡”。 1、分離器(Splitter) 要正確地播放多媒體文件(不管是否高清媒體文件),播放器首先要正確地調用分離器,把視頻流和(或)音頻流正確地分離出來,然后交給解碼器進行解碼,這就是分離器的使命。上文中說到有不少的封裝格式,每一種封裝格式都必須有相對應一種分離器,才能正確的把視頻和音頻分離出來以供解碼器解碼。 常用的分離器有:Gabest MPEG Splitter(Media Player Classic 作者編寫的分離器)、KMP Splitter(KMPlayer 原配的分離器)、Haili Media Splitter 等等,這三種分離器能夠支持較多的封裝格式,其它的分離器還有 Moonlight-Elecard MPEG2 Demultiplexer(月光分離器)、 nVIDIA Transport Demux(nVIDIA 公司的分離器,配合 PureVideo 使用)、CyberLink Demux(PowerDVD 軟件中的分離器)等等。 2、解碼器(Decoder) 解碼器在整個視頻的播放中占據了最主要的位置,它的作用是對由分離器分離出來的音頻流和視頻流分別進行解碼。解碼器又分為視頻解碼器和音頻解碼器。 常見的視頻解碼器有: 常見的音頻解碼器有: 3、渲染器(Renderer) 渲染器與解碼器一樣,分為視頻渲染器和音頻渲染器,解碼后的視頻數據經過視頻渲染器的渲染后呈現到顯示設備上,解碼后的音頻經過音頻渲染器的渲染后從聲卡輸出。渲染在視頻播放的過程中是很重要的,因為它會影響到視頻最終的效果,不同的渲染器有不同的技術特性,對電腦的配置(主要是 CPU 和顯卡)的要求也不一樣。 視頻渲染器主要有以下幾種: 三、硬件解碼加速 DXVA 接口規(guī)范和確解碼級別、新興的 CUDA 和 Stream 技術 DXVA 的全稱是 DirectX Video Acceleration,中文意思是 DirectX 視頻加速。DXVA 不僅包括了視頻數據的解碼運算,還有各種后期處理運算,比如圖像縮放、色彩空間轉換、反交錯等等。DXVA 其實就是大家常說的“硬解”。顯卡是否支持 DXVA,是直接關系到在視頻播放的過程中 CPU 資源的利用率。 1、DXVA 接口規(guī)范的版本 DXVA 接口規(guī)范目前有兩個版本,分別是 DXVA 1.0 和 DXVA 2.0。DXVA 1.0 的規(guī)范里最早定義了 MPEG-2 和 WMV 的硬件解碼加速能力,而 DXVA 2.0 比 1.0 版本增加了對 H264、VC-1 硬件解碼加速能力的定義。也就是說,要“硬解”MPEG-2 的視頻,只需要顯卡能夠支持 DXVA 1.0 標準就可以了,而要“硬解”H264/AVC 的視頻,就要求顯卡支持 DXVA 2.0 的標準。 2、DXVA 硬件解碼加速能力的級別 視頻硬件解碼的加速能力的級別基本上分為三個,從高到底分別為:VLD(Variable Length Decoding / 變字長解碼)、IDCT(Inverse Discrete Cosine Transform / 逆離散余弦變換)、MoComp(Motion Compensatiom / 運動補嘗)。VLD 加速用于處理視頻比特流(BitStream),IDCT 用于處理幀內壓縮(Intraframe compression),MC 用于處理幀間壓縮(Interframe Compression)。顯卡能夠支持越高級的加速能力,就能更大幅度地減輕對 CPU 資源的占用。
如何才能快速地知道自己顯卡是否支持 DXVA?利用一個叫做 DXVA Checker 的軟件,目前最新的版本是 2.2.0.1。DXVA Checker 在 Windows XP 系統下運行時需要一個 dxva2.dll 文件,如果沒有它,那么將無法正確探測出顯卡對 DXVA 的支持情況。如果實在找不到這個文件,可以下載安裝微軟的 .NET Framework 3.0 或者 .NET Framework 3.5。運行 DXVA Checker 后,它便在 Decoder Device 標簽頁列出了顯示設備對 DXVA 的支持情況。 在上圖中,可以看到用于上網本 Atom 平臺的 Intel Graphics Media Accelerator 500(GMA500)對 DXVA 的支持情況。圖上 DXVA1/DXVA2 是指支持的 DXVA 版本,“NV12”是指視頻輸出的色系(其它的顏色系還有 YUV12、YUY 等等,沒有太大的意義),后面是能夠支持的分辨率。須要注意的是,對 WMV9 的支持當中,有一個級別是“PostProc(Post Processing)”,中文意思是“顯示后處理”,它是最低級的 DXVA。還有一個稱為“FGT(Film Grain Technology)”的技術,即所謂膠片感,目的是在不犧牲壓縮能力的同時保持視頻源特有的顆粒信息。 關于 Intel Graphics Media Acceralator 500: 4、nVIDIA CUDA 技術和 AMD(ATI)Stream 技術 (1)nVIDIA CUDA:CUDA 的全稱是 Compute Unified Device Architecture(統一計算設備架構),它是 nVIDIA 近年來力推的一項技術。隨著顯卡的發(fā)展,GPU 越來越強大,而且 GPU 為顯示圖像做了優(yōu)化。在計算性能上已經超越了通用的 CPU。如此強大的芯片如果只是作為顯卡就太浪費了,CUDA 正是可以讓顯卡可以用于圖像計算以外的技術。CUDA 技術最典型的應用這一就是進行高清解碼。著名的解碼器 CoreAVC,它并不支持 DXVA,在過去它完全利用 CPU 進行解碼運算,不過在新版本的 CoreAVC 解碼器當中加入了對 CUDA 技術的支持,把解碼運算的任務轉移到 GPU 上來,大大地減輕了 CPU 的負擔。 (2)AMD(ATI)Stream:雖然與 nVIDIA 的 CUDA 技術的實現方式不一樣,但是出發(fā)點和最終目的都是相同的,Stream 流技術就是利用 AMD GPU 多核在浮點運算性能上的優(yōu)勢進行加速計算。在高清解碼的應用上,AMD Stream 比 nVIDIA CUDA 支持更多的功能:比如 MPEG-2 的轉碼、FullHD 1080p 的編碼輸出等,另外,AMD Stream 的軟件是免費的(CUDA 的軟件價格 30.00 美元)。 四、KMPlayer 播放高清視頻的硬解碼(DXVA)相關設置 1、關于 KMPlayer 和 PotPlayer KMPlayer 簡稱 KMP,早期名叫 WaSaVi 播放器。作者是韓國的姜龍喜。KMPlayer 是一套將網絡上所有能見得到的解碼器(Codec)全部收集于一身的影音播放軟件;此外,KMPlayer 還能夠播放 DVD 與 VCD,匯入多種格式的外掛字幕檔、使用普及率最高的 WinAMP 音效外掛與支援多種影片效果調整選項等。PotPlayer 是 KMPlayer 原作者姜龍喜進行 Daun 公司后用 C++ 語言(KMPlayer 是用 Delphi 語言寫的)重寫的新一代作品,目前正在全力開發(fā)中,功能尚不及 KMPlayer。 2、KMPlayer 的具體設置 雖然 KMPlayer 已經集成了解碼器,但是它們是無法正常調用顯卡的 DXVA 加速的。而目前最好的 DXVA 解碼器是 Cyberlink 集成在 PowerDVD 中的解碼器。如果電腦里沒有安裝 PowerDVD ,那么就需要自己搜索下載它的單獨解碼器。(可以郵件向我索取。)需要用到的 PowerDVD 的解碼器主要有四個:H264 解碼器 Cl264dec.ax、MPEG-2 解碼器 Clvsd.ax、VC-1 解碼器 Clvc1dec.ax、音頻解碼器 Claud.ax。 ?。?)在設置之前,最好將 KMPlayer 的設置恢復成初始的狀態(tài):按“F2”鍵打開 KMPlayer 的設置,點擊下方的“初始化所有設置”按鈕。對 KMPlayer 進行設置的目的是屏蔽 KMPlayer 內部的解碼器,使 KMPlayer 可以調用外部的 PowerDVD 解碼器進行視頻解碼。 ?。?)在 KMPlayer 的設置菜單里,依次找到“濾鏡控制”—“解碼器使用”—“內部視頻解碼器”,在右邊的“常規(guī)”選項卡里解除“H.263+”、“H.264”、“AVC1”、“VC-1”的勾選,如下圖所示: ?。?)然后再找到“濾鏡控制”—“解碼器使用”—“外部視頻解碼器”,點擊右側的“搜索外部解碼器”,彈出“外部解碼器/濾鏡管理”對話框,再點擊“添加外部解碼器”按鈕,依次添加上文所講的四個 PowerDVD 解碼器。如下圖所示。 ?。?)添加后雙擊解碼器彈出解碼器設置對話框,勾選“USE DXVA”或者“Use Hardware Acceralator”。 (5)點擊確定后回到“外部視頻解碼器”設置窗口,“H.264 視頻”、“AVC1 視頻”、“VC-1 視頻”分別選擇剛才添加的 PowerDVD 解碼器。 解碼器的設置就到此結束了。此外,有幾要說明的問題。
五、幾段高清視頻的播放測試: 硬件系統:Acer Aspire One 751h:Intel Atom Z520(1.33G/512K/133MHz)、US15W、GMA 500(Driver 6.14.11.1018) 、1366×768(11.6") 測試片源:(點擊圖片可以放大看原分辨率圖片) (1)大塚愛 ユメクイ:封裝格式 TS、視頻編碼 MPEG-2 、音頻編碼 LPCM、分辨率 1440×1080i ?。?)江若琳 你不在了:封裝格式 MP4、視頻編碼 AVC、音頻編碼 AAC、分辨率 1920×1080i ?。?)變形金剛 預告:封裝格式 MOV、視頻編碼 AVC、音頻編碼 AAC、分辨率 1920×1080p
(4)阿凡達 預告:封裝格式 MOV、視頻編碼 AVC、音頻編碼 AAC、分辨率 1920×1080p、外掛字幕 SRT
根據播放器顯示的 OSD 信息,視頻輸出顯示是 DXVA,說明已經成功地開啟了硬件加速解碼。 |