Fujifilm .RAF Unpack Slow LibRaw 2.2

Hi there.

As part of initial Integration Testing LibRaw 0.22 with my application, I came across an issue whereby this new version unpacks (before Demosaicing) FujiFilm GFX-100 II images almost 10 X slower than version 0.21.5. I've benchmarked other Camera formats and not seen such a difference. Reviewing the Release Notes I see the GFX100-II is now officially supported. I notice a very subtle difference between the .22 and .2.5 outputs, but clearly there is nothing to explain such a huge difference in performance.

I'll triple check my compilation setting and eventually go through the Libraw Repo and Diff the relevant FujiFilm source files, but the question to ask at this stage is a reason why I see such a disparity in performance between versions, specifically for GFX100-II images? Did the RAF file decoder change radically?

Any help would be appreciated.

Regards,

Sean.

AttachmentSize
Image icon Libraw 022_Decode RAF.png226.09 KB

Forums: 

Quick test (only unpack) with

Quick test (only unpack) with LibRaw compiled via make -f Makefile.dist (so no openmp), three files with different encoding:

0.22.0:

$ time ./bin/unprocessed_raw ~/tt/GFX100II/GFX100_II_1*RAF
Processing file /home/lexa/tt/GFX100II/GFX100_II_14bits_uncompressed_4x3.RAF
Image size: 11662x8746
Raw size: 11808x8754
Margins: top=2, left=0
Unpacked....
Stored to file /home/lexa/tt/GFX100II/GFX100_II_14bits_uncompressed_4x3.RAF.pgm
Processing file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossless_4x3.RAF
Image size: 11662x8746
Raw size: 11808x8754
Margins: top=2, left=0
Unpacked....
Stored to file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossless_4x3.RAF.pgm
Processing file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossy_4x3.RAF
Image size: 11662x8746
Raw size: 11808x8754
Margins: top=2, left=0
Unpacked....
Stored to file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossy_4x3.RAF.pgm

real    0m22,756s
user    0m21,958s
sys     0m0,783s

0.21.5:

$ time ./bin/unprocessed_raw ~/tt/GFX100II/GFX100_II_1*RAF
Processing file /home/lexa/tt/GFX100II/GFX100_II_14bits_uncompressed_4x3.RAF
Image size: 11662x8752
Raw size: 11808x8754
Margins: top=2, left=0
Unpacked....
Stored to file /home/lexa/tt/GFX100II/GFX100_II_14bits_uncompressed_4x3.RAF.pgm
Processing file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossless_4x3.RAF
Image size: 11662x8752
Raw size: 11808x8754
Margins: top=2, left=0
Unpacked....
Stored to file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossless_4x3.RAF.pgm
Processing file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossy_4x3.RAF
Image size: 11662x8752
Raw size: 11808x8754
Margins: top=2, left=0
Unpacked....
Stored to file /home/lexa/tt/GFX100II/GFX100_II_16bits_lossy_4x3.RAF.pgm

real    0m22,798s
user    0m21,929s
sys     0m0,854s

CPU: Intel(R) Atom(TM) CPU C3758 @ 2.20GHz (2200.21-MHz K8-class CPU)
Storage: fast SSD (nvme)

So, please provide test file you use for benchmarking for more in-depth study.

-- Alex Tutubalin @LibRaw LLC