[chromium] Increase JPEG decoding performance some moar
Created attachment 126447 [details] Patch
r101286 increased JPEG decoding performance by ~2x for the chromium ports, and similarly for the webkit android port in r104472. I then looked for even more performance and the result is this patch. Created an corpus of 369 jpeg images, composed of 4:4:4, 4:2:2, 4:2:0 chroma sampled images in graysacle, cmyk, and rgb (the majority). Modified libjpeg-turbo tjbench.c to allow the selection of fast decoding via a command line option. Compiled tjbench under cygwin windows7 x86_64 on a T410 laptop and a Z600 desktop, and also on a MacPro x86_32. Modified tjbench svn.diff at libjpeb-turbo r778 attached.
Created attachment 126454 [details] tjbench.fast.r778.svn.diff
Ran "./tjbench image.jpg -bgrx" for each image in the corpus. tjbench continuously decodes the image for 5 seconds, then reports the decoding throughput (Mbyte/s). I then repeated the experiment with fast decoding. The results are tabulated and graphed in the following spreadsheet. https://docs.google.com/spreadsheet/ccc?key=0Asd5UUPIMYYsdFNyTW95YzFUazJtUUZYY25UM0lZQ2c The results suggest fast decoding provides a 9% speed improvement (avg) across all machines.
Comment on attachment 126447 [details] Patch Looks reasonable assuming you've reviewed all the changed test results as reasonable.
I have reviewed, and I am satisfied with, the changed test results on win and mac chrome.
Comment on attachment 126447 [details] Patch Clearing flags on attachment: 126447 Committed r107389: <http://trac.webkit.org/changeset/107389>
All reviewed patches have been landed. Closing bug.
Broke ExtensionChromePrivateApiTest.DecodeJPEG downstream. http://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=browser_tests&tests=ExtensionChromePrivateApiTest.DecodeJPEG
ExtensionChromePrivateApiTest.DecodeJPEG compares image bytes, rebaseline it after the webkit roll.
Peter, Sami: don't know how you rebaseline android layout test results, but you'll need to when this change rolls into chrome android.
Desktop chrome rebaselines, bug 78454.
Backed part of this out in bug 85772. We now only allow IFAST decodes on small screen devices (Chromium Android).