| 開発者 | デビッド・ブライアント |
|---|---|
| 安定版リリース | 5.7.0 [1]
/ 2024年3月1日 |
| リポジトリ |
|
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | オーディオコーデックコンテナ |
| ライセンス | BSDライセンス |
| Webサイト | wavpack.com |
| ファイル名拡張子 |
.wv (ロスレス ファイルとハイブリッド ファイルの両方)、.wvc (ハイブリッド ファイルのみの修正ファイル) |
|---|---|
| インターネットメディアの種類 |
audio/x-wavpack (.wv)、audio/x-wavpack-correction (.wvc)、オーディオ/x-wavpack-correction (.wvc) |
| 魔法の数字 | 翻訳 |
| フォーマットの種類 | ロスレス オーディオ |
| 含まれるもの | Matroska (必須ではありません) |
| オープンフォーマット? | はい |
| フリーフォーマット? | はい |
WavPack は、無料でオープンソースの ロスレス オーディオ圧縮 形式と、その形式を実装するアプリケーションです。FLACの動作に似た通常の圧縮に加えて、ハイブリッド オーディオ圧縮をサポートするという点でユニークです。また、サラウンド オーディオのサポートとともに、さまざまなPCMバリアントやSACDで使用されるDSDなど、さまざまなロスレス形式の圧縮もサポートしています。
特徴
WavPack 圧縮は、8、16、24、32 ビット固定小数点、および 32 ビット浮動小数点 PCMオーディオ ファイルを .WAVファイル形式で圧縮 (およびロスレス復元) できます。また、DSDIFF または DSF 形式の DSD 入力も処理できます。[2]また、サラウンド サウンドストリームと高サンプリング レートもサポートしています。他のロスレス圧縮方式と同様に、データ削減率はソースによって異なりますが、一般的なポピュラー音楽では通常 30% から 70% の間であり、クラシック音楽やダイナミック レンジの広い他のソースではそれよりもいくらか優れています。[3]
ハイブリッドモード
WavPack には「ハイブリッド」モードも組み込まれており、ロスレス圧縮の機能を提供しながら、2 つのファイルを作成します。1 つは比較的小さく、高品質のロスレス ファイル (.wv) で、単独で使用できます。もう 1 つは、ロスレス ファイルと組み合わせると完全なロスレス復元を提供する「修正」ファイル (.wvc) です。これにより、ロスレス コーデックとロスレス コーデックを一緒に使用できます。ロスレス アルゴリズムはADPCMに似ています。[4]
ハイブリッド モードでは浮動小数点データを処理できますが、無限大や NaN などの「例外」値が存在しない場合に限ります。DSD には非可逆アルゴリズムがないため、DSD を処理することはできません。[2]
同様の「ハイブリッド」機能は、 OptimFROG DualStream、MPEG-4 SLS、DTS-HD Master Audioでも提供されています。
まとめ
- オープンソース、BSDのようなライセンスの下でリリースされている
- マルチプラットフォーム
- エラー耐性
- 高速エンコード
- 他の広く使用されているオープンソースのロスレスオーディオコーデック(FLAC/ALAC)よりも高い圧縮率
- ストリーミングサポート
- マルチチャンネルオーディオと高解像度をサポート
- WavPack 5.x では、ソース ファイルを PCM に変換せずにDirect Stream Digital を圧縮するためのネイティブ サポートが提供されます。
- ハイブリッド/ロスモード
- ハードウェア サポート ( Rockboxファームウェアによって提供)
- メタデータのサポート ( ID3、APEタグ。APE タグが推奨形式です)
- RIFFチャンクをサポート
- ReplayGainと互換性あり
- Win32 プラットフォーム用の自己解凍ファイルを作成する機能
- 32ビット浮動小数点ストリームをサポート
- 埋め込みCUEシートをサポート
- 迅速な整合性チェックのためのMD5ハッシュが含まれています
- 対称モードと非対称モード(デコードを高速化するためにエンコードを遅くする)の両方でエンコードできます。
歴史
デビッド・ブライアントは1998年半ばにバージョン1.0(1998-08-15)をリリースしてWavPackの開発を開始しました。この最初のバージョンはロスレスでオーディオを圧縮および解凍し、ロスレスエンコーダーの中でも最高の効率対速度比をすでに備えていました。[5]
バージョン 1.0 のリリース直後に、非可逆エンコード (データ削減に予測残差の量子化のみを使用 -心理音響マスキング モデルはストリームに適用されない) を特徴とするバージョン 2.0 (1998 年 9 月 2 日) がリリースされました。
1999 年には、バージョン 3.0 (1999 年 9 月 12 日) がリリースされ、新しい「高速モード」(圧縮率は低下)、生の (ヘッダーなしの) PCMオーディオ ファイルの圧縮、および 32 ビット巡回冗長検査を使用したエラー検出が導入されました。
3.x の後期バージョンで追加された機能は「ハイブリッド」モードで、エンコーダーが非可逆ファイルと修正ファイルを生成し、両方を元のファイルと同じ品質の PCM ストリームに解凍できる機能です。[6]
WavPack 4では、新しいファイル形式の構造が導入されました。4.40では、将来の開発に関するヒントを含む「ロードマップ」も公開されました。[7] WavPack 5では、DSD圧縮のサポートが導入されました。
サポート
ソフトウェア
一部のソフトウェアはネイティブでこの形式をサポートしていますが(DeaDBeeF、foobar2000、[8]、Jack! The Knifeなど)、プラグインを必要とするものもあります。公式WavPackウェブサイトでは、Winamp、Nero Burning ROM、MediaChest 2.1、その他いくつかのアプリケーション用のプラグインとDirectShowフィルターを提供しています。[9] foobar2000の作者によるdBpoweramp CD-Ripper [10]、およびfoobar2000 [11]自体、およびAsunderを使用すると、オーディオCDを直接Wavpackファイルにリッピングできます。
Linuxサポートはネイティブ ポートで利用できます。
FFmpegにはネイティブの WavPack エンコーダーがあり、これをGNU parallelなどのソフトウェアと組み合わせると、複数の CPU コアを使用して、他のロスレス形式を WavPack に、また WavPack から FFmpeg がサポートする任意の形式に、追加のソフトウェアを必要とせずにすばやくトランスコードできます。ただし、FFMpeg のエンコーダーには多少の制限があります。
2023年現在、FFmpegのWavPackエンコーダーにはいくつかの大きな制限があります。バージョン4のビットストリームしか生成できず、ファイル整合性チェックの高速検証や16チャンネル以上はサポートされていません。また、RIFFチャンクは破棄され、24ビット入力では予測どおりに動作しない可能性があります。また、エンコードを高速化するために、デフォルトで最適ではない圧縮が採用されています。ハイブリッドモードがサポートされていないため、FFmpegベースの再生ソフトウェアは、.wvc修正ファイルが存在する場合でもそれを考慮せず、非可逆セクションのみを再生またはトランスコードします。(ただし、これはWavPackの通常の動作モードではありません。)Direct Stream DigitalのネイティブWavpackサポートはリファレンスエンコーダーのバージョン5で追加されたため、FFmpeg WavPackもPCM入力のエンコードに制限されています。[12]
ハードウェア
ネイティブサポート:
- Cowon A3 PMP は、WavPack を標準でサポートしています。[引用が必要]
非ネイティブサポート:
- Apple iPodシリーズの音楽プレーヤーは、そのままでは WavPack をサポートしていませんが、オープンソースのRockboxファームウェアを通じてサポートできます。
- iRiver H100 シリーズ、オープンソースの Rockbox ファームウェア経由。
- iRiver H300シリーズ、オープンソースのRockboxファームウェアを通じて。[13]
- サードパーティのメディア プレーヤー ソフトウェアがインストールされたAndroidスマートフォンおよびタブレット。
- Linux サブシステムまたは Android Play ストアにインストールされたメディア プレーヤー ソフトウェアを使用するChromeOSデバイス。
WavPackのウェブサイトには、Roku PhotoBridge HDでこのフォーマットをサポートできるようにするプラグインも含まれています。2005-07-08にWayback Machineでアーカイブされています。[9]
テクノロジー
高速動作を保証するために、WavPack は完全に整数演算で実装された予測子を使用します。[14]「高速」モードでは、予測は前の 2 つのサンプルの算術外挿に過ぎません。たとえば、前の 2 つのサンプルが -10 と 20 の場合、予測は 50 になります。デフォルト モードでは、前のサンプルが予測に与える影響を重み付けするために、単純な適応係数が追加されます。上記の例では、結果として得られる予測は、影響なしの 20 から完全な影響の 50 まで変化する可能性があります。この重み係数は、オーディオ データの変化するスペクトル特性に基づいて常に更新されます。
生成された予測は、エンコードされる実際のサンプルから減算され、エラー値が生成されます。モノラル モードでは、この値はコーダに直接送信されます。ただし、ステレオ信号は、2 つのチャネル間に何らかの相関関係がある傾向があり、これをさらに活用できます。したがって、左と右のエラー値の差と平均を表す 2 つのエラー値が計算されます。「高速」動作モードでは、左と右の値の代わりに、これらの 2 つの新しい値がコーダに送信されます。デフォルト モードでは、差の値が常に他の 3 つの値 (平均、左、または右) のいずれかとともにコーダに送信されます。適応アルゴリズムは、チャネルのバランスの変化に基づいて、送信する 3 つの値のうち最も効率的な値を継続的に決定します。
ライス コーディングの代わりに、WavPack 用の特別なデータ エンコーダが使用されます。ライス コーディングは、このタイプのデータに最適なビット コーディングであり、WavPack のエンコーダは効率が劣りますが、サンプルあたり約 0.15 ビット (16 ビット データの場合は 1% 未満) です。ただし、その代わりにいくつかの利点があります。1 つ目は、WavPack のエンコーダでは、エンコードの前にデータをバッファリングする必要がなく、各サンプルを直接ビットコードに変換することです。これは計算効率が高く、コーディングの遅延が重要な一部のアプリケーションに適しています。2 つ目の利点は、すべての重要なビット (暗黙の "1" MSBを除く) が直接送信されるため、非可逆エンコードに簡単に適応できることです。この方法では、たとえば、各サンプルの 3 つの最上位ビット (符号付き) のみを送信できます。実際、サンプルあたり平均 3.65 ビットのみで、各サンプルの符号と暗黙の MSB のみを送信できます。
このコーディング方式は、WavPack の「非可逆」モードを実装するために使用されます。「高速」モードでは、非適応型デコリレータの出力は、指定されたビット数に対して最も近いコーディング可能な値に単純に丸められます。デフォルト モードでは、適応型デコリレータが使用され (平均ノイズが約 1 dB減少します)、現在のサンプルと次のサンプルの両方が、使用可能な 2 つのコードのうちより適切なものを選択する際に考慮されます (ノイズがさらに 1 dB 減少します)。
WavPack のデータ パスでは浮動小数点演算は使用されません。これは、著者によると、整数演算はチップ間の微妙な差異の影響を受けにくく、圧縮のロスレス特性が損なわれる可能性があるからです ( Pentium の浮動小数点バグがその一例です)。浮動小数点演算を使用したロスレス コンプレッサは、欠陥のある Pentium で実行したときに異なる出力を生成する可能性があります。実際のバグを無視しても、浮動小数点演算は複雑であるため、「正しい」実装間で微妙な違いが生じ、この種のアプリケーションで問題が発生する可能性があります。[15]生成されたストリームには 32 ビットのエラー検出コードが組み込まれており、WavPack の圧縮の整合性に対するユーザーの信頼を維持します。
WavPack ソースコードは移植性があり、 Windows、DOS、Palm OS 、OpenVMSだけでなく、いくつかのUnixおよびUnix 系オペレーティングシステム ( Linux 、 Mac OS X、Solaris、FreeBSD、OpenBSD、NetBSD、Compaq Tru64、HP-UX ...) でコンパイルされています。x86、ARM、PowerPC、AMD64、IA-64、SPARC、Alpha、PA-RISC、MIPS、Motorola 68kなど、多くのアーキテクチャで動作します。
WavPack の簡易版は、Texas Instruments TMS320 シリーズ デジタル信号プロセッサ用に開発されました。これは主に、メーカーが WavPack 圧縮 (および解凍) をポータブル メモリ オーディオ レコーダに組み込むよう奨励することを目的としています。このバージョンでは、組み込みアプリケーションにのみ適用される機能 (リアルタイムのストリーム圧縮、選択可能な圧縮率) がサポートされ、フル コンピュータ システムにのみ適用される機能 (自己解凍、高圧縮モード、32 ビット浮動小数点数) が削除されました。TMS320 シリーズ DSP はネイティブ整数デバイスであり、WavPack を適切にサポートします。フル WavPack ソフトウェアの一部の「特別な」機能 (たとえば、修正「ファイル」(ストリーム) を生成する機能) が組み込まれ、その他の機能は除外されました。このポートはバージョン 4 に基づいています。
WavPackのサポートは、2006年10月にリリースされたバージョン11.0ベータからWinZipに追加されました。 [16]このZIPファイル形式の拡張機能は、形式の保守者であるPKWAREによって、 2007年9月28日にリリースされたバージョン6.3.2から公式のAPPNOTE.TXT記述ファイルに含まれました。 [17]
参照
参考文献
- ^ 「WavPack 5.7.0 リリース」。2024年3月1日。 2024年3月2日閲覧。
- ^ ab 「WavPack ユーザードキュメント」www.wavpack.com。
- ^ Heijden, Hans (2006 年 7 月 11 日). 「ロスレス オーディオ形式の圧縮と速度」。2009 年 7 月 3 日時点のオリジナルよりアーカイブ。2009年7 月 17 日閲覧。
- ^ Bryant, David. 「7.11 WavPack」。Solomon, David (編) 『データ圧縮: 完全リファレンス』(PDF)。p. 773。
- ^ Speek (2005年2月7日). 「ロスレスオーディオコンプレッサーのパフォーマンス比較」。2010年11月25日時点のオリジナルよりアーカイブ。2009年7月17日閲覧。
- ^ 「WavPack オーディオ圧縮」。
- ^ 「WavPack 4.40 がリリースされました」。
- ^ "foobar2000". foobar2000.org . 2019年11月19日閲覧。
- ^ ab 「WavPack ダウンロード」www.wavpack.com。
- ^ 「dBpoweramp Codec Central」www.dbpoweramp.com . 2019年11月19日閲覧。
- ^ 「foobar2000: 無料エンコーダーパック」www.foobar2000.org . 2019年11月19日閲覧。
- ^ 「WavPack - Hydrogenaudio ナレッジベース」。
- ^ 「SoundCodecs < メイン < Wiki」。www.rockbox.org。
- ^ Bryant, David (2007 年 3 月 21 日). 「開発者によるフォーラムコメント」 . 2009 年7 月 17 日閲覧。
- ^ Goldberg, David (1991 年 3 月). 「コンピュータ科学者なら誰もが知っておくべき浮動小数点演算について」(PDF) . ACM Computing Surveys . 23 (1): 5– 48. doi :10.1145/103162.103163. S2CID 222008826 . 2016 年 1 月 20 日閲覧。([1]、[2])。
- ^ 「WinZip – 追加の圧縮方法の仕様」。WinZip International LLC。2006 年 11 月 15 日。2008 年1 月 6 日閲覧。
- ^ 「APPNOTE.TXT – .ZIP ファイル形式の仕様」。PKWARE Inc. 2007 年 9 月 28 日。2008 年1 月 6 日に閲覧。
外部リンク
- 公式サイト
- Hydrogenaudio フォーラムの WavPack フォーラム
- ReallyRareWares の歴史的バージョン
- Hydrogenaudio Wiki でのいくつかのロスレス オーディオ エンコーダーの比較。
- マルチメディアWikiのWavPack
- WavPack フロントエンド
- Flash WavPack プレーヤー
