基于Hi3516D 的图像采集压缩系统的设计
2021-04-30曹飞甄国涌陈建军
曹飞,甄国涌,陈建军
(中北大学电子测试技术国家重点实验室,山西太原 030051)
随着时代的发展,视频监控技术已经广泛应用在各行各业,而且高速率、高清化、高压缩率成为新发展要求[1]。实际应用中的图像数据量比较庞大,如果不加优化处理直接存储本地,将导致存储资源非常紧张[2]。例如典型的监控系统CIF 格式视频,分辨率为352×288,一般为RGB24 位图像深度、帧频25 fps,记录一小时需25 GB 的存储资源。若同等情况下记录1080P 视频,则需约1.22 T 的容量,普通的存储设备难以满足要求。而且在一些特殊领域,例如航天航空、无人机等,存储资源和传输链路带宽是无法完全满足要求的,必须要将图像数据经过压缩处理[3-4]。所以在图像采集处理和存储过程中,压缩编码已不可或缺,压缩损伤少、压缩比高的编码算法尤为重要,具有重要的现实意义。
为了满足嵌入式设备中日益增长的高速、高清、高压缩率图像传输的要求,该设计采用高动态CMOS 图像传感器作为图像捕获前端,集成H.264 压缩硬核的高性能ARM 芯片作为图像采集传感器,高效率的DC/DC 电压芯片作为电压模块,设计了一种高性能的图像采集压缩系统。
1 总体方案设计
系统设计方案如图1 所示,整体分为四大模块:图像采集模块、控制模块、存储模块、通信模块。图像采集模块采用AR0230CS CMOS 传感器,其相关寄存器通过I2C 接口配置,使输出8 位数字图像数据;控制模块采用海思公司的Hi3516D 芯片,对CMOS图像数据进行采集、H.264 编码压缩等处理,同时接收通信模块下发的命令来重新配置系统的帧率、分辨率等参数;存储模块使用16 bit 的DDR3 和256MB的SPI NOR FLASH,其中DDR3 用作嵌入式板端Linux 系统的运行空间,FLASH 用作存放引导Linux启动的uboot、内核镜像、文件系统等必要文件,FLASH 的启动模式通过硬件电路配置为3 bytes 地址模式;通信模块的协议采用TCP、百兆以太网接口,将编码输出的图像数据送至PC 端上位机显示、存储,也可以将上位机的图像配置参数下发到控制模块,满足多种图像格式的应用需求。
图1 总体方案设计
2 系统硬件电路设计
2.1 ARM硬件设计
Hi3516D 是海思开发的一款专业高端SOC 芯片,定位于高清IPCamera 产品应用,拥有先进低功耗架构设计和低功耗工艺。处理器内核采用ARM Cortex A7,时钟频率600 MHz,最大能力支持5M Pixel输入,1080P@60fps输出[5-6]。其优异编码图像质量、H.264 多码流编码性能,在满足不同的IPCamera产品需求、性能、图像质量要求的同时,可极大降低ebom 资源。这一切使得Hi3516D 在低功耗、高图像质量、高压缩率方面表现优异,因此该系统设计采用高性能的Hi3516D 作为主控芯片。
2.2 CMOS传感器硬件电路设计
该设计在最大输出能力1080P 分辨率的前提下,为了降低系统的功耗、增加图像动态范围,采用了低功耗、高动态的CMOS 图像传感器AR0230CS作为图像捕获前端。AR0230CS 是一款1/2.7 英寸CMOS 数字图像传感器,有源像素阵列为1 920 H×1 080 V,在此分辨率下输出最大帧频为60 fps。它专为低光和高动态范围的场景性能而设计,最大动态范围达96 dB,信噪比达41 dB。COMS 为了降低功耗,芯片工艺上采用一个晶体管只采样一个颜色分量的方法,利用差值计算相邻像素的值,这样同时也简化了原始图像的数据大小。
图2 为AR0230CS 与Hi3516D 的硬件连接图[7]。AR0230CS 可以使用HiSPi 接口传输数据,Hi3516D通过自身集成的MIPI_RX 控制器接收图像数据。AR0230CS 图像传感器采用Hi3516D 输出的27 MHz作为输入时钟;SDATA 信号为I2C 的双向数据线、SCLK 信号为I2C 的时钟线,Hi3516D 通过 这两条总线对AR0230CS 寄存器进行配置,主要配置的功能寄存器有宽动态模式选择、图像大小、曝光时间等参数。MIPI_RX 接口包含1 组差分时钟线MIPI_CLK和4 组数据差分线MIPI_DATA,MIPI_RX 底层数据包包含短包和长包数据,短包用来同步,长包用来传送数据,这样硬件上省去了帧同步和行同步硬件连接[8-9]。RESET_BAR 为复位信号,当抓拍或视频采集功能重启时,Hi3516D 需要对AR0230CS 进行复位操作,寄存器清零,再次配置。在PCB 设计上,AR0230CS 为敏感元件,器件布局与Hi3516D 需相隔较大距离,避免集中散热。
2.3 电源硬件电路设计
该设计获取外部5 V 直流输入供电、内部两级降压模式,首先通过电源转换芯片MP2122 将5 V 转化为3.3 V、1.1 V 供ARM 使用,1.5 V 供DDR3 使用,然后通过电源芯片TPS82084 将3.3 V 转换为1.8 V、2.8 V,供图像传感器使用。图3 为一路电源芯片MP2122 的硬件电路图。
图2 AR0230CS与Hi3516D的硬件连接图
图3 MP2122硬件电路图
由于输出电源支路较多,故使用了高性能的电源芯片。其中MP2122 是一款效率高达93%的DC/DC降压芯片,具有2.7~6 V宽动态输入,双路2 A PWM输出,开关频率为固定1 MHz,静态电流为45 μA,使得MP2122 为整体系统提供了稳定、低功耗的电源保障。而TPS82084 是一款效率高达95%的DC/DC 降压芯片,具有2.5~6 V 宽动态输入,静态电流为17 μA,优势是自身集成了电感,可以简化设计、减少外部元器件并节省PCB 面积,为图像传感器所处的特殊位置提供了空间便利。
MP2122 输出电压可以通过R3、R5动态调节,调整结果为该设计中需要输出电压为1.1 V,根据计算及芯片手册推荐值可得R1=12.7 kΩ、R2=12.7 kΩ。
由于输入电源中存在纹波干扰,因此须在电源电路的输入端和电源地之间并联加入0.1μF和10 μF电容(C1、C2)以减少外部的高低频扰动。同时为了保证电源电压减小输出纹波、稳定输出,输出端串联2.2 μH 电感(图3 的L1、L2),并联0.1 μF、10 μF 电容(图3 的C5、C6和C7、C8)。在PCB 的设计上,电源全部使用整平面层供电,所以每个滤波电容需要紧靠电源管脚放置,尽量减小寄生电感的产生。且电源芯片周围尽量多敷铜,以增强PCB 板的有效散热。
3 软件设计
3.1 图像采集软件实现
Hi3516D 内部集成图像捕获单元,可以接收HiSPi 等MIPI_Rx 接口的图像信号,采集之前需要配置VI 输入接口类型为HiSPi 的1080P 图像输入,即修改程序为stViConfig.enViMode=SAMPLE_VI_MODE_ HiSPi _1080P。系统在进行缓存池配置和MPP(海思多媒体软件平台)初始化后,图像数据开始输入[10-12]。
图像输入程序流程如图4 所示,首先打开MIPI接口设备文件,将接口模式配置成HiSPi 模式,设置VI_DEV_ATTR_S 结构体,其中包含图像输入设备属性(HI_MIPI_VI_SetDevATTR 接口)、图像分辨率(宽、高度参数为stDevAttr.stDevRect.u32Width 和stDevAttr.stDevRect.u32Height)等图像信息,调用HI_MIPI_VI_EnableDev 函数启动图像输入设备;然后定义并设置结构体变量VI_CHN_ATTR_S,这个结构体定义了图像输入通道属性,主要包含逐行扫描、目标图像的大小、像素格式等配置,调 用API 接口HI_MIPI_VI_EnableChn 函数启动图像物理通道。至此,图像输入模块结束,将采集到HiSPi 接口的图像数据送至下一模块。
图4 图像输入流程图
3.2 图像压缩软件实现
Hi3516D 内部集成了一个H.264 硬件编解码器,图像编码程序流程如图5 所示。首先,定义并设置结构体变量VENC_CHN_ATTR_S,这个结构体定义了通道属性,包含编码器属性配置(VENC_ATTR_S)、图像宽度高度等信息;然后,调用函数HI_MIPI_VENC_CreateChn 创建H.264 编码通道,并调用函数HI_MIPI_VENC_StartRecvPic 开始接收图像;最后,调用HI_MIPI_SYS_Bind 函数将VPSS(图像处理模块)通道与编码通道绑定在一起,用于创建线程接收H.264 压缩码流[13-15]。至此,图像编码模块结束,将压缩完的图像数据保存到本地或者通过传输接口送至外部。
图5 图像编码流程图
4 结果分析及验证
4.1 图像质量测试
该测试采用客观评价标准PSNR(峰值信噪比)来分析图像质量,PSNR 越高,质量越好。通常来讲,PSNR 值大于28 dB 时,图像质量无明显差异,处于[35 dB,40 dB]区间时,人眼已分辨不出图像之间的差异[16-17]。具体采用FFmpeg 软件将VENC 模块编码输出的H.264 文件转换成VI 模块采集输出的YUV文件,再通过Matlab 软件计算H.264 文件相对YUV文件的PSNR 值。
文中测试选取了4 种典型分辨率、帧频25 fps、两种拍摄画面(实验室的普通活动、网络视频的激烈打斗画面),每种情况分别计时15 min、30 min、45 min,最后得出PSNR 平均值,统计情况如表1 所示。
表1 多种分辨率、不同场合的PSNR 测试
分析表1 可知,该系统对于平缓画面的压缩质量较剧烈画面更好,而且每种情况下的PSNR 都处于[36 dB,37 dB]区间,客观表明本采集压缩系统图像质量良好,符合较高的实际需求。系统采集压缩后的图像如图6 所示。
4.2 压缩比测试
根据4.1 节的测试条件,计算压缩比=YUV 文件大小/H.264 文件大小,结果如表2 所示。
分析表2 可知,该系统对于剧烈画面的压缩比较平缓画面更高,因为剧烈画面的PSNR 要低于平缓画面,导致可能存在丢帧现象,所以压缩后的剧烈画面文件大小较小。整体平均压缩比大于150∶1(YUV文件大小∶H.264 文件),压缩性能良好。
图6 1 920×1 080分辨率的系统输出图片
表2 多种分辨率、不同场合的压缩比测试
5 结束语
文中设计采用高动态AR0230CS 图像传感器作为图像捕获前端、集成H.264 压缩硬核的高性能Hi3516D 芯片作为控制核心、高效率的电源模块,支持多种分辨率,最大输出能力为1 920×1 080@30fps,重建图像序列平均PSNR 大于36 dB,图像清晰流畅、稳定可靠,存储文件压缩比大于150∶1,较大地节省了存储资源,满足较高的嵌入式实际应用需求。