View Full Version : Decomb YV12 status report
Guest
29th November 2002, 20:12
I'll use this thread to report status and release betas.
The current status is that I have converted Decimate() modes 0 and 1 and have them working. I plan to convert mode=2 tonight and then release it to get feedback and be sure I'm doing things right. Thereafter the tasks will be as follows:
Convert FieldDeinterlace()
Convert Telecide()
Low-level optimization for all
Progress should be fast, now that I know what I'm doing. :p
JohnMK
29th November 2002, 20:39
I can't wait! :) I mean, yes I can, but how else am I to betray my honest enthusiasm.
trbarry
29th November 2002, 20:58
<Cheering!> ;)
- Tom
hakko504
30th November 2002, 00:43
That's it then: bye bye AviSynth 2.0x
gamr
30th November 2002, 01:46
YAY! Assuming you get Decimate mode 2 working, what are the chances Dup will get done anytime soon? (as far as i understand dup is based on mode 2's search stuff) As soon as decomb is done ill finally be able to use avisynth 2.5!!! wooohooooo :)
JohnMK
30th November 2002, 01:54
Heh. I know the feeling. I've avoided encoding anything difficult the past few weeks. Just pure telecined material . . .
Guest
30th November 2002, 02:32
I'll convert Dup() after Decomb() in its entirety.
BTW, Decimate() mode=2 quality=0 and 2 are now working. I just have to add the chroma handling for mode=2 and then I can let you have Decimate().
Guest
30th November 2002, 03:59
OK, here's the first beta. Decimate() is converted to YV12, but Telecide and FieldDeinterlace still require YUY2. Please give me feedback on whether there are any problems with Decimate(), as it is my first YV12 effort and I could be out in left field -- you never know. :scared:
I noticed a bug also in the YUY2 Decomb: show=true with mode=2 is wrong with cycle other than 5. I'll fix that at some point.
Next step: FieldDeinterlace().
One last point, at the very end, I'll combine Decomb and DecombYV12 into a single DLL. It will support both YUY2 and YV12.
Billy|B-A
30th November 2002, 05:56
Glad to hear that you are working on this. Its 1 of the best filters I have come across.
BTW, I wish your father well on the road to good heath.
Boulder
30th November 2002, 09:45
Originally posted by hakko504
That's it then: bye bye AviSynth 2.0x
Not yet, but as soon as we'll get a subtitle plugin (hint, hint!) :D
Thanks Don, this will be of great use!
Guest
2nd December 2002, 02:25
OK, having received no reports of incorrect operation of DecimateYV12, I conclude that I am doing things right in the YV12 universe, and will now proceed with conversion of FieldDeinterlace.
Further analysis has disclosed that, contrary to my earlier thinking, my deinterlacing method for a field-based frame and for a frame made of weaved fields of two different progressive pictures is identical. Believe me, that is a good thing. :)
trbarry
2nd December 2002, 03:50
Serendipitously squeaking by. :)
- Tom
Guest
2nd December 2002, 04:05
Originally posted by trbarry
Serendipitously squeaking by. :)
- Tom Quite.
Kyo
2nd December 2002, 05:58
Hi Donald!
I have just tried your awesome :) decomb now in YV12! and...
1. The DVD was FLCL, so other evil Anime chapter
2. Certain it decimate the clip, Decimate(cycle=5,mode=2,Show=True,Debug=True) dunno if this is a correct chain ;) atleas no errors and the Debug info was there :D
3. The DVD have a pattern of 3 Full frames 2 Combed, but all the 5 frames in some cases have different data. Dunno is this is a good dvd to test decomb :rolleyes:
4. This for now my results master...
Thanks for all your efforts, and I keep waiting for the Telecide/Decimate avance...
Guest
2nd December 2002, 14:28
@Kyo
Thank you for the test results. It sounds like your DVD may be a hybrid, which makes it a good test case for Decomb.
I'll start coding FieldDeinterlace tonight.
Bulletproof
2nd December 2002, 23:33
Is Decimate alone supposed to be able to IVTC NTSC material or is Decimate alone just for the film stuff? I tried the YV12 version last night using quality=3 and threshold=8.0, cycle=5. It didn't seem to work out so well, it seems to be like the same thing Kyo was saying. I get about 3 progressive frames followed by two interlaced frames, does this suggest that it might be hybrid material? The default threshold let alot of interlaced frames through.
soujir0u
2nd December 2002, 23:36
@Bulletproof
I thought decimate throws away identical frames and gives a clip with a lower frame rate (e.g. Decimate(Cycle=5) with 29.97fps source gives 23.97fps result)? Maybe you didn't use Telecide that's why you got those combed frames.
Guest
3rd December 2002, 00:25
Read the thread, people! I'm converting filter by filter and posting after each to get feedback. You can't IVTC in YV12 until Telecide is converted. Decimate alone can only...decimate.
ErMaC
3rd December 2002, 07:10
What you can do to IVTC at this point (although it's not exactly IVTC) is run TomsMoComp filter to deinterlace your stream, then run Decimate on it.
Yes that's extremely suboptimal, but it works...
trbarry
3rd December 2002, 07:38
run TomsMoComp filter to deinterlace your stream, then run Decimate on it.
That probably works as a stop gap but it is maybe better to set the SearchEffort parm down to 1 because motion would not be measured properly on film based material anyhow. So:
TomsMoComp(1,1,1) or
TomsMoComp(0,1,1)
That way it effectively finds only still non-motion, which is the only thing it can interpret properly from film anyway.
- Tom
OUTPinged_
3rd December 2002, 07:52
Yay, decimate works for me too.
Tested in mode2, works same as yuy2 version.
Guest
3rd December 2002, 22:01
Thanks, OUTPinged_. Since you're being so nice, I am attaching the beta 2 of DecombYV12. The FieldDeinterlace() filter now runs in YV12. Note that blend now defaults to false. If you prefer it to default to true, then override the defaults as described in the user manual. Also, the semantics of the chroma option are a little different. chroma=false (default) means deinterlace only the luma plane; chroma=true deinterlaces all the planes. Strangely, I've noticed that chroma=false seems to be fine on most material, but please let me know what you think about what the default should be for the chroma option.
Feedback will be appreciated.
On to Telecide()!
trbarry
4th December 2002, 01:05
AHA! :)
This is the one I've been waiting for.
Downloading .......
- Tom
Guest
4th December 2002, 01:19
@trbarry
There may be a problem. I have an Xvid avi. When I deinterlace it with FieldDeinterlace YV12, it doesn't work right, but when I transcode it to HUFYUV and then deinterlace that, it is fine. But FieldDeinterlace YUY2 doesn't have the problem. I have just started to look into this and wanted to warn you. Oh, and TomsMoCompYV12 handles it fine too. Very strange. Any ideas?
Off to the pool. Back later...
EDIT: Forgot to mention that I use ConvertToYV12() to feed to FieldDeinterlace(). So:
clip_xvid.avi -> ConvertYV12 -> FieldDeinterlaceYV12 fails !!!
clip_hufyuv.avi -> ConvertYV12 -> FieldDeinterlaceYV12 works
clip_xvid.avi -> ConvertYUY2 -> FieldDeinterlaceYUY2 works
clip_hufyuv.avi -> ConvertYUY2 -> FieldDeinterlaceYUY2 works
Could there be a problem with ConvertToYV12()?
trbarry
4th December 2002, 01:46
No idea, except I'm pretty sure there are still quirks in YV12 support. I've been struggling with a supposedly working SimpleResize for a whole day now.
But strange results. Never fear, I wanted DecombYV12 only for my testing for now. I don't encode that many permanent clips anyway. I just like playing with the tech. :)
- Tom
Guest
4th December 2002, 04:29
Originally posted by trbarry
I wanted DecombYV12 only for my testing for now.Please let me know what you find. Thank you.
gamr
4th December 2002, 05:14
chroma = false = :devil:
http://www.anime-xtreme.com/doom9/chromafalse.png (536k)
http://www.anime-xtreme.com/doom9/chromatrue.png (534k)
other than that, so far so good. well, back to being patient for the next beta now
Guest
4th December 2002, 05:48
@gamr
Thank you for that example. I was looking for something just like that! I'll make the chroma option default to true.
Also, I figured out my problem described above. I wasn't correctly re-getting the src frame pointer after making it writable.
The attached beta fixes that and changes the chroma default to true.
Guest
4th December 2002, 05:53
Would there be any demand for a cubic interpolation when blend=false? Currently it is linear. My Smart Deinterlacer filter for VirtualDub has that option.
Guest
4th December 2002, 06:00
Originally posted by trbarry
I don't encode that many permanent clips anyway. I just like playing with the tech. :)Me too. :D
Other than Sopranos and swimming instructional videos, it's all play for me.
trbarry
4th December 2002, 06:09
Other than Sopranos and swimming instructional videos, it's all play for me.
Buffy and Tai Chi videos. But yes. :)
And how different does the cubic look? I have not used it in Vdub.
My SimpleResize is just a linear interpolation. But while I think there is still just a bug in it there is a possibility so far that it causes more aliasing using YV12 because the chroma is crisper and less filtered. And a cubic interpolation is maybe one defense against that.
- Tom
Guest
4th December 2002, 06:25
Give me some time; I'll post two frame grabs for you to compare.
EDIT: Never mind. I just tried and couldn't see any difference. :o
wotef
4th December 2002, 06:44
hi neuron2, i recall a particular show (PAL TV, can't remember which one right now) where smart deinterlace + cubic did a lot better job with the jaggies than linear - perhaps enough reason for at least a switch?
also, earlier tonight, i was playing with some field-swapped stuff that needed an NTSC 3:2 pulldown -- the telecide(swap=true) switch
did not give me as good an end result as invoking avisynth's swapfields() command prior to telecide and decimate
i.e.
swapfields()
telecide(guide=1,chroma=true,firstlast=true,blend=false)
decimate(cycle=5,quality=3)
- any idea why specifying swapfields() affects the decomb operation differently to telecide(swap=true,guide=1...)?
Guest
4th December 2002, 07:11
@wotef
For Telecide, swap occurs on output. Your SwapFields() swaps on input. The difference is subtle but important. Read the help file for the VirtualDub filter Smart Deinterlacer for an explanation.
@all
The blend=true option is not working correctly in FieldDeinterlace YV12. Stand by for a fix. Tomorrow. :p
Guest
4th December 2002, 16:46
This fixes blend=true for FieldDeinterlace, and improves interpolation quality slightly.
OK, I think FieldDeinterlace is clean now. On to Telecide...
Bulletproof
4th December 2002, 23:56
I think it would be good if you could add another parameter for cubic interpolation when blend=false. When the frame is interpolated it gets really jaggy and MPEG-4 doesnt like those sort of edges, maybe if you add an additional parameter for interpolating when blend=false then it could help compression visually and by filesize.
Guest
5th December 2002, 23:41
I converted the field matching part of Telecide and it is working, but not yet the postprocessing [because I can use FieldDeinterlace(full=false) separately for now]. The results on some of my torture animes revealed a problem in FieldDeinterlace that I want to fix before I release a beta of Telecide.
Instead of deinterlacing each plane completely independently, I need to produce a motion map that is an OR of the 3 plane's motion maps, and then deinterlace each plane using the OR'ed map.
That is the current status. I should have a full IVTC-capable beta release this weekend. After that it needs to be optimized for speed.
Kyo
6th December 2002, 03:36
neuron2, even us the non coders, want to code to help all of your efforts and also the other avisynth developers!
Keep killing those interlaced frames!
Cheers
Guest
9th December 2002, 02:59
Now that MarcFD has fixed a problem in his mpeg2dec3 (thank you, Marc!), I am able to reliably decode MPEG2 in YV12 and I have completed a beta of DecombYV12. It is working well and I added two bonus features. :)
I just need to do the documentation and then I will release the beta and source code. Probably tomorrow.
Marc FD
9th December 2002, 13:46
Convert FieldDeinterlace() -> DONE :cool:
Convert Telecide() -> (almost) DONE :cool:
>Low-level optimization for all :devil:
someone called me :D ?
BTW,
>Other than Sopranos and swimming instructional videos, it's all play for >me.
other than some anime, it's all play for me too ;)
Guest
9th December 2002, 14:56
Marc, I'll surely use your help on the optimization, but first I want to get the functionality stabilized. Thank you.
Guest
10th December 2002, 01:29
OK, guys and gals, here is the next beta of Decomb YV12. It includes Telecide() and so is now IVTC-capable. Please read the release notes carefully, which I have included here also. Thanks to MarcFD for his work on mpeg2dec3.
Feedback will be appreciated. Please post it in this thread.
DecombYV12 Version 4.03 beta 5
------------------------------
1. This version of Decomb is designed to accept
YV12 source material. It is intended to be used
with a decoder delivering YV12 or with an AVI
encoded in YV12.
2. The only supported version of "mpeg2dec" is
MarcFD's mpeg2dec3_094, which is included in this
distribution. Other versions may produce incorrect
output.
3. Do not use ConvertToYV12() to feed Decomb. It
assumes frame-coded pictures and will therefore
bleed chroma between fields for field-coded pictures.
4. To learn how to encode without unnecessary color
space conversions, read the YV12 FAQ at doom9.org in the
Avisynth forum. Personally, I use mpeg2dec3_094,
Avisynth 2.5, VirtualDubMod, and Xvid.
5. Some codecs reverse the chroma channels. Use
SwapUV() or get an updated codec if this occurs.
6. The postprocessing option is temporarily disabled.
Use FieldDeinterlace() after Telecide() to achieve the
same effect.
7. The firstlast option is temporarily disabled.
8. Telecide() provides a new option "agg". Set agg=true
to enable a more aggressive pattern matching for guide=1.
I will be interested to hear of your results with this
option.
9. The override file for FieldDeinterlace() now supports
frame range syntax! For example, to force no deinterlacing
on frames 25 through 260, use this line in your overrides
file:
25,260 -
This range capability is very useful for excluding known
ranges of good frames (film material) from deinterlacing
by postprocessing, or for forcing deinterlacing of known
interlaced portions. Previously this could be achieved
only through cumbersome Avisynth scripting.
[Donald Graft, 12-9-02]
cjv
10th December 2002, 07:09
First pass of "Godfather" NTSC done with DecombYV12. Quickly scanned through it, looks great, even the one hybrid scene came out quite nice.
Telecide(guide=1)
FieldDeinterlace()
Decimate(cycle=5)
Sorry, didn't test the agg=true (read the documentation too late)
I know a lot of us are very thankful for this great filter..your work around here is very much appreciated!
Thank you,
cjv
Guest
10th December 2002, 07:14
Originally posted by cjv
First pass of "Godfather" NTSC done with DecombYV12. Quickly scanned through it, looks great, even the one hybrid scene came out quite nice.
Telecide(guide=1)
FieldDeinterlace()
Decimate(cycle=5)
Thank you for the results and kind words, cjv!
One point: You probably want full=false for FieldDeinterlace() when used as a postprocessor for Telecide(), because it defaults to true. This is temporary until I put the code into Telecide() with default of false.
cjv
10th December 2002, 07:24
You probably want full=false for FieldDeinterlace()
Funny you mention that. Actually, I intended to, but seeing as this movie has a 10 minute scene of fully interlaced video, I wasn't sure the implications of using full=false, so I decided to play it safe and process all frames. Was that the correct decision?
cjv
ErMaC
10th December 2002, 07:29
You could've just used the Override functions for that series of frames by specifying it as a range and made use of yet another one of those supernifty new additions. :D
Nice work Don. Initial tests are positive. I'll try to get more info to you later when I actually do an encode instead of just tests :P
cjv
10th December 2002, 07:36
@ErMaC:
You are absolutely right, thanks. I think I will try that new feature out and let it run overnight, and report back tomorrow. Man, is there anything Decomb doesn't do? :)
cjv
ErMaC
10th December 2002, 07:54
Fixed blended frames from bad telecine jobs like in Evangelion TV series :(
jang0
10th December 2002, 17:50
Maybe I'm just much to dumb, but I didn't even manage to get vdubmod to run properly. I downloaded and installed avisynth 2.5 alpha and VirtualDubMod 1.4.12.1 including the needed dlls (i extracted the dlls both to %sysdir%\system32 and %sysdir%\system AND the vdubmod directory to be sure that i don't make anything wrong). However, when trying to open this simple script:
LoadPlugin("c:\programme\avisynth2\plugins\2_5_alpha\mpeg2dec3_094.dll")
mpeg2source("c:\test.d2v")
vdubmod throws out the following errormessage:
"Couldn't locate decompressor for format 'YV12' (unknown)
VirtualDub requires a Video for Windows (VFW) compatible codec to decompress video..."
So what am i doing wrong? (i thought vdubmod has yv12 support. do i have to installing anything in addition)
Wilbert
10th December 2002, 18:10
Welcome to the forum.
You need to read the YV12 faq ... You also need to install a recent Xvid built of Koepi (link can be found in the faq) or DivX5 (link can be found in the DivX5 forum).
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.