Optimize ImageFrame::setRGBAPremultiply |
|||||
Issue descriptionOur research on PNG handling showed that the aforementioned function could be made faster on ARM. The idea is to NEON-ize it in a similar fashion as in RGBAtoRGB used by JPEGImageEncoder.
,
Mar 20 2017
@Matt Thanks for commenting, I see benefits of having optimizations in Skia as that should also benefit Android apps. So what would take to use SkPngCodec in ImageFrame?
,
Mar 21 2017
@scroggo When you get some time, could you grant me access to the design document mentioned in https://codereview.chromium.org/1997703003 ?
,
Mar 23 2017
,
Dec 14 2017
Two patches have been implemented to optimise SetRGBARaw and SetRGBAPremultiply: https://chromium-review.googlesource.com/c/chromium/src/+/827136 https://chromium-review.googlesource.com/c/chromium/src/+/827137 The combined effect of these patches can be seen in the attached spreadsheet. I would suggest landing patch 827136 first as it gives an unquestionable benefit across the board.
,
Dec 14 2017
,
Feb 7 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6e8bc8975b84a91bd235107ca5a2f30fa6bae09c commit 6e8bc8975b84a91bd235107ca5a2f30fa6bae09c Author: Jonathan Wright <jonathan.wright@arm.com> Date: Wed Feb 07 18:30:44 2018 NEON-ise SetRGBARaw() in PNGImageDecoder Adds an Arm NEON implementation of SetRGBARaw() for use in PNGImageDecoder.cpp. Bug: 702860 Change-Id: If39902474054e5342347ee207d9d085c8e92ea98 Reviewed-on: https://chromium-review.googlesource.com/827136 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Leon Scroggins <scroggo@chromium.org> Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Cr-Commit-Position: refs/heads/master@{#535069} [modify] https://crrev.com/6e8bc8975b84a91bd235107ca5a2f30fa6bae09c/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
,
Feb 9 2018
The combined performance benefits of the latest SetRGBARaw and SetRGBAPremultiply patchsets can be seen in the attached spreadsheet. The data was collected on Elm, running image_decode_bench 150 times on each of the four corpora.
,
Feb 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b418ba9fb4875c53ef63b684e283699f2cfcd4e1 commit b418ba9fb4875c53ef63b684e283699f2cfcd4e1 Author: Jonathan Wright <jonathan.wright@arm.com> Date: Fri Feb 09 16:27:05 2018 NEON-ise SetRGBAPremultiply() Adds an Arm NEON implementation of SetRGBAPremultiply() for use in PNGImageDecoder.cpp. 8-pixel and 16-pixel implementations have the same performance. The 8 pixel implementation is preferred because the code is significantly easier to understand. Bug: 702860 Change-Id: I218ebf60cbd0708aea065001459f16a95e18909f Reviewed-on: https://chromium-review.googlesource.com/827137 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by: Leon Scroggins <scroggo@chromium.org> Commit-Queue: Leon Scroggins <scroggo@chromium.org> Cr-Commit-Position: refs/heads/master@{#535731} [modify] https://crrev.com/b418ba9fb4875c53ef63b684e283699f2cfcd4e1/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
,
Feb 9 2018
,
Feb 10 2018
> SkPngCodec already has a version of this optimization. Leon, where are we on that plan?
,
Feb 12 2018
It's on the backburner as I've been focused on Android P
,
Feb 15 2018
No worries, understood. I guess I was wondering: if Skia has these optimizations (I'm pretty sure it does, last time I looked) then maybe we could reach into Skia and use them, perhaps even from ImageFrame.h? That'd be neat if it was possible, since all our image decoders would benefit, not just PNG.
,
Feb 26 2018
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by msarett@chromium.org
, Mar 20 2017