PDA

View Full Version : Advanced Decomb questions

redfordxx
19th December 2005, 10:01
Hi I am trying to understand decomb info. I have understood most of the reference. It is real great tool, but few questions:

How do I know the pattern value of current frame?
1.if it is [in-pattern] it is clear: it is the the [using] value
2.if it is [out-of-pattern] and [using=c] then pattern value is [n]?
3.if it is [out-of-pattern] and [using=n] then pattern value is [c]?
4.if it is [out-of-pattern] and [using=p] then pattern value is the pattern value of the frame before [cycle] frames?
5.if it is [in-pattern*] ...?
6.any other combination?

How to recognize the pattern change?
7. When pattern value of the frame before [cycle] frames is different than current frame pattern value (determined as above)?

When I input a value in the ovr file, does the Telecide speed up?
8. when the value is only e.g.: 200?
9. when the value e.g.: 200+,200-?

How decimate decides which frame to decimate?
10. when the frame difference is >0

Guest
20th December 2005, 13:34
[working from memory here; I'm browsing from an internet cafe in southern India!]

How do I know the pattern value of current frame?
1.if it is [in-pattern] it is clear: it is the the [using] value
2.if it is [out-of-pattern] and [using=c] then pattern value is [n]? I don't know what you mean by "the pattern value". If it is out of pattern it means that the pattern guidance could not suggest a match that fits the specified pulldown pattern, so there is no "pattern value".

Perhaps if you clarify things I can answer more usefully.

How to recognize the pattern change?
7. When pattern value of the frame before [cycle] frames is different than current frame pattern value (determined as above)? It's not currently flagged so the only way is to look at the repeating cycle, e.g., cccnn, and note when its phase changes.

When I input a value in the ovr file, does the Telecide speed up? Do you mean is the matching code bypassed? I can't remember. You'd have to look at the source code. In any case, normally overrides are few so the overall performance gain would be small.

How decimate decides which frame to decimate?
10. when the frame difference is >0 It depends on the mode, but for mode 0, it removes the frame that differs least from its predecessor. If there is a tie, I can't remember, but probably it removes the earliest one in the cycle.

redfordxx
20th December 2005, 14:42
southern India!Wow, travelling...?

I am working on an analysis tool, which will process the debug data of decomb. I will share it soon.
The reason is, that the video is often such a mixture of different interlacing modes, so it is necessary to check it.
I don't know what you mean by "the pattern value". Let's say for frames 1000-1004 is supposed pattern "cccnn".
The pattern value for frame 1004 should be normally "n".
But according the vmetric should frame 1004 be [using=c].
As I can see it, two things can happen:
1/ Decomb adapts the pattern, so the pattern value for 1004 is now "c". [in-pattern] is reported.
2/ Decomb keeps the pattern, so the pattern value for 1004 is still "n".[out-of-pattern] is reported.
It's not currently flagged so the only way is to look at the repeating cycle, e.g., cccnn, and note when its phase changes.Yes but what shoul I guess when there is not [in-pattern] message. Same as ^^^.

Do you mean is the matching code bypassed? I can't remember. You'd have to look at the source code. Hm, difficult for me... but I can test...In any case, normally overrides are few so the overall performance gain would be small.In the script I wrote I can automatically generate full-length override file, so I hope, it will speed up and there is not filesize limitation.
The purpose:
1/ N-th pass can be faster
2/ possible to process little different input (e.g. with or without deblocking in dgdecode)
3/ large files like 1080i can be processed two pass:
-first pass on smaller crop (much faster)
-generate override file on some threshold of reliability
-second pass in full quality decission (unreliable frames will be redecided
It depends on the mode, but for mode 0, it removes the frame that differs least from its predecessor. If there is a tie, I can't remember, but probably it removes the earliest one in the cycle.OK, so always the second frame. Does not check whether the interlacing is higher or lower? It is not passed & used via hints? Speaking about mode 0.

Well hints - more questions:
Can I read them somehow in Avisynth script?
For reading the hints, is it necessary to be Telecide and Decimate directly after each other? Or the hints are remembered even "through" some other filters?

Debug:
Here and there (but not rarely) in DebugView in Decimate log is missing the quintet of difference values. Do you think it is the processor speed issue?

Guest
22nd December 2005, 06:25
I regret that as I am on a computer away from my source code and tools and unable to download things, that a full answer must await my return from vacation in the 2nd week of January. There is a good article about Decomb's pattern matching at my web site Journal. Perhaps it can help you in the meantime.

There's one question I can answer immediately. Hints can be destroyed by filters between Telecide and Decimate. It depends on whether they modify the first 32 pixels (or is it bytes?) of the video.

redfordxx
27th December 2005, 18:15
ovr file for telecide slooooooows down the process significantly...
...surprised

Guest
28th December 2005, 07:07
Probably the cause is randomly reading the override file from disk. I'll enhance Decomb to read it fully into memory at startup.