0

我一直试图弄清楚这一点无济于事,我想知道是否有人可以帮助或指出我正确的方向。

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

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

任何帮助将不胜感激。

提前致谢。

4

1 回答 1

0

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

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

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

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

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

对于 C 中的正确实现,我建议 IJG

于 2011-01-09T00:25:01.870 回答