基于OV2640的微型胶囊内窥镜系统设计*
2014-12-31徐建省吴怀宇
程 磊,刘 波,徐建省,吴怀宇,陈 洋
(1.武汉科技大学信息科学与工程学院,湖北武汉 430081;2.中国科学院 电工研究所,北京 100190)
0 引言
目前,随着人类对医疗设备舒适度的逐渐提升,传统的直插式消化道检测系统已经不能满足人类的需求,同时为了提高消化道疾病的检查效率,出现了能够进入人体消化道的胶囊内窥镜检测系统[1~4],通过胶囊内窥镜消化道的检查,不仅可以减轻患者的痛苦,而且可以对整个消化道进行更全面的检查。胶囊内窥镜在体内检测的关键技术在于图像数据的采集与传输[5,6],同时对体积大小和功耗的要求较高。
为了满足体内无线图像的传输,本文设计了用内部集成了增强型8位单片机、具有2.4 GHz频率收发功能的nRF24LE1低功耗芯片控制CMOS图像传感器OV2640获取图像的方案,其中图像传感器OV2640能够实现JPEG压缩算法,可以在不影响图像视觉效果的前提下减小图像数据量,为无线图像的传输和处理提高了方便,该系统具有体积小、功耗低、通信可靠等优点,能够实现体内无线图像采集与传输的需求。
1 胶囊内窥镜JPEG图像压缩算法
通过JPEG压缩处理后的图像,降低了图像的数据量,一帧图像数据的发送时间和功耗明显降低[7]。传输JPEG压缩格式的图像时,不仅能够提高无线胶囊内窥镜的发送速率,而且提高了其工作时长。JPEG 压缩算法简单的分为以下4个主要步骤:
1)预处理:颜色空间的变换(RGB变换至YCbCr),色彩信号的抽样。
由于人眼对于色度Cb与Cr分量的敏感程度远小于亮度Y分量,因此,可以适当地对Cb和Cr分量进行削弱以达到压缩图像数据的目的,RGB和YCbCr之间的转换关系如式(1)所示
2)离散余弦变换
由于相邻像素直接具有很强的相关性,而离散余弦变换(DCT)是一种正交变化,可以分离出这种相关性,方便在压缩过程中去除一些不需要的细节信息[8],一般每个分量矩阵(Y,Cb,Cr)被分割成8×8的像素块大小,经过二维DCT以后,可以得到一个成8×8的系数矩阵,DCT及其相应的逆变换公式如(2)和式(3)所示
式中C(u)=C(v)=1/(u=0或v=0);C(u)=C(v)=1(其它情况)。x,y为图像数据矩阵内某个数值的坐标,f(x,y)为像素值,F(u,v)为变换系数,u,v为系数下标。
3)量化和Zigzag重排
量化是对经过DCT后的频率系数进行量化。量化的目的是减少非“0”系数的幅度,增加“0”值系数的数目,量化是图像质量下降的最主要原因。量化因子Q来控制图像压缩的比例,取值范围可以取[1,100]所有的整数值,量化过程可以通过下式表示
式中D(x,y)为没有量化的 DCT系数(0≤x≤7,0≤y≤7),Q(x,y)为对应量化表中的量化步长。round为取整操作,(x,y)表示取整后的值。x,y越大,则Q(x,y)越大,通过取整后的高频系数为0,从而达到压缩数据的目的。
Zigzag重排就是将8×8量化的DCT系数按照频率从低到高排列为一维数组,目的是为了增加连续的“0”系数的个数,方便随后进行的编码,如图1所示。
4)编 码
编码包括直流(DC)系数的编码、交流(AC)系数的编码和熵编码。
图1 量化DCT系数和Zigzag扫描Fig 1 Quantized DCT coefficients and Zigzag scanning
DC系数有2个特点:一是系数值比较大,二是相邻8×8图像块的DC系数值变化小[9],因此,使用了差分脉冲调制编码(DPCM)技术,如式(5)所示,对相邻图像块之间的系数差值(Delta)进行编码
AC系数的特点是1×64矢量中包含有许多连续的“0”。根据这一特点,可以使用简单的游程长度编码(RLE)对它们进行编码。
熵编码可以对处理后的系数作进一步的压缩。使用霍夫曼编码器可以使用很简单的查表(lookup table)方法进行编码,最后把编码后的图像数据组成一帧一帧的数据[9]。经过4个主要步骤后,可以得到JPEG图像,通过控制合适的压缩比,可以获得小数据量的图像,更加有利于无线胶囊内窥镜的图像传输。
2 胶囊内窥镜的系统设计
2.1 主要芯片的选择
对于图像传感器,考虑到应尽量减少传输数据量的问题,选用带JPEG数据压缩功能的OV2640 CMOS图像传感器。OV2640可以直接输出压缩的JPEG格式图像[10],从而可以大大降低所需要传送图像文件的大小,如一张CIF(352×288)分辨率的RGB565(或者YUV422)图片大约是198 kB,而采用16倍压缩的JPEG文件为约10 kB。
对于无线传输,采用Nordic半导体的 nRF24LE1芯片[11],把性能优异的2.4GHz收发器核(nRF24L01+)和一个增强型8051混合信号微控制器集成在一块芯片上,同时,在空中传输速率可以达到最高2 Mbit/s,该芯片封装仅为5 mm×5 mm,发送电流仅为11.3 mA,并且抗干扰性强,可以实现胶囊内窥镜系统的控制与无线发送接收功能。
2.2 系统结构简介
无线胶囊内窥镜系统构成的原理框图如图2、图3所示。系统主要包括2个子系统:体内胶囊内窥镜,体外无线数据接存储。前者主要包括:LED照明模块、摄像头OV2640模块、nRF24LE1发送模块和电源,患者通过吞服胶囊内窥镜,内窥镜将采集到的消化道图像信息传出体外,由于在体内工作,所以,要求其体积较小,功耗低,图像传输速度快;后者主要包括nRF24LE1接收模块、数据存储器和PC工作站。其任务是接收体内传输出的图像数据,存储并经过JPEG解码得到相应的图像。本系统通过C8051F060混合信号片上系统型MCU开发板与nRF24LE1模块连接,接收来自体内的JPEG数据经过RS—232上传到PC,并经过JPEG反编码实现图像数据的显示。通过技术分析,该系统主要难点在于体内胶囊内窥镜设计上,所以,本文主要对体内部分做深入研究。
图2 体内胶囊内窥镜Fig 2 Capsule endoscope in vivo
图3 体外无线数据接收存储子系统Fig 3 Subsystem of wireless data receiving and storage in vitro
2.3 体内胶囊内窥镜硬件系统设计
图4给出了体内胶囊内窥镜图像采集与发送的典型电路,外围结构由晶振、I/O端口和天线单元三部分组成。由电路图可知,整个系统的外围电路简单,其中,nRF24LE1的多功能I/O口P0.6,P0.5分别连接摄像头OV2640的帧同步信号VSYNC和像素信号PCLK,P0.1和P0.2模拟SCCB时序,整个电路采用16 MHz的晶体振荡器,P0.3和P1.0~P1.6连接摄像头的数据口,通过PCLK的下降沿信号采集图像数据,同时,P0.7连接摄像头的PWDN休眠信号,可控制摄像头的开关,P0.0控制LED照明电路的开短。无线图像接收电路与发射电路相同,去掉摄像头图像采集电路即可。
图4 体内胶囊内窥镜硬件连接电路Fig 4 Hardware connection circuit of capsule endoscopy in vivo
2.4 图像采集过程
从OV2640获取图像数据,需要用到的信号线包括:8位数据总线 Y2~Y9,帧同步信号 VSYNC,行同步信号HREF,像素同步信号 PCLK,SCCB总线 SIO_C和 SIO_D。其图像数据输出的时序图如图5所示。
图5 OV2640数据时序Fig 5 Data sequence of OV2640
帧同步信号VSYNC是低电平有效,HREF是高电平有效,当引脚VSYNC为高电平时表示一帧数据已经准备好,当由高电平变成低电平时表明是一帧图像数据传输的开始。为了得到有效的像素数据,一般将HREF和PCLK连接一个与非门,使得在行信号无效时不输出像素同步信号,用其输出信号作为像素数据同步,在下文中仍称之为PCLK。
OV2640的工作模式是由内部寄存器确定的,其与外部的接口为串行相机控制总线(SCCB)。一般方法是微控制器工作在主模式,对工作在从模式的OV2640内部的寄存器进行配置,配置完成后经过10帧图像采集时间后,OV2640即开始按照配置的模式工作。如图6所示,通过IO口(P0.1和 P0.2管脚)模拟 SCCB总线时序读写OV2640寄存器,从而控制其工作模式,必要的设置包括要获取图像的分辨率、输出格式、输出时钟频率等。
图6 I2C总线数据传输Fig 6 Data transfer of I2C bus
3 胶囊内窥镜软件设计
在nRF24LE1的初始化程序中,设置寄存器RF_SETUP=0x0F,数据传输速率2 Mbit/s,发射功率0 dBm;设置寄存器RX_PW_P0=0X32,nRF24LE1无线发射数据包长度为32 bytes。
主程序负责胶囊内窥镜的控制器nRF24LE1初始化配置与OV2640初始化配置,以便实现图像的采集发送功能。如图7所示,通过检测帧信号VSYNC判断一帧图像的起始位置,为了使系统高效的运行,本文程序设计2个内存单元,使胶囊内窥镜系统处于图像实时发送状态。如图8所示,中断程序检测像素点信号PCLK来采集图像数据,当PCLK为下降沿是读取Y3~Y9口数据,并存入内存,等待发送信号的到来,这就完成了胶囊内窥镜的图像采集与发送功能。
图7 无线胶囊内窥镜主程序流程图Fig 7 Main program flow chart of wireless capsule endoscopy
图8 中断程序流程图Fig 8 Flow chart of interrupt program
4 实验与分析
胶囊内窥镜体内实测PCB电路如图9所示,OV2640和nRF24LE1共用晶振为16 MHz,考虑到无线芯片的实际数据传送能力,通过测试,当PCLK最大采集频率大于33 kHz时,发送模块发送到接收模块完全接收所用的时间,大于图像采集所占用的时间,图像无法正常传输。本文通过SCCB总线设置OV2640的图像大小为CIF压缩格式,即分辨率为352×288,经过JPEG压缩后数据量从198 kB降低至10 kB左右,配置摄像头时钟分频CLKRC=0X0B,输出PCLK频率R_DVP_SP=0X7F。实际测试表明:PCLK频率为31.7 kHz,满足控制器nRF24LE1的中断口P0.5频率要求,系统运行稳定后,OV2640每0.5 s输出一幅图像,观察图像数据可以看出:一帧数据的开始标志为0XFFD8,结束标志为0XFFD9,拍摄可以得到比较清晰的图像,如图10所示,(a)为近景:可以清晰观察猪的胃部图像,(b)为远景:窗户外的景色。
整个系统的速度受限2个方面的原因:其一是nRF24LE1的空中传输速率,尽管手册上说明最大可以达到2 Mbit/s,但实际测试时最大数据传输速率约为0.5 Mbit/s;另一方面,nRF24LE1工作在16 MHz,其I/O端口响应速度受到限制,在本系统中主要时间限制在于nRF24LE1将数据写入发送缓冲区过程。实际测试表明:OV2640工作时电流约为25 mA,处于休眠模式时仅仅为2.8 mA,发送模块发送时的电流为10 mA,LED工作时的电流为5 mA,整个系统达到了低功耗的目的。
图9 体内胶囊内窥镜实物图Fig 9 Physical figure of capsule endoscope in vivo
图10 采集图像实例Fig 10 Instance of image acquisition
5 结束语
实验结果表明:该系统方案适用于胶囊内窥镜系统的检测,采用具有JPEG压缩功能的CMOS摄像头OV2640,通过硬件实现压缩算法,避免了软件压缩算法速度不够的问题,同时利用集成度最高的nRF24LE1低功耗芯片完成整个系统控制的发送功能,系统结构简单、抗干扰性强、功耗低,制作的体内胶囊内窥镜的直径不大于13 mm,在目前的实验阶段,可以实现0.5 s采集与传送一幅CIF图像,为无线胶囊内窥镜提供了一种可行方案。。
[1]王晓民,李远洋,王新沛,等.消化道内窥镜的发展及趋势[J].医疗卫生装备,2013,34(1):88-90.
[2]Yu M.M2A capsule endoscopy:A break through diagnostic tool for small intestine imaging[J].Gastroenterology Nursing,2002,25(1):24-27.
[3]张艳辉,黄战华.胶囊内窥镜技术的研究进展[J].现代仪器,2006,12(4):4-7.
[4]Fireman Z,Paz D,Kopelman Y.Capsule endoscopy:Improving transit time and image view[J].World Journal of Gastroenterology,2005,11(37):5863-5866.
[5]辛文辉,颜国正,王文兴,等.胶囊内窥镜能量接收稳定性研究[J].仪器仪表学报,2009,30(11):2433-2437.
[6]Ciuti G,Menciassi A,Dario P.Capsule endoscopy:From current achievements to open challenges[J].Biomedical Engineering,2011(4):59-72.
[7]王 海,刘彦隆.基于JPEG图像压缩算法的研究[J].科技情报开发与经济,2010,20(10):108-110.
[8]胡小开,王刚毅,任广辉.基于SoPC的JPEG2000编码器设计[J].电子技术应用,2009,35(9):16-19.
[9]李 立,金华标,陈智君,等.基于FPGA和DSP的高分辨率图像采集系统[J].数据采集与处理,2008,23(1):117-122.
[10]管凤旭,姜智超,吴秋雨,等.指静脉与折痕双模态图像采集系统设计[J].传感器与微系统,2013,32(2):124-127.
[11]刘广伟,毛陆虹,门春雷.一种有源血氧传感标签设计[J].传感器与微系统,2013,32(3):113-116.