用于屏幕内容编码和视频编码的块向量剪切和编码的方法与流程

文档序号:12515713阅读:444来源:国知局
用于屏幕内容编码和视频编码的块向量剪切和编码的方法与流程

本发明主张在2014年10月8日提出的申请号为62/061,229的美国临时专利申请的优先权;主张在2014年10月14日提出的申请号为62/063,496的美国临时专利申请的优先权;以及主张在2014年10月23日提出的申请号为62/067,534的美国临时专利申请的优先权。本发明还涉及于2014年9月4日提交的申请号为62/045,620的美国临时专利申请。因此在全文中合并参考这些专利申请案。

技术领域

本发明是有关于包括帧内块复制(Intra-block copy,IntraBC)模式的视频编码,特别是有关于处理由块向量指向的一些数据不可用或无效的情况的技术。



背景技术:

高效率视频编码(High Efficiency Video Coding,以下简称为HEVC)是近年来已经开发的新的编码标准。在高效率视频编码系统中,H.264/AVC中固定尺寸的宏块由称为编码单元(coding unit,CU)的灵活块替换。编码单元中的像素共享相同的编码参数以提高编码效率。编码单元可从最大编码单元(largest CU,LCU)开始,其在HEVC中也被称为编码树单元(coded tree unit,CTU)。除了编码单元的概念,预测单元(PU)的概念也被引入HEVC中。一旦编码单元分层树的分割完成,则根据预测类型和预测单元分割,将每个叶编码单元进一步分割成一个或多个预测单元(PU)。

在高效率视频编码标准的屏幕内容编码(screen content coding)的当前发展中,已经采用了对屏幕内容的编码效率的改进的一些工具。对于帧内块(Intra block),使用基于来自相邻块的重建像素的预测,来执行根据现有方法的帧内预测。帧内预测可从一组帧内模式中选择一个帧内模式,这组帧内模式包括垂直模式,水平模式和各种角度预测模式。对于HEVC屏幕内容编码来说,已使用称为帧内块复制(IntraBC)的新的帧内编码模式。最初由Budagavi在AHG8中提出帧内块复制技术(Budagavi等人,AHG8:Video coding using Intra motion compensation,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11 13th Meeting:Incheon,KR,18–26Apr.2013,Document:JCTVC-M0350)(以下称为JCTVC-M0350)。根据JCTVC-M0350的示例在图1中示出。其中使用帧内运动补偿(motion compensation,MC)对当前编码单元(CU,110)进行编码。预测块(120)的位置来自当前编码单元和位移向量(112)。在该示例中,搜索区域限于当前编码树单元(coding tree unit,CTU),左侧编码树单元和左侧第二个编码树单元。从已经重建的区域获得预测块。然后,对位移向量(也称为块向量(block vector,块向量))和当前编码单元的残差进行编码。众所周知,HEVC采用编码树单元和编码单元块结构作为用于编码视频数据的基本单元。每个图像被分成多个编码树单元,并且每个编码树单元被划分成编码单元。在预测阶段期间,每个编码单元可以被划分为多个块,称为预测单元(prediction units,PU),用于执行预测处理。在针对每一编码单元形成预测残差之后,将与每一编码单元相关联的残差划分为称为变换单元(TU)的多个块以应用变换。

在JCTVC-M0350中,至少在如下方面,帧内运动补偿不同于用于帧间预测的运动补偿。

●运动向量被限制为1维(即水平或垂直)以用于帧内运动补偿,而帧间预测使用2维运动估计。

●二值化(Binarization)为固定长度以用于帧内运动补偿,而帧间预测使用指数哥伦布(exponential-Golomb)。

●帧内运动补偿引入新的语法元素以发信号指示运动向量为水平还是垂直。

基于JCTVC-M0350,Pang等在Non-RCE3中做了一些修改(Intra Motion Compensation with 2-D MVs,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11,14th Meeting:Vienna,AT,25July–2Aug.2013,Document:JCTVC-N0256(在下文中记做JCTVC-N0256))。首先,帧内运动补偿被扩展以支持2维运动向量,以使得运动向量分量可以同时为非0。对于帧内运动补偿来说,这将比原来的方式提供更大的灵活性,其中原来的方式中运动向量被限制为严格地水平或垂直。

在JCTVC-N0256中,揭示两种运动向量编码方法:

●方法1:运动向量预测。左侧或上方的运动向量被选择作为运动向量预测子,以及得到的运动向量差值(motion vector difference,MVD)被编码。一个标志用于指示运动向量差值是否为0。当运动向量差值不为0,则指数哥伦布编码的第三位指数被使用以编码运动向量差值的剩余绝对水平。另一个标志被使用以编码运动向量差值的符号。

●方法2:无运动向量预测。使用用于HEVC中的运动向量差值的指数哥伦布码,编码运动向量。

在JCTVC-N0256中揭示的其他差异是,2维帧内运动补偿被进一步与管线(pipeline)友好的方式结合:

1.不使用插值滤波器,

2.运动向量搜索区域被限制。分两种情况进行讨论:

a搜索区域为当前编码树单元和左侧编码树单元或者

b搜索区域为当前编码树单元和左侧编码树单元的最右边4列采样。

在JCTVC-R0309(Pang,et al.,Non-SCCE1:Combination of JCTVC-R0185 and JCTVC-R0203,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC29/WG11,18th Meeting:Sapporo,JP,30June–9July 2014,Document:JCTVC-R0309)中,块向量编码被修改为利用相邻块向量和已编码的块向量作为块向量预测子。块向量预测子技术在SCM 2.0(高效率视频编码屏幕内容编码测试模型2.0)中被采用。块向量预测子以与在HEVC中的先进运动向量预测(advanced motion vector prediction,AMVP)的方法相似的方式来得到。根据图2所示的优先顺序,通过先检查空间相邻块A1和B1处的块向量的可用性,预测子候选列表被构建。若空间相邻块均不包括块向量或者空间相邻块中的一个不包括块向量,则最后两个已编码的块向量或最后两个已编码的块向量的其中一个被用于填充块向量候选列表。替代的块向量利用(-2*CU_width,0)和(-CU_width,0)来初始化。为避免需要线缓冲器,在当前编码树单元之外的上方块向量被视为不可用。最后两个编码的块向量被重置为(0,0)以用于每一个编码树单元来避免数据依赖。

在HEVC中,合并候选自帧间已编码切片(slice)中的当前已编码块的空间/时间相邻块而得到。merge_flag被用于发送以指示是否当前块被合并至其候选中的一个。若是,则另一索引被用于发送当前块与哪一个候选合并。举例来说,若发送的第二索引指示图2中的候选块a1作为将被选择的候选,则当前块将共享与候选块a1中相同的运动向量和参考图像。相应地,不需要发送运动向量和参考图片以用于当前块。

当一个或多个合并候选不可用时(例如,不存在或非帧间编码),附加的候选被插入。若合并候选列表在插入附加的候选之后仍没有填满,则refIdx等于0的零运动向量将被用于填充所有的空候选。

两种类型的附加的候选可被插入如下所示。

1.结合的双向预测合并候选(Combined bi-predictive Merge candidate)(候选类型1),以及

2.零向量合并/先进运动向量预测候选(候选类型2)。

在类型-1的附加候选之后插入类型-2的附加候选。

在候选类型1中,结合的双向预测合并候选通过结合原始的合并候选来产生。特别是,原始候选中的两个原始候选被用于产生双向预测合并候选。其中一个候选在列表0中具有运动向量(即,mvL0)和在列表0中具有参考图片索引(即,refIdxL0),另一个候选在列表1中具有运动向量(即,mvL1)和在列表1中具有参考图片索引(即,refIdxL1)。

在候选类型2中,零向量合并/先进运动向量预测候选通过结合零向量和能被参考的参考索引而被产生。若零向量候选不能复制,则添加至合并/先进运动向量预测候选集中。

在JCTVC-R1014(Joshi等人,Screen content coding test model 2(SCM 2),Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,18th Meeting:Sapporo,JP,30June–9July 2014,Document:JCTVC-R1014)中揭示的SCM-2.0(屏幕内容编码测试模型版本2)中,根据揭露于JCTVC-R0186(Pang等人,SCCE1:Test 3.6–Block vector coding for Intra block copy,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16 WP 3and ISO/IEC JTC 1/SC 29/WG 11,18th Meeting:Sapporo,JP,30June–9July 2014,Document:JCTVC-R0186)中的方法,块向量差值的编码被修改。此外,根据JCTVC-R0186,块向量差值的编码使用一个上下文编码(context-coded)的二进制数(bin)来对每个向量分量进行编码。

调色板编码。在屏幕内容编码中,调色板用于表示给定视频块(例如,CU)。编码过程如Guo等人在JCTVC-O0218(Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1,15th Meeting:Geneva,CH,23Oct.–1Nov.2013,Document:JCTVC-O0218)中所揭示,如下所示:

1.调色板的传送:首先传送调色板尺寸,之后传送调色板元素。

2.像素值的传送:在编码单元中像素以光栅扫描的顺序而被编码。对于每一个位置,首先传送一个标志来指示是否开始使用“游程模式(run mode)”或“复制上方模式(copy above mode)”。

2.1“游程模式”:在“游程模式”中,首先发送调色板索引,随后发送“palette_run”(例如,M)。由于他们具有发送的相同的调色板索引,进一步的信息不需要被发送以用于当前位置和随后M个位置。调色板索引(例如,i)可由所有的三个颜色分量来共享,这意味着已重建的像素值(Y,U,V)=(paletteY[i],paletteU[i],paletteV[i])(假设颜色空间为YUV)。

2.2“复制上方模式”:在“复制上方模式”中,“copy_run”的值(例如,N)被传送以指示对于随后N个位置(包括当前位置),调色板索引等于在上方行中相同位置处像素的调色板索引。

3.残差的传送:在阶段2中传送的调色板索引被转换为颜色值并用作预测子。残差信息利用HEVC残差编码而被传送,并被添加至用于重建的预测中。

在JCTVC-N0247(Guo等人,RCE3:Results of Test 3.1 on Palette Mode for Screen Content Coding,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,14th Meeting:Vienna,AT,25July–2Aug.2013,Document:JCTVC-N0247)中,构建并传输每个分量的调色板。可以从其左相邻编码单元预测(共享)调色板以减小比特率。后来高通公司提出了他们的调色板编码技术的第二版本[1],其中调色板中的每个元素是三元组(triplet),表示三个颜色分量的特定组合。去除跨越编码单元的调色板的预测编码。此发明提出了也可以应用于三元组调色板格式(triplet palette format)的调色板预测/共享的使用。再次,只要上方编码单元与正被编码的当前编码单元(缩减行缓冲器)在相同的编码树块CTB(编码树单元(LCU))内,则使用来自左侧和/或上方编码单元的调色板。

基于主要颜色(或调色板)的编码。调色板编码是用于屏幕内容编码的另一工具,其中每个颜色分量的调色板被构造和传输。然而,可以从左侧编码单元的调色板预测调色板。对于调色板预测,可以从上述编码单元或左侧编码单元中的相应调色板条目来预测调色板中的各个条目。

在调色板的构造之后,根据调色板将当前块中的像素值映射到颜色索引,然后使用如JCTVC-O0182(Guo等人,AHG8:Major-color-based screen content coding,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16 WP 3 and ISO/15th Meeting:Geneva,CH,23 Oct.–1Nov.2013,Document:JCTVC-O0182)中描述的预测编码方法对颜色索引进行编码。根据JCTVC-O0182,可以通过不同的模式预测像素线。具体地,对于像素线使用三种线模式,即水平模式,垂直模式和正常模式。在水平模式下,相同线中的所有索引具有相同的值。如果该值与上方像素线的第一像素相同,则仅传输线模式信令比特(line mode signaling bits)。否则,也传输索引值。在垂直模式中,当前像素线与上方像素线相同。因此,仅传输线模式信令比特。在正常模式下,单独预测线中的像素。对于每个像素,将左侧或上方相邻用作预测子,并且将预测符号发送到解码器。

此外,根据JCTVC-O0182,将像素分类为主要颜色像素(major color pixels)和逸出像素(escape pixel)。对于主要颜色像素,解码器通过主要颜色像素索引(即,调色板索引)和调色板重建像素值。对于逸出像素,编码器必须进一步发送像素值。

对于帧内块复制编码,参考块的一些参考像素可能不可用。例如,当使用块向量预测时,当前块的解码块向量可以指向与尚未重建的图像区域重叠的参考块。因此,期望开发用于解决不可用参考数据的问题的技术。



技术实现要素:

本发明提出了一种视频编码方法。视频编码方法利用用于图片的包括帧内块复制模式的多个编码模式。在一个实施方式中,接收原始块向量,该原始块向量在当前图片中从当前预测单元指向的当前参考块。基于原始块向量,确定当前参考块在垂直方向上是否位于包含当前预测单元的当前编码单元的上方。此外,基于原始块向量,确定当前参考块在水平方向上是否位于当前编码单元的左侧。如果当前参考块在垂直方向上不位于当前编码单元的上方,并且当前参考块在水平方向上不位于当前编码单元的左侧,则原始块向量被剪切为剪切的块向量以使得与所剪切的块向量对应的重新定位的参考块在垂直方向上在当前编码单元的上方,或者在水平方向上在当前编码单元的左侧。经剪切的块向量可以用作对当前块向量进行编码或解码的预测子,或者将剪切后的块向量用作当前预测单元的编码或解码的合并候选或跳过候选。

可以基于多个参数,确定当前参考块是否在垂直方向上位于当前编码单元的上方,以及确定当前参考块是否在水平方向上位于当前编码单元的左侧,该多个参数包括原始块向量,当前预测单元的块尺寸以及当前预测单元的左上采样与当前编码单元的左上采样之间的水平距离和垂直距离。此外,关于当前参考块是否在垂直方向上位于当前编码单元的上方的决定,可以基于第一总和,该第一总和对应于原始块向量的垂直分量,当前预测单元的块高度以及当前预测单元的左上采样与当前编码单元的左上采样之间的垂直距离的负总和。相似地,关于当前参考块是否在水平方向上位于当前编码单元的左侧的决定,可以基于第二总和,该第二总和对应于原始块向量的水平分量,当前预测单元的块宽度和当前预测单元的左上采样与当前编码单元的左上采样之间的水平距离的负总和。原始块向量的垂直分量指向下时,原始块向量具有正值,以及如果第一总和等于或大于零,则当前参考块在垂直方向上位于该当前编码单元的上方。原始块向量的水平分量指向右时,原始块向量具有正值,以及如果第二总和大于或等于零,则当前参考块在水平方向上位于当前编码单元的左侧。

在一个示例中,如果第二总和大于或等于第一总和,则将原始块向量剪切为具有对应于当前预测单元的块宽度和当前预测单元的左上采样与该当前编码单元的左上采样之间的水平距离的负总和的水平分量。如果第二总和小于第一总和,则将原始块向量剪切为具有对应于当前预测单元的块高度和在当前预测单元的左上采样与当前编码单元的左上采样之间的垂直距离的负总和的垂直分量。在另一示例中,如果第二总和大于第一总和,则将原始块向量剪切为具有对应于当前预测单元的块宽度和在当前预测单元的左上采样与当前编码单元的左上采样之间的水平距离的负总和的水平分量。如果第二总和小于或等于第一总和,则将原始块向量剪切为具有对应于当前预测单元的块高度和当前预测单元的左上采样与当前编码单元的左上采样之间的垂直距离的负总和的垂直分量。

本发明可进一步包括如果当前参考块在水平方向上位于当前编码单元的左侧,则确定当前参考块是否与第一区域重叠,该第一区域在水平方向上位于当前编码单元的左侧,并且在垂直方向上位于包含当前编码单元的编码树单元的下方。如果当前参考块与第一区域重叠,则将原始块向量剪切为具有对应于编码树单元的块高度减去当前预测单元的块高度并减去当前预测单元的左上采样与编码树单元的左上采样之间的垂直距离的垂直分量。

本发明可进一步包括如果当前参考块在垂直方向上位于当前编码单元的上方,则确定当前参考块是否与第二区域重叠,该第二区域在水平方向上位于当前编码单元的上方,位于包含当前编码单元的编码树单元的右侧,并且在垂直方向上位于编码树单元的顶部边界的下方。如果当前参考块与第二区域重叠,则原始块向量被剪切以具有对应于当前预测单元的块高度和当前预测单元的左上采样和编码树单元的左上采样之间的垂直距离的负总和的垂直分量。

已剪切块向量被设置为预定义向量。其中预定义向量从包括(-W,0),(-2W,0),(0,-H),(0,-2H),(-W,-H)和(-2W,-2H)的组被选出;其中W和H分别对应于当前预测单元的宽度和高度,或者对应于包含当前预测单元的当前编码单元的宽度和高度。

本发明提供了另一种视频编码方法,其利用用于图片的包括帧内块复制模式的多个编码模式。在一个实施方式中,接收原始块向量,该原始块向量在当前图片中从当前预测单元指向当前参考块。其中,当前参考块和包含当前预测单元的当前编码单元不重叠;确定当前参考块的区域中的至少一个参考像素是否不可用;以及如果当前参考块的区域中的一个或多个参考像素不可用,将原始块向量剪切为已剪切块向量,以使得与已剪切块向量对应的重定位参考块中的所有像素可用于帧内块复制补偿;以及利用已剪切块向量作为预测子以用于对当前块向量进行编码或解码,或者利用已剪切块向量用于该当前预测单元的帧内块复制编码或解码。

本发明提供了另一种处理参考块中的不可用像素以用于帧内块复制的方法。根据本发明一实施方式,如果参考块的区域中的参考像素不可用,则通过替换像素数据而将参考块的不可用区域中的参考像素进行替换,以形成有效参考块。参考块的不可用区域的该替换像素数据对应于该当前预测单元的可用相邻像素。参考块的不可用区域的替换像素数据对应于预定值。此外,参考块的所有像素由预定值替换。预定值对应于128或(1<<(比特深度-1))。用于存储重建像素的数据区域在对当前图片进行编码或解码之前被初始化为预定值。

附图说明

图1示出了根据帧内块复制(IntraBC)模式的帧内运动补偿的示例,其中水平位移向量被使用。

图2示出了用于导出帧内块复制模式的运动向量预测子的相邻块配置的示例。

图3A-图3B示出了无效块向量预测子的示例。

图4示出了编码单元(CU)内的当前预测单元进行编码或解码的可用参考区域的示例。

图5示出了根据本发明的实施方式的避免参考块和不可用区域B重叠的块向量剪切的示例。

图6示出了根据本发明的实施方式的与块向量剪切相关联的术语(terms)的定义。

图7示出了用于编码或解码编码单元内的当前预测单元的额外不可用参考区域的示例,所述编码单元在编码树单元(CTU)内。

图8示出了根据本发明另一实施方式的与块向量剪切相关联的术语的定义。

图9示出了根据本发明的实施方式的使用时间共位块的块向量以用于块向量预测和合并候选的示例。

图10A-图10B示出了冗余索引(redundant index)的确定和利用冗余索引的颜色索引编码处理的示例。

图11A-图11B示出了另一冗余索引的确定和利用冗余索引的颜色索引编码处理的示例。

图12示出了结合本发明的实施方式的使用剪切块向量的编码系统的流程图。

具体实施方式

在块向量编码的现有实践中,用于帧内块复制的已编码块的块向量(block vector)具有一些约束。块向量只能指向当前图片内的一些已经重建的区域。在当前屏幕内容编码(screen content coding,SCC)中,相同编码单元内的重建区域不能用于帧内块复制补偿。当先前编码的块向量用作预测子(在正常帧内块复制模式或帧内块复制合并/跳过模式中)时,它有时可能不是当前块的有效向量,因为它不满足上述两个约束。图3A示出指向无效块的块向量预测子的一个示例。如图3A所示,块向量预测子312从显示为实心正方形的先前处理块314指向如虚线正方形所示的参考块316。如果当前块向量322使用块向量312作为预测子,则显示为实心正方形的当前块324将指向被显示为虚线正方形的参考区域326。如图3A所示,用于当前块的参考块326的一半在当前块中,其尚未重建(即,参考块326的下半部中的像素不可用)。图3B示出指向无效块的块向量预测子的另一示例。如图3B所示,块向量预测子332从显示为实心矩形的先前处理块334指向显示为虚线矩形的参考块336。如果当前块向量342使用块向量332作为预测子,则显示为实线矩形的当前块344将指向被显示为虚线矩形的参考区域346。如图3B所示,参考块346的一半在尚未处理的区域中(即,参考块346的下半部分中的像素不可用)。

块向量的剪切(clipping)。为了克服无效块向量的问题,在此公开了块向量剪切方法。根据一个实施方式,剪切操作应用于帧内块复制的块向量预测子和/或帧内块复制合并候选。例如,块向量预测子的x轴分量和/或y轴分量应当满足一些要求。在表1中,定义了两个参数Hoffset和Voffset(也称为iHoffset和iVoffset)来描述这些要求。

表1

假设用于当前块的块向量预测子是BV=(BV_x,BV_y),并且块向量预测子的剪切版本是BV'=(BV_x',BV_y')。根据本发明的一个实施方式的剪切处理描述如下。

情况1。如果块向量BV的两个分量在剪切之前小于或等于0,则当BV_x>-Hoffset和BV_y>-Voffset都为真时,需要剪切操作。例如,BV_x’=-Hoffset和BV_y’=BV_y可以用作剪切的块向量。在另一示例中,BV_y’=-Voffset和BV_x’=BV_x可以用作剪切的块向量。在又一示例中,当BV_x+Hoffset小于或等于BV_y+Voffset时,BV_x’=-Hoffset和BV_y’=BV_y。否则,BV_y’=-Voffset和BV_x’=BV_x可以用作剪切的块向量。

情况2。如果在剪切之前BV_x大于0,则当BV_y>-Voffset为真时,需要剪切操作。例如,BV_y’=-Voffset和BV_x’=BV_x可以用作剪切的块向量。在另一示例中,BV_y’=-Voffset和BV_x’=0可以用作剪切的块向量。

情况3。如果在剪切之前BV_y大于0,则当BV_x>-Hoffset为真时,需要剪切操作。例如,BV_x’=-Hoffset和BV_y’=BV_y可以用作剪切的块向量。在另一示例中,BV_x’=-Hoffset和BV_y’=0可以用作剪切的块向量。

图4示出了根据本发明的实施方式的块向量剪切的示例。

在图4中显示的图案填充区域的区域A对应于当前编码单元的帧内块复制编码的可用区域。该区域包含当前图片内已经重建的采样,不包括相同编码单元内的重建区域。为了避免帧内块复制合并模式的无效块向量,在2014年9月4日提交的序列号为62/045,620的美国临时专利申请中公开了块向量剪切的方法,其中如果帧内块复制参考块的区域是与区域B重叠,则块向量被剪切。区域B是矩形区域,并且区域B的左上角是当前编码单元的左上角,以及右下角是当前图片的右下角。如果帧内块复制参考块与区域B重叠,则将向块向量添加垂直偏移或水平偏移,以使得帧内块复制参考块在区域B外。图5示出了根据上述过程的块向量剪切的示例。在图5中,如情况510所示,剪切之前的原始帧内块复制参考块部分地在区域B内并且部分地在区域B之外。如情况520所示,在剪切之后,与剪切的块向量相关联的重定位的帧内块复制参考块在区域B之外。如图5所示,当块向量的垂直分量(即,y分量)被剪切时,水平分量保持相同。

在本发明中,如下公开了简化的块向量剪切过程。对于预测单元的块向量,首先分别根据等式(1)和等式(2)导出参数diff_x和diff_y。

diff_x=–PU_to_CU_X–BV_x–PU_W (1)

diff_y=–PU_to_CU_Y–BV_y–PU_H (2)

其中位置(PU_to_CU_X,PU_to_CU_Y)指定当前预测单元的左上采样与当前编码单元的左上采样。如图6所示,PU_W和PU_H分别是预测单元的宽度和高度。BV_x和BV_y是块向量的水平向量和垂直向量。在上面的描述中,如果向量指向右方向,则水平块向量BV_x具有正值,并且如果向量指向左方向,则BV_x具有负值。另一方面,如果向量指向下,则垂直块向量BV_y具有正值,并且如果向量指向上则BV_y具有负值。当diff_x大于或等于0时,意味着参考块位于当前编码单元的左边界(图4中的410)的左侧。当diff_y大于或等于0时,意味着参考块位于当前编码单元的顶部边界(图4中的420)的上方。

BV_x或BV_y可以根据表2所示的示例性过程来改进。

表2

改进BV_x或BV_y的另一示例性过程在表3中示出。

表3

在表2和表3中,表达式“diff_x<0&&diff_y<0”意味着参考块的至少一部分不在边界410的左侧,并且参考块的至少一部分是不在边界420上方(即,当前参考块的区域中的至少一个参考像素不可用)。因此,表达式意味着参考块与区域B重叠。如表2和表3所示的块向量改进处理可以避免帧内块复制参考块与区域B重叠。然而,图7中的区域C和区域D也对于帧内块复制补偿不可用。也就是说,如果参考像素位于区域C或区域D中,则属于当前参考块的参考像素被视为不可用。因此,需要进一步改进块向量剪切处理。因此,公开了根据本发明的块向量剪切的另两个实施方式,以防止帧内块复制参考块与区域C和区域D重叠。

表4中的示例性块向量剪切可以帮助防止帧内块复制参考块与区域C重叠。

表4

在表4中,垂直位置PU_to_CTU_Y指定如图8所示的当前预测单元左上方采样与当前编码树单元的左上方采样的垂直距离。CTU_H是编码树单元高度。表4中的剪辑过程能够避免帧内块复制参考块与如图7所示的区域C重叠。其中由于表4中的剪切处理,帧内块复制参考块(710)将被移位到新位置(720)。

表5A和表5B中的示例性块向量剪切可以帮助防止帧内块复制参考块与区域D重叠。

表5A

表5B

在表5A中,水平位置PU_to_CTU_X指定如图8所示的当前预测单元的左上采样与当前编码树单元的左上采样的水平距离。CTU_W是当前编码树单元的宽度。如图7所示,表5A和表5B中的剪切处理能够避免帧内块复制参考块与区域D重叠。其中由于表5A和表5B中的剪切处理,帧内块复制参考块(730)将被移位到新位置(740)。

根据另一实施方式,每当需要剪切操作时,可使用预定值来剪切当前块向量。换句话说,剪切的块向量可以是预定义的值,即BV’=BV_preset。预定值BV_preset的示例可以是(0,0),(-W,0),(-2W,0),(0,-H),(0,-2H),(-W,-H),(-2W,-2H),(-Hoffset,0),(0,-Voffset),(-Hoffset,-Voffset),其中W和H是指当前块的相应宽度和高度,或指包含当前块的编码单元的相应宽度和高度。

在一个实施方式中,对于帧内块复制合并/跳过候选,要使用的BV_preset值的顺序是:(-2W,0),(0,-2H),(-W,0),(0,-H)和(-2W,-2H)。换句话说,块向量当前值(-2W,0)不是先前候选,需要剪切的第一候选可以被剪切为(-2W,0)。如果(-2W,0)已经在候选列表中并且如果(0,-2H)不是先前的候选,则需要剪切的第一候选可以被剪切为(-W,0)。否则,逐个检查预定义的值,直到找到一个不同的块向量值。类似地,如果剪切之后没有先前的候选是(-W,0);需要剪切的第二个候选将使用(-W,0)进行剪切,等等。以这种方式,在剪切之后,将使用具有不同块向量的合并候选。在另一实施方式中,BV_preset值的顺序是(-2W,0),(-W,0),(0,-2H),(0,-H),(-W,-H)。

当两个帧内块复制合并/跳过候选在块向量剪切之后相同时,具有不同值的预定义块向量可以用于替换重复的候选。预定义值的示例如上所述。

在现有的HEVC SCC实践中,帧内块复制模式的最小块尺寸是4×4。先前编码的块向量可以通过将块向量存储在较大的块尺寸(诸如具有大于4×4的M×N)中来“压缩”。因此,每一M×N像素阵列内的所有4×4块将仅具有一个块向量值。例如,块向量可以存储在16×16单元中。当使用块向量压缩并且相邻帧内块复制编码块的块向量被用作合并/跳跃候选或者用作块向量预测子以用于当前块时,相邻块的块向量值也应该是表示MxN单元的块向量值(在块向量被压缩之后)。

针对不可用区域的帧内块复制补偿。在应用块向量剪切之后,仍然存在指向不可用区域的一些块向量候选,即,其中重建的像素仍不可用。当选择这样的块向量候选或者编码的块向量指向不可用区域时,关于如何补偿帧内块复制块的解码器行为是未定义的。公开了几个实施方式来处理用于帧内块复制参考数据的不可用区域的问题。

实施方式1:填充。如果帧内块复制参考块与不可用区域重叠,则通过使用相邻可用像素来填充不可用区域中的像素。例如,不可用区域中的每个像素行由可用区域中的最后一个像素行填充。然后,填充的像素用于帧内块复制补偿。

实施方式2:设置预定值。如果帧内块复制参考块与不可用区域重叠,则将不可用区域中的像素设置为预定义值,例如128以用于8比特数据或等于(1<<(比特深度bit_depth-1))的值。在另一示例中,指定用于存储当前重建图片区域的数据区域在编码或解码开始之前被初始化为预定值(例如128或(1<<(位深度bit_depth-1)))。在块被编码和重建之后,重建的像素被写入用于重建图片的存储器区域。如果帧内块复制参考块与不可用区域重叠,则由于尚未由实际重建值更新不可用区域中的预定义值,将使用预定义的像素值。

实施方式3:针对整个块设置预定义值。如果帧内块复制参考块与不可用区域重叠,则将整个参考块的像素设置为预定义值(例如128或(1<<(bit_depth-1)))。

时间块向量作为块向量预测子。在本发明的另一个实施方式中,将时间同位(collocated)的块向量放置在帧内块复制块向量预测子/块向量差值编码中的块向量预测列表中或放置到合并候选者列表中。位于如图9所示的同位图片中的块(例如,TBR,TCTR,TUL或TBR2)的块向量可以用作块向量预测子中的一个。该实施方式可以被限制为应用于非I-片。

合并候选者列表中的默认块向量。通过将重建的当前图片插入到参考帧列表中,可以将帧内块复制编码视为帧间编码。因此,可以以与帧间编码/补偿相同的方式处理帧内块复制编码。然而,参考帧指向重建的当前图片而不是同位的参考图片。

由于帧内块复制被视为帧间编码模式,所以合并候选列表可考虑此新的帧间编码模式。根据本发明的一个实施方式,如果合并候选列表未满,则可将一个或多个预定义块向量添加到合并候选列表作为默认合并候选者。由于帧内块复制编码模式现在被视为帧间模式,所以块向量被认为是具有指向重建的当前图片的参考帧(即,refIdx)的运动向量。在下面的描述中,表达式“BV=(x,y)”意味着具有指向当前重建图片的ref_List(即,参考列表)和refIdx(即,参考画面索引)的MV=(x,y)。

剪切过程通常在合并候选重建期间被应用,其中复制的候选值将被去除。当没有足够的候选者填充列表时,默认运动向量(0,0)被添加到合并候选者列表。然而,默认向量(0,0)不适合帧内块复制。因此,本发明的实施方式使用一个或多个非零向量来填充合并候选列表。当合并候选者列表索引(即,merge_idx)指向这些额外候选中的一个时,使用由merge_idx(即,合并索引)指示的对应块向量,将当前块在帧内块复制模式中进行编码。

可用于添加到合并候选列表作为附加合并候选的示例性非零向量包括(-W,0),(-2W,0),(0,-H),(0,-2H)和(-W,-H)。值W和H可以指当前预测单元的宽度和高度,或当前编码单元(CU)的宽度或高度。预定非零向量的示例是为了说明的目的,并且它们不应被解释为对本发明的限制。也可以使用诸如(-2W,0),(-W,0),(0,-2H),(0,-H)和(-W,-H)的其他预定义非零向量作为附加帧内块复制合并候选人以填补候选列表。

在另一实施方式中,最后编码的N个块向量还可以用于填充候选列表,其中N是大于0的整数。此外,最后编码的N个块向量和预定义值也可以同时使用以填充候选列表。对于每个候选列表,候选者根据顺序被放置于列表中,并且每个候选者可以通过索引(例如,merge_idx)来识别。例如,有序合并候选者可以是{最后编码的块向量,第二最后编码的块向量,(-W,0),(-2W,0),(0,-H)}、或{最后编码的块向量,第二最后编码的块向量,(-2W,0),(-W,0),(0,-2H)}。在这两个示例中,假设合并候选者的最大数目为5。还可以使用其他候选顺序。例如,最后编码的块向量可以放置在预定义的块向量之后。

与一个最后编码的块向量对应的新添加的合并候选者可能已经在合并候选者列表中。例如,该最后编码的块向量可能发生与当前块的相邻块的块向量相同。裁剪过程可以被应用以检查最后编码的块向量是否是冗余的。如果是,则移除冗余候选。在添加最后编码的N个块向量的期间应用的裁剪处理也可以应用于添加上述预定非零块向量期间。

可以在组合的双向预测合并候选者之前插入部分或全部附加块向量候选,以填充上述提到的合并候选者列表。例如,(-2W,0)和(-W,0)的块向量可以在组合的双向预测合并之前被插入。在另一示例中,可以在类型1附加候选之后和类型2附加候选之前插入用于填充上述提到的合并候选列表的部分或全部附加块向量候选。例如,(-2W,0)和(-W,0)的块向量可以在类型2附加候选之前插入。类型-1候选对应于组合的双向预测合并候选,类型2候选对应于根据HEVC的缩放的双向预测合并候选。在另一个示例中,填充上述提到的合并候选列表的部分或全部附加块向量候选可以在类型2附加候选的一部分之后被插入。例如,可以在第一类型2附加候选之后插入对应于(-2W,0)和(-W,0)的块向量。在又一示例中,填充上述提到的合并候选列表的附加块向量候选的部分或全部可以在类型2附加候选之后并且在refIdx等于0的零运动向量之前插入。例如,在类型2附加候选之后,(-2W,0)和(-W,0)的块向量可以被插入。在又一示例中,填充上述提到的合并候选列表的部分或全部附加块向量候选可以用于替换类型2附加候选。

在另一实施方式中,防止运动向量或块向量的冗余填充。如果类型2和类型3附加候选指向重建的当前图片,则可以移除它们,因为可以使用默认块向量来替换它们。类型3候选对应于HEVC中公开的零向量合并/高级运动向量预测(advanced motion vector prediction,AMVP)候选。

使用最后编码的N个块向量或非零块向量的合并候选者列表填充的实施方式可以仅应用于I切片(I-slice)。在I切片中,可以去除类型1和/或类型2的附加候选。在类型1附加候选的导出中,可以从生成组合的合并候选中排除帧内块复制编码的块向量。例如,如果具有索引0的合并候选是帧内块复制编码的块向量,则其将不用于生成组合的合并候选。

在同位图片中的时间候选可以在合并模式和AMVP模式中使用,以用于帧间编码块。在合并候选和AMVP运动向量预测子导出中,帧内块复制编码块被视为不可用。在本发明的一个实施方式中,在同位图片中的帧内块复制编码块的块向量被包括为合并候选或块向量预测子中的一个。例如,如果时间帧间候选不可用,则包括可用的时间帧内块复制候选。在同位图片中的时间帧内块复制候选的位置可以与同位图片中的时间帧间候选的位置相同。

合并候选者列表中的一些块向量可能不是有效的块向量,并且可以在合并候选导出期间移除这样的块向量。例如,等于(0,0)、或指向当前图片外部的区域的、尚未解码的区域或相同编码单元内的解码区域的块向量无效。这样的块向量可以从合并候选列表中移除。

本发明还涉及空间相邻合并候选的可用性和约束方面。当以帧内块复制模式对空间相邻合并候选进行编码时,候选块被视为可用而没有任何约束。在另一示例中,来自上述当前块的候选块被约束到当前编码树单元内的候选块。否则,如果候选块来自当前编码树单元之上的编码树单元,则候选块被视为不可用。在又一示例中,如果候选块在当前块上方的编码树单元中,则来自当前块上方的候选块被约束。约束还可以对应于被压缩以节省存储空间的块向量。例如,具有不同块向量值的最小块不再是4x4。相反,块向量由更大的单元共享,例如在16×16单元中。因此,上述编码树单元行将仅存储块向量值于16×16单位中。

在一个实施方式中,可以根据切片类型选择性地应用上述约束。例如,对于帧内切片中的块,如果候选块来自当前块上方的编码树单元,则将跳过、合并和/或帧内块复制模式的空间候选视为不可用。另一方面,对于帧间片段中的块,跳过、合并和/或帧内块复制模式的空间候选不具有这样的约束。在另一实例中,以压缩格式存储用于帧内切片的已编码的块向量,其中对于每一M×N(例如,16×16)单元存储一个块向量。当空间候选位于当前块上方的编码树单元中并与存储的块向量的位置重叠时,所存储的块向量可以用于该候选作为合并候选。另一方面,在帧间切片中的已编码的块向量可以或不可以使用块向量压缩。

用于块向量差值编码的依赖上下文模型的条件。在HEVC中,使用2比特截断的一元码(truncated unary code)加上哥伦布指数码来对每个二值化的运动向量差值分量进行编码。前两个二进制数(bin)用上下文编码,并且剩余的二进制数被旁路编码。在HEVC中,由于既不存在8×4/4×8双向预测也不存在4×4帧间块,因此用于对8×8块进行编码的运动向量差值的最大数量为2。对于每个运动向量差值,其具有水平和垂直分量。对于每个分量,需要两个上下文编码二进制数。因此,用于8×8帧间编码块的运动向量差值编码的最大上下文编码的二进制数是8个二进制数。

在JCTVC-R1014(即,HEVC SCM2)中,在帧内块复制编码中支持4×4预测单元。块向量差值编码对于块向量差值的水平分量和垂直分量中的每一个使用1个上下文编码二进制数。用于帧内块复制编码的8×8块的块向量差值编码的最大上下文编码二进制数是8个二进制数。然而,使用更多上下文用于块向量差值编码可能不会实现进一步的编码增益。另一方面,在运动向量差值/块向量差值编码中,可能导致超过HEVC和SCM2的上下文编码二进制数的数目。因此,公开了用于块向量差值编码的条件相关上下文模型,以确保用于块向量差值编码的上下文模型不超过用于运动向量差值/块向量差值编码的HEVC和SCM-2.0的上下文编码二进制数的数目。块向量差值的上下文模型可以取决于块尺寸,预测模式,分割模式或尺寸,inter_dir(即,帧间预测方向),refIdx(即,参考图片索引)等。例如,如果预测单元分割是NxN,预测单元尺寸是4×4,则只有第一二进制数用上下文编码,并且其余二进制数被旁路编码。否则,前两个二进制数用上下文编码,其余的二进制数被旁路编码。

在调色板编码中,可从最后编码预测模式确定当前像素的冗余索引Irun_red。对于不同于最后编码预测模式的预测模式,如果第一索引预测子与冗余索引Irun_red相同,则第一索引预测子可以由作为固定索引或导出索引的替换索引来代替。替换索引可以是0或不等于Irun_red的最小可能的并且非冗余的索引。例如,如果Irun_red是0,则替换索引可以被设置为1。否则,替换索引可以被设置为0。如果Irun_red等于逸出索引,则可以禁用索引替换方法。

在SCM2.0中,如果先前预测模式是复制上方模式,则当前索引不能与上方索引相同。否则,当前索引编码将被合并到复制上方模式的先前游程中。图10A示出了冗余索引确定和利用冗余索引的颜色索引编码处理的示例。由问号“?”指示的位置对应于要编码或解码的当前像素。当前像素左侧的像素具有索引“K”,并且使用复制上方模式进行编码。当前索引不能是“A”,否则,它将与左侧像素一起被编码为复制上方模式。在这种情况下,如果使用其它预测模式,则本发明的实施方式改善(refine)预测源。例如,如果预测模式是复制右上方,则右上方像素的索引不能是“A”。它可以由作为替换索引来代替,该替换索引是在图10B中的固定索引或诸如“C”的导出索引。“C”可以是0或不等于Irun_red的最小可能的和非冗余的索引。例如,如果Irun_red是0,则“C”可以被设置为1。否则,“C”可以被设置为0。

在另一实例中,如果先前预测模式是游程模式run_mode(例如,复制左侧游程),则当前索引不能与左索引相同。否则,当前索引编码可以合并到游程模式run_mode的先前游程中。冗余索引值在图10A中被指定为Irun_red(例如“A”)。然而,如果当前待编码索引的上方索引等于Irun_red,则当前索引的复制上方预测是冗余的。因此,在这种情况下,如果使用复制上方模式,则本发明的实施方式替换上方索引的索引预测子。

如果当前要编码的索引的上方索引等于图11A中的Irun_red(例如“A”),则解码器可以用替换索引代替复制上方模式的上方索引的索引预测子,替换索引是图11B中的固定索引或导出索引(例如“C”)。“C”可以是0或不等于Irun_red的最小可能的和非冗余的索引。例如,如果Irun_red是0,则“C”可以被设置为1。否则,“C”可以被设置为0。

上述实施方式可以应用于不同的预测模式。例如,冗余索引Irun_red可以是任何预测模式的冗余索引,例如上方N行的索引用于复制上方N行。如果最后编码模式是游程模式run_mode并且先前编码索引与Irun_red相同,则预测模式的Irun_red(例如,上方N行的索引用于复制上方N行)可以由导出索引代替。

对于替换索引,其可以是固定索引,不等于Irun_red的最小可能的和非冗余的索引,或从当前像素的相邻索引或Irun_red的相邻索引导出的索引。例如,它可以是Irun_red的左侧索引(即,图11A中的“E”),Irun_red的上方索引(即,图11A中的“G”)或Irun_red的右侧索引(即,在图11A中的“D”)。

在JCTVC-S0078(Sun等人,CE6Test C.2:Transition copy mode,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG11,19th Meeting:Strasbourg,FR,17–24 Oct.2014,Document:JCTVC-S0078)中,由目前此应用的一些联合发明人公开了名为过渡复制(Transition Copy,TC)游程的新编码模式。在过渡复制游程模式中,解码器记录相邻颜色索引模式并使用它来预测待编码的索引。

具有冗余索引的调色板索引编码可以应用于过渡复制模式。在JCTVC-S0078的过渡复制的细化(refinement)情况下,解码器可以将过渡复制预测子细化为预定索引或导出索引。

将过渡复制预测子细化为导出索引的实例可对应于将过渡复制预测子细化为特殊相邻索引或不同于替换索引的时间相邻索引。例如,特殊相邻索引可以是左上索引,右上索引或上一行中的索引。

如果解码器已经细化了左上索引,右上索引或前一行中的索引,则可以将过渡复制预测子细化到另一个索引。

在调色板编码中游程(Run)快捷方式(short-cut)。在调色板游程编码中,本发明的实施方式在游程数量等于通过当前行/列的末端或通过块的末尾的采样的数量的情况下添加快捷方式。快捷方式可以由在二进制游程的第N个二进制数之前插入的标志来指示。N可以是定义的值(例如,2,3,4或5)。如果标志为1,则将游程设置为游程数等于通过当前行/列末尾或通过块末尾的采样数。如果标志为0,则应当处理以下二进制数的解码。N可以取决于块尺寸,要编码的采样的数量,最大可能游程数,当前调色板预测模式,编码调色板预测模式或编码游程。二进制的最大可能游程数可以减少1,因为最大游程数已经使用快捷方式来表示。

快捷方式可以被设置为数字M。在编码器侧,如果要编码的游程大于M,则应该将游程增加1以用于二进制化。在解码器侧,如果解码的游程大于M,则实际游程应该等于解码的游程减1。如果解码的游程等于M,则将游程设置为游程数等于通过当前行/列的末尾或通过块的末尾的采样数。M可以是预定义的值(例如,2,3,4或5)。M可以取决于块尺寸,要编码的采样的数量,最大可能游程数,当前调色板预测模式,编码调色板预测模式或编码游程。二进制的最大可能游程数可以减少1,因为快捷方式已经表示最大游程数。

移除考虑过渡复制索引的冗余索引。对于SCM 2.0中的游程模式,编码器将在发送索引值之前删除冗余索引值。如果先前游程是复制上方模式,则当前游程的上方索引是要被移除的冗余索引值。如果先前游程是游程模式,则当前游程的先前索引是要移除的冗余索引值。在索引重建阶段,解码器应根据解析索引和移除的冗余索引值来重建索引。如果解析的索引值大于或等于移除的冗余索引值,则重建的索引值是解析的索引值加1。否则,重建的索引值是解析的索引值。

冗余索引值的导出和移除也可以应用于过渡复制模式。如果先前游程是过渡复制模式,则当前游程的先前索引是要被移除的冗余索引值。然后,SCM2.0中的冗余索引的移除被应用于具有这个新的冗余索引值的过渡复制模式,以便移除。

移除考虑过渡复制索引的冗余索引。在SCM2.0中,将选择不同的上下文集以根据当前游程模式编码游程长度。如果当前游程是INDEX游程,则将选择第一上下文集。如果当前游程是复制上方游程,则将选择第二上下文集。

另一个实施方式使用第三上下文集合以用于过渡复制模式的游程编码。如果当前游程是过渡复制游程,则将选择第三上下文集。为了简化,过渡复制模式的游程编码上下文集合可以共享游程模式或复制上述模式的上下文集合。

图12示出了根据本发明实施方式的包括帧内块复制模式的示例性编码系统的流程图。如步骤1210所示,系统接收与原始块向量相关联的输入数据,原始块向量在当前图片中从当前预测单元指向当前参考块。对于编码,输入数据对应于要编码的原始块向量。对于解码,输入数据对应于要解码的编码块向量。可以从存储器(例如,计算机存储器,缓冲器(RAM或DRAM)或其他介质)或从处理器检索输入数据。在步骤1220中确定当前参考块是否在垂直方向上位于包含当前预测单元的当前编码单元的上方。在步骤1230中确定当前参考块是否在水平方向上位于当前编码单元的左侧。如果上述判定的两个结果为“否”,则执行步骤1240和步骤1250。否则(即,步骤1220和步骤1230中的任意“是”路径),不执行步骤1240和1250。在步骤1240中,将原始块向量剪切为剪切的块向量,以使与剪切的块向量对应的重新定位的参考块在垂直方向上在当前编码单元的上方或在水平方向上在当前编码单元的左侧。在步骤1250中,剪切的块向量用作用于当前块向量的编码或解码的预测子,或者将剪切的块向量用作当前预测单元的编码或解码的合并候选或跳过候选。上述的流程图用于描述根据本发明实施方式的帧内块复制编码的示例。本领域技术人员可在不脱离本发明精神的前提下,修改、重排列、拆分、或组合各个步骤,以实现本发明。在本公开中,已经使用特定语法和语义来说明实现本发明的实施方式的示例。本领域技术人员可以在不脱离本发明的精神的情况下,通过用等同的语法和语义代替上述语法和语义来实践本发明。

在提供特定应用和其需求的情况下,以上描述使得本领域技术人员能够实现本发明。对本领域技术人员来说,各种修饰是清楚的,以及在此定义的基本原理可以应用与其他实施方式。因此,本发明并不限于描述的特定实施方式,而应与在此公开的原则和新颖性特征相一致的最广范围相符合。在上述详细描述中,为全面理解本发明,描述了各种特定细节。然而,本领域技术人员能够理解本发明可以实现。

以上描述的本发明的实施方式可在各种硬件、软件编码或两者组合中进行实施。例如,本发明的实施方式可为集成入视频压缩芯片的电路或集成入视频压缩软件以执行上述过程的程序代码。本发明的实施方式也可为在数据信号处理器(Digital Signal Processor,DSP)中执行上述程序的程序代码。本发明也可涉及计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(Field Programmable Gate Array,FPGA)执行的多种功能。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为了不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。

在不脱离本发明精神或本质特征的情况下,可以其他特定形式实施本发明。描述示例被认为仅在所有方面进行说明并且不是限制性的。因此,本发明的范围由权利要求书指示,而非前面描述。所有在权利要求等同的方法与范围中的变化都属于本发明的涵盖范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1