PDA

View Full Version : AviSynth Port: Cross-Conversion Correction


Daemon404
25th December 2010, 03:42
Okay so some people wanted an AviSynth port of a certain AviUtl plugin called Cross-Conversion Correction, so here it is. This is a clean room (sort of) port, as the original plugin has no source code.

It's aim is to fix the interlaced upscaling that Japanese broadcasts and Blu-rays seem to use (near as I can tell). This plugin is specifically meant for 720->1080 conversions. Maybe I'll eventually try and figure out 480/486->1080 stuff.

Screenshot Examples:
Original (http://japland.org/ccc/img/original.png) | ccc() (http://japland.org/ccc/img/ccc.png) | ccc720() (http://japland.org/ccc/img/ccc720.png)

Please read the included readme for a better description (translated from the original Japanese readme).

ccc() takes YV12 input and ccc720() takes YUY2 input, and both take one parameter (phase), described in the readme.

Original Plugin: http://www.geocities.jp/flash3kyuu/
AviSynth Port: http://japland.org/ccc/ccc_v0.4a_avs.zip

Note: The code for 720 output mode is a direct port from the code dump of the original AviUtl plugin, so don't expect it to be great. I don't really have motivation to clean it up (even if it is little effort) because I haven't actually found a plausible real-world use case for this mode yet.

jmac698
25th December 2010, 05:25
I would describe the effect as thus; an image contains a grid where each square represents a replacement for a brightness, this is applied to the video. So a gradient of grey would show a normal video, but a tile of ASCII would make an ASCII video (like in VLC). Weird colors make a cool thermal cam effect.
Is that right?

Daemon404
25th December 2010, 05:54
If you can read Japanese, then try these:

http://geocities.yahoo.co.jp/gl/flash3kyuu/view/200908?.begin=11
http://geocities.yahoo.co.jp/gl/flash3kyuu/view/200908?.begin=6

Might contain some useful info for you.

jmac698
25th December 2010, 10:55
Sorry, wrong thread! I was referring to TurnsTile.

Daemon404
27th December 2010, 18:28
Yeah I thought so. Wasn't really following.

thewebchat
28th December 2010, 03:25
@Daemon404: Since you ported this, could you explain what exactly this does? It seems to reverse interlaced resizing that was done without considering field offset, but why do we need a custom plugin for that? It seems to me that you could get the same result just by using SeparateFields. On a usage-related note, can you better describe what the "phase" parameter does?

Daemon404
28th December 2010, 06:36
@Daemon404: Since you ported this, could you explain what exactly this does? It seems to reverse interlaced resizing that was done without considering field offset, but why do we need a custom plugin for that? It seems to me that you could get the same result just by using SeparateFields. On a usage-related note, can you better describe what the "phase" parameter does?

'phase' is the vertical offset for applying this filter. Since it works in groups of 6 lines, so it tells it on which of these 6 lines to start applying the algorithm on.

As for how said algorithm was derived, I ported this cause someone asked for it, I did not originally write it, nor can I read Japanese. Contact its original author if you want to find that stuff out.

Also, if you can get similar or equal results using anything else (especially using separatefields()), please, do post them, because I haven't seen another method that yields as good of results. (You can try it on the original.png file in the post.)

And I'm not totally sure what you mean by 'field offset', unless you are speaking of temporally distinct fields (aka 60i content), in which case, this does not seem to be what you want.

P.S. You do such a good job at reading the readme and the code.