最近在学习雷神的《视音频数据处理入门》, 虽然已经知道420P的YUV图片(planar格式)的存储方式为:
在像素的采样位数为8bit的情况下且宽w高h
(1).图片总字节数为w*h*3/2 Byte == w*h(Y) + w*h/4(U) + w*h/4(V)
(2).planar格式下的存储方式是YYYYYYYYYYYYYYYYUUUUVVVV
且每一个YUV分量占一个Byte, 类型为unsigned char型, 所以在内存中存储相当于一个unsigned char数组
(3).每一个Y分量的值可能不同, 因为在亮度减半的实验中要将每一个Y分量的值减半而不是统一设置为某一个值, 那么这些Y分量怎么存储的呢?
假设宽w == 4, 高h == 4, 那么有4*4 == 16个像素, 按照像素如下存储:(只谈Y分量)
start+00: Y00 Y01 Y02 Y03
start+04: Y10 Y11 Y12 Y13
start+08: Y20 Y21 Y22 Y23
start+12: Y30 Y31 Y32 Y33
那么实际内存中就是:
Y00 Y01 Y02 Y03 Y10 Y11 Y12 Y13 Y20 Y21 Y22 Y23 Y30 Y31 Y32 Y33 U U U U V V V V
更详细请见博客:
https://www.cnblogs.com/azraelly/archive/2013/01/01/2841269.html
最后自己写了一个小循环, 能够给256*256的YUV图片加小边框, 在/lianxi/lianxi_ffmpeg/chp1_RGB_YUV下的
simplest_