[PATCH] Video Post-Processing Filter support for DVDPlayer, need help to develop...
#1
Information 
I seriously miss the post-processing ability from my old mplayer based setup (I have a lot of low quality movies), so I put a few hours into implementing it in XBMC's dvdplayer. It's working very well, but there are a few things I feel need discussion.

User interface

This kind of post-processing has two downsides: (a) the image gets blurred, and (b) it eats CPU cycles. As such, there needs to be an on/off switch.

Since low-resolution and overly compressed tend to go hand in hand, I copied the design from the software scaler and made the configuration tri-state (off/SD only/everything).

One thing I'd like to improve is the naming of the category. "Post-processing" is not very descriptive to those not in the know, and I think we should separate function from implementation (so that we can change the implementation in the future). Basically I'd like something that says "Clean up your crappy videos".

Configuration

The current configuration for post-processing is very messy. There are currently two things in the configuration named "postprocessing":

1. The mplayer code, documented here http://wiki.xbmc.org/?title=Advancedsett...cessing.3E

2. Deinterlacing control, stored as <video><postprocessing> in advancedsettings (but not documented unfortunately)

My code stores in guisettings under videoplayer.postprocess, but I'm not happy with the name for the same reason I don't want the GUI to be labeled "post-processing".

Patch

Make sure we keep the qscale data as the filters need this to do the right thing:

xbmc-qscale.patch

The actual post-processing patch:

xbmc-postproc.patch


Result

Many of you are probably eager to see what this does.

Before: Image
After: Image

Diff (changed pixels are white): Image
Reply
#2
For reference, other threads and tickets about this:

http://forum.xbmc.org/showthread.php?tid=40872
http://forum.xbmc.org/showthread.php?tid=60386
http://trac.xbmc.org/ticket/3844
http://trac.xbmc.org/ticket/5553
Reply
#3
Awesome man nice job. Make sure you add your patches to a suitable trac ticket so they can be reviewed by a developer, other wise they wont even look at them.
Reply
#4
Wow nice work, been looking forward to something like this for my old videos Smile

Look forward to seeing it integrated into SVN!
Reply
#5
Hi,

Love the work your doing!

I don't want to seem like I'm making demands or anything but I just wanted to mention the ps3 dvd player has 10 step DNR, MPEGNR and Sharpening. Having 10 steps instead of just on/off is really powerful for getting the best out of various sources and I've always hoped XBMC would get a similar style post processing suite. Maybe you could consider this approach in your implementation?

Just an idea! Happy Coding!
Reply
#6
That sounds like a good idea Freddo, espcially for people using Atom style processors since I guess this is all CPU hungry so would be nice to be able to have it enabled but less aggressive for the lower power CPU's.
Reply
#7
It's probably a reasonable next step, but it does require some more investigation as the documentation doesn't mention what the tradeoffs are when it comes to CPU usage. I don't see it as a blocker for getting this simpler on/off version in.
Reply
#8
Ossman,

Wonderful job! Are you at all interested in GLSL and/or OpenCl as potential optimization runs? Smile
Reply
#9
Great! can the patches be applied to XBMC Live? I'd like to test it out as I have alot of low quality educational television recordings generated daily for my 4 year old girl.
Use mythicalLibrarian to make a library out of your MythTV files. Leave the recording to MythTV and use XBMC as your library.
Installation and Instructions:http://wiki.xbmc.org/index.php?title=MythicalLibrarian
Technical Support:http://forum.xbmc.org/showthread.php?tid=65644
[url=http://forum.xda-developers.com/showthread.php?tid=1081892][/url]
Reply
#10
Soju Wrote:Ossman,

Wonderful job! Are you at all interested in GLSL and/or OpenCl as potential optimization runs? Smile

ARB programs perhaps as I don't have driver support for GLSL yet. Rolleyes

But I'm not sure there's much point. On low res stuff the filters don't eat much CPU, and on high-res they're often not needed (also, x264 already has a deblocking filter as part of the decoding).
Reply
#11
outleradam Wrote:Great! can the patches be applied to XBMC Live? I'd like to test it out as I have alot of low quality educational television recordings generated daily for my 4 year old girl.

You're going to have to ask the regular devs. I have no idea how the LiveCD is built (plus I don't have any Ubuntu installations here). This thread has not gotten much attention from the dev crowd though. Oo
Reply
#12
ossman Wrote:This thread has not gotten much attention from the dev crowd though. Oo
Have the patches been added to the trac system?
Reply
#13
ashlar Wrote:Have the patches been added to the trac system?

Yes.
http://trac.xbmc.org/ticket/5553
  • ASRock ION 330 OpenELEC XBMC Frodo.
  • 47" LG HDTV1080p, AC3/DTS Receiver.
  • 96" Epson LCD 1080p projector
  • 2x Raspbery Pi with XBMC
Reply
#14
ossman Wrote:This thread has not gotten much attention from the dev crowd though. Oo
Don't worry man as you know XBMC is in feture freeze atm and the devs are very busy squashing all bugs for the gold release. Also for those who celebrate it Xmas is only 2 weeks away so their "in the real world" lives are probably pretty busy too.

I'm sure they will give it a look once 9.11 or 9.12 whatever they are going to call it is released.Big Grin
Reply
#15
what he said ^
Reply

Logout Mark Read Team Forum Stats Members Help
[PATCH] Video Post-Processing Filter support for DVDPlayer, need help to develop...2