选择图片
点下面任意一张预设图就能开始,算法会找到它"自己缩小自己"的方式。选完往下走:编码 → 逐帧解码,能看到一屏雪花点迭代成图像。
点击上传图片,或拖拽图片到此处
支持 JPG / PNG / WebP
写实示例图
这几张图细节丰富,分形压缩的自相似结构更明显。点击任意一张即可体验。
编码参数
算法把图片切成小块,然后为每块找"自己缩小的自己"。默认参数下要搜 256 × 841 次匹配,点下去大约要等几秒,进度条跑完会在下一步画出「拼贴图」。
说明
块越小,质量越好但压缩比越低。
搜索精度越高,编码越慢但匹配越好。
每块开销:域块索引 — bit + 变换 3 bit + 缩放 5 bit + 偏移 7 bit
解码:从噪音到图像
分形解码从随机噪音开始,每次迭代把图像"自己拼接自己"。数学保证它会收敛到原图。
右边这张是拼贴图:把编码得到的规则在原图上套一次的结果,
也就是「编码器认为这张图能怎么拼出来」。它和原图的差距就是统计条里的拼贴 PSNR。
现在点「解码」,会丢掉原图、从随机噪音开始反复套同一套规则——收敛到的才是真正的解码结果。
—原图大小
—压缩后大小
—压缩比
—分形块数
—拼贴 PSNR
—解码 PSNR
两个 PSNR 不是一回事。
「拼贴 PSNR」是编码时每块和它匹配到的域块之间的误差,也就是拼贴定理里的 d(x, F(x));
「解码 PSNR」才是迭代收敛后的图和原图的真实差距 d(x, 不动点)。
后者总是更差一点——这正是分形压缩号称 100:1 却在实测中翻车的地方。
分形压缩为什么"凉了"
01
拼贴定理
一张图片可以用"自己缩小的副本"拼贴出来。每个小块在图中找一块比它大的相似区域,记录位置和变换。数学上这叫 PIFS(分区迭代函数系统)。
02
解码比编码快一万倍
编码要穷举所有可能的匹配,跑几个小时甚至几天。解码只需要迭代应用变换——任意一张噪音图,10 步之内收敛到原图附近。但用户等不了编码。
03
JPEG 赢了
JPEG 用 DCT 变换,几秒编完、质量可接受、硬件支持广泛。分形压缩号称 100:1,实际 20:1 就比 JPEG 好不了多少,编码时间却长 1000 倍。这就是"技术很好,但没赶上时机"的典型故事。
分形压缩的"分辨率无关"特性仍然领先:解码时可以用任意尺寸输出,图像细节不会像素化。但 JPEG 在 1992 年就抢占了市场,分形压缩只能在学术论文里"虽败犹荣"。
拼贴可视化
每个方框是一个范围块,方框颜色代表这一块的匹配质量;箭头从范围块指向它"借来"的域块位置。
匹配好(误差小)
一般
匹配差(误差大)
箭头:范围块 → 域块,均匀抽样 — 条以免遮挡画面