aboutsummaryrefslogtreecommitdiff
path: root/source/row_common.cc
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2022-11-16 18:02:34 -0800
committerlibyuv LUCI CQ <libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-11-17 02:47:57 +0000
commit2d2cee418a18b9f1bfa6b8037d4f8da095720695 (patch)
tree049f9ca258653794581a45af7a11a764e7e1ad44 /source/row_common.cc
parent6f21862f1b741088b0c2c3ff894af6b82634015c (diff)
downloadlibyuv-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 'source/row_common.cc')
-rw-r--r--source/row_common.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/row_common.cc b/source/row_common.cc
index 8bfa4b8c..5ee5b17f 100644
--- a/source/row_common.cc
+++ b/source/row_common.cc
@@ -2748,6 +2748,21 @@ void DetileRow_C(const uint8_t* src,
}
}
+void DetileRow_16_C(const uint16_t* src,
+ ptrdiff_t src_tile_stride,
+ uint16_t* dst,
+ int width) {
+ int x;
+ for (x = 0; x < width - 15; x += 16) {
+ memcpy(dst, src, 16 * sizeof(uint16_t));
+ dst += 16;
+ src += src_tile_stride;
+ }
+ if (width & 15) {
+ memcpy(dst, src, (width & 15) * sizeof(uint16_t));
+ }
+}
+
void DetileSplitUVRow_C(const uint8_t* src_uv,
ptrdiff_t src_tile_stride,
uint8_t* dst_u,