图像帧编码方法、对象搜索方法、计算机设备、存储介质与流程

文档序号:28943983发布日期:2022-02-19 08:06阅读:59来源:国知局
图像帧编码方法、对象搜索方法、计算机设备、存储介质与流程

1.本技术涉及数据处理技术领域,具体涉及一种图像帧编码方法、一种图像搜索方法、一种对象搜索方法、一种计算机设备、一种计算机可读存储介质。


背景技术:

2.当前视频技术发展迅速且应用广泛,在对视频进行网络传输时,基于带宽限制和节省流量的目的,视频图像都是经过编码,然后用于各种不同的视频应用场景。
3.视频编码是指通过对视频图像帧进行离散余弦变换、量化和熵编码等处理,将原始视频格式的文件转换成另一种视频格式文件。其目的是保证编码质量的前提下,尽可能提高视频的压缩率,减小视频文件的体积。
4.因此,通过视频预分析,选择合适的对提升视频质量和控制视频压缩率有着重要的作用。


技术实现要素:

5.鉴于上述问题,提出了本技术以便提供一种克服上述问题或者至少部分地解决上述问题的图像处理方法、图像搜索方法、对象搜索方法以及计算机设备、计算机可读存储介质。
6.依据本技术的一个方面,提供了一种图像帧编码方法,包括:
7.将目标图像帧划分为多个第一数据块;
8.将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
9.根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
10.依据本技术的一个方面,提供了一种视频编码方法,包括:
11.将视频中的目标图像帧划分为多个第一数据块;
12.将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
13.根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
14.根据所述图像帧的编码结果得到所述视频的编码结果。
15.依据本技术的一个方面,提供了一种视频编码方法,包括:
16.将视频中的目标图像帧的特定区域划分为多个第一数据块,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域;
17.将所述多个第一数据块分批输入按序执行的四个编码处理单元;所述编码处理单
元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,四个编码处理单元分别执行图像帧的编码参数的确定过程中的量化参数计算依据读取步骤、信息量获取步骤、量化参数和信息量计算步骤、以及量化参数和信息量写入步骤,在所述四个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
18.根据四个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
19.根据所述图像帧的编码结果得到所述视频的编码结果。
20.依据本技术的一个方面,提供了一种图像帧处理方法,包括:
21.将目标图像帧划分为多个第一数据块;
22.将所述多个第一数据块分批输入按序执行的多个处理单元;所述处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述处理单元对应执行所述目标图像帧的处理过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理。
23.依据本技术的一个方面,提供了一种图像帧处理方法,应用于软件服务平台,包括:
24.获取通过软件服务客户端提交的至少一个目标视频;
25.将目标视频的图像帧划分为多个第一数据块;
26.将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
27.根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
28.根据多个图像帧的编码结果得到所述目标视频的编码结果;
29.基于所述软件服务客户端提供所述目标视频的编码结果。
30.依据本技术的一个方面,提供了一种图像帧编码系统,包括帧划分模块、按序执行的多个编码处理单元和编码模块;
31.所述帧划分单元,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入多个编码处理单元;
32.所述编码处理单元,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
33.所述编码单元,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
34.依据本技术的一个方面,提供了一种基于现场可编程逻辑门阵列的芯片,包括帧划分模块、按序执行的多个编码处理单元和编码模块;
35.所述帧划分单元,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入多个编码处理单元;
36.所述编码处理单元,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
37.所述编码单元,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
38.依据本技术的一个方面,提供了一种电子设备,包括:处理器;和
39.存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如上述任一项所述的方法。
40.依据本技术的一个方面,提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如上述任一项所述的方法。
41.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
42.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
43.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
44.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
45.图1示出了本技术实施例基于fpga实现视频编码过程的示意图;
46.图2示出了根据本技术实施例一的一种图像帧编码方法实施例的流程图;
47.图3示出了根据本技术实施例二的一种图像帧编码方法实施例的流程图;
48.图4示出了根据本技术实施例三的一种图像帧编码方法实施例的流程图;
49.图5示出了根据本技术实施例四的一种视频编码方法实施例的流程图;
50.图6示出了根据本技术实施例五的一种视频编码方法实施例的流程图;
51.图7示出了根据本技术实施例六的一种图像帧处理方法实施例的流程图;
52.图8示出了根据本技术实施例七的一种图像帧编码装置实施例的结构框图;
53.图9示出了示出了根据本技术实施例八的一种视频编码装置实施例的结构框图;
54.图10示出了根据本技术实施例九的一种视频编码装置实施例的结构框图;
55.图11示出了根据本技术实施例十的一种图像帧处理装置实施例的结构框图;
56.图12示出了根据本技术实施例十一的一种图像帧编码系统实施例的结构框图;
57.图13示出了根据本技术实施例十二的一种基于现场可编程逻辑门阵列的芯片实施例的结构框图;
58.图14示出了图像帧编码流程的示意图;
59.图15示出了可被用于实现本公开中所述的各个实施例的示例性系统。
具体实施方式
60.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
61.为使本领域技术人员更好的理解本技术的方案,如下对本技术涉及到的概念进行解释:
62.编码参数用于对视频数据进行编码,具体可以包括帧类型、量化参数(quantization parameter,qp)等数据。其中,量化参数对视频质量具有重要的影响,对于每个编码对象而言,量化参数越小,量化精度越高,视频质量也会相应更佳,但同时会使得编码器的带宽成本也将增大。因此,通过合理地分配量化参数,从而保证视频质量的同时,节约带宽成本,例如,可以为视频中重要区域分配较小的量化参数,不重要区域分配较大的量化参数。
63.基于编码参数的重要性,通过对待编码视频进行预分析,为编码器选择合适的一组编码参数,对提升视频质量,控制编码的压缩率有重要的作用。
64.本技术实施例采用cutree(区块树)算法来进行编码参数的计算,cutree算法的基本原理是通过分析当前图像帧每个区块与其他图像帧的相对信息量,为每个区块分配合理的编码参数,cutree的算法对视频质量具有较大提升。
65.通常使用cutree算法时,需要计算当前图像帧和参考图像帧之前的相对关系,导致迭代次数太多,运算量太大,逐个图像帧进行计算时处理速度较慢,无法实时处理高分辨率的视频,并且硬件实现时会造成比较大的资源消耗,成本较高。
66.针对上述问题,本技术实施例对cutree算法的处理过程中采用多个编码处理单元级执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤。编码处理单元是处理不同步骤的各个单位主体,从应用层面可以理解为执行各步骤对应功能的流水线,将编码参数的确定过程分配到多个具有先后顺序的流水线上执行。
67.一种可选的实施例中,可以将编码参数的确定过程划分为参数读取步骤、信息量获取步骤、数据计算步骤、以及数据交互步骤这四个步骤。其中,参数读取步骤和信息量获取步骤用于确定编码参数计算时所用到的依据数据,数据计算步骤完成编码参数的计算,数据交互步骤将编码参数进行保存用于后续编码时调用。具体实现中,分别采用编码处理单元执行上述各个步骤,例如一种实现方式中,可以设置四个编码处理单元分别执行上述四个步骤。可以理解的是,具体实现中,针对编码参数的确定过程可以有不同的步骤划分方式,也可以根据实际需求设置编码处理单元的个数。
68.针对待处理的图像帧计算编码参数时,将图像帧划分为数据块,由于涉及到当前处理的图像帧和参考图像帧分别对应的数据块,因此将当前待处理的图像帧对应至第一数
据块,将参考图像帧对应至第二数据块。将第一数据块分批输入按序执行的多个编码处理单元,在多个编码处理单元处理后可得到数据块对应的编码参数,进而利用编码参数对图像帧进行编码。
69.本技术实施例中,编码处理单元在同一时间处理同一批次进入的数据块,在一个数据块经过多个编码处理单元处理完毕之前,即开启下一数据块在编码处理单元的处理,因此使得多批数据块的处理可以同时进行。为使得多批数据块的处理的同时处理达到更高效率,设计编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,。可以理解的是,在这种处理模式下,待处理的目标图像帧对应的多个数据块在编码处理单元的处理时间为,排序最前的第一数据块在所有编码处理单元的处理时间与其他第一数据块在最后一个编码处理单元的处理时间之和的加和,相比于逐帧处理的方式,大大提高了处理效率。
70.由此可见,相比于以视频帧为单位顺序执行的方式,本技术实施例可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率(与现有技术的比对显示提高数倍),同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
71.由于视频中的图像帧之间存在运动相关性,也即是图像帧之间存在部分变化的内容以及部分相同的内容,因此可以将目标图像帧表示为与作为参考图像帧的某个图像帧之间的图像内容差异(可以表示为传递信息量),反之,根据该图像内容差异与参考图像帧得到目标图像帧。因此,在对目标图像帧进行数据块的划分时,可以将所述目标图像帧的特定区域划分为多个第一数据块,其中,目标区域是目标图像帧相对于参考图像帧发生内容变化的区域。
72.上述将第一数据块分批次输入编码处理单元,可以是多个数据块作为一个批次,也可以是一个数据块作为一个批次,均可以达到不同批次的数据块同时执行处理的效果。在多个数据块进入编码处理单元进行处理时,由于在先处理完的数据块需要等待在后处理完的数据块,从而造成时间浪费,因此,使用一个数据块作为一个批次,将多个第一数据块逐个输入数据处理单元进行数据处理,可以更好地提高处理效率。
73.相比于没有采用cutree技术的方案,可以显著提升视频质量,减少编码码率。经统计,采用该结构的编码系统,在同等视频质量的前提下,可以平均节省10%-15%的编码码率。
74.上面描述了通过多个编码处理单元实现编码参数的确定过程,视频编码的过程除了使用编码参数,还需要实时更新参考图像帧的总信息量,以保证各个编码单元所使用的参考图像帧的信息量为最新的准确数据。相应的,cutree算法的处理过程分为两部分,其一是确定编码参数(主要是量化参数),根据当前的第一数据块的信息量和相关信息,计算得到第一数据块的量化参数。其二是叠加信息量,需要确定第一数据块的传递信息量,并根据运动矢量,将第一数据块的传递信息量,叠加到参考图像帧对应的第二数据块的初始信息量,得到第二数据块的总信息量,也可以称之为cutree信息量,不同于传统意义上的信息量,如果一个区块被叠加的次数越多,则信息量就越大,相应确定的量化参数就越小,代表这个区块重要程度高,需要采用高质量的编码。
75.因此,上述编码处理单元还可以对应执行所述目标图像帧的参考图像帧的总信息
量确定过程中的一个或多个步骤,参数读取步骤和信息量获取步骤还对应读取参考图像帧的信息确定所用到的依据数据,数据交互步骤还用于保存参考真的信息量以供编码时调用。
76.其中,参考帧的总信息量的计算可以在编码参数的确定之前执行,还可以根据实际需要设定执行顺序。
77.在具体实现中,还可以使用本技术的上述多编码处理单元的执行模式实现其它计算过程,具体实现过程与上述执行过程类似,此处不再赘述。
78.本技术实施例可以部署在处理芯片上,例如可以是fpga(field programmable gate array,可编程逻辑器件)芯片,该芯片可以进一步部署在视频编码设备上,该设备具有一定的计算能力,该设备可以是用户侧终端、常规服务器、云服务器、云主机、虚拟中心等。经过该芯片编码后的视频可以进一步进行网络传输,用于视频应用的终端播放、视频处理等作用。
79.如下结合一个具体的应用示例进行说明,参考图1,示出了本技术实施例基于fpga实现视频编码过程的示意图。该fpga芯片上部署有四个编码处理单元,即第一编码处理单元、第二编码处理单元、第三编码处理单元和第四编码处理单元,分别对应执行编码参数的确定过程中的参数读取步骤、信息量获取步骤、数据计算步骤、以及数据交互步骤。
80.输入fpga芯片的目标图像帧,首先切分为多个第一数据块,如图将视频帧切分为五个第一数据块,分别为cu0、cu1、cu2、cu3以及cu4。将五个第一数据块分批输入多个编码处理单元,前一批第一数据块的处理后,执行下一批第一数据块的处理。如图1所示,排序最前的第一数据块cu0进入第一编码处理单元执行参数读取步骤,在此时间其他编码处理单元均未有处理任务,cu0在第一编码处理单元处理完后,继续进入第二编码处理单元进行处理,空闲下来的第一编码处理单元则继续处理cu1。针对各cu,其处理过程是依次进入各编码处理单元进行处理,针对各编码处理单元,其处理过程是依次处理各cu,并在处理完前一cu后继续处理下一cu。cu在所有编码处理单元处理完毕后,得到各自对对应的编码参数,在依据编码参数对各cu的编码结果,可以进一步得到图像帧的编码结果。
81.在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从图1可看出,在除去cu0在第一编码处理单元以及cu4在第四编码单元的处理之外,各编码单元针对不同数据块的处理过程同时进行,比如cu4在第一编码处理单元处理的同时,cu3在第二编码处理单元处理,cu2在第三编码单元处理,cu1在第四编码单元处理。总的处理时长是如下两者加和:cu0在四个编码处理单元的处理时间,以及,cu1、cu2、cu3和cu4在第四编码处理单元的处理时间之和。相比于各个数据块先后处理的方式节省了处理时间。假设各个数据块在编码处理单元的处理时间相同,均为x时长,则该示例所耗费8x时长,而逐帧处理则耗费20x时长。
82.需要说明的是,提供上述应用示例的目的是便于理解本技术实施例提供的所述方法,而并非用于限定所述方法。
83.接下来描述本技术的各个实施例。
84.参照图2,示出了根据本技术实施例一的一种图像帧编码方法实施例的流程图,该方法具体可以包括以下步骤:
85.步骤101,将目标图像帧划分为多个第一数据块。
86.数据块cu是从图像帧中划分出来的更小编码单元。可以根据实际需要设定划分效果,包括各个数据块的尺寸、形状、区域以及数据块的个数等,例如,可以划分为8x8或16x16的数据块。还可以先划分出较大的数据块,进一步将较大的数据块划分为较小的数据块。具体的划分方法可以根据实际需求选择,例如可以采用四叉树分割法。
87.为了更好的适应图像细节,可以将复杂细节的图像区域划分较小的数据块尺寸,而简单部的图像区域划分较大的数据块尺寸。
88.在数据块的划分过程中还可以参考率失真优化来决定。对于一个较大的数据块可以划分为较小的数据块,在这个过程中会计算较大数据块的率失真代价,和较小数据块的率失真代价之和,如果后者小,则会进行较小数据块的划分。
89.步骤102,将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理。
90.编码处理单元在同一时间处理同一批次进入的数据块,在一个数据块经过多个编码处理单元处理完毕之前,即开启下一数据块在编码处理单元的处理,也即是多批数据块的处理可以同时进行。
91.将第一数据块分批次输入编码处理单元,可以是多个数据块作为一个批次,也可以是一个数据块作为一个批次。
92.为使得多批数据块的处理的同时处理达到更高效率,设计编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理。相比于逐帧处理的方式,大大提高了处理效率。
93.具体实现中,还可以通过控制信号来保证各编码处理单元互相独立,且不间断的工作。
94.步骤103,根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
95.可以采用编码参数对各个第一数据块进行编码,根据各个数据块的编码结果得到目标图像帧的编码结果。
96.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
97.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
98.参照图3,示出了根据本技术实施例二的一种图像帧编码方法实施例的流程图,该方法具体可以包括以下步骤:
99.步骤201,将所述目标图像帧的特定区域划分为多个第一数据块,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域。
100.基于视频中的图像帧之间存在运动相关性,可以将目标图像帧表示为与作为参考图像帧的某个图像帧之间的图像内容差异,相应的,在对目标图像帧进行数据块的划分时,可以确定目标图像帧相对于参考图像帧发生内容变化的区域,进一步将变化的区域划分为多个第一数据块。
101.步骤202,将所述多个第一数据块逐个输入数据处理单元进行数据处理;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理。
102.使用一个数据块作为一个批次,相比于多个数据块作为一个批次,可以更好地提高处理效率。
103.步骤203,根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
104.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
105.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
106.参照图4,示出了根据本技术实施例三的一种图像帧编码方法实施例的流程图,该方法具体可以包括以下步骤:
107.步骤301,将目标图像帧划分为多个第一数据块。
108.步骤302,将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述数据处理单元对应执行所述目标图像帧的编码参数的确定过程中的参数读取步骤、信息量获取步骤、数据计算步骤、以及数据交互步骤,在所述四个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理。
109.步骤303,根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
110.本实施例中具体确定了各个编码处理单元的处理内容,将编码参数的确定过程划
分为参数读取步骤、信息量获取步骤、数据计算步骤、以及数据交互步骤。编码处理单元的个数以及具体执行的处理内容可以根据实际需要设定,一个编码处理单元可以处理其中一个或多个步骤。例如,设计三个编码处理单元,第一编码处理单元处理参数读取步骤和信息量获取步骤,第二编码处理单元处理数据计算步骤,第三编码处理单元处理数据交互步骤。
111.在本技术的一种可选实施例中,所述参数读取步骤包括:读取所述第一数据块的预测参数,所述预测参数包含目标图像帧编码过程中的预测方向和预测代价。其中,预测方向可以是帧内预测或帧间预测,还可以是帧内预测结合帧间预测,预测代价则衡量了编码预测过程中导致的偏差数据。
112.图像帧的预测是在编码过程中采用的一种压缩处理,可以分为帧内预测和帧间预测,也可以称之为帧间编码和帧内编码。帧内预测基于由于同一幅图像中像素之间较强的相关性,可以利用像素间的相关性进行压缩编码。例如,以某个像素作为参考像素,将其他像素与该参考像素的差值来替代表达其他像素,从而可以起到对其他像素进行压缩的作用。例如,在发送数据时,把实际像素x(当前值)和参考像素(预测值)相减,传送差值,接收端根据差值和参考像素的加和,得到实际像素。帧间预测则是基于视频中前后两个图像帧之间具有较强的相关性,例如,参考图像帧可以是在某个方向上距离目标图像帧最近的一个图像帧,采用目标图像帧与参考图像帧的差值来表达目标图像帧,从而起到压缩图像帧的作用。
113.本技术的一种可选实施例中,所述信息量获取步骤包括:根据所述第一数据块的信息量存储地址,从对应存储器获取所述第一数据块的初始信息量根据所述第一数据块的预测代价和编码帧率,得到所述第一数据块的帧内信息量;根据所述帧内信息量和初始信息量确定所述第一数据块的总信息量。例如,可以是预测代价乘以编码帧率得到第一数据块的帧内信息量,再将帧内信息量加上初始信息量,得到第一数据块的总信息量。
114.其中,图像帧的初始信息量用于计算总信息量,其他帧如果引用当前图像帧,就会叠加到这一帧的信息量上,所以在cutree计算的过程中,每一帧的信息量是不断增大,直到叠加过程结束,得到总信息量,用于推导量化参数。
115.图像帧的初始信息量可以预先通过图像的像素数量和可分辨的色彩数量计算得到。
116.本技术的一种可选实施例中,所述数据计算步骤包括:根据读取的所述第一数据块的总信息量、预测方向和预测代价确定用于所述第一数据块对应的编码参数。以预测方向为帧内预测、编码参数为量化参数为例,预测代价为帧内预测代价,将第一数据块的总信息量乘以编码帧率系数,除以该第一数据块的帧内预测代价系数,并对结果取log对数,即可得到量化参数。
117.本技术的一种可选实施例中,所述参数读取步骤包括:所述根据所述第一数据块在图像中的位置在获取所述第一数据块的信息量存储地址。首先确定数据块在图像中的位置,根据位置与信息量存储地址的映射关系,可以确定第一数据块的信息量存储地址。
118.由于视频编码的过程除了使用编码参数,还需要依据参考图像帧的信息量,因此,还可以通过多个编码处理单元实现编码参数的确定过程。
119.因此,上述编码处理单元还可以对应执行所述目标图像帧的参考图像帧的总信息量确定过程中的一个或多个步骤,参数读取步骤和信息量获取步骤还对应读取参考图像帧
的信息确定所用到的依据数据,数据交互步骤还用于保存参考真的信息量以供编码时调用。
120.相应的,所述信息量获取步骤还可以包括:根据所述第一数据块的总信息量确定所述目标图像帧与参考图像帧之间的传递信息量。信息量获取步骤还可以获取用于计算参考帧的总信息量的依据之一,也即是目标图像帧的第一数据块的总信息量,进一步根据第一数据块的总信息量确定目标图像帧与参考图像帧之间的传递信息量,也即是两者之间的差异信息量。
121.相应的,所述数据计算步骤还包括:获取参考图像帧中第二数据块的初始信息量;将所述第一数据块的传递信息量叠加至参考图像帧中第二数据块的初始信息量,获得所述参考图像帧中第二数据块的总信息量。由于传递信息量也是目标图像帧与参考图像帧之间的差异信息量,因此,可以将传递信息量叠加至参考图像帧的初始信息量之上,得到所述参考图像帧中第二数据块的总信息量。
122.本技术的一种可选实施例中,所述参数读取步骤包括:读取预测代价系数。预测代价系数为针对预测代价,也即是预测偏差或是编码偏差的系数,可以预先设定,也可以根据预测代价的数值范围确定对应该范围设定的预测代价系数。
123.相应的,本技术的一种可选实施例中,所述根据所述第一数据块的初始信息量确定所述目标图像帧与参考图像帧之间的传递信息量包括:根据所述第一数据块的预测代价和编码帧率,得到所述第一数据块的帧内信息量;根据所述帧内信息量和初始信息量确定所述第一数据块的总信息量;根据所述总信息量和预测代价系数确定所述第一数据块的传递信息量。其中具体的计算公式可以根据实际需求设定,且该数据的计算过程为本领域的公知技术,此处不再赘述。
124.本技术的一种可选实施例中,所述参数读取步骤还包括:根据所述第一数据块在目标图像帧中的位置以及所述运动矢量,确定参考图像帧中待叠加信息量的第二数据块的位置。此处的运动矢量(motionvector,mv)表示帧间编码过程中,第一数据块与其参考图像帧图像中的匹配度最高的第二数据块之间的相对位移,因此,根据第一数据块在目标图像中的位置结合运动矢量表征的相对位移,可以确定参考图像帧中与第一数据块对应的第二数据块的位置。
125.本技术的一种可选实施例中,所述数据交互步骤包括:将所述编码参数存储至对应的存储单元,以供后续编码时调用。
126.本技术的一种可选实施例中,所述数据交互步骤包括:将所述参考图像帧中第二数据块的总信息量传递至关联使用的其他编码处理单元,以及时更新其他编码处理单元所使用的数据,保证其他编码处理单元所用的数据是最新的准确数,避免从存储位置访问参考图像帧中第二数据块的总信息量时,存储器数据更新不及时导致得到编码处理单元停顿。
127.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步
执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
128.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
129.参照图5,示出了根据本技术实施例四的一种视频编码方法实施例的流程图,该方法具体可以包括以下步骤:
130.步骤401,将视频中的目标图像帧划分为多个第一数据块。
131.步骤402,将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行图像帧的编码参数的确定过程中的一个或多个步骤。
132.步骤403,根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
133.步骤404,根据所述目标图像帧的编码结果得到所述视频的编码结果。
134.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
135.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
136.参照图6,示出了根据本技术实施例五的一种视频编码方法实施例的流程图,该方法具体可以包括以下步骤:
137.步骤501,将视频中的目标图像帧的特定区域划分为多个第一数据块,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域。
138.步骤502,将所述多个第一数据块分批输入按序执行的四个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,四个编码处理单元分别执行图像帧的编码参数的确定过程中的量化参数计算依据读取步骤、信息量获取步骤、量化参数和信息量计算步骤、以及量化参数和信息量写入步骤。
139.步骤503,根据四个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
140.步骤504,根据所述目标图像帧的编码结果得到所述视频的编码结果。
141.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
142.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
143.参照图7,示出了根据本技术实施例六的一种图像帧处理方法实施例的流程图,该方法具体可以包括以下步骤:
144.步骤601,将目标图像帧划分为多个第一数据块。
145.步骤602,将所述多个第一数据块分批输入按序执行的多个处理单元。所述处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述处理单元对应执行所述目标图像帧的处理过程中的一个或多个步骤。
146.依据本技术实施例,采用多个处理单元执行目标图像帧的处理过程,单个处理单元执行处理过程中的一个或多个步骤,将图像帧划分为数据块,分批输入按序执行的多个处理单元,可得到处理结果。由于处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩处理过程耗费的时间,提高了视频帧的处理效率,由于多处理单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
147.并且,本技术实施例的多处理单元处理方案通用性强,可以复制到不同的处理系统使用,并且可以将处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
148.本技术实施例的图像帧处理方法可以应用于视频处理,进一步可以应用于软件服务saas(software-as-a-service,软件即服务)平台,提供为一种面向各种软件的视频处理服务。
149.saas通过网络提供软件服务,平台供应商将应用软件统一部署在自己的服务器上,平台客户(例如提供软件的服务商)可以根据实际需求,通过互联网向平台定购所需的软件服务,进一步通过互联网获得平台提供的服务。
150.具体实现过程可以包括:
151.步骤1、获取通过软件服务客户端提交的至少一个目标视频。
152.步骤2、将目标视频的图像帧划分为多个第一数据块。
153.步骤3、将所述多个第一数据块分批输入按序执行的多个编码处理单元。所述编码
处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理。
154.步骤4、根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
155.步骤5、根据多个图像帧的编码结果得到所述目标视频的编码结果。
156.步骤6、基于所述软件服务客户端提供所述目标视频的编码结果。
157.依据本技术实施例,采用多个处理单元执行目标图像帧的处理过程,单个处理单元执行处理过程中的一个或多个步骤,将图像帧划分为数据块,分批输入按序执行的多个处理单元,可得到处理结果。由于处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩处理过程耗费的时间,提高了视频帧的处理效率,由于多处理单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
158.并且,本技术实施例的多处理单元处理方案通用性强,可以复制到不同的处理系统使用,并且可以将处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
159.为使本领域技术人员更好地理解本技术,以下通过具体的示例对本技术的一种图像帧编码方法进行说明,其中各级流水线也即是按序执行的编码处理单元。参考图14,示出了图像帧编码流程的示意图,具体包括如下步骤:
160.1、cutree控制单元启动第一级流水线,根据目标图像帧的当前cu位置,从cu参数存储器中读出当前cu的信息,包含运动矢量、预测类型、帧内预测代价、帧间代价系数等。
161.2、第一级流水线根据当前cu在图像中的位置,计算当前cu在存储器中的信息量存储地址;根据当前cu在图像中的位置和当前cu的运动矢量,计算每个参考图像帧中与上述当前cu对应的cu的信息量存储地址。
162.3、第一级流水线操作结束后,开始处理下一个cu,同时控制单元启动第二级流水线。
163.4、第二级流水线根据每个参考帧中cu的信息量存储地址,读取参考图像帧的信息量存储器中读取参考图像帧的初始信息量;根据当前cu的信息量存储地址,从当前cu的信息量存储器读取当前cu的信息量。
164.5、第二级流水线将cu帧内预测代价乘以编码帧率,得到cu的帧内信息量,将cu帧内信息量加上从当前帧的信息量存储器中读出的当前cu的信息量,得到当前cu信息量总和。
165.6、第二级流水线将当前cu信息量总和乘以cu的帧间代价系数,得到当前cu的传递信息量,计算完毕后控制单元启动第三级流水线。
166.7、第三级流水线从参考帧信息量存储器中得到每个参考帧的4个cu的初始信息量,并将第二级流水线计算的当前cu的传递信息量叠加到每个参考帧中4个cu的初始信息量上。
167.8、第三级流水线根据当前cu的总信息量,除以当前cu的帧内预测代价,并对结果
取log对数,得到量化参数。
168.9、第四级流水线将量化参数qp写入到量化参数qp存储器中,并将第三级流水线更新后每个参考帧中cu的总信息量写入参考帧信息量存储器。
169.10、如果第三级流水线所需要的参考帧中cu的总信息量来源于第四级流水线,第四级流水线可以将参考帧cu的总信息量结果反馈到第三级流水线,从而保证第三级流水线所需的cu信息量是最新的结果,从而避免不同流水线访问同一地址时,存储器数据更新不及时导致的流水线停顿。
170.如下提供一个具体的计算示例:
171.假设有10帧图像,假设为f0....f9,每一图像帧中每个数据块都对应一个cutree信息量,每个块的cutree的初始信息量(可以根据实际需要设置),存储在存储器中。
172.在确定量化参数的过程中,计算f1时,对f1中的每个数据块,读出存储器中这个块的初始信息量a(设置为0),并且根据这个块的帧内预测代价和编码帧率,计算帧内信息量b,然后将a加上b之后得到该数据块的总信息量。
173.将总信息量乘以帧间代价系数c,得到结果(a+b)*c,为当前块的传递总信息量。
174.假设f1的参考帧是f0,根据运动矢量找到f0中四个区块,从存储器中读出这四个区块的信息量,比如是k0,k1,k2,k3,将(a+b)*c分成四部分,叠加到k0,k1,k2,k3上,得到f0的四个数据块分别对应的总信息量,再将其更新到f0帧的存储器中。
175.然后开始计算f2,f2如果同时参考f0和f1,那么f2计算完毕,f0和f1中每个区块的信息量也会更新。依次类推,当f0-f9都计算完毕。
176.可以在计算完各数据块的总信息量后,开始计算f0至f9中,每个区块的量化参数。
177.比如开始计算f0中一个区块的量化参数,首先从存储器中读出总信息量(经过了f1...f9叠加),将这个总信息量乘以编码帧率系数,再除以这个块的帧内代价系数,最后取对数log,得到量化参数。
178.参照图8,示出了根据本技术实施例七的一种图像帧编码装置实施例的结构框图,具体可以包括:
179.数据块切分单元701,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入按序执行的多个编码处理单元;
180.编码处理单元702,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理;
181.编码单元703,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
182.本技术的一种可选的实施例中,所述数据块切分单元,具体用于将所述目标图像帧的特定区域划分为多个第一数据块,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域。
183.本技术的一种可选的实施例中,所述数据块切分单元,具体用于:将所述多个第一数据块逐个输入数据处理单元进行数据处理。
184.本技术的一种可选的实施例中,多个数据处理单元包括参数读取单元、信息量获取单元、数据计算单元、以及数据交互单元。
185.本技术的一种可选的实施例中,所述参数读取单元,具体用于读取所述第一数据
块的预测参数;所述预测参数包含目标图像帧编码过程中的预测方向和预测代价。
186.本技术的一种可选的实施例中,所述信息量获取单元,具体用于根据所述第一数据块的信息量存储地址,从对应存储器获取所述第一数据块的初始信息量;以及,根据所述第一数据块的预测代价和编码帧率,得到所述第一数据块的帧内信息量;根据所述帧内信息量和初始信息量确定所述第一数据块的总信息量。
187.本技术的一种可选的实施例中,所述数据计算单元,具体用于根据读取的所述第一数据块的总信息量、预测方向和预测代价确定用于所述第一数据块对应的编码参数。
188.本技术的一种可选的实施例中,所述参数获取单元,具体用于所述根据所述第一数据块在图像中的位置在获取所述第一数据块的信息量存储地址。
189.本技术的一种可选的实施例中,所述编码处理单元还用于对应执行所述目标图像帧的参考图像帧的总信息量确定过程中的一个或多个步骤,所述信息量获取单元,还用于根据所述第一数据块的总信息量确定所述目标图像帧与参考图像帧之间的传递信息量;
190.所述数据计算单元,还用于获取参考图像帧中第二数据块的初始信息量;将所述第一数据块的传递信息量叠加至参考图像帧中第二数据块的初始信息量,获得所述参考图像帧中第二数据块的总信息量。
191.本技术的一种可选的实施例中,所述参数读取单元,用于读取预测代价系数;
192.所述传递信息量确定子单元,用于根据第一数据块的总信息量和预测代价系数确定所述第一数据块的传递信息量。
193.本技术的一种可选的实施例中,所述参数读取单元,还用于根据所述第一数据块在目标图像帧中的位置以及所述运动矢量,确定参考图像帧中待叠加信息量的第二数据块的位置。
194.本技术的一种可选的实施例中,所述数据交互单元,用于将所述编码参数存储至对应的存储单元,以供后续编码时调用。
195.本技术的一种可选的实施例中,所述数据交互单元,用于将更新的参考图像帧中第二数据块的总信息量传递至关联使用的其他编码处理单元。
196.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
197.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
198.参照图9,示出了根据本技术实施例八的一种视频编码装置实施例的结构框图,具体可以包括:
199.数据块切分单元801,用于将视频中的目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入按序执行的多个编码处理单元;
200.编码处理单元802,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理;
201.图像帧编码单元803,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
202.视频编码单元804,用于根据所述目标图像帧的编码结果得到所述视频的编码结果。
203.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
204.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
205.参照图10,示出了根据本技术实施例九的一种视频编码装置实施例的结构框图,具体可以包括:
206.数据块切分单元901,用于将视频中的目标图像帧的特定区域划分为多个第一数据块,并将所述多个第一数据块分批输入按序执行的四个编码处理单元,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域;
207.四个编码处理单元902,用于分别执行图像帧的编码参数的确定过程中的量化参数计算依据读取步骤、信息量获取步骤、量化参数和信息量计算步骤、以及量化参数和信息量写入步骤,所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理;
208.图像帧编码单元903,用于根据四个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
209.视频编码单元904,用于根据所述目标图像帧的编码结果得到所述视频的编码结果。
210.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在四个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的
方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
211.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
212.参照图11,示出了根据本技术实施例十的一种图像帧处理装置实施例的结构框图,具体可以包括:
213.数据块切分单元1001,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入按序执行的多个处理单元;
214.处理单元1002,用于对应执行所述目标图像帧的处理过程中的一个或多个步骤,并获得处理结果,所述处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理。
215.依据本技术实施例,采用多个处理单元执行目标图像帧的处理过程,单个处理单元执行处理过程中的一个或多个步骤,将图像帧划分为数据块,分批输入按序执行的多个处理单元,可得到处理结果。由于处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩处理过程耗费的时间,提高了视频帧的处理效率,由于多处理单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
216.并且,本技术实施例的多处理单元处理方案通用性强,可以复制到不同的处理系统使用,并且可以将处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
217.参照图12,示出了根据本技术实施例十一的一种图像帧编码系统实施例的结构框图,包括帧划分单元、按序执行的多个编码处理单元和编码单元;
218.所述帧划分单元1101,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入多个编码处理单元;
219.所述编码处理单元1102,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理;
220.所述图像帧编码单元1103,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
221.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的
方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
222.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
223.参照图13,示出了根据本技术实施例十二的一种基于现场可编程逻辑门阵列的芯片实施例的结构框图,包括帧划分单元、按序执行的多个编码处理单元和编码单元;
224.所述帧划分单元1201,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入多个编码处理单元;
225.所述编码处理单元1202,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理;
226.所述图像帧编码单元1203,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
227.依据本技术实施例,采用多个编码处理单元执行编码参数的确定过程,单个编码处理单元执行编码参数确定过程中的一个或多个步骤,针对图像帧计算编码参数时,将图像帧划分为数据块,分批输入按序执行的多个编码处理单元,可得到编码参数,进而利用编码参数对图像帧进行编码。由于编码处理单元在处理完前一批数据块后即可执行下一批数据块的处理,在多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理,从而使得多批数据块的处理可以同时进行,相比于以视频帧为单位顺序执行的方式,可以大大缩短编码参数确定所耗费的时间,提高了视频编码的效率,同时降低了数据块的处理延迟。由于多编码单元并行运行的方式对硬件单元进行了资源复用,可以减小芯片面积,减少硬件开销,降低硬件成本,便于硬件实现。
228.采用该复用结构的fpga实现方案中,由于将存储器和计算单元进行了细颗粒度复用,对应占用的芯片面积仅为1800lut,便于硬件实现。
229.并且,本技术实施例的多编码处理单元处理方案通用性强,可以复制到不同的编码系统使用,并且可以将编码处理单元配置为兼容其他处理过程,从而实现了多个处理过程的优化处理,提高了系统的处理效率。
230.对于装置和系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
231.本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的系统。图15示意性地示出了可被用于实现本公开中所述的各个实施例的示例性系统(或装置)1300。
232.对于一个实施例,图15示出了示例性系统1300,该系统具有一个或多个处理器1302、被耦合到(一个或多个)处理器1302中的至少一个的系统控制模块(芯片组)1304、被耦合到系统控制模块1304的系统存储器1306、被耦合到系统控制模块1304的非易失性存储器(nvm)/存储设备1308、被耦合到系统控制模块1304的一个或多个输入/输出设备1310,以及被耦合到系统控制模块1306的网络接口1312。
233.处理器1302可包括一个或多个单核或多核处理器,处理器1302可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,系统1300能够作为本技术实施例中所述的浏览器。
234.在一些实施例中,系统1300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器1306或nvm/存储设备1308)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本公开中所述的动作的一个或多个处理器1302。
235.对于一个实施例,系统控制模块804可包括任意适当的接口控制器,以向(一个或多个)处理器1302中的至少一个和/或与系统控制模块1304通信的任意适当的设备或组件提供任意适当的接口。
236.系统控制模块1304可包括存储器控制器模块,以向系统存储器1306提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
237.系统存储器1306可被用于例如为系统1300加载和存储数据和/或指令。对于一个实施例,系统存储器1306可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,系统存储器1306可包括双倍数据速率类型四同步动态随机存取存储器(ddr4sdram)。
238.对于一个实施例,系统控制模块1304可包括一个或多个输入/输出控制器,以向nvm/存储设备1308及(一个或多个)输入/输出设备1310提供接口。
239.例如,nvm/存储设备1308可被用于存储数据和/或指令。nvm/存储设备1308可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。
240.nvm/存储设备1308可包括在物理上作为系统1300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,nvm/存储设备1308可通过网络经由(一个或多个)输入/输出设备1310进行访问。
241.(一个或多个)输入/输出设备1310可为系统1300提供接口以与任意其他适当的设备通信,输入/输出设备1310可以包括通信组件、音频组件、传感器组件等。网络接口1312可为系统1300提供接口以通过一个或多个网络通信,系统1300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g或5g,或它们的组合进行无线通信。
242.对于一个实施例,(一个或多个)处理器1302中的至少一个可与系统控制模块1304的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1302中的至少一个可与系统控制模块1304的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器1302中的至少一个可与系统控制模块1304的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1302中的至少一个可与系统控制模块1304的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。
243.在各个实施例中,系统1300可以但不限于是:浏览器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统1300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统1300包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器
端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。
244.其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还识别与所述触摸或滑动操作相关的持续时间和压力。
245.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本技术实施例中各方法步骤的指令(instructions)。
246.在一个示例中提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如本技术实施例的方法。
247.在一个示例中还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本技术实施例的一个或多个的方法。
248.依据本技术实施例的一个方面,提供了一种图像帧编码方法,示例1包括:
249.将目标图像帧划分为多个第一数据块;
250.将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
251.根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
252.示例2包括示例1所述的方法,所述将目标图像帧划分为多个第一数据块包括:
253.将所述目标图像帧的特定区域划分为多个第一数据块,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域。
254.示例3包括示例1所述的方法,所述将所述多个第一数据块分批输入数据处理单元进行数据处理包括:
255.将所述多个第一数据块逐个输入数据处理单元进行数据处理。
256.示例4包括示例1所述的方法,所述数据处理单元对应执行所述目标图像帧的编码参数的确定过程中的参数读取步骤、信息量获取步骤、数据计算步骤、以及数据交互步骤。
257.示例5包括示例1所述的方法,所述信息量获取步骤包括:
258.根据所述第一数据块的信息量存储地址,从对应存储器获取所述第一数据块的初始信息量;
259.根据所述第一数据块的预测代价和编码帧率,得到所述第一数据块的帧内信息量;
260.根据所述帧内信息量和初始信息量确定所述第一数据块的总信息量。
261.示例6包括示例5所述的方法,所述参数读取步骤包括:
262.读取所述第一数据块的预测参数;所述预测参数包含目标图像帧编码过程中的预测方向和预测代价。
263.示例7包括示例6所述的方法,所述数据计算步骤包括:
264.根据读取的所述第一数据块的总信息量、预测方向和预测代价确定用于所述第一
数据块对应的编码参数。
265.示例8包括示例5所述的方法,所述参数读取步骤包括:
266.所述根据所述第一数据块在图像中的位置在获取所述第一数据块的信息量存储地址。
267.示例9包括示例6所述的方法,所述编码处理单元还对应执行所述目标图像帧的参考图像帧的总信息量确定过程中的一个或多个步骤;
268.所述信息量获取步骤还包括:
269.根据所述第一数据块的总信息量确定所述目标图像帧与参考图像帧之间的传递信息量;
270.所述数据计算步骤还包括:
271.获取参考图像帧中第二数据块的初始信息量;
272.将所述第一数据块的传递信息量叠加至参考图像帧中第二数据块的初始信息量,获得所述参考图像帧中第二数据块的总信息量。
273.示例10包括示例9所述的方法,所述参数读取步骤还包括:
274.读取预测代价系数;
275.所述根据所述第一数据块的总信息量确定所述目标图像帧与参考图像帧之间的传递信息量包括:
276.根据所述第一数据块的总信息量和预测代价系数确定所述第一数据块的传递信息量。
277.示例11包括示例9所述的方法,所述参数读取步骤还包括:
278.根据所述第一数据块在目标图像帧中的位置以及所述运动矢量,确定参考图像帧中待叠加信息量的第二数据块的位置。
279.示例12包括示例4所述的方法,所述数据交互步骤包括:
280.将所述编码参数存储至对应的存储单元,以供后续编码时调用。
281.示例13包括示例9所述的方法,所述数据交互步骤包括:
282.将所述参考图像帧中第二数据块的总信息量传递至关联使用的其他编码处理单元。
283.依据本技术实施例的一个方面,提供了一种视频编码方法,示例14包括:
284.将视频中的目标图像帧划分为多个第一数据块;
285.将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
286.根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
287.根据所述图像帧的编码结果得到所述视频的编码结果。
288.依据本技术实施例的一个方面,提供了一种视频编码方法,示例15包括:
289.将视频中的目标图像帧的特定区域划分为多个第一数据块,所述目标区域为所述目标图像帧相对于参考图像帧发生内容变化的区域;
290.将所述多个第一数据块分批输入按序执行的四个编码处理单元;所述编码处理单
元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,四个编码处理单元分别执行图像帧的编码参数的确定过程中的量化参数计算依据读取步骤、信息量获取步骤、量化参数和信息量计算步骤、以及量化参数和信息量写入步骤,在所述四个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
291.根据四个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
292.根据所述图像帧的编码结果得到所述视频的编码结果。
293.依据本技术实施例的一个方面,提供了一种图像帧处理方法,示例16包括:
294.将目标图像帧划分为多个第一数据块;
295.将所述多个第一数据块分批输入按序执行的多个处理单元;所述处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述处理单元对应执行所述目标图像帧的处理过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理。
296.依据本技术实施例的一个方面,提供了一种图像帧处理方法,应用于软件服务平台,示例17包括:
297.获取通过软件服务客户端提交的至少一个目标视频;
298.将目标视频的图像帧划分为多个第一数据块;
299.将所述多个第一数据块分批输入按序执行的多个编码处理单元;所述编码处理单元执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,所述编码处理单元对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
300.根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码;
301.根据多个图像帧的编码结果得到所述目标视频的编码结果;
302.基于所述软件服务客户端提供所述目标视频的编码结果。
303.依据本技术实施例的一个方面,提供了一种图像帧编码系统,示例18包括帧划分模块、按序执行的多个编码处理单元和编码模块;
304.所述帧划分单元,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入多个编码处理单元;
305.所述编码处理单元,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
306.所述编码单元,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
307.依据本技术实施例的一个方面,提供了一种基于现场可编程逻辑门阵列的芯片,示例19包括帧划分模块、按序执行的多个编码处理单元和编码模块;
308.所述帧划分单元,用于将目标图像帧划分为多个第一数据块,并将所述多个第一数据块分批输入多个编码处理单元;
309.所述编码处理单元,用于对应执行所述目标图像帧的编码参数的确定过程中的一个或多个步骤,并在执行完前一批第一数据块的处理后,执行下一批第一数据块的处理,在所述多个编码处理单元执行处理的部分时间段内,至少两个编码处理单元同步执行处理;
310.所述编码单元,用于根据多个第一数据块分别对应的编码参数,对所述目标图像帧进行编码。
311.依据本技术实施例的一个方面,提供了一种电子设备,示例20包括:处理器;和
312.存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如示例1-17中任一项所述的方法。
313.依据本技术实施例的一个方面,提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如示例1-17中任一项所述的方法。
314.虽然某些实施例是以说明和描述为目的的,各种各样的替代、和/或、等效的实施方案、或计算来达到同样的目的实施例示出和描述的实现,不脱离本技术的实施范围。本技术旨在覆盖本文讨论的实施例的任何修改或变化。因此,显然本文描述的实施例仅由权利要求和它们的等同物来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1