引 言
当时,医用无线内窥镜已有产品面世。以色列GI公司早在2001年5月即推出其M2A无线内窥镜产品,并取得美国FDA认证。GI公司出产的胶囊型内窥镜长为26 mm,直径为11mm,重3.5g;选用微功耗CMOS图画传感器,可调查视角为14O°,可看清0.lmm左右的物体,收集速度为2帧/s。日本RF公司也于2001年末研制出NORIKA3胶囊型内窥镜体系。该产品选用超小型CCD摄像头,含有8个镜头,可调查视角为360°,图画帧率可达30帧 /s。“NORIKA3”运用坐落药丸内的转子线圈与发生磁场的体外定子线圈构成马达结构来完结药丸体系姿势操控。RF公司在其网站上发布了产品的规划模型。此外,Gong和Park等人电独立宣布论文,描绘了各自关于无线内窥镜的规划。
现在国内尚无独立制作该产品的才能,而国外的产品价格昂贵,因而,研制具有自主知识产权的无线内窥镜产品具有重要意义。本文介绍无线内窥体系的体系结构,图画紧缩规范JPEG-LS在ARM7平台上的完结,以及完结进程中所选用的调试办法、优化办法。
1 体系组成与作业原理
1.1 内窥体系组成结构
如图1所示,无线内窥镜体系首要由主机和从机(无线内窥镜)组成。从机由摄像头收集原始图画,经过紧缩处理,经过无线办法把紧缩后的图画数据传输给主机;主机经过USB衔接蓝牙适配器接纳紧缩图画,并转发给PC上的办理软件,办理软件将图画解紧缩并显现出来。
图1 内窥体系结构框图
1.2 无线内窥镜组成结构
如图2所示,无线内窥镜选用CPLD芯片EPM7256-144,完结30万像素CMOS摄像头OV7660的图画收集操控,以及数据和地址总线的切换。运用Atmel公司的ARM7芯片AT91R40008,完结JPEG-LS无损图画紧缩与蓝牙无线数据传输,完结温度、压力收集以及可控光源和体系操控。CPLD和ARM7之间的图画数据交换经过8位数据总线完结,ARM7和CPLD之间的握手操控则经过I/O口线完结。因为图画数据量较大,按 640×480分辨率、8位图画的格局核算达几十万字节,故本体系外部扩展了2片上作在乒乓办法的512KB的SRAM作数据缓存。
图2 无线内窥镜硬件结构框图
1.3 体系作业原理
内窥体系能够完结图画的接连收集以及温度、湿度、照明亮度等的操控。其间图画收集是体系的中心,其作业流程如下:
①默许情况下,体系作业在休眠状况。
②作业人员经过PC办理软件发送指令开端收集图画,软件经过USB接口把指令发送给蓝牙适配器,然后发送给无线内窥镜。
③内窥镜接纳到图画收集指令后,ARM操控CPLD开端收集图画数据。
④CPLD把收集到的一帧图画数据写入一块SRAM中,把ARM的总线切换到该SRAM上,并告诉ARM进行紧缩;一起CPLD往另一块SRAM中持续收集下一帧图画,便于进步体系的吞吐率。
⑤ARM经过蓝牙模块回来呼应指令,并回来收集JPEG-LS图画的头信息。
⑥PC办理软件发送指令接纳下一行紧缩图画,ARM紧缩该行原始图画,并发送紧缩数据;假如犯错,能够从头发送。重复本进程能够获取整帧紧缩图画。
⑦PC软件对紧缩图画解码并显现,并供给其他附加功用,如图画处理、保存等。
⑧重复进程②~⑦,获取下一帧紧缩图画。
由上述流程能够看出,JPEG-LS紧缩以及无线信道传输决议整个体系的图画传输速率。无线传输选用蓝牙技能,其标称空中速率为1 Mbps,不易进步;因而,体系规划的中心是JPEG-LS的编码功率。
2 ARM与摄像头接口规划
体系选用美国Omni Vision公司(简称为“OV公司”)开发的CMOS五颜六色图画传感器芯片。该芯片将CMOS光感应核与外围支撑电路集成在一起,具有可编程操控与视频模/数混合输出等功用。
(1)SSCB装备
为使芯片正常上作,需求经过SCCB总线来完结装备作业。SCCB总线是OV公司界说的一套串行总线规范,与I2C总线相似。装备时,首要是写 OV7660的内部寄存器,使芯片输出格局正确的五颜六色图画数据。OV7660共有100个左右的寄存器能够装备,其数据手册并未供给可用的装备值。体系调试进程中,经过各种测验,测出以下一系列装备数据,可使OV7660输出色彩丰厚的图画,如表l所列。
(2)图画数据拜访
AT91R40008不带摄像头接口,因而体系增加了一块CPLD完结CMOS摄像头的时序,如图3所示。ARM只须拜访SRAM就能够拜访图画数据。CPLD保证ARM的总线每次都只挂接一块有完好图画的SRAM。
图3 ARM与CPLD接口规划
3 ARM与蓝牙接口规划
蓝牙是无线数据和语音传输的开放式规范。它将各种通讯设备、核算机及其终端设备、各种数字体系,乃至家用电器,选用无线办法衔接起来。为了优化体系规划,咱们选用性价比高的CSR BC2完结蓝牙无线串口。CSRBC2是一款高度整合的模块级蓝牙芯片,首要包含:基带操控器、2.4~2.5GHz的数字智能无线电和程序数据存储器。经过该模块,体系能够供给无线规范UART接口,支撑多种波特率(如9.6 kbps、19.2 kbps、38.4 kbps、57.6kbps、115.2 1kbps、230.4 kbps、460.8 kbps、92l.6 kbps)。本体系经过测验发现,当速率为460.8 kbps时,蓝牙芯片能够正常作业;而在921.6kbps时,会有很高的误码率。蓝牙模块接口电路如图4所示。
4 JPEG-LS图画编码
体系收集的原始图画相关性大、数据量大,需求进行图画紧缩。医学图画要求将图画质量放在首位,因而有必要选用无损紧缩算法。本体系选用静态图画无损紧缩技能JPEG-LS,它是现在无损紧缩算法中功用较好的一种算法。JPEG-LS是ISO/ITU安排提出的最新的接连静态图画近无损紧缩规范。该规范选用LOCO-I(Low Complexity Lossless Compression for Images)中心算法,树立简略的上下文模型,在低杂乱度的情况下完结了高紧缩率;一起,算法对图画逐行进行紧缩,降低了体系对图画缓冲区的要求。
4.1 JPEG-LS作业原理简介
如图5所示,JPEG-LS的编码进程首要包含猜测、上下文建模和熵编码。中心算法LOCO-I选用邻域非线性猜测和Golomb熵编码。
图5 JPEG-LS编码流程
上下文建模是JPEG-LS编码的根底,运用的建模办法是依据对上下文的知道。上下文首要依据图5中a、b、c、d处像素值决议对x处像素足选用惯例形式编码仍是选用游程形式编码。当从上下文估量的接连像素在近似无失真编码要求的容限内简直完全相一起,挑选游程形式;不然,挑选惯例形式。
惯例形式下首要完结猜测。猜测器对坐落a、b、c等3个附近像素的重建组值Ra、Rb、Rc进行归纳,构成x像素的猜测值Px,即:
猜测差错是x像索的实践值和猜测值的差分。经过一个与上下文有关的项对猜测差错进行批改,以补偿猜测中的体系偏移。假如选用近无损编码,则要对猜测差错进行量化,所答应的最大差错用一个“NEAR参数表明。对已批改的猜测差错进行Golomb编码。Golomb编码相当于几许分布下的 Huffman编码。它依赖于上下文,而前面编码的猜测差错也是以相同的上下文为根底。
为进一步进步数据紧缩功率,JPEG-LS引入了游程形式。此刻编码进程直接越过猜测和差错编码程序:编码器从x处开端对像素值和a处像素重建值相同的一系列接连像素进行计数,即核算游程的长度。当遇到一个具有不同值的像素或当时行的行尾时,游程停止。该游程长度经过一个专门的功用更好、更适用的 Golomb编码扩展程序来编码。
4.2 JPEG-LS的移植问题
本体系运用HP实验室供给的开源JPEG-LS开发包。完好的JPEG-LS开发包支撑多种色彩模型,如多平面紧缩、逐行或许逐点等紧缩办法。本体系考虑到ARM体系资源的约束,只削减了其间的逐行单文件紧缩办法。原始开发包运转在Linux或许Windows平台上,移植进程最首要的作业包含3 点。
①削减不必要的功用,如原始开发包中对多图画编码的支撑。
②针对体系规划移植后的接口,如本模块移植后,只供给以下几个接口:
jls_global_init,大局初始化函数,核算查询表等,只需求发动时调用一次;
jls_image_init,每帧图画开端紧缩时都要调用一次的初始化;
jls_encode_one_line,紧缩一行图画。
③对原开发包中运用的动态内存分配需求移植,处理的方案有2个:
开发一个简略的内存办理模块;
手动分配内存。
考虑到源码包中运用的动态内存不多,体系选用第2种方案。在移植进程中,主张先在PC上分配好一大块内存,然后,给开发包中需求分配的当地手动分配。在PC上调试经过之后,就能够直接在ARM上面运用了。
5 调试及优化办法
5.1调试办法
嵌入式体系的调试是一个很繁琐而杂乱的进程。在调试之前划分好模块,能够大大进步调试功率;别的为了调试,还需求增加一些方案项目之外的调试东西。
本体系的调试作业分为3个部分。
(1)蓝牙无线链路层调试
蓝牙无线链路层的调试能够直接凭借PC上许多现有的串口东西来完结。
(2)CMOS摄像头调试
CMOS摄像头的调试有两个部分:SCCB装备时序、RGB图画数据时序。
一般的处理器都不带SCCB接口,因而要用处理器的口线模仿SCCB时序。此刻的调试一般都是经过示波器调查模仿的时序,看足否契合芯片手册上的要求。为了验证是否正确,一般可先读一个指定的寄存器(这些寄存器都有出厂默许值);然后写一个数据,读取出来验证是否符合。
RGB图画数据时序由CPLD发生,此刻的调试需求ARM来合作。本体系在调试时,在PC上编写了一个简略的串口接纳程序,ARM把SRAM中的图画数据经过串口发送给该PC,PC上的程序把这些原始的RGB数据插值并显现出来,然后能够得知CPLD的时序是否正确。当然,调试时序时,示波器仍然是必不可少的东西。
(3)JPEG-LS算法调试
JPEG-LS算法的调试分为两个进程:PC上的算法验证和方针板上的调试。
PC上的算法验证运用VC6.O模仿方针板上的运转环境,测验方针板上的各个功用接口。本部分的验证代码可供下载。
方针板上调试时,仍是要凭借串口,把紧缩的图画和原始图画经过串口发送至PC。Pc上的JPEG-LS解码程序解码紧缩图画,然后与原始图画比照,然后找出算法中的过错。
5.2 优化办法
为进步图画传输的帧率,本体系首要选用了2种优化办法。
(1)硬件优化
硬件优化首要是在CPLD收集数据时,运用双缓冲,使得接连收集下一帧图画和传输上一帧图画能够并行,然后进步体系的吞吐率。
(2)软件优化
软件优化的作用在本体系的调试进程中作用显着;本体系的第一个版别,图画收集速率仅为3 s/帧;经过软件优化后,达到了终究的O.3 s/帧。其优化如下:
①循环外移,防止在循环中重复运算;
②频频运用的变量申明为寄存器变量;
③把一切的JPEG-LS编码函数代码拷贝到RAM中履行。
默许情况下,一切的代码都存放在Flash中。ARM运转时,从Flash中读取指令而且履行。众所周知,Flash的拜访速度相对RAM而言,相差一个数量级,因而,假如把要害代码放在RAM中,履行速率将会大大进步。而AT9lR40008内部自带512 KB的RAM,满足本体系运用,因而,这个办法可行。
解的办法有两个,一是写一个发动程序,在发动时,把体系一切的代码都拷贝到RAM中,这样体系速度会进步。但是,该办法完结起来较费事,且假如程序扩展,可能会超越RAM的512 KB约束。因而,本体系选用别的一个简略办法。选用IAR Embedded Workbench开发环境,经过阅览其编译器手册发现,在函数之前增加一个__ramfunc伪指令,那么链接器在生成发动代码时,会将该函数拷贝到 RAM中,然后进步运转功率。其运用比如如下:
ramfunc void encode_oneline(vcrid)
经过运用该办法,体系的运转功率进步了约lO倍。
结语
本体系以ARM为中心,完结了JPEG-LS无损图画紧缩算法,并日结合CPLD完结了CMOS摄像头的时序操控。经过蓝牙传输,完结了数字化的无线内窥体系。
本体系具有杰出的扩充性,能够使得体系愈加微型化。首要,假如选用CSR公司更新的BC3系列芯片,则将交融ARM核以及蓝牙功用,能够愈加减小内窥镜的体积。最重要的是,假如开展自主产权的内窥镜芯片,那么以现有的SOPC技能,能够将ARM核、CPLD逻辑门以及蓝牙通讯功用集成在一起,构成无线内窥镜的集成处理方案,然后使其产业化成为可能。
本体系在完结进程中,完结了一系列的调试东西,积累了调试以及优化经历。我国现有的医疗设备开发技能相比照较落后,在此共享,期望对同类型的产品规划以及芯片出产能有一些参考价值。