可逆圧縮音声ファイル: Difference between revisions
可逆音声圧縮の原理、完全復元、FLAC・ALACとの関係を詳説 |
NekoDensen (talk | contribs) Marked this version for translation |
||
| Line 2: | Line 2: | ||
<translate> | <translate> | ||
<!--T:1--> | |||
'''可逆圧縮音声ファイル'''(lossless compressed audio file)は、音声データを圧縮しながら、復号時に元のサンプル列を完全に復元できる音声ファイルである。 | '''可逆圧縮音声ファイル'''(lossless compressed audio file)は、音声データを圧縮しながら、復号時に元のサンプル列を完全に復元できる音声ファイルである。 | ||
<!--T:2--> | |||
代表的な形式・コーデックには[[<tvar name=1>Special:MyLanguage/FLAC</tvar>|FLAC]]、ALAC、WavPack、Monkey's Audioなどがある。 | 代表的な形式・コーデックには[[<tvar name=1>Special:MyLanguage/FLAC</tvar>|FLAC]]、ALAC、WavPack、Monkey's Audioなどがある。 | ||
<!--T:3--> | |||
== 原理 == | == 原理 == | ||
可逆圧縮は、音声信号中の統計的冗長性を利用してデータ量を減らす。 | 可逆圧縮は、音声信号中の統計的冗長性を利用してデータ量を減らす。 | ||
<!--T:4--> | |||
代表的な処理には、 | 代表的な処理には、 | ||
<!--T:5--> | |||
* linear prediction | * linear prediction | ||
* channel decorrelation | * channel decorrelation | ||
| Line 17: | Line 22: | ||
* Rice coding | * Rice coding | ||
<!--T:6--> | |||
などがある。 | などがある。 | ||
<!--T:7--> | |||
非可逆圧縮と異なり、知覚上不要と判断した情報を捨てることは前提としない。 | 非可逆圧縮と異なり、知覚上不要と判断した情報を捨てることは前提としない。 | ||
<!--T:8--> | |||
== 完全復元 == | == 完全復元 == | ||
可逆圧縮では、 | 可逆圧縮では、 | ||
<code>decode(encode(PCM)) = original PCM</code> | <!--T:9--> | ||
<code>decode(encode(PCM)) = original PCM</code> | |||
<!--T:10--> | |||
が成立する。 | が成立する。 | ||
<!--T:11--> | |||
したがって、元のPCMと復号後PCMをbit単位で一致させることができる。 | したがって、元のPCMと復号後PCMをbit単位で一致させることができる。 | ||
<!--T:12--> | |||
Xiph.OrgのFLAC STREAMINFOには、unencoded audio dataのMD5 signatureが格納され、stream全体の検証に利用できる。<ref name="xiph-lossless">[https://xiph.org/flac/documentation_format_overview.html Xiph.Org, ''FLAC Format overview'']</ref> | Xiph.OrgのFLAC STREAMINFOには、unencoded audio dataのMD5 signatureが格納され、stream全体の検証に利用できる。<ref name="xiph-lossless">[https://xiph.org/flac/documentation_format_overview.html Xiph.Org, ''FLAC Format overview'']</ref> | ||
<!--T:13--> | |||
== FLAC == | == FLAC == | ||
[[<tvar name=2>Special:MyLanguage/FLAC</tvar>|FLAC]]はFree Lossless Audio Codecで、可逆音声圧縮として広く使用される。 | [[<tvar name=2>Special:MyLanguage/FLAC</tvar>|FLAC]]はFree Lossless Audio Codecで、可逆音声圧縮として広く使用される。 | ||
<!--T:14--> | |||
FLAC streamはsignature、STREAMINFO、任意metadata block、audio frameから構成される。<ref name="xiph-lossless2">[https://xiph.org/flac/documentation_format_overview.html Xiph.Org, ''FLAC Format overview'']</ref> | FLAC streamはsignature、STREAMINFO、任意metadata block、audio frameから構成される。<ref name="xiph-lossless2">[https://xiph.org/flac/documentation_format_overview.html Xiph.Org, ''FLAC Format overview'']</ref> | ||
<!--T:15--> | |||
== ALAC == | == ALAC == | ||
ALAC(Apple Lossless Audio Codec)はAppleが開発した可逆音声圧縮方式である。 | ALAC(Apple Lossless Audio Codec)はAppleが開発した可逆音声圧縮方式である。 | ||
<!--T:16--> | |||
Appleはlossless compressionを「元のデータをすべて保持する圧縮形式」と説明し、自社のlossless codecとしてALACを案内している。<ref name="apple-alac">[https://support.apple.com/ja-jp/guide/iphone/-iph14e213417/ios Apple, ''ロスレスオーディオを再生する'']</ref> | Appleはlossless compressionを「元のデータをすべて保持する圧縮形式」と説明し、自社のlossless codecとしてALACを案内している。<ref name="apple-alac">[https://support.apple.com/ja-jp/guide/iphone/-iph14e213417/ios Apple, ''ロスレスオーディオを再生する'']</ref> | ||
<!--T:17--> | |||
ALACは[[<tvar name=3>Special:MyLanguage/M4A</tvar>|M4A]]ファイルへ格納されることがある。 | ALACは[[<tvar name=3>Special:MyLanguage/M4A</tvar>|M4A]]ファイルへ格納されることがある。 | ||
<!--T:18--> | |||
== 圧縮率 == | == 圧縮率 == | ||
可逆圧縮率は音声内容に依存する。 | 可逆圧縮率は音声内容に依存する。 | ||
<!--T:19--> | |||
単純な信号や無音に近い部分は圧縮しやすく、ノイズに近い信号は圧縮しにくい。 | 単純な信号や無音に近い部分は圧縮しやすく、ノイズに近い信号は圧縮しにくい。 | ||
<!--T:20--> | |||
非可逆圧縮のように品質を落として任意に小さくする方式ではないため、圧縮後サイズには下限がある。 | 非可逆圧縮のように品質を落として任意に小さくする方式ではないため、圧縮後サイズには下限がある。 | ||
<!--T:21--> | |||
== 音質 == | == 音質 == | ||
可逆圧縮ファイルを正しくdecodeしたPCMは元のPCMと同一である。 | 可逆圧縮ファイルを正しくdecodeしたPCMは元のPCMと同一である。 | ||
<!--T:22--> | |||
したがって「FLACをdecodeするとWAVより音質が低下する」といった説明は、正常なdecodeを前提とすれば成り立たない。 | したがって「FLACをdecodeするとWAVより音質が低下する」といった説明は、正常なdecodeを前提とすれば成り立たない。 | ||
<!--T:23--> | |||
再生時のソフトウェアや機器の不具合、resampling、DSP、volume処理などは別問題である。 | 再生時のソフトウェアや機器の不具合、resampling、DSP、volume処理などは別問題である。 | ||
<!--T:24--> | |||
== 制作とアーカイブ == | == 制作とアーカイブ == | ||
可逆圧縮は、 | 可逆圧縮は、 | ||
<!--T:25--> | |||
* masterの保存 | * masterの保存 | ||
* music library | * music library | ||
| Line 68: | Line 93: | ||
* backup | * backup | ||
<!--T:26--> | |||
などに適する。 | などに適する。 | ||
<!--T:27--> | |||
一方、DAWで頻繁にランダムアクセスする編集作業ではWAV/AIFFの方が単純で扱いやすい場合もある。 | 一方、DAWで頻繁にランダムアクセスする編集作業ではWAV/AIFFの方が単純で扱いやすい場合もある。 | ||
<!--T:28--> | |||
== 非圧縮との違い == | == 非圧縮との違い == | ||
[[<tvar name=4>Special:MyLanguage/非圧縮音声ファイル</tvar>|非圧縮PCM]]と可逆圧縮の主な違いは保存表現であり、復号後のサンプル情報は同一にできる。 | [[<tvar name=4>Special:MyLanguage/非圧縮音声ファイル</tvar>|非圧縮PCM]]と可逆圧縮の主な違いは保存表現であり、復号後のサンプル情報は同一にできる。 | ||
<!--T:29--> | |||
違いは、 | 違いは、 | ||
<!--T:30--> | |||
* ファイルサイズ | * ファイルサイズ | ||
* decode負荷 | * decode負荷 | ||
| Line 83: | Line 113: | ||
* software compatibility | * software compatibility | ||
<!--T:31--> | |||
に現れる。 | に現れる。 | ||
<!--T:32--> | |||
== 非可逆との違い == | == 非可逆との違い == | ||
[[<tvar name=5>Special:MyLanguage/非可逆圧縮音声ファイル</tvar>|非可逆圧縮]]は、完全復元を諦めることでさらに高い圧縮率を得る。 | [[<tvar name=5>Special:MyLanguage/非可逆圧縮音声ファイル</tvar>|非可逆圧縮]]は、完全復元を諦めることでさらに高い圧縮率を得る。 | ||
<!--T:33--> | |||
可逆圧縮では音声情報そのものを保持するため、後からMP3やAACなど任意の配信用形式へ変換する元データとして使える。 | 可逆圧縮では音声情報そのものを保持するため、後からMP3やAACなど任意の配信用形式へ変換する元データとして使える。 | ||
<!--T:34--> | |||
== 関連項目 == | == 関連項目 == | ||
* [[<tvar name=6>Special:MyLanguage/音声ファイル</tvar>|音声ファイル]] | * [[<tvar name=6>Special:MyLanguage/音声ファイル</tvar>|音声ファイル]] | ||
| Line 99: | Line 133: | ||
* [[<tvar name=12>Special:MyLanguage/Codec</tvar>|コーデック]] | * [[<tvar name=12>Special:MyLanguage/Codec</tvar>|コーデック]] | ||
<!--T:35--> | |||
== 参考資料 == | == 参考資料 == | ||
<references /> | <references /> | ||
</translate> | </translate> | ||
Latest revision as of 06:40, 9 October 2026
可逆圧縮音声ファイル(lossless compressed audio file)は、音声データを圧縮しながら、復号時に元のサンプル列を完全に復元できる音声ファイルである。
代表的な形式・コーデックにはFLAC、ALAC、WavPack、Monkey's Audioなどがある。
原理
可逆圧縮は、音声信号中の統計的冗長性を利用してデータ量を減らす。
代表的な処理には、
- linear prediction
- channel decorrelation
- residual coding
- entropy coding
- Rice coding
などがある。
非可逆圧縮と異なり、知覚上不要と判断した情報を捨てることは前提としない。
完全復元
可逆圧縮では、
decode(encode(PCM)) = original PCM
が成立する。
したがって、元のPCMと復号後PCMをbit単位で一致させることができる。
Xiph.OrgのFLAC STREAMINFOには、unencoded audio dataのMD5 signatureが格納され、stream全体の検証に利用できる。[1]
FLAC
FLACはFree Lossless Audio Codecで、可逆音声圧縮として広く使用される。
FLAC streamはsignature、STREAMINFO、任意metadata block、audio frameから構成される。[2]
ALAC
ALAC(Apple Lossless Audio Codec)はAppleが開発した可逆音声圧縮方式である。
Appleはlossless compressionを「元のデータをすべて保持する圧縮形式」と説明し、自社のlossless codecとしてALACを案内している。[3]
ALACはM4Aファイルへ格納されることがある。
圧縮率
可逆圧縮率は音声内容に依存する。
単純な信号や無音に近い部分は圧縮しやすく、ノイズに近い信号は圧縮しにくい。
非可逆圧縮のように品質を落として任意に小さくする方式ではないため、圧縮後サイズには下限がある。
音質
可逆圧縮ファイルを正しくdecodeしたPCMは元のPCMと同一である。
したがって「FLACをdecodeするとWAVより音質が低下する」といった説明は、正常なdecodeを前提とすれば成り立たない。
再生時のソフトウェアや機器の不具合、resampling、DSP、volume処理などは別問題である。
制作とアーカイブ
可逆圧縮は、
- masterの保存
- music library
- archive
- network storage
- distribution
- backup
などに適する。
一方、DAWで頻繁にランダムアクセスする編集作業ではWAV/AIFFの方が単純で扱いやすい場合もある。
非圧縮との違い
非圧縮PCMと可逆圧縮の主な違いは保存表現であり、復号後のサンプル情報は同一にできる。
違いは、
- ファイルサイズ
- decode負荷
- seek特性
- metadata
- software compatibility
に現れる。
非可逆との違い
非可逆圧縮は、完全復元を諦めることでさらに高い圧縮率を得る。
可逆圧縮では音声情報そのものを保持するため、後からMP3やAACなど任意の配信用形式へ変換する元データとして使える。