OptimFROG: Difference between revisions

From Hydrogenaudio Knowledgebase
(→‎Addtional Reading: speek site deprecated)
(Some fixes for new MediaWiki, updated some info.)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Codec Infobox
{{Codec Infobox
| name = OptimFROG
| name               = OptimFROG
| logo = [[File:Frog.gif]]
| logo               = [[File:Frog.gif]]
| type = lossless
| type               = lossless
| purpose = "reduce at maximum the size of audio files"
| purpose             = "reduce at maximum the size of audio files"
| maintainer = Florin Ghido
| maintainer         = Florin Ghido
| recommended_encoder = OptimFROG 5.100 (2016-09-02)
| released = OptimFROG 5.100 (2016-09-02)
| website = http://losslessaudio.org/
| website             = [http://losslessaudio.org/ losslessaudio.org]
}}
}}
OptimFROG is a free [[lossless]] audio codec, known by its very high compression ratios.
'''OptimFROG''' is a [[lossless]] audio [[codec]] with optional [[Hybrid codec|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/decoders for its hybrid "DualStream" format, and for floating-point audio, are included in the distributions in separate executables.
OptimFROG is developed by Florin Ghido.


OptimFROG usually obtains the best lossless audio compression ratios on comparisons against other lossless encoders (practically a tie with the current champion [[LA]]). It has Windows and Linux versions, fully-featured input plug-ins for the foobar2000, Winamp2, Winamp3, [[dBpowerAMP]], XMPlay and XMMS audio players (with bitstream error resilience, [[ID3v1|ID3v1.1]] and [[APEv2]] read tagging support), optimal support for all integer [[PCM]] [[WAV]] formats up to 32 bits and an extensible streamable (error tolerant) compressed format.  
OptimFROG is a codec that gives priority to compression size, sacrificing speed.  Its default preset performs not far from [[Monkey's Audio]] “Extra High”, possibly at Monkey's “Insane” speed, and the highest compression settings might take 10x heavier CPU load, but generally achieving smaller files than any other end-user codec<ref>[http://audiograaf.nl/downloads.html Martijn van Beurden's lossless performance tests.] Performance comparisons taken from version 6, testing OptimFrog version 5.100; The unmaintained legacy [[Lossless_Audio_(La) | La]] does rival it on some (CDDA only) material.</ref>  Positioning itself at, arguably, one extreme of the size/CPU load trade-off, it has a fairly small userbase &ndash; and unlike most notable codecs, there is apparently no 3rd party decoder available and no sign of ffmpeg reverse-engineering the format (like was done with [[TAK]]).


One of its downsides is that there is no source code available, nor format specifications. Another downside is that it is relatively slow at both encoding and decoding.
== Features ==
For an end-user considering OptimFROG as an audio format &ndash; likely due to its compression ratios, possibly also its hybrid mode &ndash; 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 [[Lossless_comparison| the HA Wiki's Lossless Codec Comparison]].


OptimFROG uses a new audio compression technology, the generalized stereo decorrelation concept, which was first introduced with OptimFROG 4.0b in December 2001. At the time of its introduction, the new technology yielded significant better (~1.5%) compression than existing state of the art lossless audio compressors.
* Seekable and streaming playback.
* Error handling.  Audio checksum optional (use the <code>--md5</code> option upon encoding, <code>--check</code> to verify it), but OFR can also check corruption without decoding (<code>--verify</code>), hence quicker than any decoding format.  Decoder can continue through errors.
* High-resolution audio support: apparently, any sampling rate that the WAVE format supports (4 GiHz), 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). 
* Piping support for encoding, and support for RAW PCM input.
* Tagging. (APEv2, or ID3 &ndash; see below.)
* RIFF chunks supported for recreating also non-audio chunks of the original .wav files; by default, OptimFROG will restore to a .wav file bit-identical to the original.
* Can read certain malformed .wav files; in particular, some hacks employed to fit more than the 4 GB size limitation into .wav files.  (It is unclear what malformed .wav files will be recreated bit-identical.)
* Can create Windows self-extracting archives, a unique feature after WavPack discontinued it in version 5.
* Hybrid lossy/lossless encoding supported.  Like WavPack, but unlike 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.  


== Playback ==
=== Limitations ===
* [[foobar2000]]
* 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, and little is known about it.<ref>[https://wiki.multimedia.cx/index.php/OptimFROG Multimediawiki's OptimFROG entry.] It is known that the format has been through a change; but, the decoder ''does support'' old OptimFROG files.</ref>
* [[XMMS]]
* No multichannel support.
* [[Winamp]]
* CPU intensive (slow) encoding and decoding, 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 over the settings.
* Encoder has no provision of adding tags. 


* [http://www.un4seen.com/ XMPlay] Plugin required (OptimFROG input plugin) and (bass library) to play 'OFR' files
Because OptimFROG &ndash; like MP3 &ndash; 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, MusicBrainz Picard and foobar2000 will write APEv2 tags (at least by default). According to the website, EAC will write ID3v1.1 tags to .ofr files &ndash; and apparently there is no way for it to write APEv2 as the encoder has no switches for it (contrast to [[EAC and WavPack|EAC with WavPack]]).


==Addtional Reading==
===Software support===
* [http://www.losslessaudio.org/ Ghido's Data Compression Page]
Some of the software cited at http://losslessaudio.org/Compatible.php has disappeared.  One may still obtain the [https://web.archive.org/web/20151030085929/http://members.home.nl/w.speek/kermit.htm Kermit front-end from Archive.org]. Most of the following should work:
* <s>[http://members.home.nl/w.speek/comparison.htm compression benchmark of many lossless codecs]</s>
* [[Lossless_comparison|Lossless Codec Comparison]] by Rjamorim


[[Category: Codecs]]
* [[foobar2000]] (through plugin available at the OptimFROG website or [https://github.com/marc2k3/foo_input_ofr/releases a version  updated for fb2k v2x64 by HA user marc2k3])
[[Category: Lossless]]
* [[Winamp]] (through plugin available at the OptimFROG website)
* [[XMPlay]] for Windows, BASS_OFR addon available at player's website.
* [[XMMS]] (?)
* [[dBpoweramp]] music converter
* [[Mp3tag]] for tagging.
* [https://picard.musicbrainz.org/ MusicBrainz Picard] for tagging (no audio fingerprinting).
 
 
== Links ==
* [http://losslessaudio.org/ Official OptimFROG website]
* [[Lossless_comparison| HA Wiki's Lossless Codec Comparison]] originally by [[User:Rjamorim|Rjamorim]]  
=== References ===
<references/>
{{navbox audio codecs}}
[[Category:Codecs]]

Latest revision as of 20:53, 30 May 2024

OptimFROG is a lossless audio codec with optional 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/decoders 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 default preset performs not far from Monkey's Audio “Extra High”, possibly at Monkey's “Insane” speed, and the highest compression settings might take 10x heavier CPU load, but generally achieving smaller files than any other end-user codec[1] Positioning itself at, arguably, one extreme of the size/CPU load trade-off, it has a fairly small userbase – and unlike most notable codecs, there is apparently no 3rd party decoder available and no sign of ffmpeg reverse-engineering the format (like was done with TAK).

Features

For an end-user considering OptimFROG as an audio format – likely due to its compression ratios, possibly also 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 the HA Wiki's Lossless Codec Comparison.

  • Seekable and streaming playback.
  • Error handling. Audio checksum optional (use the --md5 option upon encoding, --check to verify it), but OFR can also check corruption without decoding (--verify), hence quicker than any decoding format. Decoder can continue through errors.
  • High-resolution audio support: apparently, any sampling rate that the WAVE format supports (4 GiHz), 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).
  • Piping support for encoding, and support for RAW PCM input.
  • Tagging. (APEv2, or ID3 – see below.)
  • RIFF chunks supported for recreating also non-audio chunks of the original .wav files; by default, OptimFROG will restore to a .wav file bit-identical to the original.
  • Can read certain malformed .wav files; in particular, some hacks employed to fit more than the 4 GB size limitation into .wav files. (It is unclear what malformed .wav files will be recreated bit-identical.)
  • Can create Windows self-extracting archives, a unique feature after WavPack discontinued it in version 5.
  • Hybrid lossy/lossless encoding supported. Like WavPack, but unlike 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, and little is known about it.[2]
  • No multichannel support.
  • CPU intensive (slow) encoding and decoding, 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 over the settings.
  • Encoder has no provision of adding tags.

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, MusicBrainz Picard and foobar2000 will write APEv2 tags (at least by default). According to the website, EAC will write ID3v1.1 tags to .ofr files – and apparently there is no way for it to write APEv2 as the encoder has no switches for it (contrast to EAC with WavPack).

Software support

Some of the software cited at http://losslessaudio.org/Compatible.php has disappeared. One may still obtain the Kermit front-end from Archive.org. Most of the following should work:


Links

References

  1. Martijn van Beurden's lossless performance tests. Performance comparisons taken from version 6, testing OptimFrog version 5.100; The unmaintained legacy La does rival it on some (CDDA only) material.
  2. Multimediawiki's OptimFROG entry. It is known that the format has been through a change; but, the decoder does support old OptimFROG files.