Frank Barchard cf160cdbaa implement I444ToABGR by swapping uv and transpose matrix
U contributes to B and G.  V contributes to R and G.
By swapping U and V, they contribute to the opposite channels.  Adjust the matrix so the U contribution is in the matrix location such that it till contribute to the
new B channel and vice versa.
This allows ABGR versions of YUV conversion to use the same low level code as ARGB, just using a different matrix and swapping U and V pointers.

As a result the existing I444ToABGRRow functions are no longer needed and are removed.

Previously this function was only Intel AVX2 optimized for Windwos.  Now it is also optimized for Arm and GCC.

ARMv7 Neon
Was LibYUVConvertTest.I444ToABGR_Opt (75971 ms)
Now LibYUVConvertTest.I444ToABGR_Opt (3672 ms)
20.6 times faster.

R=xhwang@chromium.org
BUG=libyuv:515

Review URL: https://codereview.chromium.org/1414133006 .
2015-10-27 10:21:21 -07:00
chromium Roll chromium_revision bb79186..5d149df (353481:354955) 2015-10-20 07:54:41 +02:00
include implement I444ToABGR by swapping uv and transpose matrix 2015-10-27 10:21:21 -07:00
source implement I444ToABGR by swapping uv and transpose matrix 2015-10-27 10:21:21 -07:00
third_party/gflags Add gflags dependency 2015-10-16 22:08:43 +02:00
tools Roll chromium_revision bb79186..5d149df (353481:354955) 2015-10-20 07:54:41 +02:00
unit_test add unittest that compares ABGR to ARGB 2015-10-26 17:51:03 -07:00
util Add libyuv_unittest_apk target to run tests on Android 2015-10-12 16:29:14 -07:00
.gitignore Add gflags dependency 2015-10-16 22:08:43 +02:00
all.gyp Android support 2013-11-21 19:57:10 +00:00
Android.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
AUTHORS Adding AUTHORS file to libyuv 2011-11-01 20:44:21 +00:00
BUILD.gn Enable optimization when compiling for NaCl with GN 2015-10-12 14:52:05 -07:00
CMakeLists.txt create color test category of unittests to narrow down arm bug 2015-10-14 16:58:55 -07:00
codereview.settings Change code review host to Chromium's Rietveld. 2015-09-06 06:49:01 +02:00
DEPS switch cpu flags to 0 for unitialized to avoid compare 2015-10-23 10:57:42 -07: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
drover.properties Add drover.properties for libyuv 2015-02-24 10:06:44 +00:00
gyp_libyuv Make Libyuv work with Chromium Git checkouts 2014-09-23 11:13:29 +00:00
gyp_libyuv.py Minor fixes to gyp_libyuv.py 2014-03-28 19:38:05 +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 add gflags support files from webrtc 2015-10-16 18:53:25 -07:00
libyuv.gyp merge neon source files back into single libyuv library 2015-10-07 21:16:51 -07:00
libyuv.gypi merge neon source files back into single libyuv library 2015-10-07 21:16:51 -07: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 Adds files and functions for rotate any, but does not hook them up to the caller. 2015-07-27 10:32:08 -07:00
OWNERS Remove blank lint from OWNERS. Move FixedDiv into row functions to avoid changing build files. 2013-06-17 23:04:13 +00:00
PATENTS LibYuv: Adding PATENT and LICENSE files 2011-10-25 16:15:49 +00:00
PRESUBMIT.py Roll chromium_revision 271c6cc..2c3ffb2 (309333:317530) + fixes 2015-02-27 10:20:23 +00:00
public.mk Android.mk moved into libyuv to central support 2012-09-19 07:27:17 +00:00
README.chromium implement I444ToABGR by swapping uv and transpose matrix 2015-10-27 10:21:21 -07:00
setup_links.py Add libyuv_unittest_apk target to run tests on Android 2015-10-12 16:29:14 -07:00
sync_chromium.py Roll chromium_revision 271c6cc..2c3ffb2 (309333:317530) + fixes 2015-02-27 10:20:23 +00: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

Name: libyuv
URL: http://code.google.com/p/libyuv/
Version: 1525
License: BSD
License File: LICENSE

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