WavPack

WavPack ( .wv / wvc ) is a free open source codec for lossless and lossy audio data compression, developed by David Bryant / Conifer Software.

The reference implementation is ( to zip analog and unzip ) carried out in two complementary programs - an encoder ( WavPack ) and a decoder ( WvUnpack ) - as well as an additional tool for adding replay gain information ( WvGain ).

Since version 11 uses the well-known compression utility WinZip WavPack to reduce RIFF WAVE files.

Description

WavPack allows a lossless data compression PCM - coded (audio ) data from uncompressed PCM data in RIFF WAVE format.

Compression modes

WavPack has three working modes:

  • In the ( pre- ) lossless mode (English lossless) will generate a zipped file that allows a bitidentische reconstruction of the output sound curve. Also ( unless explicitly turned off), all the header data of the original WAVE file. The packing rate fluctuates naturally given to the type of input signal, but usually ranges between 25 to 50 percent and improves on classical music and other signals with greater dynamic range.
  • In lossy mode (english lossy ) produced a relatively small, high-quality lossy compressed file. Unlike the lossless mode, the file size is predictable here: There is here a desired (constant ) selected bit rate. The encoder discards then possible way unimportant signal components to reach the set bit rate; where it remains possible loss. The method works in contrast to the majority of current lossy codecs without the utilization of shortcomings of human hearing using a psychoacoustic model. Therefore, this higher bit rates are used: For 384 kbps WavPack largely provides transparent results. Also in this mode ( unless explicitly turned off), all the header data of the original WAVE file. The files generated are much better suited for later transcoding to other lossy formats as methods that use a psychoacoustic model. A final report shows whether loss of freedom has been achieved or how much deviations had to be made from the original signal.
  • The combined hybrid mode ( OptimFROG also called Dual Stream ) lossy lossless compression by a lossy compressed file a correction file is created in addition, which then together allow the fully lossless reconstruction. The packing ratio is slightly lower here than in the purely lossless mode.

All modes are available in five different levels of complexity. A higher level increases the computational effort when packing as well as the unpacking ( symmetry). The encoder provides a switchable asymmetry mode ready, the higher packing rates allows that only go to the expense of encoding time without affecting the Dekodieraufwand.

Key Features

  • Fast and efficient encoding and decoding
  • Open source, free software ( BSD-style license)
  • Cross-platform availability
  • Support for mono, stereo and multi- channel signals
  • Support high resolutions - both in time and in amplitude ( sampling frequencies 6-192 kHz sampling of 8 -, 16 -, 24 - and 32 -bit floating-point values ​​)
  • Lossless, lossy, and hybrid modes ( lossy correction file )
  • Optional asymmetry mode, ie when encoding is driven more computational effort, but this leads to no extra effort when decoding.
  • Flexible metadata system (APE v2 and ID3 tags)
  • Streaming support
  • Fault tolerance
  • Support of the Replay Gain standard
  • Supports gap- free playback
  • Supports embedded cue sheet
  • Support for RIFF chunks
  • Supports the creation of self-extracting files in Windows
  • Embedded MD5 checksums for quickly checking for completeness
  • Good software support
  • Hardware support

History

David Bryant began the development of WavPack mid-1998 with the release of version 1.0. She dominated nothing further than the lossless compression and decompression of audio data - but even then one of the best ratios of encoding time for efficiency.

Very soon after the first came version 2.0 which lossy Pack Compatible ( quantized prediction residuals for data reduction - no psychoacoustic model is used ).

In 1999, version 3.0 with new features such as a faster ( less efficient ) mode, support for raw, head dataless PCM files ( "raw " / " headerless " ) as well as error detection by a 32 -bit cyclic redundancy check.

Another important feature came in the late 3.x versions added the hybrid mode, in addition to a lossy encoded file, a correction file is created that allow the combination to reconstruct the original data.

2004 came out WavPack 4. It adds important features such as quick search, multi-channel support and support high bit and sample rates, which make it one of the richest, most modern and lossless FLAC by most popular free audio pack method.

Version 4.4 ( late 2006 ) brings, among other things, a new level of complexity high between the old high (now very high ) and the normal mode with a packing ratio near the old high at a considerably lower complexity, a completely revised and considerably faster asymmetric mode and allows higher packing rates in hybrid mode. Version 4.41 of 6 May 2007 saw, among others, 10 to 30% higher operating speeds of the reference programs.

Software support

  • DirectShow filter for DirectShow programs like Windows Media Player
  • REAPER - versatile audio / MIDI sequencer with direct * wv import and rendering.
  • MrQuestionMan - Audio Identifier
  • Burrrn - Direct writing of audio CDs from multiple formats
  • Mp3tag - Universal Tag Editor
  • Exact Audio Copy - audio CD read-in program
  • VUPlayer - Free multiformat-Audio-Wiedergabe-/Konvertierprogramm
  • Play and Cog - Players for Mac OS X with WavPack support
  • VLC Media Player - WavPack supported since version 0.8.6
  • Mpxplay - DOS (MS- DOS, FreeDOS, DR -DOS) -based playback program with WavPack support
  • Wavpack4Wavelab - the first Dateiein-/ausgabe-Zusatzmodul a third party for commercial / professional wave editor Steinberg Wavelab 5/6
  • Easy CD -DA Extractor - Commercial CD - read-in, coding and conversion program
  • Mac OS X: Max and XLD - Encode directly from various lossless formats, including WavPack, FLAC to AIFF or.
  • Audacious - Unix audio player

Additional modules for

  • Nullsoft Winamp with Replay Gain and media library support
  • Foobar2000 - Advanced audio player with support for ReplayGain and cue sheets (official add-on module )
  • XMMS
  • Adobe Audition / CoolEdit with support for 32 bit floating point, and storage of additional information
  • DBpoweramp - Music Converter / Audio Player / CD Writer ( official add-on module )
  • Apollo audio player with ReplayGain support
  • MusikCube - Free audio player
  • Nero Burning ROM
  • LAMIP (official add-on module ) - Modular audio player for Linux and friends
  • XMPlay - small free Windows player with an official add-on module
  • Quintessential Player
  • 1by1 and cool player with the Winamp plug-in WavPack

Hardware support

  • For devices with the open source Rockbox firmware as the models iriver ihp100, ihp120, ihp140, H320, H340 and iPod Color / Photo / Nano
  • Roku HD Bridge Photo by add-on module

Technology

To ensure a high operating speed, WavPack uses a very simple prediction based solely on integer math. In fast mode, the prediction is made only in the arithmetic extrapolation of the previous two sampling points. For example, if the preceding two sample points, the values ​​were -10 and 20, then the predicted value of 50 would be for the preset mode is added, a simple adjustment factor to weight the influence of the first point on the prediction. For the above example that meant a variation of the result of 20 at no influence up to 50 with full impact. This weighting factor is continuously adjusted, depending on the characteristics of the spectrum of the clay material, so it is called " adaptive" ( adapting ).

The predictive value generated is then subtracted from the real sample to obtain the error value. In Mono mode, this value will be forwarded directly to the encoder, but stereo signals tend to dependencies between the channels, which can be additionally exploited. In this case, two error values ​​are calculated, one of which represents the difference and the average of the left and right error value. In the fast mode, these two new values ​​are simply sent instead of the right and left error value to the encoder. In default mode, the difference value is always given along with one of the remaining three values ​​, the average, the left or the right value to the encoder. An adaptive algorithm determines the most appropriate of the three continuously variable based on the balance between the channels.

The developer has developed a WavPack encoder data, from which he believes he is better than the Rice coding in two areas. It is impossible to encode more efficient than the Rice coding, as they reached for that type of data in each case, an optimal bit coding (sometimes known as Huffman code ). The encoder of WavPack provides somewhat less efficient, but only to about 0.15 bits / sample (or less than one percent for a 16-bit data). The first advantage of the WavPack encoder is that the data need not be vorausgepuffert and instead, each sample can be transferred directly into bit codes. This is in the computation efficiently and in applications where it is important to the coding delay, irrelevant. The second advantage is that it can be easily adapted to lossy coding, as all the important bits ( except for the inevitable " one " most significant bits ) transmitted directly. Thus, it is sufficient, for example, only the three most significant bits of each sample point to pass ( with sign). In fact, it is even possible, only the sign and the inevitable MSB to transfer each point with an average of only 3.65 bits per sample.

This procedure is used to achieve the lossy mode WavPack. In fast mode, the output of the non- adaptive decorrelator is simply rounded to the nearest encodable value that results from the specified number of bits. In default mode, the adaptive de-correlator is used, which lowers the noise by approximately one decibel (dB). Further, both the current and the next sampling point are used for the more suitable of the two to determine which reduces noise to a further dB.

The developer has decided not to use floating-point arithmetic in WavPacks procedures because he holds integer operations for less susceptible to small variations from chip to chip, which could jeopardize the loss of freedom. The Pentium floating point error is an alarming example of this. There is a possibility that a loss-free packer floating point operations using generated on such a defective Pentium a different output. Even if such errors are not taken into consideration, floating point math is complicated enough to make small differences between "real" implementations possible, the cause difficulties for a variety of applications. To increase the reliability even further, the encoder integrates an 32-bit error detection code in the generated data stream.

The WavPack source code is extremely well ported mainly because of the exclusive use of integer operations. He was for many Unix variants compiled ( Linux, Mac OS X, Solaris, FreeBSD, OpenBSD, NetBSD, Compaq Tru64 UNIX, HP- UX, ... ), as well as for Windows, DOS, Palm OS, and OpenVMS. It runs on architectures like x86, ARM, PowerPC, AMD64, IA -64, Sun SPARC, DEC Alpha, PA -RISC, MIPS, and Motorola 68k.

18925
de