之前看了好多资料,国内的国外的。对于色度抽样4:2:0介绍的都差不多,老感觉还有哪些细节问题没有介绍清楚,通过不断的摸索翻阅资料算是彻底弄清楚了,相信我能以很简短的方式告诉同样被该问题困惑的你。
如:我们打算采取如图1所示的16个像素点信息(每个数字代表一个像素点)。
如果以RGB24方式存储,我们知道每个像素点需要用3个字节来存储,如图3所示:
图3展示了我们在内存中对图1所示的像素点信息的存储方式,需要16x3=48字节来存储,如果以yuv420方式才存储,我们看一下,到底是怎么存?按照4:2:0的抽样比例,对于1,2,9,10四个像素点,我们取其全部Y信息,然后只取1,2像素点的U信息,不取V信息,(即4:2:0)。对于紧接着的3,4,11,12四个像素点,我们取其全部Y信息,然后只取11,12像素点的V信息,不取U信息,依次类推。最终我们得到的结果如图2所示(yuv420p中先存Y再存U最后存V,各类型的数据是连续存放的):