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的原始编码算法
原始压缩的好处
RawZipper的主要特点
我们可以将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是一个可行的目标。 必须承认,具有有损编码的原始拜耳编解码器不仅仅是传统意义上的编解码器。 该解决方案的特点是其复杂和广泛的功能,远远超出了数据压缩和解压缩。 所提出的方法在保留原始数据和执行额外的图像处理以提高对比度噪声比和最小化图像失真之间取得了平衡。 传统观点认为,先进技术的实施显着提高了原始拜耳图像的质量,与传统的JPEG和JPEG2000编解码器。 一旦一个给定的项目的要求被彻底理解,软件可以定制,以优化结果为特定的应用。 RAW编解码器的图像质量控制RawZipper编解码器可以在无损和有损模式下工作。 当我们在有损模式下工作时,最终会出现一些图像失真。 重要的是要测量损失的水平,并评估他们的视觉和数字。 我们必须同时检查信号和噪声,以确保我们能够高精度地再现原始图像。 在同一时间恢复信号和噪声是当务之急. 所以,我们想出了这些测试和数字:
为了进行评估,我们从DALSA/FLIR相机(20MPix,4512x4512,12位,RGGB)拍摄了带有ColorChecker的raw帧。 我们应用了cr=5.4的有损原始拜耳编码,得到了PSNR=53.2dB。 标准偏差(σ)平均变化小于2%,SNR变化小于0.15db。 我们已经对每个色块进行了测量。 用于原始解码、处理和可视化的GPU管道
上述管道在计算上要求很高,并且为任务实现高性能是具有挑战性的。 为了方便可视化过程,必须达到至少每秒60帧(fps)的帧速率。 对于大多数分辨率,可以使用NVIDIA GPU实时实现此目标。 我们利用我们的GPU图像处理SDK用于上述管道,它可以在GeForce RTX4090上处理高达2-3GPix/s的数据速率。 这样的解决方案适用于所有NVIDIA Gpu:移动,笔记本电脑,台式机,服务器。 有关主题的有用连结 |