首页 / 专利库 / 广播 / 帧内预测 / 一种最大编码单元的编码模式的确定方法和装置

一种最大编码单元的编码模式的确定方法和装置

阅读:2发布:2020-07-31

专利汇可以提供一种最大编码单元的编码模式的确定方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种最大编码单元的编码模式的确定方法和装置,涉及视频 图像处理 领域,用以提高确定最大编码单元的编码模式的准确率。在本发明实施例中,获取待编码图像 帧 ,确定所述待编码图像帧的最大编码单元;针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一 位置 的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;对于采用已确定的划分方式对每个最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式;从而解决了上述问题。,下面是一种最大编码单元的编码模式的确定方法和装置专利的具体信息内容。

1.一种最大编码单元的编码模式的确定方法,其特征在于,该方法包括:
获取待编码图像,确定所述待编码图像帧的最大编码单元;
针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;
对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式;
所述利用递归的方式依次计算各个层的每个编码单元的代价,具体包括:
对各个层的每个编码单元进行整像素运动搜索,将搜索得到的整像素运动矢量作为第一运动搜索结果,并利用所述第一运动搜索结果计算该编码单元的帧间预测模式的代价;
获取该编码单元在空间上的预设位置的相邻编码单元的预测模式;
判断所述相邻编码单元中是否存在至少一个帧内预测模式的编码单元,若是,则计算该编码单元的帧内预测模式的代价,并选取计算得到的帧间预测模式的代价和帧内预测模式的代价中最小的取值作为该编码单元的代价;否则,将计算得到的帧间预测模式的代价作为该编码单元的代价。
2.如权利要求1所述的确定方法,其特征在于,所述利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式,具体为:
对于所述最大编码单元中除所述最大编码单元所在层以外的各个层,以由下至上的顺序,按照如下方式处理:
比较本层的4个编码单元的代价和以及上一层与所述4个编码单元处于同一位置的编码单元的代价之间的大小关系,若所述本层的4个编码单元的代价和较小,则对上一层与所述4个编码单元处于同一位置的编码单元进行分割,并将所述本层的4个编码单元的代价和作为上一层与所述4个编码单元处于同一位置的编码单元的代价;否则,不对上一层与所述
4个编码单元处于同一位置的编码单元进行分割;
其中,所述4个编码单元为4个相邻且为2x2结构的编码单元。
3.如权利要求1所述的确定方法,其特征在于,所述获取该编码单元在空间上的相邻编码单元的预测模式,包括:
按照由下至上的顺序,依次从所述编码单元所在层级至所述最大编码单元所在层级,判断是否能获取到包含有所述编码单元的编码单元在空间上的相邻编码单元的预测模式,将获取到的、与所述编码单元所在层级最接近层的相邻编码单元的预测模式,作为所述编码单元的相邻编码单元的预测模式。
4.如权利要求1所述的确定方法,其特征在于,所述获取该编码单元在空间上的相邻编码单元的预测模式,包括:
如果与所述编码单元处于同一层的相邻编码单元是以串行方式进行处理,则获取与所述编码单元处于同一层的相邻编码单元的预测模式;
如果与所述编码单元处于同一层的相邻编码单元是以并行方式进行处理,则获取与所述编码单元所在层最接近层的、且以串行方式处理的相邻编码单元的预测模式。
5.如权利要求1所述的确定方法,其特征在于,所述确定所述划分后的每个编码单元的预测模式,具体包括:
对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,对所述整像素运动矢量进行分像素运动搜索,将搜索得到的分像素运动矢量作为第二运动搜索结果,利用所述第二运动搜索结果计算该编码单元的帧间预测模式的代价;并计算该编码单元的帧内预测模式的代价;
比较计算出的该编码单元的帧间预测模式的代价和帧内预测模式的代价之间的大小关系,若该编码单元的帧间预测模式的代价小于该编码单元的帧内预测模式的代价,则将该编码单元的预测模式确定为帧间预测模式;否则,将该编码单元的预测模式确定为帧内预测模式。
6.如权利要求1-5中任一项所述的确定方法,其特征在于,根据如下公式一计算该编码单元的帧间预测模式的代价;根据如下公式二计算该编码单元的帧内预测模式的代价;
所述公式一为:cost_inter=D+λR
所述公式二为:cost_intra=ω*(D+λR)
其中,所述cost_inter为帧间预测模式的代价;D为均方差和SSD、绝对误差和SAD、绝对误差变换和SATD中的任意一种;R为不同模式对应的编码比特数;λ为预设系数;ω为预设权重值,ω的取值可调且0.9≤ω≤1.1。
7.一种最大编码单元的编码模式的确定装置,其特征在于,该装置包括:
图像采集,获取待编码图像帧,确定所述待编码图像帧的最大编码单元;
划分模块,用于针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;
预测模块,用于对于采用已确定的划分方式对每个最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式;
所述划分模块具体用于:
对各个层的每个编码单元进行整像素运动搜索,将搜索得到的整像素运动矢量作为第一运动搜索结果,并利用所述第一运动搜索结果计算该编码单元的帧间预测模式的代价;
获取该编码单元在空间上的预设位置的相邻编码单元的预测模式;
判断所述相邻编码单元中是否存在至少一个帧内预测模式的编码单元,若是,则计算该编码单元的帧内预测模式的代价,并选取计算得到的帧间预测模式的代价和帧内预测模式的代价中最小的取值作为该编码单元的代价;否则,将计算得到的帧间预测模式的代价作为该编码单元的代价。
8.如权利要求7所述的确定装置,其特征在于,所述划分模块具体用于:
对于所述最大编码单元中除所述最大编码单元所在层以外的各个层,以由下至上的顺序,按照如下方式处理:
比较本层的4个编码单元的代价和以及上一层与所述4个编码单元处于同一位置的编码单元的代价之间的大小关系,若所述本层的4个编码单元的代价和较小,则对上一层与所述4个编码单元处于同一位置的编码单元进行分割,并将所述本层的4个编码单元的代价和作为上一层与所述4个编码单元处于同一位置的编码单元的代价;否则,不对上一层与所述
4个编码单元处于同一位置的编码单元进行分割;
其中,所述4个编码单元为4个相邻且为2x2结构的编码单元。
9.如权利要求7所述的确定装置,其特征在于,所述划分模块具体用于:
按照由下至上的顺序,依次从所述编码单元所在层级至所述最大编码单元所在层级,判断是否能获取到包含有所述编码单元的编码单元在空间上的相邻编码单元的预测模式,将获取到的、与所述编码单元所在层级最接近层的相邻编码单元的预测模式,作为所述编码单元的相邻编码单元的预测模式。
10.如权利要求7所述的确定装置,其特征在于,所述划分模块具体用于:
当与所述编码单元处于同一层的相邻编码单元是以串行方式进行处理时,获取与所述编码单元处于同一层的相邻编码单元的预测模式;
当与所述编码单元处于同一层的相邻编码单元是以并行方式进行处理时,获取与所述编码单元所在层最接近层的、且以串行方式处理的相邻编码单元的预测模式。
11.如权利要求7所述的确定装置,其特征在于,所述预测模块具体用于:
对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,对所述整像素运动矢量进行分像素运动搜索,将搜索得到的分像素运动矢量作为第二运动搜索结果,利用所述第二运动搜索结果计算该编码单元的帧间预测模式的代价;并计算该编码单元的帧内预测模式的代价;
比较计算出的该编码单元的帧间预测模式的代价和帧内预测模式的代价之间的大小关系,若该编码单元的帧间预测模式的代价小于该编码单元的帧内预测模式的代价,则将该编码单元的预测模式确定为帧间预测模式;否则,将该编码单元的预测模式确定为帧内预测模式。
12.如权利要求7-11中任一项所述的确定装置,其特征在于,根据如下公式一计算该编码单元的帧间预测模式的代价;根据如下公式二计算该编码单元的帧内预测模式的代价;
所述公式一为:cost_inter=D+λR
所述公式二为:cost_intra=ω*(D+λR)
其中,所述cost_inter为帧间预测模式的代价;D为均方差和SSD、绝对误差和SAD、绝对误差变换和SATD中的任意一种;R为不同模式对应的编码比特数;λ为预设系数;ω为预设权重值,ω的取值可调且0.9≤ω≤1.1。

说明书全文

一种最大编码单元的编码模式的确定方法和装置

技术领域

[0001] 本发明涉及视频图像处理领域,尤其涉及一种最大编码单元的编码模式的确定方法和装置。

背景技术

[0002] HEVC(High Efficiency Video Coding)是由国际电信联盟(ITU-T)视频编码专家组和国际标准化组织/国际电工委员会(ISO/IEC)运动图像专家组组成的联合视频编解码组(Joint Collaborative Team on Video Coding,JCT-VC)开发的新一代视频编解码标准。其编码效率大大优于以前的标准,HEVC实现高编码效率的一个重要方法是采用灵活的四叉树结构。HEVC采用最大可到64x64尺寸的最大编码单元(Large Coding Unit,LCU),每个最大编码单元可以进行递归划分成一个或多个编码单元(coding Unit,CU);在递归划分时,下一层的编码单元称为相同位置的上一层编码单元的子编码单元,一个编码单元的预测模式可以是内预测(Intra Prediction)或者帧间预测(Inter Prediction),每个编码单元可以划分成一个或者多个预测单元(Prediction Unit,PU),每个预测单元包含了各自的预测信息。其中,帧内预测是利用当前帧内已经编码的编码单元的信息来预测当前编码单元的方式;而帧间预测是利用已经编码的帧的编码信息来预测当前帧的编码单元的方式。
[0003] HEVC选择最大编码单元的最优编码方式时,包括确定最大编码单元的划分方式和确定每个编码单元的预测模式,JCT-VC给出的参考软件在确定最大编码单元的最优编码方式时,通过递归遍历所有层中的所有编码单元,分别计算每个编码单元在最优预测模式下的代价,然后通过不同层之间的代价比较,确定最大编码单元的划分。
[0004] 现有技术中,确定最大编码单元模式的方法可以具体为:通过整像素运动信息,先确定至少一层的最大编码单元的可选层次,然后对在该可选层次内的编码单元进行编码。
[0005] 可见,现有技术存在如下缺陷
[0006] 1、现有技术中通过整像素运动信息确定至少一个最大编码单元的可选层次,但是没有具体确定其最大编码单元的划分方式,其划分方式需要在后期进行处理时才能确定。如果确定的层次较多,那后期对所选择的层次的编码的计算量依然很大;如果确定的层次较少,会使得最大编码单元的划分层次不丰富,即一个最大编码单元内的编码单元都集中在一层或少许几层,这会使得对最大编码单元的划分不准确。
[0007] 2、现有技术中采用整像素运动信息去确定编码单元的可选层次,而运动信息只用于帧间预测,而实际图像中很多编码单元适合采用帧内预测编码,因此对于部分编码,用运动信息去确定可选层次就变得意义不大。
[0008] 综上所述,利用现有技术确定最大编码单元的最优编码模式的方案准确率较低、且计算量较大。

发明内容

[0009] 本发明实施例提供一种最大编码单元的编码模式的确定方法和装置,用以提高确定最大编码单元的编码模式的准确率。
[0010] 本发明实施例提供一种最大编码单元的编码模式的确定方法,该方法包括:
[0011] 获取待编码图像帧,确定所述待编码图像帧的最大编码单元;
[0012] 针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;
[0013] 对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式。
[0014] 本发明实施例提供一种最大编码单元的编码模式的确定装置,该装置包括:
[0015] 图像采集模块,获取待编码图像帧,确定所述待编码图像帧的最大编码单元;
[0016] 划分模块,用于针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;
[0017] 预测模块,用于对于采用已确定的划分方式对每个最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式。
[0018] 从上述技术方案可以看出,一方面,本发明实施例根据最大编码单元中的各层的每个编码单元的代价确定编码单元的划分方式,而不是仅仅根据一层或几层的编码单元的代价确定编码单元的划分方式;另一方面,本发明实施例在确定编码单元的代价时,由于图像中部分编码单元适合采用帧内预测模式,因此需要分别确定各编码单元的所需预测模式的代价,而不是对所有编码单元均采用帧间预测模式的代价,从而提高了最大编码单元划分方式确定时的准确率;同时,本发明实施例采用并行方式进行最大编码单元的划分和预测模式的确定,从而提高了处理速率。附图说明
[0019] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1为本发明实施例提供的一种最大编码单元编码模式的处理方法的流程示意图;
[0021] 图2为本发明实施例提供的计算单个编码单元的代价的流程的示意图;
[0022] 图3为本发明实施例提供的一个最大编码单元中当前编码单元的各相邻编码单元的示意图;
[0023] 图4为本发明实施例提供的一种最大编码单元的划分结构的示意图;
[0024] 图5为本发明实施例提供的一种最大编码单元分割下的层示意图;
[0025] 图6为本发明实施例提供的各个层的每个编码单元的结构示意图;
[0026] 图7为本发明实施例提供的预测模式的确定的流程的示意图;
[0027] 图8示出了本发明实施例的一种最大编码单元流线处理方式的示意图[0028] 图9为本发明实施例提供的最大编码单元的编码模式的确定方法的流程示意图;
[0029] 图10为本发明实施例提供的最大编码单元的编码模式的确定装置的结构示意图。

具体实施方式

[0030] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0031] 本发明实施例可以应用于对视频图像进行编码的应用场景,尤其适用于对视频图像中的各编码单元进行并行化处理的应用场景。一方面,为了提高并行化处理能,本发明实施例提出了在确定最大编码单元划分时,对不同层之间或同一编码单元内的多个子编码单元可采用并行化处理的方式。另一方面,本发明实施例中把确定最大编码单元划分方式时获得的整像素运动矢量作为确定预测模式时分像素运动搜索的搜索起始点,这样可以避免多次进行整像素运动搜索,因此不会增加编码时间。
[0032] 下面对本发明实施例进行详细描述。
[0033] 图1示出了本发明实施例提供的一种最大编码单元编码模式的处理方法的流程示意图,如图1所示,该方法可以包括:
[0034] 步骤11:开始一个最大编码单元的模式选择。
[0035] 步骤12:计算所有层的每个编码单元的代价,再根据不同层之间的代价比较,确定最大编码单元的划分方式。
[0036] 需要说明的是,本发明实施例对于最大编码单元的不同层级之间的各编码单元均可以进行并行化处理的方式。
[0037] 具体实现时,图2示出了本发明实施例提供的计算单个编码单元的代价的流程的示意图,如图2所示,该流程可以通过如下步骤实现:
[0038] S11:获取当前编码单元在空间上的预设位置的相邻编码单元的预测模式,其在空间上的预设位置的相邻编码单元包括当前编码单元左下、左边、左上、上边、右上方向的编码单元。
[0039] S12:通过相邻编码单元的预测模式,确定获得当前编码单元最小代价时所需要计算的预测模式。
[0040] 需要说明的是,本发明实施例可以根据并行化的方式来获取相邻编码单元的预测模式,进一步确定获得当前编码单元最小代价时所需要计算的预测模式。
[0041] 具体的,如果相邻编码单元有帧内编码单元,则计算当前编码单元的帧内预测模式、帧间预测模式的代价;如果相邻编码单元没有帧内编码单元,则计算当前编码单元的帧间预测模式的代价。
[0042] 具体实现时,本发明实施例能够通过判断相邻位置编码单元的预测模式,选择性的计算帧内预测模式的代价的方式,使得计算量减少。具体的,依次判断当前编码单元的左方、左下方、上方、右上方、左上方的所在位置的编码单元的预测模式,若存在至少一个相邻的编码单元采用帧内预测,则计算当前编码单元内的帧内预测代价;否则,不需要计算当前编码单元的帧内预测模式的代价。
[0043] 具体的,可以通过如下步骤计算各个层的每个编码单元的帧间模式的代价:
[0044] 首先,对各个层的每个编码单元进行整像素运动搜索,将搜索得到的整像素运动矢量作为搜索得到的运动矢量(即,第一运动搜索结果)。
[0045] 然后,利用搜索得到的运动矢量(即,第一运动搜索结果),计算该编码单元的帧间预测模式的代价。
[0046] 对各个层的每个编码单元执行如上步骤,从而得到各个层的每个编码单元的帧间模式的代价。
[0047] S13:通过得到的当前编码单元的预测模式的代价,选取最小的预测模式代价作为当前编码单元的代价。即,如果当前编码单元计算了帧内预测代价cost_intra,同时也计算了帧间预测代价cost_inter,则该当前编码单元的最小代价为MIN(cost_intra,cost_inter);否则,该当前编码单元的代价为cost_inter。其中MIN(a,b)表示取a和b中取值较小的取值。
[0048] 具体实现时,本发明实施例在计算当前编码单元的帧内预测的代价时,可以通过减少帧内预测方向来减少其计算量。
[0049] 具体的,在计算帧间预测的代价时,代价的计算公式为cost_inter=D+λR。D可以是均方差和(SSE)、绝对误差和(SAD)、绝对误差变换和(SATD)中的一种,R为特定模式下所需要的编码比特数。
[0050] 具体的,由于帧间预测在获得相邻编码单元的运动信息时,获得的有可能是整像素运动信息,因此其计算的代价会和采用分像素运动信息时的代价有差异。帧内预测时,其获得的相邻像素值有可能是用整像素运动信息得到的,因此也和采用分像素运动信息时得到的代价有差异。但帧内预测和帧间预测计算得到的代价的差异的权重会不同,因此在比较两者代价时,可以在帧内的代价上乘以一个权重值,即cost_intra=ω*(D+λR),其中,权重值ω可以根据实际调整,其取值范围在0.9到1.1范围。
[0051] 需要说明的是,本发明实施例对于最大编码单元的不同层级之间或同一个编码单元内的4个子编码单元均可以进行并行化处理的方式。其具体做法是需要去除同一时间处理的编码单元之间的依赖性。也就是说,对于同一个编码单元内的4个子编码单元,通过共同利用上一层编码单元的相邻信息,如果上一层和当前层是同时处理的,则利用再上一层的编码单元的相邻信息,依次类推,直到利用最大编码单元的相邻信息。
[0052] 下面以任一最大编码单元为64x64的图像帧进行举例说明,图3示出了该图像帧中任意一个最大编码单元中当前编码单元的各相邻编码单元的示意图,如图3所示,在本发明实施例中,若最大编码单元为64x64,则将图中最大框(最大单元)确定为64x64的最大编码单元,图中最小框(最小单元)为8x8,标注有“当前编码单元”的单元为当前编码单元。对同一个16x16编码块内的4个8x8块进行并行化处理时,当要获取如图所示的“当前编码单元”内的预测单元的相邻信息时,如果16x16的编码块按照串行处理,那么在获取相邻信息时,获取图3中标有“A”的相邻编码单元的信息;否则,若16x16块和8x8同时并行处理,32x32块串行处理,那么在获取相邻信息时,获取图3中标有“B”的相邻编码单元的信息;否则,如果32x32、16x16、8x8都同时并行处理,那么在获取相邻信息时,获取图3中标有“C”的相邻编码单元的信息。
[0053] S14:通过不同层之间的代价比较,确定最大编码单元的划分。
[0054] 具体的,在本发明实施例中,代价的比较过程从下层一直往上层比较,直到与最大编码单元所在层位置进行比较;图4示出了本发明实施例提供的一种最大编码单元的划分结构的示意图,图5示出了本发明实施例提供的一种最大编码单元分割下的层示意图;其中,以64x64的编码单元作为最大编码单元,第0层是最大编码单元所在层,第1层是对最大编码单元进行2x2划分后的编码单元所在层,依次类推;图6示出了本发明实施例提供的各个层的每个编码单元的结构示意图,其中,以64x64的编码单元作为最大编码单元,最大编码单元的标号为1,将最大编码单元进行2x2划分后的4个编码单元的标号分别为2、23、44和65,将标号为2的编码单元进行2x2划分后的4个编码单元的标号分别为3、8、13、和18,并将其他编码单元按照如上规则进行递归遍历得到如图6所示的各个编码单元。
[0055] 举例来说,参见图4和图5,本发明实施例给出相邻层级之间的代价比较过程的一种具体实现方式,其中以16x16大小的编码单元和下一层4个相同位置的8x8大小的编码单元之间代价的比较为例进行说明:将16x16大小的编码单元的代价记为cost16x16;将8x8大小的编码单元的代价记为cost8x8,并将与16x16大小的编码单元处于相同位置的4个8x8编码单元代价的和记为sum4_cost8x8。如果cost16x16>sum4_cost8x8,那么需要对该16x16编码单元进行分割;否则,不对该16x16编码单元进行划分,并且将new_cost16x16作为该16x16编码单元的代价进行更新,即new_cost16x16=MIN(cost16x16,sum4_cost8x8);然后再以4个new_cost16x16和相同位置的cost32x32进行比较,依次比较到最大编码单元,最终得到最大编码单元的划分方式。
[0056] 再举例来说,参见图6,最大正方形为最大编码单元(64x64),从左到右依次为同一个最大编码单元在不同划分层下的示意图,其所标的数字即为计算代价的顺序。
[0057] 从图6中可知,当计算完编码单元7(标号为7的编码单元,以下简称编码单元7,需要说明的是,为了描述方便,以下将标号为n的编码单元简称为编码单元n,在图6中1≤n≤85)的代价时,可以把编码单元4+编码单元5+编码单元6+编码单元7的代价和与编码单元3的代价进行比较,然后把min_cost1作为该16x16所在位置的代价(即,编码单元4+编码单元
5+编码单元6+编码单元7的代价和与编码单元3的代价中较小的代价);用同样的方法可以把编码单元9+编码单元10+编码单元11+编码单元12的代价和与编码单元8的代价进行比较,并用同样的方法可以把编码单元14+编码单元15+编码单元16+编码单元17的代价和与编码单元13的代价进行比较……,依次得到min_cost2(即,编码单元9+编码单元10+编码单元11+编码单元12的代价和与编码单元8的代价中较小的代价),min_cost3(编码单元14+编码单元15+编码单元16+编码单元17的代价和与编码单元13的代价中较小的代价),min_cost4……并依次类推,这里不再赘述。
[0058] 当计算完编码单元22时,可以把min_cost1+min_cost2+min_cost3+min_cost4的和与编码块2的代价进行比较,并把较小者作为该32x32所在位置的代价,记为min_cost1a,……用同样的方法可以计算编码单元23,编码单元44,编码单元65所在块位置的较小代价,记为min_cost2a,min_cost3a,min_cost4a。
[0059] 最后可把min_cost1a+min_cost2a+min_cost3a+min_cost4a的代价和与编码块1的代价进行比较,并将两者中较小的代价作为编码块1(即该最大编码单元)的代价,此时完成一个最大编码单元的代价比较。
[0060] 继续参照图6,并通过如下步骤确定最大编码单元的划分:
[0061] 若编码单元1(即最大编码单元)的代价小于编码单元2+编码单元23+编码单元44+编码单元65的代价和,那么该最大编码单元的划分就是一整块64x64;
[0062] 否则,若编码单元2的代价小于编码单元3+编码单元8+编码单元13+编码单元18的代价和,那么编码单元2所在位置就不需要再向下划分了;
[0063] 否则,若编码单元3的代价小于编码单元4+编码单元5+编码单元6+编码单元7的代价和,那么编码单元3所在位置就不需要再向下划分了;
[0064] 否则,编码单元3所在位置就被划分成编码单元4、编码单元5、编码单元6、编码单元7,即编码单元3所在位置的16x16被划分成4个8x8块;
[0065] 对于其它位置,划分依据类似,这里不再赘述。
[0066] 这样,通过上述步骤可以确定出最优的划分方式。
[0067] 步骤13:对通过步骤12确定出的划分方式下的每个编码单元进行预测模式的确定。
[0068] 具体实现时,图7示出了本发明实施例提供的预测模式的确定的流程的示意图,如图7所示,该流程可以通过如下步骤实现:
[0069] 步骤S31:对于采用已确定的划分方式对每个最大编码单元进行划分得到的每个编码单元,计算该编码单元的帧内预测模式的代价。
[0070] 步骤S32~步骤S33:通过利用预先保存的该编码单元的整像素运动矢量来计算帧间预测模式的代价,并和计算出的该编码单元的帧内预测模式的代价进行比较,若该编码单元的帧间预测模式的代价小于该编码单元的帧内预测模式的代价,则执行步骤S34;若该编码单元的帧间预测模式的代价大于该编码单元的帧内预测模式的代价,则执行步骤S35。
[0071] 具体实现时,可以通过如下步骤计算已划分的编码单元的帧内模式的代价:
[0072] 首先,获取在上述步骤S12中计算各个层的每个编码单元的帧间模式的代价时所保存的上述已划分的编码单元的整像素运动矢量(即,第一运动搜索结果)。
[0073] 然后,对已划分的编码单元的整像素运动矢量(即,第一运动搜索结果)进行分像素运动搜索,将搜索得到的分像素运动矢量作为搜索得到的运动矢量(即,第二运动搜索结果)。
[0074] 之后,利用搜索得到的运动矢量(即,第二运动搜索结果),计算该编码单元的帧内预测模式的代价。
[0075] 对已划分的各编码单元执行如上步骤,从而得到已划分的各编码单元的帧内模式的代价。
[0076] 可见,本发明实施例中把确定最大编码单元划分方式时获得的整像素运动矢量作为确定预测模式时分像素运动搜索的搜索起始点,这样可以避免多次进行整像素运动搜索,因此不会增加编码时间,提高了并行处理效率。
[0077] 步骤S34:将该编码单元的预测模式确定为帧间预测模式。
[0078] 步骤S35:将该编码单元的预测模式确定为帧内预测模式。
[0079] 这样,对已划分后的最大编码单元内的每个编码单元,分别进行帧内、帧间预测,得到不同预测模式下的代价,通过比较,把代价最小的预测模式作为最后编码单元的预测模式。可见,帧间预测是不需要再进行整像素运动搜索,可以直接以确定最大编码单元时获得的整像素运动矢量作为分像素运动搜索的起点。
[0080] 步骤14:完成一个最大编码单元的预测模式的选择。
[0081] 可选的,在执行步骤14之后,可以根据已划分的编码单元和已确定的预测模式进行编码。
[0082] 进一步的,图8示出了本发明实施例的一种最大编码单元流水线处理方式的示意图,在图像编码装置中的芯片设计时,可以把确定最大编码单元的划分方式和确定每个编码单元的预测模式按照流水线形式进行处理。其流水线示意图8如下所示,相同填充方式表示同一个最大编码单元。采用流水线处理方式,可以提高芯片设计时的并行化计算能力。
[0083] 可见,本发明实施例不仅可以对4个8x8的编码块进行并行处理,还可以对8x8和16x16的编码块同时进行并行处理,以此类推。综上来说,本发明实施例可以对同一层的4个编码单元进行并行处理,还可以对不同层之间的编码单元进行并行处理,从而确定出了最大编码单元的最优编码模式,提高了处理效率。
[0084] 从上述技术方案可以看出,一方面,本发明实施例根据最大编码单元中的各层的每个编码单元的代价确定编码单元的划分方式,而不是仅仅根据一层或几层的编码单元的代价确定编码单元的划分方式;另一方面,本发明实施例在确定编码单元的代价时,由于图像中部分编码单元适合采用帧内预测模式,因此需要分别确定各编码单元的所需预测模式的代价,而不是对所有编码单元均采用帧间预测模式的代价,从而提高了最大编码单元划分方式的准确率;同时,本发明实施例采用并行方式进行最大编码单元的划分和预测模式的确定,从而提高了处理速率。
[0085] 基于相同的技术构思,本发明实施例还提供一种最大编码单元的编码模式的确定方法,图9示出了本发明实施例提供的最大编码单元的编码模式的确定方法的流程示意图,如图9所示,该方法可以包括:
[0086] 步骤91:获取待编码图像帧,确定所述待编码图像帧的最大编码单元;
[0087] 步骤92:针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;
[0088] 步骤93:对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式。
[0089] 可选的,在上述步骤92中,对各个层的每个编码单元进行整像素运动搜索,将搜索得到的整像素运动矢量作为第一运动搜索结果,并利用所述第一运动搜索结果计算该编码单元的帧间预测模式的代价;获取该编码单元在空间上的预设位置的相邻编码单元的预测模式;判断所述相邻编码单元中是否存在至少一个帧内预测模式的编码单元,若是,则计算该编码单元的帧内预测模式的代价,并选取计算得到的帧间预测模式的代价和帧内预测模式的代价中最小的取值作为该编码单元的代价;否则,将计算得到的帧间预测模式的代价作为该编码单元的代价。
[0090] 可选的,在上述步骤92中,对于所述最大编码单元中除所述最大编码单元所在层以外的各个层,以由下至上的顺序,按照如下方式处理:比较本层的4个编码单元的代价和以及上一层与所述4个编码单元处于同一位置的编码单元的代价之间的大小关系,若所述本层的4个编码单元的代价和较小,则对上一层与所述4个编码单元处于同一位置的编码单元进行分割,并将所述本层的4个编码单元的代价和作为上一层与所述4个编码单元处于同一位置的编码单元的代价;否则,不对上一层与所述4个编码单元处于同一位置的编码单元进行分割;其中,所述4个编码单元为4个相邻且为2x2结构的编码单元。
[0091] 可选的,在上述步骤中,按照由下至上的顺序,依次从所述编码单元所在层级至所述最大编码单元所在层级,判断是否能获取到包含有所述编码单元的编码单元在空间上的相邻编码单元的预测模式,将获取到的、与所述编码单元所在层级最接近层的相邻编码单元的预测模式,作为所述编码单元的相邻编码单元的预测模式。
[0092] 可选的,在上述步骤中,如果与所述编码单元处于同一层的相邻编码单元是以串行方式进行处理,则获取与所述编码单元处于同一层的相邻编码单元的预测模式;如果与所述编码单元处于同一层的相邻编码单元是以并行方式进行处理,则获取与所述编码单元所在层最接近层的、且以串行方式处理的相邻编码单元的预测模式。
[0093] 可选的,在上述步骤93中,对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,对所述整像素运动矢量进行分像素运动搜索,将搜索得到的分像素运动矢量作为第二运动搜索结果,利用所述第二运动搜索结果计算该编码单元的帧间预测模式的代价;并计算该编码单元的帧内预测模式的代价;比较计算出的该编码单元的帧间预测模式的代价和帧内预测模式的代价之间的大小关系,若该编码单元的帧间预测模式的代价小于该编码单元的帧内预测模式的代价,则将该编码单元的预测模式确定为帧间预测模式;否则,将该编码单元的预测模式确定为帧内预测模式。
[0094] 可选的,在上述步骤91~步骤93中,根据如下公式一计算该编码单元的帧间预测模式的代价;根据如下公式二计算该编码单元的帧内预测模式的代价;所述公式一为:cost_inter=D+λR所述公式二为:cost_intra=ω*(D+λR)其中,所述cost_inter为帧间预测模式的代价;D为均方差和SSD、绝对误差和SAD、绝对误差变换和SATD中的任意一种;R为不同模式对应的编码比特数;λ为预设系数;ω为预设权重值,ω的取值可调且0.9≤ω≤
1.1。
[0095] 基于相同的技术构思,本发明实施例还提供一种最大编码单元的编码模式的确定装置,图10示出了本发明实施例提供的最大编码单元的编码模式的确定装置的结构示意图,如图10所示,该装置可以包括:
[0096] 图像采集模块101,获取待编码图像帧,确定所述待编码图像帧的最大编码单元;
[0097] 划分模块102,用于针对所述最大编码单元按照如下方式处理:利用递归的方式依次计算所述最大编码单元中各个层的每个编码单元的代价;将处于不同层但处于同一位置的各编码单元的代价中最小值对应的划分方式确定为该最大编码单元的划分方式;
[0098] 预测模块103,用于对于采用已确定的划分方式对每个最大编码单元进行划分得到的每个编码单元,分别确定所述划分后的每个编码单元的预测模式。
[0099] 可选的,所述划分模块102具体用于:对各个层的每个编码单元进行整像素运动搜索,将搜索得到的整像素运动矢量作为第一运动搜索结果,并利用所述第一运动搜索结果计算该编码单元的帧间预测模式的代价;获取该编码单元在空间上的预设位置的相邻编码单元的预测模式;判断所述相邻编码单元中是否存在至少一个帧内预测模式的编码单元,若是,则计算该编码单元的帧内预测模式的代价,并选取计算得到的帧间预测模式的代价和帧内预测模式的代价中最小的取值作为该编码单元的代价;否则,将计算得到的帧间预测模式的代价作为该编码单元的代价。
[0100] 可选的,所述划分模块102具体用于:对于所述最大编码单元中除所述最大编码单元所在层以外的各个层,以由下至上的顺序,按照如下方式处理:比较本层的4个编码单元的代价和以及上一层与所述4个编码单元处于同一位置的编码单元的代价之间的大小关系,若所述本层的4个编码单元的代价和较小,则对上一层与所述4个编码单元处于同一位置的编码单元进行分割,并将所述本层的4个编码单元的代价和作为上一层与所述4个编码单元处于同一位置的编码单元的代价;否则,不对上一层与所述4个编码单元处于同一位置的编码单元进行分割;
[0101] 其中,所述4个编码单元为4个相邻且为2x2结构的编码单元。
[0102] 可选的,所述划分模块102具体用于:按照由下至上的顺序,依次从所述编码单元所在层级至所述最大编码单元所在层级,判断是否能获取到包含有所述编码单元的编码单元在空间上的相邻编码单元的预测模式,将获取到的、与所述编码单元所在层级最接近层的相邻编码单元的预测模式,作为所述编码单元的相邻编码单元的预测模式。
[0103] 可选的,所述划分模块102具体用于:当与所述编码单元处于同一层的相邻编码单元是以串行方式进行处理时,获取与所述编码单元处于同一层的相邻编码单元的预测模式;当与所述编码单元处于同一层的相邻编码单元是以并行方式进行处理时,获取与所述编码单元所在层最接近层的、且以串行方式处理的相邻编码单元的预测模式。
[0104] 可选的,所述预测模块103具体用于:对于采用已确定的划分方式对所述最大编码单元进行划分得到的每个编码单元,对所述整像素运动矢量进行分像素运动搜索,将搜索得到的分像素运动矢量作为第二运动搜索结果,利用所述第二运动搜索结果计算该编码单元的帧间预测模式的代价;并计算该编码单元的帧内预测模式的代价;比较计算出的该编码单元的帧间预测模式的代价和帧内预测模式的代价之间的大小关系,若该编码单元的帧间预测模式的代价小于该编码单元的帧内预测模式的代价,则将该编码单元的预测模式确定为帧间预测模式;否则,将该编码单元的预测模式确定为帧内预测模式。
[0105] 可选的,根据如下公式一计算该编码单元的帧间预测模式的代价;根据如下公式二计算该编码单元的帧内预测模式的代价;所述公式一为:cost_inter=D+λR所述公式二为:cost_intra=ω*(D+λR)其中,所述cost_inter为帧间预测模式的代价;D为均方差和SSD、绝对误差和SAD、绝对误差变换和SATD中的任意一种;R为不同模式对应的编码比特数;λ为预设系数;ω为预设权重值,ω的取值可调且0.9≤ω≤1.1。
[0106] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0107] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0108] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
[0109] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0110] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈