内存加载的 kernel.dll 模块
生成背景:渐变 + 暗角 + 静态粗颗粒(浮点计算、量化一次),写入不透明 BGRX。
spec: type="linear"|"radial",angle,cx,cy,radius,stops={{位置,0xRRGGBB}},vignette,grain,cell,seed
交叉混合 dst += (src-dst)*a/256
整数偏移复制(带裁剪)
非透明像素(alpha>0)的包围盒 {x0;y0;x1;y1}(像素,开区间);全透明返回 null
盒式均值:win×win 窗口(步长 1),输出 (cols-win+1)×(rows-win+1) 个 float
清成全透明;rect={x0;y0;x1;y1},省略为整张
单帧闪烁评分(av.video.flicker 内部使用):a~e 为连续 5 帧的 boxMean 结果,评估中间帧;
返回 分数(峰高/thr),窗口序号,方向(+1 更强/-1 更弱)
故障效果:少量粗条带错位,错位条带内轻微 RGB 分离;src 为 dst 的副本。
amount 0~1;seed 决定条带(建议约 15Hz 换一次,每个状态停留约 2 帧);split 满幅 RGB 分离占宽度比例,默认 0.004,0 = 不分离
故障撕裂转场:旧画面 a 按固定细条逐条换成新画面 b(mix 0~1,单调),另有少量粗条带错位。
seed 约 15Hz 换一次;layoutSeed 决定细条布局(整个转场不变);dst 不能与 a、b 相同;split 默认 0(细彩边经 4:2:0 色度抽样会糊成色块)
给不透明 BGRX 图像加静态粗颗粒(±amount 色阶,cell 像素一格,默认 3;与 background 的 grain 同一种噪声),
用于过于平滑的深色背景图(AI 生成图常见)防止编码后出色带;只加在背景层
分区亮度统计:cols×rows 格的平均亮度与标准差(0~255,float 缓冲区,可为 null);
stride 默认 w*4;step 采样步长(行列都隔 step 像素取样),默认 1
闪烁复核(av.video.flicker 内部使用):用整体平移能否解释中间帧 C 的突变(规则纹理快速平移)。
P/C/N 为连续三帧的缩略亮度图(float),区域以格计、含两端,S 搜索半径(格),gs 粗搜间隔(默认 1);
返回 {e0;emc;d1x;d1y;d2x;d2y;peakMc;peak0;n}:不补偿/补偿后残差和、P→C 与 C→N 的移动(格/帧)、单格最大残差、格数(区域全在图外为 0)
图层合成:同尺寸预乘 BGRA 图层按整体不透明度叠加到 dst;
rect={x0;y0;x1;y1} 限定范围(像素,开区间),省略为整张
轴对齐缩放平移重采样(浮点坐标精确、缩小有预滤波、边缘按覆盖率抗锯齿),
预乘 alpha 叠加到目标;opt: opacity,filter,clip,copy,radius(圆角半径,目标像素)