watery01 / libyuv

Automatically exported from code.google.com/p/libyuv
0 stars 0 forks source link

RGB to RGB conversions are slow on Neon #123

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Port all ARGB functions to Neon
./libyuv_unittest --gtest_filter=*R*To*R*Opt | grep ms
ARGBToARGB_Opt (3131 ms)
ARGBToBGRA_Opt (27965 ms)
ARGBToABGR_Opt (27598 ms)
ARGBToRGBA_Opt (3151 ms)
ARGBToRAW_Opt (2992 ms)
ARGBToRGB24_Opt (2943 ms)
ARGBToRGB565_Opt (13573 ms)
ARGBToARGB1555_Opt (14046 ms)
ARGBToARGB4444_Opt (14067 ms)
BGRAToARGB_Opt (27895 ms)
ABGRToARGB_Opt (27628 ms)
RGBAToARGB_Opt (28002 ms)
RAWToARGB_Opt (27323 ms)
RGB24ToARGB_Opt (27577 ms)
RGB565ToARGB_Opt (31950 ms)
ARGB1555ToARGB_Opt (32883 ms)
ARGB4444ToARGB_Opt (29620 ms)

SSE versions for comparison
ARGBToARGB_Opt (516 ms)
ARGBToBGRA_Opt (527 ms)
ARGBToABGR_Opt (518 ms)
ARGBToRGBA_Opt (522 ms)
ARGBToRAW_Opt (500 ms)
ARGBToRGB24_Opt (500 ms)
ARGBToRGB565_Opt (789 ms)
ARGBToARGB1555_Opt (874 ms)
ARGBToARGB4444_Opt (608 ms)
BGRAToARGB_Opt (527 ms)
ABGRToARGB_Opt (528 ms)
RGBAToARGB_Opt (528 ms)
RAWToARGB_Opt (674 ms)
RGB24ToARGB_Opt (676 ms)
RGB565ToARGB_Opt (550 ms)
ARGB1555ToARGB_Opt (657 ms)
ARGB4444ToARGB_Opt (476 ms)

Original issue reported on code.google.com by fbarch...@google.com on 10 Oct 2012 at 4:26

GoogleCodeExporter commented 9 years ago
Improved in r401, but more work needed.

Original comment by fbarch...@chromium.org on 11 Oct 2012 at 12:13

GoogleCodeExporter commented 9 years ago
r424 improves ARGBToRGB formats.
ARGBToARGB_Opt (3588 ms)
ARGBToBGRA_Opt (3701 ms)
ARGBToABGR_Opt (3650 ms)
ARGBToRGBA_Opt (3602 ms)
ARGBToRAW_Opt (2917 ms)
ARGBToRGB24_Opt (2797 ms)
ARGBToRGB565_Opt (3180 ms)
ARGBToARGB1555_Opt (3585 ms)
ARGBToARGB4444_Opt (2921 ms)
ARGBToBayerBGGR_Opt (2592 ms)
ARGBToBayerRGGB_Opt (2614 ms)
ARGBToBayerGBRG_Opt (2582 ms)
ARGBToBayerGRBG_Opt (2592 ms)
BGRAToARGB_Opt (2993 ms)
ABGRToARGB_Opt (2984 ms)
RGBAToARGB_Opt (3029 ms)
RAWToARGB_Opt (2231 ms)
RGB24ToARGB_Opt (2279 ms)
RGB565ToARGB_Opt (8677 ms)
ARGB1555ToARGB_Opt (8540 ms)
ARGB4444ToARGB_Opt (8385 ms)
BayerBGGRToARGB_Opt (6121 ms)
BayerRGGBToARGB_Opt (6169 ms)
BayerGBRGToARGB_Opt (6172 ms)
BayerGRBGToARGB_Opt (6134 ms)
ARGBToARGBMirror_Opt (4463 ms)

vs C
ARGBToARGB_Opt (3058 ms)
ARGBToBGRA_Opt (6382 ms)
ARGBToABGR_Opt (6371 ms)
ARGBToRGBA_Opt (6354 ms)
ARGBToRAW_Opt (5268 ms)
ARGBToRGB24_Opt (4610 ms)
ARGBToRGB565_Opt (6422 ms)
ARGBToARGB1555_Opt (8647 ms)
ARGBToARGB4444_Opt (7979 ms)
ARGBToBayerBGGR_Opt (3308 ms)
ARGBToBayerRGGB_Opt (3313 ms)
ARGBToBayerGBRG_Opt (3305 ms)
ARGBToBayerGRBG_Opt (3289 ms)
BGRAToARGB_Opt (6313 ms)
ABGRToARGB_Opt (6284 ms)
RGBAToARGB_Opt (5619 ms)
RAWToARGB_Opt (5683 ms)
RGB24ToARGB_Opt (5232 ms)
RGB565ToARGB_Opt (9235 ms)
ARGB1555ToARGB_Opt (9136 ms)
ARGB4444ToARGB_Opt (7203 ms)
BayerBGGRToARGB_Opt (4883 ms)
BayerRGGBToARGB_Opt (6246 ms)
BayerGBRGToARGB_Opt (5308 ms)
BayerGRBGToARGB_Opt (6096 ms)
ARGBToARGBMirror_Opt (4742 ms)

Original comment by fbarch...@chromium.org on 17 Oct 2012 at 3:46