Processing

Please wait...

PATENTSCOPE will be unavailable a few hours for maintenance reason on Tuesday 26.10.2021 at 12:00 PM CEST
Settings

Settings

Goto Application

1. CN107079161 - Method of intra picture block copy for screen content and video coding

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
用于屏幕内容以及视频编码的帧内图片块复制的方法


【相关申请的交叉引用】
本发明主张申请于2014年9月1日,序列号为62/044,385的美国临时专利申请的优先权。将此美国临时专利申请以参考的方式并入本文中。
【技术领域】
本发明涉及使用帧内图片块复制(Intra picture block copy,IntraBC)模式的屏幕内容或视频编码。特别地,本发明涉及对应于IntraBC的预测子作为用于屏幕内容编码或视频编码的合并或跳过候选。
【背景技术】
高效视频编码(High Efficiency Video Coding,HEVC)是近年被开发出来的一种新的编码标准。于HEVC系统中,H.264/AVC中的固定大小的宏区块由称为编码单元(codingunit,CU)的可变块(flexible block)来替代。CU中的像素共用相同的编码参数以提升编码效率。CU可以从最大CU(largest CU,LCU)开始,于HEVC中,其也被称为编码树单元(codedtree unit,CTU)。除编码单元的概念以外,HEVC中也引入了预测单元(prediction unit,PU)的概念。当CU分层树的分割被执行,根据预测类型以及PU分区,每个叶CU(leaf CU)可以进一步被分割为一个或多个PU。
在用于HEVC标准的范围扩展(range extensions,RExt)或屏幕内容编码的当前发展过程中,一些工具已经因其能改善屏幕内容的编码效率而被采用。对于帧内编码块,根据现有的方法,帧内预测是使用基于来自相邻块的重建像素的预测来执行。帧内预测可从一组帧内模式中选择一个帧内预测模式,其中,一组帧内模式包括:垂直模式、水平模式、以及各种角度的预测模式。对于HEVC范围扩展以及屏幕内容编码,已经公开了一种被称为帧内图片块复制(Intra picture block copy,IntraBC)的新的帧内编码模式。IntraBC技术最初由Budagavi于AHG8(Video coding using Intra motion compensation,JointCollaborative Team on Video Coding(JCT-VC)of ITU-T SG 16WP 3and ISO/IEC JTC1/SC 29/WG 11,13th Meeting:Incheon,KR,18-26Apr.2013,Document:JCTVC-M0350(在下文中被称为JCTVC-M0350))中提出。根据JCTVC-M0350的示例如图1所示,其中,当前编码单元(coding unit,CU)110使用帧内图片块复制模式来编码。预测块(prediction block)120是由当前CU 110以及位移向量112来定位。位移向量也被称为块向量(block vector,BV)。在此示例中,搜索区域被限制在当前编码树单元(coding tree unit,CTU)、左侧CTU、以及左侧的左侧CTU(left-left CTU)。预测块是从已经重建的区域获得。接着,对当前CU的位移向量以及残差进行编码。众所周知,HEVC采用CTU以及CU块结构来作为用于编码视频数据的基本单元。每个图片被分割为多个CTU,且每个CTU被简单地分割为多个CU。在预测阶段,每个CU可被分割为多个被称为预测单元(prediction unit,PU)的块,用于执行预测过程。在用于每个CU的预测残差形成后,与每个CU相关联的残差被分割为多个被称为变换单元(transform unit,TU)的块,以应用变换(例如,离散余弦变换(discrete cosinetransform,DCT))。
于JCTVC-M0350中,IntraBC至少在以下方面是不同于用于帧间预测的运动补偿:
·用于IntraBC的BV被限制为一维(1D)(即,水平或垂直),而帧间预测使用二维(2D)运动估计。
·用于IntraBC的二进制化为固定长度,而帧间预测使用指数哥伦布(exponential-Golomb)。
·IntraBC引入了一个新的语法元素来标识BV是水平还是垂直。
基于JCTVC-M0350,一些修改由Pang等作者于Non-RCE3(Intra MotionCompensation with 2-D MVs,Joint Collaborative Team on Video Coding(JCT-VC)ofITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11,14th Meeting:Vienna,AT,25July-2Aug.2013,Document:JCTVC-N0256(在下文中被称为JCTVC-N0256))中揭露。首先,IntraBC被扩展以支持2D运动向量(motion vector,MV),使得垂直以及水平的MV分量可以同时是非零的。这比原始方法为IntraBC提供了更多的灵活性,其中,MV被限制为严格水平或垂直。
于JCTVC-N0256中,揭露了两个BV编码方法:
·方法1:块向量预测。选择左侧或上方BV作为BV预测子,并对所得到的块向量差(block vector difference,BVD)进行编码。使用一旗标来指示BVD是否为零。当BVD不为零时,使用3阶的指数哥伦布码来对BVD的剩余绝对电平进行编码。另一旗标被用于编码符号(sign)。
·方法2:非块向量预测。BV使用用于HEVC中的BVD的指数哥伦布码来编码。
JCTVC-N0256中所揭露的另一差别在于2D IntraBC进一步与管线友好方法(pipeline friendly approach)合并:
1.不使用内插滤波器。
2.BV搜索区域被限制。揭露了两种情况:
a.搜索区域为当前CTU以及左侧CTU,或
b.搜索区域是当前CTU以及左侧CTU的最右边4列样本。
于JCTVC-N0256所提出的方法中,HEVC Rext标准草案的新版本中已经采用了2DIntraBC、内插滤波器的移除、以及将搜索区域限制在当前CTU以及左侧CTU。
根据JCTVC-R0309(Pang,et al.,Non-SCCE1:Combination of JCTVC-R0185andJCTVC-R0203,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16WP3and ISO/IEC JTC 1/SC 29/WG 11,18th Meeting:Sapporo,JP,30June-9July 2014,Document:JCTVC-R0309(在下文中被称为JCTVC-R0309)),BV编码被修改以使用相邻已编码的BV来作为BV预测子(BV predictor,BVP)。导出BV预测子的方式类似于HEVC中的高级运动向量预测(advanced motion vector prediction,AMVP)方案。通过根据如图2所示的优先权顺序首先检查空间相邻块a1以及b1的BV的可用性来构建预测子候选列表。如果这两个空间邻居(spatial neighbor)都不包括块向量,则最后两个已编码BV被用来填充块向量候选列表,以使列表将包含两个不同的条目。最后两个已编码BV被初始化为(-2*CU_width,0)以及(-CU_width,0)。为了避免需要线缓冲器来存储先前已编码的BV,当前CTU外部的任何空间相邻块a1以及b1以及最后的BV被认为是不可用的。用于每个CTU的最后两个已编码BV被重置为(0、0)以防止数据依赖(data dependency)。
而且,于HEVC中,合并候选是由用于编码于帧间已编码条带的当前块的空间/时间相邻块导出。合并旗标(merge_flag)被用于标识当前块是否被合并至其候选中的一个。如果merge_flag指示当前块使用合并模式,则使用另一索引来指示哪个候选被用于合并模式。例如,如果图2中的候选块a1被标识为将要被使用的候选,则当前块将与块a1共享相同的MV以及参考图片。
如果任何合并候选是不可用的(例如:不存在或不是帧间编码),则插入一个或多个附加候选(additional candidate)。如果插入附加候选后合并候选列表仍然不满,参考图片索引(refIdx)等于0的零值运动向量将被用于填充所有空的候选(empty candidate)。
可插入两个类型的附加候选:
1.组合双向预测合并候选(Combined bi-predictive Merge candidate)(候选类型1),
2.零向量合并/AMVP候选(候选类型2)。
类型2的附加候选被插入到类型1的附加候选后。
对于类型1的候选,组合双向预测合并候选是通过组合原始合并候选来创建。特别地,来自原始候选中的两个候选被用于创建双向预测合并候选。原始候选可包含具有refIdxL0(列表0中的参考图片索引)的mvL0(列表0中的运动向量)或具有refIdxL1(列表1中的参考图片索引)的mvL1(列表1中的运动向量)。图3A以及图3B所示为组合双向预测合并候选的导出过程的示例,其中,mvL0_A以及mvL1_B为两个单向预测合并候选。图3A所示为原始合并候选列表310以及添加组合候选后的合并候选列表320,其中,添加的合并候选通过虚线背景突出显示。另外,合并索引0被分配给单向预测合并候选mvL0_A,合并索引1被分配给单向预测合并候选mvL1_B,且合并索引2被分配给双向预测合并候选(mvL0_A,mvL1_B)。如图3B所示,候选MVL0_A指向参考列表L0中的参考图片ref0,且候选MVL1_B指向参考列表L1中的参考图片ref0。如图3B所示,两个单向预测合并候选被组合为一个双向预测合并候选。
于类型2的候选中,零值(zero-valued)合并/AMVP候选是通过组合可被参考的零值和参考图片索引来创建。图4A所示为将零值合并候选添加到原始合并候选列表410中以形成填充后的合并候选列表420的示例。图4B所示为将零值AMVP候选添加到原始AMVP候选列表430中以形成填充后的AMVP候选列表440的示例。如果零值候选不重复,则将其添加到合并/AMVP候选集合中。
希望能进一步改善IntraBC模式的性能。
【发明内容】
本发明揭露了一种用于图片的使用包括帧内块复制(Intra-block copy,IntraBC)模式的一个或多个编码模式的屏幕内容编码(screen content coding,SCC)以及视频编码的方法。在一个实施例中,包括一个或多个IntraBC合并候选以及一个或多个帧间合并候选的第一合并候选列表被导出。如果IntraBC合并候选是从用于当前块的第一合并候选列表中选择,则通过将所选择的IntraBC合并候选的候选运动信息共享为当前块的当前运动信息来对当前块的当前运动信息进行编码或解码,且当前块使用当前图片中的已编码块来编码或解码,其中,当前图片中的已编码块是根据作为IntraBC预测子的所选择的IntraBC合并候选的候选运动信息来定位。候选运动信息或当前运动信息可包含从包括编码模式、位移向量、以及参考图片信息的运动信息组中所选择的一个或多个元素。编码模式可包括IntraBC模式以及帧间模式;位移向量可对应于块向量(block vector,BV)或运动向量(motion vector,MV);且参考图片信息可包含参考图片索引(RefIdx)、参考图片列表(RefList)、或参考图片索引(RefIdx)以及参考图片列表(RefList)。
第一合并候选列表中包括的每个帧间合并候选的候选运动信息识别一个参考列表中的一个时间参考图片中的一个时间参考块。此外,如果帧间合并候选是从用于当前块的第一合并候选列表中选择,则通过将所述一个帧间合并候选的候选运动信息共享为当前块的当前运动信息来编码或解码当前块的当前运动信息,且使用一个参考列表中根据作为帧间预测子的当前运动信息来定位的一个时间参考图片中的已编码块来编码或解码当前块。
可基于编码于IntraBC模式或帧间模式的一个或多个空间相邻块、一个或多个时间块、或一个或多个空间相邻块以及一个或多个时间块来导出第一合并候选列表。之后,如果第一合并候选列表未满,则可将一个或多个预定义的非零块向量、一个或多个最后编码的块向量、或一个或多个预定义的非零块向量以及一个或多个最后编码的块向量添加到第一合并候选列表。非零块向量可对应于从包括(-W,0)、(-2W,0)、(0,-H)、(0,-2H)以及(-W,-H)的预定义的BV组中选择的一个或多个元素,其中,W以及H分别对应于当前块的宽度以及高度。部分的或所有的预定义的非零块向量、最后编码的块向量、或预定义的非零块向量以及最后编码的块向量可被添加到双向预测合并候选之前,或被添加到双向预测合并候选之后以及零值合并/AMVP候选之前。在以上附加候选被添加之前或之后,第一合并候选列表可被修剪以移除任何冗余合并候选。编码于IntraBC模式的空间相邻块可被限制在当前块的当前CTU内,或当前CTU以及当前块的上方的上方CTU内。在此情况下,通过对大于最小块尺寸的每个目标块尺寸存储一个块向量,可以压缩形式来存储与编码于IntraBC模式的空间相邻块相关联的块向量。
与IntraBC合并候选相关联的块向量可通过重新使用用于存储与帧间编码块相关联的运动向量的帧间运动向量缓冲器来存储。
于当前块使用IntraBC模式来编码时,可于编码器侧传送(signaled)或于解码器侧解析(parsed)对应于合并候选索引的第一语法,以从第一合并候选列表选择IntraBC合并候选。类似地,于当前块使用帧间模式来编码时,可于编码器侧传送或于解码器侧解析对应于合并候选索引的第一语法,以从第一合并候选列表选择帧间合并候选。
当纯的IntraBC合并候选列表被使用时,可将与第一合并候选列表中IntraBC合并候选的最大数量相关的语法并入条带标头、图片参数集(picture parameter set,PPS)、序列参数集(sequence parameter set,SPS)、视频参数集(video parameter set,VPS)、条带标头SCC扩展、PPS SCC扩展、SPS SCC扩展、或VPS SCC扩展。
在另一实施例中,如果当前块被编码于IntraBC模式,用于当前块的当前块向量被传送于编码器侧,或被解析于解码器侧。通过重新使用用于存储已编码块的运动向量的帧间运动向量缓冲器来存储当前块向量。于当前块向量被存储于帧间运动向量缓冲器时,当前块向量对帧间运动向量缓冲器的重新使用可通过将用于当前块的参考图片索引设置为-1、不可用的、或等于或大于参考列表中参考图片的数量的值,或将帧间预测方向interDir设置为0来指示。
【附图说明】
图1所示为根据帧内图片块复制(Intra picture block copy,IntraBC)模式的帧内运动补偿的示例,其中,水平位移向量被使用。
图2所示为用于导出用于HEVC AMVP的运动向量预测子的相邻块配置,其中,根据JCTVC-R0309,块a1以及b1被用于导出用于IntraBC模式的MVP候选。
图3A以及图3B所示为根据HEVC的组合双向预测合并候选的导出过程的示例,其中,图3A所示为原始合并候选列表以及具有附加的双向预测合并候选的合并候选列表,且图3B所示为单向预测运动向量以及导出的组合双向预测运动向量的场景。
图4A以及图4B所示为根据HEVC的将预设的候选增加到未满的合并/AMVP列表的示例,其中,图4A所示为合并候选列表的情况,且图4B所示为AMVP候选列表的情况。
图5所示为结合本发明实施例的示范性编码系统的流程图,其中,IntraBC合并候选被包括以用于合并模式。
【具体实施方式】
下文的描述是实施本发明的最佳预期模式。这种描述是为了说明本发明的一般原理,且不应被理解成对本发明的限制。本发明的范围可通过参考所附权利要求做最好的确定。
在本发明中,揭露了基于IntraBC预测的合并候选。跳过模式被认为是合并模式的特定情况,其中,块的残差为零,使得不需要传送残差。因此,虽然以下的公开是针对用于合并模式的发明,需要理解的是,本公开也可扩展到跳过模式。于本发明的一个实施例中,跳过模式以及合并模式被启用以支持帧间预测以及IntraBC预测。例如,以帧间模式或IntraBC模式编码的空间相邻块和/或时间相邻块(也被称作:时间块)可被认为是有效的跳过或合并候选。
帧间以及IntraBC合并候选的混合使用
当对当前块启用IntraBC模式时,相邻块可被编码于帧内预测模式、帧间模式、或IntraBC模式。根据本发明,除了帧间合并候选以外,还可使用一个或多个IntraBC合并候选。可根据IntraBC预测来导出合并候选。于HEVC标准中,当merge_flag为真(即,选择合并模式)时,语法元素merge_idx用于标识哪一个合并候选被用于合并到当前块。因此,如果merge_idx指向编码于帧间模式的合并候选,则当前块将共享候选块的编码模式、位移向量、以及参考帧信息。类似地,如果merge_idx指向编码于IntraBC模式的合并候选,则当前块将共享候选块的块向量。例如,于图2中,如果候选块a1使用MV=MV_a1、RefList=RefList_a1以及RefIdx=RefIdx_a1来进行帧间编码,且候选块b1使用BV=BV_b1来进行IntraBC编码。当merge_flag为真时,如果merge_idx指向块a1,则当前块使用MV=MV_a1、RefList=RefList_a1、以及RefIdx=RefIdx_a1来进行帧间编码。如果merge_idx指向b1,则当前块使用BV=BV_b1来进行IntraBC编码。
如果MODE_INTRABC表示用于IntraBC预测模式的语法,且MODE_INTER表示用于帧间预测的语法,根据所选择的合并候选,合并编码块(Merge coded block)的预测模式可被设置为MODE_INTER或MODE_INTRABC。例如,如果所选择的合并候选为帧间编码块(Intercoded block),则当前块的预测模式被设置为MODE_INTER。如果所选择的合并候选为IntraBC编码块(IntraBC coded block),则当前块的预测模式被设置为MODE_INTRABC。
如果intra_bc_flag被用于指示当前块是否为IntraBC编码块,则根据所选择的合并候选,此合并编码块的intra_bc_flag可被设置为0或1。例如,如果所选择的合并候选为帧间编码块,则当前块的intra_bc_flag被设置为0。如果所选择的合并候选为IntraBC编码块,则当前块的intra_bc_flag被设置为1。
在一个示例中,对于混合的帧间/IntraBC合并模式的情况,IntraBC模式的信令(signaling)可位于PU等级。用于合并模式的语法首先被传送。如果语法指示块不是使用合并模式来编码,则语法intra_bc_flag被用于表示非合并块(non-Merge block)是否使用IntraBC模式来编码。如果其不使用IntraBC模式来编码,则用于正常帧间模式的语法将被传送。表1以及表2所示为结合本发明实施例的分别用于CU等级及PU等级的示范性语法表。
表1
表2
表1所示为根据一个实施例的来自现有的语法表的CU等级的改变的一个示例,其中,双删除线表示删除。现有的编码仅允许用于帧间已编码CU的跳过模式。由于跳过模式被视为合并模式的特定情况,且合并模式可被用于IntraBC编码块,因此,如注释(1-1)所指示的用于检查非帧内CU的语法线被删除。在此示例中,IntraBC模式旗标从CU等级移动到PU等级。因此,(1-2)以及(1-3)中指示的语法线也被删除。
表2所示为根据一个实施例的来自现有的语法表的PU等级的改变的一个示例。merge_flag的位置是由注释(2-1)来指示。当由注释(2-2)指示的非合并模式(即,“else”路径)被使用时,如注释(2-3)所示,并入intra_bc_flag。如注释(2-4)所示,检查intra_bc_flag的值。由注释(2-5)所指示,如果PU为非IntraBC编码(即,“else”路径),则用于帧间模式的语法跟随(由“...”所示)由注释(2-6)所指示。
于另一示例中,IntraBC模式的信令可位于CU等级,表3以及表4所示为分别用于CU等级以及PU等级的示范性语法表。
表3
表4
表3所示为根据一个实施例的来自现有的语法表的CU等级的改变的一个示例,其中,双删除线表示删除。表3类似于表1。如注释(3-1)所指示的用于检查非帧内CU的语法线被删除。IntraBC模式旗标保留于(3-2)以及(3-3)中所指示的CU等级。
表4所示为根据一个实施例的来自现有的语法表的PU等级的改变的一个示例。于注释(4-1)指示的语法线中,检查CU是否被编码于跳过模式。如注释(4-2)所指示,如果CU未被编码于跳过模式且IntraBC模式被启用,则如注释(4-3)所指示的Merge旗标merge_flag[x0][y0]被包括。由注释(4-4)所指示,如果merge_flag[x0][y0]等于1,则如注释(4-5)以及(4-6)所指示,与IntraBC合并候选相关的信息被包括。如果merge_flag[x0][y0]等于0(即,由注释(4-7)所指示的“else”路径),则如注释(4-8)以及(4-9)所指示,与BV编码相关的信息被包括。来自注释(4-3)到(4-7)的语法线对应于支持本发明实施例的附加的语法线的示例。
于表3以及表4所示的实施例中,如果intra_bc_flag被显式地标识为1,则合并模式可以是纯IntraBC合并模式,且合并列表不包括帧间候选。这意味着对于合并候选导出,只有IntraBC已编码块的BV被用作合并候选。帧间编码块的MV被视为不可用。如果预测模式被显式地标识为MODE_INTER(即,注释(4-10)所指示的语法线),则合并模式可以是单独的帧间合并模式。需要注意的是,跳过模式仍然是混合的帧间/IntraBC跳过模式。
于另一示例中,IntraBC模式的使用被标识于CU等级。表5以及表6所示为分别用于CU等级以及PU等级的示范性语法表,其中,合并模式根据I条带中的intra_bc_flag=1被标识。于P条带或B条带中,合并模式语法与帧间合并模式编码相同。根据本发明的实施例,如果当前块被编码于IntraBC编码合并模式,由于IntraBC编码被视为帧间模式,则对应语法元素将被解析于MODE_INTER预测模式。然而,如果所选择的合并候选为IntraBC编码块,预测模式将被设置为MODE_INTRABC或intra_bc_flag将被设置为1。
表5
表6
表5与表3相同。表6类似于表4。然而,只有当如注释(6-1)所指示的条件“if(slice_type==I_SLICE)”为真时,如注释(4-3)所指示的合并旗标merge_flag[x0][y0]被包括。
在如上所公开的实施例中,跳过模式也可被应用于帧内条带,其中,跳过以及合并模式中的所有的有效合并候选也被用于帧内条带中的IntraBC编码块。
合并候选列表创建(Merge candidate list construction)
本发明的另一方面解决了合并候选列表创建。于本发明的实施例中,当合并候选列表未满时,预设的值被用作默认的IntraBC合并候选。
此外,根据本发明的实施例,在合并候选列表创建过程中,修剪过程可被使用。部分或全部的重复候选值将被移除。当没有足够的候选来填充合并候选列表时,现有的方法通常使用(0、0)运动向量来填充列表。但是,此零值BV对于IntraBC预测是不可用的。因此,本发明的实施例使用非零值BV(也被称为非零BV)作为附加的合并候选来填充候选列表。当merge_idx指向这些附加候选中的一个时,当前块将被编码于IntraBC模式,且共享由merge_idx指向的合并候选的BV。
在一个实施例中,根据块尺寸来确定非零值BV的预设值。例如,非零值BV的预设值对应于有序集合{(-W,0),(-2W,0),(0,-H),(0,-2H),(-W,-H)},其中,W以及H是指当前预测块或当前编码单元的宽度以及高度。于以上示例中,如果列表未满,候选(-W,0)将被插入到合并列表中。在第一个成员被添加到合并列表后,如果列表仍然未满,则将有序集合中的第二元素(即,(-2W,0))添加到列表中。在另一实施例中,非零值BV的预设值对应于有序集合{(-2W,0),(-W,0),(0,-2H),(0,-H),(-W,-H)}。
在另一实施例中,N个最后编码的BV也可被用于填充候选列表。例如,N可等于1、2、3等。
在又一实施例中,可以同时使用N个最后编码的BV以及预设值来填充候选列表。例如,可使用对应于{第一最后编码的BV,第二最后编码的BV,(-W,0),(-2W,0),(0,-H)}或{第一最后编码的BV,第二最后编码的BV,(-2W,0),(-W,0),(0,-2H)}的有序集合。于这些两个示例中,假设合并候选的最大数量为5。于又一示例中,最后编码的BV可被放置在预设的BV之后。
如果候选恰好是当前块的相邻块的编码BV,则最后编码的BV可能已经被放入合并候选列表中。修剪过程可被应用于最后编码的BV以移除冗余候选。例如,最后编码的BV可与已经存在于候选列表中的IntraBC编码候选进行比较。冗余的最后编码的BV可被移除。相同的修剪方法可被应用于预设的BV(例如:(-W,0)、(-2W,0)、(0,-H)、(0,-2H)、以及(-W,-H))。
在添加一个或多个附加的合并候选以填充合并列表的过程中,部分或全部的附加的合并候选可于作为附加候选的类型1的组合双向预测合并候选之前或之后被插入。例如,对应于(-2W,0)以及(-W,0)的预设的BV可于组合双向预测合并候选之前被插入。
上述填充的BV候选的部分或全部可于类型1的附加候选之后以及类型2的附加候选之前被插入合并列表中。例如,对应于(-2W,0)以及(-W,0)的BV可被插入到类型1的附加候选之后以及类型2的附加候选之前。上述填充的BV候选的部分或全部也可于部分类型2的附加候选之后被插入到合并列表中。例如,对应于(-2W,0)以及(-W,0)的BV可被插入到第一个类型2的附加候选之后。
上述填充的BV候选的部分或全部可被插入到类型2的附加候选之后以及参考图片索引(refIdx)等于0的零值运动向量之前。例如,对应于(-2W,0)以及(-W,0)的BV可被插入到类型2的附加候选之后。填充的BV候选的部分或全部可被用于替换类型2的附加候选。
上述填充的BV候选可以仅被应用于I条带。虽然上述的本公开使用预设的非零BV或最后编码的BV作为附加的合并候选以及I条带中类型1和/或类型2的附加候选,但类型1和/或类型2的附加候选也可被移除。
于类型1的附加候选导出中,可排除IntraBC编码BV以产生组合合并候选(combined Merge candidate)。例如,如果合并候选0是IntraBC编码BV,则其不会被用于产生组合合并候选。
在现有的技术中,对应图片(collocated picture)中的时间候选可被用于合并模式以及AMVP模式以用于帧间编码块。于合并候选以及AMVP MV预测子导出中,IntraBC编码块被视为不可用的。然而,在本发明的实施例中,对应图片中的IntraBC编码块的BV被用作合并候选或BV预测子中的一个。例如,如果时间帧间候选(temporal Inter candidate)是不可用的,则可用的时间IntraBC候选被包括。对应图片中时间IntraBC候选的位置可与对应图片中时间帧间候选的位置相同。
由于一些BV可能不是有效的BV,因此,无效的BV可从合并候选导出中被排除。例如,等于(0、0)的BV,或指向当前图片外部、未解码的区域、或相同编码单元内已解码的区域的BV是无效BV。这样的BV可从候选合并列表中被移除。
编码于IntraBC模式的空间相邻合并候选可被视为可用而没有任何限制。然而,来自当前块上方的编码于IntraBC模式的空间相邻合并候选可被限制在当前CTU内。如果候选来自于当前块上方的CTU,则将其视为不可用的。对相同CTU的相邻候选的这种限制可以减轻对来自当前块上方的CTU行的候选的存储的需求。在又一实施例中,来自当前块上方的相邻候选块被限制在当前块上方的CTU。当施加此限制时,以上方CTU行相关联的已编码BV是以压缩形式来存储。例如,可为较大的块尺寸(larger block size)存储BV以实现压缩。因此,具有单独BV值的最小块将不再是4x4。例如,BV可被存储于较大的块尺寸(例如:16x16)。因此,在此示例中,上方CTU行将仅存储用于每个16x16块的BV值。
可根据条带类型适应性地应用以上限制。例如,对于帧内条带,如果空间候选是来自当前块上方的CTU,则用于跳过、合并、和/或IntraBC模式的空间候选被认为是不可用的。另一方面,对于帧间条带,用于跳过、合并、和/或IntraBC模式的空间候选则没有这样的限制。于另一示例中,用于帧内条带的用于较大的块尺寸的已编码BV可以压缩格式的形式来存储。当空间候选位于当前CTU上方的CTU并且与所存储的BV的位置相重叠时,所存储的BV可被用作此候选的BV,且可被用作为合并候选。然而,帧间条带中的已编码BV,可以或可以不经受这样的压缩。
IntraBC合并候选数量标识(IntraBC Merge candidate number signaling)
本发明的另一方面解决了IntraBC合并候选数量的标识。于HEVC中,根据语法five_minus_nax_num_merge_cand,帧间合并的最大候选数量被标识于条带标头。在一个实施例中,IntraBC合并候选的最大数量可被标识于条带标头、PPS、SPS、VPS、条带标头SCC扩展、PPS SCC扩展、SPS SCC扩展、或VPS SCC扩展。例如,语法five_minus_max_num_intra_bc_merge_cand可被标识以指示支持的IntraBC合并候选的最大数量减5。
用于块复制向量存储的帧间MV缓冲器的重新使用(Reuse)
本发明的另一方面解决了用于块复制向量存储的帧间MV缓冲器的重新使用。于IntraBC模式中,用于指示当前帧中预测块的BV可能需要被存储。因此,BV将需要额外的缓冲器来存储此BV。在一个实施例中,所存储的BV可被用作IntraBC合并候选以用于后续的已编码块(later coded block)。
根据本发明的一个实施例,帧间MV缓冲器(包括MV缓冲器以及refIdx缓冲器)被重新使用以存储BV。例如,如果等于(x,y)的BV被存储于帧间MV缓冲器中,对应的refIdx(即,参考图片索引)可被设置为-1、不可用的、或大于或等于此列表中参考帧的数量的值。因此,此refIdx将指示此参考图片索引是用于IntraBC已编码图片。备选地,interDir(即,帧间预测方向)可被设置为0,且存储等于(x,y)的MV以用于IntraBC模式的BV。
在各种系统配置(即,所有帧内(All Intra,AI)、随机存取(Random Access,RA)、以及低延迟B图片(Low Delay B Picture,LB))下,根据本发明的具有包括一个或多个IntraBC合并候选的合并模式的视频编码系统的性能与现有系统的性能的比较如表7以及表8所示。现有的系统对应于基于HEVC屏幕内容编码测试模型2(Screen Content CodingTest Model 2,SCM 2)的系统。对于表7,结合本发明实施例的系统对应于使用包括混合IntraBC候选以及帧间候选的合并候选列表的系统。对于表8,结合本发明实施例的系统对应于使用包括混合IntraBC候选以及帧间候选,且插入预设的非零BV以及来自最后编码的IntraBC块的两个BV的合并候选列表的系统。BD率的负值意味着本发明具有更佳的性能。如表7所示,本发明可达到高达5.5%。如表8所示,本发明可达到高达7.0%。因此,对现有方法的改进是巨大的。
表7
表8
图5所示为结合本发明实施例的示范性编码系统的流程图,其中,合并候选列表包括一个或多个IntraBC合并候选以及一个或多个帧间合并候选。如步骤510所示,系统接收与当前图片中当前块相关联的输入数据。对于编码来说,输入数据对应于将被编码的像素数据。对于解码来说,输入数据对应于将被解码的已编码像素数据。输入数据可以从存储器(例如,计算机存储器,缓冲器(RAM或DRAM)或其它媒体)或处理器中得到。于步骤520中,导出包括一个或多个IntraBC合并候选以及一个或多个帧间合并候选的合并候选列表。所述一个或多个帧间合并候选中的每个的候选运动信息识别一个参考列表中的一个时间参考图片的一个时间参考块。如步骤530所示,检查从用于当前块的合并候选列表选择的当前合并候选是否为IntraBC合并候选。如果所选择的合并候选为IntraBC合并候选(即,来自步骤530的“是”路径),则执行步骤540以及550。否则(即,来自步骤530的“否”路径),则跳过步骤540以及550。于步骤540中,通过将所选择的IntraBC合并候选的候选运动信息共享为当前块的当前运动信息来于编码器编码或于解码器解码当前块的当前运动信息。于步骤550中,使用由根据作为IntraBC预测子的所选择的IntraBC合并候选的候选运动信息定位的当前图片中的已编码块来于编码器编码或于解码器解码当前块。
根据本发明,以上所示的流程图旨在说明IntraBC编码的示例。本领域技术人员可以在不脱离本发明的精神实质的情况下修改每个步骤,重新排列所述步骤,分割步骤,或合并步骤来实施本发明。于本公开中,特定语法以及语义已经被用于说明实现本发明实施例的示例。本领域技术人员可以在不脱离本发明的精神实质的情况下将语法以及语义替换为等效的语法以及语义以实施本发明。
以上描述可使本领域的普通技术人员如特定应用及其要求的上下文提供的来实践本发明。对本领域技术人员来说,对所描述的实施例的各种修改是显而易见的,且本文定义的一般原理可被应用于其它实施例。因此,本发明并非意在限定于以上所示及所描述的特定实施例,而是要符合与此公开揭露的原理和新颖特征相一致的最宽范围。在以上详细描述中,各种具体细节被示出以便提供本发明的彻底理解。然而,本领域技术人员应知晓本发明是可被实践的。
如上所述,本发明的实施例可以由各种硬件,软件代码,或两者的组合来实现。例如,本发明的实施例可以对应于被集成到视频压缩芯片的一个或多个电子电路,或被集成于视频压缩软件的程序代码以执行本文所描述的处理过程。本发明的实施例还可以是执行于数字信号处理器上的程序代码,以执行本文所描述的处理过程。本发明还可包含由计算机处理器,数字信号处理器,微处理器,或现场可编程门阵列执行的多个功能。根据本发明,通过执行定义本发明所体现的特定方法的机器可读软件代码或固件代码,这些处理器可被配置为执行特定任务。软件代码或固件代码可被开发为不同的编程语言以及不同的格式或风格。软件代码还可被编译以用于不同的目标平台。然而,根据本发明的不同的软件代码的代码格式、风格及语言,以及用于配置代码以执行任务的其他方式,均不会背离本发明的精神以及范围。
在不脱离其精神或本质特征的情况下,本发明可以其它特定形式来体现。所描述的示例在所考虑的所有的方面都只是说明性的而不是限制性的。因此,本发明的范围是由其所附的权利要求来指示的,而不是由上文的描述来指示的。在权利要求的等效范围及含义内的所有改变均包含于本发明范围之内。