『漫游』酷论坛>『影音数码技术学习交流』>[请教]使用x264的interlac ..

[请教]使用x264的interlaced模式压制的相关问题

dongjuanyong@2008-10-03 22:13

在压制某些动画特典与PV等纯interlaced的源的时候,一直也找不到一种最为合适的处理方法:

1. 用mcbob弄成60p,一是mcbob太慢了,二是帧率翻了一倍,压制结果要大了不少
2. 用nnedi、yadif等deinterlace成30p,这又带来两个问题:一是deinterlace滤镜的处理效果有限,尤其是与hardware处理相比,时间消耗大不说结果也很可怜;二是部分源处理成30p后与处理成60p的结果相比较,连贯性要差很多,这是难以避免的

鉴于x264提供了interlaced的压制模式,那么保持交错源不变进行压制,使用hardware在播放时进行deinterlace,这样既节约了压制时间,又保证了播放时的效果
于是有一些问题来了,在encode interlaced时,如果要对片源进行优化处理(如降噪、锐化等),应该怎样实现?在一般的压制方法中,降噪、锐化等操作是在deinterlace滤镜之后的,顺序颠倒的话画面会rp的……可是在直接压制interlaced源的时候,这些优化操作就没地方加了,难道只能用x264内建的noise reduction?
另外想问的是,一现新加入的参数,如vaq、psy-rd、trellis、新subme9等,是否同样适用于interlaced压制模式?与压制progressive源时的优化效果相比如何?

多谢各位的帮助
引用

蓝の回忆@2008-10-03 22:21

新思路总要有人亲自去探索的.
留个名,等高人解答.
引用

ZhenGod@2008-10-03 22:26

針對場作處理的濾鏡是存在的。
引用

qyqgpower@2008-10-03 22:58

FFT系列denoiser有interlaced开关,锐化从来不用不知道

interlaced不支持的功能(比如esa,tesa的subme)在跑的时候x264会提示并自动fallback的,担心什么
引用

dongjuanyong@2008-10-03 23:11

话说fft3dgpu的轻重一直掌握不好,avs里预览看不出明显差别,倒是一压出来才发现不对劲。interlaced预览时效果判断更加困难了……
qyq大有什么推荐的参数么,文件大小、细节保留较为平衡的设置?
引用

uc0083@2008-10-03 23:38

就算是用interlaced模式,容量也会增加很多,还是用滤镜随便忍忍吧
引用

qyqgpower@2008-10-04 00:11

引用
最初由 uc0083 发布
就算是用interlaced模式,容量也会增加很多,还是用滤镜随便忍忍吧

你经过自己测试了么,别对自己不了解的东西发表意见

基准设置
--crf 18 --keyint 300 --min-keyint 30 --ref 5 --mixed-refs --bframes 6 --b-adapt 2 --b-pyramid --weightb --subme 9 --trellis 2 --psy-rd 0:0 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --vbv-bufsize 10000 --vbv-maxrate 17500 --me umh --merange 32 --threads 3 --thread-input --progress --no-psnr --no-ssim --output "output" "input" --sar 32:27

interlaced时增加参数:--nal-hrd --interlaced

x264通常模式+Tdeint(播放时一团糟)
[NoImage] encoded 3166 frames, 15.65 fps, 784.17 kb/s

x264 Interlaced(播放时调用DXVA Deinterlacer,完美)
[NoImage] encoded 3166 frames, 13.27 fps, 695.68 kb/s
引用

dongjuanyong@2008-10-04 00:47

请问--nal-hrd参数是用来做什么的?搜了一下似乎和HDDVD兼容性相关,不加的话在PC和PSP上面播放也很正常
引用

uc0083@2008-10-04 02:15

引用
最初由 qyqgpower 发布

你经过自己测试了么,别对自己不了解的东西发表意见

基准设置
--crf 18 --keyint 300 --min-keyint 30 --ref 5 --mixed-refs --bframes 6 --b-adapt 2 --b-pyramid --weightb --subme 9 --trellis 2 --psy-rd 0:0 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --vbv-bufsize 10000 --vbv-maxrate 17500 --me umh --merange 32 --threads 3 --thread-input --progress --no-psnr --no-ssim --output "output" "input" --sar 32:27

interlaced时增加参数:--nal-hrd --interlaced

x264通常模式+Tdeint(播放时一团糟)
[NoImage] encoded 3166 frames, 15.65 fps, 784.17 kb/s

x264 Interlaced(播放时调用DXVA Deinterlacer,完美)
[NoImage] encoded 3166 frames, 13.27 fps, 695.68 kb/s


--[NoImage] Job commandline: "I:\recent\megui\tools\x264\x264.exe" --crf 26.0 --ref 5 --mixed-refs --bframes 16 --b-pyramid --b-rdo --bime --weightb --trellis 1 --psy-rd 0.0:0 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output "I:\IPTD_382\VIDEO_TS\VTS_01_1.mkv"
---[NoImage] encoded 2040 frames, 33.52 fps, 860.37 kb/s



--[NoImage] Job commandline: "I:\recent\megui\tools\x264\x264.exe" --crf 26.0 --ref 5 --mixed-refs --bframes 16 --b-pyramid --b-rdo --bime --weightb --trellis 1 --psy-rd 0.0:0 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --interlaced --output "I:\IPTD_382\VIDEO_TS\VTS_01_1.mkv" "I:\IPTD_382\VIDEO_TS\VTS_01_1.avs"
---[NoImage] encoded 2040 frames, 23.25 fps, 901.74 kb/s

上面那个我用了yadif,下面那个直接源,我也不知道怎么和你反的
引用

uc0083@2008-10-04 02:20

--[NoImage] Job commandline: "I:\recent\megui\tools\x264\x264.exe" --crf 26.0 --ref 5 --mixed-refs --bframes 16 --b-pyramid --b-rdo --bime --weightb --trellis 1 --psy-rd 0.0:0 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --interlaced --output "I:\IPTD_382\VIDEO_TS\VTS_01_1.mkv" "I:\IPTD_382\VIDEO_TS\VTS_01_1.avs"
---[NoImage] encoded 2040 frames, 23.00 fps, 926.17 kb/s


--[NoImage] Job commandline: "I:\recent\megui\tools\x264\x264.exe" --crf 26.0 --ref 5 --mixed-refs --bframes 16 --b-pyramid --b-rdo --bime --weightb --trellis 1 --psy-rd 0.0:0 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output "I:\IPTD_382\VIDEO_TS\VTS_01_1.mkv" "I:\IPTD_382\VIDEO_TS\VTS_01_1.avs"
---[NoImage] encoded 2040 frames, 31.82 fps, 1001.10 kb/s
这个完全没用滤镜,很正常
引用

qyqgpower@2008-10-04 11:12

引用
最初由 dongjuanyong 发布
请问--nal-hrd参数是用来做什么的?搜了一下似乎和HDDVD兼容性相关,不加的话在PC和PSP上面播放也很正常

PSP无视flag强制Bob,所以没有看起来也是正常的

PC上,除了CoreAVC有aggressive deinterlace(只要是非Frame Based源,就强制deinterlace。但其实MBAFF和PAFF都可以用来压逐行的片子)选项外,其他解码器都需要正确的flag才能以interlaced模式回放,调用自己的deinterlacer或者传给渲染器处理
引用

qyqgpower@2008-10-04 11:28

yadif
[NoImage] encoded 3166 frames, 16.01 fps, 901.49 kb/s

这世界上存在两种interlaced源:一种是单avs滤镜可以在合理的速度下比较完美处理,并不会因为需要bob而增加码率的源;一种是单avs滤镜处理后仍旧惨不忍睹的源。
后者包括30i叠加pulldown(常见于动画ED),pulldown+30i+30p混合,field完全错开的30i(常见于特典、making)等等。
绞尽脑汁去处理这些东西,得到的效果不一定好不说,码率增加,浪费时间是显而易见的
引用

uc0083@2008-10-04 12:16

引用
最初由 qyqgpower 发布
yadif
[NoImage] encoded 3166 frames, 16.01 fps, 901.49 kb/s

这世界上存在两种interlaced源:一种是单avs滤镜可以在合理的速度下比较完美处理,并不会因为需要bob而增加码率的源;一种是单avs滤镜处理后仍旧惨不忍睹的源。
后者包括30i叠加pulldown(常见于动画ED),pulldown+30i+30p混合,field完全错开的30i(常见于特典、making)等等。
绞尽脑汁去处理这些东西,得到的效果不一定好不说,码率增加,浪费时间是显而易见的

我用的源是真人的30i,用yadif之后没什么很烂的东西出现
确实如果处理完还是很烂的话,肯定比用interlaced模式码率大
引用

| TOP