RawZipper-NVIDIA GPU上的原始拜耳编解码器

在相机应用中,大量的图像处理任务需要存储原始帧而不转换为RGB。 这种转换可以在随后或离线进行。 这一断言适用于多种应用,包括但不限于街景、航空成像和航空航天应用。 因此,RawZipper(原始拜耳编解码器)的开发是为了在存储在SSD上之前压缩原始数据。

RawZipper编解码器是为了压缩和存储单色和拜耳相机捕获的原始图像数据而实现的。 拜耳数据遵循拜耳模式(RGGB、BGGR、GRBG或GBRG),其中每个像素仅捕获一个颜色通道。 可以采用真正的无损或有损(几乎或视觉上无损)压缩来保留原始数据以供后续原始加工.

RawZipper的申请

  • 街景和航空成像
  • 航空航天成像
  • 机器视觉与工业成像
  • 自动驾驶数据采集系统
  • 原始流媒体
  • 医学影像学
  • 摄影测量
  • 摄影与数字电影
  • 原始图像数据管理

在某些情况下,对捕获的RAW图像实施无损编码是一个可行的选择。 然而,这些算法的压缩比(CR)典型地大约为2,其不是特别高。 尽管如此,这是一个数学上的无损算法,这意味着每个图像将被恢复完全一样,它是在采集后(压缩前)。 可以采用以下图像压缩无损算法:无损JPEG(1-16位),JPEG-LS(1-16位),JPEG2000(最多16位),JPEG XS(最多16位),JPEG XL(最多16位)等。 在某些情况下,无损压缩的应用是强制性的,特别是在科学研究的范围内。

还有一些选项可以使用无损视频编解码器。 与静态图像压缩的结果相比,视频编解码器通常提供更高的压缩比。 无损H.265编码算法可用于彩色视频流,但仅适用于8/10位彩色(NV12,YUV)输出,不适用于RAW。 无损AV1编解码器也是如此,它可以编码高达10位YUV(4:2:0, 4:2:2, 4:4:4), 但不是生的。 这些方法不适用于最常见的用例,即来自拜耳或单色图像传感器的raw图像压缩,每像素位数为12或更高,最高可达16位。 但是,在某些情况下,视频编解码器可能是此类任务的合适解决方案。 对数曲线能够将输入数据转换为8/10位数据范围。 随后,我们可以通过H.265算法应用有损编码。

虽然将有损编码应用于原始图像确实是合乎逻辑的,以实现显着优越的CR,但必须控制图像质量的下降,这是这种算法有效性的先决条件。 原始编码帧中的微小失真有可能导致显着的伪像。 但是,这些伪像只有在从RAW转换为RGB后才会变得明显。 这种方法有可能实现超过两倍的CR,因此需要确定一个同时考虑图像质量和压缩比要求的优化解决方案。

RawZipper的原始编码算法

  • 数学无损RAW图像压缩
  • 几乎无损RAW图像压缩
  • 视觉无损RAW图像压缩
  • 具有增强压缩比的有损编码
  • 原始视频编码

原始压缩的好处

  • 这些技术的利用已被证明可以大大节省存储空间和带宽。 原始数据编码已被证明可以减少传输的存储空间和带宽需求。
  • 在数据压缩领域,原始数据的保存至关重要。 视觉无损压缩是一种允许随后处理数据(例如,原始到RGB转换)而不损害原始传感器数据的完整性的方法。
  • 性能增强:在实时应用的背景下,可以规避原始到RGB转换的完整ISP的实现。 这种方法需要通过集成原始数据的预处理和编码来简化ISP管道。
  • 与RGB相比,处理原始数据时,必须处理的数据量减少了三倍。
  • 所考虑的解决方案的特点是易于使用,这一特点可归因于它能够独立于来自图像传感器的任何初步校准信息而发挥作用。
  • 离线后处理过程中图像质量的增强:实时算法的利用通常会导致图像质量受到限制。 因此,有可能在后处理过程中利用更复杂的离线处理来提高图像质量。
  • 灵活性的概念适用于RAW图像和视频。

RawZipper的主要特点

  • 处理具有任意宽度和高度的原始拜耳或单色图像/视频
  • 数据输入:来自HDD/RAID/SSD或CPU/GPU内存的原始bayer或单色帧
  • 数据输出:硬盘/RAID/SSD或CPU/GPU内存的最终压缩数据
  • 输入/输出位深度:8/10/12/14/16位
  • 算法:有损和无损压缩和解压缩
  • 压缩比从5:1到10:1,最高可达20:1
  • 可选的速率控制选项来约束图像压缩比
  • 针对包括Jetson在内的最新NVIDIA Gpu进行了优化
  • 兼容64位Windows-10/11,Linux Ubuntu,L4T

我们可以将RawZipper集成到您的成像系统中,以便在GPU上完全执行整个工作。 请查看我们的GPU图像&功放;视频处理SDK评估我们可以在GPU上做什么.

图像质量和CR注意事项

在源自Sony、Gpixel、On-Semi和CMOSIS制造的常规12位图像传感器的原始bayer帧的背景下,对于无损算法典型地达到CR~2的压缩比。 同样的问题来自索尼,佳能,尼康等相机的14位raw数据。 这是因为有用的数据还包括噪声,这在需要无损数据压缩的科学应用中可能很重要。 与有损编解码器相比,无损编码表现出较低的性能。

有损编码的应用通常会导致损失和增强性能之间的权衡,其有效性取决于图像的内容,使用的参数和使用的硬件。 必须了解控制损失水平的机制,以确保为特定任务保存高质量图像。 在大多数情况下,能够以5-10倍的压缩比(CR)对原始帧进行编码,由此对于50-55分贝(dB)或更好的12位bayer图像实现峰值信噪比(PSNR)。 经过处理、编码、解码和恢复后,对原始拜耳图像和同一图像计算PSNR。

人们承认,PSNR指标的效用有限。 为此,执行视觉图像质量评估以确定用于给定项目的最合适的默认处理参数。 进行了视觉比较,而不是在原始图像之间,而是在经过相同参数处理的RGB图像之间。 例如,当以500%缩放级别查看时,查看源和处理后的图像之间不应存在可察觉的差异。

对于需要最大图像质量的应用,可以采用4-5的CR范围,从而实现超过60dB的RAW图像的PSNR水平。

许多情况下,表现出显着较弱的图像质量要求和对增强CR的明显需求。 为此类应用实现高达20的CR是一个可行的目标。

必须承认,具有有损编码的原始拜耳编解码器不仅仅是传统意义上的编解码器。 该解决方案的特点是其复杂和广泛的功能,远远超出了数据压缩和解压缩。 所提出的方法在保留原始数据和执行额外的图像处理以提高对比度噪声比和最小化图像失真之间取得了平衡。 传统观点认为,先进技术的实施显着提高了原始拜耳图像的质量,与传统的JPEGJPEG2000编解码器。 一旦一个给定的项目的要求被彻底理解,软件可以定制,以优化结果为特定的应用。

RAW编解码器的图像质量控制

RawZipper编解码器可以在无损和有损模式下工作。 当我们在有损模式下工作时,最终会出现一些图像失真。 重要的是要测量损失的水平,并评估他们的视觉和数字。 我们必须同时检查信号和噪声,以确保我们能够高精度地再现原始图像。 在同一时间恢复信号和噪声是当务之急. 所以,我们想出了这些测试和数字:

  • 原始直方图
  • PSNR
  • 所选平坦区域的标准偏差
  • SNR(信噪比,单位为dB)

为了进行评估,我们从DALSA/FLIR相机(20MPix,4512x4512,12位,RGGB)拍摄了带有ColorChecker的raw帧。 我们应用了cr=5.4的有损原始拜耳编码,得到了PSNR=53.2dB。 标准偏差(σ)平均变化小于2%,SNR变化小于0.15db。 我们已经对每个色块进行了测量。

用于原始解码、处理和可视化的GPU管道

  • RAW图像解压缩和恢复
  • 使用拜耳模式构建原始未压缩RAW图像
  • 原始图像线性化
  • 白平衡
  • 演示,演示
  • 去噪
  • 色彩校正
  • LUT (1D, 3D)
  • 裁剪/旋转/调整大小/锐化
  • 局部对比
  • OpenGL输出
  • 可选输出MJPEG压缩为AVI或图像编码为JPEG

上述管道在计算上要求很高,并且为任务实现高性能是具有挑战性的。 为了方便可视化过程,必须达到至少每秒60帧(fps)的帧速率。 对于大多数分辨率,可以使用NVIDIA GPU实时实现此目标。 我们利用我们的GPU图像处理SDK用于上述管道,它可以在GeForce RTX4090上处理高达2-3GPix/s的数据速率。 这样的解决方案适用于所有NVIDIA Gpu:移动,笔记本电脑,台式机,服务器。

有关主题的有用连结

联络表格

此表格收集您的姓名和电子邮件. 你可在此查阅我们如何保护及管理你的个人资料的私隐政策.