tree 92c1b0cbfbcc0084a67df5236a614672a83a06f2
parent ab0dcc819f3ff3b7f9289b911d1c75156d46199a
author chiyotsai <chiyotsai@google.com> 1658856314 -0700
committer Chi Yo Tsai <chiyotsai@google.com> 1660775192 +0000

RTC: Collect variance stats to prune compound modes

This commit consists of the following three changes:
  * The variance of residue for each (inter mode, ref_frame) combination
    is recorded.
  * An old speed feature prune_global_globalmv_with_globalmv is expanded
    to prune nearst_nearestmv as well.
  * A new speed feature prune_compoundmode_with_singlecompound_var is
    introduced -- when a compound mode's single mode counter part is
    outperformed by its peer, the compound mode is pruned.

Due to the overhead of stat collection, there is ~0.1% encoding time
increase when the speed features are not turned on. However, the
encoding time is improved by 0.9% on speed 7. The stats collected can be
used to create new speed features for speed 8 - 9 later.

Performance:
| SPD_SET | TESTSET  | AVG_PSNR | OVR_PSNR |  SSIM   | ENC_T |
|---------|----------|----------|----------|---------|-------|
|    7    |   rtc    | +0.036%  | -0.067%  | -0.013% | -0.9% |
|---------|----------|----------|----------|---------|-------|
|    8    |   rtc    | +0.006%  | -0.005%  | -0.003% | +0.0% |
|---------|----------|----------|----------|---------|-------|
|    9    |   rtc    | +0.000%  | +0.000%  | +0.000% | +0.1% |
|---------|----------|----------|----------|---------|-------|
|   10    |   rtc    | +0.000%  | +0.000%  | +0.000% | +0.1% |

STATS_CHANGED

Change-Id: Ib43b4db7bc90e89473feff8ea78879346e1777c3
