Difference between revisions of "Lossless comparison"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(Added TAK)
(Stripped table from and shortened text about Shorten, LA, TTA, ALS, SLS and Real Lossless)
Line 13: Line 13:
 
{| cellspacing="2" style="text-align:center; border:1px solid blue;"
 
{| cellspacing="2" style="text-align:center; border:1px solid blue;"
 
|width="120px"|'''Features'''
 
|width="120px"|'''Features'''
| width="95px" style="background: #00FFFF" | FLAC
+
| width="90px" style="background: #00FFFF" | FLAC
| width="95px" style="background: #00FFFF" | WavPack
+
| width="90px" style="background: #00FFFF" | WavPack
| width="95px" style="background: #00FFFF" | TAK
+
| width="90px" style="background: #00FFFF" | TAK
| width="95px" style="background: #00FFFF" | Monkey's
+
| width="90px" style="background: #00FFFF" | ALAC
| width="95px" style="background: #00FFFF" | OptimFROG
+
| width="90px" style="background: #00FFFF" | Monkey's
| width="95px" style="background: #00FFFF" | ALAC
+
| width="90px" style="background: #00FFFF" | WMA
| width="95px" style="background: #00FFFF" | WMA
+
| width="90px" style="background: #00FFFF" | OptimFROG
 
|-
 
|-
 
|align="left" style="background: #FFFF99" | Encoding speed{{ref label|speed|A|A}}
 
|align="left" style="background: #FFFF99" | Encoding speed{{ref label|speed|A|A}}
Line 26: Line 26:
 
| style="background: #00FF00" | very fast
 
| style="background: #00FF00" | very fast
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
| style="background: #FF9900" | slow
 
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 +
| style="background: #FF9900" | slow
 
|-
 
|-
 
|align="left" style="background: #FFFF99" | Decoding speed{{ref label|speed|A|A}}
 
|align="left" style="background: #FFFF99" | Decoding speed{{ref label|speed|A|A}}
Line 34: Line 34:
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 
| style="background: #00FF00" | very fast
 
| style="background: #00FF00" | very fast
| style="background: #FF9900" | slow
 
| style="background: #FF9900" | very slow
 
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 +
| style="background: #FF9900" | slow
 
| style="background: #FFFFFF" | average
 
| style="background: #FFFFFF" | average
 +
| style="background: #FF9900" | very slow
 
|-
 
|-
 
|align="left" style="background: #FFFF99" | Compression{{ref label|speed|A|A}}
 
|align="left" style="background: #FFFF99" | Compression{{ref label|speed|A|A}}
Line 43: Line 43:
 
| style="background: #CCFFCC" | 57.1%
 
| style="background: #CCFFCC" | 57.1%
 
| style="background: #00FF00" | 56.0%
 
| style="background: #00FF00" | 56.0%
| style="background: #00FF00" | 55.1%
 
| style="background: #00FF00" | 54.6%
 
 
| style="background: #CCFFCC" | 57.8%
 
| style="background: #CCFFCC" | 57.8%
 +
| style="background: #00FF00" | 55.1%
 
| style="background: #FF9900" | 58.4%
 
| style="background: #FF9900" | 58.4%
 +
| style="background: #00FF00" | 54.6%
 
|-
 
|-
 
|align="left" style="background: #FFFF99" | Flexibility{{ref label|flex|B|B}}
 
|align="left" style="background: #FFFF99" | Flexibility{{ref label|flex|B|B}}
Line 52: Line 52:
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
 +
| style="background: #FF9900" | bad
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
| style="background: #00FF00" | very good
 
| style="background: #FF9900" | bad
 
 
| style="background: #FF9900" | bad
 
| style="background: #FF9900" | bad
 +
| style="background: #00FF00" | very good
 
|-
 
|-
 
|style="background: #FFFFFF" |  
 
|style="background: #FFFFFF" |  
Line 64: Line 64:
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
 
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 +
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
|-
 
|-
Line 79: Line 79:
 
|align="left" style="background: #FFFF99" | Tagging
 
|align="left" style="background: #FFFF99" | Tagging
 
| style="background: #00FF00" | Vorbis tags
 
| style="background: #00FF00" | Vorbis tags
| style="background: #00FF00" | ID3/APE
+
| style="background: #CCFFCC" | ID3/APEv2
| style="background: #CCFFCC" | APEv2 (exp.)
+
| style="background: #00FF00" | APEv2
| style="background: #00FF00" | ID3/APE
+
| style="background: #00FF00" | iTunes
| style="background: #00FF00" | ID3/APE
+
| style="background: #00FF00" | APEv2
| style="background: #CCFFCC" | iTunes
+
| style="background: #00FF00" | ASF
| style="background: #CCFFCC" | ASF
+
| style="background: #CCFFCC" | ID3/APEv2
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | Hardware support  
 
| align="left" style="background: #FFFF99" | Hardware support  
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
| style="background: #FF9900" | limited
 
| style="background: #FF9900" | no
 
 
| style="background: #FF9900" | limited
 
| style="background: #FF9900" | limited
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 
| style="background: #CCFFCC" | good
 
| style="background: #CCFFCC" | good
 
| style="background: #FF9900" | limited
 
| style="background: #FF9900" | limited
 +
| style="background: #FF9900" | limited
 +
| style="background: #FF9900" | no
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | Software support
 
| align="left" style="background: #FFFF99" | Software support
Line 100: Line 100:
 
| style="background: #FFFFFF" | average
 
| style="background: #FFFFFF" | average
 
| style="background: #CCFFCC" | good
 
| style="background: #CCFFCC" | good
| style="background: #FFFFFF" | average
 
| style="background: #FFFFFF" | average
 
 
| style="background: #CCFFCC" | good
 
| style="background: #CCFFCC" | good
 +
| style="background: #CCFFCC" | good
 +
| style="background: #FFFFFF" | average
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | Hybrid/lossy
 
| align="left" style="background: #FFFF99" | Hybrid/lossy
Line 109: Line 109:
 
| style="background: #CCFFCC" | LossyWAV
 
| style="background: #CCFFCC" | LossyWAV
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
 
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 
| style="background: #CCFFCC" | LossyWAV
 
| style="background: #CCFFCC" | LossyWAV
 +
| style="background: #00FF00" | yes
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | ReplayGain
 
| align="left" style="background: #FFFF99" | ReplayGain
Line 117: Line 117:
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 +
| style="background: #CCFFCC" | propriet.
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
 
| style="background: #FFFFFF" | sort of
 
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 +
| style="background: #00FF00" | yes
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | RIFF chunks
 
| align="left" style="background: #FFFF99" | RIFF chunks
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
| style="background: #FFFFFF" |  
+
| style="background: #FFFFFF" | ?
 +
| style="background: #FFFFFF" | ?
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
| style="background: #00FF00" | yes
 
| style="background: #FFFFFF" |  
 
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 +
| style="background: #00FF00" | yes
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | Streaming
 
| align="left" style="background: #FFFF99" | Streaming
Line 135: Line 135:
 
| 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: #FF9900" | no
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
Line 154: Line 154:
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
| style="background: #FF9900" | no
 
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 +
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | Multichannel
 
| align="left" style="background: #FFFF99" | Multichannel
 +
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 +
| style="background: #00FF00" | yes
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
 
|-
 
|-
 
| align="left" style="background: #FFFF99" | High resolution
 
| align="left" style="background: #FFFF99" | High resolution
Line 181: Line 181:
 
| style="background: #CCFFCC" | Win/Linux Wine
 
| style="background: #CCFFCC" | Win/Linux Wine
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
| style="background: #00FF00" | Win/Mac/Linux
 
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
 
| style="background: #CCFFCC" | Win/Mac
 
| style="background: #CCFFCC" | Win/Mac
|}
+
| style="background: #00FF00" | Win/Mac/Linux
 
+
''(table continued below)''
+
 
+
{| cellspacing="2" style="text-align:center; border:1px solid blue;"
+
|width="120px"|'''Features'''
+
| width="95px" style="background: #00FFFF" | Shorten
+
| width="95px" style="background: #00FFFF" | LA
+
| width="95px" style="background: #00FFFF" | TTA
+
| width="95px" style="background: #00FFFF" | MPEG-4 ALS
+
| width="95px" style="background: #00FFFF" | MPEG-4 SLS
+
| width="95px" style="background: #00FFFF" | Real Lossless
+
|-
+
| align="left" style="background: #FFFF99" | Encoding speed{{ref label|speed|A|A}}
+
| style="background: #00FF00" | very fast
+
| style="background: #FF9900" | very slow
+
| style="background: #CCFFCC" | fast
+
| style="background: #FFFFFF" | average
+
| style="background: #FF9900" | slow
+
| style="background: #FF9900" | slow         
+
|-
+
| align="left" style="background: #FFFF99" | Decoding speed{{ref label|speed|A|A}}
+
| style="background: #CCFFCC" | fast
+
| style="background: #FF9900" | very slow
+
| style="background: #FFFFFF" | average
+
| style="background: #CCFFCC" | fast
+
| style="background: #FF9900" | slow
+
| style="background: #00FF00" | very fast       
+
|-
+
| align="left" style="background: #FFFF99" | Compression{{ref label|speed|A|A}}
+
| style="background: #FF9900" | 62.3%
+
| style="background: #00FF00" | 53.3%
+
| style="background: #CCFFCC" | 56.6%
+
| style="background: #CCFFCC" | 56.6%
+
| style="background: #CCFFCC" | ?
+
| style="background: #CCFFCC" | ~56%           
+
|-
+
| align="left" style="background: #FFFF99" | Flexibility{{ref label|flex|B|B}}
+
| style="background: #FF9900" | bad
+
| style="background: #FFFFFF" | average
+
| style="background: #FF9900" | bad
+
| style="background: #00FF00" | very good
+
| style="background: #FF9900" | bad
+
| style="background: #FF9900" | bad             
+
|-
+
|! style="background: #FFFFFF" |  
+
|-
+
| align="left" style="background: #FFFF99" | Error handling{{ref label|error|C|C}}
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FFFFFF" |             
+
|-
+
| align="left" style="background: #FFFF99" | Seeking
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes             
+
|-
+
| align="left" style="background: #FFFF99" | Tagging
+
| style="background: #FF9900" | no
+
| style="background: #CCFFCC" | ID3v1
+
| style="background: #CCFFCC" | ID3
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #CCFFCC" | proprietary
+
|-
+
| align="left" style="background: #FFFF99" | Hardware support
+
| style="background: #FF9900" | limited
+
| style="background: #FF9900" | no             
+
| style="background: #FF9900" | limited
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | Software support
+
| style="background: #00FF00" | very good
+
| style="background: #FF9900" | bad
+
| style="background: #FFFFFF" | average
+
| style="background: #FF9900" | bad
+
| style="background: #FF9900" | bad
+
| style="background: #FF9900" | bad             
+
|-
+
| align="left" style="background: #FFFF99" | Hybrid/lossy
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #CCFFCC" | LossyWAV
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | ReplayGain
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | RIFF chunks
+
| style="background: #FF9900" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no
+
| style="background: #FFFFFF" |  
+
| style="background: #FFFFFF" |  
+
| style="background: #FFFFFF" |             
+
|-
+
| align="left" style="background: #FFFF99" | Streaming
+
| style="background: #FF9900" | no
+
| style="background: #FFFFFF" |  
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes             
+
|-
+
| align="left" style="background: #FFFF99" | Pipe support
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no
+
| style="background: #FFFFFF" |  
+
| style="background: #FFFFFF" |  
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | Open source
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | Multichannel
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | High resolution
+
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FF9900" | no             
+
|-
+
| align="left" style="background: #FFFF99" | OS support
+
| style="background: #00FF00" | All
+
| style="background: #CCFFCC" | Win/Linux
+
| style="background: #00FF00" | All
+
| style="background: #00FF00" | All
+
| style="background: #00FF00" | All
+
| style="background: #00FF00" | Win/Mac/Linux    
+
 
|}
 
|}
  
Line 463: Line 305:
 
* Includes MD5 hashes for quick integrity checking
 
* Includes MD5 hashes for quick integrity checking
 
* Supports APL image link files (similar to CUE sheets)
 
* Supports APL image link files (similar to CUE sheets)
 
=== MPEG-4 SLS ===
 
MPEG-4 SLS allows audio encoding from lossless scalable to [[AAC]].
 
 
''' SLS pros '''
 
* Transcoding to standard AAC or any higher lossy bitrate at the speed of copying a file
 
* Scalable decoding from lossless, to any bitrate down to the AAC core track
 
* Best lossless compression available when you don't count the AAC track (~5% gain over any other lossless compression + AAC)
 
* [[High resolution]] audio support
 
* Multi channel audio support
 
* [[Open source]] (MPEG-4 Reference code)
 
* Embedded in standard MP4 files, so supports same tagging and ReplayGain features as AAC does.
 
 
''' SLS cons '''
 
* No usable software available yet
 
* Pure lossless compression not the best there is
 
* Seems to be slow in encoding and decoding, but we have to wait for released software
 
* No news or developments in last few years
 
 
''' SLS Other features '''
 
* Transform based lossless codec with optional LC AAC core track
 
  
 
=== OptimFROG (OFR) ===
 
=== OptimFROG (OFR) ===
Line 512: Line 333:
 
* Supports 32bit float streams
 
* Supports 32bit float streams
 
* Includes MD5 hashes for quick integrity checking
 
* Includes MD5 hashes for quick integrity checking
 
=== RealAudio Lossless (RAL) ===
 
http://www.realnetworks.com/products/codecs/realaudio.html
 
 
RealAudio lossless is the lossless codec developed by Real Networks for their multimedia portfolio
 
 
''' RAL pros '''
 
* Very fast decoding
 
* Streaming support
 
* Tagging support (proprietary)
 
 
''' RAL cons '''
 
* Closed source
 
* Slow encoding
 
* No [[multichannel]] and [[high resolution]] audio support
 
* Little software support (Real Player)
 
* No hardware support
 
* No hybrid/lossy mode
 
* No pipe support
 
* Doesn't support [[ReplayGain]]
 
 
=== Shorten (SHN) ===
 
http://www.etree.org/shnutils/shorten/
 
 
[[Shorten]] is a very old and featureless lossless codec developed by Tony Robinson at SoftSound.
 
 
''' SHN pros '''
 
* [[Open source]]
 
* Fast decoding
 
* Very fast encoding
 
* Good software support
 
* Supports [[RIFF]] chunks
 
* Pipe support
 
 
''' SHN cons '''
 
* Quite inefficient
 
* No [[multichannel]] or [[high resolution]] audio support
 
* No hybrid/lossy mode
 
* No error robustness
 
* Not streamable
 
* No hardware support
 
* No native tagging
 
* Doesn't support [[ReplayGain]]
 
* No news or developments since 2007
 
  
 
=== Tom's verlustfreier Audiokompressor (TAK) ===
 
=== Tom's verlustfreier Audiokompressor (TAK) ===
Line 583: Line 360:
 
''' TAK Other features '''
 
''' TAK Other features '''
 
* Optional MD5 checksum
 
* Optional MD5 checksum
 
=== True Audio (TTA) ===
 
http://www.true-audio.com/
 
 
[[TTA]] is a lossless codec developed by a team of russian programmers.
 
 
''' TTA pros '''
 
* [[Open source]]
 
* Supports [[multichannel]] audio and [[high resolution]]s
 
* Tagging support ([[ID3]])
 
* [[ReplayGain]] compatible
 
* Error robustness
 
* Average compression and decoding speed
 
* Fast encoding
 
 
''' TTA cons '''
 
* No streaming support
 
* No hybrid/lossy mode
 
* Doesn't support [[RIFF]] chunks
 
* No pipe support
 
* No update since 2007
 
* Limited hardware support
 
 
''' TTA Other features '''
 
* Fits the [[Matroska]] container
 
  
 
=== WavPack (WV) ===
 
=== WavPack (WV) ===
Line 664: Line 416:
 
* Fits the [[ASF]] container
 
* Fits the [[ASF]] container
  
=== Oddball Formats ===
+
=== Other Formats ===
There are several old lossless formats that aren't being featured in the article above. Reasons are: lack of widespread support, lack of features, bad efficiency and, most importantly, it seems no one is really interested in them.
+
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.
 +
 
 +
'''LA'''
 +
LA features an extremely high compression (on par with OptimFrog highest modes, but a bit faster), but it hasn't been updated for more than 10 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.
 +
 
 +
'''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, but like TTA, it does not have features that make it stand out from other codecs, nor backing by a large organisation, so it hasn't much software and no hardware support.
 +
 
 +
'''MPEG-4 SLS'''
 +
MPEG-4 SLS is a special codec, having a AAC core track and a 'correction file'. 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'''
 +
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'''
 +
Part of the Real codec suite, Real Lossless too hasn't any very special features that make it stand out. 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.
 +
 
 +
'''TTA'''
 +
TTA is a lossless codec which has been developed by a team of russian programmers. While it's compression and speed is on par with WavPack and FLAC, there are no features that make it stand out from other codecs, which is probably the reason for it being largely ignored these days.
  
Most of those would have disappeared by now, but some of them are being preserved for posterity at [[User:Rjamorim|rjamorim]]'s   
+
'''Oddball formats'''
 +
There are a few archaic formats of which encoders and decoders are hard to get by. Most of those would have disappeared by now, but some of them are being preserved for posterity at [[User:Rjamorim|rjamorim]]'s   
  
 
* Advanced Digital Audio (ADA)   
 
* Advanced Digital Audio (ADA)   

Revision as of 13:20, 6 April 2014

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 amount 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 only take into consideration 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 WavPack TAK ALAC Monkey's WMA OptimFROG
Encoding speed[A] very fast very fast very fast fast fast fast slow
Decoding speed[A] very fast fast very fast fast slow average very slow
Compression[A] 57.0% 57.1% 56.0% 57.8% 55.1% 58.4% 54.6%
Flexibility[B] very good very good very good bad very good bad very good
 
Error handling[C] yes yes yes no no yes yes
Seeking yes yes yes yes yes yes yes
Tagging Vorbis tags ID3/APEv2 APEv2 iTunes APEv2 ASF ID3/APEv2
Hardware support very good limited no good limited limited no
Software support very good good average good good good average
Hybrid/lossy LossyWAV yes LossyWAV no no LossyWAV yes
ReplayGain yes yes yes propriet. no no yes
RIFF chunks yes yes  ?  ? yes no yes
Streaming yes yes yes yes no yes yes
Pipe support yes yes yes yes yes yes yes
Open source yes yes no yes yes no no
Multichannel yes yes yes yes no yes no
High resolution yes yes yes yes yes yes yes
OS support All All Win/Linux Wine All All Win/Mac Win/Mac/Linux
A The Compression ratio is calculated with the division of compressed size by uncompressed size * 100. So, lower is better. Encoding speed, Decoding speed and Compression ratio are based on each encoder's default settings and are taken from the most recent lossless codec comparison mentioned at the links section of this page. Encoding speed is very fast if > 150x, fast if >75x, average if >40x, slow if >20x, very slow if <20x. Decoding speed is similar but thresholds are doubled, i.e., very fast if >300x, fast if >150x etc. Thresholds for compression are at 56% and 58%
B Flexibility refers to the amount of encoding choices offered to the users (Fast/low compression, Slow/high compression and everything inbetween)
C Error handling means that a codec can detect a corruption in a file and warn the user about it, but still decode most of the file, only leaving a small gap of silence where the error was detected. Corruption in this sense means bits that are flipped, not removed


Codecs

These are the most popular lossless codecs, in alphabetical order:

Apple Lossless Audio Codec (ALAC)

http://www.apple.com/itunes/import.html

ALAC is a codec developed by Apple for usage in iPod and AirPort Express.

ALAC pros

ALAC cons

  • Limited software support
  • No error detection/robustness
  • No hybrid/lossy mode
  • Not very efficient

ALAC Other features

  • Fits in the MP4 container

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, Speex and Theora.

FLAC pros

FLAC cons

  • No hybrid/lossy mode

FLAC Other features

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

LosslessAudio (LA)

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

LA is a lossless codec developed by Michael Bevin.

LA pros

  • Very high compression
  • Tagging support (ID3v1)
  • Supports RIFF chunks
  • Pipe support

LA cons

  • Closed source
  • Very slow encoding and decoding
  • Doesn't support multichannel audio and high resolutions
  • No hardware support
  • No hybrid/lossy mode
  • Bad software support
  • Doesn't support ReplayGain
  • No updates since 2004

It's important to mention that the LA foobar plugin is buggy and doesn't produce lossless streams!

Monkey's Audio (APE)

http://www.monkeysaudio.com/

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

APE pros

  • High compression
  • Fast encoding
  • Good software support
  • Simple and user friendly. Official GUI provided.
  • 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 special version)

APE cons

  • Problematic license (source provided, no modification or redistribution rights)
  • Slow decoding
  • No multichannel support
  • No error robustness
  • No hybrid/lossy mode
  • Limited hardware support (Rockbox, some Cowon players); poor battery life due to complicated decoding (see MP3 player benchmarks)
  • Higher compression levels are extremely CPU intensive
  • Doesn't support ReplayGain

APE Other features

  • Includes MD5 hashes for quick integrity checking
  • 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

OFR cons

  • Closed source
  • No multichannel audio support
  • No hardware support
  • Very slow decoding
  • Slow encoding
  • No updates since 2011 (last non-Windows release in 2006)

OFR Other features

  • Supports 32bit float streams
  • Includes MD5 hashes for quick integrity checking

Tom's verlustfreier Audiokompressor (TAK)

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

TAK is a lossless codec developed by TBeck.

TAK pros

  • Very fast decoding
  • Very fast encoding
  • Very high efficiency
  • Error robust
  • Supports multichannel audio and high resolutions
  • Tagging support
  • ReplayGain compatible
  • Supports RIFF chunks
  • Pipe support
  • Streamable

TAK cons

  • Closed source
  • No hybrid/lossy mode
  • No hardware support
  • Average software support
  • Doesn't support Unicode (yet)

TAK Other features

  • Optional MD5 checksum

WavPack (WV)

http://www.wavpack.com/

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

WV pros

WV cons

  • Limited hardware player support

WV Other features

  • Supports 32bit float streams
  • Supports embedded CUE sheets
  • Includes MD5 hashes for quick integrity checking
  • Can encode in both symmetrical and asymmetrical modes.
  • Fits the Matroska container

Windows Media Audio Lossless (WMAL)

http://www.microsoft.com/windows/windowsmedia/9series/codecs/audio.aspx

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

WMAL pros

WMAL cons

  • Rather low efficiency
  • Closed source
  • No hybrid/lossy mode
  • Doesn't support RIFF chunks
  • Doesn't support ReplayGain

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.

LA LA features an extremely high compression (on par with OptimFrog highest modes, but a bit faster), but it hasn't been updated for more than 10 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.

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, but like TTA, it does not have features that make it stand out from other codecs, nor backing by a large organisation, so it hasn't much software and no hardware support.

MPEG-4 SLS MPEG-4 SLS is a special codec, having a AAC core track and a 'correction file'. 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 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 Part of the Real codec suite, Real Lossless too hasn't any very special features that make it stand out. 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.

TTA TTA is a lossless codec which has been developed by a team of russian programmers. While it's compression and speed is on par with WavPack and FLAC, there are no features that make it stand out from other codecs, which is probably the reason for it being largely ignored these days.

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

  • Advanced Digital Audio (ADA)
  • Bonk
  • Marian's a-Pac
  • AudioZip
  • Dakx WAV
  • Entis Lab MIO
  • LiteWave
  • LPAC
  • Pegasus SPS
  • RK Audio (RKAU)
  • Ogg Squish
  • Sonarc
  • VocPack
  • WavArc
  • WaveZip/MUSICompress

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 (last updated 2013-08-10)
  • 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)

More on lossless compressions