Forum
The memory optimization works great, but I would love a way to load the image fully after focusing/double-clicking it. The image would remain loaded until we focus another one.
Loading images in a slideshow shouldn't happen, unless we focus one. Alternatively preload them during previous images shown.
Thanks.
Edited 2 time(s). Last edit at 2024-05-26 22:16 by no1a.
If you use the No cache option of the Performance mode setting, this is basically what is happening, you can read more here: https://pureref.com/handbook/settings/#performance-mode
I tried, but the "No cache" performs worse than Downscaling.
Comparison (170 images):
- "In memory" Performance Mode - RAM usage 2 GB, works smoothly
- "No cache" Performance Mode - RAM usage between 1 to 2 GB, terrible lags whem zooming/moving the canvas, the images look worse than in the Downscaling mode when zoomed out
- Auto Downscaling (512x512) "In memory" Performance Mode - RAM usage 270 MB, works smoothly, the images look good (except when zoomed in, hence the suggestion)
I can use the "In memory" mode comfortably for small image sets, but RAM becomes a problem for large sets with thousands of images.
Thanks!
Sorry I think we misunderstood you a bit, if you want the lowest RAM usage and best quality you should use Performance mode "Cache on disk" without the Auto downscale option. It will generate caches on disk as you zoom and pan around and after a while the performance should be smoother.
I checked the Cache on disk mode. It still performs worse (in terms of RAM usage, 2-3 GB).
Looks like I will keep using the downscaling mode (lowest RAM usage), but thanks for help!
I agree with no1a and also would like to see something in between downscaling and "No cache" Performance Mode.
For example:
PureRef create two .pur files. .pur and .purs, but only the first file could be opened. The first file stores pictures without downscale, and second - with downscaling.
By default, PureRef show downscaling files. But, if the user selects them, or activates Original Display Mode, PureRef starts to show original files.
It would be gorgeous if users will be able to choose more than one size of downscaling and manually switch between them.
Something like this already working by downscaling and Performance Mode, but every option it's a compromise between quality, speed, and lags.
It would be interesting to know how your scenes look for them to use 2-3gb of RAM even with Cache on disk / No cache, they should both reduce RAM usage by a lot. Do you keep a lot of images on top of each other? In the case of Cache on disk if you have a full C: drive it might fallback to storing the images in RAM but that should be a rare case.
Basically the Cache on disk reads the full images once and then unloads the data if it is not needed after creating smaller versions of the image, but it will do it again when zooming in, that's why it might be a bit worse in terms of rendering performance depending on the speed of the hard drive.
Mode: Cache on disk
Cache takes about 1.4GB on disk.
172 images, 162MB, some as large as 6MB (not stacked on top of each other).
RAM usage: 1.5GB to 2.0GB (without a project)
After saving the project and reloading: ~850MB to ~1100MB
It's nice, better than the memory options.
Could it be that it's not always unloading images? (If RAM should be lower than 850MB). I noticed that some images didn't need loading, or they load instantly, I'm not sure which is the case.
Issues:
- Keeping cache on disk isn't perfect, especially when the image sets are large (10GB+), that might take A LOT of cache. Or when the images are very large, 100MB+.
- Takes 2.0-2.5GB of RAM when loading images for the first time,
- Takes 3-4x more RAM than Downscaling to 512x512 (and more with downscaling harsher than 512x512)
Metasa:
> "For example:
> PureRef create two .pur files. .pur and .purs, but only the first file could be opened. The first file stores pictures without downscale, and second - with downscaling.
> By default, PureRef show downscaling files. But, if the user selects them, or activates Original Display Mode, PureRef starts to show original files."
Yes. Or load them from their original locations, if possible - this way we don't need a second file, as long as the original files still exist. Or when we have not saved a project yet.
For me it would be fine to even open the selected image in an external image viewer, if loading the original image after selection is harder to do, but I'm not sure.
If anyone else is watching this thread, post what you think.
Edited 3 time(s). Last edit at 2024-06-04 05:26 by no1a.
>Yes. Or load them from their original locations, if possible - this way we don't need a second file, as long as the original files still exist. Or when we have not saved a project yet.
.pur file - main base. .purs - disposable cache versions of main base. Their merging will only create confusion and inconvenience. Generation of .purs after opening of .pur will significantly and unnecessary slow down PureRef startup.
.purs files also needed for customization and 3D LOD analog functionality.
For example, I have thousands of RAW photos. And I want to see them all in one canvas. With original resolution.
Right now this is impossible even theoretically. At least for me, after 2gb of .pur size canvases begin to lag.
But if I could create 4 .purs cache files with 100x100, 250x250, 768x768, 1536x1536 resolution, and bind them to Alt+1-4, this would solve problems with quantity.
And if originals will be displayed by selection - problems with quality.
More so, if there will be setting to change resolution only for pictures in active camera. Or even with possibility to choose default downscaling for separate pictures. Via selecting pictures and pressing Alt+Shift+0-5 hotkey. Where 0 - original size.
If add to this suggested by me in other topic collapsible group title bars, which would unload content from PC memory, and some comfortable index, this will change PureRef scalability by orders of magnitude. Theoretically, users will be able to keep all their PC picture just in one canvas. But despite enormous size, open it in seconds. And, if needed, see all PC pictures, by small previews, simultaneously. Possibly also in seconds, without indexing, in form of auto-merged chunks.
Edited 1 time(s). Last edit at 2024-06-04 16:39 by Metasa.
Regarding loading directly from the image files, this is what disabling "Embed local images in save file" does, read more here: https://pureref.com/handbook/settings/#embed-local-images-in-save-file
@Metasa: The Cache on disk performance mode basically does exactly what you describe, it creates LODs/Mips, and only keeps the visible images in RAM. Do we understand you correct that you basically just want to pre-create the mips and then keep them around so that loading is faster? How big are the images you're importing?
> The Cache on disk performance mode basically does exactly what you describe, it creates LODs/Mips, and only keeps the visible images in RAM.
My big canvases, both in "Cache on disk" and "No cache" performance mode, lagging during camera movements. Sometimes for a few seconds.
If I re-save files as .jpg and then re-upload them to canvas, it would lag less, but still.
If I change resolution of files to up to 256x256, canvas will stop lagging.
I want the possibility to choose with what exactly coding format and resolution of pictures to work with. Manually controlling LOD depth. Whereas "Cache on disk performance mode" constantly changes resolutions of mips, which, as I understand, is also lead to lags.
Main PureRef advantage - fast orientation. But the more pictures in canvas - the more this advantage degrade by lags and slowdowns.
My suggestion about possibility to exchange absence of any lags on drastic, but temporary and controllable, reduction of image quality. So that transition of camera from one pictures to display of all pictures was always instantaneous.
> and only keeps the visible images in RAM
But the further camera moves away from pictures - the more PurRef cache mips and more lag. I want possibility, via collapsible groups, to control which mips PureRef will cache, and which will not cache at all.
> Do we understand you correct that you basically just want to pre-create the mips and then keep them around so that loading is faster?
Yes, one of the reasons of suggested - possibility to open even 10gb canvases in second, in some 100x100 mode.
> How big are the images you're importing?
This is one of the reasons why I'm writing all of this. Some of my picture big RAW files, and some very small .jpg files. And because of PureRef resizing peculiarities I not always could differentiate which exactly pictures have size 35mb, and which 300kb? That's why I wish to forget about original formats and resolution altogether. Working only with reconverted to .jpg and comfortable for orientation resolution versions. But still having possibility to quickly see and use originals.
Edited 1 time(s). Last edit at 2024-06-05 19:04 by Metasa.