vpx/vp9/encoder/x86
Jingning Han ed2dc59c1b Integral projection based motion estimation
This commit introduces a new block match motion estimation
using integral projection measurement. The 2-D block and the nearby
region is projected onto the horizontal and vertical 1-D vectors,
respectively. It then runs vector match, instead of block match,
over the two separate 1-D vectors to locate the motion compensated
reference block.

This process is run per 64x64 block to align the reference before
choosing partitioning in speed 6. The overall CPU cycle cost due
to this additional 64x64 block match (SSE2 version) takes around 2%
at low bit-rate rtc speed 6. When strong motion activities exist in
the video sequence, it substantially improves the partition
selection accuracy, thereby achieving better compression performance
and lower CPU cycles.

The experiments were tested in RTC speed -6 setting:
cloud 1080p 500 kbps
17006 b/f, 37.086 dB, 5386 ms ->
16669 b/f, 37.970 dB, 5085 ms (>0.9dB gain and 6% faster)

pedestrian_area 1080p 500 kbps
53537 b/f, 36.771 dB, 18706 ms ->
51897 b/f, 36.792 dB, 18585 ms (4% bit-rate savings)

blue_sky 1080p 500 kbps
70214 b/f, 33.600 dB, 13979 ms ->
53885 b/f, 33.645 dB, 10878 ms (30% bit-rate savings, 25% faster)

jimred 400 kbps
13380 b/f, 36.014 dB, 5723 ms ->
13377 b/f, 36.087 dB, 5831 ms  (2% bit-rate savings, 2% slower)

Change-Id: Iffdb6ea5b16b77016bfa3dd3904d284168ae649c
2015-02-19 13:47:19 -08:00
..
vp9_avg_intrin_sse2.c Integral projection based motion estimation 2015-02-19 13:47:19 -08:00
vp9_dct32x32_avx2.c Fix visual studio 2013 compiler warnings 2014-11-05 13:47:28 -08:00
vp9_dct32x32_sse2.c sse2 visual studio build fix 2014-12-03 16:35:26 -08:00
vp9_dct_avx2.c Fix bug 805 2014-07-28 15:46:01 -07:00
vp9_dct_impl_sse2.c sse2 visual studio build fix 2014-12-03 16:35:26 -08:00
vp9_dct_mmx.asm Added high bitdepth sse2 transform functions 2014-12-02 11:16:24 -08:00
vp9_dct_sse2.c Revert "Revert "Removal of legacy zbin_extra / zbin_oq_value."" 2014-12-22 10:09:25 -08:00
vp9_dct_sse2.h sse2 visual studio build fix 2014-12-03 16:35:26 -08:00
vp9_dct_ssse3_x86_64.asm Fix potential overflow issue in SSSE3 forward 8x8 2D-DCT 2014-06-03 14:21:47 -07:00
vp9_dct_ssse3.c Revert "Revert "Removal of legacy zbin_extra / zbin_oq_value."" 2014-12-22 10:09:25 -08:00
vp9_denoiser_sse2.c vp9_denoiser_sse2: refactor the code. 2014-10-28 09:36:58 -07:00
vp9_error_intrin_avx2.c AVX2 To VP9 Block Error Optimization 2014-05-14 11:51:07 -07:00
vp9_error_sse2.asm Make coefficient skip condition an explicit RD choice. 2013-06-28 10:28:49 -07:00
vp9_highbd_block_error_intrin_sse2.c Added highbitdepth sse2 acceleration for quantize 2014-11-19 23:55:19 -08:00
vp9_highbd_quantize_intrin_sse2.c Revert "Revert "Removal of legacy zbin_extra / zbin_oq_value."" 2014-12-22 10:09:25 -08:00
vp9_highbd_sad4d_sse2.asm Fix high bit depth assembly function bugs 2015-02-05 11:24:03 -08:00
vp9_highbd_sad_sse2.asm Added highbitdepth sse2 SAD acceleration and tests 2014-11-12 14:25:45 -08:00
vp9_highbd_subpel_variance.asm Fix high bit depth assembly function bugs 2015-02-05 11:24:03 -08:00
vp9_highbd_variance_impl_sse2.asm Added sse2 acceleration for highbitdepth variance 2014-11-14 15:18:53 -08:00
vp9_highbd_variance_sse2.c Added sse2 acceleration for highbitdepth variance 2014-11-14 15:18:53 -08:00
vp9_quantize_sse2.c Revert "Revert "Removal of legacy zbin_extra / zbin_oq_value."" 2014-12-22 10:09:25 -08:00
vp9_quantize_ssse3_x86_64.asm Revert "Revert "Removal of legacy zbin_extra / zbin_oq_value."" 2014-12-22 10:09:25 -08:00
vp9_sad4d_intrin_avx2.c Fix bug 806 2014-08-07 14:13:30 -07:00
vp9_sad4d_sse2.asm Implement SSE version for sad4x8x4d and SSE2 version for sad8x4x4d. 2013-06-12 17:40:01 -04:00
vp9_sad_intrin_avx2.c SAD32xh and SAD64xh for AVX2 2014-10-19 13:59:10 -07:00
vp9_sad_sse2.asm Add averaging-SAD functions for 8-point comp-inter motion search. 2013-06-25 12:57:28 -07:00
vp9_sad_sse3.asm Merge master branch into experimental 2013-03-01 11:06:05 -08:00
vp9_sad_sse4.asm this commit converts all sad ptrs to uint32 2013-02-28 08:46:35 -08:00
vp9_sad_ssse3.asm add private to assembly files to insure proper chromebuild 2012-12-20 09:40:18 -08:00
vp9_ssim_opt_x86_64.asm Renames x86_64 specific asm files 2014-05-21 13:55:56 -07:00
vp9_subpel_variance_impl_intrin_avx2.c 32 Align Load bug 2014-08-14 14:07:28 -07:00
vp9_subpel_variance.asm Changes to assembler for NASM on mac. 2014-11-24 12:00:50 -08:00
vp9_subtract_sse2.asm Remove emms - that shouldn't be there. 2013-06-21 14:45:04 -07:00
vp9_temporal_filter_apply_sse2.asm Fixed a crash windows build 2014-05-28 15:50:50 -07:00
vp9_variance_avx2.c Cleaning up vp9_variance_avx2.c. 2014-09-02 11:01:29 -07:00
vp9_variance_impl_intrin_avx2.c AVX2 Variance Optimization 2014-01-08 12:05:53 -07:00
vp9_variance_sse2.c Fix issues in 32bit PIC enabled build 2015-01-27 22:20:21 -08:00