注册 | 登录

游侠NETSHOW论坛





游侠NETSHOW论坛 游侠NETSHOW论坛 游侠硬件信息交流发布区 【原创】10bit视频编码——特性及全面播放方法介绍(201 ...
查看: 28948|回复: 48
打印 上一主题 下一主题

[原创] 【原创】10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)  关闭 [复制链接]

帖子
2976
精华
1
积分
1800
金钱
2708
荣誉
11
人气
18
评议
0
跳转到指定楼层
楼主
发表于 2011-8-27 14:44:29 |只看该作者 |倒序浏览
本帖最后由 mawen1250 于 2012-1-23 14:29 编辑

测试用视频:
http://115.com/folder/fdon21ks

一、前言

      10bit视频的播放,想偷懒的人可以直接用最新版MPC-HC、Potplayer、mplayer、QQ影音等播放器,或者使用各种解码包的最新版(都是使用ffdshow/LAV实现解码的),其内部解码器都是基于ffmpeg(libav)的。这些播放器和解码器中用的色彩转换也基本都是libswscale,所以有部分会出现色彩空间转换上的错误以及dither方式的不恰当。并且由于10bit YUV到8bit YUV再到8bit RGB的坑爹转换过程使损失也大大增加(前一步对于10bit而言还有dither的过程,可以增加一定的精度,8bit视频播放就是做了后面的一步,所以即使这样10bit的效果也还是比8bit重编码的情况好不少)。
      于是对回放质量(8bit、10bit都能受益)有追求的可以参考下面介绍的基于MPC-HC使用madVR的播放教程,也可以看VX的播放攻略,其中也包括对于电脑性能不足的情况的解决方案:http://www.vempx.net/article/552.htm

      关于10bit视频播放对电脑性能的要求,主要是不支持硬解(包括DXVA、CUVID、QuickSync),所以要靠软解,而目前软解10bit视频效率最高的就是LAV Video Decoders,基本上短时码率不超过30Mbps的话现在的双核CPU都能应付。但为了最佳的回放要靠madVR渲染器,而madVR内部各种mad的处理过程靠的不是CPU,而是GPU的Shader,也就是说显卡不能太差,显卡要能支持DX 9.0c,显存最好在384MB以上,对显卡性能的要求我没有什么可以参考的依据,只知道我自己笔记本上的GT420M和HTPC上的HD5550都毫无压力。



二、10bit的优势

      有关10bit重编码的优势,实际上就是用更高位深来进行数据的有损编码的优势,而且bit越高效果越好。最简单的一句话就是,压缩率更高,以更低的码率提供更好的还原效果,这已经足够具有意义了。
      在二进制下对8bit的源数据进行有损编码,造成相同量化损失时,以8bit为100%的error(残差)时,9bit为50%的error,10bit为25%,12bit为6.25%……所以在HEVC(也就是H.265)里有个叫IBDI(Internal bit depth increase)的技术,就是用12bit的内部精度来进行8bit源数据的重编码。
      例如:
      8bit源数据:  10011010
      8bit量化后:  10011011
      10bit量化后:1001101001
      12bit量化后:100110100001

      当然相同量化时肯定是bit越高的数据占的容量多,但由于损失程度的降低,综合下来的结果是,相同码率下高位深编码的还原程度始终大于等于低位深。
      而其实在目前的大部分有损音频编码里,不管输入的是16bit整数还是24bit整数,其内部都是用32bit浮点数来进行编码的,能大大减小error。至于为什么不在视频里用浮点数编码,可能的原因之一是,目前最强的桌面级CPU也只能勉强解码一个浮点数编码的1080p 24fps视频。

      至于你想说:“我只有8bit的显示设备,10bit有什么用呢?” 这不是什么问题,因为最终是要靠dither(抖动)转换成8bit RGB的,事实上madVR内部是不管你8bit还是10bit输入,都先升到16bit进行处理,最后再dither成8bit RGB32进行输出,所以它才能实现最高精度的转换和最小的error。
      而且最近还有这么一篇文章,对不同位深的YUV空间的色彩数量进行分析,发现8bit YUV转换成RGB后远远到达不了8bit RGB的16777216色(目前大部分高清视频就是属于8bit-Rec709的情况),只有用10bit及以上精度YUV转换为8bit RGB才能达到16.7M色:http://goldenhige.cocolog-nifty. ... gb2416777216yu.html

      另外也可参考这里ta流氓软件王所说的:http://tieba.baidu.com/p/1356709843?pn=2



三、对比测试

      我对10bit与8bit编码的客观测试结果,横轴为码率,竖轴为1/(1-SSIM),SSIM(结构相似度)是一种衡量两画面间相似度的算法(在这里是编码后的视频和源视频的比较)。另外我这里出于个人需求顺便对mbtree的情况做了测试,对此不感兴趣的可以无视。

上图以Clannad AS EP01的3654-17653帧(正片的大约前一半,不含OP)为测试片段,代表典型动画的情况。
下图以The Dark Knight的1273-9327帧为测试片段,代表电影的情况,而且是全部IMAX的片段,噪点也比较少,可以看作高画质片源。


      上图中可以看到同样达到200的1/(1-SSIM)时,8bit需要4500kbps,而10bit只需要1200kbps,这样的优势我觉得不需要多说什么了。
      根据我的经验,10bit对于gradient(梯度变化)的画面(特别像是暗场之类的)优势特别明显,客观上SSIM值很高,主观上基本不会产生banding(色彩过渡区域的色带)。
      当然我也遇到了个别奇葩片源比如龙珠Z的BD-BOX,非常强的动态噪点,crf=20跑出来了25Mbps的码率,而且这时10bit和8bit重编码的差距基本可以忽略。



四、播放相关

我更新这篇文章时(2012.1.18)所使用的软件及版本:
Media Player Classic HomeCinema (x86), 1.5.3.3971, BE Mod
ffdshow tryouts project, svn 4257 (x86) - MSVC2010
LAV Filters 0.44
madVR 0.80
Haali Media Splitter v1.11.288.0
Reclock 1.8.7.7

下面我以基于MPC-HC的播放设置为例,其他播放器的做法也类似。


播放推荐使用的软件/滤镜:

1.(推荐)MPC-HC播放器下载地址:
http://www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64/

http://xhmikosr.1f0.de/index.php?folder=bXBjLWhj
下载x86版本

2.(可选但推荐)LAV Filters——分离器/音视频解码器下载地址:
http://forum.doom9.org/showthread.php?t=156191

http://xhmikosr.1f0.de/index.php?folder=bGF2ZmlsdGVycw
下载“Installer (both x86/x64)”,也就是安装版,使用最方便
安装时注意勾选FLAC的分离、解码支持

3.(推荐)madVR渲染器下载地址:
http://forum.doom9.org/showthread.php?t=146228
下载以后解压出来的madVR文件夹放在纯英文目录中,然后双击里面的install.bat即可注册好,注意保留这个文件夹。

4.(可选)Haali分离器下载地址:
http://customers.corecodec.com/downloads.php

http://www.free-codecs.com/haali_matroska_splitter_download.htm
mkv还是更推荐使用Haali Media Splitter作为分离器,因为它能支持文件间的Link,比如一些把OP、ED切到外面去的压制,然后播放正片时会自动根据UID在指定的章节连接到那些文件。
如果不需要这个功能的话,LAV Splitter就够用了。
但是Haali有个霸道的设定,改变了H.264的MediaType,导致一些解码器无法正常调用(我这里用到的LAV和ffdshow没有问题),所以如果需要用到其他一些解码器的话在Haali的设置里将Output——Use custom media type for H.264设为No。

另外现在也有个AV Splitter,支持更多自定义的高级功能,喜欢折腾的可以尝试。

5.(可选)ffdshow tryout解码器组件下载地址:
http://www.xvidvideo.ru/ffdshow-tryouts-project-x86-x64/

http://xhmikosr.1f0.de/index.php?folder=ZmZkc2hvdw
下载x86版本,Intel的CPU可以选icl12编译版,MSVC2010编译版通用。

6.(可选)Reclock下载地址:
http://forum.slysoft.com/forumdisplay.php?f=85
我主要是用到了它的WASAPI独占输出,可以实现音频解码后的PCM信号bit exact输出至音频设备(不受操作系统的混音、重采样影响)。

7.(可选)xy-VSFilter下载地址
http://code.google.com/p/xy-vsfilter/downloads/list
一个国人基于VSFilter 2.39进行优化修改后的VSFilter,对于ASS字幕播放的效率大大提高,也能支持10bit/16bit的输入/输出,自动根据分辨率判断BT.601/BT.709进行RGB转换……

备注:
现在LAV Filters、madVR、xy-VSFilter间正在研究新的滤镜间的通信方式,比如最近LAV和madVR同时放出测试版,前者支持DXVA2硬解码(仅用于Win 7/Vista),并且想办法将硬解后的视频从显存中抓回来以NV12输出(以前硬解后的视频就直接交由显卡处理后输出至显示器,所以存在各种限制),然后可以输入ffdshow做后处理、VSFilter渲染字幕,并可以用madVR来渲染……
而xy-VSFilter和madVR也在研究新的字幕的传递、渲染方式。目前无论是VSFilter将字幕渲染在解码器输出的视频流后再给渲染器处理(Resize、RGB Conversion)的方式,还是MPC-HC内置字幕引擎将字幕渲染在渲染器层(已经过RGB转换、resize和加黑边)的方式,都存在其固有的弊端,今天ANE也有篇新文章讲到了这个问题:http://afternoonnapsempire.org/subtitle-renderer-matters/



五、播放设置图文教程

      要强调一点以避免人误会,以下的播放设置是全方面播放设置的教程,也是我自己使用的方案,但只有一部分是关于10bit的(实际上对8bit也一样,这样做是最有利于回放效果的)。
      所以如果只是为了完美回放8bit/10bit H.264视频,只要安装并在渲染器里选择madVR就可以了,可以参考VX的播放攻略:http://www.vempx.net/article/552.htm

1.字幕设置




2.滤镜调用设置




3.滤镜内的设置










4.渲染器设置







另外补充一点,Reclock本身是开发出来用于音视频同步、PAL降速等工作的,所以其工作与频率密切相关,如果你的CPU超频或降频了很可能会出现播放速度上的问题,这时你只能不用Reclock或者恢复默认频率。

5.播放时的音视频流切换


已有 10 人评分金钱 荣誉 人气 收起 理由
sglznc + 1 嘿、帖子又复活了、支持
feijianfei + 50 + 2 精华文章!
Exploration + 30 + 3 + 3
HEROYOURS + 30 + 1 + 2
rocketboylose + 120 + 4 + 3 我很赞同~
bin168go + 3 很不错啊
pwch + 2 我只能给这么多
flashs + 1 挺不错
qaqaqaqqa + 1 技术贴,值得收藏慢慢看
DragonR + 10 码字辛苦。。。

总评分: 金钱 + 240  荣誉 + 10  人气 + 16   查看全部评分

使用道具 举报

常盘台ACE☆御坂美琴
Only My Railgun

大头像勋章活跃勋章荣誉勋章特色头衔勋章人气勋章·高级人气勋章·初级综合区荣誉会员勋章

帖子
207529
精华
1
积分
110883
金钱
333862
荣誉
439
人气
25288
评议
0

沙发
发表于 2011-8-27 14:46:09 |只看该作者
LZ的ID看起来挺眼熟,LZ头像是我们家NAYUKI。。。{:17:}

使用道具 举报

帖子
2885
精华
0
积分
1454
金钱
6872
荣誉
1
人气
11
评议
0
板凳
发表于 2011-8-27 14:54:22 |只看该作者
MPC-HC播放器一直都在用{:00:}

使用道具 举报

白金会员勋章活跃勋章

帖子
23966
精华
1
积分
12480
金钱
29573
荣誉
23
人气
666
评议
0
地板
发表于 2011-8-27 14:54:34 |只看该作者
看得眼好花...小龙人码个辛苦分给他吧...
AV数字音频耳机(光纤、同轴、HDMI外解码套机,所谓的定位准不准的软件问题就是看你蠢不蠢,雷蛇surround和Circle Surround@II还有华硕声波雷达、创新雷达APP大家都知道):
拜亚动力:HeadZone Home 5.1(DT880配套)(AC3/AAC/DTS)
铁三角:DWL5000/5500/3300(唯一一款入耳)(AC3/AAC/DTS)、DCL3000(多个杜比LOGIC II)
森海塞尔:RS220(AC3/AAC)
先锋:SE-DIR800C II、DIR1000C、SE-DRS3000C(AC3/AAC/DTS)、安桥shido系列(先锋的马甲)
SONY:MDR-XXXXDS系列(7500ds以上才是有DTSHD和TRUEHD次世代解码)、HW700DS(同支持到DTSNEOX次世代)、IFXXXX系列、RFXXXX系列、脉冲精英系列(SONY没有HDMI而有光纤的也全部支持到DTS)、DS3000/5100/6000/7000/8000
HUHD:HW399M、M993、HO-939MV、Sound Intone398(AC3/AAC)还有两款未知型号的有DTS,深圳八达晟没标HUHD的品牌LOGO
乌龟海岸:所有Turtle Beach TBS(XBOX系列即XP或者PX或者X的系列)原版和官翻、I30/I60、Z300、精英系列(乌龟只有I60和精英PRO有松下DTS HEADPHONE X,其他全部为AC3/AAC)
骷髅头:SMPYFY-003(AC3/AAC)
ASTRO:GAMING A40/50(AC3/AAC)
EX-Sound:Coral III H(AC3/AAC)
赛钛客/美加狮:AXPRO/AXPRO+/AX120/AX180/AX720/AX720+(AC3/AAC)武士之刃HD(松下DTSHX,HDMI就是个摆设)
赛睿:西伯利亚350(松下DTS-HX)、A5、H、800(AC3)
Sharkoon:极之音系列(SR、SP也是USB到外解码器,AC3/AAC)
松下:RP-WH5000/7000、WF6000-K、WF7-K(AC3/AAC/DTS/DTS ES,新系列DTS HEADPHONE X非数字音频接口)
其他:山寨厂赛德斯(不标了,都是松下DTSHX)、sunnytech的LTB-AC3(AA3/AC3)、飞利浦SHD9200(未见评测)罗技雷蛇比钢厂更惨故不列入表单,创新驱动得罪过本人故不入围

使用道具 举报

帖子
1190
精华
0
积分
595
金钱
1135
荣誉
0
人气
4
评议
0
5#
发表于 2011-8-27 14:55:14 |只看该作者
ffdshow就已经支持10bit解码了,不需要再装lav decoder
关键是madvr开内置解码器

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

沙之感染者
Clear Sky☆史前ζ沙鹰

帖子
5247
精华
0
积分
2655
金钱
7240
荣誉
3
人气
14
评议
0
6#
发表于 2011-8-27 16:21:09 |只看该作者
日,太详细了吧......................................
i7 920                     华硕P6T-D-V2             U120E
GTX285                      HP LP2475W          西数640蓝盘R0
LIANLI P80                    罗技G9X              无源2.0
ANTEC SG850                   罗技G15           创新X-Fi Platinium

使用道具 举报

帖子
2976
精华
1
积分
1800
金钱
2708
荣誉
11
人气
18
评议
0
7#
发表于 2011-8-27 16:52:34 |只看该作者
本帖最后由 mawen1250 于 2011-8-27 16:55 编辑

回复 jocover 的帖子

ffdshow还是只支持8bit输出到渲染器,而LAV支持10bit、16bit输出给渲染器,配合madVR使用效果最好(resize、同步、渲染时都有10bit的精度)。当然,反正最后都是8bit输出给显示器,所以差别也并不那么大。但是目前都是8bit的片源,Avisynth这种frameserver也只支持8bit的滤镜处理(如果能处理10bit的话,就可以开发出一些滤镜在色彩渐变区域加入更多的色彩,更完美地去除banding),所以即便能10bit输出给显示器,也没有多少作用。

使用道具 举报

帖子
2976
精华
1
积分
1800
金钱
2708
荣誉
11
人气
18
评议
0
8#
发表于 2011-8-27 16:57:19 |只看该作者
本帖最后由 mawen1250 于 2011-8-27 17:00 编辑

回复 DragonR 的帖子

我2008年时经常在硬件区活跃的……而且是忠实A fan。
Nayuki在京都版Kanon里就是卖萌的,明显被路人化了;在东映版Kanon里我觉得好悲剧,是两部Kanon里最让人感到忧伤的部分;游戏么暂时还没玩过。

使用道具 举报

常盘台ACE☆御坂美琴
Only My Railgun

大头像勋章活跃勋章荣誉勋章特色头衔勋章人气勋章·高级人气勋章·初级综合区荣誉会员勋章

帖子
207529
精华
1
积分
110883
金钱
333862
荣誉
439
人气
25288
评议
0

9#
发表于 2011-8-27 17:41:46 |只看该作者
mawen1250 发表于 2011-8-27 16:57
回复 DragonR 的帖子

我2008年时经常在硬件区活跃的……而且是忠实A fan。

哦,好久不见啊。。。

使用道具 举报

帖子
7125
精华
0
积分
3588
金钱
11960
荣誉
2
人气
54
评议
0

10#
发表于 2011-8-27 19:36:19 |只看该作者
.......看半天完全没发现想要的信息...........
提问
同码率同分辨率下...10bit能比8bit文件小多少?

坐等QQ影音支持........

使用道具 举报

帖子
2976
精华
1
积分
1800
金钱
2708
荣誉
11
人气
18
评议
0
11#
发表于 2011-8-28 01:01:27 |只看该作者
本帖最后由 mawen1250 于 2011-9-27 22:55 编辑

回复 Fin... 的帖子

10bit压制平均可以提升25%的编码效率。
那种什么XX影音用的无非就是ffmpeg(libav)、lavf这种开源的通用解码器,只不过这种开源软件更新速度是每几天一次,而那种XX影音搞不好还在用半年前一年前的版本。
LAV Video Decoder用的是lavf,mplayer、ffdshow、madVR用的就是libavcodec

使用道具 举报

帖子
2088
精华
0
积分
1046
金钱
5235
荣誉
0
人气
5
评议
0
12#
发表于 2011-8-28 07:15:34 |只看该作者
科普贴,感谢LZ了,我前天在思路下了个14个多G的现代启示录就是10BIT的,下完看的时候就是颜色不正常,并且有色块!
游戏机                    HTPC
cpu:qx6800                           E6300
gpu:华硕GTX570 DCUII 索泰GTX260+(公版)
monitor:LG IPS277L-BN            松下42等离子
mb:技嘉EP45C                       P5B
hd:镁光M4128G+500G+500G+2T+1.5T+2T       希捷1T
power:海盗船TX550M        安钛客np500
keyboardmouse:雷柏V5机械 MX518加强版 8300无线套

使用道具 举报

帖子
7125
精华
0
积分
3588
金钱
11960
荣誉
2
人气
54
评议
0

13#
发表于 2011-8-28 08:08:55 |只看该作者
mawen1250 发表于 2011-8-28 01:01
回复 Fin... 的帖子

10bit压制平均可以提升25%的编码效率。

就是因为有我这样的懒人,这种播放器才会有人用

因为不是谁都高兴去慢慢调选项的,我只需要打开就能放即可

25%很可观呢{:00:}

使用道具 举报

帖子
3676
精华
0
积分
1872
金钱
1374
荣誉
3
人气
23
评议
0

14#
发表于 2011-8-28 12:09:05 |只看该作者
现在10bit压缩普及了吗?看视频对色带和色块感觉很不爽

CPU:Intel E3 1230 V3+TS120I      M B:Asrock H87 Fatal1ty
GPU:HIS R9 270X IceQ *2            RAM:CMZ81600C9*2
HDD:ST3T*2+M550 256G            POW:SS G650
BOX:CM RC692                           D P:DELL U2414
KEY:PLU G3000 Red                    Mouse:LOGITECH G500+GTFS

使用道具 举报

荷兰队之晨光 芒茫
暗夜精灵 龙鹰 旅行者

活跃勋章大头像勋章白金会员勋章

帖子
50349
精华
1
积分
25867
金钱
16541
荣誉
47
人气
168
评议
0

15#
发表于 2011-8-28 12:27:50 |只看该作者
相比动画...........一些演唱会的LIVE更能看出视频压缩质量的优劣吧~

使用道具 举报

帖子
324
精华
0
积分
162
金钱
4005
荣誉
0
人气
1
评议
0
16#
发表于 2011-8-28 14:11:09 |只看该作者
不支持硬解,暂时只是HTPC玩家的宠物

使用道具 举报

秒速5センチメートル
呢喃的歌声
红尘飘逸 游骑兵
速攻·點石成金

帖子
6018
精华
2
积分
3792
金钱
668
荣誉
37
人气
84
评议
0

17#
发表于 2011-8-28 14:14:59 |只看该作者
{:00:}好帖,搭车求教下游戏视频压制,非常感谢

使用道具 举报

帖子
2976
精华
1
积分
1800
金钱
2708
荣誉
11
人气
18
评议
0
18#
发表于 2011-8-29 00:22:29 |只看该作者
回复 小强里昂 的帖子

只要压制没有问题,出现色块就说明你用的解码器不支持10bit

使用道具 举报

帖子
2976
精华
1
积分
1800
金钱
2708
荣誉
11
人气
18
评议
0
19#
发表于 2011-8-29 00:23:38 |只看该作者
本帖最后由 mawen1250 于 2011-8-29 00:32 编辑

回复 mango36 的帖子

都有用

演唱会的确是的,大量的暗场、噪点、色彩平滑过渡区域,正好都是10bit相比8bit编码有优势的地方。

使用道具 举报

帖子
5582
精华
0
积分
2950
金钱
1836
荣誉
15
人气
85
评议
0
20#
发表于 2011-8-31 15:01:50 |只看该作者
收藏一下,慢慢品味,嘿嘿      

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2024-4-19 15:30 , Processed in 0.324007 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到