当前位置: 首页 > java >正文

图像处理中的伪影

目录

一、块效应伪影 / 块状伪影

二、 去除块状伪影

三、振铃伪影 


一、块效应伪影 / 块状伪影

        块状伪影(Blocking Artefacts)是对经过变换编码的图像进行重建时,图像中可能会出现压缩过程产生的可见伪影。基于块的变换编码中,一种常见伪影是 “块效应”(Blocking Effect)或 “网格噪声”(Grid Noise)。块效应是量化过程中对直流(DC)变换系数进行近似处理的结果。

        在对变换系数进行量化时,编码器会从可用的量化参数中,选择数值最接近该系数的参数来表示该系数。这种 “舍入” 操作可能导致相邻块中出现视觉上颜色不同的像素,即便原始图像中对应的像素几乎完全一致。因此,在重建后的图像中,为变换编码过程划分的像素块可能会变得可见(见图 5.4)。

Fig. 5.4 Examples of blocking artefacts

        为降低数据速率而增大量化步长(即采用更粗的量化步长)时,块效应会变得更加明显。块效应在以下图像区域中尤为突出:

•    图像的边缘或颜色边界处
•    图像中颜色相对均匀的区域

二、 去除块状伪影

        在块效应伪影校正中,清晰度保持是一项具有挑战性的难题。其核心问题在于,需要区分图像中的真实边缘与由块效应伪影产生的虚假边缘。本研究中假设,真实边缘的亮度降幅会显著更大。

        本文提出了一种极为简单的块效应校正方法。我们以两个相邻的 8×8 像素块为例进行说明(见图 5.37)

Fig. 5.37 Pixels near boundary between adjacent 8 _ 8 pixel blocks

        在计算出系数后,像素 a0 和 b0 将分别替换为 c0 和 d0:


        这意味着:若 a0 与 b0 的差值较大,则该边缘为真实边缘,此时 k2 值较小;新得到的 c0 值将取决于 a1,d0 值将取决于 b1,且该边缘得以保留。

        \sigma _{r} 值越大,对块边界的平滑强度就越高。\sigma _{r}的取值范围为 0.05 至 0.5,在某一特定应用场景中,r\sigma _{r}被固定设为 0.1。

三、振铃伪影 

        振铃伪影(Ringing Artefacts)是量化误差导致的结果(图 5.5 以一维情况展示了该效应:当对应较高频率的系数被置为零时,恢复的信号中会出现模糊现象),在代表较高空间频率的系数中尤为明显。

        振铃伪影最可能出现在图像的强边缘处,且在文本中十分常见 —— 这是因为文本中普遍存在强边缘。不过,振铃伪影通常表现为边缘附近的模糊灰线,且仅当周围像素具有相对较高亮度时才可被察觉(见图 5.6)。若振铃伪影所在区域的像素亮度较低,则这些灰线难以被发现。此外,振铃伪影区域内的纹理往往会掩盖该伪影。视频中的振铃噪声表现为边缘附近的局部闪烁。

Fig. 5.6 Examples of ringing artefacts near sharp edges

        在高度压缩的图像中,块效应是主要的压缩伪影;而在较低压缩比下,振铃伪影通常是最明显的伪影。

        另一种 “振铃” 伪影(即图像块高频分量的加权系数被置零所产生的伪影)会呈现出特殊的图案。在某些区域中,若纹理包含具有特定边缘方向的结构化斑块,量化过程会严重破坏边缘方向与 0°、45° 或 90° 偏差较大的区域,同时夸大其余区域。图 5.7 展示了该效应。

        图 5.8 还表明,强边缘并非振铃伪影产生的必要条件。

Fig. 5.8 Ringing artefacts can appear near weak edges too

        然而,边缘附近的振铃伪影更易引起视觉不适,因此这类伪影是校正工作的首要对象。

http://www.xdnf.cn/news/18457.html

相关文章:

  • git新建项目如何推送到远程仓库
  • C#_面向对象设计的艺术
  • Python 网络编程实战指南:从 TCP_UDP 到 Socket 编程
  • 基于LangChain + Milvus 实现RAG
  • Linux学习-网络编程2
  • Zynq开发实践(fpga高频使用的两个场景)
  • Elasticsearch Rails 实战全指南(elasticsearch-rails / elasticsearch-model)
  • VLLM部署gpt-oss-20b踩坑记录
  • chrome driver在Mac上运行时提示安全问题怎么解决
  • STM32 - Embedded IDE - GCC - 重定向printf到串口
  • jmeter
  • [docker/大数据]Spark快速入门
  • DS 0 | 数据结构学习:前言
  • MySQL的事务
  • 24.解构赋值
  • 3 种无误的方式删除 Itel 手机上的短信
  • K8S - NetworkPolicy的使用
  • 【小白笔记】 MNN 移动端大模型部署
  • 【普通地质学】构造运动与地质构造
  • unbuntu 20.04 docker 部署wordpress
  • 一体化伺服电机在特种机器人(炉管爬行器)中的应用案例
  • LLM实践系列:利用LLM重构数据科学流程03- LLM驱动的数据探索与清洗
  • 微服务介绍及Nacos中间件
  • 算法 之 拓 扑 排 序
  • Pycharm SSH连接
  • Android15 AndroidV冻结和解冻的场景
  • 学习Linux嵌入式(正点原子imx课程)开发到底是在学什么
  • 【Linux | 网络】多路转接IO之select
  • Python 面向对象编程入门:从思想到属性操作
  • 图(Graph):关系网络的数学抽象