lixia zhang 21be9122aa libyuv:loongson optimize compare/row/scale/rotate files with mmi.
Currently, libyuv supports MIPS SIMD Arch(MSA),
but libyuv does not supports MultiMedia Instruction(MMI)(such as loongson3a platform).

In order to improve performance of libyuv on loongson3a platform,
this provides optimize 98 functions with mmi.

BUG=libyuv:804

Change-Id: I8947626009efad769b3103a867363ece25d79629
Reviewed-on: https://chromium-review.googlesource.com/1122064
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2018-07-20 22:53:04 +00:00
build_overrides Make libyuv use the hermetic xcode toolchain. 2018-03-20 08:28:33 +00:00
docs libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
include libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
infra/config Remove Rietveld CQ config. 2017-10-12 06:43:30 +00:00
source libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
tools_libyuv use unix line endings 2018-06-20 23:19:59 +00:00
unit_test libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
util libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +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 Make libyuv use the hermetic xcode toolchain. 2018-03-20 08:28:33 +00:00
.vpython Add psutil to vpython dependencies (used on builder bots) 2017-09-07 07:21:25 +00:00
all.gyp use unix line endings 2018-06-20 23:19:59 +00:00
Android.bp AVX512 VMBI version of ARGBToRGB24 2018-03-10 02:04:48 +00:00
Android.mk Remove Mips DSPR2 code 2017-12-14 18:22:16 +00:00
AUTHORS Revert "Allow negative height when ConvertToI420/ARGB is called with NV12/NV21" 2018-06-01 00:19:40 +00:00
BUILD.gn libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +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 Make the gflags library optional in the CMake build 2018-03-31 00:40:15 +00:00
codereview.settings Make Gerrit the default for libyuv code reviews 2017-01-24 18:34:48 +00:00
DEPS Update DEPS necessary to green-up CQ bots 2018-06-16 01:11:31 +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 libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
libyuv.gni libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
libyuv.gyp libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
libyuv.gypi libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
LICENSE Update Copyright notice to follow new chromium conventions. 2012-08-08 19:04:24 +00:00
linux.mk update linux makefile with mips/msa files 2018-04-13 18:58:52 +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 use unix line endings 2018-06-20 23:19:59 +00:00
pylintrc Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
README.chromium Disable old int types by default. 2018-07-09 21:16:47 +00:00
README.md Remove Mips DSPR2 code 2017-12-14 18:22:16 +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

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 for compression.
  • Convert to RGB formats for rendering/effects.
  • Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
  • Optimized for SSSE3/AVX2 on x86/x64.
  • Optimized for Neon on Arm.
  • Optimized for MSA 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.