一种用于图像数据的压缩系统转让专利

申请号 : CN201210168847.1

文献号 : CN102695057B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 于巍巍马晓东谭贤红郝修强王明伟

申请人 : 西安空间无线电技术研究所

摘要 :

本发明公开了一种用于图像数据的压缩系统,包括:图像分块模块、调度模块、码流组织模块、以及多个压缩模块。所述图像分块模块接收输入的图像数据,并根据所述压缩模块的图像处理宽度对所述图像数据按行或列进行分块,获得单元图像数据。所述调度模块将所述单元图像数据按流水顺序一一对应的输出到所述压缩模块中,所述压缩模块对输入的单元图像数据进行压缩后输出;其中,每个所述的压缩模块每次接收一个单元图像数据。所述码流组织模块将所述压缩模块输出的压缩后单元图像数据排序后输出。采用本发明实现了对宽幅大数据量图像数据的实时压缩处理。

权利要求 :

1.一种用于图像数据的压缩系统,其特征在于,包括:图像分块模块、调度模块、码流组织模块、以及多个压缩模块,所述图像分块模块接收输入的图像数据,并根据所述压缩模块的图像处理宽度对所述图像数据按行或列进行分块,获得单元图像数据;

所述调度模块将所述单元图像数据按流水顺序一一对应的输出到所述压缩模块中,所述压缩模块对输入的单元图像数据进行压缩后输出;其中,每个所述的压缩模块每次接收一个单元图像数据;

所述码流组织模块将所述压缩模块输出的压缩后单元图像数据排序后输出;

所述图像数据可以为通过航天器CCD相机获得的遥感图像数据,所述图像分块模块采用下述方式对遥感图像数据进行分块输出:对输入的每路遥感图像数据按行对所述遥感图像数据中的辅助数据进行分块获得单元辅助数据,按列对所述遥感图像数据中的图像数据进行分块获得单元图像数据;

将所述单元辅助数据进行存储,将所述单元图像数据按每路图像数据的输入顺序进行输出。

2.如权利要求1所述的一种用于图像数据的压缩系统,其特征在于:所述图像分块模块还可将所述压缩模块进行分组,再以流水方式将与每个压缩模块组中压缩模块数量相同的所述单元图像数据输出,每个压缩模块组中的压缩模块一一对应的接收输入的单元图像数据。

3.如权利要求1或2所述的一种用于图像数据的压缩系统,其特征在于:所述压缩模块采用ADV212芯片实现。

4.如权利要求3所述的一种用于图像数据的压缩系统,其特征在于:所述压缩模块通过以下方式对所述ADV212芯片进行配置:所述调度模块将对所述ADV212芯片的配置参数以格式化形式进行排列形成格式配置指令并进行存储,所述格式化配置指令中的配置参数可根据需要进行调整并重新进行存储;

所述调度模块在ADV212芯片上电时将存储的格式配置指令输出给ADV212芯片,由ADV212芯片根据所述格式配置指令中的配置参数完成配置。

5.如权利要求3所述的一种用于图像数据的压缩系统,其特征在于:在向所述ADV212芯片写入单元图像数据时,所述调度模块根据ADV212芯片的流水顺序产生对应于每个ADV212芯片的写数据时间戳信号,并在与所述写入时间戳信号对应的时刻产生写数据使能信号并输出给对应ADV212芯片;

在从所述ADV212输出压缩后单元图像数据时,所述调度模块根据ADV212芯片的流水顺序和对单元图像数据的压缩时间产生对应于每个ADV212芯片的读数据时间戳信号,并在与所述读数据时间戳信号对应的时刻产生读数据使能信号并输出给对应ADV212芯片。

说明书 :

一种用于图像数据的压缩系统

技术领域

[0001] 本发明涉及图像处理技术领域,特别涉及一种用于图像数据的压缩系统。

背景技术

[0002] 基于ADV212芯片的JPEG2000实现方法是目前采用较为广泛的一种实现方法,其特点在于算法实现简单,但现有基于ADV212芯片的JPEG2000实现方法均为基于单片ADV212芯片的设计,最高实时处理速率为1Gbps,不能满足对于宽幅大数据量图像数据处理的要求。且对于多路数据同时输入的应用情况,现有的实现方法均无法完成。

发明内容

[0003] 本发明的技术解决问题是:针对现有技术的不足,提供了一种用于图像数据的压缩系统法,实现了对宽幅大数据量图像数据的实时压缩处理。
[0004] 本发明的技术解决方案是:
[0005] 一种用于图像数据的压缩系统,包括:图像分块模块、调度模块、码流组织模块、以及多个压缩模块。
[0006] 所述图像分块模块接收输入的图像数据,并根据所述压缩模块的图像处理宽度对所述图像数据按行或列进行分块,获得单元图像数据;
[0007] 所述调度模块将所述单元图像数据按流水顺序一一对应的输出到所述压缩模块中,所述压缩模块对输入的单元图像数据进行压缩后输出;其中,每个所述的压缩模块每次接收一个单元图像数据;
[0008] 所述码流组织模块将所述压缩模块输出的压缩后单元图像数据排序后输出。
[0009] 进一步的,所述图像数据可以为通过航天器CCD相机获得的遥感图像数据,所述图像分块模块采用下述方式对遥感图像数据进行分块输出:
[0010] 对输入的每路遥感图像数据按行对所述遥感图像数据中的辅助数据进行分块获得单元辅助数据,按列对所述遥感图像数据中的图像数据进行分块获得单元图像数据;
[0011] 将所述单元辅助数据进行存储,将所述单元图像数据按每路图像数据的输入顺序进行输出。
[0012] 进一步的,所述图像分块模块还可将所述压缩模块进行分组,再以流水方式将与每个压缩模块组中压缩模块数量相同的所述单元图像数据输出,每个压缩模块组中的压缩模块一一对应的接收输入的单元图像数据。
[0013] 进一步的,所述压缩模块采用ADV212芯片实现。
[0014] 进一步的,所述压缩模块通过以下方式对所述ADV212芯片进行配置:
[0015] 所述调度模块将对所述ADV212芯片的配置参数以格式化形式进行排列形成格式配置指令并进行存储,所述格式化配置指令中的配置参数可根据需要进行调整并重新进行存储;
[0016] 所述调度模块在ADV212芯片上电时将存储的格式配置指令输出给ADV212芯片,由ADV212芯片根据所述格式配置指令中的配置参数完成配置。
[0017] 进一步的,在向所述ADV212芯片写入单元图像数据时,所述调度模块根据ADV212芯片的流水顺序产生对应于每个ADV212芯片的写数据时间戳信号,并在与所述写入时间戳信号对应的时刻产生写数据使能信号并输出给对应ADV212芯片;
[0018] 在从所述ADV212输出压缩后单元图像数据时,所述调度模块根据ADV212芯片的流水顺序和对单元图像数据的压缩时间产生对应于每个ADV212芯片的读数据时间戳信号,并在与所述读数据时间戳信号对应的时刻产生读数据使能信号并输出给对应ADV212芯片。
[0019] 本发明与现有技术相比具有如下优点:
[0020] 本发明根据压缩模块处理能力,对输入的宽幅图像数据进行分块,使得分块后的每个单元图像数据可以再一个压缩模块中进行压缩,从而实现了对宽幅大图像数据的处理的并行压缩。在向压缩模块输入单元图像数据时,采用流水的调度方式,使得由同一幅图像数据产生的多个单元图像数据可以同时进行压缩,从而提高了对图像数据压缩的实时性质。
[0021] 进一步,当图像数据为航天器获取的遥感图像数据时,针对遥感图像数据的格式特点,对辅助数据进行按行方向的分块,保证了辅助数据中控制信息的联系性,对图像数据进行按列方向的分块,保证了按列排布的多个谱段图像数据的完整性。同时,在对压缩模块的配置和调度方式上,采用格式配置指令的形式对每个压缩模块ADV212芯片进行配置,格式配置指令中的参数可根据压缩需要进行调整,扩展了ADV212芯片的可用性。并且,结合流水的调度方式,采用时间戳触发的数据写入和读出控制,提高了对ADV212芯片的控制精度。

附图说明

[0022] 图1为本发明示意图;
[0023] 图2为SDRAM存储空间区域划分示意图;
[0024] 图3为串行流水调度示意图;
[0025] 图4为并行流水调度示意图;
[0026] 图5为DMA方式工作原理图。

具体实施方式

[0027] 下面就结合附图对本发明做进一步介绍。
[0028] 如图1所示为本发明系统示意图。包括FPGA处理部分和图像数据压缩处理部分,FPGA处理部分分别实现图像分块模块、调度模块和码流组织模块,图像压缩处理部分包括各个压缩模块,在本实施例中所述压缩模块采用ADV212芯片实现。
[0029] FPGA将前端输入的图像数据缓存在SDRAM中,再由图像分块模块对图像数据进行分块。对于输入的宽幅图像数据,图像分块模块根据ADV212芯片的压缩宽度,确定分块后单元图像数据的分块个数,以K为单元图像的分块个数,则具体的分块算法如下:
[0030] (1)设每一路输入的图像数据大小为X×L,按行或列进行划分后,将获得X×(L/K)或(X/K)×L个单元图像块;同时,对于输入的其他多路图像数据按照同样的方式进行划分;
[0031] (2)按分块后单元图像块的数据的产生将所述的单元图像数据分别存储到SDRAM中。并等待所述的调度模块进行调度输出到ADV212芯片中进行压缩。
[0032] 若上述宽幅图像数据为航天器CCD相机获得的遥感图像数据,则根据遥感图像数据的特殊组成格式,进一步采用下述算法进行分块。
[0033] (1)同样设一路大小为X×L的遥感图像数据,其中X=M+N,M为遥感图像数每一行中,位于前列的辅助数据;N为遥感图像数据每一行中,位于辅助数据后的图像数据。在按K个分块个数进行分块时,针对辅助数据行方向上连续的特点,按行进行划分,获得大小为M×(L/K)的单元辅助数据;针对遥感图像数据多个谱段按列排布的特点,按列进行划分,获得(N/K)×L的单元图像数据。对于R路输入的遥感图像数据进行同样处理。
[0034] (2)根据上述获得的单元辅助数据或单元图像数据的个数,将缓存用SDRAM的存储空间划分为R×2×K个区域,第一个区域的首地址为0,依次计算剩下R×2×K-1个区域的首地址。
[0035] (3)将每路遥感图像数据的每行数据按照单元辅助数据和单元图像数据分别跳转写入SDRAM的不同地址空间内,对每个SDRAM地址空间内数据写入操作的次数进行累加。将R路CCD的L行数据写入完成,统计每个SDRAM地址空间内数据写入操作的总次数。
[0036] SDRAM存储空间区域划分如图2所示,图中相机路数R为3,fA1、fA2、fA3、fA4分别表示第A路相机的单元辅助数据分块1、2、3、4;tA1、tA2、tA3、tA4分别表示第A路相机的单元图像数据分块1、2、3、4。B路相机和C路相机的辅助数据和图像数据分块表示方法与A路类似。通过此种分块方式可以将卫星辅助数据和遥感图像数据以不同的分块方式同步缓存分块,并且缓存分块方式可以通过参数配置灵活选择,针对不同类型输入图像的应用背景,本方案可以快速实现相机数据缓存分块。
[0037] 所述的调度模块将分块模块对图像数据完成分块和存储后按串行流水或并行流水的方式将单元图像数据输入到所述压缩模块ADV212芯片中进行压缩。
[0038] 在串行流水调度中,采用单个单元图像数据与单个ADV212芯片相对应的方式进行流水调度,所述调度模块将属于一个图像数据的多个单元图像数据依次对应输入到多个ADV212芯片中,每个ADV212芯片接收一个单元图像数据并进行压缩,当最后一片ADV212芯片接收数据完成后,第一片ADV212芯片才可以再接收数据,调度过程如图3所示。
[0039] 在并行流水调度中,将用于压缩的ADV212芯片进行分组,在调度过程中,以ADV212芯片组为单位,输入对应于ADV212芯片数量的单元图像数据,一组中的ADV212芯片同时按一一对应的关系进行接收并对单元图像数据进行压缩后输出。完成一组的输入后,再进行下一组的输入,调度过程如图4所示。
[0040] 单片ADV212芯片的读写采用的是DMA的工作方式,该方式需要对ADV212芯片发出的读写请求信号进行响应,以完成一次数据的读写,DMA方式工作原理图见图5所示。图中DREQ0和DREQ1分别表示ADV212发出的输入图像和压缩数据DMA的请求信号,‘0’表示请求有效。DACK0和DACK1分别表示FPGA中调度模块发出的输入单元图像数据和压缩后单元图像数据的响应信号,‘0’表示请求有效。当ADV212向调度模块发送DREQ0=0的请求信号时,说明ADV212芯片现在处于空闲状态可以写入数据。当调度模块监测到DREQ0=0的信号时,会向ADV212芯片发送DACK0=0的响应信号,同时向ADV212芯片送入待压缩单元图像数据,由ADV212芯片进行压缩。
[0041] 每个ADV212芯片压缩结束后,向调度模块发送DREQ1=0的请求信号时,说明该ADV212芯片存在可输出的压缩数据。当调度模块监测到DREQ1=0的信号时,会向ADV212芯片发送DACK1=0的响应信号,同时从ADV212芯片中读取压缩后的单元图像数据。
[0042] 本发明所介绍的多片ADV212芯片分时读写控制方法,采用的是一种类似流水线调度概念的工作模式,使得多片ADV212芯片可以轮转工作,解决了系统的实时压缩处理问题。
[0043] 基于单片ADV212芯片的图像压缩系统实时峰值处理数据率为25M×20bit/s,采用串行流水调度方式后,系统的实时峰值处理速率可达到100M×20bit/s,采用并行流水调度方式后,系统的实时峰值处理速率可以达到120M×20bit/s。
[0044] 该处理方法的主要技术点在于,将单片ADV212芯片的所有配置及控制功能做了集成,可根据不同的应用情况,来灵活选择使用ADV212芯片的个数及组合方式,为技术在不同应用场合的移植提供了很大的方便。
[0045] 所述调度模块将压缩后的单元图像数据输出到码流组织模块进行排序后输出。对于由遥感图像数据拆分后形成的压缩单元图像数据,将在排序中加入在对应于压缩单元压缩图像数据的单元辅助数据,从而形成压缩码流包。根据调度模块对遥感图像数据的拆分顺序,每片ADV212芯片压缩处理后输出的数据和对应的卫星辅助数据子块及相应的帧头标识字按照协议要求组织为一个压缩码流包,每一片ADV212芯片的每次输出数据都会组成为一个压缩码流包。
[0046] 在上述过程中调用ADV212进行压缩前,还需要对ADV212进行配置。
[0047] ADV212芯片在上电过程中,需要对芯片的特定寄存器进行配置。本发明将对ADV212芯片的配置参数通过指令形式进行封装,将图像处理尺寸、小波分层级数、量化精度、压缩比设置等一些可配置的数值以参数的形式作为模块接口,并且将ADV212芯片的读写控制功能集成为一个模块,该模块对外接口仅表现为芯片的输入数据格式及写入速率要求和输出数据格式及读出速率要求。配置方法如下:
[0048] 1.将ADV212芯片的上电配置流程中相关寄存器的配置参数按固定的格式顺序进行排序形成格式配置指令,并将格式配置指令存储在FPGA片内ROM中;
[0049] 2.在ADV212芯片上电后,调度模块从ROM中依次读出格式配置指令,由ADV212芯片根据格式配置指令中的配置参数进行配置。对可变的配置参数可以在FPGA内以参数的形式对格式配置指令中对应的位置进行替换赋值,再按照替换后的格式配置指令对ADV212芯片进行配置。
[0050] 对ADV212的进行流水调度时,其读写状态以控制电平的形式进行控制,采用写数据使能信号和读数据使能信号的切换控制ADV212芯片读写状态的切换。
[0051] 对于写操作,所述调度模块根据ADV212芯片的流水调度顺序,产生一个写入时间戳信号,以表示当前时段将单元图像数据输出给哪片ADV212芯片,根据该写入时间戳信号,调度模块会在对应时刻产生一个写数据使能信号的控制电平,设该电平低有效,调度模块将ADV212芯片的写时序进行固化,将数据写入频率以参数的形式进行配置,当判决到写数据使能信号为‘0’时,启动ADV212芯片的写时序逻辑。
[0052] 对于读操作,所述调度模块会同样根据流水调度顺序产生读数据时间戳信号,并进一步产生读数据使能信号的控制电平,以表示哪个时段可以让ADV212芯片输出压缩后的单元图像数据,设读数据使能信号控制电平低有效,调度模块将ADV212芯片的读时序进行固化,将数据读出频率以参数的形式进行配置,当判决到读数据使能信号为‘0’时,启动ADV212芯片的读时序逻辑。
[0053] 这样的设计方式可以方便的实现功能调用,需要增加使用ADV212芯片时,只需要多调用几个代码模块即可,极大地提高了设计效率。该方法有效解决了不同应用情况下,程序代码需重新编写的问题,大大缩短了产品研制开发的周期。
[0054] 本发明未详细说明部分属本领域技术人员公知常识。