Closed Bug 489148 Opened 16 years ago Closed 12 years ago

Implement ARM NEON optimized colorspace conversion for JPEG decoding

Categories

(Core :: Graphics: ImageLib, enhancement)

Other
Linux
enhancement
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 698519

People

(Reporter: ilpo.ruotsalainen, Assigned: ilpo.ruotsalainen)

References

(Blocks 2 open bugs)

Details

Attachments

(1 file)

User-Agent: Opera/9.63 (X11; Linux i686; U; en) Presto/2.1.1 Build Identifier: Implementing the YCC->ARGB colorspace conversion with ARM NEON instructions can speed up decoding JPEG images a lot. Reproducible: Always
Attached patch WIP patchSplinter Review
This patch is by no means complete, the routine itself works (accuracy is slightly worse than the C code, as with the SSE2 version), but there's no NEON detection around. The assembler is optimized for the SnapDragon CPU but is very fast on Cortex-A8 also. Benchmark results: without patch: 93 runs, min/max/avg/stddev: 368.70/410.75/399.10/9.29 with patch: 643 runs, min/max/avg/stddev: 314.13/356.16/345.72/5.94 Would love some feedback on the detection part, is runtime detection wanted?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Version: unspecified → Trunk
Assignee: nobody → ilpo.ruotsalainen
We're going to have some runtime detection code for pixman. See bug 482676. I'm not sure the best way to share it, but it seems like it would be valuable.
I'm trying to get all (or at least more of) our CPU/compiler feature detection into xpcom/glue/SSE.h (which may need a name change). Perhaps we could put whatever detection we need in there, too. Ilpo, are you still interested in pushing this patch forward? If not, I might pick it up.
(In reply to comment #4) > What are we doing with this bug since bug #573948 landed ? bug 584652 is one way forward. If we write NEON methods for libjpeg-turbo, we could integrate colorspace conversions into those methods.
(In reply to Justin Lebar [:jlebar] from comment #5) > (In reply to comment #4) > > What are we doing with this bug since bug #573948 landed ? > > bug 584652 is one way forward. If we write NEON methods for libjpeg-turbo, > we could integrate colorspace conversions into those methods. libjepg-turbo 1.1.90 (1.2.x or later) has several NEON optimization. Performance data is https://wiki.linaro.org/TomGall/LibJpegTurbo.
Recent libjpeg turbo has landed.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: