具有远相邻像素的帧内预测的制作方法

文档序号:21368941发布日期:2020-07-04 04:44阅读:332来源:国知局
具有远相邻像素的帧内预测的制作方法

本申请主张2018年12月4日递交的第16/209,560号美国申请的优先权,所述美国申请主张2017年12月5日递交的美国临时专利申请62/594,989的权益,上文所列的申请中的每一个的全部内容以引用的方式并入。

本发明涉及视频编码和视频解码。



背景技术:

数字视频能力可并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置,及类似者。数字视频装置实施视频压缩技术,例如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分、高级视频译码(avc)定义的标准、最近已定案的高效视频译码(hevc)标准以及此类标准的扩展中所描述的那些技术。视频装置可通过实施此类视频压缩技术而更有效率地发射、接收、编码、解码和/或存储数字视频信息。

视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测来减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频帧或视频帧的一部分)分割成视频块,所述视频块也可被称作树块、译码单元(cu)和/或译码节点。使用相对于同一图片中的相邻块中的参考样本的空间预测对图片的经帧内译码(i)切片中的视频块进行编码。图片的经帧间译码(p或b)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,并且参考图片可被称作参考帧。

空间或时间预测产生用于待译码块的预测块。残余数据表示待译码原始块与预测块之间的像素差。经帧间译码块根据指向形成预测块的参考样本块的运动向量和指示经译码块与预测块之间的差的残余数据来编码。经帧内译码块是根据帧内译码模式和残余数据来编码的。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可随后量化所述残余变换系数。可扫描最初布置成二维阵列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码以实现甚至更多压缩。



技术实现要素:

本发明的一或多个方面涉及利用远相邻像素的帧内预测处理。

在一个实例中,一种用于对视频数据块进行解码的方法包含:确定视频数据块是在帧内预测模式中译码的;确定用于帧内预测视频数据块的一或多个样本,其中所述一或多个样本包括已经经重新构建且不邻近于视频数据块的样本;以及基于所述一或多个样本,产生视频数据块的预测块。

根据另一实例,一种用于对视频数据进行解码的装置包含:存储器,其经配置以存储视频数据块;以及一或多个处理器,其经配置以:确定视频数据块是在帧内预测模式中译码的;确定用于帧内预测视频数据块的一或多个样本,其中所述一或多个样本包括已经经重新构建且不邻近于视频数据块的样本;以及基于所述一或多个样本,产生视频数据块的预测块。

根据另一实例,计算机可读存储媒体存储指令,所述指令在由一或多个处理器执行时使得所述一或多个处理器:确定视频数据块是在帧内预测模式中译码的;确定用于帧内预测视频数据块的一或多个样本,其中所述一或多个样本包括已经经重新构建且不邻近于视频数据块的样本;以及基于所述一或多个样本,产生视频数据块的预测块。

根据另一实例,一种用于对视频数据进行解码的装置包含:用于确定视频数据块是在帧内预测模式中译码的装置;用于确定用于帧内预测视频数据块的一或多个样本的装置,其中所述一或多个样本包括已经经重新构建且不邻近于视频数据块的样本;以及用于基于所述一或多个样本产生视频数据块的预测块的装置。

在附图和下文描述中阐述本发明的一或多个实例的细节。其它特征、目标和优点将从所述描述、图式以及权利要求书中显而易见。

附图说明

图1是说明可利用本发明中所描述的技术的实例视频编码和解码系统的框图。

图2a和2b是说明实例四叉树二叉树(qtbt)结构和对应的译码树单元(ctu)的概念图。

图3示出了用于16x16块的帧内预测的实例。

图4是在hevc中定义的35个帧内预测模式的图解说明。

图5a到5d示出了用于填充不可供使用的相邻样本的实例技术。

图6示出了根据本发明的技术来自远相邻像素的帧内预测的实例。

图7a和7b示出了根据本发明的技术用于定位远相邻像素的实例技术。

图8a和8b示出了用于定位远相邻子像素的实例技术。

图9示出了用于使用远相邻像素的填充的实例技术。

图10a和10b示出了用于定位用于填充的远相邻像素的实例技术。

图11a和11b示出了根据本发明的技术用于定位远相邻子像素的实例技术。

图12示出了用于来自远相邻像素和近相邻像素的组合填充的实例技术。

图13示出了根据本发明的技术滤波经填充不可供使用的相邻像素的实例。

图14示出了基于本发明的技术填充来自可供使用的远相邻像素的不可供使用的远相邻像素的实例。

图15是说明可实施本发明中所描述的技术的实例视频编码器的框图。

图16是说明可实施本发明中所描述的技术的实例视频解码器的框图。

图17是说明根据本发明的技术用于对视频数据进行解码的视频解码器的实例操作的流程图。

具体实施方式

包含最近研发的高效视频译码(hevc)标准在内的各种视频译码标准包含用于视频块的预测译码模式,其中基于已经译码的视频数据块来预测当前正译码的块。在帧内预测模式中,基于与当前块在相同图片中的一个或多个先前经译码相邻块来预测当前块,而在帧间预测模式中,基于不同图片中的已经译码块来预测当前块。在帧间预测模式中,确定先前经译码帧的块用作预测块的过程有时被称作运动估计,其通常由视频编码器执行,且识别和检索预测块的过程有时被称作运动补偿,其由视频编码器和视频解码器两者执行。包含当前正在研发中的多功能视频译码(vvc)标准的hevc的扩展和hevc的后继者也可使用额外的译码模式,例如帧内块复制、字典和调色板译码模式。

本发明描述了涉及帧内预测的技术,并且更确切地说,涉及使用远相邻像素的帧内预测,其中术语远相邻像素通常是指不定位成邻近于当前块的像素。本发明中所描述的技术可使得经帧内预测块能够更接近地类似原始视频数据块,这可以改进整体译码性能,举例来说,如通过速率失真折衷判定。作为将在下文更详细地描述的一个具体实例,在与用于使用不可供使用的像素执行帧内预测的现有技术相比时本发明的技术可提供更好的译码性能。本发明的技术可在高级视频编解码器的情境中使用,例如下一代视频译码标准或图像译码标准。

可参考视频译码器来描述本发明中的各种技术,所述视频译码器意图为可以指视频编码器或视频解码器的通用术语。除非以其它方式明确陈述,否则不应假设相对于视频编码器或视频解码器描述的技术不可由视频编码器或视频解码器中的另一者来执行。举例来说,在许多情况下,视频解码器执行与视频编码器相同或有时互逆的译码技术,以便对经编码视频数据进行解码。在许多情况下,视频编码器还包含视频解码环,并且因此视频编码器执行视频解码作为对视频数据进行编码的一部分。因此,除非另外说明,否则本发明中相对于视频解码器所描述的技术也可由视频编码器执行,且反之亦然。

本发明也可以使用例如当前块、当前图片等术语。在本发明的情形下,术语“当前”意图识别相对于例如先前或已经译码的块或图片或待译码的块或图片的当前正经译码的块或图片。

图1是说明可利用本发明中所描述的帧内预测技术的实例视频编码和解码系统10的框图。如图1中所示,系统10包含源装置12,所述源装置产生经编码视频数据以在稍后时间由目的地装置14解码。源装置12和目的地装置14可以是多种多样的装置中的任一者,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”平板计算机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置,或类似者。在一些情况下,可装备源装置12和目的地装置14以用于无线通信。

目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包含能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,链路16包含通信媒体以使得源装置12能够将经编码视频数据直接实时发射到目的地装置14。经编码视频数据可根据通信标准(例如,无线通信协议)来调制,且被发射到目的地装置14。通信媒体可包含无线或有线通信媒体中的一或两者,例如射频(rf)频谱或一或多个物理发射线。通信媒体可形成基于包的网络的部分,所述基于包的网络例如局域网、广域网或全球网络,例如因特网。通信媒体可包含路由器、交换器、基站或可用于促进从源装置12到目的地装置14的通信的任何其它设备。

在另一实例中,可将经编码数据从输出接口22输出到存储装置26。类似地,可通过输入接口从存储装置26存取经编码数据。存储装置26可包含多种分布式或本地存取式数据存储媒体中的任一个,例如硬盘驱动器、蓝光光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置26可对应于文件服务器或可保持由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置26存取所存储的视频数据。文件服务器可以是能够存储经编码视频数据并且将经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含万维网服务器(例如,用于网站)、ftp服务器、网络附接存储(nas)装置或本地磁盘驱动器。目的地装置14可通过包含因特网连接的任何标准数据连接来存取经编码视频数据。此连接可包含适于存取存储在文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或两者的组合。经编码视频数据从存储装置26的发射可以是流式发射、下载发射或两者的组合。

本发明的技术不必限于无线应用或设置。所述技术可应用于视频译码以支持多种多媒体应用中的任一个,例如空中电视广播、有线电视发射、卫星电视发射、流式视频发射(例如,经由因特网)、对数字视频进行编码以存储在数据存储媒体上、对存储在数据存储媒体上的数字视频进行解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频重放、视频广播和/或视频电话的应用。

在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些情况下,输出接口22可包含调制器/解调器(调制解调器)和/或发射器。在源装置12中,视频源18可包含例如视频俘获装置(例如,摄像机)、含有先前所俘获的视频的视频存档、用于从视频内容提供者接收视频的视频馈送接口和/或用于产生计算机图形数据作为源视频的计算机图形系统或此类来源的组合等来源。作为一个实例,如果视频源18是摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,本发明中所描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。

可由视频编码器20编码所俘获的视频、预俘获的视频或计算机产生的视频。经编码视频数据可经由源装置12的输出接口22直接发射到目的地装置14。经编码视频数据还可以(或替代地)存储到存储装置26上,以供稍后由目的地装置14或其它装置存取以用于解码和/或重放。

目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些情况下,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口28经由链路16接收经编码视频数据。经由链路16传送或在存储装置26上提供的经编码视频数据可包含由视频编码器20产生的多种语法元素,以供例如视频解码器30等视频解码器用于对视频数据进行解码。此类语法元素可与在通信媒体上发射、存储在存储媒体上或存储在文件服务器上的经编码视频数据包含在一起。

显示装置32可与目的地装置14集成或在目的地装置14外部。在一些实例中,目的地装置14可包含集成显示装置,并且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可以是显示装置。一般来说,显示装置32向用户显示经解码视频数据,且可以是多种显示装置中的任一个,例如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示装置。

视频编码器20和视频解码器30可根据例如最近已定案的高效视频译码(hevc)标准的视频压缩标准操作,且可符合hevc测试模型(hm)。视频编码器20和视频解码器30可另外根据hevc扩展,例如范围扩展、多视图扩展(mv-hevc)或已由关于视频译码的联合合作小组(jct-vc)以及关于3d视频译码扩展研发(jct-3v)的itu-t视频译码专家组(vceg)和iso/iec动画专家组(mpeg)的联合合作小组研发的可缩放扩展(shvc)操作。

视频编码器20和视频解码器30也可以根据其它专有或行业标准操作,例如itu-th.264标准,替代地被称作iso/iecmpeg-4,第10部分,高级视频译码(avc),或此类标准的扩展,例如可缩放视频译码(svc)和多视图视频译码(mvc)扩展。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263和iso/iecmpeg-4visual。

itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)现在正在研究对具有显著超出当前hevc标准(包含其用于屏幕内容译码和高动态范围译码的当前扩展和近期扩展)的压缩能力的压缩能力的未来视频译码技术的标准化的潜在需要。所述组在已知为联合视频探索小组(jvet)的联合合作努力中一起从事此探索活动以评估由他们的在此区域的专家提出的压缩技术设计。jvet在2015年10月19日到21日期间首次会面。参考软件的一个版本,即,联合探索模型2(jem2),可以从以下链接下载:https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-2.0/。用于jem2的算法描述于j.chen、e.alshina、g.j.sullivan、j.-r.ohm、j.boyce的“联合探索测试模型2的算法描述(algorithmdescriptionofjointexplorationtestmodel2)”,jvet-b1001,圣地亚哥,2016年3月中。参考软件的另一版本,即,联合探索模型3(jem3),可以从以下链接下载:https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-3.0/。用于jem3的算法描述也可被称作jvet-c1001。用于jem4的算法描述于j.chen、e.alshina、g.j.sullivan、j.-r.ohm、j.boyce的“联合探索测试模型4的算法描述(algorithmdescriptionofjointexplorationtestmodel4)”,jvet-d1001,2016年10月中。

基于itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)的工作,被称作多功能视频译码(vvc)标准的新视频译码标准在通过vceg和mpeg的联合视频专家小组(jvet)的研发下。vvc的较早草案是在文档jvet-j1001“多功能视频译码(草案1)(versatilevideocoding(draft1))”中可供使用的,并且其算法描述是在文档jvet-j1002“用于多功能视频译码和测试模型1(vtm1)的算法描述(algorithmdescriptionforversatilevideocodingandtestmodel1(vtm1))”中可供使用的。vvc的另一较早草案是在文档jvet-l1001“多功能视频译码(草案3)(versatilevideocoding(draft3))”中可供使用的,并且其算法描述是在文档jvet-l1002“用于多功能视频译码和测试模型3(vtm3)的算法描述(algorithmdescriptionforversatilevideocodingandtestmodel3(vtm3))”中可供使用的。

为了易于解释,本发明的技术可利用hevc术语。然而,不应假设本发明的技术受限于hevc,且实际上应明确地设想本发明的技术可以在hevc后续标准及其扩展中实施。

虽然在图1中未示出,但是在一些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,并且可包含适当的多路复用器-多路分用器(mux-demux)单元或其它硬件和软件以处理对共同数据流或单独的数据流中的音频或视频两者的编码。在一些实例中,如果适用的话,那么mux-demux单元可以符合ituh.223多路复用器协议,或例如用户数据报协议(udp)的其它协议。

视频编码器20和视频解码器30各自可被实施为多种合适的编码器电路系统或解码器电路系统中的任一个,例如一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实施所述技术时,装置可将用于所述软件的指令存储在合适的非暂时性计算机可读媒体中,并且使用一或多个处理器在硬件中执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可以集成为相应装置中的组合编码器/解码器(编解码器)的部分。

在hevc和其它视频译码规范中,视频序列通常包含一系列图片。图片也可被称作“帧”。在一个实例方法中,图片可包含三个样本阵列,标示为sl、scb和scr。在此类实例方法中,sl是亮度样本的二维阵列(即,块)。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。色度样本在本文中还可以被称作“色度(chroma)”样本。在其它情况下,图片可以是单色的且可仅包含亮度样本的阵列。

为了产生图片的经编码表示,视频编码器20可产生译码树单元(ctu)的集合。ctu的大小可以在hevc主规范中的16x16到64x64的范围中(虽然技术上也可以支持8x8ctu大小)。ctu中的每一个可包含亮度样本的译码树块、色度样本的两个对应的译码树块和用于对译码树块的样本进行译码的语法结构。在单色图片或具有三个单独色彩平面的图片中,ctu可包含单个译码树块和用于对译树码块的样本进行译码的语法结构。译码树块可以是nxn的样本块。ctu也可以被称作“树块”或“最大译码单元(lcu)”。hevc的ctu可广泛地类似于例如h.264/avc的其它标准的宏块。然而,ctu不必限于特定大小,并且可包含一或多个译码单元(cu)。切片可包含按光栅扫描次序连续排序的整数数目的ctu。

为了产生经译码ctu,视频编码器20可在ctu的译码树块上以递归方式执行四叉树分割,以将译码树块划分为译码块,因此命名为“译码树单元”。译码块可以是nxn的样本块。cu可包含具有亮度样本阵列、cb样本阵列和cr样本阵列的图片的亮度样本的译码块和色度样本的两个对应的译码块,以及用于对译码块的样本进行译码的语法结构。在单色图片或具有三个单独色彩平面的图片中,cu可包含单个译码块和用于对译码块的样本进行译码的语法结构。

视频编码器20可将cu的译码块分割为一或多个预测块。预测块是被应用相同预测的样本的矩形(即,正方形或非正方形)块。cu的预测单元(pu)可包含亮度样本的预测块、色度样本的两个对应的预测块以及用于预测预测块的语法结构。在单色图片或具有三个单独色彩平面的图片中,pu可包含单个预测块和用于对预测块进行预测的语法结构。视频编码器20可产生用于cu的每个pu的亮度预测块、cb预测块和cr预测块的预测亮度块、cb块和cr块。

视频编码器20可使用帧内预测或帧间预测来产生用于pu的预测块。如果视频编码器20使用帧内预测来产生pu的预测块,那么视频编码器20可基于与pu相关联的图片的经解码样本产生pu的预测块。如果视频编码器20使用帧间预测来产生pu的预测块,那么视频编码器20可基于除与pu相关联的图片之外的一或多个图片的经解码样本产生pu的预测块。

每个cu以一种模式译码。当cu经帧间译码时,cu可进一步分割成2个或4个预测单元pu或当进一步分割不适用时变为仅一个pu。当两个pu存在于一个cu中时,两个pu可以是一半大小的矩形或具有cu的1/4或3/4大小的两个矩形大小。当cu经帧间译码时,针对每个pu可以存在运动信息的一个集合。另外,每个pu是用唯一帧间预测模式译码的以导出运动信息的集合。

在视频编码器20产生cu的一或多个pu的预测亮度块、cb块和cr块之后,视频编码器20可产生cu的亮度残余块。cu的亮度残余块中的每个样本指示cu的预测亮度块中的一个中的亮度样本与cu的原始亮度译码块中的对应的样本之间的差异。另外,视频编码器20可产生cu的cb残余块。cu的cb残余块中的每个样本可指示cu的预测cb块中的一个中的cb样本与cu的原始cb译码块中的对应的样本之间的差异。视频编码器20也可产生cu的cr残余块。cu的cr残余块中的每个样本可指示cu的预测cr块中的一个中的cr样本与cu的原始cr译码块中的对应的样本之间的差异。

此外,视频编码器20可使用四叉树分割来将cu的亮度残余块、cb残余块和cr残余块分解为一或多个亮度变换块、cb变换块和cr变换块。变换块是被应用相同变换的矩形(例如,正方形或非正方形)样本块。cu的变换单元(tu)可包含亮度样本的变换块、色度样本的两个对应的变换块,以及用于对变换块样本进行变换的语法结构。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。与tu相关联的亮度变换块可以是cu的亮度残余块的子块。cb变换块可以是cu的cb残余块的子块。cr变换块可以是cu的cr残余块的子块。在单色图片或具有三个单独色彩平面的图片中,tu可包含单个变换块和用于对变换块的样本进行变换的语法结构。

视频编码器20可将一或多个变换应用于tu的亮度变换块以产生tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一或多个变换应用于tu的cb变换块以产生tu的cb系数块。视频编码器20可将一或多个变换应用于tu的cr变换块以产生tu的cr系数块。

在产生系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可量化系数块。量化通常是指对变换系数进行量化以可能减少用于表示变换系数的数据的量从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可以对指示经量化变换系数的语法元素进行熵编码。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(cabac)。

视频编码器20可输出包含形成经译码图片和相关联数据的表示的位的序列的位流。位流可包含网络抽象层(nal)单元的序列。nal单元是含有nal单元中的数据类型的指示和含有所述数据的呈按需要穿插有模拟阻止位的原始字节序列有效负载(rbsp)的形式的字节的语法结构。nal单元中的每一个包含nal单元标头且封装rbsp。nal单元标头可包含指示nal单元类型代码的语法元素。由nal单元的nal单元标头指定的nal单元类型代码指示nal单元的类型。rbsp可以是含有封装在nal单元内的整数数目的字节的语法结构。在一些情况下,rbsp包含零个位。

不同类型的nal单元可封装不同类型的rbsp。举例来说,第一类型的nal单元可封装用于pps的rbsp,第二类型的nal单元可封装用于经译码切片的rbsp,第三类型的nal单元可封装用于sei的rbsp等等。封装视频译码数据的rbsp(与参数集和sei消息的rbsp相对)的nal单元可被称作vclnal单元。

视频解码器30可接收由视频编码器20产生的位流。另外,视频解码器30可解析位流以从位流获得语法元素。视频解码器30可至少部分地基于从位流获得的语法元素来重新构建视频数据的图片。重新构建视频数据的过程可通常与视频编码器20执行的过程互逆。另外,视频解码器30可对与当前cu的tu相关联的系数块进行逆量化。视频解码器30可对系数块执行逆变换以重新构建与当前cu的tu相关联的变换块。通过将当前cu的pu的预测块的样本添加到当前cu的tu的变换块的对应的样本,视频解码器30可重新构建当前cu的译码块。通过重新构建用于图片的每个cu的译码块,视频解码器30可以重新构建图片。

在jem4软件中采用如h.huang、k.zhang、y.-w.huang、s.lei在“ee2.1:通过jem工具的四叉树加二叉树结构集成(ee2.1:quadtreeplusbinarytreestructureintegrationwithjemtools)”,jvet-c0024,2016年6月中描述的四叉树-二叉树(qtbt)结构。在qtbt结构中,ctb首先由四叉树结构分割。四叉树叶节点进一步由二叉树结构分割。二叉树叶节点,也就是译码块(cb),用于预测和变换而没有任何进一步分割。对于p和b切片,一个ctu中的亮度和色度ctb共享相同的qtbt结构。对于i切片,亮度ctb通过qtbt结构被分割成cb,且两个色度ctb通过另一qtbt结构被分割成色度cb。

作为四叉树的根节点的ctu(或用于i切片的ctb)首先由四叉树分割,其中一个节点的四叉树分裂可以迭代直至节点达到最小所允许的四叉树叶节点大小(minqtsize)。如果四叉树叶节点大小并不大于最大所允许的二叉树根节点大小(maxbtsize),那么它可以由二叉树进一步分割。一个节点的二叉树分裂可以迭代直至节点达到最小所允许的二叉树叶节点大小(minbtsize)或最大所允许的二叉树深度(maxbtdepth)。二叉树叶节点,也就是cu(或用于i切片的cb),将用于预测(例如,图片内或图片间预测)和变换而没有任何进一步分割。在二叉树分裂中存在两个分裂类型:对称水平分裂和对称竖直分裂。

在qtbt分割结构的一个实例中,ctu大小被设置成128x128(亮度样本和对应的64x64cb/cr样本),minqtsize被设置成16x16,maxbtsize被设置成64x64,minbtsize(对于宽度和高度两者)被设置成4,并且maxbtdepth被设置成4。四叉树分割首先被应用于ctu以产生四叉树叶节点。四叉树叶节点可具有从16x16(即,minqtsize)到128x128(即,ctu大小)的大小。如果叶四叉树节点是128x128,由于此大小超过maxbtsize(即,64x64),那么可能并不进一步由二叉树分裂叶四叉树节点。否则的话,叶四叉树节点将由二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点且其二叉树深度被定义为0。当二叉树深度达到maxbtdepth(即,4)时,它意味着没有进一步分裂。当二叉树节点具有等于minbtsize(即,4)的宽度时,它意味着没有进一步水平分裂。类似地,当二叉树节点具有等于minbtsize的高度时,它意味着没有进一步竖直分裂。二叉树的叶节点,也就是cu,由预测和变换进一步处理而没有任何进一分割。

图2a和2b是说明实例qtbt结构130和对应的ctu132的概念图。实线表示四叉树分裂,且虚线指示二叉树分裂。在二叉树的每个分裂(即,非叶)节点中,用信号发送一个旗标以指示使用哪个分裂类型(即,水平或竖直),其中在此实例中0指示水平分裂且1指示竖直分裂。对于四叉树分裂,不需要指示分裂类型,这是因为四叉树节点水平地且竖直地将块分裂成具有相等大小的4个子块。因此,视频编码器20可编码,且视频解码器30可解码用于qtbt结构130的区树层级(即,实线)的语法元素(例如分裂信息)和用于qtbt结构130的预测树层级(即,虚线)的语法元素(例如分裂信息)。视频编码器20可编码,且视频解码器30可解码用于由qtbt结构130的终端叶节点表示的cu的视频数据,例如预测和变换数据。

对于i切片,提出亮度-色度分开的块分割结构。一个ctu的亮度分量(即,亮度ctb)由qtbt结构分割成亮度cb,并且ctu的两个色度分量(即,两个色度ctb)由另一qtbt结构分割成色度cb。

对于p和b切片,共享用于亮度和色度的块分割结构。也就是说,一个ctu(包含亮度和色度两者)由一个qtbt结构分割成cu。

图3示出了用于16x16块的帧内预测的实例。当在帧内预测模式中对块进行译码时,视频编码器20或视频解码器30使用空间相邻经重新构建图像样本来执行图像块预测。在图3中示出了用于16x16图像块的帧内预测的典型实例。为了对16x16块40进行帧内预测,视频编码器20和视频解码器30沿着所选择的预测方向(如由箭头41所指示)使用左上方相邻经重新构建样本(参考样本)预测16x16块40。

图4示出了在hevc中定义的35个帧内预测模式。在hevc中,对于亮度块的帧内预测,视频编码器20和视频解码器30可从35个可供使用的模式中选择,包含平坦模式、dc模式和33个角度模式,如在图4中所指示。预期hevc的后续标准可包含多于35个模式。

在图5a到14的实例中,具有实线的圆圈意图表示所预测的像素或可供使用的像素。具有虚线的圆圈意图表示不可供使用的像素。一般来说,像素可包含一或多个样本。举例来说,像素可包含一个亮度样本和两个色度样本。在本发明相对于像素描述技术的情况下,应理解技术可应用于样本。举例来说,技术可应用于像素的一些或所有的样本。类似地,在本发明相对于样本描述技术的情况下,应理解技术可应用于像素。

图5a到5d示出了用于填充不可供使用的相邻样本的实例技术。在一些情况下,用于帧内预测的相邻样本是可供使用的,如在用于上方相邻样本的图5a和用于左侧相邻样本的图5c中所示。经重新构建相邻样本用于帧内预测过程中。在一些其它情况下,用于帧内预测的一些相邻样本是不可供使用的。在此类情况下,不可供使用的相邻样本首先填充有邻近可供使用的相邻像素,随后经填充像素用于帧内预测过程中,如在用于上方相邻像素的图5b和用于左侧相邻样本的图5d中所示。在一些情况下,填充样本可能不反映不可供使用的相邻块的真实纹理图案。

图5a示出了当前块100,其表示由视频编码器20或视频解码器30预测的块。视频编码器20和视频解码器30可使用上方相邻样本a1-i1预测当前块120,所述上方相邻样本在图5a的实例中都是可供使用的,意味着相邻样本已经经重新构建。图5b示出了当前块120,其表示由视频编码器20或视频解码器30预测的块。视频编码器20和视频解码器30可使用上方相邻样本a2-i2预测当前块120。在图5b的实例中,上方相邻样本a2-e2都是可供使用的,意味着相邻样本a2-e2已经经重新构建,而上方相邻样本f2-i2都是不可供使用的,意味着相邻样本f2-i2尚未经重新构建。因为相邻样本f2-i2尚未经重新构建,所以视频编码器20和视频解码器30可使用填充确定相邻样本f2-i2的值。举例来说,视频编码器20和视频解码器30可将相邻样本f2-i2的值设置为等于上方相邻样本e2的值或者可以某一其它方式确定相邻样本f2-i2的值。

图5c示出了当前块140,其表示由视频编码器20或视频解码器30预测的块。视频编码器20和视频解码器30可使用左侧相邻样本a3-i3预测当前块140,所述左侧相邻样本在图5c的实例中都是可供使用的,意味着相邻样本a3-i3已经经重新构建。图5d示出了当前块160,其表示由视频编码器20或视频解码器30预测的块。视频编码器20和视频解码器30可使用左侧相邻样本a4-i4预测当前块160。在图5d的实例中,左侧相邻样本a4-e4都是可供使用的,意味着相邻样本a4-e4已经经重新构建,而左侧相邻样本f4-i4都是不可供使用的,意味着相邻样本f4-i4尚未经重新构建。因为相邻样本f4-i4尚未经重新构建,所以视频编码器20和视频解码器30可使用填充确定相邻样本f4-i4的值。举例来说,视频编码器20和视频解码器30可将相邻样本f4-i4的值设置为等于左侧相邻样本e4的值或者可以某一其它方式确定相邻样本f4-i4的值。

在与预测来自可供使用的经重新构建样本的当前视频数据块相比时,就可通过压缩实现的速率失真折衷而言,预测来自经填充样本的当前视频数据块可引起较差的译码质量。为了潜在地解决或避免通过填充所引入的问题,本发明描述了用于使用具有远相邻像素的帧内预测的若干技术。可单独地应用所描述的技术,或除非另外说明,所描述的技术还可以任何组合形式应用。

根据本发明的一个技术,视频编码器20和视频解码器30可使用当前块的帧内预测过程中的远相邻像素。在此情形下,远相邻像素可以指不邻近于当前块的像素。远相邻像素可属于邻近于当前块的相邻块。在一些实例中,远相邻像素可属于不邻近于当前块的远相邻块,意味着远相邻块并不与当前块共享边界。在一些实例中,远相邻像素可属于由运动向量识别的参考帧中的块。

在一些实例中,相邻块和远相邻块的可供使用性可用于确定远相邻像素是否应该用于当前块的帧内预测过程中;哪个远相邻应该用于当前块的帧内预测过程中;以及远相邻应该如何用于当前块的帧内预测过程中。

在一些实例中,远相邻像素可通过使用模板匹配来识别。也就是说,可供使用的相邻样本被用作模板,并且此模板与经重新构建图像区相比且以最小成本识别最佳匹配,并且待填充的样本通过位于最佳匹配的对应的位置处的可供使用的样本导出。

在一些实例中,当前块的帧内预测模式可用于确定远相邻像素是否应该用于当前块的帧内预测过程中;哪个远相邻应该用于当前块的帧内预测过程中;以及远相邻应该如何用于当前块的帧内预测过程中。

图6示出了来自远相邻像素的帧内预测的实例。更确切地说,图6示出了其中当前块200是通过例如视频编码器20或视频解码器30使用由箭头202表示的角度帧内预测模式经帧内预测的实例。在图6的实例中,相邻块204和块206是可供使用的,但是块208是不可供使用的,例如,因为当前块200在块208之前经编码/解码。在此情况下,如果预测方向在竖直0°到竖直-45°之间或包含地在如图4中所示的模式27与模式34之间,那么视频编码器20和视频解码器30可在当前块200的帧内预测过程中使用像素f5、g5、h5和i5。

图7a和7b示出了定位远相邻像素的实例。图7a和7b示出了视频编码器20和视频解码器30可如何通过定位在沿着由帧内预测模式定义的方向从像素开始的线上的第一可供使用的像素使用远相邻像素来预测当前块中的像素的实例。

图7a示出了如果帧内预测方向是竖直-45°,那么视频编码器20和视频解码器30可如何通过定位像素a6的远相邻像素来帧内预测当前块220的实例。沿着线222,其表示沿着竖直-45°来自像素a6的线,像素b6、c6、d6和e6都是不可供使用的。像素f6是线222上的第一可供使用的像素。视频编码器20和视频解码器30可使用像素f6为用于预测像素a6的远相邻像素。因此,当确定当前块220的预测块时,视频编码器20和视频解码器30可将像素a6的值设置为等于像素f6的值。

图7b示出了如果帧内预测方向是水平-45°,那么视频编码器20和视频解码器30可如何通过定位像素a7的远相邻像素来帧内预测当前块230的另一实例。沿着线232,其表示沿着水平-45°来自像素a7的线,像素b7、c7、d7和e7都是不可供使用的。像素f7是线232上的第一可供使用的像素。视频编码器20和视频解码器30可使用像素f7为用于预测像素a7的远相邻像素。因此,当确定当前块230的预测块时,视频编码器20和视频解码器30可将像素a7的值设置为等于像素f7的值。

图8a和8b示出了定位远相邻子像素的实例。视频编码器20和视频解码器30可使用定位在从像素开始并且沿着由帧内预测模式定义的方向的线上的第一可供使用的行或列中的远相邻像素或子像素来预测当前块中的像素。子像素的样本值可以从接近子像素的第一可供使用的行或列中的像素中导出。举例来说,样本值可以通过应用在接近子像素的第一可供使用的行或列中的像素上的内插滤波器计算出。举例来说,内插滤波器可用于确定附近像素值的加权平均值。在另一实例中,样本值可以被计算为最接近子像素的第一可供使用的行或列中的像素的值。

图8a示出了如果帧内预测方向角度在竖直0°与竖直-45°之间,那么视频编码器20和视频解码器30可如何通过定位像素a8的远相邻像素来帧内预测当前块240的实例。沿着线242,其表示在帧内预测方向角度的方向上来自像素a8的线,行0、行1、行2和行3都是不可供使用的,并且行4是在子像素s8处穿过线242的第一可供使用的行。视频编码器20和视频解码器30可通过将s8设置成等于最接近的像素(即,在图8a的实例中的e8)或通过将内插滤波器应用到像素d8和e8来计算样本值来确定s8的样本值。在其它实例中,视频编码器20和视频解码器30可通过将内插滤波器应用到像素c8、d8、e8和f8或通过将内插滤波器应用到像素b8、c8、d8、e8、f8和g8来计算s8的值。

图8b示出了如果帧内预测方向角度在水平0°与水平-45°之间,那么视频编码器20和视频解码器30可如何通过定位像素a9的远相邻像素来帧内预测当前块250的实例。沿着线252,其表示在帧内预测方向角度的方向上来自像素a9的线,列0、列1、列2和列3都是不可供使用的,并且列4是在子像素s9处穿过线252的第一可供使用的行。视频编码器20和视频解码器30可通过将s9设置成等于最接近的像素(即,在图8b的实例中的e9)或通过将内插滤波器应用到像素d9和e9来计算样本值来确定s9的样本值。在其它实例中,视频编码器20和视频解码器30可通过将内插滤波器应用到像素c9、d9、e9和f9或通过将内插滤波器应用到像素b9、c9、d9、e9、f9和g9来计算s9的值。

根据本发明的另一技术,视频编码器20和视频解码器30可使用远相邻像素来填充用于当前图片的帧内预测过程的不可供使用的相邻像素。经填充的不可供使用的相邻像素随后用于当前块的帧内预测过程中。

在一些实例中,远相邻像素意味着不邻近于当前块的像素。远相邻像素可属于邻近于当前块的相邻块。在一些实例中,远相邻像素可属于不邻近于当前块的远相邻块。在一些实例中,远相邻像素可属于由运动向量识别的参考帧中的块。

在一些实例中,视频编码器20和视频解码器30可使用相邻块和远相邻块的可供使用性来确定远相邻像素是否应该用于当前块的填充过程中;哪个远相邻应该用于当前块的填充过程中;以及远相邻应该如何用于当前块的填充过程中。

在一些实例中,视频编码器20和视频解码器30可通过使用模板匹配来识别远相邻像素。也就是说,可供使用的相邻样本被用作模板,并且此模板与经重新构建图像区相比且以最小成本识别最佳匹配,并且待填充的样本通过位于最佳匹配的对应的位置处的可供使用的样本导出。

在一些实例中,视频编码器20和视频解码器30可使用当前块的帧内预测模式来确定远相邻像素是否应该用于当前块的填充过程中;哪个远相邻应该用于当前块的填充过程中;以及远相邻应该如何用于当前块的填充过程中。

图9示出了视频编码器20和视频解码器30可如何通过使用来自远相邻像素f10-i10的填充来帧内预测当前块260的实例。块262表示可供使用的像素的块,并且块264表示不可供使用的像素的块。在图9的实例中,相邻像素f10'、g10'、h10'和i10'位于块264中并且因此是不可供使用的。在此情况下,视频编码器20和视频解码器30可使用可供使用的远相邻像素f10、g10、h10和i10来填充f10'、g10'、h10'和i10'。随后,视频编码器20和视频解码器30可以在当前块260的帧内预测过程中使用经填充的f10'、g10'、h10'和i10'。

根据本发明的另一技术,视频编码器20和视频解码器30可使用远相邻像素来填充当前块的一个不可供使用的相邻像素。远相邻像素可以通过在从不可供使用的像素开始的线上的第一可供使用的像素定位。线的方向可以由帧内预测模式的角度定义。

图10a和10b示出了用于定位用于填充的远相邻像素的实例技术。图10a示出了如果帧内预测方向是竖直-45°,那么视频编码器20和视频解码器30可如何使用远相邻像素来帧内预测当前块270以填充不可供使用的像素a11的实例。块274表示当前块270的上方相邻块。在块274中的像素是可供使用的。在线272上,其表示在竖直-45°方向上来自像素a11的线,像素b11、c11和d11都是不可供使用的。像素e11是线272上的第一可供使用的像素。视频编码器20和视频解码器30可将像素a11的值设置为等于像素e11的值。

图10b示出了如果帧内预测方向是水平-45°,那么视频编码器20和视频解码器30可如何使用远相邻像素来帧内预测当前块280以填充不可供使用的像素a12的实例。块284表示当前块280的左相邻块。在块284中的像素是可供使用的。在线282上,其表示在水平-45°方向上来自像素a12的线,像素b12、c12和d12都是不可供使用的。像素e12是线282上的第一可供使用的像素。视频编码器20和视频解码器30可将像素a12的值设置为等于像素e12的值。

根据本发明的另一技术,填充用于当前块的帧内预测过程的一个不可供使用的相邻像素a的远相邻像素或子像素可以定位在沿着由帧内预测模式定义的方向在从像素a开始的线上的第一可供使用的行或列中。子像素的样本值可以从接近子像素的第一可供使用的行或列中的像素中导出。举例来说,它可以通过应用在接近子像素的第一可供使用的行或列中的像素上的内插滤波器计算出。在另一实例中,它可以被计算为最接近子像素的第一可供使用的行或列中的像素的值。

图11a和11b示出了定位远相邻子像素的实例。如图8a和8b中所示,视频编码器20和视频解码器30可使用定位在从像素开始并且沿着由帧内预测模式定义的方向的线上的第一可供使用的行或列中的远相邻像素或子像素来预测当前块中的像素。子像素的样本值可以从接近子像素的第一可供使用的行或列中的像素中导出。举例来说,样本值可以通过应用在接近子像素的第一可供使用的行或列中的像素上的内插滤波器计算出。在另一实例中,样本值可以被计算为最接近子像素的第一可供使用的行或列中的像素的值。

图11a示出了如果帧内预测方向角度在竖直0°与竖直-45°之间,那么视频编码器20和视频解码器30可如何通过使用远相邻像素确定不可供使用的像素a13的值来帧内预测当前块290的实例。沿着线292,其表示在帧内预测方向角度的方向上来自像素a13的线,行0、行1、行2和行3都是不可供使用的,并且行4是在子像素s13处穿过线292的第一可供使用的行。视频编码器20和视频解码器30可通过将s13设置为等于最接近的像素(即,在图11a的实例中的e13)或通过将内插滤波器应用到像素d13和e13来计算样本值来确定s13的样本值。在其它实例中,视频编码器20和视频解码器30可通过将内插滤波器应用到像素c13、d13、e13和f13或通过将内插滤波器应用到像素b13、c13、d13、e13、f13和g13来计算s13的值。视频编码器20和视频解码器30可随后使用为像素a13确定的值来确定当前块290的像素的像素值。

图11b示出了如果帧内预测方向角度在水平0°与水平-45°之间,那么视频编码器20和视频解码器30可如何通过使用远相邻像素确定不可供使用的像素a14的值来帧内预测当前块300的实例。沿着线302,其表示在帧内预测方向角度的方向上来自像素a14的线,列0、列1、列2和列3都是不可供使用的,并且列4是在子像素s14处穿过线302的第一可供使用的行。视频编码器20和视频解码器30可通过将s14设置为等于最接近的像素(即,在图11b的实例中的e14)或通过将内插滤波器应用到像素d14和e14来计算样本值来确定s14的样本值。在其它实例中,视频编码器20和视频解码器30可通过将内插滤波器应用到像素c14、d14、e14和f14或通过将内插滤波器应用到像素b14、c14、d14、e14、f14和g14来计算s14的值。视频编码器20和视频解码器30可随后使用为像素a14确定的值来确定当前块300的像素的像素值。

根据本发明的另一技术,视频编码器20和视频解码器30可计算用于当前块的帧内预测过程的不可供使用的相邻像素的经填充值作为来自如图5a到5d中所示的邻近可供使用的相邻像素的经填充值与来自如图10和11中所示的远相邻像素的经填充值的组合。举例来说,视频编码器20和视频解码器30可计算用于当前块的帧内预测过程的不可供使用的相邻像素的填充值作为来自如图5a到5d中所示的邻近可供使用的相邻像素的经填充值与来自如图10和11中所示的远相邻像素的经填充值的加权和。在一个实例中,加权值可以是固定的数目,例如1/2。在另一实例中,加权值是取决于不同的像素位置适应性的。

图12示出了来自帧内预测当前块310的远相邻像素和近相邻像素的组合填充的实例。a1和a2表示用于当前块的帧内预测过程的两个不可供使用的相邻像素。a1和a2可以从如在hevc中的可供使用的近相邻像素p填充;或a1和a2可以从通过在此文档中提出的可供使用的远相邻像素内插的子像素s1和s2填充。在一些实例中,padded_value(a1)=w11×值(s1)+w12×值(p),padded_value(a2)=w21×值(s2)+w22×值(p)。padded_value(x)表示像素x的经填充值。

在一个实例中,值(x)表示像素x的经重新构建值。在另一实例中,值(x)表示像素x的经滤波的经重新构建值。在另一实例中,w11=w12=w21=w22=1/2,并且在另一实例中,w11<=w21,w12>=w22。举例来说,w11=1/4,w12=3/4和w21=w22=1/2;

在一个实例中,padded_value(ax)=wx1×值(sx)+wx2×值(p)。随着x的增大(意味着ax更远离p),wx1增大但是wx2减小,具有约束条件wx1+wx2=1。举例来说,

如果0<x<m

如果x>=m

其中m是整数,例如8或16。

根据本发明的另一技术,经填充像素通过它们的相邻经填充或可供使用的相邻像素经滤波。经滤波像素用于帧内预测过程中。

图13示出了经预测当前块320的滤波经填充不可供使用的相邻像素的实例。在一个实例中:

值(a1)'=(2×值(a1)+值(p1)+值(a2))/4

值(ax)'=(2×值(ax)+值(ax-1)+值(ax+1))/4,如果1<x<n

值(an)'=(3×值(an)+值(an-1))/4

value(x)'表示在滤波之后的像素x的值。n表示用于帧内预测过程的最后一个经填充不可供使用的相邻像素。

根据本发明的另一技术,可以选择用于填充用于当前块的帧内预测过程的不可供使用的相邻像素的远相邻像素使得所有远相邻像素属于一个行(如果帧内预测方向θ在竖直0°与竖直-45°之间),或属于一个列(如果帧内预测方向θ在水平0°与水平-45°之间)。如果用于填充不可供使用的相邻像素的一或多个远相邻像素是本身不可供使用的,那么它们可以从近可供使用的远相邻像素填充。

图14示出了填充来自可供使用的远相邻像素的不可供使用的远相邻像素的实例。a1、a2和a3应该从具有远相邻像素b、c、d、……g、h和i的相同行填充。如果f、g、h和i是不可供使用的,那么它们可以通过此行中的最接近的可供使用的像素e填充。随后它们可以用于填充不可供使用的相邻像素,例如a2和a3。

图15是说明可实施本发明中描述的技术的实例视频编码器20的框图。视频编码器20可执行视频切片内的视频块的帧内和帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(i模式)可以指若干基于空间的压缩模式中的任一个。例如单向预测(p模式)或双向预测(b模式)的帧间模式可以指若干基于时间的压缩模式中的任一个。

在图15的实例中,视频编码器20包含视频数据存储器33、分割单元35、预测处理单元41、求和器50、变换处理单元52、量化单元54、熵编码单元56。预测处理单元41包含运动估计单元(meu)42、运动补偿单元(mcu)44以及帧内预测处理单元46。对于视频块重构,视频编码器20还包含逆量化单元58、逆变换处理单元60、求和器62、滤波器单元64和经解码图片缓冲器(dpb)66。

如图15中所示,视频编码器20接收视频数据并将接收到的视频数据存储在视频数据存储器33中。视频数据存储器33可存储待由视频编码器20的组件进行编码的视频数据。可例如从视频源18获得存储在视频数据存储器33中的视频数据。dpb66可以是参考图片存储器,其存储参考视频数据以用于视频编码器20例如在帧内或帧间译码模式中对视频数据进行编码。视频数据存储器33和dpb66可通过多种存储器装置中的任一个形成,例如包含同步dram(sdram)的动态随机存取存储器(dram)、磁阻式ram(mram)、电阻式ram(rram),或其它类型的存储器装置。视频数据存储器33和dpb66可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器33可与视频编码器20的其它组件一起位于芯片上,或相对于那些组件在芯片外。

分割单元35从视频数据存储器33检索视频数据并将视频数据分割成视频块。此分割还可包含分割成切片、图块或其它较大单元,以及例如根据lcu和cu的四叉树结构的视频块分割。视频编码器20总体上说明对待编码视频切片内的视频块进行编码的组件。切片可划分成多个视频块(并且可能划分成被称作图块的视频块的集合)。预测处理单元41可基于误差结果(例如,译码速率和失真水平)为当前视频块选择多个可能的译码模式中的一个,例如多个帧内译码模式中的一个或多个帧间译码模式中的一个。预测处理单元41可将所得经帧内译码块或经帧间译码块提供到求和器50以产生残余块数据,并且提供到求和器62以重新构建经编码块以用作参考图片。

预测处理单元41内的帧内预测处理单元46可相对于与待译码的当前块在相同的帧或切片中的一或多个相邻块执行当前视频块的帧内预测译码以提供空间压缩。根据本发明中描述的各种技术,帧内预测处理单元46可经配置以使用已经经重新构建且不邻近于视频数据块的样本帧内预测视频数据块。基于一或多个样本,帧内预测处理单元46可产生视频数据块的预测块。

预测处理单元41内的运动估计单元42和运动补偿单元44相对于一或多个参考图片中的一或多个预测块执行当前视频块的帧间预测译码以提供时间压缩。运动估计单元42可经配置以根据用于视频序列的预定图案来确定用于视频切片的帧间预测模式。预定图案可将序列中的视频切片指定为p切片或b切片。运动估计单元42和运动补偿单元44可高度集成,但出于概念的目的分别加以说明。由运动估计单元42执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块的pu相对于参考图片内的预测块的位移。

预测块是被发现就像素差而言与待译码的视频块的pu密切匹配的块,像素差可通过绝对差总和(sad)、平方差总和(ssd)或其它差量度来确定。在一些实例中,视频编码器20可计算存储在dpb66中的参考图片的子整数像素位置的值。举例来说,视频编码器20可以内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以相对于整数像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动向量。

运动估计单元42通过比较pu的位置与参考图片的预测块的位置来计算用于经帧间译码切片中的视频块的pu的运动向量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),其中的每一个识别存储在dpb66中的一或多个参考图片。运动估计单元42将计算出的运动向量发送到熵编码单元56和运动补偿单元44。

通过运动补偿单元44执行的运动补偿可以涉及基于通过运动估计(可能执行对子像素精度的内插)确定的运动向量提取或产生预测块。在接收到当前视频块的pu的运动向量之后,运动补偿单元44可在参考图片列表中的一个中定位运动向量所指向的预测块。视频编码器20通过从正经译码的当前视频块的像素值中减去预测块的像素值来形成残余视频块,从而形成像素差值。像素差值形成用于块的残余数据,且可包含亮度和色度差分量两者。求和器50表示可执行此减法运算的一或多个组件。运动补偿单元44还可产生与视频块和视频切片相关联的供视频解码器30在对视频切片的视频块进行解码时使用的语法元素。

在预测处理单元41经由帧内预测或帧间预测产生用于当前视频块的预测块之后,视频编码器20通过从当前视频块减去预测块而形成残余视频块。残余块中的残余视频数据可包含在一或多个tu中并应用到变换处理单元52。变换处理单元52使用例如离散余弦变换(dct)或概念上类似的变换等变换来将残余视频数据变换成残余变换系数。变换处理单元52可将残余视频数据从像素域转换到变换域,例如频域。

变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低位速率。量化过程可减小与系数中的一些或全部相关联的位深度。可通过调节量化参数来修改量化的程度。在一些实例中,量化单元54可随后对包含经量化变换系数的矩阵执行扫描。在另一实例中,熵编码单元56可执行扫描。

在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵编码方法或技术。在由熵编码单元56进行熵编码之后,可将经编码位流发射到视频解码器30,或将经编码位流存档以供稍后由视频解码器30发射或检索。熵编码单元56还可对正经译码的当前视频切片的运动向量和其它语法元素进行熵编码。

逆量化单元58和逆变换处理单元60相应地应用逆量化和逆变换来重新构建像素域中的残余块,以供稍后用作参考图片的参考块。运动补偿单元44可以通过将残余块添加到参考图片列表中的一个内的参考图片中的一个的预测块来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用到经重新构建残余块以计算子整数像素值以用于运动估计。求和器62将经重新构建残余块添加到由运动补偿单元44产生的运动补偿预测块以产生经重新构建块。

滤波器单元64对经重新构建块(例如,求和器62的输出)进行滤波且将经滤波的经重新构建块存储在dpb66中以用作参考块。参考块可由运动估计单元42和运动补偿单元44使用作为用于对后续视频帧或图片中的块进行帧间预测的参考块。滤波器单元64意图表示解块滤波器、样本自适应偏移滤波器和自适应环路滤波器或其它类型的滤波器中的一或多个。举例来说,解块滤波器可应用解块滤波对块边界进行滤波,以从经重新构建视频移除成块效应假影。样本自适应偏移滤波器可对经重新构建像素值应用偏移以便改进整体译码质量。也可使用额外的环路滤波器(在环路或后环路中)。

图16是说明可实施本发明中描述的技术的实例视频解码器30的框图。图16的视频解码器30可例如经配置以接收上文相对于图15的视频编码器20所描述的信令。在图16的实例中,视频解码器30包含视频数据存储器78、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元92和dpb94。预测处理单元81包含运动补偿单元82和帧内预测处理单元84。在一些实例中,视频解码器30可执行大体上与相对于来自图15的视频编码器20描述的编码遍次互逆的解码遍次。

在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块的经编码视频位流和相关联的语法元素。视频解码器30将接收到的经编码视频位流存储在视频数据存储器78中。视频数据存储器78可存储待由视频解码器30的组件解码的视频数据,例如,经编码视频位流。存储在视频数据存储器78中的视频数据可例如经由链路16从存储装置26或从例如相机的本地视频源或通过存取物理数据存储媒体来获得。视频数据存储器78可形成经译码图片缓冲器(cpb),所述经译码图片缓冲器存储来自经编码视频位流的经编码视频数据。dpb94可以是参考图片存储器,所述参考图片存储器存储例如在帧内或帧间译码模式中用于通过视频解码器30对视频数据进行解码的参考视频数据。视频数据存储器78和dpb94可由多种存储器装置中的任一个形成,例如dram、sdram、mram、rram或其它类型的存储器装置。视频数据存储器78和dpb94可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器78可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。

视频解码器30的熵解码单元80对存储于视频数据存储器78中的视频数据进行熵解码以产生经量化系数、运动向量和其它语法元素。熵解码单元80将运动向量和其它语法元素转发到预测处理单元81。视频解码器30可以接收在视频切片层级和/或视频块层级处的语法元素。

当视频切片经译码为经帧内译码(i)切片时,预测处理单元81的帧内预测处理单元84可基于用信号发送的帧内预测模式和来自当前帧或图片的先前经解码块的数据产生用于当前视频切片的视频块的预测数据。根据本发明中描述的各种技术,帧内预测处理单元84可经配置以使用已经经重新构建且不邻近于视频数据块的样本帧内预测视频数据块。基于一或多个样本,帧内预测处理单元84可产生视频数据块的预测块。

当视频帧经译码为经帧间译码切片(例如,b切片或p切片)时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动向量和其它语法元素产生用于当前视频切片的视频块的预测块。预测块可以从参考图片列表中的一个内的参考图片中的一个中产生。视频解码器30可基于存储在dpb94中的参考图片使用默认构建技术来构建参考帧列表(列表0和列表1)。

运动补偿单元82通过解析运动向量和其它语法元素确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息产生用于正经解码的当前视频块的预测块。举例来说,运动补偿单元82使用接收到的语法元素中的一些来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,b切片或p切片)、用于切片的参考图片列表中的一或多个的构建信息、用于切片的每个经帧间编码视频块的运动向量、切片的每个经帧间译码视频块的帧间预测状态,以及用于对当前视频切片中的视频块进行解码的其它信息。

运动补偿单元82还可基于内插滤波器而执行内插。运动补偿单元82可使用如由视频编码器20在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元82可从接收到的语法元素确定由视频编码器20使用的内插滤波器并使用所述内插滤波器来产生预测块。

逆量化单元86将提供于位流中且由熵解码单元80解码的经量化的变换系数逆量化,即,去量化。逆量化过程可包含使用由视频编码器20针对视频切片中的每个视频块计算的量化参数来确定应该应用的量化的程度,并且类似地确定应该应用的逆量化的程度。逆变换处理单元88将逆变换,例如逆dct、逆整数变换或在概念地类似的逆变换过程,应用于变换系数,以便产生像素域中的残余块。

在预测处理单元使用例如帧内或帧间预测产生当前视频块的预测块之后,视频解码器30通过对来自逆变换处理单元88的残余块与由运动补偿单元82产生的对应的预测块进行求和而形成经重新构建视频块。求和器90表示可执行此求和运算的一或多个组件。

滤波器单元92使用例如解块滤波、sao滤波、自适应环路滤波或其它类型的滤波器中的一或多个对经重新构建视频块进行滤波。还可使用其它环路滤波器(在译码环路中或在译码环路之后)以使像素转变平滑或者以其它方式改进视频质量。随后将给定帧或图片中的经解码视频块存储在dpb94中,所述dpb存储用于后续运动补偿的参考图片。dpb94可为存储经解码视频以供稍后呈现在例如图1的显示装置32的显示装置上的额外存储器的部分或与其分离。

图17是说明根据本发明的技术用于对视频数据进行解码的视频解码器的实例操作的流程图。举例来说,相对于图17描述的视频解码器可以是视频解码器,例如视频解码器30,以用于输出可显示的经解码视频或者可以是在视频编码器中实施的视频解码器,例如视频编码器20的解码环路,其包含预测处理单元41、逆量化单元58、逆变换处理单元60、滤波器单元64和dpb66。

视频解码器确定视频数据块在帧内预测模式中译码(350)。视频解码器确定用于帧内预测视频数据块的一或多个样本,其中一或多个样本包含已经经重新构建且不邻近于视频数据块的样本(352)。用于帧内预测视频数据块的一或多个样本可以进一步包含属于邻近于视频数据块的相邻块的样本、属于不邻近于视频数据块的远相邻块的样本或属于由运动向量识别的参考帧中的块的样本中的一或多个。

基于一或多个样本,视频解码器产生视频数据块的预测块(354)。视频解码器可将残余样本值的块额外地添加到预测块以产生用于视频数据块的经重新构建块并且在经重新构建块上执行一或多个滤波操作。视频解码器可以是输出包括经滤波的经重新构建块的图片以供显示并且在经解码图片缓冲器中存储包含经滤波的经重新构建块的图片中的任一个或两个。

在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码存储在计算机可读媒体上或在计算机可读媒体上予以发射,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体的有形媒体或通信媒体,所述通信媒体包含有助于例如根据通信协议将计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如,信号或载波。数据存储媒体可以是可由一或多个计算机或者一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、代码和/或数据结构的任何可供使用的媒体。计算机程序产品可以包含计算机可读媒体。

借助于实例而非限制,此类计算机可读存储媒体可以包含ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置,或其它磁性存储装置、快闪存储器,或可以用于存储呈指令或数据结构形式且可以由计算机存取的所期望的程序代码的任何其它媒体中的一或多个。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源发射指令,那么同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电和微波的无线技术包含在媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它瞬时媒体,而是实际上涉及非瞬时性有形存储媒体。如本文中所使用的磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。以上各者的组合也应包含于计算机可读媒体的范围内。

指令可由一或多个处理器来执行,所述一或多个处理器例如一或多个dsp、通用微处理器、asic、fpga或其它等效集成或离散逻辑电路系统。因此,如本文中所使用的术语“处理器”可以指上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一个。另外,在一些方面中,本文中所描述的功能性可在经配置以用于编码和解码的专用硬件和/或软件模块内提供,或并入在组合编解码器中。并且,所述技术可完全实施于一或多个电路或逻辑元件中。

本发明的技术可以在多种多样的装置或设备中实施,包含无线手持机、集成电路(ic)或ic的集合(例如,芯片组)。本发明中所描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能性方面,但是未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。

已经描述了各种实例。这些和其它实例在所附权利要求书的范围内。

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