可左右滑动选省市

视频处理方法、装置、设备和存储介质发明专利

更新时间:2024-07-01
视频处理方法、装置、设备和存储介质发明专利 专利申请类型:发明专利;
源自:巴西高价值专利检索信息库;

专利名称:视频处理方法、装置、设备和存储介质

专利类型:发明专利

专利申请号:CN202210100830.6

专利申请(专利权)人:百果园技术(新加坡)有限公司
权利人地址:巴西班让路枫树商业城30号楼15层31A

专利发明(设计)人:金时昱,靳凯

专利摘要:本发明实施例公开了一种视频处理方法、装置、设备和存储介质,该方法包括:获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法;基于设置的算法描述信息以及所述算法处理路径生成算子图,所述算法描述信息包括对处理算法中使用的算子的描述信息,所述算子图包括多个算子以及算子之间的算子处理顺序,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。本方案提高了视频数据的处理效率,可以显著降低处理耗时以及内存资源的占用。

主权利要求:
1.视频处理方法,其特征在于,包括:
获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行顺序处理的至少两个处理算法;
基于设置的算法描述信息以及所述算法处理路径生成算子图,其中,包括:根据所述算法处理路径确定包含的处理算法以及处理算法之间的算法处理顺序,根据所述算法处理顺序确定第一处理算法和第二处理算法,根据所述第一处理算法对应使用的算子的描述信息生成第一算子序列,所述描述信息包括算子的定义标识、结点标识、前向结点标识以及是否进行图像改变的标识,根据所述第二处理算法对应使用的算子的描述信息确定待添加算子,在所述第一算子序列中存在和所述待添加算子相同的算子,则根据算子的描述信息判断所述待添加算子以及所述待添加算子至所述第一算子序列中相同算子路径之后的算子是否不对图像内容进行改变,在不对图像内容进行改变的情况下,将所述待添加算子与所述第一算子序列中相同的算子进行合并,生成包含多个算子以及算子之间的算子处理顺序的算子图,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;
基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。
2.根据权利要求1所述的视频处理方法,其特征在于,在所述第一算子序列中不存在和所述待添加算子相同的算子的情况下,将所述待添加算子添加至所述第一算子序列中最后一个改变图像内容的算子之后,并进行所述第二处理算法中的下一待添加算子的算子添加处理。
3.根据权利要求2所述的视频处理方法,其特征在于,在对图像内容进行改变的情况下,将所述待添加算子添加至所述第一算子序列中最后一个改变图像内容的算子之后。
4.根据权利要求1‑3中任一项所述的视频处理方法,其特征在于,在基于设置的算法描述信息以及所述算法处理路径生成算子图之后,还包括:在所述算子图中添加基础算子,所述基础算子包括图像格式转换算子。
5.根据权利要求4所述的视频处理方法,其特征在于,所述算子的描述信息包括算子的图像输入格式和图像输出格式,所述在所述算子图中添加基础算子,包括:确定所述算子图中前后相邻的第一算子的图像输出格式和第二算子的图像输入格式是否相同,响应于输入格式不同的判断结果,在所述第一算子和所述第二算子之间添加图像格式转换算子,以使所述第一算子的图像输出格式和所述第二算子的图像输入格式相同。
6.根据权利要求1‑3中任一项所述的视频处理方法,其特征在于,所述基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理,包括:基于所述算子图中记录的算子以及算子处理顺序依次对所述视频数据中的每帧图像进行处理,并对每个算子的处理结果进行输出。
7.视频处理装置,其特征在于,包括:
算法路径获取模块,用于获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行顺序处理的至少两个处理算法;
算子图生成模块,用于基于设置的算法描述信息以及所述算法处理路径生成算子图,其中,包括:根据所述算法处理路径确定包含的处理算法以及处理算法之间的算法处理顺序,根据所述算法处理顺序确定第一处理算法和第二处理算法,根据所述第一处理算法对应使用的算子的描述信息生成第一算子序列,所述描述信息包括算子的定义标识、结点标识、前向结点标识以及是否进行图像改变的标识,根据所述第二处理算法对应使用的算子的描述信息确定待添加算子,在所述第一算子序列中存在和所述待添加算子相同的算子,则根据算子的描述信息判断所述待添加算子以及所述待添加算子至所述第一算子序列中相同算子路径之后的算子是否不对图像内容进行改变,在不对图像内容进行改变的情况下,将所述待添加算子与所述第一算子序列中相同的算子进行合并,生成包含多个算子以及算子之间的算子处理顺序的算子图,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;
视频处理模块,用于基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。
8.一种视频处理设备,所述设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1‑6中任一项所述的视频处理方法。
9.一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1‑6中任一项所述的视频处理方法。 说明书 : 视频处理方法、装置、设备和存储介质技术领域[0001] 本申请实施例涉及视频处理技术领域,尤其涉及一种视频处理方法、装置、设备和存储介质。背景技术[0002] 视频处理是计算机领域的热点研究领域之一,也发展出众多视频处理算法。在算法的应用上,也存在很多使用广泛的算法库以及各类视频处理系统。算法库主要提供了各个算法的实现,在内存管理以及使用规则上不加过多限制,用户可以定制化一套算法处理流程,但需要自己进行内存管理,在使用上不如视频处理系统方便。视频处理系统则是整合了某一个或者某几个算法,统一管理内存,对外提供相关的视频处理服务,用户不需要关心内存管理。[0003] 在视频直播业务中往往需要针对主播的视频特点定制一套不同的算法处理流程,而目前视频处理系统架构通常都只按照某个特定功能设计,在视频数据处理过程中,考虑到内存资源有限、速度要求较高的应用场景,视频数据中每帧图像的处理需要占用较多的内存资源,同时处理耗时会显著提升。当每帧图像需要多算法处理时,分配给每个算法的内存资源及处理时间更加有限,无法实现视频数据的高效处理。发明内容[0004] 本发明实施例提供了一种视频处理方法、装置、设备和存储介质,解决了视频数据处理过程中内存资源占用较多、处理耗时长的问题,提高了视频数据的处理效率,可以显著降低处理耗时以及内存资源的占用。[0005] 第一方面,本发明实施例提供了一种视频处理方法,该方法包括:[0006] 获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法;[0007] 基于设置的算法描述信息以及所述算法处理路径生成算子图,所述算法描述信息包括对处理算法中使用的算子的描述信息,所述算子图包括多个算子以及算子之间的算子处理顺序,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;[0008] 基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。[0009] 第二方面,本发明实施例还提供了一种视频处理装置,包括:[0010] 算法路径获取模块,用于获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法;[0011] 算子图生成模块,用于基于设置的算法描述信息以及所述算法处理路径生成算子图,所述算法描述信息包括对处理算法中使用的算子的描述信息,所述算子图包括多个算子以及算子之间的算子处理顺序,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;[0012] 视频处理模块,用于基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。[0013] 第三方面,本发明实施例还提供了一种视频处理设备,该设备包括:[0014] 一个或多个处理器;[0015] 存储装置,用于存储一个或多个程序,[0016] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的视频处理方法。[0017] 第四方面,本发明实施例还提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的视频处理方法。[0018] 本发明实施例中,通过获取视频数据的算法处理路径,其中,该算法处理路径包括对视频数据进行处理的至少两个处理算法,基于设置的算法描述信息以及算法处理路径生成算子图,该算法描述信息包括对处理算法中使用的算子的描述信息,算子图包括多个算子以及算子之间的算子处理顺序,该算子图中包含的算子个数小于算法处理路径对应的算子个数,再基于算子图中记录的算子以及算子处理顺序对视频数据进行处理,提高了视频数据的处理效率,可以显著降低处理耗时以及内存资源的占用。附图说明[0019] 图1为本发明实施例提供的一种视频处理方法的流程图;[0020] 图2为本发明实施例提供的一种基于设置的算法描述信息以及算法处理路径生成算子图的方法的流程图;[0021] 图3为本发明实施例提供的一种根据算法处理顺序以及每个处理算法对应使用的算子的描述信息生成算子图的方法的流程图;[0022] 图4为本发明实施例提供的一种算子图的第一示意图;[0023] 图5为本发明实施例提供的一种算子图的第二示意图;[0024] 图6为本发明实施例提供的一种算子图的第三示意图;[0025] 图7为本发明实施例提供的一种算子图的第四示意图;[0026] 图8为本发明实施例提供的一种算子图的第五示意图;[0027] 图9为本发明实施例提供的另一种视频处理方法的流程图;[0028] 图10为本发明实施例提供的一种算子图的第六示意图;[0029] 图11为本发明实施例提供的一种视频处理装置的结构框图;[0030] 图12为本发明实施例提供的一种视频处理设备的结构示意图。具体实施方式[0031] 下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。[0032] 本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。[0033] 图1为本发明实施例提供的一种视频处理方法的流程图,可应用于视频数据处理中,该方法可以由计算设备如服务器、智能终端、笔记本、平板电脑等来执行,具体包括如下步骤:[0034] 步骤S101、获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法。[0035] 其中,视频数据为需要进行相应算法处理的数据,可以是录制好的视频数据,也可以是实时直播的视频流数据等。该算法处理路径指对视频数据进行处理时对依次使用的算法进行拆分确定的各个算法的处理先后顺序组成的路径。示例性的,如对视频数据进行清晰度提升的处理,其使用到多个处理算法,假设依次需要使用算法A、算法B、算法C和算法D,则相应的算法处理路径可记为{A、B、C、D};如对视频数据需要进行缩放和美颜处理,假定依次需要使用的算法为算法E、算法F、算法A、算法B和算法G,则相应的算法处理路径可记为{E、F、A、B、G}。[0036] 在一个实施例中,对视频数据进行处理时使用的处理算法至少包括两个,具体的处理算法,示例性的,如对视频数据中的图像帧进行特征提取、边缘识别、运动检测算法、背景提取、滤波处理、锐化处理、尺寸裁剪等对应的各类算法。[0037] 步骤S102、基于设置的算法描述信息以及所述算法处理路径生成算子图,所述算法描述信息包括对处理算法中使用的算子的描述信息,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数。[0038] 其中,算法描述信息为设置的对不同的处理算法进行描述的信息。在一个实施例中,对不同的处理算法进行拆分以得到实现对应子算法的算子。一个处理算法可被拆分为一个或多个算子,其中,算子相对于一个处理算法而言为更小的对视频数据进行处理的单元。可选的,算法描述信息记录有各个算法使用到的算子的描述信息。例如,以对视频数据中图像进行特征检测的算法为例,其可以包括尺寸变换算子、高斯过滤平滑算子、拉普拉斯变换算子、降采样算子、极值点检测算子、特征点尺度计算算子、特征描述符生成算子等。[0039] 举例而言,对视频数据进行处理的算法包括算法A、算法B和算法C,针对算法A而言,其使用到算子a和算子b;针对算法B而言,其使用算子a;针对算法C而言,其使用算子c和算子d。算法描述信息中记录了每个算法使用到的算子的描述信息。即针对算法A其对应的算法描述信息中包含对算子a和算子b的描述信息;算法B其对应的算法描述信息中包含对算子a的描述信息;算法c其对应的算法描述信息中包含对算子c和算子d的描述信息。[0040] 在一个实施例中,算子的描述信息包括算子的定义标识以及用于表征该算法中各个算子的先后处理顺序的信息。其中,算子的定义标识用于表征不同的算子单元,如针对算法A而言,其包含算子a和算子b,则该定义标识可以为“算子a”和“算子b”以表征算法A通过使用算子a和算子b实现对应的视频处理的功能。可选的,用于表征该算法中各个算子的先后处理顺序的信息可以通过定义算子的结点标识和前向结点标识进行表征。示例性的,算子a的结点标识可以是0,其前向结点标识可以是‑1;算子b的结点标识为1,其前向结点标识可以是0,即针对算法A而言,通过算子a和算子b的结点标识和前向结点标识的具体值以确定算子a和算子b的先后执行顺序。可选的,当前算子的前一个算子通过当前算子的描述信息中的前向结点标识确定,如算子b的前向结点标识为0,而算子a的结点标识为0,则算子b和算子a相邻,且在算子a进行处理完毕后执行算子b的处理,同理依次建立算法中包含的多个算子之间的处理顺序路径。可选的,算法中的第一个算子的前向结点标识可以设置为‑1,即如果该算子的前向节点标识为‑1,可表征其为该算法处理时的第一个进行处理的算子。在一个实施例中,每个算法包含的一个或多个算子中,有且仅有一个输出算子,该输出算子可以是处理算法中最后一个进行处理的算子。[0041] 其中,算子图为包含多个算子以及算子之间的算子处理顺序的图结构信息。在该图结构进行中,每个结点代表一个具体的算子,结点之间相连的有向边代表算子之间的前后处理顺序。即针对视频数据的原始的算法处理路径以及设置的算法描述信息生成对应的算子图。在算子图的生成过程中,包括有对相同算子进行合并的处理过程,如在生成算子图时进行逐个算子的添加时,对于算子图中已经出现的算子且满足合并条件的情况下对该算子进行合并,以使得最终生成的算子图中包含算子的个数小于原始的算法处理路径对应的算子的个数。在另一个实施例中,也可以是基于算法描述信息以及算法处理路径生成包含算法处理路径中所有算子的待调整算子图,之后对该待调整算子图进行可合并算子的筛选,将部分可剔除的算子进行删除,并相应修改和该删除的算子具备处理关系的算子的前向结点标识。[0042] 可选的,如图2所示,图2为本发明实施例提供的一种基于设置的算法描述信息以及算法处理路径生成算子图的方法的流程图,具体包括:[0043] 步骤S1021、根据所述算法处理路径确定包含的处理算法以及处理算法之间的算法处理顺序。[0044] 在对某一视频数据进行处理时,可通过对应设置的算法处理路径,得到对视频数据进行处理使用的算法以及算法之间的算法处理顺序。假定设置的算法处理路径为{B、C、A},则表征对该视频数据依次执行算法B、算法C和算法A的处理。在另一个实施例中,也可以直接设置好对视频数据进行处理时使用的算法以及算法处理顺序,直接进行使用的算法以及算法处理顺序的获取。[0045] 步骤S1022、根据所述算法处理顺序以及每个处理算法对应使用的算子的描述信息依次生成多个算子以及算子之间的算子处理顺序。[0046] 在一个实施例中,具体可以是根据算法处理顺序以及每个处理算法对应使用的算子的描述信息依次进行每个处理算法的算子添加处理,生成包含多个算子以及算子之间的算子处理顺序的算子图。示例性的,假定确定出的算法依次为算法A和算法B,其中,算法A包括算子a和算子b,算法B包括算子a和算子c,在对算法A进行算子展开时得到算子以及算子处理顺序为{a,b},并生成相应的第一算子图;在对算法B进行算子展开时得到算子以及算子处理顺序为{a,c},则依次将算子a和算子c添加至第一算子图中生成最终的算子图。[0047] 图3为本发明实施例提供的一种根据算法处理顺序以及每个处理算法对应使用的算子的描述信息生成算子图的方法的流程图,以对视频数据进行处理的算法依次为第一处理算法和第二处理算法为例,给出了一种具体的进行算子图生成的方法,如图3所示,具体包括:[0048] 步骤S10221、根据算法处理顺序确定第一处理算法和第二处理算法,根据第一处理算法对应使用的算子的描述信息生成第一算子序列。[0049] 示例性的,假定确定出的对视频数据进行处理的第一处理算法为算法M,第二处理算法为算法N,算法N在算法M之后进行处理。算法M对应的算子描述信息中记录有算子a、算子b和算子c,算子a的结点标识为0,前向结点标识为‑1;算子b的结点标识为1,前向结点标识为0;算子c的结点标识为2,前向结点标识为1,则根据算子a、算子b和算子c各自的结点标识以及前向结点标识确定出的第一算子序列为{a,b,c}。具体如图4所示,图4为本发明实施例提供的一种算子图的第一示意图。[0050] 步骤S10222、根据第二处理算法对应使用的算子的描述信息确定待添加算子。[0051] 示例性的,假定算法N对应的算子描述信息中记录有算子b和算子d,其中,算子b的结点标识为0,前向结点标识为‑1,算子d的结点标识为1,前向结点标识为0。则根据算子b和算子d的结点标识和前向结点标识确定出算子b为第一个进行处理的算子,算子d为算子b之后进行处理的算子,则将算子b确定为待添加算子。[0052] 步骤S10223、判断在第一算子序列中是否存在和待添加算子相同的算子,响应于存在和待添加算子相同的算子的判断结果,执行步骤S10224,响应于不存在和待添加算子相同的算子的判断结果,执行步骤S10225。[0053] 示例性的,以第一算子序列为{a,b,c},待添加算子为b为例,则在第一算子序列中存在和待添加算子相同的算子,则相应的执行步骤S10224,当第二处理算法中的算子b添加完毕后进行算子d的添加时,在第一算子序列为{a,b,c}中不包含相同的待添加算子,则执行步骤S10225。[0054] 步骤S10224、判断待添加算子是否满足合并条件,响应于满足合并条件的判断结果,执行步骤S10226,响应于不满足合并条件的判断结果,执行步骤S10225。[0055] 在一个实施例中,如果算子序列中存在和待添加算子相同的算子,则进一步判断其是否满足合并条件,以前述第一算子序列为{a,b,c},待添加算子为算子b为例,判断该算子b是否满足合并条件,响应于满足合并条件的判断结果,执行步骤S10226,响应于不满足合并条件的判断结果,执行步骤S10225。[0056] 在一个实施例中,算子的描述信息中进一步包括是否进行图像改变的标识,以描述信息为数据库存储的信息为例,可相应设置对应的字段,如字段中记录内容为“是”则表示该算子的处理过程会改变图像内容,字段中记录内容为“否”则表示该算子的处理过程会不改变图像内容。例如,针对图像进行缩放或者像素更改的算子为改变图像内容的算子,仅提取图像特征的算子为不改变图像内容的算子。可选的,判断待添加算子是否满足合并条件,可以是:根据算子的描述信息判断待添加算子以及待添加算子至第一算子序列中相同算子路径之间的算子是否不对图像内容进行改变。以第一算子序列为{a,b,c}为例,假定算子a为改变图像内容的算子,算子c为不改变图像内容的算子,如果待添加算子b为不改变图像内容的算子,则判断其满足合并条件,执行步骤S10226将该待添加算子合并至第一算子序列中,当前合并完毕算子b的算子图与图4所示算子图一致。若该算子b为改变图像内容的算子,或者第一算子序列中算子c为改变图像内容的算子,则判断其不满足合并条件,执行步骤S10225。[0057] 步骤S10225、将待添加算子添加至所述第一算子序列中最后一个改变图像内容的算子之后。[0058] 示例性的,以第一算子序列为{a,b,c},待添加算子为算子b,且算子b不满足合并条件,则将待添加算子添加至第一算子序列中最后一个改变图像内容的算子之后。例如,假设算子c为不改变图像内容的算子,算子b为改变图像内容的算子,则将算子b添加至第一算子序列中的算子b之后,具体如图5所示,图5为本发明实施例提供的一种算子图的第二示意图。相应的,下一个待添加算子为算子d,此时在第一算子序列中不包含算子d,并根据算子d和前一待添加算子b的关系,将算子d添加至第一算子序列的算子b之后,具体的如图6所示,图6为本发明实施例提供的一种算子图的第三示意图。[0059] 示例性的,如果待添加算子b在添加至第一算子序列是满足合并条件,其得到的算子图如图4所示,此时进行待添加算子d的添加时,此时在第一算子序列中不包含算子d,并根据算子d和前一待添加算子b的关系,将算子d添加至第一算子序列的算子b之后,具体的如图7所示,图7为本发明实施例提供的一种算子图的第四示意图。[0060] 步骤S10226、将待添加算子与第一算子序列中相同的算子进行合并。[0061] 在一个实施例中,以第一算子序列为{a,b,c}为例,如果算子c为改变图像内容的算子,则将待添加算子b添加至第一算子序列时,将算子b添加至算子c之后,相应的,进行待添加算子d的添加时,根据算子d和前一待添加算子b的关系,将算子d添加至第一算子序列中当前的输出算子b即上一添加的算子b之后,具体的,如图8所示,图8为本发明实施例提供的一种算子图的第五示意图。[0062] 需要说明的是,上述依次基于第一处理算法和第二处理算法以及设置的算法描述信息进行算子图的生成,基于该同样的逻辑依次进行后续处理算法中算子的添加直到最后一个处理算法的最后一个算子添加或者合并完毕为止。[0063] 步骤S103、基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。[0064] 其中,在生成算子图后,基于该算子图中记录的算子以及算子处理顺序依次对视频数据进行处理,如对视频数据中的每个待处理帧图像依次进行处理以输出处理结果。[0065] 由上述方案可知,本方案将对视频数据的处理算法依据算法描述信息中记录的算子的描述信息进行展开和合并,得到算子图后基于该算子图进行视频数据的处理,对原有的视频处理过程进行了优化,结合算法链路的图结构化特征进行算子的合并实现多算法链路处理时降低计算量及内存消耗的目的,显著提高了视频数据的处理效率。[0066] 在一个实施例中,基于算子图中记录的算子以及算子处理顺序对所述视频数据进行处理的过程,包括:基于算子图中记录的算子以及算子处理顺序依次对视频数据中的每帧图像进行处理,并对每个算子的处理结果进行输出,即针对需要获取各个结点的图像处理结果的场景,本方案中在基于算子图进行视频数据处理时,对每个算子的处理结果进行输出,可以同时获取链路上每个结点以及最终处理的输出,该种处理机制在内部算法的支持上具有良好的扩展性,便于上下游的调用。[0067] 图9为本发明实施例提供的另一种视频处理方法的流程图,在生成算子图时,还包括基础算子的添加,如图9所示,具体包括:[0068] 步骤S201、获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法。[0069] 步骤S202、基于设置的算法描述信息以及算法处理路径生成算子图,并在算子图中添加基础算子。[0070] 在一个实施例中,算子的描述信息包括算子的图像输入格式和图像输出格式,针对添加基础算子的过程可以是:确定算子图中前后相邻的第一算子的图像输出格式和第二算子的图像输入格式是否相同,响应于图像输入格式不同的判断结果,在第一算子和第二算子之间添加图像格式转换算子,以使第一算子的图像输出格式和第二算子的图像输入格式相同。以图7所示的算子图为例,假定算子b中的描述信息中记录其图像输出格式为YUV格式,算子d的图像输入格式为RGB格式,则相应的在算子b和算子d之间增加YUV图像格式转换为RGB图像格式的基础算子,具体如图10所示,图10为本发明实施例提供的一种算子图的第六示意图。[0071] 步骤S203、基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。[0072] 由上述方案可知,在基于设置的算法描述信息以及算法处理路径生成算子图时,在算子图中添加基础算子,可以快速的实现对视频数据进行处理时需要进行的修改操作,提高了视频数据处理的灵活性。[0073] 图11为本发明实施例提供的一种视频处理装置的结构框图,该装置用于执行上述实施例提供的视频处理方法,具备执行方法相应的功能模块和有益效果。如图11所示,该装置具体包括:算法路径获取模块101、算子图生成模块102和视频处理模块103,其中,[0074] 算法路径获取模块101,用于获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法;[0075] 算子图生成模块102,用于基于设置的算法描述信息以及所述算法处理路径生成算子图,所述算法描述信息包括对处理算法中使用的算子的描述信息,所述算子图包括多个算子以及算子之间的算子处理顺序,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;[0076] 视频处理模块103,用于基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。[0077] 由上述方案可知,本方案将对视频数据的处理算法依据算法描述信息中记录的算子的描述信息进行展开和合并,得到算子图后基于该算子图进行视频数据的处理,对原有的视频处理过程进行了优化,结合算法链路的图结构化特征进行算子的合并实现多算法链路处理时降低计算量及内存消耗的目的,显著提高了视频数据的处理效率。[0078] 在一个可能的实施例中,所述算子图生成模块102具体用于:[0079] 根据所述算法处理路径确定包含的处理算法以及处理算法之间的算法处理顺序;[0080] 根据所述算法处理顺序以及每个处理算法对应使用的算子的描述信息依次生成多个算子以及算子之间的算子处理顺序。[0081] 在一个可能的实施例中,所述算子图生成模块102具体用于:根据所述算法处理顺序以及每个处理算法对应使用的算子的描述信息依次进行每个处理算法的算子添加处理,生成包含多个算子以及算子之间的算子处理顺序的算子图。[0082] 在一个可能的实施例中,所述算子图生成模块102具体用于:[0083] 根据所述算法处理顺序确定第一处理算法和第二处理算法,根据所述第一处理算法对应使用的算子的描述信息生成第一算子序列,所述描述信息包括算子的定义标识、结点标识、前向结点标识以及是否进行图像改变的标识;[0084] 根据所述第二处理算法对应使用的算子的描述信息确定待添加算子,判断在所述第一算子序列中是否存在和所述待添加算子相同的算子,响应于不存在和所述待添加算子相同的算子的判断结果,将所述待添加算子添加至所述第一算子序列中最后一个改变图像内容的算子之后。[0085] 在一个可能的实施例中,所述算子图生成模块102具体用于:[0086] 如果在所述第一算子序列中存在和所述待添加算子相同的算子,则判断所述待添加算子是否满足合并条件,响应于满足合并条件的判断结果,将所述待添加算子与所述第一算子序列中相同的算子进行合并,响应于不满足合并条件的判断结果,将所述待添加算子添加至所述第一算子序列中最后一个改变图像内容的算子之后。[0087] 在一个可能的实施例中,所述算子图生成模块102具体用于:[0088] 判断根据算子的描述信息判断所述待添加算子以及所述待添加算子至所述第一算子序列中相同算子路径之间的算子是否不对图像内容进行改变。[0089] 在一个可能的实施例中,所述算子图生成模块102还用于:[0090] 在基于设置的算法描述信息以及所述算法处理路径生成算子图之后,在所述算子图中添加基础算子,所述基础算子包括图像格式转换算子。[0091] 在一个可能的实施例中,所述算子的描述信息包括算子的图像输入格式和图像输出格式,所述算子图生成模块102具体用于:[0092] 确定所述算子图中前后相邻的第一算子的图像输出格式和第二算子的图像输入格式是否相同,响应于输入格式不同的判断结果,在所述第一算子和所述第二算子之间添加图像格式转换算子,以使所述第一算子的图像输出格式和所述第二算子的图像输入格式相同。[0093] 在一个可能的实施例中,所述视频处理模块103具体用于:[0094] 基于所述算子图中记录的算子以及算子处理顺序依次对所述视频数据中的每帧图像进行处理,并对每个算子的处理结果进行输出。[0095] 图12为本发明实施例提供的一种视频处理设备的结构示意图,如图12所示,该设备包括处理器201、存储器202、输入装置203和输出装置204;设备中处理器201的数量可以是一个或多个,图12中以一个处理器201为例;设备中的处理器201、存储器202、输入装置203和输出装置204可以通过总线或其他方式连接,图12中以通过总线连接为例。存储器202作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的视频处理方法对应的程序指令/模块。处理器201通过运行存储在存储器202中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的视频处理方法。输入装置203可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置204可包括显示屏等显示设备。[0096] 本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种上述实施例描述的视频处理方法,具体包括:[0097] 获取视频数据的算法处理路径,所述算法处理路径包括对所述视频数据进行处理的至少两个处理算法;[0098] 基于设置的算法描述信息以及所述算法处理路径生成算子图,所述算法描述信息包括对处理算法中使用的算子的描述信息,所述算子图包括多个算子以及算子之间的算子处理顺序,所述算子图中包含的算子个数小于所述算法处理路径对应的算子个数;[0099] 基于所述算子图中记录的算子以及算子处理顺序对所述视频数据进行处理。[0100] 值得注意的是,上述视频处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。[0101] 注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。

专利地区:巴西

专利申请日期:2022-01-27

专利公开日期:2024-06-18

专利公告号:CN114615519B

电话咨询
读内容
搜本页
回顶部