【问题标题】:UIImage to YUV 422 ColorspaceUIImage 到 YUV 422 颜色空间
【发布时间】:2011-01-09 00:01:33
【问题描述】:

我一直在尝试解决这个问题,但无济于事,我想知道是否有人可以帮助或指出我正确的方向。

我需要转换 UIImage 或存储的 JPG 以获取其 YUV422 数据,然后我可以应用一些图像增强功能,并将结果转换回 JPG 或 UIImage。

我现在有点卡住了,我现在只是想把它带到 YUV422。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: objective-c image-processing ios4 uiimage yuv


    【解决方案1】:

    您必须首先阅读 JPEG 标记以确定元数据。元数据,例如大小、采样率(通常为 4:2:2,但并非总是如此)、量化表和霍夫曼表。

    然后您必须对熵编码的数据段进行去哈夫曼编码。这将为您提供 DC 系数,后跟任何 AC 系数,用于以之字形形式的每个通道的颜色通道。然后,您必须对条目进行曲折并乘以相应的量化表。最后你必须对解码后的宏块进行反离散余弦变换。

    这将在 YCrCb(YUV 用于模拟)中以 JPEG 编码的采样率为您提供 3 个通道。如果你需要它是 4:2:2,你将不得不重新采样。

    希望您有一个库来进行实际的 JPEG 解码,因为编写一个符合标准的库是一项不平凡的任务。

    这是一个非常基本且有缺陷的 JPEG 解码器,我开始编写它是为了向您提供更多技术细节。 Ruby JPEG decoder没有成功实现IDCT

    为了在 C 中正确实现 I suggest IJG

    【讨论】:

    • JPEG 图像几乎总是 4:2:0,这意味着水平和垂直色度分辨率都减半。 4:2:2 表示只有水平分辨率减半。