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
..
basic_types.h Disable old int types by default. 2018-07-09 21:16:47 +00:00
compare_row.h libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
compare.h Lint cleanup after C99 change CL 2018-01-24 19:16:03 +00:00
convert_argb.h NV21ToRAW and NV12ToRAW functions added 2018-10-10 18:11:10 +00:00
convert_from_argb.h AR30ToARGB using shifts and masking to vectorize 2018-02-16 18:55:38 +00:00
convert_from.h clang tidy mismatch in J420ToRGB565 2018-10-08 17:38:18 +00:00
convert.h tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
cpu_id.h libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
macros_msa.h Add H420 and H422 to ConvertToARGB() 2018-06-26 22:52:42 +00:00
mjpeg_decoder.h jpeg remove empty function declarations 2018-03-28 00:38:20 +00:00
planar_functions.h ByteToFloatRow_NEON to convert and scale bytes to floats 2018-02-24 00:34:07 +00:00
rotate_argb.h Switch to C99 types 2018-01-23 19:16:05 +00:00
rotate_row.h Restore the file mode for source files 2018-08-06 18:53:32 +00:00
rotate.h tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
row.h Fix ConvertToI420() for odd crop_y 2018-10-03 19:14:01 +00:00
scale_argb.h Switch to C99 types 2018-01-23 19:16:05 +00:00
scale_row.h libyuv:loongson Correct the optimization of mmi on loongson3a platform. 2018-08-11 09:27:20 +00:00
scale.h tidy applied with readability-inconsistent-declaration-parameter-name 2018-02-07 00:24:25 +00:00
version.h NV21ToRAW and NV12ToRAW functions added 2018-10-10 18:11:10 +00:00
video_common.h Add H420 and H422 to ConvertToARGB() 2018-06-26 22:52:42 +00:00