Descriptionimplement I444ToABGR by swapping uv and transpose matrix
U contributes to B and G. V contributes to R and G.
By swapping U and V, they contribute to the opposite channels. Adjust the matrix so the U contribution is in the matrix location such that it till contribute to the
new B channel and vice versa.
This allows ABGR versions of YUV conversion to use the same low level code as ARGB, just using a different matrix and swapping U and V pointers.
As a result the existing I444ToABGRRow functions are no longer needed and are removed.
Previously this function was only Intel AVX2 optimized for Windwos. Now it is also optimized for Arm and GCC.
ARMv7 Neon
Was LibYUVConvertTest.I444ToABGR_Opt (75971 ms)
Now LibYUVConvertTest.I444ToABGR_Opt (3672 ms)
20.6 times faster.
R=xhwang@chromium.org
BUG=libyuv:515
Committed: https://chromium.googlesource.com/libyuv/libyuv/+/cf160cdbaa605c89dc15eb96f7d875ff887132e3
Patch Set 1 #Patch Set 2 : remove I444ToABGRRow functions #
Messages
Total messages: 4 (1 generated)
|