Difference between revisions of "Lossless comparison"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(Added TAK)
m (Source available != open source. APE is proprietary and nonfree, but a third-party FOSS decoder (apedec.c) is available as part of ffmpeg)
(105 intermediate revisions by 40 users not shown)
Line 2: Line 2:
  
 
== Introduction ==
 
== 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.
+
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.
 
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.
Line 11: Line 11:
 
<!-- 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 -->
 
<!-- 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 -->
  
{| cellspacing="2" style="text-align:center; border:1px solid blue;"
+
{| class="wikitable" cellspacing="2"
|width="120px"|'''Features'''
+
!width="120px"|'''Features'''
| width="95px" style="background: #00FFFF" | FLAC
+
! width="90px" | [[#Free Lossless Audio Codec (FLAC)|FLAC]]
| width="95px" style="background: #00FFFF" | WavPack
+
! width="90px" | [[#Apple Lossless Audio Codec (ALAC)|ALAC]]
| width="95px" style="background: #00FFFF" | TAK
+
! width="90px" | [[#WavPack (WV)|WavPack]]
| width="95px" style="background: #00FFFF" | Monkey's
+
! width="90px" | [[#Tom's_verlustfreier_Audiokompressor (TAK)|TAK]]
| width="95px" style="background: #00FFFF" | OptimFROG
+
! width="90px" | [[#Monkey's_Audio (APE)|Monkey's]]
| width="95px" style="background: #00FFFF" | ALAC
+
! width="90px" | [[#Windows Media Audio Lossless (WMAL)|WMAL]]
| width="95px" style="background: #00FFFF" | WMA
+
! width="90px" | [[#OptimFROG (OFR)|OptimFROG]]
|-
+
! width="90px" | [[#True Audio (TTA)|TTA]]
|align="left" style="background: #FFFF99" | Encoding speed{{ref label|speed|A|A}}
+
|- <!-- *** Encoding speed is very fast if > 150x, fast if >75x, average if >40x, slow if >20x, very slow if <20x *** -->
 +
| Encoding speed{{ref label|speed|A|A}}
 
| style="background: #00FF00" | very fast
 
| 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: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
| style="background: #FF9900" | slow
 
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
| style="background: #CCFFCC" | fast
+
| style="background: #FFCC66" | slow
|-
+
| style="background: #00FF00" | very fast
|align="left" style="background: #FFFF99" | Decoding speed{{ref label|speed|A|A}}
+
|- <!-- *** For decoding speed thresholds are doubled, i.e., very fast if >300x, fast if >150x etc *** -->
 +
| Decoding speed{{ref label|speed|A|A}}
 
| style="background: #00FF00" | very fast
 
| style="background: #00FF00" | very fast
 +
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
 
| style="background: #00FF00" | very fast
 
| style="background: #00FF00" | very fast
| style="background: #FF9900" | slow
+
| style="background: #FFCC66" | slow
 +
| style="background: #FFCC66" | average
 
| style="background: #FF9900" | very slow
 
| style="background: #FF9900" | very slow
 
| style="background: #CCFFCC" | fast
 
| style="background: #CCFFCC" | fast
| style="background: #FFFFFF" | average
+
|- <!-- *** Thresholds for compression are at 56% and 58% *** -->
|-
+
| Compression{{ref label|speed|A|A}}{{ref label|comp|B|B}}
|align="left" style="background: #FFFF99" | Compression{{ref label|speed|A|A}}
+
 
| style="background: #CCFFCC" | 57.0%
 
| style="background: #CCFFCC" | 57.0%
 +
| style="background: #CCFFCC" | 57.8%
 
| 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" | 55.1%
 +
| style="background: #FFCC66" | 58.4%
 
| style="background: #00FF00" | 54.6%
 
| style="background: #00FF00" | 54.6%
| style="background: #CCFFCC" | 57.8%
+
| style="background: #CCFFCC" | 56.6%
| style="background: #FF9900" | 58.4%
+
|-
+
|align="left" style="background: #FFFF99" | Flexibility{{ref label|flex|B|B}}
+
| style="background: #00FF00" | very good
+
| 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: #FF9900" | bad
+
 
|-
 
|-
|style="background: #FFFFFF" | &nbsp;
+
| # 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
 
|-
 
|-
|align="left" style="background: #FFFF99" | Error handling{{ref label|error|C|C}}
+
| Error handling{{ref label|error|C|C}}
| 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: #00FF00" | yes
 
|-
 
|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
 +
| style="background: #CCFFCC" | yes{{ref label|error_ape|D|D}}
 
| 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
+
| Tagging
 
| style="background: #00FF00" | Vorbis tags
 
| style="background: #00FF00" | Vorbis tags
| style="background: #00FF00" | ID3/APE
+
| style="background: #00FF00" | iTunes
| style="background: #CCFFCC" | APEv2 (exp.)
+
| style="background: #CCFFCC" | ID3/APEv2
| style="background: #00FF00" | ID3/APE
+
| style="background: #00FF00" | APEv2
| 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
 +
| style="background: #00FF00" | ID3v1/2 or APEv2
 
|-
 
|-
| align="left" style="background: #FFFF99" | Hardware support  
+
| Hardware support  
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
| style="background: #FF9900" | limited
+
| style="background: #CCFFCC" | good
 +
| style="background: #FFCC66" | limited
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #FF9900" | limited
+
| style="background: #FFCC66" | limited
 +
| style="background: #FFCC66" | limited
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #CCFFCC" | good
+
| style="background: #FFCC66" | limited
| style="background: #FF9900" | limited
+
 
|-
 
|-
| align="left" style="background: #FFFF99" | Software support
+
| Software support
 
| style="background: #00FF00" | very good
 
| style="background: #00FF00" | very good
 
| style="background: #CCFFCC" | good
 
| style="background: #CCFFCC" | good
| style="background: #FFFFFF" | average
 
 
| style="background: #CCFFCC" | good
 
| style="background: #CCFFCC" | good
| style="background: #FFFFFF" | average
+
| style="background: #FFCC66" | average
| style="background: #FFFFFF" | average
+
| style="background: #CCFFCC" | good
 +
| style="background: #CCFFCC" | good
 +
| style="background: #FFCC66" | average
 
| style="background: #CCFFCC" | good
 
| style="background: #CCFFCC" | good
 
|-
 
|-
| align="left" style="background: #FFFF99" | Hybrid/lossy
+
| Hybrid/lossy
| style="background: #CCFFCC" | LossyWAV
+
| style="background: #CCFFCC" | [[LossyWAV]]
 +
| style="background: #FF9900" | no
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
| style="background: #CCFFCC" | LossyWAV
+
| style="background: #CCFFCC" | [[LossyWAV]]
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
 +
| style="background: #CCFFCC" | [[LossyWAV]]
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #CCFFCC" | LossyWAV
 
 
|-
 
|-
| align="left" style="background: #FFFF99" | ReplayGain
+
| RIFF chunks
| 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: #00FF00" | yes
| style="background: #FFFFFF" | sort of
 
| style="background: #FF9900" | no
 
|-
 
| align="left" style="background: #FFFF99" | RIFF chunks
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #FFFFFF" | &nbsp;
 
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
| style="background: #FFFFFF" | &nbsp;
 
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
|-
 
| align="left" style="background: #FFFF99" | Streaming
 
| 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: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
 
|-
 
|-
| align="left" style="background: #FFFF99" | Pipe support
+
| Streaming
 
| 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: #00FF00" | yes
 +
| style="background: #FF9900" | no
 
| 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" | Open source
+
| Open source
 
| 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: #FFCC66" | no{{ref label|tak_os|F|F}}
 +
| style="background: #FFCC66" | no{{ref label|tak_os|F|F}}
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
| style="background: #00FF00" | yes
 
 
| style="background: #FF9900" | no
 
| style="background: #FF9900" | no
|-
 
| align="left" style="background: #FFFF99" | Multichannel
 
| 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: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
|-
 
|-
| align="left" style="background: #FFFF99" | High resolution
+
| 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: #00FF00" | yes
 
| style="background: #00FF00" | yes
 +
| style="background: #00FF00" | yes{{ref label|multichannel_ape|E|E}}
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 +
| style="background: #FF9900" | no
 
| style="background: #00FF00" | yes
 
| style="background: #00FF00" | yes
 
|-
 
|-
| align="left" style="background: #FFFF99" | OS support
+
| OS support
 +
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
| style="background: #CCFFCC" | Win/Linux Wine
+
| style="background: #CCFFCC" | Win/Wine
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
 +
| style="background: #CCFFCC" | Win/Mac
 
| style="background: #00FF00" | Win/Mac/Linux
 
| style="background: #00FF00" | Win/Mac/Linux
 
| style="background: #00FF00" | All
 
| style="background: #00FF00" | All
| style="background: #CCFFCC" | Win/Mac
 
 
|}
 
|}
  
''(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}}
+
|{{note label|speed|A|A}} Speed and Compression are based on '''each encoder's default settings''' and taken from [http://www.audiograaf.nl/downloads.html this comparison].
| 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}}
+
|{{note label|comp|B|B}} The Compression ratio is compressed size/uncompressed size * 100. So, lower is better.
| 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}}
+
|{{note label|error|C|C}} Error handling means that a codec can detect a corruption (flipped bit) in a file and warn the user about it, but it will still decode the rest of the file.
| 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}}
+
|{{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, though likely not, when the "Insane" preset is used.
| 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" | &nbsp;
+
|{{note label|multichannel_ape|E|E}} Since version 4.86
 
|-
 
|-
| align="left" style="background: #FFFF99" | Error handling{{ref label|error|C|C}}
+
|{{note label|tak_os|F|F}} Unofficial (but properly working) open source decoder is available as part of ffmpeg
| style="background: #FF9900" | no
+
| style="background: #FF9900" | no
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #00FF00" | yes
+
| style="background: #FFFFFF" | &nbsp;           
+
|-
+
| 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" | &nbsp;
+
| style="background: #FFFFFF" | &nbsp;
+
| style="background: #FFFFFF" | &nbsp;           
+
|-
+
| align="left" style="background: #FFFF99" | Streaming
+
| style="background: #FF9900" | no
+
| style="background: #FFFFFF" | &nbsp;
+
| 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" | &nbsp;
+
| style="background: #FFFFFF" | &nbsp;
+
| 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   
+
|}
+
 
+
{|
+
|-
+
|{{note label|speed|A|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 [[Lossless_comparison#Other_lossless_compressions_comparisons|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%
+
|-
+
|{{note label|flex|B|B}} Flexibility refers to the amount of encoding choices offered to the users (Fast/low compression, Slow/high compression and everything inbetween)
+
|-
+
|{{note label|error|C|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 ==
 
== Codecs ==
  
Line 359: Line 181:
  
 
=== Apple Lossless Audio Codec (ALAC) ===
 
=== Apple Lossless Audio Codec (ALAC) ===
http://www.apple.com/itunes/import.html
+
https://alac.macosforge.org/trac
  
[[ALAC]] is a codec developed by Apple for usage in [[Apple iPod|iPod]] and AirPort Express.
+
[[ALAC]] is a codec developed by Apple and used across their hardware and software platforms.
  
 
'''ALAC pros'''
 
'''ALAC pros'''
 +
* [[Open source]] (encoding and decoding via FFmpeg and [[CueTools|CUETools]], decoding only via [http://craz.net/programs/itunes/alac.html a standalone decoder])
 
* Fast encoding
 
* Fast encoding
 
* Fast decoding
 
* Fast decoding
* [[Open source]] (encoding and decoding via FFmpeg and [[CueTools|CUETools]], decoding only via [http://craz.net/programs/itunes/alac.html a standalone decoder])
 
 
* Hardware support ([[Apple iPod|iPod]], AirPort Express)
 
* Hardware support ([[Apple iPod|iPod]], AirPort Express)
 
* Software support (iTunes, Quicktime)
 
* Software support (iTunes, Quicktime)
 +
* Independent encoder implementation available: ffmpeg
 
* Streaming support
 
* Streaming support
 
* Tagging support (QT tags)
 
* Tagging support (QT tags)
* Supports [[multichannel]] audio and [[high resolution]]s
+
* 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
 
* Used by a few online stores
  
 
''' ALAC cons '''
 
''' ALAC cons '''
 
* Limited software support
 
* Limited software support
* No error detection/robustness
+
* 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>
* No hybrid/lossy mode
+
* No hybrid/lossy mode (and not [[LossyWAV]] compatible)
* Not very efficient
+
  
 
''' ALAC Other features '''
 
''' ALAC Other features '''
Line 386: Line 209:
 
https://xiph.org/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]] 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 '''
Line 394: Line 217:
 
* Very good hardware support (Android, Marantz, Sonos, [http://xiph.org/flac/links.html many others])
 
* 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 (which is insanely fast, and can beat any other CPU based encoder)
 
* Error robustness
 
* Error robustness
 
* Streaming support
 
* Streaming support
* Supports [[multichannel]] audio and [[high resolution]]s
+
* Supports [[multichannel]]. Limited to 8 channels. Channel mask in [https://docs.microsoft.com/ru-ru/windows/win32/api/mmreg/ns-mmreg-waveformatextensible WAVEFORMATEXTENSIBLE] is supported but support is not included in official specification. With reference encoder undocumented option --channel-map=none is needed to encode some non-standard layouts (e.g. 4.1; FL,FR,FC,BC), but no special options are needed with ffmpeg's encoder.
 +
* Supports [[high resolution]]s
 
* Tagging support (FLAC tags)
 
* Tagging support (FLAC tags)
 
* Supports [[RIFF]] chunks
 
* Supports [[RIFF]] chunks
 
* Pipe support
 
* Pipe support
* [[ReplayGain]] compatible
 
 
* Used by a few [http://xiph.org/flac/links.html#music online stores]
 
* Used by a few [http://xiph.org/flac/links.html#music online stores]
  
 
''' FLAC cons '''
 
''' FLAC cons '''
* No hybrid/lossy mode
+
* No hybrid/lossy mode (but is [[LossyWAV]] compatible)
 +
* Does not handle 32-bit float and there is no encoder that can render to 32-bit integer
  
 
''' 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 as standard
 
* Includes MD5 hashes for quick integrity checking as standard
* Fits the [[Ogg]] and [[Matroska]] containers
+
* Fits the [[Ogg]], [[Matroska]] and [[MP4]] (experimental) 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 resolution]]s
+
* 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) ===
 
=== Monkey's Audio (APE) ===
http://www.monkeysaudio.com/
+
https://www.monkeysaudio.com/
  
 
[[Monkey's Audio]] is a very efficient lossless compressor developed by Matt Ashland.
 
[[Monkey's Audio]] is a very efficient lossless compressor developed by Matt Ashland.
Line 443: Line 245:
 
* Fast encoding
 
* Fast encoding
 
* Good software support
 
* Good software support
 +
* Supports [[multichannel]] (since version 4.86). Limited to 8 channels. 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.
 
* Simple and user friendly. Official GUI provided.
 
* Java version (multiplatform)
 
* Java version (multiplatform)
 +
* Error robustness/decoding up to -c3000 (High compression)<ref>http://www.hydrogenaud.io/forums/index.php?showtopic=98984&st=0&p=821420&#entry821420</ref>
 
* Tagging support ([[ID3v1]], [[APE tags]])
 
* Tagging support ([[ID3v1]], [[APE tags]])
* [[High resolution]] audio support
 
 
* Supports [[RIFF]] chunks (only in the GUI encoder)
 
* Supports [[RIFF]] chunks (only in the GUI encoder)
 
* Pipe support (only in a [http://www.etree.org/shnutils/shntool/ special] version)
 
* Pipe support (only in a [http://www.etree.org/shnutils/shntool/ special] version)
  
 
''' APE cons '''
 
''' APE cons '''
* Problematic license (source provided, no modification or redistribution rights)
+
* Problematic license (Source available, but with no modification or redistribution rights. Encourages violating the GNU GPL license of other programs.)
 
* Slow decoding
 
* Slow decoding
* No [[multichannel]] support
+
* No hybrid/lossy mode (and not [[LossyWAV]] compatible)
* No error robustness
+
* No hybrid/lossy mode
+
 
* Limited hardware support (Rockbox, some Cowon players); poor battery life due to complicated decoding (see [http://www.rockbox.org/wiki/SoundCodecMonkeysAudio MP3 player benchmarks])
 
* Limited hardware support (Rockbox, some Cowon players); poor battery life due to complicated decoding (see [http://www.rockbox.org/wiki/SoundCodecMonkeysAudio MP3 player benchmarks])
 
* Higher compression levels are extremely CPU intensive
 
* Higher compression levels are extremely CPU intensive
* Doesn't support [[ReplayGain]]
 
  
 
''' APE Other features '''
 
''' APE Other features '''
 
* 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 499: Line 279:
 
* Tagging support ([[ID3]], [[APE tags]])
 
* Tagging support ([[ID3]], [[APE tags]])
 
* Supports [[RIFF]] chunks
 
* Supports [[RIFF]] chunks
* [[ReplayGain]] compatible
 
  
 
''' OFR cons '''
 
''' OFR cons '''
Line 507: Line 286:
 
* Very slow decoding
 
* Very slow decoding
 
* Slow encoding
 
* Slow encoding
* No updates since 2011 (last non-Windows release in 2006)
+
* 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
 
* 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) ===
 
http://www.thbeck.de/Tak/Tak.html
 
http://www.thbeck.de/Tak/Tak.html
  
[[TAK]] is a lossless codec developed by TBeck.
+
[[TAK]] is a lossless codec developed by Thomas Becker.
  
 
''' TAK pros '''
 
''' TAK pros '''
Line 567: Line 302:
 
* Very high efficiency
 
* Very high efficiency
 
* Error robust
 
* Error robust
* Supports multichannel audio and high resolutions
+
* 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
 
* Tagging support
 
* Tagging support
* ReplayGain compatible
 
 
* Supports RIFF chunks
 
* Supports RIFF chunks
 
* Pipe support  
 
* Pipe support  
Line 575: Line 310:
  
 
''' TAK cons '''
 
''' TAK cons '''
* Closed source
+
* Closed source (but unofficial open source decoder is available as part of ffmpeg)
* No hybrid/lossy mode
+
* No hybrid/lossy mode (but is [[LossyWAV]] compatible)
 
* No hardware support
 
* No hardware support
 
* Average software support
 
* Average software support
Line 585: Line 320:
  
 
=== True Audio (TTA) ===
 
=== True Audio (TTA) ===
http://www.true-audio.com/
+
http://tta.tausoft.org/
  
[[TTA]] is a lossless codec developed by a team of russian programmers.
+
[[TTA]] is a lossless codec developed by a international team of programmers.
  
 
''' TTA pros '''
 
''' TTA pros '''
 
* [[Open source]]
 
* [[Open source]]
* Supports [[multichannel]] audio and [[high resolution]]s
+
* 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
* Tagging support ([[ID3]])
+
* Supports [[high resolution]]s
* [[ReplayGain]] compatible
+
* Tagging support ([[ID3]]v1, ID3v2 or [[APEv2]])
 +
* Embedded CUE sheets support
 
* Error robustness
 
* Error robustness
* Average compression and decoding speed
+
* Pipe support
* Fast encoding
+
* Average compression
 +
* Fast encoding/decoding
 +
* Symmetric algorithm
 +
* Ultra low latency
  
 
''' TTA cons '''
 
''' 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
 
* No update since 2007
 
 
* Limited hardware support
 
* Limited hardware support
  
 
''' TTA Other features '''
 
''' TTA Other features '''
 
* Fits the [[Matroska]] container
 
* Fits the [[Matroska]] container
 +
* Password protection
  
 
=== WavPack (WV) ===
 
=== WavPack (WV) ===
Line 621: Line 358:
 
* Error robustness
 
* Error robustness
 
* Streaming support
 
* Streaming support
* Hardware support ([http://www.rockbox.org/ RockBox])
+
* 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 [[multichannel]] audio and [[high resolution]]s
+
* Supports [[high resolution]]s
 
* Hybrid/lossy mode
 
* Hybrid/lossy mode
 
* Tagging support ([[ID3v1]], [[APE tags]])
 
* Tagging support ([[ID3v1]], [[APE tags]])
Line 629: Line 366:
 
* Pipe support
 
* Pipe support
 
* Good software support
 
* Good software support
* [[ReplayGain]] compatible
+
* Works with Android (Through third party software, such as VLC.)
 +
* Independent encoder implementation available. (FFmpeg WavPack)
  
 
''' WV cons '''
 
''' WV cons '''
* Limited hardware player support
+
* Limited hardware player support ([http://www.rockbox.org/ RockBox])
 +
* More than one tagging method allowed (Ambiguity possible, but unlikely as APEv2 tags have been the preferred method for quite some time.)
  
 
''' WV Other features '''
 
''' WV Other features '''
 +
* Can compress the Direct-Stream Digital (DSD) audio recording format
 
* Supports 32bit float streams
 
* 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 asymmetrical modes.
 
* Can encode in both symmetrical and asymmetrical modes.
Line 642: Line 383:
  
 
=== Windows Media Audio Lossless (WMAL) ===
 
=== Windows Media Audio Lossless (WMAL) ===
http://www.microsoft.com/windows/windowsmedia/9series/codecs/audio.aspx
+
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.
 
WMA Lossless is the lossless codec developed by Microsoft to be featured in their Windows Media codec portfolio.
Line 648: Line 389:
 
''' WMAL pros '''
 
''' WMAL pros '''
 
* Streaming support
 
* Streaming support
* Very good software support
 
* Hardware support (Microsoft Zune, [http://en.wikipedia.org/wiki/Gigabeat Gigabeat V and S line from Toshiba])
 
 
* Supports [[multichannel]] audio and [[high resolution]]s.
 
* Supports [[multichannel]] audio and [[high resolution]]s.
 
* Tagging support (proprietary)
 
* Tagging support (proprietary)
Line 655: Line 394:
  
 
''' WMAL cons '''
 
''' WMAL cons '''
* Rather low efficiency
+
* 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.
 +
* Extremely low efficiency
 
* Closed source
 
* Closed source
* No hybrid/lossy mode
+
* No hybrid/lossy mode (but is [[LossyWAV]] compatible)
 
* Doesn't support [[RIFF]] chunks
 
* Doesn't support [[RIFF]] chunks
* Doesn't support [[ReplayGain]]
 
  
 
''' WMAL Other features '''
 
''' WMAL Other features '''
 
* 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.
  
Most of those would have disappeared by now, but some of them are being preserved for posterity at [[User:Rjamorim|rjamorim]]'s   
+
====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 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.
 +
 
 +
====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, 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 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====
 +
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.
 +
 
 +
====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   
  
 
* Advanced Digital Audio (ADA)   
 
* Advanced Digital Audio (ADA)   
* Bonk
+
* [http://www.logarithmic.net/pfh/bonk Bonk]   
* Marian's a-Pac 
+
 
* AudioZip   
 
* AudioZip   
 
* Dakx WAV   
 
* Dakx WAV   
 
* Entis Lab MIO   
 
* Entis Lab MIO   
 
* LiteWave   
 
* LiteWave   
* LPAC
+
* [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  
 
* Pegasus SPS  
* RK Audio (RKAU)   
+
* [http://www.free-codecs.com/download/rk_audio_compressor.htm RK Audio (RKAU)]  
* Ogg Squish
+
* Ogg Squish/Tarkin
 
* Sonarc   
 
* Sonarc   
 
* VocPack   
 
* VocPack   
* WavArc   
+
* [http://www.firstpr.com.au/audiocomp/lossless/wavarc/ WavArc]  
* WaveZip/MUSICompress
+
* [http://www.firstpr.com.au/audiocomp/lossless/WaveZip/ WaveZip]/MUSICompress
  
 
== See also ==
 
== See also ==
Line 692: Line 459:
 
''Sorted based on last '''update''' date.''
 
''Sorted based on last '''update''' date.''
  
* [http://www.icer.nl/losslesstest/ Martijn van Beurden's comparison] - tries to compare all codecs and settings with a balanced pool of music (last updated 2013-08-10)
+
* [http://www.audiograaf.nl/downloads.html Martijn van Beurden's comparison] - tries to compare all codecs and settings with a balanced pool of music (last updated 2015-01-05)
* [http://synthetic-soul.co.uk/comparison/lossless/ Synthetic Soul's comparison] (last update 2007-07-28)
+
* [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>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>Hans Heijden's</s> -- used as reference to build the table (last updated 2006-07-07)
* [http://synthetic-soul.co.uk/comparison/josef/ Josef Pohm's comparison, hosted by Synthetic Soul] (last update 2006-05-29)
+
* <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)
 
* [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>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>Gruboolez'</s> -- comparing only classical music (last updated 2005-02-27)
* [http://members.home.nl/w.speek/comparison.htm Speek's] (last updated 2005-02-07)
+
* <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 '''
 
''' More on lossless compressions '''
Line 706: Line 475:
 
* Go to the [http://www.hydrogenaudio.org/forums/index.php?showtopic=33226 Hydrogenaudio thread] to discuss this article.
 
* Go to the [http://www.hydrogenaudio.org/forums/index.php?showtopic=33226 Hydrogenaudio thread] to discuss this article.
  
 +
== References ==
 +
 +
<references/>
 
[[Category:Guides]]
 
[[Category:Guides]]

Revision as of 17:50, 8 June 2021

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 fast fast slow very fast
Decoding speed[A] very fast fast fast very fast slow average very slow fast
Compression[A][B] 57.0% 57.8% 57.1% 56.0% 55.1% 58.4% 54.6% 56.6%
# presets 9 2 > 10 > 10 5 1 > 10 1
Error handling[C] yes no yes yes yes[D] yes yes yes
Tagging Vorbis tags iTunes ID3/APEv2 APEv2 APEv2 ASF ID3/APEv2 ID3v1/2 or APEv2
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] no[F] no no yes
Multichannel yes yes yes yes yes[E] yes no yes
OS support All All All Win/Wine All Win/Mac Win/Mac/Linux All
A Speed and Compression are based on each encoder's default settings and taken from this comparison.
B The Compression ratio is compressed size/uncompressed size * 100. So, lower is better.
C Error handling means that a codec can detect a corruption (flipped bit) in a file and warn the user about it, 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, though likely not, when the "Insane" preset is used.
E Since version 4.86
F Unofficial (but properly working) open source decoder is available as part of ffmpeg

Codecs

These are 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

  • Limited software support
  • No error detection/robustness[1]
  • No hybrid/lossy mode (and not LossyWAV compatible)

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 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 (which is insanely fast, and can beat any other CPU based encoder)
  • Error robustness
  • Streaming support
  • Supports multichannel. Limited to 8 channels. Channel mask in WAVEFORMATEXTENSIBLE is supported but support is not included in official specification. With reference encoder undocumented option --channel-map=none is needed to encode some non-standard layouts (e.g. 4.1; FL,FR,FC,BC), but no special options are needed with ffmpeg's encoder.
  • 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 and there is no encoder that can render to 32-bit integer

FLAC Other features

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

Monkey's Audio (APE)

https://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
  • Supports multichannel (since version 4.86). Limited to 8 channels. Channel mask in WAVEFORMATEXTENSIBLE is supported
  • Supports high resolutions
  • Simple and user friendly. Official GUI provided.
  • Java version (multiplatform)
  • Error robustness/decoding up to -c3000 (High compression)[2]
  • Tagging support (ID3v1, APE tags)
  • Supports RIFF chunks (only in the GUI encoder)
  • Pipe support (only in a special version)

APE cons

  • Problematic license (Source available, but with no modification or redistribution rights. Encourages violating the GNU GPL license of other programs.)
  • Slow decoding
  • No hybrid/lossy mode (and not LossyWAV compatible)
  • 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

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

  • Very high compression
  • Good software support
  • Error robustness
  • Streaming support
  • Supports high resolutions
  • Hybrid/lossy mode
  • Tagging support (ID3, APE tags)
  • 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
  • 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 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
  • Tagging support
  • 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
  • Doesn't support Unicode (yet)

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
  • Supports high resolutions
  • Tagging support (ID3v1, ID3v2 or APEv2)
  • Embedded CUE sheets support
  • Error robustness
  • Pipe support
  • Average compression
  • Fast encoding/decoding
  • Symmetric algorithm
  • Ultra low latency

TTA cons

  • No hybrid/lossy mode
  • Doesn't support RIFF chunks
  • Limited hardware support

TTA Other features

  • Fits the Matroska container
  • 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 (ID3v1, APE tags)
  • Supports RIFF chunks
  • Ability to create self extracting files for Win32 platform
  • 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)
  • More than one tagging method allowed (Ambiguity possible, but unlikely as APEv2 tags have been the preferred method for quite some time.)

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
  • Can encode in both symmetrical and asymmetrical modes.
  • 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

  • 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.
  • Extremely 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 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.

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, 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 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

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.

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

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 2015-01-05)
  • 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

  1. HA forum post discussing ALAC robustness
  2. http://www.hydrogenaud.io/forums/index.php?showtopic=98984&st=0&p=821420&#entry821420