CIF HD→4K 벡터 업스케일 — 저개발국 고효율 통신 분석
배경 / 목적
CIF/CVF의 본래 목적은 저개발국 고효율 통신(저대역폭에서 최대 화질). 2026 현재 버전은 4K를 직접 인코딩/전송하지 않고, HD로 인코딩·전송한 뒤 단말에서 CIF 규칙(벡터 트릿트리)으로 4K 업스케일한다. CIF는 해상도 독립적 벡터 포맷이므로 씨앗 좌표를 스케일링하면 추가 전송 없이 임의 해상도 렌더가 가능하다.
핵심 구현: 좌표 스케일링 (cifToPixelBuffer)
씨앗 사각형을 목표 해상도/원본 해상도 비율로 스케일링해 렌더. target=src면 그대로, target>src면
업스케일, target<src면 다운스케일. 이전 /png?w/h의 클리핑 버그를 업스케일 기능으로 전환.
- 업스케일: HD CIF →
/png/:id?w=3840&h=2160→ 전체 3840×2160 프레임 ✅ - 다운스케일: 512 CIF →
?w=128&h=128→ 정상 128×128 (썸네일 버그도 해소) - 하나의 CIF 마스터 = 임의 해상도(썸네일~4K) 렌더.
실측: HD(1280×720) 인코드 → 4K(3840×2160) 업스케일
| 항목 | 값 |
|---|---|
| HD 인코드 | 6643 씨앗, CIF 298KB (원본 HD PNG 1789KB의 1/6) |
| HD 네이티브 렌더 | 33KB PNG, 43ms |
| 4K 업스케일 렌더 | 173KB PNG, 195ms, 전체 3840×2160 ✅ |
저개발국 전송효율 (100kbps = 12.5KB/s 가정)
| 방식 | 전송 바이트 | 전송 시간 | 표시 |
|---|---|---|---|
| HD CIF 전송 → 단말 4K 업스케일 | 298KB | 24초 | 4K (추가 대역폭 0) |
| 4K PNG 직접 전송 | 15MB | 20.5분 | 4K |
정합성 (Gemini 멀티모달 평가)
원본 HD ↔ CIF 업스케일 비교 (비전검증.js, gemini-flash-latest):
- 기본 업스케일: 정합성 85/100 — "구조 동일하나 심한 픽셀화"
- smooth=1 업스케일: 정합성 75 — "구도는 동일하나 깨짐이 심함"
결론 (저대역폭 통신 적합성)
- CIF의 본질적 강점이 이 목적과 정확히 부합: 한 번 HD로 인코딩하면 추가 전송 없이 임의 해상도
- 4K 직접 전송 대비 51× 바이트 절감, 20.5분 → 24초.
- 콘텐츠 적합: 그래픽/UI/스무스(우수) ≫ 사진/고주파(블록 가시, 그래도 구조 전달).
- CVF도 동일 — HD CVF 전송 → 단말 4K 업스케일 재생(프레임=CIF, 모션 64.6%↓ 추가 절감).
관련 파일
/Users/ef/crowny-image/server.js— cifToPixelBuffer 좌표 스케일링(업/다운스케일), coordWidthFor, rd 기본 OFF/Users/ef/crowny-image/비전검증.js— Gemini 멀티모달 정합성
잔여 / 후속
- 업스케일 픽셀화 완화: smooth 렌더 튜닝, 또는 업스케일 시 리프 경계 안티앨리어싱.
- 콘텐츠 적응: 스무스→낮은 HD 해상도로도 충분, 디테일→HD 상한 또는 잔차.
- CVF HD→4K 업스케일 재생 단말 검증.
- 4K 직접 인코딩은 현 버전 비지원(의도) — HD 마스터 + 업스케일이 통신 목적의 정답.