Experiment. Store first pass errors as per MB values.
authorpaulwilkins <paulwilkins@google.com>
Wed, 5 Apr 2017 09:35:54 +0000 (10:35 +0100)
committerpaulwilkins <paulwilkins@google.com>
Wed, 17 May 2017 11:00:18 +0000 (12:00 +0100)
commit42e5073f94ffa15cc5bd6284b9b1daed5c093cf1
tree430a5416cdeb3a91340f8843ed03223a26856fa0
parent629279a45c1be8b5daa22b39e9c8f85503831e24
Experiment. Store first pass errors as per MB values.

Most existing first pass stats are stored in a form normalized to a
macro-block scale. However the error scores for intra / inter etc were
stored as frame level values but mainly used as MB level values.

This change  fixes that. Normalized per MB values make comparisons
between different formats easier and in any case this is usually what is
wanted.

An change in results should be limited to slight differences in rounding.

*** Change after patch 8 +2 requiring new approval.

Final pre-submit testing showed  one 4K clip with above expected change.
Investigation showed this was due to a value used to test for ultra low intra
complexity in key frame detection. This was a per frame not per MB value but
also did not scale with frame size. Replacement with a small per MB value
(based on original per frame value and cif frame size) resolved the KF detection
problem.

Also converted kf_group_error_left to a double in line with other error values
to reduce rounding problems in KF group bit allocation

All clips and sets now show nominal (or 0) change as expected.

Change-Id: Ic2d57980398c99ade2b7380e3e6ca6b32186901f
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_firstpass.h