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).

Dreassica
10th December 2002, 20:11
with the new decomb and mpeg2dec combo entering the telecide() command causes vdub(mod) to immediately close without any error whatsoever, when i leave the telecide command out, it opens without a hitch.

jang0
10th December 2002, 21:04
Originally posted by Wilbert
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).

Uh, I still had an old stable build installed. could fix the problem, thx.

So I ran some tests with the new telecide, with the futurama pal dvd as source material, which has some weird stuff, including changes of patterns of progressive/interlaced frames, changes of field order once in a while etc., so i thought this could be well-suited for testing telecide() + fielddeinterlace(full=false, chroma=true, blend=true)

After doing some spot tests, i also encoded a few scenes, and i have to say that everything just worked out very well, that means i couldn't see any difference between the old decomb and the new one (well, i think thats supposed to be a good sign in this case :D )

There were no errors/crashes etc. and speed was ok, too. good work!

sorry for bad english :devil:

Guest
10th December 2002, 21:05
Originally posted by Dreassica
with the new decomb and mpeg2dec combo entering the telecide() command causes vdub(mod) to immediately close without any error whatsoever, when i leave the telecide command out, it opens without a hitch. Post the failing script in its entirety, please.

Guest
10th December 2002, 21:08
Originally posted by jang0
After doing some spot tests, i also encoded a few scenes, and i have to say that everything just worked out very well, that means i couldn't see any difference between the old decomb and the new one (well, i think thats supposed to be a good sign in this case :D )

There were no errors/crashes etc. and speed was ok, too Thank you for the results, jang0. I think the speed gain from using YV12 is being offset by the (current) lack of low-level optimization. When the latter is done, things should get really fast.

Dreassica
10th December 2002, 21:24
i deinstalled everything and reinstalled and got it working, Phew!!
weird, it worked fine before. ah well

MaTTeR
10th December 2002, 23:28
Just a quick thanks Donald. Tested the typical Telecide()
Decimate(cycle=5) and all seems to work very well with no noticable artifacts, frames were nice and clean:)

ookzDVD
11th December 2002, 03:09
@neuron2,

I did small test with 4:50 minutes video clip,
with telecide() and decimate(cycle=5) and the result is ok.
No problem so far.

Thank you for your great work.

Guest
11th December 2002, 05:14
Good news, Gentlemen. Thank you for your test results.

Next steps:

* Put FD code into Telecide (postprocessing).
* Low-level optimizations.
* Proper help file.

Here's a question for users. Would you be OK with separate DLL versions as follows:

1. DecombYV12 for Avisynth 2.5
2. DecombYUY2 for Avisynth 2.5
3. DecombYUY2 for Avisynth 2.0x

...or would you consider it important to combine 1 and 2 into one DLL? Of course 3 cannot currently be combined.

trbarry
11th December 2002, 06:09
I think it is very important to be able to combine all 3. But it doesn't look like that is going to happen.

- Tom

ErMaC
11th December 2002, 06:19
Well, I think it would be a pain once plugin autoloading returns, cause then we'd need different names for the various functions (i.e. TelecideYV12() and TelecideYUY2()) or else they would collide and we wouldn't know which one we're getting unless it doesn't work ^_^
I'd much prefer them both in one DLL so that this can be avoided. Then I can just say Telecide() and not have to worry about moving DLLs around or manually loading plugins.

But then again, from where I'm sitting it's not a lot of work for me either way - you're the one programming it so it's up to you. ^_^ Not my place to demand they both be in the same DLL, but it would be more convenient.

As for 2.0 DLL vs. 2.5 DLL, that's fine. I don't care about that since I'm keeping the plugins separate anyway (and I don't have autoloading for 2.5 yet).

ookzDVD
11th December 2002, 07:16
@neuron2,

I prefer to have the seperate DLL version,
since the Marc's MPEGDEC3 also have seperate DLL version for YV12 ;)

vinetu
11th December 2002, 11:51
I'm for seperate DLLs too - I'll never use
plugins autoloading and I like 98lite and I
want to know what the plugins doing while
I'm not at home ! :)

Wilbert
11th December 2002, 11:58
I prefer to have the seperate DLL version,
since the Marc's MPEG2DEC3 also have seperate DLL version for YV12
Marc FD has no version for v2.5 which directly outputs to YUY2. Talking about Decomb for v2.5, why don't you add an argument which lets the user choose between "YV12" or "YUY2".

I think less confusing is to keep a dll for v2.07 and one for v2.5

Marc FD
11th December 2002, 13:54
both avisynth 2.5 YUY2 and YV12 versions in one dll.
avisynth gives you the colorspace, decomb can switch automatically between YUY2/YV12. totally transparent to the user, like blur does :
blur works in RGB24,RGB32,YUY2 and YV12, with all C/MMX code writen for each case (with some shared parts) ^^

BTW, to make thinks clear, an avisynth 2.07 & 2.50 filter in one .dll is simply impossible.

DarkNite
11th December 2002, 22:09
I've been a fan of decomb for a long time, and i must say that i'm surprised that the conversion is coming along so quickly and smoothly. You've done nothing but excellent work so far, and i wish you the best of luck in the future.

As for the dll's: I vote for a joined dll for yuy2 & yv12

Razor04
12th December 2002, 04:00
I have been using Decomb for quite a while now, and I definately have to vote for having the YUY2 and YV12 versions combined into one dll. As long as it can automatically determine what colorspace is being used, I think this is the best option. Especially for people that switch back and forth between different sources/colorspaces. Anyways...just my 2 cents :)

Guest
12th December 2002, 04:40
OK, then, the 'ayes' have it. I'll combine the YV12 and YUY2 support and it will be transparent to the user. But we'll still need a separate DLL for Avisynth 2.0x.

ErMaC
12th December 2002, 06:09
OffTopic: Don, your new avatar is uber-cute. Is that a very lucky kitty, or what? :D

Guest
12th December 2002, 13:50
Of all my previous lives, the one I spent as a cat was the most rewarding and joyful. This photo of me was taken in early 1934.

Guest
14th December 2002, 05:13
Attached is DecombYV12 4.03b6. Post-processing is now enabled in Telecide(), so it is not necessary to use FieldDeinterlace() as in the previous beta.

firstlast=true now forces deinterlacing of the first and last frames.

Another option has been added. The nt option sets the noise threshold for field matching. Refer to this thread for details:

http://forum.doom9.org/showthread.php?s=&postid=224684#post224684

Next steps:

1. Low-level optimize.
2. Combine YUY2 and YV12 support into same DLL.
3. Proper help file and formal release.
4. Improved field matching and expanded override capability.
5. Retrofit feature changes to DecombYUY2 and release.

OUTPinged_
14th December 2002, 21:01
mmm... Is that me or firstlast=false _disables_ deinterlacing for first and last frames now? :-)

Guest
15th December 2002, 03:44
Originally posted by OUTPinged_
mmm... Is that me or firstlast=false _disables_ deinterlacing for first and last frames now? :-) Setting firstlast=false does nothing; while setting firstlast=true forces deinterlacing. If this is not what you observe, please post your script. Thank you.

ErMaC
16th December 2002, 10:12
Don, status report:
Did an encode of "Rejected" today - it's encoded pure interlaced but it's obviously telecined from film. Used Telecide(guide=1) and (Decimate) and it worked perfectly, no combing or other issues, but this is hardly a torture test for it since I turned Guide on.
Will look forward to speed improvements as I saw around 7-8fps encoding times as compared to 12-13fps encoding times when using forcefilm on progressive streams, and I recall decomb being faster than this. :)

Guest
21st December 2002, 05:25
Here is DecombYV12 4.05 beta 1.

It has some optimizations for speed but they are not yet complete by any means.

It has a new parameter called 'mm'. Set mm=0 (default) for the current matching behavior, i.e., tries to match to current/previous/next. Set mm=1 to match only to current/previous. Set mm=2 to match only to current/next. These new modes are useful when you know the clip's parity (top or bottom first), because you can both run faster and prevent some spurious matches. This should be used only by experts who know when it can be safely used.

Here's the really nice new feature. You can now specify full patterns for your matching in the Telecide overrides file. For example, suppose you wanted to force a pattern of ncccn for frames 100 through 185. Your overrides file line would be:

100,185 ncccn

You can put as many specifiers in the pattern as you like. For example, this would be legal too:

100,185 nc

The specified pattern will be repeated beginning at the starting frame and ending at the ending frame of the range.

This capability allows for flexible and convenient manual control of field matching. You can do your whole film manually if you like!

Feedback will be appreciated. This is the feature freeze. These new features will be ported to the Avisynth 2.0x-compatible and Avisynth 2.5 YUY2 versions soon.

trbarry
21st December 2002, 05:58
Donald -

Ah, new version, good news. ;)

I've been using your previous YV12 release for the last few days in my testing. Only boring feedback, no obvious problems.

I rarely use the fancier options but it is nice to know they are there to fall back on.

Thank you for your efforts.

- Tom

Trahald
21st December 2002, 12:47
i threw a some animation at it and telecide-decomb spit out a perfect copy. good work (4.03 b6) i'll try 4.05 in tonite

Bulletproof
21st December 2002, 22:31
If I remember correctly there used to be a function in avisynth that was able to detect the proper field order, could it be possible to implement that so decomb can choose the right field order?

CruNcher
22nd December 2002, 20:25
@ neuron2
DecombYV12 4.05 beta 1 gives me allways this error when trying to load an avs in VirtualdubMod or trying to play it directly
encoding makes no problems

"DecombYv12.dll" is not an Avisynth 1.0 plugin

any idear what this is causeing ?

PS: Encoding with Avs2avi hehe for those who wonder how i can encode
if the AVS is not loading into VirtualdubMod

MaTTeR
22nd December 2002, 20:34
Originally posted by CruNcher
"DecombYv12.dll" is not an Avisynth 1.0 plugin I was getting this same error until I updated AVS2.5 to the 12-17 build. Fixed the problem on both of my machines IIRC.

Guest
23rd December 2002, 04:08
Yes, you need to get the latest Avisynth 2.5, because I changed to use AvisynthPluginInit2() as instructed by sh0dan.

CruNcher
23rd December 2002, 13:38
@ neuron2 and matter
sorry my fault i had an yuy2 version in system32 folder so by opening the avs he took that avisynth.dll
thx for the help

but i see another problem it has nothing to do with Decomb i think but it looks like crooping in YV12 is not the same as in YUY2 the first topline gets hacked only the half line is rendered strange hmm i'll report if i found out more maybe its a mpeg2dec problem

EDIT
----
ok it is not an error thats caused by any filter or avisynth it was in my source a so caled VBI vertical blanking line sorry again
thx to all the #xvid channel members for pointing me in the right direction :)

Demone
23rd December 2002, 14:09
I'm trying to deinterlace a 'PAL interlaced' video (this is what dvd2avi reports).
I crop the video in the .avs then using vdub 1.4.13, I set
the smart-deinterlace 2.7 b2 this way:

frame-only differencing
compare color channels
use bicubic for interpolation
motion map denoising
motion threshold at 6

after the de-interlace I apply a Lanczos3 resize still in vdub.
and its PERFECT !!! (so its obviously a pure interlaced PAL).

Now the problem...
I wanted to avoid all the colorspace conversions, so thought to use
YV12 stuff i.e. vdubmod, avisynth 2.5b and decombyv12,
BUT I cant recreate the same deinterlacing accuracy this time...
I tried:
FieldDeinterlace() -> bad borders
FieldDeinterlace(chroma=true,dthreshold=1,threshold=1,blend=false/true) -> better but still some strange borders.
Is it possible that the Vdub smartdeinterlace is very different from
the fieldeinterlace of decomb ?

P.S. I attach two test frames...Test.zip (http://space.virgilio.it/gnomomagico@tin.it/Tests.zip)
Notice white text gives broken pixels too
Neuron2 if you want I can give mini vob.

scmccarthy
23rd December 2002, 14:11
If I am not mistaken, cropping must always be at least twice the mod for YV12 than for YUV2. Cropping must be an even number of lines and columns, because the chroma planes are half the luma plane in both directions.

In any event, the crop function makes everything mod2. This is the relevant code from crop:

if (vi.IsYUV()) {
// YUY2 can only crop to even pixel boundaries horizontally
_left = _left & -2;
_width = (_width+1) & -2;
if (vi.IsYV12()) { //YV12 can only crop height to multiple of 2
_height = _height & -2;
_top = _top & -2;
}
} else {
// RGB is upside-down
_top = vi.height - _height - _top;
}
Note that IsYUV includes both YUV2 and YV12.

Stephen
[edit] Ooops! It's a double post.:rolleyes:
[edit2]This post is meant to confirm Crunchers statement that cropping in YV12 is not the same as in YUV2.

Demone
23rd December 2002, 14:13
Could it be a bad crop values ?
I'm using crop(14,4,693,568) mmm I think its.
Lets try !

Demone
23rd December 2002, 14:18
Tried crop(13,3,693,567) but same thing. :(

Demone
23rd December 2002, 14:29
@scmccarthy
So I can actually feed any crop values an avisynth manages it internally ?

scmccarthy
23rd December 2002, 14:44
Not exactly. AviSynth2.5a mods everything to 2, so for accuracy you need to feed it only mod2 values.

My hint is that you try this:
Crop(0,0,702,576)
Then resize, followed by another crop if nessesary.
Just resize to 4:3 or if anamorphic 16:9.

Stephen

Demone
23rd December 2002, 15:01
Thats the script I feed VirtualDubMod with:

LoadPlugin("C:\PROGRA~1\GORDIA~1\MPEG2Dec3_094.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\DecombYV12.dll")
mpeg2source("D:\Mocambo\mocambo.d2v")
FieldDeinterlace(chroma=true,dthreshold=1,threshold=1,blend=false)
crop(14,4,693,568)
LanczosResize(704,528)

Guest
23rd December 2002, 16:55
Originally posted by Demone
Is it possible that the Vdub smartdeinterlace is very different from the fieldeinterlace of decomb?
Yes. You have used frame differencing for the VirtualDub filter and FieldDeinterlace does not offer that mode. Try the field differencing in VirtualDub and tell me if the results are closer.

Demone
23rd December 2002, 23:18
Yes, you'r right, if I use field based option I obtain very similar results.
I must say that at field level decomb is better than smart-de.
What to do ?
I have a heart, cant ask you to implement this :p
btw thank you Donald.

Guest
24th December 2002, 00:40
Originally posted by Demone
I must say that at field level decomb is better than smart-de.What do you mean? I don't understand this.
What to do ?
I have a heart, cant ask you to implement this :p
btw thank you Donald. [/B] I don't have any plans for a frame-mode deinterlacer in Decomb at this time.

Demone
24th December 2002, 00:42
It seems that juggies are less pronounced in decomb than in smartdeinterlace, using field mode in both.
I will deinterlace in the old way.
Thank you

Guest
25th December 2002, 08:57
This thread is closing because the next version will be dual YV12 and YUY2 capable. Please continue in the new thread "Decomb 4.05 for Avisynth 2.5":

http://forum.doom9.org/showthread.php?s=&threadid=41246