243 Commits

Author SHA1 Message Date
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
Adam Reichold
594b4f9b6e Reenable the colorimetric intent selector on the color management tab, but display it below the monitor profile to indicate that this is the only place where it is used. 2015-12-05 21:20:51 +01:00
bobobo1618
6ec6e51c35 Add explicit type conversions to satisfy C++11 requirements.
(cherry picked from commit b93c730)
2015-11-05 19:16:54 -08:00
heckflosse
33b2d643b1 Cleaned code and removes StopWatch 2015-08-20 19:52:53 +02:00
heckflosse
f7907a5474 Speedup for perceptual curve, #2817 2015-08-17 13:31:20 +02:00
heckflosse
161fa15922 removed unsupported character in improcfun.cc, no Issue 2015-08-17 12:07:33 +02:00
Morgan Hardwood
91f67f0cb6 Issue 2846: Filter preview through output profile when using a monitor profile.
- Removed the "Rendering intent" setting from Preferences,
- Hard-code "relative colorimetric" intent everywhere,
- Filter through output profile before filtering through monitor
  profile if using a monitor profile,
- If not using a monitor profile, a direct sRGB conversion is done,
2015-08-12 13:27:45 +02:00
DrSlony
0e0cfb9b25 Formatted all .cc and .h code in rtengine, rtexif and rtgui using astyle 2015-08-11 11:55:03 +02:00
torger
6bb0d15ff0 Issue 2837: added 'Perceptual' tone curve 2015-07-26 20:37:44 +02:00
torger
b2836b388f Issue 2850: normalized RGB-pipeline curve gammas to sRGB, make curve algorithms operate on linear image data 2015-07-23 21:34:00 +02:00
torger
094ad23cce Issue 2843: Hl compression function restored (restored some bad changes caused by new DCP look table code) 2015-07-15 17:13:06 +02:00
torger
d5ca351c20 Issue 2134: removed obsolete raw highlight preservation setting from GUI (still left in procparams for backwards compatilibility) 2015-07-10 12:00:36 +02:00