【寫在前面】2016 年 4K 電視的下一個里程碑就是 High-Dynamic Range 技術發展,也就是高動態範圍(HDR),這玩意兒其實在相機領域已經玩很久,HDR 可以克服多數相機傳感器動態範圍有限的缺點,並將圖片色調控制在人眼識別範圍之內,將多張曝光不同的照片疊加處理成一張精彩絕倫的圖像,可以讓照片的明暗對比更加均勻,避免出現過亮或過暗的情況,如下圖就是一個 HDR 照片範例。左邊為原始照片,右邊為開啟 HDR 功能。 CES 2016 宣布推出 Ultra HD Premium 規格認證,往後只需認著 Ultra HD Premium 的標誌,就可得知該電視機是否為高階產品!符合 Ultra HD Premium 有以下幾個規範:3,840 x 2,160 解析度;支援 10bit 色深及 BT.2020 色域;對應 SMPTE ST2084 EOTF 規格 HDR;達到 P3 色域的 90%;LCD 最高亮度及黑電平(Black Level)需要有高於 1,000nits 及低於 0.05 nits;OLED 高於 540 nits 及低於 0.0005 nits 的組合水平。但是電視的 HDR 功能與我們在拍照時所用到的 HDR 功能不盡相同,前者可以拓展電視的對比度和色彩,以呈現出更加真實自然的畫面效果;而後者是將不同曝光的圖像結合成一張,來模擬出更大的動態范圍。不過說了這麼多也要電視以及影片相輔相成才行,筆者近期購入的 Panasonic 40CX600W 雖然沒有支援 HDR 技術,但是因為筆者主要是拿來當電腦螢幕,所以網路上就有大神開發出 madVR 渲染器,可以讓 PotPlayer 之類的播放軟體順利輸出 HDR 影片,實測效果真的是讓筆者為之驚艷! 【準備工作】同學們請先把下列軟體下載後並安裝齊全:Pot Player 播放器 64-bit:點我下載LAV Filters 0.67.0 - DirectShow Media Splitter and Decoders:點我下載madVR 0.90.3 - High Quality Video Renderer (GPU-Assisted) :點我下載Life of Pi - Ultra-HD HDR 影片:點我下載 (2017/5/4 更新 MEGA 載點) 官方 DEMO 照片 【圖文教學】↙ Pot Player 參數設置內建圖像處理濾鏡設定:不使用 點選 → 濾鏡/解碼器管理。 新增系統濾鏡。 依序將 LAV Splitter Source、LAV Video Decoder、LAV Audio Decoder 三個濾鏡給新增進系統。 新增完畢後如下圖紅圈處。 源濾鏡/分離器管理部分請依照圖片紅圈處設置即可。 視訊解碼器部分請依照圖片紅圈處設置即可。 音訊解碼器部分請依照圖片紅圈處設置即可。 字幕內容請勾選開啟 ASS/SSA 字幕動畫特性。 請在首選語言列輸入:cht tr tw tc traditional big5 繁體 繁体 繁中 中文 chi chinese sc。 視訊渲染方式請選擇:Madshi 視訊渲染。 色彩空間選項請依照圖片設置即可。 圖像處理請將勾選消除色塊。 聲音選項請依照圖片設置即可。 ↙ LAV Filters 參數設置LAV Splitter Configuration 維持預設。 LAV Video Configuration:
↙ Deinterlacing Mode:
1. Agressive:指影像串流中有偵側到交錯式的畫格則全部進行去交錯處理;
2. Force:指不論內容一律進行去交錯處理;
3. Disabled:指不論內容一律當作循序掃描影像(不進行去交錯)。
↙ Output Formats:顯示器支援的色深,請全部勾選。
↙ RGB Output Levels:主要是調整畫面輸出的顏色範圍,一般來說連接電視要選 TV (16-235) 避免亮暗部細節顯示不正確,如果是連接電腦螢幕直接選 PC (0-255) ,筆者建議選擇 PC (0-255)。
↙ Hardware Decoder to use:
1. NVIDIA CUVID:nVIDIA 顯示卡才能啟用的硬解模式,利用 CUDA 視訊解碼 API,XP 及 WIN7 之後作業系統皆可使用。
2. Intel QuickSync:利用 Intel 內顯來硬解 API。
3. DXVA2(copy-back):為微軟 DXVA2 標準的硬解模式,而 copy-back 指的是將顯示卡解碼完的內容從顯卡記憶體中抓回主記憶體,此為較新的模式,好處是能在解碼器跟渲染器中間插入後處理濾鏡(如 ffdshow raw video filter 或是 xy-vsfilter 這類),就如同軟解一般。但缺點是 CPU 占用率仍較傳統型硬解 (DXVA2(native)) 高一點,且反應速度會慢一點。這個模式A / I / N 三家顯示卡都能使用,不過因為是 DXVA2,所以不能在 XP 下使用 (XP 只支援 DXVA1 )。
4. DXVA2(native):微軟 DXVA2 標準的傳統型硬解 API,也是最常見的模式,效率是所有硬解中最好的,CPU 占用最低,A / I / N 三家顯卡都能使用,XP 下不能用。
註:1. nVIDIA 顯示卡在 Kepler 和 Maxwell 架構之後,以及 Intel Haswell 之後的內顯,更新到最新的驅動後都能使用 HEVC 硬解。
2. 世界上第一張支援 HEVC "純硬解" 的顯示卡是 2015 年 1 月 22 日發表的 nVIDIA GeForce GTX 960,支援 10bit HEVC (main@10)。 下圖表示有正確啟用 CUVID 硬體解碼。 下圖表示該影片不支援 CUVID 硬體解碼。 LAV Audio Configuration:如果你是使用數位音效輸出,請在紅圈處自行更改配置。 ↙ madVR 參數設置 一般視訊檔案的播放,解碼吃的是 CPU 效能(硬體解碼除外),渲染及硬體去交錯的部分才是吃顯示卡效能,整體而言還是 CPU 最為重要(處理器建議使用第三代 Intel Core i3 等級以上),不過當你使用 madVR 時,GPU 的效能也顯得格外重要!所以若要使用 madVR 的功能,顯示卡等級最好是 AMD Radeon HD 7750 或是 nVIDIA GeForce GTX 650 等級以上比較保險。 進入 madVR 設定畫面。 點擊 Edit Settings。 device type:請依照你的顯示器類型做選擇。 ↙ properties:the display expects the following RGB output levels:這邊建議選擇 PC levels (0-255) 全範圍輸出。the native display bitdepth is:筆者是選擇 10bit 輸出,除非你能完全確定螢幕能夠接受 10bit 訊號輸入,並且顯示卡驅動程式也能夠輸出 10bit,這才去選擇這個選項,如果不能 100% 確定,那還是建議選擇 8bit 輸出即可。HDR peak luminance:選擇螢幕支援的最大亮度,不確定的話選擇 400 nits 也沒什麼問題。 calibration:一般螢幕如果沒有經過校色器校色過的話就選第一項「disable calibration controls for this display」即可。 color & gamma: 相信大部分的人都是未校色過螢幕,所以這邊我們就照下圖設定即可。 ↙ scaling algorithms:1. chroma upscaling:色度升頻,通常我們常見的 YCbCr 4:2:0 的影像檔就是經過色度抽樣的,人眼對色度的改變不及亮度敏感,所以用較多的資訊儲存亮度資訊(Y),較少的資訊儲存色度資訊(CbCr)以節省頻寬,以 YCbCr 4:2:0 而言,水平方向及垂直方向的色度解析度都只有 YCbCr 4:4:4 的一半。舉例來說,一個解析度 1920*1080 的影片,在 4:4:4 的情況下,亮度解析度是 1920*1080,色度解析度也是 1920*1080,但是在 4:2:0 的情況下,亮度解析度一樣是 1920*1080,色度資訊水平和垂直都只取一半,也就是說色度解析度是 960*540。常見的影視內容多半是抽樣成 4:2:0 儲存,因此我們播放一個 YCbCr 4:2:0 的影像檔時,首先要將其色度資訊升頻到原始解析度,也就是 YCbCr 4:4:4,這時就會用到色度升頻的演算法。
2. image downscaling:影像降頻,也就是影像縮小,只要目標解析度小於原始解析度就會用到這部分的演算法。
3. image doubling:指影像翻倍,可以把影片原始解析度的寬和高做兩倍或四倍的放大,這一項是在 madVR 0.87 版後才加入的功能,使用的是 NNEDI3 這個演算法,此演算法原本是在轉檔時用來升頻及去交錯等等處理的演算法,因為其消耗資源過大,速度不夠快到可以拿來做實時演算(real-time),因此一直沒被拿來用在影片播放時使用的升頻演算。而最近Doom9 上有高手重新編寫了這個演算法的 OpenCL 版本,madshi 將之修改之後加入到 madVR 之中實現了此演算法的實時演算,即使如此,這個演算法消耗的顯卡資源仍然相當驚人,但它帶來的升頻效果也是同樣驚人,NNEDI3 演算法是 madVR 目前所有升頻演算法中效果最好的一個,可以打趴一堆高階藍光機號稱的 4K 影像升頻,勝過 SONY 最高階那顆 4K X-Reality PRO 晶片,絕不誇張。(之前就有人比較過 madVR 的 Jinc3+AR 和 SONY 的 4K X-Reality PRO,結論是 Jinc3+AR 略勝一籌,詳見本文,而現在 NNEDI3 又勝過 Jinc3+AR ) 而 NNEDI3 這個演算法從其他升頻演算法被獨立出來放在這裡,主要是因為它只能做 2 的次方倍的放大,所以在大部分的情況下,它是必須跟其他升降頻演算法一起配合使用的。madVR v.0.88 之後的版本又加入了 super-xbr 和 NEDI 兩種算法,作為 NNEDI3 的替代方案,也是一樣只能做 2 的次方倍的放大,不過消耗的顯卡效能比 NNEDI3 要低很多,但也有接近 NNEDI3 的表現。
4. image upscaling:影像升頻,也就是影像放大,只要目標解析度大於原始解析度就會用到這部分的演算法。
5. upscaling refinement:銳化演算法,跟前面的 iamge enhancements 不同,其目的在於改善放大演算後造成的模糊,作用在放大演算之後,屬於 post-processing。如果是 1:1 無放大的影像,這部分勾選了也不會有作用。 資料來源:萬年冷凍庫 chroma upscaling、image upscaling 及 image downscaling 三個細項可以參考筆者的設定。 你也可以依據自己的顯示卡等級自訂設置。 ↙ general settings:delay playback start until render queue is full:建議勾選,可減少開啟影片時的掉幀現象。下面的 delay playback start after seeking, too 不建議勾選,勾了拉時間軸會變慢。enable windowed overlay:不用勾選。enable automatic fullscreen exclusive mode:建議勾選,進入全螢幕時使用獨佔模式(FSE)。disable desktop composition (Vista and Windows 7) 以及 only when media player is in fullscreen mode:如果有使用全螢幕獨佔模式的話,就兩個都一起勾選;如果沒使用全螢幕獨佔模式的話,就不要勾選。use Direct3D 11 for presentation (Windows 7 and newer):勾了會使用 D3D11 模式,必須顯示卡跟作業系統都支援才能用,而 madVR 的 10bit 輸出也必須在 D3D11 跟 FSE 模式底下才能達成,此外 D3D11 模式下從視窗切換到 FSE 模式速度比較快一些,效率較好。D3D11 模式必須使用 AERO,故這裡勾選的話「disable desktop composition (Vista and Windows 7)」會自動失效。底下的「present a frame for every VSync」建議勾選,可減少 presentation glitches 的增加,反之若不勾則能節省一點點效能但有可能 presentation glitches 會變多。use a separate device for presentation (Vista and newer):建議勾選。use a separate device for DXVA processing (Vista and newer):勾或不勾都可。資料來源:萬年冷凍庫 沒有使用 smooth motion 功能的話,這部分維持預設即可。 how many video frames shall be presented in advance:數字依 GPU 能力去設置,一般在 6 - 12 之間,如果有掉格情形就調整看看,使用 smooth motion 的話這項最好開大一點。 trade quality for performance:這頁的選項都是降低品質以換取效能,如果顯示卡效能夠高的話儘可能都不要勾選。
1. 跟外掛字幕渲染器 xy-SubFilter 相關,有使用才有影響。
2. 使用硬解(DXVA)時,同時使用 DXVA 的 chroma upscaling 算法。
3. 使用硬體去交錯時,同時使用 DXVA 的 chroma upscaling 算法。
4. 跟播放器的自訂 pixel sharder 功能相關,有使用才有影響。
5. 勾選的話 dithering 演算會用 gamma light 取代 linear light (gamma light在0.87.7之前的版本是預設使用),取消勾選的話就是使用 linear light,linear light 能提供較好的色彩還原度。
6.、7. 跟debanding的運作有關,勾選的話會取消一些偵測機制。
8. 去掉影片的 BTB (比黑更黑 指0~15這段)和 WTW (比白更白 指236~255這段)的黑位範圍資訊。
9. 跟smooth motion有關。
10.、11. 跟madVR本身的處理精度有關。
12. 跟播放器的自訂 pixel sharder 功能相關,一樣有使用才有影響。
13. 跟螢幕校色選項裡的 yCMS 和 3DLUT 相關,有使用才有影響。
14. 跟 DXVA deinterlacing 有關,勾了就不會把 60i 去交錯倍幀成 60p 而是變成 30p。
15. 跟DXVA有關。資料來源:萬年冷凍庫 影像播放時按 Ctrl + J 叫出的 OSD 上面一些數據的意義:
1. 目前的螢幕更新率。
2. WIN7 以上版本的 AERO 作用時會出現此項,類似垂直同步。
3. 顯示 smooth motion FRC 功能是否啟用。
4. 顯示目前為 D3D9 或是 D3D11 模式;視窗模式、全螢幕視窗模式(fullscreen windowed mode)、或是全螢幕獨佔模式(fullscreen exclusive mode)。
5. 來源檔案的編碼、bit depth 和色度資訊以及解碼器解碼完傳給 madVR 的色彩空間、bit depth 和色度資訊。
6. 影片的幀數。
7. 每隔多久會掉 1 格,這與影片幀數和螢幕更新率的同步程度有關。
8. 影片的原始解析度。
9. 每一個幀容許的繪製時間,這個值跟影片的幀數有關,例如我看 24p 的影片時,這個時間就是 1/24=0.04167s=41.67 ms,也就是說每一幀都有 41.67ms 的時間讓顯卡去處理;如果是 60i 的影片,去交錯後是 60p,這個時間就是 1/60=16.67 ms,由此可見幀數越高,可以處理的時間變短了,對顯卡的處理能力要求的也就越高,也就是說越容易掉幀。
10. on 表示有開 DXVA Deinterlacing ,off 表示沒開,若 madVR 把循序式影像跟交錯式影像判斷錯誤的話請自行用熱鍵 Ctrl+Alt+Shift+D 開關。若切換為 film mode 的話會在下方顯示 film mode 和偵測到的 pulldown 的形式。
11. dropped frames 跟 delayed frames 為掉幀計數器,若數字一值增加表示硬體無法負荷,請降低設定或找出原因。
12. 繪製時間,通常也可觀察 GPU 負荷情形,越好的演算法跟較重的負荷通常會讓繪製時間變多,多到超過 movie frame interval 的時間就會掉幀。資料來源:萬年冷凍庫
喇叭內容也請依照下圖設定。 【影片測試】現在我們已經完成所有設定,趕緊把剛剛下載的 Life of Pi - Ultra-HD HDR 影片播放看看,電視或螢幕的亮度調整至最大效果越明顯! Life of Pi - Ultra-HD HDR 影片資訊,視訊編碼為 HEVC ,輸出格式為 10bit 4:2:0,影片畫格率也從原本的 24p 升頻為 60p。 筆者的 CPU 為 Intel i7-3770,此時使用率已達 50%,GPU 使用率也已超過 50%,看來要順暢享受 4K HDR 影片的效果,其電腦配備不得馬虎呀。 筆者已經先預錄 HDR 開啟的先後比較影片,可以先參考看看。HDR 關閉。 HDR 開啟。 下面也是一系列的比較圖,左邊為 HDR 關閉,右邊為 HDR 開啟。 【寫在後面】4K HDR 是 2016 年電視嶄新的技術之一,也是電視領域迎來一次名副其實的進化,但相對地由於是新技術,各家規範標誌沒有統一標準,各大廠電視製造商所推崇的也不一致,如下圖所示目前有四種 HDR 的規範標誌,筆者不負責猜測這種標準最後有可能是 Dolby Vision 陣營勝出(Ultra HD 聯盟也是不可忽視的勢力),畢竟杜比原本就在電影領域深耕多年,有興趣的同學可以參考這篇文章 - Dolby Vision技術想要革新我們的屏幕畫面杜比握有哪些武器? 目前相關的 4K HDR 影片少之又少:明日邊界、直闖暴風圈以及樂高玩電影等,是目前已知以 Dolby Vision 內容再製作並以 4K 形式發行的 4K HDR 電影,相信未來還會有更多 Dolby Vision 4K 電影的推出,以迎接全面到來的 4K 時代。筆者認為 4K HDR 技術標準規範目前尚未統一,加上擁有 HDR 功能的電視機種都屬於價格不菲的旗艦機型,此時冒然入手實為不明智之舉(口袋很深的不在此限),但是利用本文這小小的技巧就可以讓平價的 4K 電視也可以展現出 HDR 的效果,何樂而不為呢?