darktable-org / darktable-org/darktable

8->12 bit JPEG rendering

Open
#20,450 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
13.1k
Forks
1.4k
Avg merge
22h 14m
Merged PRs (30d)
198

Description

Describe the solution you'd like

I suggest considering support for libjpeg-turbo's new 8->12 bit decompression mode, which allows recovering shadows from standard "8-bit" JPEGs encoded with >8 source bits, and high Q factor.

Alternatives
I also wrote a standalone floating point decoder, jfloaty, but it doesn't support any of the other features of libjpeg-turbo. I wouldn't use it.

Additional context
https://GitHub.com/rsaxvc/jfloaty
https://github.com/libjpeg-turbo/libjpeg-turbo/issues/867#issuecomment-3993681990
https://discuss.pixls.us/t/foss-photo-manager-editor-for-jpeg-workflow/53090/44
https://gitlab.gnome.org/GNOME/gimp/-/issues/15627#note_2679424

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing libjpeg-turbo's 8-to-12-bit decompression mode and the referenced libjpeg-turbo issue #867. Then trace how darktable currently decodes and renders JPEGs; done would mean support for recovering shadows from standard JPEGs encoded from sources above 8 bits without replacing the existing libjpeg-turbo feature set.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
computer-graphics, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.