diff options
author | Frank Barchard <fbarchard@google.com> | 2021-03-23 15:54:02 -0700 |
---|---|---|
committer | Frank Barchard <fbarchard@chromium.org> | 2021-03-23 23:45:54 +0000 |
commit | d8f1bfc9816a9fc76f3a25cc0ee272fb9c07622a (patch) | |
tree | 6201f9cab35550653480bc372580d2c5014d074d /source/row_neon.cc | |
parent | b046131c0bd44ca3a11276194d07b85373cfd608 (diff) | |
download | libyuv-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.cc | 6 |
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" |