自定义原始压缩

信息处理 小波 图像压缩 视频压缩 稀疏模型
2022-02-09 17:56:57

我计划使用 50MPixels(或 68MPixels 或 130MPixels)传感器每天获取 50k 到 200k 图像;我将通过 SLVS-EC 从传感器获取原始数据(10 位或 12 位或 14 位)并创建我自己设计的原始文件。传感器的原始比特率可能高达 75.2 Gbps。

我可能每天必须存储 50k-250k 图像(例如,如果 250k 图像是 70MB-50MPixels,则为 17.5TB)。我需要保持高质量的图像(特别是,颜色必须保持准确,纹理完全详细,因此无损或只有光损失,每个通道不低于 10 位),以及编辑的灵活性(因此是原始的)。

图像也会分享很多,因为我在捕捉时可能有 2-24Hz 的帧率;第一次处理也会丢弃(删除)10% 到 50% 的图像,因此基于关键帧的压缩可能不适合。

因为我需要在不进行太硬压缩的情况下尽可能降低存储成本(每个原始图像可能低于 30-50MB)。我打算允许在这个原始文件中进行压缩,这种压缩可以是无损或轻微有损的。我正在考虑用于压缩的小波和自动学习字典(补丁和稀疏编码),但这不是必需的。

我不会发布任何 sdk 或 raw 映像,因此在标准和采用方面没有必要或要求。我很可能会使用 FPGA 进行信号处理(传感器高达 75.2Gbps),因为我需要非常高的 IO 和快速的信号处理,并且整个封装将被嵌入,并且尽可能紧凑且轻巧(比如小于 1-2 公斤)。

关于图像,它将是自然日光的自然环境;它可能包括阴影和带有太阳的天空,因此具有高动态,但也包括必须保留的丰富(高频)纹理。很可能我不会进一步去噪,但我想保持色彩处理的灵活性:特别是改变信号放大和白/黑平衡的能力。

您对这种原始格式的压缩策略有什么想法和建议吗?特别是您认为视频压缩算法(例如,HEVC)可以适应原始拜耳数据吗?

1个回答

原始文件(理想情况下)是传感器的原始读数。适用于研究,或者如果您想使用精美的离线处理从传感器中获取所有可能的信息。现在或10年后。在某些情况下,您可能不需要完整原始图像中包含的所有信息,但对具有最大曝光自由度感到满意 - 即避免将色调映射/色调曲线烘焙到类似于 jpeg 预处理的东西中。

您是否特别需要以 Bayer 格式存储它,或者您可以做 debayer 并使用一些现成的 YCbCr 4:2:0 压缩?您在传感器和存储(PC?)之间有什么样的计算平台?

如果文件大小是一个主要问题,除非您有非常具体的要求或很多技巧和时间。

编辑:回应下面的一些评论。我会借一个漂亮的相机,拍摄两个相关场景的快照,使用 dcraw 或一些类似工具读取原始文件并导入 matlab/python。

然后您可以使用 debayer、固定白平衡 (?)、白点和黑点以及 gamma(我认为 h26x 往往被限制为 10 位,但请注意,这通常是非线性量化 - 更重要的黑人分辨率更高) . 最后,将 3x3 矩阵转换为伪 YCbCr 格式,保存并将其传递给有损编码器。观察第一帧(帧内)和第二帧(帧间)的文件大小。这告诉你很多关于流的可压缩性。

然后检查输出文件,仔细反转上述步骤。检查质量是否足以满足您的需求。准备做一些摆弄,直到星星对齐。