对YUV420内容的一些理解

最近在做一个视频播放器,里面涉及到转码成YUV的内容,对这个YUV里面的内容非常不理解,百度又找不到自己需要的,所以特地做了下了解。


YUV是一种颜色编码方法,其中"Y"代表明亮度,,"U"和"V"代表其色度,最大的优点是只需要极少的频宽来进行视频信号传输。(摘自百度百科)


YUV420是YUV里的一种,其格式的Y:U:V的比例为4:2:0,即每4个Y用一组UV(这个还不是很理解)。


YUV420一帧的Y,U,V的容量占用为:

假设一帧的长 = width,宽 = height

Y:文件开头 -> width * height

U:width * height -> width * height + width /2 * height /2

V:width * height + width * height + width /2 * height /2 -> 文件末尾


为何容量会这么占用呢:

1.首先Y应该很容易理解,从开头到一帧的结尾(即width * height);

2.U这个,从Y的结束点开始(即width * height),到结束点这里可能有点不理解,为何不是一帧的大小呢(即width * height),而是width /2 * height /2?,先看下YUV420的大概结构(自己想的):


对YUV420内容的一些理解_第1张图片


嗯,大概就这样,即”每4个Y用一组UV“(但是文件内YUV420的占用的排列方式却是按123这种顺序排列,很郁闷),这个图就可以看出,竖着的时候,每有两个Y就有一个UV,横着的时候,也是每有两个Y就有一个UV,也就是说UV是Y的一半,所以UV的一帧也要/2,所以需要width / 2 * height / 2;(嗯?好像有点新发现,即4个Y + 1个UV组成一个像素点?)

3.V和U一样,不在重复了。


你可能感兴趣的:(对YUV420内容的一些理解)