Frank Barchard d981495b42 Hamming Distance using 16 bit accumulators
Summing 16 bit hamming codes restricts the maximum length,
but saves an inner loop instruction.  The outer loop can sum the
values.

32 bit Neon
Now BenchmarkHammingDistance_Opt (78 ms)
Was BenchmarkHammingDistance_Opt (92 ms)

64 bit Neon
Now BenchmarkHammingDistance_Opt (85 ms)
Was BenchmarkHammingDistance_Opt (92 ms)

R=wangcheng@google.com
TBR=kjellander@chromium.org
BUG=libyuv:701
TEST=BenchmarkHammingDistance

Change-Id: Ie40f0eac2f3339c33b833b42af5d394b122066ae
Reviewed-on: https://chromium-review.googlesource.com/526932
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-06-07 23:23:24 +00:00
..
compare_common.cc Optimize Hamming Distance C code to do 64 bits at a time. 2017-05-12 17:53:52 +00:00
compare_gcc.cc Remove volatile from variables to improve performance 2017-05-09 18:14:21 +00:00
compare_neon64.cc Hamming Distance using 16 bit accumulators 2017-06-07 23:23:24 +00:00
compare_neon.cc Hamming Distance using 16 bit accumulators 2017-06-07 23:23:24 +00:00
compare_win.cc Fix data races in libyuv::TestCpuFlag(). 2017-05-24 02:09:03 +00:00
compare.cc Optimize Hamming Distance C code to do 64 bits at a time. 2017-05-12 17:53:52 +00:00
convert_argb.cc Add MSA optimized I444/I400/J400/YUY2/UYVY to ARGB row functions 2017-02-21 23:22:07 +00:00
convert_from_argb.cc Add MSA optimized Interpolate/MergeUV/Misc functions 2017-02-23 01:42:22 +00:00
convert_from.cc Add I422ToRGB565 2017-04-17 17:51:17 +00:00
convert_jpeg.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
convert_to_argb.cc add Intel Code Analyst markers 2017-01-13 15:50:24 -08:00
convert_to_i420.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
convert.cc lint cleanup for convert RGB24ToI420 2017-03-09 10:32:23 +00:00
cpu_id.cc lint warning fixes for CpuID 2017-05-25 22:00:17 +00:00
mjpeg_decoder.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
mjpeg_validate.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
planar_functions.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_any.cc Add MSA optimized rotate functions (used 16x16 transpose) 2017-01-13 15:50:02 +05:30
rotate_argb.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_common.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_dspr2.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_gcc.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_msa.cc Add MSA optimized rotate functions (used 16x16 transpose) 2017-01-13 15:50:02 +05:30
rotate_neon64.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_neon.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
rotate_win.cc make gflags command line parser optional 2017-03-14 01:52:52 +00:00
rotate.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
row_any.cc I422ToRGB565 fix for odd widths 2017-04-11 17:24:05 +00:00
row_common.cc HalfFloat SSE2/AVX2 optimized port scheduling. 2017-02-11 01:02:06 +00:00
row_dspr2.cc mips switch sgtu to sltu for clang in ndk r14 2017-05-02 21:34:13 +00:00
row_gcc.cc HalfFloat SSE2/AVX2 optimized port scheduling. 2017-02-11 01:02:06 +00:00
row_msa.cc Add MSA optimized Interpolate/MergeUV/Misc functions 2017-02-23 01:42:22 +00:00
row_neon64.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
row_neon.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
row_win.cc HalfFloat SSE2/AVX2 optimized port scheduling. 2017-02-11 01:02:06 +00:00
scale_any.cc ScaleDown odd functions adjust math so last pixel is half width source. 2017-06-06 01:37:26 +00:00
scale_argb.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
scale_common.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
scale_dspr2.cc Rename mips source files to dspr2. 2017-01-27 23:11:43 +00:00
scale_gcc.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
scale_msa.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
scale_neon64.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
scale_neon.cc scale warning fixes for unused parameters 2017-02-15 21:38:59 +00:00
scale_win.cc clang-format libyuv 2016-11-07 17:37:23 -08:00
scale.cc clang-format 5.0 applied to libyuv 2017-03-08 18:50:12 +00:00
video_common.cc clang-format libyuv 2016-11-07 17:37:23 -08:00