Linux内核驱动之视频基础(一)色彩空间

来源:互联网 发布:域名注册网站哪个好 编辑:程序博客网 时间:2024/05/29 18:04

一 概述

RGB和YUV(也称YCbCr)都是色彩空间,用于表示颜色,两者可以相互转化.

 

RGB(红绿蓝)是从颜色发光的原理来设计的,可表示大部分颜色。

但在科学研究上一般不采用RGB颜色空间,它将亮度,色调,饱和度三个量放在一起表示,很难分开。它是最通用的面向硬件的彩色模型。该模型用于彩色显示器和某些彩色视频摄像。因此RGB颜色空间适合于显示系统,却并不适合于图像处理。

 

YUV能减少数据储存空间和数据传输带宽,同时又能非常方便的兼容黑白电视, 与 RGB 视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB 要求三个独立的视频信号同时传输).其中 “Y” 表示明亮度(Luminance 或 Luma ),也就是灰阶值;而 “U” 和 “V” 表示的则是色度(Chrominance 或 Chroma)

采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的,如果只有 Y信号分量而没有U、V信号分量,那么这样表示的图像就是黑白灰度图像,彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的相容问题,使黑白电视机也能接收彩色电视信号。

 

二 各种存储格式介绍

RGB565:每个像素用16bit表示,RGB分量分别使用5位,6位,5位

各个位的意义如下

RRRRRGGGGGGBBBBB(先高字节后低字节)

RGB888:每个像素使用24bit表示,RGB分量各使用8位,取值范围都是0~255,在内存中RGB各分量的排列顺序是BGR BGR BGR … …

BBBBBBBBGGGGGGGGRRRRRRRR (先高字节后低字节)

BBBBBBBBGGGGGGGGRRRRRRRR …

ARGB32:表示带Alpha通道的RGB32,在内存中RGB的排列顺序是

BGRA BGRA BGRA … …

BBBBBBBBGGGGGGGGRRRRRRRRAAAAAAAA (先高字节后低字节)

BBBBBBBBGGGGGGGGRRRRRRRRAAAAAAAA …

 

YUV格式通常有两大类:打包(packed)格式和平面(planar)格式

前者将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素macro-pixel;而后者使用三个数组分开存放YUV三个

分量,就像是一个三维平面一样.

常见的YUV格式:YUV422P YUV420P  YUV422SP_UV YUV420SP_UV  YUV422I_UYVY

 

 

 

上图的存储格式就是YUV422SP_UV

上图的存储格式就是YUV420SP_UV,像DM6467T,DM368等都使用

YUV420SP_UV进行H264编码压缩


转载,请注明  匠牛社区AM5728开发板

 

0 0
原创粉丝点击