【发布时间】:2012-01-23 13:47:31
【问题描述】:
例如,我有 4*4 图像。我想分别提取 Y、U 和 V 分量。 如果图像是 YUV 422、YUV 420 和 YUV444,该怎么做。 我有兴趣了解数组的结构 Y、U 和 V 如何存储在 422,420 和 444 中, 以便访问。
【问题讨论】:
标签: c image-processing opencv yuv
例如,我有 4*4 图像。我想分别提取 Y、U 和 V 分量。 如果图像是 YUV 422、YUV 420 和 YUV444,该怎么做。 我有兴趣了解数组的结构 Y、U 和 V 如何存储在 422,420 和 444 中, 以便访问。
【问题讨论】:
标签: c image-processing opencv yuv
This 站点为您提供了对不同 YUV 格式的很好的概述。还有一个像素结构。
澄清:这些数字用于确定color component subsampling。例如 YUV 444 = 4:4:4 子采样,这意味着三个分量(Y、U 和 V)中的每一个都具有相同的采样率。而 4:2:2 规定 U 和 V 仅以 Y 的一半速率进行采样。或者换句话说,如果深度为 1 字节,则 Y 为 2 字节,U 和 V 为 1 字节。这意味着 Y 可以具有更高的动态范围。
值得注意的是,JPEG 标准为每个颜色分量定义了水平和垂直采样因子。人类视觉系统有一个20:1 ratio of the luma sensors (rods) to chroma sensors (cones)。出于这个原因,通常不对亮度分量进行二次采样,但JPEG standard 确实允许对此类内容进行编码。
【讨论】:
这是一个很老的问题,但是我刚刚完成了一些关于解码 YUV 的工作,我想分享一些信息。 YUV 模式有 3 个主要方面:
如果源 YUV 缓冲区是压缩缓冲区或平面缓冲区。打包手段 YUV 位被组合在一起,平面表示 Y、U 和 V 缓冲区被分隔在 3 个不同的内存区域中。
YUV 通道大小;单个 Y、U、V 通道可以是 8 位、10 位、12 位等
采样率; A:B:C。 4:2:2 表示每个像素水平有 1 个 Y 值,两个棋盘像素之间只有一个 U 和 V 值共享。
我刚刚进行了 YUV 4:2:2 v210 解码,在此 link 之后,有要解码的 GLSL 源代码和我提到的资源。欢迎任何建议,这是我的第一个解码器。
【讨论】: