0

0

图像文件一般利用什么冗余进行压缩

青灯夜游

青灯夜游

发布时间:2022-07-26 11:46:51

|

4620人浏览过

|

来源于php中文网

原创

图像文件一般利用编码冗余、像素间冗余和心理视觉冗余进行压缩。数据冗余是数字图像压缩的主要问题,在数字图像压缩中,可以确定三种基本的数据冗余并加以利用:编码冗余、像素间冗余和心理视觉冗余;当这三种冗余中的一种或多种得到减少或消除时, 就实现了数据压缩(减少表示给定信息量所需的数据量)。

图像文件一般利用什么冗余进行压缩

本教程操作环境:windows7系统、Dell G3电脑。

图像压缩所解决的问题是尽量减少表示数字图像时所需要的数据量,减少数据量的基本原理的除去其中多余的数据。

1. 基础介绍

图像压缩模型:主要介绍对信号源的编码和解码,对传输过程的信号道不讨论。

在这里插入图片描述

数据压缩指减少表示给定信息量所需的数据量。

数据是信息传送的手段。对相同数量的信息可以以不同数量的数据表示。

信息:用来表示图像本身的信息。

数据冗余是数字图像压缩的主要问題。如果n1和n2代表两个表示相同信息的数据集合中所携载信息单元的数量,则第一个数据集合(用n1表示的集合)的相对数据冗余RD可以定义为:

在这里插入图片描述

这里C通常称为压缩率,定义为:

在这里插入图片描述

在数字图像压缩中,可以确定三种基本的数据冗余并加以利用:编码冗余、像素间冗余和心理视觉冗余。当这三种冗余中的一种或多种得到减少或消除时, 就实现了数据压缩。

2. 编码冗余

对于图像来说,可以假设一个离散随机变量表示图像的灰度级,并且每个灰度级(rk)出现的概率为pr

在这里插入图片描述

这里L是灰度级数,nk是第k个灰度级在图像中出现的次数, n是图像中的像素总数。如果用于表示每个rk值的比特数为 l(rk),則表达每个像素所需的平均比特数为:

在这里插入图片描述

就是说,将表示每个灰度级值所用的比特数和灰度级出现的概率相乘,将所得乘积相加后得到不同灰度级值的平均码字长度。如果某种编码的平均比特数越接近熵,則编码冗余越小。

【注】

:它定义了观察单个信源输出得到的平均信息量

在这里插入图片描述

Kacha
Kacha

KaCha是一款革命性的AI写真工具,用AI技术将照片变成杰作!

下载

例如:

在这里插入图片描述

原图像的熵为:2.588

采用自然二进制编码,平均长度为;3

如果使用表中编码2,平均比特数为:

在这里插入图片描述

实现编码压缩,pr(rk)与 l(rk)这两个函数乘反比。也就是说,某灰度rk出现的概率pr(rk)越大,编码长度 l(rk)应该就越小,就能减小平均比特数使其接近于熵。如下图:

1.png

3. 像素间冗余

像素间冗余是一种与像素间相关性有直接联系的数据冗余。

对于一张静态图片,存在空间冗余(几何冗余),这是由于在一张图片中单个像素对图像的视觉贡献常常是冗余的,可借助其相邻像素的灰度值进行推断。

对于连续图片或视频,还会存在时间冗余(帧间冗余),大部分相邻图片间的对应点像素都是缓慢过度的。

2.png

3. 心理视觉冗余

心理视觉冗余与实在的视觉信息相关,它是因人而异的,不同的人对于同一张照片产生的心理视觉冗余是不同的。去除心理视觉冗余数据必然导致定量信息的损失,并且该视觉信息损失是不可逆转的操作。就好比一张图像(无法放大)比较小时,人眼是无法直接判断出其分辨率,为了压缩图像的数据量,可以去除一些人眼无法直接观察出的信息,但当其放大时,没有去除心理视觉冗余的图像将和去除心理视觉冗余的图像产生明显差别。

3.png

图C说明充分利用人类视觉系统特性的量化过程可以大大改善时图像的表现效果.尽管这种量化过程的压缩率还是只有2: 1,为减少假轮廓而增加了额外的开销,但减少了讨厌的顆粒状纹路.产生这种结果所使用的方法是改进的灰度级(IGS)量化方法.下表对这种方法进行了说明.先由当前的8位灰度级值和前面产生的4位最低有效位构成一个初始值为零的和.如果当前值的4位最高有效位为1111,則用0000与其相加。将得到的和的4个最高有效位的值作处编码像素值.

在这里插入图片描述

4. 保真度准则

4.1 客观保真度准则

当信息损失的程度可以表示成初始图像或输入图像以及先被压缩而后被解压缩的输出图像的函数时,就说这个函数是基于客观保真度准则的。

  1. 均方根误差(rms)
    两幅图的总体误差
    在这里插入图片描述
    其中,f(x,y)表示输入图像,f尖(x,y)表示对输入图像压缩然后解压缩得到的估计量或近似值
    两幅图的均方根误差;
    在这里插入图片描述
  2. 均方信噪比
    在这里插入图片描述

4.2 主观保真度准则

主观评估是通过向典型的观察者显示典型的解压缩图像并将他们的评估结果进行平均得到的。
在这里插入图片描述

更多相关知识,请访问常见问题栏目!

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

16

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

23

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

75

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

95

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

218

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

420

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

168

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

222

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

33

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 847人学习

好课诞生记
好课诞生记

共20课时 | 6.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号