FastRawViewer 1.8: Technology Preview

FastRawViewer 1.8 (the number is provisional, so as to differentiate it from other versions; the download links are at the bottom of this blog entry) doesn’t add any new user-oriented features.

In this version, we focused on the “internals,” specifically on the fundamental functions of the program: accelerating the display of RAW files (and other formats of course).

FastRawViewer 1.8. Technology Preview

What’s New

  • The entire approach to multi-threading, file decoding caches, and the like has been changed:
  • All settings for cache sizes and multi-threading can be changed on the fly, without restarting FastRawViewer (this way, only two Preferences settings remain that require restarting: Graphics Engine | only on Windows |, and Use reduced folders panel functions)
  • Multi-threading can be set separately for each media type (disk, network volume, and even subfolder), and now settings do not need to be pegged to the slowest disk.
  • FastRawViewer now works much faster:
  • When reading previews and metadata, by tens of percent (when not running into disk data throughput limitations)
  • When flipping through files, by a magnitude of 1.5-2x (again, when not running into disk data throughput limitations)
  • FastRawViewer now works much smoother:
  • When changing the current folder, it will not immediately read too many files at once.
  • Reading (prefetch) of files can happen in the ‘while idle’ mode (‘idle’ here means that there are no other file activities going on in FastRawViewer).
  • Intel/AppleSilicon Universal binary (single binary for both processor types).
  • Non-RAW files: file type is guessed based on file header.

The new settings are described more in-depth below (in the “New and changed settings” section).

Decoding CR3 files uses multiple threads, opening CR3 files while in “random browsing” will be noticeably faster (when flipping consecutively, Prefetch already works sufficiently well)

What’s been removed/changed

Most Important

  1. No more Legacy versions for old Mac OS X, only macOS 10.12 – 11.x are supported
    This change is induced: new versions of Qt5 do not support old Mac OS X.
  2. Also no more 32-bit versions for Windows. Only Windows 7-10/64 bit are supported.
    This change is deliberate: to work with (a large amount of) RAW files in a reasonable manner, two gigabytes of RAM (the upper limit available for all the programs Windows are running simultaneously) is definitely not enough.

Support for old graphics modes

Support for DirectX 9 has been removed; the minimum required version of OpenGL is 3.3.

In cases of macOS this requirement imposes no limits, because macOS 10.12+ only works with video cards that support the required video mode.

  • On Windows, you will need a relatively recent video adapter. In a nutshell, discrete graphics, made by the main manufacturers and released after the year 2007, and integrated graphics released starting in 2012 are supported. More specifically, here’s the list of the oldest GPUs supported:
  • Intel (integrated in the CPU): Intel Core 3rd generation (i3/5/7-3xxx).
  • Nvidia:
  • Geforce 8xxx in OpenGL mode
  • Geforce 4xx in DirectX or OpenGL mode
  • AMD/ATI
  • Radeon HD 2000/3000/4000 in OpenGL mode
  • Radeon HD 5000 in DirectX or OpenGL modes.

All newer GPUs should work both in DirectX11 and OpenGL modes.

If you continue to use an old operating system or a very old graphics card, please continue to use FastRawViewer 1.7.

To store Graphics Engine settings in Windows, a new line in the Registry is used that does not interfere with FastRawViewer 1.7; in two “branches” of the program, 1.7 and 1.8, different Graphics Engine settings can be used (all other settings are common).

Grid Mode

Grid mode now cannot be fully turned off.

If you do not like this mode, in Preferences - Interface - Grid/Selection turn off the checkmarks for 'Start in Grid mode', 'Browse folders in Grid mode', turn on 'Remember Grid/Single file state' (you can also remove the shortcut that switches from Grid to Single, so as to not accidentally press it).

FastRawViewer 1.8. Preferences-Grid/Selection

The Grid/Filmstrip settings tab has been renamed to Grid/Selection and reorganized:

  • Everything that has to do with the Filmstrip panels has been moved to a separate group in Preferences - Panels
FastRawViewer 1.8. Preferences-Panels-Filmstrip Group class=
  • The checkbox Apply automated brightening to thumbnails has been moved to Preferences - Performance - Thumbnail cache
FastRawViewer 1.8. Preferences-Performance-Thumbnail Cache. Selection group
  • Everything that has to do with Selection has been moved to a separate, very visible group in Grid/Selection
FastRawViewer 1.8. Preferences-Grid/Selection. Selection group

Other

Settings that have become outdated, are unnecessary, and/or are practically unused have been removed

  • In Preferences
  • Use non-standard file dialogs: the system’s dialogs are always used
  • Use system icons in the Folders panel: icons from FastRawViewer collection are always used
  • OS X 10.7 (Lion) fullscreen mode
  • Hidden: UseMMapedIO, UseTBB, AlternateKeyHandler

New and changed settings

File Handling Tab

The Check for folder updates each … setting has been transferred here from the old Performance tab

Removable Media Tab

Settings for monitoring folder changes and the depths of file Prefetch have been moved to a new Preferences - Performance – Slow Media tab (see below).

Performance Tab

This tab has been noticeably reworked (in the upper part)

FastRawViewer 1.8. Preferences-Performance

Decoded files cache size Group

  • RAW:, RGB files: size of the cache of decoded files (in files)
  • Default values are set based on the amount of available memory.
  • When setting the cache size, it’s important to take into account the amount of memory that is occupied by data:
  • 2 megabytes per megapixel for “regular Bayer files”
  • 8 megabytes per megapixel for “full-color” (Linear DNG, Sony ARQ, Pentax 4-shot)
  • 16 megabytes per megapixel for full-color in floating point (HDR composites and the like).
  • 4 megabytes per megapixel for RGB files (JPEG, TIFF, HEIC, etc.).
  • Flush decoded RAW/JPEG caches on file/folder forced reload (this setting has been moved from the Other performance settings group on the same tab): if the checkbox is checked (by default it’s not), then when using Menu – File – Reload - … caches will be cleared.

The size of the caches can be changed on the fly, without restarting FastRawViewer. When decreasing, memory will be freed up (but it may not be returned to the operating system, if the memory of fragmented. In that case, FastRawViewer uses that memory later for its own needs).

Global File Prefetch parameters Group

In this group, one can set the general behavior of FastRawViewer when prefetching files.

  • Prefetch Depth: the maximum depth of prefetch (in files/file pairs for RAW+JPEG).
  • Prefetch Depth cannot be greater than half the size of the cache of the corresponding type (if the cache sizes are different, then the depth of the Prefetch will be limited separately for each file type)
  • If you are browsing files in random order (that is to say, the flipping direction cannot be determined), prefetching will be performed to half the Prefetch Depth in each direction. When flipping in one direction, the entire Prefetch Depth will be selected “in that direction”.
  • Parallel Prefetches … Auto-Extend to….
  • When first opening a file in a folder, Parallel Prefetches will be launched (see below for the limitations). If you are flipping through files in one direction AND if Auto-Extend is turned on, then each succeeding one more Parallel Prefetch will be launched, until the total number of Parallel Prefetches reaches the Auto-extend value (or the Prefetch Depth runs out).
  • When changing the flipping direction, everything begins again with Parallel Prefetches and will increase up to Auto-Extend to…
  • Prefetch while idle
  • If FastRawViewer isn’t busy reading other data (Parallel Prefetch, or reading metadata/previews), and this setting is turned on (not set to No), then every two seconds an attempt to read one file will be launched (without considering the direction of flipping around the current file).
  • Setting values:
  • No – do not do Prefetch in the background (default value)
  • In Single View mode – only in Single File View mode
  • In Single View and Grid mode – also in Grid View Mode (in this case, the file that is selected in Grid Mode will be prefetched and given priority).
  • Count RAW+JPEG as two prefetches: for RAW+JPEG pairs, their prefetches will be treated as two simultaneous prefetches (for example, with “Parallel Prefetches: 4”, two RAW+JPEG pairs will be read simultaneously).

Other settings in this tab have not changed relative to version 1.7

Performance - Thumbnail Cache Tab

Appearance of this tab hasn’t changed, but changing the settings in Thumbnail decoder thread count takes effect immediately, not when restarting FastRawViewer (with consideration for the settings determined in the next tab).

Performance – Slow Media Tab

This tab in the settings allows one to set the parameters for Parallel Prefetch for media/drive types (removable and network), and for each (volume/disk) drive letter separately.

FastRawViewer 1.8. Preferences - Performance - Slow Media Tab

Removable media parallel access Group

Network media parallel access Group

(the settings in the two groups are completely identical)

  • Monitor folder changes: monitor the appearance (/disappearance) of files in the folder that is currently being viewed.
  • Limit parallel file prefetch:
  • Limit the amount of parallel file prefetches to the indicated size.
  • This limiter is used after calculating the number of parallel prefetches from Parallel Prefetches/Auto-extend to (on the previous tab).
  • Limit parallel thumbnail reading:
  • Limits the amount of parallel thumbnail and metadata reading.

Attention: if the setting Preferences – Other – Use reduced Folders panel functions is turned on, then determination of the media type (network/removable/integrated) is not performed and the described settings are not applied (but limits can be set manually in the next section).

Volume/Drive specific settings Group

  • The following is listed in the table for this group:
  • All the volumes mounted (Windows: drive letters)
  • Manually added (through the Add custom prefix button) paths to folders.
  • For each path, one may
  • Turn on one’s personal parameters (Ovrd checkmark)
  • File prefetch: the number of threads for parallel prefetch
  • Thumbnail prefetch: number of threads for thumbnail and metadata prefetch.

When setting the parameters for a specific folder that is being viewed in FastRawViewer, the parameters are inherited from a path/prefix above that corresponds the most to the folder’s path length.

Some Tuning Advice

Default settings will be partially inherited from your current settings (cache size and Prefetch depth – this parameter used to be called “Number of simultaneous Raw decode threads”), and partially set to several reasonable defaults, based on the amount of RAM and the number of processor cores.

The reasonable defaults were not specifically picked out, but it is implicitly assumed that you are using an SSD drive(s), which does not decrease throughput with simultaneous requests.

  • If your main storage is an SSD (or a very fast network storage with a 5/10Gbit Ethernet and an SSD cache on the server side), then
  • The main parameters can be left as-is
  • Or one can try to increase the starting and maximum numbers of read threads.

For slow media (mechanical/magnetic disks, network storage over a gigabit Ethernet), we recommend setting a small maximum number of simultaneous read threads; either globally (general setting) or individually through the table of mounted media.

Download links

 

Add new comment

Simple HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Lines and paragraphs break automatically.
Subscribe to this blog updates