嵌入式零树小波EZW编码及其算法改…

2023-10-26

在基于小波变换的图象压缩方案中,嵌入式零树小波 EZW(Embedded Zerotree Wavelets)[1]编码很好地利用小波系数的特性使得输出的码流具有嵌入特性。近年来,在对EZW改进的基础上,提出了许多新的性能更好的算法,如多级树集合分裂算法(SPIHT:Set Partitioning In Hierarchical Trees)[2],集合分裂嵌入块编码(SPECK:Set Partitioned Embedded bloCK coder),可逆嵌入小波压缩算法(CREW:Compression with Reversible Embedded Wavelets)[3] 。本文对这些算法进行了原理分析、性能比较,说明了嵌入式小波图象编码的研究方向。

  1. 嵌入式零树小波编码算法EZW

  1. 1算法原理: 

  内嵌编码[1](embedded coding)就是编码器将待编码的比特流按重要性的不同进行排序,根据目标码率或失真度大小要求随时结束编码;同样,对于给定码流解码器也能够随时结束解码,并可以得到相应码流截断处的目标码率的恢复图象。内嵌编码中首先传输的是最重要的信息,也就是幅值最大的变换系数的位信息。图1显示了一个幅度值由大到小排序后的变换系数的二进制列表。表中每一列代表一个变换系数的二进制表示,每一行代表一层位平面,最上层为符号位,越高层的位平面的信息权重越大,对于编码也越重要。内嵌编码的次序是从最重要的位(最高位)到最不重要的位(最低位)逐个发送,直到达到所需码率后停止。

  由图1可知内嵌编码的输出信息主要包括两部分:排序信息和重要象素的位信息。其中,位信息是编码必不可少的有效信息,对应于表中箭头所划过的比特位;而排序信息则是辅助信息,按其重要性从左到右排列,反映了重要象素在原图上的空间位置,用于恢复原始的数据结构。因此,内嵌算法中排序算法的优劣和排序信息的处理决定了整个编码算法的效率。

  一副图象经过三级小波分解后形成了十个子带,如图2所示。小波系数的分布特点是越往低频子带系数值越大,包含的图象信息越多,如图2中的LL3子带。而越往高频子带系数值越小,包含的图象信息越少。就是在数值相同的情况下,由于低频子带反映的是图象的低频信息,对视觉比较重要,而高频子带反映的是图象的高频信息,对视觉来说不太重要。这样对相同数值的系数选择先传较低频的系数的重要比特,后传输较高频系数的重要比特。正是由于小波系数具有的这些特点,它非常适合于嵌入式图象的编码算法。在JPEG2000标准中以小波变换作为图象编码的变换方法。

  EZW算法利用小波系数的特点较好地实现了图象编码的嵌入功能,主要包括以下三个过程:零树预测,用零树结构编码重要图,逐次逼近量化。

  1) 零树预测

  一副经过小波变换的图象按其频带从低到高形成一个树状结构,树根是最低频子带的结点,它有三个孩子分别位于三个次低频子带的相应位置,见图2左上角,其余子带(最高频子带除外)的结点都有四个孩子位于高一级子带的相应位置(由于高频子带分辨率增加,所以一个低频子带结点对应有四个高频子带结点,即相邻的2×2矩阵,见图2)。这样图2所示的三级小波分解就形成了深度为4的树。

  定义一个零树的数据结构:一个小波系数x,对于一个给定的门限T,如果|x|

  2) 用零树结构编码重要图

  重要图包括三种要素:即重要系数、孤立零和零树根。其中,对于一个给定的阈值T,如果系数X本身和它的所有的子孙都小于T,则该点就称为零树根;如果系数本身小于T,但其子孙至少有一个大于或等于T,则该点就称为孤立零点。在编码时分别用三种符号与之对应。当编码到最高分辨率层的系数时,由于它们没有子孙,零树根不再存在,只需其余两种符号即可。为

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式零树小波EZW编码及其算法改… 的相关文章

  • MyBatis 多表联合查询及优化

    关于优化 对于优化嘛 我这里简单的提几点 大家可以考虑一下 首先 就是对表的设计 在设计表初期 不仅仅要考虑到数据库的规范性 还好考虑到所谓的业务 以及对性能的影响 比如 如果从规范性角度考虑的话 可能就会分多个表 但是如果从性能角度来考虑
  • 如何实现精致扫雷游戏(可扩散可标记)---保姆级教程

    目录 思路 main函数内容 创建 双子 数组 初始化数组 打印棋盘 布置雷 排查雷 初阶 大致过程 如何统计周围雷的个数 判断是否赢得游戏 进阶 可扩散可标记 1 排雷 2 标记 标记要更改的时show数组 呈现给玩家标记信息 3 取消标
  • Bugku-兔年大吉2

    兔年大吉2
  • 逆向基础:32位软件逆向技术

    在编写win32应用程序时 都必须在源码里实现一个WinMain函数 但windows程序的执行并不是从WinMain函数开始的 首先被执行的是启动函数的相关代码 这段代码是由编译器生成的 启动源代码 crt src wincmdln c中
  • 【leveldb】整体架构

    LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口 为了便于理解整个系统及其处理流程 我们可以从两个不同的角度来看待 LevleDb 静态角度和动态角度 从静态角度 可以假想整个系统正在运行过程中 不断插入删除读取数据
  • 【鼠标事件 MouseEvent】clientX clientY offsetX offsetX pageX screenX screenY

    鼠标事件 MouseEvent 对象 下clientX clientY offsetX offsetX pageX screenX screenY 定义转自 MDNMouseEvent MouseEvent clientX 只读 鼠标指针在
  • C程序设计实现高内聚低耦合

    要做到高内聚低耦合 重点并不是代码的编写 而是整体程序的设计阶段 程序设计时 要先将要实现的功能列出来 然后设计模块 模块设计后 再进行代码实现 要做到高内聚低耦合 设计模块时需要做到 1 各个模块之间的功能必须明确 2 各个功能模块间实现
  • Mysql数据库基础知识总复习

    前言 小亭子正在努力的学习编程 接下来将开启javaEE的学习 分享的文章都是学习的笔记和感悟 如有不妥之处希望大佬们批评指正 同时如果本文对你有帮助的话 烦请点赞关注支持一波 感激不尽 目录 前言 数据库基础知识 数据 数据库 数据库管理
  • 关于访问后端接口报404的问题——全网最详细的404错误详解

    当我们通过前端向后端发起一个请求调用后端接口时 经常会遇到404的问题 网上关于对404问题介绍的一大堆 其实404问题的本质就两点 在介绍404问题之前先温习一个小的知识点 项目访问路径 项目访问路径 就是定位一个项目的路径 可以理解为项
  • spring整合redis缓存,以注解(@Cacheable、@CachePut、@CacheEvict)形式使用

    maven项目中在pom xml中依赖2个jar包 其他的spring的jar包省略
  • Android高级UI之事件传递之1

    点击事件的传递规则 在介绍点击事件的传递规则之前 首先要明白这里分析的对象是MotionEvent 即点击事件 所谓的事件分发 其实就是对MotionEvent事件的分发过程 即当一个MotionEvent产生以后 系统需要把这个事件传递给
  • C语言解析json数据结构分析与教程

    写在前面的话 本文档旨在归纳总结个人的学习经验与成果 记录自己的成长 随便给大家分享自己解决的思路 为在这方面有需要的朋友提供一个参考 本人能力有限水平一般 文中难免会有一些错误 希望大家抱着辩证客观的态度来阅读 有错误还请各位海涵包容并予
  • 基于内容的图像检索技术:从特征到检索

    点击上方 机器学习与生成对抗网络 星标置顶 重磅干货 第一时间送达 来自 知乎 作者 赵丽丽 编辑 新机器视觉 在介绍视觉内容检索流程前 先来回顾下文本检索流程 一 相似文本检索 相似文本检索可以分成构建词库 构建索引和检索三部分 如下图所
  • 烽火星空- 笔试

    烽火星空笔试 Java结合数据结构进行出题 无任何网络知识 无任何操作系统知识 无任何框架知识 Collection除外 选择题 Java结合数据结构 没有Java基础知识 全部结合数据结构 数据结构占比60 Java 40 链表占比极高
  • SELECT CASE WHEN 的用法

    1 SELECT CASE WHEN 的用法 select 与 case结合使用最大的好处有两点 一是在显示查询结果时可以灵活的组织格式 二是有效避免了多次对同一个表或几个表的访问 下面举个简单的例子来说明 例如表 students id
  • Android和H5那些不可描述的事情...

    今日科技快讯 近日 代表了750家移动运营商利益的全球移动通信系统协会的行业分析报告显示 禁止从中国供应商购买通信设备 将使欧洲5G网络成本增加约550亿欧元 并将导致该技术的推出延迟18个月左右 在路透社报道中提到的中国供应商 除了华为
  • 深度之眼(五)——Python组合数据类型

  • springcloud----负载均衡--Ribbon与LoadBalance

    简介 Spring Cloud Ribbon 是 Netflix Ribbon 实现的一套客户端 负载均衡工具 简单的说 Ribbon 是 Netflix 发布的开源项目 主要功能是提供 客户端的复杂均衡算法和服务调用 Ribbon 客户端
  • Pico-I / O嵌入式模块提供48点数字I / O接口

    WinSystems的PCO UIO48 G是具有中断事件检测功能的48点数字I O接口 Pico I O嵌入式模块旨在为Pico ITXe单板计算机提供低成本的I O扩展 该产品的主要功能之一是 它可以监视24个上升和下降的数字边沿转换
  • spring容器使用接口注入

    spring为何要注入接口 而注入实现类就会报错 如果只是单纯注入是可以用实现类接收注入对象的 但是往往开发中会对实现类做增强 如事务 日志等 实现增强的AOP技术是通过动态代理实现的 而spring默认是JDK动态代理 对实现类对象做增强

随机推荐

  • Linux(V4L2驱动)下获得Opencv摄像头属性(图像输出格式和是否发生往RGB的转换)的方法

    Opencv可通过cvGetCaptureProperty函数 或者VideoCapture get int proID 来获取摄像头输出图像的属性 但返回的是个double的值 如何查看图像输出的编码格式呢 其实可以看到 编码格式是个宏定
  • 通信仿真软件SystemView安装全流程详细解释(下载,安装,闪退,读条无反应)

    systemview简介 systemview 通信仿真软件 5 0 是一款模拟软件 这款软件主要是进行信号仿真的操作 支持支持滤波器设计 信号仿真和通信系统统计分析 软件内的功能非常丰富 操作也很简单 是一款非常不错的软件 有需要的小伙伴
  • HDFS读数据流程

    准备工作 1 首先客户端进入分布式文件系统去寻找数据块的位置 利用得到的文集文件块位置来要求名称节点返还部分块这些返还的节点会按照HADOOP中关于集群拓扑来得出客户端的距离然后进行排序 开始读取数据 1客户端利用FSDataInputSt
  • 聚观早报

    聚观365 9月14日消息 iPhone 15系列正式发布 月饼专利申请超10000项 五个女博士 自建研究院 2023中国民营企业研发十强公布 华为和小米达成全球专利交叉许可协议 iPhone 15系列正式发布 2023年苹果秋季新品发布
  • hook库

    detourattach detourRestoreAfterWith detourTransactionBegin detourUpdatethread getcurrentthread
  • 使用ChatGPT生成代码

    无需翻墙 1 下载安装cursor 首先进入官网 https www cursor so 点击 Download for windows 下载并安装好cursor 2 使用方法 打开后界面如下 打开 py或者 json文件 然后点击按键盘
  • echarts初始化宽度小于容器宽度

    查找资料是因为echarts的容器还没有创建出来的时候echarts就已经加载出来了 因为获取不到容器的宽高就会默认宽高100 是100px 所以会缩小在一起 因为我的代码中 echarts的容器的最外层的div给的样式是display n
  • 分布式事务学习总结

    1 基础概念 1 1 什么是事务 事务可以看做是一次大的活动 它由不同的小活动组成 这些活动要么全部成功 要么全部失败 1 2 本地事务 在计算机系统中 更多的是通过关系型数据库来控制事务 这是利用数据库本身的事务特性来实现的 因此叫数据库
  • echarts报错:Error in mounted hook: “TypeError: Cannot read properties of undefined (reading ‘init‘)“

    echarts安装创建图表时报这种错误 Error in mounted hook TypeError Cannot read properties of undefined reading init 1 具体报错内容 2 解决办法 原先大
  • Java基本数据类型

    Java中有以下几种基本数据类型 这些类型都是值类型 类型 值范围 大小 范围 boolean true或false 1位 char Unicode字符 16位 u0000 uFFFF byte 有符号整数 8位 128 127 short
  • [Linux打怪升级之路]-环境变量

    前言 作者 小蜗牛向前冲 名言 我可以接受失败 但我不能接受放弃 如果觉的博主的文章还不错的话 还请点赞 收藏 关注 支持博主 如果发现有问题的地方欢迎 大家在评论区指正 目录 一 认识环境变量 二 获取环境变量的三种方法 1 通过gete
  • 贝叶斯分类器(贝叶斯决策论,极大似然估计,朴素贝叶斯分类器,半朴素贝叶斯分类器,贝叶斯网)学习笔记

    贝叶斯分类器 贝叶斯决策论 极大似然估计 朴素贝叶斯分类器 半朴素贝叶斯分类器 贝叶斯网 学习笔记 一 条件概率 全概率公式 贝叶斯公式 二 贝叶斯决策论 贝叶斯决策论是概率框架下实施决策的基本方法 对分类任务来说 在所有相关概率都已知的理
  • wsl2 网络代理设置

    在 WSL2 环境中 clone 一个很大的 git 项目 不走代理速度很慢 所以研究了一下怎么让 WSL2 走 Windows 的代理客户端 WSL1 和 WSL2 网络的区别 在 WSL1 时代 由于 Linux 子系统和 Window
  • Android开发 retrofit入门讲解 (RxJava模式)

    Android开发 retrofit入门讲解 RxJava模式 前言 retrofit除了正常使用以外 还支持RxJava的模式来使用 此篇博客讲解如何使用RxJava模式下的retrofit 依赖 implementation com s
  • 极光笔记

    作者 极光推送后台技术专家 曾振波 为什么要上云 关于企业上云 业内已经有了非常多的讨论和论述 这里主要是从极光自身的实际情况阐述几个理由 1 传统自建机房在扩充底层软硬件资源时 需要进行选型 采购 参数测试验证 实施部署等流程 整个过程需
  • jupyter 魔法命令

    Jupyter NoteBook 是功能强大的Python交互IDE 深受数据分析师和算法工程师的热爱 Jupyter NoteBook 在综合使用文字 代码 图片等多种元素展示设计者的想法方面有着美妙的用户体验 而其自带的一些常用Magi
  • 【项目实战】springboot+uniapp基于微信小程序铁路订票小程序-源码+数据库+文档报告

    注意 该项目只展示部分功能 如需了解 评论区咨询即可 本文目录 1 开发环境 2 系统设计 2 1 设计背景 2 2 设计内容 3 系统页面展示 3 1 前台页面 3 2 后台页面 3 3 功能展示视频 4 更多推荐 5 部分功能代码 1
  • Makefile的编译方式

    Makefile 使用GCC的命令进行程序编译时 当程序是单个文件时编译是比较方便的 但当工程中的文件数目增多 甚至非常庞大 并且目录结构关系复杂时 便需要通过makefile来进行程序的编译 示例 目录MakeFile Demo下有三个文
  • CSS

    一 是什么 css 即层叠样式表 Cascading Style Sheets 的简称 是一种标记语言 由浏览器解释执行用来使页面变得更美观 css3是css的最新标准 是向后兼容的 CSS1 2的特性在CSS3 里都是可以使用的 而CSS
  • 嵌入式零树小波EZW编码及其算法改…

    在基于小波变换的图象压缩方案中 嵌入式零树小波 EZW Embedded Zerotree Wavelets 1 编码很好地利用小波系数的特性使得输出的码流具有嵌入特性 近年来 在对EZW改进的基础上 提出了许多新的性能更好的算法 如多级树