Rawtherapee: EAHD demosaic still has some integer processing and is dead slow

Created on 11 Aug 2018  路  7Comments  路  Source: Beep6581/RawTherapee

This issue is about improving eahd demosaic. I know it's rarely used, but new rt users may try out eahd demosaic (which is dead slow in dev branch)...

I will commit some changes to a new branch soon, which at my system give a 3 x speedup for eahd demosaic and changes the integer to single precision floating point processing. Because of changing int => float before/after will have differences.

file format performance

Most helpful comment

I compared the result of the new code to the result of the old code. Seems using floating point instead of integer really improved the result.

Left is the difference between new and old code. Middle is using new code. Right is using old code

grafik

Another example:

grafik

All 7 comments

I pushed two commits to eahd_speedup branch.
Processing time before for a 100MP Phase One IIQ file was ~44.6 seconds. Now it's ~14.4 seconds.

@heckflosse Can I participate in EAHD optimizations?

@lvreclp Sure!

With latest commit processing time for the 100MP Phase One IIQ file now is ~12.8 seconds.
Further speedups should be possible by tiling the processing (which also allows to easily use OpenMp for the main loop)

I compared the result of the new code to the result of the old code. Seems using floating point instead of integer really improved the result.

Left is the difference between new and old code. Middle is using new code. Right is using old code

grafik

Another example:

grafik

I just merged the new code into dev. Issue and eahd_speedup branch stay open for further improvements (tiled processing, omp)

I close this to get it mentioned for 5.5 roadmap. For further speedups (which are possible) we can create a new issue.

Was this page helpful?
0 / 5 - 0 ratings