Allow mode search breakout at very low prediction errors
authorYunqing Wang <yunqingwang@google.com>
Thu, 2 Oct 2014 23:25:52 +0000 (16:25 -0700)
committerYunqing Wang <yunqingwang@google.com>
Thu, 9 Oct 2014 00:46:22 +0000 (17:46 -0700)
commite18edd5eb651f9b7563cbd829744807402bfe0d8
treecd30513420680392bc6aa78a0987b092fae010fe
parentf6ff752c6321af8502be8fd0bc6b6192a825c76b
Allow mode search breakout at very low prediction errors

In model_rd_for_sb function, the spatial domain SSE and variance
are checked to see if transform coefficients are quantized to 0.
Besides that, this patch adds another set of thresholds that are
much more strict. These thresholds are used to conduct a partition
block level check to measure if all its TX blocks are skippable
for YUV planes. If it is true, x->skip is set for this partition
block, and thus its mode search is terminated.

This speeds up the encoding at very low prediction error case,
such as screen sharing application. This patch covers what
rd_encode_breakout_test() does, so that function is removed.

Borg test at speed 3 shows:
For stdhd set, psnr: +0.008%, ssim: +0.014%;
For derf set, psnr: +0.018%, ssim: +0.025%.
No noticeable speed change.

Change-Id: I4e5f15cf10016a282a68e35175ff854b28195944
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_firstpass.h
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_speed_features.c