IPC网络高清摄像机基础知识4(Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别) 【转】

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 转自:http://blog.csdn.net/times_poem/article/details/51682785 [-] 一 概念介绍 二 两个疑问 三 RAW和JPEG的区别  1 概念说明 32 为何要拍摄RAW  33 JPEG格式有什么优点  34 我...

转自:http://blog.csdn.net/times_poem/article/details/51682785

[-]

  1. 一 概念介绍
  2. 二 两个疑问
  3. 三 RAW和JPEG的区别 
    1. 1 概念说明
    2. 32 为何要拍摄RAW 
    3. 33 JPEG格式有什么优点 
    4. 34 我该拍摄RAW还是JPEG 
  4. 四 摄像头数据格式
  5. 五 sensor输出的数据格式
  6. 六 数字视频CCIR 601编码标准
    1. 1 采样频率
    2. 2 分辨率
    3. 3 数据量
  7.  七 CCIR601和CCIR656标准的区别

需求说明:IPC高清摄像机知识储备

来自:http://blog.csdn.net/southcamel/article/details/8305873

整理来自:时间的诗


一 概念介绍

 

YUV           : luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的
RGB          : 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼对绿色比较敏感。
RAW RGB : sensor的每一像素对应一个彩色滤光片,滤光片按Bayer pattern分布。将每一个像素的数据直接输出,即RAW RGB data
JPEG        : 有些sensor,特别是低分辨率的,其自带JPEG engine,可以直接输出压缩后的jpg格式的数据

 

而RAW RGB格式的Sensor则是将没个感光点感应到的RGB数值直接传送给Host,由Host来进行插值和特效处理。

Raw RGB 每个像素只有一种颜色(R、G、B中的一种); 
RGB 每个像素都有三种颜色,每一个的值在0~255之间; 

在手机摄像头的测试过程中,由sensor输出的数据就是Raw data(Raw RGB),经过彩色插值就变成RGB


二 两个疑问

对于这几种输出格式,几个疑问: 
1、 有些手机基带芯片只能支持2M以下的YUV sensor,3M以上只能使用JPEG sensor,这里说明YUV输出格式对基带芯片有一定的要求, 那么到底YUV sensor对基带芯片有怎样的要求呢?
2、 如果直接输出RGB,对于LCD的显示是最方便的,那么为何大多数基带芯片都是要求输出为YUV格式的数据再进行处理呢?

1 YUV一个像素占2B,如果像素太高在高时钟下基带芯片处理不过来,JPEG数据量就要小的多,所以不是YUV对基带芯片有要求而是基带芯片对输出数据速率有要求。
2 RGB565一般用在很低端的基带芯片上,直接往屏上刷。YUV输出亮度信号没有任何损失,而色偏信号人眼并不是特别敏感,RGB565输出格式是R5G3 G3B5会丢掉很多原始信息,所以YUV图像质量和稳定性要比RGB565好的多
3 RAW数据每个像素就1B,数据量要少很多,一般5M以上sensor就只输出RAW数据以保证比较快的输出速度,后端挂一个DSP来处理输出的数据。
--------------------------------------------------------------------------------

三 RAW和JPEG的区别 

3.1 概念说明

RAW格式文件基本上是一个没有经任何图像处理的源文件, 它能原原本本地记录相机拍摄到的信 息,没有因为图像处理(如锐化、增加色彩对比)和压缩而造成的信息丢失,但需要用特别的软件 来打开这些文件。 

另一种常用的格式便是JPEG,相机会先根据使用者的设定来做一定的图像处理,然后经过压缩 (程度因相机内设定的照片质量而定)和保存照片。 


3.2 为何要拍摄RAW? 

RAW是一种专业摄影师常用的格式,因为它能原原本本地保存信息,让用户能大幅度对照片进行 后期制作,如调整白平衡、曝光程度、颜色对比等设定,也特别适合新手补救拍摄失败的照片,而 且无论在后期制作上有什么改动,相片也能无损地回复到最初状态,不怕因意外储存而损失照片。

RAW还有一个好处,例如佳能DPP软件可以修正镜头失光、变形等。 


3.3 JPEG格式有什么优点? 

JPEG格式为一种非常普及的照片格式,差不多所有现代数码相机都能使用这个格式,绝大部分 的计算机上也能打开JPEG文件,使用者也可以随意设定压缩程度来保留画质(最佳的JPEG画质跟RAW 的非常接近),是一种十分方便的格式。 


3.4 我该拍摄RAW还是JPEG? 

在讨论这个问题之前,让我们看看RAW格式有什么缺点: 

1.因为RAW文件需要保留所有细节和信息,所以文件比JPEG大很多,这样储存照片或把照片传输 到计算机的时间便更长更久,需要的储存容量也更大; 

2.RAW文件需要使用特别的软件来打开,一旦计算机没有安装软件便没法打开文件; 

3.承上,一旦10年后那套特定的软件没法安装,之前拍摄的照片便没有办法打开; 

4.软件打开RAW的时间比较长,快的需要8、9s,慢的可能要用上20s也说不定; 

5.不同的软件有不同的方式去“演译”RAW文件,所以一个RAW文件在Photoshop 和Nikon Capture NX看可能会有所差别; 

6.厂商卖的专用软件价钱不低。(佳能DPP可以免费下载,尼康NX则需另购) 清楚RAW的缺点以后,

我们便可以看看哪种情况应该选择RAW或JPEG: 如果你需要拍摄大量的照片,应该考虑使用JPEG,因为其容量需求比较少和可以保留后制及把 照片转换为JPEG的时间; 如果你用作商业拍摄或喜欢后期制作,应该使用RAW,因为后制空间较大; 如果你正进行旅行摄影,可以考虑使用RAW或者RAW+JPEG,因为旅行的地方可能没法常去,使用 RAW让你一旦拍摄失败也有较大的机会补救。 后记 其实现在Photoshop的功能很强大,对于JPEG文件也能通过level或curve来调较曝光、白平衡、 色彩对比等,当然如果需要做大幅度的调整还是RAW文件比较适合的。


四 摄像头数据格式

摄像头的数据输出格式一般分为CCIR601、CCIR656、RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式。而RAW RGB格式与一般的RGB格式是有区别的。
我们知道,Sensor的感光原理是通过一个一个的感光点对光进行采样和量化,但,在Sensor中,每一个感光点只能感光RGB中的一种颜色。所以,通常所说的30万像素或130万像素等,指的是有30万或130万个感光点。每一个感光点只能感光一种颜色。

但是,要还原一个真正图像,需要每一个点都有RGB三种颜色,所以,对于CCIR601或656的格式,在Sensor模组的内部会有一个ISP模块,会将Sensor采集到的数据进行插值和特效处理,例如:如果一个感光点感应的颜色是R,那么,ISP模块就会根据这个感光点周围的G、B感光点的数值来计算出此点的G、B值,那么,这一点的RGB值就被还原了,然后在编码成601或656的格式传送给Host。

而RAW RGB格式的Sensor则是将没个感光点感应到的RGB数值直接传送给Host,由Host来进行插值和特效处理。

Raw RGB 每个像素只有一种颜色(R、G、B中的一种); 
RGB 每个像素都有三种颜色,每一个的值在0~255之间; 
在手机摄像头的测试过程中,由sensor输出的数据就是Raw data(Raw RGB),经过彩色插值就变成RGB


五 sensor输出的数据格式

主要分两种:YUV(比较流行),RGB,这就是sonsor的数据输出;这其中的RGB就是Raw RGB,是sensor的bayer阵列获取的数据(每种传感器获得对应的颜色亮度); 
但是输出的数据不等于就是图像的实际数据,模组测试时,就要写一个软件,完成数据采集(获得Raw data)->彩色插值(目的是获得RGB格式,便于图像显示)->图像显示; 
这样就可以发现整个模组是否正常,有无坏点,脏点的等,检测出不良品;(软件的处理过程当中,为了获得更好的图像质量,还需要白平衡,gamma校正,彩色校正) 
而在手机的应用中,手机根据相机模组的数据格式,提供一个ISP(主要用于RGB格式的),配合软件,使照相功能得到应用;


对于SENSOR来说,Bayer RGB和RGB Raw两者的图象结构都是BG/GR的(Bayer pattern说的是COLOR FILTER的结构,分为两种:STD Bayer pattern 与Pair pattern,其中STD Bayer pattern的结构是BG/GR的,而Pair Pattern顾名思义是指BGBG/GRGR的结构,即以四行为一个单位,前两行是BG的结构,后两行是GR的结构,这种结构是美光专门为此申请了专利的,主要是在输出TV模式(NTSC/PAL制)时用到),
由于后端应用时,对RAW DATA图像的 解码是按默认的结构来 解码的 ,如BG/GR,因此 Bayer RGB和RGB Raw两者的图象结构必须都是BG/GR的,而如果输出图像结构是BGBG/GRGR,则不可以直接显示和解码 的。
Bayer RGB与RGB Raw的主要区别在于两者输出前经过的处理不同,Bayer RGB从ADC输出,只经过了LENS SHADING CORRECTION,GAMMA等模块处理而后就直接输出,而RGB Raw则经过了整个ISP模块的处理,最终是经过YUV422的数据转化而来的

六 数字视频CCIR 601编码标准


6.1 采样频率

为了保证信号的同步,采样频率必须是电视信号行频的倍数。CCIR为NTSC、PAL和SECAM制式制定的共同的电视图像采样标准:
fs=13.5MHz
这个采样频率正好是PAL、SECAM制行频的864倍,NTSC制行频的858倍,可以保证采样时采样时钟与行同步信号同步。对于4:2:2的采样格式,亮度信号用fs频率采样,两个色差信号分别用
fs/2=6.75MHz的频率采样。由此可推出色度分量的最小采样率是3.375MHz。

6.2 分辨率

根据采样频率,可算出对于PAL和SECAM制式,每一扫描行采样864个样本点;对于NTSC制则是858个样本点。由于电视信号中每一行都包括一定的同步信号和回扫信号,故有效的图像信号样本点并没有那么多,CCIR 601规定对所有的制式,其每一行的有效样本点数为720点。由于不同的制式其每帧的有效行数不同(PAL和SECAM制为576行,NTSC制为484行),CCIR定义720×484为高清晰度电视HDTV(High Definition TV)的基本标准。实际计算机显示数字视频时,通常采用下表的参数:

电视制式    分辨率      帧 率
NTSC        640×480     30
PAL           768×576      25

6.3 数据量

CCIR 601规定,每个样本点都按8位数字化,也即有256个等级。但实际上亮度信号占220级,色度信号占225级,其它位作同步、编码等控制用。如果按fs的采样率、4:2:2的格式采样,则数字视频的数据量为:
13.5(MHz)×8(bit)+2×6.75(MHz)×8(bit) = 27Mbyte / s

同样可以算出,如果按4:4:4的方式采样,数字视频的数据量为每秒40兆字节!按每秒27兆字节的数据率计算,一段10秒钟的数字视频要占用270兆字节的存储空间。按此数据率,一张680兆字节容量的光盘只能记录约25秒的数字视频数据信息,而且即使目前高倍速的光驱,其数据传输率也远远达不到每秒27兆字节的传输要求,视频数据将无法实时回放。这种未压缩的数字视频数据量对于目前的计算机和网络来说无论是存储或传输都是不现实的,因此,在多媒体中应用数字视频的关键问题是数字视频的压缩技术。

 七 CCIR601和CCIR656标准的区别

关于这两种信号的区别:
ITU-R BT 601:16位数据传输;21芯;Y、U、V信号同时传输。
ITU-R BT 656:9芯,不需要同步信号;8位数据传输;串行视频传输;传输速率是601的2倍;先传Y,后传UV。
CCIR601要通过行、场同步两根信号线来传递行、场同步信息;
CCIR656不需要这两根信号线,它只通过8位数据线实现“软”同步。
CCIR656=CCIR601+HSYNC+VSYNC
656输出的是串行数据,行场同步信号嵌入在数据流中;
601是传输的是并行数据,行场同步有单独输出;
656只是数据传输接口而已,可以说是作为601的一个传输方式。


简单的说ITU-R BT.601是“演播室数字电视编码参数” 标准,而ITU-R BT.656则是ITU-R BT.601附件A中的数字接口标准,用于主要数字视频设备(包括芯片)之间采用27Mhz/s并口或243Mb/s串行接口的数字传输接口标准。
CCIR601号建议的制定,是向着数字电视广播系统参数统一化、标准化迈出的第一步。在该建议中,规定了625和525行系统电视中心演播室数字编码的基本参数值。


601号建议单独规定了电视演播室的编码标准。它对彩色电视信号的编码方式、取样频率、取样结构都作了明确的规定。
它规定彩色电视信号采用分量编码。所谓分量编码就是彩色全电视信号在转换成数字形式之前,先被分离成亮度信号和色差信号,然后对它们分别进行编码。分量信号(Y、B -- Y、R -- Y)被分别编码后,再合成数字信号。 它规定了取样频率与取样结构。


例如:在4:2:2等级的编码中,规定亮度信号和色差信号的取样频率分别为13.5MHZ和6.75MHZ,取样结构为正交结构,即按行、场、帧重复,每行中的R-Y和B-Y取样与奇次(1,3,5……)Y的取样同位置,即取样结构是固定的,取样点在电视屏幕上的相对位置不变。 它规定了编码方式。对亮度信号和两个色差信号进行线性PCM编码,每个取样点取8比特量化。同时,规定在数字编码时,不使用A/D转换的整个动态范围,只给亮度信号分配220个量化级,黑电平对应于量化级16,白电平对应于量化级235。为每个色差信号分配224个量化级,色差信号的零电平对应于量化级128。
综上所述,我们知道,分量信号的编码数据流是很高的。以4:2:2编码标准为例,其比特流为:13.5×8+6.75×8×2=216Mb/S。若采用4:4:4编码方式,即对复合信号直接编码,其抽样频率取为13.3×8=106.4 Mb/S。
PS:我们可以认为CCIR601即“ITU-R BT.601-5”,“ITU-R BT.656-4"即CCIR601。

656只有8位DATA+CLK,601有8位DATA+CLK+HSYNC+VSYNC,还有16位DATA+CLK+HSYNC+VSYNC。
656把HSYNC、VSYNC插到数据中,601的数据线只有数据

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
1月前
来看看生词:CVBS、S-Video、YPbPr、模拟RGB、DVI和HDMI
来看看生词:CVBS、S-Video、YPbPr、模拟RGB、DVI和HDMI
33 0
|
5月前
|
编解码 API 开发工具
NV21、NV12、YV12、RGB565、YUV等颜色编码格式区别和接口设计探讨
NV21、NV12、YV12、RGB565、YUV分别是不同的颜色编码格式,这些颜色编码格式各有特点,适用于不同的应用场景。选择合适的颜色编码格式取决于具体的需求和环境:
105 1
|
6月前
|
存储 编解码
ffmpeg解码提取帧RGB格式信息
使用ffmpeg和qt实现播放视频功能
156 0
嵌入式实践教程--FFmpeg中H264裸流解码为YUV420P原像素
嵌入式实践教程--FFmpeg中H264裸流解码为YUV420P原像素
嵌入式实践教程--FFmpeg中H264裸流解码为YUV420P原像素
|
编解码
嵌入式实践教程--FFmpeg4.1中YUV原像素编码为H264
嵌入式实践教程--FFmpeg4.1中YUV原像素编码为H264
嵌入式实践教程--FFmpeg4.1中YUV原像素编码为H264
|
数据采集 传感器 编解码
【Android RTMP】x264 图像数据编码 ( Camera 图像数据采集 | NV21 图像数据传到 Native 处理 | JNI 传输字节数组 | 局部引用变量处理 | 线程互斥 )
【Android RTMP】x264 图像数据编码 ( Camera 图像数据采集 | NV21 图像数据传到 Native 处理 | JNI 传输字节数组 | 局部引用变量处理 | 线程互斥 )
322 0
|
存储 编解码 算法
【Android FFMPEG 开发】FFMPEG AVFrame 图像格式转换 YUV -> RGBA ( 获取 SwsContext | 初始化图像数据存储内存 | 图像格式转换 )
【Android FFMPEG 开发】FFMPEG AVFrame 图像格式转换 YUV -> RGBA ( 获取 SwsContext | 初始化图像数据存储内存 | 图像格式转换 )
372 0
|
Linux
Linux下使用libyuv提高YUV图像转换效率
Linux下使用libyuv提高YUV图像转换效率
639 0
Linux下使用libyuv提高YUV图像转换效率

相关产品