aboutsummaryrefslogtreecommitdiff
path: root/source/row_neon.cc
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2021-03-23 15:54:02 -0700
committerFrank Barchard <fbarchard@chromium.org>2021-03-23 23:45:54 +0000
commitd8f1bfc9816a9fc76f3a25cc0ee272fb9c07622a (patch)
tree6201f9cab35550653480bc372580d2c5014d074d /source/row_neon.cc
parentb046131c0bd44ca3a11276194d07b85373cfd608 (diff)
downloadlibyuv-d8f1bfc9816a9fc76f3a25cc0ee272fb9c07622a.tar.gz
Add RAWToJ420
Add J420 output from RAW. Optimize RGB24 and RAW To J420 on ARM by using NEON for the 2 step conversion. Also fix sign-compare warning that was breaking Windows build Bug: libyuv:887, b/183534734 Change-Id: I8c39334552dc0b28414e638708db413d6adf8d6e Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2783382 Reviewed-by: Wan-Teh Chang <wtc@google.com>
Diffstat (limited to 'source/row_neon.cc')
-rw-r--r--source/row_neon.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/source/row_neon.cc b/source/row_neon.cc
index 5414d1ef..5d109a3b 100644
--- a/source/row_neon.cc
+++ b/source/row_neon.cc
@@ -2191,7 +2191,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64,
: "cc", "memory", "q0", "q1", "q2", "q3");
}
-static const uvec8 kShuffleAB64ToARGB = {5, 3, 1, 7, 13, 11, 9, 15};
+static const uvec8 kShuffleAB64ToARGB = {5, 3, 1, 7, 13, 11, 9, 15};
void AB64ToARGBRow_NEON(const uint16_t* src_ab64,
uint8_t* dst_argb,
@@ -2362,9 +2362,9 @@ void RAWToYJRow_NEON(const uint8_t* src_raw, uint8_t* dst_yj, int width) {
"1: \n"
"vld3.8 {d0, d1, d2}, [%0]! \n" // load 8 pixels of RAW.
"subs %2, %2, #8 \n" // 8 processed per loop.
- "vmull.u8 q4, d0, d4 \n" // B
+ "vmull.u8 q4, d0, d4 \n" // R
"vmlal.u8 q4, d1, d5 \n" // G
- "vmlal.u8 q4, d2, d6 \n" // R
+ "vmlal.u8 q4, d2, d6 \n" // B
"vqrshrn.u16 d0, q4, #8 \n" // 16 bit to 8 bit Y
"vst1.8 {d0}, [%1]! \n" // store 8 pixels Y.
"bgt 1b \n"