Commit Graph

217 Commits

Author SHA1 Message Date
heckflosse
66054ca50d RGB curves luminosity mode: Experimental patch to equalize the strength of R, G and B curve 2016-08-26 16:38:14 +02:00
heckflosse
7a2dd888bb RGB Curves Luminosity mode, reduce number of atan2 calculations 2016-08-26 14:20:47 +02:00
heckflosse
294f16c741 RGB Curves Luminosity mode: ~ 40% speedup 2016-08-25 19:28:05 +02:00
Hombre
5affa18341 Introducting soft-proofing and Black Point Compensation, simplify the
CMM at the end of the pipeline + sparse code refactoring
A new BPC checkbutton has been created in 'Preferences/Color Management'
and in the ICM tool. Better hanbling of widget sensitivity of the output
profile / gamma part of the ICM tool.
2016-08-24 22:32:06 +02:00
heckflosse
39a57cbb3b Disabled StopWatch 2016-08-24 21:28:01 +02:00
heckflosse
281e3979d5 ImProcFunctions::moyeqt, simplified calculation 2016-08-23 21:32:30 +02:00
heckflosse
9b62f92095 About 7x speedup for Automatic Saturation Protection in Colourtoning 2016-08-23 19:35:15 +02:00
heckflosse
3e510cd94e Fix some ciecam02 issues, fixes ##3380, fixes #3396, fixes #3397 2016-08-18 21:41:16 +02:00
heckflosse
1339cbe67a Fixes "CIECAM02 causes blue to become black"
Signed-off-by: Morgan Hardwood <entertheyoni@gmail.com>
2016-08-02 01:15:36 +02:00
Morgan Hardwood
1255d9e942 Fixes #3389 - CbDL memleak. 2016-07-28 04:48:53 +02:00
heckflosse
c8779c04f5 Fix all - 2 cppcheck performance hints 2016-07-06 13:04:24 +02:00
heckflosse
a32e13400b Removed stopwatches 2016-06-12 13:32:08 +02:00
heckflosse
b50de693a0 Replace expensive dcp srgb gamma calculations by access to lookup table => no difference in output and much faster 2016-06-09 21:49:13 +02:00
Floessie
2abd641c06 Refactor DCPProfile::DCPProfile()
- Rename members
- Styling
- C++11

Still to come:
- All the rest of DCPProfile
2016-06-05 21:30:51 +02:00
Floessie
a520c93775 Add Ingo's patch for #3304 2016-06-04 21:07:41 +02:00
Desmis
564bf62268 Fixed special handling of chroma=-100 2016-06-03 08:42:26 +02:00
Beep6581
10f4bf3109 Merged master into rgbcurvesspeedup. 2016-06-02 22:33:34 +02:00
heckflosse
b31225672a Some new improvements to speed of curve generation (mainly to speedup thumb processing in file browser) 2016-05-31 23:47:01 +02:00
Desmis
6dba58e26e fixed special handling of chroma = -100 2016-05-30 09:11:07 +02:00
heckflosse
20aec5b129 Cleanup and small improvements for ciecam02 2016-05-16 18:20:42 +02:00
heckflosse
9da7de4080 Fixed a bug I introduced with last commit and changed argument order of Ciecam02::curveJfloat 2016-05-14 12:04:02 +02:00
heckflosse
74447dff99 cleanup for Ciecam02::curveJfloat(..) 2016-05-13 21:52:49 +02:00
heckflosse
c601e05422 Fix non OpenMP build and astyled improcfun.cc 2016-05-13 15:40:21 +02:00
Flössie
1edfb0c6f7 Switch getClutValue to vfloat2 and load/store source[RGB] unaligned
Ingo had some cleanup suggestions in #3154 which I tried to realize with
this commit. Although switching to `vfloat2` is a clever idea, I can see
no further speedup.
2016-05-10 20:39:20 +02:00
heckflosse
6646c2dc5c Speedup for thumbnail and editor processing, also reduced base memory usage a bit 2016-05-06 21:51:57 +02:00
heckflosse
31b2589b9b Fix crashes caused by aligned access to unaligned memory in CLUT code, fixes #3154, fixes #3278, fixes #3277 2016-05-06 17:16:45 +02:00
Flössie
2ad89f9464 Fix buffer overrun when applying HaldCLUT (#3154)
Ingo found a buffer overrun due to an inverted mask when deciding
whether to take the SSE path or not. This fix applies his suggested
pattern for boder cases. Kudos to @heckflosse.
2016-05-04 20:23:28 +02:00
heckflosse
5e0a859cea Fix buffer overrun in rgbProc() 2016-05-03 20:01:59 +02:00
Flössie
39f4db609a Final code cleanup
- Corrected whitespace and comments
- Replaced `VECTLENSP` with `__SSE2__` and `4`
- Removed redundant `inline`
  (see: http://programmers.stackexchange.com/a/35436 and
  http://stackoverflow.com/a/5971755)
2016-05-01 11:10:11 +02:00
Flössie
eceb024ba8 Add Ingo's gamma_srgbclipped patch 2016-05-01 10:41:21 +02:00
heckflosse
2dd2f5ca17 Speedup for thumbnail processing 2016-05-01 00:16:06 +02:00
Flössie
beaea22779 Vectorize color space conversion for HaldCLUT
Vectorize color space conversion for HaldCLUT depending on the
definition of `VECTLENSP`. It's not fully AVX compatible because `F2V`,
`LVF`, and `STVF` are SSE only.
2016-04-29 20:35:37 +02:00
Flössie
29fe23e517 Move film_simulation_strength calculation into HaldCLUT::getRGB()
- Moved `film_simulation_strength` calculation into `HaldCLUT::getRGB()`
- Removed unneeded base class `CLUT`
- Used `_MM_SHUFFLE`
2016-04-29 17:26:56 +02:00
Flössie
9dee6dddf1 Hoist out_rgbx allocation out of the loops 2016-04-26 22:16:23 +02:00
Flössie
bf499055e1 Apply HaldCLUT::getRGB() per tile line
`getRGB()` now takes a whole tile line instead of a single pixel.
2016-04-26 21:57:58 +02:00
Flössie
b1a9e96836 Store HaldCLUT as flat RGBx array
Instead of using an `Image16`, which is organized in planes, store the
HaldCLUT in an `AlignedBuffer<std::uint16_t>` with sequential RGBx
values. This gives a speedup of roughly 23% here.
2016-04-23 22:55:28 +02:00
Flössie
f639cd6b82 Use Image16 instead of Imagefloat for CLUT
Gain speed and reduce memory by using Image16 instead of Imagefloat for
the CLUT.
2016-04-23 22:55:28 +02:00
Flössie
e495093b18 Clean up clutstore.* and add LRU cache
This commit adds a true LRU cache to `rtengine` which is used in the new
`CLUTStore` class. The code in `clutstore.*` was cleaned up with C++11
features and small optimizations taken from my `clutbench` project.
The `CLUTStore` class was converted to a true singleton.
2016-04-23 22:55:28 +02:00
heckflosse
2f2421442b Raw false colour suppression: additional 38% speedup 2016-03-06 01:14:35 +01:00
Ingo Weyrich
4df5e64056 Merge pull request #3188 from Beep6581/cbdlbw
Adapt Cbdl to B&W tools
2016-03-01 20:31:14 +01:00
heckflosse
755f7568bb removed big block of inactive code which I forgot to remove in last commit 2016-03-01 19:30:48 +01:00
heckflosse
51de80b558 Fixed bug with combination of cbdl and ciecam, cleaned code, made SSE version for lab2rgb 2016-03-01 19:16:34 +01:00
heckflosse
1b220543f3 Replace all x^(1/3) with std::cbrt(x) 2016-02-25 16:50:21 +01:00
heckflosse
e52b1fcdd4 Reduce start time and memory usage by removing redundant lookup tables and fillig remaining lookup tables in parellel 2016-02-24 01:35:47 +01:00
heckflosse
a15fe1de3e Cbdl before b&w, fix ciecam02 issue and clean the code a bit 2016-02-19 21:52:02 +01:00
Desmis
5f988861b0 Init CBDL before Black and White 2016-02-19 16:58:23 +01:00
Hombre
4665b88788 Modified Preview Canvas
- Now the Preview can show free space around the image (the image's
corner will coincide with the center of the preview area)
- Editing objects can now be manipulated in this free space
- The editing mechanism has been split : it was completely handled in
rtengine before, now rtengine still handle the pipette's data provider,
but rtgui now handle the objects data provider.
- Bugfix: when using coarse rotate in the Editor panel, the Gradient
widgets are now correctly displayed
2016-02-05 01:40:31 +01:00
Adam Reichold
5fd5d5bece Remove the soft proof button and internal flag as it was decided not to mix this with the output profile handling. 2016-01-01 19:43:09 +01:00
Hombre
bcbb45454a Updated icons (from Drslony), code cleanup and bugfix 2015-12-29 03:52:50 +01:00
Adam Reichold
4ecf463f9f Merge master for the C++11 ABI fixes. 2015-12-20 20:53:59 +01:00