Lagarith 1.3.25 has been released, with several performance improvements. Overall, I see roughly a 20% encoding speed increase, and a 30% decoding speed verses version 1.3.24.
Below is a speed comparison of recent builds, with the time in seconds it took for Virtualdub to do a video analysis pass:
Code:
Compression:
Threads Mode 1.3.20 1.3.22 1.3.24 1.3.25
single RGB 180 146 145 118
multi RGB 146 123 121 104
single RGBA 218 177 177 143
multi RGBA 179 163 148 131
single YUY2 116 97 97 83
multi YUY2 102 87 87 76
single YV12 100 84 84 71
multi YV12 89 76 75 64
Decompression:
Threads Mode 1.3.20 1.3.22 1.3.24 1.3.25
single RGB 203 134 127 96
multi RGB 151 102 88 72
single RGBA 266 177 169 127
multi RGBA 187 133 122 103
single YUY2 115 86 78 61
multi YUY2 93 77 69 55
single YV12 94 85 77 59
multi YV12 71 76 68 49
The test video was a 3000 frame 960x554 video. Encoding was done from a 12500kbps Xvid source; for RGBA it was fed through an Avisynth script which used mask to add an alpha channel based on the image. This biases the encoding results somewhat, since the Xvid decoding and mask times are included in the results. The test machine is an AMD Athlon 64 X2 4200+, using the 32bit build of Lagarith. Newer machines should see slightly better performance since the Athlon doesn't benefit from the added SSE2 routines.
The other significant change in this release is that settings are now stored in the Windows registry, this should make it more Vista and Windows 7 friendly.
At this point, I feel I've plateaued on optimizing Lagarith, and I am considering where to go next:
- Lend my assistance to FFMpeg to add full Lagarith decoding support.
- Start developing Lagarith 2.0, with the aims of supporting higher-bit depth colorspaces such as 48bit RGB, improved multithreading to take advantage of an arbitrary number of processors, and better performance overall.
Please let me know what you think of these options, as well as any other comments or suggestions about Lagarith.