4채널 1080p를 4K 출력으로 스티칭: 대역폭 장부 작성법
1080p 카메라 네 개를 4K 출력 하나로 스티칭하는 것은 “그림 네 개를 붙이는 것”처럼 보이지만, 그 뒤에는 대역폭 장부가 숨어 있다: 입력 대역폭, DDR 프레임 버퍼 대역폭, 스케일링 엔진 대역폭, 출력 대역폭—네 단이 서로 포개진 구조다. 계산을 잘못하면 끊김, 티어링, DDR 과부하가 생긴다. 이 글에서는 픽셀 클록부터 위로 올라가며 각 단을 풀어 본다.
1. 입력 대역폭: 1080p60 피드 4채널은 얼마인가
1080p60 카메라 4대, 각각 8-bit RGB 기준:
| 항목 | 계산식 | 결과 |
|---|---|---|
| 채널당 픽셀 수 | 1920 × 1080 | 프레임당 2,073,600 픽셀 |
| 프레임 레이트 | 60 fps | — |
| 채널당 데이터 레이트 (8-bit RGB) | 1920 × 1080 × 3 × 8 × 60 | ≈ 2.99 Gb/s ≈ 374 MB/s |
| 4채널 총입력 | 2.99 Gb/s × 4 | ≈ 11.96 Gb/s ≈ 1.5 GB/s |
YCbCr 4:2:2(산업용 카메라에서 흔히 사용)를 쓰면 픽셀당 16비트:
1920 × 1080 × 16bit × 60fps ≈ 1.99 Gb/s ≈ 249 MB/s; 4채널이면 ≈ 7.97 Gb/s ≈ 996 MB/s.
이 입력 수치가 FPGA 수신부에 필요한 GTP/GTX 트랜시버와 HDMI 디코더 칩 수를 결정한다.
2. DDR 프레임 버퍼: 읽기+쓰기로 대역폭이 2배
네 개의 영상 피드는 스티칭 전에 DDR로 버퍼링되어야 한다. 네 입력은 비동기이고 4K60 출력은 통일 클록으로 돌아가므로—DDR이 클록 도메인을 넘나드는 버퍼다.
프레임 버퍼가 DDR을 얼마나 차지하나
1080p 4채널, 더블 버퍼(티어링 방지용 채널당 2프레임):
| 항목 | 계산식 | 결과 |
|---|---|---|
| 단일 프레임 크기 (1080p60 8-bit RGB) | 1920 × 1080 × 3 바이트 | ≈ 6.2 MB |
| 4채널 × 더블 버퍼 | 6.2 MB × 4 × 2 | ≈ 49.6 MB |
| 4K 출력 프레임 버퍼 (3840×2160) | 3840 × 2160 × 3 바이트 | ≈ 24.9 MB |
| DDR 총점유 | — | ≈ 75 MB |
DDR 대역폭 예산: 읽기+쓰기가 2배로 만든다
데이터 흐름: 네 입력 → DDR 쓰기(프레임 저장) → 스케일링 엔진 읽기 → DDR 읽기(프레임 인출) → 스티칭 → 출력.
초당 DDR이 처리해야 할 양:
| 방향 | 초당 데이터 | 비고 |
|---|---|---|
| DDR 쓰기 (4입력) | ≈ 1.5 GB/s | 1080p 프레임 4개 쓰기 |
| DDR 읽기 (스케일링 인출) | ≈ 1.5 GB/s | 스케일링용 프레임 4개 읽기 |
| DDR 쓰기 (스티칭 4K) | ≈ 1.5 GB/s | 4K60 프레임을 출력 버퍼에 쓰기 |
| DDR 읽기 (4K 출력) | ≈ 1.5 GB/s | 4K60 프레임을 HDMI용으로 읽기 |
| 필요 DDR 총대역폭 | ≈ 6 GB/s | 읽기+쓰기 합산 |
3. 출력 대역폭: 4K60은 얼마나 큰가
스티칭 출력은 3840×2160@60Hz, 8-bit RGB다:
| 항목 | 계산식 | 결과 |
|---|---|---|
| 4K60 데이터 레이트 | 3840 × 2160 × 3 × 8 × 60 | ≈ 11.94 Gb/s ≈ 1.49 GB/s |
| HDMI 2.0 대역폭 | — | 18 Gb/s (충분) |
| DP 1.2 대역폭 | — | ≈ 17.3 Gb/s (간신히 감당) |
4K60 출력 자체는 12 Gb/s로, HDMI 2.0과 DP 1.2 모두 carry 가능하다. 다만 출력 클록과 DDR 읽기 클록은 비동기이므로—클록 도메인 크로싱용 FIFO가 필요하다.
4. 전체 체인 대역폭 장부
| 단계 | 대역폭 | 디바이스 |
|---|---|---|
| 1080p 4채널 입력 | ≈ 1.5 GB/s | HDMI 디코더 + FMC/병렬 IO |
| DDR 쓰기 (입력 버퍼) | ≈ 1.5 GB/s | DDR 컨트롤러 |
| DDR 읽기 (스케일링 인출) | ≈ 1.5 GB/s | DDR 컨트롤러 |
| 스케일링 엔진 | ≈ 1.5 GB/s | DSP / 로직 |
| DDR 쓰기 (4K 프레임 버퍼) | ≈ 1.5 GB/s | DDR 컨트롤러 |
| DDR 읽기 (4K 출력) | ≈ 1.5 GB/s | DDR 컨트롤러 |
| 4K60 HDMI 출력 | ≈ 1.5 GB/s | HDMI 2.0 TX |
| DDR 피크 총량 | ≈ 6 GB/s | — |
왜 DDR이 병목인가
Duyuuan 주요 보드의 DDR 대역폭:
- DUK7410T (4GB DDR3 64-bit 1866Mbps): ≈ 14.9 GB/s — 6 GB/s에 충분
- DUF7690T (4GB DDR3 64-bit 1866Mbps): ≈ 14.9 GB/s — 동일
- XCKU15P (8GB DDR4 ECC 64-bit 2400Mbps): ≈ 19.2 GB/s — 다채널 4K에 여유
1080p 4채널 스티칭을 4K로 하는 것은 DDR3로도 돌아간다. 하지만 1080p 8채널이나 4K 입력 2개가 필요하면 DDR4가 요구된다.
5. 어떤 보드를 고를 것인가
DUK7410T (¥9,999) — 엔트리 4채널 스티칭
FMSH JFM7K410T. 로직 리소스가 충분하고, DDR3 대역폭 14.9 GB/s가 4채널 스티칭에 넉넉한 마진을 준다. FMC HPC 카드로 HDMI 4채널 입력을 구성하고, 온보드 HDMI 출력으로 4K 디스플레이를 연결한다. 소규모 2×2 비디오 월과 산업용 모니터링에 적합하다.
DUF7690T (¥24,999) — 다채널 스티칭 실무형
FMSH JFM7VX690T. 로직과 DSP가 수 배 더 많아 복잡한 스케일링 필터와 색 보정을 처리한다. 온보드 QSFP 40G로 스티칭된 4K 스트림을 광으로 원격 디스플레이에 전송할 수 있다. 다중 화면 스티칭 + 광 백홀에 적합하다.
XCKU15P (¥15,999) — 고대역폭 4K 오버레이
AMD Kintex UltraScale+ XCKU15P. DDR4 ECC 대역폭 19.2 GB/s, UltraScale+ 트랜시버와 조합. 8채널 1080p 스티칭 또는 듀얼 4K 입력 오버레이에 적합하다. 8채널이나 다중 4K60 입력으로 확장할 계획이면 이 보드를 고르라.
4채널 스티칭은 어렵지 않다—진짜 어려운 건 각 채널의 대역폭을 정확히 맞추는 것이다. 스티칭 시스템에서 DDR이 가장 과소평가된 병목이다: 1.5 GB/s 입력은 작아 보이지만 읽기+쓰기로 2배가 되면 6 GB/s가 된다. 보드를 고르기 전에 계산부터 하라.
— Duyuuan 엔지니어링팀
