これは ADC と、その周辺にあるより広い過大主張パターンについて扱ってきた連載の、おまけ兼最終回です。前回までの記事はこちら、こちら、こちら、こちらです。
最初の4本は、音声コーデックである ADC の話でした。今回は、同じ作者による画像コーデック、SIC の話です。
SIC について公開されている資料、とくに encode.su のスレッド と コーデックのホームページ を読んでいると、ADC ですでに見たのとまったく同じパターンが何度も出てきました。
SIC のホームページは、いつもの調子の文句から始まります。
前の ADC 記事を読んでいるなら、こういう主張がどれくらい本当っぽいか、もう脳が先に察しているはずです。今回も同じプレゼンです。
ホームページには、SIC は "highly optimized OGBT Transform" を使い、16x16 ブロックを動的に適用し、その係数を aggressive な range coding で符号化することで "paramount strength" を発揮するとあります。でも、公開ソースコードはない。公開仕様もない。ページ上には詳細なベンチマーク手法もない。主張に対応する再現可能なコーパスもない。なので、出だしから状況は見慣れたものです。証明よりマーケティングのほうがずっと詳しい。
SIC を評価しづらい最大の理由のひとつは、「SIC とは何か」がずっと動いていたことです。
encode.su スレッド上の大まかな公開タイムラインはこうです。
もちろん、実験すること自体は何も悪くありません。実験的コーデックなんて、変わって当然です。ただ、アーキテクチャも、変換も、ブロックロジックも、フィルタも、評価法も、全部が動く標的になってしまうと、「SIC は X に勝つ」みたいな大きな主張は、証拠がきわめて明確で、しかもバージョンごとに特定されていない限り、かなり真面目に受け取りにくくなります。そして、まさにそこが公開記録の弱いところです。
公開資料という意味では、外部テストを含む実質的な議論は encode.su スレッドがほぼ唯一です。では、そのスレッドは何を見せているのか。長いあいだ、まともに評価すること自体が難しいコーデックだった、という事実です。
ライセンスだけでも、だいぶ物語っています。SIC は、非商用の評価目的に限る "closed source evaluation license agreement" で配布されていました。繰り返しますが、クローズドソース自体が悪いとは言いません。でも、JPEG、WebP、AVIF、JPEG XL に本気で挑めるコーデックだと世界に信じてほしいなら、「私のバイナリを信じてください」は、研究手法としてあまり説得力がありません。
再現性の問題もあります。スレッドでは、何度も私的なベンチマークセットへの言及が出てきます。
比較対象が「同じファイルサイズ」のこともあれば、セット全体の総バイト数のこともある。あるいは GIMP がたまたまその設定で吐いた AVIF と比べているだけのこともある。独自の重み付きスコアのこともある。PSNR のこともある。SSIMULACRA2 のこともある。足元がずっと動いているわけです。見出しだけ聞くと立派でも、主張の足場としてはかなり弱い。
このスレッドには、見過ごすべきではない別のパターンもあります。作者は繰り返し「批判もフィードバックも歓迎だ」と言うのですが、実際に人がコーデックをテストし、好ましくない結果を報告すると、反応がかなり悪い。ここは重要です。SIC に外部的な信頼性らしきものを与えているのは、ほぼ公開テストだけだからです。コーデックがクローズドソースで、不安定で、再現もしづらく、自分のスクリーンショットと自分のメトリクスに大きく依存しているなら、比較を走らせてくれる人たちは、むしろ助けてくれている側です。それなのに、スレッドではそのテスターたちに対して、防御的、切り捨て気味、ときには露骨に見下したような態度が何度も出てきます。
Sebastian が、いくつかの例では SIC は JPEG より悪く見えると言ったとき、返ってきたのは「どの領域がそう見えますか?」でも「crop を共有してもらえますか?」でもなく、これでした。
Sebastian I thought you had more objective evaluation skills. Think about developing your own audio compression program.
音声圧縮プログラム、ですか。ああ、あの……いや、やめておきましょう。
その後、作者の別コーデックについての外部検証が強まったあとも、話はさらに妙な方向へ曲がっていきます。たとえば、私が Reddit で ADC コーデックのスペクトログラム評価を公開し、ファイル構造や内部音声パイプラインの可能性について書いたあとです。
The next version of SIC, which has been ready for release for some time, is being delayed precisely because I've noticed this behavior from a few rare birds who like to copy others' work. I'm sorry, but with the new obfuscation methods, I'll soon release the new version.
いや、コピーなんてしていません。そもそも、どうしてわざわざ劣ったコーデックをコピーするんですか。これは、公的な批判を「盗用への疑い」にすり替えようとする動きです。前後の文脈を見ても、コピーについて証拠ベースで心配しているというより、検証されること自体への苛立ちに見えます。コーデックをレビューすること、テスト結果を貼ること、公開挙動を分析することは、「他人の仕事をコピーする」には当たりません。むしろ、批判への返答が「さらに難読化します」だと、プロジェクト全体の信頼性はますます下がるだけです。
しかも、批判が毎回だいたい同じ視覚的問題に着地すると、今度は「異論そのもの」が問題だ、という framing に流れていきます。
実際には、スレッドの中でいちばん建設的だったのは、むしろあしらわれていた側の人たちです。
要するに、プロジェクト自身の見せ方がやっていなかった仕事を、代わりにやっていた人たちです。
ここが重要なのは、ADC と同じ社会的パターンだからです。理屈の上では批判歓迎。でも実際には、作者の望む物語を補強してくれる限りでしか歓迎されない。テスト結果がコーデックを持ち上げなくなった瞬間、テスターは偏っている、資格がない、懐古的だ、客観性が足りない、ということになる。
SIC の公開評価ストーリーは、単にメトリクスに頼っているだけではありません。変わり続けるメトリクス、自家製メトリクス、そして重み付きごった煮に頼っています。
スレッドでは、時期ごとに次のようなものが出てきました。
スレッドには、次の挙動が全部含まれています。
メトリクス自体は有用です。私も使います。でも、そのメトリクスの土台そのものが動いていて、一部が自家製で、何度も重み付けを変えているなら、それを実際の比較画像で誰の目にも見えていることに対する切り札みたいに振り回すことはできません。
この緊張関係は、スレッドでもかなり露骨に出ていました。複数のユーザーが繰り返し、だいたい次のようなことを言っています。
それに対する返答は、しばしばこういう感じでした。
ある時点では、作者はこんなことまで書いています。
Your opinion is worth nothing to me, just as mine is worthless. Therefore, we need an impartial judge, which the eyes are not.
なかなかの発言です。画像コーデックの話で、「人間にどう見えるか」が全目的なのに。
自分で書いた総括をいったん脇に置いて、スレッド内の外部テスターたちが繰り返し何を報告していたのかだけを見ると、だいぶ地に足のついた絵が出てきます。
| テスター | 繰り返し見られた公開上の指摘 |
|---|---|
| Hakan Abbas | SIC は、とくに滑らかであるべき領域で、ざらつき、量子化ノイズ、目立つブロックアーティファクトをしばしば持ち込んでいた。 |
| Sebastian | 投稿サンプルでは SIC が JPEG より悪く見えることが多く、リンギングやアーティファクトブロックも強い。後期版でも、よくて JPEG 級くらいで、AVIF は依然として別格。 |
| RoomWithAView | SIC は可変ブロックの DCT コーデックに見え、要するに "scalable JPEG-1" のようなもの。まだ若く、DCT っぽいアーティファクトと未熟なブロック判断に明らかに支配されている。 |
| nika | 初期リリースはテスト自体が難しいか不可能で、その後の視覚比較でも JPEG に対する絶対的優位は見えなかった。速度と実用性では、なおさら JPEG に大きく劣る。 |
| awm | OGBT 移行後、巨大な1枚画像で PSNR 的に好意的な結果を1件投稿したが、それでも SIC は極低ビットレート狙いであり、ブロックはかなり目立つと書いていた。 |
私の感覚では、あの勝利宣言じみたメトリクス投稿群より、こちらのほうがずっと正直です。
それを少し具体的にするために、Unsplash からランダムに拾った画像を、最新の公開版 SIC "201mlt" でエンコードして、中心 712x534 の crop を3つ用意しました。記事用に lossless WebP へ書き出しています。AVIF 側は、それぞれ対応する SIC ファイルと同じ目標ファイルサイズになるようにエンコードしました。



見れば、繰り返し出ていた不満点がそのまま見えてきます。ブロック境界、リンギング、そして平坦化されるテクスチャです。
公平のために言っておくと、スレッド全体が一様に否定的というわけではありません。前向きな瞬間もあります。
そこはちゃんと重要ですし、公平に書いておきたいところです。でも、1枚で良い結果が出たとか、数枚そこそこ見栄えのする画像があった、というだけでは、次のような主張は支えられません。
しかも公開スレッド全体の結論が、だいたい「見た目としてはまだ JPEG 圏内だよね」に寄っているなら、なおさらです。
さて、ここで SIC が新しいアイデンティティとして押し出してきたもの、OGBT の話をしましょう。
名称は "Orthogonalized Adaptive Gabor Basis for Energy Compaction in Two-Dimensional Block Transforms" の略です。ずいぶん壮大です。公平に言えば、Zenodo のノートは少なくとも数学的な土台を示そうとはしています。ただ、ちゃんと読むと、この公開ノートは名前ほど神秘的でも革命的でもありません。
実際に書かれているのは、だいたいこういうことです。
最後の点は、特にちょっと面白い。情報を量子化で捨てなければ完全再構成できる、というのは、OGBT に固有の魔法の売り文句ではありません。直交正規変換なら、まあそうなるでしょう、という話です。公開ノートが証明しているのは、OGBT がブレークスルーだということではなく、作者が直交ブロック変換とは何かを説明できる、ということくらいです。
もっと大事なのは、変換そのものは非可逆画像コーデックの一部にすぎないことです。コーデックの成否は、量子化、ブロック決定ロジック、色処理、フィルタ、エントロピー符号化、そのほか多くの周辺要素でも決まります。そして、その周辺部分についての SIC の公開証拠は、依然として疎で、不安定で、バージョン依存でした。
なので、「秘密めいている」部分は、OGBT が不可知だからというわけではありません。変換ノート自体はあります。本当に秘密めいているのは、その周囲の実コーデックがなお不透明で、主張された性能のどこまでが変換由来で、どこまでがチューニング由来で、どこまでが都合のいいテスト条件由来なのか、誰にも検証できないことです。
ここまで来ると、ADC との類似はかなり見逃しにくいです。パターンとしては、こうです。
ADC のときに見た構造と、ほとんど同じです。そして ADC と同じく、いちばんもどかしいのは、これにはちゃんとした書き方の版もあるはずだ、ということです。もし作者が、たとえばこう言っていたなら。
私はクローズドソースの実験的な画像コーデックを作っています。まだ不安定で、アーキテクチャも速いペースで変わっています。初期結果の中には有望なものもあります。これまでの公開テストを見るかぎり、多くの画像ではだいたい JPEG から、よくて WebP くらいの領域に見えますが、面白い強みもあれば、わかりやすい弱みもあります。いろいろな変換、フィルタ、ブロック決定を試しながら、何が効くのかを探っています。
それなら全然いいんです。むしろ面白い。でも、実際に繰り返し提示されていたのは、そういう版ではありませんでした。話は次第にこう流れていった。
そして公開記録は、単純にそれを支えていません。
これは、ADC とその周辺にある過大主張パターンを扱ってきた連載の、おまけ兼最終回です。
<- 現在地SIC はこの連載の主題そのものではありません。でも、非常に示唆的な後日談ではあります。これを見ると、ADC はこの作者における「たまたまマーケティングが不器用だった一件」ではなかった、とわかるからです。もっと広い癖が見えます。実験的なコーデック案をひとつ持ってきて、そこに膨らんだ言葉をまとわせ、できるだけ早い段階で上位比較を始め、不完全な証拠をあたかも革命の証明みたいに扱う。その習慣です。
だからこそ、このおまけ記事は必要でした。
もちろんです。変なコーデック、大いに作ってください。ぜひ。物を作るのは楽しいので。でも、既存フォーマットに挑むなら、主張は証拠を追い越してはいけません。証拠が先で、主張は後です。SIC についても、ADC と同じく、その証拠はまだかなり追いつけていません。