运动矢量的预测方法、装置、电子设备及存储介质与流程

文档序号:33119456发布日期:2023-02-01 03:26阅读:21来源:国知局
1.本公开涉及人工智能领域,具体涉及云计算、视频编解码以及媒体云技术等
技术领域
:,可应用在智能云场景下。尤其涉及一种运动矢量的预测方法、装置、电子设备及存储介质。
背景技术
::2.高效视频编码(highefficiencyvideocoding;hevc)是新一代的视频编码压缩标准,与前一代h.264/avc标准相比,在同等清晰度下,可以节省将近50%的码率。它可以广泛应用于与视频压缩相关的领域,比如直播、点播等。3.hevc主要由预测、变换、量化、环路滤波、熵编码等主要技术组成。例如,预测是hevc的编码器中的一个重要模块,它可以分为帧内预测和帧间预测。其中,帧内预测是指利用同一帧图像中已编码的图像块的重构像素值,按一定的方式来进行待编码图像块的预测的方法。帧间预测是指利用已编码的前向或后向考帧中的图像块来进行待编码图像块的预测的方法。帧间预测会采用逐块匹配的方式,获取参考帧中与当前待编码图像块匹配的最佳匹配块,进而基于当前待编码图像块与最佳匹配块的位置,得到该待编码图像块的运动向量,也就是mv,这个过程被称为运动估计。不同的图像块的mv在时域和空域上也有一定的相关性。因此,可以利用相邻的图像块的mv进行当前块mv的预测,仅对预测残差进行编码,则能节省mv的编码比特数。技术实现要素:4.本公开提供了一种运动矢量的预测方法、装置、电子设备及存储介质,涉及人工智能领域。5.根据本公开的一方面,提供了一种运动矢量的预测方法,包括:6.获取待编码的视频帧的复杂度表征值;7.基于所述复杂度表征值,配置所述视频帧对应的候选运动矢量数量;8.基于所述候选运动矢量数量,预测所述视频帧中各图像块的运动矢量。9.根据本公开的另一方面,提供了一种运动矢量的预测装置,包括:10.第一获取模块,用于获取待编码的视频帧的复杂度表征值;11.配置模块,用于基于所述复杂度表征值,配置所述视频帧对应的候选运动矢量数量;12.预测模块,用于基于所述候选运动矢量数量,预测所述视频帧中各图像块的运动矢量。13.根据本公开的再一方面,提供了一种电子设备,包括:14.至少一个处理器;以及15.与所述至少一个处理器通信连接的存储器;其中,16.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。17.根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。18.根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。19.根据本公开的技术,能够有效地提高运动矢量的预测的灵活性,提高运动矢量的预测效率。20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明21.附图用于更好地理解本方案,不构成对本公开的限定。其中:22.图1是根据本公开第一实施例的示意图;23.图2是根据本公开第二实施例的示意图;24.图3是本实施例提供的当前图像块的空域运动矢量候选列表选取示意图;25.图4是本实施例提供的时域候选运动矢量的获取示意图;26.图5是本实施例提供的时域候选运动矢量的获取位置示意图;27.图6是根据本公开第三实施例的示意图;28.图7是根据本公开第四实施例的示意图;29.图8是用来实现本公开实施例的方法的电子设备的框图。具体实施方式30.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。31.显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。32.需要说明的是,本公开实施例中所涉及的终端设备可以包括但不限于手机、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。33.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。34.merge是在hevc的基础上提出的一种mv预测技术,可以利用时域或空域相邻图像块的mv,对当前待编码的图像块的mv进行预测。hevc的merge模式中,会为当前待编码的图像块建立一个mv候选列表,列表35.中可以包括有5个候选mv,通过遍历这5个mv,计算率失真代价最小36.的mv作为当前待编码的图像块的mv。编码时,在码流中只需传输最优37.mv在列表中的索引即可,以提高编码效率。现有技术的上述mv预测技38.术,所有图像中的待编码图像块的候选mv数量固定,都是5,导致mv预测过程过于死板,预测效率低下。39.图1是根据本公开第一实施例的示意图;如图1所示,本实施例提供一种运动矢量的预测方法,可以应用于视频编码中的编码器中,具体可以包括如下步骤:40.s101、获取待编码的视频帧的复杂度表征值;41.s102、基于复杂度表征值,配置视频帧对应的候选运动矢量数量;42.s103、基于候选运动矢量数量,预测视频帧中各图像块的运动矢量。43.本实施例的运动矢量的预测方法,应用于视频编码过程中的帧间预测环节。由于涉及到的是帧间预测,故可以对视频帧中第一帧之外的所有视频帧中的各编码块进行运动矢量的预测。44.本实施例的待编码的视频帧的复杂度表征值,用于表征对应的视频帧的复杂程度。例如,复杂度表征值越高,表示该视频帧的复杂度越高;而复杂度表征值越低,表示该视频帧的复杂度越低。45.例如,本实施例中,可以通过对该待编码的视频帧进行预分析,获取该视频帧的复杂度表征值。46.本实施例中,可以基于视频帧对应的复杂度表征值,可以为该视频帧配置对应的候选运动矢量数量。具体地,在配置时,可以使得复杂度表征值越大的视频帧,配置的候选运动矢量数量越多;复杂度表征值越低的视频帧,配置的候选运动矢量数量越少。也就是说,相对于现有技术的候选运动矢量固定为5个,每个视频帧对应的候选运动矢量的数量可以配置的,而不是固定不变的。例如,在本实施例中,配置的视频帧对应的候选运动矢量的数量可以小于或者等于5个。47.例如,复杂度表征值越大,表示对应的视频帧越复杂,此时可以认为视频帧中包括的内容较多,所以,为了提高运动矢量的预测的准确性,在预测视频帧中各图像块的运动矢量时,可以参考更多的候选运动矢量。而复杂度表征值越小,表示对应的视频帧越简单,此时可以认为视频帧中包括的内容不多,较为简单,所以,为了提高运动矢量的预测效率,在预测视频帧中各图像块的运动矢量时,不用参考太多的候选运动矢量,仅根据较少的候选运动矢量,便可以实现对视频帧中的图像块的运动矢量进行准确预测。48.本实施例中,可以进一步基于配置的视频帧的候选运动矢量的数量,预测视频帧中各图像块的运动矢量。例如,针对于视频帧中的每个图像块,可以遍历每个候选运动矢量,计算率失真代价最小的候选运动矢量,作为该方式获取的当前的图像块的运动矢量。或者若实际应用中,还可以参考其他方式获取的候选运动矢量,如采用传统的运动矢量估计方法,并获取所有方式获取的候选运动矢量中,率失真代价最小的候选运动矢量作为当前的图像块的最终的运动矢量。其中传统的运动矢量的估计方法,可以为基于当前视频帧的当前的图像块的位置,和参考帧中该图像块的最佳匹配块的位置,估计该图像块的运动矢量。49.本实施例的运动矢量的预测方法,通过获取待编码的视频帧的复杂度表征值;基于该复杂度表征值,配置该视频帧对应的候选运动矢量数量;基于该候选运动矢量数量,预测该视频帧中各图像块的运动矢量。与现有技术相比,视频帧的候选运动矢量的数量不是固定不变的,而是可基于视频帧的复杂度表征值进行灵活配置的,使得视频帧对应的候选运动矢量的数量更加合理,进而基于配置的候选运动矢量数量,能够更加合理地预测视频帧中各图像块的运动矢量,能够有效地提高运动矢量的预测的灵活性,提高运动矢量的预测效率。而且,进一步地,还可以有效地提高视频编码效率。50.图2是根据本公开第二实施例的示意图;如图2所示,本实施例提供一种运动矢量的预测方法,在上述图1所示实施例的技术方案的基础上,进一步更加详细地描述本公开的技术方案。如图2所示,本实施例的运动矢量的预测方法,具体可以包括如下步骤:51.s201、获取视频帧中各图像块的运动矢量;52.s202、基于视频帧中各图像块的运动矢量,计算视频帧中所有图像块的运动矢量的绝对值的方差的总和,作为视频帧的复杂度表征值;53.本实施例的步骤s201-s202为上述图1所示实施例的步骤s101的一种实现方式。具体地,该过程可以在对该视频帧进行预分析,得到视频帧对应的复杂度表征值。而且,该视频帧的复杂度表征值的获取过程中,综合考虑了该视频帧中所有图像块的运动矢量,且计算了所有图像块的运动矢量的绝对值的方差的总和,作为该视频帧的复杂度表征值,能够有效地确保获取的该视频帧的复杂度表征值的准确性。54.具体地,可以按照现有的视频帧中编码块的划分方式,获取视频帧中的各个编码块。由于每个编码块包括视频帧中的部分图像,所以本实施例中,将编码块也称为图像块。55.另外,由于该过程是预分析过程,可以不按照编码过程对视频帧进行图像块的划分。所以,为了便于划分,可以按照固定的大小来划分各图像块。例如可以按照16*16的像素块的大小来划分,实际应用中,根据需求还可以按照8*8、32*32等其他大小来划分。56.其中各图像块的运动矢量mv的获取过程,可以参考相关现有技术,例如可以基于各图像块的位置和参考帧对应最佳匹配块的位置,获取对应图像块的运动矢量mv,在此不再赘述。57.在本公开的一个实施例中,一个视频帧中的像素数量较多,按照上述方式,获取该视频帧的复杂度表征值的过程计算量大,计算耗时较长,效率较低。为了克服上述问题,考虑到视频帧的下采样帧与视频帧具有相同的复杂度表征值,可选地,可以先对视频帧进行下采样,得到下采样帧。然后对下采样帧进行块划分,得到多个图像块,也可以说是多个编码块。然后计算每个图像块的运动矢量,最后计算所有图像块的运动矢量的绝对值的方差的总和,作为视频帧的复杂度表征值。采用该方式,可以减少获取视频帧的复杂度表征值的过程计算量,缩短计算耗时,提高效率。58.s203、基于复杂度表征值、第一预设表征值和第二预设表征值,确定视频帧的复杂程度类型;其中,第二预设表征值大于第一预设表征值;59.例如,具体实现时,该步骤具体可以包括如下至少一种情况:60.情形一、若复杂度表征值大于或者等于第二预设表征值,确定视频帧的复杂程度类型为复杂;61.情形二、若复杂度表征值小于第一预设表征值,确定视频帧的复杂程度类型为简单;或者62.情形三、若复杂度表征值大于或者等于第一预设表征值,且小于第二预设表征值,确定视频的复杂程度类型为中等。63.本实施例中以复杂程度类型为三种为例,实际应用中,也可以根据具体需求,设置更多种类的复杂程度类型,对应地,也可以设置两个以上数量的预设表征值,以确定相应的视频帧的复杂程度类型,原理相似,在此不再赘述。而且,采用该方式确定的视频的复杂程度类型非常准确。64.本实施例的第一预设表征值和第二预设表征值可以基于实际经验预先配置的,或者也可以采用多个视频帧测试序列统计分析的。65.s204、基于视频帧的复杂程度类型,配置视频帧对应的候选运动矢量数量;66.例如,若视频帧的复杂程度类型为复杂时,配置视频帧对应的候选运动矢量数量为五个;67.若视频帧的复杂程度类型为简单时,配置视频帧对应的候选运动矢量数量为两个;或者68.若视频帧的复杂程度类型为中等时,配置视频帧对应的候选运动矢量数量为三个或者四个。69.相对于现有技术的固定5个候选运动矢量,本实施例的方式,可以基于视频帧的复杂程度类型,灵活、合理地配置视频帧对应的候选运动矢量数量,避免视频帧对应的候选运动矢量数量过多,导致视频帧中的图像块的运动矢量预测时,计算量过大的技术问题。而本实施例中,可以基于视频帧的复杂程度类型,配置视频帧对应的候选运动矢量数量,使得越简单的视频帧的候选运动矢量数量越少,进而可以在预测该视频帧内的各图像块的运动矢量时,能够有效地减少计算量,缩短运动矢量的预测耗时,提高运动矢量的预测效率。70.需要说明的是,本实施例中,配置的视频帧对应的候选运动矢量数量,作为一个参数值,也需要编码写入码流中。例如,可以将该参数值写入码流的slice头。由slice的语法元素five_minus_max_num_merge_cand来表示该参数,具体的写入方法须遵照hevc标准进行,在此不再赘述。71.s205、基于候选运动矢量数量,预测视频帧中各图像块的运动矢量。72.可选地,在确定候选运动矢量数量之后,预测各图像块的运动矢量时,可以先基于候选运动矢量数量,确定该视频帧的各图像块的运动矢量候选列表;然后再基于各图像块的运动矢量候选列表,预测该图像块的运动矢量。73.具体地,本实施例的运动矢量候选列表可以包括空域运动矢量候选列表和时域运动矢量候选列表中的候选运动矢量。74.图3是本实施例提供的当前图像块的空域运动矢量候选列表选取示意图;如图3所示,图中a1表示当前图像块左边最下方的图像块,b1表示当前图像块上方最右边的图像块,b0和a0分别表示当前图像块右上方和左下方距离最近的图像块,b2表示当前图像块左上方距离最近的图像块。75.hevc标准规定,空域运动矢量候选列表最多提供4个候选mv,即最多使用上述5个候选块中的4个候选图像块的运动矢量,空域运动矢量候选列表按照a1→b1→b0→a0→(b2)的优先级顺序建立,其中,b2为候补,也就是说,当a1、b1、b0、a0中有一个或多个不存在时,则需要在空域运动矢量候选列表中使用b2的运动矢量。76.时域运动矢量候选列表的建立利用了当前图像块在邻近已编码图像中对应位置的图像块(也称为同位图像块)的运动信息。与空域情况不同,时域运动矢量候选列表中不能直接使用候选块的运动矢量,而是需要根据与参考图像的位置关系做相应的比例伸缩调整,具体的建立过程如图4所示:77.如图4所示,cur_pu表示当前图像块,col_pu为当前图像块在参考图像中的同位图像块,td表示当前图像cur_pic与参考图像cur_ref之间的距离,tb表示同位图像col_pic与col_ref之间的距离。则当前图像块的时域候选运动矢量可由下式计算:[0078][0079]其中colmv为同位图像块的运动矢量。[0080]hevc标准规定,时域运动矢量候选列表最多只提供1个候选运动矢量,具体可以由图5中h位置同位图像块的运动矢量,按照上述方式经伸缩得到。若h位置同位图像块的运动矢量不可用,则可以用c3位置的同位图像块进行替换。[0081]基于以上所述,可以得知,本实施例的空域运动矢量候选列表中包括有4个候选运动矢量,时域运动矢量候选列表中包括有1个候选运动矢量。本实施例中,基于视频帧的候选运动矢量数量,确定该视频帧的各图像块的运动矢量候选列表时,可以同时从对应图像块的空域运动矢量候选列表和时域运动矢量候选列表中获取对应数量的候选运动矢量,得到该图像块对应的运动矢量候选列表。[0082]例如,若视频帧的复杂程度类型为简单时,配置的视频帧对应的候选运动矢量数量为两个,此时对于该视频帧中的任一图像块,对应的运动矢量候选列表中可以包括从时域运动矢量候选列表中获取的1个时域候选运动矢量、和从空域运动矢量候选列表中获取的1个空域候选运动矢量。其中,1个空域候选运动矢量可以为空域运动矢量候选列表中优先级最高的。[0083]若视频帧的复杂程度类型为中等时,若配置的视频帧对应的候选运动矢量数量为三个时,此时对于该视频帧中的任一图像块,对应的运动矢量候选列表中可以包括从时域运动矢量候选列表中获取的1个时域候选运动矢量、和从空域运动矢量候选列表中获取的2个空域候选运动矢量。同理,2个空域候选运动矢量可以为空域运动矢量候选列表中优先级最高的。[0084]若视频帧的复杂程度类型为复杂时,若配置的视频帧对应的候选运动矢量数量为五个,此时对于该视频帧中的任一图像块,对应的运动矢量候选列表中可以包括从时域运动矢量候选列表中获取的1个时域候选运动矢量、和从空域运动矢量候选列表中获取的4个空域候选运动矢量。[0085]最后,基于各图像块的运动矢量候选列表,预测该图像块的运动矢量时,可以采用相关技术的方式,实现图像块的运动矢量的预测。例如,可将运动矢量候选列表中的各候选运动矢量和采用传统方式获取的该图像块的运动矢量,均作为候选运动矢量。然后计算率失真代价最小的候选运动矢量,作为预测到的当前图像块的最优运动矢量。若预测到的当前图像块的最优运动矢量为运动矢量候选列表中的某一个时,可以将当前图像块的最优运动矢量在运动矢量候选列表中的索引携带在码流中传输至解码端。[0086]在本公开的一个实施例中,在步骤s203之前,还可以包括如下步骤:[0087](1)获取多个视频帧测试序列中各视频帧测试序列对应的第一表征值和第二表征值;[0088](2)基于多个视频帧测试序列中各视频帧测试序列的第一表征值和第二表征值,获取第一预设表征值和第二预设表征值。[0089]该步骤(1)和(2)即用于实现采用多个视频帧测试序列统计分析,得到第一预设表征值和第二预设表征值的过程。[0090]本实施例的各视频帧测试序列中可以为连续的多个视频帧构成的视频。[0091]具体地,步骤(1),具体实现时,可以包括如下步骤:[0092](a)对于各视频帧测试序列,对视频帧测试序列中的各视频帧进行下采样,得到对应的下采样帧;[0093]同理,考虑到下采样帧的复杂度表征值与对应的原始视频帧的复杂度表征值可以理解为一样,为了减少计算量,可以将各视频帧测试序列中的各视频帧进行下采样,得到对应的下采样帧。[0094](b)对于各下采样帧,获取下采样帧中的各编码块;[0095]该过程为预分析阶段,在对各下采样帧划分编码块的时候,可以按照固定的大小来进行划分,例如按照16*16的大小来划分,得到各下采样帧中的编码块。[0096](c)对于各下采样帧,计算下采样帧中的各编码块的运动矢量;[0097]对于每个编码块,可以按照传统的相关的运动矢量的获取方式,获取各编码块的运动矢量mv。[0098](d)对于各下采样帧,基于下采样帧中各编码块的运动矢量,计算下采样帧中所有的编码块的运动矢量的绝对值的方差,作为下采样帧的复杂度表征值;[0099]对于同一个下采样帧,计算该下采样帧中的所有编码块的运动矢量mv的绝对值的方差,用于表征该下采样帧或者对应的原始视频帧的复杂程度,本实施例中,称为复杂度表征值。按照上述方式,对于每一个视频测试序列中的每一个下采样帧,可以请按照上述方式,获取到各下采样帧对应的复杂度表征值。[0100](e)基于视频帧测试序列的各下采样帧的复杂度表征值,按照预设的各种复杂程度类型的视频帧的数量占比,配置第一表征值和第二表征值。[0101]对于任意一个视频帧测试序列,经过分析可以发现,其中包括的视频帧的并不都是简单的,也不都是复杂的或者中等的,而是各种复杂程度类型的视频帧各占有一定的占比。例如,经过统计分析,可以得到通常情况下,视频序列中,复杂度表征值为复杂类型的视频帧可以占到20%,而复杂度表征值为中等类型的视频帧可以占到60%,而复杂度表征值为简单类型的视频帧可以占到20%,基于此,可以得知预设的各种复杂程度类型的视频帧的占比中,复杂、中等、以及简单各程度类型的视频帧的数量占比可以分别为20%、60%和20%。然后基于各下采样帧的复杂度表征值,以及预设的各种复杂程度类型的视频帧的数量占比,可以配置该视频帧测试序列对应的第一表征值和第二表征值,如可以记为t1和t2,t2大于t1。也就是说,该第一表征值t1和第二表征值t2作为两个门限值,根据该视频帧测试序列中的各视频帧的复杂度表征值,将各视频帧划分到相应的复杂程度类型中,划分后,正好可以使得复杂、中等、以及简单各程度类型的视频帧的数量占比分别为20%、60%和20%。[0102]此时,对应地,步骤(2),具体可以包括:取多个视频帧测试序列中的各视频帧测试序列的第一表征值的平均,作为第一预设表征值;同理,取多个视频帧测试序列中的各视频帧测试序列的第二表征值的平均,作为第二预设表征值。[0103]具体地,按照上述方式,对于多个视频帧测试序列中的每个视频帧测试序列,均可以按照上述方式获取到第一表征值和第二表征值。多个视频帧测试序列,对应第,可以得到多个第一表征值和多个第二表征值。然后可以取多个第一表征值的平均作为第一预设表征值。同理,可以取多个第二表征值的平均,作为第二预设表征值。[0104]实际应用中,也可以基于多个视频帧测试序列中的各视频帧测试序列的第一表征值,采用其他数学计算方式,获取第一预设表征值,同理,也可以采用同样的方式获取第二预设表征值,在此不再赘述。[0105]通过采用上述方式,可以获取到非常合理,准确地第一预设表征值和第二预设表征值,进而可以基于确定的第一预设表征值和第二预设表征值,非常准确地确定视频帧的复杂程度类型。[0106]例如,现有技术中,候选mv数量固定都是5时,会导致mv预测时,简单的图像块的mv的预测时计算量过大,导致mv预测耗时较长,预测效率低下。[0107]与现有技术相比,本实施例的运动矢量的预测方法,可以基于视频帧的复杂度表征值,灵活、准确地配置该视频帧对应的候选运动矢量数量,进而基于该候选运动矢量数量,预测该视频帧中各图像块的运动矢量,能够有效的避免图像块的运动矢量的预测过程中不必要的计算量,减少不必要的预测耗时,有效地提高运动矢量的预测效率,进而也可以有效地提高视频编码效率。[0108]图6是根据本公开第三实施例的示意图;如图6所示,本实施例提供一种运动矢量的预测装置600,包括:[0109]第一获取模块601,用于获取待编码的视频帧的复杂度表征值;[0110]配置模块602,用于基于所述复杂度表征值,配置所述视频帧对应的候选运动矢量数量,使得所述视频帧的所述复杂度表征值越小,配置的对应的所述候选运动矢量的数量越少;[0111]预测模块603,用于基于所述候选运动矢量数量,预测所述视频帧中各图像块的运动矢量。[0112]本实施例的运动矢量的预测装置600,通过采用上述模块实现运动矢量的预测的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。[0113]图7是根据本公开第四实施例的示意图;如图7所示,本实施例提供一种运动矢量的预测装置700,包括上述图6所示的同名同功能模块,第一获取模块701、配置模块702和预测模块703。[0114]在本公开的一个实施例中,第一获取模块701,用于:[0115]获取所述视频帧中各图像块的运动矢量;[0116]基于所述视频帧中各所述图像块的运动矢量,计算所述视频帧中所有图像块的运动矢量的绝对值的方差的总和,作为所述视频帧的复杂度表征值。[0117]在本公开的一个实施例中,配置模块702,用于:[0118]基于所述复杂度表征值、第一预设表征值和第二预设表征值,确定所述视频帧的复杂程度类型;所述第二预设表征值大于所述第一预设表征值;[0119]基于所述视频帧的复杂程度类型,配置所述视频帧对应的候选运动矢量数量。[0120]在本公开的一个实施例中,配置模块702,用于:[0121]若所述复杂度表征值大于或者等于所述第二预设表征值,确定所述视频帧的复杂程度类型为复杂;[0122]若所述复杂度表征值小于所述第一预设表征值,确定所述视频帧的复杂程度类型为简单;或者[0123]若所述复杂度表征值大于或者等于所述第一预设表征值,且小于所述第二预设表征值,确定所述视频的复杂程度类型为中等。[0124]在本公开的一个实施例中,配置模块702,用于:[0125]若所述视频帧的复杂程度类型为复杂时,配置所述视频帧对应的候选运动矢量数量为五个;[0126]若所述视频帧的复杂程度类型为简单时,配置所述视频帧对应的候选运动矢量数量为两个;或者[0127]若所述视频帧的复杂程度类型为中等时,配置所述视频帧对应的候选运动矢量数量为三个或者四个。[0128]如图7所示,在本公开的一个实施例中,运动矢量的预测装置700,还可以包括:[0129]第二获取模块704,用于获取多个视频帧测试序列中各所述视频帧测试序列对应的第一表征值和第二表征值;[0130]第三获取模块705,用于基于所述多个视频帧测试序列中各所述视频帧测试序列的第一表征值和所述第二表征值,获取所述第一预设表征值和所述第二预设表征值。[0131]在本公开的一个实施例中,第二获取模块704,用于:[0132]对于各所述视频帧测试序列,对所述视频帧测试序列中的各所述视频帧进行下采样,得到对应的下采样帧;[0133]对于各所述下采样帧,获取所述下采样帧中的各编码块;[0134]对于各所述下采样帧,计算所述下采样帧中的各所述编码块的运动矢量;[0135]对于各所述下采样帧,基于所述下采样帧中各所述编码块的运动矢量,计算所述下采样帧中所有的所述编码块的运动矢量的绝对值的方差,作为所述下采样帧的复杂度表征值;[0136]基于所述视频帧测试序列的各所述下采样帧的复杂度表征值,按照预设的各种复杂程度类型的视频帧的数量占比,配置所述第一表征值和所述第二表征值。[0137]在本公开的一个实施例中,第三获取模块705,用于:[0138]取所述多个视频帧测试序列中的各所述视频帧测试序列的第一表征值的平均,作为所述第一预设表征值;[0139]取所述多个视频帧测试序列中的各所述视频帧测试序列的第二表征值的平均,作为所述第二预设表征值。[0140]本实施例的运动矢量的预测装置700,通过采用上述模块实现运动矢量的预测的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。[0141]本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。[0142]根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。[0143]图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。[0144]如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。[0145]设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0146]计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如本公开的上述方法。例如,在一些实施例中,本公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram803并由计算单元801执行时,可以执行上文描述的本公开的上述方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的上述方法。[0147]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0148]用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0149]在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0150]为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0151]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。[0152]计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。[0153]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。[0154]上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1