昊梵体育网

MIT联手独立研究者,用"地图分区"思路让图像压缩速度提升19倍

这项由麻省理工学院(MIT)与独立研究者合作完成的研究,于2026年发表在计算机图形学顶级会议ACM SIGGRAPH

这项由麻省理工学院(MIT)与独立研究者合作完成的研究,于2026年发表在计算机图形学顶级会议ACM SIGGRAPH 2026的论文集中,会议定于2026年7月19日至23日在美国洛杉矶举行。论文题为《Soft Anisotropic Diagrams for Differentiable Image Representation》,编号为arXiv:2604.21984,有兴趣深入钻研的读者可通过该编号查询完整原文。

**图像存储,其实是一道"压缩艺术题"**

每当你给朋友发送一张照片,或者在网页上看到一张清晰的产品图,背后都隐藏着一套极其复杂的"压缩与还原"机制。照片本身的信息量是巨大的,存储或传输时必须把它"压缩"成紧凑的格式,使用时再"还原"出来。这道题的关键,不只是压得有多小,还有还原出来有多像原图,以及这个压缩过程有多快。

在人工智能和计算机图形学领域,研究者们一直在探索一种叫做"可微分图像表示"的技术,通俗说就是:用一组可以被计算机自动调整、自动优化的"参数"来表达一张图像,而不是直接存储每一个像素点的颜色。这就好像你不直接记录一幅城市地图里每条街道的颜色,而是记录几百个"标志性地点"的位置和颜色,然后通过某种规则,让这些标志点"辐射"出它们周围区域的颜色,最终拼出整张地图。这种思路既省空间,又方便后续的图像编辑、物理模拟等操作。

然而,现有的方法都有各自的痛点。一类方法叫做"隐式神经网络",它把整张图像塞进一个神经网络的权重里,虽然灵活,但你没法直接看出"哪部分参数负责图像的哪个区域",编辑起来非常麻烦。另一类方法叫做"高斯泼溅"(Gaussian Splatting),它用一堆"椭圆形气泡"覆盖在图像上,每个气泡贡献一点颜色,最终叠加出完整图像——这就像用一堆半透明的彩色墨水气泡喷在画布上,气泡之间大量重叠,边界处颜色混乱,很难精确控制谁负责哪块区域,剪枝和优化也相当费力。

正是在这样的背景下,MIT与独立研究者联手提出了一套全新方案,他们把它叫做**SAD**(Soft Anisotropic Diagrams,软各向异性图)。这个名字听起来有些拗口,但核心思想其实可以用一个非常直观的比喻来理解:把图像的二维平面想象成一张城市地图,在地图上放置若干个"势力范围站点",每个站点都有自己的影响力范围和方向,整张地图被这些站点划分成一块块"势力区域",每块区域的颜色由负责它的那个站点决定。这种划分方式在数学上叫做"Voronoi图",而SAD对这个经典概念做了大量升级,使其能够被计算机自动优化,最终实现了比现有方法快4到19倍的训练速度,同时图像质量还更好。

**一、地图分区的数学基础:从Voronoi图到Apollonius图**

要理解SAD的核心,先要了解研究者借鉴的那个古老的数学工具——Voronoi图(沃罗诺伊图)。这个概念其实非常直观。假设你在一片空地上放了若干个消防站,每个居民遇到火灾都去最近的那个消防站求救。按照"就近原则",整片空地就被自然划分成若干个区域,每个区域内的居民都属于同一个消防站的管辖范围。这些区域的边界线,就是Voronoi图的分割线。

普通的Voronoi图以纯粹的直线距离来划分,每个站点的"势力范围"是正六边形或多边形,非常规整。但现实世界的图像可不是这么规整的——一只猫的轮廓是曲线,建筑物的边缘可能是斜的,头发丝儿是细长的。为了让这些分区能够适应图像的形状,研究者引入了两个关键改进。

第一个改进叫做"加权距离",也叫Apollonius图(阿波罗尼斯图)。还是用消防站的比喻:普通情况下,消防站管辖的是距离它最近的区域。但加权版本允许每个消防站设定一个"影响半径"——有的消防站设备精良,能管辖更大范围,相当于在距离基础上减去一个"特权半径"。这样一来,强大的消防站可以把影响力延伸得更远,管辖更大的地盘。在SAD里,这个"影响半径"就是每个站点(学术上叫"site",本文统一称"站点")的参数r,它控制着这个站点的颜色能辐射多远。

第二个改进叫做"各向异性"(anisotropy)。普通消防站的管辖范围是一个圆,四面八方等距。但各向异性版本允许管辖范围变成一个椭圆——某个方向延伸得长,垂直方向短一些。这非常重要:图像里的很多特征都是有方向的,比如一根长直线条、一片横向的天空、一块斜向的纹理。如果站点的"影响椭圆"能自动与这些特征对齐,就能用更少的站点覆盖更多的图像区域,效率大幅提升。

把这两个改进合在一起,SAD里每个站点的"分数"计算方式就是:到该站点的椭圆化距离,再减去它的影响半径。分数越低,说明这个像素点越应该归属于这个站点。

**二、"软边界"的奥秘:温度参数如何化解优化难题**

纯粹的Voronoi分区是硬边界——每个像素要么属于A站点,要么属于B站点,非此即彼,中间没有过渡。这在数学上叫做"不可微",意思是计算机在优化参数时,没有办法计算"把A站点稍微挪一点,图像质量会怎么变化",因为一挪就会出现像素突然跳到另一个站点的情况,梯度无法计算。

SAD的解决方案来自一个在机器学习里非常经典的函数——softmax。简单说,softmax可以把若干个数值转换成一组加起来等于1的权重,每个权重代表"这个像素点有多少比例应该归属于某个站点"。这样一来,每个像素的颜色就不再是"只取最近站点的颜色",而是"按照各站点的分数,对所有候选站点的颜色做加权平均"。边界处的像素可能70%归属A站点、30%归属B站点,因此颜色是两者的混合,过渡非常平滑。

但这里有个关键问题:如果软边界太"软",图像里所有的锐利边缘都会变得模糊,质量会很差。如果边界太"硬",又回到了不可微的问题,优化就卡住了。SAD的聪明之处在于,给每个站点设置了一个独立的"温度参数"τ(希腊字母tau)。温度高,这个站点的边界就锐利清晰,就像冰一样;温度低,边界就柔软模糊,就像水一样。更妙的是,每个站点的温度可以独立学习,自动调整。

这意味着什么呢?位于图像边缘处的站点,优化后会自动学到很高的温度,形成清晰的颜色分割;位于天空、墙面等平坦区域的站点,会自动学到较低的温度,形成柔和的过渡。整个系统在训练开始时用低温度(软边界)保证梯度信息流通,随着训练推进逐渐在需要的地方自动调高温度,最终在边缘处形成清晰的分割线,在平坦区域保持平滑过渡。实验证明,仅仅加入可学习的温度参数,图像质量就能比固定温度基准提升2.30 dB PSNR(一种衡量图像质量的指标,越高越好)。

**三、只看"最近的K个站点":计算效率的核心秘密**

到目前为止,SAD的数学原理已经很清晰了:一堆站点,每个站点有位置、颜色、影响半径、椭圆方向和温度,每个像素通过softmax对附近站点的颜色加权平均得到最终颜色。但这里有一个效率问题:如果图像上有50000个站点,那么每个像素理论上要和所有50000个站点计算距离,然后做加权平均。一张照片有几百万个像素,50000×几百万次计算,速度简直慢得令人绝望。

SAD的解决方案非常自然:每个像素其实只需要关注离它最近的K个站点,那些距离极远的站点对这个像素的颜色贡献几乎为零,根本不用管它们。研究者选择K=8,也就是每个像素只和最近的8个候选站点打交道。这样计算量从"50000×像素数"直接降到"8×像素数",效率提升了几千倍。

但随之而来的新问题是:怎么快速找到每个像素的"最近8个站点"?这个问题本身就不简单——如果站点的位置在不断移动和优化,那每次都要重新搜索一遍,代价依然很高。

研究团队的解决方案叫做"Top-K传播算法",灵感来自一个叫做"跳跃洪水算法"(Jump Flooding Algorithm,JFA)的经典图形学工具。这个算法的思路可以用"流言扩散"来理解:假设你要弄清楚城市里每栋楼离哪个地铁站最近,你不需要让每栋楼都跑遍全市。你可以让每个地铁站把自己的信息告诉相邻楼栋,相邻楼栋再把这条信息转告更远的邻居,就像流言一样,一轮一轮地扩散出去。经过几轮扩散后,全城每栋楼基本都知道自己离哪个地铁站最近了。

SAD的Top-K传播算法基于同样的思路,但更聪明。它同时利用了三种机制:第一是"时间复用",即上一轮迭代的候选名单通常变化不大,本轮可以直接继承上一轮的结果作为出发点;第二是"空间传播",每个像素从自己和上下左右4个邻居那里借用候选站点,合并之后保留最优的K个;第三是"随机注入",每轮额外随机撒入少量全局候选站点,防止出现某个站点移动到新位置后长时间无法被任何像素"发现"的情况。

这三种机制配合,使得维护"每个像素最近K个站点"的名单,每轮只需要固定的、很小的计算量,完全不会随着站点总数增加而变慢。实验表明,在1024×1024的图像上,经过12到16轮传播后,96%以上的像素都能找到完全正确的Top-8候选名单,准确率非常高。

**四、站点的"生与死":自适应预算控制机制**

SAD在优化过程中还有一个动态管理机制,负责决定在哪里增加站点(加密),在哪里删除站点(修剪)。这个机制叫做"自适应预算控制",核心思想是:让计算资源集中到最需要它的地方。

评价每个站点"需不需要被拆分"的标准,用一个打分公式来衡量:站点当前负责的像素区域内,残差误差(当前颜色与目标颜色之差)有多大,同时这个站点的"实际负责面积"有多小。一个站点如果负责的面积很小,但误差却很大,说明它所在的区域非常难以被准确表达,需要更多站点来精细覆盖。这样的站点会被选中,分裂成两个子站点。

分裂时,研究者会根据该站点覆盖区域内的残差分布,计算出一个"主要方向"——误差最集中、变化最剧烈的方向——然后把两个子站点沿这个方向分开,分别去覆盖原来区域的两半。子站点的温度参数、影响半径都从父站点继承并略微调整,颜色则重新从目标图像对应位置取样。

与此同时,那些贡献极小、几乎不影响图像质量的站点会被"修剪"掉。衡量"贡献"的方式叫做"删除差分"(removal delta):假设把这个站点删掉,剩下的K-1个站点重新归一化权重后,图像误差会增加多少?增加越少,说明这个站点越可有可无,优先删除。

整个加密和修剪过程有严格的时间窗口和百分比控制,并且当用户指定目标比特率(即最终压缩到多小)时,系统会自动调整加密和修剪的力度,确保训练结束时站点数量恰好符合目标。SAD的训练从一个较大的初始站点数(如128,000个)出发,通过不断修剪和少量加密,最终收敛到目标数量(如25,000个)。

**五、GPU上的"流水线":让一切都在显卡里飞奔**

光有好的算法还不够,工程实现的质量直接决定速度。SAD的整个训练和渲染流程完全在GPU内部运行,研究者手工编写了Metal(苹果芯片用)、CUDA(英伟达显卡用)和WebGPU(浏览器用)三套底层代码,不依赖任何自动微分框架,彻底消除了CPU和GPU之间来回传输数据的等待时间。

梯度计算也做了专门优化。朴素的做法是:对图像里每个像素,计算梯度之后,把结果"原子写入"到各个站点的梯度缓冲区。但当很多像素同时要更新同一个站点的梯度时,就会发生"拥堵"——大量写操作互相等待,显卡的并行计算能力被浪费。SAD改用了一种"分组哈希缩减"的方式:把图像分成很多16×16的小块,同一个小块里的像素先在本地的共享内存里完成梯度的汇总,只有最终结果才写到全局内存,全局写操作的次数从"像素数×K"降到了"小块数×站点数",竞争大幅减少。

站点的存储也做了精心设计。用于训练的站点保存为完整精度的32位浮点数,共10个参数(x坐标、y坐标、温度、半径、RGB三个颜色通道、各向异性方向x分量、y分量,以及各向异性缩放参数)。用于最终渲染的站点则压缩打包成每个16字节的格式:坐标用15位定点数表示,颜色用11/11/10位分别表示RGB,温度和半径用16位存储,各向异性方向用16位角度编码,各向异性缩放用float16存储。整个压缩包在不影响图像质量的前提下,大幅减少了内存带宽消耗,这也是高分辨率下速度依然很快的重要原因。

**六、实验结果:数字背后的真实差距**

研究者在多个标准数据集上与主流方法做了详细对比。主要的竞争对手是Image-GS(一种基于2D高斯泼溅的图像表示方法,发表于ACM SIGGRAPH 2025)和Instant-NGP(基于多分辨率哈希网格的神经图形基元方法,发表于ACM Trans. Graph. 2022),以及其他几个相关方法。

在Kodak数据集(24张经典测试图片,分辨率768×512)上,使用50000个站点(约16 BPP的参数预算),SAD达到了46.00 dB PSNR、0.9871 SSIM、0.0032 LPIPS,训练时间仅2.2秒。相比之下,Image-GS在同等协议下得到36.90 dB,训练时间28秒;Instant-NGP得到37.72 dB,训练时间8.2秒。另一个近期方法Fast 2DGS在同等站点数下得到43.13 dB,训练时间10秒。SAD在质量上领先最近的竞争对手超过2.87 dB,同时速度快4.5倍以上。

在Image-GS提供的专属基准测试数据集(45张图片)上,不同压缩率下,SAD的优势一以贯之:0.5 BPP时达到37.86 dB,而Image-GS仅有34.57 dB,Instant-NGP更是只有30.69 dB。在DIV2K验证集(100张高分辨率图片)上,2.0 BPP时SAD达到34.73 dB,超过Image-GS的32.15 dB和Instant-NGP的29.24 dB。在CLIC验证集(41张图片)上,2.0 BPP时SAD达到36.13 dB,同样大幅领先对手。

训练速度方面,研究者专门做了一组控制实验,在512?到2048?共5种分辨率下,以"每遍历完整图像一次的时间"为单位进行比较,在NVIDIA RTX 5090显卡上测试。SAD在所有分辨率下都是最快的,比Instant-NGP快1.75到3.36倍,比Image-GS快4.08到15.10倍。在2048×2048的图像上,SAD处理一轮只需3.6毫秒,而Instant-NGP需要12.1毫秒,Image-GS需要14.7毫秒。

研究者还分析了训练迭代次数与图像质量的关系。大体规律是:训练2000次迭代就能达到最终质量的97%以上,4000次迭代基本到达峰值,再往后质量略有下降(这不是过拟合,而是由固定预算约束导致的调度效应)。这意味着对于需要快速处理大量图像的场景,可以在几秒钟内得到非常好的结果。

对每个可学习参数的贡献,研究者也做了详细的消融实验:固定温度基准(固定log τ=7.5)PSNR为28.20 dB;加入可学习温度后提升到30.50 dB,增加了2.30 dB;在此基础上加入可学习半径,提升到31.76 dB,再增加1.26 dB;加入各向异性后达到34.77 dB,相对于只有可学习温度增加了4.27 dB;三者都启用的完整SAD模型达到35.35 dB,比固定温度基准整整高出7.15 dB。其中各向异性的贡献最大,说明让椭圆形的"势力范围"与图像内容的方向自动对齐,是SAD超越各向同性方法的核心原因。

**七、不只是压图:SAD的两个额外应用**

研究者还展示了SAD超越纯粹图像压缩的两个应用场景,证明这套框架的通用性。

第一个应用是微分方程求解。物理学里有很多现象(热传导、电场分布、流体流动等)可以用偏微分方程(PDE)来描述,求解这些方程就是找出满足方程条件的函数。研究者用SAD来求解一个二维泊松方程——在一个"笑脸"形状的不规则区域内(512×512分辨率),指定边界处函数值为0,内部有一个均匀的源项,求满足这些条件的函数分布。SAD的优势在于,它的站点结构是显式的——研究者直接把边界上的站点冻结(不参与梯度更新),就轻松实现了严格的Dirichlet边界条件,这在隐式神经网络里是非常困难的操作,通常需要额外的惩罚项或特殊的网络设计。经过1000到2000步梯度下降,误差就收敛到了1e-6以下(机器精度级别),学习到的站点分布自动聚集在边界和高曲率区域附近,展现出内容自适应的特性。

第二个应用是一维信号拟合,这个实验主要用来展示SAD的温度参数如何应对不连续点(信号里的突变)。研究者用三种信号做了对比:一是纯正弦波(光滑信号),二是阶跃函数加正弦波(有突变),三是多频率混合信号。对比对象是高斯泼溅(64个splats,256个参数)和SIREN(小型正弦激活神经网络,321个参数)。结果是:高斯泼溅非常擅长光滑信号(79.6 dB),但在阶跃函数处因为固定形状的高斯核无法精确表达突变,质量降到47.3 dB;SIREN擅长连续变化,但在不连续点附近会出现类似"振铃效应"的波动(43.1 dB);SAD在阶跃函数上达到57.2 dB,多频率信号上达到42.0 dB,两项都领先,原因正是温度参数可以在突变处自动调高,让分区边界精确对准信号的跳变位置。

**八、坦诚的局限性与未来方向**

SAD并非没有缺点,研究者在论文中做了坦诚的分析。Top-K候选名单基于传播算法维护,在极低预算、站点大幅移动或大规模加密/修剪之后,名单可能一时失准,影响图像质量。渲染速度方面,缓存Top-K名单后的纯渲染非常快(512?图像仅0.015毫秒),但如果需要完整刷新候选名单(16次传播),在2048?图像上需要16毫秒,高分辨率下刷新代价较高。对于非常细密的随机纹理(比如树皮的细纹、沙粒的随机分布),SAD可能需要更多站点才能精确还原,或者会出现轻微的过平滑现象。边缘对齐是优化的自然结果而非强制保证,在对比度弱的边缘处有时表现不够理想。

未来的研究方向包括:更智能的候选名单维护策略(比如多分辨率缓存、流式刷新调度);给每个站点配备更丰富的表示能力(比如本地的低阶多项式颜色,而不是当前的单一颜色);改进距离度量本身(引入可学习的各向异性距离函数);以及利用SAD的显式邻接结构做熵编码,进一步提升压缩率。更远期的方向则是把SAD扩展到三维空间,用于体素表示或表面表示,以及作为图像的结构化分词器,把图像编码为一组可解释的显式图元,用于生成模型或多模态学习。

说到底,SAD做的事情,就是把一个在数学上已经存在了一百多年的古老工具(Voronoi图)重新改造,加上三个精心设计的新特性:有方向的椭圆形势力范围、可调节的影响半径,以及可学习的"软硬"温度,然后配合一套高效的GPU工程实现,让整个系统能在几秒钟内自动优化出高质量的图像表示。结果就是:图像质量比竞争对手高几个dB,同时训练速度快一个量级。这种质量与效率的双重提升,背后是算法设计和工程实现的协同优化,而不是靠单一因素堆砌出来的。

对于普通人来说,这项研究最直接的意义是:未来你在手机上压缩照片、在网页上快速加载图片、甚至在消费级设备上运行图像编辑软件时,背后的算法可能就用到了类似SAD这样的技术,让这些操作又快又好。在更远的将来,当物理模拟、游戏渲染、医疗图像处理等领域也普遍采用这类可微分表示时,SAD所展示的"显式站点+软分区+GPU友好传播"思路,有望成为其中一个重要的基础模块。

有兴趣深入探究的读者,可以通过arXiv编号2604.21984查阅完整论文,作者团队也在 luckyiyi.github.io/SAD 提供了配套代码。

---

Q&A

Q1:SAD方法和普通的高斯泼溅图像压缩有什么本质区别?

A:高斯泼溅用一堆椭圆形"气泡"叠加来表达图像,气泡之间大量重叠,每个像素要把所有压在自己身上的气泡颜色叠加,不清楚谁真正负责这个像素,边界处颜色混乱。SAD则用类似"势力范围地图"的方式,每个站点只负责一块明确的区域,边界由可学习的温度参数控制软硬,不重叠、不模糊。这使得SAD能更精确地表达图像边缘,同时计算时每个像素只需要处理最近的8个站点,效率远高于高斯泼溅的全局扫描方式。

Q2:SAD训练速度为什么比Image-GS快那么多?

A:速度差距来自两方面协同作用。一是SAD的计算量和站点总数无关,每个像素只看最近8个站点,计算量固定;Image-GS则要扫描每个像素上方所有重叠的高斯气泡,站点多、重叠多时代价急剧上升。二是梯度计算时,SAD用了分组哈希缩减技术,把大量全局内存竞争转化为局部共享内存操作,显卡并行效率大幅提升;Image-GS的反向传播则充斥着大量原子写操作冲突,严重制约了GPU利用率。

Q3:SAD的温度参数τ具体是怎么影响图像质量的?

A:温度τ控制每个站点边界的软硬程度。τ高时,softmax权重集中到距离最近的那个站点,边界清晰锐利;τ低时,权重分散到多个站点,边界柔软模糊。关键是每个站点的τ独立可学习,因此位于图像边缘处的站点会自动学到高τ(形成清晰分割),位于天空或墙面等平坦区域的站点会自动学到低τ(形成平滑过渡)。实验中,仅引入可学习τ就能将图像质量从28.20 dB提升到30.50 dB,提升了2.30 dB。