1

我想使用 turbo jpeg 将 JPEG 图像转换为 Y'UV420p。我认为这使用了一些 2x2 块,其中 Y' 中的信息是 U 和 V 组件中的信息的两倍,但我无法找到这样做的示例。

如何从 tjDecompressToYUV2 中提取这些单独的组件以及为尺寸为 2 的倍数的图像分配的缓冲区格式是什么?

假设我有一个 1024 宽 x 512 像素高的图像。如何从以下代码中提取每个 Y' U 和 V 值:

constexpr auto height = 512u;
constexpr auto width = 1024u;  
unsigned char buffer[height * width * 3 / 2];
...
tjDecompressToYUV2(jpegDecompressor, jpegImage, jpegSize, buffer, width, 2, height, TJFLAG_FASTDCT);
...

IE。如何从缓冲区中提取组件?

4

1 回答 1

1

尝试使用 tjDecompressToYUV 函数,它为您提供 3 个不同输出缓冲区上的 3 个颜色空间。Y 缓冲区应包含 Y 分量的一个字节(八位值)。我从未使用过色度组件,所以我无法告诉您它们是如何存储的。

你想做什么,因为可能有另一种方法来解决这个问题?

于 2017-05-16T23:50:41.547 回答