掌桥专利:专业的专利平台
掌桥专利
首页

图片处理方法及装置、存储介质、电子装置

文献发布时间:2023-06-19 12:24:27


图片处理方法及装置、存储介质、电子装置

技术领域

本发明实施例涉及图像处理领域,具体而言,涉及一种图片处理方法及装置、存储介质、电子装置。

背景技术

目前存储IVSS/EVS产品使用主控+智能子卡形态。智能子卡通过高速串行计算机扩展总线标准(Peripheral Component Interconnect Express,简称为PCIE)/网络/通用串行总线(Universal Serial Bus,简称为USB)等媒介接受主片的数据,之后分析数据、上报智能结果到主片。其中,在人脸识别智能功能中,需要用户先导入图片,建立目标底库,之后智能会自动识别视频流中目标,比对中目标底库中的目标。目前IVSS设备已经支持50万人脸底库,意味着用户可以一次性导入50万张的人脸图片(jpg/png等格式),子卡对图片建模后插入到比对底库中去。

但是,目前的人脸库导入图片建模方案主片只负责图片下发,图片解码和算法建模全部由智能子卡完成。目前由于系统芯片(System on a Chip,简称为SOC)的硬件解码器支持的图片类型有限,只支持最基本的颜色编码方法YUV色系的JPG图片,其他例如CMYK的图像文件格式JPG格式、便捷式网络图形(Portable Network Graphics,简称为PNG)图片格式等都不支持。不支持的图片需要使用软解,但图片软件解码消耗中央处理器(CentralProcessing Unit,简称为CPU),本身SOC的ARM架构CPU性能不强,且子卡CPU占用率已经不低,解码的速度慢,成为了导图建模数据流的短板。

针对上述技术问题,相关技术中尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种图片处理方法及装置、存储介质、电子装置,以至少解决相关技术中对图片的解码耗时的问题。

根据本发明的一个实施例,提供了一种图片处理方法,包括:

接收第一待解码图片,其中,所述第一待解码图片的图片格式不支持硬件解码;

解码第一待解码图片,得到解码数据;

对解码数据进行格式转换,得到转换数据;

将转换数据发送至图像处理器GPU,以指示GPU对转换数据进行硬件编码,得到编码数据,其中,GPU还用于将编码数据发送至子卡设备,子卡设备用于对编码数据进行硬件解码。

根据本发明的另一个实施例,提供了一种图片处理方法,包括:接收CPU发送的转换数据,其中,上述转换数据用于表示上述CPU对第一待解码图片进行解码后的格式转换,上述第一待解码图片的图片格式不支持硬件解码;对上述转换数据进行硬件编码,得到编码数据;将上述编码数据发送至子卡设备,以指示上述子卡设备对上述编码数据进行硬件解码。

根据本发明的另一个实施例,提供了一种图片处理方法,包括:接收GPU发送的编码数据,其中,上述编码数据用于表示上述GPU对转换数据进行的硬件编码,上述转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,上述第一待解码图片的图片格式不支持硬件解码;对上述编码数据进行硬件解码。

根据本发明的又一个实施例,还提供了一种图片处理装置,包括:第一接收模块,用于接收第一待解码图片,其中,上述第一待解码图片的图片格式不支持硬件解码;第一解码模块,用于解码上述第一待解码图片,得到解码数据;第一转换模块,用于对上述解码数据进行格式转换,得到转换数据;第一发送模块,用于将上述转换数据发送至图像处理器GPU,以指示上述GPU对上述转换数据进行硬件编码,得到编码数据,其中,上述GPU还用于将上述编码数据发送至子卡设备,上述子卡设备用于对上述编码数据进行硬件解码。

在一个示例性实施例中,上述第一解码模块,包括:

第一确定单元,用于确定上述第一待解码图片的格式标记,以确定上述第一待解码图片的图片格式;第二确定单元,用于从图片软解码库中确定与上述图片格式对应的目标图片软解码;第一解码单元,用于利用上述目标图片软解码对上述第一待解码图片进行解码,得到上述解码数据。

在一个示例性实施例中,上述第一转换模块,包括:第三确定单元,用于确定上述解码数据中的像素数据;第一转换单元,用于将上述像素数据的格式转换为颜色编码格式,得到上述转换数据。

根据本发明的又一个实施例,还提供了一种图片处理装置,包括:第二接收模块,用于接收CPU发送的转换数据,其中,上述转换数据用于表示上述CPU对第一待解码图片进行解码后的格式转换,上述第一待解码图片的图片格式不支持硬件解码;第一编码模块,用于对上述转换数据进行硬件编码,得到编码数据;第二发送模块,用于将上述编码数据发送至子卡设备,以指示上述子卡设备对上述编码数据进行硬件解码。

在一个示例性实施例中,上述第一编码模块,包括:第一编码单元,用于将上述转换数据进行JPG格式的硬件编码,得到上述编码数据。

在一个示例性实施例中,上述第二发送模块,包括:第一保存单元,用于将上述编码数据保存至待发送队列中;第一发送单元,用于在待发送队列中将上述编码数据发送至子卡设备。

根据本发明的又一个实施例,还提供了一种图片处理装置,包括:第三接收模块,用于接收GPU发送的编码数据,其中,上述编码数据用于表示上述GPU对转换数据进行的硬件编码,上述转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,上述第一待解码图片的图片格式不支持硬件解码;第二解码模块,用于对上述编码数据进行硬件解码。

在一个示例性实施例中,上述装置还包括:第四接收模块,用于接收主卡设备发送的第二待解码图片,其中,上述第二待解码图片支持硬件解码;第三解码模块,用于利用硬件设备对上述第二待解码图片进行解码。

根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,通过接收第一待解码图片,其中,第一待解码图片的图片格式不支持硬件解码;解码第一待解码图片,得到解码数据;对解码数据进行格式转换,得到转换数据;将转换数据发送至图像处理器GPU,以指示GPU对转换数据进行硬件编码,得到编码数据,其中,GPU还用于将编码数据发送至子卡设备,子卡设备用于对编码数据进行硬件解码。可以实现利用IVSS设备本身冗余的主片CPU和GPU资源,以及x86本身性能强劲的特点,利用主片对图片格式识别,同时将从片不支持硬件解码格式图片并行转码,转码后再送子卡,使子卡完全使用硬件解码。因此,可以解决相关技术中对图片的解码耗时的问题,达到提高导图速度的效果。

附图说明

图1是本发明实施例的一种图片处理方法的移动终端的硬件结构框图;

图2是根据本发明实施例的图片处理方法的流程图(一);

图3是根据本发明实施例的图片处理方法的流程图(二);

图4是根据本发明实施例的图片处理方法的流程图(三);

图5是根据本发明具体实施例的整体流程图;

图6是根据本发明实施例的子卡设备处理的流程图;

图7是根据本发明实施例的图片处理装置的结构框图(一);

图8是根据本发明实施例的图片处理装置的结构框图(二);

图9是根据本发明实施例的图片处理装置的结构框图(三)。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明的实施例。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种图片处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的图片处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种图片处理方法,图2是根据本发明实施例的图片处理方法的流程图(一),如图2所示,该流程包括如下步骤:

步骤S202,接收第一待解码图片,其中,第一待解码图片的图片格式不支持硬件解码;

步骤S204,解码第一待解码图片,得到解码数据;

步骤S206,对解码数据进行格式转换,得到转换数据;

步骤S208,将转换数据发送至图像处理器GPU,以指示GPU对转换数据进行硬件编码,得到编码数据,其中,GPU还用于将编码数据发送至子卡设备,子卡设备用于对编码数据进行硬件解码。

其中,上述步骤的执行主体可以为CPU等,但不限于此。

本实施例包括但不限于应用于对图片进行建模的场景中。

通过接收第一待解码图片,其中,第一待解码图片的图片格式不支持硬件解码;解码第一待解码图片,得到解码数据;对解码数据进行格式转换,得到转换数据;将转换数据发送至图像处理器GPU,以指示GPU对转换数据进行硬件编码,得到编码数据,其中,GPU还用于将编码数据发送至子卡设备,子卡设备用于对编码数据进行硬件解码。可以实现利用IVSS设备本身冗余的主片CPU和GPU资源,以及x86本身性能强劲的特点,利用主片对图片格式识别,同时将从片不支持硬件解码格式图片并行转码,转码后再送子卡,使子卡完全使用硬件解码。因此,可以解决相关技术中对图片的解码耗时的问题,达到提高导图速度的效果。

在一个示例性实施例中,解码第一待解码图片,得到解码数据,包括:

S1,确定第一待解码图片的格式标记,以确定第一待解码图片的图片格式;

S2,从图片软解码库中确定与图片格式对应的目标图片软解码;

S3,利用目标图片软解码对第一待解码图片进行解码,得到解码数据。

在本实施例中,图片软解码库包括jpg软解库或者PNG软解库,通过CPU进行图片解码。

在一个示例性实施例中,对解码数据进行格式转换,得到转换数据,包括:

S1,确定解码数据中的像素数据;

S2,将像素数据的格式转换为颜色编码格式,得到转换数据。

在本实施例中,解码后得到的像素数据使用CPU将格式转换为YUV(子卡设备只支持YUV色系硬解)。

在本实施例中提供了一种图片处理方法,图3是根据本发明实施例的图片处理方法的流程图(二),如图3所示,该流程包括如下步骤:

步骤S302,接收CPU发送的转换数据,其中,转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,第一待解码图片的图片格式不支持硬件解码;

步骤S304,对转换数据进行硬件编码,得到编码数据;

步骤S306,将编码数据发送至子卡设备,以指示子卡设备对编码数据进行硬件解码。

其中,上述步骤的执行主体可以为GPU等,但不限于此。

本实施例包括但不限于应用于对图片进行建模的场景中。

通过上述步骤,通过接收CPU发送的转换数据,其中,所述转换数据用于表示所述CPU对第一待解码图片进行解码后的格式转换,所述第一待解码图片的图片格式不支持硬件解码;对所述转换数据进行硬件编码,得到编码数据;将所述编码数据发送至子卡设备,以指示所述子卡设备对所述编码数据进行硬件解码。可以实现利用IVSS设备本身冗余的主片CPU和GPU资源,以及x86本身性能强劲的特点,利用主片对图片格式识别,同时将从片不支持硬件解码格式图片并行转码,转码后再送子卡,使子卡完全使用硬件解码。因此,可以解决相关技术中对图片的解码耗时的问题,达到提高导图速度的效果。

在一个示例性实施例中,对转换数据进行硬件编码,得到编码数据,包括:

S1,将转换数据进行JPG格式的硬件编码,得到编码数据。

在本实施例中,例如,使用空闲的x86芯片自带的集成显卡(GPU)做JPG硬件编码。

在一个示例性实施例中,将编码数据发送至子卡设备,包括:

S1,将编码数据保存至待发送队列中;

S2,在待发送队列中将编码数据发送至子卡设备。

在本实施例中,例如,将编码后的JPG图片保存在转码待发送队列。

在本实施例中提供了一种图片处理方法,图4是根据本发明实施例的图片处理方法的流程图(三),如图4所示,该流程包括如下步骤:

步骤S402,接收GPU发送的编码数据,其中,编码数据用于表示GPU对转换数据进行的硬件编码,转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,第一待解码图片的图片格式不支持硬件解码;

步骤S404,对编码数据进行硬件解码。

其中,上述步骤的执行主体可以为GPU等,但不限于此。

本实施例包括但不限于应用于对图片进行建模的场景中。

通过上述步骤,通过接收GPU发送的编码数据,其中,编码数据用于表示GPU对转换数据进行的硬件编码,转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,第一待解码图片的图片格式不支持硬件解码;对编码数据进行硬件解码。可以实现利用IVSS设备本身冗余的主片CPU和GPU资源,以及x86本身性能强劲的特点,利用主片对图片格式识别,同时将从片不支持硬件解码格式图片并行转码,转码后再送子卡,使子卡完全使用硬件解码。因此,可以解决相关技术中对图片的解码耗时的问题,达到提高导图速度的效果。

在一个示例性实施例中,上述方法还包括:

S1,接收主卡设备发送的第二待解码图片,其中,第二待解码图片支持硬件解码;

S2,利用硬件设备对第二待解码图片进行解码。

在本实施例中,使用空闲的x86芯片自带的集成显卡(GPU)做JPG硬件编码。

下面结合具体实施例对本发明进行说明:

本实施例利用主片强劲的且空闲x86 CPU,先识别子卡不支持硬件的图片,使用软解后硬编的方式,将图片格式转码为硬件解码支持的JPG格式,之后下发子卡,从而达到提升子卡图片解码速度,实现提高导图业务性能的目标。如图5所示,是本实施例的具体流程图,包括以下步骤:

S501:接受到用户导入的待建模的图片(例如下发了50万张);

S502:首先对图片做格式识别;

S503:识别格式子卡支持硬件解码,则直接将图片发送到子卡,遍历下一张图片;

S504:识别格式子卡硬件解码不支持,标记图片格式并将图片非阻塞得送入图片转码任务,遍历下一张图片;

S505:转码任务作为单独线程执行,阻塞等待需转码图片;

S506:接受到S503中送入的图片后,根据标记的图片格式找到对应的图片软解码库(jpg软解库/PNG软解库等),通过CPU图片解码;

S507:解码后得到的像素数据使用CPU将格式转换为YUV(子卡只支持YUV色系硬解)。

S508:为了提高编码速度,使用空闲的x86芯片自带的集成显卡(GPU)做JPG硬件编码。

S509:编码后的JPG图片保存在转码待发送队列;

S510:当S502或S503中下一张图片不存在,意味着支持的格式图片已经送完,则接下去将转码待发送队列中的图片发送到子卡。

子卡的处理逻辑更加简单,接受到主片的图片后,直接使用硬件解码图片即可,大大的缩短了图片软解引入的耗时,如图6所示。

综上所述,本实施例利用IVSS设备本身冗余的主片CPU和GPU资源,以及x86本身性能强劲的特点,利用主片对图片格式识别,同时将从片不支持硬件解码格式图片并行转码,转码后再送子卡,使智能子卡完全使用硬件解码,从而达到提升导图速度的目标。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种图片处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是根据本发明实施例的图片处理装置的结构框图(一),如图7所示,该装置包括:

第一接收模块72,用于接收第一待解码图片,其中,第一待解码图片的图片格式不支持硬件解码;

第一解码模块74,用于解码第一待解码图片,得到解码数据;

第一转换模块76,用于对解码数据进行格式转换,得到转换数据;

第一发送模块78,用于将转换数据发送至图像处理器GPU,以指示GPU对转换数据进行硬件编码,得到编码数据,其中,GPU还用于将编码数据发送至子卡设备,子卡设备用于对编码数据进行硬件解码。

在一个示例性实施例中,上述第一解码模块,包括:

第一确定单元,用于确定上述第一待解码图片的格式标记,以确定上述第一待解码图片的图片格式;

第二确定单元,用于从图片软解码库中确定与上述图片格式对应的目标图片软解码;

第一解码单元,用于利用上述目标图片软解码对上述第一待解码图片进行解码,得到上述解码数据。

在一个示例性实施例中,上述第一转换模块,包括:

第三确定单元,用于确定上述解码数据中的像素数据;

第一转换单元,用于将上述像素数据的格式转换为颜色编码格式,得到上述转换数据。

图8是根据本发明实施例的图片处理装置的结构框图(二),如图8所示,该装置包括:

第二接收模块82,用于接收CPU发送的转换数据,其中,转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,第一待解码图片的图片格式不支持硬件解码;

第一编码模块84,用于对转换数据进行硬件编码,得到编码数据;

第二发送模块86,用于将编码数据发送至子卡设备,以指示子卡设备对编码数据进行硬件解码。

在一个示例性实施例中,上述第一编码模块,包括:

第一编码单元,用于将上述转换数据进行JPG格式的硬件编码,得到上述编码数据。

在一个示例性实施例中,上述第二发送模块,包括:

第一保存单元,用于将上述编码数据保存至待发送队列中;

第一发送单元,用于在待发送队列中将上述编码数据发送至子卡设备。

图9是根据本发明实施例的图片处理装置的结构框图(三),如图9所示,该装置包括:

第三接收模块92,用于接收GPU发送的编码数据,其中,编码数据用于表示GPU对转换数据进行的硬件编码,转换数据用于表示CPU对第一待解码图片进行解码后的格式转换,第一待解码图片的图片格式不支持硬件解码;

第二解码模块94,用于对编码数据进行硬件解码。

在一个示例性实施例中,上述装置还包括:

第四接收模块,用于接收主卡设备发送的第二待解码图片,其中,上述第二待解码图片支持硬件解码;

第三解码模块,用于利用硬件设备对上述第二待解码图片进行解码。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以上各步骤的计算机程序。

在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。

本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 图片资产处理方法及装置、存储介质、电子装置
  • 图片遮挡的处理方法和装置、存储介质及电子装置
技术分类

06120113283088