• Frank Barchard's avatar
    implement I444ToABGR by swapping uv and transpose matrix · cf160cdb
    Frank Barchard authored
    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 .
    cf160cdb
Name
Last commit
Last update
chromium Loading commit data...
include Loading commit data...
source Loading commit data...
third_party/gflags Loading commit data...
tools Loading commit data...
unit_test Loading commit data...
util Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
Android.mk Loading commit data...
BUILD.gn Loading commit data...
CMakeLists.txt Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE_THIRD_PARTY Loading commit data...
OWNERS Loading commit data...
PATENTS Loading commit data...
PRESUBMIT.py Loading commit data...
README.chromium Loading commit data...
all.gyp Loading commit data...
codereview.settings Loading commit data...
download_vs_toolchain.py Loading commit data...
drover.properties Loading commit data...
gyp_libyuv Loading commit data...
gyp_libyuv.py Loading commit data...
libyuv.gyp Loading commit data...
libyuv.gypi Loading commit data...
libyuv_nacl.gyp Loading commit data...
libyuv_test.gyp Loading commit data...
linux.mk Loading commit data...
public.mk Loading commit data...
setup_links.py Loading commit data...
sync_chromium.py Loading commit data...
winarm.mk Loading commit data...