RAW、YUV、RGB、JPEG格式简介

  • Post author:
  • Post category:其他




1.RAW与YUV

背景,可感受光强度的传感器可以制造出能拍出黑白照片(是灰度图)的相机。但如果需要彩色图像,这种技术就无能为力了,因为当时的传感器只能感知光的强度,而无法感知颜色,也就是频率或波段。如果想要获得不同波段的光,最直接的做法是加入不同颜色的滤镜,从而滤出RGB三个通道的颜色。但是用这种方法如果对每个pixel都获得三个通道的光强的话,则需要对每个pixel都应用三个滤镜,成本过高。柯达公司的工程师Bryce Bayer ,也就是拜耳阵列的发明人,想到了一种解决方案,就是Bayer pattern。

相机最原始的数据不是颜色,仅仅是光强。

sensor出的是raw图。ISP里面出来后就是YUV了。但是yuv sensor可直接出YUV图。

RAW数据:Sensor输出的原始数据,一般有RAW8、RAW10、RAW12等,分别表示一个像素点有8bit数据、10bit数据、12bit数据。这是Sensor输出的最原始的数据,不论视频最后转成什么格式,都首先需要从RAW格式转。

YUV数据:RAW数据经过转换之后的数据。摄像头中最常用的是YUV 422格式,即Y-U-Y-V格式。以YUV422 8bit为例,每个像素点都包含亮度分量(8bit)以及UV两个颜色分量中的某一个(8bit)。因此每个像素点需要16bit数据。如果使用YUV422 10bit,那每个像素点需要20bit来描述。

RAW图就是记录每个像素点的光强(亮度)信息, 按照每个像素点亮度记录精度(位深)的不同,区分为RAW 10bits,RAW 12bits和RAW 14bits,简称为RAW10,RAW12和RAW14。

不管是RAW10,RAW12还是RAW14,都是每两个字节(16bits)存储一个像素的亮度值,有效bit位数分别为10、12和14,无效bit位用0补齐,所以这三种raw图文件的大小都是宽x高x2个字节。

在RAW10图文件中,每个像素点的亮度值用10个bit位表示,也就是从最暗到最亮分1024(2^10)个层次精度。每个像素点的亮度值用两个字节表示,其中6个无效的bit位用0表示。



2.rawRGB、RGB和YUV数据格式与转换

参考链接:https://blog.csdn.net/qq_29575685/article/details/103954096

图像采集的过程为:光照在成像物体被反射 -> 镜头汇聚 -> Sensor光电转换-> ADC转换为rawRGB



3.YUV、RGB、RAW DATA、JPEG 4种方式区别



3.1 YUV、RGB、RAW DATA、JPEG 定义

  • 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格式的数据



3.2 为何要拍摄RAW?

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



3.3 JPEG格式有什么优点?

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



版权声明:本文为yaoming168原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。