Files
workbuddy_skills/oil-motion/references/optimization.md
T
admin 237a09a5b0 修:draw-ui / oil-motion 原被当子模块指针收录 ⇒ 改为正常文件入库(两份内容原先对别人是空的)
一、问题(本轮实测)
`draw-ui` 与 `oil-motion` 目录里**各自带一个内嵌 `.git`** ⇒ 上一次提交把它们记成了 **gitlink(子模块指针)**
⇒ 仓库里只存了一个不属于任何远端的 commit id,**别人克隆下来这两份是空的** ✗(`git status` 显示 ` m draw-ui` / ` m oil-motion` = 子模块内容有改动)。

二、处置(可回退)
· 把两处的 `.git` **挪走**(⛔ 不是删除)⇒ `归档/内嵌git-20261008/{draw-ui,oil-motion}.git`;
· `git rm --cached` 掉那两个 gitlink,再 `git add` 两个目录 ⇒ **按正常文件入库**(内容才真的进仓库)。

三、副作用(如实记)
挪走 `.git` 后,这两个技能**不能再原地 `git pull` 取上游更新**(要更新得重新拉一份覆盖);
如需恢复其本地仓库,把 `归档/内嵌git-20261008/` 里的 `.git` 挪回原处即可。
2026-10-08 22:29:52 +08:00

71 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 帧策略与图集压缩
本文件是 `frame_policy` 和图集清晰度预算的唯一事实源。先验收动作母版,再决定是否插帧;插帧不是默认正确答案。
## 选择帧策略
使用 `native`:
- 源帧率已经满足最终正常播放;
- 原始节奏、停顿或逐帧绘制感属于视觉设计;
- 插帧会产生重影、双轮廓、线稿扭曲或结构错误。
使用 `interpolate`:
- scrub 的参数采样明显不足;
- 目标播放速度下原始帧率可见跳步;
- 插帧结果通过自动比较和人工接触表验收。
把决定写入 Motion Brief:
```yaml
frame_policy: native | interpolate
target_fps: <native 使用源帧率;interpolate 必须高于源帧率>
```
## 插帧流程
只有 `frame_policy=interpolate` 时执行:
```bash
python3 "$OIL_MOTION/scripts/optimize_motion.py" interpolate \
"$SOURCE_VIDEO" "$OUTPUT_DIRECTORY" \
--fps "$TARGET_FPS" \
--key "$KEY_MODE"
```
同时检查原始与插帧接触表。新增重影、双轮廓、边缘撕裂、部件穿插、结构扭曲、亮度闪帧或中心突变时,插帧失败;改用合格的原始帧,或重新生成母版,不得把插帧伪影带入编译。
`frame_policy=native` 仍需输出原始帧接触表和分析报告,只是不生成虚构中间帧。视频路线由 `compile_scroll_video.py --frame-policy` 统一执行对应分支;图集路线的原始帧提取见 [alpha-atlas.md](alpha-atlas.md)。
## 裁剪与拼接
- 裁剪只删除确实无变化的重复区,不改变已验收动作的终点。
- 每次裁剪或拼接后,重新检查所有新产生的相邻帧。
- 不能删除一段缓慢变化,再把远处最终帧直接接回;需要保留到终点的连续采样。
- 时间轴锚点和 `hold` 必须从最终保留帧重新生成。
## 图集压缩
只有预算选择 `alpha-atlas` 时执行:
```bash
python3 "$OIL_MOTION/scripts/optimize_motion.py" atlas "$FINAL_FRAMES" \
--output "$OUTPUT_ATLAS" \
--target-mb "$TARGET_MIB" \
--display "$DISPLAY_SIZE" \
--dpr "$TARGET_DPR" \
--cell-width "$CELL_WIDTH" \
--cell-height "$CELL_HEIGHT" \
--columns "$COLUMNS"
```
工具先按“最大 CSS 尺寸 × DPR”计算最低单帧像素,再在不低于该尺寸的前提下搜索压缩质量。`clarityMet` 必须为 `true`;`targetMet=false` 时回到 [delivery-selection.md](delivery-selection.md) 重新预算,不继续降低清晰度。
## 验收
- `native`:接触表、相邻帧分析和最终播放均通过。
- `interpolate`:原始与插帧接触表均通过,且插帧没有新增结构或边缘缺陷。
- 最大显示尺寸和目标 DPR 未确认前,不执行最终压缩。
- 文件体积、解码内存和纹理尺寸同时满足目标设备预算。