Update libjpeg-turbo to get new huffman decoder

RESOLVED WONTFIX

Status

()

Core
ImageLib
RESOLVED WONTFIX
7 years ago
7 years ago

People

(Reporter: Justin Lebar (not reading bugmail), Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

7 years ago
Per bug 573948 comment 185, libjpeg-turbo now has a BSD-licensed jdhuff.{c,h}.  Bug 573948 comment 6 suggests that we might get a ~20% speedup from these optimizations.

DRC, is libjpeg-turbo trunk stable enough to consider taking these changes nowish, or should we wait for a release?
(Reporter)

Comment 1

7 years ago
I'm sure Jesse and company will have fun fuzzing this code.  :)
(Reporter)

Updated

7 years ago
Depends on: 573948

Comment 2

7 years ago
Those two files should be stable enough to take now.  They also include some recent fixes relative to 1.1.0 which improve the handling of unexpected markers (basically, restoring the behavior of libjpeg.  Previously, libjpeg-turbo would ignore unexpected markers in the data stream, which made it difficult for applications to detect a corrupted image.)
(Reporter)

Comment 3

7 years ago
Created attachment 528399 [details] [diff] [review]
Patch v1

This patch cherry-picks jdhuff.{c,h} from r596.  I pushed to try; we'll see how it looks.
(Reporter)

Comment 4

7 years ago
This looks good on try.  DRC, do you still expect the perf gain to be 20-25%, per bug 573948 comment 6, or should I do some testing?  I don't want to bother Jeff to review unless we believe it's a substantial help.

Comment 5

7 years ago
Yes, I'd say in the neighborhood of 20%.  Depends on the specific image.
(Reporter)

Comment 6

7 years ago
Jeff, are you up for more?  This patch is much shorter than the last one.  :)

I figure we can pick up the remaining changes (to jchuff and whatnot) at the next libjpeg-turbo release.
(Reporter)

Updated

7 years ago
Attachment #528399 - Flags: review?(jmuizelaar)
(Reporter)

Updated

7 years ago
Blocks: 579106
(Reporter)

Comment 7

7 years ago
libjpeg-turbo 1.1.1 was released 5/18 with this change and some others which don't seem to matter much [1].

I'll spin a patch to bring us up to date.  I don't expect it to be much different than the patch in this bug.

[1] http://sourceforge.net/projects/libjpeg-turbo/files/1.1.1/ (scroll down)
(Reporter)

Comment 8

7 years ago
Resolving wontfix in favor of upgrading to 1.1.1: bug 662346.
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → WONTFIX
(Reporter)

Comment 9

7 years ago
And reopening because 1.1.1 doesn't have these changes, as discussed in bug 662346.
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
Assignee: nobody → netzen
Duplicate of this bug: 680385
Assignee: netzen → nobody
Duplicate of this bug: 680385
(Reporter)

Comment 12

7 years ago
I think bug 680385 was incorrectly marked as a duplicate of this bug.  This bug is about cherry-picking some changes to libjpeg-turbo's decoding mechanisms.  It's not about enabling arithmetic decoding, which we'd get only by updating to a new version of libjpeg-turbo (and perhaps flipping a configure switch).

Comment 13

7 years ago
Whats the plan about the new huffman decoder? Will this be part of libjpeg-turbo 1.1.90?

Comment 14

7 years ago
The new Huffman decoder is included in the 1.2 beta1 (1.1.90) version that posted this morning.  That version is fully licensed under a BSD-style license, so the entire LJT code base should now be compatible with Mozilla's tri-license.
(Reporter)

Comment 15

7 years ago
We probably want bug 698519 now instead of this, since libjpeg-turbo 1.2 contains NEON optimizations.
Status: REOPENED → RESOLVED
Last Resolved: 7 years ago7 years ago
Resolution: --- → WONTFIX
(Reporter)

Updated

7 years ago
Attachment #528399 - Flags: review?(jmuizelaar)
You need to log in before you can comment on or make changes to this bug.