NMM视频技术(旧)

 找回密码
 成为会员
搜索
楼主: diseac

AAD (Auto Anime Decomb) v0.1.5a - 2009/07/07更新

[复制链接]
发表于 2009-5-19 22:06 | 显示全部楼层
60# 悍匪
新房总爱用那么“一小撮”特效,包括我刚压的ぽこぽこだっしゅOVA也是,OP最后那个镜头的点状特效,tfm压100次有100次是错的。
 楼主| 发表于 2009-6-1 22:02 | 显示全部楼层
dgwxx说的很对。我对vinverse的说法比较含糊。vinverse对画面质量确实没有影响(我也不是某厨房),但是对画面是有影响的。
我所说的对质量没有影响,是因为这种影响在24FPS快速闪过的画面中,用肉眼几乎看不到,我个人是这么认为的。

正如dgwxx所说,vinverse对P帧的影响恰恰是细节。
用AVS输出一个P帧为JPG,对比使用了vinverse和未使用的,2张图象的文件大小会不同,且使用过vinverse的这张JPG文件通常会比较小。
从JPG图象压缩原理可以看出,使用过vinverse的P帧,细节很可能受到了损失。
在大量的FADE面前(动画片的FADE场景有时候很多),要这种几乎看不出的细节,还是要FADE拉丝,仁者见仁。
当然,如果你要手动的话,质量必然是最高的。

我觉得dgwxx所说的FADE判断方式有不可靠的地方。
首先,黑白渐变一般都会引起亮度信号上的激烈变化(100%变化),但交叉渐变则不一定,而且亮度信号激烈变化的场景不一定就是渐变场景,因此我认为这种判断方式不可靠。
其次,片子是人做的,导演的思维是没法用程序追捕的(在上面的帖子中大家也提到了这点),无论是亮度信号的变化值,还是变换场景的所用帧数,我们没法去预估(比如导演想要设计一个曲线变化的交叉渐变),因此这种判断方式我认为不可靠。

这种判断如果想要实现的话,在脚本中几乎不可能,或者只能实现一部分。即使是制作类库,也需要建立很多的模型来验证,通过一系列的实践来完成,而且这种程序并不可靠。

我一直很想把AAD的脚本变成一个单独的类库来方便大家直接载入使用,但我实在是不想抄袭TIVTC等插件的源码。我想即使这个DLL制作成功,我也不打算无良把它放到网络上共享,除非它是完全由我个人来编写的。

我觉得目前通过自动判断得到的IVTC结果也就只能这样了,不过我还会继续思考,来改善AAD的质量。感谢管理员dgwxx,和NMM论坛的各位,以及其他使用过AAD的压片爱好者和压制人员们为我出谋划策,你们的建议给了我很多帮助。

TO悍匪:3RDPASS并不解决FADE场景的问题,它的功能是检查和修复IVTC的错误,并且它通常不会引起JERK,但是它有可能会造成多余的解交错。至于2NDPASS,我想您仔细看下我写的AAD说明文件,或者如果您能读懂AAD脚本的话,您会更了解它的运行机制。

最近我的皇后正做肝脏移植手术(主电脑显卡送修),娘娘的显卡都是AGP时代产物,本来就是业余的研究也中断了,连游戏都玩不成,苦啊。
发表于 2009-6-22 09:34 | 显示全部楼层
发现一个有意思的问题。AADTrim的func和func2函数虽然都是可选参数,但如果只填func2不填func的话会出现问题。
比如这么写:
  1. s = s.aadtrim(360,2632,"","ToraSupport()")
复制代码
就会报告下面错误:
---------------------------
VirtualDub Error
---------------------------
Avisynth open failure:
Script error: expected function name following `.'
((null), line 1, column 16)
(D:\gk\AviSynthPlugins\aadtrim.avsi, line 26)
(H:\tora\14\tora_14.avs, line 11)
---------------------------
确定   
---------------------------

必须再写一个空包函数:
  1. function ToraBlank(clip v) {
  2.         return v
  3. }
复制代码
把func参数填上:
  1. s = s.aadtrim(360,2632,"ToraBlank()","ToraSupport()")
复制代码
才能顺利运行。
 楼主| 发表于 2009-6-24 23:01 | 显示全部楼层
发现一个有意思的问题。AADTrim的func和func2函数虽然都是可选参数,但如果只填func2不填func的话会出现问题。


是这样的,func和func2这两个参数是使用了AVS内置的eval()函数,来实现字符串转类名,如果您指定空字符串的话,eval会得到一个为空的类名,这样显然是不正确的。

这种情况下,不能顺序排列参数来调用AADTrim,您可以这样写:
s = s.aadtrim(360,2632,func2="ToraSupport()")
 楼主| 发表于 2009-7-7 02:33 | 显示全部楼层
7月7日更新0.1.5a版,更新使用nnedi2(v1.3)插件。
AUS720现在使用了nnedi2内置的nnedi2_rpow2()函数,效果比先前强了一些,喜欢大尺寸的朋友可以试试。
发表于 2009-7-28 19:51 | 显示全部楼层
感谢DIS大更新

AAD真的很好用XD
发表于 2009-7-28 22:19 | 显示全部楼层
AAD对片源的分辨率有要求么?
有一段片我不得不切边到300*192,然后想用AAD来做IVTC,但无奈总是弹错
 楼主| 发表于 2009-7-28 22:32 | 显示全部楼层
67# 264768502

尝试一下切边以后用addborders补回720x480,IVTC后再切掉黑边。
发表于 2009-7-28 22:48 | 显示全部楼层
这倒是另一种方法....刚才竟然没想到..看来自己思路还不够活跃呀.
发表于 2010-1-14 13:42 | 显示全部楼层
LZ太牛了.之前自己压的动画反交错后有些地方一直存在锯齿,用AAD就完美了~感谢LZ
发表于 2010-3-6 20:45 | 显示全部楼层
本帖最后由 yuyuyu 于 2010-3-6 21:00 编辑

发现AAD 0.1.5a重大BUG 专程注册来说明
最近才下的一部无修正的H动画的ISO
压制或播放时 或引起播放器或压制软件崩溃
已经经过 换播放器 换压制软件 重下滤镜 重装系统等操作 已经证明是
AAD的问题 过程之艰辛 因为重来没想过会是AAD的问题 一直在找是不是自己的原因
哪里没有弄对 最后才想到会不会是AAD的原因 结果就是了
因为换回0.1.5就没问题了 用0.1.5a就崩溃
出错的片段已经上传到附近 片段里没有任何不健康内容
在画面渐变的时候 软件就崩溃
之前压片的时候 AVS语句还比较多 然后换了个最简单的
  1. LoadPlugin("C:\Program Files\GordianKnot\DGMPGDec\DGDecode.dll")
  2. Import("C:\Documents and Settings\Administrator\桌面\AAD_015a.avs")
  3. MPEG2Source("C:\Documents and Settings\Administrator\桌面\VTS_07_1.d2v")
  4. AAD()
复制代码
这个语句一样软件崩溃
要是大大没问题 那只能证明我RP严重问题了 = =
以前都是伸手党 连注册都懒的人 要是没发现这个BUG 可能还在当游客 哈哈
感谢楼主编写这么无敌强大的脚本 拜服

VTS_07_1.demuxed.rar

1.79 MB, 下载次数: 17596

发表于 2010-3-6 21:11 | 显示全部楼层
回复 71# yuyuyu
您的RP问题的确非常严重,0.1.5a我用了很长时间了,没有出现过问题。您的片段我也测试了,同样没出现问题。请检查您的使用环境。
  1. loadplugin("d:\dgmpgdec\DGDecode.dll")
  2. import("D:\AviSynthPlugins\AAD_015a.avs")
  3. MPEG2Source("test.d2v")
  4. aad()
复制代码
test.7z (384.29 KB, 下载次数: 19088)
发表于 2010-3-7 00:55 | 显示全部楼层
请确认AAD的依赖滤镜在AVS的搜索path中
发表于 2010-3-7 01:02 | 显示全部楼层
话说不在搜索path里会导致崩溃么...只会提示找不到函数吧。
不过秋月这么一说倒是提醒了我。以前发生过往path里塞了太多插件引起冲突最终导致avs崩溃的例子。71楼该不会是因为这个才崩溃的吧。
上面忘记说了,我这里的AAD依赖插件是在aad那个avsi里手动载入的。比起自动载入,我还是更加愿意相信手动。
发表于 2010-3-7 15:15 | 显示全部楼层
dgwxx大大没问题啊 看来是我真人品了
我AVS已经这样写了
  1. LoadPlugin("C:\Program Files\megui\tools\dgindex\DGDecode.dll")
  2. LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\a60224.dll")
  3. LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\nnedi2.dll")
  4. LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TDeint.dll")
  5. LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TIVTC.dll")
  6. LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TMM.dll")
  7. LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\vinverse.dll")
  8. Import("C:\Documents and Settings\Administrator\桌面\AAD_015a.avs")
  9. MPEG2Source("C:\Documents and Settings\Administrator\桌面\VTS_07_1.d2v")
  10. aad()
复制代码
软件还是崩溃 我找不到什么原因了 系统都重装过了 但是换0.1.5又没问题 怪了

播放器崩溃

播放器崩溃

未命名.jpg

算了 看来只有用0.1.5了 用不到0.1.5a了 用不到0.1.5a的nnedi2了 只有用0.1.5的nnedi
人品啊 看来最近地震闹得凶 我人品也跟着闹 哈哈 玩笑玩笑 感谢大大回复
发表于 2010-3-7 15:37 | 显示全部楼层
回复 75# yuyuyu
您说的没错,的确很可能跟nnedi2有关。您的AVS版本是多少?
发表于 2010-3-7 15:48 | 显示全部楼层
本帖最后由 yuyuyu 于 2010-3-7 15:52 编辑

我装的是2.5.7的
滤镜么 我都换了无数次了 官方下载或用楼主大大封包里面的 都无用
nnedi2我单独用 是没问题的 不知道什么原因
而且 其他都没问题 就是那一帧画面淡入淡进出问题 我用播放器 直接跳过 看后面的 什么问题都没有
发表于 2010-3-7 18:34 | 显示全部楼层
回复 77# yuyuyu
猜測應該還是老問題,請將你 AviSynth 2.5\plugins 裡的 nnedi2.dll 刪除,換成這個檔案 http://bengal.missouri.edu/~kes25c/nnedi2.dll 試試看。
发表于 2010-3-8 01:33 | 显示全部楼层
感谢楼上啊 换成楼上给的1.4就没问题了 原来是版本问题啊 一直纠结了这么久 太感谢了
发表于 2010-4-9 16:23 | 显示全部楼层
用了一阵以后我感觉AAD最明显的问题是decimate,不知道AAD是怎么实现decimate的,似乎也不能手动加以纠正
比如说本来应该是个1拍2的线性运动,做出来的画面却decimate的很乱,本来应该是112211221122,却成了122212221122之类的情况
我的片源不太好,有时候fieldmatch出来的重复帧相差比较大,而且可能因为有blocking的缘故被误判成了交错,结果出现了几次重复帧没被decimate掉,反倒是把运动帧给decimate掉的情况

tdecimate(mode=1)基本没有这样的问题
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|手机版|NMM视频技术

GMT+8, 2024-4-25 15:28 , Processed in 0.051410 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表