音视频开发---基础概念总结

    xiaoxiao2022-07-12  154

    目录

    一、Camera 原理

    1. 结构

    2. 工作原理 

    二、sensor输出数据格式

    1. RGB 、RAW RGB

    2. YUV

    3. JPEG(Joint Photographic Experts Group)

    三、 参考


    一、Camera 原理

    1. 结构

    一般来说,camera 主要是由 lens 和 sensor IC 两部分组成,其中有的 sensor IC 集成 了 DSP,有的没有集成,但也需要外部 DSP 处理。细分的来讲,camera 设备由下边几部 分构成:  *  lens(镜头) 一般 camera 的镜头结构是有几片透镜组成,分有塑胶透镜(Plastic)和玻璃透 镜(Glass) ,通常镜头结构有:1P,2P,1G1P,1G3P,2G2P,4G 等(随着基本增大,透镜越多,相应的成本越高)。  *  sensor(图像传感器) Senor 是一种半导体芯片,有两种类型:CCD 和 CMOS。Sensor 将从 lens 上传导过来的光线转换为电信号, 再通过内部的 AD 转换为数字信号。 由于 Sensor 的每个 pixel 只能感光 R 光或者 B 光或者 G 光, 因此每个像素此时存贮的是单色的, 我们称之为 RAW DATA 数据。 要想将每个像素的 RAW DATA 数据还原成三基色,就需要 ISP 来处理。   *  ISP(图像信号处理) 主要完成数字图像的处理工作,把 sensor 采集到的原始数据转换为显示支持 的格式。   *  CAMIF(camera 控制器) 芯片上的 camera 接口电路,对设备进行控制,接收 sensor 采集的数据交给 CPU,并送入 LCD 进行显示。

    【sensor是摄像头的核心,负责将通过Lens的光信号转换为电信号,再经过内部AD转换为数字信号。每个pixel像素点只能感受R、G、B中的一种,因此每个像素点中存放的数据是单色光,所以我们通常所说的30万像素或者130万像素,表示的就是有30万或130万个感光点,每个感光点只能感应一种光,这些最原始的感光数据我们称为RAW Data。Raw Data数据要经过ISP(应该理解为Image Sensor Processor,是Sensor模块的组成部分,下面有解释)的处理才能还原出三原色,也就是说如果一个像素点感应为R值,那么ISP会根据该感光点周围的G、B的值,通过插值和特效处理等,计算出该R点的G、B值,这样该点的RGB就被还原了,进入DSP的数据是RAW Data,经DSP处理后,最终输出YUV或者RGB格式的数据】

    2. 工作原理 

    外部光线穿过 lens 后, 经过 color filter 滤波后照射到 Sensor 面上, Sensor 将从 lens 上传导过来的光线转换为电信号,再通过内部的 AD 转换为数字信号。如果 Sensor 没有集 成 DSP,则通过 DVP 的方式传输到 baseband,此时的数据格式是 RAW DATA。如果集成 了 DSP, RAW DATA 数据经过 AWB、 则 color matrix、 lens shading、 gamma、 sharpness、 AE 和 de-noise 处理,后输出 YUV 或者 RGB 格式的数据。 最后会由 CPU 送到 framebuffer 中进行显示,这样我们就看到 camera 拍摄到的景象 了。

    二、sensor输出数据格式

    sensor输出数据格式有:RGB,RAW RGB,YUV,JPEG。

    1. RGB 、RAW RGB

       通常我们说的RGB是由RAW DATA(或称为RAW RGB DATA或RAW)处理后产生的, RAW是sensor中每个像素点的直接数据输出,此时每个像素点的数值只是R,G,B中的一个(一个像素点只能是一种颜色),然后经过插值和特效处理后,变成RGB,RGB中的每个数值都包含R,G,B,即传统的红绿蓝格式,比如RGB565,5bit R + 6bit G + 5bit B,G多一位是因为人眼对绿色比较敏感。

    RGB24格式的每个像素的三个分量是连续存储的。一帧宽高分别为w、h的RGB24图像一共占用w*h*3 Byte的存储空间。RGB24格式规定首先存储第一个像素的R、G、B,然后存储第二个像素的R、G、B…以此类推。

    2. YUV

    YUV是北美NTSC系统和欧洲PAL系统中模拟电视信号编码的基础。  在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变。  YUV 使用RGB的信息,但它从全彩色图像中产生一个黑白图像,然后提取出三个主要的颜色变成两个额外的信号来描述颜色。把这三个信号组合回来就可以产生一个全彩色图像。

    一般人们所讲的YUV大多是指YCbCr。

    YCbCr 颜色空间是YUV的国际标准化变种,在数字电视和图像压缩(比如JPEG)方面都有应用。  YCbCr 是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG均采用此格式

    YUV的优点:

    1、YUV表示法的重要性是它的亮度信号(Y)和色度信号(U、V)是相互独立的 。

    2、YUV表示法的另一个优点是可以利用人眼的特性来降低数字彩色图像所需要的存储容量。

    YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量

    根据不同的采样方式对YUV中数据进行采样,有YUV4:4:4,YUV4:2:2,YUV4:2:0这三种,采样完后再根据存储方式不同而存储。一般都是YUV422格式。首先分析一下:采样格式:

    444就是对每一个像素Y,U,V值均取。4个像素每个像素的YUV值都要取。

    原来四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 

    存放的码流为:  [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 

    还原出像素点为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 

    422:原来四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

    存放的码流为: Y0 U0 Y1 V0 Y2 U2 Y3 V2

    还原出像素点为:[Y0 U0 V0] [Y1 U0 V0] [Y2 U2 V2] [Y3 U2 V2] 

    420:原来四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]  经采样后:

    存放的码流为: Y0 U0 Y1 Y2 V2 Y3 

    还原出像素点为:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2] 

    举例: 假设视频帧的宽和高分别为w和h,

                一帧YUV420P像素数据一共占用w*h*3/2 Byte的数据。其中前w*h Byte存储Y,接着的w*h*1/4 Byte存储U,最后w*h*1/4 Byte存储V。

                一帧YUV444P像素数据一共占用w*h*3 Byte的数据。其中前w*h Byte存储Y,接着的w*h Byte存储U,最后w*h Byte存储V。

                一帧YUV422P,每个色差信道U和V水平方向的抽样率是亮度信道Y的一半,所以水平方向的色度抽样率只是4:4:4的一半,一共占用w*h*2Byte的数据,其中前w*h存储Y,接着w*h/2存储U,最后w*h/2存储V。

     

    3. JPEG(Joint Photographic Experts Group)

    JPEG是一种图像压缩格式,有些sensor,特别是低分辨率的,其自带JPEG engine,可以直接输出压缩后的jpg格式的数据。

    (JPEG是RGB压缩生成的,首先把JPEG解压为RGB格式,RGB再转换为YCBCR格式,经过H264编码后可进行传输)。

    通常,帧缓存设备fb或LCD的数据格式为RGB, (RGB565),可以使用RGB来写屏。

     

    特别说明:

        a>YUV一个像素占2B,如果像素太大,在高时钟下基带芯片处理不过来,JPEG数据量就要小很多,因为基带芯片对输出数据的速率有要求,所以基带芯片低时钟下使用YUV sensor,高时钟下使用JPEG sensor。

        b>如果直接输出RGB,对于LCD显示是最方便的,但是大多数基带芯片都是要求输出为YUV格式的数据再进行,这是因为,YUV输出数据的亮度信号没有任何损失,而色偏信号人眼并不是特别敏感,RGB565输出格式是R5G3 G3B5,会丢失很多原始信息,所以YUV图像质量和稳定性要比RGB565好的多。因此,很低端的基带芯片上才会输出RGB565格式。

        Raw和JPEG的区别:

        Raw优点:

        1>Raw格式文件本质上是一个没有经过任何图像处理的源文件,它能原原本本地记录相机拍摄的信息,没有经过图像处理(锐化、色彩对比增强)和压缩而造成的信息丢失。相比之下,JPEG格式的数据经过压缩处理,无法完整的保存原图形的所有数据。

        2>Raw是一种专业摄影师常用的格式,因为它能原原本本地保存信息,让用户能大幅度进行后期制作,并且无论怎么操作,照片都能无损的恢复到最初状态;但是JPEG就弱了些,虽然因为PS等技术的发展,也可以在JPEG上进行后期制作,但是如果做大幅度的调整还是Raw文件比较合适。

        3>可以用专门的软件修正摄像机的不足,比如佳能DPP软件可以修正镜头失光、变形等。

        Raw缺点:

        1>存储数据量太大,JPEG就小很多

        2>需要专门的软件来打开,JPEG几乎所有的PC都可以直接打开

        3>打开速度较慢,JPEG较快

        4>不同的软件有不同的方式去演绎RAW文件,所以在不同的软件上会有细微的差别。

        5>厂商卖的专用软件价格较高,而这方面JPEG几乎无成本

     

    三、 参考

            https://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html

            https://blog.csdn.net/leixiaohua1020/article/details/50534150

            YUV格式解析

     

    最新回复(0)