Frank Barchard 97b3990dec NV21ToRAW and NV12ToRAW functions added
RAW is a big endian style RGB buffer with R first in memory, then G and B.
Convert NV21 and NV12 to RAW format.

Performance on SkylakeX for 720p with AVX2
I420ToRAW_Opt (388 ms)
H420ToRAW_Opt (371 ms)
NV12ToRAW_Opt (341 ms)
NV21ToRAW_Opt (339 ms)

SSSE3
I420ToRAW_Opt (507 ms)
H420ToRAW_Opt (481 ms)
NV12ToRAW_Opt (498 ms)
NV21ToRAW_Opt (493 ms)

C
I420ToRAW_Opt (2287 ms)
H420ToRAW_Opt (2246 ms)
NV12ToRAW_Opt (2191 ms)
NV21ToRAW_Opt (2204 ms)

Performance on Pixel 2 for 720p
out/Release/bin/run_libyuv_unittest -v -t 7200 --gtest_filter=*NV??ToR*Opt --libyuv_repeat=1000 --libyuv_width=1280 --libyuv_height=720
LibYUVConvertTest.NV12ToRGB24_Opt (1739 ms)
LibYUVConvertTest.NV21ToRGB24_Opt (1734 ms)
LibYUVConvertTest.NV12ToRAW_Opt (1719 ms)
LibYUVConvertTest.NV21ToRAW_Opt (1691 ms)
LibYUVConvertTest.NV12ToRGB565_Opt (2152 ms)

Bug: libyuv:778, b:117522975
Test: add new NV21ToRAW and NV12ToRAW tests
Change-Id: Ieabb68a2c6d8c26743e609c5696c81bb14fb253f
Reviewed-on: https://chromium-review.googlesource.com/c/1272615
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2018-10-10 18:11:10 +00:00
..
compare_common.cc add const to casts 2018-04-13 22:52:52 +00:00
compare_gcc.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_mmi.cc MMI ifdef guards and add source to various build files. 2018-08-03 18:37:23 +00:00
compare_msa.cc use unix line endings 2018-06-20 23:19:59 +00:00
compare_neon64.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_neon.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare_win.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
compare.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
convert_argb.cc NV21ToRAW and NV12ToRAW functions added 2018-10-10 18:11:10 +00:00
convert_from_argb.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
convert_from.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
convert_jpeg.cc clang-tidy fix for MJPEGToI420 and MJPEGToARGB 2018-02-27 08:37:55 +00:00
convert_to_argb.cc Add H420 and H422 to ConvertToARGB() 2018-06-26 22:52:42 +00:00
convert_to_i420.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
convert.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
cpu_id.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
mjpeg_decoder.cc 10 bit YUV to 10 bit BGR 2018-02-15 22:44:36 +00:00
mjpeg_validate.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
planar_functions.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
rotate_any.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
rotate_argb.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
rotate_common.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_gcc.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_mmi.cc MMI ifdef guards and add source to various build files. 2018-08-03 18:37:23 +00:00
rotate_msa.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_neon64.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_neon.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_win.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
row_any.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
row_common.cc use attribute to alias for punning float to int 2018-04-13 19:20:52 +00:00
row_gcc.cc Disable AVX512 for iOS simulator xcode 9 builds. 2018-04-03 18:45:14 +00:00
row_mmi.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
row_msa.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
row_neon64.cc ByteToFloatRow_NEON to convert and scale bytes to floats 2018-02-24 00:34:07 +00:00
row_neon.cc Pass float parameters via vector 2 float and "w" for scalar multiply. 2018-03-28 21:52:08 +00:00
row_win.cc tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
scale_any.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
scale_argb.cc Restore the file mode for source files 2018-08-06 18:53:32 +00:00
scale_common.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
scale_gcc.cc I420ToYUY2_AVX2 port 2018-02-01 00:33:25 +00:00
scale_mmi.cc libyuv:loongson Correct the optimization of mmi on loongson3a platform. 2018-08-11 09:27:20 +00:00
scale_msa.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_neon64.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
scale_neon.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_win.cc Switch to C99 types 2018-01-23 19:16:05 +00:00
scale.cc Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
video_common.cc Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00