【问题标题】:YUV 422 , YUV 420 ,YUV 444YUV 422、YUV 420、YUV 444
【发布时间】: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


    【解决方案1】:

    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 确实允许对此类内容进行编码。

    【讨论】:

    • 所以你使用 2 字节的 Y 和 1 的 U 和 V 的像素,或者你使用每个像素 1 字节的 Y 并在 2 字节之间水平共享 U 和 V?我还不清楚。
    • 4:4:4 对应于 Y、U 和 V 各 2 个字节。4:2:2 对应于 Y、1 个字节对应于 U 和 1 个字节对应于 V。
    【解决方案2】:

    这是一个很老的问题,但是我刚刚完成了一些关于解码 YUV 的工作,我想分享一些信息。 YUV 模式有 3 个主要方面:

    1. 如果源 YUV 缓冲区是压缩缓冲区或平面缓冲区。打包手段 YUV 位被组合在一起,平面表示 Y、U 和 V 缓冲区被分隔在 3 个不同的内存区域中。

    2. YUV 通道大小;单个 Y、U、V 通道可以是 8 位、10 位、12 位等

    3. 采样率; A:B:C。 4:2:2 表示每个像素水平有 1 个 Y 值,两个棋盘像素之间只有一个 U 和 V 值共享。

    我刚刚进行了 YUV 4:2:2 v210 解码,在此 link 之后,有要解码的 GLSL 源代码和我提到的资源。欢迎任何建议,这是我的第一个解码器。

    【讨论】:

      猜你喜欢
      • 2016-07-13
      • 2021-06-29
      • 2018-05-24
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      相关资源
      最近更新 更多