311 Commits

Author SHA1 Message Date
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
Hombre
e9141dd98c Cleaning up the GUI for the monitor profile and rendering intent +
output profile rendering intent + soft-proof button.

DCP profile GUI switched from 2x2 array to a single column.
2015-12-18 01:45:59 +01:00
Hombre
32eb6b996c Adding softproofing. Now the output profile and the new rendering intent
profile for the output profile will only be shown when the new softproof
toggle button (bottom of the preview in the Editor panel) will be on.
2015-12-15 01:06:38 +01:00
heckflosse
b856e210ae Fix Win32 Debug build part one 2015-12-08 19:00:35 +01:00
Adam Reichold
5f59156bb0 Simplify querying the default monitor profile as suggested by Hombre57. 2015-12-07 23:22:41 +01:00
Adam Reichold
22bffabe7f Extend the editor panel to support selection of a monitor profile and rendering intent and extend the preferences to provide a default profile and intent for the editor panel. 2015-12-07 23:22:32 +01:00
Adam Reichold
35919bddc9 Copy-edit the ICC store for better performance and maintainability and add a method to load profile lists from arbitrary directories. 2015-12-07 19:55:14 +01:00