ESC
输入关键词搜索文章
目录

ECC

arXiv 2026 · SFU / InterDigital / USTC
用扩展链码 + 共享边界跳过,实现语义地图无损压缩 18% 码率节省
18%平均码率降低
36ECC 符号集
98%编码加速
243上下文表
Part 1
语义地图的"本质表示"是什么

在机器人导航、自动驾驶感知、扩展现实(XR)和点云压缩(V-PCC)中,语义地图扮演着关键角色。它不像普通照片那样记录每个像素的颜色,而是用离散的类别标签标记每个区域——道路、行人、车辆、建筑。这种结构化的表示天然具有两个特性:有限的离散值集合,以及区域之间锐利的边界。

一个自然的疑问是:既然语义地图的结构如此特殊,为什么我们还在用通用图像编码器(如 FLIF、PNG+gzip、HEVC-SCC)来压缩它们?通用编码器处理的是像素网格上的连续信号,而语义地图的"本质"其实是轮廓——区域之间的分界线。用像素编码器处理轮廓,就像用文字描述一幅画:能表达,但不够直接。

链码(chain coding)正是轮廓的天然表示。自 Freeman 在 1961 年首次提出以来 #freeman1961encoding,链码用方向符号序列描述轮廓,已经在二值图像压缩中证明了其高效性。但现代语义地图是多值的——一个场景中可能有几十个不同的语义区域,它们之间存在大量共享边界。传统链码方法没有显式利用这一结构特性。

本文 #Yang-et-al.-2026 提出了一种全新的语义地图无损压缩框架,核心思想可以概括为三句话:

核心贡献:消除块划分,用纯轮廓表示语义地图;设计扩展链码(ECC)用 36 个符号编码长距离轮廓转移;引入跳过编码(skip-coding)消除相邻区域共享边界的冗余表示。

实验结果表明,该方法在三个语义地图数据集上比当前最优方法 CC-SMC #yang2024cc 平均降低 18% 码率,编码和解码速度分别最高提升 98%50%

Part 2
通用编码器为什么做不好语义地图

语义地图 vs. 自然图像:本质差异

自然图像的像素值在空间上连续变化,相邻像素之间高度相关。通用图像编码器(如 JPEG、FLIF)正是利用这种空间相关性来压缩数据。但语义地图完全不同——它的像素值是离散的类别标签,区域内部完全相同,区域之间突然跳变。

这意味着通用编码器在语义地图上浪费了大量计算:它们试图建模区域内部的"相关性"(实际上所有像素值完全相同),却无法有效处理区域边界的"突变"(这正是语义地图信息最密集的地方)。

经典链码的局限:从二值到多值的鸿沟

链码方法从 Freeman F4/F8 到 VCC(顶点链码 #bribiesca1999new)再到 3OT(三正交链码 #cruz2005compressing),一直在优化单条轮廓的表示效率。但它们都是为二值图像设计的——只编码一条轮廓,不考虑多个区域之间的关系。

经典链码方法对比:F4, F8, VCC, 3OT
图 1:经典链码表示方法对比。F4/F8 用绝对方向,VCC 编码顶点配置,3OT 用三符号相对方向。(来源:Yang et al. 2026, Fig.1)

CC-SMC 的两个根本局限

Yang 等人在 2020 年和 2024 年提出的 CC-SMC 框架 #yang2020chain #yang2024cc 首次将链码扩展到多值语义地图。它的策略是:四叉树分区 + 块内链码。这个方案比通用编码器好很多,但引入了两个根本性问题:

局限一:块划分截断链码序列

四叉树把语义地图切成块,每条轮廓可能被多个块截断。截断后的链码序列变短,上下文建模的效果大幅下降——就像把一篇长文拆成碎片后再做语言模型,上下文信息丢失了。

局限二:分区信令开销

每个块是否需要链码编码、块的大小和位置,都需要额外的比特来传递。对于高分辨率的 occupancy map(如 V-PCC 中的全分辨率图),这些细碎结构的分区信令开销不可忽视。

本文的洞察很简单:既然语义地图的本质是轮廓,为什么不直接编码轮廓,完全绕过块划分? 这就是 ECC 框架的出发点。

Part 3
扩展链码:从单位步长到长距离跳跃

ECC 的核心直觉

传统链码(如 F8)用 8 个方向符号编码轮廓,每个符号代表一步移动。如果一条轮廓在某个方向上延伸了 10 个像素,F8 需要 10 个符号。

ECC 的想法很直接:如果轮廓在某个方向上持续延伸,为什么不直接用一个符号表示"走两步"或"走三步"?就像在高速公路上,F8 要求你每经过一个出口都报一次"继续直行",而 ECC 允许你说"直行 3 个出口"。

ECC 扩展链码符号设计
图 2:(a) ECC 扩展链码。三层 F8 方向扩展,共 36 个符号。优先选择长距离符号(如符号 24)代替多个短距离符号组合。(来源:Yang et al. 2026, Fig.4a)

36 符号集:三层 F8 扩展

ECC 通过将 F8 的 8 方向扩展到三层,总共得到 36 个符号

扩展链码(ECC)符号集

ECC 在 F8 的 8 个基本方向上,向外扩展两层(步长 2 和步长 3),形成三层方向布局:

$$\text{ECC} = \{ \text{Layer}_1 \cup \text{Layer}_2 \cup \text{Layer}_3 \}, \quad |\text{ECC}| = 36$$

其中 Layer₁ 是 F8 的 8 个基本方向(步长 1),Layer₂ 和 Layer₃ 分别对应步长 2 和步长 3 的扩展方向。

符号选择策略:优先选择长距离符号。例如符号 24(步长 3 方向)代替序列 [0, 8](两个步长 1 符号)。

初步实验验证了这个设计的效率:在 28 个几何形状测试中,ECC 仅需 24,550 个符号表示所有轮廓,而 F8 需要 54,671 个,F4/VCC/3OT 各需约 73,000 个 #Yang-et-al.-2026。ECC 的符号数不到 F8 的一半,约为其他方法的三分之一。

RECC:相对链码降维

36 个符号的字母表太大了——每符号需要的比特数会增加。ECC 的解决方案是:只在第一个轮廓方向用 ECC 直接编码,后续方向用二阶差分表示。 这就是 RECC(Relative Extended Chain Code)——ECC 的链码差分版本:

相对扩展链码(RECC)

RECC 将 ECC 符号通过旋转映射转换为相对表示,共 27 个符号

$$\text{RECC}(s_i, s_{i-1}) = \text{Rotate}(s_i, \theta(s_{i-1}))$$

其中 \(s_i\) 是当前 ECC 符号,\(\theta(s_{i-1})\) 是前一个符号的旋转角度 \(\in \{0^\circ, +90^\circ, \pm180^\circ, -90^\circ\}\)

关键设计:第三象限为空(轮廓不会直接反向),实际有效符号更少。

RECC 相对链码符号布局
图 3:(b) RECC 相对链码。27 个符号,第三象限为空(轮廓不反向)。红框标注低频符号(12-20),蓝框标注自引用上下文符号。(来源:Yang et al. 2026, Fig.4b)

上下文自适应熵编码

RECC 符号序列用基于 Markov 模型的上下文自适应算术编码压缩:

  • 一阶上下文:前一个 RECC 符号
  • 二阶上下文:通过自引用(self-reference)获得——将旋转角度应用到当前 ECC 符号本身
  • 上下文表总数:最大 27 × 9 = 243
稀有符号优化:RECC 符号 12-20 出现频率较低(第二象限)。引入标志位控制是否启用该象限符号,消融实验显示始终启用会增加码率。

3OT Fallback:小符号集的优势

虽然 ECC 在规则轮廓上效率很高,但对于不规则、碎片化的轮廓,3OT 的小符号集(仅 3 个符号)配合四阶上下文模型反而更高效。

本文保留了 3OT 作为 fallback 模式:对每个 blob,分别计算 ECC 和 3OT 的总比特数,选择更优者。消融实验揭示了有趣的模式选择分布:

数据集ECC 选择率3OT 选择率轮廓特征
CASIA-B64.9%35.1%大而规则的轮廓
DAVIS 480p35.2%64.8%不规则/碎片化轮廓
Cityscapes53.9%46.1%混合型轮廓

这个结果说明:没有一种链码能通吃所有场景。ECC + 3OT 的自适应组合才是最优策略。

Skip-coding:共享边界的免费午餐

语义地图中,相邻区域共享边界。当编码内部 blob 时,与已编码 blob 的共享边界可以直接推断,无需重复编码。

类比:画地图时,两个省份的边界只需画一次——第二个省份只需说"这条边界和 XX 省共用"。

Skip-coding 机制

完全跳过(Full Skip):共享边界延伸到轮廓末尾时,设置 complete_skip_mode = 1,仅需 1 bit,剩余轮廓全部在解码端推断。

局部跳过(Partial Skip):共享边界在轮廓中间结束时,设置 complete_skip_mode = 0 + run-length 值(跳过符号数),之后恢复正常链码编码。

完全跳过模式示例
图 4:完全跳过模式示例。共享边界段的 RECC 符号序列被替换为 skip flag = 1,解码端自动推断。(来源:Yang et al. 2026, Fig.6)
Part 4
从语义地图到比特流

Blob 扫描策略

编码的第一步是识别所有语义区域(blob)。blob 是具有相同标签的连续连通像素组,分为两类:

  • 边界 blob:触及帧边界的区域。从左上角开始,沿帧边界逆时针扫描。
  • 内部 blob:完全被其他 blob 包围的区域。光栅扫描(raster scan)识别。
边界 blob 扫描 内部 blob 扫描
图 5:(a) 边界 blob 沿帧边界逆时针扫描;(b) 内部 blob 光栅扫描。圆圈标记共享边界起始点,红色曲线为注册轮廓。(来源:Yang et al. 2026, Fig.3)

扫描过程中同时识别共享边界段——当检测到相邻像素标签变化时,对应的边界段归属于当前 blob 的轮廓。

完整编码流程

论文给出的系统总体框架如下图所示。输入语义地图经 Blob 扫描与注册后,按边界/内部 blob 分类分别做轮廓编码,在 ECC(36 符号 → RECC 27 符号)与 3OT(3 符号 + 四阶上下文)两种模式间按比特数择优,再经 Skip-coding 检测共享边界,最后由上下文自适应算术编码输出无损比特流。

ECC 无损压缩系统总体框架
图 6:ECC 无损压缩系统总体框架(System schematic)。从输入语义地图到输出比特流的完整 pipeline,涵盖 Blob 扫描、轮廓编码、ECC/3OT 模式选择、Skip-coding 与上下文自适应算术编码。(来源:Yang et al. 2026, System schematic)

下面是用 Mermaid 重绘的同一流程,便于在线交互查看:

flowchart TD
  A["输入语义地图 X"] --> B["Blob 扫描与注册"]
  B --> C["边界 blob / 内部 blob 分类"]
  C --> D["对每个 blob 轮廓编码"]
  D --> E{"ECC vs 3OT 模式选择"}
  E -->|"比特数更少"| F["ECC: 36 符号 → RECC 27 符号"]
  E -->|"比特数更少"| G["3OT: 3 符号 + 四阶上下文"]
  F --> H["Skip-coding 检测共享边界"]
  G --> H
  H --> I["上下文自适应算术编码"]
  I --> J["输出比特流"]
  

编码实例

下图展示了完整的 ECC 编码过程,包含边界 blob 和内部 blob 的处理步骤:

ECC 编码过程完整示例
图 7:ECC 编码过程完整示例。左侧为边界 blob,右侧为内部 blob。从 ECC 符号分配 → 旋转映射 → RECC 符号 → 自引用上下文 → 最终链码序列。(来源:Yang et al. 2026, Fig.5)

比特流结构

比特流包含两类信息:

信息类型内容用途
高层元数据地图尺寸、blob 数量、标签信息、语义值映射、起始位置解码端重建框架
链码数据模式标志 + 链码符号序列 + skip 信令逐 blob 轮廓重建
Part 5
从比特流到无损重建

解码过程是自包含的——比特流中包含重建所需的全部信息。

解码流程总览
图 8:解码流程总览。解析元数据 → 逐 blob 解码轮廓 → 应用标签 → 完整重建。(来源:Yang et al. 2026, Fig.7)

解码步骤详解

  1. 解析高层元数据:获取边界/内部 blob 总数 \(N_k\),维护计数器 \(i_k\) 追踪已解码 blob 数
  2. 逐 blob 解码
    • 解析起始位置 + 标签索引
    • 解析链码模式标志(ECC 或 3OT)
    • 根据模式解析链码符号序列,重建轮廓
    • 处理 skip-coding 信令,推断共享边界
  3. 应用标签信息:将语义标签填充到重建的轮廓区域内
  4. 循环直到完成:当 \(i_k = N_k\) 时,所有 blob 重建完成
无损保证:解码后的语义地图与原始输入完全相同。这是无损压缩的硬性要求,尤其对于用作中间表示的语义地图(如 DSSLIC 框架 #akbari2019dsslic)至关重要。
Part 6
18% 码率节省从何而来

实验配置

配置项详情状态
数据集CASIA-B (8443 maps), DAVIS 480p (6268 maps), Cityscapes (2975 maps)论文披露
BaselineJBIG1, FLIF, SCM-7.0 (HEVC-SCC), CC-SMC论文披露
硬件环境未披露
Occupancy MapMPEG V-PCC CTC 5 序列 × 3 分辨率 × 32 帧论文披露

语义地图主实验

数据集指标JBIG1FLIFSCM-7.0CC-SMCECC (Ours)vs CC-SMC
CASIA-B
320×240
码率 (Bytes)187.4136.7272.975.865.2-13.98%
编码时间 (s)0.02230.04720.32610.01570.0117
解码时间 (s)0.00250.02570.01090.00130.0013
DAVIS 480p
848×480
码率 (Bytes)620.7618.7997.5459.1385.4-16.05%
编码时间 (s)0.02450.19481.28310.05570.0392
解码时间 (s)0.02750.03410.05420.01060.0038
Cityscapes
2048×1024
码率 (Bytes)6829.84882.86314.93549.42708.4-23.69%
编码时间 (s)0.07010.94616.65760.20030.2302
解码时间 (s)0.11200.11750.14720.06710.0996
关键发现:Cityscapes 上的 23.69% 码率节省最大——这正是因为高分辨率场景中四叉树分区的信令开销更大,消除分区带来的收益更显著。

运行时性能分析

在码率最优的同时,ECC 的运行时表现也值得关注:

  • 低分辨率场景(CASIA-B、DAVIS):编码/解码时间均为最优或接近最优
  • 高分辨率场景(Cityscapes):编码时间略高于 CC-SMC(0.2302 vs 0.2003),解码时间也更高(0.0996 vs 0.0671)

这是因为 ECC 采用全局扫描策略,计算复杂度随 blob 数量近似线性增长。Cityscapes 平均每帧 123.97 个 blob,全局操作成为瓶颈。作者指出并行化可能缓解这一问题 #Yang-et-al.-2026

消融实验:每个组件贡献多少?

数据集完整框架仅 3OT仅 ECC仅 ECC + 始终 RECC
CASIA-B65.265.865.467.3
DAVIS385.4390.2398.4402.1
Cityscapes2708.42791.32751.02758.1

三个关键发现:

  1. ECC + 3OT 自适应 > 单独任何一种:完整框架在所有数据集上最优
  2. 选择性禁用稀有符号很重要:始终启用 RECC 第二象限符号(12-20)会增加码率——CASIA-B 从 65.4 增至 67.3,DAVIS 从 398.4 增至 402.1
  3. 数据集特性决定模式偏好:规则轮廓(CASIA-B)偏好 ECC,碎片化轮廓(DAVIS)偏好 3OT

Occupancy Map 扩展评估

本文还将方法扩展到 V-PCC 点云压缩中的 occupancy map。在 5 个 MPEG V-PCC 测试序列 × 3 种分辨率下评估:

序列CC-SMC (Bytes)ECC (Bytes)胜者
Loot (全分辨率)175,829148,095ECC (-15.8%)
Solider (全分辨率)338,007296,004ECC (-12.4%)
LD (全分辨率)211,998197,092ECC (-7.0%)
Queen (全分辨率)478,501664,455CC-SMC

Queen 序列异常

Queen 序列包含大量碎片化 blob(见下图),CC-SMC 的块分区策略对此更有效。这再次印证了"没有一种链码通吃所有场景"的结论。

语义地图数据集示例
图 9:语义地图数据集示例。(a) CASIA-B 步态轮廓,(b) DAVIS 视频分割,(c) Cityscapes 城市场景。复杂度从简单到复杂。(来源:Yang et al. 2026, Fig.8)
Part 7
轮廓表示的回归与边界

技术定位

本文在链码压缩发展史上的位置可以这样理解:

年代方法核心思想局限
1961Freeman F4/F8链码概念诞生仅二值图像
1999VCC顶点链码,减少符号仅二值图像
20053OT三正交链码,3 符号集仅二值图像
2020/2024CC-SMC链码 + 四叉树,扩展到多值块划分截断上下文
2026ECC (本文)无分区 + 扩展链码 + skip碎片化场景受限

从 Freeman 到 ECC,链码的发展经历了"绝对方向 → 相对方向 → 块分区 → 回归纯轮廓"的螺旋上升。本文的关键突破不在于发明了新的链码符号,而在于消除了块划分,让链码回归其最自然的表示形式——完整的轮廓。

局限性与开放问题

  • 高分辨率全局扫描瓶颈:Cityscapes (2048×1024) 上运行时高于 CC-SMC。并行化是自然方向,但共享边界推断引入 blob 间依赖,需要仔细设计
  • 碎片化 blob 场景:Queen 序列上不如 CC-SMC。或许可以考虑自适应策略——在碎片化区域回退到块分区
  • 仅无损压缩:本文只考虑无损场景。有损语义地图压缩(如允许少量边界误差)是一个有趣的方向
  • 未与学习型方法对比:深度语义压缩方法(如 DSSLIC #akbari2019dsslic)在有损场景下表现优异,但无损场景下的对比尚未展开

可操作的启发

  1. 轮廓优先:对于具有锐利边界的离散信号(语义地图、分割掩码、occupancy map),轮廓表示可能比像素网格更本质
  2. 自适应模式选择:ECC + 3OT 的自适应策略说明,与其设计一个"万能"编码器,不如让编码器根据数据特性自适应选择
  3. 共享边界是免费信息:Skip-coding 的核心洞察——相邻区域的共享边界不需要重复编码——可以推广到其他多值离散信号压缩场景
  4. MPEG 标准化前景:InterDigital 是 MPEG 标准化的重要参与者,本文方法可能影响 MPEG FCM(Feature Coding for Machines)标准中的语义地图编码

参考来源

  • Yang, R. et al. (2026). Context Adaptive Extended Chain Coding for Semantic Map Compression. arXiv:2603.03073
  • Freeman, H. (1961). On the encoding of arbitrary geometric configurations. IRE Trans. Electronic Computers.
  • Freeman, H. (1974). Computer processing of line-drawing images. ACM Computing Surveys.
  • Bribiesca, E. (1999). A new chain code. Pattern Recognition, 32(2), 235-251.
  • Sánchez-Cruz, H. & Rodríguez-Dagnino, R.M. (2005). Compressing bi-level images by means of a 3-bit chain code. SPIE Opt. Eng.
  • Yang, R. et al. (2020). Chain code-based occupancy map coding for video-based point cloud compression. VCIP.
  • Yang, R. et al. (2024). CC-SMC: Chain coding-based segmentation map lossless compression. J. Vis. Commun. Image Represent.
  • Sneyers, J. & Wuille, P. (2016). FLIF: Free lossless image format based on MANIAC compression. ICIP.
  • Akbari, M. et al. (2019). DSSLIC: Deep semantic segmentation-based layered image compression. ICASSP.
  • Xu, J. et al. (2015). Overview of the emerging HEVC screen content coding extension. IEEE TCSVT.
  • Žalik, B. et al. (2021). Lossless chain code compression with an improved Binary Adaptive Sequential Coding of zero-runs. JVCIR.