Vorbis: Difference between revisions
m (→Websites: PlayOgg initiative) |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{featured}} | |||
{{Codec Infobox | {{Codec Infobox | ||
| name = Ogg Vorbis | | name = Ogg Vorbis | ||
Line 4: | Line 5: | ||
| type = lossy | | type = lossy | ||
| purpose = General audio compression at bitrates ~64-400kbps | | purpose = General audio compression at bitrates ~64-400kbps | ||
| maintainer = Christopher Montgomery, Xiph Community | | maintainer = Christopher Montgomery, Xiph Community | ||
| recommended_encoder = aoTuV | | recommended_encoder = aoTuV | ||
| recommended_text = aoTuV Release 1 | | recommended_text = aoTuV Release 1 | ||
| website = http://www.vorbis.com/ | | website = http://www.vorbis.com/ | ||
}} | }} | ||
=Introduction= | = Introduction = | ||
'''Vorbis''' (commonly used inside the [[Ogg]] container) is a fully open, non-proprietary, patent-free (subject to [http://www.hydrogenaudio.org/forums/index.php?showtopic=13531 speculation]), and royalty-free, general-purpose compressed audio format for mid to high quality (8khz-48.0kHz, 16+ bit, [[multichannel]]) audio and music at fixed and variable bitrates from 16 to >256 kbps/channel. This places vorbis in the same competitive class as audio representations such as MPEG-4 ([[AAC]]), and similar to, but higher performance than [[MP3]], TwinVQ ([[VQF]]), [[WMA]] and [[PAC]]. Vorbis is the first of a planned family of Ogg multimedia coding formats being developed as part of Xiph.org's ogg multimedia project. | '''Vorbis''' (commonly used inside the [[Ogg]] container) is a fully open, non-proprietary, patent-free (subject to [http://www.hydrogenaudio.org/forums/index.php?showtopic=13531 speculation]), and royalty-free, general-purpose compressed audio format for mid to high quality (8khz-48.0kHz, 16+ bit, [[multichannel]]) audio and music at fixed and variable bitrates from 16 to >256 kbps/channel. This places vorbis in the same competitive class as audio representations such as MPEG-4 ([[AAC]]), and similar to, but higher performance than [[MP3]], TwinVQ ([[VQF]]), [[WMA]] and [[PAC]]. Vorbis is the first of a planned family of Ogg multimedia coding formats being developed as part of Xiph.org's ogg multimedia project. | ||
Informal listening test suggests Vorbis to be comparable to MPEG-4 [[AAC]] at most bitrates and [[MPC]] at 128 kbps. Transparency is generally reached at about 150-170 kbps (-q 5) (with some exceptions). The encoder is reasonably young and unoptimized, so further improvements can always be expected. | Informal listening test suggests Vorbis to be comparable to MPEG-4 [[AAC]] at most bitrates and [[MPC]] at 128 kbps. Transparency is generally reached at about 150-170 kbps (-q 5) (with some exceptions). The encoder is reasonably young and unoptimized, so further improvements can always be expected. | ||
Unfortunately, Xiph.org has failed to improve Vorbis at a steady rate since its initial 1.0 release in July 2002 (due to other developement projects and time constraints). Since then development has been led by other coders such as [http://sjeng.org/vorbisgt3.html Garf] and [http://www.geocities.jp/aoyoume/aotuv/ Aoyumi]. | Unfortunately, Xiph.org has failed to improve Vorbis at a steady rate since its initial 1.0 release in July 2002 (due to other developement projects and time constraints). Since then development has been led by other coders such as [http://sjeng.org/vorbisgt3.html Garf] and [http://www.geocities.jp/aoyoume/aotuv/ Aoyumi]. Aoyumi's '''[[aoTuV]]''' series of encoders was incorporated into the September 2004 release of 1.1, which brought about the first quality improvements across the board for 2 years. Currently Aoyumi is working on aoTuV Beta 5 and future releases. The latest '''recommended''' version is aoTuV Release 1, which is the re-branded Beta 4.51 (released in December 2005). Unfortunately, the improvements of aoTuV Release 1 has not been incorporated yet into the 'official' Vorbis line. The latest tuning is aoTuV beta 5, which improves further on the low-bitrate quality without sacrificing compression, and <span style="color:red;">it is currently undergoing peer-review at Hydrogenaudio.</span> | ||
Vorbis has had success with many recent video game titles employing Vorbis as opposed to MP3 (with Epic Games' Unreal Tournament 2003 and Unreal Tournament 2004, the PC port of Microsoft's Halo and Uru being notable examples). Ogg Vorbis is also an official part of the [http://www.openal.org/extensions.html OpenAL] API extension library, used in many popular [http://www.openal.org/titles.html computer games]. On April 10, 2006, [http://www.radgametools.com/ RAD Game Tools] integrated Ogg Vorbis support to their Miles Sound System (MSS), which has been used in over 3,200 games worldwide. This ensures that future games utilizing MSS will have the capability to play Ogg Vorbis files. Check out [http://wiki.xiph.org/index.php/Games_that_use_Vorbis xiph wiki] for a full list of games confirmed to use Ogg Vorbis. | Vorbis has had success with many recent video game titles employing Vorbis as opposed to MP3 (with Epic Games' Unreal Tournament 2003 and Unreal Tournament 2004, the PC port of Microsoft's Halo and Uru being notable examples). (Ogg) Vorbis is also an official part of the [http://www.openal.org/extensions.html OpenAL] API extension library, used in many popular [http://www.openal.org/titles.html computer games]. On April 10, 2006, [http://www.radgametools.com/ RAD Game Tools] integrated (Ogg) Vorbis support to their Miles Sound System (MSS), which has been used in over 3,200 games worldwide. This ensures that future games utilizing MSS will have the capability to play (Ogg) Vorbis files. Check out [http://wiki.xiph.org/index.php/Games_that_use_Vorbis xiph wiki] for a full list of games confirmed to use (Ogg) Vorbis. | ||
'''Before encoding files using Ogg Vorbis, check out the [[Recommended Ogg Vorbis|Recommended Ogg Vorbis | '''Before encoding files using (Ogg) Vorbis, check out the [[Recommended Ogg Vorbis|Recommended (Ogg) Vorbis]] article to determine what encoder to use and what settings are recommended by Hydrogenaudio.''' | ||
==Pros== | == Pros == | ||
* Ogg Vorbis specification is in the public domain; it is free for commercial or noncommercial use, under both (LGPL and BSD licenes) | * (Ogg) Vorbis specification is in the public domain; it is free for commercial or noncommercial use, under both (LGPL and BSD licenes) | ||
* Easy to use high-level API (Application Programming Interface) | * Easy to use high-level API (Application Programming Interface) | ||
* Good all-round performance (>48 kbps - a leading codec at [http://www.rjamorim.com/test/multiformat128/results.html 128 kbps]) | * Good all-round performance (>48 kbps - a leading codec at [http://www.rjamorim.com/test/multiformat128/results.html 128 kbps]) | ||
* Well written [http://www.xiph.org/ogg/vorbis/docs.html specs] | * Well written [http://www.xiph.org/ogg/vorbis/docs.html specs] | ||
* Supported by most portable [[ | * Supported by most portable (Ogg) [[Vorbis#Supporting Digital Audio Players|DAPs]] | ||
* Suitable for internet-streaming (via [http://www.icecast.org/ Icecast] and other methods) | * Suitable for internet-streaming (via [http://www.icecast.org/ Icecast] and other methods) | ||
* Fully [[gapless]] playback | * Fully [[gapless]] playback | ||
Line 33: | Line 33: | ||
* Structured to allow the design for a hybrid filterbank | * Structured to allow the design for a hybrid filterbank | ||
==Cons== | == Cons == | ||
* Limited official development (third-party developement is always encouraged) | * Limited official development (third-party developement is always encouraged) | ||
* Current implementations are more computationally intensive to decode than MP3 | * Current implementations are more computationally intensive to decode than MP3 | ||
* Multichannel input mappings for 5.1, Ambisonic-B, and other configs have no channel coupling and aren't tuned (expect sub-optimal results until code is improved) | * Multichannel input mappings for 5.1, Ambisonic-B, and other configs have no channel coupling and aren't tuned (expect sub-optimal results until code is improved) | ||
=Technical Information= | = Technical Information = | ||
* Multiple block sizes for window switching including overlap (powers of two only) ''(128/1024, 256/2048, 512/4096)'' | * Multiple block sizes for window switching including overlap (powers of two only) ''(128/1024, 256/2048, 512/4096)'' | ||
* Customly designed [[window function]] is applied similiar to the sine window. it has (good sidelobe rejection) | * Customly designed [[window function]] is applied similiar to the sine window. it has (good sidelobe rejection) | ||
: | :<math>w_k = \sin{(\frac{\pi}{2} \cdot sin^2[(\pi\div2n \cdot (k+0.5))]}</math> | ||
* Psychoacoustics masking is exploited via an ([[ATH]] model) | * Psychoacoustics masking is exploited via an ([[ATH]] model) | ||
* Masking curves are computed from an ''emperically'' adjusted set of [http://www.zainea.com/masking2.htm Ehmer Curves] | * Masking curves are computed from an ''emperically'' adjusted set of [http://www.zainea.com/masking2.htm Ehmer Curves] | ||
Line 48: | Line 48: | ||
* Global masking curve is a mixture between calculated FFT+MDCT curves and ATH curves overlayed | * Global masking curve is a mixture between calculated FFT+MDCT curves and ATH curves overlayed | ||
* Floor 1 or the noise-floor (envelope) is calculated using the global masking curve & piecewise linear approximation divided by spectrum to generate the residue (fine detail). The Levinson-Durbin [http://www.data-compression.com/speech.html#ana LPC model] in Floor 0 is no longer used, however the code still exists | * Floor 1 or the noise-floor (envelope) is calculated using the global masking curve & piecewise linear approximation divided by spectrum to generate the residue (fine detail). The Levinson-Durbin [http://www.data-compression.com/speech.html#ana LPC model] in Floor 0 is no longer used, however the code still exists | ||
* [[Noise normalization]] is applied to compensate for energy lost in certain frequency bands due to quantization (rounding). | * [[Noise normalization]] is applied to compensate for energy lost in certain frequency bands due to quantization (rounding). | ||
* The channels are [[channel coupling|coupled]] ''strictly'' by residue using ([http://us.xiph.org/ogg/vorbis/doc/stereo.html point/phase stereo] and lossless) | * The channels are [[channel coupling|coupled]] ''strictly'' by residue using ([http://us.xiph.org/ogg/vorbis/doc/stereo.html point/phase stereo] and lossless) | ||
* Multistage [[Vector quantization]] is used for coding the noise-floor and residue backend using ''trained'' codebooks. | * Multistage [[Vector quantization]] is used for coding the noise-floor and residue backend using ''trained'' codebooks. | ||
* [[Huffman coding]] is used to minimize vector codeword redundancy | * [[Huffman coding]] is used to minimize vector codeword redundancy | ||
=Software= | = Software = | ||
=== Encoders === | |||
===Encoders=== | |||
* [[Oggenc]] official command-line encoder (Win32/Posix) | * [[Oggenc]] official command-line encoder (Win32/Posix) | ||
* [[OggDropXPd|OggdropXPd]] advanced drag-and-drop encoder by John33 (Win32) | * [[OggDropXPd|OggdropXPd]] advanced drag-and-drop encoder by John33 (Win32) | ||
* [[Lancer]] SSE-optimized vorbis encoder utility and libraries by BlackSword (Win32/Posix) | * [[Lancer]] SSE-optimized vorbis encoder utility and libraries by BlackSword (Win32/Posix) | ||
* [http://www.saunalahti.fi/cse/foobar2000/ foo_vorbisenc] vorbis encoder library for Foobar2000 (Win32) | * [http://www.saunalahti.fi/cse/foobar2000/ foo_vorbisenc] vorbis encoder library for Foobar2000 (Win32) | ||
===Decoders=== | === Decoders === | ||
* [http://www.rarewares.org/ogg.html OggDec] for Windows, by John33, a very featureful command line decoder (Win32) | * [http://www.rarewares.org/ogg.html OggDec] for Windows, by John33, a very featureful command line decoder (Win32) | ||
* [[Ogg123]] for Unix systems (GPL), a very simple to use command-line player. (Win32/Posix) | * [[Ogg123]] for Unix systems (GPL), a very simple to use command-line player. (Win32/Posix) | ||
Line 68: | Line 67: | ||
* [http://corevorbis.corecodec.org/ CoreVorbis] DirectShow filter (Win32) | * [http://corevorbis.corecodec.org/ CoreVorbis] DirectShow filter (Win32) | ||
=== | === Replay Gain === | ||
* [http://www.rarewares.org/ogg.html VorbisGain] to apply [[ | * [http://www.rarewares.org/ogg.html VorbisGain] to apply [[Replay Gain]] on Vorbis files (Win32) | ||
** Instructions to integrate VorbisGain into Foobar2000, Winamp, and Windows Explorer can be found in [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=41880&view=findpost&p=396612 this HA thread]<br />''A precompiled script of the procedure (in RAR format) can be found in [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=45196&view=findpost&p=397803 this HA posting]'' | ** Instructions to integrate VorbisGain into Foobar2000, Winamp, and Windows Explorer can be found in [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=41880&view=findpost&p=396612 this HA thread]<br />''A precompiled script of the procedure (in RAR format) can be found in [http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=45196&view=findpost&p=397803 this HA posting]'' | ||
** RPM packages for VorbisGain are available [http://rpm.pbone.net/index.php3?stat=3&search=vorbisgain&srodzaj=3 here], and source code for VorbisGain is available [http://sjeng.org/vorbisgain.html here] | ** RPM packages for VorbisGain are available [http://rpm.pbone.net/index.php3?stat=3&search=vorbisgain&srodzaj=3 here], and source code for VorbisGain is available [http://sjeng.org/vorbisgain.html here] | ||
* [http://www.rarewares.org/quantumknot/vorbisgain.gz VorbisGain Static GCC 4 compile] (Posix) | * [http://www.rarewares.org/quantumknot/vorbisgain.gz VorbisGain Static GCC 4 compile] (Posix) | ||
* [[foobar2000]]'s '' | * [[foobar2000]]'s ''Replay Gain scanner'' supports (Ogg) Vorbis files | ||
* [[Winamp]]'s '' | * [[Winamp]]'s ''Replay Gain Analyzer'' supports (Ogg) Vorbis files | ||
* [[MediaMonkey]]'s ''Volume Levelling'' supports Ogg Vorbis files | * [[MediaMonkey]]'s ''Volume Levelling'' supports (Ogg) Vorbis files | ||
===Splitters=== | === Splitters === | ||
The following utilities are used to splice Vorbis streams without decoding/re-encoding. | The following utilities are used to splice Vorbis streams without decoding/re-encoding. | ||
* [http://www.free-codecs.com/download/Ogg_Cutter.htm Ogg Cutter] (Win32) | * [http://www.free-codecs.com/download/Ogg_Cutter.htm Ogg Cutter] (Win32) | ||
* [http://mp3splt.sourceforge.net/ mp3splt] (Win32) | * [http://mp3splt.sourceforge.net/ mp3splt] (Win32) | ||
* [http://www.xiph.org/downloads/ vcut] (CLI tool part of the official vorbis-tools package) (Win32/Posix) | * [http://www.xiph.org/downloads/ vcut] (CLI tool part of the official vorbis-tools package) (Win32/Posix) | ||
* [http://sourceforge.net/projects/ogg-cut/ Ogg Vorbis Stream Cutter (ogg-cut)] (Posix) | * [http://sourceforge.net/projects/ogg-cut/ (Ogg) Vorbis Stream Cutter (ogg-cut)] (Posix) | ||
===Taggers=== | === Taggers === | ||
Most tagger supporting Ogg Vorbis are listed in [[download page#Tagging Utilities|the download page]]. | Most tagger supporting (Ogg) Vorbis are listed in [[download page#Tagging Utilities|the download page]]. | ||
* [http://www.rarewares.org/files/ogg/vorbiscomment-1.1.1.zip Vorbis Comment] | * [http://www.rarewares.org/files/ogg/vorbiscomment-1.1.1.zip Vorbis Comment] | ||
=Supported Digital Audio Players= | = Supported Digital Audio Players = | ||
The following list contains some players that support Vorbis playback. | The following list contains some players that support Vorbis playback. | ||
* [[Apple iPod]] with [[Rockbox]] firmware -- check out this [http://www.hydrogenaudio.org/forums/index.php?s=32eeac65958144db631c8a739b41983c&showtopic=40992 HA thread] | * [[Apple iPod]] with [[Rockbox]] firmware -- check out this [http://www.hydrogenaudio.org/forums/index.php?s=32eeac65958144db631c8a739b41983c&showtopic=40992 HA thread] | ||
* [http://www.ifreemax.com/ FreeMax] FW-960 | * [http://www.ifreemax.com/ FreeMax] FW-960 | ||
* [http://www.iaudiophile.net/ iAudio] [[IAudio M3|M3]], U2, G3, X5, I5; X5 with [[Rockbox]] firmware | * [http://www.iaudiophile.net/ iAudio] [[IAudio M3|M3]], U2, G3, X5, I5; X5 with [[Rockbox]] firmware | ||
* [[iRiver H-Series]] with [[Rockbox]] firmware. | * [[iRiver H-Series]] with [[Rockbox]] firmware. | ||
* [[MPIO H-Series]] | * [[MPIO H-Series]] | ||
* [[Neuros]] with [[Rockbox]] firmware. | * [[Neuros]] with [[Rockbox]] firmware. | ||
* [[Rio Karma]] | * [[Rio Karma]] | ||
* [http://www.samsung.com/Products Samsung] | * [http://www.samsung.com/Products Samsung] | ||
* [http://www.slimdevices.com/ Slim Devices: Squeezebox] External player | * [http://www.slimdevices.com/ Slim Devices: Squeezebox] External player | ||
* [http://www.yepp.co.kr/ Yepp] YP-T6, YP-T7, YP-C1, YP-F1, YP-53 (Firmware 1.200), other.. | * [http://www.yepp.co.kr/ Yepp] YP-T6, YP-T7, YP-C1, YP-F1, YP-53 (Firmware 1.200), other.. | ||
Line 104: | Line 103: | ||
A longer list can be found at [http://wiki.xiph.org/index.php/PortablePlayers xiph's wiki]. | A longer list can be found at [http://wiki.xiph.org/index.php/PortablePlayers xiph's wiki]. | ||
'''Important note:''' There may be players out there that support Ogg Vorbis, although they are not marketed as such. | '''Important note:''' There may be players out there that support (Ogg) Vorbis, although they are not marketed as such. | ||
=External links= | = External links = | ||
The following links contain information surrounding the Ogg Vorbis codec that can be found on Hydrogenaudio and elsewhere throughout the web. | The following links contain information surrounding the (Ogg) Vorbis codec that can be found on Hydrogenaudio and elsewhere throughout the web. | ||
===Hydrogenaudio Wiki=== | === Hydrogenaudio Wiki === | ||
* [[Ogg]] (Container) | * [[Ogg]] (Container) | ||
* [[Listening Tests#Multiformat Tests|Listening tests comparing Vorbis against MP3, AAC, WMA, etc.]] | * [[Listening Tests#Multiformat Tests|Listening tests comparing Vorbis against MP3, AAC, WMA, etc.]] | ||
Line 115: | Line 114: | ||
* [[EAC and Ogg Vorbis|Configuring EAC and Vorbis as an external command-line encoder]] | * [[EAC and Ogg Vorbis|Configuring EAC and Vorbis as an external command-line encoder]] | ||
===Websites=== | === Websites === | ||
* [http://www.vorbis.com Vorbis official website] (updated continually) | * [http://www.vorbis.com Vorbis official website] (updated continually) | ||
* [http://en.wikipedia.org/wiki/Vorbis Vorbis at Wikipedia] | * [http://en.wikipedia.org/wiki/Vorbis Vorbis at Wikipedia] | ||
* [http://www.playogg.org/ PlayOgg initiative] by the [http://www.fsf.org/ Free Software Foundation] | * [http://www.playogg.org/ PlayOgg initiative] by the [http://www.fsf.org/ Free Software Foundation] | ||
* [http://www.audiocoding.com/modules/wiki/?page=Ogg+Vorbis Ogg Vorbis at AudioCoding] | * [http://www.audiocoding.com/modules/wiki/?page=Ogg+Vorbis (Ogg) Vorbis at AudioCoding] | ||
* [http://www.rarewares.org/ogg.html Ogg Vorbis binaries at Rarewares] | * [http://www.rarewares.org/ogg.html (Ogg) Vorbis binaries at Rarewares] | ||
* [http://www.geocities.jp/aoyoume/aotuv/ Aoyumi's homepage of tuned versions of Vorbis encoder and current beta binaries] | * [http://www.geocities.jp/aoyoume/aotuv/ Aoyumi's homepage of tuned versions of Vorbis encoder and current beta binaries] | ||
* [http://homepage3.nifty.com/blacksword/index_e.htm The Ogg Vorbis Acceleration Project] -- Archer/[[Lancer]] homepage for optimized versions of aoTuV Vorbis encoder and other SSE optmizations | * [http://homepage3.nifty.com/blacksword/index_e.htm The (Ogg) Vorbis Acceleration Project] -- Archer/[[Lancer]] homepage for optimized versions of aoTuV Vorbis encoder and other SSE optmizations | ||
* [http://www.xiph.org/ Xiph.org Foundation] | * [http://www.xiph.org/ Xiph.org Foundation] | ||
===Scientific/R&D=== | === Scientific/R&D === | ||
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=20132&st=0 Noise Normalization and HF Boost problem solution that ultimatly lead to the aoTuV tunings (HA Thread)] | * [http://www.hydrogenaudio.org/forums/index.php?showtopic=20132&st=0 Noise Normalization and HF Boost problem solution that ultimatly lead to the aoTuV tunings (HA Thread)] | ||
* [http://www.free-comp-shop.com/vorbis.pdf Keith Wright rendition of understanding the MDCT in Vorbis by defining it's basic trig properties (PDF)] | * [http://www.free-comp-shop.com/vorbis.pdf Keith Wright rendition of understanding the MDCT in Vorbis by defining it's basic trig properties (PDF)] | ||
* [http://www.mp3-tech.org/programmer/docs/embedded_vorbis_thesis.pdf Ogg Vorbis decoder for an embedded system (Master Thesis in PDF)] | * [http://www.mp3-tech.org/programmer/docs/embedded_vorbis_thesis.pdf (Ogg) Vorbis decoder for an embedded system (Master Thesis in PDF)] | ||
* [http://wiki.xiph.org/index.php/Bounties Xiph.org Vorbis bounties] | * [http://wiki.xiph.org/index.php/Bounties Xiph.org Vorbis bounties] | ||
[[Category:Lossy]] | [[Category:Lossy]] |
Revision as of 14:45, 13 June 2007
Ogg Vorbis | |
---|---|
General audio compression at bitrates ~64-400kbps | |
Developer(s) | Christopher Montgomery, Xiph Community |
Release | TBC |
Type | Lossy |
Recommended encoder | aoTuV Release 1 |
Website | http://www.vorbis.com/ |
Introduction
Vorbis (commonly used inside the Ogg container) is a fully open, non-proprietary, patent-free (subject to speculation), and royalty-free, general-purpose compressed audio format for mid to high quality (8khz-48.0kHz, 16+ bit, multichannel) audio and music at fixed and variable bitrates from 16 to >256 kbps/channel. This places vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MP3, TwinVQ (VQF), WMA and PAC. Vorbis is the first of a planned family of Ogg multimedia coding formats being developed as part of Xiph.org's ogg multimedia project.
Informal listening test suggests Vorbis to be comparable to MPEG-4 AAC at most bitrates and MPC at 128 kbps. Transparency is generally reached at about 150-170 kbps (-q 5) (with some exceptions). The encoder is reasonably young and unoptimized, so further improvements can always be expected.
Unfortunately, Xiph.org has failed to improve Vorbis at a steady rate since its initial 1.0 release in July 2002 (due to other developement projects and time constraints). Since then development has been led by other coders such as Garf and Aoyumi. Aoyumi's aoTuV series of encoders was incorporated into the September 2004 release of 1.1, which brought about the first quality improvements across the board for 2 years. Currently Aoyumi is working on aoTuV Beta 5 and future releases. The latest recommended version is aoTuV Release 1, which is the re-branded Beta 4.51 (released in December 2005). Unfortunately, the improvements of aoTuV Release 1 has not been incorporated yet into the 'official' Vorbis line. The latest tuning is aoTuV beta 5, which improves further on the low-bitrate quality without sacrificing compression, and it is currently undergoing peer-review at Hydrogenaudio.
Vorbis has had success with many recent video game titles employing Vorbis as opposed to MP3 (with Epic Games' Unreal Tournament 2003 and Unreal Tournament 2004, the PC port of Microsoft's Halo and Uru being notable examples). (Ogg) Vorbis is also an official part of the OpenAL API extension library, used in many popular computer games. On April 10, 2006, RAD Game Tools integrated (Ogg) Vorbis support to their Miles Sound System (MSS), which has been used in over 3,200 games worldwide. This ensures that future games utilizing MSS will have the capability to play (Ogg) Vorbis files. Check out xiph wiki for a full list of games confirmed to use (Ogg) Vorbis.
Before encoding files using (Ogg) Vorbis, check out the Recommended (Ogg) Vorbis article to determine what encoder to use and what settings are recommended by Hydrogenaudio.
Pros
- (Ogg) Vorbis specification is in the public domain; it is free for commercial or noncommercial use, under both (LGPL and BSD licenes)
- Easy to use high-level API (Application Programming Interface)
- Good all-round performance (>48 kbps - a leading codec at 128 kbps)
- Well written specs
- Supported by most portable (Ogg) DAPs
- Suitable for internet-streaming (via Icecast and other methods)
- Fully gapless playback
- High potential for further tuning
- Structured to allow the design for a hybrid filterbank
Cons
- Limited official development (third-party developement is always encouraged)
- Current implementations are more computationally intensive to decode than MP3
- Multichannel input mappings for 5.1, Ambisonic-B, and other configs have no channel coupling and aren't tuned (expect sub-optimal results until code is improved)
Technical Information
- Multiple block sizes for window switching including overlap (powers of two only) (128/1024, 256/2048, 512/4096)
- Customly designed window function is applied similiar to the sine window. it has (good sidelobe rejection)
- Psychoacoustics masking is exploited via an (ATH model)
- Masking curves are computed from an emperically adjusted set of Ehmer Curves
- Modified Discrete Cosine Transform (MDCT) is used for noise analysis
- Fast Fourier Transform (FFT) is used for tonal analysis
- Global masking curve is a mixture between calculated FFT+MDCT curves and ATH curves overlayed
- Floor 1 or the noise-floor (envelope) is calculated using the global masking curve & piecewise linear approximation divided by spectrum to generate the residue (fine detail). The Levinson-Durbin LPC model in Floor 0 is no longer used, however the code still exists
- Noise normalization is applied to compensate for energy lost in certain frequency bands due to quantization (rounding).
- The channels are coupled strictly by residue using (point/phase stereo and lossless)
- Multistage Vector quantization is used for coding the noise-floor and residue backend using trained codebooks.
- Huffman coding is used to minimize vector codeword redundancy
Software
Encoders
- Oggenc official command-line encoder (Win32/Posix)
- OggdropXPd advanced drag-and-drop encoder by John33 (Win32)
- Lancer SSE-optimized vorbis encoder utility and libraries by BlackSword (Win32/Posix)
- foo_vorbisenc vorbis encoder library for Foobar2000 (Win32)
Decoders
- OggDec for Windows, by John33, a very featureful command line decoder (Win32)
- Ogg123 for Unix systems (GPL), a very simple to use command-line player. (Win32/Posix)
- illiminable Ogg Directshow Filters also plays Speex, Theora and FLAC (Win32)
- XiphQT (Xiph's QuickTime Components) allows playback in QuickTime/iTunes (Win32/MacPPC/MacIntel)
- CoreVorbis DirectShow filter (Win32)
Replay Gain
- VorbisGain to apply Replay Gain on Vorbis files (Win32)
- Instructions to integrate VorbisGain into Foobar2000, Winamp, and Windows Explorer can be found in this HA thread
A precompiled script of the procedure (in RAR format) can be found in this HA posting - RPM packages for VorbisGain are available here, and source code for VorbisGain is available here
- Instructions to integrate VorbisGain into Foobar2000, Winamp, and Windows Explorer can be found in this HA thread
- VorbisGain Static GCC 4 compile (Posix)
- foobar2000's Replay Gain scanner supports (Ogg) Vorbis files
- Winamp's Replay Gain Analyzer supports (Ogg) Vorbis files
- MediaMonkey's Volume Levelling supports (Ogg) Vorbis files
Splitters
The following utilities are used to splice Vorbis streams without decoding/re-encoding.
- Ogg Cutter (Win32)
- mp3splt (Win32)
- vcut (CLI tool part of the official vorbis-tools package) (Win32/Posix)
- (Ogg) Vorbis Stream Cutter (ogg-cut) (Posix)
Taggers
Most tagger supporting (Ogg) Vorbis are listed in the download page.
Supported Digital Audio Players
The following list contains some players that support Vorbis playback.
- Apple iPod with Rockbox firmware -- check out this HA thread
- FreeMax FW-960
- iAudio M3, U2, G3, X5, I5; X5 with Rockbox firmware
- iRiver H-Series with Rockbox firmware.
- MPIO H-Series
- Neuros with Rockbox firmware.
- Rio Karma
- Samsung
- Slim Devices: Squeezebox External player
- Yepp YP-T6, YP-T7, YP-C1, YP-F1, YP-53 (Firmware 1.200), other..
A longer list can be found at xiph's wiki.
Important note: There may be players out there that support (Ogg) Vorbis, although they are not marketed as such.
External links
The following links contain information surrounding the (Ogg) Vorbis codec that can be found on Hydrogenaudio and elsewhere throughout the web.
Hydrogenaudio Wiki
- Ogg (Container)
- Listening tests comparing Vorbis against MP3, AAC, WMA, etc.
- Recommended settings for encoding with Vorbis and its related HA thread
- Configuring EAC and Vorbis as an external command-line encoder
Websites
- Vorbis official website (updated continually)
- Vorbis at Wikipedia
- PlayOgg initiative by the Free Software Foundation
- (Ogg) Vorbis at AudioCoding
- (Ogg) Vorbis binaries at Rarewares
- Aoyumi's homepage of tuned versions of Vorbis encoder and current beta binaries
- The (Ogg) Vorbis Acceleration Project -- Archer/Lancer homepage for optimized versions of aoTuV Vorbis encoder and other SSE optmizations
- Xiph.org Foundation