一种帧内预测模式的选择方法及装置与流程

文档序号:11880905阅读:491来源:国知局
本申请涉及视频压缩
技术领域
,尤其涉及一种帧内预测模式的选择方法及装置。
背景技术
:在信息时代,视频作为重要的信息载体,在通信中逐步占据越来越重要的地位。然而,由于源视频信息的数据量非常大,导致其难以满足实际的存储与传输应用,因此,对源视频压缩是非常必要的。在自然图像中,相邻像素间存在很强的相关性。一幅图像的一小块区域通常看上去很相似,去除这些信息的冗余可以减小将要编码的信息量,帧内预测正是利用相邻像素的相关性来减少空间冗余。HEVC(HighEfficiencyVideoCoding,高效视频编码)引入了比上一代国际标准H.264/AVC更复杂的帧内预测方法,该方法定义了多达35种的帧内预测模式(包括33种角度模式、DC模式和Planar模式),并以RDO(rate-distortionoptimization,率失真优化)为准则对35种模式进行搜索,从而确定唯一的最优预测模式。由于RDO的计算非常耗时,直接对全部的35种预测模式进行RDO筛选在实现上并不可行。因此,HEVC设计了一种先粗选后细选(Rough-to-Fine)的模式选择方案,即:对每一种大小的PU(predictionunit,预测单元),先利用相对简单的SATD(SumofAbsoluteTransformedDifference,绝对变换误差和)遍历计算35种预测模式,从中选择出几种代价比较小的模式作为候选模式。例如,设定64x64、32x32、16x16尺寸的PU候选模式为3个,8x8和4x4尺寸的PU的候选模式为8个。此外,根据相邻PU的预测模式,计算当前PU的MPM(MostProbableModel,最有可能的预测模式),如果MPM不在候选模式集合中,则将其添加进去。最后才利用SSE(SumofSquaredError,差值的平方和)代价函数为准则,对候选模式集做进一步RDO的筛选,从中选出率失真代价最小的候选模式,作为当前PU最终的帧内预测模式。可见即使如此,该部分的计算量也是很大,非常耗时。技术实现要素:为克服相关技术中存在的问题,本申请提供一种帧内预测模式的选择方法及装置。根据本申请实施例的第一方面,提供一种帧内预测模式的选择方法,包括:利用GPU将原始图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合;构建每一个预处理PU集合中每一个预处理PU的候选模式列表;利用CPU选择与当前PU相匹配的预处理PU;读取所述与当前PU相匹配的预处理PU的候选模式列表;根据所述候选模式列表中的候选模式确定当前PU的帧内预测模式。优选地,所述利用GPU将原始图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合,包括:利用GPU将原始图像缩放至1/N,其中N=2k,k属于自然数;对缩放后的图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合。优选地,所述构建每一个预处理PU集合中每一个预处理PU的候选模式列表,包括:计算每一个预处理PU集合中每一个预处理PU在35种预测模式下的预测块;将每一个预测块与原始块进行SATD计算,得到每一种预测模式相对应的代价值;选择代价值最小的m个预测模式作为所述预处理PU的候选模式,组成所述预处理PU的候选模式列表。优选地,所述利用CPU选择与当前PU相匹配的所述预处理PU,包括:利用CPU确定当前PU所在四叉树的深度;根据所述当前PU所在四叉树的深度确定与所述当前PU相匹配的预处理PU集合;在所述预处理PU集合中选择与所述当前PU相匹配的预处理PU。优选地,根据所述候选模式列表中的候选模式确定当前PU的帧内预测模式,包括:利用所述候选模式列表中的候选模式对所述当前PU进行RDO计算,得到每种所述候选模式的代价值;选择代价值最小的所述候选模式作为所述当前PU的帧内预测模式。根据本申请实施例的第一方面,提供一种帧内预测模式的选择装置,包括GPU和CPU;所述GPU包括:预处理PU划分模块,用于将原始图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合;候选模式列表构建模块,用于构建每一个预处理PU集合中每一个预处理PU的候选模式列表;所述CPU包括:预处理PU选择模块,用于选择与当前PU相匹配的预处理PU;候选模式列表读取模块,用于读取所述与当前PU相匹配的预处理PU的候选模式列表;帧内预测模式确定模块,用于根据所述候选模式列表中的候选模式确定当前PU的帧内预测模式。优选地,所述预处理PU划分模块包括:缩放子模块,用于将原始图像缩放至1/N,其中N=2k,k属于自然数;预处理PU划分子模块,用于对缩放后的图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合。优选地,所述候选模式列表构建模块包括:预测块计算子模块,用于计算每一个预处理PU集合中每一个预处理PU在35种预测模式下的预测块;SATD计算子模块,用于将每一个预测块与原始块进行SATD计算,得到每一种预测模式相对应的代价值;候选模式选择子模块,用于选择代价值最小的m个预测模式作为所述预处理PU的候选模式,组成所述预处理PU的候选模式列表。优选地,所述预处理PU选择模块包括:当前PU深度确定子模块,用于确定当前PU所在四叉树的深度;预处理PU集合确定子模块,用于根据所述当前PU所在四叉树的深度确定与所述当前PU相匹配的预处理PU集合;预处理PU选择子模块,用于在所述预处理PU集合中选择与所述当前PU相匹配的预处理PU。优选地,所述帧内预测模式确定模块包括:RDO计算子模块,用于利用所述候选模式列表中的候选模式对所述当前PU进行RDO计算,得到每种所述候选模式的代价值;帧内预测模式选择子模块,用于选择代价值最小的所述候选模式作为所述当前PU的帧内预测模式。采用本申请实施例所提供的技术方案,利用GPU对原始图像进行预处理,构建预处理PU的候选模式列表,则CPU在执行帧内预测时,可以直接读取已构建的候选模式列表进行RDO计算,减少了CPU的计算量。另外,由于GPU和CPU可以并行处理,因此可以减少帧内预测模式的选择时间。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种帧内预测模式的选择方法的流程示意图;图2为本申请实施例提供的一种原始图像的划分示意图;图3为本申请实施例提供的一种预测模式示意图;图4A-4C为本申请实施例提供的一种帧内预测示意图;图5为本申请实施例提供的一种帧内预测模式的装置示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。参见图1,为本申请实施例提供的一种帧内预测模式的选择方法的流程示意图。其主要包括以下步骤:步骤S100:利用GPU将原始图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合。GPU(GraphicsProcessingUnit,图形处理器)是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像运算工作的微处理器。作为专用的图形处理器,从单位面积和单位功耗的角度衡量,其相对CPU在图形处理方面具有一定的优势。因此,本申请实施例利用GPU对原始图像进行预处理,可以减少CPU的数据处理量,提高帧内预测模式的选择速度。在本申请实施例中,利用GPU将原始图像按照i种不同尺寸的预处理PU进行划分,由于HEVC允许的最大PU尺寸为64×64,因此预处理PU可以选择的尺寸包括4×4、8×8、16×16、32×32和64×64。本领域技术人员可以在上述尺寸中选择一种或一种以上尺寸对原始图像进行划分。例如,将原始图像复制为3份,分别按照8×8、16×16和32×32的尺寸对预处理PU进行划分,则得到3个预处理PU集合,尺寸分别为8×8、16×16和32×32预处理PU,如图2所示。在本申请实施例中,本领域技术人员可以根据实际需要对PU的尺寸进行选择以兼顾图像的质量和系统的运算速度。另外,为了减小数据处理量,在构建预处理PU的候选模式列表前还可以先对原始图像进行缩放。具体包括:利用GPU将原始图像缩放至1/N,其中N=2k,k属于自然数;对缩放后的图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合。例如,将原始图像缩放为1/2、1/4或1/8等。其中,在对缩放后的图像进行预处理PU划分时,预处理PU的尺寸也应该对应缩放。例如,当原始图像缩放为1/2时,缩放后的图像和原始图像中预处理PU的对应关系如表一所示。表一:原始图像8×816×1632×3264×64缩放后的图像4×48×816×1632×32也就是说,当原始图像缩放为1/2时,缩放后的图像中尺寸为4×4的预处理PU即相当于原始图像中尺寸为8×8的预处理PU,则在由CPU执行帧内预测时,若当前PU的尺寸为8×8,则需要在尺寸为4×4的预处理PU中选择相匹配的候选模式列表,关于本部分内容,在下文中进行详细阐述。步骤S200:构建每一个预处理PU集合中每一个预处理PU的候选模式列表。在将原始图像或缩放后的图像划分为预处理PU后,需要构建每一个预处理PU的候选模式列表,以便CPU利用候选模式列表执行帧内预测。参见图3,为本申请实施例提供的一种预测模式示意图,其包含33种角度模式,再加上DC模式和Planar模式,共35种预测模式。在本申请实施例中,需要在该35种预测模式中筛选出代价值最小的m种预测模式,组成预处理PU的候选模式列表。在本申请实施例中,可以根据实际需求设定候选模式列表中候选模式m的大小,如果m过小虽然可以提高运算速度,但同样会导致图像质量下降较多;如果m过大虽然可以保证较好的图像质量,但运算速度会降低。因此,选择合适的m值,可以兼顾图像质量和运算速度。在本申请一种较优实施例中,m取值4。具体为:计算每一个预处理PU集合中每一个预处理PU在35种预测模式下的预测块;将每一个预测块与原始块进行SATD计算,得到每一种预测模式相对应的代价值;选择代价值最小的m个预测模式作为所述预处理PU的候选模式,组成所述预处理PU的候选模式列表。例如,在本申请一种可能的实施例中,m取值为4,即为每一种预处理PU选择4个候选模式。在为每个预处理PU构建候选列表时,每计算一次预测模式的代价值,均要与当前候选模式列表中的代价值进行比较,直到遍历完35种预测模式,从而保留4中代价值最小的预测模式作为候选模式。例如,在计算第25种预测模式前,候选模式列表中保存的预测模式和代价值如表二所示:表二:预测模式152520代价值8121623假如GPU计算该预处理PU在第25种预测模式下的代价值为25,将该代价值与候选模式列表中的代价值进行比较,大于候选模式列表中最大的预测模式的代价值,则无需对候选模式列表进行更新,继续计算第26种预测模式的代价值。假如GPU计算该预处理PU在第25种预测模式下的代价值为13,将该代价值与候选模式列表中的代价值进行比较,小于候选模式列表中的第5中预测模式和第20中预测模式的代价值,则对候选模式列表进行更新,更新后的候选模式列表如表三所示:表三:预测模式152255代价值8121316对候选模式列表更新后,继续计算第26中预测模式的代价值,直到遍历完35种预测模式,在35种预测模式中筛选出4中代价值最小的候选模式,组成候选模式列表。采用上述相同的方式,为每个预处理PU构建单独的候选模式列表。例如,当原始图像分别按照4×4、8×8和16×16的尺寸划分时,分别构建每一个4×4、8×8和16×16尺寸的预处理PU的候选模式列表。在本申请实施例中,在构建候选模式列表时,为了进一步减小计算量,可以选择35种预测模式中的一部分进行筛选。例如,在构建候选模式列表时,只遍历35种预测模式中的奇数角度方向、DC模式和Planar模式。当然,上述选择仅是本申请实施例一种具体的实现方式,本领域技术人员可以在35中预测模式中选择任意一部分预测模式构建候选模式列表,其均应当处于本申请的保护范围之内。步骤S300:利用CPU选择与当前PU相匹配的预处理PU。由于在上述步骤S100和步骤S200中已经构建了预处理PU的候选模式列表,因此在利用CPU执行帧内预测时,可以直接选择相匹配的候选模式列表中的候选模式进行帧内预测。具体为:利用CPU确定当前PU所在四叉树的深度;根据所述当前PU所在四叉树的深度确定与所述当前PU相匹配的预处理PU集合;在所述预处理PU集合中选择与所述当前PU相匹配的预处理PU。其中,确定当前PU所在四叉树的深度即确定当前PU的尺寸,由于HEVC允许最大PU尺寸为64×64,因此可以将64×64的PU所在四叉树的深度作为1,将32×32的PU所在四叉树的深度作为2,依次类推。则根据四叉树的深度即可确定与当前PU相匹配的预处理PU集合。例如,当前PU所在四叉树的深度为2,即当前PU的大小为32×32,如果原始图像没有进行缩放,则与当前PU相匹配的预处理PU集合为尺寸为32×32的预处理PU集合;如果原始图像缩放了1/2,则与当前PU相匹配的预处理PU集合为尺寸为16×16的预处理PU集合,进而在预处理PU集合中选择与当前PU相匹配的预处理PU。步骤S400:读取所述与当前PU相匹配的预处理PU的候选模式列表。在确定与当前PU相匹配的预处理PU后,可以直接读取与当前PU相匹配的预处理PU的候选模式列表。例如,相匹配的预处理PU的候选模式列表中的预测模式为DC、5、16和27,则将预测模式DC、5、16和27作为当前PU的候选模式,省去了CPU对候选模式的计算过程,减小CPU的计算量。步骤S500:根据所述候选模式列表中的候选模式确定当前PU的帧内预测模式。在获取到候选模式列表中的候选模式后,可以根据候选模式计算当前PU的帧内预测模式,具体为:利用所述候选模式列表中的候选模式对所述当前PU进行RDO计算,得到每种所述候选模式的代价值;选择代价值最小的所述候选模式作为所述当前PU的帧内预测模式。在本申请实施例中,由于CPU在读取候选模式列表后直接对候选模式列表中的预测模式进行RDO运算,得到最优的预测模式,省略了MPM的过程,进一步减小了整个系统的计算量。为了便于本领域技术人员更好地理解本技术方案,以下结合一具体实施例对本方案进行详细说明。假如在本申请实施例中,通过GPU对原始图像进行预处理的过程中,将原始图像缩放为1/2,且将缩放后的图像分别按照4×4、8×8和16×16尺寸进行划分,并获得每种尺寸的预处理PU的候选模式列表。参见图4A-图4C为本申请实施例提供的一种帧内预测示意图,图4A中包含4个64×64的PU,分别为PU1、PU2、PU3和PU4(如图4A中的1、2、3、4所示)。按照图4A中PU的顺序,首先对PU1执行帧内预测,由于PU1的尺寸为64×64,且在构建候选模式列表时,将原始图像缩小了1/2,因此与PU1相匹配的预处理PU的尺寸应该为32×32。但由于在预处理的过程中,没有对缩放后的图像按照32×32的尺寸进行划分,因此需要CPU对PU1的候选模式进行初步筛选,然后对候选模式进行RDO计算,在候选模式中选择代价值最小的预测模式,作为PU1的最优模式。图4B中包含与PU1相对应的4个32×32的PU,分别为PU1-1、PU1-2、PU1-3和PU1-4,则依次计算PU1-1、PU1-2、PU1-3和PU1-4的最优模式。以PU1-1为例,其尺寸为32×32,则与PU1-1相匹配的预处理PU的尺寸为16×16。由于在预处理的过程中,包含尺寸为16×16的预处理PU,因此,可以直接读取与PU1-1相匹配的候选模式列表中的候选模式进行RDO计算,在候选模式中选择代价值最小的预测模式,作为PU1-1的最优模式,然后依次计算PU1-2、PU1-3和PU1-4的最优模式。图4C中包含与PU1-1相对应的4个16×16的PU,分别为PU1-1-1、PU1-1-2、PU1-1-3和PU1-1-4,则依次计算PU1-1-1、PU1-1-2、PU1-1-3和PU1-1-4的最优模式。以PU1-1-1为例,其尺寸为16×16,则与PU1-1-1相匹配的预处理PU的尺寸为8×8。由于在预处理的过程中,包含尺寸为8×8的预处理PU,因此可以直接读取与PU1-1-1相匹配的候选模式列表中的候选模式进行RDO计算,在候选模式中选择代价值最小的预测模式,作为PU1-1-1的最优模式,然后依次计算PU1-1-2、PU1-1-3和PU1-1-4的最优模式。同样的道理,再对PU1-1-1进行划分,直到当前PU划分为4×4大小,然后再比较不同四叉树深度下PU的代价值,进而完成图像的帧内预测。由以上方案可知,在本申请实施例中,在通过GPU对原始图像进行预处理时可能只选择部分尺寸的PU构建候选模式列表,则在CPU执行帧内预测时,根据当前PU所在四叉树的深度,若存在候选模式列表则直接读取候选模式列表中的候选模式进行RDO计算;若不存在候选模式列表,则通过CPU即时筛选当前PU的候选模式,计算方法灵活。基于同一发明构思,本申请实施例还提供了一种帧内预测模式的选择装置。图5为本申请实施例提供的一种帧内预测模式的装置示意图,如图5所示,该帧内预测模式的装置包括:GPU和CPU。所述GPU包括:预处理PU划分模块100,用于将原始图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合。在本申请实施例中,利用GPU将原始图像按照i种不同尺寸的预处理PU进行划分,由于HEVC允许的最大PU尺寸为64×64,因此预处理PU可以选择的尺寸包括4×4、8×8、16×16、32×32和64×64。本领域技术人员可以在上述尺寸中选择一种或一种以上尺寸对原始图像进行划分。另外,为了减小数据处理量,在构建预处理PU的候选模式列表前还可以先对原始图像进行缩放。具体地,所述预处理PU划分模块包括:缩放子模块,用于将原始图像缩放至1/N,其中N=2k,k属于自然数;预处理PU划分子模块,用于对缩放后的图像按照i种不同尺寸的预处理PU进行划分,得到i个预处理PU集合。例如,将原始图像缩放为1/2、1/4或1/8等。其中,在对缩放后的图像进行预处理PU划分时,预处理PU的尺寸也应该对应缩放。候选模式列表构建模块200,用于构建每一个预处理PU集合中每一个预处理PU的候选模式列表。具体地,所述候选模式列表构建模块包括:预测块计算子模块,用于计算每一个预处理PU集合中每一个预处理PU在35种预测模式下的预测块;SATD计算子模块,用于将每一个预测块与原始块进行SATD计算,得到每一种预测模式相对应的代价值;候选模式选择子模块,用于选择代价值最小的m个预测模式作为所述预处理PU的候选模式,组成所述预处理PU的候选模式列表。例如,在本申请一种可能的实施例中,m取值为4,即为每一种预处理PU选择4个候选模式。在为每个预处理PU构建候选列表时,每计算一次预测模式的代价值,均要与当前候选模式列表中的代价值进行比较,直到遍历完35种预测模式,从而保留4中代价值最小的预测模式作为候选模式。所述CPU包括:预处理PU选择模块300,用于选择与当前PU相匹配的预处理PU。具体地,所述预处理PU选择模块包括:当前PU深度确定子模块,用于确定当前PU所在四叉树的深度;预处理PU集合确定子模块,用于根据所述当前PU所在四叉树的深度确定与所述当前PU相匹配的预处理PU集合;预处理PU选择子模块,用于在所述预处理PU集合中选择与所述当前PU相匹配的预处理PU。其中,确定当前PU所在四叉树的深度即确定当前PU的尺寸,由于HEVC允许最大PU尺寸为64×64,因此可以将64×64的PU所在四叉树的深度作为1,将32×32的PU所在四叉树的深度作为2,依次类推。则根据四叉树的深度即可确定与当前PU相匹配的预处理PU集合。例如,当前PU所在四叉树的深度为2,即当前PU的大小为32×32,如果原始图像没有进行缩放,则与当前PU相匹配的预处理PU集合为尺寸为32×32的预处理PU集合;如果原始图像缩放了1/2,则与当前PU相匹配的预处理PU集合为尺寸为16×16的预处理PU集合,进而在预处理PU集合中选择与当前PU相匹配的预处理PU。候选模式列表读取模块400,用于读取所述与当前PU相匹配的预处理PU的候选模式列表。在确定与当前PU相匹配的预处理PU后,可以直接读取与当前PU相匹配的预处理PU的候选模式列表。例如,相匹配的预处理PU的候选模式列表中的预测模式为DC、5、16和27,则将预测模式DC、5、16和27作为当前PU的候选模式,省去了CPU对候选模式的计算过程,减小CPU的计算量。帧内预测模式确定模块500,用于根据所述候选模式列表中的候选模式确定当前PU的帧内预测模式。具体地,所述帧内预测模式确定模块包括:RDO计算子模块,用于利用所述候选模式列表中的候选模式对所述当前PU进行RDO计算,得到每种所述候选模式的代价值;帧内预测模式选择子模块,用于选择代价值最小的所述候选模式作为所述当前PU的帧内预测模式。采用本申请实施例所提供的技术方案,利用GPU对原始图像进行预处理,构建预处理PU的候选模式列表,则CPU在执行帧内预测时,可以直接读取已构建的候选模式列表进行RDO计算,减少了CPU的计算量。另外,由于GPU和CPU可以并行处理,因此可以减少帧内预测模式的选择时间。需要指出的是,本申请实施例所提供的技术方案可以应用于本领域中的任何GPU平台,例如即可以使用opencl,也可以使用cuda,本申请实施例对此并不做具体限定。以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。以上所述仅是本申请的具体实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1