FastRawViewer 1.4.7 Release

Due to current circumstances, people are trying to stay inside - so there are fewer photo opportunities. Maybe now is a good time to go through your old photo archives!

We are offering a 25% discount on all LibRaw products and bundles.

We are extending our Special Prices until June 15, 2020.

Introduction

In the new version of FastRawViewer, we’ve concentrated on speeding things up.

If you’ve already used the Technology Preview I/II, then the main difference is that RAW GPU Processing doesn’t need to be turned on additionally through a hotkey; it’s turned on as soon as that’s set in the Preferences.

The settings allow one to turn on GPU processing for all RAW files or for Bayer RAW files only.

You can download the new version immediately through the links below, but we recommend new users read the detailed list of changes of the new version.

In a few lines, the changes are as follows:

With the new strategy of processing JPEG representations (both embedded and Lone), opening files has become times faster.

Processing RAW data on the GPU: rendering is changed instantly with the change of the rendering parameters (WB, Exposure, Contrast); higher-quality demosaicing is applied to Bayer images (that is, for the vast majority of cameras).

The interface rendering speed has also increased somewhat.

If you prefer the Windows Explorer / Finder-like behavior for selecting files, you can switch to it.

Several bugs have been fixed, many minor improvements have been added.

Download links

JPEG Handling

The code for JPEG processing has been revised; the way JPEG decoding works is now controlled by a few settings.

In Preferences - RAW+JPEG - JPEGs decode priority can be set separately for each type of JPEG file (Lone, Embedded, and External JPEGs):

None - do not decode at all, so this "representation" will be inaccessible;

On demand - the decoding will happen in the moment between switching from RAW to JPEG (when pressing J to switch, there will be a momentary delay, equal to about half of the time between loading the next file in previous versions. When pressing J a second time for the same file, there will be no such delay);

On file open - the decoding will happen at the moment of file load (this is how it was in all of the previous versions);

On prefetch - the decoding will happen during the file prefetch (this option is available only on 64-bit versions).

Depending on your habits, the following settings seem reasonable:

If you always look at JPEGs, use On prefetch;

If you rarely or almost never look at JPEG representations, use On demand.

For Lone JPEGs, not paired with a RAW, there are, naturally, only two options: On file open(as before) and On prefetch, with the others not being of any use. Because On prefetch is only available on the 64-bit version, all controls for processing Lone JPEGs are unavailable for 32-bit versions.

The On prefetch version uses a lot of memory: 20 Mpix JPEG takes up 3-4 MB before unpacking, and 80 MB unpacked (as RGBA); that means a 20-file cache of such JPEGs will take up 1.6 GB instead of 60 to 80 MB.

The above new settings have replaced these older ones:

Decode and show external JPEGs(when turned off this corresponds to External JPEGs: None).

If >14 GB of memory is present, then Lone JPEGs will be set to On Prefetch(the Defaults button sets it the same way - depending on the amount of RAM present in the system).

Processing RAW data on a video card (GPU)

The processing of RAW data on the GPU (white balance, exposure, contrast, demosaicing for the standard Bayer) has been implemented.

In this mode:

When first displaying the file, the RAW data is loaded onto the GPU in floating point presentation

Recalculation from RAW data (first time, or when changing parameters: white balance, exposure correction, contrast) to RGB-representation happens on the GPU

For a standard RGBG Bayer, debayerization also happens on the GPU (and the quality is a bit better than on a standard CPU)

On a fairly modern GPU, this mode ought to be no slower than the old mode when first displaying the file and significantly (by an order of magnitude and more) faster when changing the rendering parameters (white balance, contrast, exposure correction). On a fast GPU, the first time one opens a file also becomes much faster.

New settings, (all in the Preferences - GPU Processing section)

GPU Memory Usage(this setting replaces the old Store all renderings in GPU memory):

Minimal - only the current image is stored in the GPU; the unused graphic resources are immediately freed up.

This is a very slow mode, using a minimal amount of video memory.

Minimal+ - uses one set of graphic resources, when moving to a smaller image, video memory is not freed up.

Optimal - two sets of graphics resources are used: the current image and the "next" one, in the process of refreshing video data on the screen there can't be "garbage" (bits of prior images).

Maximal - up to four sets of resources are used (RAW, iJPEG, eJPEG, and currently refreshed), the second RAW/JPEG switch should be instantaneous.

This setting can be turned on only if GPU Memory Usage is set to Optimal or Maximal.

This mode is turned separately for "non-Bayer" files, because non-Bayer (including full-color) files (panorama, HDR shots) can be very large and as such require a great deal more video memory. As such, for these files RAW-on-GPU mode could end up being slower than the old mode.

Default(not inherited from 1.4.7 test version!):

Bayer RAW only - on processors with support for 16-bit Floating Point (Intel Ivy Bridge and newer);

None - for older processors.

Experimenting with different hardware and studying user logs, we determined that the combination of DirectX 9 video mode and Process RAW data on GPU setting results in a very low performance.

Additionally, only fast GPUs / video adapters (Intel Iris, Nvidia GTX, ATI/AMD R7/R9/RX/Vega HD 5700/6800/7800+) ensure that the speed-up happens always(that is, it happens also on the first open of a file).

However, DirectX 9 video mode is the most compatible one, mostly ensuring that older video adapters / GPUs and buggy drivers will still work.

Because of all the above reasons, the procedure for automatically setting the video mode / Process RAW data on GPU combination is rather complex:

On the first launch, the video mode is set:

OpenGL – for multi-display setups;

DirectX 11 – if there is only one display, and the video adapter / GPU is a fast one;

DirectX 9 – for all other video adapters;

for fast video adapters / GPUs Process RAW data on GPU setting is On, and Off for all others.

If you were running FastRawViewer 1.4.6 or an earlier version, your video adapter / GPU is a fast one, and your video mode was DirectX 9, the application will suggest to switch to OpenGL and enable Process RAW data on GPU.

Parallel GPU data upload(available only for OpenGL graphics engine and only for 64-bit versions of FRV):

None - turned off

RAW GPU processing - is used only for Process RAW data on GPU

Always - always turned on for all modes.

Depending on the GPU and the drivers being used, the parallel upload mode can be slower or faster - play around if it seems like "everything is too slow."

Use faster (but lower quality) RGB bayer demosaic - in GPU mode, a faster but lower-quality demosaicing will be used (the same as the one used on CPU).

Hidden settings (scripts)

UseOEUEOnGPU / NoOEUEOnGPU - using or not using the GPU to generate over/underexposure maps on the GPU (in theory, there should be no reason not to use this, but the hidden setting remains)

Use16BitFloatingPoint / No16BitFloatingPoint - load and use 16-bit data instead of 32-bit data onto the GPU. No real reasons not to use this, but the hidden setting is here.

Speeding up the Interface

The GPU Processing - GPU Compatibility - Force window refresh by slight resize setting has been changed to a new one (in the same chunk of settings) - Refresh window after image changed - with the options being:

None - no additional steps are taken to refresh the program window;

Normal(default) - default steps are taken, same as for FRV 1.4.6;

Slight resize - analogous to the old "...by slight resize".

The None setting is the fastest, but its workability isn't guaranteed.

(Windows only): The new hidden setting, WindowsCheckRemoteSession, and the corresponding scripts for implementing it NoWindowsCheckForRemoteSession.reg and WindowsCheckForRemoteSession.reg

When this setting is turned on, FastRawViewer checks "am I in a remote terminal session?" If yes, then the current video mode is set to DirectX 9 (without changing what's set in the Preferences). If this mode differs from the default, then a second set of binary shaders will be compiled (and during subsequent launches, launch will also be faster).

The Image Display - Use Monochrome mode for Bayer images setting has been redone: a Detect option has been added, which will detect these files automatically.

The processing of Sleep/Awake has been improved (mainly, for OS X / MacOS)

Menu - File - Clear _Rejected subfolder:

The Show in Explorer / Reveal in Finder button has been added, allowing one to look at _Rejected using the file manager

Preferences - Copy/Move/Reject - Show detailed _Rejected folder stats before clearing the folder setting: If this is turned on, then the details of the deleted files is displayed (NN RAW, MM RAW+XMP, etc.).

Images in floating point (DNG):

normalized images (meaning with a data range 0...1) are supported;

uncompressed floating-point images are supported.

All RAW formats: due to the reorganization of internal data and changes in internal algorithms (with the goal of optimization), minute differences in the results of auto-white balance and auto-ETTR calculations are possible.

This especially concerns Fuji SuperCCD files, for which the changes are especially large.

Bugfixes and Finalizations

The Pause thumbnail decoding while RAW being processed setting was not restored upon pressing Defaults

Bugfix: in the case where one performs the following sequence of actions: manually set WB - OK - manually set WB - Cancel; upon pressing Cancel, the WB setting was restored to the WB setting that was active before the first setting of WB manually, that is before the whole sequence started.

For pairs of RAW+JPEG, in some instances the eJPEG representation could be discarded from the program memory (but not the eJPEG file itself of course - copy/move worked correctly).

Pre-fetch for external JPEGs did not work in all cases.

Files count/selected files count in Grid View panel was not updated on folder change or on Deselect All action.

When the Menu - Adjust - Exposure Correction checkbox was not checked and the Use Adobe hidden exposure setting was checked, the first file to be displayed would be shown without applying Adobe hidden exposure.

The Grid / Filmstrip - Pause thumbnail decoding while raw being processed setting now controls the processing of the file on which the application was started.

In the process of exiting the application, cache cleaning is turned off (performing such cleaning is unnecessary, and it could also lead to a crash during the exit)

4-color non-RGB (CMYG) images:

an error in reading saved white balance has been fixed,

an error has been fixed where the histogram for the 4th channel was displayed incorrectly

Have you performed any performance test with green / red team's video cards which shall give better performance of the same tier? Some processes of Photoshop is known to take advantage of OpenGL hence Nvidia cards are preferred and the sweet spot is 1060 / 1070.
Do you have any recommendation for let say 1060 vs RX570?