转自 http://tswtq.wordpress.com/2006/03/24/i420/
最近在看一些Video的东西,tool基本上已经有了一个雏形,不过突然间发现自己有点糊涂了,弄不清I420是怎么一回事了。于是我就在wiki上找了些资料,终于有了些眉目。大致整理如下:
I420是YUV格式的一种,而YUV有packed format和planar format两种,而I420属于planar format的一种。
同时I420表示了YUV的采样比例4:2:0。4:2:0的YUV并不是说没有V分量,而是指对于每一个行,只有一个U或者V分量。比如第一行里,是YUYYUY,到了第二行是YVYYVY,那么对于每一行来说就是4:2:0或者4:0:2。需要说明的是,这里的排列方式是针对packed format而言的,因此并不适用于I420这样的planar format。Packed format和planner format的区别在于,packed format中的YUV是混合在一起的,因此就有了UYVY、YUYV等等,他们在码流中排列的方式有所不同。而对于planner format每一个Y分量,U分量和V分量都是以独立的平面组织的,也就是说所有的U分量都在Y分量之后出现,而V分量在所有的U分量之后。就像三个大色块一样。这样的组织方式除了I420以外还有YV12、IYUV等等。
值得注意一点的是,planner format没有像packed format那样的顺序性,那么是否意味着420和411就没有区别了呢,而且有些资料上也有写 IYUV is identical to I420。wiki上也对此有很明确的说明。表面上看IYUV和I420的data组织形式完全一样,都是4:1:1的YUV色平面组成,但是I420的UV分量是在2×2的像素点中采样得到的,而IYUV的UV分量是在1×4的行像素点中采样得到的,所以在表达的方式上还是有一定差异的。