← 목록
기타 2026-06-11 5KB 읽기 5분

CIF/CVF 4K 밸런싱 분석 — 생성·변환·전송·관리 + 멀티모달 정합성

개요

CIF(이미지)/CVF(영상) 트릿트리 코덱을 3840×3840(4K) 스케일에서 생성·변환·전송·관리 4상으로 실측 분석. Gemini 멀티모달 비전검증 도구로 정합성을 지각 평가. 4K 인에이블 과정에서 발견한 한계와 실용 버그를 수정.

4K 인에이블 (측정 전 차단요소 해소)

  • 좌표폭 8 = ±3280 < 3840 → 자동 좌표폭: coordWidthFor(max(W,H)) — ≤3280→8, 4K(3840)/8K(7680)→9. 포맷은 이미 가변폭 지원이라 헤더 좌표폭만 자동화.
  • /encode 가드 729→8192, parseBody 50MB→128MB(4K 원시픽셀 56MB 허용).

핵심 발견: 콘텐츠 의존 율-왜곡 (CIF vs PNG)

콘텐츠크기CIFPNGCIF/PNG판정
부드러운 그라데이션4K36KB29,500KB0.001 (840× 작음)CIF 압승
정렬된 평탄(3^k)384~1KB(9씨앗)2KB0.2CIF 승
부드러운 photo25633KB162KB0.2 (5× 작음)CIF 승(손실)
미정렬 평탄4K1,649KB135KB12.2CIF 패(단편화)
노이즈/고주파128312KB15KB20.8CIF 참패
결론: CIF/CVF는 벡터 코덱 — 부드럽고/합성적/그래픽/애니메이션 콘텐츠(UI·로고·그라데이션·모션그래픽·6561 시그니처)에 최적. 사진·노이즈·고주파 디테일에는 부적합(PNG보다 크고 손실).

4상 밸런싱

1. 생성 (Encode)

  • rd:false(고정임계): 4K 인코드 0.4~0.6초 — 실용적.
  • rd:true(RD 3모드 재귀): 256²=14초, ~40k픽셀도 8초+, 지수폭증 → 4K 시간 단위. ⚠️ 기존 /encode 기본값이 rd:true라 interior 243px 업로드 = 8.4초(밸런싱이 포착) → 기본 OFF(고정임계, RD는 오프라인 옵트인 {rd:true})로 수정 → interior 243px 8452ms→79ms (107× 가속). 실용 버그 교정.
  • 단일스레드: 대형 동기 인코드가 이벤트루프 점유 → 동시 요청 블로킹(관찰됨).

2. 변환 (Quality/정합성)

  • 손실 벡터 코덱. Gemini 멀티모달 정합성 512 photo = 65/100(지각동일 false): "부드러운 그라데이션 블록화 + 미세 그레인 손실"(블로킹·밴딩·디테일손실).
  • PSNR 25~40dB 콘텐츠 의존. 무손실 모드(PSNR ∞) 가능하나 크기 폭증(옵트인).

3. 전송 (Transfer)

  • 출력 비대칭: 부드러운 4K CIF=36KB(초경량) vs 디테일=PNG의 20×.
  • 입력 병목: 4K 원시픽셀 업로드 56MB. → 권고: 클라이언트 인코드 또는 PNG 입력 수용(원시픽셀 전송 회피).

4. 관리 (Management)

  • ⚠️ /png?w=&h=가 다운스케일이 아니라 클리핑(대형 CIF 썸네일 시 좌상단 모서리만) — Gemini 정합성 1차 테스트가 이를 포착(정합성 2). 썸네일은 씨앗좌표 스케일링 필요.
  • 정렬 민감성: 3^k 경계 정렬 콘텐츠가 훨씬 잘 압축(flat 384=9씨앗 vs flat 128=1161씨앗).
  • 6561 티어 저장 정상.

CVF (영상) 정합성

  • CVF 프레임 = CIF → per-frame 특성 동일(부드러운/애니메이션 우수, 실사 디테일 열세). I-PSNR 34.5dB, 좌표폭8.
  • 시간축: 모션 압축 이동영상 64.6% 절감(앞서 측정). 4K CVF는 부드러운/모션그래픽 콘텐츠에 강하고, 실사 라이브액션엔 per-frame 비용 × 프레임으로 비대.

멀티모달 비전검증 도구 (신규)

/Users/ef/crowny-image/비전검증.js — Gemini(gemini-flash-latest) inlineData로 원본↔CIF렌더 비교 → {정합성 0~100, 지각동일, 주요차이, 아티팩트[], 총평} JSON. crowny-ai/.env GEMINI_API_KEY 사용. node 비전검증.js <원본.png> <렌더.png> 또는 visionCompare(origB64, renderB64).

권고 (우선순위)

  1. rd 기본 OFF(수정 완료) — 인코드 시간폭탄 차단, interior 8.4s→79ms.
  2. /png 진짜 다운스케일(씨앗좌표×target/source) — 대형 CIF 썸네일.
  3. 클라이언트 인코드 / PNG 입력 — 56MB 원시픽셀 전송 회피.
  4. 비동기/워커 인코드 — 단일스레드 블로킹 해소.
  5. 콘텐츠 분류 라우팅 — 부드러움→CIF, 디테일→원본 유지(interior가 이미 원본표시).
  6. 정렬 패딩(3^k) 옵션 — 평탄 콘텐츠 단편화 완화.

관련 파일

  • /Users/ef/crowny-image/server.js — coordWidthFor, 가드 8192, parseBody 128MB, rd 크기적응
  • /Users/ef/crowny-image/비전검증.js — Gemini 멀티모달 정합성 도구(신규)
  • 측정 데이터: 위 표(실측 2026-06-11)

잔여 이슈

  • 권고 2~6 미구현(후속). /png 다운스케일·클라이언트 인코드가 4K 실서비스에 우선.
  • 비전검증.js 한선씨 동반 필요(헌법).