一种可扩展智能图形图像处理的加速装置和方法

文档序号:10570640阅读:451来源:国知局
一种可扩展智能图形图像处理的加速装置和方法
【专利摘要】本发明公开了一种可扩展智能图像处理加速装置和加速方法,所述加速装置包括智能图像处理单元和智能图像处理驱动单元,其中,所述智能图像处理驱动单元,用于对智能图像处理单元进行配置,包括根据原始数据、需执行的任务以及所采用的图像处理算法生成具体配置信息,并将所述配置信息传送给智能图像处理单元;所述智能图像处理单元,用于加载图像处理算法,并根据所述配置信息执行智能图像处理,并对其进行加速。
【专利说明】
一种可扩展智能图形图像处理的加速装置和方法
技术领域
[0001]本发明涉及图形图像处理的技术领域,具体涉及一种可扩展智能图形图像处理的加速装置和加速方法。
【背景技术】
[0002]目前图像信息的处理已经越来越成为与人们生活紧密相关的基础技术,图像中所包含的巨大信息量也成为人工智能技术领域的研究重点。从手机中的图像增强、美颜功能,到基于PC的图像内容的分类与理解,都离不开针对图像的密集运算。但目前的计算方案在硬件成本及功耗需求上都非常高。
[0003]目前的图像信息处理计算方案主要基于CPU,GPU,或DSP处理器来实现,单纯的CPU已经无法满足复杂的图像处理及人工智能算法处理性能要求,而像GPU,DSP这样的处理器单元都是从传统的计算平台演进而来,并且在设计中需要考虑一定的通用性,这就使它们无法成为一个专注于人工智能的图像处理算法的最优加速方案。同时,人工智能分析算法又有其自身的特点并不断发展,无论从计算的要求本身,到对原始数据与中间结果的存取与读写,都会导致不同于传统平台的计算性能与带宽瓶颈,并且所需的功耗也会很高,这都要求专注于视觉计算的新方法与新装置。视觉计算的核心是图像的处理与其中信息的提取,针对视觉计算核心需求而设计的方法与装置有非常大的价值。
[0004]此外,在进行智能图形图像处理时,例如神经网络运算,运算处理速度与数据的内存读写效率直接反应出整个系统的实际算法处理能力,二者的匹配程度会直接影响到系统的性能与功耗。在不同算法的数据运算与读写要求下,如
[0005]何确保数据的吞吐不会形成瓶颈,以实现系统运算处理能力的完全发挥并确保系统整体能效的最大化,一直是系统设计的核心技术难题。

【发明内容】

[0006]鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种可扩展的智能图形图像处理的加速装置和方法。
[0007]为了解决上述问题,本发明公开了一种可扩展智能图像处理加速装置,其特征在于:包括智能图像处理单元和智能图像处理驱动单元。所述智能图像处理驱动单元,用于对智能图像处理单元进行配置,包括根据原始数据、需执行的任务以及所采用的图像处理算法生成具体配置信息,并将所述配置信息传送给智能图像处理单元;所述智能图像处理单元,用于加载图像处理算法,并根据所述配置信息执行智能图像处理,并对其进行加速。
[0008]本发明还公开了一种基于可扩展智能图像处理加速装置的加速方法,其特征在于:所述可扩展智能图像处理加速装置包括智能图像处理单元和智能图像处理驱动单元,所述加速方法具体包括如下步骤:步骤101,所述智能图像处理驱动单元根据原始数据、需执行的图像处理任务以及所采用的图像处理算法生成具体配置信息;步骤102,所述智能图像处理单元加载图像处理算法,并根据所述具体配置信息设置加速处理过程;步骤103,向所述智能图像处理单元输入所述原始数据,并执行智能图像的加速处理;步骤104,输出加速处理后的结果。
[0009]其中,所述原始数据包括图像数据、图像处理算法的参数数据以及算法代码描述数据。
[0010]本发明包括以下优点:
[0011]本发明通过采用智能图像处理驱动单元对智能图像处理单元进行具体配置的方法,能够低成本、低功耗、高效率的实现对智能图形图像处理的加速。
[0012]本发明通过统一运算核心子模块的多核可扩展设计,能够更好的满足不同计算密度下的性能升级。
[0013 ]本发明通过引入自适应帧内存压缩子模块和自适应统一行缓存子模块,在适配各种图像块压缩算法的同时,极大的减少了运算过程中对内存访问的带宽需求与延迟,在提升性能的同时降低了功耗。
【附图说明】
[0014]图1是本发明实施例中一种可扩展智能图形图像处理加速装置的结构示意图;
[0015]图2是本发明实施例中一种基于可扩展智能图形图像处理加速装置的加速方法的流程图;
[0016]图3是本发明另一实施例中加速处理过程的流程图。
【具体实施方式】
[0017]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0018]参照图1,示出了本发明的一种可扩展的智能图像处理加速装置的结构示意图,该加速装置包括智能图像处理单元I和智能图像处理驱动单元2。智能图像处理单元I,用于执行智能图形图像的处理,并对其进行加速。智能图像处理驱动单元2,用于对智能图像处理单元I进行配置,包括根据原始数据、需执行的任务以及所采用的图像处理算法生成具体配置信息,并将该配置信息传送给智能图像处理单元I。
[0019]其中,该原始数据为当前图形图像处理操作过程中的操作对象,包括图像信息、格式与尺寸等原始图像数据以及图像处理算法的参数数据(例如神经网络参数等),还可以进一步包括算法代码描述数据,其可通过图像采集设备采集、网络传输、本地存储、本地运算等方式获取,加速系统对原始数据的来源并无特殊要求。
[0020]该智能图像处理单元I接收从智能图像处理驱动单元2传送的具体配置信息,然后加载图像处理算法,并根据该具体配置信息设定原始数据的读取操作、数据的压缩/解压缩操作、具体的缓存操作、内部行缓存数据的更新操作、数据的运算操作以及数据流的传送等。更进一步地,该智能图像处理单元I包括控制逻辑子模块101,自适应帧内存压缩子模块102,自适应统一行缓存子模块303,以及一个或多个统一运算核心子模块104。
[0021]控制逻辑子模块101,被设置为依据智能图像处理驱动单元2生成的具体配置信息,控制自适应帧内存压缩子模块102对原始数据进行读取与压缩/解压缩操作,控制自适应统一行缓存子模块103按照预定模式组织内部缓存数据以供统一运算核心子模块104操作处理,并控制各统一运算核心子模块104按照预定的逻辑或逻辑组合对内部缓存数据进行运算。同时,控制逻辑子模块101还可以进一步地控制智能图像处理单元与外部的数据交换。
[0022]自适应帧内存压缩子模块102,被设置为接收该原始数据,并根据控制逻辑子模块101发送的控制信号对该原始数据进行解压缩后填入自适应统一行缓存子模块103的行缓存中。
[0023]自适应统一行缓存子模块103,被设置为根据控制逻辑子模块101发送的控制信号缓存自适应帧内存压缩子模块102解压缩后的数据或者由统一运算核心子模块104返回的中间结果,并生成操作数据,以求最大限度的减少智能图像处理单元的外部读写行为,减少带宽需求与延迟。
[0024]一个或多个统一运算核心子模块104,被设置为加载图像处理算法,并根据控制逻辑子模块101发送的控制信号执行对自适应统一行缓存子模块103中操作数据的逻辑或逻辑组合运算,将运算结果作为中间结果写回到自适应统一行缓存子模块103中,或经由自适应帧内存压缩子模块102将运算结果输出智能图像处理单元。其中,统一运算核心子模块104为多核可扩展结构,能够根据运算需要增加该子模块的数量以进一步提升数据处理能力。
[0025]当执行任务无法一次被执行完毕时,智能图像处理驱动单元2将该执行任务划分为一个或多个子任务,并生成各子任务的具体配置信息,控制逻辑子模块101接收配置信息后,生成控制信号并发送至自适应帧内存压缩子模块102和自适应统一行缓存子模块103。例如,在图像识别处理中,如果图像数据过大,可以将一个图像划分为多个图像块,然后依次对各个图像块进行识别处理。再例如,在神经网络算法中,也可以根据神经网络层数的数量,依次对各层或者多层进行处理。此时统一运算核心子模块104生成的运算结果被写回到自适应统一行缓存子模块103中时,该运算结果作为中间结果,并依次执行下一个子任务。当执行任务可以一次被执行完毕时,统一运算核心子模块104生成的运算结果经由自适应帧内存压缩子模块102被输出智能图像处理单元I。
[0026]作为一优选实施例,在自适应统一行缓存子模块103的存储空间满足待处理图像和某特定算法参数的缓存要求时,通过只读取待处理图像一次来保证最佳的数据存取效能;而当自适应统一行缓存子模块103的存储空间无法满足待处理图像和某特定算法参数的缓存要求时,可根据算法特点调节是否需要多次读取待处理图像,以实现在系统资源有限的情况下数据处理性能的完全发挥,保证系统的整体效能最优。
[0027]以下,以执行任务为神经网络算法为例做进一步说明。
[0028]假设某一神经网络算法定义的网络结构中,某一中间层共有N个AXA大小的待处理图像单元作为输入智能图像处理单元I的图像数据,其中每个图像单元数据为M Bytes,则该层待处理图像的总大小为M X NX A XA Bytes。对应的参数矩阵为X个,作为输入智能图像处理单元I的参数数据,其中每个参数矩阵的大小为B X B,并且每个参数的大小为YBytes,则该层参数矩阵的大小为X XYXBXB Bytes。自适应统一行缓存子模块103可根据四种不同的状态来决定行缓存策略,以实现系统性能的最大化:
[0029]状态一:当自适应统一行缓存子模块103的存储空间大于图像数据与参数数据的总大小MX NXA XA+X X Y X B X B Bytes时,所有待处理的图像数据与对应的参数矩阵数据可完全被缓存在自适应统一行缓存子模块103内,此时所有待处理图像与对应的参数矩阵数据运算后的结果将作为统一运算核心子模块的最终运算结果输出。
[0030]状态二:当自适应统一行缓存子模块103的存储空间大于图像数据的大小MXNXAXA Bytes而小于参数数据的大小XXYXBXB Bytes时,可以将所有待处理图像数据和部分参数矩阵数据缓存在自适应统一行缓存子模块103中,此时所有待处理图像与已缓存的参数矩阵运算并输出该部分结果,同时自适应统一行缓存子模块103中已缓存的已使用完的参数矩阵不断被未缓存的参数矩阵替换,并继续同样的运算处理,以保证处理流程不被打断。当所有待处理图像数据与各部分参数矩阵数据均运算完毕后,各部分结果一起作为统一运算核心子模块的最终运算结果输出。
[0031]状态三,当自适应统一行缓存子模块的存储空间小于图像数据的大小MXNXAXABytes而大于参数数据的大小XXYXBXB Bytes时,可以将部分待处理图像数据和全部参数矩阵数据缓存在自适应统一行缓存子模块103中,此时被缓存的部分待处理图像数据与全部参数矩阵运算并输出该部分运算的中间结果,同时自适应统一行缓存子模块103中缓存的已完成运算的待处理图像数据不断被未缓存的待处理图像数据替换,并继续同样的运算处理,以保证处理流程不被打断,新的运算结果与之前输出的中间结果再进行累加,直至所有待处理图像数据全部完成运算,最后得到的累加结果将作为统一运算核心子模块的最终运算结果输出。
[0032]状态四:当自适应统一行缓存子模块103的存储空间小于图像数据的大小MXNXAXA Bytes,并且也小于参数数据的大小XXYXBXB Bytes时,可以将部分待处理图像和部分参数矩阵数据缓存在自适应统一行缓存子模块103中,此时被缓存的部分待处理图像先与已缓存的参数矩阵运算并输出该部分的中间结果,同时自适应统一行缓存子模块103中缓存的已完成运算的待处理图像数据不断被未缓存的待处理图像数据替换,以保证处理流程不被打断,新的运算结果与之前输出的中间结果进行累加,直至所有待处理图像全部完成运算,最后得到的累加结果就是该部分缓存参数矩阵对应的运算结果。此后继续缓存新的参数矩阵数据以替换已使用的参数矩阵数据,再重复前述过程直至所有参数矩阵数据完成全部运算,此时获取全部最终结果。需要注意的是,由于每一个参数矩阵需要与所有待处理图像进行运算,上述过程如果改为先替换自适应统一行缓存子模块103中未被缓存的参数矩阵数据,再替换自适应统一行缓存子模块103中未被缓存的图像数据也可实现,只是此时中间结果需要长时间被存放在自适应统一行缓存子模块103的外部,会消耗额外的存储空间。
[0033]参照图2,示出了本发明实施例中一种基于可扩展智能图像处理加速装置的加速方法的流程图,该可扩展智能图像处理加速装置包括智能图像处理单元I和智能图像处理驱动单元2,该加速方法具体包括如下步骤:
[0034]步骤101,智能图像处理驱动单元2根据原始数据、需执行的图像处理任务以及所采用的图像处理算法生成具体配置信息。其中原始数据包括图像数据和参数数据。
[0035]步骤102,智能图像处理单元I加载图像处理算法,并根据具体配置信息设置加速处理过程。
[0036]更进一步的,通过控制逻辑子模块根据所述具体配置信息生成控制信号,该控制信号用于设置原始数据的读取操作、数据的压缩/解压缩操作、具体的缓存操作、内部行缓存数据的更新操作、数据的运算操作以及数据流的传送。
[0037]步骤103,向所述智能图像处理单元输入所述原始数据,并执行智能图像的加速处理。
[0038]步骤104,输出加速处理后的结果。
[0039]如图3所示,作为一优选实施例,上述步骤103中的该加速处理进一步包括:
[0040]子步骤1031:通过自适应帧内存压缩子模块对原始数据进行解压缩操作,并将解压缩后的数据填入到填入自适应统一行缓存子模块103中,进行行缓存。
[0041 ]子步骤1032:通过自适应统一行缓存子模块按照预定模式组织内部缓存数据,生成操作数据。
[0042]子步骤1033:通过一个或多个统一运算核心子模块104执行对操作数据的逻辑运算或逻辑组合运算,并将运算结果作为中间结果写回到自适应统一行缓存子模块103中,或经由自适应帧内存压缩子模块102输出该运算结果。
[0043]其中,统一运算核心子模块104为多核可扩展结构,能够根据运算需要增加该子模块的数量以进一步提升数据处理能力。因此,智能图像处理单元支持多核心可扩展,通过改变其运算核心的数目与相关配置可以实现处理性能的提升。
[0044]此外,数据的输出不一定在所有操作执行完毕后,一般情况下,对于数据吞吐量大的算法操作,处理完成一部分则输出该部分。但本发明的该方法会尽可能利用缓存中的数据以避免中间结果的重复读写。
[0045]输出的加速处理后的数据可作为完整算法的处理结果,也可作为后续算法部分的原始数据继续参与运算。
[0046]在本发明中,该装置和方法不但可以对传统的图像处理算法进行加速,也可以对智能图像处理算法、如神经网络算法进行加速,尤其是针对深度神经网络算法,具有明显的加速处理效果;在算法及性能要求不断发展变化的过程中,通过对缓存处理的配置以及运算单元的多核可扩展设计,可以灵活的适应各种复杂算法的变化,大大提升处理性能。
[0047]并且,本发明的该加速装置和加速方法不仅可以实现包括图像美容、图像合成、图像检测等图像处理任务,还可以对视频、音频进行加速处理。
[0048]作为一优选实施例,如果设备中已经包含了GPU或DSP等协处理器,对图像处理算法,尤其是神经网络算法进行加速的方法可以与GPU,DSP等通用协处理器配合实现。可以将原始算法中的部分操作步骤交给协处理器执行,而智能图像处理单元I仅负责处理由驱动单元2指派的加速任务,在分配合理的情况下可以发挥出设备针对某一特定算法的最大效會K。
[0049]作为一优选实施例,所述智能图像处理单元可以为一个独立的硬件加速实体,也可以为一个抽象的硬件集合,所述各个子模块可分别、或组合为相关的子硬件加速实体,并协同实现智能图像处理单元的全部或部分功能。所述智能图像处理驱动单元2可以运行在主处理器上,实现对加速过程的配置。
[0050]以上对本发明所提供的一种可扩展智能图像处理加速装置和加速方法进行了详细介绍,上述记载中应用了具体示例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种可扩展智能图像处理加速装置,其特征在于:包括智能图像处理单元和智能图像处理驱动单元, 所述智能图像处理驱动单元,用于对智能图像处理单元进行配置,包括根据原始数据、需执行的任务以及所采用的图像处理算法生成具体配置信息,并将所述配置信息传送给智能图像处理单元; 所述智能图像处理单元,用于加载图像处理算法,并根据所述配置信息执行智能图像处理,并对其进行加速; 所述原始数据包括图像数据、图像处理算法的参数数据。2.根据权利要求1所述的装置,其特征在于:所述智能图像处理单元进一步包括控制逻辑子模块,自适应帧内存压缩子模块,自适应统一行缓存子模块,以及一个或多个统一运算核心子模块, 所述控制逻辑子模块,被设置为依据所述具体配置信息生成控制信号传送至自适应帧内存压缩子模块、自适应统一行缓存子模块,以及一个或多个统一运算核心子模块; 所述自适应帧内存压缩子模块,被设置为接收所述原始数据,并根据所述控制信号对所述原始数据进行解压缩操作,并将所述解压缩操作的结果输出至自适应统一行缓存子模块; 所述自适应统一行缓存子模块,被设置为接收所述解压缩操作的结果,根据所述控制信号按照预定模式组织内部缓存数据,并生成操作数据; 所述一个或多个统一运算核心子模块,被设置为加载图像处理算法,并根据所述控制信号执行对自适应统一行缓存子模块中操作数据的逻辑或逻辑组合运算,并将运算结果作为中间结果写回到自适应统一行缓存子模块中,或经由自适应帧内存压缩子模块输出所述运算结果。3.根据权利要求2所述的装置,其特征在于:所述一个或多个统一运算核心子模块为多核可扩展结构。4.根据权利要求2所述的装置,其特征在于:所述自适应统一行缓存子模块根据其存储空间与原始数据中图像数据和参数数据之间的大小关系来决定行缓存策略。5.根据权利要求4所述的装置,其特征在于,所述决定行缓存策略具体包括: 当自适应统一行缓存子模块的存储空间大于图像数据与参数数据的总大小时,所有待处理的图像数据与对应的参数矩阵数据完全被缓存在自适应统一行缓存子模块内; 当自适应统一行缓存子模块的存储空间大于图像数据的大小而小于参数数据的大小时,将所有待处理图像数据和部分参数矩阵数据缓存在自适应统一行缓存子模块中,此时所有待处理图像与已缓存的参数矩阵执行运算,同时自适应统一行缓存子模块中已缓存的已使用完的参数矩阵不断被未缓存的参数矩阵替换,并依次执行运算; 当自适应统一行缓存子模块的存储空间小于图像数据的大小而大于参数数据的大小时,将部分待处理图像数据和全部参数矩阵数据完全缓存在自适应统一行缓存子模块中,此时各部分被缓存的待处理图像数据依次与全部参数矩阵运算并输出该部分运算的中间结果,同时自适应统一行缓存子模块中缓存的已完成运算的待处理图像数据不断被未缓存的待处理图像数据替换,并继续同样的运算处理,新的运算结果与之前输出的中间结果再进行累加,直到所有待处理图像数据全部完成运算; 当自适应统一行缓存子模块的存储空间小于图像数据的大小,并且也小于参数数据的大小时,将部分待处理图像和部分参数矩阵数据缓存在自适应统一行缓存子模块中,此时被缓存的部分待处理图像先依次与已缓存的部分参数矩阵运算并输出该部分的中间结果,同时自适应统一行缓存子模块中缓存的已完成运算的待处理图像数据不断被未缓存的待处理图像数据替换,新的运算结果与之前输出的中间结果进行累加,直至所有待处理图像全部完成运算,此后,继续缓存新的参数矩阵数据以替换已使用的参数矩阵数据,再重复前述过程直至所有参数矩阵数据全部完成运算。6.—种基于可扩展智能图像处理加速装置的加速方法,其特征在于:所述可扩展智能图像处理加速装置包括智能图像处理单元和智能图像处理驱动单元,所述加速方法具体包括如下步骤: 步骤101,所述智能图像处理驱动单元根据原始数据、需执行的图像处理任务以及所采用的图像处理算法生成具体配置信息; 步骤102,所述智能图像处理单元加载图像处理算法,并根据所述具体配置信息设置加速处理过程; 步骤103,向所述智能图像处理单元输入所述原始数据,并执行智能图像的加速处理; 步骤104,输出加速处理后的结果; 其中,所述原始数据包括图像数据、图像处理算法的参数数据。7.根据权利要求6所述的方法,其特征在于:步骤102中的根据所述具体配置信息设置加速处理过程具体为,通过控制逻辑子模块依据所述具体配置信息生成控制信号, 其中所述控制信号用于设置原始数据的读取操作、数据的压缩/解压缩操作、具体的缓存操作、内部行缓存数据的更新操作、数据的运算操作以及数据流的传送。8.根据权利要求6所述的方法,其特征在于:步骤103中的所述加速处理进一步包括: 子步骤1031:通过自适应帧内存压缩子模块对所述原始数据进行解压缩操作,并将解压缩后的数据填入到填入自适应统一行缓存子模块中进行行缓存; 子步骤1032:通过自适应统一行缓存子模块按照预定模式组织内部缓存数据,并生成操作数据; 子步骤1033:通过一个或多个统一运算核心子模块执行对操作数据的逻辑运算或逻辑组合运算,并将运算结果写回到自适应统一行缓存子模块中,或经由自适应帧内存压缩子模块向外输出所述运算结果; 其中,所述统一运算核心子模块为多核可扩展结构。9.根据权利要求8所述的方法,其特征在于:所述自适应统一行缓存子模块根据其存储空间与原始数据中图像数据和参数数据之间的大小关系来决定行缓存策略。10.根据权利要求9所述的方法,其特征在于,所述决定行缓存策略具体包括: 当自适应统一行缓存子模块的存储空间大于图像数据与参数数据的总大小时,所有待处理的图像数据与对应的参数矩阵数据完全被缓存在自适应统一行缓存子模块内; 当自适应统一行缓存子模块的存储空间大于图像数据的大小而小于参数数据的大小时,将所有待处理图像数据和部分参数矩阵数据缓存在自适应统一行缓存子模块中,此时所有待处理图像与已缓存的参数矩阵执行运算,同时自适应统一行缓存子模块中已缓存的已使用完的参数矩阵不断被未缓存的参数矩阵替换,并依次执行运算; 当自适应统一行缓存子模块的存储空间小于图像数据的大小而大于参数数据的大小时,将部分待处理图像数据和全部参数矩阵数据完全缓存在自适应统一行缓存子模块中,此时各部分被缓存的待处理图像数据依次与全部参数矩阵运算并输出该部分运算的中间结果,同时自适应统一行缓存子模块中缓存的已完成运算的待处理图像数据不断被未缓存的待处理图像数据替换,并继续同样的运算处理,新的运算结果与之前输出的中间结果再进行累加,直到所有待处理图像数据全部完成运算; 当自适应统一行缓存子模块的存储空间小于图像数据的大小,并且也小于参数数据的大小时,将部分待处理图像和部分参数矩阵数据缓存在自适应统一行缓存子模块中,此时被缓存的部分待处理图像先依次与已缓存的部分参数矩阵运算并输出该部分的中间结果,同时自适应统一行缓存子模块中缓存的已完成运算的待处理图像数据不断被未缓存的待处理图像数据替换,新的运算结果与之前输出的中间结果进行累加,直至所有待处理图像全部完成运算,此后,继续缓存新的参数矩阵数据以替换已使用的参数矩阵数据,再重复前述过程直至所有参数矩阵数据全部完成运算。
【文档编号】G06T1/20GK105931176SQ201610188551
【公开日】2016年9月7日
【申请日】2016年3月30日
【发明人】杨桦
【申请人】杨桦
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1