mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-12 06:29:57 +08:00
The existing code first widens the component vectors from 8-bit elements to 16-bits to construct the final ARGB1555 result, however this is unnecessary since the inputs to the widening are themselves the result of having just been narrowed in the RGBTORGB8 macro. By making use of the new RGBTORGB8_TOP macro we can get rid of both the widening as well as the prior narrowing step. Also remove volatile from the asm, it is unnecessary. Reduction in runtime observed for I422ToARGB1555Row_NEON: Cortex-A55: -7.8% Cortex-A76: -15.0% Cortex-A720: -20.3% Cortex-X1: -20.2% Cortex-X2: -20.3% Bug: libyuv:976 Change-Id: Id031c5d4d788828297adcc2fe2c2cd8d99b45433 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/5616050 Reviewed-by: Frank Barchard <fbarchard@chromium.org> |
||
|---|---|---|
| build_overrides | ||
| docs | ||
| include | ||
| infra/config | ||
| riscv_script | ||
| source | ||
| tools_libyuv | ||
| unit_test | ||
| util | ||
| .clang-format | ||
| .gitignore | ||
| .gn | ||
| .vpython | ||
| .vpython3 | ||
| Android.bp | ||
| Android.mk | ||
| AUTHORS | ||
| BUILD.gn | ||
| CM_linux_packages.cmake | ||
| CMakeLists.txt | ||
| codereview.settings | ||
| DEPS | ||
| DIR_METADATA | ||
| download_vs_toolchain.py | ||
| libyuv.gni | ||
| libyuv.gyp | ||
| libyuv.gypi | ||
| LICENSE | ||
| linux.mk | ||
| OWNERS | ||
| PATENTS | ||
| PRESUBMIT.py | ||
| public.mk | ||
| pylintrc | ||
| README.chromium | ||
| README.md | ||
| winarm.mk | ||
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.
- Optimized for RVV on RISC-V.
Development
See Getting started for instructions on how to get started developing.
You can also browse the docs directory for more documentation.