MIPI|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|MIPI CSI-2 像素打包格式解析】上图非常形象的展示了一帧数据如何一行行传输的。
推荐阅读
- 人像素描练习(国际章)
- 2019.6.19
- LVDS,MIPI,EDP
- kernel|lcd:mipi各种clock计算
- Android开发经验之获取画在画布上的字符串长度|Android开发经验之获取画在画布上的字符串长度 宽度(所占像素宽度)
- iOS12|iOS12 UI适配
- [RK3288][Android6.0] 如何配置MIPI DSI Clock和PCLK
- Android|Android使用 argb, 矩阵,像素点对图片进行修改
- mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系
- 计算MIPI|计算MIPI DSI数据速率的方式,以及如何配置时钟clk的方式