OptimFROG

From Hydrogenaudio Knowledgebase
Revision as of 01:59, 9 January 2022 by Porcuswiki (talk | contribs) (General rewrite, modelled after the TAK update.)

OptimFROG is a lossless audio codec with optional support for hybrid lossless/lossy encoding. It comes with a freeware (closed-source) command-line encoder/decoder and plugins for several players and processing front-ends, and an SDK to use in other applications. It is available for Windows, Linux, FreeBSD and MacOSX, all in both 32-bit and 64-bit versions. Encoders encoders for its hybrid "DualStream" format, and for floating-point audio, are included in the distributions in separate executables.

OptimFROG is a codec that gives priority to compression size, sacrificing speed. Its highest presets compress to smaller file sizes than any other codec, possibly except the (legacy/unmaintained) La. These presets are CPU intensive both for decoding and encoding, sometimes a 10x increase over the faster presets, where OptimFrog would compress about the speed of Monkey's Audio “Extra High” and achieve compression ratios like Monkey's “High”. (Performance figures in this article are, unless otherwise specified, taken from the 4th revision of Martijn van Beurden's comprehensive lossless comparison for CDDA audio; OptimFrog version tested 4.910b. The current OptimFrog version has introduced new presets aiming at improving the speed/compression trade-off.)



Features

For an end-user considering OptimFROG as a an audio format - likely due to its compression ratios or possibly its hybrid mode - some of the following features are quite common among lossless codecs, while some are more scarce - in particular, the end of this list. To compare OFR with other lossless codecs, see HA Wiki's Lossless Codec Comparison.

  • Streaming support
  • Seekable playback
  • Error handling. Audio checksum for integrity verification optional (use the --md5 option)
  • High-resolution audio support up to 32 bits per channel. Like WavPack but unlike most other formats, it also supports floating-point format (through a different executable included in the distribution). OptimFrog works with higher sampling rates, but the maximum supported sampling rate seems undocumented.
  • Piping support for encoding, and support for RAW PCM input.
  • Tagging: ID3 or APEv2 tags.
  • RIFF chunks supported for recreating also non-audio chunks of the original .wav files.
  • Can read certain malformed .wav files; in particular, some hacks employed to fit more than the 4 GB size limitation into .wav files.
  • Like WavPack, but unlike most other encoders, it can create Windows self-extracting .sfx archives.
  • Hybrid lossy/lossless encoding supported. Like WavPack, but unlike most (every?) other end-user codecs, OptimFROG can decode both lossy and lossless streams together, to be maintained in the same library. A separate encoder is included in the distribution.


Limitations

  • Currently there is no hardware supporting the format and software support is limited. The official encoder/decoder is closed-source (but a an official library can be used in third-party applications). Also the format has no official specification.
  • Encoding and also decoding is CPU intensive, especially in the higher modes. Given that portable low-power devices are out of consideration as they cannot play the files anyway, speed might not be that much of a limitation with the power of modern computers. Still, users who consider playing OptimFrog files from a battery-powered laptop or tablet, might want to test battery life impact, especially since it varies so much over the settings.
  • No multichannel support.

Because OptimFrog - like MP3 - can accommodate both APE tags and ID3, tagging ambiguity could be an issue: one application might not read another's tags. A user would likely want to stick to one tag format. Mp3tag will by default write APE tags to .ofr files.


Software support


Links