OptimFROG

From Hydrogenaudio Knowledgebase
Revision as of 02:03, 9 January 2022 by Porcuswiki (talk | contribs)

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”.[1] (Tested OptimFrog version 4.509. More recent versions have 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