WavPack

WavPack
開發者David Bryant
当前版本
  • 5.7.0 (2024年3月1日;穩定版本)[1]
編輯維基數據鏈接
源代码库
  • github.com/dbry/WavPack
編輯維基數據鏈接
操作系统跨平台
类型音频格式編解碼器
许可协议BSD授權條款
网站www.wavpack.com

WavPack是由David Bryant开发的一个自由、开放源代码的无损音频压缩格式,其文件的后缀名为.wv。

特点

WavPack允许用户压缩、恢复8、16、24、32位整型以及32位浮点表示的WAV格式音频文件,另外它还支持多声道数据流以及非常高的采样率。与其它无损压缩机制一样,这种算法的压缩比例也随源数据的不同而改变。但对于普通的流行音乐,通常介于30%到70%之间;对于古典音乐以及其它音域较宽的音乐,通常能得到更高的比例。

另外WavPack引入了一种独特的“混合”模式,它使用一个附加的文件从而也具有了有损压缩的优点。与其它方法只生成一个文件不同,这种模式生成两个文件,其中一个是相对较小、可以单独使用的高质量有损压缩文件,另外一个是与有损文件一起使用实现无损数据恢复的“修正”文件。对于一些用户来说,这就意味着他们不必再考虑使用有损还是无损压缩这样一个问题。

概要

  • 快速高效压缩与解压
  • 开放源代码,按照类似于BSD许可证的方式发布
  • 多平台
  • 出错时的健壮性
  • 支持流媒体
  • 支持多声道以及高分辨率
  • 混合/有损模式
  • 硬件支持
  • 支持标签(ID3v1、APEv2标签)
  • 支持RIFF格式的大块数据
  • 兼容回放增益
  • 良好的软件支持
  • 能够生成Win32平台下的自解压文件
  • 支持32位浮点数据流
  • 支持嵌入式节目单
  • 包含用于完整性检查的MD5散列函数
  • 可以按照对称或者不对称模式进行编码(降低编码速度可以提高解码速度)。

历史

David Bryant在1998年年中开始了WavPack的开发并发布了1.0版,这第一个版本只有无损压缩解压音频这项功能,但是当时它就已经跻身效率与速度比最好的编码器之列了。

在1.0版之后,很快Bryant就发布了2.0版,这个版本的特点是使用了有损编码,它直接对预测残余进行了量化以减少数据量,而没有使用心理声学masking模型

1999年,他发布了3.0版,新颖的功能成为这个版本的特点,例如通过减小压缩比实现的快速模式、压缩无头原始PCM音频文件以及使用32位循环冗余校验的错误检测功能。

WavPack的开发仍在继续,在后面的3.x版本中添加的一个主要特点就是混合模式,在这种模式下编码器生成一个有损文件以及一个纠正文件,这样它们就可以经过解压还原出原始的PCM数据流。

WavPack 4包括许多重要的改进,如快速搜索、多声道支持、高分辨率音频支持等等,这些特性使它成为功能最全的时髦无损音频压缩器之一。4.31版本针对Linux/OSX的错误修正之后得到用于这些系统的4.32版,但是它没有与质量相关的更改。WavPack 4.4版本包括的功能有针对单声道或者接近单声道的音频数据的改进处理、以及重新设计的压缩质量系统,这种改进可以以大幅增强的效率实现类似的压缩。[1] (页面存档备份,存于互联网档案馆

支持

软件

硬件

  • 运行开放源代码Rockbox固件的播放器,如iriver ihp100、ihp120、ihp140、H320、H340以及iPod Video/Color/Photo/Nano(Rockbox主页 (页面存档备份,存于互联网档案馆))
  • Roku PhotoBridge HD (页面存档备份,存于互联网档案馆)(w/ 插件 (页面存档备份,存于互联网档案馆))

DVD+Audio

自从2005年起,WavePack就开始用于DVD+Audio上的音频压缩取代DVD-Audio上昂贵的Meridian Lossless Packing。

技术

为了保证高速运算,WavPack完全使用整数算术这样一种简单的预测,在“最快”模式下,预测值是前面两个采样的简单数学外推。例如,如果前面两个采样是 -10与20,那么预测值就是50。在缺省模式下,使用一个简单的自适应因子衡量前面采样对于预测影响的权重。在我们的这个例子中预测值可能从20到50之间变化,也就是前面的采样从没有影响到影响最大这样一个范围变化。这个权重因子随着音频数据频谱特性的变化而不断更新,所以它是“自适应”的。

然后从待编码的实际采样中减去生成的预测值得到误差,在单声道模式下这个值直接送到编码器去,但是立体声信号通常在两个声道之间有一些能在后面使用的相关性,所以左右声道分别计算出各自的误差值。在“快速”运算模式下这两个新生成的值直接送到编码器而不管它是左声道还是右声道。在缺省模式下,这个误差值总是随着平均、左或者右三者之一发送到编码器。自适应算法根据声道不断变化的平衡性确定发送三者中最有效的一个。

David Bryant为WavPack开发了一个独特的数据编码器,他认为这个编码器有两个方面要比Rice编码优秀。由于对于这种类型的数据来说Rice编码代表了最优的位编码(有时也称作哈夫曼编码)。WavPack编码要比它稍稍逊色一点,大约差距是0.15位/采样,也就是说16位数据大约差1%。WavPack编码器的第一个优点是在编码前数据无需缓存,它将每个采样直接转换成位码。这从计算的角度来讲效率更高,在一些延迟控制很关键的应用中表现更好。它的第二个优点是很容易适应有损编码,这是因为除了隐含的一个最高位之外所有重要的数据位都直接进行发送。按照这种方法,就可以只传送每个采样中带有符号的最高3位。实际上,可以只传送符号位以及用平均3.65位/采样表示的使用隐含最高位的采样值。

这个编码机制用于实现WavPack的“有损”模式。在“快速”模式下,非自适应去相关的输出只是简单地四舍五入到最近的特定位数的编码值。在缺省模式下,使用自适应的去相关,它可以将噪声平均减小1 dB,并且当前以及下一个采样在选择两个可用的编码值时都参与衡量,这又将噪声减小1 dB。

由于开发者认为整数运算受不同芯片的影响较小,而芯片的不同可能带来无损压缩特性的变化,如Pentium 浮点运算的缺陷就是一个明显的例子,所以他决定在WavPack算法的数据处理中不使用浮点运算。使用浮点运算的无损压缩工具如果运行在有缺陷的Pentium芯片上可能就会生成不同的结果。即使我们不考虑这些已经存在的缺陷,浮点运算也很复杂,在不同的“正确”实现之间也可能有微小差别,对于这类应用可能会带来麻烦。为了进一步加强WavPack压缩数据的完整性,编码器在生成的数据流后包括有一个32位的错误检测码。

WavPack的源代码非常易于移植到其它平台,它已经可以在几种不同的Unix系统上编译,如LinuxMac OS XSolarisFreeBSDOpenBSD、康柏Tru64、HP-UX等等,另外它也可以在Microsoft WindowsDOSPalm OS以及OpenVMS上编译。它可以在许多平台上工作,如x86ARM架构PowerPCAMD64IA-64SPARCDEC AlphaPA-RISCMIPS以及Motorola 68k。

参见

外部链接

压缩软件
比较
自由软件
免費軟體
  • Filzip英语Filzip
  • IZArc
  • LHA
  • StuffIt Expander英语StuffIt Expander(仅解压)
  • TUGZip英语TUGZip
  • ZipGenius英语ZipGenius
  • 2345好压
  • 360压缩
  • Bandizip
商业软件
  • ARC
  • ALZip
  • Archive Utility英语Archive Utility
  • ARJ
  • BetterZip英语BetterZip
  • BulkZip英语BulkZip
  • JAR英语JAR (software)
  • MacBinary英语MacBinary
  • PKZIP/SecureZIP英语PKZIP
  • PowerArchiver英语PowerArchiver
  • StuffIt英语StuffIt
  • WinAce
  • WinRAR
  • WinZip
非归档压缩
常规
  • bzip2
  • compress英语compress
  • gzip
  • lzip英语lzip
  • lzop英语lzop
  • pack英语pack (compression)
  • rzip英语rzip
  • Snappy
  • XZ Utils英语XZ Utils
面向代码
音频压缩
比较
有损
  • Fraunhofer FDK AAC英语Fraunhofer FDK AAC
  • Nero AAC Codec英语Nero AAC Codec
  • Freeware Advanced Audio Coder (FAAC)英语FAAC
  • Helix DNA Producer英语Helix (multimedia project)
  • l3enc英语l3enc
  • LAME
  • TooLAME英语TooLAME
  • Libavcodec
  • libcelt英语CELT
  • libopus
  • libspeex
  • Musepack
  • libvorbis
  • Windows Media Encoder英语Windows Media Encoder
无损
视频压缩
比较英语Comparison of video codecs
有损
MPEG-4 ASP英语MPEG-4 Part 2
H.264 /
MPEG-4 AVC
HEVC
其他
  • CineForm英语CineForm
  • Cinepak英语Cinepak
  • Daala
  • DNxHD英语DNxHD codec
  • Helix DNA Producer英语Helix (multimedia project)
  • Indeo英语Indeo
  • Libavcodec
  • Schrödinger (Dirac)英语Dirac (video compression format)
  • SBC英语Smart Bitrate Control
  • Sorenson英语Sorenson codec
  • On2 Technologies
  • libtheora
  • libvpx英语libvpx
  • Windows Media Encoder英语Windows Media Encoder
  • AOMedia Video 1
无损
  • FFV1英语FFV1
  • Huffyuv英语Huffyuv
  • Lagarith
  • MSU Lossless英语MSU Lossless Video Codec
  • YULS英语YULS
  • 另見:压缩方法、压缩格式
视频壓縮
ISO/IEC
ITU-T
SMPTE
  • VC-1
  • VC-2英语Dirac (video compression format)
  • VC-3英语DNxHD codec
  • VC-5英语CineForm
開放媒體聯盟
On2 Technologies
(现属谷歌公司
苹果公司
  • Apple Video英语Apple Video
  • Apple ProRes
  • QuickTime
    • 动画英语QuickTime Animation
    • 图形英语QuickTime Graphics
中国标准化协会
其他
  • Bink视频英语Bink Video
  • Cinepak英语Cinepak
  • Daala
  • Dirac英语Dirac (video compression format)
  • DV
  • DVI英语Digital Video Interactive
  • FFV1英语FFV1
  • Huffyuv英语Huffyuv
  • Indeo英语Indeo
  • Lagarith
  • Microsoft Video 1英语Microsoft Video 1
  • MSU无损英语MSU Lossless Video Codec
  • OMS Video英语OMS Video
  • Pixlet英语Pixlet
  • RealVideo
  • RTVideo英语RTVideo
  • SheerVideo英语SheerVideo
  • Smacker英语Smacker video
  • Sorenson Video, Spark英语Sorenson codec
  • Theora
  • Thor英语Thor (video codec)
  • WMV
  • XEB英语ratDVD
  • YULS英语YULS
音频壓縮
ISO/IEC
  • MPEG-1 Layer III (MP3)
  • MPEG-1 Layer II
    • Multichannel英语MPEG Multichannel
  • MPEG-1 Layer I英语MPEG-1 Audio Layer I
  • AAC
    • HE-AAC
    • AAC-LD英语AAC-LD
  • MPEG Surround英语MPEG Surround
  • MPEG-4 ALS
  • MPEG-4 SLS英语MPEG-4 SLS
  • MPEG-4 DST
  • MPEG-4 HVXC英语Harmonic Vector Excitation Coding
  • MPEG-4 CELP
  • MPEG-D USAC英语Unified Speech and Audio Coding
  • MPEG-H 3D Audio英语MPEG-H 3D Audio
ITU-T
  • G.711A-law英语A-law algorithm, µ-law英语µ-law algorithm
  • G.718英语G.718
  • G.719
  • G.722
  • G.722.1英语G.722.1
  • G.722.2英语Adaptive Multi-Rate Wideband
  • G.723
  • G.723.1英语G.723.1
  • G.726
  • G.728英语G.728
  • G.729
  • G.729.1英语G.729.1
IETF
3GPP
  • AMR
  • AMR-WB英语Adaptive Multi-Rate Wideband
  • AMR-WB+英语Extended Adaptive Multi-Rate – Wideband
  • EVRC英语Enhanced Variable Rate Codec
  • EVRC-B英语Enhanced Variable Rate Codec B
  • EVS英语Enhanced Voice Services
  • GSM-HR英语Half Rate
  • GSM-FR英语Full Rate
  • GSM-EFR英语Enhanced full rate
ATSC,DVB
中国标准化协会
其他
  • ACELP英语Algebraic code-excited linear prediction
  • ALAC
  • Asao英语Asao (codec)
  • ATRAC
  • CELT
  • Codec2英语Codec2
  • FLAC
  • iSAC
  • Monkey's Audio
  • TTA
    • True Audio
  • TAK
  • MT9英语MT9
  • Musepack
  • OptimFROG
  • OSQ英语Original Sound Quality
  • QCELP英语Qualcomm code-excited linear prediction
  • RCELP英语Relaxed code-excited linear prediction
  • RealAudio
  • RTAudio英语RTAudio
  • SD2英语Avid Audio#Sound Designer file formats
  • SHN英语Shorten (file format)
  • SILK
  • Siren英语Siren (codec)
  • SMV英语Selectable Mode Vocoder
  • Speex
  • SVOPC英语SVOPC
  • TwinVQ英语TwinVQ
  • VMR-WB英语Variable-Rate Multimode Wideband
  • Vorbis
  • VSELP英语Vector sum excited linear prediction
  • WavPack
  • WMA
  • MQA
  • aptX
  • LDAC
  • MLP英语Meridian Lossless Packing
  • LHDC
  • SBC
图像压缩
IEC,ISO,ITU-T,W3C,IETF
其他
封裝格式
ISO/IEC
  • MPEG-ES英语Elementary stream
    • MPEG-PES英语Packetized elementary stream
  • MPEG-PS英语MPEG program stream
  • MPEG-TS
  • ISO基本媒体文件格式英语ISO base media file format
  • MPEG-4 Part 14(MP4)
  • Motion JPEG 2000英语Motion JPEG 2000
  • MPEG-21 Part 9英语Digital Item#File Format
  • MPEG媒体传输英语MPEG media transport
ITU-T
  • H.222.0
  • T.802英语Motion JPEG 2000
IETF
其他
合作
另见压缩方法、数据压缩软件
  1. ^ WavPack 5.7.0 Release. 2024年3月1日 [2024年3月2日].