基于片上系统的高速图像压缩码流验证系统转让专利

申请号 : CN201310296797.X

文献号 : CN103402115B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李云松雷杰徐建国弋方张啸林杨国超韦方

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种基于片上系统的高速图像压缩码流验证系统。本系统包括PC机控制终端(1)和验证系统板卡(2),两者之间通过网络通信接口实现双向链接;所述PC机控制终端(1)用于完成原始图像数据、图像参数、码流参数以及任务序列的配置,并通过网络通信接口将其下载到验证系统板卡(2);所述验证系统板卡(2),用于根据图像参数要求完成原始图像的封装组帧、存储和发送,以及根据码流参数要求完成图像压缩码流的采集、存储、解码和验证,并将验证结果通过网络通信接口传输给PC机保存。本发明具有图像传输速率高且可对压缩码流直接进行解码验证的优点,可用于完成图像压缩编码系统的功能测试、压缩性能验证和可靠性验证。

权利要求 :

1.一种基于片上系统的高速图像压缩码流验证系统,包括:

PC机控制终端(1),用于完成原始图像数据、图像参数、码流参数以及任务序列的配置,并通过网络通信接口将其下载到验证系统板卡(2);

验证系统板卡(2),用于完成原始图像的封装组帧、存储和发送,以及图像压缩码流的采集、存储、解码和压缩性能验证,并将结果通过网络通信接口传输给PC机保存;

所述的验证系统板卡(2)包括:

数据封装组帧模块(21),用于通过网络接收原始图像数据、图像参数,并从图像参数中提取有效信息对原始图像数据进行封装组帧,将其转换为相机图像,再按照相机图像序号存储在高速存储器DDR2中;

发送控制模块(22),用于通过网络接收任务序列,并根据任务序列控制发送模块(23)发送相机图像,所述任务序列是一组由相机图像序号和连续两幅图像的时间间隔组成的数据序列,用于模拟CCD相机在太空单粒子辐射环境下会出现的异常情况,以验证图像压缩编码系统的可靠性;

发送模块(23),用于从高速存储器DDR2中读取相机图像,并按照参数要求发送给待验证的图像压缩编码系统;

采集控制模块(24),用于通过网络接收码流参数,并根据码流参数控制采集模块(25)采集码流;

采集模块(25),用于从待验证的图像压缩编码系统中采集码流,并将压缩码流按照码流序号存储在高速存储器DDR2中;

数据解析验证模块(26),用于从高速存储器DDR2中读取压缩码流,并在嵌入式Linux系统中直接进行软件解码,分析码流正确性;计算解码得到的图像数据的峰值信噪比PSNR,以评估压缩编码性能,并将评估结果通过网络传输给PC机保存。

2.根据权利要求1所述的一种基于片上系统的高速图像压缩码流验证系统,其特征在于,所述的验证系统板卡(2)采用Xilinx公司的片上系统XC7Z020-1CLG484内所集成的Cortex A9嵌入式处理器和现场可编程逻辑FPGA实现,在Cortex A9嵌入式处理器中移植Linux操作系统,并挂接高速存储器DDR2实现数据缓存,在可编程逻辑FPGA中采用基于片内高速互联总线AXI4的直接内存存取DMA软核实现图像数据高速传输。

3.根据权利要求1所述的一种基于片上系统的高速图像压缩码流验证系统,其特征在于,所述的PC机控制终端(1)包括:图像与参数配置模块(11),用于完成原始图像数据、图像参数和码流参数的配置;

任务序列配置模块(12),用于完成任务序列的配置。

4.根据权利要求3所述的一种基于片上系统的高速图像压缩码流验证系统,其特征在于,所述的图像与参数配置模块(11)和任务序列配置模块(12)是由VC语言编程实现的人机交互界面。

5.根据权利要求1所述的一种基于片上系统的高速图像压缩码流验证系统,其特征在于:所述的数据封装组帧模块(21)、发送控制模块(22)、采集控制模块(24)以及数据解析验证模块(26),均采用嵌入式Linux系统下的C语言编程实现;

所述的发送模块(23)和采集模块(25),均采用可编程逻辑FPGA下的硬件描述语言Verilog编程实现。

6.根据权利要求1所述的一种基于片上系统的高速图像压缩码流验证系统,其特征在于,所述的数据解析验证模块(26),包括:码流读取子模块,用于从高速存储器DDR2中读取压缩码流,并将其传输给解码分析子模块;

解码分析子模块,用于将图像压缩解码软件移植到嵌入式Linux系统中,对压缩码流直接进行软件解码,并将压缩码流与标准参考码流进行比较,验证压缩编码的正确性,即压缩码流与标准参考码流完全一致时表明压缩编码正确,反之,则不正确;

压缩性能评估子模块,用于计算软件解码得到的图像数据的峰值信噪比PSNR,评估压缩编码性能。

说明书 :

基于片上系统的高速图像压缩码流验证系统

技术领域

[0001] 本发明涉及图像压缩编码领域,具体涉及一种基于片上系统的高速图像压缩码流验证系统,可用于图像压缩编码系统的功能测试、压缩性能验证和可靠性验证。

背景技术

[0002] 随着图像压缩编码技术的发展,图像压缩编码技术被广泛应用在移动设备、生物医学、卫星遥感等领域。在图像压缩编码系统开发过程中,设计一种能够模拟实际CCD相机工作并可以灵活进行配置的验证系统是图像压缩编码系统的调试与验证是必要环节。特别地,对于星上的有效载荷,航天图像压缩编码系统的数据速率已经达到400MB/s的高速率,高速率下图像压缩编码系统的误码率相对较高,因此必须经过严格的测试后方能投入使用。如果在每次测试时,均采用图像压缩编码系统与体积庞大的CCD相机系统对接的方式,会造成效率低下,同时由于CCD相机输出的图像数据不可控,不能对太空单粒子辐射环境下CCD相机可能会出现的异常情况进行有效的模拟,如宇宙射线辐射导致的相机丢帧、单像素值翻转等异常。为了确保星载图像压缩编码系统研发和测试工作的有效开展,设计一套高速图像压缩码流的验证系统作为配套的测试设备,以实现对高速图像压缩编码系统的功能测试、压缩性能验证和可靠性验证,是十分关键的。
[0003] 高速图像压缩码流的验证系统主要实现以下功能:首先,模拟CCD相机输出图像数据,且保证输出图像的数据格式、数据速率与相机输出一致,即具有相同的帧格式、帧频等参数;其次,对CCD相机在太空单粒子辐射环境下可能会出现的异常情况进行有效的模拟,以验证图像压缩编码系统的可靠性;最后,对图像压缩编码系统输出的压缩码流进行采集、解码和压缩性能验证。因此,该系统完全可以替代相机成像系统进行高速图像压缩编码系统的功能测试、可靠性验证和压缩性能验证,并完成一些CCD相机不能够完成的测试任务。
[0004] 目前,已有的功能相近的系统通常采用上位PC机通过网络接口发送控制命令,FPGA可编程逻辑实现模拟相机输出图像数据的方案实现。国防科技大学2009年发表于《测试技术学报》的文章“基于FPGA的卫星图像源模拟系统设计”就是采用此方案,文中具体介绍为:上位PC机通过网络接口芯片向FPGA发送命令和图像数据,FPGA根据命令把从PC端接收到的图像数据写入存储设备中,并根据命令将存储设备中的图像数据按照指定的帧频串行输出。
[0005] 其他类似方案采用上位PC机通过串口通讯协议发送控制指令和图像数据,FPGA可编程逻辑根据接收到的控制指令通过编程将图像数据按照相机输出格式进行输出。中国科学院长春光学精密机械与物理研究所2009年发表于《计算机测量与控制》的文章“星载光学遥感相机图像模拟源的设计与实现”就是采用此方案,文中具体介绍为:FPGA可编程逻辑通过RS-422串口接收控制命令和图像数据,同时实现相机输出的时序与逻辑控制。
[0006] 上述这些系统方案的缺点是图像数据的传输速率受限,不能够适应图像压缩编码系统高速率的需求,不支持对图像压缩码流直接进行解码和压缩编码性能验证,此外对于一些特殊的功能,如配置测试任务序列等功能,常见的方案在实现时也较为困难。

发明内容

[0007] 本发明的目的是针对现有技术的不足,提出一种基于片上系统的高速图像压缩码流验证系统,以提高图像数据的输出速率,实现对图像压缩码流直接进行解码和压缩编码性能验证,并针对CCD相机在太空单粒子辐射环境下可能会出现的异常情况进行有效的模拟,以验证图像压缩编码系统的可靠性。
[0008] 为实现上述目的,本发明的验证系统包括:
[0009] PC机控制终端1,用于完成原始图像数据、图像参数、码流参数以及任务序列的配置,并通过网络通信接口将其下载到验证系统板卡2;
[0010] 验证系统板卡2,用于完成原始图像的封装组帧、存储和发送,以及图像压缩码流的采集、存储、解码和压缩性能验证,并将结果通过网络通信接口传输给PC机保存;
[0011] 所述的验证系统板卡2包括:
[0012] 数据封装组帧模块21,用于通过网络接收原始图像数据、图像参数,并从图像参数中提取有效信息对原始图像数据进行封装组帧,将其转换为相机图像,再按照图像序号存储在高速存储器DDR2中;
[0013] 发送控制模块22,用于通过网络接收任务序列,并根据任务序列控制发送模块23发送相机图像,所述任务序列是一组由原始图像序号和连续两幅图像的时间间隔组成的数据序列,用于控制验证系统模拟CCD相机在太空单粒子辐射环境下会出现的异常情况,以验证图像压缩编码系统的可靠性;
[0014] 发送模块23,用于从高速存储器DDR2中读取相机图像,并按照参数要求发送给待验证的图像压缩编码系统;
[0015] 采集控制模块24,用于通过网络接收码流参数,并根据码流参数控制采集模块25采集码流;
[0016] 采集模块25,用于从待验证的图像压缩编码系统中采集码流,并将压缩码流按照码流序号存储在高速存储器DDR2中;
[0017] 数据解析验证模块26,用于从高速存储器DDR2中读取压缩码流,并在嵌入式Linux系统中直接进行软件解码,分析码流正确性;计算软件解码得到的图像数据的峰值信噪比PSNR,以评估压缩编码性能,并将评估结果通过网络传输给PC机保存。
[0018] 上述基于片上系统的高速图像压缩码流验证系统,其特征在于,所述的数据解析验证模块26,包括:
[0019] 码流读取子模块261,用于从高速存储器DDR2中读取压缩码流,并将其传输给解码分析子模块262;
[0020] 解码分析子模块262,用于将图像压缩解码软件移植到嵌入式Linux系统中,对压缩码流直接进行软件解码,并将压缩码流与标准参考码流进行比较,验证压缩编码的正确性,即压缩码流与标准参考码流完全一致时表明压缩编码正确,反之不正确;
[0021] 压缩性能评估子模块263,用于计算软件解码得到的图像数据的峰值信噪比PSNR,评估压缩编码性能。
[0022] 本发明与现有技术相比具有以下优点:
[0023] 第一,由于本发明采用嵌入式Linux系统进行设计,且将解码软件程序移植到Linux系统中,不仅能对采集到的压缩码流直接进行软件解码,以分析码流正确性,而且能通过计算软件解码得到的图像数据的峰值信噪比PSNR,进而评估出压缩编码性能;
[0024] 第二,由于本发明在PC机控制终端采用任务序列配置模块控制验证系统,模拟CCD相机在太空单粒子辐射环境下输出异常图像数据,如常见的单幅图像中行丢失、单行图像中像素丢失、时钟沿错误等异常情况,因而能实现对图像压缩编码系统的可靠性验证。
[0025] 第三,由于本发明采用由片上系统实现的验证系统板卡进行设计,其内部集成了Cortex A9嵌入式处理器和现场可编程逻辑FPGA,在FPGA中采用基于片内高速互联总线AXI4的直接内存存取DMA软核实现图像数据的高速传输,提高了图像数据吞吐能力,避免了Cortex A9处理器与FPGA之间通过板级总线互联时图像数据传输速率受限的缺点。

附图说明

[0026] 图1为本发明的总体结构示意图;
[0027] 图2为本发明中的PC机控制终端结构示意图;
[0028] 图3为本发明中的任务序列结构示意图;
[0029] 图4为本发明中的验证系统板卡结构示意图。

具体实施方式

[0030] 下面结合附图对本发明的实现做详细的描述。
[0031] 参照图1,本发明基于片上系统的高速图像压缩码流验证系统,包括PC机控制终端1和验证系统板卡2,两者之间通过网络通信接口实现双向链接;该PC机控制终端1用于完成原始图像数据、图像参数、码流参数以及任务序列的配置,并通过网络通信接口将其下载到验证系统板卡2;该验证系统板卡2用于完成原始图像的封装组帧、存储和发送,以及图像压缩码流的采集、存储、解码和压缩性能验证,并将结果通过网络通信接口传输给PC机保存。
[0032] 参照图2,本发明的PC机控制终端1,包括图像与参数配置模块11和任务序列配置模块12。
[0033] 所述图像与参数配置模块11,通过人机交互界面选取图像文件配置原始图像数据,通过界面输入配置图像参数和码流参数,其中图像参数包括图像正程、图像高度、帧逆程、行逆程、行有效电平、帧有效电平、发送时钟频率以及发送时钟沿类型等,码流参数包括采集时钟频率、采集时钟沿类型、行有效电平和帧有效电平等。
[0034] 所述任务序列配置模块12,通过人机交互界面按照自定义的任务序列数据结构配置任务序列,其数据结构参照图3。它是由任务序列头部和一系列子任务组成,其中:
[0035] 任务序列头部包括三部分:标志位、子任务个数和任务序列重复次数。其中,标志位0x01表示一个任务序列的开始,子任务个数表示当前任务序列中所有子任务个数,任务序列重复次数表示当前任务序列在验证系统中被重复执行的次数;
[0036] 子任务包括四部分:标志位、相机图像序号、时间间隔和子任务重复次数。其中,标志位0x02表示一个子任务的开始,相机图像序号表示相机图像存储在高速存储器DDR2中的序号,时间间隔表示连续发送两幅相机图像需要等待的时间,子任务重复次数表示当前子任务所代表的相机图像在验证系统中被发送的次数。
[0037] 通过上述自定义的任务序列数据结构可以控制验证系统板卡,模拟CCD相机在太空单粒子辐射环境下输出异常图像数据,如常见的单幅图像中行丢失、单行图像中像素丢失、时钟沿错误等异常情况,以验证图像压缩编码系统的可靠性。
[0038] 参照图4,本发明的验证系统板卡2采用Xilinx公司的片上系统XC7Z020-1CLG484内所集成的Cortex A9嵌入式处理器和现场可编程逻辑FPGA实现,在Cortex A9嵌入式处理器中移植Linux操作系统,并挂接高速存储器DDR2实现数据缓存,在可编程逻辑FPGA中采用基于片内高速互联总线AXI4的直接内存存取DMA软核实现图像数据高速传输。该验证系统板卡2包括:数据封装组帧模块21、发送控制模块22、发送模块23、采集控制模块24、采集模块25、数据解析验证模块26以及高速存储器DDR2。其中:
[0039] 所述数据封装组帧模块21,由嵌入式Linux系统下的C语言编程实现,其通过网络接收原始图像数据、图像参数,然后从图像参数中提取图像正程、图像高度、帧逆程、行逆程、行有效电平、帧有效电平、发送时钟频率以及发送时钟沿类型等信息,并将这些参数作为当前图像的帧头,对原始图像数据封装组帧,进而转换为相机图像,并为该相机图像编号后存储在高速存储器DDR2中;
[0040] 所述发送控制模块22,由嵌入式Linux系统下的C语言编程实现,其通过网络接收任务序列,并根据任务序列中的相机图像序号和时间间隔生成控制指令,控制发送模块23从高速存储器DDR2中读取相应序号的相机图像;
[0041] 所述发送模块23,由可编程逻辑FPGA下的硬件描述语言Verilog编程实现,其利用直接内存存取DMA软核,从高速存储器DDR2中读取相机图像,并按照相机图像帧头中参数的要求,如行有效电平、帧有效电平、发送时钟频率、发送时钟沿类型、正逆程等要求,将相机图像发送给待验证的图像压缩编码系统;
[0042] 所述采集控制模块24,由嵌入式Linux系统下的C语言编程实现,其通过网络接收码流参数,然后从码流参数中提取采集时钟频率、采集时钟沿类型、行有效电平和帧有效电平等信息生成控制指令,控制采集模块25采集压缩码流;
[0043] 所述采集模块25,由可编程逻辑FPGA下的硬件描述语言Verilog编程实现,其从待验证的图像压缩编码系统中采集压缩码流,并为该压缩码流编号后,由直接内存存取DMA软核将压缩码流存储在高速存储器DDR2中;
[0044] 所述数据解析验证模块26,由嵌入式Linux系统下的C语言编程实现,包括:码流读取子模块261、解码分析子模块262和压缩性能评估子模块263。其中:
[0045] 该码流读取子模块261,按照压缩码流序号从高速存储器DDR2中读取压缩码流,并将其传输给解码分析子模块262;
[0046] 该解码分析子模块262,将图像压缩解码软件移植到嵌入式Linux系统中,对压缩码流直接进行软件解码,同时将压缩码流与标准参考码流进行比较,验证压缩编码的正确性,即压缩码流与标准参考码流完全一致时表明压缩编码正确,反之,则不正确;
[0047] 该压缩性能评估子模块263,计算软件解码得到的图像数据的峰值信噪比PSNR,以评估压缩编码性能,PSNR值越大表示压缩编码性能越好。
[0048] 本发明的工作原理如下:
[0049] PC机控制终端1通过网络通信接口将原始图像数据、图像参数、码流参数及任务序列传输给验证系统板卡2,原始图像数据和图像参数输入到数据封装组帧模块21,数据封装组帧模块21对原始图像数据进行封装组帧生成相机图像,并将其存储到高速存储器DDR2中;发送控制模块22控制发送模块23利用直接内存存取DMA从高速存储器DDR2中读取相机图像,并通过发送采集接口发送给待验证的图像压缩编码系统,完成相机图像的发送功能;
[0050] 采集控制模块24控制采集模块25采集待验证的图像压缩编码系统生成的压缩码流,并利用直接内存存取DMA将其存储在高速存储器DDR2中;数据解析验证模块26读取压缩码流直接进行软件解码得到解码后的图像数据,计算其峰值信噪比PSNR,以评估压缩编码性能,同时将压缩码流与标准参考码流进行比较,验证压缩编码的正确性。
[0051] 以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。