Open redmoon1945 opened 4 weeks ago
Forgot to mention that effort=9 (I want max quality, ready to have longer processing time), Intelligent mode =OFF
What is the highest resolution in those images you're processing?
You can enable the "Low RAM" mode to handle this edge case for now and/or use Effort 7. Effort 8 and higher require an unreasonable amount of RAM for high resolution images.
Effort 7 does streaming encoding, while 8 and higher does not. I filed an issue to libjxl
requesting this feature extended in cjxl
.
The "Low RAM" mode runs the conversion as if you were using a script. One image at a time.
Thanks. max resolution = 8256 x 5504 , which is fairly common in the world of photography (not seen as "high res")
If I use Low RAM, and effort = 9 , RAM consumption will still be "reasonable" and constrained (I have 32 GB) ? If not, then maybe the label "Low RAM" should be renamed, like e.g. "one at a time" (as opposed to "parallel") ??
Thanks for filling an issue with libjxl. Regards
I consider 8 k to be "high-res" because it requires over 8 GB of RAM to be processed with Effort 9. Review my libjxl issue for more details.
I will be reworking this function. The naming and the way it works will most change in the next version.
8 GB is "reasonnable" for me :-) So I will keep effort=9. thx, this app is unique and really built with real use cases in mind. Deepest congrats !
Thanks. If libjxl
devs add streaming encoding to cjxl
, this will lower the RAM usage by a lot. If not, I'll try to work around this. We'll see.
This issue is related to #49
For now, I'll wait for the next libjxl
release with hopes streaming encoding gets added to cjxl
. If that won't happen, I'll prototype solutions for this problem.
Ideally, I would like to transition to using the API at some point. However, that's a big undertaking.
@JacobDev1 A little tip: you can save your time if don't rush to close threads that deal with unresolved issues.
Version
1.0.2
OS
Linux
Description
Using the App Image and 1050 jpg file to convert (around 1 to 2 Mb each), multi-threading = performance, threads = 16, conversion starts ok, but available memory (32 Gb) is eaten up till the system crashes. Superb app by the way :-)
Steps to Reproduce
Proceed as in the description
Expected Result
Even in "performance" mode, the app should provide a notification message when lets say a certain level of system memory has been consumed (or is left), then stop the conversion, releasing the memory allocated. All that without crashing.
Current Result
The memory is consumed until system crashes.
Input Formats
jpg
Output Format
jpeg XL
Additional Information (Optional)
Here is my system info :