基于DM368的无人机视频压缩系统的设计

2014-11-09 09:09:00吴笑天鲁剑锋王宇庆陈典兵
液晶与显示 2014年6期
关键词:应用层硬核内核

吴笑天,鲁剑锋,王宇庆,陈典兵

(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 510640;2.中国科学院大学,北京 510640)

1 引 言

无人机是一种近年来倍受各国青睐的高性能信息化装备,具有起降简单,操作灵活,成本低廉,不惧伤亡等多种优势。无人机的出现极大丰富和改变了战争的模式,在航空侦察、情报支援、电子干扰等诸多领域发挥着不可替代的作用[1-2]。无人机在实战中体现出的最大优势在于情报获取上,而图像数据则又是情报数据的重要内容之一,因此无人机的图像处理技术将对其作战性能的提升产生很大的影响,各类图像预处理算法在该领域均有着广泛的应用,如配准、校正、图像增强等[3-5],本文将重点研究无人机的图像压缩技术。

无人机所获取的高分辨率图像信息需要经过无线链路传输至地面终端显示,但即便是每秒25帧的CIF图像(352×288)也将产生每秒约2.5 MB的数据量。因此,利用数字化手段对无人机获取图像进行机上实时在线压缩处理成为无人机视频数据传输的关键技术[6]。无人机对其承载的电子学设备有着很高的要求,其有限的能量供应决定了其电子学设备必须具备尺寸小、重量轻、功耗低等特点[7]。传统的嵌入式H264板级压缩系统多采用高性能DSP或FPGA实现软件编码[8-9]。但上述设计方案往往存在着成本高、功耗大、软件实现复杂等弊端。本文基于TM320DM368和嵌入式Linux技术实现出一种可供无人机使用的视频实时压缩处理系统。本系统依赖该芯片内嵌的视频协处理硬核执行H264编码,以嵌入式Linux为板级操作系统,可稳定高效的管理视频采集、硬核调度、串口通讯、数据输出等诸多任务。试验结果表明,本系统可实时采集PAL制式视频源,执行实时H264编码任务,并将压缩后的数据通过通用高速串行接口SPI经无线链路处理单元传输至地面终端显示输出。本系统平均功耗仅为1.5W,具有功耗低、成本低、体积小、重量轻、实时性强等诸多优势,能够满足无人机视频压缩的应用需求。

2 系统硬件设计与系统架构

2.1 主处理器

无人机有限的能量供应决定了其电子学设备必须具备体积小、重量轻、功耗低等特点。同时,无人机广泛的地域应用范围又对其电子学设备提出了较高的环境适应性要求。为了满足这些要求,本系统的主芯片选取了TI公司生产的专用数字多媒体低功耗处理芯片TMS320DM368,简称DM368。选取DM368为本视频压缩系统的核心处理器主要基于如下的考虑:

1.高性能的主核处理器 DM368的主核是主频432MHz的ARM926EJ-S处理器,同时内置 了16K 的Instruction Cashe,8K 的 Data Cashe,32K片内RAM,16K片内ROM等诸多内部资源,可运行嵌入式实时Linux操作系统,能够在实时操作系统的调度下完成各类复杂的无人机数据交互工作。同时该芯片采用65nm工艺技术加工,性能稳定,成本低廉,批量价格约为100RMB/片。

2.硬件化的辅核处理器 DM368片上集成了硬件化的图像处理协处理器(HDVICP和MJCP),上述协处理器可运行 H.264-BP/MP/HP,MPEG4等多种视频编解码算法,在协处理器硬核上执行H.264编码等视频处理时,不占用ARM主核资源。该协处理器上限可支持1080P-30fps的视频数据压缩。由于图像协处理器以硬件化的形式固化在芯片中,较比同系列的TMS320DM6467或其他双核架构的Davinci系列芯片,在执行H264编解码等图像处理操作时有着更低的功率消耗。与其他系列Davinci芯片相同的是,DM368亦包含视频前端处理模块(VPFE)和视频后端处理(VPBE)模块。利用这些模块,应用层程序可在DMAI中间层和片上实时Linux操作系统的基础上方便的管理各类视频数据的输入与输出。

3.丰富的外部接口资源 DM368有着丰富的逻辑接口。DDR2高速接口可直接外接DDR2存储器,由嵌入式Linux对DM368内嵌的DDR2控制执行读写控制;EMIF接口可外接NAND Flash Memory或FPGA设备,以实现芯片间数据的高速传输存储;USB接口具有USB2.0高速通信能力,可工作在OTG模式;具备5个SPI高速串行通信接口,可作为数据输出口对外通讯,亦可 外 挂 SPI 设 备;10/100Mb/s 以 太 网 接 口EMAC,可作为数据输出口对外交互数据或在网络挂载时使用;以及标准IIC,标准UART,Key Scan等常见外设接口。

4.较高的环境适应性要求 采用了65nm工艺技术加工的DM368,其工业级系列产品的温度适应性范围为-40℃~80℃,能够满足无人机严苛的环境适应性要求。

2.2 系统硬件架构

本系统以DM368为核心处理器,主要由视频采集模块、存储器模块、标准外设模块(如UART、EMAC、SPI等)和电源模块组成,本系统的硬件架构如图1所示。

图1 系统硬件架构Fig.1 Hardware architecture of system

1.视频采集模块 由于课题需要,本系统分时采集双路标准模拟PAL视频,并可依照地面站软件的命令实现双路视频的自由切换。为此,我们选择具有双通道10-bit模数转换芯片TVP5147。选择该款芯片主要基于如下的三点考虑:(a)TVP5147内嵌双路高性能低功耗AD转换器,可同时外接两路视频输入,能够满足本课题分时采集双路视频输入的系统要求。(b)TVP5147支持多种制式的模拟视频,如PAL、NTSC、SECAM;支持多种输入方式,如CVBS、SVideo、YPbPr,其中CVBS输入方式较另两种方式简单,除共地所需的一根地线外,仅需要单个引脚即可实现信号的输入。(c)TVP5147可配置成10-bit,4:2:2-YCbCr的 BT.656码流形式输出,可 与 DM368 内 嵌 的 8-bit,4:2:2-YCbCr 的BT.656接口无缝对接(10-bit对接8-bit接口时,需舍弃低两位)。本课题中,双路视频源均采用PAL制式,以CVBS方式输入至TVP5147。TVP5147芯片的初始化以及控制工作由主控设备通过IIC总线配置芯片内部寄存器实现,后文将详细阐述其IIC总线接口以“视频子设备”的形式存在于V4L2的视频框架内,并有专门的驱动与之相对应。

2.存储器模块 DM368作为一个嵌入式系统的核心处理器,同标准电脑CPU一样,需要“内存”“外存”设备辅助其工作。DM368内嵌的DDR2接口以及DDR2控制器可以方便的外接DDR2设备。一般地,Linux操作系统稳定而流畅的运行需要80MB的内存空间,应用层程序所开辟的缓存区大约需要30MB左右的内存空间[10],并综合考虑低功耗要求等因素,本系统最终选择了一片128MB的DDR2芯片K4T1G164QF作为本系统的“内存”芯片。DM368集成的EMIF接口可以方便的外接外部存储器。该外部存储器需要有足够的空间存储Bootloader,Linux内核以及文件系统。本系统综合考虑存储空间需要以及低功耗需求,最终选取了 一 片128MB的 NAND FLASH 芯 片K9F1G08U0C作为本系统的“外存”芯片。

3.标准外设模块 DM368内嵌了常用的标准外设接口,这使得外设功能电路的设计变得较为简单。但是由于无人机内部各分系统间电磁干扰较大,除了加装屏蔽壳等手段外,电子学系统仍需要特殊的设计以降低系统间的电磁干扰。在本课题中主要应用到了5个标准接口,分别为调试串口(Debug UART),标准通讯串口(UART),网口(EMAC),IIC接口和高速串行通信接口(SPI)。其中,调试串口和网口是DM368在线调试以及程序下载时使用,在机上离线状态时不使用。IIC接口在DM368对TVP5147执行命令配置操作时使用,属板内芯片间通讯,不需要考虑系统间的电磁干扰因素。标准通讯串口和高速串行通信接口是本系统的对外数据交互接口,需要充分考虑系统间的电磁干扰性问题。其中本系统由标准通讯串口接收外部操控命令,由高速串行通信接口对外实时传输H264压缩数据。为此,本系统使用了MAX3295等芯片以“差分对”的形式传输上述数据信号,并在数据接口连接器附近加装“穿心电容”,以充分降低本系统对外部设备的电磁干扰。试验结果表明,外设接口采用上述设计后,能够有效降低系统间数据传输的误码率,提升本系统电磁干扰的承受能力,同时有效降低对外部系统的电磁辐射影响。

4.电源模块 DM368嵌入式系统的电源电路采用双级设计。第一级将外部供电电压12V转换为5V,第二级由5V分别转换为DM368需要的3种供电电压值,即1.35V的内核电压,1.8V的DDR2芯片电压以及3.3V的IO电压。在本系统中,第一级转换芯片采用TI公司的TPS54331,该芯片的输入电压范围可从3.5V至28V,能够满足无人机各类特殊的供电电压需要。第二级采用TI公司的TPS65251,该芯片可方便的将5V电压转换为DM368所需的多种电压值,并可依据DM368手册所规定的内核电压、DDR电压以及IO电压上电要求调整上电顺序[11-12]。

3 系统软件设计

3.1 视频数据采集

视频采集是本系统的核心功能,也是软件编程工作量最大、架构最为复杂的部分。视频码流数据从底层硬件采集至顶层应用程序调用需要经历硬件层、内核层、应用层3个层次的数据处理及封装,如图2所示。

图2 视频采集三层框架Fig.2 3-level software framework of video capture

在硬件层明确了AD芯片与DM368物理上的电气连接;内核层中涉及视频数据处理的工作主要由Linux视频驱动开源标准V4L2规范下的VPFE驱动完成;应用层经TI公司提供的中间层软件dmai封装处理后以几个简单的函数接口交付给应用层以供视频数据的后续处理。本章节将单独讨论视频采集软件程序设计,即视频数据的内核层与应用层架构设计。

3.1.1 内核层视频数据处理

在内核层中,Linux下的视频设备驱动需要遵循统一的开源标准V4L2(Video For Linux 2)。V4L2是V4L的升级版,是专门针对Linux视频捕获设计的开源程序接口,并逐步发展为Linux视频驱动规范,广泛应用于各类带有视频采集、控制功能的嵌入式视频系统中,如视频会议、视频监控、视频导航等。V4L2能够适应越来越复杂的视频采集硬件。大部分视频采集硬件的控制需要借助视频口外的其他接口,如本课题中TVP5147所内嵌的IIC接口。这些视频控制接口与视频驱动程序休息相关,并以“视频子设备”的形式融入V4L2框架中。V4L2在内核层中细化为双层驱动。

双层驱动架构的顶层为V4L2dev设备。该设备的定义存在于内核文件V4L2-dev.c中。在该文件下,主要完成两部分工作:(a)向内核提供接口函数,即内核的加载卸载函数。(b)设备接口函数,即虚拟文件系统与V4L2设备的交互接口。

Linux系统中用户对设备的操作采用文件接口方式实现,虚拟文件系统将用户对文件的操作转化为具体的设备操作,它包括硬件探测、初始化、设备读写以及设备控制等标准化操作。V4L2设备驱动的主要工作就是具体实现这种转化过程工作。这样V4L2标准向上就可以为应用层程序提供清晰、统一、标准的API函数接口,如open(),close(),read(),write(),ioctl(),mmap()等。通过这些接口函数应用层程序可方便的实现V4L2设备的打开,关闭,IO控制以及内存映射等功能。其中,open(),close(),read(),write()函数分别实现了V4L2设备的开关读写;ioctl()函数则承担了V4L2设备的命令交互查询等重要操作;mmap()函数可以将设备内存映射到应用程序空间,避免了在视频采集过程中频繁的内核态至用户态的数据拷贝操作。

V4L2双层架构中的底层驱动为VPFE设备驱动。VPFE是DM368的视频处理前端模块,由CCDC、IPIPE、IPIPEIF、H3A 四个模块组成。底层的VPFE驱动可以认为是一个videodev设备,该设备的定义存在于内核文件vpfe_capture.c中。在该文件下,主要完成如下的三部分工作:(a)向内核提供函数接口,即内核的加载卸载函数。(b)实现硬件探测、移除功能。其中,硬件探测函数probe()函数是底层硬件初始化工作的载体,它是在驱动注册加载时运行的,它主要完成两部分工作。其一是检测VPFE设备是否存在,若存在则将VPFE配置成V4L2_dev设备,完成寄存器初始化工作,并向V4L2层的注册;其二是查询当前系统的V4L2_subdev设备。在本课题中,数字视频解码芯片TVP5147的配置接口IIC就是一种常见的V4L2子设备。TVP5147的IIC子设备有自己独立的驱动,但是其驱动的调用却是在V4L2_dev设备探测函数阶段完成。通过调用TVP5147的IIC子设备驱动,可完成其初始化配置工作,并将它们与已注册的V4L2_dev设备相连接,并向 V4L2层注册。(c)完成 V4L2_ioctl_ops域实现。应用层程序通过ioctl()函数实现视频设备的查询控制操作,其最终调用的是内核层的video_device的ioctl_ops域下的具体函数,即V4L2_ioctl_ops域下的具体函数实现。

TVP5147的IIC子设备驱动同样隶属于V4L2双层架构中的底层。在视频硬件设备中,存在种类繁多的子设备,如IIC、USB等。在V4L2架构中,将涉及子设备控制的那部分功能单独独立出来,如vidioc_s_ctrl、vidioc_s_frequency等,并将它们最终封装在V4L2_subdev中供顶层程序调用。TVP5147的IIC子设备驱动存在于内核文件tvp514x文件中。在该文件下,主要完成如下三部分工作:(a)向内核提供函数接口,即内核的加载卸载函数。(b)实现硬件探测、移除功能。其中探测函数probe()的功能与VPFE大体一致,在驱动注册时完成芯片的探测以及初始化工作。(c)完成 V4L2_subdev_ops域的具体实现,该域一般包含了通用操作合集、调谐器操作合集、音频操作合集以及视频操作合集。其中TVP5147作为视频解码芯片,仅需要实现通用操作合集以及视频操作合集两个部分即可。

3.1.2 应用层视频数据处理

在应用层中,用户可以利用V4L2的顶层程序接口实现V4L2设备的控制。但是V4L2的驱动设备调用同样需要遵循一定的流程,如视频设备文件的开关、视频制式的设置、视频帧缓冲的申请与管理、帧缓冲的用户空间映射等等繁琐的操作。为了简化这些操作,TI公司在应用层又专门开发了一套DMAI库以帮助程序员简化V4L2设备的控制流程。DMAI全称为Davinci Multimedia Application Interface,是 TI专门针对达芬奇架构推出协助程序员开发的位于应用层的通用API接口。其内涵不仅包含了上文所述的视频处理,同样也包含Codec Engine管理,线程同步,内存管理等诸多方面。

3.2 应用层程序设计

系统软件应用层采用多线程程序框架,主线程由main.c定义,子线程为capture线程,video线程、write线程和uart线程。在主线程下完成其余线程的初始化工作后,转换为控制线程,用于采集分析其它线程的运行状态并在终端打印输出;capture线程基于DMAI框架与视频驱动节点(/dev/video0)执行视频控制与数据交互,采集到的视频裸数据经FIFO管道机制交付给video线程进行数据后续处理;video线程主要负责视频数据与系统硬核的调度,从capture线程取来的视频裸数据交付给DM368压缩硬核执行数据压缩,从硬核取出的数据即为H264码流数据,同样经FIFO管道机制交付给下级线程——write线程;write线程专注用于数据处理,该线程从FIFO管道中取出从video线程处获取的H264码流数据,将H264码流数据经组包协议处理后经硬件SPI口发送,同时write线程还需监控uart线程,完成uart串口数据的组包,解包,解析等操作,并依靠uart线程完成本系统与外部中控系统的数据交互工作;uart线程任务较为单一,由于组包解包工作在write线程完成,因此该线程仅完成串口裸数据的读写操作。上述四个线程宏观并行,微观串行执行,由嵌入式板级Linux系统管理线程间调度。本系统应用层软件的多线程程序架构参见图3所示。

图3 多线程程序框架Fig.3 Multi-task software framework

4 实验结果

本系统软件开发环境如下:

(a)嵌入式Linux内核版本号为2.6.32.17;

(b)交叉编译环境 arm-none-linuxgnueabi-4.3.3;

(c)DMAI软件版本号为2.20.00.15;

(d)宿主机 VMWare-Ubuntu-12.04

在实验室环境下,使用地面站解码系统为接收端评估本系统效果。编码端与解码端采用SPI对点对接方式,解码端以PAL制式输出解码视频至外部显示屏。试验表明,本系统运行稳定,串口命令响应无延迟,地面接收端输出的图像清晰流畅,没有失真及马赛克现象引入。系统延迟约为0.6~0.9s之间。此处需要补充说明的是上述延迟时间是由本系统编码端硬核编码,SPI组包,SPI传输,地面解码端SPI解包以及解码共同决定的。系统在12V稳压电源供电情况下,工作时输出电流为0.13左右,功耗约为1.5W。图4是解码端的图像效果截图。

图4 解码端图像效果截图Fig.4 Graphic result captured from decoding system

5 结 论

无人机有限的能量供应决定了其电子学设备必须具备尺寸小、重量轻、功耗低等特点。本文结合工程应用背景,设计出一套可供无人机使用的低功耗视频实时压缩系统。系统以DM368为核心处理器,以嵌入式Linux为板级操作系统。系统软件内核层基于V4L2架构实现视频采集,应用层基于多线程架构实现视频采集,硬核调度,串口通讯,数据输出等诸多任务。试验结果表明,较比传统的嵌入式视频H264软件编码压缩系统相比,本系统在处理PAL制式为视频源的H264编码任务时,平均功耗仅为1.5W,具有功耗低,成本低、体积小、重量轻、实时性强等诸多优势,能够满足无人机视频压缩的应用需求。

本系统以DM368为核心处理单元,依赖内嵌的视频协处理硬件编码H264视频具有一定的弊端。其一,由于系统调用DM368固化的协处理压缩硬核,用户仅能对硬核开放的接口进行控制,对于未开放的部分则不能控制,并需要对硬核要求对视频做适当的调整,比如视频源分辨率需调整为2K×2K以下,行列均为32的整数倍等。若针对大视场非标图像且明确要求不可损失分辨率的情形,则不在DM368可处理的范围之列;其二,由于DM368内嵌的协处理压缩硬核需在嵌入式Linux的管理调度下运行,不能在无操作系统的环境下运行。嵌入式Linux是一种实时化操作系统,但是“实时”的概念是指系统正常加载运行后系统调度和响应的“实时”。在嵌入式Linux没有加载完成之前,系统无法对外界激励作出正常响应。因此,本系统不适宜在“上电即运行”特殊项目背景下工作。本系统内核经优化裁剪处理后,启动时间约为15s。尽管存在上述弊端,但是以DM368为核心的视频压缩系统以其功耗低、成本低、体积小、重量轻、实时性强等诸多优势成为了业界主流的视频压缩技术方案之一。

[1]冯琦,周德云.军用无人机发展趋势[J].电光与控制,2003,10(1):9-13.Feng Q,Zhou D Y.The development trend of unmanned air vehicle[J].Electronics Optics & Control,2003,10(1):9-13.(in Chinese)

[2]秦博.无人机发展综述 [J].飞航导弹,2002,8:4-9.Qin B.The overview of unmanned air vehicle development trend [J].Winged Missiles Journal,2002,8:4-9.(in Chinese)

[3]杨权,刘晶红,马晓飞.基于图像处理的机载光电平台自动调焦方法 [J].液晶与显示,2011,26(5):677-682.Yang Q,Liu J H,Ma X F.Auto-focusing method based on image processing for airborne electro-optical imaging platform [J].Chinese Journal of Liquid Crystals and Displays,2011,26(5):677-682.(in Chinese)

[4]尹传历,王啸哲.机载嵌入式图像增强系统设计与实现 [J].液晶与显示,2013,28(4):604-607.Yin C L,Wang X Z.Design and realization of airborne embedded image enhancement system [J].Chinese Journal of Liquid Crystals and Displays,2013,28(4):604-607.(in Chinese)

[5]李刚,张赫.机载光电平台实时图像消旋 [J].液晶与显示,2014,29(2):304-309.Li G,Zhang H.Real-time image rotation-elimination for airborne photoelectric platform [J].Chinese Journal of Liquid Crystals and Displays,2014,29(2):304-309..(in Chinese)

[6]催麦会.无人机视频情报压缩传输技术[J].电讯技术,2007,47(1):130-133.Cui K H.Compression transmission technology of UAV video intelligence[J].Telecommunication Engineering,2007,47(1):130-133.(in Chinese)

[7]鲁剑锋.无人机光电载荷图像处理器的设计 [J].中国光学,2011,4(5):448-452.Lu J F.Design of image system in opto-electrical payloads on UAV [J].Chinese Journal of Optics,2011,4(5):448-452.(in Chinese)

[8]宋扬.基于TMS320DM642DSP的H.264编码器优化与设计 [D].西安:西安电子科技大学,2007.Song Y.The design and optimization of H264encoder based on TMS320DM642[D].Nanjing:Nanjing University of Science and Technology,2007.(in Chinese)

[9]刘志刚.基于FPGA的H.264编码器的硬件的实现[D].西安:西安电子科技大学,2009.Liu Z G.Hardware implementation of H.264encoder based on FPGA [D].Xi`an:Xidian University,2009.(in Chinese)

[10]王飞.基于Davinci技术的视频编码系统实现[D].西安:西安电子科技大学,2012.Wang F.Implementation of video encoding system based on Davinci technology [D].Xi`an:Xidian University,2012.(in Chinese)

[11]林振.基于TMS320DM368的高清网络摄像机的设计 [D].广州:华南理工大学,2012.Lin Z.The design of a net camera based on TMS320DM368[D].Guangzhou:South China University of Technology,2012.(in Chinese)

[12]李宇成,李聪.基于DM368的视频处理及软件设计 [J].计算机测量与控制,2013,21(10):2865-2871.Li Y C,Li C.Video processing based on DM368and software design [J].Chinese Computer Measurement and Control,2013,21(10):2865-2871.(in Chinese)

猜你喜欢
应用层硬核内核
万物皆可IP的时代,我们当夯实的IP内核是什么?
现代装饰(2022年4期)2022-08-31 01:41:24
强化『高新』内核 打造农业『硅谷』
今日农业(2021年9期)2021-07-28 07:08:36
硬核爷爷炼成记
学生天地(2020年17期)2020-08-25 09:28:38
“硬核”举措下的暖心举动
人大建设(2020年2期)2020-07-27 02:47:52
用“三个最严”彰显“硬核”担当
公民与法治(2020年6期)2020-05-30 12:44:00
陕西制造需要“硬核”
当代陕西(2019年14期)2019-08-26 09:42:14
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
基于分级保护的OA系统应用层访问控制研究
新一代双向互动电力线通信技术的应用层协议研究