Color Banding的个人记录

本文探讨了图像处理中常见的色彩分层问题,分析了因色深不足、色调映射、图像增强和去噪等因素导致的banding现象。提出了解决方法,包括使用Dithering技术在banding区域添加噪声,以及应用深度学习网络(DNN)进行图像去边带处理。提到的相关工作包括Adaptive Debanding Filter、CAMBI和Deep Image Debanding等。
部署运行你感兴趣的模型镜像


简单记录个人的调研结果和想法, 可能不准确

概念

Color Banding (wiki)中文常称为色彩分层, 色彩断代, 色带等, 是图像处理中常见的一种artifact. 表现为颜色亮度本应均匀过渡的区域, 出现人眼可识别的边界.

左: 有色带. 右: 无色带

导致Banding的原因

Banding出现的根本原因是色深不足, 在经过如色调调整, 图像/视频编码等处理步骤后, 更容易出现. 目前看到的会引发banding的处理包括:

  1. Inverse tone mapping
    inverse/reverse tone mapping的是把一般为8位sRGB的LDR图像, 转换为HDR图像, 以在HDR设备上显示. 显然, 这种低位宽到高位宽的映射很容易造成banding.
  2. Tone mapping
    Tone mapping一般是指在相机ISP中, 将高比特位的图像(10/14/16 bit)的数据变换为8bit的图像, 或者也可以叫HDR到LDR的变换. Tone mapping是非线性的, 有时会对某亮度区间做大幅度拉伸(如提亮暗部), 这些区域有可能会出现banding.
  3. 图像增强
    图像增强一般存在对亮度, 色调, 对比度的调整, 会造成banding.
  4. 去噪
    噪声本身有抑制banding的效果. 噪声去除的过干净会容易使人观察到banding.

实际中对一张图像的处理会包含上述多个步骤. 例如, 相机ISP可能会对raw做多次去噪, 全局/局部tone mapping. 此时banding可能就会比较严重.

处理方法

看到的方法大致分为两类, 一类是对图像加噪, 一类是直接构造训练对, 用网络学. 还没详细研究具体算法, 此处仅列了少数几篇, 搜索时关键字可以是debanding, decontouring, contouring removal, color dequantization等. 另外在HDR, inverse tone mapping, 图像修复等方向也会有相关内容.

Dithering

简单来说就是找到banding区域, 对其加入一些噪声.

DNN大法

不是Low Level任务里的主流方向, 有影响力的论文比较少

  • [TCSVT 2022] Fast Blind Decontouring Network
  • [arXiv 2110] Deep Image Debanding
  • [TIP 2019] Deep Reconstruction of Least Significant Bits for Bit-Depth Expansion

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

03-27
### Banding in IT Context In the context of computer graphics and rendering, **banding** refers to visible stripes or bands appearing due to insufficient color depth or precision during image processing. This phenomenon occurs when transitions between colors lack smooth gradients, leading to noticeable discontinuities[^1]. For example, banding may appear as abrupt changes in shading within a gradient, which should ideally be seamless. Banding often arises in scenarios involving high dynamic range (HDR) imaging where the display's limited bit-depth cannot accurately represent subtle variations in luminance levels[^2]. To mitigate such issues, techniques like dithering are employed; these methods introduce noise into an image to break up uniform areas that would otherwise cause banding artifacts. From another perspective, procedural distinctions similar to those discussed under legal frameworks might also apply metaphorically here—where one must differentiate between fundamental processes affecting visual quality versus superficial adjustments aimed at enhancing appearance alone[^3]. ```python import numpy as np from PIL import Image def create_gradient(width=800, height=600): """Create a simple linear RGB gradient.""" img_array = np.zeros((height, width, 3), dtype=np.uint8) for y in range(height): r = int(y / height * 255) g = int(255 - y / height * 255) b = 0 img_array[y,:, :] = [r,g,b] return Image.fromarray(img_array) gradient_image = create_gradient() gradient_image.show() # Display potential banding effects. ``` The above Python script demonstrates creating a basic red-green gradient across an image file using NumPy arrays converted via Pillow library functions. Running this code could help visualize how different systems handle gradients differently based upon their internal representations' resolutions potentially causing unwanted bandings depending on hardware capabilities etcetera.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值