Thread Locked This thread is locked - replies are not allowed.



Permlink Replies: 31 - Pages: 3 [ 1 2 3 | Next ] - Last Post: 22 Jan 25, 22:11 Last Post By: davidekholm Threads: [ Previous | Next ]
davidekholm

Posts: 3,624
Registered: 18-Oct-2002
jAlbum 37 beta for testing
Posted: 15 Jan 25, 22:47
Hi guys,
jAlbum 37 is just around the corner now. Here's the beta!

Changes:
  • Reads JPEG images twice as fast thanks to turbojpeg library (native code stuffed with SIMD instructions for max performance)
  • Faster page processing during album builds: 1.7x normal speed when making a 6000 image Tiger gallery with slide pages, no mediaRSS
  • Image tools rewritten to take advantage of GPUs and SIMD instructions. The following image tools have been accelerated: Flip, Brightness, Contrast and Gamma
  • Faster folder tree rendering when navigating slow devices, like NAS devices. The folder tree is now discovered using multiple background threads, leading to a more responsive UI.
  • Updated bundled Tiger skin
  • New Preferences settings to control what image reader and writer libraries to use. See Preferences-Advanced-Image readers and Preferences-Advanced-Image writers.

Installers:
Windows: https://jalbum.net/download/jAlbum-install.exe
Mac (Intel): https://jalbum.net/download/jAlbum.dmg
Mac (M-series): https://jalbum.net/download/jAlbum-M.dmg
Linux (Debian): https://jalbum.net/download/jalbum_37-1_amd64.deb
Linux (arm-Debian): https://jalbum.net/download/jalbum_37-1_arm64.deb
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 16 Jan 25, 00:31   in response to: davidekholm in response to: davidekholm
David, from previous thread.
I installed the new filter in the application's external folder, there is no copy in the config folder.
Screen shot of my Library/jAlbum/ext folder, no FilterEffects in there.

jAlbum 36.1 installed in a subfolder of the Applications folder, it has JalbumFilters.jaext dated Wednesday 18 December 2024 at 13:18

jAlbum 36.1.5 installed in the application's folder, it has JalbumFilters.jaext dated Wednesday 15 January 2025 at 19:23

Project as I shared with you is on my hard drive in Dropbox's local version of the uploaded one.
Output directory set to 'Sites' subfolder of my 'home' folder.

Let me know if you need more data.

Edited by: RobM on 15 Jan 2025, 23:33
Just downloaded the 37 beta but time for bed, will try it tomorrow night.
davidekholm

Posts: 3,624
Registered: 18-Oct-2002
Re: jAlbum 37 beta for testing
Posted: 16 Jan 25, 15:43   in response to: RobM in response to: RobM
Rob, to print the timings just issue Profiler.instance

If you wish to install new measurements, use code like this:
        try (Sample _s = Profiler.profile("Clone image")) {
            return duplicate3(image);
        }


Try v37 and also grab the beta core so you get v37b2. That's a bit faster as well. Here's a comparison when building your test project and applying brightness, contrast and gamma to all images:
v36:
Making "Roberts JPEGs" (All)
"Roberts JPEGs" made in 9,345s

Making "Roberts JPEGs" (All)
"Roberts JPEGs" made in 7,039s

Making "Roberts JPEGs" (All)
"Roberts JPEGs" made in 6,5s

Profiling data (last run):
         FileFilters.loadImage:    94 calls      6,195s
         FileFilters.saveImage:   282 calls      5,933s
    HardwareSmoothScaler.scale:   270 calls      5,446s
      AlbumBean.processFilters:   470 calls      3,716s
   FileFilters.unifyColorModel:    94 calls      1,847s
  Executing compiled scriptlet:    56 calls      0,314s
...


v37b2:

Making "Roberts JPEGs" (All)
"Roberts JPEGs" made in 5,362s

Making "Roberts JPEGs" (All)
"Roberts JPEGs" made in 4,157s

Making "Roberts JPEGs" (All)
"Roberts JPEGs" made in 3,54s

Profiling data (last run):
    HardwareSmoothScaler.scale:   270 calls      2,903s
         FileFilters.saveImage:   282 calls      2,467s
         FileFilters.loadImage:    94 calls      2,293s
      AlbumBean.processFilters:   470 calls      1,397s
                 Levels filter:    86 calls      0,993s
                  Gamma filter:    87 calls      0,828s
  Executing compiled scriptlet:    56 calls      0,284s
...


Gains:
Image loading: 2.7x
Image saving: 2.4x
Image scaling: 1.9x
Filter processing: 2.7x
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 16 Jan 25, 20:58   in response to: davidekholm in response to: davidekholm
Now we're cooking :) (missed the b2 it went straight to the b3)
jAlbum 37b3 time = "jpgs" made in 3.669s
jAlbum 36.1 time = "jpgs" made in 6.211s
davidekholm

Posts: 3,624
Registered: 18-Oct-2002
Re: jAlbum 37 beta for testing
Posted: 16 Jan 25, 21:05   in response to: RobM in response to: RobM
RobM wrote:
Now we're cooking :) (missed the b2 it went straight to the b3)
jAlbum 37b3 time = "jpgs" made in 3.669s
jAlbum 36.1 time = "jpgs" made in 6.211s

Great!

If you experience long album builds in the future, issue a Profiler.instance in the system console after or during the build. That should reveal what jAlbum spends the major parts on.
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 16 Jan 25, 21:17   in response to: davidekholm in response to: davidekholm
Some more timings, one brand new make followed by two force remakes:

36.1 old filter
Making "jpgs" (Changes)
"jpgs" made in 5.971s

Making "jpgs" (All)
"jpgs" made in 6.109s

Making "jpgs" (All)
"jpgs" made in 6.149s


jAlbum 37b3
Making "jpgs" (Changes)
"jpgs" made in 3.294s

Making "jpgs" (All)
"jpgs" made in 3.542s

Making "jpgs" (All)
"jpgs" made in 2.441s

RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 17 Jan 25, 20:22   in response to: davidekholm in response to: davidekholm
Under Settings>Images>Output format you still get a warning that webP images can't be displayed in the integrated browser, but it can. WebP is also now supported by most browsers, https://caniuse.com/webp
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 17 Jan 25, 20:44   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
Hi guys,
jAlbum 37 is just around the corner now. Here's the beta!
  • New Preferences settings to control what image reader and writer libraries to use. See Preferences-Advanced-Image readers and Preferences-Advanced-Image writers.
Is this a work in progress still? If I turn off webP image writer but select webP in Settings>Images>Advanced, then make album I get no warnings but the output only has slide html files no images.

Similarly, if I turn off Image readers webP JDeli image reader there is no warning that a webP image is not supported. More surprising is if the output is set to JPG the webP image is converted to jpg and appears in the output.

I'm somewhat at a loss on what to write for the wiki entry. Should webP be disabled like other basic formats? Should disabling a format result in a warning if an image of that type is included in the project?
davidekholm

Posts: 3,624
Registered: 18-Oct-2002
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 02:41   in response to: RobM in response to: RobM
RobM wrote:
davidekholm wrote:
Hi guys,
jAlbum 37 is just around the corner now. Here's the beta!
  • New Preferences settings to control what image reader and writer libraries to use. See Preferences-Advanced-Image readers and Preferences-Advanced-Image writers.
Is this a work in progress still? If I turn off webP image writer but select webP in Settings>Images>Advanced, then make album I get no warnings but the output only has slide html files no images.

I expected an error in that case. I'll look into it.

Similarly, if I turn off Image readers webP JDeli image reader there is no warning that a webP image is not supported. More surprising is if the output is set to JPG the webP image is converted to jpg and appears in the output.

I'm somewhat at a loss on what to write for the wiki entry. Should webP be disabled like other basic formats? Should disabling a format result in a warning if an image of that type is included in the project?


Those are advanced settings that are basically only meant to be used if you encounter problems with, say, the turbojpeg reader or writer. One is not supposed to uncheck a reader or writer if it's the only one present for that image format. I don't plan to incorporate warnings in jAlbum if, say the only webp writer is switched off, but jAlbum should generate an error if the user requests jAlbum to write a format it can't support.
davidekholm

Posts: 3,624
Registered: 18-Oct-2002
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 02:41   in response to: RobM in response to: RobM
RobM wrote:
Under Settings>Images>Output format you still get a warning that webP images can't be displayed in the integrated browser, but it can. WebP is also now supported by most browsers, https://caniuse.com/webp

Time to retire that warning message :-)
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 11:30   in response to: davidekholm in response to: davidekholm
davidekholm wrote:
Those are advanced settings that are basically only meant to be used if you encounter problems with, say, the turbojpeg reader or writer. One is not supposed to uncheck a reader or writer if it's the only one present for that image format. I don't plan to incorporate warnings in jAlbum if, say the only webp writer is switched off, but jAlbum should generate an error if the user requests jAlbum to write a format it can't support.
Would it not be easier, for you and the user, if only image formats that had multiple readers/writers are shown? At the very least if there is only one reader/writer for a format then it/they should be greyed out.
MarkusD

Posts: 682
Registered: 13-Apr-2006
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 12:06   in response to: davidekholm in response to: davidekholm
Hi David,

I'm on 37b1 an Tiger 6.2

Tested two albums, a small one with only some hundred photos from webcams (the "2025" album). And one with 302 pictures and 65 videos (the "2024" album).

The results.
++++++++++++
Album "2025"
++++++++++++
 
"Everything was already done"
0,062s ==> 
       AlbumBean.registerVariables:   715 calls     14,378s
       AlbumObjectImpl.getMetadata:   653 calls     13,224s
     AlbumObjectImpl.getXmpManager:  1046 calls     13,075s
     AlbumObjectImpl.getProperties:   653 calls     11,721s
        AlbumObjectProperties.load:   647 calls      9,685s
     FileFilters.getBasicImageInfo:   653 calls      7,668s
       Process compiled expression:    37 calls      5,546s
                 predir processing:    34 calls      4,117s
                              init:     1 calls      2,107s
          AlbumBean.makeIndexPages:    34 calls      1,625s
      Executing compiled scriptlet:  3145 calls      1,349s
                     Writing pages:   106 calls       1,23s
                   Create MediaRSS:    34 calls      0,664s
                  Compiling script:     4 calls      0,539s
JAlbumUtilities.getDeepCameraDates:    34 calls      0,447s
                 AlbumBean.popVars:  2765 calls      0,412s
   JAlbumUtilities.countCategories:   303 calls      0,365s
   Executing interpreted scriptlet:  3979 calls      0,357s
                JSONMaker.makeTree:     1 calls      0,277s
         AlbumBean.countTotalFiles:     1 calls      0,259s
                AlbumBean.pushVars:  2766 calls      0,214s
           JSONMaker.makeDataPages:    34 calls      0,195s
              Compiling scriptlets:  2938 calls      0,192s
     AlbumBean.getFolderProperties:    53 calls      0,175s
           Reading file attributes:   297 calls       0,14s
             Making deep-data.json:     1 calls      0,081s
                Process expression:     1 calls      0,016s
                    Copy res files:     1 calls      0,007s
                             Total: 20936 calls  1m 30,065s
 
"Everyting in the output folder deleted, except the videos"
0,003s ==> 
       Process compiled expression:    37 calls     36,986s
                 predir processing:    34 calls     36,915s
             FileFilters.loadImage:   702 calls     27,277s
        HardwareSmoothScaler.scale:   691 calls     24,374s
             FileFilters.saveImage:  1439 calls     14,826s
     AlbumObjectImpl.getProperties:  1127 calls      0,961s
        AlbumObjectProperties.load:  1051 calls      0,892s
                    Copy res files:     1 calls      0,818s
          AlbumBean.makeIndexPages:    34 calls      0,718s
       AlbumBean.registerVariables:   715 calls      0,696s
      Executing compiled scriptlet:  3145 calls      0,609s
                   Create MediaRSS:    34 calls      0,377s
JAlbumUtilities.getDeepCameraDates:    34 calls      0,342s
     AlbumObjectImpl.getXmpManager:  1046 calls      0,339s
                 AlbumBean.popVars:  2765 calls      0,309s
       AlbumObjectImpl.getMetadata:   653 calls      0,226s
   Executing interpreted scriptlet:  3979 calls      0,189s
     FileFilters.getBasicImageInfo:   653 calls      0,188s
          AlbumBean.processFilters:  3479 calls      0,188s
           JSONMaker.makeDataPages:    34 calls      0,139s
                AlbumBean.pushVars:  2766 calls      0,138s
              Compiling scriptlets:  2938 calls      0,116s
                              init:     1 calls        0,1s
   JAlbumUtilities.countCategories:   303 calls      0,078s
                     Writing pages:   106 calls      0,071s
                JSONMaker.makeTree:     1 calls      0,048s
           Reading file attributes:   297 calls      0,047s
         AlbumBean.countTotalFiles:     1 calls      0,029s
             Making deep-data.json:     1 calls      0,028s
     AlbumBean.getFolderProperties:    48 calls      0,022s
                Process expression:     1 calls       0,01s
                             Total: 28116 calls  2m 28,056s
 
---------------------------------------------------------
 
++++++++++++
Album "2024"
++++++++++++
 
"Everything was already done"
0,7s ==> 
       Process compiled expression:    39 calls      4,052s
                 predir processing:    36 calls      3,312s
             FileFilters.loadImage:    70 calls      2,016s
                              init:     1 calls      1,307s
          AlbumBean.makeIndexPages:    36 calls      1,221s
      Executing compiled scriptlet:  2995 calls      1,014s
       AlbumBean.registerVariables:   487 calls       0,97s
                   Create MediaRSS:    36 calls      0,565s
                  Compiling script:     4 calls      0,517s
           JSONMaker.makeDataPages:    36 calls      0,502s
     AlbumObjectImpl.getXmpManager:   519 calls      0,467s
   JAlbumUtilities.countCategories:   321 calls      0,435s
                 AlbumBean.popVars:  1954 calls      0,424s
        AlbumObjectProperties.load:   423 calls      0,409s
     AlbumObjectImpl.getProperties:   429 calls      0,407s
   Executing interpreted scriptlet:  2900 calls      0,346s
       AlbumObjectImpl.getMetadata:   428 calls      0,325s
JAlbumUtilities.getDeepCameraDates:    36 calls      0,262s
     FileFilters.getBasicImageInfo:   425 calls      0,233s
              Compiling scriptlets:  2776 calls      0,206s
                AlbumBean.pushVars:  1955 calls      0,206s
                JSONMaker.makeTree:     1 calls      0,124s
             FileFilters.saveImage:     1 calls      0,094s
         AlbumBean.countTotalFiles:     1 calls      0,086s
           Reading file attributes:   280 calls      0,066s
             Making deep-data.json:     1 calls      0,066s
     AlbumBean.getFolderProperties:    69 calls      0,054s
                     Writing pages:   112 calls      0,046s
                Process expression:     1 calls       0,02s
                    Copy res files:     1 calls      0,003s
          BetterMediumScaler.scale:     1 calls          0s
                             Total: 16374 calls     19,755s
 
"Everyting in the output folder deleted, except the videos"
0,005s ==> 
             FileFilters.loadImage:   482 calls      39,86s
        HardwareSmoothScaler.scale:   562 calls     37,033s
       Process compiled expression:    39 calls     28,347s
                 predir processing:    36 calls     27,251s
             FileFilters.saveImage:   926 calls     22,669s
       AlbumBean.registerVariables:   487 calls     10,078s
       AlbumObjectImpl.getMetadata:   428 calls      7,585s
     AlbumObjectImpl.getXmpManager:   519 calls      7,456s
     AlbumObjectImpl.getProperties:   917 calls      4,828s
        AlbumObjectProperties.load:   675 calls      4,183s
     FileFilters.getBasicImageInfo:   425 calls      1,589s
                              init:     1 calls      1,226s
         AlbumBean.countTotalFiles:     1 calls       0,98s
   JAlbumUtilities.countCategories:   321 calls      0,958s
           Reading file attributes:   280 calls       0,86s
     AlbumBean.getFolderProperties:    85 calls      0,753s
      Executing compiled scriptlet:  2995 calls      0,736s
          AlbumBean.makeIndexPages:    36 calls      0,611s
JAlbumUtilities.getDeepCameraDates:    36 calls      0,288s
                JSONMaker.makeTree:     1 calls      0,251s
                 AlbumBean.popVars:  1954 calls      0,233s
                   Create MediaRSS:    36 calls      0,225s
                  Compiling script:     4 calls      0,122s
              Compiling scriptlets:  2776 calls      0,113s
           JSONMaker.makeDataPages:    36 calls      0,109s
   Executing interpreted scriptlet:  2900 calls      0,105s
                AlbumBean.pushVars:  1955 calls      0,104s
          AlbumBean.processFilters:  2160 calls      0,089s
                     Writing pages:   112 calls      0,078s
             Making deep-data.json:     1 calls      0,039s
                    Copy res files:     1 calls      0,022s
                Process expression:     1 calls      0,007s
                             Total: 21188 calls  3m 18,788s
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 13:31   in response to: MarkusD in response to: MarkusD
MarkusD wrote:
Hi David,

I'm on 37b1 an Tiger 6.2

I didn’t see a big change until I tried b3 version. Try the beta update.
MarkusD

Posts: 682
Registered: 13-Apr-2006
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 16:00   in response to: RobM in response to: RobM
RobM wrote:
MarkusD wrote:
Hi David,

I'm on 37b1 an Tiger 6.2

I didn’t see a big change until I tried b3 version. Try the beta update.
In the past years I gave up using betas, it was always a mess to get them. Except when I can download the whole beta as a full version. Which I did.

I have:


Which one should I use?

If you ask me, David should create a mechanism inside JA to install the latest beta. No external tools which fail every now and then.

Thanks, Markus
RobM

Posts: 3,999
Registered: 4-Aug-2006
Re: jAlbum 37 beta for testing
Posted: 18 Jan 25, 16:23   in response to: MarkusD in response to: MarkusD
MarkusD wrote:
RobM wrote:
MarkusD wrote:
Hi David,

I'm on 37b1 an Tiger 6.2

I didn’t see a big change until I tried b3 version. Try the beta update.
In the past years I gave up using betas, it was always a mess to get them. Except when I can download the whole beta as a full version. Which I did.
You always get the beta from https://jalbum.net/download/beta/jalbum-core.jar
But you have to install it by hand and there may be texts updates which won’t be included.
That’s why I use my external tool, it updates the core internally and installs any texts files if there are any. I’ll upload my modified version tonight, it looks for all update types but asks if you want to try the next type if the searched for is not found: Normal, beta, undeclared beta
Legend
Forum admins
Helpful Answer
Correct Answer

Point your RSS reader here for a feed of the latest messages in all forums