Frank Barchard 1cebe2c622 TestHammingDistance_Opt to test low level matches C reference.
The low level hamming distance functions have size limitations
based on counter sizes.  The higher level calls the low level
in blocks that avoid overflow and then accumulators in int64.
This test compares the results of the low levels to the high
level and against a known value (all ones) to ensure the
count is correct for any specified size.
The the size is very large, the result is expected to be
different.

Bug: libyuv:701
Test: TestHammingDistance_Opt
Change-Id: I6716af7cd09ac4d88a8afa25bc845a1b62af7c93
Reviewed-on: https://chromium-review.googlesource.com/710800
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-10-11 20:21:31 +00:00
build_overrides Remove deprecated macOS SDK overrides. 2017-07-20 22:26:41 +00:00
docs Update msan instructions to show release build 2017-09-12 19:14:31 +00:00
include TestHammingDistance_Opt to test low level matches C reference. 2017-10-11 20:21:31 +00:00
infra/config kjellander -> phoglund in OWNERS 2017-10-09 11:40:28 +00:00
source Reduce HammingDistance block size to 32k to avoid overflow 2017-10-10 18:42:47 +00:00
tools_libyuv kjellander -> phoglund in OWNERS 2017-10-09 11:40:28 +00:00
unit_test TestHammingDistance_Opt to test low level matches C reference. 2017-10-11 20:21:31 +00:00
util Revert "include <new> header for benefit of new clang builds" 2017-08-03 22:03:47 +00:00
.clang-format clang-format libyuv 2016-11-07 17:37:23 -08:00
.gitignore Rename convert to yuvconvert to avoid name clash with linux util 2017-04-06 18:58:42 +00:00
.gn Override compiler to c++11 2017-09-15 21:45:47 +00:00
.vpython Add psutil to vpython dependencies (used on builder bots) 2017-09-07 07:21:25 +00:00
all.gyp Android support 2013-11-21 19:57:10 +00:00
Android.mk Add MSA optimized HammingDistance and SumSquareError functions 2017-09-05 21:32:33 +00:00
AUTHORS Adding AUTHORS file to libyuv 2011-11-01 20:44:21 +00:00
BUILD.gn Port HammingDistance to SSSE3 2017-10-03 19:11:05 +00:00
cleanup_links.py Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
CM_linux_packages.cmake Add installer builds to cmake for linux 2017-01-26 23:05:17 +00:00
CMakeLists.txt Rename convert to yuvconvert to avoid name clash with linux util 2017-04-06 18:58:42 +00:00
codereview.settings Make Gerrit the default for libyuv code reviews 2017-01-24 18:34:48 +00:00
DEPS Roll chromium_revision 9e319197e5..ff3b31782d (502732:503850) 2017-09-22 21:50:47 +00:00
download_vs_toolchain.py Roll chromium_revision 260824:262938 + fix binutils. Since it's not possible to have platform-specific hooks executing, binutils must be downloaded for all platforms in order for the download.py hook to execute properly on non-unix platforms. 2014-04-11 23:40:41 +00:00
gyp_libyuv Skip running GYP if GYP_CHROMIUM_NO_ACTION is set in environment 2016-04-08 14:01:29 +02:00
gyp_libyuv.py Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
libyuv_nacl.gyp NaCl/GYP: remove references to prep_toolchain from libyuv. prep_toolchain is now a no-op. 2015-04-22 17:42:21 +00:00
libyuv_test.gyp Fix data races in libyuv::TestCpuFlag(). 2017-05-24 02:09:03 +00:00
libyuv.gni Add MIPS SIMD Arch (MSA) optimized MirrorRow function 2016-09-22 16:12:22 -07:00
libyuv.gyp Rename mips source files to dspr2. 2017-01-27 23:11:43 +00:00
libyuv.gypi Add MSA optimized HammingDistance and SumSquareError functions 2017-09-05 21:32:33 +00:00
LICENSE Update Copyright notice to follow new chromium conventions. 2012-08-08 19:04:24 +00:00
LICENSE_THIRD_PARTY README.chromium license field for WebView and LICENSE_THIRD_PARTY to show files with special licenses. 2013-04-24 00:12:28 +00:00
linux.mk Rename convert to yuvconvert for linux.mk 2017-07-21 19:05:11 +00:00
OWNERS Remove kjellander@ and torbjorng@ from OWNERS. 2017-09-26 18:48:09 +00:00
PATENTS LibYuv: Adding PATENT and LICENSE files 2011-10-25 16:15:49 +00:00
PRESUBMIT.py Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
public.mk Android.mk moved into libyuv to central support 2012-09-19 07:27:17 +00:00
pylintrc Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
README.chromium TestHammingDistance_Opt to test low level matches C reference. 2017-10-11 20:21:31 +00:00
README.md Docs: Fix broken links from README.md 2016-03-15 17:38:14 -07:00
winarm.mk Adds files and functions for rotate any, but does not hook them up to the caller. 2015-07-27 10:32:08 -07:00

libyuv is an open source project that includes YUV scaling and conversion functionality.

  • Scale YUV to prepare content for compression, with point, bilinear or box filter.
  • Convert to YUV from webcam formats.
  • Convert from YUV to formats for rendering/effects.
  • Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
  • Optimized for SSE2/SSSE3/AVX2 on x86/x64.
  • Optimized for Neon on Arm.
  • Optimized for DSP R2 on Mips.

Development

See [Getting started] 1 for instructions on how to get started developing.

You can also browse the [docs directory] 2 for more documentation.