 |
|
欢迎回来, net1999.
你上次访问时间是: 昨天 16:24
悄悄话: 未读 0, 总计 454.
|
 |
10-15-2004, 04:06
|
#1
|
影音技术版版主
|
关于TMPGEnc的手动IVTC
|
|
tmpgenc的手动IVTC一直是个难以掌握的东西,我坦白我一直对这个东西一知半解,今天苦干了一个晚上,似乎是想通了,现在自我总结一下。。
大家都知道tmpgenc在IVTC的时候会把每个帧分成a, b两部分,我以前一直认为是1 frame -> 2 fields,所以总是搞不清楚为什么有些fields会是interlaced,想了很久,终于发现这些仍然是frames。但是为什么要拆分成两个画面呢?拆分的时候是按照什么原理呢?
sswroom和silkysama提到过要在10帧里挑4帧来用,先假设这10帧的来源是原来的5个画面,正好符合5->4,也就是30->24的处理方法,所以推测应该可以成立。
我们来看看telecine的原理图(从doom9拿的图,不是我画的):
这个图在说什么相信大家都知道了,我用红色箭头来表示一下tmpg是怎么拆分图片:
tmpg按照field order(这儿是top first),把这些场重新排列成新的帧:
11,12,22,22,23,33,34,44,44,45。。。
相同数字的代表场一致,没有拉丝,数字不同代表场有差别,会出现拉丝
按照tmpgenc的说法,1 代表保留此帧,0 代表不输出此帧
所以我们可以得出这样的pattern
1011010110
就是说10帧要去掉4帧
但是这样还是不对,因为原始帧数只有5帧,怎么会保留了6帧呢?
我们再看看这串数字
11,12, 22,22,23,33,34, 44,44,45
红色部位重复了,22和44都可以去掉一个,那么现在的pattern是
1 01 001 01 00
10帧去掉6帧,保留4帧。
原来的那串排列组合按照这个pattern来取舍的话,剩下的就是
11, 12,22, 22,23,33, 34,44, 44,45 绿色的部分去掉
11,22,33,44
顺利还原
------------------------------
大家来批评指正一下。。看看我的判断是否正确,特别是alex sama
[
由 net1999在 01-11-2006 12:41最后编辑.
]
|
|
|
|
10-15-2004, 04:28
|
#2
|
影音技术版版主
|
说多几句然后睡觉。。
研究这个的原因是因为avex的dvd mv太倒胃口,24p+30i 剪辑得乱糟糟,逼着我做120fps。
fpschk分析d2v的时候24p部分还算勉强正确,30i 的地方误删是肯定的,甚至我用decomb分析后输出无损avi给fpschk来分析错误还是一模一样。
fpschk+decomb+dec60+avi60,真的不够完美。
然后只能试ssrwoom大大的tmpgenc方式,24p部分的精确就不用提了,连deinterlace 30i 的时候的完美也不是decomb可以比拟,tmpg实在是超强。。
alex兄要是继续尝试用tmpg来做120fps的fmp2,别忘了把copy frame也顺手做出来,不过象silky sama提到的那种2,3分钟就做完的境界你暂时是没有了,5000多个frames,你一个一个慢慢看过来哪个要copy吧
!sleep
|
|
|
|
10-15-2004, 06:16
|
#3
|
中级会员
|
引用
|
|
大家来批评指正一下。。看看我的判断是否正确,特别是alex sama
|
批评不能, 我学的是你的东西
不过应该是这样的吧, 这样就给出每 5 帧 所有定义了 bff/tff 后的奇偶场的组合, 然后从中选择 4 个组合.
引用
|
|
alex兄要是继续尝试用tmpg来做120fps的fmp2,别忘了把copy frame也顺手做出来,不过象silky sama提到的那种2,3分钟就做完的境界你暂时是没有了,5000多个frames,你一个一个慢慢看过来哪个要copy吧
|
我尝试用 decomb 手动补正都花了 n 个小时  , copy frame 我就更猪头了. 但是要弄就弄个好的  . 尝试中...
ps.
我的 win2k3 + athlonxp 用 tmpgenc 读 makeavi 做的 avs 就会疯狂泄露  , 直到所有物理内存被用完逼迫系统 dump 内存.
如果同样直读 mpge2source(".d2v") 我这里内存还是要上 100m, 不过至少没有不断泄露了.
用 m2v 会消耗更多一点, 不过好像只要直接读 avs 就不会不断泄露. 更好, 我本以为 tmpgenc 不能直接读 avs.
pps. 好像又回到 n 年前了 lol, decomb 对于场的重组后若还有 combs 的帧的反交错太弱了, tmpgenc 有好多反交错的方法可以选择, 而且所见即所得
顺便问一句, tmpgenc 内部处理是 yuy2 还是 rgb? 如果是 yuy2 我甚至觉得它已经完美咯, 因为我基本用 m2v 解码, 那儿就已经是 yuy2 的输出了 
|
__________________
Nemolus | Fan of SilkySama
|
|
10-15-2004, 06:55
|
#4
|
中级会员
|
试了一下效果不错
对了可以用键盘来快捷操作(我以前纯粹用鼠标, 慢死+累死)
autosetting 后, ctrl + 左右键 = 上/下一 被 autosetting 选中的帧, 如果直接 左右键 = 直接上下一帧.
上/下 = deinterlace 的方法, double/odd/even, 选择了其中之一后, ctrl + 上下选择每一类里的小类, 比如 double adaptation 等等.
这样就快多了
但是怎么用它对付 hybrid anime 呀? 
用 30fps 计算, 然后生成的 avi 交给 dec60 + avi60 ? 
[
由 nemolus在 10-15-2004 07:00最后编辑.
]
|
__________________
Nemolus | Fan of SilkySama
|
|
10-15-2004, 10:24
|
#5
|
影音技术版版主
|
引用
|
顺便问一句, tmpgenc 内部处理是 yuy2 还是 rgb? 如果是 yuy2 我甚至觉得它已经完美咯, 因为我基本用 m2v 解码, 那儿就已经是 yuy2 的输出了
|
tmpgenc只接收RGB,VFAPI内部数据传送是用RGB模式。。
引用
|
|
但是怎么用它对付 hybrid anime 呀?
用 30fps 计算, 然后生成的 avi 交给 dec60 + avi60 ?
|
我就是为了对付hybrid才研究的啊。。
dec60和avi60用的是idx文件,这岂不是又回去fpschk+decomb了?
生成TPR后把TPR交给avs来压缩,你在TMPGEnc做的手工操作等于fpschk+decomb+dec60,然后用TPRRead读TPR文件得出scripts(类似idx那种说明哪里应该删帧,哪些地方是24p,哪些地方是30i 的文本文件),最后用AVIRead读入压缩完的avi,按照这个文本文件来决定哪儿应该插入null帧,类等于avi60的工作。
|
|
|
|
10-15-2004, 10:45
|
#6
|
影音技术版版主
|
附:
TPRRead和AVIRead的下载地址在sswroom的老巢。。
http://sswroom.no-ip.org:5080/compprog/index.html
avisynth读取tpr工程文件的语句如下
LoadVFAPIplugin("路径\TMPGEnc.vfp","TMPsource")
TMPsource("1.tpr")
如果后续插件是avs2.5类别的还要加上converttoyv12()
|
|
|
|
10-15-2004, 13:48
|
#7
|
Banned
|
net1999大大,有个叫TPRIVTC的filter,可以直接读取TMPEGenc做IVTC的结果,这样可以用DGdecode或是M2V来解码,然后调用TMPGenc的IVTC信息,就不用做色区转换了,在YV12和YUY2下都能正常工作
DOOM9好像有这个filter的帖子
|
|
|
|
10-15-2004, 13:53
|
#8
|
影音技术版版主
|
多谢RogueCS兄的指点 
我马上去寻觅一下
|
|
|
|
10-15-2004, 14:24
|
#9
|
Banned
|
关于这个filter,我看到说明文件中说支持TMPGenc的deinterlace,可是我使用的时候有些问题,不是图像错误,就是没有deinterlace的效果。比如我想使用"Double"模式,在TPMGenc中预览正常,但是AVS中得到的画面出现严重的错误,整个变成花屏
不知道是不是要对应某个版本的TMPGenc,我的版本是2.521.58.169
附件是我手里的tprivtc,带了readme
|
|
|
|
10-15-2004, 14:41
|
#10
|
影音技术版版主
|
刚刚试过了,deinterlace效果出不来,我用的是单场自适应
我的tmpg版本比较旧一点,2.512.52.161
看了这个readme,才发现我楼顶那篇东西多么的罗嗦,avs里面用一个doubleweave就说清楚了 
|
|
|
|
10-15-2004, 14:45
|
#11
|
影音技术版版主
|
好奇的是tprivtc是打算如何支持tmpg的deinterlace?难道调用tmpg的内核来工作?还是自己模拟?
|
|
|
|
10-15-2004, 15:25
|
#12
|
中级会员
|
引用 RogueCS
|
|
net1999大大,有个叫TPRIVTC的filter,可以直接读取TMPEGenc做IVTC的结果,这样可以用DGdecode或是M2V来解码,然后调用TMPGenc的IVTC信息,就不用做色区转换了,在YV12和YUY2下都能正常工作
DOOM9好像有这个filter的帖子
|
那个叫 TPRIVTC 的filter,是可以读取 TMPGEnc 专案档内的IVTC 信息,它是AviSynth 2.0 plugins ,在2.5里需要先加载 LoadPluginEx.dll .
如果 IVTC 简单,不会用到单张去交错或 copy frame, 才可以利用 tprivtc.dll 这个 plugin,读取 TMPGEnc 专案档内的IVTC 信息.
这个 plugin 的 deinterlace 功能只对应单取奇或单取偶,以及奇偶混合(Double)的方法,没有办法做到 TMPGEnc 里面的"自适应去交错"(Adaptive deinterlace),所以遇到有需要单张去交错的画面时,这个 filter 就不是那么好用了.
[
由 winsen在 10-15-2004 15:35最后编辑.
]
|
|
|
|
10-15-2004, 16:34
|
#13
|
Banned
|
有个for2.5的版本,我发的那个附件就是,就是不知道对原版本做了其他的改进没有
还有我测试的时候,没开自适应,deinterlace的效果也出不来,有时出来了但是和TMPGenc中预览的结果也不一样,不知道是什么原因
[
由 RogueCS在 10-15-2004 16:36最后编辑.
]
|
|
|
|
10-15-2004, 19:02
|
#14
|
中级会员
|
引用 RogueCS
|
|
有个for2.5的版本,我发的那个附件就是,就是不知道对原版本做了其他的改进没有
还有我测试的时候,没开自适应,deinterlace的效果也出不来,有时出来了但是和TMPGenc中预览的结果也不一样,不知道是什么原因
|
我还活在旧时代..
没有试过 for 2.5版本.
我是用 MPEG2DEC2.dll 来解码的.在YUY2下做.尝试用M2V 解码也不行.
可以试一下 DGDecode.dll 解码然后 YV12toYUY2() 这样.在YV12下可能有些问题.
|
|
|
|
10-15-2004, 19:56
|
#15
|
普通会员
|
我刚试了下~确实是deinterlace效果出不来,没有deinterlace,倒是24FPS化了=w=||效果比以前我一直用的IT强(很明显)。
测试用影片《魔术师区菲》,FM版,这个片子非常难做的说……
TMPG版本2.520.54.163
|
|
|
|
11-05-2004, 12:32
|
#16
|
中级会员
|
TRPIVTC 的 Latest Release是1.0.3
从1.0.2才支持3种deinterlace,楼上给的是1.0.1的
|
|
__________________
微信公众平台,搜索 winotes,欢迎关注 Winotes - 闻道录
|
|
11-07-2004, 04:27
|
#17
|
中级会员
|
Well, looks like Kuroso sama has just rlsed yet another build, dated sept 30, 2004  ; at here in doom9 .
======== edit ============
用 tprivtc 在我這裡好像純粹是亂得呢... 導入后雖然顯示是 23.976fps, 不過畫面就跟沒 ivtc 過一樣. 但是 TMPGEnc 和 tmpgenc.vfp + avs 都是正確的... 
[
由 nemolus在 11-07-2004 05:51最后编辑.
]
|
__________________
Nemolus | Fan of SilkySama
|
|
11-07-2004, 13:39
|
#18
|
Banned
|
还以为是转的大鱼的贴子
顶呀!

|
|
|
|
11-15-2004, 13:16
|
#19
|
中级会员
|
我试了PowerK6 兄给的1.0.3,发现一遇到有 deinterlace 的帧就死掉了,VDM非法关闭! 
|
|
|
|
11-15-2004, 15:32
|
#20
|
中级会员
|
引用 nemolus
|
用 tprivtc 在我這裡好像純粹是亂得呢... 導入后雖然顯示是 23.976fps, 不過畫面就跟沒 ivtc 過一樣. 但是 TMPGEnc 和 tmpgenc.vfp + avs 都是正確的...
|
老兄肯定是和M2V解码了!这个插件不知道什么原因,我在avs里它和M2V好像有点冲突.不能导入tpr的结果,也就是没有效果.
还有一个问题先请教,假如用 DGDecode.dll 去解码,在然后在avs里用tprivtc读取TMPGEncVTC
结果,那么在TMPGEnc 里面做 IVTC 的时候是导入DGDecode.dll 解码的 avs还是直接导入 .d2v 文件呢? 两种方法出来的结果是否完全一样?
|
|
|
|
11-15-2004, 15:59
|
#21
|
影音技术版版主
|
引用 winsen
|
|
老兄肯定是和M2V解码了!这个插件不知道什么原因,我在avs里它和M2V好像有点冲突.不能导入tpr的结果,也就是没有效果.
还有一个问题先请教,假如用 DGDecode.dll 去解码,在然后在avs里用tprivtc读取TMPGEncVTC
结果,那么在TMPGEnc 里面做 IVTC 的时候是导入DGDecode.dll 解码的 avs还是直接导入 .d2v 文件呢? 两种方法出来的结果是否完全一样?
|
tmpg导入.d2v的时候用的是DGVfapi.vfp,这个东西调用的仍然是dgdecode.dll
[
由 net1999在 04-15-2007 20:05最后编辑.
]
|
|
|
|
发贴规则
|
你可以发表新主题
你可以回复帖子
你可以上传附件
你可以编辑自己的帖子
HTML代码 关闭
|
|
|
所有时间均为GMT +10. 现在时间是 09:03
© 2004-2020, DreamLand. All rights reserved.
pAGE dESiGNEd bY SiXbUSy, Rokey.
|