CIF 설계원리 적대적검증 (울트라 14에이전트) — 2026-07-12
개요
사용자 가설 "2~3월 벡터형/방사형 원설계가 잘 되어 있었는데 점점 오염되어, 정리 안 된 채 CVF로 확장하니 실사용 제한 역작용"을 울트라 워크플로(판독 5방향 sonnet + 원리별 적대판정 9건 opus, 총 14에이전트)로 검증했다. 판정:
오염은 실재하나, 가설의 절반은 반전됨 — "벡터형/방사형 원설계"는 코드 차원에서 존재한 적이 없다.판정 요약 (원리 9건: upheld 1 · mixed 8)
반전 1 — "벡터형"은 명명 모호성이었다 (P1·P3, conf 85~90)
- 최초 실물 cif.js(2026-03-18)는 전픽셀 래스터 루프 → 균일사각형 벡터레이어 → RLE 하이브리드 (cif.js:76-135). 순수 벡터 입력 경로는 어느 버전에도 없다.
- cif.한선(03-25)의 "벡터형" 라벨의 실제 의미 = 3트릿 색상벡터 [R G B], 벡터그래픽(경로/곡선) 아님. 씨앗 프리미티브는 v1.0~v3.1 전 세대 예외 없이
{x,y,w,h,color,leaf} 단색 축정렬 사각형뿐 — path/curve/gradient 씨앗 타입은 한 번도 존재하지 않음(grep 0건).
- 이 오명명이 후일 "4K 벡터 업스케일" 내러티브의 씨앗이 됨(실체=nearest-neighbor 블록 확대+경계 블러, server.js:822-882).
반전 2 — "방사형"은 사산(死産)이었다 (P4·P5·P6·P7, conf 83~87)
- 방사형 퍼짐 필드 t18..23은 v2.0 스펙 주석(이미지.한선:13, docs/tip/003_CIF_v2.3layer:62, 03-28)에만 존재. 씨앗 인코더(.씨앗만들기)는 퍼짐을 단 한 번도 인코딩한 적 없음(x,y,c27만 저장). .씨앗퍼짐 렌더도 동심원이 아니라 중첩 사각형 3개(내부 2개 흰색 하드코딩).
- 05-10 CIF변환기.한선: 퍼짐=0 하드코딩(이름만 잔존) → 05-27 CIF.한선: t[18..23]이 너비/높이로 재명명(필드 소거). 죽은 게 아니라 태어난 적이 없다.
- 유일한 기능적 방사형(CIF그래픽_방사그라디언트)은 전 디스크 호출자 0건의 고아 헬퍼.
확인된 진짜 오염 (H2, 날짜 특정 가능)
- 2026-06-11 rasterToCIFv3 신설 — 디스플레이 리스트 → 래스터 픽셀 쿼드트리 코덱으로 정체성 드리프트. 같은 날 자체 실측이 "사진·노이즈·고주파 부적합(PNG 대비 20.8× 참패)"을 문서화했으나 이후 미조회.
- v3.1 사진코덱 기법 유입 — FS 디더링·잔차·RD-라그랑지안(DPICT/HEVC/JPEG-LS 인용) = 래스터 성격 심화.
- 구현 4~5갈래 분기·정본 소실 — server.js(유일한 라이브 RD 인코더) vs CIF변환기.한선(퍼짐0·비호환) vs CIF_RD분할.한선(미배선 데모) vs CIF트릿트리.한선(스텁) vs CIF인코딩.한선(w/h≤13 캡). 동반 한선씨 어느 것도 라이브 경로와 일치하지 않음.
- 경고 3회 무시 — 06-11 부적합 실측 → 07-04 폰트 "이름만 벡터, 실제 래스터" 적발(글자당 44KB→TTF 아웃라인 330B로 정리, 이미지 코어 미역이식) → 07-12 스크린캐스트 강의에 CVF 단일화 강행.
원설계 한계 (H3 — 오염이 아닌 것)
단색 사각타일 3×3 쿼드트리 = piecewise-constant 코더. 고주파 콘텐츠(사진·화면캐스트 텍스트)에는 정보이론적으로 성립 불가. 3×3 재귀 원리 자체는 v1.0~v3.0 안정 보존(P8) — 붕괴한 건 좌표폭(3t→8t)과 명명이지 재귀가 아님.
CVF 역작용 정량 (실측)
| 지표 | 값 |
|---|
| 강의 CVF 23편 합계 | 2.39GB (원본 h264 1.65GB의 1.445× — 코덱인데 원본보다 큼) |
| 동일스펙(108×60/9fps) h264 재인코딩 대비 | 1,599~1,775× (o1-1: 138.6MB vs 76~85KB) |
| 픽셀-초당 바이트 정규화 | 6,851× 비효율 |
| 시간축 압축 | 전멸 — 2133프레임 전부 인트라(FUUU), 델타/모션 0개 |
| 원인: WH/32 폴백 임계 | 108×60→202.5씨앗 한도 vs 실측 1,477씨앗/프레임(7배 초과) → 폴백 상시 발동 |
| TOAU ASCII 세금 | 트릿당 8bit 저장 = 이론 5.05× 낭비 (5트릿/바이트 패킹 대비 4.9×) |
| 엔트로피 코딩 부재 | gzip만으로 추가 9.6~11.1× 압축됨 (서빙 경로 무압축) |
| 재생 UX | 첫 렌더 2,823ms (315만 줄 텍스트 파싱) — 흐름유지 한계 2.8× 초과 |
| 스펙 허위 | 42B 바이너리헤더·CAF7 오디오·ISA729 vid opcode 20종·K-D-D GOP 전부 미구현. CVF는 CIF 코드를 require하지 않는 자체 재구현. 동반 한선씨 3파일 고아(1파일은 컴파일 불가) |
결론
CVF 역작용 =
(원설계 한계) × (스코프 초과 적용) × (파이프라인 결함)의 곱.
- 원설계 한계: 단색 사각타일 인트라 코더는 화면캐스트에 부적합 (오염 아님).
- 스코프 초과: 06-11 자체 경고를 무시하고 07-12 고주파 콘텐츠에 단일화 강행 (결정 오류).
- 파이프라인 결함: 폴백 임계로 시간압축 전멸 + TOAU 5× + 무압축 서빙 ≈ 3자릿수 낭비 (수리 가능).
권고 (사장님 결정 대기)
- P0 — 강의영상 CVF 단일화 재고: 화면녹화 강의는 h264가 정당. CVF는 합성/모션그래픽/슬라이드 콘텐츠로 스코프 한정.
- 포맷 정체성 분리: CIF-V(진짜 벡터 — 폰트 v4 해법을 이미지 코어로 역이식: 경로/그라디언트/방사 씨앗 어휘 신설) / CIF-R(래스터 쿼드트리 — 부드러운 콘텐츠 한정). 한 이름에 두 포맷이 뒤엉킨 것이 "오염감"의 실체.
- CVF 재설계 전제 3건 (스코프 한정 후에도 필수): ①5트릿/바이트 바이너리 패킹(5×) ②엔트로피 코딩 또는 gzip 서빙(~10×) ③WH/32 폴백 수정+델타 실동작(정적구간 수십×) — 곱하면 이론상 수백×.
- 정도(正道): 강의를 픽셀로 녹화하지 말고 이벤트 스트림(텍스트·도형 명령)으로 기록하면 원설계(디스플레이 리스트) 정신의 올바른 계승 — 폰트 v4와 동형의 해법.
- 사료 정리: 고아 한선씨 3파일·죽은 코드·스펙 허위 항목 삭제/동기화(동반장식 3허위패턴).
관련 파일
- 워크플로 저널:
~/.claude/projects/-Users-ef/.../subagents/workflows/wf_bac13735-66a/journal.jsonl
- 핵심 사료: cif.js(03-18) · cif.한선/cif2.한선(03-25) · 이미지.한선(03-28) · CIF변환기.한선(05-10) · crownyc/libs/CIF.한선(05-27) · crowny-image/server.js(06-11 v3) · crowny-video/lib/cvf-codec.js · 2026-06-11-CIF-CVF-4K-밸런싱-분석.md · 2026-07-04-CIF-벡터폰트-정리-v4.md
잔여 이슈
- 진원(crowny-camera-cif.jsx, 02-19)은 iCloud 축출 상태라 바이트 검증 불가 — 2월 원본이 순수 벡터였을 가능성은 미봉쇄(단, 03-18 cif.js가 이미 래스터 하이브리드).
- class.html 재생경로 롤백 여부 = 사용자 결정 사항.