Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Panasonic DC-GH6 raws are version 8 - new decompressor needed #367

Open
LebedevRI opened this issue Jun 1, 2022 · 19 comments
Open

Panasonic DC-GH6 raws are version 8 - new decompressor needed #367

LebedevRI opened this issue Jun 1, 2022 · 19 comments

Comments

@LebedevRI
Copy link
Member

No description provided.

@uvolfen
Copy link

uvolfen commented Sep 3, 2022

I uploaded a full set (all variants of crops) on raw.pixls.us with Creative Commons Zero (CC0) license at August, 22nd.

Uwe

@Opendreas
Copy link

Any progress on adding GH6 to Darktable?

@Yaiol
Copy link

Yaiol commented Jan 1, 2023

Unfortunately last version of darktable 4.2.0 didn't add support to GH6, same with GH5M2 though files are available for both cameras on raw.pixls.us.

Only way to use darktable with those cameras is to convert RAW pictures to DNG

@kmilos
Copy link
Contributor

kmilos commented Jan 4, 2023

Tracker for other models depending on v8 decoder:

darktable-org/darktable#13511
darktable-org/darktable#15446
darktable-org/darktable#15679
DC-S9
DC-GH7

@bringlein
Copy link

bringlein commented Sep 24, 2023

Any update on this?
Does it depend on libraw releasing the GH6 support as open source? (see here and here)?
Thanks!

@kmilos
Copy link
Contributor

kmilos commented Sep 25, 2023

Does it depend on libraw releasing the GH6 support as open source?

It depends on someone reverse engineering the new codec and releasing the spec or code as open source, it doesn't necessarily have to come from LibRaw.

@kmilos
Copy link
Contributor

kmilos commented Mar 30, 2024

Just landed for porting: https://github.com/LibRaw/LibRaw/blob/master/src/decoders/pana8.cpp @jdneumeyer77 @mlouielu

@jdneumeyer77
Copy link
Contributor

That code is pretty ugly. Not sure when I'll get a chance to work on it, but hopefully over the next couple weeks I'll take crack at an initial port.

@LebedevRI
Copy link
Member Author

That code is pretty ugly.

:)

Not sure when I'll get a chance to work on it, but hopefully over the next couple weeks I'll take crack at an initial port.

If you do want to take a look at this, i would strongly suggest the PR should be just the code being copied over,
with no rewrites silencing compiler/clang-tidy diagnostics, or using rawspeed's native data structures.
That'll give us a known-"good" baseline change.

@LibRaw
Copy link
Contributor

LibRaw commented Mar 30, 2024

That code is pretty ugly. Not sure when I'll get a chance to work on it, but hopefully over the next couple weeks I'll take crack at an initial port.

Unlike all other open source implementations of Panasonic RawFormat=8 decoders, this one works

@mlouielu
Copy link

That code is pretty ugly. Not sure when I'll get a chance to work on it, but hopefully over the next couple weeks I'll take crack at an initial port.

Unlike all other open source implementations of Panasonic RawFormat=8 decoders, this one works

Appreciate your team's work, and generously open sourced it in a swiftly manner.

Originally I thought it will be scheduled at the end of 2024.

@jdneumeyer77
Copy link
Contributor

jdneumeyer77 commented Mar 30, 2024

Unlike all other open source implementations of Panasonic RawFormat=8 decoders, this one works

I never doubted it worked, since it's had time to incubate. I still appreciate the time and effort it took to reverse engineer and test it from your team. Thanks for releasing as open source.

@github-project-automation github-project-automation bot moved this to Untriaged in New Raw Formats Apr 8, 2024
@kmilos kmilos moved this from Untriaged to Code needs porting in New Raw Formats Apr 8, 2024
@cytrinox
Copy link
Contributor

cytrinox commented Apr 9, 2024

I've finished my Rust port of the pana8 decoder: dnglab/dnglab@03c3d5d, based on libraw code.

@kenjohanson2
Copy link

kenjohanson2 commented Jun 7, 2024

Upvoting. I'd love to see Darktable support this V8 codec, used by the GH6, but also I believe the G9M2 (which I have and can test). And I suspect the new GH7.. And I see G9M2 samples present at https://raw.pixls.us/data/Panasonic/DC-G9M2/. Thank you!

PS -is there some ETA/version of DT that will get this?

@LibRaw
Copy link
Contributor

LibRaw commented Jun 7, 2024

see Darktable support this V8 codec

Darktable already uses LibRaw to process Canon CR3 files. So, adding such a processing path for Panasonic/V8 should be easy.
This will probably allow you to work with this file format much faster.

@kjyager
Copy link

kjyager commented Jun 19, 2024

EDIT: I've learned this is the wrong issue/tracker for this comment. I've truncated it so it isn't as much of an eyesore.

New Darktable user and Lumix G9II owner here. I've taken a pass at adding support via libraw, and things are looking pretty good so far. I'm not very familiar with the codebase, so I've mostly just been muddling through. I'd love feedback from experienced contributors on what else ought to be done before submitting a PR, and for some guidelines regarding the amount of testing and consistency expected for contributions.

All I've done so far is add 'rw2' to the extension whitelist for libraw:
imageio_libraw:274: const gchar *always_by_libraw = "cr3,rw2";.

and update the G9M2 entry in cameras.xml.

I may adopt some of the changes from here as well.

Values for the black & white levels and color matrix are extracted from the EXIF on DNG's converted from my RW2 files, as documented by https://www.darktable.org/2012/10/whats-involved-with-adding-support-for-new-cameras/.

This alone seems to have gotten me 95%+ of the way there. With these changes the RW2 files can be opened and edited. Opening both the RW2s and DNGs converted from them show them apparently matching with a just few caveats.

EDIT: [Original comment continued with info regarding testing of RW2's via this libraw workaround]

@kmilos
Copy link
Contributor

kmilos commented Jun 19, 2024

All I've done so far is add 'rw2' to the extension whitelist for libraw

Thanks, but that's not the real fix being looked for here.

P.S. The change to cameras.xml is irrelevant as everything is handled by LibRaw in that case. Furthermore, no code change (to darktable - we're in the RawSpeed repo and tracker here) is necessary, as you can simply add "rw2" to the (undocumented) libraw_extensions line in your darktablerc config file to get to the same (unsupported) workaround.

@kjyager
Copy link

kjyager commented Jun 19, 2024

All I've done so far is add 'rw2' to the extension whitelist for libraw

Thanks, but that's not the real fix being looked for here.

...

Oh, I see. Apologies for the confusion. I was scouring for info on RW2v8 support for DT, and ended up thinking this was the main issue tracking the topic. I see now this is the wrong repo.

I'm still interested in pitching in if someone is willing to point me in the right direction. Seems like a lot of people are eagerly awaiting support for RW2v8. Is the stance that libraw's decoder not considered suitable for a release, thus requiring a full port/rewrite to rawspeed instead? Or does it make sense to push the libraw workaround further within the Darktable repo?

@kmilos
Copy link
Contributor

kmilos commented Jun 20, 2024

I'm still interested in pitching in if someone is willing to point me in the right direction. ... Is the stance that libraw's decoder not considered suitable for a release, thus requiring a full port/rewrite to rawspeed instead?

Great. See the comment above.

Or does it make sense to push the libraw workaround further within the Darktable repo?

IMHO it does not as it can readily be enabled from the user config file.

Edit: Sorry, I take it back - perhaps there is some tweaking to do the user config workaround (gives me a black image), but that's a separate topic for the other repo indeed.

Edit 2: Take that back again! 😉 It does simply work, only just up to G9M2, but not for the S9 that is also not yet supported by the public LibRaw 202403 snapshot...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Requires New Raw Format Support
Status: Code needs porting
Development

No branches or pull requests