Changes

Jump to navigation Jump to search
Line 300: Line 300:     
不仅可以在一个命令中同时配置数据格式,分辨率,帧率,也可以单独修改某一项或某几项。
 
不仅可以在一个命令中同时配置数据格式,分辨率,帧率,也可以单独修改某一项或某几项。
 +
 +
=== raw图片格式说明 ===
 +
RK3588的VICAP模块支持两种数据保存格式,Compact和Noncompact RAW。可以通过RKCIF的RKCIF_CMD_SET_CSI_MEMORY_MODE ioctl指令修改模式。默认情况下,输出的是Compact RAW格式。
 +
[[File:Compact raw and noncompact raw of rk3588 vicap.png|center|thumb|800x800px|Compact raw and noncompact raw of rk3588 VICAP]]
 +
<br />
 +
====具有填充位的图片格式(Noncompact RAW)====
 +
对于10bit深度、12bit深度的像素数据,总是使用两个字节来存储一个像素。这种存储方式方便软件处理,缺点是空间占用较大。根据数据有效数据保存在高位还是低位,又分为high align和low align两种。
 +
 +
===== Noncompact RAW(high align) =====
 +
数据保存到高位,用不到的低位以0填充。RK VICAP支持的一种数据格式。
 +
 +
===== Noncompact RAW(low align) =====
 +
数据保存到低位,用不到的高位以0填充。V4L2标准的'Y10 ' (10-bit Greyscale),'Y12 ' (12-bit Greyscale)格式都是以这种方式存储的。
 +
 +
后文提到的pixel_layer_convert转换工具,也是将Compact RAW转换为此种存储方式。方便使用图片播放器打开显示。
 +
====紧密排列的图片格式(Compact RAW)====
 +
像素和像素之间不会进行空bit位填充。
 +
 +
V4L2标准的'Y10P' (10-bit Greyscale (MIPI Packed)),'Y12P' (12-bit Greyscale (MIPI Packed))格式都是以这种方式存储的。
 +
 +
==== 行对齐(line stride) ====
 +
为了方便对图像进行快速操作,系统通常为每行数据提供行对齐的buffer大小。RK3588使用256字节对齐。
 +
 +
line_stride = ALIGN_UP(image_width*bits_per_pixel/8,256)
 +
 +
比如当图像宽度是1456时:
 +
 +
8bit depth,line_stride=1536。
 +
 +
10bit depth,preferred_stride=2048。
 +
 +
12bit depth,preferred_stride=2304。
    
=== i2c脚本使用说明 ===
 
=== i2c脚本使用说明 ===

Navigation menu