在YUV 420 压缩模式中 kCVPixelBufferPixelFormatTypeKey的几个选项的详解
- 色彩格式 (YUV 4:2:0) 概述
YUV 4:2:0 是一种常见的视频压缩格式,用来有效减少带宽需求:
Y (Luma):亮度信息,包含图像的光亮度。
U (Cb) 和 V (Cr):色度信息,包含色彩差异。
在 YUV 4:2:0 中,亮度 (Y) 的分辨率是全分辨率,而色度 (CbCr) 的分辨率是水平和垂直方向的四分之一。
色彩范围有两种:
Full Range (0-255):完整的色彩范围,通常用于图片处理等场景。
Video Range (16-235):标准视频色彩范围,主要用于视频流。
- Pixel Format Type 的分类解释
Planar vs. Bi-Planar vs. Tri-Planar
Planar:Y、Cb、Cr 是分离的三个平面,分别存储亮度和色度数据。
Bi-Planar:Y (亮度) 是一个平面,CbCr (色度) 在第二个平面中交织在一起。减少了数据量,更加高效。
Tri-Planar:Y、Cb、Cr 存储在三个不同的平面上,与 Planar 类似,可能用于不同的格式优化。
Full Range vs. Video Range
Full Range:色彩值在 0-255 的范围内。
Video Range:色彩值范围为 16-235(通常是标准视频格式使用的色彩范围)。
8-bit vs. 10-bit
8-bit:每个像素的亮度和色度信息分别使用 8 位来存储,适用于标准的视频捕获需求。
10-bit:每个像素的亮度和色度信息分别使用 10 位来存储,这种格式可以提供更大的色彩深度和细节,适合高质量视频处理(如 HDR)。
有损/无损压缩 (Lossy vs. Lossless)
Lossy:使用有损压缩来减少存储数据量,图像质量会有所下降,适合不需要最高精度的场景。
Lossless:使用无损压缩,不会丢失任何图像数据,适合需要高保真图像质量的场景。
- 各个格式的解释
kCVPixelFormatType_420YpCbCr8Planar
4:2:0 YUV 格式,8 位深度,Planar 格式。
Y、Cb、Cr 数据分别存在三个不同的平面上,使用标准视频色彩范围(16-235)。
kCVPixelFormatType_420YpCbCr8PlanarFullRange
类似于上面的 Planar 格式,但使用 Full Range (0-255) 的色彩范围。
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
4:2:0 YUV 格式,8 位深度,Bi-Planar 格式。
第一个平面存储 Y 数据,第二个平面存储交织的 CbCr 数据,色彩范围是 Full Range (0-255)。
kCVPixelFormatType_420YpCbCr10BiPlanarFullRange
4:2:0 YUV 格式,10 位深度,Bi-Planar 格式,Full Range (0-255)。
Y 在第一个平面,CbCr 在第二个平面,支持更高的色彩精度。
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange
4:2:0 YUV 格式,8 位深度,Bi-Planar 格式,Video Range (16-235)。
标准视频捕捉中常用的色彩范围。
kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange
4:2:0 YUV 格式,10 位深度,Bi-Planar 格式,Video Range (16-235)。
更高的色彩深度,适合高质量视频捕捉。
kCVPixelFormatType_420YpCbCr8VideoRange_8A_TriPlanar
4:2:0 YUV 格式,8 位深度,Tri-Planar 格式,Video Range (16-235)。
三个独立的平面分别存储 Y、Cb、Cr,视频色彩范围,可能在某些优化场景下使用。
kCVPixelFormatType_Lossy_420YpCbCr8BiPlanarFullRange
4:2:0 YUV 格式,8 位深度,Bi-Planar 格式,使用 有损压缩,Full Range (0-255)。
用于减少数据量的同时保持合理的视频质量。
kCVPixelFormatType_Lossy_420YpCbCr8BiPlanarVideoRange
4:2:0 YUV 格式,8 位深度,Bi-Planar 格式,使用 有损压缩,Video Range (16-235)。
有损压缩适合存储或传输时的数据优化。
kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarFullRange
4:2:0 YUV 格式,8 位深度,Bi-Planar 格式,无损压缩,Full Range (0-255)。
提供高保真的视频存储格式,不会丢失数据。
kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarVideoRange
4:2:0 YUV 格式,8 位深度,Bi-Planar 格式,无损压缩,Video Range (16-235)。
用于视频捕捉时,保持较高质量的视频数据。
kCVPixelFormatType_Lossy_420YpCbCr10PackedBiPlanarVideoRange
4:2:0 YUV 格式,10 位深度,Bi-Planar 格式,有损压缩,Video Range (16-235)。
适合高动态范围(HDR)视频捕捉,并且为了优化存储或带宽使用,有损压缩。
kCVPixelFormatType_Lossless_420YpCbCr10PackedBiPlanarVideoRange
4:2:0 YUV 格式,10 位深度,Bi-Planar 格式,无损压缩,Video Range (16-235)。
提供更高色彩深度的无损压缩格式,适合高质量视频场景。