Vorbis

From Infogalactic: the planetary knowledge core
(Redirected from Libvorbis)
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Vorbis
Filename extension .ogg .oga
Internet media type application/ogg, audio/ogg, audio/vorbis, audio/vorbis-config
Developed by Xiph.Org Foundation
Initial release May 8, 2000 (2000-05-08)[1][2]
Latest release
Vorbis I
(February 3, 2012 (2012-02-03)[3])
Type of format Audio compression format
Contained by Ogg, Matroska, WebM
Standard Specification
Open format? Yes[4]
Website http://xiph.org/vorbis/
libvorbis
Developer(s) Xiph.Org Foundation
Initial release July 19, 2002 (2002-07-19)
Stable release 1.3.5 / March 3, 2015; 9 years ago (2015-03-03)
Written in C
Type Audio codec, reference implementation
License BSD-style license[5][6]
Website Xiph.org downloads

Vorbis is a free and open-source software project headed by the Xiph.Org Foundation (formerly Xiphophorus company). The project produces an audio coding format and software reference encoder/decoder (codec) for lossy audio compression. Vorbis is most commonly used in conjunction with the Ogg container format[7] and it is therefore often referred to as Ogg Vorbis.

Vorbis is a continuation of audio compression development started in 1993 by Chris Montgomery.[8][9] Intensive development began following a September 1998 letter from the Fraunhofer Society announcing plans to charge licensing fees for the MP3 audio format.[10][11] The Vorbis project started as part of the Xiphophorus company's Ogg project (also known as OggSquish multimedia project).[12][13] Chris Montgomery began work on the project and was assisted by a growing number of other developers. They continued refining the source code until the Vorbis file format was frozen for 1.0 in May 2000[1][2][14] and a stable version (1.0) of the reference software was released on July 19, 2002.[15][16][17]

The Xiph.Org Foundation maintains a reference implementation, libvorbis.[18] There are also some fine-tuned forks, most notably aoTuV, that offer better audio quality, particularly at low bitrates. These improvements are periodically merged back into the reference codebase.

Name

"Vorbis" is named after a Discworld character, Exquisitor Vorbis in Small Gods by Terry Pratchett.[9] The Ogg format, however, is not named after Nanny Ogg, another Discworld character; the name is in fact derived from ogging, jargon that arose in the computer game Netrek.[9]

Usage

The Vorbis format has proven popular among supporters of free software.[19] They argue that its higher fidelity and completely free nature, unencumbered by patents, make it a well-suited replacement for patented and restricted formats like MP3.

Low-bitrate Vorbis Example

Vorbis has different uses for consumer products. Many video game titles store in-game audio as Vorbis, including Amnesia: The Dark Descent, Grand Theft Auto: San Andreas, Halo: Combat Evolved, Minecraft, and World of Warcraft, among others.[citation needed] Popular software players support Vorbis playback either natively or through an external plugin. A number of websites, including Wikipedia, use it.[20][21][22][23] Others include Jamendo and Mindawn, as well as several national radio stations[20] like JazzRadio, Absolute Radio, NPR, Radio New Zealand[24] and Deutschlandradio.[25] The Spotify audio streaming service uses Vorbis for its audio streams.[26] Also, the French music site Qobuz offers its customers the possibility to download their purchased songs in Vorbis format.[27]

Quality

Vorbis had been shown to perform significantly better than many other lossy audio formats in the past in that it produced smaller files at equivalent or higher quality while retaining computational complexity comparable to other MDCT formats such as AAC or Windows Media Audio.[28][29] However, by 2014, not many further significant tests had been made.

Listening tests have attempted to find the best quality lossy audio codecs at certain bitrates. Some conclusions made by listening tests:

  • Low bitrate (fewer than 64 kbit/s): the most recent (2007) public multiformat test at 48 kbit/s showed that aoTuV Vorbis had a better quality than WMA and LC-AAC, the same quality as WMA Professional, and a lower quality than HE-AAC.[30]
  • Mid to low bitrates (fewer than 128 kbit/s down to 64 kbit/s): private tests in 2005 at 80 kbit/s and 96 kbit/s showed that aoTuV Vorbis had a better quality than other lossy audio formats (LC-AAC, HE-AAC, MP3, MPC, WMA).[31][32]
  • High bitrates (greater than 128 kbit/s): most people do not hear significant differences. However, trained listeners can often hear significant differences between codecs at identical bitrates, and aoTuV Vorbis performed better than LC-AAC, MP3, and MPC.[33]

Due to the ever-evolving nature of audio codecs, the results of many of these tests have become outdated.

Listening tests

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Listening tests are normally carried out as ABX tests, i.e., the listener has to identify an unknown sample X as being A or B, with A (the original) and B (the encoded version) available for reference. The outcome of a test must be statistically significant. This setup ensures that the listener is not biased by his/her expectations, and that the outcome is very unlikely to be the result of chance. If sample X can be identified reliably, the listener can assign a score as a subjective judgment of the quality. Otherwise, the encoded version is considered to be transparent. Below are links to several listening test results.

  • 2005, July comparison - AAC vs MP3 vs Vorbis vs WMA at 80 kbit/s. States that Vorbis aoTuV beta 4 is the best encoder for either classical or various music in this bitrate, and that its quality is comparable to the LAME ABR MP3 at 128 kbit/s.[31]
  • 2005, August comparison - AAC vs MP3 vs Vorbis vs WMA at 96 kbit/s. States that Vorbis aoTuV beta 4 and AAC are tied as the best encoders for classical music in this bitrate, while aoTuV beta 4 is the best encoder for pop music, even better than LAME at 128 kbit/s.[32]
  • 2005, August comparison - MPC vs Vorbis vs MP3 vs AAC at 180 kbit/s. An audiophile listening test, which states that, for classical music, Vorbis aoTuV beta 4 has 93% percent probability of being the best encoder, tied with MPC. MPC is tied with both Vorbis, in the first place, and LAME in the second.[33]
  • 2011, April comparison by Hydrogenaudio - Vorbis vs HE-AAC vs Opus at 64 kbit/s. Vorbis was on average between the LC-AAC low anchor and Nero HE-AAC, while the upcoming Opus (by Xiph) was best.[34]

Characteristic artifacts

As with most modern formats, the most consistently cited problem with Vorbis is pre-echo, a faint copy of a sharp attack that occurs just before the actual sound (this artifact is most obvious when reproducing the sound of castanets).

When the bitrate is too low to encode the audio without perceptible loss, Vorbis exhibits an analog noise-like failure mode, which can be described as reverberations in a room or amphitheater. Vorbis's behavior is due to the noise floor approach to encoding; see technical details.

Technical details

Vorbis nominal bitrate at quality levels for 44.1 kHz stereo input. The new libvorbis v1.2 usually compresses better than these values (effective bitrate may vary).
Quality Nominal Bitrate
Official Xiph.Org Foundation Vorbis aoTuV beta 3 and later
-q-2 not available 32 kbit/s
-q-1 45 kbit/s 48 kbit/s
-q0 64 kbit/s
-q1 80 kbit/s
-q2 96 kbit/s
-q3 112 kbit/s
-q4 128 kbit/s
-q5 160 kbit/s
-q6 192 kbit/s
-q7 224 kbit/s
-q8 256 kbit/s
-q9 320 kbit/s
-q10 500 kbit/s

Vorbis is intended for sample rates from 8 kHz telephony to 192 kHz digital masters and a range of channel representations (monaural, polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255 discrete channels).[35] Given 44.1 kHz (standard CD audio sampling frequency) stereo input, the encoder will produce output from roughly 45 to 500 kbit/s (32 to 500 kbit/s for aoTuV tunings) depending on the specified quality setting. Quality setting goes from −0.1 to 1.0 for the Xiph library and −0.2 to 1.0 for aoTuV. Encoding front-ends map these values to an integer-based quality setting that goes from −1 to 10 for the Xiph library and −2 to 10 for aoTuV. Files encoded with a given quality setting should have the same quality of sound in all versions of the encoder, but newer versions should be able to achieve that quality with a lower bitrate. The bit rates mentioned above are only approximate; Vorbis is inherently variable-bitrate (VBR), so bitrate may vary considerably from sample to sample. (It is a free-form variable-bitrate codec and packets have no minimum size, maximum size, or fixed/expected size.[3])

Vorbis aims to be more efficient than MP3, with data compression transparency being available at lower bitrates.

Outline of coder algorithm

Vorbis I is a forward-adaptive monolithic transform codec based on the modified discrete cosine transform (MDCT).[36] Vorbis uses the modified discrete cosine transform for converting sound data from the time domain to the frequency domain. The resulting frequency-domain data is broken into noise floor and residue components, and then quantized and entropy coded using a codebook-based vector quantization algorithm. The decompression algorithm reverses these stages. The noise floor approach gives Vorbis its characteristic analog noise-like failure mode when the bitrate is too low to encode the audio without perceptible loss. The sound of compression artifacts at low bitrates can be perhaps described as reverberations in an amphitheater or a room.

Tuned versions

Various tuned versions of the encoder (Garf, aoTuV or MegaMix) attempt to provide better sound at a specified quality setting, usually by dealing with certain problematic waveforms by temporarily increasing the bitrate. Most of the tuned versions of Vorbis attempt to fix the pre-echo problem and to increase the sound quality of lower quality settings (-q-2 through -q4). Some tuning suggestions created by the Vorbis user community (especially the aoTuV beta 2 tunings) have been incorporated into the 1.1.0 release.[37]

Bitrate peeling

The Vorbis format supports bitrate peeling for reducing the bitrate of already encoded files without re-encoding, and several experimental implementations exist.[38][39] However, the quality is "unusable",[38] and markedly inferior to decoding and re-encoding.

The reason that peeling programs degrade quality so severely is that the format does not specify the relative importance of signal data, and existing encoders do not order the data in order of importance, hence peelers cannot easily determine if data is important or not.

Container formats

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Vorbis streams can be encapsulated in other media container formats besides Ogg.[40] A commonly used alternative is Matroska. It is also used in WebM, a container format based on a subset of Matroska.[41][42][43] Vorbis streams can also be encapsulated in an RTP payload format.[44]

Metadata

Vorbis metadata, called Vorbis comments, supports metadata tags similar to those implemented in the ID3 standard for MP3. The metadata is stored in a vector of eight-bit-clean strings of arbitrary length and size. The size of the vector and the size of each string in bytes is limited to 232-1 (about 4.3 billion, or any positive integer that can be expressed in 32 bits). This vector is stored in the second header packet that begins a Vorbis bitstream.[45]

The strings are assumed to be encoded as UTF-8. Music tags are typically implemented as strings of the form "[TAG]=[VALUE]", for instance, "ARTIST=The John Smith Band". The tags are case-insensitive, thus typing "ARTIST=The John Smith Band" would be the same as "artist=The John Smith Band". Like the current version of ID3, users and encoding software are free to use whichever tags are appropriate for the content. For example, an encoder could use localized tag labels, live music tracks might contain a "Venue=" tag or files could have multiple genre definitions. Most applications also support common de facto standards such as discnumber and ReplayGain information.

Licensing

Knowledge of Vorbis' specifications is in the public domain.[5] Concerning the specification itself, the Xiph.Org Foundation reserves the right to set the Vorbis specification and certify compliance. Its libraries are released under the revised 3-clause BSD license and its tools are released under the GNU General Public License. The libraries were originally released under the GNU Lesser General Public Licence, but a BSD license was later chosen with the endorsement of Richard Stallman.[46] The Xiph.Org Foundation states that Vorbis, like all its developments, is completely free from the licensing or patent issues raised by other proprietary formats such as MP3. Although the Xiph.Org Foundation states it has conducted a patent search that supports its claims, outside parties (notably engineers working on rival formats) have expressed doubt that Vorbis is free of patented technology.[47]

The Xiph.Org Foundation has not released an official statement on the patent status of Vorbis, pointing out that such a statement is technically impossible due to the number and scope of patents in existence and the questionable validity of many of them. Such issues can only be resolved by a court of law.

Vorbis is supported by several large digital audio player manufacturers such as Samsung, SanDisk, Rio, Neuros Technology, Cowon, and iriver.

Support

Hardware

Tremor, a version of the Vorbis decoder which uses fixed-point arithmetic (rather than floating point), was made available to the public on September 2, 2002 (also under a BSD-style license).[48] Tremor, or platform specific versions based on it, is more suited to implementation on the limited facilities available in commercial portable players. A number of versions that make adjustments for specific platforms and include customized optimizations for given embedded microprocessors have been produced. Several hardware manufacturers have expressed[citation needed] intentions to produce Vorbis-compliant devices and new Vorbis devices seem to be appearing at a steady rate.[citation needed]

  • Tizen devices
  • Openmoko Neo 1973 and Neo Freerunner
  • Devices based on Google's Android platform support Ogg Vorbis media files.[49][50]
  • Digital audio players such as Cowon's D2 and iAudio X5 ship with Ogg Vorbis support.
  • Samsung YP series of digital audio players[51] ships with Ogg Vorbis support.
  • The majority of iriver devices provide Ogg Vorbis support up to Q10 bitrates.[52][53][54] (as July 2008)
  • Cowon C2 (Ogg and FLAC support)
  • Sandisk added Vorbis capability to the 1.01.29 firmware for the Sansa Clip player. (added in May 2008)
  • Sandisk added Vorbis capability for the Sansa Fuze player in the 1.01.15 firmware update. (added October 3, 2008)
  • Sandisk Sansa Clip+
  • Sandisk Sansa Fuze+
  • Meizu's M6 and M3 Digital Audio Players
  • Elta 8844 MPEG4 DVD/DivX player can play music files in both MP3 or Ogg Vorbis format
  • Vedia A10 plays Ogg Vorbis and FLAC in addition to MP3, AAC and other formats
  • S1 MP3 Players also supports Ogg Vorbis since at least 2006, though this is not typically listed on the player's packaging.
  • GamePark Holding's Linux based portable gaming consoles (GP32, GP2X F100-F200, GP2X Wiz) officially support Ogg Vorbis.
  • Pioneer XW-NAV1K
  • RIM BlackBerry 9800 "Torch" and 9670 "Style"
  • VDO Dayton CD1737X car radio supports 8-192kbit/s Ogg Vorbis files
  • HP TouchPad was given support for Ogg Vorbis with the webOS 3.0.4 update

Apple's iPod does not natively support Vorbis but through the use of Rockbox, an open-source firmware project, is capable of decoding Vorbis files on certain models. Similar statements apply to other devices capable of running Rockbox, as well. The Xiph.Org Foundation wiki has an up-to-date list of Vorbis-supporting hardware, such as portables, PDAs, and microchips.[55] Also see Internet radio device for an overview.

Application software

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Software supporting Vorbis exists for many platforms. The multi-platform open-source VLC media player and MPlayer can play Ogg Vorbis files, as can Winamp and foobar2000. Although Apple iTunes does not natively support Vorbis, the Xiph.Org Foundation provides a QuickTime component[56] which can be used in iTunes and QuickTime on both Microsoft Windows and Mac OS (only before OS X 10.9's switch of Quicktime to 64-bit only). Windows Media Player also does not natively support Vorbis; however, DirectShow filters exist[57] to decode Vorbis in Windows Media Player and other Windows multimedia players that support DirectShow. Vorbis is also supported in the multi-platform audio editing software Audacity, in the multi-platform multimedia frameworks FFmpeg, GStreamer and Helix DNA. Vorbis is well-supported on the Linux platform in programs like XMMS, xine, Amarok and many more. A list of Vorbis-supporting software can be found at the Xiph.Org Foundation wiki and Vorbis.com website.[58][59] For more information about support in software media players look at comparison of media players. Users can test these programs using the list of Vorbis audio streams available on the same wiki.[60]

Some newer Ubisoft games use Vorbis files renamed with the filename extension .sb0. It can therefore be played using a compatible player, although sometimes one must force a different sampling rate to hear it correctly. A number of tools are available for extracting sound from archived files such as the .m4b of Myst IV: Revelation.

As originally recommended by HTML 5, these web browsers natively support Vorbis audio (without a plug-in) using the <audio> element: Mozilla Firefox 3.5 (and later versions),[61][62] Google Chrome (from version 3.0.182.2),[63] SeaMonkey (from version 2.0).[64] Opera 9.5 experimental video builds released in 2007 and 2008 have only <video> support and play back Vorbis audio included in Ogg video files.[65][66] Opera 10.5 browser has support for Vorbis audio, WAVE PCM audio and Theora video.[67][68]

Deployment

Vorbis faces competition from other audio formats, such as mp3. Though Vorbis is technically superior, mp3 has a far higher public profile.[69] Because Vorbis does not have financial support from large organisations compared to other formats, support for the format is not as widespread, though programs such as Audacity can convert to more popular formats,[70] and support in games has gradually improved.[71]

See also

References

  1. 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 9.2 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. 20.0 20.1 Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Wikipedia:WikiProject Spoken Wikipedia, Retrieved 2009
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. 31.0 31.1 Lua error in package.lua at line 80: module 'strict' not found.
  32. 32.0 32.1 Lua error in package.lua at line 80: module 'strict' not found.
  33. 33.0 33.1 Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. 38.0 38.1 Experimental Ogg vorbis Bitrate Peeler, Bitrate reduction of ogg vorbis
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Android Developer - Supported Media Formats
  51. PortablePlayers - XiphWiki
  52. [1] Archived November 3, 2008 at the Wayback Machine
  53. [2] Archived April 28, 2009 at the Wayback Machine
  54. [3] Archived June 4, 2010 at the Wayback Machine
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.

External links