Difference between revisions of "Vorbis"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
m (Reverted edit of Kuza37, changed back to last version by Thorna)
Line 1: Line 1:
 +
[[image:fish.png|right|]]
 +
 
=Introduction=
 
=Introduction=
 
'''Vorbis''' ([http://www.vorbis.com www.vorbis.com]) 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 [[MP3]], TwinVQ ([[VQF]]), [[WMA]] and [[PAC]].
 
'''Vorbis''' ([http://www.vorbis.com www.vorbis.com]) 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 [[MP3]], TwinVQ ([[VQF]]), [[WMA]] and [[PAC]].
Line 13: Line 15:
 
* Free (as in speech), Open Source and claimed to be patent free
 
* Free (as in speech), Open Source and claimed to be patent free
 
* 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/vorbis/doc/ specs]
+
* Well written [http://www.xiph.org/ogg/vorbis/docs.html specs]
 
* Several portable [http://wiki.hydrogenaudio.org/index.php?title=Ogg_Vorbis#Hardware hardware players]
 
* Several portable [http://wiki.hydrogenaudio.org/index.php?title=Ogg_Vorbis#Hardware hardware players]
 
* 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)
Line 24: Line 26:
 
* Current implementations are more computationally intensive to encode and decode than MP3 (Vorbis 2.0 seeks to overcome this limitation by slimlining the encoder)
 
* Current implementations are more computationally intensive to encode and decode than MP3 (Vorbis 2.0 seeks to overcome this limitation by slimlining the encoder)
 
* Multichannel input mappings for 5.1, Ambisonic-B, and other config 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 config have no channel coupling and aren't tuned (expect sub-optimal results until code is improved).
 +
 +
=Technical details used in compression=
 +
* Multiple block sizes for window switching including overlap (varies for different modes, powers of two only)
 +
* Customly designed [[window function]] is applied similiar to the sine window '''<small>wk = sin(PI/2*sin^2[PI/2n*(k+0.5)])</small>''' (good sidelobe rejection)
 +
* Psychoacoustics masking exploited via an ([[ATH]] model)
 +
* Masking curves derived from ''emperically'' adjusted set of [http://www.zainea.com/masking2.htm 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.
 +
* The noise-floor (envelope) is calculate using global masking curve & piecewise linear approximation divded by spectrum to generate the residue (fine detail).
 +
* [[Noise normalization]] is applied to compensate for energy lost in certain frequency bands due to quantization ''(main cause metallic warbling in MP3)''
 +
* The channels are 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.
 +
* [[Huffman coding]] is used to minimize vector codeword redundancy.
 +
 +
=Software=
 +
'''Encoders'''
 +
* [[Oggenc]] official command-line encoder (Win32/Posix).
 +
* [http://www.rarewares.org/ogg.html OggdropXPd] advanced drag-and-drop encoder by John33 (Win32)
 +
* [http://www.saunalahti.fi/cse/foobar2000/ foo_vorbisenc] vorbis encoder library for Foobar2000 (Win32)
 +
 +
'''Decoders'''
 +
* [[Ogg123]] for Unix systems (GPL), a very simple to use command-line player. (Win32/Posix)
 +
* [http://www.rarewares.org/ogg.html OggDec] for Windows, by John33, a very featureful command line decoder. (Win32)
 +
* [http://qtcomponents.sourceforge.net/ QuickTime Component] (Allows playback in [[QuickTime]]/[[iTunes]]) (Win32)
 +
* [http://corevorbis.corecodec.org/ CoreVorbis] (DirectShow) (Win32)
 +
* [http://www.illiminable.com/ogg/ illiminable Ogg Directshow Filters] (Also plays Speex, Theora and FLAC) (Win32)
 +
 +
 +
=Supported Digital Audio Players=
 +
The following list contains some players that support Vorbis playback.
 +
A [http://wiki.xiph.org/index.php/PortablePlayers longer list] can be found at xiph's wiki.
 +
* [[iRiver H-Series]]
 +
* [[MPIO H-Series]]
 +
* [[Rio Karma]]
 +
* [http://www.ifreemax.com/ FreeMax] FW-960
 +
* [http://www.iaudiophile.net/ iAudio] [[IAudio M3|M3]], U2, G3, 5
 +
* [[Neuros]]
 +
* [http://www.samsung.com/Products Samsung]
 +
* [http://www.yepp.co.kr/ Yepp] YP-T6, YP-T7, YP-C1, YP-F1
 +
 +
 +
=External links=
 +
The following links contain information surrounding the Ogg Vorbis codec that can be found on Hydrogenaudio and elsewhere throughout the web.
 +
 +
* [[Ogg]] (Container)
 +
* [http://www.vorbis.com Vorbis official website] (requires updating)
 +
* [http://en.wikipedia.org/wiki/Vorbis Vorbis at Wikipedia.]
 +
* [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.rjamorim.com/test/ Listening tests comparing Vorbis against MP3, AAC, WMA, etc.]
 +
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=15049 Recommended settings thread for encoding with Vorbis.]
 +
* [http://wiki.hydrogenaudio.org/index.php?title=EAC_and_Ogg_Vorbis Configuring EAC and Vorbis as an external command-line encoder]
 +
* [http://www.geocities.jp/aoyoume/aotuv/ Aoyumi homepage tuned versions of Vorbis 1.1 encoder and current beta binaries.] 
 +
* [http://homepage3.nifty.com/blacksword/index_e.htm Archer/Lancer homepage optimized versions of AoTuV Beta 3 Vorbis encoder and other SSE optmizations. ]
 +
* [http://www.free-comp-shop.com/vorbis.pdf Keith Wright rendition of understanding the MDCT in Vorbis by defineing it's basic trig properties (good read)]
 +
* [http://www.xiph.org Xiph.org Foundation]
 +
* [http://wiki.xiph.org/index.php/Bounties Xiph.org Vorbis bounties]

Revision as of 05:01, 9 October 2005

Introduction

Vorbis (www.vorbis.com) 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 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 4 and future releases.

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). It's also an official part of the OpenAL extension library.

Pros

  • Free (as in speech), Open Source and claimed to be patent free
  • Good all-round performance (>48 kbps - a leading codec at 128 kbps)
  • Well written specs
  • Several portable hardware players
  • 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 encode and decode than MP3 (Vorbis 2.0 seeks to overcome this limitation by slimlining the encoder)
  • Multichannel input mappings for 5.1, Ambisonic-B, and other config have no channel coupling and aren't tuned (expect sub-optimal results until code is improved).

Technical details used in compression

  • Multiple block sizes for window switching including overlap (varies for different modes, powers of two only)
  • Customly designed window function is applied similiar to the sine window wk = sin(PI/2*sin^2[PI/2n*(k+0.5)]) (good sidelobe rejection)
  • Psychoacoustics masking exploited via an (ATH model)
  • Masking curves derived from 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.
  • The noise-floor (envelope) is calculate using global masking curve & piecewise linear approximation divded by spectrum to generate the residue (fine detail).
  • Noise normalization is applied to compensate for energy lost in certain frequency bands due to quantization (main cause metallic warbling in MP3)
  • 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)
  • foo_vorbisenc vorbis encoder library for Foobar2000 (Win32)

Decoders


Supported Digital Audio Players

The following list contains some players that support Vorbis playback. A longer list can be found at xiph's wiki.


External links

The following links contain information surrounding the Ogg Vorbis codec that can be found on Hydrogenaudio and elsewhere throughout the web.