2. 星载数据压缩基础

星载数据压缩并不是把文件“变小”这么简单,它是在卫星平台算力、功耗、存储和下行链路带宽都受限的条件下,对观测数据做的一次“有约束的重新编码”。理解这一节,需要同时抓住四件事:压缩是否允许失真、数据本身有多少可压缩空间、压缩效果如何度量、以及星上资源如何反过来限制算法选择。

无损压缩与有损压缩:先确定“能不能丢信息”

无损压缩要求解压后的数据与原始数据逐比特一致,典型对象是卫星遥测参数、导航星历、载荷工程参数、科学数据中的关键辅助帧。它的原理是去除数据中的统计冗余,例如固定填充位、重复字段、缓慢变化的计数器和可预测的帧头。常见方法包括游程编码、霍夫曼编码、算术编码、LZ 系列字典压缩以及差分加熵编码。无损压缩的压缩比通常有限,对遥感图像这类高熵数据,往往只能做到 1.2:1 到 3:1 左右,具体取决于数据相关性。

有损压缩允许解压结果与原始数据存在受控误差,换取更高的压缩比。遥感图像、视频、高光谱立方体常采用这类方法,例如预测编码、DCT/小波变换加量化、比特平面截断等。有损压缩的关键不是“随便丢”,而是把误差控制在任务可接受的范围内,并且这个范围要能被地面定标、反演和判读流程接受。工程上常见的做法是:对图像做分块变换,保留低频系数,对高频系数按比特平面从高到低截断,从而在固定码率下输出码流。

判断原则:如果数据后续要参与精确解算、校验或作为原始证据留存,优先无损;如果数据用于目视判读、变化检测、云图分类等容忍一定误差的场景,可考虑有损,但必须明确失真上限。

信息熵:压缩极限的“标尺”

信息熵描述一个离散信源的平均不确定度。设信源符号集合为 {x₁, x₂, …, xₙ},出现概率为 p(xᵢ),则熵 H(X) = −Σ p(xᵢ) log₂ p(xᵢ),单位是比特/符号。熵给出的是无损编码平均码长的理论下界:任何无损编码的平均码长都不可能低于信源熵。因此,熵不是“压缩后的实际大小”,而是判断“还有多少压缩空间”的基准。

举例说明:某星上温度遥测字有 4 种取值,概率分别为 0.5、0.25、0.125、0.125。其熵为 0.5×1 + 0.25×2 + 0.125×3 + 0.125×3 = 1.75 比特/符号。若原始用 2 比特定长表示,则理论无损压缩比上限约为 2 / 1.75 ≈ 1.14:1。这个例子说明:当符号分布越不均匀,熵越低,可压缩空间越大;当分布接近均匀,熵接近 log₂N,压缩空间就很小。

实际工程中,我们通常先对数据进行去相关处理,例如图像做差分或预测,再对残差做熵编码。预测越准,残差分布越集中,熵越低,压缩比越高。但预测器越复杂,星上计算和存储开销也越大,这就引出资源约束问题。

压缩比与失真度量:效果必须可量化

压缩比 CR 通常定义为原始数据量与压缩后数据量之比,即 CR = S_original / S_compressed。若用比特率表示,也可写成 CR = R_original / R_compressed。例如一幅 1024×1024、8 比特的灰度图,原始为 8 388 608 比特;压缩后为 2 097 152 比特,则 CR = 4:1。注意压缩比必须和“是否无损”一起说明,否则 10:1 的有损压缩与 2:1 的无损压缩没有直接可比性。

有损压缩需要失真度量。最常用的是均方误差 MSE 和峰值信噪比 PSNR:MSE = (1/MN) Σ (I(i,j) − K(i,j))²,PSNR = 10 log₁₀(MAX² / MSE)。PSNR 越高,失真越小。对多光谱或高光谱数据,还会用光谱角 SAM 衡量光谱形状保真度;对辐射定量产品,则更关注最大绝对误差和相对辐射精度。选择哪种指标,取决于后续应用:目视判读看 PSNR 和结构相似性,定量反演看辐射误差和光谱保真度。

指标含义适用场景
压缩比 CR原始大小 / 压缩后大小链路预算、存储规划
MSE / PSNR像素级误差与信噪比图像有损压缩质量评估
SAM光谱向量夹角高光谱光谱保真
最大绝对误差单点误差上界定量遥感、定标数据

星上资源限制:算法必须“装得下、跑得动、扛得住”

星载压缩算法不能只看压缩比。星上资源限制主要体现在五个方面:一是计算能力,抗辐射处理器主频和并行度有限,复杂变换和迭代搜索代价高;二是内存,行缓存、块缓存和码流缓冲受 SRAM/DRAM 容量限制,大块变换需要分块处理;三是功耗与热耗,压缩模块持续工作会挤占整星功率预算;四是可靠性,单粒子翻转可能导致码流错误,需要容错或定期复位;五是实时性,数传窗口有限,压缩吞吐率必须匹配载荷数据率。

因此,工程选型通常遵循“先无损、后有损;先低复杂度、后高压缩比;先固定码率、后可变码率”的思路。例如,对高速推扫图像,可采用分块 DPCM 加霍夫曼编码,块大小取 8 或 16 行,兼顾行缓存和压缩比;对带宽极度受限的下行链路,可采用小波变换加比特平面截断,把码率固定在 2 bit/pixel 或 1 bit/pixel,保证码流长度可预测,便于帧同步和存储管理。

星载数据压缩:约束—方法—度量闭环 原始数据 遥测 / 图像 / 高光谱 数据率 R₀ 熵 H(X) 压缩决策 无损:逐比特一致 有损:误差受控 固定码率 / 可变码率 压缩码流 码率 R₁ 压缩比 CR = R₀/R₁ 帧同步 / 存储 下行 链路 带宽 星上资源约束(选型边界) 计算能力 主频 / 并行度 内存 行缓存 / 块缓存 功耗与热 功率预算 可靠性 单粒子 / 容错 实时性 吞吐率匹配 无损压缩典型链路 去相关(DPCM / 预测)→ 熵编码(Huffman / 算术) 目标:逐比特一致,CR 约 1.2:1 ~ 3:1 适用:遥测、星历、工程参数、关键辅助帧 有损压缩典型链路 变换(DCT / 小波)→ 量化 → 比特平面截断 目标:固定码率,PSNR / SAM 满足任务要求 适用:遥感图像、视频、高光谱立方体

把四个概念串起来:一个可执行的选型示例

假设某遥感载荷输出 8 比特灰度图像,数据率 200 Mbps,下行链路可用码率 50 Mbps,星上压缩模块可用行缓存 16 行、主频 200 MHz。第一步,判断是否允许有损:若图像用于云检测和变化判读,允许有损;第二步,估计熵:对典型场景做直方图统计,若 8 比特图像熵约为 6.2 比特/像素,则无损压缩理论上限约 8/6.2 ≈ 1.29:1,无法满足 4:1 需求;第三步,选择有损方案:采用 8×8 分块 DCT,量化后按比特平面截断,目标码率 2 bit/pixel,压缩比 4:1;第四步,验证失真:对测试图像计算 PSNR,若 PSNR ≥ 35 dB 且 SAM 小于 5°,则认为满足判读要求;第五步,检查资源:8×8 块缓存仅需 64 字节,200 MHz 主频下每块处理约 200 个时钟周期即可满足 200 Mbps 吞吐。这个示例说明,压缩方案不是“选最高压缩比”,而是在压缩比、失真和资源之间找可行交点。

注意:有损压缩的失真指标必须在任务规定的测试数据集上统计,不能只看单幅图像或单个场景。星上资源估算也要留出余量,避免数传窗口内压缩模块满载导致丢帧。

总结来看,无损与有损决定信息能否丢失,信息熵决定理论压缩下界,压缩比与失真度量决定效果是否可接受,星上资源限制决定算法是否可落地。四者共同构成星载数据压缩的基础判断框架。后续学习具体算法时,应始终回到这四个维度去评估:数据能不能丢、还有多少冗余、压缩后质量如何、星上跑不跑得动。