马上注册 Hao8k.cn ,获得更好的体验,让你轻松玩转Hao8k
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
教你电脑播播放4K HDR电影/视频的正确姿势 带你了解RGB色彩编码和YUV色彩空间的区别% ~" k9 H6 O. I" h$ C
/ y: @2 S6 f4 S. @; o
这几年HDR不能说不火,不管是电脑、手机还是电视都要往自己头上加个HDR,而在影音发烧友眼中,如果电影不带HDR,这感觉简直就是没法看一样,一下子会变的毫无兴趣。的确带不带HDR如果对比真的很明显,但是也不得不说,在追求这些新鲜概念的同时也伴随着很多“新坑”,这其中最复杂的就是这些PC的软硬件电脑平台,如果不认真做点功课,放出来的HDR效果真的是不如普通不带HDR的电影!我想这点肯定是有不少人深有感触吧?8 Z# L/ r5 [. `' v4 ?# n+ V
( H$ \& ]" {3 g7 Y9 M4 j电脑播放4K HDR的坑都有哪些?1 \6 p. e2 H; ]0 X0 x
其实大家都知道电脑并不是为了专门播放电影/视频而设计的机器。电脑在和专业的蓝光播放机(那怕是现在普通的4K播放机)相比,不管是在解码、渲染还是输出方面,在没有在一套完整成熟的一键安装方案出现之前(傻瓜式万能播放器),都是需要我们自己动手去设置每个参数细节的!硬件方面也是为了能够完美播放现在的一些内容也是需要我们自己去换新的硬件,那怕是HDMI线版本都是要考虑在其中的!所以在电脑播放4K HDR电影/视频时不管是硬件还是软件都需要考虑的比较多!* o; I' w9 v7 Q8 l4 M. W1 n
+ E; w) w; Y% p* j
软件方面播放4K HDR电影/视频我们需要注意什么?6 X, F. r! Z- n$ }# F7 W; E" @
首先就是要可以正确处理YUV和RGB色彩,在视频文件参数中,视频的色彩编码有几种不同的类型,但比较常见的就是YUV和RGB。(大家可以自己留意下)
2 n1 A" X$ f, d4 H4 V. a m5 l那这个是什么意思呢?因为在现在这个数字信息化时代,要让电脑能分辨出我们自然界的这些颜色,就需要对这些颜色进行编码,那么在RGB的体现里面,颜色就是用红、绿、蓝这三中不能的参数来表示的。例如大家可以看到PhotoShop中纯红色的编码是(255,0,0)
A& x# X* g3 r
8 H) [5 A$ m" P0 a8 ]; s! v+ _- ~5 dPhotoShop支持多种色彩空间,例如RGB、CMYK等
" Y$ w2 f/ X+ j: E, U) {- e% q: S3 q! H3 m( P% a& f
RGB色彩编码和YUV色彩空间/ J5 A! z B/ Q$ C
另外RGB也并不是唯一颜色编码的方法,颜色除了可以用红绿蓝混合显示,也可以用明度、色度和浓度来表示。简单说红绿蓝混合显示是RGB的颜色编码方式,那明度色度浓度的颜色编码方式就是YUV。
: `8 E4 V: O" v% r% m. d0 X懂一点的朋友肯定会问,RGB三原色效果就很不错了啊,现在很多机箱里面都光污染都用的是GRB的等,为什么一个颜色编码要搞这么复杂的体系啊?
$ e+ _* i# b& g' K5 j* @( R: [其实这个是和显示介质有关的,电脑上我们用的电脑显示器是液晶或者OLED屏幕,它们发色基础是RGB三原色像素点,配合RGB系统的色彩空间可以很完美的将数字信号转成可见光。但是到了电视上GRB颜色编码就不一定实用了,和显示器相比电视的历史要更悠久些,在最初的电视都是黑白电视,显然黑白电视是无法兼容RGB信号的,但如果使用YUV色彩编码系统就不一样了,黑白电视只需要显示YUV色彩工具的明度信号就能完美兼容了。可能就是由于这个历史遗留下来的原因,现在的视频、特别是源于光盘、广播电视信号的视频到现在基本都是使用YUV色彩编码,目前看到今天也是如此的!
! z, K; K" i) V t5 y
6 `" @# ^! C$ ^8 } _% J配合电视工作的设备,一般支持输出YUV,例如PS41 }- }+ U" H: u) _' f
上面说了那么多,其实主要原因就是因为现在的HDR视频大部分都源于UHD BD光盘,所以要将YUV信号转为RGB信号就成了播放HDR视频里面必不可少的一环。更为遗憾的是Windows自带的EVR渲染器Enhanced Video Renderer表现很不理想,达不到大家想要的效果,如果解码器直接输出YUV信号到EVR进行渲染的话,那么EVR只会进行很低精度的转换,转换的效果画质很差!而且我们知道HDR视频的色彩很丰富,当WindowsEVR渲染YUV信号时效果很不理想!完全达不到我们要的效果!
7 a4 b# X3 w# g$ a那么怎么解决这个问题呢?有两个办法:
* r7 }9 I% C' V/ L1 r6 M第一让解码器只输入RGB 8Bbit信号到EVR里面,不让EVR参数YUV到RGB的转换。但是我们需要借助LAV解码器来实现这一点。
4 J) [8 O' J% u/ o0 j# @我们需要明白视频播放器播放视频流程通是:视频分离器(分离视频流、音频流、字幕等)到解码器(解码视频、音频)再到渲染器(渲染出最终图像)。) _9 s3 m5 P* M1 }0 n
YUV转换成RGB的这一步可以发生在解码这一步,也可以发生在渲染这一步当中!那么既然我们的WindowsEVR渲染器不给力,就还可以让解码器来做! 那LAV就是现在目前来说电脑上最强的解码器,难能可贵的是LAV是开源免费的,点此进入LAV的GitHub项目中下载相应版本
( s6 D2 Q( v) Z" _大家可以下载安装包也可以下载ZIP包的绿色版:(按照自己的实际情况和个人喜欢选择最新版本下载即可)
# Q6 @: U3 S( x
, a! w& c- R; v; o$ V+ B6 g8 r
怎么才能让播放器使用LAV解码呢?" s7 W. @( S1 X+ n( I, N! G
我们以PotPlayer为例,在PotPlayer的“全局滤镜优先权”一栏,添加系统滤镜或者外部滤镜(这个取决于你使用LAV是安装包还是绿色版,我们以绿色版为例)。将LAV绿色版压缩包解压到一个文件夹,目录里面不要含中文,添加当中的“LAVVideo.ax”就可以添加LAV视频解码器了。
! n2 l' q3 G; Z5 v1 K/ U* J; Y
: c1 L' @5 b% H4 _/ W, D
如图:先找到红框1标注的 PotPlayer的“全局滤镜优先权”,再点2击添加外部滤镜 ]1 q5 f$ Y8 ]1 D- W
% `' q3 d* H1 h9 I; A( w- y0 D3 w
将红色框里添加“LAVVideo.ax”为外部滤镜
1 D9 d, q# L9 k, z3 t接着,将PotPlayer当中的“LAV Video Decoder”设置为强制使用,双击进入设置。
! C% J' J/ n$ b, a
) |. l2 L& `! c+ z6 R9 B* K如下图可以在“Output Formats”一栏看到各种输出格式。这时候只勾选RGB32、RGB24两个即可,其他都取消勾选。: a. f% d1 L( m; G
保存设置,如此一来播放器解码的时候就只会输出RGB 8bit信号,EVR渲染器就不会做低质量的转换处理了。
" X9 g6 O+ o8 o) S
_/ J# q2 x- A0 [( r* k选择只勾选RGB32、RGB24两个即可。
8 }( a( e& Q6 i+ f/ V6 c上面就是我们说的第一个办法,下面再说另外一个办法!
" d- z5 R% ~) A' C( [第二个办法就是换更好用的渲染器比如madVR' s* U- \: w q4 A! T7 K t7 R
关于madVR电脑上播放4k电影的朋友肯定都不陌生,madVR可以说是目前电脑上画质最好的视频渲染器了,它可以很高质量的去处理YUV到RGB的转换。
" K+ c* ?, g5 `7 f9 H; ZmadVR渲染教程我们论坛有很多大神发了很多详细的教程,我在这里就不详细介绍了。其实有不少网友都在问如何解码10Bit,因为现在很多带HDR的电影视频都是10Bit。$ @! L+ Q/ }+ j: a( a
那么怎么顺利解码10bit?
* L) f6 b/ T( B# p+ _( K如何顺利解码10bit呢?其实现在主流的视频还是以8Bit居多,但是现在很多带HDR的电影/视频的色深都是10bit,那10Bit和8Bit想对比的话灰阶更加平滑,在同样的画质下4K电影视频的体积也更小一些,但是要解码10bit我们电脑所需要的性能也是要提高不少才行!
* t& G) R+ e4 q为什么HDR视频会使用10bit?
, V/ w; s$ b1 l$ a9 g7 ?0 T, R& |原因是因为蓝光联盟的推动,在2015年蓝光联盟正式确定了UHD BD的规格,之后的几年大部分电影都推出了UHD BD的碟片,而UHD BD的电影规格有几个关键点,分别就是我们知道的H.265(HEVC)的编码,10-bit色深以及HDR色彩(高达BT.2020色域)所以10bit色深就越来越多的出现在各种4K电影/视频中。我们可以留意下我们平时下载的电影格式!1 M: s9 x. @1 Q
, x# I( y; V, p) g1 f8 X: d; F
; U! `, f( ?% `9 c上面说了一部正常的HDR原盘电影/视频里面的参数包括了 h.265(HEVC)、10bit色深、BT.2020色域、YUV4:2:0色彩空间,如果你的CPU足够强大,那你完全可以使用软解来播放10bit的视频,但是要是播放的时候卡顿,那么你可能就要考虑硬解了,怎么才能正确硬解10bit?首先要判断你的显卡是不是支持10bit视频硬解的条件,因为硬解是和GPU相关嘛!. Z( i f5 V2 r: {: G/ K
延伸阅读:windows电脑要什么配置的显卡/GPU才能硬解播放4K HDR电影/视频
* L) C. l) L: H. n1 C8 K怎么正确配置解码器
4 l+ v9 U |! c还是以LAV解码器为例,因为这个是目前来说是能比较好解码10bit的解码器,在LAV解码器设置当中,我们可以在“Hardware Acceleration”这个选项中选择硬解的方式,目前比较常用的有两种硬解方式,一个是“DXVA2(native)”,还有一个是“DXVA2(copy-back)”。(下图红色方框内)
+ }1 V: \1 v2 Y
% } f+ y: v+ Z3 q9 m" _; V大家如果软解的性能不够需要硬解的话推荐使用DXVA2(copy-back)3 N; y6 @3 ]& ~; ]
这两种有硬解有什么区别呢?7 X* _3 U+ o. @5 G6 O2 l
两种硬解区别在与native会把数据完全的交给GPU处理,而copy-back则会多出一个回传到内存给CPU处理的步骤。从效率角度来说native的效率会更好一些。但是要硬解10bit电影并不推荐
3 `6 m. w# {" z, F. T为什么要选择DXVA2(copy-back)硬解?' \6 t I, W5 Q- R( N! |
第一:6 Q$ i* b2 D z1 l3 Z% m, t! W: G
使用native硬解,某些GPU在解码时可能会出现问题,比如AMD RX显卡使用native解码10bit时可能就会出现问题,但NV的GTX10X0的显卡就不会,当然我们肯定不能说AMD RX显卡就不好,我们也不能判断某些显卡使用native解码会不会正常工作,但用opy-back解码大家普遍反映都是没问题的!
/ y2 }) I* L# ?" t# e9 _第二:7 Y/ G' L4 S( [* x+ S! O% j1 N
使用native解码会强制使用YUV输出(在LAV设置了RGB输出也不行),上面我们也说了使用EVR渲染器的话电影画质没有那么好。所以你如果想要用显卡硬解10Bit电影的话,那么推荐你使用LAV解码器当中的DXVA2 copy-back的方式硬解。5 ^1 F7 c/ Q# ? C
但是如果你的电脑性能强劲我更推荐CPU软解,因为这个是最不容易出错的。因为不管是那种硬解都只是是对YUV 4:2:0色彩编码的视频有效,而当遇到YUV 4:4:4这类型的高规格色彩编码是还是会软解的!另外:如果用madVR渲染的话要注意选择版本,要选择madVR在0.9之后的版本,因为在0.9版本才可以支持DXVA YUV 4:2:0的10bit解码输入。需要提醒的是,软解虽然比较废CPU,但同时它也可以把更多的CPU资源留给madVR渲染器一获取更好更高的画质,所以如果CPU性能够好,推荐还是软解合适!: p: g- v. G Z& |# e! Z
来源:{互联网资源整理收集,如有请侵权,请及时联系删除} & e) U5 N7 O& J: a, \9 s" D; q
|