原汁原味补全官方管线细节:0x8c CDF 中心、temporal 移植、uniform 分支、状态标志

- 抓取官方会话控制字段确认实际启用路径:0x109c0→0x11ee0→0x19740;
  temporal(0x41fe0=1)/帧差(0x230=0)/隔行平滑(0x41fe8=0)/0x30=0 全关
- 实现 0x8c=1 分支:CDF 中心=max(均值bin, 累计75%bin),lres 545→631
  (官方 633,跨帧差 2 bin);用官方 cdf 离线验证 LUT 差异降至 123/1024
  (集中在灰度过渡区,跨帧异步所致)
- 移植 temporal filter(0x18001e920,0x41fe0>1 启用,默认关=官方)
- 补 uniform 帧分支(0x109c0:fmin==fmax 时 LUT/gray 置中灰)
- 补官方标志维护(0x4203c/0x42038/0x42004)
- 实机确认:ref=15502(type1)、d=-2390、win/stats 正常
This commit is contained in:
ZXCLI
2026-08-14 16:33:13 +08:00
parent 004f28910f
commit fe91a82762
92 changed files with 292 additions and 8 deletions
+24
View File
@@ -167,6 +167,30 @@ int main(int argc, char **argv) {
*(int *)(dev + 0x47940), *(int *)(dev + 0x44c50), *(int *)(dev + 0x44c60),
*(int *)(dev + 0x44c64), *(int *)(dev + 0x44c68),
*(int *)(dev + 0x42010), *(int *)(dev + 0x42014));
fprintf(cfg, "ctrl: 28=%d 30=%d 44=%d 88=%d 8c=%d 90=%d 230=%d 234=%d\n",
*(int *)(dev + 0x28), *(int *)(dev + 0x30), *(int *)(dev + 0x44),
*(int *)(dev + 0x88), *(int *)(dev + 0x8c), *(int *)(dev + 0x90),
*(int *)(dev + 0x230), *(int *)(dev + 0x234));
fprintf(cfg, "temporal: 41f40+30=%d +34=%d +38=%d +3c=%d 41f68=%p 41f70=%d 41f74=%d 41f7c=%d\n",
*(int *)(dev + 0x41f40 + 0x30), *(int *)(dev + 0x41f40 + 0x34),
*(int *)(dev + 0x41f40 + 0x38), *(int *)(dev + 0x41f40 + 0x3c),
*(void **)(dev + 0x41f68), *(int *)(dev + 0x41f70), *(int *)(dev + 0x41f74),
*(int *)(dev + 0x41f7c));
fprintf(cfg, "smo2: 41f90+30=%d +38=%d +3c=%d 41fa8=%p 41fb0=%d 41fb4=%d 41fbc=%d\n",
*(int *)(dev + 0x41f90 + 0x30), *(int *)(dev + 0x41f90 + 0x38),
*(int *)(dev + 0x41f90 + 0x3c), *(void **)(dev + 0x41fa8),
*(int *)(dev + 0x41fb0), *(int *)(dev + 0x41fb4), *(int *)(dev + 0x41fbc));
fprintf(cfg, "flags: 4203c=%d 42038=%d 42040=%d 42044=%d 42004=%d 41ffc=%d 41fdc=%d\n",
*(int *)(dev + 0x4203c), *(int *)(dev + 0x42038), *(int *)(dev + 0x42040),
*(int *)(dev + 0x42044), *(int *)(dev + 0x42004), *(int *)(dev + 0x41ffc),
*(int *)(dev + 0x41fdc));
fprintf(cfg, "bufs: 270=%p 278=%p 280=%p 288=%p 290=%p 2a0=%p 2b0=%p 2c8=%p\n",
*(void **)(dev + 0x270), *(void **)(dev + 0x278), *(void **)(dev + 0x280),
*(void **)(dev + 0x288), *(void **)(dev + 0x290), *(void **)(dev + 0x2a0),
*(void **)(dev + 0x2b0), *(void **)(dev + 0x2c8));
fprintf(cfg, "win: 42018=%d 4201c=%d 44c48=%d 44c64=%d 44c68=%d\n",
*(int *)(dev + 0x42018), *(int *)(dev + 0x4201c), *(int *)(dev + 0x44c48),
*(int *)(dev + 0x44c64), *(int *)(dev + 0x44c68));
fclose(cfg);
}
/* copy the DDT file */