RGB 和 RAW(RG10) 详解
📅 2026/7/21 23:55:06
👁️ 阅读次数
📝 编程学习
文章目录
- RGB 和 RAW(RG10)
- RGB
- 分类
- RGB555
- RGB1555
- RGB565
- RGB24
- RGB32
- 单通道与多通道
- 单通道
- 多通道
- RAW
- 分类
- 排列顺序
- 位深
- 存储方式
RGB 和 RAW(RG10)
RGB
- RGB888:一个像素点,对应3种颜色,占用3字节数据
- 以RGB24为例,RGB24的每个元素在计算机内存中占用1个字节,1个字节等于8个bit位,所以RGB每个元素的取值范围为:0~255
- RGB就是由rawRGB转换而来,做了一个平均运算,这个像素缺的那两个颜色值去周围取平均来补充
分类
RGB555
每个像素用16比特位表示,占2个字节,RGB分量都使用5位(最高位不用)
RGB1555
RGBA(ARGB)中的一种,一位用于表示透明度。0完全透明,1完全不透明
RGB565
- 每个像素用16比特位表示,占2个字节,RGB分量分别使用5位、6位、5位
RGB24
- RGB24图像每个像素用24比特位表示,占3个字节
注意:在内存中RGB各分量的排列顺序为:BGR BGR …
RGB32
- RGB32图像每个像素用32比特位表示,占4个字节,R,G,B分量分别用8个bit表示,存储顺序为B,G,R,最后8个字节保留
单通道与多通道
单通道
- 俗称灰度图,每个像素点只能有一个值表示颜色,它的像素值在0到255之间,0是黑色,255是白色,中间值是一些不同等级的灰色,可以说灰度是黑与白之间的过渡色!
- 单通道往往应用于图像处理,因为单通道只有一个像素点(一个字节),所以相比多通道三个字节,处理速度上要尤为的快!
多通道
- 多通道也就是RGB三原色,每个像素点有三个字节来表示(RGB),分别最大取值范围是0-255,可以组合成千万种颜色。
RAW
- Raw图像就是CCD/CMOS图像感应器将捕捉到的光信号转换为数字信号的原始数据,是sensor输出的数据格式。
- 一个像素点,对应一个颜色,转RGB就是把像素点周围的一起计算出像素点的RGB值
分类
SBGGR10_1X10
片段 含义 你的例子 S Standard(标准格式) S BGGR Bayer 排列顺序 B G G R(第一行 B G 交替,第二行 G R 交替) 10 每个像素的位深 10 bit 1X10 存储方式 1X10= 1 个像素占 10 bit(紧密打包)
排列顺序
RGGB、BGGR、GRBG、GBRG(取决于 Sensor 物理设计)
00 GR/BG 01 RG/GB 10 BG/GR 11 GB/RG 例如8*8分辨率。那么对于上表中四种排列格式的rawRGB数据如下图所示:
研究发现,人眼对绿色比较敏感,所以增强对绿色的采样,每种格式种存在两个G分量。其中每个分量代表一个piexl,所以GR/BG代表4个piexl,就表示sensor上面的4个晶体管,每个晶体管只采集一个颜色分量,然后通过插值计算出每个piexl的其他分量
位深
- 一个像素点用多少位表示
- RAW8 / RAW10 / RAW12 / RAW14 / RAW16 / RAW20
存储方式
- 松散打包(Unpacked / 非紧凑型)
- 每个像素占用固定的 2 字节(16bit),低 10bit 存放有效数据,高 6bit 补 0。
- 紧密打包(Packed / 紧凑型)
- 4 个像素打包成 5 个字节(40bit),不浪费任何 1bit。
编程学习
技术分享
实战经验