公司新闻

把舍入误差带到下一个像素会怎样:一行十八个灰度的残差传递·案例01

2026-11-02

将连续数值压到整数等级时,每个位置独立舍入会丢掉各自的小数。另一种练习规则把当前未保留的误差带给下一个位置,局部结果可能改变,但累计误差有清楚的核对办法。

以下是一组可按记录复查的虚构游戏例子。它先固定输入、单位和执行顺序,再展示每一步结果。读者可以用纸笔挑出几步核对,不需要依赖具体游戏的后台数据。

明确规则与输入

输入是同一行的灰度数值,单位为四分之一,范围为二到八。独立模式每项四舍五入,恰好一半向上;带误差模式先加上一次残差,再按同样规则舍入,新残差为舍入前值减输出。初始残差为零,不做额外限幅。

十八个灰度值['6', '31/4', '19/4', '29/4', '19/4', '3', '21/4', '2', '29/4', '13/4', '7', '13/2', '13/2', '21/4', '21/4', '23/4', '9/2', '4']

完整计算过程

位置1输入6,独立舍入6;加上旧误差后为6,输出6、新残差0。累计输入6,两种累计输出6与6。

位置2输入31/4,独立舍入8;加上旧误差后为31/4,输出8、新残差-1/4。累计输入55/4,两种累计输出14与14。

位置3输入19/4,独立舍入5;加上旧误差后为9/2,输出5、新残差-1/2。累计输入37/2,两种累计输出19与19。

位置4输入29/4,独立舍入7;加上旧误差后为27/4,输出7、新残差-1/4。累计输入103/4,两种累计输出26与26。

位置5输入19/4,独立舍入5;加上旧误差后为9/2,输出5、新残差-1/2。累计输入61/2,两种累计输出31与31。

位置6输入3,独立舍入3;加上旧误差后为5/2,输出3、新残差-1/2。累计输入67/2,两种累计输出34与34。

位置7输入21/4,独立舍入5;加上旧误差后为19/4,输出5、新残差-1/4。累计输入155/4,两种累计输出39与39。

位置8输入2,独立舍入2;加上旧误差后为7/4,输出2、新残差-1/4。累计输入163/4,两种累计输出41与41。

位置9输入29/4,独立舍入7;加上旧误差后为7,输出7、新残差0。累计输入48,两种累计输出48与48。

位置10输入13/4,独立舍入3;加上旧误差后为13/4,输出3、新残差1/4。累计输入205/4,两种累计输出51与51。

位置11输入7,独立舍入7;加上旧误差后为29/4,输出7、新残差1/4。累计输入233/4,两种累计输出58与58。

位置12输入13/2,独立舍入7;加上旧误差后为27/4,输出7、新残差-1/4。累计输入259/4,两种累计输出65与65。

位置13输入13/2,独立舍入7;加上旧误差后为25/4,输出6、新残差1/4。累计输入285/4,两种累计输出72与71。

位置14输入21/4,独立舍入5;加上旧误差后为11/2,输出6、新残差-1/2。累计输入153/2,两种累计输出77与77。

位置15输入21/4,独立舍入5;加上旧误差后为19/4,输出5、新残差-1/4。累计输入327/4,两种累计输出82与82。

位置16输入23/4,独立舍入6;加上旧误差后为11/2,输出6、新残差-1/2。累计输入175/2,两种累计输出88与88。

位置17输入9/2,独立舍入5;加上旧误差后为4,输出4、新残差0。累计输入92,两种累计输出93与92。

位置18输入4,独立舍入4;加上旧误差后为4,输出4、新残差0。累计输入96,两种累计输出97与96。

最终输入合计96,带误差输出合计96,两者差0等于末尾残差。

独立核对与边界

每个前缀的输入总和减带误差输出总和,应恰好等于当前残差,残差范围为负二分之一到正二分之一但不含右端。这个恒等式能检查误差符号是否传反,以及是否遗漏某一项。

本例只演示单行数值传递,不宣称是完整图像压缩算法,也不处理颜色编码或二维扩散。相邻像素的局部差异可能增加,累计更接近并不保证观感在所有图片上都更好。

练习时只改变一个条件,先判断哪些中间步骤应当受影响,再重新计算。要把空状态、数值零和未能确定的结果分开。边界约定不同可能产生不同答案,复查的目标是确认输入、过程与规则一致,而不是只追求最后一个数字看起来相同。