WavPack

WavPack

WavPack monokrom logo.png
Grundlæggende data

Udvikler David Bryant
Udgivelsesår 1998
Aktuel  version 5.3.0
( 16. april 2020 )
operativ system platform uafhængig
programmeringssprog C.
kategori Koder
Licens BSD-licens
Tysktalende Ingen
wavpack.com

WavPack (.wv / wvc) er en gratis open source- codec til tabsfri og tabsfri komprimering af lyddata , udviklet af David Bryant / Conifer Software.

Referenceimplementeringen (analog med zip og unzip) er lavet i to supplerende programmer - en encoder (WavPack) og en dekoder (WvUnpack) - samt et ekstra værktøj til tilføjelse af replay gain information (WvGain).

Fra og med version 11 bruger det velkendte komprimeringsprogram WinZip WavPack til at reducere størrelsen på RIFF-WAVE- filer.

beskrivelse

WavPack muliggør tabsfri datakomprimering af PCM- kodede (lyd) data baseret på udpakkede PCM-data i RIFF-WAVE- format.

Kompressionstilstande

WavPack har tre arbejdstilstande:

  • I (forudindstillet) tabsfri tilstand ( engelsk tabsfri ) genereres en komprimeret fil, der muliggør en rekonstruktion af outputlyden bitidentische kurve. Alle headerdata i den originale WAVE-fil gemmes også (medmindre de udtrykkeligt er deaktiveret) . Pakningshastigheden svinger naturligvis med typen af ​​indgangssignal, men er normalt mellem 25 og 50 procent og forbedres med klassisk musik og andre signaler med større dynamisk båndbredde.
  • I lossy- tilstand (engelsk lossy ) genereres en relativt lille tabsfri komprimeret fil af høj kvalitet. I modsætning til den tabsfri tilstand er filstørrelsen forudsigelig her: Her vælges en ønsket (konstant) bithastighed. Hvis det er muligt, kasserer koderen signalkomponenter, der er så vigtige som muligt, indtil den indstillede bithastighed er nået; hvor det er muligt, forbliver det tabsløst. I modsætning til de fleste almindelige tabsfri codecs fungerer metoden uden at udnytte utilstrækkelighederne i den menneskelige hørelse ved hjælp af en psykoakustisk model. Derfor bruges højere bithastigheder her: Ved 384 kbps leverer WavPack stort set gennemsigtige resultater. I denne tilstand gemmes også alle headerdata i den originale WAVE-fil (hvis ikke eksplicit deaktiveret). De genererede filer er langt mere egnede til senere kodning til andre tabsformater end metoder, der bruger en psykoakustisk model. En endelig rapport viser, om der er opnået frihed fra tab, eller hvor mange afvigelser fra det originale signal, der skulle accepteres.
  • Den hybride tilstand ( også kaldet DualStreamOptimFROG ) kombinerer lossy og tabsfri komprimering ved at oprette en korrektion fil ud over en lossy komprimeret fil, der tilsammen derefter give helt tabsfri rekonstruktion. Pakningshastigheden er lidt lavere her end i den rent tabsfri tilstand.

Alle tilstande er tilgængelige i fem forskellige niveauer af kompleksitet. Et højere niveau øger den beregningsmæssige indsats ved pakning og udpakning (symmetri). Koderen tilvejebringer en omskiftelig asymmetri-tilstand, som muliggør højere pakningshastigheder, der kun går på bekostning af kodetiden uden at påvirke dekodningsindsatsen.

Hovedtræk

  • Hurtig og effektiv kodning og afkodning
  • Open source , fri software ( BSD- lignende licens)
  • Tilgængelighed på tværs af platforme
  • Understøttelse af mono-, stereo- og flerkanalsignaler
  • Understøttelse af høje opløsninger - både med hensyn til tid og amplitude (samplingsfrekvenser fra 6 til 192 kHz, samplingspunkter på 8, 16, 24 og 32-bit flydende punktværdier)
  • Tabsfri, tabsfri og hybrid tilstand (tabsfri + korrektionsfil)
  • Valgfri asymmetri- tilstand, dvs. H. der kræves mere beregningsindsats for kodning, men dette fører ikke til yderligere indsats for afkodning.
  • Fleksibelt metadatasystem ( APE v2 og ID3 tags)
  • Streaming support
  • Fejltolerance
  • Understøttelse af gengivelsesstandarden for gentagelse
  • Understøtter afspilning uden hul
  • Understøtter integreret cuesheet
  • Støtte til RIFF- bidder
  • Understøtter oprettelsen af ​​selvudpakkende filer under Windows
  • Indlejret MD5 kontrolsum for en hurtig kontrol for fuldstændighed
  • God softwaresupport
  • Hardware support

historie

David Bryant begyndte at udvikle WavPack i midten af 1998 med udgivelsen af ​​version 1.0. Det mestrede ikke mere end den tabsfri indpakning og udpakning af lyddata - men selv da med et af de bedste forhold mellem kodningstid og effektivitet.

Version 2.0 kom meget hurtigt efter den første, som understøttede tabsfri pakning (kvantificerer forudsigelsen restværdier til datareduktion - ingen psykoakustisk model bruges).

Version 3.0 kom i 1999 med nye funktioner såsom en hurtigere (mindre effektiv) tilstand, understøttelse af rå PCM- filer uden headerdata ("rå" / "headerless") samt fejlregistrering gennem en 32-bit cyklisk redundanskontrol .

Et andet væsentligt træk ved de sene 3.x-versioner var hybridtilstanden, hvor der ud over en tabt kodet fil genereres en korrektionsfil, der, når den kombineres, gør det muligt at rekonstruere de originale data.

WavPack 4 kom ud i 2004 . Det tilføjede vigtige funktioner såsom hurtig søgning, understøttelse af flere kanaler og understøttelse af høje bit- og samplingshastigheder, hvilket gør den til en af ​​de mest forskelligartede, moderne og mest anvendte gratis tabsfri lydpakningsmetoder efter FLAC .

Version 4.4 (mod slutningen af 2006 ) bringer blandt andet et nyt kompleksitetsniveau højt mellem det gamle høje (nu meget højt ) og det normale tilstand med en pakkehastighed tæt på det gamle høj med betydeligt lavere kompleksitet, en fuldstændig revideret og meget hurtigere asymmetrisk tilstand og muliggør højere pakningshastigheder i hybridtilstand. Version 4.41 fra 6. maj 2007 bragte blandt andet 10 til 30% højere arbejdshastigheder for referenceprogrammerne.

Software support

  • Directshow-filter til Directshow-programmer såsom Windows Media Player
  • REAPER - alsidig lyd / midi sequencer med direkte * .wv import og gengivelse
  • MrQuestionMan - Audio Identifier
  • Burrrn - Direkte multi-format lyd-cd-skrivning
  • Mp3tag - universal tag editor
  • Præcis lydkopi - lyd-cd-læser
  • VUPlayer - Gratis multiformat lydafspilnings- / konverteringsprogram
  • Play and Cog - afspilningsprogrammer til macOS med WavPack-understøttelse
  • VLC medieafspiller - understøtter WavPack fra version 0.8.6
  • MPXPlay - DOS ( MS-DOS , FreeDOS , DR-DOS ) -baseret afspilningsprogram med WavPack-understøttelse
  • The GodFather - Tagger / Music Manager
  • Wavpack4Wavelab - det første tredjeparts filinput / output-modul til den kommercielle / professionelle bølge editor Steinberg Wavelab 5/6
  • Easy CD-DA Extractor - Kommercielt cd-læsning, kodning og konvertering af program
  • macOS : Max og XLD - koder direkte fra forskellige tabsfri formater, inklusive WavPack, til AIFF eller FLAC.
  • Audacious - Unix lydafspiller

Yderligere moduler til

  • NullSofts Winamp med understøttelse af ReplayGain og Media Library
  • foobar2000 - Avanceret lydafspiller med understøttelse af ReplayGain og Cuesheets (officielt ekstra modul)
  • XMMS
  • Adobe Audition / CoolEdit med understøttelse af 32 bit flydende punkt og lagring af yderligere information
  • dBpoweramp - Music Converter / Audio-Player / CD-Writer (officielt ekstra modul)
  • Apollo lydafspiller med understøttelse af ReplayGain
  • MusikCube - Gratis lydafspiller
  • Nero Burning ROM
  • LAMIP (officielt ekstra modul) - Modulær lydafspiller til Linux og venner
  • XMPlay - lille gratis Windows-afspiller med officielt ekstra modul
  • Quintessential Player
  • 1by1 og Coolplayer med Winamp -WavPack-tilføjelsesmodulet

Hardware support

  • Til enheder med open source Rockbox- firmware som f.eks. Iriver ihp100, ihp120, ihp140, H320, H340 og iPod Color / Photo / Nano-modeller
  • Roku PhotoBridge HD gennem et ekstra modul

teknologi

For at sikre en høj arbejdshastighed bruger WavPack en meget enkel forudsigelse, der udelukkende er baseret på heltalsmatematik. I hurtig tilstand består forudsigelsen kun i den aritmetiske ekstrapolering af de to foregående prøveudtagningspunkter. Så hvis for eksempel de to foregående prøvepunkter var værdierne −10 og 20, ville den forudsagte værdi være 50. For den forudindstillede tilstand tilføjes en simpel justeringsfaktor for at veje indflydelsen af ​​det første punkt på forudsigelsen. For ovenstående eksempel betød dette en variation af resultatet fra 20 uden indflydelse til 50 med fuld indflydelse. Denne vægtningsfaktor justeres konstant afhængigt af egenskaberne ved lydmaterialets spektrum, hvorfor det kaldes "adaptiv".

Den genererede forudsigelsesværdi trækkes derefter fra den reelle prøve for at opnå fejlværdien. I mono-tilstand videresendes denne værdi direkte til koderen, men stereosignaler har tendens til at være afhængige mellem kanalerne, som også kan bruges. I dette tilfælde bestemmes to fejlværdier, hvoraf den ene repræsenterer forskellen og en gennemsnittet af venstre og højre fejlværdi. I hurtig tilstand sendes disse to nye værdier simpelthen til koderen i stedet for de højre og venstre fejlværdier. I standardtilstand tildeles encoderen altid differensværdien sammen med en af ​​de resterende tre værdier, gennemsnittet, venstre eller højre værdi. En adaptiv algoritme bestemmer kontinuerligt den bedst egnede af de tre baseret på den skiftende balance mellem kanalerne.

Udvikleren har udviklet en datakoder til WavPack, som han mener er bedre end riskodning på to områder. Det er umuligt at kode mere effektivt end ris-kodningen, da det altid opnår en optimal bitkodning (undertiden kendt som Huffman-koden ) for denne type data . WavPacks encoder er lidt mindre effektiv, men kun med ca. 0,15 bits / prøve (eller mindre end en procent for 16-bit data). Den første fordel ved WavPack-koderen er, at dataene ikke behøver at blive forbufferet, og i stedet kan hver prøve overføres direkte i bitkoder. Dette er mere effektivt i beregningen og er vigtigt i applikationer, hvor kodningsforsinkelsen er vigtig. Den anden fordel er, at den let kan tilpasses til den tabsfri kodning, da alle vigtige bits (med undtagelse af den uundgåelige "en" mest signifikante bit ) transmitteres direkte. Det er således fx tilstrækkeligt kun at overføre de tre vigtigste bits i hvert samplingspunkt (med tegn ). Faktisk er det endda muligt at transmittere kun tegnet og den obligatoriske MSB for hvert punkt med et gennemsnit på kun 3,65 bits pr. Prøve.

Denne procedure bruges til at implementere den tabsfri tilstand af WavPack. I hurtig tilstand afrundes output fra den ikke-adaptive dekorrelator simpelthen til den nærmeste kodningsværdi, der er resultatet af det specificerede antal bits. I standardtilstand anvendes den adaptive dekorrelator, som sænker baggrundsstøjen med ca. en decibel (dB). Desuden anvendes både det aktuelle og det følgende samplingspunkt til at bestemme det mere egnede af de to, hvilket reducerer baggrundsstøjen med yderligere dB.

Udvikleren har besluttet ikke at bruge flydende aritmetik i WavPacks procedurer, da han anser heltalshandlinger for at være mindre modtagelige for små afvigelser fra chip til chip, der kan kompromittere tabfrihed. Den Pentium floating point fejl er et alarmerende eksempel på dette. Der er en mulighed for, at en tabsfri pakke, der bruger flydende punktoperationer, kunne producere en anden output på et så defekt Pentium. Selv når sådanne fejl ikke tages i betragtning, er matematik med flydende punkt kompliceret nok til at give mulighed for små forskelle mellem "korrekte" implementeringer, der skaber vanskeligheder for en række applikationer. For at øge pålideligheden endnu mere inkorporerer koderen en 32-bit fejlregistreringskode i den genererede datastrøm.

WavPack-kildekoden er ekstremt bærbar, primært på grund af den eksklusive brug af heltal. Det blev samlet til adskillige Unix-varianter ( Linux , macOS , Solaris , FreeBSD , OpenBSD , NetBSD , Compaq Tru64 UNIX , HP-UX ...) såvel som til Windows , DOS , Palm OS og OpenVMS . Det kører på arkitekturer som x86 , ARM , PowerPC , AMD64 , IA-64 , Sun SPARC , DEC Alpha , PA-RISC , MIPS eller Motorola 68k .

Se også

Weblinks

Individuelle beviser

  1. Udgivelse 5.3.0 . 16. april 2020 (adgang til 17. april 2020).
  2. Den wav_pack Open Source projekt på Open Hub: Sprog Side . I: Åben hub . (adgang den 3. september 2018).