Directly split the block in partition search
authorPengchong Jin <pengchong@google.com>
Tue, 5 Aug 2014 21:39:06 +0000 (14:39 -0700)
committerPengchong Jin <pengchong@google.com>
Tue, 5 Aug 2014 23:13:40 +0000 (16:13 -0700)
commit74593c1eae3a09bb296829c59826b626810ae12a
tree95707caeead5779ea1656fabdbbbcbc82de8c935
parent5971e8985ba36bcc47969a4934e6df84260e1352
Directly split the block in partition search

This patch allows the encoder to directly split the block
in partition search, therefore skip searching NONE. It
computes a score which measures whether 16x16 motion vectors
from the first pass in the current block are consistent with
each others. If they are inconsistent and we have enough Q
to encode, split the block directly, and skip searching NONE.

This feature is under flag CONFIG_FP_MB_STATS. In speed 2,
it further gives a speedup of 3-8% on sample yt clips as
compared to the previous version under the same flag. Overall,
the features under the flag will give 7-15% on typical yt
clips at up to 6000kbps data rate. The speedup at very high
data rate is not significant.

For hard stdhd clips:
park_joy_1080p @ 15000kbps:       504541ms -> 506293ms (-0.35%)
pedestrian_area_1080p @ 2000kbps: 326610ms -> 290090ms (+11.2%)

The compression performance using the features under the flag:
derf: -0.068%
yt:   -0.189%
hd:   -0.318%
stdhd:-0.183%

To use the feature, set CONFIG_FP_MB_STATS and turn on
cpi->use_fp_mb_stats.

Change-Id: Iad58a2966515c8861aa9eb211565b1864048d47f
vp9/encoder/vp9_encodeframe.c