Deshaker script vs FCP deshake plugin?

Laurence wrote on 8/8/2007, 9:11 AM
I am getting results with the John Meyer Deshaker script that are just wonderful. Anyway, I am working with some people who are doing a project in FCP which will use some of my footage. I know that FCP has a deshaker feature now and I wonder how the quality compares with the Vegas/VirtualDub/Deshaker motion stabilization that I use. I know that Deshaker fills in the edges with previous/next frames where it needs to and so you don't lose the resolution that you do if you use the zooming in approach of programs like Dynapel's Steadyhand.

So my question is basically this: Does FCP's motion stabilization feature fill in the edges with previous and next frames and thus offer you similar quality to the Deshaker approach? If not, I would probably be better off using the Vegas/Deshaker approach. Does anyone know or have any insights into this. None of the footage I have was done with a tripod and the quality of the deshaking will make quite a difference on this project.

Comments

GlennChan wrote on 8/8/2007, 2:20 PM
I believe it zooms... that's how Shake's smoothcam worked. (Well Shake gave you more options, but they are just variations on the simplistic zoom approach. By that I mean it doesn't help you fill in the edges.)
Laurence wrote on 8/8/2007, 3:22 PM
That's what I thought too. In that case, the resolution of the output of the Deshaker script would be quite a bit better in most instances. What I do is run the deshaker script, then zoom in a little if I have distortions at the edges of the frame.

When I'm shooting I try to avoid things that will cause distortions at the edge of the frame when I run deshaker. By that I mean things like waving branches, flages, gesturing arms, legs walking across the frame, etc. Often you can't do anything about such things, but if you're aware of it while you're shooting, sometimes you can frame a little differently to avoid them.

Anyway, after I run the deshaker script, I zoom in or reframe a little if I have edge distortions. For instance, if there are legs walking accross the frame, I might zoom in a little biased towards the top of the frame until the disembodied legs are gone. Quite often I don't need to do any reframing, and even when I do, I know it is less than I would have to set a zooming deshaker to in order to be safe.

For me at least, this is a pretty big advantage of Vegas over FCP.
Coursedesign wrote on 8/8/2007, 8:41 PM
The new SmoothCam feature in FCP certainly has a bit of a V1.0 feel to it.

Steve Martin has a great intro to FCP 6 at http://www.kenstone.net/fcp_homepage/fcp_6_first_look_martin.html.

Very different from everybody else's "first look." Far more practical and useful imho.

Laurence wrote on 8/8/2007, 9:29 PM
Well the section in that link about the "smoothcam" feature answered my question. Yeah, FCP is definately zooming in to mask the edges. The Deshaker script from Vegas will give you a lot sharper image after deshaking.
Coursedesign wrote on 8/8/2007, 9:46 PM
No, FCP is not "definately zooming in to mask the edges."

Steve: To hide the black edges that result from all this motion compensation, the filter applies some slight scaling to the clip. By default, an auto scaling value of 1 is applied.

So it's a choice. I agree that if the footage isn't shot with first class lenses and cameras, scaling is best avoided unless it's a scene where black edges won't be noticed.

Note also that Smoothcam analysis works in the background, and can even be done separately.
Laurence wrote on 8/8/2007, 10:23 PM
Boy the description you quoted sounds like zooming to me.

In my experience, you have two things going on. The first of these is how severe the deshaking is. The more active the deshaking is, the more you end up with moving black edge boundries. The second is how you cover up these moving black edges.

If you use Dynapel's Steadyhand for instance, which only can mask the edges by zooming, you need to compromise between how much deshaking you do and how much zooming resolution loss you are prepared to accept. What you end up doing is deshaking just a little and zooming just a little.

Deshaker can also zoom, but in addition to this, it gives you the option to replace the missing pieces of video with portions of the image that line up from nearby frames. The ideal situation for this is where you have action in the middle of a room or unchanging landscape. If you are in a room, the walls, ceilings, etc. are unchanging and you even see when they are patched in. The same is true of something like a desert landscape.

Where this approach gets you in trouble is where the edges of the frame are changing or where the subject is moving at the edges of the frame. For instance, when somebody is walking accross the frame, you might see the bottom of their legs offset from their bodies for a frame or two. The same thing with the top of a moving head. Another case where this approach doesn't work is if you have a background in motion like ocean waves or tree branches blowing in the wind.

My experience however is quite positive. I find that with the Deshaker "patching in the edges" approach, I can be much more aggressive with the amount of deshaking I use. Bodies of people standing and talking to the camera look just fine. Clouds in the sky are usually changing slowly enough that you don't see the patching. In the worst of cases, with the "takes" approach of the Deshaker script, it is easy to go back to the original and try again if there is a problem. Also, it is pretty easy to use the pan/crop tool to zoom in any time there is a problem. With a bit of keyframing, you can even change this within a shot. What I have found is that the end results of the Deshaker approach not only look steadier, but they look crisper and sacrifice less resolution.

Having worked with both the zooming approach in Dynapel's Steadyhand software, and a combination of zooming and patching in the Virtualdub Deshaker script, I know quite well first hand that the latter is a far better approach.

Just watch, in a year or to, FCP will be doing this as well, and when they do, they will of course claim to have invented it.
Coursedesign wrote on 8/8/2007, 11:15 PM
Laurence,

I apologize for my poor communication.

Let me reemphasize what I said to try to clarify the point I was trying to make:

No, FCP is not "

I said it gave the user a choice of whether to a) zoom in, or b) accept black edges.

Hope that is clear enough.

I am very familiar with the edge replacement technique from professional software where this has been used for a long time.

Deshaker is a great find!

I don't know if FCP will come to claim to have invented this next year, but I guess it can't be ruled out. ProRes 422 is a lot like Avid's DnX codecs, Color came from the outside (as did FCP), etc., etc.

In the end, I still find it refreshing to sit down with FCP at times, not needing to worry about codec support or 10-bit video or floating point or After Effects roundtrips or a whole bunch of other things that are just supported because of the enormous volume of users.

So there are advantages too.

Quirkiness is in every NLE, we have to take the bad with the good, but if we're badass enough we can choose to work with multiple NLEs.

:O)

riredale wrote on 8/9/2007, 8:38 AM
I try to avoid any zooming if at all possible. In SteadyHand it seemed to make the image much softer. I haven't tried the experiment in DeShaker, but would assume that the resampling would have the same effect, regardless of the amount of zoom.

What I've done instead is two things:

(1) I limit the degree of DeShaking to 1000 horizontal, 1000 vertical, and 1000 rotation. This results in a still-significant improvement in stability yet limits the size of the fake edges. The fake edges are considerably reduced in size yet the video "watchability" is still greatly improved.

(2) The finished project is fitted with a 4% cookie cutter black border. I know this may sound like heresy, but look at it this way--90+% of the viewers are going to see your masterpiece on a device that crops 7-10% anyway. The only time people will see the entire frame is when it is viewed on a PC. I'm just making the viewing experience consistent.

With these two techniques I don't think I've ever come across a DeShaken scene where edge effects are obvious.
DJPadre wrote on 8/9/2007, 8:48 AM
wot u guys are faiuling to realise is that not only is deshaking reframing each frame, but its also resampling each frame. in turn, you are restricted to whatever input format your are using. If importing DV, the generation loss is noticable, importing huffy or sony yuv and the generation loss is less noticable.
Importing interlaced also makes a HUGE difference as opposed to progressive, whereby progressive will yield smoother and more accurate results.
Importing HD and the zooming is barely noticable, for DV source, when using these 422 codecs as intermediates, zooming wont adversley affect the imge quality. With some unsharp masking, u can retrieve that lost edge data

in addiiton, i wouldnt be using deshaker as script in vegas, i woudl instead expoert each respective clip as huffy yuv and process, then reimport.
This allows the logfile for each clip to be customised FOR each clip. At the moment, from what i understand, the deshaker log fie is NOT reqritten each time the plugin is used.
Laurence wrote on 8/9/2007, 9:47 AM
Actually, Deshaker works really well with interlaced footage. What it does is to separate the fields, deshake the separate fields, then recomb them back together. I've looked frame by frame at pre and post deshaker interlaced footage, and you can actually see how Deshaker takes the two fields that were once quite far apart, and moves them back together.

As far as output quality goes, I can see no loss of quality from using the script from within Vegas. Not only that, but you don't lose the 30 frames at the end when you run the script from Vegas. It is just so much easier to use the script from Vegas than to do the clips individually in Virtualdub. In VDub, not only do you have to do the clips one at a time, but you also have to manually start each of the two passes for each clip. In Vegas with the Deshaker script, all I have to do is click on the clips I want deshaken, start the script and go to lunch. It is just so much easier.

By using the Cineform codec modification (yeah you have to buy Neo HDV to do this), I save all sorts of rendering time and hard disc space. The clips are passed to VirtualDub uncompressed, but then they are written back to Vegas as Cineform. From that point, all renders are smart-renders for the deshaken footage (unless of course I crop or add a filter). The time I spent at lunch waiting for the Deshaking process will for the most part be subtracted from my final rendering time.

As far as individual processing for each clip, I don't really need that. I just use the Deshaker settings that keep the maximum resolution. If I run into edge artifacts, I just use the pan/crop tool to get rid of them. It is way faster and it looks every bit as good.
DJPadre wrote on 8/10/2007, 12:43 AM
"As far as individual processing for each clip, I don't really need that. I just use the Deshaker settings that keep the maximum resolution. If I run into edge artifacts, I just use the pan/crop tool to get rid of them. It is way faster and it looks every bit as good."

ok, well if your happy with that, thats cool, but im talking about the actual deshake log which tracks each individual element of motion

the crispt, as good as it is, wont ever have teh same accuracy in track motion if the log file doesnt tell it that "frame 327 comes to pass, deshake needs to shift the frame 2% to the right for"
the script doesnt do this,

if it does, then id be using the script and bypassing the stnadalone VDub workflow altogether
Laurence wrote on 8/10/2007, 7:18 AM
The script makes temporary log files for each clip individually. It's exactly the same process as if you did the clips one at a time. It is WAY cool!