UIImage 到 YUV 422 色彩空间

发布于 2024-10-11 01:48:55 字数 208 浏览 2 评论 0原文

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

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

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

任何帮助将不胜感激。

提前致谢。

I have been trying to figure this out for a while to no avail, I was wondering if someone could help or point me in he right direction.

I have a need to convert an UIImage or a stored JPG to get its YUV422 data so I can then apply some image enhancements, and with the result convert it back to either a JPG or UIImage.

I'm a bit stuck at the moment, I this point I am just trying to get it to YUV422.

Any help would be greatly appreciated.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回心转意 2024-10-18 01:48:55

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

然后,您必须对熵编码数据段进行去霍夫曼编码。这将为您提供 DC 系数,后跟锯齿形形式的每个通道的颜色通道的任何 AC 系数。然后,您必须对条目进行锯齿形调整,并将其乘以相应的量化表。最后,您必须对解码的宏块执行逆离散余弦变换。

然后,这将为您提供 3 个 YCrCb 通道(YUV 表示模拟),其采样率为 JPEG 编码的采样率。如果您需要它为 4:2:2,则必须重新采样。

希望您有一个库来执行实际的 JPEG 解码,因为编写兼容的库是一项艰巨的任务。

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

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

You must first read the JPEG markers to determine the meta data. The meta data such as the size, the sample rate (usually 4:2:2 but not always ), the quantization tables, and the huffman tables.

You must then de-huffman-code the entropy encoded data segment. This will give you DC coefficient followed by any AC coefficients for the color channel for each channel in zig zag form. you must then de zigzag the entries and multiply it by the corresponding quantization table. Finally you must preform the Inverse Discrete Cosine Transformation on the decoded macroblock.

This will then give you 3 channels in YCrCb (YUV is for analog) at the sample rate the JPEG was encoded at. If you need it to be 4:2:2 you will have to resample.

Hopefully you have a library to do the actual JPEG decoding since writing one that is compliant is a non trivial task.

Here is a very basic and flawed JPEG decoder I started writing to give you more technical details. Ruby JPEG decoder It does not successfully implement the IDCT

For a correct implementation in C I suggest IJG

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文