← 목록
기타 2026-07-12 3KB 읽기 3분

CVF 수리 3전제 완료 — 188.98× 축소 실증 (2026-07-12)

개요

적대검증 권고3 실행: ③델타 폴백 수리 + ①5트릿/바이트 b5 패킹 + ②deflate. 워크플로 4에이전트(수리→v4컨테이너→실측→opus 적대감사 pass).

실측 매트릭스 (class_o1-1, 237초 108×60/9fps)

변형크기기존 대비h264 대비프레임 분포
기존(버그, 전량인트라)138,599,464B1775×F 2133/P 0/M 0
A: ③만 (gop9)79,203,818B1.75×1015×F 239/M 1894
B: ③ gop2771,386,814B1.94×915×F 104/M 2029
C: ③+① b516,232,222B8.54×208×동일
D: ③+①+② b5+deflate733,405B188.98×9.40×동일
(기준) h264 crf23 동일스펙78,058B
기여 분해: ①패킹 4.40× × ②deflate 22.13× ≈ 97× ≫ ③+gop27 1.94× — 병목의 대부분은 텍스트 직렬화+무압축 서빙(진단 정합). 이 콘텐츠는 P(델타)=0·M(모션) 95% — talking-head에서 모션추정이 타일델타를 상시 이김.

수리 내역

  1. ③ 폴백(cvf-codec.js:642-677): 델타/모션 씨앗수>W*H/32 → 무조건 인트라 → 인트라 실계산 후 작은 쪽 채택으로 교정(조기채택 경로는 비용 불변). 구버그 재현 리플레이: 15/15 프레임에서 구코드는 7.4× 큰 인트라를 강제했음을 실증. GUUU 부기 일관화(폴백 인트라에도 경계 기록 — ctp-stream findGOPs 정합).
  2. ① b5 패킹 + ② deflate(v4.0 컨테이너, 스펙 부록E 실체 기준 신설): 텍스트 헤더 유지+인코딩:b5/압축:deflate/본문바이트 키, 바이너리 프레임 레코드 스트림. 243개 전 5트릿 조합 왕복·2133프레임 전수 SHA1 bit-identical.
  3. 한선씨 동반(실동작): lib/cvf-codec.한선(폴백판정 4/4)·lib/트릿5패킹.한선(42트릿↔9바이트 왕복 PASS, 균형나머지 함정은 나머지3/몫3 절단나눗셈으로 회피). 뇌 학습 완료.
  4. 하위호환: v3 텍스트 디코드 3경로 bit-identical — 기존 23편 재인코딩 불필요, 재생 무영향.

잔여 위험(기록 — 후속 결정 대상)

  • v4는 단일 deflate 스트림이라 시킹 회귀(GOP 인덱스 없음, 전체 inflate 후 순차) — 스트리밍 소비자 생기기 전 v4.1 GOP 인덱스 필요.
  • v3 텍스트 전용 소비자 3종 v4 미지원(crowny-video server.js·index.html 임베드 디코더, crowny-app cvf-player.html) — 현재 class는 mp4라 무해.
  • 폴백이 씨앗 '개수' 비교(바이트 아님) — 모션 씨앗이 인트라보다 길어 경계 케이스에서 바이트 역전 가능(저위험).
  • 23편 재인코딩 여부 = 사용자 결정(수리는 신규 인코딩부터 적용).

관련

gop9↔27 간 3/5 표본 픽셀 불일치는 참조체인 차이(손실 코덱 특성)로 판정 — 동일 인코딩 왕복은 전수 bit-identical. 워크플로 wf_4506064d-651.