MPEG-4 SLS
Scalable Lossless Coding
MPEG-4 SLS (MPEG-4 Scalable Lossless Coding) はMPEG-4オーディオ (MPEG-4 Part 3) の一部として規格化されたオーディオ信号のスケーラブルなロスレス圧縮方式である。既存の非可逆圧縮方式であるMPEG-4 AACをコアコーデックとして用い、既存の方式で符号化できなかった誤差信号を段階的に符号化することで、データの欠落が少なく音質の高いニアロスレス信号から、オリジナルのオーディオ信号と全く同じロスレス信号まで、様々な音質の信号を同じ符号化結果から取り出すことができる。
MPEG-4 SLSで使われるスケーラブルなロスレス圧縮の技術は様々なコアコーデックにも適用可能で、その技術自体をSLS (Scalable to Lossless)、AAC LCとの組み合わせを特にHD-AACの名称で呼ぶこともある。
スケーラビリティがあるため、例えば保存、伝送/配信、エミッションそれぞれで異なった品質レベルが要求される放送など、同じ素材を異なった音質で使用するような用途や、音質の低下が問題となるスタジオなどでの音楽編集、様々なビットレートへの対応が必要な音楽のインターネット配信などに使うことができる。
MPEG-4 SLSはMPEG-4オーディオで定義されたロスレスオーディオ符号化ツール (lossless audio coding tools) の1つで、規格はMPEG-4オーディオ (MPEG-4 Part 3) の一部としてISO/IEC 14496-3 Subpart 12で定義されている。
MPEG-4 SLSの技術はシンガポールのインフォコム研究所 (Institute for Infocomm Research, I2R) と、MP3の開発を行ったドイツのフラウンホーファーIIS(Fraunhofer-Institut für Integrierte Schaltungen、フラウンホーファー集積回路研究所)が共同で開発した。
通常、MPEG-4 SLSは非可逆圧縮を行うコアコーデック(AACを使用)と誤差成分のロスレス圧縮を行う拡張部分とから構成される。符号化ビットストリームにはコアコーデックの符号化結果がそのまま含まれるためMPEG-4 AACコーデックとの下位互換性がある。コアコーデックを使わず拡張部分のみで符号化を行う設定(SLSノンコア、"SLS Non-Core")も可能である。
MPEG-4 SLSの特徴は以下の通りである。
スケーラブルなサンプリング周波数(192 kHzのサンプリング周波数にも対応可能)
MPEG-4 AACコーデックとの下位互換性がある(コアコーデック使用時)
圧縮率は対象となる音楽やサンプリング周波数により異なる。圧縮率の平均値の例を以下に示す。数値が高いほど圧縮効率が優れている。
MPEG-4オーディオは多くのツールの組み合わせからなり、MPEG-4 SLSはオーディオ符号化ツール (audio coding tools) の1つであるロスレスオーディオ符号化ツール (lossless audio coding tools) に分類される。
同じカテゴリのツールとして、スーパーオーディオCDでのロスレス圧縮方式として使われているMPEG-4 DST (direct stream transfer) や、PCM信号のロスレス圧縮専用のMPEG-4 ALS (audio lossless coding) がある。それぞれ符号化方式が異なる。
MPEG-4 SLSはMPEG-4 AACの機能拡張として設計されたもので、コアとなるAACコーデックと拡張部分からなる。コアコーデックではMDCTを用いて音楽などの入力信号を周波数領域の信号に変換し、音響心理学モデルを用いて聴覚上重要な部分のみを符号化する。拡張部分は、同じ入力信号を整数MDCT (Integer Modified Discrete Cosine Transform, IntMDCT) を用いて周波数領域の信号に変換し、コアコーデックの情報を逆量子化した信号との差分を求める。この差分は本来の信号のスペクトル成分とコアコーデックで符号化できたスペクトル成分との間の誤差を表す。この誤差情報はエントロピー符号化を使って圧縮する。
拡張部分で符号化対象となる周波数領域の誤差情報を表す各係数は上位のビットから順に階層的にまとめられて符号化され、コアコーデックの符号化結果に追加される。そのため、階層が増えるに従って下位のビット情報が追加されてデータの欠落が少なくなり、全ての階層を取り出せばロスレス符号化結果が得られる。コアコーデックの符号化結果のみを取り出すことも容易にできる。
復号時は、コアコーデックと拡張部分の符号化結果を取り出し符号化とは逆の処理を行うことで最終的な信号を復元する。
具体的には、コアコーデックの情報からMPEG-4 AACの復号アルゴリズムを用いて周波数領域の各係数を求め、これを逆量子化した信号と誤差情報を表す拡張部分の復号結果と足し合わせて本来の周波数領域の信号を求める。これに整数MDCTの逆変換を行って時間領域の信号に戻す。
コアコーデックを使わない設定の場合は、整数MDCTとエントロピー符号化のみで信号が持つ全ての情報を階層的に符号化する。復号時は逆にエントロピー符号化結果を復号し整数MDCTの逆変換を行って入力信号を復元する。
整数MDCT (IntMDCT) は整数で近似した可逆性のあるMDCT(修正離散コサイン変換)で、通常のMDCTが計算時の丸め誤差のため逆変換で元の値に戻らないのに対し、逆変換で元の値に戻すことができるため周波数領域でのロスレス圧縮に向いている。
通常のMDCTを単純に整数に丸めながら処理を行うと丸め誤差の蓄積のため精度が落ちる。整数MDCTは整数への丸め回数を減らすことで精度の低下を抑えるよう、アルゴリズムの工夫がされている。
誤差情報は周波数領域でのスペクトル成分の係数として与えられる。符号化結果を階層的に取り出せるよう、各係数は上位ビットから順に階層的にまとめられ、各階層のビットプレーンごとにエントロピー符号化が行われる。
ビットプレーンの符号化には以下のアルゴリズムのいずれかを用いることができる。
ビットプレーンゴロム符号 (Bit-Plane Golomb Code, BPGC)
コンテキストベース算術符号 (Context-Based Arithmetic Code, CBAC)
さらに、ほとんど無音の周波数領域/時間領域は低エネルギーモード符号化 (Low Energy Mode Coding) という前記の2つとは別の方式で符号化を行う。
ビットプレーンゴロム符号はゴロム符号の一種で、単純で比較的圧縮効率が良い。
コンテキストベース算術符号はより洗練された方法で圧縮効率がさらに高い。符号化対象となるスペクトル成分の係数はその周波数帯域などの様々な状況(コンテキスト)によりシンボルごとの確率分布が異なる。コンテキストベース算術符号は算術符号をベースとし、そのコンテキストに応じて確率テーブルを変えることで最適なデータ圧縮を行う。
また、ほとんど無音で信号のエネルギーが低い領域では、整数MDCTの丸め誤差による雑音成分の影響が大きくなるため信号の性質が通常の場合と異なり、シンボルの確率分布がラプラス分布の場合に最適となる前記の2つの方式では圧縮効率が落ちるため、低エネルギーモード符号化が用いられる。
MPEG-4 SLSのリファレンス実装はISO/IEC 14496-5:2001/Amd.10:2007で定義されている。
また、フラウンホーファーIISは組み込みシステム向けや各種PC向けのソースコードとライブラリの提供を行っている。
ドルビーラボラトリーズの子会社のVia Licensing社がMPEG-4 SLSのパテントプールのライセンス管理を行っており、MPEG-4 SLSに関するシンガポールのA*STAR ETPL(Agency for Science, Technology and Research Exploit Technologies Pte Ltd、シンガポール科学技術研究庁 エクスプロイトテクノロジーズ社)、ドイツのフラウンホーファーIIS、及びNTTの特許を管理している。
ライセンス料金はPC向けデコーダも含め有料である。
2002年6月から始まったMoving Picture Experts Groupによるロスレスオーディオ符号化方式の提案要求に対し、2002年12月にベルリン工科大学(ドイツ)、NTT(日本)、リアルネットワークス社(アメリカ)、インフォコム研究所(シンガポール)、フラウンホーファーIIS(ドイツ)、マイクロソフト(アメリカ)、サムスン電子(韓国)の7社からコーデックの提案があり、圧縮効率、必要な演算量、柔軟性についての評価が行われた。提案には可逆圧縮のみを行う方式(その後のMPEG-4 ALS)と、非可逆/可逆圧縮のハイブリッド方式(その後のMPEG-4 SLS)とが含まれていた。
Moving Picture Experts Groupは両方の方式をサポートすることを決定し、2003年6月に非可逆/可逆圧縮のハイブリッド方式としてインフォコム研究所の提案をリファレンスモデルとして採用した。この方式は当初 "Advanced Audio Zip" (AAZ) の名称で呼ばれていた。
これをベースとし、フラウンホーファーIISとインフォコム研究所とが協力して圧縮性能や柔軟性の向上と演算量の低減を行った現在のMPEG-4 SLSの最終案をまとめ、最初の規格ISO/IEC 14496-3:2005/Amd 3:2006 Scalable Lossless Coding (SLS) が2006年3月に出版された。