基于线状帧内块拷贝的hevc屏幕内容编码的制作方法

文档序号:7815763阅读:136来源:国知局
基于线状帧内块拷贝的hevc屏幕内容编码的制作方法【专利摘要】本发明提出了两种编码方案。第一种是针对CU分别进行水平和垂直分割,并针对水平线条和垂直线条分别进行搜索以找到最优替换矢量。同时,针对水平线条左侧的预测区域和垂直线条上方的预测区域以类似的方式查找最优预测线条,得到预测替换矢量。如果二者相同,则设置标志并无需传送替换矢量,如果不同则传送最优替换矢量。第二种是针对水平线条和垂直线条进行翻转,再进行最优替换矢量搜索,此时不进行预测替换矢量的搜索。这两种编码方案可同时使用,或分开使用。【专利说明】基于线状帧内块拷贝的HEVC屏幕内容编码[0001]联合研究[0002]本申请由北方工业大学与北京交通大学信息所联合研究,并得到以下基金资助:国家自然科学基金(No.60903066,No.60972085),北京市自然科学基金(No.4102049),教育部新教师基金(No.20090009120006),北京市属高等学校人才强教深化计划(PHR201008187)。【
技术领域
】[0003]本发明涉及图像处理领域,更具体而言,涉及在高效视频编码(HEVC)中用于处理屏幕内容的基于线状帧内块拷贝的HEVC屏幕内容编码。【
背景技术
】[0004]高效率视频编码(HighEfficientVideoCoding,HEVC)标准由联合视频编码组(JointCollaborativeonVideoCoding,JCT-VC)推出,是最新的视频编码标准[1]。跟已有的视频编码标准相比,HEVC能极大提高编码效果,尤其是对高分辨率的视频。2013年1月份HEVC视频编码标准尘埃落定,关于HEVC研究工作转到扩大HEVC应用范围的领域中,其中就包括屏幕内容编码。[0005]屏幕内容编码广泛应用在很多应用领域,比如远程桌面、视频会议、远程教育等。屏幕内容视频与自然序列不同,它们由计算机手机等电子设备生成。它们往往包含文字和图表等内容,这些内容含有大量的尖锐的边缘不容易被普通的视频压缩技术处理[2][3]。目前有许多研究工作从变换量化或者预测等方面提出了很多新技术来提高屏幕内容编码质量[4]_[8]。[0006]屏幕内容有一个特点是在一幅图中它经常包含一些重复出现的内容,比如文字、图标、线条等。为了处理这些重复的内容,HEVC范围扩展标准引入了帧内块拷贝(intrablockcopy,IntraBC)技术[5]。像IntraBC从已经编码过的区域里找当前编码单元(codingunit,⑶)的最优预测(如图1所示)。预测最好的替换矢量(displacementvectors,DV)将被编码传输到解码端。[0007]为了更好的改进IntraBC的编码效果,JCT-VC的15次会议上提出了一种线状(line-based)IntraBC[8]。它的主要想法是在比2Nx2N更小的分块上实行IntraBC。每一个2Nx2N的块均匀的分成2NxM或者Mx2N(N<=32,M>=1)大小被称为线条(line)。每一个线条可以找到自己最优预测并传输各种不同的DV。[0008]然而,线状IntraBC每条line的DV都需要编码从而引入了很大的开销。另外屏幕内容在重构区域的相关性还可以进一步消除。[0009]本发明将采用一种改进的线状IntraBC方案来进一步提升HEVC屏幕内容编码的效果。方案采用当前line临近重构区域的像素来进行DV预测。另外,由于文字存在许多对称内容,本方案还采用一种翻转拷贝的预测方式来增加预测精度。[0010]在本发明的说明书中,引用了如下文献,在此将其并入本发明作为本发明的公开内容的一部分。[0011][1]G.J.Sullivan,J.R.Ohm,W.J.HanandT.Wiegand,^OverviewoftheHighEfficiencyVideoCoding(HEVC)Standard,''IEEETransactionsonCircuitsandSystemsforVideoTechnology,Vol.22,No.12,pp.1649-1668,Dec.2012.[0012][2]K.Lengwehasatit,andA.Ortega,"ScalablevariablecomplexityapproximateforwardDCT,"IEEETransactionsonCircuitsandSystemsforVideoTechnolog,Vol.14,No.11,pp.1236-1248,Nov.2004.[0013][3]Η·H.Bai,C.ZhuandY.Zhao,"OptimizedMultipleDescriptionLatticeVectorQuantizationforWaveletImageCoding,'IEEETransactionsonCircuitsandSystemsforVideoTechnolog,Vol.17,No.7,pp.912-917,July.2007.[0014][4]M.Mark,andJ.Z.Xu,"ImprovingscreencontentcodinginHEVCbytransformskipping,,'the20thEuropeanSignalProcessingConference(EUSIPC0),Bucharest,pp.1209-1213,Aug.2012.[0015][5]H.Meuel,J.Schmidt,M.MunderlohandJ.Ostermann,"Analysisofcodingtoolsandimprovementoftextreadabilityforscreencontent,,'2012PictureCodingSymposium(PCS),Krakow,pp.469-472,May2013.[0016][6]H.Zhang,0·C.Au,Y.F.Shi,X.Y.ZhangK.T.TangandY.F.Guo,"HEVC-basedadaptivequantizationforscreencontentbydetectinglowcontrastedgeregions,,'2013IEEEInternationalSymposiumonCircuitsandSystems(ISCAS),,Beijing,pp.49-52,May2012.[0017][7]C.Pang,J.Sole,L·Guo,M.Karczewicz,R.Joshi,"Non_RCE3:Intramotioncompensationwith2_DMVs,"JCTVC_N0256,Vienna,Aug.2013.[0018][8]C.C.Chen,T.S.Chang,R.L.Liao,W.H.Peng,Η.M.Hang,C.L.LinandF.D.Jou,"AHG8:Line-basedIntraBlockCopy,"JCTVC-00205,Geneva,Nov.2013.[0019][9]DFlynn,K.Sharman,C.Rosewame,"CommontestconditionsandsoftwarereferenceconfigurationsforHEVCrangeextensions,,'JCTVC-01006,Geneva,Nov.2013.【
发明内容】[0020]为了解决上述技术问题,本专利提出了两种编码方案。第一种是针对CU分别进行水平和垂直分割,并针对水平线条和垂直线条分别进行搜索以找到最优替换矢量。同时,针对水平线条左侧的预测区域和垂直线条上方的预测区域以类似的方式查找最优预测线条,得到预测替换矢量。如果二者相同,则设置标志并无需传送替换矢量,如果不同则传送最优替换矢量。第二种是针对水平线条和垂直线条进行翻转,再进行最优替换矢量搜索,此时不进行预测替换矢量的搜索。这两种编码方案可同时使用,或分开使用。[0021]根据一个方面,提出了一种基于HEVC的视频编码方法,包括:[0022]输入视频,其中,所述视频包括多个帧;[0023]将一个帧划分为多个编码树单元(CTU),每个编码树单元进一步被划分为多个编码单元(⑶),每个⑶的尺寸为2Nx2N,其中N<=32;并且[0024]针对每个CU,进行帧内编码,其中,将当前CU分别在垂直方向和水平方向上划分为多个水平线条和多个垂直线条,水平线条尺寸为2NxM,垂直线条尺寸为Mx2N,其中Μ>=1,所述帧内编码进一步包括:[0025]针对每个水平线条:[0026]在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该水平线条的最优替换矢量,[0027]针对该水平线条左侧的4χΜ个像素构成的块,在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该块的预测矢量,[0028]判断针对该水平线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第一标志以表示该水平线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量;[0029]针对每个垂直线条:[0030]在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该垂直线条的最优替换矢量,[0031]针对该垂直线条上方的4χΜ个像素构成的块,在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该块的预测矢量,[0032]判断针对该垂直线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第二标志以表示该垂直线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量。[0033]根据进一步的方面,上述方法进一步包括:[0034]针对每个水平线条进行垂直翻转,针对每个垂直线条进行水平翻转;[0035]针对每个水平线条,如果在当前CTU的已重构的区域中,在垂直方向上进行搜索找到完全相同的水平线条,则设置第三标志,并使用与该完全相同的水平线条相对应的最优替换矢量作为针对该水平线条的所述最终替换矢量;[0036]针对每个垂直线条,如果在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索找到完全相同的垂直线条,则设置第四标志,并使用与该完全相同的垂直线条相对应的最优替换矢量作为针对该垂直线条的所述最终替换矢量。[0037]根据进一步的方面,其中,如果所述第一标志被设置,则不编码针对该水平线条的所述最终替换矢量,并且,如果所述第二标志被设置,则不编码针对该垂直线条的所述最终替换矢量。[0038]根据进一步的方面,其中,如果所述第三标志被设置,则不进行该水平线条的所述预测矢量的查找,并且,如果所述第四标志被设置,则不进行该垂直线条的所述预测矢量的查找。[0039]根据进一步的方面,其中,使用代价函数来搜索所述最优替换矢量。[0040]根据进一步的方面,其中,使用最小加权和来搜索所述预测矢量,其中,像素距离被预测线条越近,则所权重的越大。[0041]根据另一方面,本发明提出了一种基于HEVC的视频编码装置,包括:[0042]用于输入视频的模块,其中,所述视频包括多个帧;[0043]用于将一个帧划分为多个编码树单元(CTU),将每个编码树单元进一步划分为多个编码单元(⑶)的模块,每个⑶的尺寸为2Nx2N,其中N<=32;并且[0044]用于针对每个CU,进行帧内编码的模块,其中,将当前CU分别在垂直方向和水平方向上划分为多个水平线条和多个垂直线条,水平线条尺寸为2NxM,垂直线条尺寸为Mx2N,其中Μ>=1,所述用于进行帧内编码的模块进一步包括:[0045]用于针对每个水平线条进行如下操作的模块:[0046]在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该水平线条的最优替换矢量,[0047]针对该水平线条左侧的4χΜ个像素构成的块,在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该块的预测矢量,[0048]判断针对该水平线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第一标志以表示该水平线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量;[0049]用于针对每个垂直线条进行如下操作的模块:[0050]在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该垂直线条的最优替换矢量,[0051]针对该垂直线条上方的4χΜ个像素构成的块,在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该块的预测矢量,[0052]判断针对该垂直线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第二标志以表示该垂直线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量。[0053]根据进一步的方面,上述方法进一步包括:[0054]用于针对每个水平线条进行垂直翻转,针对每个垂直线条进行水平翻转的模块;[0055]用于针对每个水平线条,如果在当前CTU的已重构的区域中,在垂直方向上进行搜索找到完全相同的水平线条,则设置第三标志,并使用与该完全相同的水平线条相对应的最优替换矢量作为针对该水平线条的所述最终替换矢量的模块;[0056]用于针对每个垂直线条,如果在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索找到完全相同的垂直线条,则设置第四标志,并使用与该完全相同的垂直线条相对应的最优替换矢量作为针对该垂直线条的所述最终替换矢量的的模块。[0057]根据另一方面,本发明提出了一种计算机程序产品,其包含计算机可读介质,所述计算机可读介质包含程序代码,所述程序代码当由处理器执行时,执行如上所述的方法。[0058]根据另一方面,本发明提出了一种基于HEVC的编解码器,其用于执行如上所述的视频编码方法。【专利附图】【附图说明】[0059]图1示出了一个IntraBS实例。[0060]图2是本发明所提出的编码方案的高级流程图。[0061]图3(a)和3(b)是示出本发明所提出的水平线条和垂直线条的帧内DV搜索和DV预测的示意图。[0062]图4示出了在屏幕内容编码中的对称内容的实例。[0063]图5示出了根据本发明的一个实施例的翻转拷贝的实例。[0064]图6示出了根据本发明的一个实例的编码方案流程图。[0065]图7示出了图6所示流程图的更为详细的解释。[0066]图8(a)示出了根据本发明的一个实例的方法流程图。[0067]图8(b)示出了根据本发明的一个实例的装置流程图。[0068]图9不出了HEVC的编码器框图的一个实施例。【具体实施方式】[0069]现在参考附图来描述各种方案。在以下描述中,为了进行解释,阐述了多个具体细节以便提供对一个或多个方案的透彻理解。然而,显然,在没有这些具体细节的情况下也能够实现这些方案。[0070]如在本申请中所使用的,术语"组件"、"模块"、"系统"等等旨在指代与计算机相关的实体,例如但不限于,硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体(executable)、执行线程、程序、和/或计算机。举例而言,运行在计算设备上的应用程序和该计算设备都可以是组件。一个或多个组件可以位于执行进程和/或者执行线程内,并且组件可以位于一台计算机上和/或者分布在两台或更多台计算机上。另外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质执行。组件可以借助于本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号,例如,来自于借助于信号与本地系统、分布式系统中的另一组件交互和/或者与在诸如因特网之类的网络上借助于信号与其他系统交互的一个组件的数据。[0071]图9示出了高效视频编码(HEVC)所实现的视频编码器的大致结构图。HEVC的编码器架构与H.264所使用的编码器架构大致相同,主要是针对各个模块中所使用的算法进行了进一步的研究、改进,尤其是针对高分辨率视频序列,其改进的目标是在相同视频质量(PSNR)下码率降为H.264标准的50%。[0072]由于HEVC的编码器架构与H.264所使用的编码器架构大致相同,因此不混淆本发明,本申请中不对图9中的整体架构进行描述。[0073]在HEVC中,输入的视频首先被分割成一些小块叫做编码树单元(codingtreeunits,CTU)。本领域技术人员可以理解,CTU相当于之前标准的宏块(macroblock)的概念。编码单元(CU)是一个拥有一个预测模式(帧内、帧间或者跳过)的正方形的(像素)单元。基于CTU和CU的预测单元分割方式如图1所示。[0074]本发明的高级流程可以如图2所示。与[8]中提到的line-basedIntraBC-样,当前的2Nx2N尺寸的⑶被均匀的分成Mx2N或者2NxM大小的线条(line)。用一个标志标志(flag)来区分两种尺寸的分割方式。每一线条(line)通过估计DV指向的重构区域的预测准确度和传输DV的开销得到的最优DV。由于在一个CU中会有2N/M个线条(line),所以我们需要消耗很多比特去编码2N/M个DV。另一方面,为了降低复杂度,最优DV的只能在特定的区域搜索,有可能找不到最优匹配的线条(line)。为了处理这些问题,我们分别引入了DV预测和翻转块拷贝预测来减少DV的开销并提高预测准确度。这两部分将在下节介绍。[0075]帔内DV榑索和DV预测[0076]为了减少复杂度,跟[8]里的方案一样我们方案里也只用一维搜索来寻找最优DV。对于Mx2N和2NxM的线条(line),它们的搜索范围是不一样的,分别如图3(a)和(b)所示。[0077]Mx2N尺寸的线条(line)只进行水平的帧内DV搜索,所以DV可以用一维向量来表示。搜索范围被限定在当前和左侧CTU的已经重构的区域(图中3(a)中阴影部分)。类似的,每个2NxM尺寸的线条(line)只通过垂直一维搜索,搜索范围被限定在当前CTU的重构区域(图中3(b)中阴影部分)。通过计算每个DV的0)51^可以选出最优的DV。[0078]C0STDV=Dline+λRDV,(1)[0079]这里Dline是当前线条(line)和预测的线条(line)的绝对误差(absolutedifference,SAD)和。RDV是用于编码DV所需要的bit数。λ是一个调节RDV权重的参数。C0STDV最小的DV将成为最优DV。[0080]每个线条(line)的最优DV需要被传送到解码端。为了减少DV的开销,每一个线条(line)都用一个预测DV。由于临近区域有相关性,如果两个线条(line)的临近区域是相似的,两个线条(line)很有可能是相似的。我们就通过当前线条(line)临近的已经重构像素来得到一个预测DV(如图.3)。对于每一个尺寸为Mx2N的线条(line),其上方包含Mx4个像素的一块区域被称作当前预测块。参考预测块指在搜索范围上方的一组Mx4的像素。每一个当前预测块可以找到一个最匹配的参考预测块,最优参考预测块和当前预测块之间的DV被称作预测DV。[0081]搜索预测DV需要计算当前预测块和参考预测块绝对差的加权和。预存块最下方的像素有更高的权重,因为它们比上方的像素更靠近当前线条(line)。如果当前预测块的壳度矩阵是【权利要求】1.一种基于HEVC的视频编码方法,包括:输入视频,其中,所述视频包括多个帧;将一个帧划分为多个编码树单元(CTU),每个编码树单元进一步被划分为多个编码单元(⑶),每个⑶的尺寸为2Nx2N,其中N<=32;并且针对每个CU,进行帧内编码,其中,将当前CU分别在垂直方向和水平方向上划分为多个水平线条和多个垂直线条,水平线条尺寸为2NxM,垂直线条尺寸为Mx2N,其中Μ>=1,所述中贞内编码进一步包括:针对每个水平线条:在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该水平线条的最优替换矢量,针对该水平线条左侧的4χΜ个像素构成的块,在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该块的预测矢量,判断针对该水平线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第一标志以表示该水平线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量;针对每个垂直线条:在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该垂直线条的最优替换矢量,针对该垂直线条上方的4χΜ个像素构成的块,在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该块的预测矢量,判断针对该垂直线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第二标志以表示该垂直线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量。2.如权利要求1所述的方法,进一步包括:针对每个水平线条进行垂直翻转,针对每个垂直线条进行水平翻转;针对每个水平线条,如果在当前CTU的已重构的区域中,在垂直方向上进行搜索找到完全相同的水平线条,则设置第三标志,并使用与该完全相同的水平线条相对应的最优替换矢量作为针对该水平线条的所述最终替换矢量;针对每个垂直线条,如果在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索找到完全相同的垂直线条,则设置第四标志,并使用与该完全相同的垂直线条相对应的最优替换矢量作为针对该垂直线条的所述最终替换矢量。3.如权利要求1或2所述的方法,其中,如果所述第一标志被设置,则不编码针对该水平线条的所述最终替换矢量,并且,如果所述第二标志被设置,则不编码针对该垂直线条的所述最终替换矢量。4.如权利要求1或2所述的方法,其中,如果所述第三标志被设置,则不进行该水平线条的所述预测矢量的查找,并且,如果所述第四标志被设置,则不进行该垂直线条的所述预测矢量的查找。5.如权利要求1或2所述的方法,其中,使用代价函数来搜索所述最优替换矢量。6.如权利要求1或2所述的方法,其中,使用最小加权和来搜索所述预测矢量,其中,像素距离被预测线条越近,则所权重的越大。7.-种基于HEVC的视频编码装置,包括:用于输入视频的模块,其中,所述视频包括多个帧;用于将一个帧划分为多个编码树单元(CTU),将每个编码树单元进一步划分为多个编码单元(⑶)的模块,每个⑶的尺寸为2Nx2N,其中N<=32;并且用于针对每个CU,进行帧内编码的模块,其中,将当前CU分别在垂直方向和水平方向上划分为多个水平线条和多个垂直线条,水平线条尺寸为2NxM,垂直线条尺寸为Mx2N,其中Μ>=1,所述用于进行帧内编码的模块进一步包括:用于针对每个水平线条进行如下操作的模块:在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该水平线条的最优替换矢量,针对该水平线条左侧的4χΜ个像素构成的块,在当前CTU的已重构的区域中,在垂直方向上进行搜索以找到针对该块的预测矢量,判断针对该水平线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第一标志以表示该水平线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量;用于针对每个垂直线条进行如下操作的模块:在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该垂直线条的最优替换矢量,针对该垂直线条上方的4χΜ个像素构成的块,在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索以找到针对该块的预测矢量,判断针对该垂直线条的所述最优替换矢量和所述预测矢量是否相同,如果相同,则设置第二标志以表示该垂直线条采用所述预测矢量作为最终替换矢量,如果不同,则采用所述最优替换矢量作为所述最终替换矢量。8.如权利要求1所述的装置,进一步包括:用于针对每个水平线条进行垂直翻转,针对每个垂直线条进行水平翻转的模块;用于针对每个水平线条,如果在当前CTU的已重构的区域中,在垂直方向上进行搜索找到完全相同的水平线条,则设置第三标志,并使用与该完全相同的水平线条相对应的最优替换矢量作为针对该水平线条的所述最终替换矢量的模块;用于针对每个垂直线条,如果在当前CTU和当前CTU左侧CTU的已重构的区域中,在水平方向上进行搜索找到完全相同的垂直线条,则设置第四标志,并使用与该完全相同的垂直线条相对应的最优替换矢量作为针对该垂直线条的所述最终替换矢量的模块。9.一种计算机程序产品,其包含计算机可读介质,所述计算机可读介质包含程序代码,所述程序代码当由处理器执行时,执行如权利要求1-6所述的方法。10.-种基于HEVC的编解码器,其用于执行如权利要求1-6所述的视频编码方法。【文档编号】H04N19/105GK104219531SQ201410510123【公开日】2014年12月17日申请日期:2014年9月29日优先权日:2014年9月29日【发明者】张萌萌申请人:北方工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1