超載
現(xiàn)在是數(shù)字時(shí)代,我們的視頻內(nèi)容一樣也是數(shù)字存儲,這和很久之前的模擬錄像完全不同。既然是數(shù)字構(gòu)成的,那么視頻文件也和其他編程文件一樣,需要通過機(jī)器語言“翻譯”給電腦,用0、1這樣的數(shù)字信號存儲起來;電腦在播放視頻的時(shí)候則是經(jīng)過“翻譯”,將這些數(shù)字“變回”視頻畫面,這個(gè)過程就是視頻的編碼一解碼,英文稱作Video Codec。其中,編碼的工作稱之為Encode,解碼的工作則稱之為Decode。
當(dāng)然,筆者這樣解釋只不過是通俗易懂的方式,在視頻編解碼的過程中現(xiàn)在已經(jīng)不僅只是負(fù)責(zé)“翻譯”那么簡單了。視頻編碼是壓縮和可能改變視頻內(nèi)容格式的過程,首要作用自然是模擬源更改為數(shù)字源。在壓縮方面,目標(biāo)是減少占用空間。這使得它是一個(gè)有損的過程,會(huì)拋棄與視頻相關(guān)的信息。在解壓縮以進(jìn)行回放時(shí),創(chuàng)建原始的近似值。應(yīng)用的壓縮越多,拋棄的數(shù)據(jù)越多,近似值與原始數(shù)據(jù)相比差距越大。
提及有損,那就要提到編碼了,正如《視頻格式你真了解嗎》一文提到的,諸如H.264、HEVC、VP9乃至AV1,都是通過不同的編碼壓縮方案對視頻進(jìn)行編碼壓縮,在盡可能保證視頻素質(zhì)本身的同時(shí)極力壓縮視頻容量。
最后,再經(jīng)過不同文件格式(對應(yīng)于編碼方案)進(jìn)行封裝,這才有了我們常見的MKV、MP4、MOV等視頻文件。
在專用的視頻播放設(shè)備中,自然有負(fù)責(zé)編解碼的硬件,而在電腦上,這一切通常都要交付于GPU或者說顯卡來進(jìn)行計(jì)算,而不是CPU——通俗地講使用GPU進(jìn)行解碼時(shí),我們將其稱之為“硬解”;使用CPU進(jìn)行視頻解碼播放時(shí),我們將其稱之為“軟解”。
本質(zhì)上說,CPU硬解的視頻畫面還原水準(zhǔn)是最好的,因?yàn)橐磺卸加蒀PU進(jìn)行“自由”計(jì)算,視頻可以提供的色彩范圍、壓縮的視頻信息,皆可——根據(jù)實(shí)際進(jìn)行“還原”,但是,它會(huì)極度消耗系統(tǒng)資源,CPU很容就變成100%滿載,根本無法兼顧其他必須的工作。而GPU硬解,相當(dāng)于在GPU內(nèi)預(yù)置了針對不同編碼的“解決方案”。任務(wù)工作一來,GPU就會(huì)直接套用這些生硬的“操作流程”對視頻進(jìn)行解碼還原。這樣的好處自然是解碼順暢,效率更高、節(jié)約系統(tǒng)資源,不好的地方在于,它根本不顧及視頻源本身的特質(zhì),如色彩等等方面的還原,只能“生搬硬套”——除非你可以手動(dòng)調(diào)節(jié)。
目前市場上主流的GPU提供商無非就是NVIDIA、AMD和英特爾三家,它們無論是獨(dú)顯還是集成顯卡,都對不同編碼的視頻方案提供了解碼的“預(yù)置方案”,當(dāng)然,因?yàn)槟甏煌?,可能有些顯卡并不能支持全部的視頻編解碼方案。一般而言,時(shí)下最為主流的H.264編碼視頻,近十年以來的GPU都可以支持;而HEVC(包括HEVC 10bit),則是近五年的GPU產(chǎn)品才能夠提供完善的硬解能力。而日后最值得關(guān)注的AV1編碼硬解能力,只有從去年發(fā)布的GPU產(chǎn)品中才能支持(也就是AMD Radeon RX6000系列、NVIDIA GeFroce RTX 3000系列及Intel 11代酷睿的核顯GPU系列)。
筆者為此也整理了近十年GPU產(chǎn)品對視頻的解碼能力,將其附表于下,方便讀者朋友們查閱。注意,這三個(gè)涉及NVIDIA、AMD和英特爾GPU硬解的表格僅僅針對解碼規(guī)格,編碼的區(qū)別并無涉及。
光有GPU硬件解碼還不夠,需要軟件來將機(jī)器語言翻譯成真正的可視畫面,這才能完成最后一步“觀看視頻”。但是,目前任意一個(gè)電腦用的播放器軟件可以說都是“基本設(shè)置”,要想真正還原好視頻應(yīng)有的“精彩影像”,就必須有針對性的進(jìn)行調(diào)整。
色深調(diào)整首當(dāng)其沖
在設(shè)置播放器之前,我們要對GPU進(jìn)行一個(gè)重要的設(shè)置,這就是調(diào)整色深。顯示器的色彩能力主要由三個(gè)參數(shù)決定:色域、色準(zhǔn)、色深。色域決定了顯示器色彩的豐富度,色準(zhǔn)決定了顯示器色彩的準(zhǔn)確度,色深則決定的是顯示器色彩的過渡流暢度。色深(bit)可以理解為顏色數(shù)量的多少,數(shù)值越大,色彩越細(xì)膩,過渡越平滑自然。
紅、綠、藍(lán)即RGB三原色各具有256(2的8次方)個(gè)灰階數(shù)時(shí),把三個(gè)通道的256個(gè)灰階數(shù)相乘,就能得到8bit所能呈現(xiàn)的全部色彩了,即1677萬色;而10bit色彩就是具有2的10次方個(gè)灰階數(shù),每個(gè)通道為1024個(gè)灰度值,最終色彩可以達(dá)到10.7億色,這樣可以讓色彩的過渡更為自然。
使用AMD顯卡的用戶,在AMD顯卡的控制面板中,找到顯示器項(xiàng),然后點(diǎn)擊“像素格式”,將其設(shè)置為Full RGB模式,也就是無論視頻片源如何,在顯卡輸出到顯示器階段,色彩深度可以全數(shù)進(jìn)行輸出,達(dá)到10bit色。
使用NVIDIA顯卡的用戶,需要在NVIDIA顯卡的控制面板左側(cè)欄中找到“顯示→更改分辨率”,將“輸出動(dòng)態(tài)范圍”修改為“完全”;然后同樣在左側(cè)欄中找到“視頻→調(diào)整視頻顏色設(shè)置”,將動(dòng)態(tài)范圍選擇為“完全(0-255)”。
使用Intel核顯的用戶,要在英特爾顯卡控制面板(注:新版本英特爾顯卡控制面板需要在微軟商店中單獨(dú)下載安裝)中,找到“視頻”一項(xiàng)(左側(cè)欄中的視頻圖標(biāo)),點(diǎn)擊添加一個(gè)視頻配置文件為“自定義”,然后下拉到底部,在“輸入范圍”處,將其修改為:“全”。
設(shè)置播放器 完美回放在此一舉
本文以PotPlayer為例進(jìn)行設(shè)置(注:該播放器免費(fèi),且具有極高的自定義功能),首先下載并安裝PotPlayer(下載地址:https:∥pc.qq.com/detail/14/detail 15654.html),整個(gè)安裝按照向?qū)崾静僮骷纯?,但是在PotPlayer安裝向?qū)У淖詈笠徊?,注意要勾選“安裝額外的編解碼器(OpenCodec)”一項(xiàng),讓其自動(dòng)下載額外的編解碼器。
安裝好PotPlayer后,還需要下載“madVR”和“LAVFilters”(下載地址:https:∥pan.baidu.com/s/14MimulM4nOdfGQJKFiRsVw提取碼:hopb),它們分別是視頻渲染器和分離/解碼器,正是它們的“加入”,才能讓PotPlayer充分調(diào)用GPU編解碼能力。
安裝LAVFilters非常簡單,只需要解壓縮后雙擊LAVFilters-0.71-Installer.exe運(yùn)行安裝向?qū)Ъ纯?。madVR的安裝則需要注意,首先是解壓縮的路徑中不能合有中文目錄(任何一級都不可以),然后我們找到madVR中的“Install.bat”右鍵單擊,選擇“以管理員身份運(yùn)行”方可。
注意,madVR安裝完畢后,該目錄包括內(nèi)部的所有文件,就不可以轉(zhuǎn)移到其它存儲位置了,否則將會(huì)失去效用。
一切就緒后運(yùn)行PotPlayer,并在當(dāng)前狀態(tài)下按下鍵盤F5快捷鍵,調(diào)用PotPlayer的選項(xiàng)頁面進(jìn)行設(shè)置。首先切換左側(cè)欄點(diǎn)選“濾鏡”一項(xiàng),然后在右側(cè)“內(nèi)置圖像處理濾鏡設(shè)置”處,將“激活條件”從“總是使用(推薦)”調(diào)整為“不使用”,然后點(diǎn)擊“應(yīng)用”。這樣,我們就避免了PotPlayer使用默認(rèn)的濾鏡對視頻進(jìn)行處理,而是使用之后我們設(shè)置的madVR,這樣當(dāng)你遇到精度更高的10bit色深電影時(shí),不會(huì)被PotPlayer直接處理成8bit色,無端的色彩就這樣被“處理掉了”。
接下來,點(diǎn)擊左側(cè)欄“濾鏡”展開,找到并單擊其中的“源濾鏡/分離器”一項(xiàng),然后點(diǎn)擊右下方的“濾鏡/解碼器管理”。
在彈出的新界面中,點(diǎn)擊“搜索后添加”,此時(shí)左側(cè)“DirectShow濾鏡列表”中會(huì)自動(dòng)添加已經(jīng)安裝的濾鏡,我們不需要任何修改單擊“確定”即可。
回到“濾鏡/解碼器管理”界面,將右側(cè)“源濾鏡/分離器管理”下除“Real”以外所有項(xiàng)統(tǒng)一修改稱“LAVSplitter Source”,“Real”保持默認(rèn)的“內(nèi)置REAL源濾鏡/分離器(推薦)”再點(diǎn)擊“應(yīng)用”即可。
還是在左側(cè)濾鏡下,找到“視頻解碼器”項(xiàng)單擊,然后切換到右側(cè),將視頻解碼器和音頻解碼器修改為“LAV Video Decoder”,注意,其中的H.265修改為“使用系統(tǒng)默認(rèn)解碼器”再點(diǎn)擊“應(yīng)用”即可。
設(shè)置完濾鏡和解碼器,我們還需要設(shè)置視頻渲染器,在PotPlayer的選項(xiàng)頁中,左側(cè)點(diǎn)擊切換到“視頻”選項(xiàng)卡,在“視頻輸出設(shè)備”的“視頻渲染方式中”,選中“Madshi視頻渲染”點(diǎn)擊“應(yīng)用”,以調(diào)用madVR。需要注意,madVR(全稱madshi Video Renderer)是當(dāng)前Windows平臺下最好的視頻渲染器,效果極為出眾,但是它對資源的消耗也比較大,配置較低的電腦可能會(huì)有些卡頓。
接著,點(diǎn)擊“視頻”中的“色彩空間/屬性”,將“YCbCr<->RGB規(guī)則”調(diào)整成為“自動(dòng)選擇”。
最后,點(diǎn)擊左側(cè)“聲音”選項(xiàng)卡,在右側(cè)的“音頻輸出”中,將“默認(rèn)輸出設(shè)備”修改為“內(nèi)置WASAPI音頻渲染器”,以取代默認(rèn)的Default Direct SoundDevice,大功告成!
如此以來PotPlayer將利用GPU硬解能力,配合使用LAVFilters濾鏡+解碼,并使用madVR進(jìn)行最后的渲染,視頻播放時(shí)的色彩將大幅度提升(相應(yīng)系統(tǒng)資源消耗也會(huì)更大,尤其是調(diào)用madVR時(shí)),而且借助于madVR的神奇補(bǔ)幀功能,普通的24幀視頻內(nèi)容將直接變?yōu)?0幀,畫面的流暢度將更加出眾。