vpx/vp8/common
Yunqing Wang 20bd1446c0 Preload reference area to an intermediate buffer in sub-pixel motion search
In sub-pixel motion search, the search range is small(+/- 3 pixels).
Preload whole search area from reference buffer into a 32-byte
aligned buffer. Then in search, load reference data from this buffer
instead. This keeps data in cache, and reduces the crossing cache-
line penalty. For tulip clip, tests on Intel Core2 Quad machine(linux)
showed encoder speed improvement:
  3.4%   at --rt --cpu-used =-4
  2.8%   at --rt --cpu-used =-3
  2.3%   at --rt --cpu-used =-2
  2.2%   at --rt --cpu-used =-1

Test on Atom notebook showed only 1.1% speed improvement(speed=-4).
Test on Xeon machine also showed less improvement, since unaligned
data access latency is greatly reduced in newer cores.

Next, I will apply similar idea to other 2 sub-pixel search functions
for encoding speed > 4.

Make this change exclusively for x86 platforms.

Change-Id: Ia7bb9f56169eac0f01009fe2b2f2ab5b61d2eb2f
2011-07-22 09:28:06 -04:00
..
arm Merge "Update armv6 loopfilter to new interface" 2011-07-13 04:09:55 -07:00
generic New loop filter interface 2011-07-08 09:31:41 +03:00
ppc remove simpler_lpf 2011-04-25 17:37:41 -04:00
x86 update x86 asm for loopfilter 2011-07-08 09:23:38 -04:00
alloccommon.c Fixed initialization of frame buffer ref counters 2011-06-24 08:43:40 -07:00
alloccommon.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
asm_com_offsets.c use GCC inline magic 2011-06-08 16:19:37 -04:00
bigend.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
blockd.c Removed vp8_block2type 2011-02-24 14:35:18 -05:00
blockd.h Preload reference area to an intermediate buffer in sub-pixel motion search 2011-07-22 09:28:06 -04:00
coefupdateprobs.h Use MAX_ENTROPY_TOKENS and ENTROPY_NODES more consistently 2011-06-28 17:03:55 -04:00
common_types.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
common.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
context.c Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
debugmodes.c MODE_INFO size reduction 2011-05-24 13:24:52 -04:00
defaultcoefcounts.c Use MAX_ENTROPY_TOKENS and ENTROPY_NODES more consistently 2011-06-28 17:03:55 -04:00
defaultcoefcounts.h Use MAX_ENTROPY_TOKENS and ENTROPY_NODES more consistently 2011-06-28 17:03:55 -04:00
dma_desc.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
duck_io.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
entropy.c Use MAX_ENTROPY_TOKENS and ENTROPY_NODES more consistently 2011-06-28 17:03:55 -04:00
entropy.h Use MAX_ENTROPY_TOKENS and ENTROPY_NODES more consistently 2011-06-28 17:03:55 -04:00
entropymode.c Use int_mv instead of MV in vp8_mv_cont 2011-05-24 16:01:12 -04:00
entropymode.h Use int_mv instead of MV in vp8_mv_cont 2011-05-24 16:01:12 -04:00
entropymv.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
entropymv.h Use full-pixel MV in mvsadcost calculation 2011-04-01 16:41:58 -04:00
extend.c bug fix vpx_copy_and_extend_frame size issue 2011-07-14 15:58:15 -04:00
extend.h Refactor lookahead ring buffer 2011-04-13 14:26:45 -04:00
filter.c Increase static linkage, remove unused functions 2011-03-17 20:53:47 -04:00
filter.h clean up bilinear filter 2011-02-08 17:42:54 -05:00
findnearmv.c MODE_INFO size reduction 2011-05-24 13:24:52 -04:00
findnearmv.h Populate bmi for B_PRED only 2011-06-13 17:14:11 -04:00
g_common.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
header.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
idct.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
idctllm.c Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
invtrans.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
invtrans.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
littlend.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
loopfilter_filters.c New loop filter interface 2011-07-08 09:31:41 +03:00
loopfilter.c New loop filter interface 2011-07-08 09:31:41 +03:00
loopfilter.h New loop filter interface 2011-07-08 09:31:41 +03:00
mbpitch.c Increase static linkage, remove unused functions 2011-03-17 20:53:47 -04:00
modecont.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
modecont.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
modecontext.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
mv.h Using int_mv instead of MV 2011-05-12 11:08:16 -04:00
onyx.h Adding support for independent partitions 2011-06-28 11:10:17 -04:00
onyxc_int.h New loop filter interface 2011-07-08 09:31:41 +03:00
onyxd.h Improved 1-pass CBR rate control 2011-07-18 11:48:05 -04:00
postproc.c Fix after removal of B_MODE_INFO 2011-06-27 09:43:21 -07:00
postproc.h postproc : Re-work posproc calling to allow more flags. 2010-11-10 14:14:46 -08:00
ppflags.h postproc : Re-work posproc calling to allow more flags. 2010-11-10 14:14:46 -08:00
pragmas.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
quant_common.c Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
quant_common.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
recon.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
recon.h SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). 2011-04-27 11:31:27 -07:00
reconinter.c Consolidated build inter predictors 2011-04-28 10:53:59 -04:00
reconinter.h Consolidated build inter predictors 2011-04-28 10:53:59 -04:00
reconintra4x4.c SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). 2011-04-27 11:31:27 -07:00
reconintra4x4.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
reconintra.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
reconintra.h SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). 2011-04-27 11:31:27 -07:00
setupintrarecon.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
setupintrarecon.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
subpixel.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
swapyv12buffer.c Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
swapyv12buffer.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
systemdependent.h Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
textblit.c Eliminate more warnings. 2010-10-27 18:08:04 -07:00
threading.h Fix semaphore emulation on Windows 2011-05-06 00:13:59 -04:00
treecoder.c Use WebM in copyright notice for consistency 2010-09-09 10:01:21 -04:00
treecoder.h Eliminate more warnings. 2010-10-27 18:08:04 -07:00
type_aliases.h Eliminate more warnings. 2010-10-27 18:08:04 -07:00