帧内预测模式选择方法、编码器及存储装置转让专利

申请号 : CN201910555628.0

文献号 : CN110290383A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 方诚江东林聚财殷俊曾飞洋

申请人 : 浙江大华技术股份有限公司

摘要 :

本发明公开了一种帧内预测模式选择方法、编码器及存储装置。该帧内预测模式选择方法包括:将当前编码块划分为至少一个区域;利用区域的第一参考模式和第二参考模式构建区域在至少一条参考线上的最可能模式列表,第一参考模式为区域的第一参考块的帧内预测模式,第二参考模式为区域的第二参考块的帧内预测模式,第一参考块位于区域的第一侧且已完成编码,第二参考块位于区域的第二侧且已完成编码,第一侧与第二侧相邻;按照预测代价最小的原则,基于区域在至少一条参考线上的最可能模式列表选择区域的帧内预测模式。通过上述方式,本发明能够提高帧内预测模式选择的准确度。

权利要求 :

1.一种帧内预测模式选择方法,其特征在于,包括:

将当前编码块划分为至少一个区域;

利用所述区域的第一参考模式和第二参考模式构建所述区域在至少一条参考线上的最可能模式列表,所述第一参考模式为所述区域的第一参考块的帧内预测模式,所述第二参考模式为所述区域的第二参考块的帧内预测模式,所述第一参考块位于所述区域的第一侧且已完成编码,所述第二参考块位于所述区域的第二侧且已完成编码,所述第一侧与所述第二侧相邻;

按照预测代价最小的原则,基于所述区域在至少一条参考线上的最可能模式列表选择所述区域的帧内预测模式。

2.根据权利要求1所述的方法,其特征在于,

所述参考线按照与所述区域距离从近到远的排序,所述区域在第n条所述参考线上的最可能模式列表与所述区域在第一条所述参考线上的最可能模式列表完全相同,n为大于1的整数。

3.根据权利要求1所述的方法,其特征在于,

所述参考线按照与所述区域距离从近到远的排序,所述区域在第n条所述参考线上的最可能模式列表与非子块模式下所述当前编码块在第n条所述参考线上的最可能模式列表完全相同,n为大于1的整数。

4.根据权利要求1所述的方法,其特征在于,

所述参考线按照与所述区域距离从近到远的排序;

所述区域与其他区域垂直排列且所述第一参考模式和所述第二参考模式满足第一条件的情况下,所述区域在第n条所述参考线上的最可能模式列表中的第一位为水平模式,第二位为所述水平模式的邻近模式,其余部分与所述区域在第一条所述参考线上的最可能模式列表相同,所述第一条件为所述第一参考模式和所述第二参考模式均不为角度模式,n为大于1的整数;

所述区域与其他区域垂直排列且所述第一参考模式和所述第二参考模式满足第二条件的情况下,所述区域在第n条所述参考线上的最可能模式列表中的最后一位为所述水平模式的邻近模式,其余部分与所述区域在第一条所述参考线上的最可能模式列表相同,所述第二条件为所述第一参考模式与所述第二参考模式均为角度模式且序号相同,且所述第一参考模式与所述第二参考模式的序号大于或等于第一对角方向的角度模式的序号,所述第一对角方向与水平方向和垂直方向的夹角均为45度且在所述水平方向与所述垂直方向之间;

所述区域与其他区域垂直排列且所述第一参考模式和所述第二参考模式满足第三条件的情况下,所述区域在第n条所述参考线上的最可能模式列表为对所述区域在第一条所述参考线上的最可能模式列表进行第一操作的结果,所述第三条件为所述第一参考模式和所述第二参考模式中只有一个为所述角度模式,所述第一操作包括去除第一位,将剩余位向前移动一位并将最后一位设为序号为Max{L,A}-3的角度模式,其中L为所述第一参考模式的序号,A为所述第二参考模式的序号;

所述区域与其他区域垂直排列且所述第一参考模式和所述第二参考模式不满足所述第一条件、所述第二条件、所述第三条件中的任意一个的情况下,所述区域在第n条所述参考线上的最可能模式列表与所述区域在第一条所述参考线上的最可能模式列表完全相同;

所述区域与其他区域水平排列且所述第一参考模式和所述第二参考模式满足所述第一条件的情况下,所述区域在第n条所述参考线上的最可能模式列表中的第一位为垂直模式,第二位为所述垂直模式的邻近模式,其余部分与所述区域在第一条所述参考线上的最可能模式列表相同;

所述区域与其他区域水平排列且所述第一参考模式和所述第二参考模式满足第四条件的情况下,所述区域在第n条所述参考线上的最可能模式列表中的最后一位为所述垂直模式的邻近模式,其余部分与所述区域在第一条所述参考线上的最可能模式列表相同,所述第四条件为所述第一参考模式与所述第二参考模式均为角度模式且序号相同,且所述第一参考模式与所述第二参考模式的序号小于所述第一对角方向的角度模式的序号;

所述区域与其他区域水平排列且所述第一参考模式和所述第二参考模式满足所述第三条件的情况下,所述区域在第n条所述参考线上的最可能模式列表为对所述区域在第一条所述参考线上的最可能模式列表进行所述第一操作的结果;

所述区域与其他区域水平排列且所述第一参考模式和所述第二参考模式不满足所述第一条件、所述第三条件、所述第四条件中的任意一个的情况下,所述区域在第n条所述参考线上的最可能模式列表与所述区域在第一条所述参考线上的最可能模式列表完全相同。

5.根据权利要求1所述的方法,其特征在于,

所述参考线按照与所述区域距离从近到远的排序;

所述区域与其他区域垂直排列且所述第一参考模式和所述第二参考模式均不为角度模式的情况下,所述区域在第n条所述参考线上的最可能模式列表中的第一位为水平模式,第二位为垂直模式,其余部分与非子块模式下所述当前编码块在第n条所述参考线上的最可能模式列表相同;

所述区域与其他区域垂直排列且所述第一参考模式和/或所述第二参考模式为角度模式的情况下,所述区域在第n条所述参考线上的最可能模式列表与非子块模式下所述当前编码块在第n条所述参考线上的最可能模式列表完全相同;

所述区域与其他区域水平排列的情况且所述第一参考模式和所述第二参考模式均不为角度模式下,所述区域在第n条所述参考线上的最可能模式列表中的第一位为垂直模式,第二位为水平模式,其余部分与所述非子块模式下所述当前编码块在第n条所述参考线上的最可能模式列表相同;

所述区域与其他区域水平排列且所述第一参考模式和/或所述第二参考模式为角度模式的情况下,所述区域在第n条所述参考线上的最可能模式列表与非子块模式下所述当前编码块在第n条所述参考线上的最可能模式列表完全相同。

6.根据权利要求1-5中任一项所述的方法,其特征在于,

所述按照预测代价最小的原则,基于所述区域在至少一条参考线上的最可能模式列表选择所述区域的帧内预测模式包括:利用所述区域在至少一条参考线上的最可能模式列表获取所述区域的第一帧内预测模式候选列表;

从所述第一帧内预测模式候选列表和第二帧内预测模式候选列表中选择预测代价最小的一个帧内预测模式作为所述区域的帧内预测模式,所述第二帧内预测模式为非子块模式下所述当前编码块的帧内预测模式候选列表。

7.根据权利要求6所述的方法,其特征在于,

所述利用所述区域在至少一条参考线上的最可能模式列表获取所述区域的第一帧内预测模式候选列表包括:基于所述预测代价最小的原则从可选帧内预测模式集合中选择至少一个帧内预测模式存入所述第一帧内预测模式候选列表;

计算所述第一帧内预测模式候选列表中角度模式的邻近模式的所述预测代价,并与所述第一帧内预测模式候选列表中的帧内预测模式的所述预测代价进行比较,基于所述预测代价最小的原则对所述第一帧内预测模式候选列表进行更新;

所述参考线按照与所述区域距离从近到远的排序,计算所述区域在除第一条之外的所有所述参考线上的最可能模式列表中的帧内预测模式的所述预测代价,并与所述第一帧内预测模式候选列表中的帧内预测模式的所述预测代价进行比较,基于所述预测代价最小的原则对所述第一帧内预测模式候选列表进行更新;

将所述区域在至少部分所述参考线上的最可能模式列表中的前N个帧内预测模式插入所述第一帧内预测模式候选列表,1<=N<=M,M为单个所述最可能模式列表中所述帧内预测模式的总数,然后对第一帧内预测模式候选列表进行第二操作,所述第二操作包括合并重复模式并去除不在所述最可能模式列表中的模式。

8.根据权利要求1-5中任一项所述的方法,其特征在于,

所述第一参考块与所述区域相邻和/或所述第二参考块与所述区域相邻。

9.根据权利要求8所述的方法,其特征在于,

所述第一参考块或所述第二参考块为所述当前编码块中与所述区域相邻且已编码的另一区域。

10.根据权利要求1-5中任一项所述的方法,其特征在于,

所述第一参考块位于所述区域的左下位置,所述第二参考块位于所述区域的右上位置。

11.根据权利要求1-5中任一项所述的方法,其特征在于,

所述当前编码块被划分为至少两个子块,每个所述区域包括至少一个所述子块。

12.根据权利要求11所述的方法,其特征在于,

所述将当前编码块划分为至少一个区域包括:

将所述当前编码块划分为至少两个所述子块;

按照所述子块的划分结果将所述当前编码块划分为至少一个所述区域,其中每个所述区域由一个或者至少两个所述子块组成,至少一个所述区域由至少两个所述子块组成。

13.根据权利要求11所述的方法,其特征在于,

每个所述区域由一个所述子块组成,所述将当前编码块划分为至少一个区域包括:将所述当前编码块划分为至少两个所述子块。

14.根据权利要求1-5中任一项所述的方法,其特征在于,

不同的所述区域的所述至少一条参考线至少部分不重叠。

15.根据权利要求14所述的方法,其特征在于,

每个所述区域的参考线数量与所述当前编码块的参考线数量相同,每条所述参考线包括位于所述区域/当前编码块左侧的第一参考线和位于所述区域/当前编码块上侧的第二参考线,每个所述区域的每条所述第一参考线与所述区域之间的距离均等于所述当前编码块的对应所述第一参考线与所述当前编码块的距离,每个所述区域的每条所述第二参考线与所述区域之间的距离均等于所述当前编码块的对应所述第二参考线与所述当前编码块的距离。

16.一种编码器,其特征在于,所述编码器包括处理器,

所述处理器用于执行指令以实现如权利要求1-15中任一项所述的方法。

17.一种存储装置,存储有指令,其特征在于,所述指令被执行时实现如权利要求1-15中任一项所述的方法。

说明书 :

帧内预测模式选择方法、编码器及存储装置

技术领域

[0001] 本申请涉及视频编码领域,特别是涉及一种帧内预测模式选择方法、编码器及存储装置。

背景技术

[0002] 由于视频图像数据量比较大,通常需要对其进行编码压缩后,再进行传输或存储,编码后的数据称之为视频码流。受硬件和其他条件限制,如存储空间有限、传输带宽有限等,编码器总是希望能让视频码流尽量小。
[0003] 视频编码主要包括视频采集、预测、变换量化和熵编码几大部分,其中预测分为帧内预测和帧间预测两部分,分别用于去除空间冗余性和时间冗余性。
[0004] 帧内预测就是在一帧图像内,根据当前像素周围已编码的参考像素的像素值,来预测当前像素的像素值。目前帧内预测模式包括DC、Planar和多种角度模式。对于某个帧内预测模式,按照该帧内预测模式所指的方向找到当前编码块中像素对应的参考像素,根据对应的参考像素的像素值计算出该帧内预测模式的预测代价,为不同的帧内预测模式重复上述过程,最后选出预测代价最小的作为当前编码块的帧内预测模式。
[0005] 相关技术中提出了先为当前编码块构建最可能模式(Most Probable Modes,MPM)列表,再基于MPM列表选取帧内预测模式。若可以将当前编码块划分为至少两个子块,则可以为其构建两种MPM列表:帧内子块分割(Intra Sub-Partitions,ISP)模式(简称子块模式)下的MPM列表,以及非ISP模式(非子块模式)下的MPM列表。若当前编码块未进行子块划分,则不构建ISP模式下的MPM列表。若为当前编码块定义的参考线的数量大于一,在构建ISP模式下的MPM列表中只会用到离当前编码块最近的一条参考线,影响构建的MPM列表,并且最终利用MPM列表选出的帧内预测模式是作为整个当前编码块的帧内预测模式,导致最终选出的帧内预测模式可能并非当前编码块/子块的最优帧内预测模式,降低帧内预测模式选择的准确度。

发明内容

[0006] 本申请提供一种帧内预测模式选择方法、编码器及存储装置,能够解决相关技术中MPM列表构建方式及帧内预测模式选择方式影响帧内预测模式选择的准确度的问题。
[0007] 为解决上述技术问题,本申请采用的一个技术方案是:提供一种帧内预测模式选择方法,该方法包括:将当前编码块划分为至少一个区域;利用区域的第一参考模式和第二参考模式构建区域在至少一条参考线上的最可能模式列表,第一参考模式为区域的第一参考块的帧内预测模式,第二参考模式为区域的第二参考块的帧内预测模式,第一参考块位于区域的第一侧且已完成编码,第二参考块位于区域的第二侧且已完成编码,第一侧与第二侧相邻;按照预测代价最小的原则,基于区域在至少一条参考线上的最可能模式列表选择区域的帧内预测模式。
[0008] 预测为解决上述技术问题,本申请采用的再一个技术方案是:提供一种编码器,该编码器包括处理器,处理器用于执行指令以实现前述的帧内预测模式选择方法。
[0009] 为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储装置,存储有指令,指令被执行时实现前述的帧内预测模式选择方法。
[0010] 本申请的有益效果是:通过将当前编码块划分为至少一个区域;利用区域的第一参考模式和第二参考模式构建区域在至少一条参考线上的最可能模式列表,第一参考模式为区域的第一参考块的帧内预测模式,第二参考模式为区域的第二参考块的帧内预测模式,第一参考块位于区域的第一侧且已完成编码,第二参考块位于区域的第二侧且已完成编码,第一侧与第二侧相邻;按照预测代价最小的原则,基于区域在至少一条参考线上的最可能模式列表选择区域的帧内预测模式,若当前编码块被划分为至少两个区域,基于区域的MPM列表为区域选择帧内预测模式,不同区域的帧内预测模式可能不同,最终选出的帧内预测模式为该区域的最优帧内预测模式的可能性变大,提高帧内预测模式选择的准确度;若当前编码块被划分为一个区域,在该区域(即当前编码块)的MPM列表构建过程中考虑了ISP模式下的MPM列表,最终选出的帧内预测模式为该区域的最优帧内预测模式的可能性变大,提高帧内预测模式选择的准确度。

附图说明

[0011] 图1是本发明帧内预测模式选择方法一实施例的流程示意图;
[0012] 图2是尺寸为8*4的CU的两种子块划分方式示意图;
[0013] 图3是尺寸大于8*4的CU的两种子块划分方式示意图;
[0014] 图4是图1中S1的具体流程示意图;
[0015] 图5是尺寸大于8*4的CU的一种区域划分和参考块选择方式示意图;
[0016] 图6是G=66的情况下不同序号的角度模式方向的示意图;
[0017] 图7是图1中S3的具体流程示意图;
[0018] 图8是图6中S31的具体流程示意图;
[0019] 图9是区域参考线一种定义方式的示意图;
[0020] 图10是本发明一编码器实施例的结构示意图;
[0021] 图11是本发明存储装置一实施例的结构示意图。

具体实施方式

[0022] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0023] 本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0024] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。
[0025] 图1是本发明帧内预测模式选择方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。如图1所示,本实施例包括:
[0026] S1:将当前编码块划分为至少一个区域。
[0027] 当前编码块,是指当前要进行编码的块,可以被简称为当前块。在某些场合,编码块可以被称为编码单元(codingunit,CU)。
[0028] 不同的区域之间互不重叠,且不同的区域大小不一定相同。
[0029] 在本发明一具体实施例中,当前编码块被划分为至少两个子块,每个区域包括至少一个子块。
[0030] 举例说明子块划分的一种具体方式。
[0031] 只对尺寸大于4*4的CU进行子块划分。尺寸为4*8或8*4的CU块划分成2个子块,其他尺寸的CU划分为4个子块。按照划分线的方向,划分方式分为垂直和水平两种,每个CU只能划分一次,不能同时对一个CU进行垂直和水平划分,且每个子块的尺寸相同,每个子块最小包含16个像素点,即每个子块满足W*H>=16,W表示宽度,H表示高度。尺寸为8*4的CU的两种子块划分方式如图2所示,尺寸大于8*4的CU的两种子块划分方式如图3所示。
[0032] 水平划分得到的子块垂直排列,意味着相邻的两个子块中的一个子块位于另一个子块的上侧或下侧。垂直划分得到的子块水平排列,意味着相邻的两个子块中的一个子块位于另一个子块的左侧或右侧。子块的正向顺序由视频图像编码/解码的顺序决定。例如,在编码/解码的顺序为从上到下从左到右的情况下,子块的正向顺序由为从上到下或从左到右。
[0033] 每个区域包括至少一个子块。若某个区域包括的子块的数量大于一,则这些子块可以是连续的。不同区域中包括的子块的数量不一定相同。若某个CU划分出的区域的数量等于该CU中子块的数量,则每个区域就是一个子块。
[0034] 如图4所示,在本发明一具体实施例中,S1包括:
[0035] S11:将当前编码块划分为至少两个子块。
[0036] S12:按照子块的划分结果将当前编码块划分为至少一个区域。
[0037] 在本具体实施例中,每个区域由一个或者至少两个子块组成,至少一个区域可以由至少两个子块组成。若当前编码块被划分为一个区域,意味着将当前编码块整体作为一个区域。
[0038] 在其他具体实施例中,若每个区域都只由一个子块组成,S12可以被省去,此时S1可以仅包括S11子块的划分。
[0039] 为了便于说明,以下的区域除了特别指出(例如另一区域等)的之外,均指正在进行编码的当前区域。
[0040] S2:利用区域的第一参考模式和第二参考模式构建区域在至少一条参考线上的最可能模式(Most Probable Modes,MPM)列表。
[0041] 第一参考模式为区域的第一参考块的帧内预测模式,第二参考模式为区域的第二参考块的帧内预测模式。第一参考块位于区域的第一侧且已完成编码,第二参考块位于区域的第二侧且已完成编码。对于同一区域,构建不同参考线上的MPM列表所用的第一参考块和第二参考块可以相同,也可以不同。
[0042] 第一侧与第二侧相邻,即第一侧和第二侧不平行。例如,第一侧为左侧,第二侧可以为上侧或者下侧,而不会是右侧。一般而言,第一侧和第二侧由视频图像编码/解码的顺序决定。例如,在编码/解码的顺序为从左到右从上到下的情况下,第一侧为左侧,第二侧为上侧;或者第一侧为上侧,第二侧为左侧。
[0043] 可选的,第一参考块与区域相邻和/或第二参考块与区域相邻。若区域不是当前编码块中最先完成编码的区域,则第一参考块或第二参考块可以为当前编码块中与区域相邻且已编码的另一区域。当然,第一参考块与第二参考块中的至少一个可以不与区域相邻,例如直接将当前编码块的第一参考块作为区域的第一参考块,和/或将当前编码块的第二参考块作为区域的第二参考块。
[0044] 可选的,第一参考块位于区域的左下位置,即第一参考块为区域的左下角像素的左侧相邻像素所在的已编码块/区域/子块;第二参考块位于区域的右上位置,即第二参考块为区域的右上角像素的上侧相邻像素所在的已编码块/区域/子块。举例说明,尺寸大于8*4的CU的一种区域划分和参考块选择方式如图5所示。图中的区域1包括一个子块,其第一参考块为L1,第二参考块为A1;区域2包括三个子块,其第一参考块为L2,第二参考块为A2,从图中可以看出,L2实际上就是区域1。
[0045] 为了便于说明,以下出现的参考线除特意指出的之外,均指区域的参考线。参考线可以是指子块模式下的参考线。参考线一般按照与区域距离从近到远的排序,第一条参考线就是离区域最近的那条参考线。后续为便于描述,将参考线的序号定义为index,第k条参考线的index=k-1,第k条参考线简称为参考线k-1。
[0046] 本步骤中构建得到的MPM列表为ISP模式下的MPM列表。为便于描述,除特意指出的部分,后续的MPM列表均为ISP模式下的MPM列表。
[0047] 可选的,可以利用第一条参考线上的MPM列表或非ISP模式下当前编码块在对应参考线上的MPM列表来确定除第一条参考线之外的其他参考线(即index>0的参考线)的MPM列表。具体可用的方式如下所示:
[0048] a.直接用参考线0上的ISP模式下的MPM列表,得到的区域在第n条参考线上的MPM列表与区域在第一条参考线上的MPM列表完全相同,n为大于1的整数。第n条参考线即为index>0的参考线。
[0049] b.直接用非ISP模式下当前编码块在参考线n-1上的MPM列表,得到的区域在第n条参考线上的MPM列表与非子块模式下当前编码块在第n条参考线上的MPM列表完全相同,此时水平和垂直划分的MPM列表相同。
[0050] c.对参考线0上的ISP下模式的MPM列表在部分情况下做适应性修改。结果如下:
[0051] 区域与其他区域垂直排列(即当前编码块水平划分)且第一参考模式和第二参考模式满足第一条件的情况下,区域在第n条参考线上的MPM列表中的第一位为水平模式,第二位为水平模式的邻近模式,其余部分与区域在第一条参考线上的MPM列表相同,第一条件为第一参考模式和第二参考模式均不为角度模式,n为大于1的整数。
[0052] 区域与其他区域垂直排列且第一参考模式和第二参考模式满足第二条件的情况下,区域在第n条参考线上的MPM列表中的最后一位为水平模式的邻近模式,其余部分与区域在第一条参考线上的MPM列表相同,第二条件为第一参考模式与第二参考模式均为角度模式且序号相同,且第一参考模式与第二参考模式的序号大于或等于第一对角方向的角度模式的序号,第一对角方向与水平方向和垂直方向的夹角均为45度且在水平方向与垂直方向之间。
[0053] 区域与其他区域垂直排列且第一参考模式和第二参考模式满足第三条件的情况下,区域在第n条参考线上的MPM列表为对区域在第一条参考线上的MPM列表进行第一操作的结果,第三条件为第一参考模式和第二参考模式中只有一个为角度模式,第一操作包括去除第一位,将剩余位向前移动一位并将最后一位设为序号为Max{L,A}-3的角度模式,其中L表示第一参考模式的序号,A表示第二参考模式的序号。
[0054] 区域与其他区域垂直排列且第一参考模式和第二参考模式不满足第一条件、第二条件、第三条件中的任意一个的情况下,区域在第n条参考线上的MPM列表与区域在第一条参考线上的MPM列表完全相同。
[0055] 区域与其他区域水平排列(即当前编码块垂直划分)且第一参考模式和第二参考模式满足第一条件的情况下,区域在第n条参考线上的MPM列表中的第一位为垂直模式,第二位为垂直模式的邻近模式,其余部分与区域在第一条参考线上的MPM列表相同。
[0056] 区域与其他区域水平排列且第一参考模式和第二参考模式满足第四条件的情况下,区域在第n条参考线上的MPM列表中的最后一位为垂直模式的邻近模式,其余部分与区域在第一条参考线上的MPM列表相同,第四条件为第一参考模式与第二参考模式均为角度模式且序号相同,且第一参考模式与第二参考模式的序号小于第一对角方向的角度模式的序号。
[0057] 区域与其他区域水平排列且第一参考模式和第二参考模式满足第三条件的情况下,区域在第n条参考线上的MPM列表为对区域在第一条参考线上的MPM列表进行第一操作的结果。
[0058] 区域与其他区域水平排列且第一参考模式和第二参考模式不满足第一条件、第三条件、第四条件中的任意一个的情况下,区域在第n条参考线上的MPM列表与区域在第一条参考线上的MPM列表完全相同。
[0059] d.对非ISP模式下当前编码块在参考线n-1上的MPM列表做适应性修改。结果如下:
[0060] 区域与其他区域垂直排列且第一参考模式和第二参考模式均不为角度模式的情况下,区域在第n条参考线上的最可能模式列表中的第一位为水平模式,第二位为垂直模式,其余部分与非子块模式下当前编码块在第n条参考线上的最可能模式列表相同;
[0061] 区域与其他区域垂直排列且第一参考模式和/或第二参考模式为角度模式的情况下,区域在第n条参考线上的最可能模式列表与非子块模式下当前编码块在第n条参考线上的最可能模式列表完全相同;
[0062] 区域与其他区域水平排列的情况且第一参考模式和第二参考模式均不为角度模式下,区域在第n条参考线上的最可能模式列表中的第一位为垂直模式,第二位为水平模式,其余部分与非子块模式下当前编码块在第n条参考线上的最可能模式列表相同;
[0063] 区域与其他区域水平排列且第一参考模式和/或第二参考模式为角度模式的情况下,区域在第n条参考线上的最可能模式列表与非子块模式下当前编码块在第n条参考线上的最可能模式列表完全相同。
[0064] 上述index>0的参考线的MPM列表构建方式中提到了垂直模式及其邻近模式,水平模式及其邻近模式。帧内预测模式分为DC、Planar和角度模式三类。序号为2~G的帧内预测模式属于角度模式,G为大于2的整数,不同序号的角度模式方向不同,可以适用于消除不同方向的空间冗余性。垂直方向的角度模式被称为垂直模式,水平方向的角度模式被称为水平模式,具体的序号根据G的大小而决定。
[0065] 某个指定角度模式的邻近模式是指序号与该指定角度模式的序号之差的绝对值在预设范围内的角度模式。序号为r的角度模式的邻近模式的序号包括{r+s,r-s},1≤s≤t,s和t均为大于0的整数。序号为r+1/r-1的角度模式可以被称为序号为r的角度模式的相邻模式。t表示预设范围,其具体取值可以根据序号为r的角度模式的方向和/或具体的应用场景而确定。
[0066] 在计算邻近模式的序号的过程中,不考虑宽角度模式的情况下,2-1的结果为G-1,2-2的结果为G-2,以此类推,G+1的结果为2+1,G+2的结果为2+2,以此类推。
[0067] 举例说明区域在至少一条参考线上的MPM列表的构建方式。
[0068] 在本发明一具体实施例中,帧内预测模式序号的G=66,不同序号的角度模式方向如图6所示,
[0069] 图6中,序号2-66为普通角度模式,序号-13~1和67~81为宽角度模式(本实施例中不予考虑),水平模式的序号为18,垂直模式的序号为50。
[0070] 若当前编码块是水平划分的,结合第一参考模式和第二参考模式,区域在index=0的参考线(即第一条参考线)上构建的MPM列表如表1所示:
[0071]
[0072] 表1
[0073] 若当前编码块是垂直划分的,结合第一参考模式和第二参考模式,区域在index=0的参考线(即第一条参考线)上构建的MPM列表如表2所示:
[0074]
[0075]
[0076] 表2
[0077] 在表1和表2中,L表示第一参考模式的序号,A表示第二参考模式的序号,V代表垂直模式(模式50),H代表水平模式(模式18)。M0表示L和A中更接近区域/子块划分模式的一个,M1表示L和A中更远离区域/子块划分模式的一个。例如,区域/子块水平划分时,若|L-18|<|A-18|,则M0为L,M1为A;若|L-18|>|A-18|,则M0为A,M1为L。+1,-1,+2,-2等的计算方式参考邻近模式序号的计算方式。
[0078] 表1和表2中没有DC模式。为便于理解,表格中记录的是Planar模式的名称,实际应用中,可以只在表格中记录帧内预测模式的编号。
[0079] 可以采用多种方式来构建区域在index>0的参考线上的MPM列表。
[0080] 若采用方式a,若当前编码块是水平划分的,区域在index>0的参考线上的MPM列表为表1;若当前编码块是垂直划分的,区域在index>0的参考线上的MPM列表为表2。
[0081] 若采用方式b,区域在index>0的参考线上的MPM列表为非ISP模式下当前编码块在index>0的参考线上的MPM列表,由于非ISP模式下的MPM列表不涉及子块的划分,因此当前编码块是水平划分或者垂直划分的情况下,区域在index>0的参考线上的MPM列表均如表3所示:
[0082]
[0083] 表3
[0084] 若采用方式c,对参考线0上的ISP下模式的MPM列表在部分情况下做适应性修改,当前编码块是水平划分的情况下,得到的区域在index>0的参考线上的MPM列表如表4所示:
[0085]
[0086]
[0087] 表4
[0088] 当前编码块是垂直划分的情况下,得到的区域在index>0的参考线上的MPM列表如表5所示:
[0089]
[0090] 表5
[0091] 表4与表1区别的部分加粗显示,表5与表2区别的部分加粗显示,其中第一对角方向的序号为34,HN表示水平模式的邻近模式,VN表示垂直模式的邻近模式。
[0092] 若采用方式d,对非ISP模式下当前编码块在index>0的参考线上的MPM列表做适应性修改,当前编码块是水平划分的情况下,得到的区域在index>0的参考线上的MPM列表如表6所示:
[0093]
[0094] 表6
[0095] 当前编码块是垂直划分的情况下,得到的区域在index>0的参考线上的MPM列表如表7所示:
[0096]
[0097]
[0098] 表7
[0099] 根据L和A的取值条件,表1和表7被划分为很多行,实际应用过程中,根据参考线的序号,L和A的值,当前编码块的划分方式以及采用的构建方式,可以确定唯一的MPM列表。一个MPM列表中记录了6个帧内预测模式及对应参考线序号。
[0100] S3:按照预测代价最小的原则,基于区域在至少一条参考线上的MPM列表选择区域的帧内预测模式。
[0101] 本步骤可以被称为模式选择。若区域包括至少两个子块,选择出来的区域的帧内预测模式是区域中所有子块的帧内预测模式。某一帧内预测模式的预测代价可以是指采用该帧内预测模式对当前编码块进行帧内预测的代价,可以采用率失真代价等作为预测代价。
[0102] 具体的,可以基于区域在至少一条参考线上的MPM列表构建ISP模式下的候选帧内预测模式列表,这一过程可以被称为粗选。然后结合ISP模式下的候选帧内预测模式列表和非ISP模式下的候选帧内预测模式列表,选出二者之中预测代价最小的帧内预测模式作为区域的帧内预测模式。
[0103] 当然也可以采用其他方式选择区域的帧内预测模式,例如不经过细选直接从ISP模式下的候选帧内预测模式列表中选择,或者不构建ISP模式下的候选帧内预测模式列表而直接从区域在至少一条参考线上的MPM列表中选择。
[0104] 在粗选阶段,可以使用低复杂度的变换后的绝对值和(Sum of Absolute Transformed Difference,SATD)代价获取失真,进而求取预测代价rdcost;在细选阶段,可以使用复杂度较高的差值平方和(Sum of Squared Error,SSE)代价获取失真,进而求取预测代价rdcost。
[0105] 如图7所示,S3可以具体包括:
[0106] S31:利用区域在至少一条参考线上的MPM列表获取区域的第一帧内预测模式候选列表。
[0107] 第一帧内预测模式候选列表可以被称为ISP模式下的候选列表。本步骤可以被称为粗选,粗选可以分为若干次完成,其中的部分或者全部可以使用区域在至少一条参考线上的MPM列表。
[0108] 如图8所示,在本发明一具体实施例中,采用四次粗选,S31具体包括:
[0109] S311:基于预测代价最小的原则从可选帧内预测模式集合中选择至少两个帧内预测模式存入第一帧内预测模式候选列表。
[0110] 本步骤可以只用到第一条参考线,第一帧内预测模式候选列表中每个帧内预测模式对应的参考线index均为0。可选帧内预测模式集合与区域的MPM列表无关,相应的,本步骤得到的第一帧内预测模式候选列表也与区域的MPM列表无关。可选帧内预测模式集合一般包括DC、Planar和多个角度模式,可选帧内预测模式集合中的角度模式可以是全部的角度模式,也可以是筛选出的部分角度模式。一般地,可选帧内预测模式集合中的角度模式的序号呈等差数列。例如,可选帧内预测模式集合中的角度模式可以由所有序号为偶数的角度模式组成。第一帧内预测模式候选列表中帧内预测模式的数量可以根据实际需要确定,例如为了确保第一帧内预测模式候选列表中存在角度模式,可以将数量设置为至少3个。
[0111] S312:计算第一帧内预测模式候选列表中角度模式的邻近模式的预测代价,并与第一帧内预测模式候选列表中的帧内预测模式的预测代价进行比较,基于预测代价最小的原则对第一帧内预测模式候选列表进行更新。
[0112] 更新之后第一帧内预测模式候选列表中的帧内预测模式的数量维持不变。若邻近模式A的预测代价小于第一帧内预测模式候选列表中帧内预测模式B的预测代价,则对第一帧内预测模式候选列表进行更新,具体包括第一帧内预测模式候选列表中的B替换为A。本步骤得到的第一帧内预测模式候选列表仍旧与MPM列表无关,且其中每个帧内预测模式对应的参考线index仍然均为0。
[0113] S313:计算区域在除第一条之外的所有参考线上的MPM列表中的帧内预测模式的预测代价,并与第一帧内预测模式候选列表中的帧内预测模式的预测代价进行比较,基于预测代价最小的原则对第一帧内预测模式候选列表进行更新。
[0114] 本步骤得到的第一帧内预测模式候选列表中的帧内预测模式对应的参考线index可能大于0。
[0115] S314:将区域在至少部分参考线上的MPM列表中的前N个帧内预测模式插入第一帧内预测模式候选列表,然后对第一帧内预测模式候选列表进行第二操作。
[0116] 1<=N<=M,M为单个MPM列表中帧内预测模式的总数。第二操作包括合并重复模式并去除不在MPM列表中的模式。第二操作需要同时判断模式的序号和对应参考线的序号,例如,判断插入的某个帧内预测模式C和第一帧内预测模式候选列表中已有的帧内预测模式D是重复的条件为:帧内预测模式C和D的序号相同,且二者对应的参考线的序号相同。执行第二操作之后的第一帧内预测模式候选列表可用于后续的细选。
[0117] S32:从第一帧内预测模式候选列表和第二帧内预测模式候选列表中选择预测代价最小的一个帧内预测模式作为区域的帧内预测模式。
[0118] 第二帧内预测模式为非子块模式下当前编码块的帧内预测模式候选列表。本步骤可以被称为细选。
[0119] MPM列表和第一帧内预测模式候选列表中的每个帧内预测模式都有对应的参考线序号。在计算其中某个帧内预测模式预测代价的过程中,需要按照该帧内预测模式所指的方向找到区域中所有像素在对应的参考线上的参考像素,再根据参考像素的像素值计算出区域在该帧内预测模式的预测代价。
[0120] 每个区域都有至少一条参考线,不同的区域的至少一条参考线至少部分不重叠。例如,每个区域的参考线数量与当前编码块的参考线数量相同,每条参考线包括位于区域/当前编码块左侧的第一参考线和位于区域/当前编码块上侧的第二参考线,每个区域的每条第一参考线与区域之间的距离均等于当前编码块的对应第一参考线与当前编码块的距离,每个区域的每条第二参考线与区域之间的距离均等于当前编码块的对应第二参考线与当前编码块的距离。
[0121] 举例说明,如图9所示,当前编码块被划分为两个子块,每个子块就是一个区域,图中虚线表示参考线,每个子块有3条参考线,index为0,1和3。
[0122] 若每个区域包括若干个子块,在区域包括一个子块的情况下,区域的参考线可以为该子块的参考线;区域包括至少两个子块的情况下,区域的参考线可以为区域中最左/最上的子块的参考线。当然,也可以为不同的区域选择完全重叠的参考线,例如直接将当前编码块的参考线作为不同区域的参考线。
[0123] 每条参考线包括多个参考像素,参考像素的像素值一般来自于已完成编码的像素值。确定参考像素的像素值之后,可以判断是否进行滤波。
[0124] 可以为当前编码块中的每个区域执行S2-S3。或者,为当前编码块中的部分区域执行S2-S3,其他区域采用其他方式选择帧内编码模式。
[0125] 注意若采用本发明提供的区域划分的方式进行帧内预测模式选择,需要传递两个句法元素,一个句法元素useregion用于表明是否使用区域划分,另一个句法元素region_type用于表明区域划分方式。若涉及到至少两条参考线,可以传递各条参考线的index以及参考线对应的ISP_type,句法元素ISP_type用于表明当前参考线对应的ISP划分方式是哪种,。
[0126] 若不采用区域划分的方式,只对原始编码块做一次模式选择时,就不需要传递区域划分相关的句法元素,但仍需要传参考线index以及参考线对应的句法元素ISP_type。
[0127] 通过本实施例的实施,若当前编码块被划分为至少两个区域,基于区域的MPM列表为区域选择帧内预测模式,不同区域的帧内预测模式可能不同,最终选出的帧内预测模式为该区域的最优帧内预测模式的可能性变大,提高帧内预测模式选择的准确度。
[0128] 若当前编码块被划分为一个区域,在该区域(即当前编码块)的MPM列表构建过程中考虑了ISP模式下的MPM列表,最终选出的帧内预测模式为该区域的最优帧内预测模式的可能性变大,提高帧内预测模式选择的准确度。
[0129] 此外,若参考线的数量大于一,MPM列表的构建考虑到了区域与至少一条参考线之间的相关性,参考像素的分布范围更大,最终选出的帧内预测模式为该区域的最优帧内预测模式的可能性进一步变大,进一步提高帧内预测模式选择的准确度。
[0130] 请参阅图10,图10为本发明编码器一实施例的结构示意图。如图10所示,该编码器30包括处理器31。
[0131] 处理器31还可以称为CPU(Central Processing Unit,中央处理单元)。处理器31可能是一种集成电路芯片,具有信号的处理能力。处理器31还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0132] 编码器可以进一步包括存储器(图中未示出),用于存储处理器31运行所需的指令和数据。
[0133] 处理器31用于执行指令以实现上述本发明帧内预测模式选择方法任一实施例及任意不冲突的组合所提供的方法。
[0134] 参阅图11,图11为本发明存储装置一实施例的结构示意图。本发明实施例的存储装置40存储有指令,该指令被执行时实现本发明帧内预测模式选择方法任一实施例以及任意不冲突的组合所提供的方法。其中,该指令可以形成程序文件以软件产品的形式存储在上述存储装置中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
[0135] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0136] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。