Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

 
Virtualdub Filtermod
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
shekh
Posted: Mar 7 2015, 07:31 PM


Advanced Member


Group: Members
Posts: 89
Member No.: 37903
Joined: 21-April 14



https://sourceforge.net/p/vdfiltermod/wiki/Home/

The mod is not downloadable yet but I think some visibility wont hurt.

I am making some plugins and stuck in API limits and other boring issues, so I decided to fork VirtualDub, extend API, and even make it public so maybe some other will want to use it too. Ideally, some changes may be ported to official VirtualDub. Phaeron, I hope you are watching.

Some code changes are already uploaded to GitHub, but they are not "final".

Also I uploaded some plugins there.
 
     Top
shekh
Posted: Mar 7 2015, 08:08 PM


Advanced Member


Group: Members
Posts: 89
Member No.: 37903
Joined: 21-April 14



Besides trivial changes, I have proof of concept for new format pipeline, XRGB64.
It seamlessly accepts high bit depth formats from ffmpeg and works with plugins.
Dont have idea yet whether it is possible to output via VFW, but maybe it will work with external encoder interface.

Some design decisions:
XRGB64 is natural and efficient layout for SSE2 code.
Order of components is the same as XRGB8888, so up/down conversion is trivial.
Integer is still more optimal than FP32 and takes less space.
Unsigned. Dont know what signed format is good for in image processing.

All fixed point variations I fit into single format with help of extra bitmap attributes: it seems not a big deal to account for it in a filter, presumably less trouble than multiple explicit format mutations like 0.16, 2.14, etc.
Same for linear/non-linear mapping, alpha option, and maybe something else - all passed as extra bitmap attributes.

 
     Top
raffriff42
Posted: Mar 8 2015, 10:36 AM


Advanced Member


Group: Members
Posts: 384
Member No.: 35081
Joined: 25-June 12



A worthy goal. Only, don't invent a new format - there are too many already. I like the idea of OpenEXR (basically, 16-bit float) as it has lots of industry support and open source libraries. But I'm not qualified to say what's best, really.

Whatever internal format you use, you can interface with VfW using Avisynth's stack16 format.
 
     Top
shekh
Posted: Mar 8 2015, 02:32 PM


Advanced Member


Group: Members
Posts: 89
Member No.: 37903
Joined: 21-April 14



I appreciate all input, especially on possible connection with existing code - potential plugins. Anybody wants to create/update plugins for which format?
Btw somebody definitely wrote fp32 plugins in the past but I dont see any trace, other than VirtualDub has support for it in UberBlitter.

Avisynth stack16 as I see it is pointless, but maybe it can make happy some avisynth users.

16-bit float I dont like for several reasons: it has very little extra precision compared to 8 bit integer, and it is useless for plugin pipeline because there is no native support in CPU.
In contrast, I believe existing 8 bit plugin can be updated to 16 bit with minimum effort similar performance (I need to check this theory soon smile.gif

I inspected all ffmpeg formats and they are all integer. All cineform formats are integer. Magicyuv, utvideo, h264, h265 have deep color integer formats. So it seems fine. All efficiently expand to xrgb64 (is this b64a? in worst case needs simple swizzling), in fact this is the only format that seems more or less standard for everything.
 
     Top
shekh
Posted: Mar 11 2015, 08:44 AM


Advanced Member


Group: Members
Posts: 89
Member No.: 37903
Joined: 21-April 14



small demo (different subject, not 16 bpc)

http://youtu.be/3PHcVBgqoHY

This filter can manage and crossfade worker filters (regular VD filters).
Can work in normal VD too, but extended API allows for much smoother UI.
 
     Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:
4 replies since Mar 7 2015, 07:31 PM Track this topic | Email this topic | Print this topic

<< Back to VirtualDub Filters and Filter Development