2

I want to know some information about YV12 image format.

1st question is YV12 Image format is equal to YUV420p format or YVU420p or YUV420Sp or YVU420Sp. I know that U and V have the same amount of memory in the format so in the case of planer image formats does swapping U and V makes some major difference. and if it does can some body explain me what is that.

Also i have heard that YV12 and NV12 are both 12 bits formats. Then can some body tell me that what is 4:2:0? it will be great if some can explain me in simple words thanks

4

2 回答 2

0

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

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

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

于 2013-07-03T11:29:41.010 回答
0

根据这个网站,YV12 看起来与 NV12 相同,只是 NV12 是交错的,而 YV12 不是。我认为 YV12 对应于 YVU420p 而 NV12 是 YVU420sp,但我对此不是 100% 确定的。

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

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

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

于 2013-07-03T08:13:07.123 回答