一种基于图像数据的封装方法及系统的制作方法

文档序号:9508773阅读:411来源:国知局
一种基于图像数据的封装方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据封装技术领域,尤其涉及一种基于图像数据的封装方法及系统。
【背景技术】
[0002]JPEG是国际标准化组织(ISO)领导下制定的静态图像的压缩编码标准,在图像数据量大、人们对图像质量要求越来越高的背景下,JPEG作为一种低复杂度、高压缩比的图像压缩标准在数据量极大的多媒体以及带宽宝贵的网络传输等领域得到了广泛的应用。而以太网作为一种数据传输标准,其实现简单、价格低廉,且能实现图像数据的高速、稳定、实时的传输,是目前应用最广泛的网络技术。
[0003]在工业现场,由于各种极端的环境和具体应用需求,通常需要对工业设备或现场进行实时的图像采集。目前,国内应用于视频监控领域的图像采集方案多采用CCD图像传感器+视频解码器(如SAA7113H) +FPGA/CPLD+DSP实现。但是这种的现有方案一般开发周期较长,并且在现有的通用图像采集处理系统中,需要用帧缓存模块对图像数据整帧或多帧进行存储,存储设备一般采用SDRAM、SRAM等,这种大容量的高速存储器件成本较高。

【发明内容】

[0004]为了解决上述技术问题,本发明的目的是提供一种能缩小开发周期,且节约成本的一种基于图像数据的封装方法及系统。
[0005]本发明所采用的技术方案是:
一种基于图像数据的封装方法,包括以下步骤:
A、将需要封装的图像数据存储于缓存中;
B、根据缓存中的当前帧图像数据总量,计算得出所需封装的图像数据长度;
C、根据计算得到的所需封装的图像数据长度,对图像数据进行打包并封装。
[0006]作为所述的一种基于图像数据的封装方法的进一步改进,设K表示允许的最小包文长度,并取允许的最大包文长度为2K,C表示包文中添加的包头与包尾字节数之和,Μ表示缓存中当前帧图像数据总量,Ν表示所需封装的图像数据长度;
则所述步骤Β包括:
Β1、若Μ ^ 3K-2C,则计算对应的所需封装的图像数据长度N=2K-C ;
B2、若2K-C < Μ ^ 3K-2C且Μ为奇数,则计算对应的所需封装的图像数据长度Ν= (M+l)/2 ;
Β3、若2K-C < Μ < 3K-2C且Μ为偶数,则计算对应的所需封装的图像数据长度Ν=Μ/2 ; Β4、若K-C < Μ < 2K-C,则计算对应的所需封装的图像数据长度Ν=Μ ;
B5、g Μ < K-C,则计算对应的所需封装的图像数据长度N=0。
[0007]作为所述的一种基于图像数据的封装方法的进一步改进,所述步骤C包括:
C1、根据计算得到的所需封装的图像数据长度,从缓冲中取出对应长度的图像数据进行打包; C2、根据取出的图像数据,对其配置对应的包头和包尾;
C3、根据包头-图像数据-包尾的格式,对打包后的图像数据进行封装。
[0008]作为所述的一种基于图像数据的封装方法的进一步改进,所述包头包括有效长度和包文类型。
[0009]作为所述的一种基于图像数据的封装方法的进一步改进,所述包尾为校验码。
[0010]本发明所采用的另一技术方案是:
一种基于图像数据的封装系统,包括:
存储单元,用于将需要封装的图像数据存储于缓存中;
长度计算单元,用于根据缓存中的当前帧图像数据总量,计算得出所需封装的图像数据长度;
封装单元,用于根据计算得到的所需封装的图像数据长度,对图像数据进行打包并封装。
[0011]作为所述的一种基于图像数据的封装系统的进一步改进,设K表示允许的最小包文长度,并取允许的最大包文长度为2K,C表示包文中添加的包头与包尾字节数之和,Μ表示缓存中当前帧图像数据总量,Ν表示所需封装的图像数据长度;
则所述长度计算单元包括:
第一判断计算单元,用于若Μ多3K-2C,则计算对应的所需封装的图像数据长度N=2K-C ;
第二判断计算单元,用于若2K-C < Μ < 3K-2C且Μ为奇数,则计算对应的所需封装的图像数据长度Ν=(Μ+1)/2;
第三判断计算单元,用于若2K-C < Μ < 3K-2C且Μ为偶数,则计算对应的所需封装的图像数据长度Ν=Μ/2 ;
第四判断计算单元,用于若K-C< MS 2K-C,则计算对应的所需封装的图像数据长度
N=M ;
第五判断计算单元,用于若Μ < K-C,则计算对应的所需封装的图像数据长度Ν=0。
[0012]作为所述的一种基于图像数据的封装系统的进一步改进,所述封装单元包括:
打包单元,用于根据计算得到的所需封装的图像数据长度,从缓冲中取出对应长度的图像数据进行打包;
配置单元,用于根据取出的图像数据,对其配置对应的包头和包尾;
封装执行单元,用于根据包头-图像数据-包尾的格式,对打包后的图像数据进行封装。
[0013]本发明的有益效果是:
本发明一种基于图像数据的封装方法及系统在封装时考虑到以太网帧格式和JPEG图像帧数据总量不确定的特点,通过动态计算需打包的图像数据的长度,从而能有效避免需填充无效数据的情况,大大减少数据处理的时间,减少网络带宽的占用,而且本发明实现简单,需求设备较少,能有效缩小开发周期,节约成本。
【附图说明】
[0014]下面结合附图对本发明的【具体实施方式】作进一步说明: 图1是本发明一种基于图像数据的封装方法的步骤流程图;
图2是本发明一种基于图像数据的封装方法步骤C的步骤流程图;
图3是本发明一种基于图像数据的封装系统的模块方框图;
图4是本发明数据封装包的包文格式示意图;
图5是本发明实现过程的系统功能框图;
图6是本发明实现过程的FPGA功能模块实现框图;
图7是本发明实现过程中封装方法的FPGA实现框图。
【具体实施方式】
[0015]参考图1,本发明一种基于图像数据的封装方法,包括以下步骤:
A、将需要封装的图像数据存储于缓存中;
B、根据缓存中的当前帧图像数据总量,计算得出所需封装的图像数据长度;
C、根据计算得到的所需封装的图像数据长度,对图像数据进行打包并封装。
[0016]进一步作为优选的实施方式,设K表示允许的最小包文长度,并取允许的最大包文长度为2K,C表示包文中添加的包头与包尾字节数之和,Μ表示缓存中当前帧图像数据总量,Ν表示所需封装的图像数据长度;
则所述步骤Β包括:
Β1、若Μ ^ 3K-2C,则计算对应的所需封装的图像数据长度N=2K-C ;
B2、若2K-C < Μ ^ 3K-2C且Μ为奇数,则计算对应的所需封装的图像数据长度Ν= (M+l)/2 ;
Β3、若2K-C < Μ < 3K-2C且Μ为偶数,则计算对应的所需封装的图像数据长度Ν=Μ/2 ; Β4、若K-C < Μ < 2K-C,则计算对应的所需封装的图像数据长度Ν=Μ ;
B5、g Μ < K-C,则计算对应的所需封装的图像数据长度N=0。
[0017]参考图2,进一步作为优选的实施方式,所述步骤C包括:
C1、根据计算得到的所需封装的图像数据长度,从缓冲中取出对应长度的图像数据进行打包;
C2、根据取出的图像数据,对其配置对应的包头和包尾;
C3、根据包头-图像数据-包尾的格式,对打包后的图像数据进行封装。
[0018]参考图4,进一步作为优选的实施方式,所述包头包括有效长度和包文类型。所述包尾为校验码。
[0019]其中,所述有效长度指示数据封装包的有效数据字节数,即为包文类型、图像数据和校验码的字节数总和,在数据接收端,先接收此字节,然后根据此字节的指示确定接收数据的长度;所述包文类型,主要用于标示数据源或目的,如0x01标示摄像头1的数据,0x02标示摄像头2的数据;图像数据,表示实际需要传输的JPEG数据;校验码,根据图像数据生成的16bit的CRC校验码,用于接收端对接收的包文数据进行校验,当校验不通过时,进行错误包文统计并对当前图像帧作出相应处理。
[0020]参考图3,本发明一种基于图像数据的封装系统,包括:
存储单元,用于将需要封装的图像数据存储于缓存中;
长度计算单元,用于根据缓存中的当前帧图像数据总量,计算得出所需封装的图像数据长度;
封装单元,用于根据计算得到的所需封装的图像数据长度,对图像数据进行打包并封装。
[0021]作为所述的一种基于图像数据的封装系统的进一步改进,设K表示允许的最小包文长度,并取允许的最大包文长度为2K,C表示包文中添加的包头与包尾字节数之和,Μ表示缓存中当前帧图像数据总量,Ν表示所需封装的图像数据长度;
则所述长度计算单元包括:
第一判断计算单元,用于若Μ多3K-2C,则计算对应的所需封装的图像数据长度N=2K-C ;
第二判断计算单元,用于若2K-C < Μ < 3K-2C且Μ为奇数,则计算对应的所需封装的图像数据长度Ν=(Μ+1)/2;
第三判断计算单元,用于若2K-C < Μ < 3K-2C且Μ为偶数,则计算对应的所需封装的图像数据长度Ν=Μ/2 ;
第四判断计算单元,用于若K-C < MS 2K-C,则计算对应的所需封装的图像数据长度
N=M ;
第五判断计算单元,用于若Μ < K-C,则计算对应的所需封装的图像数据长度N=0。
[0022]作为所述的一种基于图像数据的封装系统的进一步改进,所述封装单元包括:
打包单元,用于根据计算得到的所需封装的图像数据长度,从缓冲中取出对应长度的图像数据进行打包;
配置单元,用于根据取出的图像数据,对其配置对应的包头和包尾;
封装
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1