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 | 웹 기반 LED 매트릭스 제어 |
| OPC Python 클라이언트 | LED 제어용 경량 Python 라이브러리 |
사용 사례
- 인터랙티브 설치 — 낮은 지연 시간, Processing, openFrameworks, TouchDesigner와의 쉬운 통합
- Fadecandy 설정 — Fadecandy 컨트롤러의 네이티브 프로토콜 (출력 8개, 각 512 픽셀)
- 프로토타이핑 — 오버헤드가 최소화되어 빠른 LED 스케치에 이상적
- 소형/중형 설치 — 멀티플렉싱 없이 채널당 최대 ~21K 픽셀