家电维修网

 找回密码
 注册
家电维修网 网站首页 电脑维修 查看内容

PC播放HDR有讲究

2018-12-21 11:12| 发布者: 南召修电视| 查看: 1419| 评论: 0

摘要: HDR全称High-Dynamic Range,中文名高动态范围图像,此前我们讲过一些有关HDR的小知识,不过紧接着RTX2080显卡的发布,又激起了不少朋友对画面追求极致的心中涟漪。 不过要知道HDR主要是针对专业的蓝光机等播放器,因 ...

 HDR全称High-Dynamic Range,中文名高动态范围图像,此前我们讲过一些有关HDR的小知识,不过紧接着RTX2080显卡的发布,又激起了不少朋友对画面追求极致的心中涟漪。

      不过要知道HDR主要是针对专业的蓝光机等播放器,因此PC无论是在解码还是渲染还是输出方面,都需要手动详细配置每个环节。并且硬件方面的要求不仅高还很繁琐。

色彩模式(色彩编码)

      电脑屏幕都是液晶屏或者OLED屏幕,发色基础是RGB(red红、green绿、blue蓝)三原色像素点,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩,能够比较完美地将数字信号转换成为可见光。

     不过在电视机上,RGB就不一定适用了。这要从电视机的发展史讲起,在摄制影片时,通常采用三管彩色摄像机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和两个色差总共三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。假如只有Y信号分量而没有U、V信号分量,那么这样表示的图像就是黑白灰度图像。

     彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。

     因此最开始的黑白电视只需显示YUV(亦称YCrCb),色彩空间的明度信号即可完美兼容。由于这个历史原因,视频特别是源于光盘、广播电视信号的视频,基本上都使用YUV色彩空间,直到今天也依然如此。

模式转换

     现在的HDR视频基本来源于UHD BD光盘,因此将YUV信号转换成为RGB信号,也成为了HDR视频播放当中必不可少的一环。Windows自带的EVR渲染器(Enhanced Video Renderer)在这方面的表现不怎么理想,假如解码器输出YUV信号到EVR进行渲染,那么EVR只会进行低精度的转换,大大影响画质。HDR视频的色彩较为丰富,负面影响尤为明显。

     现在流行的视频普遍以8bit、10bit居多;10bit视频对比8bit,灰阶更加平滑,同样画质的视频体积更小,但与此同时解码所需要的性能也提高了不少。

     针对不同位的视频格式,采用的解码器也不一样。

8bit解码

     视频播放器要播放一个视频,流程通常是视频分离器(分离视频流、音频流、字幕等)→解码器(解码视频、音频)→渲染器(渲染出最终图像),YUV转换成RGB这一步,可以发生在解码步骤当中,也可以发生在渲染步骤当中。既然渲染器不给力,那就让解码器来做。

     这里为大家推荐一款比较实用的解码器—LAV(开源免费)。

     下载地址:https://github.com/Nevcairiel/LAVFilters/releases/

     让解码器只输入RGB 8bit信号到EVR中,不让EVR参与YUV→RGB的转换。我们需要借助LAV解码器来实现这点。

     以PotPlayer为例,在PotPlayer的“全局滤镜优先权”一栏,添加系统滤镜或者外部滤镜(取决于你使用LAV安装包还是绿色版,下文以绿色版为例)。将LAV绿色版压缩包解压到一个文件夹,目录不要含中文,添加当中的“LAVVideo.ax”就可以添加LAV视频解码器了。接着将PotPlayer当中的“LAV Video Decoder”设置为强制使用,双击进入设置。可以在“Output Formats”一栏看到各种输出格式。这时候只勾选RGB32、RGB24两个即可,其他都取消勾选。保存设置,如此一来播放器解码的时候就只会输出RGB 8bit信号,EVR渲染器就不会做低质量的转换处理了。

10bit解码

     2015年蓝光联盟正式确定了UHD BD的规格,之后越来越多的片子推出了UHD BD碟片。而UHD BD内的片子规格有几个关键点,分别是H.265(HEVC)的编码,10-bit色深以及HDR色彩(高达BT.2020色域)。因此,10bit色深这个规格越来越多地出现在了各种视频当中。

假如你的CPU足够强劲,那么可以使用软解来播放10bit视频,和硬解相比这也更不容易出错。但是假如你觉得视频卡顿,恐怕就需要考虑硬解了。如何才能正确硬解10bit视频?首先得判断显卡是否有能力支持10bit视频的硬解。

     硬解和GPU相关,先来说说显卡方面。NV的硬解技术为PureVideo,要比较好地解码4K HEVC 10-bit视频,需要PureVideo VP7或以上规格的技术。那么有什么NV显卡支持这个规格呢?到了帕斯卡这一代,包括GP102、GP104、GP106、GP107、GP108核心,全部都配备了PureVideo VP8,硬解4K HEVC 10-bit视频无压力;但上一代就比较诡异了,只有GM206(包括GTX 950、GTX 960)支持PureVideo VP7,其他都只支持VP6。而目前中端一点的显卡价格大家都比较清楚,都上涨了不少。

     至于AMD和Intel的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,已停产),以及Kaby Lake(第七代酷睿)以上才能够硬解4K HEVC 10-bit视频。

     假如你对电脑各个配件不是很了解的话,还有一个最简单的判断GPU是否可以硬解4K HEVC 10-bit视频的方法——使用DXVAChecker这款小软件即可。假如看到“HEVC_VLD_Main10”一栏中有显示“4K”或者“QFHD”,那就说明GPU可以硬解4K HEVC 10-bit视频。

     DXVAChecker下载地址:     http://bluesky23.yukishigure.com/en/DXVAChecker.html

     另外,LAV解码器仍然对于10bit视频拥有较好的解码功能。在LAV解码器当中,可以在“Hardware Acceleration”处选择硬解方式,目前常用的一般是两种硬解,一种是“DXVA2(native)”,另一种是“DXVA2(copy-back)”。

     这两种硬解的区别在于,native会把数据完全交给GPU处理,而copy-back会多出一个回传到内存给CPU处理的步骤。从效率的角度来说,native会更高一些。但是,假如要硬解10bit视频,并不推荐使用native。

     总之,性能足够强劲的话,还是推荐使用CPU软解,容错率要高的多。另外,无论哪种硬解,都只对色彩空间是YUV 4:2:0的视频有效,遇到YUV 4:4:4之类的高规格还是会软解的。

     假如用madVR渲染的话还要注意版本,madVR在0.9之后的版本才开始支持DXVA YUV 4:2:0的10bit解码输入。另外,软解虽然费CPU,但也可以把更多的GPU资源留给madVR渲染器,以获取更高的画质,因此假如CPU性能够强,还是软解更合适。

渲染器

     HDR视频的色域是BT.2020,而电脑显示器绝大多数只能支持色域BT.709;假如直接播放HDR视频,那么色彩甚至会比普通的视频更加黯淡,这时就必须需要渲染器进行处理了。

     这里推荐给大家的是madVR视频渲染器,很早的时候,madVR就已经加入了BT.2020色域转换的选项;而在最近版本,madVR还出现了专门的“HDR选项卡”,在当中就可以设置将HDR色域处理成普通的SDR色彩了。

     madVR下载地址:http://www.madvr.com/

     仍然以PotPlayer为例。将madVR下载后解压到一个文件目录当中。在PotPlayer“全局滤镜优先权”一栏添加外部滤镜,接着添加madVR目录当中的“madVR.ax”或者“madVR64.ax”(取决于系统是否64位),然后将madVR设置为强制使用,双击进行配置。

     在madVR“devices”当中,可以看到当前的显示器,然后展开显示器的菜单,可以看到“hdr”选项。假如你的显示器是非HDR的,那么选中“convert HDR content to SDR by using pixel shader math”即可。当然也可以通过软件自动识别,选择“let madVR decide”,一般情况下都不会发生错误。

     假如你用的是支持HDR的屏幕,例如某些电视机或者高端显示器,那么可以选择“passthrough HDR content to the display”,这样会直接把HDR不经由转换,原封不动地进行输出。而假如你用的是广色域屏幕但色域不是BT.2020,例如色域是Adobe99%的设计专用屏幕,可以选择“process HDR content by using pixel shader math”,这样HDR色彩会经过转换处理,显示更加准确。

     而假如你的屏幕经过校色仪校准,并且让校色软件(例如DispalyCal)生成了3DLUT校色档案,并且校色软件支持将其输出到madVR当中,那么可以选择选项后带有“using an external 3DLUT”的选项,一般情况下就不要选了。

     当然使用madVR渲染器的缺点就是比较吃GPU资源,假如你用的是目前主流的中高端显卡,那么madVR值得强烈推荐。

音频设置

     虽然这里讲的是HDR画面,不过你的音频输出设备只是普通的2.0、2.1音箱甚至只是耳机,那么声音可能就会出现破音等失真的情况,会对影片的观赏性大打折扣。

     LAV滤镜也提供了解决方案。仍然以PotPlayer为例,将“LAVAudio.ax”添加到PotPlayer当中并设置强制使用,然后双击“LAV Audio Decoder”进行配置。点击“Mixing”选项卡,这里面的功能是和混响相关的,可以将多声道混响为双声道的立体声。勾选“Enable Mixing”,并选择“Stereo”,然后确保“LFE Mix Level”数值为0即可。如此一来,就算用双声道的音箱、耳机播放环绕声的HDR视频,也不会出现破音等情况了。

     PS:假如观看的是正版UHD BD碟片,播放软件不能使用PotPlayer这样普通的播放器了。正版的UHD BD带有AACS 2.0防盗版技术,需要经由认证的软件才能播放。目前只有正版的PowerDVD才可以播放UHD BD,破解版的无法播放。这个软件并不便宜,支持UHD BD的版本售价为580元人民币。不过购买某些UHD BD光驱,可能会获赠这一软件。

     其次,要播放正版UHD BD光盘还需要CPU支持SGX。该技术是英特尔特有,而且只存在于部分Kaby Lake以及Sky Lake之后的CPU中,AMD所有平台、英特尔的X99等其他平台的CPU一律无法播放版权限制的UHD BD。也就是说要看正版4K HDR蓝光碟,AMD平台再贵也不行。

最新评论

电脑维修热门推荐文章

QQ|门户地图|网站地图|家电维修|手机版|家电维修技术论坛 ( 蜀ICP备14030498号-16 川公网安备51102502000162号 )

GMT+8, 2025-5-1 21:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部