Recent comments

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 1 week ago

I've tried that. No change :-(
Visual Studio 2022 17.8.1

I've also disabled the optimization for the get_decoder_info() function and even for the declarations for vc5_dng_load_raw_placeholder() and jxl_dng_load_raw_placeholder() in the header.
Did a full rebuild of LibRaw each time, just in case.
No change in the name returned!

I then moved the call to get_decoder_info into a separate function in my code (returns true if the options should be added) and wrapped that in optimize off / on.
Same result. Still returned the wrong name.

I think this is something really strange with Maximum Optimization that somehow rolls things together on a more global level. Normal Optimization works, so I'll use that for now. Until you maybe change the code to work around this somehow.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

#pragma optimize( "", off )
before
void LibRaw::vc5_dng_load_raw_placeholder()

and
#pragma optimize( "", on )
before
void LibRaw::adobe_copy_pixel(unsigned row, unsigned col, ushort **rp)

(in src/decoders/dng.cpp)
Will probably fix the issue.

These pragmas are Visual Studio specific; we'll implement wider solution in the next update

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

Looks interesting.

In fact, both functions have the same body:

void LibRaw::vc5_dng_load_raw_placeholder()
{
    // placeholder only, real decoding implemented in GPR SDK
    throw LIBRAW_EXCEPTION_UNSUPPORTED_FORMAT;
}
void LibRaw::jxl_dng_load_raw_placeholder()
{
  // placeholder only, real decoding implemented in DNG SDK
  throw LIBRAW_EXCEPTION_UNSUPPORTED_FORMAT;
}

Looks like Visual studio detects this, compiles as single function, so
else if (load_raw == &LibRaw::vc5_dng_load_raw_placeholder)
and
else if (load_raw == &LibRaw::jxl_dng_load_raw_placeholder)
Are both true....

Looks like
1) these functions should be separated in additional code unit
2) All optimizations should be disabled at least for common compilers (gcc, clang, visual studio).

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

I've tested this and it seems to be some kind of code generation / optimization issue with Visual C++ 2022...?
I create LibRaw as a static library.

When I use the debug build, the decoder_name returned is "jxl_dng_load_raw_placeholder()".

When I compile the release build with optimizations disabled (/Od) or set to Optimizations (Favor Speed) (/Ox), the decoder_name returned is also "jxl_dng_load_raw_placeholder()".

But when I build release with Maximum Optimization (Favor Speed) (/O2), the decoder_name is set to "vc5_dng_load_raw_placeholder()"

Looking at the LibRaw source, this should only happen when USE_GPRSDK is defined (it is not in my build) so I can only assume that there is some sort of compiler error or wrong jump produced when optimizing that case statement when the /O2 is enabled.

Reply to: If I have bayer data, how to process it to get the image?   5 months 2 weeks ago

LibRaw::open_bayer() is what you're probably looking for.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

vc5_dng_load_raw_placeholder is GoPro files decoder name. It was not mentioned in my reply; Also this name should not be returned in get_decoder_info() for both release and debug (unless you load DLL with different LibRaw version....)

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

I've got this working, following your instructions.
I call:

libraw_decoder_info_t dinfo;
plraw->get_decoder_info(&dinfo);

and compare the dinfo->name with "jxl_dng_load_raw_placeholder()" and "vc5_dng_load_raw_placeholder()", as you suggested (I hope I understood you correctly).

And this works very well for the problem image. In the debug built.

When I switch to the release built (Visual C++ 2022), the dinfo->name returned is "lossy_dng_load_raw()" for some reason I don't understand yet. I will prepare a release build with debug symbols so I can trace into this. The preprocessor defines etc. the same for both builds.

When I also set the new opcode flags when "lossy_dng_load_raw()" is returned in dinfo->name, the image looks good in the release build too.

Any idea?

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

Followup:
Sorry for wrong info: STAG2/3_IFPRESENT are documented in Changelog only for now: https://github.com/LibRaw/LibRaw/blob/master/Changelog.txt#L250-L257

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

Sure, these flags are documented in actual documentation provided with LibRaw 202403-snapshot: https://github.com/LibRaw/LibRaw/blob/master/doc/API-datastruct.html#L12...

This site documentation section contains release docs.

We'll probably make these flags (or similar ones) set by default in the next snapshot/release because JPEG-XL compressed DNGs becomes very common.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

Thanks, Alex!
this is really helpful. I will implement your suggestions as soon as possible.

Are these LIBRAW_RAWOPTIONS_DNG_STAGE* flags documented somewhere? I have found them in the source code and see where you apply them, and I have some rough idea about opcodes in DNG files, but I would never have thought that I have to apply them or which of them.

In most cases, the DNG files I have to handle have large-enough embedded previews and that's sufficient for my use-case.

But when it comes to actual processing of RAW data into a usable image, things get a lot more difficult and finding parameters which work across a wide range of RAW files is tough.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

Thank you for the file sample.

Here is processing results: https://www.dropbox.com/scl/fi/ooqcaseziap0vwo5ario4/2023-11-11-003-Pano...

dcraw_emu command line used for that:

dcraw_emu -dngsdk -R 3145728 -T 2023-11-11 003-Pano.dng

Technical details:

  1. The image is linearized via OpcodeList2 tag value; For similar images use of OpcodeList3 is also possible (probably depends on Adobe software version used).
  2. By default, only OpcodeList1 tag is processed by LibRaw
  3. To enable OpcodeList2/3 processing LIBRAW_RAWOPTIONS_DNG_STAGE2_IFPRESENT/LIBRAW_RAWOPTIONS_DNG_STAGE3_IFPRESENT flags should be added to imgdata.rawparams.options
  4. This translates into numeric value of (1<<20)|(1<<21) so 3145728

This is not perfect solution if one do not want to apply OpcodeList2/3 for all DNG files containing these tags.

To improve it: query decoder used via LibRaw::get_decoder_info() and set the flags only for jxl_dng_load_raw_placeholder() and/or lossy_dng_load_raw() decoders.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

I have permission from the image owner and I have uploaded a sample image in a ZIP here:

Sample Image download (12 MB)

Please let me know which LibRaw setting or steps I need to perform to get rid of the color cast, if possible.
Or maybe I need to configure the Adobe DNG SDK host instance specifically?

All this is new to me and any help is appreciated.

Reply to: RAW EXIF tag editing Anamorphic de-squeeze:   5 months 2 weeks ago

You (probably) may receive tag values you want via exif callback: https://www.libraw.org/docs/API-datastruct-eng.html#libraw_callbacks_t and https://www.libraw.org/docs/API-CXX.html#exif

As mentioned on the this site homepage/LibRaw project description:

Additionally, the LibRaw library offers some basic RAW conversion, intended for cases when such conversion is not the main function of the LibRaw-using application (for example: a viewer for 500+ graphic file formats, including RAW). These methods are inherited from the Dave Coffin’s dcraw.c utility (see below the “Project history” section); their further development is not currently planned

LibRaw RAW postprocessing (sample code) do not apply any custom aspect ratio change, although you may implement your own on processed image.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

I have sent an email to the owner of the image and asked if I can provide it to you as an example.
I will post here when I have the permission and provide a download link.
It seems to use the JPXL compression, that's all I can tell so far.

Reply to: LibRaw with Adobe DNG SDK 1.7   5 months 2 weeks ago

It is usually pointless to discuss problems in processing a file without having the file itself

Reply to: LibRaw 0.21 supported cameras   5 months 3 weeks ago

open_bayer() call is also available via C-API: https://www.libraw.org/docs/API-C.html

If your python wrapper does not provide access to this call: ask your vendor to add it.

Reply to: LibRaw 0.21 supported cameras   5 months 3 weeks ago

This library is in C++, i have done all of my work in python. Is there any other alternative?

I have tried rawpy it doesn’t support .raw images from above mentioned camera

Reply to: LibRaw 0.21 supported cameras   5 months 3 weeks ago

LibRaw::open_bayer will probably help.

Reply to: LibRaw 0.21 supported cameras   5 months 3 weeks ago

When are you adding "Sony IMX490 imaging sensor (Bayer sensor, with a resolution of 2880 × 1856)" to the list. I need help with conversion of .raw file from this camera to 16-bit Tiff

Reply to: 14-bit highres raw images made by OMDS OM1-ii   5 months 4 weeks ago

It would be wonderful when libraw would also support this new RAW-format

It will in some future public update.

Reply to: Sony A7R5 file RAW decoding   6 months 2 weeks ago

You can start with our free preview extractor:
https://www.fastrawviewer.com/RawPreviewExtractor

Reply to: Sony A7R5 file RAW decoding   6 months 2 weeks ago

Forgive me for my ignorance, but can this snapshot be used in Windows to preview RAW files in the folder? How then?
Thanks

Reply to: Sony A7R5 file RAW decoding   6 months 2 weeks ago

ILCE-7RM5 (A7-R5) support is provided by the latest snapshot: https://www.libraw.org/news/libraw-202403-snapshot

Reply to: Generic white-balance and color correction when dcraw_process()   6 months 3 weeks ago

auto balance is based on the idea of a "average gray" world, which is not true for global colored scenes.
If you take a photo of a green grass, then the result of automatic white balance will not satisfy you too.

Reply to: Generic white-balance and color correction when dcraw_process()   6 months 3 weeks ago

Than you so much for the quick response.

I didn't know FastRawViewer has it's own processing. That's interesting...

I too was able to achieve that image, but only after i manually switched the wb method.

Anyway, since i cant invest in a whole new post-processing infra at the moment, and considering your comment:

"I do not think that auto-balance is well suited for such images with overall warm tint."

can you suggest a good way to detect said warm tints, so as to switch from auto to camera wb automatically, or is this something only human eye can detect and decern?

Pages