一种图像解码方法、系统及主机和图像处理系统与流程

文档序号:17376818发布日期:2019-04-12 23:24阅读:151来源:国知局
一种图像解码方法、系统及主机和图像处理系统与流程

本申请涉及计算机技术领域,更具体地说,涉及一种图像解码方法、系统及一种主机、一种计算机可读存储介质和一种图像处理系统。



背景技术:

在云计算的时代,大量的数据传输需要进行pcx(中文全称:模型参数编码激励,英文全称:parametriccodedexcitation)图像解码,需要占用大量cpu(中文全称:中央处理器,英文全称:centralprocessingunit)或运算资源,影响云计算数据中心的运算性能,而现有技术中的pcx图像解码效率较低。

因此,如何提高pcx图像解码效率是本领域技术人员需要解决的技术问题。



技术实现要素:

本申请的目的在于提供一种图像解码方法、系统及一种主机、一种计算机可读存储介质和一种图像处理系统,提高了pcx图像解码效率。

为实现上述目的,本申请提供了一种图像解码方法,应用于主机,包括:

将压缩图像发送至fpga的缓存中,并设置fpga的解码参数;

向所述fpga发送解码命令,以便所述fpga利用所述解码参数对所述压缩图像进行解码操作;

接收所述fpga发送的所述压缩图像经解码操作后的原图像。

其中,所述将压缩图像发送至fpga的缓存中之前,还包括:

在所述fpga中创建所述缓存。

为实现上述目的,本申请提供了一种图像解码系统,应用于主机,包括:

设置模块,用于将压缩图像发送至fpga的缓存中,并设置fpga的解码参数;

发送模块,用于向所述fpga发送解码命令,以便所述fpga利用所述解码参数对所述压缩图像进行解码操作;

接收模块,用于接收所述fpga发送的所述压缩图像经解码操作后的原图像。

其中,还包括:

创建模块,用于在所述fpga中创建所述缓存。

为实现上述目的,本申请提供了一种主机,包括:

存储器,用于存储可执行文件;

处理器,用于执行所述可执行文件时实现如上述图像解码方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行文件,所述可执行文件被处理器执行时实现如上述图像解码方法的步骤。

为实现上述目的,本申请提供了一种图像处理系统,包括:

如上述的主机;

与所述主机相连,用于对压缩图像进行解码操作,并向所述主机返回原图像的fpga。

其中,所述主机与所述fpga通过pcie接口相连。

其中,还包括:

用于生成所述主机的主机端程序和所述fpga的kernel程序的算法生成器;

与所述算法生成器相连,用于对所述主机端程序进行编译生成可执行文件的第一编译器;

与所述算法生成器相连,用于对所述kernel程序进行编译生成aocx文件的第二编译器。

其中,所述第一编译器具体为gcc编译器,所述第二编译器具体为aoc。

通过以上方案可知,本申请提供的一种图像解码方法,包括:将压缩图像发送至fpga的缓存中,并设置fpga的解码参数;向所述fpga发送解码命令,以便所述fpga利用所述解码参数对所述压缩图像进行解码操作;接收所述fpga发送的所述压缩图像经解码操作后的原图像。

本申请提供的图像解码方法,使用通用处理器cpu作为主机端运行主程序,fpga(中文全称:现场可编程门阵列,英文全称:field-programmablegatearray)作为协处理器进行pcx图像解码算法的硬件加速单元,通过并行流水的优化方式提高算法的并行度,能够有效的提升pcx图像解码核心算法的执行性能,改善算法执行时的吞吐率性能。同时这种实现方式能够有效缩短将pcx图像解码算法部署到基于fpga的异构加速平台时的时间,简化产品研发周期。本申请还公开了一种图像解码系统及一种主机、一种计算机可读存储介质和一种图像处理系统,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1为根据一示例性实施例示出的一种图像解码方法的流程图;

图2为根据一示例性实施例示出的一种图像解码系统的结构图;

图3为根据一示例性实施例示出的一种主机的结构图;

图4为根据一示例性实施例示出的一种图像处理系统的结构图;

图5为根据一示例性实施例示出的另一种图像处理系统的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种图像解码方法,提高了pcx图像解码效率。

参见图1,根据一示例性实施例示出的一种图像解码方法的流程图,如图1所示,包括:

s101:将压缩图像发送至fpga的缓存中,并设置fpga的解码参数;

本实施例的执行主体可以为如通用处理器cpu的主机,与fpga之间可以采用pcie接口连接,进行数据通信。对于主机端和fpga的pcx图像解码算法可以采用opencl(中文全称:开放式计算语言,英文全称:opencomputinglanguage)高级语言描述,与通用的rtl硬件描述语言实现方式相比,采用opencl语言进行fpga硬件比特流的生成,能够有效改善算法实现效率,减少算法实现的开发周期。

分别生成在通用处理器cpu上运行的主机端程序,以及面向fpga平台的kernel程序。然后,采用gcc编译器对主机端程序进行编译,生成可在通用处理器cpu上执行的可执行程序文件,采用alterasdkforopencl(aoc)高层次综合工具对kernel程序文件进行编译综合,生成可在fpga上运行的aocx文件。最后,在通用处理器cpu上运行主机端程序,调用fpga上的pcx图像解码核心算法硬件电路进行硬件加速。

上述主机端程序具体为首先将压缩图像发送至fpga的缓存中,并设置fpga的解码参数。可以理解的是,在本步骤之前还可以包括在fpga中创建缓存的步骤。例如,可以采用fpga上的ddr3内存作为数据的缓存。

s102:向所述fpga发送解码命令,以便所述fpga利用所述解码参数对所述压缩图像进行解码操作;

在本步骤中,主机向fpga发送解码命令控制启动fpga端的pcx图像解码算法,fpga接收到主机的解码命令后,即上一步骤中描述的kernel程序包括:逐个字节读取缓存中的压缩图像的数据,根据读取的算法不同,读取不同的字节长度,利用解码参数根据公式进行pcx图像解码,直至缓存中压缩图像的数据全部处理完成,向主机端返回完成信号。

可以理解的是,本步骤不对pcx图像解码的过程进行具体限定,本领域技术人员可以灵活选择pcx图像解码算法。

s103:接收所述fpga发送的所述压缩图像经解码操作后的原图像。

在本步骤中,主机接收到fpga端的完成信号后,从fpga端ddr内存上的缓存中,将pcx图像解码后的数据读取到主机端,完成解码过程。

本申请实施例提供的图像解码方法,使用通用处理器cpu作为主机端运行主程序,fpga作为协处理器进行pcx图像解码算法的硬件加速单元,通过并行流水的优化方式提高算法的并行度,能够有效的提升pcx图像解码核心算法的执行性能,改善算法执行时的吞吐率性能。同时这种实现方式能够有效缩短将pcx图像解码算法部署到基于fpga的异构加速平台时的时间,简化产品研发周期。

下面对本申请实施例提供的一种图像解码系统进行介绍,下文描述的一种图像解码系统与上文描述的一种图像解码方法可以相互参照。

参见图2,根据一示例性实施例示出的一种图像解码系统的结构图,如图2所示,包括:

设置模块201,用于将压缩图像发送至fpga的缓存中,并设置fpga的解码参数;

发送模块202,用于向所述fpga发送解码命令,以便所述fpga利用所述解码参数对所述压缩图像进行解码操作;

接收模块203,用于接收所述fpga发送的所述压缩图像经解码操作后的原图像。

在上述实施例的基础上,作为一种优选实施方式,还包括:

创建模块,用于在所述fpga中创建所述缓存。

本申请实施例提供的图像解码系统,使用通用处理器cpu作为主机端运行主程序,fpga作为协处理器进行pcx图像解码算法的硬件加速单元,通过并行流水的优化方式提高算法的并行度,能够有效的提升pcx图像解码核心算法的执行性能,改善算法执行时的吞吐率性能。同时这种实现方式能够有效缩短将pcx图像解码算法部署到基于fpga的异构加速平台时的时间,简化产品研发周期。

关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请还提供了一种主机,参见图3,本申请实施例提供的一种主机的结构图,如图3所示,可以包括处理器11和存储器12。该主机还可以包括多媒体组件13,输入/输出(i/o)接口14,以及通信组件15中的一者或多者。

其中,处理器11用于控制该主机的整体操作,以完成上述的图像解码方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该主机的操作,这些数据例如可以包括用于在该主机上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该主机与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,主机可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的图像解码方法。

在另一示例性实施例中,还提供了一种包括可执行文件的计算机可读存储介质,该可执行文件被处理器执行时实现上述图像解码方法的步骤。例如,该计算机可读存储介质可以为上述包括可执行文件的存储器12,上述可执行文件可由主机的处理器11执行以完成上述的图像解码方法。

本申请还提供了一种图像处理系统,如图4所示,包括:

如上述实施例的主机100;

与所述主机100相连,用于对压缩图像进行解码操作,并向所述主机100返回原图像的fpga200。

在上述实施例的基础上,作为一种优选实施方式,所述主机100与所述fpga200通过pcie接口相连。

在上述实施例的基础上,作为一种优选实施方式,如图5所示,还包括:

用于生成所述主机的主机端程序和所述fpga的kernel程序的算法生成器300;

与所述算法生成器300相连,用于对所述主机端程序进行编译生成可执行文件的第一编译器400;

与所述算法生成器300相连,用于对所述kernel程序进行编译生成aocx文件的第二编译器500。

在上述实施例的基础上,作为一种优选实施方式,所述第一编译器具体为gcc编译器,所述第二编译器具体为aoc。

本申请实施例提供的图像处理系统,使用通用处理器cpu作为主机端运行主程序,fpga作为协处理器进行pcx图像解码算法的硬件加速单元,通过并行流水的优化方式提高算法的并行度,能够有效的提升pcx图像解码核心算法的执行性能,改善算法执行时的吞吐率性能。同时这种实现方式能够有效缩短将pcx图像解码算法部署到基于fpga的异构加速平台时的时间,简化产品研发周期。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1