Flexible support for various pattern searches
authorDeb Mukherjee <debargha@google.com>
Mon, 22 Jul 2013 21:47:57 +0000 (14:47 -0700)
committerDeb Mukherjee <debargha@google.com>
Tue, 6 Aug 2013 18:56:39 +0000 (11:56 -0700)
commit15b5a6a2c7bda61d62536a95b3f84390efc88350
tree64322f7cbbf1c9cd275cfcac80298ae5d6ffe4b1
parent7d61f8fe53228dce8edcdd0e5245021e58f616dc
Flexible support for various pattern searches

Adds a few pattern searches to achieve various tradeoffs
between motion estimation complexity and performance.
The search framework is unified across these searches so that a
common pattern search function is used for all. Besides it will
be easier to experiment with various patterns or combinations
thereof at different scales in the future.

The new pattern search is multi-scale and is capable of using
different patterns at different scales.

The new hex search uses 8 points at the smallest scale
and 6 points at other scales.
Two other pattern searches - big-diamond and square are
also added. Big diamond uses 4 points at the smallest scale and
8 points in diamond shape at the larger scales.
Square is very similar conceptually to the default n-step search
but is somewhat faster since it keeps only one survivor across
all scales.

Psnr/speed-up results on derf300:

hex: -1.6% psnr%, 6-8% speed-up
big-diamond: -0.96% psnr, 4-5% speedup
square: -0.93% psnr, 4-5% speedup

Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2
vp9/encoder/vp9_mbgraph.c
vp9/encoder/vp9_mcomp.c
vp9/encoder/vp9_mcomp.h
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_onyx_int.h
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_temporal_filter.c