用以减少译码参数的HEVC预测的可用性检查的填补技术的制作方法

文档序号:11209010阅读:425来源:国知局
用以减少译码参数的HEVC预测的可用性检查的填补技术的制造方法与工艺

本发明涉及视频译码及压缩的领域。特定来说,其涉及高效视频译码(hevc)的自适应图像块大小设置。其还涉及3d视频译码,例如hevc的多视图扩展(被称作mv-hevc)。



背景技术:

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

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

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



技术实现要素:

一般来说,本发明描述与视频译码相关的系统及方法。本发明的系统、方法及装置各自具有若干创新方面,其中没有单个方面单独负责本文中所公开的合乎需要的属性。

本发明的一个方面提供一种对视频数据进行编码的方法。所述方法可包含将数据结构存储在存储器中。所述数据结构可具有布置为对应于图片的第一部分的第二多个数据元素且界定外围的第一多个数据元素,所述数据结构进一步包含与图片的所述第一部分的所有最小预测单元(pu)相关的数据。所述方法可进一步包含增加所述存储器中的所述数据结构的大小,其包括沿着所述第一多个数据元素的所述外围添加多个扩展单元,所述多个扩展单元中的每一扩展单元具有与图片的所述第一部分的最小数据元素相关的数据。所述方法可进一步包含将所述多个扩展单元中的每一扩展单元及所述第一多个数据元素设置为默认值。所述方法可进一步包含基于所述数据结构对图片的所述第一部分进行编码。

本发明的另一方面提供一种用于对视频数据进行编码的装置。所述装置可具有经配置以存储数据结构的存储器,所述数据结构具有布置为对应于图片的第一部分的第二多个数据元素且界定外围的第一多个数据元素,所述数据结构进一步包含与图片的所述第一部分的所有最小预测单元(pu)相关的数据。所述装置还可具有可操作地耦合到所述存储器的处理器。所述处理器可增加所述存储器中的所述数据结构的大小,其包括沿着所述第一多个数据元素的所述外围添加多个扩展单元,所述多个扩展单元中的每一扩展单元具有与图片的所述第一部分的最小数据元素相关的数据。所述处理器还可将所述多个扩展单元中的每一扩展单元及所述第一多个数据元素设置为默认值。所述处理器还可基于所述数据结构对图片的所述第一部分进行编码。

本发明的另一方面提供一种对视频数据块中的视频数据进行编码的方法。所述方法可包含存储与数据结构中的第一多个预测单元的每一预测单元相关的数据,所述数据结构具有译码树单元(ctu)的大小。所述方法还可包含存储沿着所述数据结构中的所述多个预测单元的外围安置的多个扩展单元中的每一扩展单元的扩展数据。所述方法还可包含基于所述数据结构对第一ctu进行编码。所述方法还可包含用与所述第一ctu的最右列预测单元相关的数据来更新所述数据结构中的所述多个扩展单元的最左列,以形成第一经更新数据结构。所述方法还可包含基于所述第一经更新数据结构对第二ctu进行编码。

本发明的另一方面提供一种用于对视频数据进行编码的装置。所述装置可具有存储器。所述存储器可存储数据结构,所述数据结构具有与第一多个预测单元中的每一预测单元相关的数据,所述数据结构进一步具有译码树单元(ctu)的大小。所述存储器还可存储沿着所述数据结构中的所述多个预测单元的外围安置的多个扩展单元中的每一扩展单元的扩展数据。所述装置还可具有可操作地耦合到所述存储器的处理器。所述处理器可基于所述数据结构对第一ctu进行编码。所述处理器还可用与所述第一ctu的最右列预测单元相关的数据来更新所述数据结构中的所述多个扩展单元的最左列,以形成第一经更新数据结构。所述处理器还可基于所述第一经更新数据结构对第二ctu进行编码。

通过借助于实例说明本发明的诸方面的以下描述,本发明的其它特征及优点应变得显而易见。

附图说明

本发明的实施例的关于其结构与操作两者的细节可通过研究附图而被部分地搜集,在附图中相同参考标号指代相同部分,且在附图中:

图1为视频译码系统的框图;

图2为图1的视频编码器的框图;

图3为图1的视频解码器的框图;

图4为视频数据块的图形表示;

图5为使用扩展单元的默认数据块的图形表示;

图6a为用于对视频数据进行译码的数据结构的图形表示;

图6b为正使用图6a的数据结构进行视频数据编码时的多个译码树单元(ctu)的图形表示;

图7为用于使用图5的数据结构编码视频数据的方法的流程图;及

图8为用于使用图6a的数据结构编码视频数据的方法的流程图。

具体实施方式

本申请涉及视频译码中的空间预测。在对视频数据的连续块或帧进行译码时,视频编码器可利用相邻像素信息以(例如)在向量方面描述像素运动。此可显著地减少描述一系列视频帧或块中的像素运动所要求的信息量。在一些情况下,此原理可应用于像素传信及预测模式传信。然而,并非所有像素始终可用于在译码期间用作参考。因此,举例来说,关于像素或块作为此空间参考的可用性存在多个限制。在进行编码时,必须检查这些限制以便验证相邻视频数据的可用性(或不可用性)。为了减少此类“不可用性”检查所要求的处理开销,可实施某些默认数据以为译码过程提供参考,借此避开检查的至少一部分。这些默认数据可被实施为暂时存储且连续或周期性更新的数据结构,贯穿编码过程参考所述数据结构以缓解进行不可用性检查的需要。此可导致译码效率增加。

下文结合附图阐述的详细描述预期作为各种实施例的描述,且无意表示可实践本发明的仅有实施例。所述详细描述为了提供对实施例的透彻理解而包含特定细节。然而,所属领域的技术人员将在无这些具体细节的情况下明白本发明。在一些情况下,为简洁描述起见,以简化形式展示众所周知的结构及组件。

视频译码

视频译码标准包含itu-th.261、iso/iecmpeg-1视觉、itu-th.262或iso/iecmpeg-2视觉、itu-th.263、iso/iecmpeg-4视觉及itu-th.264(还被称为iso/iecmpeg-4avc),包含其可缩放视频译码(svc)及多视图视频译码(mvc)扩展。前述标准中的一或多个可与本文中所描述的实施例一起使用。

另外,itu-t视频译码专家组(vceg)及iso/iec动画专家组(mpeg)的视频译码联合合作小组(jct-vc)已开发了新的视频译码标准,即高效视频译码(hevc)。最新的hevc草案规范(且在下文中被称作“hevcwd”)可从http://phenix.int-evry.fr/jct/doc_end_user/documents/15_geneva/wg11/jctvc-o1003-v1.zip获得。hevc的多视图扩展(即mv-hevc)及更高级3d视频译码的另一hevc扩展(3d-hevc)正由jct-3v开发,且同时hevc的可缩放视频译码扩展(即shvc)正由jct-vc开发。mv-hevc的最近工作草案(wd)(在下文中被称作mv-hevcwd5)可从http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_geneva/wg11/jct3v-f1004-v6.zip获得。3d-hevc的最近wd(在下文中被称作3d-hevcwd1)可从http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_geneva/wg11/jct3v-f1001-v3.zip获得。shvc的最近工作草案(wd)(且在下文中被称作shvcwd3)可从http://phenix.it-sudparis.eu/jct/doc_end_user/documents/15_geneva/wg11/jctvc-o1008-v3.zip获得。

hevc通常可依靠增加计算复杂度而在具有类似图像质量的情况下将位速率要求减少一半。在一些实施例中,hevc编码器可权衡计算复杂度、压缩率、误差稳定性及编码延迟时间。因此,hevc可通常支持较高分辨率的视频及经改进并行处理方法。

hevc视频译码层使用“混合式”方法,从而实施图片间及图片内预测与二维(2d)变换译码。对于第一图片或使用图片内预测的随机接入点的第一图片,hevc编码器可首先将图片分裂成块状区域。如本文中所使用的图片内预测可通常指仅基于所述图片中的信息来预测图片中的块。对于所有其它图片,则使用图片间预测。图片间预测可通常指使用来自其它图片的预测信息以产生当前图片的情况。在预测方法结束且图片经过环路滤波器之后,将最后图片表示存储在经解码图片缓冲器中。存储在经解码图片缓冲器中的图片可用于预测其它图片。

hevc还可实施若干并行处理工具。在一些实施例中,图像块可用于将图片划分成可独立地经编码及解码的矩形区域网格。

hevc标准利用参数集概念。hevc中的序列参数集(sps)、图片参数集(pps)及视频参数集(vps)机制可将偶尔改变信息的发射与经译码视频块数据的发射解耦。

在hevc中,使用名称为‘ue(v)’的可变长度编码译码方法来对sps图片、pps或vps的识别符进行译码。hevc工作草案将经‘ue(v)’译码的语法元素界定为其中左位第一的无符号整数经指数-哥伦布译码的语法元素。每一sps包含sps识别符(id),每一pps包含ppsid及spsid,且每一切片标头包含ppsid。每一缓冲周期补充增强信息(sei)消息也包含spsid。一般来说,视频译码装置或视频处理装置可将位流的数据囊封在网络抽象层(nal)单元内。nal单元包含视频译码层(vcl)nal单元及非vclnal单元。vclnal单元通常包含由视频译码器使用的信息,例如经译码视频数据及参数集(例如,sps、pps及vps)。非vclnal单元包含界定sei消息的信息,其可含有非必要用于解码来自vclnal单元的经译码图片样本,但可辅助与解码、显示、抗丢包及抗误码及其它目的相关的过程的信息。

视频译码系统

图1为视频译码系统的框图。视频译码系统(“系统”)10可利用根据本发明中描述的方面的方法。如本文中所描述地使用,术语“视频译码器”一般指代视频编码器及视频解码器两者。在本发明中,术语“视频译码”或“译码”一般可指视频编码及视频解码。

如图1中所展示,系统10包含源装置12,所述源装置可产生稍后待由目的地装置14解码的经编码视频数据。源装置12及目的地装置14可包括广泛范围的装置中的任一个,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”平板、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,可装备源装置12及目的地装置14以用于无线通信。

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

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

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

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

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

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

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

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

hevc标准化努力是基于被称作hevc测试模型(hm)的视频译码装置的演进模型。hm假设视频译码裝置根据(例如)itu-th.264/avc相对于现有裝置的若干额外能力。举例来说,尽管h.264提供了九个帧内预测编码模式,但hm可提供多达三十三个帧内预测编码模式。

一般来说,hm的工作模型描述视频帧或图片可划分成包含明度及色度样本两者的一连串树块或最大译码单元(lcu)。lcu在本文中还可被称作译码树单元(ctu)。ctu是hevc的基本单元。树块在概念上类似于h.264标准的宏块。切片包含按译码次序的数个连续树块。视频帧或图片可被分割成一或多个切片。每一树块可根据四叉树分裂成译码单元(cu)。举例来说,作为四叉树的根节点的树块可分裂成四个子节点,且每一子节点又可为父代节点且可分裂成另外四个子节点。最终未经分裂的子节点(作为四叉树的叶节点)包括译码节点(即,经译码视频块)。与经译码位流相关联的语法数据可界定树块可分裂的最大次数,且还可界定译码节点的最小大小。

cu包含译码节点及与所述译码节点相关联的预测单元(pu)及变换单元(tu)。cu的大小对应于译码节点的大小且形状必须是正方形。cu的大小可介于8×8像素至多具有64×64像素或更大的最大值的树块的大小的范围内。每一cu可含有一或多个pu及一或多个tu。举例来说,与cu相关联的语法数据可描述cu到一或多个pu的分割。分割模式可在cu被跳过还是经直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间不同。pu可被分割成非正方形形状。举例来说,与cu相关联的语法数据还可描述cu根据四叉树到一或多个tu的分割。tu可为正方形或非正方形形状。

hevc标准允许根据tu进行变换,tu可针对不同cu而有所不同。tu的大小通常是基于针对经分割lcu界定的给定cu内的pu的大小而设置,但是情况可能并不总是如此。tu通常与pu大小相同或小于pu。在一些实例中,可使用称为“残余四叉树”(rqt)的四叉树结构将对应于cu的残余样本细分成较小单元。rqt的叶节点可被称为变换单元(tu)。可变换与tu相关联的像素差值以产生变换系数,所述变换系数可经量化。

一般来说,pu包含与预测过程相关的数据。举例来说,当pu经帧内模式编码时,pu可包含描述pu的帧内预测模式的数据。作为另一实例,当pu经帧间模式编码时,pu可包含界定pu的运动向量的数据。举例来说,界定pu的运动向量的数据可描述运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考图片,及/或运动向量的参考图片列表(例如,列表0、列表1或列表c)。

一般来说,tu用于变换及量化过程。具有一或多个pu的给定cu还可包含一或多个变换单元(tu)。在预测之后,视频编码器20可计算对应于pu的残余值。残余值包括像素差值,所述像素差值可变换成变换系数、经量化且使用tu进行扫描以产生串行化变换系数以用于熵译码。本发明通常使用术语“视频块”来指代cu的译码节点。在一些特定情况下,本发明还可使用术语“视频块”来指代包含译码节点以及pu及tu的树块,即ctu、lcu或cu。

视频序列可包含一系列视频帧或图片。图片群组(gop)通常包括一系列一或多个视频图片。gop可包含在gop的标头、在图片中的一或多个的标头或在别处中的语法数据,所述语法数据描述gop中包含的数个图片。图片的每一切片可包含描述用于相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作以便对视频数据进行编码。视频块可对应于cu内的译码节点。视频块可具有固定或变化的大小,且根据指定译码标准可在大小上有所不同。

作为实例,hm支持各种pu大小的预测。假定特定cu的大小是2n×2n,hm支持2n×2n或n×n的pu大小的帧内预测,及2n×2n、2n×n、n×2n或n×n的对称pu大小的帧间预测。hm还支持针对2n×nu、2n×nd、nl×2n及nr×2n的pu大小的帧间预测的不对称分割。在不对称分割中,不分割cu的一个方向,而是将另一方向分割成25%及75%。cu的对应于25%分区的部分由“n”后面接着“上”、“下”、“左”或“右”的指示来指示。因此,举例来说,“2n×nu”指代经水平分割的2n×2ncu,其中顶部是2n×0.5npu,且底部是2n×1.5npu。

在本发明中,“n×n”与“n乘n”可互换使用来指视频块在垂直及水平尺寸方面的像素尺寸,例如,16×16个像素或16乘16个像素。一般来说,16×16块在垂直方向上将具有16个像素(y=16),且在水平方向上将具有16个像素(x=16)。同样,n×n块通常在垂直方向上具有n个像素,且在水平方向上具有n个像素,其中n表示非负整数值。块中的像素可布置成行及列。此外,块未必需要在水平方向上与竖直方向上具有相同数目个像素。举例来说,块可包括n×m个像素,其中m未必等于n。

在使用cu的pu进行帧内预测性或帧间预测性译码之后,视频编码器20可计算用于cu的tu的残余数据。pu可包含空间域(还被称作像素域)中的像素数据,且tu在将变换应用到残余视频数据之后可包括变换域中的系数,所述变换例如离散余弦变换(dct)、整数变换、小波变换或概念上类似变换。残余数据可对应于未经编码图片的像素与对应于pu的预测值之间的像素差。视频编码器20可形成包含用于cu的残余数据的tu,且接着变换所述tu以产生用于cu的变换系数。

在用以产生变换系数的任何变换之后,视频编码器20可执行变换系数的量化。量化通常指代对变换系数进行量化以可能减少用以表示系数的数据量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。

在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化变换系数,以产生可经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可(例如)根据上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵编码方法对一维向量进行熵编码。视频编码器20还可对与经编码视频数据相关联的语法元素进行熵编码,以供视频解码器30在对视频数据进行解码时使用。

为执行cabac,视频编码器20可将上下文模型内的上下文指派给待发射的符号。上下文可涉及(例如)符号的相邻值是否为非零。为执行cavlc,视频编码器20可选择用于待发射符号的可变长度码。vlc中的码字可经建构使得相对较短码对应于更有可能符号,而较长码对应于不太可能符号。以此方式,使用vlc可实现优于(例如)针对待发射的每一符号使用等长度码字的位节省。概率确定可基于指派给符号的上下文而进行。

图2为图1的视频编码器的功能框图。视频编码器20可包含分割模块35,其经配置以接收所俘获的视频数据并将视频数据分割成视频块。分割模块35可将视频数据分割成切片、图像块或其它较大单元。分割模块35也可(例如)根据lcu及cu的四叉树结构来分割视频块。视频编码器20可将切片划分成多个视频块(且可能划分成被称作图像块的视频块的集合)。

视频编码器20还可具有预测模块41,其可操作地耦合到分割模块35且经配置以接收经分割视频数据。预测模块41可基于误差结果(例如,译码速率及失真电平)而针对当前视频块选择多个可能译码模式中的一个,例如多个帧内译码模式中的一个或多个帧间译码模式中的一个。预测模块41可使得视频编码器20能够对视频切片内的视频块执行帧内及帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(i模式)可指若干基于空间的压缩模式中的任一个。例如单向预测(p模式)或双向预测(b模式)的帧间模式可指若干基于时间的压缩模式中的任一个。预测模块41可在某些限制内执行帧间预测及帧内预测,如下文所描述。

预测模块41可包含运动估计模块42、运动补偿模块44及帧内预测模块46。这些组件中的每一个可以可操作地连接或集成在视频编码器20内的一或多个处理器中。虽然出于概念性目的而单独地论述,但运动估计模块42、运动补偿模块44及帧内预测模块46可高度集成。

运动估计模块42可经配置以根据视频序列的预定模式而确定用于视频切片的帧间预测模式。当前视频块相对于一或多个参考图片中的一或多个预测性块的此帧间预测或帧间预测性译码可提供时间压缩。预定模式可将序列中的视频切片标明为p切片、b切片或gpb切片。如本文中所使用,运动估计通常可指产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块的pu相对于参考帧或参考图片内的预测性块的移位。参考帧可存储在可操作地耦合到预测模块41的参考图片存储器64中。

在一些实施例中,运动向量可具有子整数像素(“子像素”)精度。举例来说,运动向量的水平分量及垂直分量两者都可具有相应全整数或全像素分量及子像素分量。可从参考帧内的全像素位置内插此子像素精度。因而,术语分数像素(pixel/pel)、子整数及子像素运动估计可互换使用。在一些实施例中,内插滤波器可提供内插位置。作为运动估计及/或运动补偿的部分,内插滤波器可由运动估计模块42及运动补偿模块44中的一个或两个调用来执行内插。

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

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

运动补偿可涉及基于通过运动估计所确定的运动向量来提取或产生预测性块。这可包含到子像素精度的内插。在接收到当前视频块的pu的运动向量之后,运动补偿模块44可在参考图片列表中的一个中定位运动向量指向的预测性块。运动补偿模块44还可产生与视频块及视频切片相关联的语法元素,以供视频解码器30在对视频切片的视频块进行解码时使用。

预测模块41内的帧内预测模块46可执行当前视频块相对于同一帧中的一或多个相邻块的帧内预测性译码以提供空间压缩。作为对由运动估计模块42及运动补偿模块44执行的帧间预测的替代方案,帧内预测模块46可对当前块进行帧内预测,如上文所描述。特定来说,帧内预测模块46可确定用以对当前块进行编码的帧内预测模式。在一些实例中,帧内预测模块46可使用各种帧内预测模式来对当前块进行编码,例如,在单独编码遍次期间。举例来说,帧内预测模块46可使用速率失真分析来计算各种所测试帧内预测模式的速率失真值,并从所测试模式当中选择具有最佳速率失真特性的帧内预测模式。速率失真分析可确定经编码块与经编码以产生所述经编码块的原始未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(即,位数目)。帧内预测模块46可从用于各种经编码块的失真及速率计算比率,以确定哪个帧内预测模式对于所述块展现最佳速率失真值。

帧内预测模块46可将指示块的选定帧内预测模式的信息提供到熵编码模块56。熵编码模块56可对指示选定帧内预测模式的信息进行编码。视频编码器20在所发射的位流中可包含配置数据,所述配置数据可包含多个帧内预测模式索引表及多个经修改的帧内预测模式索引表(其还被称作码字映射表),对用于各种块的编码上下文的定义,及对用于所述上下文中的每一个的最可能帧内预测模式、帧内预测模式索引表及经修改的帧内预测模式索引表的指示。

在预测模块41(及其其它构成模块)执行上文所描述的各种操作时,视频编码器20可受到某些限制的束缚。预测模块41在使用空间上相关视频数据产生预测性块时能观察到所述限制。举例来说,用于空间或时间预测的相邻cu在其处于另一切片中、另一图像块中、正经编码视频帧外部或尚未经编码pu中的情况下时可能是不可用的。能通过实施某些不可用性检查来避免所述限制。下文结合图4描述所述限制及相关联不可用性检查。

在预测模块41经由帧间预测或帧内预测产生当前视频块的预测性块之后,视频编码器20通过从当前视频块减去预测性块而形成残余视频块。此过程可能带来像素差值。像素差值形成用于所述块的残余数据,且可包含明度及色度差分量两者。可操作地耦合到预测模块41及分割模块35的求和器50表示可经配置以执行此减法运算的一或多个组件。

残余块中的残余视频数据可包含在一或多个tu中,并应用于可操作地耦合到求和器50的变换模块52。变换模块52可使用例如离散余弦变换(dct)或概念上类似变换的变换将残余视频数据变换成残余变换系数。变换模块52可将残余视频数据从像素域转换到变换域,例如频域。预测模块41可将所得的经帧内或帧间译码块提供到求和器50以产生残余块数据。所得的经帧内或帧间译码块可进一步提供到求和器62以重建构用作参考图片的经编码块。

视频编码器20也可包含可操作地耦合到求和器62的滤波器模块63。滤波器模块63可表示一或多个环路滤波器,例如解块滤波器、自适应环路滤波器(alf)及样本自适应偏移(sao)滤波器。尽管滤波器模块63在图2中展示为环路内滤波器,但在其它配置中,滤波器模块63可实施为环路后滤波器(postloopfilter)。滤波器模块63可将参考图片提供到参考图片存储器64。

变换模块52可将所得变换系数发送到量化模块54。量化模块54可对变换系数进行量化以进一步降低位速率。量化过程可减少与系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。在一些实例中,量化模块54可接着执行对包含经量化变换系数的矩阵的扫描。在一些实施例中,熵编码模块56可执行所述扫描。

在量化之后,熵编码模块56可对经量化变换系数进行熵编码。举例来说,熵编码模块56可执行cavlc、cabac、sbac及/或pipe译码或另一熵编码方法。在由熵编码模块56进行熵编码之后,经编码位流可被发射到视频解码器30。位流也可经存档以供稍后进行发射或由视频解码器30检索。熵编码模块56还可对正经译码的当前视频切片的运动向量及其它语法元素进行熵编码。

视频编码器20也可包含可操作地耦合到熵编码模块56的逆量化模块58。逆变换模块60也可以可操作地耦合到逆量化模块58及求和器62。逆量化模块58及逆变换模块60可分别应用逆量化及逆变换,以在像素域中重建构残余块以供稍后用作参考图片的参考块。运动补偿模块44可通过将残余块添加到参考图片列表中的一个内的参考图片中的一个的预测性块来计算参考块。运动补偿模块44还可将内插滤波器中的一或多个应用到经重建构残余块,以计算用于运动估计的子整数像素值。求和器62可将经重建构残余块添加到由运动补偿模块44产生的运动补偿预测块,以产生用于存储在参考图片存储器64中的参考块。参考块可由运动估计模块42及运动补偿模块44用作参考块,以对后续视频帧或图片中的块进行帧间预测。

图3为图1的视频解码器的功能框图。视频解码器30可包含熵解码模块80、预测模块81、逆量化模块86、逆变换模块88、求和器90、滤波器模块91及参考图片存储器92。预测模块81包含运动补偿模块82及帧内预测模块84。在一些实例中,视频解码器30可执行通常与关于来自图2的视频编码器20所描述的编码遍次互逆的解码遍次。

在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块的经编码视频位流及相关联的语法元素。视频解码器30可从网络实体29接收经编码视频位流。网络实体29可为(例如)服务器、视频编辑器/剪接器,或经配置以实施上文所描述方法中的一或多个的其它此装置。如上文所描述,本发明中所描述的方法中的一些可在网络实体29将经编码视频位流发射到视频解码器30之前由网络实体29实施。在一些视频解码系统中,网络实体29及视频解码器30可为单独装置的部分,而在其它情况下,关于网络实体29所描述的功能性可由包括视频解码器30的同一装置执行。

视频解码器30的熵解码模块80对位流进行熵解码以产生经量化系数、运动向量及其它语法元素。熵解码模块80将运动向量及其它语法元素转发到预测模块81。视频解码器30可接收视频切片层级及/或视频块层级处的语法元素。

当视频切片经译码为经帧内译码(i)切片时,预测模块81的帧内预测模块84可基于来自当前帧或图片的先前经解码块的所传信帧内预测模式及数据来产生用于当前视频切片的视频块的预测数据。当视频帧经译码为经帧间译码(即,b、p或gpb)切片时,预测模块81的运动补偿模块82基于从熵解码模块80接收的运动向量及其它语法元素来产生当前视频切片的视频块的预测性块。可从参考图片列表中的一个内的参考图片中的一个产生预测性块。视频解码器30可基于存储在参考图片存储器92中的参考图片来使用默认建构方法建构参考帧列表:列表0及列表1。

运动补偿模块82通过解析运动向量及其它语法元素来确定用于当前视频切片的视频块的预测信息,并使用所述预测信息产生正经解码的当前视频块的预测性块。

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

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

在运动补偿模块82基于运动向量及其它语法元素产生当前视频块的预测性块之后,视频解码器30通过将来自逆变换模块88的残余块与由运动补偿模块82产生的对应预测性块求和来形成经解码视频块。求和器90表示执行此求和运算的一或多个组件。在需要时,还可使用环路滤波器(在译码环路中或在译码环路之后)来使像素转变变平滑或以其它方式改进视频质量。滤波器模块91意图表示一或多个环路滤波器,例如解块滤波器、自适应环路滤波器(alf)及样本自适应偏移(sao)滤波器。尽管滤波器模块91在图3中展示为环路内滤波器,但在其它配置中,滤波器模块91可被实施为环路后滤波器。接着将给定帧或图片中的经解码视频块存储在参考图片存储器92中,所述存储器存储用于后续运动补偿的参考图片。参考图片存储器92还存储供稍后在显示装置(例如图3的显示装置32)上呈现的经解码视频。

图4为视频数据块的图形表示。视频数据块400可表示用于对视频数据进行编码的ctu、cu或pu数据结构。在一些实施例中,视频数据块400可为图片的一部分、视频切片或图像块、树块或较大视频数据块的另一部分。视频数据块400展示为表示ctu及/或pu的一系列正方形。经灰色着色正方形表示经译码ctu402a到402e(在下文中统称为经译码ctu402)。为简洁起见,本文中并未标记所有经译码ctu402。ctu402f当前正经编码,但其未经完全编码,如由部分灰色色彩所展示。因此,ctu402f在本文中也可被称作“当前ctu402f”,从而指示其为正经编码的ctu。如本文中所使用,ctu、cu及/或pu一般可被称为数据元素。

白色正方形表示未经译码ctu404a到404c(统称为未经译码ctu404)。在一些实施例中,白色块亦可取决于译码标准(例如,hevc)、预测模式及视频数据块400内的视频数据来表示ctu。如本文中所描述,其可通常被称作未经译码ctu404。在视频编码器20对未经译码ctu404中的每一个中所含有的视频数据进行编码时,译码从左到右、从上到下进行,直至整个视频数据块400已经编码为止。如所展示,视频编码器20已处理了表示经译码ctu402的灰色正方形。白色正方形表示尚未经编码的未经译码ctu404。

视频编码器20可利用相邻视频信息来对当前视频数据进行译码。举例来说,在视频编码器20对当前ctu402f进行编码时,视频编码器20可参考针对经译码ctu402b、402c、402d及402e所编码的数据,这是因为空间上连接的信息常常是相关的。在进行了一些空间预测的情况下,用于视频数据块400的当前数据可被表示为与参考图片不同,例如具有向量。预测越精确,所得熵可减少得越多。

在参考当前ctu402f时,经译码ctu402b、402c、402d及402e在本文中通常可被称作相邻ctu。在一些实施例中,仅在当前ctu402f为正经编码的ctu402(或待编码的下一ctu402)且其参考相邻ctu时,每一未经译码ctu404对于每一构成pu或cu可具有类似编码过程。图4的插图展示参考相邻cu(cua及cub)的当前cu406(当前ctu402f内)。应注意,图4中的当前ctu402f未着色为与图4的插图中的ctu402f相同。ctu402f的部分灰色色彩指示其经部分编码。出于描述及说明下文所描述的各种限制的目的,并不着色插图中的当前ctu402f以指示编码过程期间对相邻cu作出的某些参考。

在一些实施例中,视频编码器20并不能够参考ctu402f下方及/或右侧的未经译码cu/pu(例如,未经译码ctu404中的未经译码cu),及ctu402f中的尚未经译码cu/pu中的任一个,这是因为其尚未经译码及在其它方面“不可用”。

举例来说,在hevc中,对空间预测的使用存在某些限制,如上文所提到。举例来说,无法跨越切片边界或图像块边界完成空间预测。另外,视频编码器20无法在预测中使用经帧间译码cu来进行帧内模式译码。

在一些实施例中,此类译码限制可带来低效编码,这是因为视频编码器20在对cu(例如,ctu402f中的cu)进行译码之前检查每一限制。归因于所述限制的多个或连续不可用性检查可添加延迟并使编码过程减慢。此类延迟可尤其不利于(例如)超快编码器,例如4k超高清(uhd)实时编码器。

相邻cu(例如,经译码cu402或未经译码cu404)在多种情形下可能不可用于视频编码器20。举例来说,如果相邻cua、cub是1)在另一切片中,2)在另一图像块中,3)在当前帧外部,4)在不同ctu行(例如,未经译码ctu402c)中,或5)在(例如,当前ctu402f的)尚未经编码cu/pu中,则此视频数据可能不可用作视频编码器20对cu(例如,当前ctu402f中)进行译码的参考。

举例来说,某些限制可能要求以下动作并呈现相关联默认设置:

针对分裂旗标的cabac上下文导出。视频编码器20可确定两个相邻cu(例如,cua及cub)是否可用。在相对于对ctu402f内的当前cu406进行编码描述时,cua及cub可为(例如)ctu402e及ctu402c内的相邻cu。如果相邻cua(或cub)不可用,则视频编码器20可将cu深度a(或b)设置为零。接着从当前cu的cu深度以及cua及cub的cu深度导出cabac上下文。

针对跳过旗标的cabac上下文导出。视频编码器20可确定两个相邻cu(cua及cub)是否可用。如果相邻cua(或cub)中的一个不可用,则视频编码器20可将cu深度a(或b)设置为不跳过。可基于cua及cub是否设置成跳过模式来导出cabac上下文。

合并候选者导出。合并功能指示当前pu具有相同于其相邻pu中的一个的运动向量,且可因此合并在一起。视频编码器20可检查相邻pu是否可用。如果相邻pu不可用,则将不能发现合并候选者。如果相邻pu可用,则视频编码器20可确定相邻pu是否处于帧间模式预测。如果相邻pu不处于帧间模式预测,则无合并候选者可用。如果相邻pu处于帧间模式预测,则视频编码器20可从相邻pu导出合并候选者。

运动向量预测符导出。视频编码器20可确定相邻pu是否可用。如果相邻pu不可用,则将不能发现合并候选者。如果相邻pu可用,则视频编码器20可确定相邻pu是否处于帧间模式预测。如果相邻pu不处于帧间模式预测,则将不能发现运动预测符。如果相邻pu处于帧间模式预测,则可从相邻pu导出运动预测符。

帧内模式预测符导出。视频编码器20可确定两个相邻pu(pua及pub)是否可用。如果相邻pua(或b)不可用,则视频编码器20可将相邻cua(或b)的帧内预测模式设置为帧内dc预测。视频编码器20可进一步确定相邻pua(或pub)是否经帧内预测。如果相邻pua(或b)未经帧内预测,则视频编码器20可将相邻pua(或pub)的帧内预测模式设置为帧内dc预测。视频编码器20还可使用相邻pua及pub的帧内预测模式来预测当前pu的帧内预测模式。

不可用性检查的数目及频率可使视频编码器20的系统资源负担较重,从而增加处理开销并降低编码效率。因此,在一些实施例中,期望避免前述检查以便减少开销及处理时间。因此,可将某些默认数据插入视频数据块400中或在译码期间参考所述默认数据来避免此类限制及重复检查。

图5为使用扩展默认数据的数据结构的图形表示。数据结构500可表示用于对视频数据进行编码的ctu、cu或pu数据结构。举例来说,视频编码器20可使用数据结构500对视频数据块400进行编码。数据结构500可包含图片的一部分、视频切片或图像块,或待编码的较大视频数据块的一部分,其描绘为表示待编码的视频数据或数据元素的展示为白色正方形的多个ctu502。在与hevc相关联的实施例中,白色正方形也可表示cu或pu。此为类似于视频数据块400的数据。ctu502可使用字母识别符个别地标记及描述(例如,502a、502b等)。在一些实施例中,ctu502可对应于ctu402及ctu404(图4)。在一些其它实施例中,ctu502的数目及布置可由视频数据块400的ctu(例如,经译码ctu402及未经译码ctu404)的数目及布置界定。举例来说,在hevc中,ctu502也可为cu或pu。举例来说,ctu可包含多个cu。对应地,cu可含有多个pu。

数据结构500也可具有在所有方向上将数据结构500的大小增加至少一个pu的扩展单元510。在概念上,扩展单元510表示可沿着待编码视频数据的外围安置的数据。因此,扩展单元510以及其与界定待编码的视频数据块(例如,视频数据块400)的外围的ctu502的空间关联可存储在存储器中。扩展单元510可使用字母识别符个别地标记及描述(例如,510a、510b等)。扩展单元510由图5中的暗灰色正方形表示。

可将整个数据结构500缓冲或存储到存储器(例如,存储装置34中),并在对第一视频块(例如,视频数据块400)进行编码期间参考所述数据结构。可在切片或图像块(例如,视频数据块400)编码开始时参考扩展单元510中的所存储默认数据。在一些实施例中,存储装置34能够存储给定数据结构500的所有最小pu信息。在另一实施例中,编码器20可仅在存储器中缓冲扩展单元510中的默认数据。举例来说,在hevc中,可将与每一4×4像素块(例如,最小pu)相关的数据存储或缓冲到存储器中并在编码期间进行参考。在一些实施例中,当存储在存储器中时,存储在数据结构500中的所有pu信息在几何学上保持与正经编码的相关联切片或图像块(例如,视频数据块400)中的对应数据对准。举例来说,数据结构500可具有与视频数据块400相同的元素数目及布置,使得视频数据块中正经译码的每一元素在数据结构500中具有对应元素。因此,在使用数据结构500对视频数据块400进行编码时,当对ctu402a(图4)进行编码时,视频编码器20可将扩展单元510a、510b、510c(以及其它相邻pu、cu及扩展单元510)用作空间参考。此可导致对(例如)ctu404进行编码所需要的不可用性检查的数目减少。

在一些实施例中,编码器20可因此使用扩展单元510以避免或最小化不可用性检查,上文所论述。视频编码器20可在切片或图像块(例如,数据结构500)译码开始之前,将来自扩展单元510的数据应用到数据结构500的边界上的每一pu。举例来说,在视频编码器20开始对ctu502a(例如,切片的第一数据块)进行编码时,编码器20可能需要参考值。因此,视频编码器20可将与扩展单元510a、510b及510c相关的数据用作参考值来对ctu502a进行编码,而无需执行上文所描述的所有检查。

在视频编码器20准备对数据块400进行编码时,视频编码器20可应用扩展单元510中的默认数据,从而抢占不可用性检查的至少一部分。在一些实施例中,视频编码器20可针对扩展单元510设置以下默认值:

1)cu深度等于零

2)预测模式设置成帧内预测

3)帧内预测模式设置成dc预测

前述默认值指示与扩展单元510相关的默认数据的hevc实施方案。然而,应注意,要求类似检查的编解码器可不仅实施来自扩展单元510的数据,且还实施如所提到的默认值。

在一些实施例中,当已决定了当前pu的预测模式时,视频编码器20可相应地更新默认值。然而,仅能在当前pu处于帧内预测模式时更新帧内预测模式;否则,帧内预测模式保持为dc预测。

使用扩展单元510中的此类默认数据可导致简化检查,这是由于视频编码器20可基于默认值假定某些数据,从而最小化不可用性检查。结果,由视频编码器20执行的检查可如下简化:

针对分裂旗标的cabac上下文导出。从当前cu的cu深度以及cua及cub的cu深度导出cabac上下文。

针对跳过旗标的cabac上下文导出。基于cua及cub是否设置成跳过模式来导出cabac上下文。

合并候选者导出。视频编码器20可检查相邻pu是否处于帧间模式预测。如果相邻pu不处于帧间模式预测,则未发现合并候选者。如果相邻pu处于帧间模式预测,则可从相邻pu导出合并候选者。

运动向量预测符导出。视频编码器20可检查相邻pu是否处于帧间模式预测。如果相邻pu不处于帧间模式预测,则未发现运动预测符。如果相邻pu处于帧间模式预测,则将从相邻pu导出运动预测符。

帧内模式预测符导出。编码器可使用相邻pua及pub的帧内预测模式来预测当前pu的帧内预测模式。

在一些实施例中,缓冲器或存储器大小(例如,存储装置34)可是受限的。因此,可实施较小默认数据块以节省存储器使用。在一些实施例中,视频编码器20可通过不在存储器中存储整个切片或图像块(例如,视频数据结构500)而是存储较小数据结构(例如单一ctu)来减少存储器使用。可接着在编码期间重复ctu,从而实现存储整个数据结构500的相同目的。

图6a为用于对视频数据进行编码的数据结构的图形表示。数据结构600具有描绘为多个白色正方形的图5中所展示的pu的一部分,其在本文中被称作pu602。在一些实施例中,数据结构600具有界定为(m/n)×(m/n)个元素的大小,其中数据结构600可用于对具有m×m大小及最小pu大小n×n的ctu进行编码。举例来说,数据结构600是在m=32且n=4的情况下展示。视频编码器20可在每一方向上将数据结构扩展一个元素或扩展单元510(经灰色着色)。因此,在存储器中,数据结构600可表示为10×10个元素。除展示为灰色正方形的扩展单元510之外,此可包含对应于(例如)ctu的8×8个元素或pu602。在一些实施例中,pu602的8×8个块可对应于图4或图5的单一白色块(例如,未经译码ctu404、502)。

扩展单元510可描述为定位在8×8个pu602的外部上。替代地,扩展单元510可描述为沿着8×8个pu602的外围安置。接着可按照行及列参考10×10数据结构600,其中行水平地布置且列竖直地布置。因此,数据结构600具有10行及10列。

在一些实施例中,视频编码器20可将数据结构600保存在存储器(例如,存储装置34)中,且随后在进行编码时更新及参考数据结构600以设置用于未经译码pu(例如,pu602或相邻pu)的默认值。在一些实施例中,在对后续ctu进行编码时,仅缓冲并更新扩展单元510。

在一些实施例中,数据结构600可表示视频编码器20在对新的视频块(例如,ctu)进行编码时可参考的默认数据结构。视频编码器20可缓冲占据10×10个元素的小得多的结构的数据结构600,而非缓冲如数据结构500中的整个切片。如所提到,数据结构600含有来自经相等大小设置ctu的数据,ctu为hevc中的切片或图像块的基本数据单元。

在视频编码器20对切片或图像块(例如,视频数据块400)进行编码之前,可将未经译码pu(例如,白色正方形或pu602)中的所有数据设置成由数据结构600指示的默认值。沿着数据结构600的顶部的标记有小写字母a到h的块及沿着左侧的标记有大写字母a到h的块可表示来自扩展单元510的数据(例如,列及行),在对切片或图像块(例如,数据结构500)进行编码时,在数据结构600中周期性地更新所述扩展单元。在一些实施例中,仅缓冲数据结构600的一部分。举例来说,可缓冲扩展单元510、多个最右pu604(着色为浅灰色)及多个最低pu608(对角线条纹)以供稍后编码时使用,而可丢弃来自剩余白色块(例如,pu602)的数据。最右pu604及最低pu608分别表示在经译码ctu的右侧及底部远处的pu602或经译码元素。

如所展示,ctu609由指示经译码切片(例如,数据块400)中的连续ctu之间的关联的虚线表示。在用来自随后经编码ctu(例如,ctu609)的数据更新数据结构600时,最右pu604存储在数据结构600中,且变成数据结构600中用于对ctu609进行编码时参考的最左扩展单元510(标记为a到h)。下文较详细地描述此情况。

图6b为正使用图6a的数据结构进行视频数据编码时的多个ctu的图形表示。三个ctu610、620、630展示为由实线环绕,从而指示待编码的数据。虚线及点虚线指示在ctu610、620、630中的每一个经编码时,数据结构600中的数据的相对位置。因此,ctu610、620、630内含有的空白区域可对应于数据结构600的8×8个pu,或在一些实施例中对应于图4及图5的单一块。一般来说,用于对ctu610、620、630中的每一个进行编码时参考的数据结构600各自在水平方向上重叠两列。所述重叠表示视频编码器20可如何参考缓冲到数据结构600的数据以用于对连续ctu进行编码。ctu610、620、630中的每一个由10×10个元素的虚线或点虚线框环绕,从而涵盖包含扩展单元510的区域。右侧的浅灰色元素及沿着ctu610、620、630中的每一个的底部的条纹元素分别表示用于在连续ctu经编码时更新其扩展单元(例如,a到h、a到j)的最右pu604及最低pu608(图6)。为图式清晰,并未标记图6b内的所有元素。

ctu610邻近于ctu620,其中相应虚线及点虚线框重叠数据结构600中用于ctu610的最右列pu604,及数据结构600内用于对ctu620进行编码的最左列扩展单元510。ctu620与ctu630同样如此。另外,ctu的第二行(包含数据结构600中供三个更多ctu640、650、660参考的部分)与ctu610、620、620重叠两行。特定来说,用于对ctu640、650、660进行编码的数据结构600展示为具有由最低pu608(对角线条纹)及扩展单元的底部行竖直地重叠的交替虚线及点虚线。

一旦视频编码器20根据数据结构600对ctu610进行编码,可在缓冲器中将最右pu604(展示为浅灰色)复制到数据结构600的正方形a到h并将其用于对ctu620进行编码。此替换a2到h2的值(例如,数据结构600中的扩展单元510),其现在经更新用于对下一ctu620进行编码。扩展单元a2到h2及a3到h3着色为浅灰色,以指示来自最右cu604(图6a)的数据用于更新数据结构600以用于对后续ctu620、630进行译码。可接着将最低cu608(展示为对角线条纹正方形)复制到可存储具有等于切片或图像块宽度的大小的数个元素的存储器(例如,存储装置34)中的线元素缓冲区。

可逐ctu连续更新数据结构600,直至切片或图像块(例如,视频数据块400)的第一ctu行中的最后ctu为止。在开始(例如)ctu640的第二ctu行之前,可将数据结构600的a到h、a的值及用于ctu640内部的pu602的全部数据初始化为基于数据结构600的默认值。另外,在对ctu640进行编码之前,可将h1的数据设置成默认值,且可用存储在线缓冲区中的来自底部块608的数据更新块bx到hx、h2、by(对应于图6a的a到j)的值。在一些实施例中,对于垂直方向上的参考ctu不可用的情况,在使用数据结构600更新数据之前,可将相关数据元素初始化为默认值。举例来说,如果pudx为经帧内译码pu,则在更新之前将帧内模式重置为dc模式。接着,视频编码器20可对ctu640、ctu650及ctu660等等的第二ctu行重复所述过程。

图7为用于使用图5的数据结构对视频数据进行编码的方法的流程图。方法700可使用如本文中所描述的视频数据块400、数据结构500及数据结构600来实施。

在块710处,编码器可将数据结构存储在存储器中。数据结构(例如,数据结构500)可具有在几何学上经布置以匹配例如视频数据块400的第一视频数据块的大小的多个数据元素。数据结构500可进一步包含与第一视频数据块400的所有最小预测单元(pu)相关的数据。所述数据可包含视频数据块的最小预测单元,且涉及译码单元深度、预测模式及帧间预测模式的默认值以及其它特性。

在块720处,编码器20可通过沿着多个数据元素(例如,视频数据块400)的外围添加多个扩展单元510来增加存储装置34中的数据结构的大小。扩展单元510中的每一个可具有与第一视频数据块400的最小数据元素相关的数据。举例来说,视频编码器20可将扩展单元510添加到视频数据块400的每一侧,从而形成数据结构500。

在块730处,视频编码器20可将每一扩展单元510及多个数据元素设置为默认值。扩展单元510可具有针对待编码的视频数据设置成第一数据结构500(例如,切片或图像块)的默认值的数据或值。

在块740处,视频编码器20可使用数据结构500对视频数据块400进行编码。扩展单元510可充当用于对cu404进行编码的默认参考。接着,使用数据结构500可减少不可用性检查。

因此,方法700可由视频编码器20实施以减少对连续视频数据块400进行编码所要求的缓冲存储器(例如,存储装置34)的量。另外,方法700可减少与视频编码器20的所要求不可用性检查相关的开销。

图8为用于使用图6a的数据结构对视频数据进行编码的方法的流程图。方法800可使用如本文中所描述的视频数据块400及数据结构600来实施。

在块810处,视频编码器20可存储与数据结构(例如,数据结构600)中的第一多个预测单元的每一预测单元相关的数据。数据结构600可具有译码树单元(ctu)的大小。

在块820处,视频编码器20可存储沿着数据结构中的多个预测单元的外围安置的多个扩展单元510中的每一扩展单元510的扩展数据。

在块830处,视频编码器20可基于数据结构600对第一ctu(例如,ctu610)进行编码。

在块840处,视频编码器20可用与第一ctu的最右列译码单元或预测单元(例如,最右cu604)相关的数据来更新数据结构中的多个扩展单元510的最左列(例如,标记为a、a到h的扩展单元510),以形成第一经更新数据结构600。

在块850处,视频编码器20可基于第一经更新数据结构600对第二ctu(例如,ctu620)进行编码。

因此,方法800可减少对连续ctu620、630、640、650、660或视频数据块400中的一或多个进行编码所要求的缓冲存储器(例如,存储装置34)的量。另外,方法800可减少与视频编码器20的所要求不可用性检查相关的开销。

可使用多种不同技术及方法中的任一种来表示本文中所公开的信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示可在整个上文描述中参考的数据、指令、命令、信息、信号、位、符号及码片。

结合本文中所公开的实施例描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件与软件的此可互换性,上文已大体在其功能性方面描述了各种说明性组件、块、模块及步骤。此功能性是实施为硬件还是软件取决于特定应用及施加于整个系统上的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为会致使脱离本发明的范围。

本文中所描述的实施例可实施在硬件、软件、固件或其任何组合中。此类实施例可实施在多种装置中的任一种中,例如通用计算机、无线通信装置手持机,或具有包含在无线通信装置手持机及其它装置中的应用的多个用途的集成电路装置。描述为模块或组件的任何特征可一起实施于集成逻辑装置中或分开来实施为离散但可互操作的逻辑装置。如果以软件实施,则所述方法可至少部分地由包括程序代码的计算机可读数据存储媒体来实现,所述程序代码包含在执行时会执行上文所描述的方法中的一或多个的指令。计算机可读数据存储媒体可形成计算机程序产品的部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如随机存取存储器(ram)(例如,同步动态随机存取存储器(sdram))、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、快闪存储器、磁性或光学数据存储媒体及其类似者。另外或替代地,所述方法可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体携载或传达呈指令或数据结构形式的程序代码且可由计算机存取、读取及/或执行,例如传播的信号或波。

程序代码可由可包含一或多个处理器的处理器执行,所述处理器例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga),或其它等效的集成或离散逻辑电路。此处理器可经配置以执行本发明中所描述的方法及过程中的任一种。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,dsp与微处理器的组合、多个微处理器、一或多个微处理器结合dsp核心,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任一个、前述结构的任何组合,或适于实施本文中所描述的方法的任何其它结构或设备。另外,在一些方面中,本文中所描述的功能性可提供在经配置以用于编码及解码的专用软件模块或硬件模块内,或并入在组合的视频编码器-解码器(编解码器)中。

尽管本发明的实施例是在上文中针对特定实施例描述的,但本发明的许多变化是可能的。举例来说,各种组件的数目可增加或降低,确定供应电压的模块及步骤可经修改以确定频率、另一系统参数或参数的组合。另外,可以不同于上文所描述的组合的组合对各种实施例的特征进行组合。

所属领域的技术人员将了解,结合本文中所公开的实施例描述的各种说明性块及模块可以各种形式实施。上文已大致在其功能性方面描述了一些块及模块。如何实施此类功能性取决于施加于整个系统上的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为会致使脱离本发明的范围。另外,模块、块或步骤内的功能的分组是为了易于描述。特定功能或步骤可从一个模块或块移动或跨越模块或块分布而不会脱离本发明。

提供对所公开实施例的上文描述以使得所属领域的技术人员能够制作或使用本发明的主题。所属领域的技术人员将容易地了解对这些实施例的各种修改,且可在不脱离本发明的精神或范围的情况下将本文中描述的一般原理应用于其它实施例。因此,应理解,本文中呈现的描述及图式表示本发明的当前优选实施例,且因此表示广泛地由本发明涵盖的主题。应进一步理解,本发明的范围充分涵盖对所属领域的技术人员来说可能显而易见的其它实施例,且本发明的范围因此仅受到所附权利要求书限制。

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