diff options
author | Frank Barchard <fbarchard@google.com> | 2017-12-28 18:12:27 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2018-01-02 21:09:39 +0000 |
commit | 2ed2402fa0b8ee98ededb5de48153926ef79a42f (patch) | |
tree | 4492125e5dcd944b63cbd9261ba7e307f0c2e4d4 /include/libyuv/planar_functions.h | |
parent | 140fc0a261e6e76329f68267442177400b23827d (diff) | |
download | libyuv-2ed2402fa0b8ee98ededb5de48153926ef79a42f.tar.gz |
I420ToI010 for 8 to 10 bit YUV conversion.
Convert planar 8 bit formats to planar 16 bit formats.
Includes msan fix for Convert8To16Row_Opt unittest.
I420 is YUV bt.601 8 bits per channel with 420 subsampling.
I010 is YUV bt.601 10 bits per channel with 420 subsampling.
I is color space - bt.601. The function does no color space
conversion so H420ToI010 is aliased to this function as well.
0 = 420 subsampling. The chroma channels are half width / height.
10 = 10 bits per channel, stored in low 10 bits of 16 bit samples.
For SSSE3 version:
out/Release/libyuv_unittest --gtest_filter=*LibYUVConvertTest.I420ToI010_Opt --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1
[ RUN ] LibYUVConvertTest.I420ToI010_Opt
[ OK ] LibYUVConvertTest.I420ToI010_Opt (276 ms)
Bug: libyuv:751
Test: LibYUVConvertTest.I420ToI010_Opt
Change-Id: I072876ee4fd74a2b74f459b628838bc808f9bdd2
Reviewed-on: https://chromium-review.googlesource.com/846421
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Diffstat (limited to 'include/libyuv/planar_functions.h')
-rw-r--r-- | include/libyuv/planar_functions.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/libyuv/planar_functions.h b/include/libyuv/planar_functions.h index 88b651dd..653b0619 100644 --- a/include/libyuv/planar_functions.h +++ b/include/libyuv/planar_functions.h @@ -48,6 +48,15 @@ void Convert16To8Plane(const uint16* src_y, int width, int height); +LIBYUV_API +void Convert8To16Plane(const uint8* src_y, + int src_stride_y, + uint16* dst_y, + int dst_stride_y, + int scale, // 1024 for 10 bits + int width, + int height); + // Set a plane of data to a 32 bit value. LIBYUV_API void SetPlane(uint8* dst_y, |