ニューラル圧縮 — 学習するコーデック
JPEGの量子化テーブルもH.264の予測モードも、人間が実験して手で決めた表でした。ニューラル圧縮はその設計自体をデータから学習させます。オートエンコーダとエントロピーモデルという2本柱、量子化が微分できない問題の回避策、ハイパープライア、そしてJPEG AIに至る標準化の焦点と現場の落とし穴までを1から解説します。
End-to-end Optimized Image Compression
一次資料 — この記事の根拠
この解説の公開 2026-08-25
End-to-end Optimized Image CompressionarXiv:1611.01704論文ページ·PDFVariational Image Compression with a Scale HyperpriorarXiv:1802.01436論文ページ·PDF
Joint Autoregressive and Hierarchical Priors for Learned Image CompressionarXiv:1809.02736論文ページ·PDF
High-Fidelity Generative Image CompressionarXiv:2006.09965論文ページ·PDF
比喩: 辞書を手で編むか、読ませて覚えさせるか
JPEGの量子化テーブルは、人間の目がどの細かさの模様に鈍いかを心理実験で測り、技術者が64個の数値を1つずつ決めて標準に書き込んだ表です。H.264のイントラ予測モードもAV1の変換の種類も同じで、誰かが「自然画像にはこういう構造が多いはずだ」と仮説を立て、実装し、標準化会議で証拠を出して合意を取る。この積み重ねが30年続いてきました。
ニューラル圧縮はここをひっくり返します。どういう変換を使い、どの成分を粗く捨て、次に来る値をどう予測するかを、人が決めずに大量の画像から学習させるという発想です。手で編んだ辞書と、読ませて覚えさせた辞書の違いだと思ってください。前者は理由を説明できますが、後者は説明できない代わりに、実際のデータの偏りをそのまま吸収します。
どのコーデックにも共通する3つの箱
面白いことに、ニューラル圧縮は既存コーデックの骨格を捨てていません。JPEGもH.264も、そしてニューラル圧縮も、中身は同じ3つの箱の並びです。
- 変換: 画素をそのまま扱わず、情報が少数の値に集まる別の座標系に移す
- 量子化: 移した先の値を粗く丸める。ここで初めて情報が失われる(非可逆の正体)
- エントロピー符号化: 丸めた値を、出やすい値ほど短いビット列に置き換える
JPEGならDCT・量子化テーブル・ハフマン符号、H.264なら整数変換・QP・CABACが各箱に入っています(3つ目の理屈はエントロピー符号化を1からで扱っています)。ニューラル圧縮が差し替えるのは、箱の並びではなく箱の中身です。変換はニューラルネットに、確率予測もニューラルネットになり、量子化だけは丸めのまま残る。この構図に以降の話が全部ぶら下がります。
正体はオートエンコーダ
変換を担当するのは、画像を小さな表現に潰してから戻すネットワーク — オートエンコーダです。入力画像を 、潰す側(解析変換)を 、戻す側(合成変換)を 、丸めを と書くと、コーデック全体はこれだけです。
読み下すと「画像を で特徴の並びに変え、それを丸めて整数にし、 で画像に戻す」。丸めた整数の並び が、実際にファイルへ書き込まれる中身です。
普通のオートエンコーダとの違いは2つ。中間表現を整数に丸めること(小数のままでは有限ビットで書けない)と、次元を小さくすること自体が目的ではないことです。目的はあくまでビット数です。似た骨格を持つVAEとの関係はVAEを1から実装するを読むと腑に落ちます。
ビット数はどこから来るのか — エントロピーモデル
では、そのビット数はどこで決まるのでしょうか。丸めた値をファイルに書くのは算術符号やANSですが、符号化器は確率分布を外から渡されないと1ビットも縮められません。この確率を出す係が、学習コーデックのもう1本の柱、エントロピーモデル です。
情報理論が保証するのは、確率 の値を書くのに必要な符号長がおよそ ビットだということ。したがって1枚に必要なビット数は、
つまり「実際に来た値に、モデルがどれだけ高い確率を割り当てられたか」の期待値です。予測が当たるほどファイルは小さくなる。圧縮率の改善とは、予測精度の改善そのものなのです。
何を最小化するのか — レート歪み最適化
ビット数 を小さくするだけなら真っ黒な画像を返すのが最強なので、画質の劣化 (多くはMSE、知覚寄りならMS-SSIM)と足し算にします。
「ビットと歪みを という重みで釣り合わせた合計を最小にせよ」。 を大きくすると歪みの罰が重くなり、モデルはビットを使ってでも忠実に戻そうとします。この こそが、ユーザーから見える「品質設定」の正体です。
既存コーデックとの決定的な差はここです。JPEGやH.264のレート歪み最適化は、エンコード時にブロックごとに決め打ちのモードから選ぶ作業でした。学習コーデックでは同じ最適化が訓練時に一度だけ、コーデック全体に対して行われ、変換もエントロピーモデルも一本の損失から同時に形作られる。だから「エンドツーエンド最適化」と呼ばれます。
コメント
コメントにはログインが必要です