Log in

View Full Version : x264Resize 0.1: a fast 2x upscaling filter for playback


Dark Shikari
21st March 2009, 01:21
Per this RFC (http://forum.doom9.org/showthread.php?t=145561). I decided to spend an hour writing this, so I did. It's currently completely unoptimized: no assembly from x264 yet.

Usage: x264Resize(). No arguments, no nothing, just works.

Description:
A high performance 2x resize filter using the H.264 6-tap hpel filter algorithm.

Pros:
Similar quality to Lanczos.
Faster than Lanczos (currently almost as fast as Bicubic).

Cons:
Slower than it should be (I haven't added the assembly yet).
Shifts the image 0.25 pixels in the +X and +Y directions, respectively.
YV12-only, because I'm lazy.
2x resize only.

In other words, it's meant for display purposes--where you don't care about a 0.25 pixel shift, and where YV12 is all you care about. I don't feel like implementing non-planar formats, but if someone wants to, feel free; the source is GPL and included.

Download x264Resize 0.1 (http://mirror05.x264.nl/Dark/force.php?file=./x264Resize.7z)

It's a bit alpha at the moment--I don't intend it to be particularly usable until the asm is in.

cyberbeing
21st March 2009, 07:50
x264Resize 0.1 seems to be broken on my end.

Avisynth first compains it is unable to load the plugin. Then it complains it isn't a Avisynth 2.5 plugin.

Dark Shikari
21st March 2009, 08:18
That's odd; it worked here. I assume the version of avisynth.h doesn't matter (it'll work on 2.58, 2.57, etc?)

I'll check later when I get back to my computer if the dll I included specifically worked or not.

If you have MSVC, you can compile it yourself.

cyberbeing
21st March 2009, 08:40
I figured it out, it was a dependency issue. It requires the Visual C++ 2008 Runtimes (msvcr90.dll & msvcm90.dll) and .NET 2.0 or greater (mscoree.dll). I didn't have .NET installed (reinstalled WinXP a few days ago). Installing .NET fixed the problem.

Dark Shikari
21st March 2009, 08:49
I figured it out, it was a dependency issue. It requires the Visual C++ 2008 Runtimes (msvcr90.dll & msvcm90.dll) and .NET 2.0 or greater (mscoree.dll). I didn't have .NET installed (reinstalled WinXP a few days ago). Installing .NET fixed the problem.Someone tell me how to fix the silly .NET dependency, it doesn't use .NET so it shouldn't require it.

(newbie to MSVC)

dancho
21st March 2009, 10:53
Project->Configuration Properties->Common Language Runtime support == NO Common Language Runtime Support

Gavino
21st March 2009, 11:48
Usage: x264Resize(). No arguments, no nothing, just works.
I guess you mean x264Resize(clip).
Shifts the image 0.25 pixels in the +X and +Y directions, respectively.
Does it also introduce a relative shift between luma and chroma?

Dark Shikari
21st March 2009, 11:50
Does it also introduce a relative shift between luma and chroma?Hmm, this is a good point, as it resizes each plane separately, and thus applies the shift to each plane separately.

Yes, it probably does.

Keiyakusha
16th April 2010, 00:04
Sorry, any progress on this? ^__^