音视频编解码——RGB与YUV转换以及存储格式
发布网友
发布时间:2024-09-15 10:14
我来回答
共1个回答
热心网友
时间:2024-10-07 16:15
RGB与YUV
色彩空间是指对色彩进行组织的方式,它结合物理设备特性,允许在模拟和数字形式中重现颜色。色彩空间可以是任意的,也可以是结构化的数学模型,如Pantone、NCS、Adobe RGB和sRGB等。
色彩模型是一种抽象的数学模型,描述了颜色如何作为数字组合来表示(如RGB或CMYK)。没有与绝对色彩空间相关联的色彩模型是一种任意色彩系统,没有与全球颜色理解系统相关联。
定义色彩空间时,常用CIELAB或CIEXYZ作为参考标准,这两个色彩空间旨在包含人眼可见的所有颜色。
RGB色彩空间使用红、绿、蓝光来表示颜色,每个颜色由R、G、B三个分量组成。RGB颜色分量与设备相关,采集和显示时均受其影响。标准的RGB是24bit,也有16bit的RGB,其中R和B用5bit表示,G用6bit表示。为了克服RGB的设备依赖性,定义了不依赖设备的sRGB,并添加了光强与颜色分量数值之间的线性γ映射。
常见的RGB格式有RGB888、RGB565、RGB555、RGB24、RGB32和ARGB32等。RGB的存储格式通常为BGRBGRBGR顺序。
YUV是一种色彩编码系统,考虑了人眼对色彩的感觉,允许减少色度分量的带宽,从而更有效地掩盖传输错误或压缩伪影。YUV被欧洲电视系统采用,Y代表亮度,UV代表色度。YUV由RGB推导而来,亮度分量Y是RGB分量的组合,颜色分量由差分B-Y和R-Y提供。
YUV的常见采样格式有YUV444、YUV422、YUV411和YUV420等。YUV420是最常用的格式,YUV444是无压缩的,YUV422和YUV411则是通过降低色度信号的采样率来减少带宽。
YUV的存储格式分为紧缩格式和平面格式。紧缩格式将YUV分量存放在同一个数组中,平面格式则使用三个数组分开存放YUV三个分量。YUV420有几种特殊的存储格式,如YUV420p、YUV420sp等。
OpenCV提供了RGB与YUV之间的转换函数,如cvtColor。RGB与YUV的转换涉及不同的格式和采样方式,需要根据具体情况进行转换。