Prunes out full-rd computation based on modeled rd
authorDeb Mukherjee <debargha@google.com>
Mon, 8 Jul 2013 23:01:01 +0000 (16:01 -0700)
committerDeb Mukherjee <debargha@google.com>
Wed, 10 Jul 2013 20:49:49 +0000 (13:49 -0700)
commit53ff43adc341068945f0857bcf28846080e8f368
tree8c8ef15bcf68fd2b82f04246a254011f6616c529
parent417df1d42e0f4b02387ec9100b6546ddcc918bd6
Prunes out full-rd computation based on modeled rd

Adds a speed feature to eliminate full-rd computation if the modeled
rd or rd based on a different parameter in the same mode is already
a lot larger than the best rd yet.

Specifically, only search the sharp and smooth filters if the modeled
rd cost based on the  regular filter is within a certain factor of the
best rd cost so far. Also, skip full-rd computation of non splitmv
inter modes if the modeled rd cost based on pred error is within the
same factor of the best rd cost so far.

Also adds some enhancements in the rd search for splitmv mode to
speed things up by early breakouts. Negligible impact on performance.

Resuts on derfraw300:
psnr:    -0.013% with the splitmv enhancements, -0.24% with the rd
         breakout feature on.
speedup: 6% with splitmv enhancements, 20% with also residual breakout
         (tested on football sequence at 600 Kbps)

Change-Id: I37abc308ea9f110c1679ce649b6a7e73ab1ad5fc
vp9/common/vp9_blockd.h
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_onyx_int.h
vp9/encoder/vp9_rdopt.c