作者简介:邱文胜(1989—),男(汉族),福建省上杭县人,深圳大学硕士研究生. E-mail: qiuwensheng1@email.szu.edu.cn
中文责编:英 子; 英文责编:木 南
1)深圳大学光电工程学院,深圳 518060; 2)北京理工大学光电学院,北京 100081; 3)北京理工大学珠海学院信息学院,广东 珠海 518088
图像处理; 超分辨率复原; 高级RISC微处理器; 小波变换; Linux; V4L2接口; 视频图像采集程序; 峰值信噪比
Qiu Wensheng1, Niu Lihong1, Su Binghua2,3, and Wang Yuanyuan21)College of Optoelectronic Engineering, Shenzhen University, Shenzhen 518060, P.R.China2)School of Optoelectronics, Beijing Institute of Technology, Beijing 100081, P.R.China3)Institute of Information, Zhuhai Campus Beijing Institute of Technology, Zhuhai 519088, Guangdong Province, P.R.China
image processing; super-resolution restoration; advanced RISC microprocessor(ARM); wavelet transform; Linux; video for Linux two(V4L2)port; program for video image collecting; peak signal to noise ratio
DOI: 10.3724/SP.J.1249.2015.03311
为解决传统插值方法对采集的视频图像放大时易出现块效应和细节退化的问题,在高级RISC微处理器(advanced RISC microprocessor,ARM)平台上设计并搭建基于小波变换算法的嵌入式超分辨率复原系统.以ARM CortexTM-A8处理器(S5PV210)为核心搭建硬件平台,采用嵌入式Linux系统搭建软件开发环境,设计基于V4L2接口的视频图像采集程序.最后将基于小波变换的超分辨率复原算法植入系统.实验证明,该系统处理的视频图像,比传统插值方法处理的视频图像取得了更高的峰值信噪比,能够恢复出更多细节信息.
In order to overcome the disadvantage of the traditional methods for magnifying collected video images by interpolation, we design an embedded super-resolution restoration system based on advanced RISC microprocessor(ARM)and a wavelet transform algorithm. The hardware platform is an ARM CortexTM-A8 processor(S5PV210)as the core processor and the software development environment is embedded Linux. We implement a video image collecting program based on V4L2 and a super-resolution restoration algorithm based on wavelet transformation. Experimental results show that the peak signal to noise ratio(PSNR)is better than those processed by frequently used interpolation methods, and more detail in the images can be restored.
超分辨率复原是将一幅或多幅低分辨率图像复原到高分辨率图像的过程,其目的在于试图复原截止频率之外的信息,使图像获得更多的细节和信息[1].近年来,中国学者对超分辨率复原做了大量的研究[2- 4],大多是在Matlab等PC平台上实现的.PC系统较嵌入式系统而言,存在体积大、功耗高及成本高等缺陷[5].在实际应用中,对视频图像进行分辨率增强时,往往是用传统的插值方法,这容易造成块效应和细节退化等问题[6].针对上述问题,本研究设计了高级RISC微处理器(advanced RISC microprocessor,ARM)嵌入式平台的软硬件系统,并植入基于小波变换的超分辨率复原算法,实现对输入视频图像的超分辨率处理.
如图1,本研究设计的系统总体结构由视频图像输入模块、视频图像超分辨率复原算法处理模块和视频图像显示输出模块组成.系统工作时,通用串行总线(universal serial bus,USB)摄像头作为视频图像输入模块将采集到的数据送至缓存,然后由S5PV210 ARM处理器进行超分辨率复原处理,最后由液晶显示器(liquid crystal display,LCD)显示模块进行输出,或存放至SD卡(secure digital memory card)中进行储存.
本系统的核心处理器为三星公司的S5PV210处理器,它采用ARM CortexTM-A8内核,指令集为ARM v7,主频可达1 GHz,32 bits内部总线结构,32/32 kbit的数据/指令1级缓存,512 kbit的2级缓存,可实现2 000 DMIPS(每秒运算20亿条指令集)的高性能运算能力[7].选择S5PV210作为本系统的核心处理器是因为它在图像处理方面的独特优势:S5PV210支持H264和MPEG等格式视频硬件编解码; 支持HDMI等高清视频输出; 内嵌了PowerVR SGX540图像引擎,对图像处理提供强大的硬件加速支持.本系统选用的摄像头是最高分辨率为640×480的彩色USB摄像头,其传感器为CMOS,最大帧数为30 帧/s.系统选用的显示器是最大分辨率为800×480的彩色液晶显示屏.摄像头通过ARM外扩的USB接口与系统连接,液晶屏通过薄膜线与ARM外扩的薄膜线卡槽相连进行数据传送.
嵌入式软件设计包括嵌入式操作系统和用户应用程序,在设计视频图像采集程序之前,应预先移植嵌入式操作系统.本研究搭建的是Linux嵌入式操作系统环境.通过使用arm-linux-gcc建立交叉编译环境、移植Bootloader、移植Linux内核、制作根文件系统等步骤,完成ARM平台上嵌入式Linux系统的搭建[8].
本视频图像采集程序是基于Video For Linux2(V4L2)接口进行设计的.V4L2是Linux内核中关于视频设备的驱动,为Linux中视频设备访问提供了通用接口[9-10].本系统采集视频图像程序的流程如图2.
按照流程图设计并编写程序.在V4L2中,将视频设备视为一个文件,用open函数打开.系统使用的摄像头最大分辨率为640×480,将其降采样为320×240格式,这样超分辨率复原处理后达到640×480的视频图像,便于显示在800×480的液晶屏上.
用mmap函数将在内存空间中获取的视频帧映射到用户空间.同时将申请到的帧缓冲反倒队列之中,用来保存采集到的图像数据.对每一帧图像进行超分辨率复原处理,输出到LCD进行显示.
最后调用close函数关闭摄像头.
本系统采用基于小波变换的超分辨率复原算法对采集的视频图像进行处理.小波变换将图像分割为不同频率的成分,通过在不同尺度下的操作可实现图像超分辨率复原.
在使用传统插值方法对图像进行分辨率增强时,最大的缺陷是高频信息的丢失(例如边缘信息),这主要缘于插值带来的平滑效应.对图像进行离散小波变换(discrete wavelet transform,DWT),则可有效地保持图像的高频信息.
设L2(R)为能量有限的空间信号,如果函数Ψ(t)∈L2(R)满足∫-∞+∞Ψ(t)dt=0, 则该函数称为基本小波,或称母小波.对母小波进行伸缩和平移后生成的小波[11]为
{Ψa,b(t)}=a-1/2Ψ((t-b)/a), a,b∈R(1)
其中, a是尺度因子; b是平移因子.
令a=am0, b=nb0am0, m,n∈Z, a0>1, b0∈R, 则f(t)的DWT为
Wf(m,n)=a-m/20∫-∞+∞f(t)Ψ(a-m0t-nb0)dt(2)
但是,在执行DWT时,需对图像进行下采样,这会造成信息丢失.因此,可采用平稳小波变换(stationary wavelet transform,SWT)弥补丢失信息.
SWT与DWT相似,但不需经过下采样,其尺度系数与原始信号等长[12-14]
Aj, k1/sub>, k2=∑n1∑n2h↑2j0(n1-2k1)h↑2j0(n2-
2k2)Aj-1, n1, n2(3)
D1j, k1, k2=∑n1∑n2h↑2j0(n1-2k1)g↑2j0(n2-
2k2)Aj-1, n1, n2(4)
D2j, k1, k2=∑n1∑n2g↑2j0(n1-2k1)h↑2j0(n2-
2k2)Aj-1, n1, n2(5)
D3j, k1, k2=∑n1∑n2g↑2j0(n1-2k1)g↑2j0(n2-
2k2)Aj-1, n1, n2(6)
式(3)至式(6)为SWT的重构过程. 其中, j为当前尺度; n1和n2为对应的系数序列; k1和k2为移动因子; Aj, k1, k2、 D1j, k1, k2、 D2j, k1, k2和D3j, k1, k2分别表示SWT后的低频分量、水平高频分量、垂直高频分量和对角分量; h↑2j0和g↑2j0则表示在h0和g0之间插入2j-1个0.
如图3,本系统采用DWT与SWT结合的算法来对图像进行超分辨率复原处理.
其中, LL、LH、HL和HH分别为小波变换后图像的低频子带、水平方向高频子带、垂直方向高频子带和对角方向高频子带.
算法的具体步骤为:
1)对低分辨率图像插值放大,再进行离散小波变换(DWT),得到4幅不同的子带图像.其中,低频子带图像(LL)包含图像的大部分信息(低频信息); 3幅高频子带图像(LH、HL和HH)包含图像的高频成分.
2)对原始低分辨率图像进行平稳小波变换(SWT),也得到1幅低频子带图(LL)和3幅高频子带图(LH、HL和HH).
3)分别将DWT与SWT得到的3幅高频子带图相应进行叠加,得到修正后的3幅高频子带图.
4)将经过修正的3幅高频子带图像和DWT得到的低频子带图像结合在一起,通过离散小波逆变换(inverse discrete wavelet transform,IDWT)获得一幅高分辨率的输出图像.
首先,为DWT、SWT和IDWT分别申请4块动态内存空间,用以存放对应频率的子带图.其次,读取低分辨率图像数据,采用小波滤波器进行低高通滤波,实现DWT和SWT操作.DWT滤波后需要进行下采样,而SWT不需要.再次,将修正后的4幅子带图像进行IDWT操作,通过与DWT中的滤波器相对应的滤波器进行低高通滤波,再进行上采样.最后,将处理后的数据保存,即为复原后的高清图像.
为验证系统采用的超分辨率复原算法的效果,选用标准的5幅512×512高分辨率图像(Baboon、Barbara、Gold hill、Lena和Peppers)作为测试图像.首先,分别对测试图像进行下采样,得到256×256的低分辨率输入图像.然后,选用传统的双线性插值、双立方插值与本研究采用的方法分别对这些低分辨输入图像进行处理,水平与垂直方向的放大因子均为2.最后,将不同算法处理得出的图片分别与其对应的原始高分辨率进行比较,计算出相应的峰值信噪比(peak signal to noise ratio,PSNR)值.实验结果如表1.
PSNR是用于衡量增强后图像与原始高清图像或者目标的逼近程度的参量.PSNR值越高,说明复原效果越好[15].由表1可见,本研究采用的算法效果优于传统双线性插值和双立方插值算法.图4为不同算法对Barbara图像处理后的局部效果对比.由图4可见,本算法处理后较好地保持了边缘信息,能体现更清晰的图像细节.
为验证本算法植入ARM平台后能否保持超分辨率复原效果,将测试图像拷贝到ARM平台的SD卡中,并在ARM平台上用本算法对图像超分辨率复原进行处理.对处理后的图像也进行测试.将测试所得PSNR值与本算法在PC平台上处理后得到的PSNR值进行对比,结果如表2.
由表2可见,在PC平台和ARM平台上,经本算法处理的图像的PSNR值相差0.42%以内(图像Lena的差异最大),表明该算法在ARM平台上保持了超分辨率复原效果.差异可能是由于ARM与PC的处理器架构不同引起的[5].
将本算法移植到ARM视频图像系统中,提取采集到的每一帧(320×240低分辨率视频图像)的R、G、B通道,并分别对3个通道进行超分辨率处理,处理后再合成彩色图像,最后形成 640×480高分辨率图像在LCD上进行显示.处理前后效果如图5,可见在ARM平台上算法对视频图像处理后边缘清晰、细节丰富.实验测得每帧图像的平均处理时间为3 194.607 ms,实时性不高.主要原因是处理器硬件性能的限制及算法程序的优化不够好.
本研究设计了以S5PV210为核心的嵌入式图像处理系统,对视频图像实现了基于小波变换的超分辨率复原处理.采用本算法得到的复原图像较使用传统插值算法得到的复原图像,PSNR值更高,恢复的细节信息也更多.该系统处理视频图像的实时性不强,因此如何提高处理速度,仍需进一步探索.
深圳大学学报理工版
JOURNAL OF SHENZHEN UNIVERSITY SCIENCE AND ENGINEERING
(1984年创刊 双月刊)
主 管 深圳大学
主 办 深圳大学
编辑出版 深圳大学学报理工版编辑部
主 编 阮双琛
国内发行 深圳市邮电局
国外发行 中国国际图书贸易集团有限公司(北京399信箱)
地 址 北京东黄城根北街16号
邮 编 100717
电 话 0755-26732266
0755-26538306
Email journal@szu.edu.cn
标准刊号 ISSN 1000-2618
CN 44-1401/N