Lagarith is a lossless video codec intended for editing and archiving. It offers better compression than codecs like Huffyuv, Alparysoft, and CorePNG. There are a few lossless codecs that can compress better than Lagarith, such as MSU and FFV1; however Lagarith tends to be faster than these codecs. Lagarith is able to operate in several colorspaces - RGB24, RGB32, RGBA, YUY2, and YV12. For DVD video, the compression is typically only 10-30% better than Huffyuv. However, for high static scenes or highly compressible scenes, Lagarith significantly outperforms Huffyuv. A comparison for various types of video can be found here. Lagarith is able to outperform Huffyuv due to the fact that it uses a much better compression method. Pixel values are first predicted using median prediction (the same method used when "Predict Median" is selected in Huffyuv). This results in a much more compressible data stream. In Huffyuv, this byte stream would then be compress using Huffman compression. In Lagarith, the byte stream may be subjected to a modified Run Length Encoding if it will result in better compression. The resulting byte stream from that is then compressed using Arithmetic compression, which, unlike Huffman compression, can use fractional bits per symbol. This allows the compressed size to be very close to the entropy of the data, and is why Lagarith can compress simple frames much better than Huffyuv, and avoid expanding high static video. Additionally, Lagarith has support for null frames; if the previous frame is mathematically identical to the current, the current frame is discarded and the decoder will simply use the previous frame again.
- Fixed some bugs introduced in 1.3.21 that broke backwards compatibility with 1.1.x and below
- Codec settings are now stored in the Windows registry rather than in config files, this should reduce issues with settings on Windows Vista and 7
- Added lookup tables to eliminate a conditional in the range encoder, speeding up encoding
- Replaced a division with an approximate reciprocal multiply and reorganized the run detection code in the range decoder to speed up decoding
- Changed the Run Length Encoder to encode with a run trigger of length 3 only, and then encode with a run trigger of 1 only if the result is sufficiently small. This speeds up encoding of typical video
- Added MMX version of the Run Length Encoder to speed up encoding on processors that don't have SSE
- SSE2 routines originally written for x64 are now included for the x86 build, and are used if they perform faster than the MMX versions on the given processor
- Some more tweaks to the SSE2 routines to improve performance
Reviewing 1.3.25 (May 31, 2011)
Fantastic lossless codec for archiving. Glad it's still in development.
No comments yet