RGB与YUV

RGB、BMP、YUV

一、RGB简述

1、RGB指的是R(red)红色、G(green)绿色、B(blue)蓝色,各有256级亮度,用数字表示为从0、1、2…直到255,256级的RGB色彩总共能组合出约1678万

种色彩,即256×256×256=16777216,也被简称为1600万色或千万色,也称为24位色(2的24次方 = 2的8次方 × 3)。

2、以位数分类,大致有以下几种:

1)RGB16 :是16位(2个字节)为一个存储单元,来存储一个RGB像素。可以分为RGB565,RGB555

​ RGB565 :R占比5位,G占比6位,B占比5位(高位->低位RRRRR GGGGGG BBBBB);

​ RGB555 :最高位不使用,R占比5位、G占比5位、B占比5位(高位->低位0 RRRRR GGGGG BBBBB)。

2)RGB24 :是24位(3个字节)为一个存储单元,来存储一个RGB像素,RGB各占8位,注意排序(高位->低位 BBBB BBBB GGGG GGGG RRRR RRRR)

3)RGB32 : 是32位(3个字节)为一个存储单元,来存储一个RGB像素,RGB各占8位,注意排序(高位->低位 BBBB BBBB GGGG GGGG RRRR RRRR 0000 0000)

3、以可表示的颜色数为分类,大致有以下几种:

1)RGB332(3+3+2=8位色) :(23)*(23)(2^2) = 88*4 = 256(256 Color).俗称256色。

2)RGB555(5+5+5=15位色) :(25)*(25)(2^5) = 3232*32 = 32768(32768/1024 = 32,32K Color),俗称32千色。

3)RGB565(5+6+5=16位色 ) :(25)*(26)(2^5) = 3264*32 = 65536(65536/1024 = 64,64K Color),俗称65千色。

4)RGB666(6+6+6=18位色):(26)*(26)2^6) = 646464 = 262144(262144/1024 = 256, 256K Color).俗称262千色.*

5)RGB888(8+8+8=24位色):(28)*(28)(2^8) = 256256*256 = 16777216(16777216/1024 = 16384,16384K Color ; 16384/1024 = 16 , 16M Color)

称16兆真彩色。

二、BMP格式

1、BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映

射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选1bit、4bit、8bit及24bit。BMP文件存

储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行

的图形图像软件都支持BMP图像格式。

2、BMP格式的文件从头到尾依次是如下信息:

1)bmp文件头(bmp file header):共14字节;

bfType:2字节,文件类型,BMP格式的文件这两个字节是0x4D42,10进制就是19778,字符显示就是‘BM’;;

bfSize:4字节,文件大小,这里的是0x0004B436,十进制是308278,也就是301kb,检查文件信息,验证正确;

bfReserved1:2字节,保留,必须设置为0;

bfReserved2:2字节,保留,必须设置为0;

bfOffBits:4字节,从头到位图数据的偏移,表示从文件头到位图数据的偏移,这里是0x00000436,十进制是1078,后面会做验证;

2)位图信息头(bitmap information):共40字节;

biSize:4字节,信息头的大小,即40;

biWidth:4字节,以像素为单位说明图像的宽度;

biHeight:4字节,以像素为单位说明图像的高度,同时如果为正,说明位图倒立(即数据表示从图像的左下角到右上角),如果为负说明正向;

biPlanes:2字节,为目标设备说明颜色平面数,总被设置为1;

biBitCount:2字节,说明比特数/像素数,值有1、2、4、8、16、24、32;

biCompression:4字节,说明图像的压缩类型,最常用的就是0(BI_RGB),表示不压缩;

biSizeImages:4字节,说明位图数据的大小,当用BI_RGB格式时,可以设置为0;

biXPelsPerMeter:表示水平分辨率,单位是像素/米,有符号整数;

biYPelsPerMeter:表示垂直分辨率,单位是像素/米,有符号整数;

biClrUsed:说明位图使用的调色板中的颜色索引数,为0说明使用所有;

biClrImportant:说明对图像显示有重要影响的颜色索引数,为0说明都重要;

3)调色板(color palette):可选;

4)位图数据;

接下来就是位图数据了。由于是8位色图,所以每个像素用1个字节表示,取出每个字节,显示到相应的设备上就可以了。

注意,这里的biHeight为正数,说明图像倒立,从左下角开始到右上角,以行为主序排列。

如果是24位色图,按照BGR的顺序排列,32位色图按照BGRAlpha排列。

位图数据排列还有一个规则,就是对齐。

Windows默认的扫描的最小单位是4字节,如果数据对齐满足这个值的话对于数据的获取速度等都是有很大的增益的。因此,BMP图像顺应了这个要求,要求每行

的数据的长度必须是4的倍数,如果不够需要进行比特填充(以0填充),这样可以达到按行的快速存取。这样的话,位图数据的大小就不一定是宽x高x每像素字节

数了,因为每行还可能有0填充。

BPP是每像素的比特数(Bits Per Pixel)也叫像素位深度,即biBitCount,Width是宽度,单位是像素即bfWidth。

三、YUV

1、YUV是视频、图片、相机等应用中使用的一类图像格式,实际上是所有“YUV”像素格式共有的颜色空间的名称。 与RGB格式(红 - 绿 - 蓝)不同,YUV是用一个

称为Y(相当于灰度)的“亮度”分量和两个“色度”分量表示,分别称为U(蓝色投影)和V(红色投影),由此得名。

YUV也可以称为YCbCr,虽然这些术语意味着略有不同,但它们往往会混淆并可互换使用。

Y表示亮度分量:如果只显示Y的话,图像看起来会是一张黑白照。

U(Cb)表示色度分量:是照片蓝色部分去掉亮度(Y)。

V(Cr)表示色度分量:是照片红色部分去掉亮度(Y)。

2、扫描线

电子枪的扫描线从左上角像素点到右下角像素点顺序移动,喷射电子显像。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&玖月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值