渐进式压缩是如何炼成的?icer_compression位平面编码与优先级排序原理解析

发布时间:2026/8/20 20:09:34

渐进式压缩是如何炼成的?icer_compression位平面编码与优先级排序原理解析
渐进式压缩是如何炼成的icer_compression位平面编码与优先级排序原理解析【免费下载链接】icer_compressionProgressive, error tolerant, wavelet-based image compression algorithm项目地址: https://gitcode.com/gh_mirrors/ic/icer_compression想用几十KB的字节数传输一张512×512的深空照片还要在信号丢失时不至于全图损坏这正是渐进式压缩progressive compression的用武之地。icer_compression 是一个基于 NASA ICER 算法、以 C 语言实现的渐进式、容错、基于小波的图像压缩算法库它的精髓在于位平面编码bitplane coding与优先级排序priority ordering两大机制的巧妙配合。本文不贴大段代码而是用通俗的语言带你一步步拆解这套先传轮廓、再补细节的压缩魔法。渐进式压缩是什么先看一幅越来越清晰的图像普通压缩算法必须等整张图收完才能解码而渐进式压缩允许接收端在数据尚未传完时就渲染出一张低质量但完整的预览图。随着后续数据到达图像一层层变清晰直到完全还原。下图是 icer_compression 用不同字节配额压缩同一张灰度图的效果对比可以看到30KB 时只能看清船只和滩涂的大致轮廓50KB 时纹理开始浮现配额越充足细节越丰富。这种按字节预算逐步逼近原图的特性正是深空通信、卫星遥测等低带宽、高丢包场景最需要的。小波分解渐进式压缩的第一块基石渐进式压缩的前提是把图像能量分层拆开。icer_compression 先对图像做多级小波变换wavelet transform每一级分解都会得到四个子带LL低频近似浓缩了图像的主体能量与整体明暗HL / LH水平、垂直方向的高频细节HH对角线方向的边缘细节。小波分解的级数由stages参数控制滤波系数则来自 lib_icer/src/icer_config.c 中预置的多组整数滤波器A~F、Q 共 7 种。这一步的意义在于能量被集中到少数低频系数上高频子带大多接近 0为后续先传重要的、后传次要的奠定了基础。小波变换的完整实现位于 lib_icer/src/icer_wavelet.c。符号-幅度转换与 DC 均值让位平面编码更高效小波系数有正有负直接按位编码并不划算。icer_compression 做了两处预处理先计算 LL 子带的均值DC 值并从所有低频系数中减去它让系数围绕 0 分布再把系数统一转换为符号-幅度表示sign-magnitude符号位单独存放幅度值只保留非负部分。这样一来幅度值的高位比特在平坦区域几乎全是 0压缩效率大幅提升。相关的转换函数在 lib_icer/src/icer_util.c 中例如icer_to_sign_magnitude_int8与icer_from_sign_magnitude_int8。位平面编码的核心机制从最高位到最低位逐层逼近位平面编码是整套算法的引擎。所谓位平面就是把所有像素值的同一位抽出来组成一张二值图。例如 8 位像素有 8 个位平面从最高有效位MSB到最低有效位LSB依次排列。编码时icer_compression 从高位平面向低位平面逐层扫描——先编码最高位平面等于先传达了每个系数大概有多大低位的精细信息随后补充。在 lib_icer/src/icer_context_modeller.c 的icer_compress_bitplane_uint8函数中每个像素位会根据当前位平面的位置被划分为四类CATEGORY 0~3CATEGORY 0该系数在此位平面首次变显著需要编码位值并附带符号CATEGORY 1~2已显著系数的后续位概率分布不同CATEGORY 3尚未显著的系数位值直接送入未编码通道。这种分类编码让每个比特都拿到与其概率匹配的码字长度是位平面编码压缩率的关键来源。上下文建模利用邻域像素预测概率仅仅按位平面编码还不够icer_compression 还引入了上下文建模context modelling在编码某个比特前统计它周围 8 个相邻像素的显著性是否已有高位为 1组合出水平、垂直、对角三个方向的显著性计数再查表映射到 16 个上下文之一如 lib_icer/src/icer_config.c 中的icer_context_table_ll_lh_hl、icer_context_table_hh。每个上下文都维护独立的zero_count与total_count统计实时估计该比特为 0 的概率并送入熵编码器。当某个系数首次变显著时还会用邻域符号做符号预测icer_sign_prediction_table只编码预测是否命中的一位进一步节省比特。这套邻域感知 自适应统计的机制让压缩率逼近信息论下限。优先级排序决定先传哪些数据的排序算法现在到了本文的主角之一——优先级排序。位平面编码产生了大量数据包packet每个数据包对应某个子带 某个分解级 某个位平面 某个分割块。如何决定它们的发送顺序答案是给每个数据包算一个优先级然后整体排序。在 lib_icer/src/icer_compress.c 中可以看到核心逻辑子带 HL、LH 的优先级为2^stage lsbHH 略低为(2^(stage-1) lsb) 1LL 子带最高为2^(stage1) lsb。其中stage是分解级数lsb是位平面编号。这个公式的奥妙在于分解级数越浅stage 越小优先级越低——因为深层小波系数的能量更集中、更值钱位平面越高lsb 越小优先级越高——因为高位平面决定了图像的大致轮廓LL 子带永远排最前——它是整张图的信息核心。排序由qsort完成比较函数comp_packet在优先级相同时还会按子带类型微调HH LH HL保证解码端的重建顺序稳定。正是这套排序让有限的字节配额总能花在最影响观感的数据上实现真正的渐进式传输。误差分割与容错设计深空通信场景的保障优先级排序之外icer_compression 还有一项标志性设计——误差分割error containment。压缩前图像被划分为最多 32 个独立分割块segments每个块独立编码、独立打包包内附带 CRC32 校验lib_icer/src/crc32.c。分割参数的生成逻辑在 lib_icer/src/icer_partition.c 中解码端通过 lib_icer/src/icer_decoding.c 按包定位并校验。这意味着传输过程中某个包损坏或丢失只会影响它对应的那一小块图像区域而不会像 JPEG 那样导致整张图花屏。容错 渐进正是 NASA 为火星探测任务设计 ICER 的核心诉求。熵编码与字节配额把有限的比特花在刀刃上最后一步是熵编码。icer_compression 采用二值算术编码 Golomb 码的混合方案概率接近 0.5 的比特走二值算术编码lib_icer/src/icer_encoding.c 中的icer_encode_bit概率极端偏向 0/1 的长串比特则用 Golomb 码高效表示编码码表预设在 lib_icer/src/icer_config.c。更重要的是字节配额机制调用icer_compress_image_uint8时可指定输出上限如 70KB编码器按优先级从高到低逐包写入一旦超出配额立即停止并返回ICER_BYTE_QUOTA_EXCEEDED。也就是说你可以预先约定只传 70KB系统会自动把最珍贵的 70KB 花在优先级最高的数据上——这正是一开始那组对比图的由来。彩色图像的完整流程YUV 色彩空间可参考 lib_icer/src/icer_color.c示例用法见 example/src/example_encode.c。总结渐进式压缩的完整工作流回顾整条链路icer_compression 的渐进式压缩可以浓缩为五步小波分解把图像能量分层到 LL/HL/LH/HH 子带符号-幅度转换去均值、分离符号让幅度利于按位编码位平面编码从高位平面到低位平面逐层逼近配合上下文建模压榨冗余优先级排序按分解级数 位平面计算优先级决定数据包发送顺序误差分割 熵编码 配额控制容错、压缩、控量三者兼顾。位平面编码负责如何高效地表达优先级排序负责先表达什么二者缺一不可。理解了这两大机制你就掌握了 icer_compression 渐进式压缩的灵魂。如果想亲手验证只需git clone https://gitcode.com/gh_mirrors/ic/icer_compression按 README 中的 CMake 步骤编译出icer_util命令行工具用-t参数指定字节配额即可直观感受越传越清晰的渐进式图像压缩全过程。【免费下载链接】icer_compressionProgressive, error tolerant, wavelet-based image compression algorithm项目地址: https://gitcode.com/gh_mirrors/ic/icer_compression创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

klog JSON 接口教程:把时间追踪数据接入脚本自动化的完整指南

klog JSON 接口教程:把时间追踪数据接入脚本自动化的完整指南

2026/8/20 19:59:33

klog JSON 接口教程:把时间追踪数据接入脚本自动化的完整指南 【免费下载链接】klog Command-line tool for time tracking in a human-readable, plain-text file format. 项目地址: https://gitcode.com/gh_mirrors/klog/klog klog 是一款基于纯文本文件的…

Qwen3.8-9B 函数调用实战教程:三步让模型自动使用外部工具

Qwen3.8-9B 函数调用实战教程:三步让模型自动使用外部工具

2026/8/20 19:59:33

Qwen3.8-9B 函数调用实战教程:三步让模型自动使用外部工具 【免费下载链接】Qwen3.8-9B 项目地址: https://ai.gitcode.com/hf_mirrors/empero-ai/Qwen3.8-9B Qwen3.8-9B 函数调用(Function Calling)能力,能让 90 亿参数的…

一篇文章讲透结构化提示词:用 LangGPT 从 0 到 1 写出专业级提示词

一篇文章讲透结构化提示词:用 LangGPT 从 0 到 1 写出专业级提示词

2026/8/20 19:59:33

一篇文章讲透结构化提示词:用 LangGPT 从 0 到 1 写出专业级提示词 【免费下载链接】LangGPT LangGPT: Empowering everyone to become a prompt expert! 🚀 📌 结构化提示词(Structured Prompt)提出者 📌 …

IsaacLab实战:Franka机械臂抓取立方体,从环境配置到一次跑通

IsaacLab实战:Franka机械臂抓取立方体,从环境配置到一次跑通

2026/8/20 20:59:39

IsaacLab实战:Franka机械臂抓取立方体,从环境配置到一次跑通 【免费下载链接】IsaacLab Unified framework for robot learning built on NVIDIA Isaac Sim 项目地址: https://gitcode.com/GitHub_Trending/is/IsaacLab 你花三天搭好的 RL 训练环…

检测到逃逸风险怎么办?container-escape-check 之后的 10 大 Docker 安全加固措施

检测到逃逸风险怎么办?container-escape-check 之后的 10 大 Docker 安全加固措施

2026/8/20 20:59:39

检测到逃逸风险怎么办?container-escape-check 之后的 10 大 Docker 安全加固措施 【免费下载链接】container-escape-check docker container escape check || Docker 容器逃逸检测 项目地址: https://gitcode.com/gh_mirrors/co/container-escape-check 在…

给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档

给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档

2026/8/20 20:59:39

给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档 【免费下载链接】CopilotForXcode AI coding assistant for Xcode 项目地址: https://gitcode.com/GitHub_Trending/cop/CopilotForXcode 如果你已经受够了 …

Tabby 自托管AI编程助手实战:四关打通,私有化代码补全从部署到团队落地

Tabby 自托管AI编程助手实战:四关打通,私有化代码补全从部署到团队落地

2026/8/20 20:59:39

Tabby 自托管AI编程助手实战:四关打通,私有化代码补全从部署到团队落地 【免费下载链接】tabby Self-hosted AI coding assistant 项目地址: https://gitcode.com/GitHub_Trending/tab/tabby Tabby 是一款可以完全部署在自有服务器上的 AI 编程助…

gInk屏幕画笔完全指南:3分钟上手,让Windows屏幕标注像写字一样自然

gInk屏幕画笔完全指南:3分钟上手,让Windows屏幕标注像写字一样自然

2026/8/20 20:59:39

gInk屏幕画笔完全指南:3分钟上手,让Windows屏幕标注像写字一样自然 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk 想象一下:正在给团…

技术架构图的本地复现步骤

技术架构图的本地复现步骤

2026/8/20 20:49:35

技术架构图的本地复现步骤 这篇要解决什么 技术架构图的本地复现步骤讨论的是一个可复查的工程问题。技术架构图的本地复现步骤不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理技术架构图的本地复现步骤时&a…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/20 21:07:35

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

2026/8/20 0:08:45

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com…

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

2026/8/20 0:08:45

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 判断你是否…

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

2026/8/20 0:08:45

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 按 3MF 官方规范的字面意思,一…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…