【发布时间】:2015-05-04 23:27:58
【问题描述】:
我有一个 Jpeg RGB 单扫描剪辑(带有 Adobe App14 标记,并且 R、G、B 分量都在同一个扫描中交错)。我想知道是否有办法编辑 Jpeg 剪辑标头(或附加其他标头,如 EXIF),以便解码器可以将 R 通道解释为 B,反之亦然,而无需更改比特流的其余部分?
我曾尝试在扫描标题中交换“扫描组件选择器”的顺序,然后解码器(在本例中为 Windows 照片查看器)成功地将红色显示为蓝色,然后将蓝色显示为红色。但是,ITU-T.81 Jpeg规范明确规定“Csj:扫描组件选择器:每个Csj应匹配帧头中指定的Ci值之一,并且扫描头中的排序应遵循帧头中的排序。”所以我猜想改变 Scan 组件选择器的顺序不是一个有效的选项,除非有任何更新的规范说这不再是限制。
有没有人知道通过附加某种应用数据或修改 Jpeg 帧或扫描头而不接触扫描数据来交换 RGB 通道的其他方法?
感谢您的意见。
【问题讨论】:
-
你确定是RGB格式的吗?虽然这并非不可能,但我还没有听说过 RGB 格式的 ADOBE JPEG。我听说过 YCbCr 和 YCbCrK。
-
@user3344003 - 看起来不合逻辑(而且效率不高),但是是的,Adobe 产品使用 RGB 色彩空间编写 JPEG 压缩图像。
-
听起来你需要读取图像数据,交换MCU顺序并将其写回。这并不困难,也不会造成任何质量损失。如果您希望解码后的图像具有不同的颜色顺序,那么您需要修复解码器,而不是压缩图像。