压缩损失来源-量化噪声

压缩损失会以多种方式表现出来并会导致视觉损失。这里讨论最常见的压缩损失——量化噪声。量化是将大量输入值映射到较小集合的过程,如将输入值四舍五入为某个精度单位的值。
执行量化的设备或算法称为量化器。量化过程引入的舍入误差即量化误差或量化噪声。量化误差就是输入信号和量化信号之间的差异。视频应用中有两种主要的量化噪声源:第一,模拟信号转换为数字格式时;第二,数字信号的有损压缩期间丢弃高频信息时。接下来将详细阐述如上的内容。

采样的量化

图像的数字化处理是传感器将每个采样点的连续值亮度信息转换为不同灰度级的离散整数集。传感器的特性(例如动态范围和线性度)将会显著影响亮度测量和量化的整个过程。传感器可处理的信号具备有限的范围,它们仅能处理处于某个区间内的光强度。真实传感器也是非线性的,但也可能存在一些区域,在传感器的这些区域的两端是非线性区域,而该区域内部或多或少是线性的。

A/D(analog-to-digital)转换器量化位数决定了量化器输出的动态范围。
n位量化器可表示从最小到最大N=2n 个级别。8位量化器通常表示0到255之间编号的256个灰度级别,其中0表示黑色,255表示白色。更多的量化位数可以提供更精细的量化级别,可产生更少噪声,从而使得量化信号更接近原始信号。
下图所示:2位4级和3位8级量化信号的对比。2位4级量化仅是输入信号的粗略近似,而3位8级量化信号则比2位4级量化更精准。
在这里插入图片描述
对于图像而言,像素亮度的真实输入与量化后的数字级别表示之间的差异表示该像素的量化误差(quantization error)。量化误差可以取正值或负值。对于均匀量化(uniform quantization)而言,量化级别是等间隔的,但是对于非均匀量化而言,量化间隔并非是等间隔的。如果量化级别以步长b等间隔,数字图像的量化误差可近似为均匀分布,且量化误差的期望为0,方差为b2 /12。
均匀量化器通常是无记忆的,也就是说像素的量化级别在计算时会独立于其他像素。

​频率量化

频率量化:图像或视频帧通过变换(例如离散余弦变换,DCT)将图像数据转换为频域数据。对于8×8的像素块,DCT将产生64个变换系数。有损压缩技术会使用相同大小的量化矩阵对变换系数执行量化操作。
量化矩阵对于高频信息和低频信息的量化并非是线性的,一般会精细量化低频信息,对高频信息的量化则比较粗糙。实际上,大多数高频分量在量化后变为零,这一方面有助于压缩,但是另一方面会导致信息发生不可逆转地丢失,进而导致解压缩期间,无法根据量化系数回复原始值。原始像素块和重建像素块之间的差异表示引入的量化误差,下图展示了量化误差的过程。

在这里插入图片描述
在这里插入图片描述
==对原始像素矩阵f执行DCT变换后得到F,对其进行量化如上图示。==量化矩阵和输入到量化器的变换系数矩阵的大小一致。为了获得量化系数,变换系数的每一个元素需要除以对应的量化系数,然后对结果取整。上图中通过舍入(1260/16)获得量化系数79。
量化之后,位于左上角的低频系数得到保留,而高频系数则变为零,并在传输之前被丢弃。量化系数乘以相同的量化矩阵来重建变换系数。但是,重建的结果会包含量化误差,如上图示。
通常,系数的量化取决于其相邻系数的量化方式。在这种情况下,在量化下一个系数之前会保存并考虑邻域上下文。这是具有存储器的量化器的一个例子。

实际上,量化系数矩阵中出现的大量零元素并非偶然。以这种方式设计的量化矩阵,可以从信号中去除人眼视觉系统中不太敏感的高频分量,从而在视觉感知没有明显降低的情况下,提升视频信号的压缩率。

颜色量化

颜色量化是用于减少图像中的颜色数量。由于人眼视觉系统对颜色信息的损失不敏感,因此颜色量化是一种有效的压缩技术。
此外,对于只能支持有限颜色的设备而言,颜色量化通常也是一种有效的手段。通常将颜色量化技术(最近邻颜色算法)与抖动(Dithering,量化误差的随机化技术)组合以产生比实际可用颜色更多的颜色,以及避免色带伪影(color banding artifacts)的现象。色带伪影主要因为连续变化的色调量化之后由于部分颜色缺失带来的色调突变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3018898.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

12个最强悍的数字孪生软件

数字孪生软件是一种尖端技术,可创建物理资产、系统或流程的虚拟表示。工程师、城市规划者、制造商和无数其他专业人士使用它来模拟、监控和分析数字环境中的真实场景。通过这样做,他们可以预测潜在问题、测试解决方案并简化操作,确保现实世界…

Linux网络编程(三)IO复用一 select系统调用

I/O复用使得程序能同时监听多个文件描述符。在以下场景中需要使用到IO复用技术: 客户端程序要同时处理多个socket,非阻塞connect技术客户端程序要同时处理用户输入和网络连接,聊天室程序TCP服务器要同时处理监听socket和连接socket服务器要同…

算法学习:数组 vs 链表

🔥 个人主页:空白诗 文章目录 🎯 引言🛠️ 内存基础什么是内存❓内存的工作原理 🎯 📦 数组(Array)📖 什么是数组🌀 数组的存储📝 示例代码&#…

运放的同相与反相放大

反相放大器 同相端接地,电压为 0,反相端和同相端虚短,因此也是 0 V 的电压,同时由于虚断,几乎没有电流注入,所以R 1 和R 2 相当于串联,电阻上的电流相等 因此可以求出输入输出关系式为 V o u t…

excel如何将多列数据转换为一列?

这个数据整理借用数据透视表也可以做到: 1.先将数据源的表头补齐,“姓名” 2.点击插入选项卡,数据透视表,在弹出对话框中,数据透视位置选择 现有工作表,(实际使用时新建也没有问题)…

免费分享一套微信小程序在线订餐(点餐)配送系统(SpringBoot+Vue),帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序在线订餐(点餐)配送系统(SpringBootVue),分享下哈。 项目视频演示 【免费】微信小程序在线订餐(点餐)配送系统(SpringBootVue) Java毕业设计_哔哩哔哩_bilibili【免费】微信小程序在…

每日OJ题_贪心算法三⑥_力扣738. 单调递增的数字

目录 力扣738. 单调递增的数字 解析代码 力扣738. 单调递增的数字 738. 单调递增的数字 难度 中等 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0…

集成学习案例-幸福感预测

集成学习案例一 &#xff08;幸福感预测&#xff09; 背景介绍 此案例是一个数据挖掘类型的比赛——幸福感预测的baseline。比赛的数据使用的是官方的《中国综合社会调查&#xff08;CGSS&#xff09;》文件中的调查结果中的数据&#xff0c;其共包含有139个维度的特征&#xf…

哪款充电宝质量和口碑比较好?适合入手充电宝有哪些?

充电宝这么好用的移动电源就不用我说了吧&#xff0c;平时不出门还好&#xff0c;家里有插座可以充电&#xff0c;但是但凡出门了&#xff0c;手机电量一般是不能够支撑到&#xff0c;像我这种手机重度使用者&#xff0c;出门在外手机快没电了我就非常焦虑了&#xff0c;有一款…

五一 大项目

Docker 中的 Nginx 服务为什么要启用 HTTPS 一安装容器 1 安装docker-20.10.17 2 安装所需的依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm23 添加Docker官方仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos…

Python pypdf库:PDF文档处理的利器

更多Python学习内容&#xff1a;ipengtao.com PDF&#xff08;Portable Document Format&#xff09;是一种常见的文档格式&#xff0c;广泛应用于各种场景&#xff0c;包括文档编辑、电子书籍、报告等。Python作为一种强大的编程语言&#xff0c;在处理PDF文档方面也有着丰富的…

怎样通过PHP语言实现远程控制一路开关

怎样通过PHP语言实现远程控制一路开关呢&#xff1f; 本文描述了使用PHP语言调用HTTP接口&#xff0c;实现控制一路开关&#xff0c;一路开关可控制一路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能WiFi…

【JavaWeb】网上蛋糕项目商城-我的订单,退出功能

概念 上一文中&#xff0c;我们实现了注册&#xff0c;登录&#xff0c;提交订单以及修改个人信息等功能。本文在登录的状态下&#xff0c;实现订单列表以及退出登录功能等。 我的订单 在head.jsp头部页面中&#xff0c;当用户处于登录状态&#xff0c;则会显示“我的订单”…

面试分享——订单超30分钟未支付自动取消用什么实现?如何使用Redis实现延迟队列?

目录 1.订单超时未支付自动取消&#xff0c;这个你用什么方案实现&#xff1f; 2.如何使用Redis实现延迟队列 2.1实验步骤 2.2实现生产可用的延迟队列还需关注什么 3.总结 电商场景中的问题向来很受面试官的青睐&#xff0c;因为业务场景大家都相对更熟悉&#xff0c;相关…

Java | Leetcode Java题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; class Solution {public void sortColors(int[] nums) {int n nums.length;int p0 0, p2 n - 1;for (int i 0; i < p2; i) {while (i < p2 && nums[i] 2) {int temp nums[i];nums[i] nums[p2];nums[p2] temp;--p2;}i…

Pytorch入门—Tensors张量的学习

Tensors张量的学习 张量是一种特殊的数据结构&#xff0c;与数组和矩阵非常相似。在PyTorch中&#xff0c;我们使用张量来编码模型的输入和输出&#xff0c;以及模型的参数。 张量类似于NumPy的ndarrays&#xff0c;只是张量可以在GPU或其他硬件加速器上运行。事实上&#xf…

Flink 部署模式

目录 概述 部署模式 会话模式&#xff08;Session Mode&#xff09; 单作业模式(Per-Job Mode) 应用模式(Application Mode) 运行模式&#xff08;资源管理模式&#xff09; Standalone运行模式 会话模式部署 应用模式部署 Yarn运行模式 会话模式部署 单作业模式部…

LeetCode70:爬楼梯

题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 解题思想 1.确定dp数组以及下标的含义 dp[i]&#xff1a; 爬到第i层楼梯&#xff0c;有dp[i]种方法 2.确定递推公式 从dp[i]的定义可以…

Git系列:git merge 使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

基于springboot实现体育馆管理系统项目【项目源码+论文说明】

基于springboot实现体育馆管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理…