todostreaming / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Add I444ToABGR color space support for SkCanvasVideoRenderer. #490

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Required for this function:
https://code.google.com/p/chromium/codesearch#chromium/src/media/blink/skcanvas_
video_renderer.cc&l=492

Original issue reported on code.google.com by fbarch...@chromium.org on 10 Sep 2015 at 9:59

GoogleCodeExporter commented 9 years ago
Implemented for Visual C, but unoptimized on arm and gcc linux.

LIBYUV_WIDTH=640 LIBYUV_HEIGHT=360 LIBYUV_REPEAT=4000 
out/Release/libyuv_unittest --gtest_filter=*I444ToA* | grep ms | sed 
's/\(.*(\)\([0-9]*\)\( ms)\)/\2 - \1\2\3/g' | sort -rn | sed 's/.*- \(
/g'
[       OK ] libyuvTest.I444ToABGR_Invert (3521 ms)
[       OK ] libyuvTest.I444ToABGR_Opt (3485 ms)
[       OK ] libyuvTest.I444ToABGR_Unaligned (3472 ms)
[       OK ] libyuvTest.I444ToABGR_Any (3459 ms)
[       OK ] libyuvTest.I444ToARGB_Any (433 ms)
[       OK ] libyuvTest.I444ToARGB_Unaligned (426 ms)
[       OK ] libyuvTest.I444ToARGB_Invert (419 ms)
[       OK ] libyuvTest.I444ToARGB_Opt (413 ms)
[----------] 8 tests from libyuvTest (15628 ms total)

Original comment by phthor...@gmail.com on 18 Sep 2015 at 6:59

GoogleCodeExporter commented 9 years ago
Win32
I444ToARGB_Any (595 ms)
I444ToARGB_Unaligned (545 ms)
I444ToARGB_Invert (452 ms)
I444ToARGB_Opt (449 ms)
I444ToABGR_Any (453 ms)
I444ToABGR_Unaligned (491 ms)
I444ToABGR_Invert (460 ms)
I444ToABGR_Opt (446 ms)

LLVM64
I444ToARGB_Unaligned (592 ms)
I444ToARGB_Any (555 ms)
I444ToABGR_Unaligned (455 ms)
I444ToARGB_Invert (448 ms)
I444ToABGR_Invert (444 ms)
I444ToARGB_Opt (432 ms)
I444ToABGR_Any (428 ms)
I444ToABGR_Opt (426 ms)

Original comment by fbarch...@google.com on 25 Sep 2015 at 11:27

GoogleCodeExporter commented 9 years ago
Code merged and used in chromium.

Optimized versions not integrated into chromium yet:
Needs optimization for gcc intel, and aarch64 neon.
But is optimized for windows 32 bit intel, and armv7 neon.

Original comment by fbarch...@google.com on 25 Sep 2015 at 11:47

GoogleCodeExporter commented 9 years ago

Original comment by fbarch...@google.com on 1 Oct 2015 at 10:56