Add early termination in transform size search
authorYunqing Wang <yunqingwang@google.com>
Tue, 12 Aug 2014 21:36:42 +0000 (14:36 -0700)
committerYunqing Wang <yunqingwang@google.com>
Mon, 18 Aug 2014 23:27:04 +0000 (16:27 -0700)
commitba70f1601108c537ffb48b4f0e63ccd5c7af25ef
tree2764bfd4d61ff81e234d84f9069f6040b02f5d39
parentbac9beff7230293afc522b8a5d0dc85f04842c78
Add early termination in transform size search

In the full-rd transform size search, we go through all transform
sizes to choose the one with best rd score. In this patch, an
early termination is added to stop the search once we see that the
smaller size won't give better rd score than the larger size. Also,
the search starts from largest transform size, then goes down to
smallest size.

A speed feature tx_size_search_breakout is added, which is turned off
at speed 0, and on for other speeds. The transform size search is
turned on at speed 1.

Borg test results:
1. At speed 1,
   derf set: psnr gain: 0.618%, ssim gain: 0.377%;
   stdhd set: psnr gain: 0.594%, ssim gain: 0.162%;
   No noticeable speed change.
3. At speed 2,
   derf set: psnr loss: 0.157%, ssim loss: 0.175%;
   stdhd set: psnr loss: 0.090%, ssim loss: 0.101%;
   speed gain: ~4%.

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