Open Pixel Control(OPC)
Open Pixel Control(OPC) — 軽量ピクセルプロトコル
**Open Pixel Control(OPC)**は、LEDコントローラーにピクセルデータをストリーミングするための最小限のTCP/IPベースのプロトコルです。Micah ScottによってFadecandyプロジェクト用に設計され、クリエイティブコーディング環境で広く使用されています。

技術仕様
| パラメータ | 値 |
|---|---|
| トランスポート | TCP/IP(デフォルトポート7890) |
| メッセージあたりの最大ピクセル数 | 65,535バイト(約21,845 RGBピクセル) |
| 最大チャンネル数 | 256 |
| コマンドタイプ | ピクセル色設定、色補正設定、システム専用 |
| フレーミング | シンプルなバイナリヘッダー+データペイロード |
プロトコルヘッダー形式
| バイト | フィールド | 説明 |
|---|---|---|
| 0 | チャンネル | 出力チャンネル(0–255) |
| 1 | コマンド | 0 = ピクセル設定、1 = 色補正設定、255 = システム専用 |
| 2–3 | 長さ | データバイト数(ビッグエンディアン、16ビット) |
| 4+ | データ | ピクセルデータ(チャンネルあたりRGB 0–255) |
3つのLED(RGBRGBRGB)のピクセルデータメッセージは次のようになります:[0, 0, 0, 9, R, G, B, R, G, B, R, G, B]
他のプロトコルとの比較
| 機能 | OPC | Art-Net | sACN(E1.31) |
|---|---|---|---|
| トランスポート | TCP | UDP | UDP |
| パケットあたりの最大ピクセル数 | 約21,845 | 512(RGB)/ 680(RGBW) | 512(RGB)/ 680(RGBW) |
| ユニバース/チャンネルサポート | 256チャンネル | 32,768ユニバース | 63,999ユニバース |
| エラーチェック | なし(TCPが処理) | なし | CID+シーケンス番号 |
| 複雑さ | 非常に低い | 中程度 | 中程度 |
| レイテンシ | 低い(TCPオーバーヘッド) | 非常に低い | 非常に低い |
OPCを使用するツール
| ツール | 目的 |
|---|---|
| Fadecandy | OPCサーバー付きUSB LEDコントローラー |
| Processing | Javaスケッチ用PixelBender、OPCライブラリ |
| openFrameworks | C++クリエイティブコーディング用ofxOPCアドオン |
| Glediator | LEDマトリックス制御ソフトウェア |
| PixelController | WebベースLEDマトリックス制御 |
| OPC Pythonクライアント | LED制御用軽量Pythonライブラリ |
使用例
- インタラクティブ設置 — 低レイテンシ、Processing、openFrameworks、TouchDesignerとの統合が容易
- Fadecandyセットアップ — Fadecandyコントローラーのネイティブプロトコル(8出力、各512ピクセル)
- プロトタイピング — 最小限のオーバーヘッドで迅速なLEDスケッチに最適
- 小〜中規模設置 — マルチプレックスなしでチャンネルあたり最大約21Kピクセル