摄像头成像:外部光线穿过lens后,经过color filter滤波后照射到Sensor面上, Sensor将从lens上传导过来的光线转换为电信号,再通过内部的DA转换为数字信号。如果Sensor没有集成ISP,则传输到baseband(基带=未经处理的电信号),
此时的数据格式是RAW RGB data。

raw RGB的排列方式有两种。根据COLOR FILTER的结构,分为两种:STD Bayer pattern 与Pair pattern,其中STD Bayer pattern的结构是BG/GR的,而Pair Pattern顾名思义是指BGBG/GRGR的结构,即以四行为一个单位,前两行是BG的结构,后两行是GR的结构。对RAW DATA图像的 解码是按默认的结构来 解码的 ,如BG/GR,若不是则无法解码。

RAW RGB格式的图像每一个像素点只有一种颜色为R,G,或B。存储形式可能为8-14位。即每一个像素的值由8位存储。一般是sensor的bayer阵列获取的数据。

sensor输出分为四种,一种是YUV,一种是raw RGB.一种为RGB,一种为JPEG

第一种是RGB:从RAW RGB到RGB格式。RGB格式有

RGB565    每个像素用16位表示,RGB分量分别使用5位、6位、5位(常用也就是上说的RGB)

RGB555    每个像素用16位表示,RGB分量都使用5位(剩下1位不用)

RGB24    每个像素用24位表示,RGB分量各使用8位

RGB32    每个像素用32位表示,RGB分量各使用8位(剩下8位不用)

ARGB32    每个像素用32位表示,RGB分量各使用8位(剩下的8位用于表示Alpha通道值)。

RGB565是通过对RAW RGB中的每一个图像进行插值得到的。根据每一点周围的像素估计它的R,G,B值。RGB565输出格式是R5G3 G3B5会丢掉很多原始信息,可能是因为传输时会丢失信息。而YUV中的Y信号独立分出来很少丢失信息。所以常用。可以直接往屏幕上刷。一般500M以上sensor就只输出RAW数据以保证比较快的输出速度.。

第二种是YUV:从RAW RGB到YUV格式。CCIR601或656的格式。先说一下什么是YUV格式?

YUV三个字母中,其中"Y"表示明亮度(Lumina nce或Luma),也就是灰度值;而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV存储格式有两大类:planar和packed。平面和打包格式。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交叉存储的。YUV主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,如何根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来。

首先RAW RGB转换为RGB格式。RGB是交叉存储的。每一个像素由24位表示。然后将RGB转换为YUV格式。那么如何存储呢?根据以上可知有两种格式。首先根据不同的采样方式对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]

关于如何存储的。planar存储:使用三个数组分开存放YUV三个分量。YUV行顺序存储。关于packed存储:使用一个数组存储一个像素的YU或YV数据,彼此交叉。由以上可知由RGB转换为YUV分量时图像是有压缩的,损失了信息。

第三种:JPEG格式。首先转换为RGB格式,RGB再转换为YCBCR格式。YCbCr模型广泛应用在图片和视频的压缩传输中,比如你可以留意一下电视或者DVD后面的接口,就可以发现色差接口。一般人们所讲的YUV大多是指YCbCr。以前的YUV是用来看电视用的。两者的数学转换公式不同。经过离散余弦变换,数据还是可逆的,然后数据量化和霍夫曼编码实现数据压缩。

以上都是数据格式,而不是图像格式,下面还会分析图像格式,视频格式的区别。

YUV格式可经过X264编码为H264格式,然后封装为MP4格式。

摄像头sensor的数据输出格式。相关推荐

  1. 摄像头的数据输出格式

    摄像头的数据输出格式一般分为CCIR601.CCIR656.RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式.而RAW RGB格式与一般的RGB格式是有区别的. 我们 ...

  2. 图像--摄像头数据输出格式与传输接口

               一. 数据输出格式 RAW data 格式: CMOS 在将光信号转换为电信号时的电平高低的原始记录,单纯地将没有进行任何处理的图像数据,即摄像元件直接得到的电信号进行数字化处理 ...

  3. 【Android RTMP】Android Camera 视频数据采集预览 ( 视频采集相关概念 | 摄像头预览参数设置 | 摄像头预览数据回调接口 )

    文章目录 安卓直播推流专栏博客总结 一. Android 端数据采集涉及到的相关概念 二. Camera 预览图像尺寸设置 三. 获取摄像头采集的数据格式 安卓直播推流专栏博客总结 Android R ...

  4. Xcode中捕获iphone/ipad/ipod手机摄像头的实时视频数据

    目的:打开.关闭前置摄像头,绘制图像,并获取摄像头的二进制数据. 需要的库 AVFoundation.framework .CoreVideo.framework .CoreMedia.framewo ...

  5. 树莓派4B摄像头推出流数据

    树莓派4B摄像头推出流数据 树莓派摄像头调试 排线连接 摄像头权限激活 测试摄像头功能 树莓派原生推http流 使用vlc打开网络串流 树莓派原生推rtsp流 使用vlc打开网络串流 启动异常处理 f ...

  6. c编程十六进制数据输出格式_使用C编程语言处理十六进制值

    c编程十六进制数据输出格式 Hexadecimal value has 16 alphanumeric values from 0 to 9 and A to F, with the base 16. ...

  7. 使用FFMpeg API 获取摄像头的图像数据

    文章目录 1. 获取摄像头的信息 2. 打开并初始化摄像头 3. 获取摄像头数据及渲染 摄像头是我们比较常用的外设,很多场景我们都会用到摄像头.比如视频直播.视频监控等各个领域都会用到摄像头.摄像头图 ...

  8. 学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口

    ROS摄像头驱动及数据接口 二维摄像头 我们平常用的最多的就是二维摄像头,大部分笔记本上都会自带一个2d的摄像头,这种摄像头的接口一般是USB接口,市面上看到的罗技摄像头.RGB摄像头等,它们的底层协 ...

  9. Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览

    背景 大家在做Windows平台RTMP推送或轻量级RTSP服务的时候,不管是采集屏幕还是采集摄像头,亦或屏幕摄像头的叠加模式,总会有这样的诉求,采集到的数据,希望能本地看看具体采集的数据或者图像实际 ...

最新文章

  1. bitcoin全节点部署及bitcoind bitcoin-cli命令使用解释
  2. NetDevOps — PyEZ
  3. 中国液冷数据中心发展白皮书
  4. Spring boot配置文件加载位置
  5. 【Python】matplotlib.pyplot 标题换行
  6. salad--8||9
  7. 暑期训练日志----2018.8.17
  8. linux 源码安装node 9,linux如何安装node?
  9. Java Web学习总结(10)——Session详解
  10. 【转】一些 SQLite技巧
  11. 使用docker安装easy-mock
  12. 2012-11-26 → 2012-12-02 周总结:项目又有新需求了,很兴奋
  13. linux 内核源码牛人分析 链接分享
  14. win7计算机文件移动硬盘,Win7系统下给移动硬盘分区方法是什么
  15. Mac下遇到的npm install失败问题 err!
  16. ElasticSearch7.3.0 集群搭建及配置安全认证
  17. 【071】张大妈计算器-工资计算器及各地薪资报告
  18. 京东评价系统更新190301
  19. Android Accessibility大致解析,通过adb运行纯java代码打开应用的辅助功能
  20. excel2007整体调整行间距

热门文章

  1. android高德地图点平滑移动,高德地图平滑移动问题
  2. wifi网络接入原理(下)——关联Association
  3. 为什么字节跳动全面使用 Go 语言?
  4. 外卖CPS公众号分销裂变小程序搭建和培训(附源代码和0基础搭建教程)
  5. Python环境安装Selenium
  6. MATLAB绘图自定义曲线颜色
  7. 李阳疯狂英语励志名言
  8. 对标GPT核心技术RLHF!港科大开源RAFT「木筏」,适用GPT扩散模型
  9. python里的jango类视图
  10. Tree Shaking