查看完整版本: [-- 【原创】10bit视频编码——特性及全面播放方法介绍(2012.1.18更新) --]

『漫游』酷论坛 -> 『影音数码技术学习交流』 -> 【原创】10bit视频编码——特性及全面播放方法介绍(2012.1.18更新) [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

<<   1   2  >>  Pages: ( 2 total )

mawen1250 2011-08-16 11:29

【原创】10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

测试用视频:
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

      另外也可参考这里taro大所说的: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.播放时的音视频流切换





roozhou 2011-08-16 19:11
动画这么高的码率有意义吗?不如去下remux。

mawen1250 2011-08-16 21:47
本来就是测试视频,时间也短,码率有这么多其实挺正常的(和Salender-raws相比),动画本来就不好压,码率在画面的分配是难点。
不过我现在又压了一遍,用了1st pass CRF=12,现在2nd pass时Clannad NCOP有13Mbps,NCED有19Mbps。

roozhou 2011-08-16 22:03
动画还不好压?动画比真人好压多了,人家几百k的1080p rip都有。
另外没有和8bit对比的话看不出优势来的啊。

建议去掉qpmax=28

ljwing 2011-08-16 22:37
roozhou 何必认真,每个人对RIP理解以及理念不同

10bit码率开那么高不用去和8bit比了,没有意义了,10bit的初衷在于保证质的情况下更大程度上减少量

06_taro 2011-08-17 00:44
qpmax=28必去啊……

10bit的qp值和8bit下大不一樣,譬如在8bit下crf 23出來時qp值為28的幀可能在10bit下crf 23下qp值是三四十,仍然設定qpmax=28的話碼率飄得會很離譜的……

話說Hi10還ref=16,全世界沒米級配置PC的窮人們都清靜了……

mawen1250 2011-08-17 08:36
这样啊,学习了。
想知道10bit下qpmin和qpmax设为多少配合CRF16比较合适?
我现在也就压这种很短的东西,配置也好不到哪里去,HTPC用的AMD X4 640,笔记本i3 370M
解码这种还是很轻松的,四核占用率30-50%,相当于BD-REMUX的水平。倒是ASS字幕加上各种move效果后卡啊……


nuomi1 2011-08-17 11:20
純小白一隻。

@mawen1250 既然10bit可以提升壓縮率+防Banding,那為何還要用高碼去壓呢?高碼的話8bit也可以。可以的話順便壓個同參數的8bit出來,這樣也好對比。然後qpmin和qpmax我個人是推薦默認的,手動設置的話飆碼還不容易對比。

@06_taro 朋友壓Hi10(1080p)用--preset placebo,世界更清靜。。。

06_taro 2011-08-17 16:33
Hi10的壓制經驗不足,直接留空不設好了,反正x264自己的rc很靠譜的……

其實我個人壓8bit時只有在確定不設置qpmax時出來的單幀qp最高不超過28才會去加--qpmax 28,所以一般這參數根本不是拿來限制x264的,而是給其他喜歡蛋疼看參數的人圍觀用的……

如果還是想知道x264給每幀分配的qp值的話,開--verbose,然後2>>"sample.log"輸出編碼記錄,或者在我的編譯版裡用--log-file "sample.log" --log-file-level debug來看……

upyzl 2011-08-18 15:15
记得去年10月x264刚刚支持10bit编码时,d9上有篇帖子说10bit下qp大致相当于8bit下qp+12的


引用
引用第8楼06_taro于2011-08-17 16:33发表的 回 6楼(mawen1250) 的帖子 :
Hi10的壓制經驗不足,直接留空不設好了,反正x264自己的rc很靠譜的……

其實我個人壓8bit時只有在確定不設置qpmax時出來的單幀qp最高不超過28才會去加--qpmax 28,所以一般這參數根本不是拿來限制x264的,而是給其他喜歡蛋疼看參數的人圍觀用的……

如果還是想知道x264給每幀分配的qp值的話,開--verbose,然後2>>"sample.log"輸出編碼記錄,或者在我的編譯版裡用--log-file "sample.log" --log-file-level debug來看……

qpmax不仅仅限制单帧,如果AQ开着的其实限制的是MacroBlock的量化值(所以qpmin由10改成0了),这个用x264 verbose应该也看不出来吧...

06_taro 2011-08-19 10:31
mb的qp拿h264visa去研究吧= =

superkidx 2011-08-24 21:40
配上各种超级无敌慢的极限参数,再配上巨高的码率,分别用了10小时,压出了这么2段1分31秒的视频。视频码率降为原盘的大约一半
=================
笑而不语

mawen1250 2011-08-27 13:55
8月27日已蛋疼更新大量内容……这次码率没那么高了,1st pass主要用CRF16和14

nuomi1 2011-08-27 18:36
以前拿過某個OP特效ASS字幕,36MB而已。

mawen1250 2011-08-27 19:11
很想知道是什么

MeteorRain 2011-08-27 21:38
滤液妹子的eva剧场ed多大来着……

话说我没看出这帖子的意义何在。没做测评没做对比也没有任何指导意义……
四核不能流畅播放,也不能通过RIP大幅降低码率容量……给谁看呢

看完整个帖子我就理解了两件事,一个是10bit只能软解,一个是ycbcr的取值可以上到9xx

roozhou 2011-08-27 22:43
对哦,无对比无说服力。
还有插帧的60fps有什么意义?还不如用fraps录段fps游戏拿来压呢。

还有DirectVobSub是渲染到帧上的,而且不支持10bit。

mawen1250 2011-08-28 01:14
SVP的全称就是Smooth Video Project,就是因为从电影诞生至今一直沿用24fps的视频并不流畅,所以通过插帧为双倍或60fps实现更流畅的回放,但前提是CPU够强。
我会想到用SVP去压60fps视频,也是因为有个人就搞了许多这种测试视频:http://www.nyaa.eu/?page=torrents&user=80434
多视频流也是因为几年前BakaBT论坛就有个帖子给出了一些测试视频,包括AIR OP,双视频流的测试视频,还有Kanon OP和Clannad OP,Planet Earth第一集1分钟片段,当时我是不了解动画的,所以过了几年看到AIR、Kanon时才发现以前的测试视频就是这个的OP。

DirectVobSub的问题我也说得很多了,所以我推荐使用MPC-HC的字幕引擎。对于使用BT.709的高清视频,要能用DirectVobSub显示正确颜色的字幕,必需在解码器端就输出RGB32,而ffdshow的RGB转换与其10bit解码是不兼容的,LAV我没试过强制RGB32输出,所以不清楚。


之前发帖数不到20,发不了链接,所以帖子里少加了很多内容。

roozhou 2011-08-28 15:03
引用
引用第17楼mawen1250于2011-08-28 01:14发表的 回 16楼(roozhou) 的帖子 :
SVP的全称就是Smooth Video Project,就是因为从电影诞生至今一直沿用24fps的视频并不流畅,所以通过插帧为双倍或60fps实现更流畅的回放,但前提是CPU够强。

这个要做也应该播放时做(很多电视机都有这个功能),压片的时候做纯粹浪费码率。另外电影24fps并没有不流畅,人家的快门速度是1/24秒,和动画或者电视摄像机不一样,通过motion blur来提升流畅度。
引用
DirectVobSub的问题我也说得很多了,所以我推荐使用MPC-HC的字幕引擎。对于使用BT.709的高清视频,要能用DirectVobSub显示正确颜色的字幕,必需在解码器端就输出RGB32

你可以用我direct264里带的vsfilter.dll,这个问题已经修正了,会根据分辨率自动选择BT709还是BT601。


marxian 2011-08-28 18:56
支持新技术。
如果要实用化,还是得放到实际中或模拟实际情况来检验和比较,最好用普通常用的参数和码率压,然后进行对比。过高或过低的码率,实际应用少,意义小。
比如设定一样(不包括码率),8bit压一份,10bit压一份。增加(或降低)8bit码率与10bit相同再压一份。
这里还不太明白,10bit压出来体积比8bit的大吗?或者更小?还是仅仅编码过程中的技术?最终体积一样,仅仅增加编码时间?用复杂的计算换质量?
另外片子不用太长,几十秒就够,也不用音频,方便压制和上传下载。可以多选几种类型,最好能突出10bit优势的的片子片断,key的动画相差不大。

roytam1 2011-08-28 20:53
應該用Steins;Gate這種黑位banding嚴重且顯而易見的的片子測試才好。

roozhou 2011-08-29 00:36
引用
引用第19楼marxian于2011-08-28 18:56发表的  :
比如设定一样(不包括码率),8bit压一份,10bit压一份。增加(或降低)8bit码率与10bit相同再压一份。

8bit和10bit的qp计算方法不一样,即使相同crf出来的码率差别很大。要比只能相同码率,这是业界的规矩。

marxian 2011-08-29 21:52
哪个码率大?计算方法差别大就算了,若差别不大,觉得还是比较一下好。
假设其他设定相同,某bit较大,为了码率相同,刻意改变为不同设定,后面是否会产生疑问,比如:画面差异是由10bit与8bit本身产生的?还是因刻意改变为不同设定,影响到其他某些方面而产生的。
如果有不同码率,同与不同都比较感觉更全面。

mawen1250 2011-08-30 10:28
我做过对比测试了,其他参数相同时,相同CRF下(1st pass CRF,2nd pass bitrate)8bit码率大概高出5-6%,平均QP比10bit低12。
在某些暗场时间段,即便8bit分配了13Mbps的码率,效果依然没有分配了5Mbps的10bit好。
近似码率时,在一般的场景中视觉差别不明显,10bit细节更接近原盘。在超低码率下,10bit效果比8bit更差。


我把全部测试内容也发到这里来好了……

mawen1250 2011-08-30 16:59
谢谢了,这样很好,终于解决这个问题了。
但是我不会搞编译,能不能把已经编译好的vsfilter.dll发上来呢?

MeteorRain 2011-08-31 04:19
还是那句话,对比最能说服人。同设定或者同crf可以拿出来,但绝对不是对比编码效率用的,而是指导crf/qp设定用的。

做视频质量对比,还是要拿同码率的做对比的。

我举个例子吧比如

拿8bit的crf24(中低画质)的码率和ssim去和10bit的相近码率的crf和ssim比
然后拿8bit的crf16(中高画质)去和10bit的相近码率去比
最后拿8bit的crf16去和10bit的同ssim比crf和码率
顺带po上各个参数的暗场高亮截图,有条件的还可以叠上宏块qp示意,如果能放出测试视频就更好了

这样才能让别人直观地感受10bit啊

老弄些倍帧率多视频高码率的货,给谁看捏 ╮(╯_╰)╭

mawen1250 2011-08-31 10:13
http://bbs.popgo.org/bbs/read.php?tid=545168
我已经做过了。

SSIM只作为参考,心理学优化还是开启,以主观视觉效果为重。

roytam1 2011-09-10 17:26
引用
引用第18楼roozhou于2011-08-28 15:03发表的  :

这个要做也应该播放时做(很多电视机都有这个功能),压片的时候做纯粹浪费码率。另外电影24fps并没有不流畅,人家的快门速度是1/24秒,和动画或者电视摄像机不一样,通过motion blur来提升流畅度。

你可以用我direct264里带的vsfilter.dll,这个问题已经修正了,会根据分辨率自动选择BT709还是BT601。




可以把vsfilter 的source patch發上來嗎?
這樣就可以讓上游修正問題了。

upyzl 2011-09-10 17:47
引用
引用第27楼roytam1于2011-09-10 17:26发表的  :


可以把vsfilter 的source patch發上來嗎?
這樣就可以讓上游修正問題了。



http://direct264.svn.sourceforge.net/viewvc/direct264/Patches/vsfilter_3697.patch?view=log

mawen1250 2011-09-13 20:17
试着对比了LAV+madVR还有ffdshow+madVR、LAV+EVR/CP、ffdshow+EVR/CP的播放组合,后面三种都有这样那样的问题,只有前面一种是最完美的。

ffdshow解码10bit视频虽然支持,但是颜色出现了一点偏差,画面普遍偏绿(对比原盘和LAV解码的结果),我在画图板里用取色工具对截图取色然后查看RGB分量的值,原本16/16/16的点变成了16/17/16或16/18/16,其他的点也普遍出现了Green偏高的情况。

而LAV支持P010输出(10bit)至madVR,但是EVR/CP只支持8bit输入,所以如果使用EVR/CP渲染器,解码器就要将10bit转换成8bit的YV12输出,ffdshow这步转换是做了抖动(设置中有),所以基本保留了原本的画面。而LAV没做抖动,直接就10bit round 8bit,导致本来已经去掉的banding又出来了。

而且madVR不光支持10bit输入,在内部还会先转换成16bit进行处理(应该是包括了额外的dither)然后再dither成8bit,配合10bit压制时的debanding处理,最终出来的画面几乎半点banding都没有。


补充一下,突然发现我的笔记本还在用ffdshow r3959,也就是今年8月1日发布的第一个开始支持10bit解码的版本,所以这个解码的颜色问题可能在后来的版本修复了,我今天试试看新版本。

roytam1 2011-09-15 19:01
引用
引用第18楼roozhou于2011-08-28 15:03发表的  :

这个要做也应该播放时做(很多电视机都有这个功能),压片的时候做纯粹浪费码率。另外电影24fps并没有不流畅,人家的快门速度是1/24秒,和动画或者电视摄像机不一样,通过motion blur来提升流畅度。

你可以用我direct264里带的vsfilter.dll,这个问题已经修正了,会根据分辨率自动选择BT709还是BT601。




代發到 MPC-HC 的 trac 去了。 http://sourceforge.net/apps/trac/mpc-hc/ticket/1728#comment:2
有些問題需要你的解答。
- 為什麼 csri_open_file() 被去掉了?
- 為什麼 csri.h 被加入新東西了?
- 為什麼去掉了 vdub/avs 介面呢?
- 還有其他無關的修改

然後 IRC 上也被提醒了。
引用
if it was you who posted this patch, please get the real dev (roozhou) to post it if you want it in :P
without random changes



roozhou 2011-09-15 19:24
我的patch里包含的东西太多了,发上去只是出于遵守GPL为了让其他人可以编译这个模块。如果要发到tracker上最好把每一个单独的功能修改提取出来分别发。

fullhd8 2011-09-20 18:27
引用
引用第18楼roozhou于2011-08-28 15:03发表的  :

这个要做也应该播放时做(很多电视机都有这个功能),压片的时候做纯粹浪费码率。另外电影24fps并没有不流畅,人家的快门速度是1/24秒,和动画或者电视摄像机不一样,通过motion blur来提升流畅度。

你可以用我direct264里带的vsfilter.dll,这个问题已经修正了,会根据分辨率自动选择BT709还是BT601。



你给我找一个能实时运行这段代码的民用级处理器,否则别再瞧不起压制前处理。

  1. SuperRegular = MSuper(hpad=16, vpad=16, rfilter=4)

    CustomPelClip = nnedi3_rpow2(4, nsize=3, nns=4, cshift="Spline144Resize")

    Super = MSuper(hpad=16, vpad=16, rfilter=4, pel=4, pelclip=CustomPelClip)

    backward = MAnalyse(Super, isb=true , blksize=16, blksizev=16, search=3, searchparam=16, pelsearch=16, overlap=4, overlapv=4, truemotion=true, plevel=2, lambda=2000, lsad=1600, dct=5)
    forward = MAnalyse(Super, isb=false, blksize=16, blksizev=16, search=3, searchparam=16, pelsearch=16, overlap=4, overlapv=4, truemotion=true, plevel=2, lambda=2000, lsad=1600, dct=5)

    backward_2 = MRecalculate(Super, backward, blksize=16, blksizev=8, search=3, searchparam=16, overlap=4, overlapv=2, truemotion=true, lambda=1000, dct=5)
    forward_2 = MRecalculate(Super, forward, blksize=16, blksizev=8, search=3, searchparam=16, overlap=4, overlapv=2, truemotion=true, lambda=1000, dct=5)

    backward_3 = MRecalculate(Super, backward_2, blksize=8, blksizev=8, search=3, searchparam=16, overlap=2, overlapv=2, truemotion=true, lambda=500, dct=5)
    forward_3 = MRecalculate(Super, forward_2, blksize=8, blksizev=8, search=3, searchparam=16, overlap=2, overlapv=2, truemotion=true, lambda=500, dct=5)

    backward_4 = MRecalculate(Super, backward_3, blksize=8, blksizev=4, search=3, searchparam=16, overlap=2, overlapv=0, truemotion=true, lambda=250, dct=5)
    forward_4 = MRecalculate(Super, forward_3, blksize=8, blksizev=4, search=3, searchparam=16, overlap=2, overlapv=0, truemotion=true, lambda=250, dct=5)

    backward_5 = MRecalculate(Super, backward_4, blksize=4, blksizev=4, search=3, searchparam=16, overlap=0, overlapv=0, truemotion=true, lambda=125, dct=5)
    forward_5 = MRecalculate(Super, forward_4, blksize=4, blksizev=4, search=3, searchparam=16, overlap=0, overlapv=0, truemotion=true, lambda=125, dct=5)

    svp_flow_lib = "C:\Program Files (x86)\AviSynth 2.5\plugins\libflowgpu.dll"
    Finest = MFinest(SuperRegular)

    MSmoothFps(SuperRegular, backward_5, forward_5, finest=Finest, num=480, den=1, algo=13, ml=100, sadml=255, sadgamma=2, block=false, blend=true)

    BlendFPS(120)



roozhou 2011-09-20 19:37
你压个120fps的片子,解码也是问题啊。
而且这么多滤镜如果做成一个滤镜,效率可以高多少倍。

电视机上的DSP能有多强的能力?就算效率比通用CPU高一点,频率上的差距太大了。如果说电视机可以实时处理,民用CPU却做不到,只能说明CPU上用的算法效率实在太差了。

P.S. 我不是看不起压制前处理,我只是看不惯软件算法垃圾缺抱怨CPU不够快的人。

fullhd8 2011-09-21 10:47
引用
引用第33楼roozhou于2011-09-20 19:37发表的 回 32楼(fullhd8) 的帖子 :
你压个120fps的片子,解码也是问题啊。
而且这么多滤镜如果做成一个滤镜,效率可以高多少倍。

电视机上的DSP能有多强的能力?就算效率比通用CPU高一点,频率上的差距太大了。如果说电视机可以实时处理,民用CPU却做不到,只能说明CPU上用的算法效率实在太差了。

P.S. 我不是看不起压制前处理,我只是看不惯软件算法垃圾缺抱怨CPU不够快的人。

MVTools 2配合SVP研制的OpenCL加速本身效率就很高啊,秒掉LG还有其他杂鱼,据闻MEMC做得比较好的只有老Sam及老Pan。

不过要是你以为上面很多滤镜的话就错了,上面只比实时播放设定挂多了两个滤镜喔,虽然算是EP设定其实效率还不差呢。

roozhou 2011-09-21 20:43
MVTools的主要问题是,滤镜之间不能直接访问数据,只能通过avs提供的帧缓冲来交换数据。如果做成一个滤镜的话就可以消除这个弊端,效率肯定能高很多。OpenCL的确是不错,不过如果能完全在显卡上做,不要频繁的与主存交换数据就好了。

P.S.我个人不喜欢MC插出来的帧,还是喜欢类似电影的motion blur效果。

fullhd8 2011-09-23 11:08
引用
引用第35楼roozhou于2011-09-21 20:43发表的  :
MVTools的主要问题是,滤镜之间不能直接访问数据,只能通过avs提供的帧缓冲来交换数据。如果做成一个滤镜的话就可以消除这个弊端,效率肯定能高很多。OpenCL的确是不错,不过如果能完全在显卡上做,不要频繁的与主存交换数据就好了。

P.S.我个人不喜欢MC插出来的帧,还是喜欢类似电影的motion blur效果。


MVTools也可以产生motion blur,不过片源最好是60fps或以上。
  1. super = MSuper()
    backward_vectors = MAnalyse(super, isb = true)
    forward_vectors = MAnalyse(super, isb = false)
    MFlowBlur(super, backward_vectors, forward_vectors, blur=100)


06_taro 2011-09-23 22:05
mvtools是提供一整套工具給需要的人自己在avs裡方便地組合使用,真想要效率的話肯定還是把要做的事情扔到一起組合成單獨的工具來減少數據間訪問的開銷。

a4840639 2011-10-11 22:29
PANASONIC的MEMC……刚买回来的时候感觉不错,反正默认参数的avsp算出来的画面实在太猎奇,而电视的处理确实还是比那个强多了

后来发现这东西还是没法忍,开到高以后字幕/场景切换/被前景遮住的panning什么的都没法看,改成中以后,问题没有那么明显,但是在一些复杂画面上还是会出问题,而且突然切换场景以后从流畅到不流畅的对比很令人不适

后来我发现这电视最大的问题就是24hz输入会直接2倍频到48hz显示,实写还好说,动画实在是抖得非常的厉害。开启MEMC可以解决这个问题,但是首先开到高那artifact我是没法忍的。开到中的话,暂且不论有时候还是会出问题和效果不是那么的自然,我发现它避免出现artifact的算法很简单,只要监测到某个区域内的运动不是比较规则的就不对那个区域进行处理,所以有时候该抖的还是抖,。

没见过24hz输入三倍/四倍频成72hz/96hz显示的效果,很多文章都说这样处理能根治24hz的抖动感,但是从原理上来讲我没想通


roozhou 2011-10-12 00:38
什么是抖动感,难道是卡?

ljwing 2011-10-12 10:56
24P模式的优势应该是片尾垂直滚动staff字幕最能体现,48Hz[以及其倍数,没见过24Hz的]消除的是60Hz回放的“跳动感”,24P是让电视回放获得电影院的效果。
引用

60Hz   1  1  2  2  2  3  3  4  4  4

Film      1       2         3         4

24p    1   1   2   2   3   3   4    4

大概比划一下,说白了24P是颤抖,60Hz是跳动

片源本身过渡不自然播放就是卡,要不卡[平滑]就要插入预测帧[比如骚尼的Motionflow],简单有效的方法,离电视远一点看。



fullhd8 2011-10-12 12:23
引用
引用第38楼a4840639于2011-10-11 22:29发表的  :
PANASONIC的MEMC……刚买回来的时候感觉不错,反正默认参数的avsp算出来的画面实在太猎奇,而电视的处理确实还是比那个强多了

后来发现这东西还是没法忍,开到高以后字幕/场景切换/被前景遮住的panning什么的都没法看,改成中以后,问题没有那么明显,但是在一些复杂画面上还是会出问题,而且突然切换场景以后从流畅到不流畅的对比很令人不适

后来我发现这电视最大的问题就是24hz输入会直接2倍频到48hz显示,实写还好说,动画实在是抖得非常的厉害。开启MEMC可以解决这个问题,但是首先开到高那artifact我是没法忍的。开到中的话,暂且不论有时候还是会出问题和效果不是那么的自然,我发现它避免出现artifact的算法很简单,只要监测到某个区域内的运动不是比较规则的就不对那个区域进行处理,所以有时候该抖的还是抖,。

没见过24hz输入三倍/四倍频成72hz/96hz显示的效果,很多文章都说这样处理能根治24hz的抖动感,但是从原理上来讲我没想通




AVSP不就是一个脚本编写工具,有啥“默认参数”?

引用
引用第39楼roozhou于2011-10-12 00:38发表的  :
什么是抖动感,难道是卡?


抖动感的正解是使用胶片机拍摄时进片速度太快,或是刻意使用手持摄影机所制造出来的晃动,但很多人误以为是卡。基本上这种晃动可使用全局运动补偿轻易消除。

a4840639 2011-10-14 09:29
好吧搞错了说的是是SVP……

我这电视上24p大动态的画面用相机拍也是两个重影,但是我没有能调快门时间的相机,不知道快门调低了拍出来是什么效果
用FaceTime摄像头拍的 http://115.com/file/bhfccw72
其实画面一直在左右颤抖,但是在30FPS摄像头上就像两重影
不知道用PS EYE 60FPS模式拍出来是什么效果

roozhou 2011-10-14 23:43
相机拍出来重影是因为LCD悲剧的响应时间

a4840639 2011-10-15 10:23
引用
引用第43楼roozhou于2011-10-14 23:43发表的  :
相机拍出来重影是因为LCD悲剧的响应时间

这是PDP不是LCD,如果是原生60FPS的话动的再快也没有重影

ROLL 2011-11-07 02:40
没硬解真是痛,我10bit软解就只有15fps左右
近期还打算上推吐机火炉,这样就节不了能,难道又要等新显卡来着

制造犯罪 2011-11-11 19:41
没大看明白...小白一只

我用的是KMP plus播放器,需要装哪些东西才能正常播放10bit压制的视频呢?

roozhou 2011-11-11 20:18
我看10bit用MadVR + LAV Filters + PotPlayer

06_taro 2011-11-12 00:39
直接LAV+madVR可以通吃8~10bit@4:2:0/4:2:2/4:4:4的全部AVC視頻

順便介紹一下,如果不想對8bit用這種佔用較高的播放方式,而只在10bit下用,自動切換8/10bit播放濾鏡的方法(10bit用LAV(+xy-vsfilter/threaded-vsfilter)+madVR以保證不在中間將為8bit,):

播放器設置按照8bit的正常設置,譬如想DXVA的用EVR+PowerDVD Decoder,喜歡ffd的用ffd做解碼器。
分離器使用AV Splitter
打開AV Splitter的設置界面,在Graph Builder裡勾上“Use Internal Graph Builder”。
然後在下面Add Filter,如圖示設置:
保存,然後再一次Add Filter:
保存,此時DirectVobSub的優先級在madVR上面。

DirectVobSub使用threaded-vsfilter或者xy-vsfilter,因為可以支持P010/P016輸入輸出,不用在中途降到8bit。

播放器的濾鏡設定按8bit的方式設定,最下方加上一個LAV Video,如圖:

這樣一來8bit視頻會按照以前的方法解碼,10bit會按照LAV+DirectVobSub+madVR(有字幕時)或者LAV+madVR(無字幕時)來解碼。譬如按我上圖的設定,默認渲染器為EVR-CP時,8bit會走DVXA(我開了MPC-HC內置的DXVA),而10bit會自動切換成LAV+madVR:
8bit:
10bit:

圖裡的是MPC-HC的設置,其他播放器設置方法類似。

ROLL 2011-11-13 21:11
其实MPC-HC的心电图是怎么看的?
越直线越好,还是上下跳动幅度越小越好?

另外,不用megui的话,x264.exe命令行怎么用,是“来源mp4”“目标mp4” 引数复制自mediainfo就可以?
是不是有即时fps/s显示,也可以用ctrl+c中止?


查看完整版本: [-- 【原创】10bit视频编码——特性及全面播放方法介绍(2012.1.18更新) --] [-- top --]


Powered by phpwind v8.5 Code ©2003-2011 phpwind
Time 0.026425 second(s),query:3 Gzip disabled