• Frank Barchard's avatar
    H010ToAR30 optimized to 2 step conversion · 9d2cd6a3
    Frank Barchard authored
    Previously H010ToAR30 was done in a 3 step conversion:
    H010ToH420, H420ToARGB, ARGBToAR30.
    This CL merges the first 2 steps into H010ToARGB, to
    improve performance.
    Caveat - only 10 bit YUV is supported at this time.
    Previously the low level code supported different numbers
    of bits - 9, 10, 12 or 16.
    
    Was 3 step conversion:
    LibYUVConvertTest.H010ToAR30_Any (1263 ms)
    LibYUVConvertTest.H010ToAR30_Unaligned (951 ms)
    LibYUVConvertTest.H010ToAR30_Invert (913 ms)
    LibYUVConvertTest.H010ToAR30_Opt (901 ms)
    
    Now 2 step conversion:
    LibYUVConvertTest.H010ToAR30_Any (853 ms)
    LibYUVConvertTest.H010ToAR30_Unaligned (811 ms)
    LibYUVConvertTest.H010ToAR30_Invert (781 ms)
    LibYUVConvertTest.H010ToAR30_Opt (755 ms)
    
    Bug: libyuv:751
    Test: LibYUVConvertTest.H010ToAR30_Opt
    Change-Id: Ica7574040401cd57145a4827acdf3c0e58346a2a
    Reviewed-on: https://chromium-review.googlesource.com/853288Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
    Reviewed-by: 's avatarMiguel Casas <mcasas@chromium.org>
    9d2cd6a3
row_gcc.cc 255 KB