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开发板
- Linux内核驱动之视频基础(一)色彩空间
- 多媒体技术基础之---色彩空间
- 多媒体技术基础之---色彩空间
- Linux 驱动之内核空间分配内存
- Linux内核驱动之视频基础(五)HDMI-DVI信号详解
- Linux 驱动开发之内核模块开发 (一)—— 内核模块机制基础
- Linux内核驱动之DDR3(一)寻址
- Linux内核驱动之DDR3(一)寻址
- Linux内核驱动之DDR3(一)寻址
- linux内核驱动基础
- Linux内核驱动基础(一)常用宏定义
- Linux内核剖析 之 进程地址空间(一)
- [Linux驱动入门]内核基础
- Linux驱动基础 内核模块
- (一) linux内核基础
- Linux内核驱动之spi子系统(二)用户空间spi驱动
- linux视频驱动开发一之框架概述
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- iOS-最全的App上架教程
- hive介绍与安装
- PHP架构师的成长之路
- (电工基地课程笔记)基本时序逻辑
- SQL 中NOT EXISTS的改写
- Linux内核驱动之视频基础(一)色彩空间
- js学习笔记第一篇
- I/O流学习笔记
- 用 LDA 做主题模型:当 MLlib 邂逅 GraphX
- HDU 4912 (贪心)
- Android scrollBy(x,y)和scrollTo(x,y)的区别
- Math.floor,Math.ceil,Math.rint,Math.round用法详解
- iOS自动化测试与uiautomation
- 2016-7-7 杂感