diff options
author | Frank Barchard <fbarchard@google.com> | 2020-05-04 12:32:28 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-04 22:32:14 +0000 |
commit | 7a61759f78e37113221cfe7c40c522aa505280af (patch) | |
tree | 6890e589788e8ec6c743544e9a3c3ccc5377fc8b /include/libyuv/planar_functions.h | |
parent | d9681c53b3af633ab3c64655fcb9625e364b8f9c (diff) | |
download | libyuv-7a61759f78e37113221cfe7c40c522aa505280af.tar.gz |
NV12Mirror and MirrorUVPlane functions added
HalfMergeUV AVX2 version
Skylake Xeon performance for 1280x720
NV12Mirror_Any (109 ms)
NV12Mirror_Unaligned (113 ms)
NV12Mirror_Invert (107 ms)
NV12Mirror_Opt (108 ms)
NV12Mirror_NullY (19 ms)
Slightly faster than comparable I420Mirror
I420Mirror_Any (113 ms)
I420Mirror_Unaligned (110 ms)
I420Mirror_Invert (109 ms)
I420Mirror_Opt (110 ms)
BUG=libyuv:840, libyuv:858
Change-Id: I686b1b778383bfa10ecd1655e986bdc99e76d132
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2176066
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Diffstat (limited to 'include/libyuv/planar_functions.h')
-rw-r--r-- | include/libyuv/planar_functions.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/libyuv/planar_functions.h b/include/libyuv/planar_functions.h index 9caef1b5..b11776a0 100644 --- a/include/libyuv/planar_functions.h +++ b/include/libyuv/planar_functions.h @@ -315,6 +315,22 @@ int I400Mirror(const uint8_t* src_y, int height); // Alias +#define NV12ToNV12Mirror NV12Mirror + +// NV12 mirror. +LIBYUV_API +int NV12Mirror(const uint8_t* src_y, + int src_stride_y, + const uint8_t* src_uv, + int src_stride_uv, + uint8_t* dst_y, + int dst_stride_y, + uint8_t* dst_uv, + int dst_stride_uv, + int width, + int height); + +// Alias #define ARGBToARGBMirror ARGBMirror // ARGB mirror. @@ -347,6 +363,15 @@ void MirrorPlane(const uint8_t* src_y, int width, int height); +// Mirror a plane of UV data. +LIBYUV_API +void MirrorUVPlane(const uint8_t* src_uv, + int src_stride_uv, + uint8_t* dst_uv, + int dst_stride_uv, + int width, + int height); + // Convert NV12 to RGB565. LIBYUV_API int NV12ToRGB565(const uint8_t* src_y, |