RAW,BMP,PNG,JPG
常见图片格式基本知识及转换、显示工具:https://blog.csdn.net/sjnjab/article/details/134507551
矢量图、位图、RGB、YUV、JPEG、PNG的理解:https://blog.csdn.net/kcstrong/article/details/81705693
【FPGA图像处理实战】- YUV444与YUV422互转:https://fpga.eetrend.com/blog/2024/100579119.html
BMP,PNG,JPG
JPG:使用一种失真的压缩标准算法,可以选择压缩率,默认的压缩率在70%左右。一张图片在多次压缩解压后,会肉眼可见地失真。
PNG:无损数据压缩格式,包含8位、24位、32位三种格式,32位支持透明形式(多了8bits透明度alpha)。
BMP:原始图像数据,一般有header标识数据的存储结构。
同一张图片三种格式的占用空间:BMP>PNG>JPG
raw原始数据文件
raw原始pixel数据文件主要包含RGB和YUV两种数据格式,这两种数据格式的相关介绍很多,这里不再赘述。RGB包含RGB565,RGB888,ARGB8888,ABGR8888等,YUV包含YUV444,YUV422,YUV420等。
YUV的存储方式包含packed和planner两种方式。
packed:连续存储Y分量,然后依次交叉存储UV分量,常见的有NV12,NV21等;
planner:连续存储Y分量,然后再连续存储U分量(或V分量),最后存储V分量(或U分量),常见的有I420,YV12等。
RGB,YUV
YUV的优势
便于压缩编码。RGB表示的每种颜色都是由红光、绿光、蓝光组合而成的,我们分别使用R、G、B三个分量来表示红光、绿光、蓝光,每个像素的三个分量之间存在着相关性。所以通常会把RGB转换成YUV进行压缩。
数据量相对RGB来说更小。前面我们有分析过,同样分辨率的图像,YUV444存储的数据量与RGB相同,但YUV422和YUV420却只需要存储RGB的数据量的 2/3 和 1/2 。
能够兼容老式黑白电视。Y分量单独显示是其实就是黑白图像,因此YUV由彩色转黑白只需要去除UV相关的数据就可以了。
YUV与RGB之间的转换
YUV与RGB之间的转换是存在标准的,常见的标准有:
1 | ITU-R BT.601(标清) |
不同的标准有不同的准换公式,同时还要区分不同的Color Range。
Color Range用于指定RGB分量的取值范围,可分为Full Range(取值范围为0255)和Limited Range(取值范围为16235)。
yuv444,422,420
以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量,如下图所示。
4:4:4 表示不降低色度(UV)通道的采样率。每个 Y 分量对应一组 UV 分量。
4:2:2 表示 2:1 水平下采样,没有垂直下采样。每两个 Y 分量共享一组 UV 分量。
4:2:0 表示 2:1 水平下采样,同时 2:1 垂直下采样。每四个 Y 分量共享一组 UV 分量。
YUV420,YUV420P,YUV420SP(,NV12,NV21)
常见的基于 YUV 4:2:0 采样的格式如下表:
基于 YUV 4:2:0 采样的格式主要有 YUV 420P 和 YUV 420SP 两种类型,每个类型又对应其他具体格式。
1 | YUV 420P 类型 |
YUV 420P 和 YUV 420SP 都是基于 Planar 平面格式 进行存储的,先存储所有的 Y 分量后, YUV420P 类型就会先存储所有的 U 分量或者 V 分量,而 YUV420SP 则是按照 UV 或者 VU 的交替顺序进行存储了,具体查看看下图
YUV420P 和YUV420SP
YUV420P 的格式:
其在码流中的表现形式为:
YUV420SP的格式:
其在码流中的表现形式为:
YU12和YV12格式
YU12 和 YV12 格式都属于 YUV 420P 类型,即先存储 Y 分量,再存储 U、V 分量,区别在于:YU12 是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U 。YV 12 的存储格式如下图所示:
YU 12 又称作 I420 格式,它的存储格式就是把 V 和 U 反过来了。
NV12和NV21格式
NV12 和 NV21 格式都属于 YUV420SP 类型。它也是先存储了 Y 分量,但接下来并不是再存储所有的 U 或者 V 分量,而是把 UV 分量交替连续存储。
需要注意的是,
NV12是iOS中有的模式,它的存储顺序是先存Y分量,再YV进行交替存储。
NV21是Android中有的模式,它的存储顺序是先存Y分量,再VU交替存储。
参考
视频图像格式 NV21-NV12-YUV420P 的区别:https://blog.csdn.net/linda012518/article/details/106636942
音视频编解码: YUV存储格式中的YUV420P,YUV420SP,NV12, NV21理解(转):https://www.cnblogs.com/yongdaimi/p/10696214.html