diff options
author | Yuan Tong <tongyuan200097@gmail.com> | 2021-02-09 13:09:59 +0800 |
---|---|---|
committer | Frank Barchard <fbarchard@chromium.org> | 2021-02-09 07:38:40 +0000 |
commit | f7fc83f46d556977572f120df9f1e3a0ffc03c3d (patch) | |
tree | faf0b61cb593a00f5c410e89b42fc51cec65de8a /source/scale.cc | |
parent | 942c5084482d8592883be66151e0dea502f4cbc0 (diff) | |
download | libyuv-f7fc83f46d556977572f120df9f1e3a0ffc03c3d.tar.gz |
Add NV12ToNV24 and NV16ToNV24
These are bi-planar convert functions to scale UV plane to Y plane's size using (bi)linear filter.
libyuv_unittest --gtest_filter=*ToNV24*
R=fbarchard@chromium.org
Change-Id: I3d98f833feeef00af3c903ac9ad0e41bdcbcb51f
Bug: libyuv:872
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2682152
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Diffstat (limited to 'source/scale.cc')
-rw-r--r-- | source/scale.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/source/scale.cc b/source/scale.cc index 16771cd8..226024cd 100644 --- a/source/scale.cc +++ b/source/scale.cc @@ -1415,27 +1415,27 @@ void ScalePlaneUp2_Bilinear(int src_width, // This function can only scale up by 2 times. assert(src_width == ((dst_width + 1) / 2)); - assert(src_height * 2 == dst_height || src_height * 2 == dst_height + 1); + assert(src_height == ((dst_height + 1) / 2)); -#ifdef HAS_SCALEROWUP2LINEAR_SSE2 +#ifdef HAS_SCALEROWUP2BILINEAR_SSE2 if (TestCpuFlag(kCpuHasSSE2)) { Scale2RowUp = ScaleRowUp2_Bilinear_Any_SSE2; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_SSSE3 +#ifdef HAS_SCALEROWUP2BILINEAR_SSSE3 if (TestCpuFlag(kCpuHasSSSE3)) { Scale2RowUp = ScaleRowUp2_Bilinear_Any_SSSE3; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_AVX2 +#ifdef HAS_SCALEROWUP2BILINEAR_AVX2 if (TestCpuFlag(kCpuHasAVX2)) { Scale2RowUp = ScaleRowUp2_Bilinear_Any_AVX2; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_NEON +#ifdef HAS_SCALEROWUP2BILINEAR_NEON if (TestCpuFlag(kCpuHasNEON)) { Scale2RowUp = ScaleRowUp2_Bilinear_Any_NEON; } @@ -1480,19 +1480,19 @@ void ScalePlaneUp2_16_Linear(int src_width, // This function can only scale up by 2 times horizontally. assert(src_width == ((dst_width + 1) / 2)); -#ifdef HAS_SCALEROWUP2LINEAR_SSE2 +#ifdef HAS_SCALEROWUP2LINEAR_16_SSE2 if (TestCpuFlag(kCpuHasSSE2)) { ScaleRowUp = ScaleRowUp2_Linear_16_Any_SSE2; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_AVX2 +#ifdef HAS_SCALEROWUP2LINEAR_16_AVX2 if (TestCpuFlag(kCpuHasAVX2)) { ScaleRowUp = ScaleRowUp2_Linear_16_Any_AVX2; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_NEON +#ifdef HAS_SCALEROWUP2LINEAR_16_NEON if (TestCpuFlag(kCpuHasNEON)) { ScaleRowUp = ScaleRowUp2_Linear_16_Any_NEON; } @@ -1532,21 +1532,21 @@ void ScalePlaneUp2_16_Bilinear(int src_width, // This function can only scale up by 2 times. assert(src_width == ((dst_width + 1) / 2)); - assert(src_height * 2 == dst_height || src_height * 2 == dst_height + 1); + assert(src_height == ((dst_height + 1) / 2)); -#ifdef HAS_SCALEROWUP2LINEAR_SSE2 +#ifdef HAS_SCALEROWUP2BILINEAR_16_SSE2 if (TestCpuFlag(kCpuHasSSE2)) { Scale2RowUp = ScaleRowUp2_Bilinear_16_Any_SSE2; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_AVX2 +#ifdef HAS_SCALEROWUP2BILINEAR_16_AVX2 if (TestCpuFlag(kCpuHasAVX2)) { Scale2RowUp = ScaleRowUp2_Bilinear_16_Any_AVX2; } #endif -#ifdef HAS_SCALEROWUP2LINEAR_NEON +#ifdef HAS_SCALEROWUP2BILINEAR_16_NEON if (TestCpuFlag(kCpuHasNEON)) { Scale2RowUp = ScaleRowUp2_Bilinear_16_Any_NEON; } |