• Frank Barchard's avatar
    Convert16To8Row_SSSE3 port from AVX2 · 324fa327
    Frank Barchard authored
    H010ToAR30 uses Convert16To8Row_SSSE3 to convert 10 bit YUV to 8 bit.
    Then standard YUV conversion can be used.  This improves performance
    on low end CPUs.
    Future CL will by pass this conversion allowing for 10 bit YUV source,
    but the function will be useful as a utility for YUV conversions.
    
    Bug: libyuv:559, libyuv:751
    Test: out/Release/libyuv_unittest --gtest_filter=*H010ToAR30* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1
    Change-Id: I9b3ef22d88a5fd861de4cf1900b4c6e8fd24d0af
    Reviewed-on: https://chromium-review.googlesource.com/792334
    Commit-Queue: Frank Barchard <fbarchard@chromium.org>
    Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
    324fa327
Name
Last commit
Last update
build_overrides Remove deprecated macOS SDK overrides.
docs Document AR30 format
include Convert16To8Row_SSSE3 port from AVX2
infra/config Remove Rietveld CQ config.
source Convert16To8Row_SSSE3 port from AVX2
tools_libyuv kjellander -> phoglund in OWNERS
unit_test Convert16To8Row_SSSE3 port from AVX2
util AVX512 feature detects for cnl and icl
.clang-format clang-format libyuv
.gitignore Rename convert to yuvconvert to avoid name clash with linux util
.gn Override compiler to c++11
.vpython Add psutil to vpython dependencies (used on builder bots)
AUTHORS Adding AUTHORS file to libyuv
Android.bp Use -Werror in external/libyuv/files
Android.mk Add MSA optimized HammingDistance and SumSquareError functions
BUILD.gn Port HammingDistance to SSSE3
CM_linux_packages.cmake Add installer builds to cmake for linux
CMakeLists.txt Rename convert to yuvconvert to avoid name clash with linux util
DEPS Roll chromium_revision 9e319197e5..ff3b31782d (502732:503850)
LICENSE Update Copyright notice to follow new chromium conventions.
LICENSE_THIRD_PARTY README.chromium license field for WebView and LICENSE_THIRD_PARTY to show files with special licenses.
OWNERS Remove kjellander@ and torbjorng@ from OWNERS.
PATENTS LibYuv: Adding PATENT and LICENSE files
PRESUBMIT.py Use DEPS for all dependencies + add PRESUBMIT.py
README.chromium H010ToAR30 for 10 bit bt.709 YUV to 30 bit RGB
README.md Loading commit data...
all.gyp Loading commit data...
cleanup_links.py Loading commit data...
codereview.settings Loading commit data...
download_vs_toolchain.py Loading commit data...
gyp_libyuv Loading commit data...
gyp_libyuv.py Loading commit data...
libyuv.gni 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...
pylintrc Loading commit data...
winarm.mk Loading commit data...

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.