• Frank Barchard's avatar
    NV21ToRAW and NV12ToRAW functions added · 97b3990d
    Frank Barchard authored
    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: 's avatarFrank Barchard <fbarchard@chromium.org>
    Reviewed-by: 's avatarMirko Bonadei <mbonadei@chromium.org>
    97b3990d
convert_test.cc 144 KB