MIPI CSI-2 像素打包格式解析
背景
MIPI CSI-2支持YUV、RGB和RAW data三种数据格式,这里是个笼统的叫法,具体又根据不同的像素打包方式细分为具体的格式,打包是什么概念?就是把Sensor采样得到的RGB三个通道的像素(Pixel)打包成字节流(Pixel-to-byte Packing),不同的格式,用来表示一个像素的比特数也不同(6 to 24 bits per pixel)。像Sony的sensor,一般是支持RAW10或RAW12格式输出。下面以RAW10格式为例,做一下详细的包格式解析。
MIPI数据概览
下图展示了MIPI CSI-2的数据传输的包信息:

具体不做详细的解析,大家可以去看一下MIPI CSI-2的规格书了解,这里放出这张图,是想说明Sensor采集的一张张图片数据(Frame)是一个个大的矩阵,一个CSI-2的data packet(实际也称为long packet,与之对应的是图中用于帧同步的short packet)需要包含矩阵中一行的数据(one line of image data),不管哪种打包格式,这一个long packet必须是8bit或者说byte的整数倍。
RAW10剖析
RAW10,顾名思义,其一个像素是用10bit表示,为了凑成byte的整数倍(我想应该是为了便于处理和传输吧),一个packet需要包含40bit,也就是5个byte,如下图所示:

图中是一行的数据,可以看到这里一行数据被分成了5个byte一组,5个byte是4个像素,其中每个像素被拆成了高8位和低2位,四个低2位组成了一个byte,传输字节流时,先传输低字节。下图展示了一帧数据的传输:

上图非常形象的展示了一帧数据如何一行行传输的。
MIPI CSI-2 像素打包格式解析的更多相关文章
- 转:YUV RGB 常见视频格式解析
转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...
- YUV420格式解析
一般的的YUV420图像格式实际上是Y'UV,420指的是其在Y U V上面的采样率.在YUV420的格式中,首先存储每一个像素的Y'值,然后跟着存储的是每2*2方阵采样一次的U值,最后存储的是每2* ...
- 视音频数据处理入门:FLV封装格式解析
===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...
- TS格式解析
1.TS格式介绍 TS:全称为MPEG2-TS.TS即"Transport Stream"的缩写.它是分包发送的,每一个包长为188字节(还有192和204个字节的包).包的结构为 ...
- STM32-cJSON库的打包和解析
这几天使用了一下JSON在STM32103平台上的使用,还是很好用的,在此记录下. JSON是啥我也不总结了,就是直观的看起来是一个有格式的字符串,看起来非常清楚明白,有点像Python中的dicit ...
- XML的打包与解析
XML的打包与解析 一.XML语言的特点 1.XML独立于任何编程语言,允许人们按接收者容易解析的方式,对复杂数据进行编码.先来看一个简单的XML格式的文件: [XML] 纯文本查看 复制 ...
- plist文件、NSUserDefault 对文件进行存储的类、json格式解析
========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...
- MySQL binlog的格式解析
我搜集到了一些资料,对理解代码比较有帮助. 在头文件中binlog_event.h中,有描述 class Log_event_header class Log_event_footer 参见[Myst ...
- JSON格式解析和libjson使用简介(关于cjson的使用示例)
JSON格式解析和libjson使用简介 在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据 ...
随机推荐
- java解洛谷P1003铺地毯问题
此题给出的最大地毯数量为10000,创建[10001][4]长度的二维数组 以稀松数组的方法,[第i个地毯]的 [0][1][2][3]分别保存地毯的坐标和大小 再用需要求的坐标比较即可 public ...
- Javascript之递归求裴波那契数
一.遍历的方式性能更加,递归的方式代码利于阅读.简短,性能略差 二.裴波那契数定义: · 位置0的裴波那契数为0 · 1和2的裴波那契数为1 · n(n > 2)裴波那契数为 (n-1)的裴波那 ...
- Sklearn 与 TensorFlow 机器学习实用指南第二版
零.前言 一.机器学习概览 二.一个完整的机器学习项目 三.分类 四.训练模型 五.支持向量机 六.决策树 七.集成学习和随机森林 八.降维 十.使用 Keras 搭建人工神经网络 十一.训练深度神经 ...
- JVM学习九-(复习)HotSpot 垃圾收集器
HotSpot 虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器.我们选择的只是对具体应用最合适的收集器. 新生代垃圾收集器 Se ...
- Linux 打包压缩、软链接、硬链接、配置镜像源
tar命令:tar -cvf 打包文件.tar 被打包文件的路径 把文件打包成tar包,但并未被压缩: [root@Server-n93yom test]# ll total 0 -rw-r-- ...
- UITabBarController的基本使用
- UIKit坐标系
在UIKit中,坐标系的原点(0,0)在左上角,x值向右正向延伸,y值向下正向延伸
- NSPredicate类,指定过滤器的条件---董鑫
/* 比较和逻辑运算符 就像前面的例子中使用了==操作符,NSPredicate还支持>, >=, <, <=, !=, <>,还支持AND, OR, NOT(或写 ...
- 需求: 使用LinkedList存储一副扑克牌,然后实现洗牌功能。
import java.util.LinkedList; import java.util.Random; /* 需求: 使用LinkedList存储一副扑克牌,然后实现洗牌功能. */ //扑克类 ...
- c++ 堆栈和内存管理
stack(栈),heap(堆) Stack:是存在于某作用域(scope)的一个内存空间(memory space).例如当你调用函数,函数本身即会形成一个stack用来放置它所接收的参数,返回地址 ...