# 逐帧比较与证据记录

所有区间均为零起点、末端不包含。每次审看绑定准确视频 SHA-256、图集/图片
哈希、帧号与显示尺寸。不能把“已生成全部图片”写成“已审看全部图片”。

## 1. 完整解码与语义配对

先读 `tools/frame_review/README.md` 并安装其可选依赖。在外部项目中运行：

```sh
python tools/frame_review/audit_frames.py reference/reference.mp4 review/reference
python tools/frame_review/compare_frames.py media/final.mp4 reference/reference.mp4 content/timeline.json content/reference-map.json review/pairs
python tools/frame_review/compare_frames.py serve . --port 8876
```

输出目录须新建或为空。比较工具逐帧解码候选片，将每镜按 `scene_type` 和
`visual_function` 指向参考区间，再按镜头内部的相对进度配对。不同故事
不应按绝对秒数强行对齐。候选每帧得到参考帧，不代表所有参考帧都被使用；
参考片需要另外完整检查。

RGB/边缘/亮暗比例和运动变化用于定位异常与比较色彩结构，不是艺术风格的
百分比。工具不判断手指是否接触物体、数据是否正确、观众能否读懂字幕。

## 2. 真实审看

| 证据层 | 操作和可支持的结论 |
| --- | --- |
| 技术全帧 | 解码、PTS、帧数、尺寸、颜色和音轨核验；支持文件完整性 |
| 顺序缩略图 | 实际打开每张连续图集，记录编号、帧区间与显示像素；支持全片构图/状态概览 |
| 原尺寸帧 | 打开编码文件提取的关键帧与缺陷帧，核对像素尺寸；支持线、字、手指和纹理细节 |
| 连续播放 | 看动作接触、姿态切换、24/12 fps 差异、阅读停留、转场和章节接缝 |
| 听审 | 听实际成片，评价语音、噪声、拟音和配乐关系；单独记录覆盖 |

共享工具当前每页 50 对、单图 160×90，另输出每镜原尺寸样本。查看器可能
继续缩小图集，必须写实际显示情况。缩略图全覆盖不能升级为“每帧 1080p
精查”；抽样关键帧也不能升级为逐帧全覆盖。图片以原尺寸发送/显示仍需
确认工具没有降采样。每个观察应有缺陷或具体通过理由。

逐镜比较材质、色彩、构图、字体、动作、镜头与声音语言。检查手的接触点、
袖口、脸部连续性、遮挡、文本可读性、品牌/旗帜结构和领域逻辑。缺陷逐项
定位、修复、重出并复查，不能以统计均值接近取代检查。

## 3. 修复后的证据继承

```sh
python tools/frame_review/compare_decoded_versions.py media/previous.mp4 media/final.mp4 review/identity --width 1920 --height 1080 --fps 24
```

只允许把原来**实际观察过的范围**与验证完全相同的原尺寸 RGB/精确时间戳
范围取交集，继承其中的画面观察。缩小后的像素哈希相同不能证明原尺寸未变。
改变的帧、边界和连续动作要重新审看；音轨、字幕与播放体验另外验证。
章节级已审看画面也需要映射到拼接后全片并证明相同，不能仅凭文件名继承。

## 4. 接受记录

`content/review-record.json` 初始为空。填写完成的检查、观察范围、缺陷、
未验证项目和风格判断依据。程序不自动写“通过”。最终报告必须区分风格
判断与技术事实；“100% 风格等同”无法从不同故事的像素统计推出。可以
逐项修到无已知缺陷，同时明确还有哪些感受或细节未获验证。
