著录项信息
专利名称 | 基于FPGA图像压缩技术的3G远程传输网络摄像头 |
申请号 | CN201510054796.3 | 申请日期 | 2015-02-03 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-06-03 | 公开/公告号 | CN104683764A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N7/18 | IPC分类号 | H;0;4;N;7;/;1;8;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 青岛大学 | 申请人地址 | 山东省青岛市市南区宁夏路308号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 青岛大学 | 当前权利人 | 青岛大学 |
发明人 | 夏辉;曲传浩;于佳;程相国;潘振宽 |
代理机构 | 北京科亿知识产权代理事务所(普通合伙) | 代理人 | 苏雪雪 |
摘要
本发明公开了一种基于FPGA图像压缩技术的3G远程传输网络摄像头,包括:PCB板、摄像头模块、3G模块、无线传输模块和硬件压缩模块。所述摄像头模块、3G模块、无线传输模块、硬件压缩模块被布局在所述PCB板上。本发明硬件驱动实现过程中,根据自行设计的PCB板,完成了所有模块的驱动;此外,利用硬件描述和FPGA技术,将摄像头采集的原始图像在传输之前进行了硬件压缩;在应用系统实现过程中,不仅完成了摄像头客户端的图像采集、3G传输、无线传输等部分,还在服务器端架设了Web服务器+TCP服务器,作为接收图像数据的服务器端。该服务器端还接受用户的Web访问,并且可以通过该服务器端来控制摄像头。
1.一种基于FPGA图像压缩技术的3G远程传输网络摄像头,其特征在于,包括:PCB板、摄像头模块、3G模块、无线传输模块和硬件压缩模块;
所述摄像头模块、3G模块、无线传输模块、硬件压缩模块被布局在所述PCB板上;
所述PCB板的尺寸小于等于10CM*20CM;
所述硬件压缩模块,利用硬件描述和FPGA技术,将摄像头模块采集的原始图像在传输之前进行了硬件压缩;
所述3G远程传输网络摄像头,进一步包括:Web服务器和TCP服务器;所述Web服务器和TCP服务器作为接收图像数据的服务器端;
所述接收图像数据的服务器端进一步具备接收用户Web访问的功能,并且用户能够通过所述接收图像数据的服务器端来控制摄像头;
所述3G远程传输网络摄像头通过3G网络接入互联网,采用TCP/IP协议进行数据传输;
所述3G远程传输网络摄像头进一步支持无线局部网络通信的2.4G和/或433协议;所述
3G远程传输网络摄像头为一个或多个;所述多个3G远程传输网络摄像头之间能够通过无线传输进行组网,并相互传递信息;
所述硬件压缩模块,以FPGA为硬件平台,设计并实现符合JPEG标准基本模式的图像压缩功能;采用Xilinx的XC3S500E芯片作为压缩芯片;JPEG基本模式编码器采用高级硬件描述语言Verilog描述,按照Top-Down和模块化设计的方法设计,开发环境选用ISE 10.1.03,仿真工具采用ISE自带的ISE simulator,综合工具采用XST;
摄像头能够输出YCrCb色彩空间的图像信息,不需要进行从RGB到YCrCb的色彩空间变换;并增加一个读取控制和划分模块;在每幅图像的压缩数据前加一个固定的文件头;
Zigzag扫描放在量化器之前进行;
量化模块有两个量化表,分别对应Y和Cr、Cb量化,根据要量化的数据,选择量化表,量化;
Huffman编码模块,分成三个小模块,分别是预编解码模块、编码模块、组装模块;预编解码模块用来区分色度和亮度的直流和交流分量,并对交流部分进行RLE编码,为编码模块做准备;编码模块包含两部分,对直流系数差分编码和对交流系数进行huffman编码;组装模块来把编码模块输出的数据组装为标准的32位数据,为后面数据输出做准备。
2.一种如权利要求1所述基于FPGA图像压缩技术的3G远程传输网络摄像头图像传输初始化的方法,其特征在于,所述方法的步骤为:
a.初始化3G模块
a1.通过函数EU3_GPIO_Config和EU3_PowerOn配置GPIO端口,并激活模块;
a2.发送+++和AT^SISC命令,断开可能拥有的链接,不管返回值为OK还是ERROR,都将被忽略;
a3.发送AT^SDPORT=2设置模块为UART模式,使用串口来对模块发送命令;
a4.发送at+cpin?确认SIM卡已准备就绪,收到OK后继续执行,否则退出;发送AT^SLED=1设置信号灯在有信号时一直亮;
b.连接3G网络
b1.发送AT+COPS?检查网络,如果正常,会收到信息+COPS:0,0,"CHN-UNICOM",2,搜索到联通的网络,进行连接;
b2.发送AT+CGATT=1附着到网络;
b3.发送AT+CGDCONT=101,"ip","3GNET"设置接入点为联通的3gnet;
b4.发送AT+CGACT=1,101激活网络上下文发送AT+CGPADDR=101获得动态IP;
c.连接TCP
c1.发送AT^SISS=2,"srvType","TCPclient"设置连接方式为TCP;
c2.发送AT^SISS=2,"address","211.87.235.157:8888"设置连接地址为服务器的IP和端口;
c3.发送AT^SISS=2,"conId",101,将刚才激活的上下文分配给2号通道;
c4.发送AT^SISO=2打开2号通道,建立TCP连接,返回CONNECT则为成功建立;
c5.发送AT^SIST=2打开透明传输;
其中,
硬件压缩模块,以FPGA为硬件平台,设计并实现符合JPEG标准基本模式的图像压缩功能;采用Xilinx的XC3S500E芯片作为压缩芯片;JPEG基本模式编码器采用高级硬件描述语言Verilog描述,按照Top-Down和模块化设计的方法设计,开发环境选用ISE 10.1.03,仿真工具采用ISE自带的ISE simulator,综合工具采用XST;
摄像头能够输出YCrCb色彩空间的图像信息,不需要进行从RGB到YCrCb的色彩空间变换;并增加一个读取控制和划分模块;在每幅图像的压缩数据前加一个固定的文件头;
Zigzag扫描放在量化器之前进行。
基于FPGA图像压缩技术的3G远程传输网络摄像头\n技术领域\n[0001] 本发明涉及计算机科学技术领域,特别涉及一种基于FPGA图像压缩技术的3G远程传输网络摄像头及方法。\n背景技术\n[0002] 网络摄像头简称WEBCAM,英文全称为WEB CAMERA,是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像透过网络传至地球另一端,且远端的浏览者不需用任何专业软件,只要标准的网络浏览器(如″Microsoft IE或Netscape),即可监视其影像。\n[0003] 网络摄像头是传统摄像机与网络视频技术相结合的新一代产品,除了具备一般传统摄像机所有的图像捕捉功能外,机内还内置了数字化压缩控制器和基于WEB的操作系统,使得视频数据经压缩加密后,通过局域网,internet或无线网络送至终端用户。\n[0004] 而远端用户可在PC上使用标准的网络浏览器,根据网络摄像机的IP地址,对网络摄像机进行访问,实时监控目标现场的情况,并可对图像资料实时编辑和存储,同时还可以控制摄像机的云台和镜头,进行全方位地监控。\n发明内容\n[0005] 本发明所要解决的技术问题在于,提供了一种基于FPGA图像压缩技术的3G远程传输网络摄像头及方法。本发明摄像头通过3G网络接入互联网,采用TCP/IP协议进行数据传输。而在服务器端,架设了一个Web服务器端,用户可以通过HTTP访问服务器地址,并登陆到该网络摄像头。用户可以控制网络摄像头进行拍照。此外,本发明摄像头还支持无线局部网络通信,包括2.4G和433协议,多个摄像头之间可以通过无线传输进行组网,并相互传递信息。本发明基于FPGA图像压缩技术的3G远程传输网络摄像头还具备一个很重要的功能----利用FPGA对采集的图像进行硬件压缩,并形成JPEG格式的图像数据。压缩算法采用标准的JPEG,压缩率接近于10。\n[0006] 为解决上述技术问题,本发明提供了一种基于FPGA图像压缩技术的3G远程传输网络摄像头,包括:PCB板、摄像头模块、3G模块、无线传输模块和硬件压缩模块。\n[0007] 所述摄像头模块、3G模块、无线传输模块、硬件压缩模块可以被布局在所述PCB板上。\n[0008] 所述PCB板的尺寸可以小于等于10CM*20CM。\n[0009] 所述硬件压缩模块,可以利用硬件描述和FPGA技术,将摄像头模块采集的原始图像在传输之前进行了硬件压缩。\n[0010] 所述基于FPGA图像压缩技术的3G远程传输网络摄像头,可以进一步包括:Web服务器和TCP服务器;所述Web服务器和TCP服务器作为接收图像数据的服务器端。\n[0011] 所述接收图像数据的服务器端可以进一步具备接收用户Web访问的功能,并且用户能够通过所述接收图像数据的服务器端来控制摄像头。\n[0012] 所述基于FPGA图像压缩技术的3G远程传输网络摄像头可以通过3G网络接入互联网,采用TCP/IP协议进行数据传输。\n[0013] 所述基于FPGA图像压缩技术的3G远程传输网络摄像头可以进一步支持无线局部网络通信的2.4G和/或433协议;所述基于FPGA图像压缩技术的3G远程传输网络摄像头为一个或多个;所述多个基于FPGA图像压缩技术的3G远程传输网络摄像头之间能够通过无线传输进行组网,并相互传递信息。利用FPGA对采集的图像进行硬件压缩,并形成JPEG格式的图像数据。\n[0014] 为解决上述技术问题,本发明又提供了一种如前述任一项所述基于FPGA图像压缩技术的3G远程传输网络摄像头图像传输初始化的方法,所述方法的步骤为:\n[0015] a.初始化3G模块\n[0016] a1.通过函数EU3_GPIO_Config和EU3_PowerOn配置GPIO端口,并激活模块;\n[0017] a2.发送+++和AT^SISC命令,断开可能拥有的链接,不管返回值为OK还是ERROR,都将被忽略;\n[0018] a3.发送AT^SDPORT=2设置模块为UART模式,使用串口来对模块发送命令;\n[0019] a4.发送at+cpin?确认SIM卡已准备就绪,收到OK后继续执行,否则退出;发送AT^SLED=1设置信号灯在有信号时一直亮;\n[0020] b.连接3G网络\n[0021] b1.发送AT+COPS?检查网络,如果正常,会收到信息+COPS:0,0,″CHN-UNICOM″,2,搜索到联通的网络,进行连接;\n[0022] b2.发送AT+CGATT=1附着到网络;\n[0023] b3.发送AT+CGDCONT=101,″ip″,″3GNET″设置接入点为联通的3gnet;\n[0024] b4.发送AT+CGACT=1,101激活网络上下文发送AT+CGPADDR=101获得动态IP;\n[0025] c.连接TCP\n[0026] c1.发送AT^SISS=2,″srvType″,″TCPclient″设置连接方式为TCP;\n[0027] c2.发送AT^SISS=2,″address″,″211.87.235.157:8888″设置连接地址为服务器的IP和端口;\n[0028] c3.发送AT^SISS=2,″conId″,101,将刚才激活的上下文分配给2号通道;\n[0029] c4.发送AT^SISO=2打开2号通道,建立TCP连接,返回CONNECT则为成功建立;\n[0030] c5.发送AT^SIST=2打开透明传输。\n[0031] 为解决上述技术问题,本发明再提供了一种如前述任一项所述基于FPGA图像压缩技术的3G远程传输网络摄像头的图像发送方法,\n[0032] 采用延迟机制,通过调用Delay函数来进行延迟,等待3G模块处理数据;\n[0033] 精确控制WCET;\n[0034] 采取每行等待8ms和每两个字节发送一次来传输图像。\n[0035] 本发明有益的技术效果在于:完成了从硬件设计到硬件驱动到应用系统的全部工作。在硬件设计中,自行设计PCB板,将摄像头模块、3G模块、无线传输模块、硬件压缩(FPGA)模块布局到一个10CM*20CM的板子上;在硬件驱动实现过程中,根据自行设计的PCB板,完成了所有模块的驱动;此外,利用硬件描述和FPGA技术,将摄像头采集的原始图像在传输之前进行了硬件压缩;在应用系统实现过程中,不仅完成了摄像头(客户端)的图像采集、3G传输、无线传输等部分,还在服务器端架设了Web服务器+TCP服务器,作为接收图像数据的服务器端。该服务器端还接收用户的Web访问,并且可以通过该服务器端来控制摄像头。\n附图说明\n[0036] 图1为本发明实施例所述图像压缩总流程图;\n[0037] 图2为本发明实施例所述图像压缩部分具体流程图;\n[0038] 图3为本发明实施例所述调整顺序后的图像压缩部分具体流程图;\n[0039] 图4为本发明实施例所述2D_DCT变换资源占用表;\n[0040] 图5为本发明实施例所述Zigzag资源占用表;\n[0041] 图6为本发明实施例所述量化模块占用资源情况表;\n[0042] 图7为本发明实施例所述预编解码模块资源占用表;\n[0043] 图8为本发明实施例所述编码模块资源占用表;\n[0044] 图9为本发明实施例所述组装模块资源占用表;\n[0045] 图10为本发明实施例所述MCU压缩所需资源数表;\n[0046] 图11为本发明实施例所述综合后图像压缩资源占用表;\n[0047] 图12为本发明实施例所述3G模块启动时序图;\n[0048] 图13为本发明实施例所述3G远程传输摄像头终端的外观照片;\n[0049] 图14为本发明实施例所述3G远程传输摄像头终端实拍照片。\n具体实施方式\n[0050] 以下将结合实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。\n[0051] 本发明一实施例提供了一种基于FPGA图像压缩技术的3G远程传输网络摄像头,包括:PCB板、摄像头模块、3G模块、无线传输模块和硬件压缩模块。\n[0052] 所述摄像头模块、3G模块、无线传输模块、硬件压缩模块可以被布局在所述PCB板上。\n[0053] 所述PCB板的尺寸可以小于等于10CM*20CM。\n[0054] 所述硬件压缩模块,可以利用硬件描述和FPGA技术,将摄像头模块采集的原始图像在传输之前进行了硬件压缩。\n[0055] 所述基于FPGA图像压缩技术的3G远程传输网络摄像头,可以进一步包括:Web服务器和TCP服务器;所述Web服务器和TCP服务器作为接收图像数据的服务器端。\n[0056] 所述接收图像数据的服务器端可以进一步具备接收用户Web访问的功能,并且用户能够通过所述接收图像数据的服务器端来控制摄像头。\n[0057] 所述基于FPGA图像压缩技术的3G远程传输网络摄像头可以通过3G网络接入互联网,采用TCP/IP协议进行数据传输。\n[0058] 所述基于FPGA图像压缩技术的3G远程传输网络摄像头可以进一步支持无线局部网络通信的2.4G和/或433协议;所述3G远程传输网络摄像头为一个或多个;所述多个3G远程传输网络摄像头之间能够通过无线传输进行组网,并相互传递信息。\n[0059] 本发明又一实施例提供了一种如前述任一项所述基于FPGA图像压缩技术的3G远程传输网络摄像头图像传输初始化的方法,所述方法的步骤为:\n[0060] a.初始化3G模块\n[0061] a1.通过函数EU3_GPIO_Config和EU3_PowerOn配置GPIO端口,并激活模块;\n[0062] a2.发送+++和AT^SISC命令,断开可能拥有的链接,不管返回值为OK还是ERROR,都将被忽略;\n[0063] a3.发送AT^SDPORT=2设置模块为UART模式,使用串口来对模块发送命令;\n[0064] a4.发送at+cpin?确认SIM卡已准备就绪,收到OK后继续执行,否则退出;发送AT^SLED=1设置信号灯在有信号时一直亮;\n[0065] b.连接3G网络\n[0066] b1.发送AT+COPS?检查网络,如果正常,会收到信息+COPS:0,0,″CHN-UNICOM″,2,搜索到联通的网络,进行连接;\n[0067] b2.发送AT+CGATT=1附着到网络;\n[0068] b3.发送AT+CGDCONT=101,″ip″,″3GNET″设置接入点为联通的3gnet;\n[0069] b4.发送AT+CGACT=1,101激活网络上下文发送AT+CGPADDR=101获得动态IP;\n[0070] c.连接TCP\n[0071] c1.发送AT^SISS=2,″srvType″,″TCPclient″设置连接方式为TCP;\n[0072] c2.发送AT^SISS=2,″address″,″211.87.235.157:8888″设置连接地址为服务器的IP和端口;\n[0073] c3.发送AT^SISS=2,″conId″,101,将刚才激活的上下文分配给2号通道;\n[0074] c4.发送AT^SISO=2打开2号通道,建立TCP连接,返回CONNECT则为成功建立;\n[0075] c5.发送AT^SIST=2打开透明传输。\n[0076] 本发明再一实施例提供了一种如前述任一项所述3G远程传输网络摄像头的图像发送方法,\n[0077] 采用延迟机制,通过调用Delay函数来进行延迟,等待3G模块处理数据;\n[0078] 精确控制WCET;\n[0079] 采取每行等待8ms和每两个字节发送一次来传输图像。\n[0080] 本发明另一实施例是开发一个能够进行硬件压缩、采用3G网络进行远程传输、采用无线协议(2.4G、433协议)进行局部网络传输的一款摄像头。下面按模块进行详细介绍本摄像头的开发过程:\n[0081] 1、处理器\n[0082] 本发明采用ST的stm32f103芯片。该芯片内核采用高性能的ARM Cortex-M332位的RISC内核,工作频率为72MHz,384K的程序Flash和64KB的RAM,是一款性价比较高的适合嵌入式设备的芯片。它支持的通信接口有3个SPI、2个I2S、2个I2C、3个USART、2个UART、SDIO、CAN、USB等。\n[0083] 2、摄像头模块\n[0084] 本发明的摄像头采用OmniVision公司的OV7670图像传感器,该传感器的像素为30万,共有像素656x488,在YUV模式下,有效像素为640x480。最大采样频率为30帧每秒,支持多种输出格式,包括RGB565/555/444以及YUV422。该传感器一共有167个寄存器,可以来手动设置传感器的输出格式、曝光值、自动增益等参数,而其中比较常用的是寄存器COM12,该寄存器用来控制输出格式。OV7670采用SCCB接口来读写寄存器,而SCCB(Serial Camera Control Bus)正是该公司自行研发的一种三线式总线,主要应用于OmniVision公司的摄像头上。该总线协议包括SCCB_E、SIO_C、SIO_D三根总线,其中SCCB_E类似于片选线,用于主设备选择从设备,当只有一个从设备时,可以不使用该总线;而SIO_C和SIO_D分别是控制线和数据线,因此SIO_D是一个串行数据线。\n[0085] OV7670的引脚主要包括了电源线、地线、时钟线、8位数据线、SCCB的两根总线以及两根同步线。由于需要对摄像头采集的图像进行缓存,我们在处理器和摄像头之间加了一个FIFO,我们选取的是AVERLOGIC公司的AL422,该缓存器拥有3M-bits的DRAM,目前广泛应用于图像、视屏采集领域,支持VGA、PAL、HDTV等格式。该缓存器包括28个引脚,其中输入数据引脚8个、输出数据引脚8个、读/写时钟2根、控制线5根,剩余的都是电源和接地。在我们设计的摄像头电路板,AL422的八根输入数据线直接与OV7670的八根数据线相连,而摄像头采集的数据就是以每个字节为单位,通过八位数据线传输到AL422中。在OV7670的引脚中,有两根同步引脚,分别是场同步和帧同步引脚,其中场同步引脚与AL422的写使能引脚相连,来控制每行的传输,即当OV7670每采集一个字节的数据,OV7670通过该引脚来控制数据写入AL422;而帧同步则被配置成一根中断引脚,它的作用是当摄像头采集完一帧图像时,通过该引脚的电压变化来通知处理器,而处理器收到该中断后,通过AL422的八个输出数据引脚将该帧的数据读取到内存中,从而完成一幅图像的采集。\n[0086] 原始采集的图像是bmp格式,可以以CIF(352*288)、VGA(640*480)、QVGA(320*240)分辨率保存。如果采用QVGA分辨率保存采集的图像,则最终的bmp图像大小为150kb。本发明利用FPGA技术对采集的原始图片进行硬件压缩,因此AL422出来的8位数据线并不是直接连到处理器上,而是连接到FPGA芯片上,然后FPGA芯片进行压缩后,再将数据传给处理器。具体的压缩模块过程见图像压缩模块介绍。\n[0087] 3、图像压缩模块\n[0088] 在过去的几年里,随着物联网等的发展,监控中对图像的要求越来越高,这导致图像变大。但是在3G、Zigbee等无线网络传输中,网络带宽有限,这就要求对图像进行压缩减小传送的数据量。考虑通用性和压缩比率,采用国际标准的JPEG压缩算法,但嵌入式图像采集终端芯片的处理能力有限,而JPEG压缩算法运算的复杂度较高,这将导致实时性降低,为此采用FPGA进行加速,以保证图像的实时性和压缩比。\n[0089] 在该发明中,图像大小为320*240,为保证实时性,采用30帧/s的采集速率。如果采用bmp格式存储,则每幅图像大小为320*240*3Byte=230400B,所需网络传输速率为\n230400*8*30=55296000bit/s=55Mb/s,这在3G或者Zigbee等无线网络中是不可达到的速率。所以图像传输前需进行压缩。为达到实时传输的要求,在采用4∶1∶1的采样模式下,压缩速率至少为:230400*8/2*30=27648000bit/s。\n[0090] 基于以上要求,本发明以FPGA(Field Programmable Gates Array,现场可编程逻辑门阵列)为硬件平台,设计并实现符合JPEG标准(ISO/IEC 10918-1)基本模式(Baseline Mode)的图像压缩功能。综合考虑压缩速率和成本,采用Xilinx的XC3S500E芯片作为压缩芯片。JPEG基本模式编码器采用高级硬件描述语言Verilog描述,按照Top-Down和模块化设计的方法设计,开发环境选用ISE 10.1.03,仿真工具采用ISE自带的ISE simulator,综合工具采用XST。\n[0091] 通常的JPEG压缩中,按照功能可分为五个模块:色彩空间变换、二维离散余弦变换、Zigzag扫、量化和编码。本发明中,摄像头可以输出YCrCb色彩空间的图像信息,所以不需要进行从RGB到YCrCb的色彩空间变换。但是压缩芯片的数据输入是从AL422中读取的,所以需要加一个读取控制和划分模块,另外考虑芯片资源有限,JFIF码流组装放在MCU中完成,即在每幅图像的压缩数据前加一个固定的文件头。整个压缩流程如图1所示,其中图像压缩部分具体流程如图2所示。\n[0092] 其中,Zigzag扫描需要全部64个数据,这导致量化模块需要等待更多的时钟周期,我们将Zigzag扫描放在量化器之前进行。这样量化表需要按照Zigzag扫描后的顺序进行调整,但可保证Zigzag扫描后没输出一个数据就进行量化,可保证流水线的正常进行,同时量化模块值需要一个乘法器,占用资源更少。调整顺序后如下图3所示。\n[0093] 按照图3所示流程图,采用Verilog HDL具体实现上述各个模块。\n[0094] 2D_DCT变换具体公式如公式1所示,从公式可以看出,运算复杂度较高,因此,采用W.Chen.C.Smith和S.Fralick于1977年提出的DCT快速算法,需将2D_DCT装换为两次1D_DCT变换,并把第一次1D_DCT变换的输出数据作为第二次1D_DCT变换的输入,为了流水计算,需要需要少量ram来暂存中间数据。采用测试向量进行测试,与Matlab计算结果进行对比,可发现误差在可接受的范围内。综合后资源具体占用情况如图4如所示。图中I/O资源占用数目超过100%,但这只是内部接口,可忽略。另外最大频率可达到90.478MHz。\n[0095]\n[0096]\n[0097] C(k)=1 k≠0\n[0098] 如图5所示,为本发明实施例所述Zigzag资源占用表。量化模块有两个量化表,分别对应Y和Cr、Cb量化,根据要量化的数据,选择量化表,量化。量化模块占用资源如图6所示,从图上可以看出,改进后的量化表占用资源很少,同时又可保证流水执行。\n[0099] Huffman编码模块,因为需要对亮度的直流和交流数据及色度的直流和交流数据分别编码,该模块实现较麻烦,本发明将其分成了三个小模块,分别是预编解码模块、编码模块、组装模块。预编解码模块主要用来区分色度和亮度的直流和交流分量,并对交流部分进行RLE编码,为编码模块做准备。编码模块主要包含两部分,对直流系数差分编码和对交流系数进行huffman编码。组装部分主要用来把编码模块输出的数据组装为标准的32位数据,为后面数据输出做准备。各模块资源占用如图7、8、9所示。\n[0100] 实现上述各个子模块后,将各子模块才用整合连接到一起,完成一个8*8MCU的压缩,全部资源占用如下图10所示,频率可达54.045MHz。\n[0101] 至此整个图像压缩已经完成了大部分,剩下的就是数据从Al422的读取控制和将读取的数据划分为8*8的小图像的图像划分以及将从组装模块输出的数据进行缓存。在AL422中,数据的存储是按行顺序存放的,而且读取时只能顺序读取,为此本发明先读前8行数据,划分为40个8*8小块,进行压缩,完成后再读下面八行,依次循环,直到压缩完一帧图像。存储一个320*240图像前8行数据共需320*8=2560Byte=20480bits,这是很大的资源消耗,在读取过程中,因为需要不停的更改数据存储的地址,所以没有将其显式的放在XC3S500E自带的bram里。为方便与微控制器交互,采用综合后资源占用如图11所示。\n[0102] 从图中11中可以看出,所用资源大约超过提供资源的3.7倍,因此,数据读取和划分模块占用大量资源,导致资源严重不足,无法在该芯片中实现。\n[0103] 后续改进主要有两个方向,第一将读取的图像数据显示的放在BRAM内,但这样会大大增加控制的难度,并影响速度。第二,改进芯片和接口,选用更合适的硬件芯片和接口,这需要大量的探索。\n[0104] 4、3G图像传输模块\n[0105] 本发明中加入3G模块是为了了解3G模块的使用方法,测试3G模块TCP传输在实际中的使用效果,并在此基础上结合摄像头完成图像传输。\n[0106] 本发明中采用的3G模块为CINTERION的EU3-E,该模块的GPRS上行和下行速度分别是42.8kbps和85.6kbps。该模块采用80pins board-to-board connector与外界相连,而且通信方式包括USB和High Speed Serial Interface两种,可以用AT指令AT^SDPORT=X来设定,X数值分别为1,2,3,4,分别代表基础模式、UART模式、USB模式和混合模式。在本发明中,采用USART模式。该模块与大部分3G模块相似,它支持确认模式和透传模式:确认模式是指模块每发送一次数据,需要等待基站返回上一帧数据的确认后才能继续发送下一帧数据,一旦一帧出现丢失后,后面的发送将不再继续,这种发送方式比较可靠,但同时也是相当费时;透传模式则不需要每次数据都需要确认,当打开透传模式后,模块将把获得的所有字符包括命令都当用户要发送的数据,而且只有来数据就发送。透传模式的效率明显比确认模式要高,甚至在时间上都是翻倍的减少。但是透传模式适合在信号强、干扰少、可靠性要求低的情况下。在本发明中,采用透传模式,而把传输控制放在应用程序中。\n[0107] 在上电后,要激活3G模块,需要将IGT线置低至少300ms,另外BATT+线必须在可操作的范围内,才能激活,如果电压超出范围,则模块会自动关闭。当模块启动后,可以通过发送AT指令来检测模块是否已启动,也可以查看PWR_IND信号线。模块的启动时序图如图12所示。\n[0108] 接下来就可以通过串口使用AT命令来控制模块了。该模块主要使用的是GSM \n07.07协议,另外添加了不少自定义的命令。向串口中发送命令,比如测试信号强度“AT+CSQ”,然后从串口中读取返回的结果,如“+CSQ:23,7OK”,通过收到OK来判断命令已执行完成,然后分析前面的数据来获得信号强度23.\n[0109] 当需要关闭或是重启模块时,有两种情况,第一是温度或电压超出可操作的范围,第二是在AT命令中使用了AT^SMSO命令。当第一种情况发生时,串口会接收到^SBC的提示信息,来判定自动关闭的原因。\n[0110] 接下来介绍下整个3G模块的图像发送过程。\n[0111] 总流程:\n[0112] 摄像头终端经过初始化与服务器建立连接,服务器建立专门的线程并将地址和线程保存在一个hash表中,进行短暂的两机传输测试后,进入等待模式。此处的两机传输是为了在正式图像传输之前先进行短暂的通信,否则如果一上来就传输图像的话,很容易出现丢失包的情况。\n[0113] 用户通过浏览器登录到图像服务器,并通过控制界面发送请求,服务器将请求地址通过在hash表中比较,找到相应的线程和socket,向终端发送“#REQ#”命令,摄像头终端收到后回复“start”表示已收到请求可以发送,服务器回复“OK”,摄像头终端收到OK后开始发送图像数据,完成一帧图像传输后,终端等待下一个请求。\n[0114] 图像传输初始化:\n[0115] 以下是3G模块在上电后必须要进行的操作,分别通过调用at_init、net_connect和TCP_connect三个函数来逐步连接到网络上并与服务器建立TCP连接。详细过程如下:\n[0116] 一.初始化3G模块\n[0117] 1、通过函数EU3_GPIO_Config和EU3_PowerOn配置GPIO端口,并激活模块;\n[0118] 2、发送+++和AT^SISC命令,断开可能拥有的链接,不管返回值为OK还是ERROR,都将被忽略,因为我们不关心是否命令执行成功,唯一关心的是确保没有连接;\n[0119] 3、发送AT^SDPORT=2设置模块为UART模式,我们将使用串口来对模块发送命令;\n[0120] 4、发送at+cpin?确认SIM卡已准备就绪,收到OK后继续执行,否则必须退出[0121] 发送AT^SLED=1设置信号灯在有信号时一直亮。\n[0122] 二、连接3G网络\n[0123] 1.发送AT+COPS?检查网络,如果正常,会收到信息+COPS:0,0,″CHN-UNICOM″,2,即搜索到联通的网络,可以连接;\n[0124] 2.发送AT+CGATT=1附着到网络;\n[0125] 3.发送AT+CGDCONT=101,″ip″,″3GNET″设置接入点为联通的3gnet;\n[0126] 4.发送AT+CGACT=1,101激活网络上下文发送AT+CGPADDR=101获得动态IP,该命令会返回获得的IP,比如+CGPADDR:101,″172.18.174.196″,不过在连接服务器后看到的IP并非这个,因为实际与服务器连接的是基站的IP,由基站进行中转。\n[0127] 三、连接TCP\n[0128] 1、发送AT^SISS=2,″srvType″,″TCPclient″设置连接方式为TCP;\n[0129] 2、发送AT^SISS=2,″address″,″211.87.235.157:8888″设置连接地址为服务器的IP和端口;\n[0130] 3、发送AT^SISS=2,″conId″,101,将刚才激活的上下文分配给2号通道;\n[0131] 4、发送AT^SISO=2打开2号通道,建立TCP连接,返回CONNECT则为成功建立;\n[0132] 5、发送AT^SIST=2打开透明传输。\n[0133] 图像发送:\n[0134] 可选的同步模式包括延迟机制和确认机制,发送模式包括每两个字节发送一次和每行发送一次,在此,经测试,最终采用的是延迟机制和每两个字节发送一次的方式。\n[0135] 延迟机制就是在发送完一行或多行后,通过调用Delay函数来进行一定的延迟,等待3G模块处理数据,有效防止了数据丢失,并且能确保最坏执行时间,精确控制WCET,而缺点是在不同的时间段,比如上午10点和晚上8点,由于网络使用的频率和强度不同,因此需要的延迟也不太一致,比如实验证明上午一般8ms就能确保正确传输,而晚上需要设定为\n15ms才能确保绝大部分情况能无丢失传输,只能将就最坏情况即使用15ms,降低了效率。\n[0136] 确认机制就是在发送完一行或多行后,终端需要等待服务器接收端发送确认回复,收到回复才能继续传输。这种方式能确保数据能无丢失的传输到服务器,而缺点是花费时间长。据实验统计,每4行确认一次需要总花费29秒,而使用延迟机制能控制在15至19秒,时间相差比较大,主要原因是确认帧比较小,而一般网络都会使用捎带机制,从而确认帧到达时间较晚。\n[0137] 发送方式可分为每两个字节发送一次和每行发送一次。每次读摄像头的锁存器读出两个字节即一个像素的信息,可以直接写到串口中发送,也可以先放在一个缓冲数组中,待整行(320像素即640字节)都读取完毕了再统一发送。经过测量和评估,最终确定采取每行等待8ms和每两个字节发送一次来传输图像。虽然不能保证能实现最优,不过能实现大部分图像能无丢失传输。并且错误率在一个可接受的范围内。\n[0138] 图像服务器端:\n[0139] 为了能让用户能更方便的使用该监控功能,决定使用网站技术来实现接收端。服务器网站使用JSP实现,通过多线程机制来响应来自多个终端和多个浏览器的请求。具体如下:\n[0140] 该服务器由一个Tomcat下的Web服务器和一个TCPTCP服务器组成。Web服务器使用标准的8080端口,而TCP服务器默认使用8888端口建立与终端的TCP连接。TCP服务器用来与摄像头终端之间进行通信,并将接收到的图像以文件的形式保存到相应的路径;而Web服务器用来接收用户的HTTP请求,并将TCP服务器接收到的图像显示到相应的网页上,同时将用户点击的命令传递给TCP服务器,而TCP服务器再将命令通过TCP传递给摄像头终端。\n[0141] 服务器建立SocketServer后,每接受一个连接,建立一个MyThread类型的线程,将获得的socket作为参数传递给该线程,来独立的处理该请求,并将该地址和该线程放入一个Hashtable<String,MyThread>类型的对象中,供查询和调用。为了与Web服务器并发执行,而不相互干扰,服务器也实现为一个线程,其主方法就是在不断的调用accept方法等待建立连接。\n[0142] 在MyThread线程的主方法run中,共设置了3中命令,分别是echo、start、stop,分别实现回写简单数据、接收图像文件、停止该线程的作用。Echo命令还用来在终端刚建立连接时的网络测试中。\n[0143] 接收文件是该线程的最主要的功能,在刚开始执行时,需要设定读函数的超时时间,因为如果发送端发送数据丢失,必定引起接收端收到的数据数小于标准值(在这里就是bmp文件的大小153654),从而使接收线程由于read方法而永久阻塞,导致下一个请求也无法响应。如果设置了超时,设定read方法最多阻塞4秒钟,则完全避免了以上问题,如果超时就直接在异常处理中退出,回到命令阶段,继续工作。数据丢失错误就可以安全的跳过了。\n接收文件函数的主体就是先read网络流,获得数据后,再调用文件流的write写入固定文件。\n[0144] 为了方便查询历史和调试,使用专门编写的Log类来进行日志的记录。\n[0145] 5、无线2.4G图像传输模块\n[0146] 本发明采用的2.4G模块为NORDIC SEMICONDUCTOR公司生产的nRF24L01无线模块。\n该模块是一款工作在2.4G~2.5GHz世界通用的ISM频段的单片无线收发芯片,数据传输速率可达2Mbps。在Enhanced ShockBurst模式下,它支持自动数据包检测、CRC校验、自动重发、自动应答功能,因此省去了许多用户的操作。当nRF24L01被配置成接收模式时,它可以接收6路不同地址相同频率的数据,而且每个数据通道都拥有自己的地址来标识并且可以通过寄存器来配置。因此一个接收器最多可以同时接收6个发送端。nRF24L01通过标准的SPI接口来配置和操作,即通过SPI接口读写模块中的寄存器,而且最大数据传输速率为\n10Mbps。当需要对模块进行操作时,先发送相应的操作命令,它一共有8个指令,包括写寄存器、读寄存器、读接收有效数据、写发送有效数据等,每个指令都具有固定的格式,比如读寄存器指令的格式为000A AAAA,其中后五位为寄存器地址。\n[0147] nRF24L01一共有6个引脚,包括SPI时钟SCK、SPI片选使能SCN、SPI串行输入MOSI、SPI串行输出MISO、模块中断引脚IRQ、模块使能引脚CE。其中的MOSI和MISO是两根串行数据线,处理器通过MOSI引脚将数据串行地传送给nRF24L01,而通过MISO串行地从nRF24L01读数据。SPI可以每次传输1字节或者两个字节,而在本发明中,我们采用1字节传输方式。而在nRF24L01模块中,传输的有效数据长度也可以通过寄存器来配置,它支持1字节到32字节的传输单位,用户可以根据不同的应用来选择不同的单位长度。在本发明实现过程中,我们分别采用了1字节、2字节、32字节的传输方式,由于图像采集的时候,每次采集2个字节,因此2字节的传输方式比较合适。但是这样会造成发送次数偏多,影响速度。如果采用32字节的传输方式,则需开辟缓存来保存采集的图像数据,当到达32字节时,再调用发送函数来传输,这样发送次数会减少,但是会造成读、写缓存的时间消耗。\n[0148] 为了增加数据传输的可靠性,我们开启了自动应答和自动重发功能。当出现数据丢失时,发送端根据寄存器配置的延时和重发次数限制,来进行数据重发。当重发次数超过配置的最大重发次数时,则会产生重发中断。\n[0149] 我们设计了一个图像采集端,即发送端,以及一个数据接收端。当发送端的OV7670采集完一帧图像后,我们通过nRF24L01将图像数据传输到接收端,整个传输模式采用自动应答模式。而在接收端,我们实现了两种方式,第一种是开辟了一个足够大的缓存,保存接收到的图片数据;而另外一种方式是通过串口将采集的图像数据直接传送到上位机PC,PC将图像数据还原成原始图像。\n[0150] 5、无线433图像传输模块\n[0151] 本发明采用的433无线模块NRF905同样也是出自NORDIC SEMICONDUCTOR。433无线模块的开发过程大体上与2.4G模块相似。它也是通过SPI接口来进行寄存器访问,我们也同样编写了一个图像发送端和图像接收端,与采用与2.4G模块相同的发送和接收模式。\n[0152] 由于本发明只是为了发明图像传输、图像硬件压缩、3G传输等技术,而不在于做一个产品,因此本发明的摄像头终端并没有一个美观的外壳。图13是本发明基于FPGA图像压缩技术的3G远程传输网络摄像头终端的外观照片,在板子的一端是摄像头OV7670,在另外一端是3G模块,它通过高插针连在主板上;在3G插针旁边的两个小模块分别是NORDIC 2.4G无线模块和433无线模块。在处理器芯片STM32f103旁边有一个Xilinx公司的Spatan500E FPGA芯片。\n[0153] 为了测试本发明摄像头的3G传输,本实施例使用JSP和Tomcat搭建了一个Web服务器和TCP服务器。TCP服务器用来与摄像头终端之间进行通信,并将接收到的图像以文件的形式保存到相应的路径;而Web服务器用来接收用户的HTTP请求,并将TCP服务器接收到的图像显示到相应的网页上,同时将用户点击的命令传递给TCP服务器,而TCP服务器再将命令通过TCP传递给摄像头终端。因此本实施例摄像头终端又类似于一个监控摄像头,用户通过浏览器访问服务器地址,便可监视摄像头所在的方位。只是由于目前的传输速率受限,并没有做成视频流的形式。在监控网页上,本实施例加入了控制按钮,用户点击拍照键后,Web服务器将命令传递给TCP服务器,再由TCP服务器传递给摄像头终端。摄像头获得命令后,将获得命令时的当前图像通过3G模块传送到服务器。当图像传输完成时,用户点击刷新键,新的图像会出现在图像框中(如图14所示)。一个服务器可以同时连接多个摄像头终端,用户通过界面上的下拉框来选择需要查看的摄像头。\n[0154] 所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。
法律信息
- 2023-01-17
未缴年费专利权终止
IPC(主分类): H04N 7/18
专利号: ZL 201510054796.3
申请日: 2015.02.03
授权公告日: 2018.10.16
- 2018-10-16
- 2015-07-01
实质审查的生效
IPC(主分类): H04N 7/18
专利申请号: 201510054796.3
申请日: 2015.02.03
- 2015-06-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2011-10-20
| | |
2
| | 暂无 |
2011-12-09
| | |
3
| |
2013-10-02
|
2013-06-29
| | |
4
| | 暂无 |
2012-05-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |