The thought had occurred of using gyroflow for more advanced stabilization instead of writing a dedicated stabilizer plugin for Cinelerra.  Not sure why the decision was made to write another motion plugin.  In past experience with gyroflow, it had to run in a container & it didn't work on any gopro night footage.

After 25 years, lions felt the previous motion plugin was too stacked to add the new feature on top.

The general idea is to read ahead, compute the future accumulated motion, then compute the average, median, least squares regression, or mid point of all accumulated motion points in the future.  Subtract the regressed point from the current instantaneous motion vector to make it center on the long term motion.  

 

Initial tests with very detailed scenes, just averaging all future motion vectors to get the long term motion were better than anything in the last 25 years but slow.  All 8 cores & 16 threads were finally screaming.  It would have been a most difficult operation, 25 years ago.  It's always been kind of a garbage plugin, since it can't be used for any forensic analysis like the motion plugins.  Like any AI algorithm, it only creates output that looks good.

 


 

 

The mane problem is every change to the settings or seek requires recomputing all the future vectors.  The user has to reduce it to 1 frame or constantly restart the program to have any shot at changing the settings.  It definitely needs a super seeking algorithm.


Another glaring problem has existed since 1999.  Since it's using an affine transform to apply rotation, it should use the same transform to apply translation.  It's always applied translation separately, causing the rotations to be cropped.  The affine transform has a pretty stacked interface from years of motion hacking.  Another setting for applying translation & rotation simultaneously would be ugly.  

The purpose of the in & out pivot was lost on lions.  It looks like the difference between the out & in pivot is the amount it translates the output.  That's a good one to use in the 1st 2 motion plugins.

-----------------------------

The lookahead buffer still had problems with rotation drift.  Plotting instantaneous rotation over time showed no obvious offset.  Plotting the average rotation of the entire lookahead buffer showed a definite offset for the 1st time.

 


It should center on 0 unless the camera was continuously rotating 1 way.  It glitches off 1 level of detail above its minimum level of detail.

Flip the image & the rotation still drifts the same way.  Another nugget is the translation still drifts left when the image is flipped horizontally while the translation Y reverses.  The Y probably has no drift while X & rotation have an artifact.

The downsampling is all done in MotionCache.  It downsamples the entire source frames, then compares regions from those.  So far, the only obvious bug was a rowspan being miscalculated.  That 1 change seemed to fix the 1 way drift but now there was a new drift in all axes that was getting flipped when the source was flipped.  This might be normal drift for lucas canade.

The algorithm for determining the future midpoint is going to be the biggest factor in controlling drift.  The most promising idea is using the very last frame as the goal for a linear interpolation.

 

 

The next big problem is when a keyframe or end of plugin is in the future, it needs  to ignore frames after that point or flag those frames as not part of the current midpoint calculation.  It'll drift like crazy if it tracks toward the end of plugin or a keyframe.


Finally, it got an untested implementation of reverse playback.  It's useless in this mode since timeline seeking always starts with a forward playback & reverse playback of H265 is pretty bad.  It has to recompute the entire lookahead buffer for a timeline seek & again in the opposite direction for the reverse playback, which takes forever.

It could possibly store all the forward & reverse motion vectors for these direction reversals but it couldn't store all the frames.  That would be a herculean effort.  It will probably never be used in reverse playback.  Lions pondered just disabling it in reverse.

It's so slow, supporting any more than 60 lookahead frames is just pedantic.  72 frames would give it 3 seconds.  It'll never be used with 600 frames.  Lions can only imagine 600 frames being used with 320x240 coming off a robot.

 

A newer 64 core CPU for $5000 might make it practical.  For that money, you're better off buying a bag of 360 cams.  They would definitely give better results.  Lions pondered how much better the footage would have been from a 360 cam.  The gear360 from 7 years ago just doesn't support an IMU or have nearly the quality of a newer cam.  A 360 cam might be worth it in the next race.  That would make all the truck tracking hardware mostly obsolete.


That was about as good as a lion could get it.  It's not a 360 cam but it's really good compared to what lions used for the last 25 years.  The old way involved stabilizing a few seconds at a time, manually recentering the segments with a keyframe, writing oversized frames to have room to recenter it.



------------------------------------------------------------------------------------------------------------------------

Noted the 1 trouble spot didn't bleed anymore when it wasn't flossed, while traveling.  Wondered if it was because of only using alcohol based wash.  Then noted the travel size toothpaste was stannous fluoride.  It really was making a difference.  So sodium fluoride was busted & it was time to burn another $7 on good old stannous fluoride toothpaste.  Not just the 1 trouble spot but everywhere else felt generally better when brushed with stannous.

The good news was lions would truly not have to floss anymore.  The bad news was lions would deal with whatever made Ellie Phillips oppose stannous fluoride. 

Generally, chewing xylitol gum after every meal & not flossing has been a positive experience for 9 months.  There is much less bleeding & transient pain than when flossing.  There is evidence the decades of flossing did transport bacteria into places they don't normally go & opening up a space between the gums & teeth was a bad idea.


----------------------------------------------------------------------------------------------------------------------------

Noted a lot of X commenters said $10 mil & above was the bare minimum required to retire.  Lions feel requiring anything over $2 mil as a bare minimum means you're doing something wrong.  That's the point where the most efficient economics are going to come from how you allocate capital rather than having a job. 

Lions can't imagine being as wealthy as Ego Monger's husband, but is that lifestyle really the most efficient use of capital? 













Comments

Popular posts from this blog