最近兩年HDR這個概念可謂是鋪天蓋地而來,手機也好PC也好電視也好,都拼命往自己頭上扣HDR的帽子。而在某些發(fā)燒友眼中,如果看片子不帶HDR,堪比步兵變騎兵,一下子變得索然無味。然而,新事物往往也伴隨著眾多新坑,特別是在軟硬件環(huán)境復雜的PC平臺,稍有不慎就會摔得臉青鼻腫,播HDR的效果甚至不如播普通的片子。
PC播HDR的大坑有幾何?PC并不是專門為視頻播放設計的機器,和專業(yè)的藍光機等播放器相比,無論是在解碼還是渲染還是輸出方面,在沒有一套一鍵式安裝的成熟方案(傻瓜萬能播放器等)出現(xiàn)之前,往往需要用戶自己手動詳細配置每個環(huán)節(jié)。硬件方面的環(huán)節(jié),例如HDMI線纜版本等等,以往已經(jīng)說得比較多了。今天,就一起來談談軟件方面播放HDR視頻需要注意什么吧。
正確處理YUV和RGB色彩
如果你有留意過視頻文件的參數(shù),應該會知道視頻的色彩編碼有不同的類型,最常見的莫過就是YUV和RGB。這到底都意味著什么呢?在數(shù)字時代,要讓計算機能辨認出自然界的顏色,就需要對顏色進行編碼。在RGB體系中,顏色是用紅、綠、藍三種參數(shù)來表示的,例如在PhotoShop中我們可以看到純紅色的編碼是(255,0,0)。
PhotoShop支持多種色彩空間,例如RGB、CMYK等
RGB并不是唯一顏色編碼的方法,顏色不僅僅可以用紅綠藍來混合顯示,還可以用明度、色度和濃度來表示,這種明度色度濃度的顏色編碼方式就是YUV了?;蛟S有的朋友會問,RGB效果就很好,現(xiàn)在連機箱里面的光污染都用RGB燈,為什么顏色的編碼要搞這么多套體系?這和顯示介質(zhì)是息息相關的。
在PC上我們用的電腦屏幕是液晶屏或者OLED屏幕,發(fā)色基礎是RGB三原色像素點,于是配合RGB的色彩空間,能夠比較完美地將數(shù)字信號轉(zhuǎn)換成為可見光。但在電視機上,RGB就不一定適用了。和電腦顯示器相比,電視的歷史更悠久,古老的電視例如黑白電視,顯然是無法兼容RGB信號的。如果使用的是YUV色彩空間,情況就不同了,黑白電視只需顯示YUV色彩空間的明度信號即可完美兼容。由于這個歷史原因,視頻特別是源于光盤、廣播電視信號的視頻,基本上都使用YUV色彩空間,直到今天也依然如此。
配合電視工作的設備,一般支持輸出YUV,例如PS4
現(xiàn)在的HDR視頻不少都來源于UHD BD光盤,因此將YUV信號轉(zhuǎn)換成為RGB信號,也成為了HDR視頻播放當中必不可少的一環(huán)。但遺憾的是,Windows自帶的EVR渲染器(Enhanced Video Renderer)在這方面的表現(xiàn)不怎么理想,如果解碼器輸出YUV信號到EVR進行渲染,那么EVR只會進行低精度的轉(zhuǎn)換,大大影響畫質(zhì)。HDR視頻的色彩較為豐富,負面影響尤為明顯。
要如何來解決這個問題呢?有兩個思路。
第一個思路,讓解碼器只輸入RGB 8bit信號到EVR中,不讓EVR參與YUV→RGB的轉(zhuǎn)換。我們需要借助LAV解碼器來實現(xiàn)這點。
視頻播放器要播放一個視頻,流程通常是視頻分離器(分離視頻流、音頻流、字幕等)→解碼器(解碼視頻、音頻)→渲染器(渲染出最終圖像),YUV轉(zhuǎn)換成RGB這一步,可以發(fā)生在解碼步驟當中,也可以發(fā)生在渲染步驟當中。既然渲染器不給力,那就讓解碼器來做。
LAV是目前PC上最強勁的解碼器,可貴的是它是開源免費的。我們可以點此進入LAV的GitHub項目中下載相應版本,可以下載安裝包也可以下載ZIP包的綠色版。
按照實際情況和個人喜歡選擇最新版即可
如何讓播放器使用LAV解碼?以PotPlayer為例,在PotPlayer的“全局濾鏡優(yōu)先權”一欄,添加系統(tǒng)濾鏡或者外部濾鏡(取決于你使用LAV安裝包還是綠色版,下文以綠色版為例)。將LAV綠色版壓縮包解壓到一個文件夾,目錄不要含中文,添加當中的“LAVVideo.a(chǎn)x”就可以添加LAV視頻解碼器了。
找到PotPlayer的“全局濾鏡優(yōu)先權”
添加“LAVVideo.a(chǎn)x”為外部濾鏡
接著,將PotPlayer當中的“LAV Video Decoder”設置為強制使用,雙擊進入設置。
選擇“強制使用”
可以在“Output Formats”一欄看到各種輸出格式。這時候只勾選RGB32、RGB24兩個即可,其他都取消勾選。保存設置,如此一來播放器解碼的時候就只會輸出RGB 8bit信號,EVR渲染器就不會做低質(zhì)量的轉(zhuǎn)換處理了。
只保留8-bit的RGB輸出
第二個思路,就是換用更好的渲染器,例如madVR。madVR是PC上畫質(zhì)最好的視頻渲染器,可以高質(zhì)量地處理YUV→RGB轉(zhuǎn)換。關于madVR渲染器的使用將會在下面提到,這里先不詳細展開。
如何順利解碼10bit
如果大家有留意,應該會發(fā)現(xiàn)很多HDR視頻的色深都是10bit?,F(xiàn)在流行的視頻普遍以8bit居多,10bit視頻對比8bit,灰階更加平滑,同樣畫質(zhì)的視頻體積更小,但與此同時解碼所需要的性能也提高了不少。
10bit對畫質(zhì)的提升是有正面意義的,為什么HDR視頻會使用10bit?這主要還是因為藍光聯(lián)盟的推動。HDR視頻之所以流行,是由于在2015年藍光聯(lián)盟正式確定了UHD BD的規(guī)格,之后兩三年越來越多的片子推出了UHD BD碟片。而UHD BD內(nèi)的片子規(guī)格有幾個關鍵點,分別是H.265(HEVC)的編碼,10-bit色深以及HDR色彩(高達BT.2020色域)。因此,10bit色深這個規(guī)格越來越多地出現(xiàn)在了各種視頻當中。
一個典型的原盤HDR視頻,參數(shù)包括HEVC編碼、10bit色深、BT.2020色域、YUV 4:2:0色彩空間
如果你的CPU足夠強勁,那么可以使用軟解來播放10bit視頻,和硬解相比這也更不容易出錯。但是如果你覺得視頻卡頓,恐怕就需要考慮硬解了。如何才能正確硬解10bit視頻?首先得判斷顯卡是否有能力支持10bit視頻的硬解。
硬解和GPU相關,先來說說NV方面。NV的硬解技術為PureVideo,要比較好地解碼4K HEVC 10-bit視頻,需要PureVideo VP7或以上規(guī)格的技術。那么有什么NV顯卡支持這個規(guī)格呢?到了帕斯卡這一代,包括GP102、GP104、GP106、GP107、GP108核心,全部都配備了PureVideo VP8,硬解4K HEVC 10-bit視頻無壓力;但上一代就比較詭異了,只有GM206(包括GTX 950、GTX 960)支持PureVideo VP7,其他都只支持VP6。
GTX 900系列只有GTX 950、960支持4K HEVC 10-bit硬解,GTX 1000系列全支持
再來說說AMD的GPU。AMD GPU的硬解技術是UVD,只有UVD 6.3或以上的版本,才能夠硬解4K HEVC 10-bit視頻。AMD的獨顯目前只有RX 400系列、RX 500、Vega系列有能力硬解,以及Stoney Ridge之后的APU可以硬解。
Intel的GPU硬解技術是Intel Quick Sync Video,只有Broxton(最新一代Atom,已停產(chǎn)),以及Kaby Lake(第七代酷睿)及更新的產(chǎn)品線能夠硬解4K HEVC 10-bit視頻。
Intel只有Kaby Lake之后的產(chǎn)品可完美硬解4K HEVC 10-bit視頻
除了看型號,還有一個最簡單的判斷GPU是否可以硬解4K HEVC 10-bit視頻的方法——使用DXVAChecker這款小軟件即可。如果看到“HEVC_VLD_Main10”一欄中有顯示“4K”或者“QFHD”,那就說明GPU可以硬解4K HEVC 10-bit視頻。
DXVAChecker,可檢查硬解的支持情況
接著,需要正確配置解碼器,這里仍以LAV解碼器為例,這是目前能比較好地解碼10bit的解碼器。在LAV解碼器當中,可以在“Hardware Acceleration”處選擇硬解方式,目前常用的一般是兩種硬解,一種是“DXVA2(native)”,另一種是“DXVA2(copy-back)”。
如果軟解性能不夠,需要硬解,推薦使用DXVA2 copy-back
這兩種硬解的區(qū)別在于,native會把數(shù)據(jù)完全交給GPU處理,而copy-back會多出一個回傳到內(nèi)存給CPU處理的步驟。從效率的角度來說,native會更高一些。但是,如果要硬解10bit視頻,并不推薦使用native。
一來,使用DXVA native硬解,某些GPU解碼可能會出現(xiàn)問題,例如AMD RX顯卡用native解碼10bit可能會出問題,但NV的GTX10X0就不會,你很難判斷到底某顯卡用native解碼能不能正常工作,用copy-back大家都是沒問題的。二來使用native解碼會強制使用YUV輸出(在LAV設置了RGB輸出也不行),如果使用EVR渲染器畫質(zhì)會比較差。
因此,如果你想要用顯卡硬解10bit視頻,那么推薦使用LAV解碼器當中的DXVA2 copy-back硬解方式。如果性能足夠強勁,還是推薦使用CPU軟解,最不容易出錯。無論哪種硬解,都只對色彩空間是YUV 4:2:0的視頻有效,遇到YUV 4:4:4之類的高規(guī)格還是會軟解的。與此同時,如果用madVR渲染的話還要注意版本,madVR在0.9之后的版本才開始支持DXVA YUV 4:2:0的10bit解碼輸入。另外,軟解雖然費CPU,但也可以把更多的GPU資源留給madVR渲染器,以獲取更高的畫質(zhì),因此如果CPU性能夠強,還是軟解更合適。
播放HDR如何才能不偏色
BT.2020 HDR色域轉(zhuǎn)換BT.709 SDR色域
前面說到,HDR視頻的色域是BT.2020,這是一個廣色域。色域越廣,色彩往往越豐富,因此HDR的片子往往會艷麗很多。但是,現(xiàn)在的電腦顯示器未必都可以支持BT.2020色域,絕大多數(shù)的顯示器只能支持色域BT.709(SDR級別色域)。此情此景下,如果直接播放HDR視頻,那么色彩甚至會比普通的視頻更加黯淡。要怎樣才能獲得比較好的效果?色域的轉(zhuǎn)換處理必不可少。
直接在SDR屏幕播放HDR視頻,會非常黯淡
經(jīng)由精確的色域轉(zhuǎn)換后,色彩才會變得正常
要讓HDR視頻在普通屏幕上也變得明亮鮮活,需要將BT.2020色域進行精確轉(zhuǎn)換,而不是簡單粗暴砍成BT.709。這時候,渲染器所起到的作用就相當關鍵了。怎樣的渲染器才能比較好地進行色域轉(zhuǎn)換處理?madVR是最好的選擇。
madVR是PC平臺上最好的視頻渲染器,沒有之一。在比較早的時候,madVR已經(jīng)加入了BT.2020色域轉(zhuǎn)換的選項;而在近期版本,madVR還出現(xiàn)了專門的“HDR選項卡”,在當中就可以設置將HDR色域處理成普通的SDR色彩了。
在官網(wǎng)下載madVR即可,可以看到它支持眾多播放器,這里仍以PotPlayer為例
我們首先需要把madVR設置為播放器的渲染器,這里仍然以PotPlayer為例。madVR目前只有綠色版,點此進入官網(wǎng)下載,之后將madVR解壓到一個文件目錄當中。在PotPlayer“全局濾鏡優(yōu)先權”一欄添加外部濾鏡,接著添加madVR目錄當中的“madVR.a(chǎn)x”或者“madVR64.a(chǎn)x”(取決于系統(tǒng)是否64位),然后將madVR設置為強制使用,雙擊進行配置。
強制使用madVR作渲染器
在madVR“devices”當中,可以看到當前的顯示器,然后展開顯示器的菜單,可以看到“hdr”選項。如果你的顯示器是非HDR的,那么選中“convert HDR content to SDR by using pixel shader math”即可。如果你信得過軟件自動識別,那么也可以選擇“l(fā)et madVR decide”,一般情況下還是靠譜的。
madVR可以較好地處理色域轉(zhuǎn)換,不想折騰選擇自動即可
這里可以講一下madVR這里幾個關于HDR色域轉(zhuǎn)換的選項,其他選項在什么情況下用得著?如果你用的是支持HDR的屏幕,例如某些電視機或者高端顯示器,那么可以選擇“passthrough HDR content to the display”,這樣會直接把HDR不經(jīng)由轉(zhuǎn)換,原封不動地進行輸出。而如果你用的是廣色域屏幕但色域不是BT.2020,例如色域是Adobe 99%的設計專用屏幕,可以選擇“process HDR content by using pixel shader math”,這樣HDR色彩會經(jīng)過轉(zhuǎn)換處理,顯示更加準確。
而如果你的屏幕經(jīng)過校色儀校準,并且讓校色軟件(例如DispalyCal)生成了3DLUT校色檔案,并且校色軟件支持將其輸出到madVR當中,那么可以選擇選項后帶有“using an external 3DLUT”的選項,一般情況下就不要選了。
HDR顯示器直接播放HDR真的沒問題嗎?
前面提到,madVR是支持輸出HDR信號的,如果你的顯示器支持HDR,那么是不是就應該讓madVR輸出HDR?并不一定!雖然很多顯示器支持HDR,但效果并不好,貿(mào)然使用HDR輸出,畫質(zhì)甚至不如將HDR轉(zhuǎn)換為SDR再輸出好。
不是所有HDR顯示屏都有足夠的亮度去實現(xiàn)好的HDR效果的,300cd/m?不到的亮度效果可想而知
現(xiàn)在某些顯示器聲稱支持HDR,但亮度等關鍵參數(shù)并不出彩。如果使用這些設備放映HDR視頻,往往會自動切換到HDR模式,反而造成亮度下降、偏色等一系列問題。因此,這類較低端的HDR屏幕使用轉(zhuǎn)換過色域的畫面,效果反而會更好。
不僅如此,在HDR模式下可能還會嚴重偏色,還不如將HDR視頻轉(zhuǎn)換為SDR后再播放效果好
毫無疑問,用madVR來處理HDR色域轉(zhuǎn)換是必不可少的方案。而使用madVR還有一個好處,那就是它能夠精確地進行YUV和RGB色彩空間的轉(zhuǎn)換。就算解碼器輸出的是YUV信號,也能夠轉(zhuǎn)換成為高質(zhì)量的RGB信號,比Windows的EVR不知搞到哪里去。madVR唯一的缺點就是比較吃GPU資源,如果你的硬件足夠強勁,用的是目前主流的顯卡,那么madVR值得強烈推薦。
聲道:杜比全景聲映射為雙聲道立體聲
說了不少和畫面相關的內(nèi)容,再來說說聲音相關的吧。如果HDR視頻源自UHD BD,那么往往還會帶有多聲道。特別是杜比視界HDR,基本上都是和杜比全景聲搭配的。如果直接播放這類片子,而輸出設備只是普通的2.0、2.1音箱甚至只是耳機,那么聲音可能就會出現(xiàn)破音等失真的情況,這又是一個很多人不曾注意的坑。
HDR視頻往往搭配多聲道,直接用耳機播放可能會出現(xiàn)破音、干音等失真
怎么辦?其實LAV濾鏡也提供了解決方案。仍然以PotPlayer為例,將“LAVAudio.a(chǎn)x”添加到PotPlayer當中并設置強制使用,然后雙擊“LAV Audio Decoder”進行配置。
添加LAV Audio Decoder并強制使用
點擊“Mixing”選項卡,這里面的功能是和混響相關的,可以將多聲道混響為雙聲道的立體聲。勾選“Enable Mixing”,并選擇“Stereo”,然后確保“LFE Mix Level”數(shù)值為0即可。如此一來,就算用雙聲道的音箱、耳機播放環(huán)繞聲的HDR視頻,也不會出現(xiàn)破音等情況了。
設置將聲音混響為雙聲道立體聲
AACS 2.0:正版HDR輸出需要SGX
前面提到,不少HDR視頻都是源自于UHD BD,因此一些發(fā)燒友也會直接購買正版的UHD BD碟片觀看。但是,如果用電腦配合UHD BD光驅(qū)來播放正版HDR影片,需要講究的地方也不少,一不小心也會掉到坑里面。
首先,播放軟件不能使用PotPlayer這樣普通的播放器了。正版的UHD BD帶有AACS 2.0防盜版技術,需要經(jīng)由認證的軟件才能播放。目前只有正版的PowerDVD才可以播放UHD BD,破解版的無法播放。這個軟件并不便宜,支持UHD BD的版本售價為580元人民幣。不過購買某些UHD BD光驅(qū),可能會獲贈這一軟件,大家可以留意廠商活動和產(chǎn)品說明。
要播放正版UHD BD,需要正版PowerDVD
其次,要播放正版UHD BD光盤還需要CPU支持SGX。該技術是英特爾特有,而且只存在于部分Kaby Lake以及Sky Lake之后的CPU中(點此查看支持SGX CPU列表 ),AMD所有平臺、英特爾的X99等其他平臺的CPU一律無法播放版權限制的UHD BD。要看正版4K HDR藍光碟,A飯是當不成了。
正版UHD BD需要CPU支持SGX
總結
HDR視頻日漸流行,但距離全面普及顯然還有一大段距離。現(xiàn)在使用電腦播放HDR視頻仍需要細心料理每一個環(huán)節(jié),效果才能比較令人滿意。希望有越來越多成熟方案出現(xiàn),有朝一日大家都能輕松感受到到HDR視頻的精彩之處吧。
評論
查看更多