常见的图像格式有RAW、RGB、YUV这三大类
1. RAW
raw图像指的是sensor输出的原始数据,常见的有8位、10位、12位之分,分别表示一个像素点所占的字节数为8bit、10bit、12bit。
raw数据常见的有四种Bayer模式:GRBG、RGGB、BGGR(下图)、GBRG。
数码相机中用raw数据较多,不同厂商导出的raw数据又有不同的格式,如.CR2(Canon)、.NEF(Nikon)、.ARW(Sony)。而普通安防相机,很少有支持直接导出RAW格式的,一般都需要配合ISP厂商的工具才能够实现RAW数据导出。
2. RGB
RGB格式:即每一个像素由三原色R红色、G绿色、B蓝色组成。通过三种颜色的混合,基本就能够混合出人类视力所能感受到的所有颜色。
常见的RGB颜色格式:
- RGB888:RGB888是一种标准的RGB格式,其中每个像素用24位(3字节)来表示。这种格式支持16,777,216种不同的颜色。
- RGB565:每个像素仅用16位(2字节)表示。它使用5位来表示红色通道、6位来表示绿色通道和5位来表示蓝色通道。虽然它不支持与RGB888相同数量的颜色,但仍然提供了65536种不同的颜色。
- sRGB:sRGB(标准红绿蓝)是一种标准化的RGB颜色空间,广泛用于计算机显示器、数字相机和互联网图像。sRGB使用与RGB888相同的颜色深度,但具有特定的颜色范围和伽马校正,以确保在不同设备上显示一致的颜色。
JPEG(JPG)和PNG 都可以存储 RGB 格式的图像,但它们在图像编码和压缩方面有所不同。JPEG 图像通常是基于 RGB 颜色模型的,其中每个像素由红色(R)、绿色(G)、蓝色(B)三个通道的颜色信息组成。JPEG 使用有损压缩方法,通过减少图像中的冗余信息来压缩文件大小。PNG 图像也可以包含 RGB 通道,但 PNG 是一种无损图像格式,不会丢失图像质量。
3. YUV
YUV 是一种用于表示图像的颜色编码方式,与常见的 RGB(红绿蓝)颜色编码方式不同。YUV 编码将图像的颜色信息和亮度信息分开存储,通常用于视频压缩和传输中,以减小数据量并提高压缩效率。
- Y(亮度):Y 通道表示图像的亮度信息。它代表了像素的明亮度或灰度级别,因此可以看作是黑白图像的亮度分量。Y 通道的值通常范围在 0 到 255 之间,其中 0 表示黑色,255 表示白色。Y 通道的高质量表示对于人眼的图像感知至关重要。
- U(色度-蓝色差异):U 通道表示图像中的蓝色和亮度之间的差异。它衡量了像素的颜色偏差,具体来说,它测量了像素的蓝色与亮度之间的偏差。U 通道的值通常在 -128 到 127 之间。
- V(色度-红色差异):V 通道表示图像中的红色和亮度之间的差异。它类似于 U 通道,但测量了像素的红色与亮度之间的偏差。V 通道的值也通常在 -128 到 127 之间。
YUV 编码的主要优点在于它分离了亮度和颜色信息,这使得在图像或视频压缩中可以更有效地处理和压缩亮度和色度信息。这种分离还可以用于调整图像的亮度和对比度,以及处理彩色信息,而不会影响亮度信息。在广播、视频流和数字视频领域,YUV 编码常常被用来降低数据传输和存储的需求,同时保持较高的图像质量。
常见的YUV格式:
- YUV444:这是一种无损 YUV 格式,每个像素都有独立的 Y、U 和 V 通道,没有子采样。这意味着每个像素都包含完整的亮度和色度信息,不会损失颜色细节。通常用于无损图像和视频存储。
- YUV422:这种格式每两个像素共享一个 U 和 V 通道,但每个像素都有独立的 Y 通道。这减小了色度分辨率,但仍然保持了较高的颜色质量。常见于一些视频压缩格式和广播。
- YUV420:在这种格式中,每四个像素共享一个 U 和 V 通道,并且每个像素都有独立的 Y 通道。这是一种更强烈的色度子采样,通常用于视频压缩,如 MPEG 和 H.264。YUV420格式又根据不同的存储排列方式分为YUV420P_YU12、YUV420P_YV12、YUV420SP_NV21(海思ISP常用、安卓手机常用)、YUV420SP_NV12
YUV的格式解析软件有开源的YUView,解析RAW格式的有LibRaw等