< Previous | Contents | Manuals Home | Boris FX | Next >

Every Solve is Different

To peek behind the curtain, the solver winds up having to solve large systems of equations for each iteration. Building those equations, solving them quickly, and manipulating them so that it all turns out well in the end, is quite a bit of a black art.

To give you some idea of what we're talking about, there are three variables for each tracker location, and six variables for each camera position. For a 300 frame autotracked shot with 120 trackers, that's 2160 variables. (There are more details for the lens, object tracking, solver locking, etc., this is just for a quick understanding.) Then there are 2 equations for every frame that a tracker is valid. If every tracker is valid on 2/3 of the frames, that's 48000 equations, about 100 million coefficients. That's a lot of equations and variables for a very average solve. SynthEyes uses advanced techniques to solve it very rapidly.

While users typically believe that computers always produce exactly the same 100% accurate result, reality is more complex. Repeatedly re-solving or refining a scene will produce slightly different results! This is not a bug, and is actually a useful feature.

Here are some simplified explanations of the factors, which affect various parts of advanced software, not just or necessarily the SynthEyes solver. While in practice this isn't usually something you need to worry about (see the last "When it helps" section) we include it for the edification of our more discerning customers.

 

Macroscopic Differences Computer arithmetic has limited precision Tasks are distributed across multiple processors There are many local optima There are many arbitrary decisions Adding randomness can improve performance When it helpsWhen it hurts

©2024 Boris FX, Inc. — UNOFFICIAL — Converted from original PDF.