Lossless comparison: Difference between revisions

From Hydrogenaudio Knowledgebase
(Table: Error handling, Tagging ambiguity, OS support (Monkey's ++). Each codec: several fixes. Overhaul still overdue?)
 
(255 intermediate revisions by 90 users not shown)
Line 1: Line 1:
Given the enormous amount of lossless audio compressor choices available, it is a very difficult task to choose the one most suited for each person's needs.
The '''lossless comparison page''' aims to gather information about lossless codecs available so users can make an informed decision as to what lossless codec to choose for their needs.


Several people only take into consideration compression performance when choosing a codec. But as the following table and post shows, there are several other features worth taking into consideration when making that choice.
== Introduction ==
Given the enormous number of [[lossless]] audio compressor choices available, it is a very difficult task to choose the one most suited for each person's needs. Some people take into consideration only compression performance when choosing a codec, but as the following table and article shows, there are several other features worth taking into consideration when making a choice.


For example, users wanting good multiplatform compatibility and robustness (E.G, people sharing live recordings) would favour [[WavPack]] or [[FLAC]]. Another user, looking for the very highest compression available, would go with [[OptimFROG]]. Someone wanting portable support would use [[FLAC]] or [[ALAC]], and so on.
For example, users wanting good multiplatform compatibility and robustness (e.g., people sharing live recordings) would favour [[WavPack]] or [[FLAC]]. Another user, looking for the very highest compression available, would go with [[OptimFROG]]. Someone wanting portable support would use [[FLAC]] or [[ALAC]], and so on. En fin, this is not a matter worth getting too worked up about. If you later find out the codec you chose isn't the best for your needs, you can just transcompress to another format, without risk of losing quality.


En fin, this is not a matter worth getting too worked up about. If you later find out the codec you chose isn't the best for your needs, you can just transcompress to another format, without risk of losing quality.
'''Note:''' for latest comparison of lossless compression, scroll down to the [[Lossless comparison#External links|Links section of this page]].


== Comparison Table ==
<!-- Do NOT add links to the table. It's cluttered and colourful enough as it is. Please add them to the article itself if needed. Thanks -->


http://wiki.hydrogenaudio.org/images/b/bf/Lossless.png
{| class="wikitable" cellspacing="2"
!width="120px"|'''Features'''
! width="90px" | [[#Free Lossless Audio Codec (FLAC)|FLAC]]
! width="90px" | [[#Apple Lossless Audio Codec (ALAC)|ALAC]]
! width="90px" | [[#WavPack (WV)|WavPack]]
! width="90px" | [[#Tom's_verlustfreier_Audiokompressor (TAK)|TAK]]
! width="90px" | [[#Monkey's_Audio (APE)|Monkey's]]
! width="90px" | [[#Windows Media Audio Lossless (WMAL)|WMAL]]
! width="90px" | [[#OptimFROG (OFR)|OptimFROG]]
! width="90px" | [[#True Audio (TTA)|TTA]]
|- <!-- *** Encoding speed is very fast if < 2%, fast if < 5%, average if < 10%, slow if < 20%, very slow if < 50% *** -->
  <!-- *** Numbers are taken from most recent CDDA comparison under 'External links' *** -->
| Encoding speed{{ref label|speed|A|A}}
| style="background: #00FF00" | very fast
| style="background: #CCFFCC" | fast
| style="background: #00FF00" | very fast
| style="background: #00FF00" | very fast
| style="background: #00FF00" | very fast
| style="background: #00FF00" | very fast
| style="background: #FFCC66" | moderate
| style="background: #00FF00" | very fast
|- <!-- *** For decoding speed thresholds are one step down, i.e., very fast if < 1%, fast if < 2%, average if < 5% etc *** -->
| Decoding speed{{ref label|speed|A|A}}
| style="background: #00FF00" | very fast
| style="background: #CCFFCC" | fast
| style="background: #00FF00" | very fast
| style="background: #00FF00" | very fast
| style="background: #FFCC66" | moderate
| style="background: #CCFFCC" | fast
| style="background: #FFCC66" | moderate
| style="background: #CCFFCC" | fast
|- <!-- *** Thresholds for compression are at 51% and 53% *** -->
| Compression{{ref label|speed|A|A}}{{ref label|comp|B|B}}
| style="background: #CCFFCC" | 52.0%
| style="background: #FFCC66" | 53.2%
| style="background: #CCFFCC" | 52.6%
| style="background: #00FF00" | 50.5%
| style="background: #00FF00" | 50.7%
| style="background: #FFCC66" | 53.8%
| style="background: #00FF00" | 49.6%
| style="background: #CCFFCC" | 52.1%
|-
| # presets
| style="background: #CCFFCC" | 9
| style="background: #CCFFCC" | 2
| style="background: #CCFFCC" | > 10
| style="background: #CCFFCC" | > 10
| style="background: #CCFFCC" | 5
| style="background: #CCFFCC" | 1
| style="background: #CCFFCC" | > 10
| style="background: #CCFFCC" | 1
|-
| Error handling{{ref label|error|C|C}}
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #CCFFCC" | yes{{ref label|error_ape|D|D}}
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
|-
| Tagging{{ref label|taggingambiguity|E|E}}
| style="background: #00FF00" | Vorbis tags
| style="background: #00FF00" | iTunes
| style="background: #00FF00" | APEv2
| style="background: #00FF00" | APEv2
| style="background: #00FF00" | APEv2
| style="background: #00FF00" | ASF
| style="background: #FFCC66" | APEv2 or ID3
| style="background: #FFCC66" | APEv2 or ID3
|-
| Hardware support
| style="background: #00FF00" | very good
| style="background: #CCFFCC" | good
| style="background: #FFCC66" | limited
| style="background: #FF9900" | no
| style="background: #FFCC66" | limited
| style="background: #FFCC66" | limited
| style="background: #FF9900" | no
| style="background: #FFCC66" | limited
|-
| Software support
| style="background: #00FF00" | very good
| style="background: #CCFFCC" | good
| style="background: #CCFFCC" | good
| style="background: #FFCC66" | average
| style="background: #CCFFCC" | good
| style="background: #CCFFCC" | good
| style="background: #FFCC66" | average
| style="background: #CCFFCC" | good
|-
| Hybrid/lossy
| style="background: #CCFFCC" | [[LossyWAV]]
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
| style="background: #CCFFCC" | [[LossyWAV]]
| style="background: #FF9900" | no
| style="background: #CCFFCC" | [[LossyWAV]]
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
|-
| RIFF chunks
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
|-
| Streaming
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
|-
| Open source
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #FFCC66" | no{{ref label|ffmpeg_dec|F|F}}
| style="background: #00FF00" | yes
| style="background: #FFCC66" | no{{ref label|ffmpeg_dec|F|F}}
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
|-
| Multichannel
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes{{ref label|multichannel_ape|G|G}}
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
|-
| OS support{{ref label|OS_encode|H|H}}
| style="background: #00FF00" | All
| style="background: #00FF00" | All
| style="background: #00FF00" | All
| style="background: #CCFFCC" | Win/Wine
| style="background: #CCFFCC" | Win {{ref label|OS_ape|I|I}}
| style="background: #CCFFCC" | Win/Mac
| style="background: #CCFFCC" | Any desktop
| style="background: #00FF00" | All
|-
| Fits in container
| style="background: #00FF00" | Ogg, MKV, MP4, CAF
| style="background: #00FF00" | MKV, MP4, CAF
| style="background: #00FF00" | MKV
| style="background: #CCFFCC" | -
| style="background: #CCFFCC" | -
| style="background: #CCFFCC" | -
| style="background: #CCFFCC" | -
| style="background: #00FF00" | MKV
|}


<nowiki>*</nowiki> Encoding speed, Decoding speed and Compression ratio are based on each encoder's default settings.
{|
|-
|{{note label|speed|A|A}} Speed and Compression are based on '''each encoder's default settings''' and taken from the last CDDA results of [http://www.audiograaf.nl/downloads.html this comparison].
|-
|{{note label|comp|B|B}} Lower is better: Compression ratio is compressed size/uncompressed size * 100%.
|-
|{{note label|error|C|C}} Error handling means that a codec can detect a corruption (flipped bit) in a file, warn the user about it, protect output against full-volume static, but it will still decode the rest of the file.
|-
|{{note label|error_ape|D|D}} The official Monkey's Audio decoder does not support decoding through errors, but this may be achieved with FFmpeg (or Winamp).
|-
|{{note label|taggingambiguity|E|E}} Tagging ambiguity is generally not desired, as one application might ignore tags written by another, or even reject files.  Most APEv2-compatible formats can be tagged with ID3, although not recommended unless for use with a hardware player that cannot read other tag sets, and some applications like [[Exact Audio Copy]] can attach an ID3 chunk to any format &ndash; including FLAC, which does not support it. All formats but OptimFROG and TTA state either a unique choice of tag set or a clear preferred choice.
|-
|{{note label|ffmpeg_dec|F|F}} Unofficial (but properly working) open source decoder is available as part of ffmpeg
|-
|{{note label|multichannel_ape|G|G}} Since version 4.86
|-
|{{note label|OS_encode|H|H}} What platform the codec supports or can be played on. Also, most operating systems may offer native support for FLAC and ALAC (Android only FLAC).
|-
|{{note label|OS_ape|I|I}} Currently, Monkey's Audio is available for Windows. Monkey's Audio version 3.99 (stereo, up to 24 bits) is available on all desktop platforms and can be played back on mobile platforms.


<nowiki>**</nowiki> Flexibility refers to the amount of encoding choices offered to the users (Fast/low compression, Slow/high compression and everything inbetween)
== Codecs ==


The most popular lossless codecs, in alphabetical order:


=== Apple Lossless Audio Codec (ALAC) ===
https://alac.macosforge.org/trac


These are the most popular lossless codecs, in alphabetical order:
[[ALAC]] is a codec developed by Apple and used across their hardware and software platforms.


==ALAC - Apple Lossless Audio Codec== http://www.apple.com/itunes/import.html
'''ALAC pros'''
 
* [[Open source]] (encoding and decoding via macosforge/refalac, FFmpeg and [[CueTools|CUETools]])
[[ALAC]] is a codec developed by Apple for usage in [[Apple iPod|iPod]] and AirPort Express.
* Fast encoding
 
* Fast decoding
===ALAC PROS===
* Hardware support ([[Apple iPod|iPod]], AirPort Express)
* Very fast decoding
* Software support (iTunes, Quicktime)
* [[Open source]] ([http://craz.net/programs/itunes/alac.html decoding only])
* Independent encoder implementation available: ffmpeg, CUETools
* Hardware support (iPod, AirPort Express)
* Streaming support
* Streaming support
* Tagging support (QT tags)
* Tagging support (QT tags)
* Excellent hardware-software-lossy format integration with iTunes/iPod.
* Supports [[multichannel]]. Limited to 8 channels. Only limited set of channels layouts is supported - https://github.com/nu774/qaac/wiki/Multichannel--handling
* Supports [[high resolution]]s
* Used by a few online stores


===ALAC CONS===
''' ALAC cons '''
* Closed source (encoding)
* No error detection/robustness<ref>[http://www.hydrogenaud.io/forums/index.php?s=&showtopic=33226&view=findpost&p=862031 HA forum post discussing ALAC robustness]</ref>
* Few software support (iTunes)
* Doesn't support [[RIFF]] chunks
* Doesn't support multichannel audio and high resolutions
* No hybrid/lossy mode (and not [[LossyWAV]] compatible)
* Compression efficiency not on par with other lossless codecs
* No hybrid/lossy mode


===ALAC Other features===
''' ALAC Other features '''
* Fits in the [[MP4]] container
* Fits in the [[MP4]], [[Matroska]] and CAF containers
* Can be used with the AirPort Express gadget


==FLAC - Free Lossless Audio Codec== http://flac.sourceforge.net/
=== Free Lossless Audio Codec (FLAC) ===
https://xiph.org/flac/


[[FLAC]] is a lossless codec developed by Josh Coalson. It's part of the Xiph multimedia portfolio, along with [[Ogg Vorbis]] and [[Theora]].
[[FLAC]] is a lossless codec developed by Josh Coalson. It's part of the Xiph multimedia portfolio, along with [[Opus]], [[Ogg]], [[Vorbis]], [[Speex]] and [[Theora]].


===FLAC PROS===
''' FLAC pros '''
* [[Open source]]
* [[Open source]]
* Very fast decoding
* Very fast decoding
* Hardware support ([[Rio Karma|Karma]], Phatbox, etc.)
* Very fast encoding
* Very good hardware support (Android, Marantz, Sonos, [http://xiph.org/flac/links.html many others])
* Very good software support
* Very good software support
* Independent encoder implementations available: flake/ffmpeg, FLACCL (providing GPU-based operation, potentially extremely fast)
* Error robustness
* Error robustness
* Streaming support
* Streaming support
* Supports multichannel audio and high resolutions
* Supports [[multichannel]]. Limited to 8 channels. Channel mask in [https://learn.microsoft.com/en-us/windows/win32/api/mmreg/ns-mmreg-waveformatextensible WAVEFORMATEXTENSIBLE] is supported.
* Supports [[high resolution]]s
* Tagging support (FLAC tags)
* Tagging support (FLAC tags)
* Supports [[RIFF]] chunks
* Pipe support
* Pipe support
* Used by a few [http://xiph.org/flac/links.html#music online stores]


===FLAC CONS===
''' FLAC cons '''
* Relatively slow encoding
* No hybrid/lossy mode (but is [[LossyWAV]] compatible)
* No hybrid/lossy mode
* Does not handle 32-bit float
* Doesn't support [[RIFF]] chunks


===FLAC Other features===
''' FLAC Other features '''
* Supports embedded CUE sheets (with [http://flac.sourceforge.net/faq.html#general__no_cuesheet_tags limitations])
* Supports embedded CUE sheets (with [http://flac.sourceforge.net/faq.html#general__no_cuesheet_tags limitations])
* Includes MD5 hashes for quick integrity checking
* Includes MD5 hashes for quick integrity checking as standard
* Fits the [[Ogg]] and [[Matroska]] containers
* Fits the [[Ogg]], [[Matroska]], [[MP4]] and CAF containers
* ReplayGain compatible


==LosslessAudio - LA== http://www.lossless-audio.com/
=== Monkey's Audio (APE) ===
https://www.monkeysaudio.com/


[[LA]] is a lossless codec developed by Michael Bevin.
[[Monkey's Audio]] is a very efficient lossless compressor developed by Matt Ashland.


===LA PROS===
''' APE pros '''
* Very high compression
* Open source (from version 10.18, Windows)
* Tagging support ([[ID3v1]])
* High compression
* Fast encoding at default setting
* Good software support
* Supports [[multichannel]] (Windows, since version 4.86, channel count later increased.) Channel mask in [https://docs.microsoft.com/ru-ru/windows/win32/api/mmreg/ns-mmreg-waveformatextensible WAVEFORMATEXTENSIBLE] is supported
* Supports [[high resolution]]s
* Simple and user friendly. Official GUI provided.
* Multiplatform [https://jmac.sourceforge.net/ Java implementation] available (3.99 version)
* Tagging support ([[APEv2]], optionally [[ID3v1]])
* Supports [[RIFF]] chunks
* Supports [[RIFF]] chunks
* Pipe support
* Pipe support (Windows version, other OSes only in a [http://shnutils.freeshell.org/shntool/ special] 3.99-based version)
 
===LA CONS===
* Closed source
* Very slow encoding and decoding
* No hardware support
* No hybrid/lossy mode
* Bad software support
 
'''''It's important to mention that the LA foobar plugin is buggy and doesn't produce lossless streams!'''''
 
==LPAC== http://www.nue.tu-berlin.de/wer/liebchen/lpac.html
 
Lossless Predictive Audio Coder ([[LPAC]]) is a lossless codec developed by Tilman Liebchen. Development of it has been halted in favour of development of MPEG4 ALS.
 
===LPAC PROS===
* Reasonable compression ratios
* High resolution audio support
* Supports [[RIFF]] chunks
 
===LPAC CONS===
* Closed source
* No error robustness
* Slow seeking
* No tagging
* No multichannel support
* No hybrid/lossy mode
* No hardware support
 
==Monkey's Audio== http://www.monkeysaudio.com/
 
[[Monkey's Audio]] is a very efficient lossless compressor developed my Matt Ashland.
 
===APE PROS===
* [[Open source]]
* High efficiency
* Good software support
* Error robustness
* Java version (multiplatform)
* Tagging support ([[ID3v1]], [[APE tags]])
* High resolution audio support
* Supports [[RIFF]] chunks (only in the GUI encoder)
* Pipe support (only in a [http://www.etree.org/shnutils/shntool/ special] version)
 
===APE CONS===
* No multichannel support
* No hybrid/lossy mode
* No hardware support


===APE Other features===
''' APE cons '''
* Supports embedded APL sheets (similar to CUE sheets)
* Slow decoding. Higher compression levels are particularly CPU intensive.
* Limited hardware support (Rockbox, some Cowon players); potentially poor battery life due to CPU-intensive decoding (see [http://www.rockbox.org/wiki/SoundCodecMonkeysAudio MP3 player benchmarks])
* No hybrid/lossy mode (and not [[LossyWAV]] compatible)
* Older versions (for non-Windows platforms) released under a problematic license


''' APE Other features '''
* Includes MD5 hashes for quick integrity checking (without decoding)
* Supports APL image link files (similar to CUE sheets)


==OptimFROG== http://losslessaudiocompression.com/
=== OptimFROG (OFR) ===
http://www.losslessaudio.org/


[[OptimFROG]] is a lossless format developed by Florin Ghido to become the champion in audio compression.
[[OptimFROG]] is a lossless format developed by Florin Ghido to become the champion in audio compression.


===OFR PROS===
''' OFR pros '''
* Very high compression
* Very high compression
* Good software support
* Good software support
* Error robustness
* Error robustness
* Streaming support
* Streaming support
* Supports high resolutions
* Supports [[high resolution]]s
* Hybrid/lossy mode
* Hybrid/lossy mode
* Tagging support ([[ID3]], [[APE tags]])
* Tagging support ([[APEv2]], [[ID3]])
* Supports [[RIFF]] chunks
* Supports [[RIFF]] chunks


===OFR CONS===
''' OFR cons '''
* Closed source
* Closed source
* No multichannel audio support
* No [[multichannel]] audio support
* No hardware support
* No hardware support
* Quite slow decoding
* Very slow decoding
* Slow encoding
* More than one tagging method allowed (ambiguity possible)


===OFR Other features===
''' OFR Other features '''
* Supports 32bit float streams
* Supports 32bit float streams
* Includes MD5 hashes for quick integrity checking
* Fast verification (without decoding) or full decoding verification
* ReplayGain compatible
* Optional MD5 hash


=== Tom's verlustfreier Audiokompressor (TAK) ===
http://www.thbeck.de/Tak/Tak.html


==RealAudio Lossless== http://www.realnetworks.com/products/codecs/realaudio.html
[[TAK]] is a lossless codec developed by Thomas Becker.


RealAudio lossless is the lossless codec developed by Real Networks for their multimedia portfolio
''' TAK pros '''
 
===RAL PROS===
* Very fast decoding
* Very fast decoding
* Streaming support
* Very fast encoding
* Very high efficiency
* Error robust
* Supports [[multichannel]]. Limited to 6 channels. Channel mask in [https://docs.microsoft.com/ru-ru/windows/win32/api/mmreg/ns-mmreg-waveformatextensible WAVEFORMATEXTENSIBLE] is supported
* Supports [[high resolution]]s. Limited to 192 kHz sampling rate.
* Tagging support ([[APEv2]])
* Supports RIFF chunks
* Pipe support
* Streamable


===RAL CONS===
''' TAK cons '''
* Closed source
* Closed source (but unofficial open source decoder is available as part of ffmpeg)
* No multichannel and high resolution audio support
* No hybrid/lossy mode (but is [[LossyWAV]] compatible)
* Few software support (Real Player)
* No hardware support
* No hardware support
* Compression efficiency not on par with other lossless codecs
* Average software support
* No hybrid/lossy mode
* Unicode only in GUI
* No pipe support


''' TAK Other features '''
* Optional MD5 checksum


==Shorten== http://www.etree.org/shnutils/shorten/
=== True Audio (TTA) ===
http://tta.tausoft.org/


[[Shorten]] is a very old and featureless lossless codec developed by Tony Robinson at SoftSound.
[[TTA]] is a lossless codec developed by a international team of programmers.


===SHN PROS===
''' TTA pros '''
* [[Open source]]
* [[Open source]]
* Fast decoding
* Supports [[multichannel]]. Reference encoder/decoder is limited to 6 channels. ffmpeg's encoder/decoder is limited to 16 channels. Channel mask in [https://docs.microsoft.com/ru-ru/windows/win32/api/mmreg/ns-mmreg-waveformatextensible WAVEFORMATEXTENSIBLE] is '''not''' supported (but implemented in 3rd-party foobar2000 component).
* Very good software support
* Supports [[high resolution]]s
* Supports [[RIFF]] chunks
* Tagging support ([[ID3]]v1, ID3v2 or [[APEv2]])
* Embedded CUE sheets support
* Pipe support
* Pipe support
* Fast encoding/decoding


===SHN CONS===
''' TTA cons '''
* Quite inefficient
* No error detection nor error handling (neither in reference implementation nor ffmpeg)
* No multichannel or high resolution audio support
* Tagging ambiguity: tagging applications differ on what tag format to choose, and might not read each others' tags
* No hybrid/lossy mode
* Reference implementation is picky on input files and rejects a range of TTA files as well.  
* No error robustness
* Not streamable
* No hardware support
* No native tagging
 
 
==True Audio (TTA)== http://tta.corecodec.org/
 
[[TTA]] is a new lossless codec developed by a team of russian programmers.
 
===TTA PROS===
* [[Open source]]
* Good efficiency
* Hardware support (obscure DVD player)
* Supports multichannel audio and high resolutions
* Tagging support ([[ID3v2]])
 
===TTA CONS===
* No streaming support
* No hybrid/lossy mode
* No hybrid/lossy mode
* Doesn't support [[RIFF]] chunks
* Doesn't support [[RIFF]] chunks
* No pipe support
* Limited hardware support


===TTA Other features===
''' TTA Other features '''
* Fits the [[Matroska]] container
* Fits the [[Matroska]] container
* [[ReplayGain]] compatible
* Optional password protection


==WavPack== http://www.wavpack.com/
=== WavPack (WV) ===
http://www.wavpack.com/


[[WavPack]] is a fast and featureful lossless codec developed by David Bryant.
[[WavPack]] is a fast and featureful lossless codec developed by David Bryant.


===WV PROS===
''' WV pros '''
* [[Open source]]
* [[Open source]]
* Very fast decoding
* Fast decoding
* Very fast encoding
* Good efficiency
* Good efficiency
* Error robustness
* Error robustness
* Streaming support
* Streaming support
* Supports multichannel audio and high resolutions
* Supports [[multichannel]]. Limited to 255 channels. Channel mask in [https://docs.microsoft.com/ru-ru/windows/win32/api/mmreg/ns-mmreg-waveformatextensible WAVEFORMATEXTENSIBLE] is supported
* Supports [[high resolution]]s
* Hybrid/lossy mode
* Hybrid/lossy mode
* Tagging support ([[ID3v1]], [[APE tags]])
* Tagging support ([[APEv2]]; ID3 is possible but not recommended)
* Supports [[RIFF]] chunks
* Supports [[RIFF]] chunks
* Ability to create self extracting files for Win32 platform
* Pipe support
* Pipe support
* Good software support
* Good software support
* Works with Android (Through third party software, such as VLC.)
* Independent encoder implementation available. (FFmpeg WavPack)


===WV CONS===
''' WV cons '''
* No hardware support
* Limited hardware player support ([http://www.rockbox.org/ RockBox])


===WV Other features===
''' WV Other features '''
* Can compress the Direct-Stream Digital (DSD) audio recording format
* Supports 32bit float streams
* Supports embedded CUE sheets
* Supports embedded CUE sheets
* Accept audio files bigger than 4GB
* Includes MD5 hashes for quick integrity checking
* Includes MD5 hashes for quick integrity checking
* Can encode in both symmetrical and assymmetrical modes.
* Fits the [[Matroska]] container
* [[ReplayGain]] compatible
 


==Windows Media Audio Lossless== http://www.microsoft.com/windows/windowsmedia/9series/codecs/audio.aspx
=== Windows Media Audio Lossless (WMAL) ===
https://msdn.microsoft.com/en-us/library/ff819508(v=vs.85).aspx


WMA Lossless is the lossless codec developed by Microsoft to be featured in their Windows Media codec portfolio.
[[Windows_Media_Audio#Windows_Media_Audio_Lossless|WMA Lossless]] is the lossless codec developed by Microsoft to be featured in their Windows Media codec portfolio.


===WMAL PROS===
''' WMAL pros '''
* Streaming support
* Streaming support
* Very good software support
* Supports [[multichannel]] audio and [[high resolution]]s.
* Supports multichannel audio and high resolutions.
* Tagging support (proprietary)
* Tagging support (proprietary)
* Pipe support
* Pipe support


===WMAL CONS===
''' WMAL cons '''
* Abandonware? To the extent that certain Windows preview versions have been unable to decode losslessly.
* Limited hardware support (Microsoft Zune, Toshiba Gigabeat S and V. Both discontinued and obsolete. Rockbox, for 16-bit stereo files only.)
* Limited software support outside of the Microsoft Windows operating system.
* Low efficiency
* Closed source
* Closed source
* No hybrid/lossy mode
* No hybrid/lossy mode (but is [[LossyWAV]] compatible)
* No hardware support (but it's likely to appear sooner or later)
* Doesn't support [[RIFF]] chunks
* Doesn't support [[RIFF]] chunks


===WMAL Other features===
''' WMAL Other features '''
* Fits the [[ASF]] container
* Fits the [[ASF]] container


=== Other Formats ===
Aside from the formats mentioned above, there are in fact quite a lot of other lossless formats. To keep the table and list brief and readable, a few formats have not been mentioned.
====DTS-HD Master Audio====
Similar to the MPEG-4 SLS format, this format has a core track in an older, more widely supported format, DTS. This core lossy track is made lossless by a secondary track with correction data. It is an optional codec in Blu-ray implementations. Its main use is surround sound encoding, and as is the case with MLP, the price of the encoder ensures it is only used in mastering of Blu-ray discs.
====LA====
http://www.lossless-audio.com/
LA features an extremely high compression (on par with OptimFrog highest modes), but never made it out of beta stage and hasn't been updated for more than 20 years. Furthermore, backward compatibility is not guaranteed, so using it for archiving might pose a few problems. It isn't able to cope with file corruption either, software support is very limited and isn't open source.
====MLP/Dolby TrueHD====
The [[MLP|MLP codec]] (of which the mathematical basis was used in Dolby TrueHD) is the codec used for DVD-Audio. It was mandatory in any HD-DVD implementation and optional for Blu-Ray in its Dolby TrueHD form. It is known to support the 'wasted bits' scheme used in LossyWAV. As encoders are very expensive, its use outside DVD/Blu-ray mastering environments is non-existent. Its main use is encoding surround sound data.
====MPEG-4 ALS====
MPEG-4 ALS is the successor to LPAC, which it was based on. It has been as a ISO standard and there is a reference encoder/decoder, which also supports floating-point signals. It never gained much popularity. FFmpeg can decode some ALS files.
====MPEG-4 SLS====
MPEG-4 SLS is a special codec, having a AAC core track and a 'correction track'. Also known as HD-AAC, SLS stands for Scalable to Lossless. However, there is to date still no affordable software to play, encode or decode (the lossless part of) SLS files.


==Links==
====Shorten====
http://www.etree.org/shncom.html


Some links to lossless format compression comparisions:
Shorten was one of the first widely-used lossless formats, and it still occasionally found on the internet, especially in archives, for example etree.org. It is quite fast in both encoding and decoding, but doesn't compress very much. Furthermore, seeking has a troubled past as well as tagging. It is considered obsolete.


[http://web.inter.nl.net/users/hvdh/lossless/lossless.htm Hans Heijden's]  (used as reference to build the table)
====Real Lossless====
Just like WMA Lossless and Apple Lossless, it was created to fit in a codec suite, but unlike WMA Lossless and Apple Lossless, there is no hardware support and software support is limited. Compression is on par with most other codecs, but it is rather slow to encode. It is considered obsolete, and Real contributed to the creation of MPEG-4 ALS.


[http://members.home.nl/w.speek/comparison.htm Speek's]
====Oddball formats====
There are a few archaic formats of which encoders and decoders are hard to come by. Most of those would have disappeared by now, but some of them are being preserved for posterity at [[User:Rjamorim|rjamorim]]'s [https://www.rarewares.org/rrw/ ReallyRareWares].  


[http://foobar2000.net/lossless/ Guruboolez's] - comparing only classical music.
* Advanced Digital Audio (ADA) 
* [http://www.logarithmic.net/pfh/bonk Bonk]   
* AudioZip 
* Dakx WAV 
* Entis Lab MIO 
* LiteWave 
* [http://www.nue.tu-berlin.de/menue/mitarbeiter/ehemalige_mitarbeiter/tilman_liebchen/lpac_-_lossless_audio_codec_for_windows_and_linux/ LPAC]
* Marian's a-Pac
* [http://mp3hd-toolkit.soft32.com/ mp3HD (MPEG-1 Audio Layer III HD)]
* Pegasus SPS
* [http://www.free-codecs.com/download/rk_audio_compressor.htm RK Audio (RKAU)] 
* Ogg Squish/Tarkin
* Sonarc 
* VocPack 
* [http://www.firstpr.com.au/audiocomp/lossless/wavarc/ WavArc] 
* [http://www.firstpr.com.au/audiocomp/lossless/WaveZip/ WaveZip]/MUSICompress


== See also ==
* [[Lossless]]


== External links ==
''' Other lossless compressions comparisons '''
''Sorted based on last '''update''' date.''


Go to the [http://www.hydrogenaudio.org/forums/index.php?showtopic=33226 Hydrogenaudio thread] to discuss this article.
* [http://www.audiograaf.nl/downloads.html Martijn van Beurden's comparison] - tries to compare all codecs and settings with a balanced pool of music, with separate sections on hi-res and multichannel material (last version 2023-08-29)
* [http://www.squeezechart.com/audio.html Squeezechart audio] - tests as much codecs as possible, but not all their settings and with a limited test corpus (last updated 2013-10-31)
* <s>[http://synthetic-soul.co.uk/comparison/lossless/index.asp Synthetic Soul's comparison] (last update 2007-07-28)</s>
* <s>Johan De Bock's speed oriented comparison</s> - best choices speedwise are indicated in green, mostly electronic music (last updated 2006-07-22)
* <s>Hans Heijden's</s> -- used as reference to build the table (last updated 2006-07-07)
* <s>Josef Pohm's comparison, hosted by Synthetic Soul</s> (last update 2006-05-29)
* [http://www.bobulous.org.uk/misc/lossless_audio_2006.html Bobulous' lossless audio comparison] — a look at six lossless formats in terms of speed and file size (last updated 2006-05-22)
* <s>Jhan De Bock's size oriented comparison</s> - aimed only at the maximum compression setting for each codec (based on a somewhat limited set of samples, however) (last updated 2006-05-19)
* <s>Gruboolez'</s> -- comparing only classical music (last updated 2005-02-27)
* <s>Speek's</s> (last updated 2005-02-07)
*[http://www.firstpr.com.au/audiocomp/lossless/ Lossless Compression of Audio] Much information about oddball formats including comparison of them. (last updated 2005-10-21) 


''' More on lossless compressions '''
* [http://web.archive.org/web/20080731103800/http://www.losslessaudioblog.com/ The Lossless Audio Blog], retrieved from archive.org - by windmiller, is a reliable and complete source of news about lossless compression.
* Go to the [http://www.hydrogenaudio.org/forums/index.php?showtopic=33226 Hydrogenaudio thread] to discuss this article.


== References ==


* You can obtain the comparision table spreadsheet here:
<references/>
http://www.rarewares.org/rja/lossless.zip  (3.2kb)
[[Category:Guides]]

Latest revision as of 08:20, 20 May 2024

The lossless comparison page aims to gather information about lossless codecs available so users can make an informed decision as to what lossless codec to choose for their needs.

Introduction

Given the enormous number of lossless audio compressor choices available, it is a very difficult task to choose the one most suited for each person's needs. Some people take into consideration only compression performance when choosing a codec, but as the following table and article shows, there are several other features worth taking into consideration when making a choice.

For example, users wanting good multiplatform compatibility and robustness (e.g., people sharing live recordings) would favour WavPack or FLAC. Another user, looking for the very highest compression available, would go with OptimFROG. Someone wanting portable support would use FLAC or ALAC, and so on. En fin, this is not a matter worth getting too worked up about. If you later find out the codec you chose isn't the best for your needs, you can just transcompress to another format, without risk of losing quality.

Note: for latest comparison of lossless compression, scroll down to the Links section of this page.

Comparison Table

Features FLAC ALAC WavPack TAK Monkey's WMAL OptimFROG TTA
Encoding speed[A] very fast fast very fast very fast very fast very fast moderate very fast
Decoding speed[A] very fast fast very fast very fast moderate fast moderate fast
Compression[A][B] 52.0% 53.2% 52.6% 50.5% 50.7% 53.8% 49.6% 52.1%
# presets 9 2 > 10 > 10 5 1 > 10 1
Error handling[C] yes no yes yes yes[D] yes yes no
Tagging[E] Vorbis tags iTunes APEv2 APEv2 APEv2 ASF APEv2 or ID3 APEv2 or ID3
Hardware support very good good limited no limited limited no limited
Software support very good good good average good good average good
Hybrid/lossy LossyWAV no yes LossyWAV no LossyWAV yes no
RIFF chunks yes no yes yes yes no yes no
Streaming yes yes yes yes no yes yes yes
Open source yes yes yes no[F] yes no[F] no yes
Multichannel yes yes yes yes yes[G] yes no yes
OS support[H] All All All Win/Wine Win [I] Win/Mac Any desktop All
Fits in container Ogg, MKV, MP4, CAF MKV, MP4, CAF MKV - - - - MKV
A Speed and Compression are based on each encoder's default settings and taken from the last CDDA results of this comparison.
B Lower is better: Compression ratio is compressed size/uncompressed size * 100%.
C Error handling means that a codec can detect a corruption (flipped bit) in a file, warn the user about it, protect output against full-volume static, but it will still decode the rest of the file.
D The official Monkey's Audio decoder does not support decoding through errors, but this may be achieved with FFmpeg (or Winamp).
E Tagging ambiguity is generally not desired, as one application might ignore tags written by another, or even reject files. Most APEv2-compatible formats can be tagged with ID3, although not recommended unless for use with a hardware player that cannot read other tag sets, and some applications like Exact Audio Copy can attach an ID3 chunk to any format – including FLAC, which does not support it. All formats but OptimFROG and TTA state either a unique choice of tag set or a clear preferred choice.
F Unofficial (but properly working) open source decoder is available as part of ffmpeg
G Since version 4.86
H What platform the codec supports or can be played on. Also, most operating systems may offer native support for FLAC and ALAC (Android only FLAC).
I Currently, Monkey's Audio is available for Windows. Monkey's Audio version 3.99 (stereo, up to 24 bits) is available on all desktop platforms and can be played back on mobile platforms.

Codecs

The most popular lossless codecs, in alphabetical order:

Apple Lossless Audio Codec (ALAC)

https://alac.macosforge.org/trac

ALAC is a codec developed by Apple and used across their hardware and software platforms.

ALAC pros

ALAC cons

  • No error detection/robustness[1]
  • Doesn't support RIFF chunks
  • No hybrid/lossy mode (and not LossyWAV compatible)

ALAC Other features

Free Lossless Audio Codec (FLAC)

https://xiph.org/flac/

FLAC is a lossless codec developed by Josh Coalson. It's part of the Xiph multimedia portfolio, along with Opus, Ogg, Vorbis, Speex and Theora.

FLAC pros

  • Open source
  • Very fast decoding
  • Very fast encoding
  • Very good hardware support (Android, Marantz, Sonos, many others)
  • Very good software support
  • Independent encoder implementations available: flake/ffmpeg, FLACCL (providing GPU-based operation, potentially extremely fast)
  • Error robustness
  • Streaming support
  • Supports multichannel. Limited to 8 channels. Channel mask in WAVEFORMATEXTENSIBLE is supported.
  • Supports high resolutions
  • Tagging support (FLAC tags)
  • Supports RIFF chunks
  • Pipe support
  • Used by a few online stores

FLAC cons

  • No hybrid/lossy mode (but is LossyWAV compatible)
  • Does not handle 32-bit float

FLAC Other features

  • Supports embedded CUE sheets (with limitations)
  • Includes MD5 hashes for quick integrity checking as standard
  • Fits the Ogg, Matroska, MP4 and CAF containers

Monkey's Audio (APE)

https://www.monkeysaudio.com/

Monkey's Audio is a very efficient lossless compressor developed by Matt Ashland.

APE pros

  • Open source (from version 10.18, Windows)
  • High compression
  • Fast encoding at default setting
  • Good software support
  • Supports multichannel (Windows, since version 4.86, channel count later increased.) Channel mask in WAVEFORMATEXTENSIBLE is supported
  • Supports high resolutions
  • Simple and user friendly. Official GUI provided.
  • Multiplatform Java implementation available (3.99 version)
  • Tagging support (APEv2, optionally ID3v1)
  • Supports RIFF chunks
  • Pipe support (Windows version, other OSes only in a special 3.99-based version)

APE cons

  • Slow decoding. Higher compression levels are particularly CPU intensive.
  • Limited hardware support (Rockbox, some Cowon players); potentially poor battery life due to CPU-intensive decoding (see MP3 player benchmarks)
  • No hybrid/lossy mode (and not LossyWAV compatible)
  • Older versions (for non-Windows platforms) released under a problematic license

APE Other features

  • Includes MD5 hashes for quick integrity checking (without decoding)
  • Supports APL image link files (similar to CUE sheets)

OptimFROG (OFR)

http://www.losslessaudio.org/

OptimFROG is a lossless format developed by Florin Ghido to become the champion in audio compression.

OFR pros

  • Very high compression
  • Good software support
  • Error robustness
  • Streaming support
  • Supports high resolutions
  • Hybrid/lossy mode
  • Tagging support (APEv2, ID3)
  • Supports RIFF chunks

OFR cons

  • Closed source
  • No multichannel audio support
  • No hardware support
  • Very slow decoding
  • Slow encoding
  • More than one tagging method allowed (ambiguity possible)

OFR Other features

  • Supports 32bit float streams
  • Fast verification (without decoding) or full decoding verification
  • Optional MD5 hash

Tom's verlustfreier Audiokompressor (TAK)

http://www.thbeck.de/Tak/Tak.html

TAK is a lossless codec developed by Thomas Becker.

TAK pros

  • Very fast decoding
  • Very fast encoding
  • Very high efficiency
  • Error robust
  • Supports multichannel. Limited to 6 channels. Channel mask in WAVEFORMATEXTENSIBLE is supported
  • Supports high resolutions. Limited to 192 kHz sampling rate.
  • Tagging support (APEv2)
  • Supports RIFF chunks
  • Pipe support
  • Streamable

TAK cons

  • Closed source (but unofficial open source decoder is available as part of ffmpeg)
  • No hybrid/lossy mode (but is LossyWAV compatible)
  • No hardware support
  • Average software support
  • Unicode only in GUI

TAK Other features

  • Optional MD5 checksum

True Audio (TTA)

http://tta.tausoft.org/

TTA is a lossless codec developed by a international team of programmers.

TTA pros

  • Open source
  • Supports multichannel. Reference encoder/decoder is limited to 6 channels. ffmpeg's encoder/decoder is limited to 16 channels. Channel mask in WAVEFORMATEXTENSIBLE is not supported (but implemented in 3rd-party foobar2000 component).
  • Supports high resolutions
  • Tagging support (ID3v1, ID3v2 or APEv2)
  • Embedded CUE sheets support
  • Pipe support
  • Fast encoding/decoding

TTA cons

  • No error detection nor error handling (neither in reference implementation nor ffmpeg)
  • Tagging ambiguity: tagging applications differ on what tag format to choose, and might not read each others' tags
  • Reference implementation is picky on input files and rejects a range of TTA files as well.
  • No hybrid/lossy mode
  • Doesn't support RIFF chunks
  • Limited hardware support

TTA Other features

  • Fits the Matroska container
  • Optional password protection

WavPack (WV)

http://www.wavpack.com/

WavPack is a fast and featureful lossless codec developed by David Bryant.

WV pros

  • Open source
  • Fast decoding
  • Very fast encoding
  • Good efficiency
  • Error robustness
  • Streaming support
  • Supports multichannel. Limited to 255 channels. Channel mask in WAVEFORMATEXTENSIBLE is supported
  • Supports high resolutions
  • Hybrid/lossy mode
  • Tagging support (APEv2; ID3 is possible but not recommended)
  • Supports RIFF chunks
  • Pipe support
  • Good software support
  • Works with Android (Through third party software, such as VLC.)
  • Independent encoder implementation available. (FFmpeg WavPack)

WV cons

  • Limited hardware player support (RockBox)

WV Other features

  • Can compress the Direct-Stream Digital (DSD) audio recording format
  • Supports 32bit float streams
  • Supports embedded CUE sheets
  • Accept audio files bigger than 4GB
  • Includes MD5 hashes for quick integrity checking
  • Fits the Matroska container

Windows Media Audio Lossless (WMAL)

https://msdn.microsoft.com/en-us/library/ff819508(v=vs.85).aspx

WMA Lossless is the lossless codec developed by Microsoft to be featured in their Windows Media codec portfolio.

WMAL pros

WMAL cons

  • Abandonware? To the extent that certain Windows preview versions have been unable to decode losslessly.
  • Limited hardware support (Microsoft Zune, Toshiba Gigabeat S and V. Both discontinued and obsolete. Rockbox, for 16-bit stereo files only.)
  • Limited software support outside of the Microsoft Windows operating system.
  • Low efficiency
  • Closed source
  • No hybrid/lossy mode (but is LossyWAV compatible)
  • Doesn't support RIFF chunks

WMAL Other features

  • Fits the ASF container

Other Formats

Aside from the formats mentioned above, there are in fact quite a lot of other lossless formats. To keep the table and list brief and readable, a few formats have not been mentioned.

DTS-HD Master Audio

Similar to the MPEG-4 SLS format, this format has a core track in an older, more widely supported format, DTS. This core lossy track is made lossless by a secondary track with correction data. It is an optional codec in Blu-ray implementations. Its main use is surround sound encoding, and as is the case with MLP, the price of the encoder ensures it is only used in mastering of Blu-ray discs.

LA

http://www.lossless-audio.com/

LA features an extremely high compression (on par with OptimFrog highest modes), but never made it out of beta stage and hasn't been updated for more than 20 years. Furthermore, backward compatibility is not guaranteed, so using it for archiving might pose a few problems. It isn't able to cope with file corruption either, software support is very limited and isn't open source.

MLP/Dolby TrueHD

The MLP codec (of which the mathematical basis was used in Dolby TrueHD) is the codec used for DVD-Audio. It was mandatory in any HD-DVD implementation and optional for Blu-Ray in its Dolby TrueHD form. It is known to support the 'wasted bits' scheme used in LossyWAV. As encoders are very expensive, its use outside DVD/Blu-ray mastering environments is non-existent. Its main use is encoding surround sound data.

MPEG-4 ALS

MPEG-4 ALS is the successor to LPAC, which it was based on. It has been as a ISO standard and there is a reference encoder/decoder, which also supports floating-point signals. It never gained much popularity. FFmpeg can decode some ALS files.

MPEG-4 SLS

MPEG-4 SLS is a special codec, having a AAC core track and a 'correction track'. Also known as HD-AAC, SLS stands for Scalable to Lossless. However, there is to date still no affordable software to play, encode or decode (the lossless part of) SLS files.

Shorten

http://www.etree.org/shncom.html

Shorten was one of the first widely-used lossless formats, and it still occasionally found on the internet, especially in archives, for example etree.org. It is quite fast in both encoding and decoding, but doesn't compress very much. Furthermore, seeking has a troubled past as well as tagging. It is considered obsolete.

Real Lossless

Just like WMA Lossless and Apple Lossless, it was created to fit in a codec suite, but unlike WMA Lossless and Apple Lossless, there is no hardware support and software support is limited. Compression is on par with most other codecs, but it is rather slow to encode. It is considered obsolete, and Real contributed to the creation of MPEG-4 ALS.

Oddball formats

There are a few archaic formats of which encoders and decoders are hard to come by. Most of those would have disappeared by now, but some of them are being preserved for posterity at rjamorim's ReallyRareWares.

See also

External links

Other lossless compressions comparisons Sorted based on last update date.

  • Martijn van Beurden's comparison - tries to compare all codecs and settings with a balanced pool of music, with separate sections on hi-res and multichannel material (last version 2023-08-29)
  • Squeezechart audio - tests as much codecs as possible, but not all their settings and with a limited test corpus (last updated 2013-10-31)
  • Synthetic Soul's comparison (last update 2007-07-28)
  • Johan De Bock's speed oriented comparison - best choices speedwise are indicated in green, mostly electronic music (last updated 2006-07-22)
  • Hans Heijden's -- used as reference to build the table (last updated 2006-07-07)
  • Josef Pohm's comparison, hosted by Synthetic Soul (last update 2006-05-29)
  • Bobulous' lossless audio comparison — a look at six lossless formats in terms of speed and file size (last updated 2006-05-22)
  • Jhan De Bock's size oriented comparison - aimed only at the maximum compression setting for each codec (based on a somewhat limited set of samples, however) (last updated 2006-05-19)
  • Gruboolez' -- comparing only classical music (last updated 2005-02-27)
  • Speek's (last updated 2005-02-07)
  • Lossless Compression of Audio Much information about oddball formats including comparison of them. (last updated 2005-10-21)

More on lossless compressions

References