Saturday, March 11, 2017

Video Motion Analysis

I updated my video analysis program to output the standard deviation of each residual frame so I could see the motion levels from frame to frame. Then I saved the results into an Excel sheet and generated graphs. Below is a combined graph of BarScene, Dog Run (my own sequence), and snow (99.99% entropy).

(Click to enlarge)

You'll notice that Dog Run had to be repeated since it was much shorter than the others. There are some other things worth mentioning:

  • The spikes in the blue BarScene graph are scene changes; therefore an encoder could, on the first pass, detect scene changes for keyframe purposes using a standard deviation threshold value.
  • At nearly 100% entropy, snow is obviously not going to survive lossy compression very well. Its high standard deviation would also prompt the encoder to make every frame a keyframe. This would be a major problem unless you had good "hard" rate control.
Here's the BarScene graph, which has the most distinct activity.

I found Ronald Bultje's "Overview of the VP9 video codec" very helpful. I'm close to fully understanding the VP9 bitstream and once I do, I'll be able to start my actual encoding experiments.

1 comment: