Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Falls back to blocky decoding when one pass is interrupted by another #521

@jakearchibald

Description

@jakearchibald

Have you searched the existing issues (both open and closed) in the libjpeg-turbo issue tracker to ensure that this bug report is not a duplicate? #343 seems related, but that issue is closed.

Does this bug report describe one of the two known and unsolvable issues with the JPEG format? I don't think so.

Clear and concise description of the bug:

While rendering a progressive image, block smoothing appears to stop when one pass interrupts another.

Steps to reproduce the bug (using only libjpeg-turbo):

Apologies, I'm not familiar enough with libjpeg-turbo, but I have a browser demo, and I'm assured that part of the issue is in libjpeg-turbo, although there may need to be changes in Chrome and Firefox too.

  • Images
  • App (unfortunately the app only works in Chrome due to missing primitives in Firefox)

The app will slowly load a given image, stopping at a particular byte. From the set of images provided, here's cat.jpg stopped at 45538 bytes:

Screenshot 2021-05-18 at 15 27 33

In this example, block smoothing isn't working on the luma channel (at least).

Here's ic-pr.jpg, stopped at 47424 bytes:

Screenshot 2021-05-18 at 15 30 27

In this example, block smoothing isn't working on at least one chroma channel (see the stripes on the jumper).

Expected behavior:

The decoding goes from smooth to sharp, rather than switching to blocky.

Additional information:

I can only reproduce this by causing multiple passes, if I simply truncate the file it renders as expected. The app also supports simple truncation (see the dropdown).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions