My brother made an ill-advised purchase last year and now I am stuck with the video generated by said device. Here is the culprit:
http://www.amazon.com/Kodak-PlaySport-Waterproof-Pocket-Camera/dp/B0030MITDK
The Kodak PlaySport Zx3. Boasts the ability to record 1080p video underwater. Shrug. That it does. But here is a frame of that video (no filters, directshowsource):
At 29.97fps it gets 12.3Mbps (AVC Main@L4.2). The quality doesn't seem to live up to the promise of even that humble bitrate. So I've got to try to do what I can to make things look a little better. Step one is to deal with the overall poor quality.
Actually, the above frame looks a lot better than it did in KM Player. I can only assume that KM Player was failing some sort of process and causing the image to look way blockier than it needed to. So I don't even know if I should be trying to deblock the image. Maybe there is nothing that can be done. I did try a couple of permutations of DeBlock_QED, but if it did anything at all to the image, the effect was too subtle to discern. I also found an interesting script, with some impressive results posted later on, in this thread:
http://forum.doom9.org/archive/index.php/t-115632.html
But the script is unusable because it runs out of memory.
Step two - assuming something can be done to make the video a little more agreeable, is to interpolate new frames so I can have a proper 60fps. In its current incarnation, the video at 30fps exhibits little to no motion blur and the result is somewhat jarring. I'll be pretty happy if I can get a quality result out of this little camera.
+ Reply to Thread
Results 1 to 6 of 6
-
-
did you try adding setmemorymax()
e.g.
setmemorymax(512)
# rest of the script
Step two - assuming something can be done to make the video a little more agreeable, is to interpolate new frames so I can have a proper 60fps. In its current incarnation, the video at 30fps exhibits little to no motion blur and the result is somewhat jarring. I'll be pretty happy if I can get a quality result out of this little camera.
http://forum.doom9.org/showthread.php?p=1486831
For motion blur, you can use mflowblur (See the docs) -
-
Well, I have now. ;p Even 1.5GB doesn't seem enough so there must be something fundamentally excessive (broken) about the script's memory demands.
The motion blur works great. And I'll see if PPro or AE can do a better job with the frame interpolation. What remains is the original task of hopefully making the video appear a little less obviously coming from a poor camera.
That's entirely likely. I hadn't known that h.264 had deblocking built-in. I find myself wondering if an Avisynth-based deblocking script could somehow do a better job than h.264's built-in process. Though presumably the h.264 process is privy to some guidance variables that help idealize the output.
Well, my experience with this kind of interpolation tells me that I should at the very least be seeing better results than what I got from the mflowfps example, whose results looked more like a morph than an interpolation. I'll be testing Adobe's apps eventually. -
jagabo's right, you won't get good interpolation with "non linear" content like water . I have quite a bit of experience with twixtor, AE pixel motion, timewarp, nuke, and avisynth methods - you will get the morphing edge dragging artifacts . The pro versions like twixtor allow you to use mattes to reduce this, but it's almost impossible to use a foreground/background matte for water .
You will find avisynth will give similar results , but process much faster. Part of the reason is you can use it in YV12, whereas the other filters function in RGB - there is more data that has to be processed with RGB
From your example picture, I'm not sure if any filter will help much with the quality. You could resize to 1280x720 -
When the motion estimation techniques can't find obvious motion vectors they resort to blending. With non linear motions they often misidentify motion and you get weird distortions. An extreme example:
source frame:
motion interpolated frame:
next source frame:
That was done in AviSynth with this function:
function DoubleFPS2(clip source)
{
super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4)
backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
MBlockFps(source, super, backward_3, forward_3, num=2*FramerateNumerator(source), den=FramerateDenominator(source), mode=0)
}Last edited by jagabo; 13th May 2011 at 09:23.
Similar Threads
-
dv cassette deblocking
By noiz in forum RestorationReplies: 7Last Post: 16th May 2011, 18:13 -
How to keep ffdshow post processing(deblocking filter) in finalized video
By Milardo in forum EditingReplies: 6Last Post: 5th Apr 2011, 05:09 -
Using MSU Smart Deblocking Filter...
By AshleyQuick in forum Newbie / General discussionsReplies: 4Last Post: 28th Apr 2008, 20:17 -
deblocking a video
By themaster1 in forum Video ConversionReplies: 3Last Post: 26th Feb 2008, 10:44 -
deblocking vob files
By jasoncolz in forum RestorationReplies: 5Last Post: 23rd Jun 2007, 20:11