diff options
author | Frank Barchard <fbarchard@google.com> | 2022-11-16 18:02:34 -0800 |
---|---|---|
committer | libyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-11-17 02:47:57 +0000 |
commit | 2d2cee418a18b9f1bfa6b8037d4f8da095720695 (patch) | |
tree | 049f9ca258653794581a45af7a11a764e7e1ad44 /include/libyuv/planar_functions.h | |
parent | 6f21862f1b741088b0c2c3ff894af6b82634015c (diff) | |
download | libyuv-2d2cee418a18b9f1bfa6b8037d4f8da095720695.tar.gz |
Add Detile_16 planar function for 10 bit MT2T format
- Neon and SSE2
- Any for odd widths
Pixel 2 little core AArch32 build
C
TestDetilePlane_16 (1275 ms)
TestDetilePlane (1203 ms)
Neon
TestDetilePlane_16 (693 ms)
TestDetilePlane (660 ms)
Bug: b/258474032
Change-Id: Idbd09c5e9324e4deef5f1d54090d4b63cc7db812
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4031848
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Diffstat (limited to 'include/libyuv/planar_functions.h')
-rw-r--r-- | include/libyuv/planar_functions.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/include/libyuv/planar_functions.h b/include/libyuv/planar_functions.h index f7c6db80..ffe63705 100644 --- a/include/libyuv/planar_functions.h +++ b/include/libyuv/planar_functions.h @@ -85,13 +85,23 @@ void SetPlane(uint8_t* dst_y, // Convert a plane of tiles of 16 x H to linear. LIBYUV_API -void DetilePlane(const uint8_t* src_y, - int src_stride_y, - uint8_t* dst_y, - int dst_stride_y, - int width, - int height, - int tile_height); +int DetilePlane(const uint8_t* src_y, + int src_stride_y, + uint8_t* dst_y, + int dst_stride_y, + int width, + int height, + int tile_height); + +// Convert a plane of 16 bit tiles of 16 x H to linear. +LIBYUV_API +int DetilePlane_16(const uint16_t* src_y, + int src_stride_y, + uint16_t* dst_y, + int dst_stride_y, + int width, + int height, + int tile_height); // Convert a UV plane of tiles of 16 x H into linear U and V planes. LIBYUV_API @@ -106,6 +116,7 @@ void DetileSplitUVPlane(const uint8_t* src_uv, int tile_height); // Convert a Y and UV plane of tiles into interlaced YUY2. +LIBYUV_API void DetileToYUY2(const uint8_t* src_y, int src_stride_y, const uint8_t* src_uv, @@ -382,6 +393,7 @@ int I210Copy(const uint16_t* src_y, int height); // Copy NV12. Supports inverting. +LIBYUV_API int NV12Copy(const uint8_t* src_y, int src_stride_y, const uint8_t* src_uv, @@ -394,6 +406,7 @@ int NV12Copy(const uint8_t* src_y, int height); // Copy NV21. Supports inverting. +LIBYUV_API int NV21Copy(const uint8_t* src_y, int src_stride_y, const uint8_t* src_vu, |