RGB与YUV格式简介
(1) RGB格式简介
RGB色彩模式是一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的。图像中每一个像素的RGB分量都分配一个0~255范围内的强度值。这个标准几乎包括了人类视力所能感知的所有颜色,主要应用在显示器上。
(2) YUV格式简介
YUV是一种颜色编码方法。Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、浓度(Chrominance、Chroma)。RGB诉求于人眼对色彩的感应,YUV则着重于视觉对于亮度的敏感程度。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只保留Y信号分量去掉U、V分量,那么这样表示的图像就是黑白灰度图像,从而实现使黑白电视机也能接收彩色电视信号。
YUV主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。因为摄像头常见的输入格式为YUV 4:2:2,所以本文主要介绍YUV4:2:2.
YUV 4:2:2采样格式的每个色差信道的采样率是亮度信道的一半。例如两个像素点的Y,U,V值依次为:[Y0 U0 V0] [Y1 U1 V1]。采样后的码流为:Y0 U0 Y1 V1。 最后显示时的像素点又还原为:[Y0 U0 V1] [Y1 U0 V1]。显然舍弃了V0,U1,这样可以减少传输时占用的带宽,而且对画质并没有很大影响,因为人眼对彩度的敏感度远不如亮度,而亮度信息并没有减少。
(3) YUV与RGB格式的转换
需要将摄像头输出的YUV格式的图像数据,通过libjpeg压缩为JPEG。但是libjpeg不支持直接压缩YUV,所以本文先将YUV数据转换成RGB再调用libjpeg库来压缩成JPEG。
YUV转换为RGB只需要通过公式简单换算即可,具体换算方法见YUYV压缩为JPEG的函数compress_yuyv_to_jpeg。
RGB与YUV格式简介相关推荐
- 实验二 RGB到YUV格式的转换
前言 将BMP文件转换成YUV文件 RGB存储结构 本算法使用的RGB文件格式为像素形式的RGB24文件.一个像素用24个bit来表示,3个字节,R,G,B分量分别用8个bit来表示,取值范围为0-2 ...
- 走进音视频的世界——RGB与YUV格式
在图像的世界里,一般使用RGB作为存储格式.而在视频的世界里,一般使用YUV作为压缩存储格式.有时候面试官会问:为什么视频使用YUV来压缩存储,而不用RGB?YUV与RGB有什么区别,两者如何转换的? ...
- RGB与YUV格式(四)
一.RGB 一般来说,直接采集到的视频数据是RGB24的格式RGB24一帧的大小size=width×heigth×3 Byte,RGB32的size=width×heigth×4Byte.1.RGB ...
- 初学音视频(一)-RGB和YUV格式分析
前言 有幸能够看到雷霄骅先生的博客,很感谢雷神能够这么无私把知识分享出来,对我这种新手的帮助实在是太大了.希望到另一个世界雷神不用再这么辛苦的. 本篇文章基本全是参考雷神的:视音频数据处理入门:RGB ...
- RGB与YUV格式详解
一.RGB RGB是最常见的一种颜色编码格式,它的三个通道 R.G.B分别对应红.绿.蓝三个分量.通常每个分量的位宽为8bit,值的范围是0~255,对应其256个灰阶,也即颜色的亮度,值越大表示该分 ...
- RGB 与YUY格式简介
我们都知道世界上任何一种颜色的 , 都可以有RGB 按照一定的比列混合而成.所以每种颜色都可用三个变量来表示 - 红色绿色以及蓝色的强度.记录及显示彩色图像时, RGB 是最常见的一种方案.但是,它缺 ...
- 【作业】RGB/BMP转YUV格式及YUV视频拼接
简介 RGB文件 RGB文件是原始的没有压缩的包含红绿蓝三种颜色的图像文件. 常见的RGB格式例如RGB24,也就是一组RGB像素中的R.G.B各占8比特,即一个字节,一组RGB一共是24个比特. 这 ...
- 视频与图像RGB/YUV格式详解
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red).G(Green).B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红.绿.蓝磷光材料发光而产生色彩. ...
- RGB、YUV、NV21、BMP相互转换
概述 最近学习雷神的博客,深受启发.后面的代码或者借鉴原作的代码,或者修改自原作.一般的图片播放器无法显示rgb和yuv格式的图片,为了方便查看rgb和yuv图片,雷神修改了一个网上的YUV/RGB播 ...
最新文章
- RxJava 过滤操作符 distinct 和 distinctUntilChanged
- CLINS: 基于激光-惯性系统的连续时间轨迹估计(IROS 2021)
- java和netbeans区别_如果我想只使用Java中的Eclipse和Netbeans有什么区别?
- __init__函数
- 用友UI层获取机构的方法
- linux查看某进程cpu使用情况,linux中如何查看进程对应的cpu使用情况?
- 极简短网址-一套简约的短网址程序
- 如何在经济危机中寻找崛起之道
- 从0开始写一个基于Flutter的开源中国客户端(7)——App网络请求和数据存储
- WARN No appenders could be found for logger的解决方法
- JDBC Java数据库编程
- 计算机杀病毒软件的应用有哪些,电脑杀蠕虫病毒软件有哪些
- 计算机装机 基础知识,电脑diy硬件基础知识 菜鸟装机必看! (全文)
- java pdf转ofd
- macOS 如何设置壁纸
- HTML——添加网页背景音乐
- 2022精选最新金融银行面试真题——附带答案
- 新手入门:如何用Laya开发微信小游戏?
- ma5822是什么设备_华为MA5821-24 - AC远端光接入ONU光纤设备24口 全新原装
- java 将数据生成word文档,并实现打勾选择框