YUV色差

时间:2013-07-03 07:47:35

标签: c# yuv color-space

我想了解一些有关YV12图像格式的信息。

第一个问题是YV12图像格式等于YUV420p格式或YVU420p或YUV420Sp或YVU420Sp。我知道U和V在格式上具有相同的内存量,因此在平面图像格式的情况下交换U和V会产生一些重大差异。如果确实可以,某些机构可以解释我是什么。

我也听说过YV12和NV12都是12位格式。然后有人可以告诉我4:2:0是什么?如果有人可以用简单的话语解释我,那将会很棒。

2 个答案:

答案 0 :(得分:0)

根据this site,YV12看起来与NV12相同,只是NV12是交错的而YV12不是。我认为YV12对应YVU420p而NV12是YVU420sp,但我不是100%肯定。

然而,这意味着,不是让你的缓冲区重复三元组​​[yuv] [yuv] [yuv] [...]来绘制图像,每个像素一个三元组,你有一个大的缓冲区[ y],然后是包含所有[u]的[y]大小的1/4缓冲区,然后是包含[v]的另一个1/4 [y]。对于320x240(76800像素)的图像,缓冲区开始时将有76800 Ys,然后是19200 Us,然后是19200 Vs.

在NV12情况下,你有一个大的[y]缓冲区,然后是[y]大小的缓冲区1/2,包含[uv]对。在绘制图像或转换为其他格式(如RGB)时,您需要至少2个指针,一个将读取Y,另一个将读取Us和V

当读取压缩格式时,诀窍在于每个像素有一个Y,但UV组件仅在奇数行和奇数列上发生变化,您的眼睛将看不到差异。在为每个像素更改Y时,可以一次重复使用4个像素的相同UV值。

答案 1 :(得分:0)

YUV广泛用于视频处理,你所说的是色度子采样。这背后的想法是,人眼对颜色变化的敏感度要低于亮度的变化。

您可以在wiki上找到关于该过程的非常详尽的解释:https://en.wikipedia.org/wiki/Chroma_subsampling

以下是使用的各种色度子采样方案的图像: http://commons.wikimedia.org/wiki/File:Common_chroma_subsampling_ratios.svg