
2026/08/02 23:29
Video2NAND:映像コーデックの悪用による強力な計算リソース獲得
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2026 年 7 月 11 日に発表された本稿では、VP8 ビデオコーデックを計算基盤として使用して組合論理回路を構築する手法を提案しています。従来のトランジスタベースの製造や新たなハードウェアアーキテクチャに依存せず、既存の動画エンコーディングの基本要素(具体的にはキーフレーム内)を活用し、デジタルゲートの変換をシミュレートします。論理的状態は定値ブロックで表現され、白 (255) が True 、黒 (0) が False にそれぞれ対応します。データ配線は H_PRED および V_PRED 予測モードを使用して水平または垂直方向に伝播し、NOT ゲートと AND ゲートは特定の構成を持つ TM_PRED(「True Motion」)ブロックを使用して構築されます:NOT ゲートは 255 - INPUT を計算し、AND ゲートは A + B - 255 を計算します。入力は非予測の定値ブロックとして提供され、出力はワイヤーブロックとしてマークされます。この設計により、新しいハードウェアの仮定を導入せずに標準的なビデオコーデック形式を操作することで組合論理の機能完全性を実現できることを示しています。今後の課題としては、これらのガジェットを最適化し、Verilog 合成ツールに統合し、インターフレームを利用して順序論理への拡張を実行することによって、ビデオコーディングフレームワーク内で直接コンピュータ構築を可能にする可能性を探求します。
本文
映像コーデック「VP8」を悪用して NAND ゲートを構築する
2026 年 7 月 11 日
はじめに
NAND ゲートを用いたコンピュータの構築については多くの著作が存在しますが、NAND ゲート自体を物理的にどのように作成するかという知識は一般的ではありません。電気工学やトランジスタ技術によるアプローチではなく、本稿では異色の素材である**「ビデオコーデック」**を探求します。
具体的には、以下の目標を達成することを目的とします。
- VP8 ビデオコーデックの予測メカニズムを分析する。
- その仕組みを悪用して論理回路をシミュレートする。
- 任意の論理回路を構築できる組立可能な**「ガジェット(部品)」セット**を作成する。
VP8 ビデオコーデックとフレーム構造
ビデオコーデックとは、映像をビットストリームとして符号化する規格であり、復号器は必ず元の映像を再構築可能であると期待されています。本稿では VP8 全体の詳細ではなく、論理回路構築に必要なサブセットに焦点を当てます。
フレームの分類
映像は「フレーム(画像の系列)」と呼ばれ、以下の 2 種類に分けられます。
- キーフレーム (Intra-frame)
- 他のフレームとは独立して符号化される。
- 必要なデータはフレーム内で完結する。
- 画素データは「直接符号化」または**「イントラ予測」**を用いて表現する。
- イントラ予測の仕組み: ブロックを、上記行、左列、左上ピクセルの情報から予測する。
- インターフレーム (Inter-frame)
- 後続のフレームが変化しない事実を活かし、以前に復号化されたフレームに基づいて画素を予測する。
- キーフレーム同様のプリミティブに加え、参照フレーム間の差分を利用する。
注記: 本稿では組合せ回路構築のために純粋にキーフレームのみを使用します。これにより、「組合せ論理」と「順次論理」の区別が明確になり、限られたツールキットでの挑戦が可能になります。
ワイヤーとゲートの実装方法
組合せ回路は入出力、ワイヤー、ゲートによって構成されます。VP8 でこれらをどのように定義するかを示します。
ブロックの状態定義
- 入力: 「非予測ブロック」として定義し、値を固定する。
(すべての画素値が 255)完全に白
(すべての画素値が 0)完全に黒
- ワイヤー: 「ワイヤーブロック」としてラベル付けされる(右へまたは下へ伸びる経路)。
- H_PRED (水平予測): 各ピクセル値を左隣のピクセル値のコピーとする。
- V_PRED (垂直予測): 各ピクセル値を上側のピクセル値のコピーとする。
TM_PRED (真の動き予測) を用いた論理ゲート構築
基本となるNOT ゲートとAND ゲートを作成するには、複雑さのある
TM_PRED モードを使用します。
- 計算式: $Value = \text{left}[i] + \text{top}[j] - \text{top_left}$
- 簡略化: ブロックは均質(全白または全黒)であるため、式は以下のように単純化される。 $$ \text{出力} = \text{left} + \text{top} - \text{top_left} $$
1. NOT ゲートの構築
- 設定:
- 左上 (
): 入力値top_left - 上側行 (
): 255 (白) に固定top - 左側列 (
): 0 (黒) に固定left
- 左上 (
- 計算結果: $ \text{出力} = 0 + 255 - \text{入力} = \mathbf{255 - \text{INPUT}} $
2. AND ゲートの構築
- 設定:
- 左上 (
): 255 (白) に固定top_left - 上側行の要素 (第 1 入力
): 入力値A - 左側列の要素 (第 2 入力
): 入力値B
- 左上 (
- 計算結果: $ \text{出力} = A + B - 255 $
AND ゲートの真理表確認:
| 入力 A | 入力 B | 計算式 ($A+B-255$) | 結果 (255=真,0=偽) |
|---|---|---|---|
| 0 (偽) | 0 (偽) | $0+0-255 = -255 \to 0$ | 偽 |
| 0 (偽) | 255(真) | $0+255-255 = 0$ | 偽 |
| 255(真) | 0 (偽) | $255+0-255 = 0$ | 偽 |
| 255(真) | 255(真) | $255+255-255 = 255$ | 真 |
これにより、
TM_PRED ブロックは単一ユニットとして動作する論理ゲートとして機能します。
まとめと今後の課題
今回の説明では、VP8 という映像コーデックを介した組合せ論理回路の構築方法を解説しました。NOT と AND が構築できれば、NAND ゲートなどの他の古典的なゲートも同様に作成可能です。
まだ表面にしか触れていないこの分野には、以下のような未解決の課題や可能性が存在します。
- ガジェットのコンパクト化: 回路規模の小型化は可能か?
- シンセシスツールの統合: VP8 フレームレベルでの Verilog サインテシスを実現できないか?
- 順次論理の実装: インターフレーム予測を活用したメモリー機能や順序ロジックの構築。