视频译码的约束预测模式的制作方法

文档序号:26013019发布日期:2021-07-23 21:34阅读:68来源:国知局
视频译码的约束预测模式的制作方法

相关申请的交叉引用

本专利申请要求陈建乐等人于2018年12月26日提交的发明名称为“解码方法、设备和装置(decodingmethod,deviceandapparatus)”的第62/785,208号美国临时专利申请和陈建乐等人于2018年12月7日提交的发明名称为“视频译码的约束预测模式(constrainedpredictionmodeforvideocoding)”的第62/776,868号美国临时专利申请的权益,这两个在先申请中的每一个都通过引用的方式并入本文中。

本发明大体上描述了视频译码中的视频压缩技术。更具体地说,本发明描述了解决s×s流水线块结构下的帧内预测参考样本依赖问题的技术。



背景技术:

即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中发送或以其它方式发送时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备中存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件对视频数据进行编码,然后进行发送或存储,从而减少表示数字视频图像所需的数据量。然后,压缩数据在目的地侧由对视频数据进行解码的视频解压缩设备接收。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。



技术实现要素:

第一方面涉及一种由视频编码器实现的对视频码流进行编码的方法,所述方法包括:所述视频编码器使用划分模式将译码树单元(codingtreeunit,ctu)划分为至少一个译码单元(codingunit,cu),其中,所述划分模式为三叉树(tripletree,tt)、垂直二叉树(binarytree,bt)和水平bt中的一种;当满足以下条件时,所述视频编码器将所述cu标记为不通过帧内预测进行预测:(ⅰ)所述ctu的所述划分模式为tt,所述ctu的宽度或所述ctu的高度大于阈值,(ⅱ)所述ctu的所述划分模式为所述垂直bt,所述ctu的所述宽度小于或等于所述阈值,所述ctu的所述高度大于所述阈值,或(ⅲ)所述ctu的所述划分模式为水平bt,所述ctu的所述高度小于或等于所述阈值,所述ctu的所述宽度大于所述阈值;所述视频编码器根据所述标记将所述cu的预测单元和残差信息编码到视频码流中;所述视频编码器向视频解码器发送所述视频码流。

所述方法提供的技术简化了所述译码过程并提高了所述译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

在所述第一方面提供的所述方法的第一种实现方式中,所述阈值为64个亮度样本。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第二种实现方式中,所述阈值等于最大变换单元(transformunit,tu)大小,其中,所述最大tu大小为64个亮度样本。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第三种实现方式中,所述阈值被指定为s。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第四种实现方式中,当所述cu被标记时,所述预测单元包括一个或多个运动矢量。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第五种实现方式中,当所述cu被标记时,预测模式标志不编码到所述视频码流中。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第六种实现方式中,所述划分模式为四叉树(quadtree,qt)、tt、垂直bt和水平bt中的一种。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第七种实现方式中,所述ctu被划分为符合s×s块结构的s×s块。

在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第八种实现方式中,所述s×s块在s×s流水线中逐个进行处理。

第二方面涉及一种由视频解码器实现的对视频码流进行解码的方法。所述方法包括:所述视频解码器确定经编码码流中的译码树单元(codingtreeunit,ctu)的划分模式,其中,所述划分模式为三叉树(tripletree,tt)、垂直二叉树(binarytree,bt)和水平bt中的一种;当满足以下条件时,所述视频解码器将所述ctu的译码单元(codingunit,cu)标记为不通过帧内预测进行预测:(ⅰ)所述ctu的所述划分模式为tt,所述ctu的宽度或所述ctu的高度大于阈值,(ⅱ)所述ctu的所述划分模式为所述垂直bt,所述ctu的所述宽度小于或等于所述阈值,所述ctu的所述高度大于所述阈值,或(ⅲ)所述ctu的所述划分模式为水平bt,所述ctu的所述高度小于或等于所述阈值,所述ctu的所述宽度大于所述阈值;所述视频解码器对所述经编码码流进行解析,以从所述ctu获得所述cu的预测单元和残差信息;当所述cu已被标记时,所述视频解码器根据所述预测单元和所述残差信息通过帧间预测重建所述cu。

所述方法提供的技术简化了所述译码过程并提高了所述译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

在所述第二方面提供的所述方法的第一种实现方式中,所述阈值为64个亮度样本。

在所述第二方面或所述第二方面的任一前述实现方式提供的所述方法的第二种实现方式中,所述阈值等于最大变换单元(transformunit,tu)大小,其中,所述最大tu大小为64个亮度样本。

在所述第二方面或所述第二方面的任一前述实现方式提供的所述方法的第三种实现方式中,所述阈值被指定为s。

在所述第二方面或所述第二方面的任一前述实现方式提供的所述方法的第四种实现方式中,所述预测单元包括一个或多个运动矢量。

在所述第二方面或所述第二方面的任一前述实现方式提供的所述方法的第五种实现方式中,当所述cu被标记时,预测模式标志不编码到所述视频码流中。

在所述第二方面或所述第二方面的任一前述实现方式提供的所述方法的第六种实现方式中,所述划分模式为四叉树(quadtree,qt)、tt、垂直bt和水平bt中的一种。

第三方面涉及一种编码设备。所述编码设备包括:存储器,包含指令;处理器,与所述存储器耦合,其中,所述处理器用于实现所述指令以使得所述编码设备:使用划分模式将译码树单元(codingtreeunit,ctu)划分为至少一个译码单元(codingunit,cu),其中,所述划分模式为三叉树(tripletree,tt)、垂直二叉树(binarytree,bt)和水平bt中的一种;当满足以下条件时,将所述cu标记为不通过帧内预测进行预测:(ⅰ)所述ctu的所述划分模式为tt,所述ctu的宽度或所述ctu的高度大于阈值,(ⅱ)所述ctu的所述划分模式为所述垂直bt,所述ctu的所述宽度小于或等于所述阈值,所述ctu的所述高度大于所述阈值,或(ⅲ)所述ctu的所述划分模式为水平bt,所述ctu的所述高度小于或等于所述阈值,所述ctu的所述宽度大于所述阈值;根据所述标记将所述cu的预测单元和残差信息编码到视频码流中;发送器,与所述处理器耦合,其中,所述发送器用于向视频解码器发送所述视频码流。

所述编码设备提供的技术简化了所述译码过程并提高了所述译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

在所述第三方面提供的所述编码设备的第一种实现方式中,所述阈值为64个亮度样本。

在所述第三方面或所述第三方面的任一前述实现方式提供的所述编码设备的第二种实现方式中,所述阈值等于最大变换单元(transformunit,tu)大小,其中,所述最大tu大小为64个亮度样本。

在所述第三方面或所述第三方面的任一前述实现方式提供的所述编码设备的第三种实现方式中,所述阈值被指定为s。

在所述第三方面或所述第三方面的任一前述实现方式提供的所述编码设备的第四种实现方式中,所述预测单元包括一个或多个运动矢量。

在所述第三方面或所述第三方面的任一前述实现方式提供的所述编码设备的第五种实现方式中,当所述cu被标记时,预测模式标志不编码到所述视频码流中。

在所述第三方面或所述第三方面的任一前述实现方式提供的所述编码设备的第六种实现方式中,所述划分模式为四叉树(quadtree,qt)、tt、垂直bt和水平bt中的一种。

第四方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经译码视频码流;存储器,与所述接收器耦合,所述存储器存储指令;处理器,与所述存储器耦合,其中,所述处理器用于执行所述指令,以使得所述解码设备:使用划分模式将译码树单元(codingtreeunit,ctu)划分为至少一个译码单元(codingunit,cu),其中,所述划分模式为三叉树(tripletree,tt)、垂直二叉树(binarytree,bt)和水平bt中的一种;当满足以下条件时,将所述cu标记为不通过帧内预测进行预测:(ⅰ)所述ctu的所述划分模式为tt,所述ctu的宽度或所述ctu的高度大于阈值,(ⅱ)所述ctu的所述划分模式为所述垂直bt,所述ctu的所述宽度小于或等于所述阈值,所述ctu的所述高度大于所述阈值,或(ⅲ)所述ctu的所述划分模式为水平bt,所述ctu的所述高度小于或等于所述阈值,所述ctu的所述宽度大于所述阈值;将所述cu的预测单元和残差信息编码到视频码流中;发送器,与所述处理器耦合,其中,所述发送器用于向视频解码器发送所述视频码流。

所述解码设备提供的技术简化了所述译码过程并提高了所述译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

在所述第四方面提供的所述解码设备的第一种实现方式中,所述阈值为64。

在所述第四方面或所述第四方面的任一前述实现方式提供的所述解码设备的第二种实现方式中,所述阈值等于最大变换单元(transformunit,tu)大小,其中,所述最大tu大小为64。

在所述第四方面或所述第四方面的任一前述实现方式提供的所述解码设备的第三种实现方式中,所述阈值被指定为s。

在所述第四方面或所述第四方面的任一前述实现方式提供的所述解码设备的第四种实现方式中,所述预测单元包括一个或多个运动矢量。

在所述第四方面或所述第四方面的任一前述实现方式提供的所述解码设备的第五种实现方式中,当所述cu被标记时,预测模式标志不编码到所述视频码流中。

在所述第四方面或所述第四方面的任一前述实现方式提供的所述解码设备的第六种实现方式中,所述划分模式为四叉树(quadtree,qt)、tt、垂直bt和水平bt中的一种。

在所述第四方面或所述第四方面的任一前述实现方式提供的所述解码设备的第七种实现方式中,所述ctu被划分为符合s×s块结构的s×s块。

在所述第四方面提供的所述解码设备的第八种实现方式中,所述解码设备还包括显示器,所述显示器用于显示使用所述预测单元和所述残差信息生成的图像。

第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收码流进行解码;发送器,与所述接收器耦合,其中,所述发送器用于向显示器发送经解码图像;存储器,与所述接收器或所述发送器中的至少一个耦合,其中,所述存储器用于存储指令;处理器,与所述存储器耦合,其中,所述处理器用于执行存储在所述存储器中的所述指令,以执行本文所述的方法。

所述译码装置提供的技术简化了译码过程并提高了译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

第六方面涉及一种系统。所述系统包括:编码器;解码器,与所述编码器通信,其中,所述编码器或所述解码器包括本文公开的所述解码设备、所述编码设备或所述译码装置。

所述系统提供的技术简化了译码过程并提高了译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收码流进行解码;发送模块,与所述接收模块耦合,其中,所述发送模块用于向显示模块发送经解码图像;存储模块,与所述接收模块或所述发送模块中的至少一个耦合,其中,所述存储模块用于存储指令;处理模块,与所述存储模块耦合,其中,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行本文公开的所述方法。

所述译码模块提供的技术简化了译码过程并提高了译码过程的效率。通过防止在某些条件下使用帧内预测来预测一些译码单元(codingunit,cu),相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

附图说明

为了更全面地理解本发明,现在参考下文结合附图和详细说明进行的简要描述,其中,相同的附图标记表示相同的部件。

图1为可以采用双向预测技术的示例性译码系统的框图。

图2为可以实现双向预测技术的示例性视频编码器的框图。

图3为可以实现双向预测技术的示例性视频解码器的框图。

图4中的(a)至(e)共同示出了采用各种分割类型中的一种分割类型的块。

图5中的(a)至(c)共同示出了对应于s×s流水线结构的分割模式的示例。

图6为对视频码流进行编码的方法的一个实施例。

图7为对经译码视频码流进行解码的方法的一个实施例。

图8为视频译码设备的示意图。

图9为译码模块的一个实施例的示意图。

具体实施方式

图1为可以采用本文描述的视频译码技术的示例性译码系统10的框图。如图1所示,译码系统10包括源设备12,其中,所述源设备12提供稍后由目的地设备14解码的经编码视频数据。具体地,源设备12可以通过计算机可读介质16将视频数据提供给目的地设备14。源设备12和目的地设备14可以包括多种设备中的任一个,包括台式电脑、笔记本(例如,膝上型)电脑、平板电脑、机顶盒、“智能”手机和“智能”平板(pad)等电话手机、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目的地设备14可以用于无线通信。

目的地设备14可以通过计算机可读介质16接收待解码的经编码视频数据。计算机可读介质16可以包括任何类型的能够将经编码视频数据从源设备12移动到目的地设备14的介质或设备。在一个示例中,计算机可读介质16可以包括使源设备12能够实时将经编码视频数据直接发送给目的地设备14的通信介质。经编码视频数据可以根据通信标准(例如,无线通信协议)来调制,然后发送给目的地设备14。通信介质可以包括任何无线或有线通信介质,例如射频(radiofrequency,rf)频谱或一个或多个物理传输线。通信介质可以形成分组网络的一部分,分组网络例如为局域网、广域网或全球网络(例如,互联网)。通信介质可以包括路由器、交换机、基站或任何其它可以促进从源设备12到目的地设备14的通信的设备。

在一些示例中,经编码数据可以从输出接口22输出到存储设备。类似地,经编码数据可以通过输入接口从存储设备中存取。存储设备可以包括各种分布式或本地存取的数据存储介质中的任一个,例如硬盘驱动器、蓝光光盘、数字视频光盘(digitalvideodisk,dvd)、只读光盘存储器(compactdiscread-onlymemory,cd-rom)、闪存、易失性或非易失性存储器,或任何其它合适的用于存储经编码视频数据的数字存储介质。在另一个示例中,存储设备可以对应于文件服务器或可以存储由源设备12生成的经编码视频的另一中间存储设备。目的地设备14可以通过流式传输或下载方式从存储设备中存取所存储的视频数据。文件服务器可以是任何类型的能够存储经编码视频数据并将该经编码视频数据发送给目的地设备14的服务器。示例性文件服务器包括万维网服务器(例如,用于网站)、文件传输协议(filetransferprotocol,ftp)服务器、网络附属存储(networkattachedstorage,nas)设备或本地磁盘驱动器。目的地设备14可以通过包括互联网连接的任何标准数据连接存取经编码视频数据。标准数据连接可以包括适于存取在文件服务器中存储的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,数字用户线(digitalsubscriberline,dsl)、电缆调制解调器等)或两者的组合。经编码视频数据从存储设备的传输可以是流式传输、下载传输或其组合。

本发明中的技术不一定限于无线应用或设置。这些技术可以应用于视频译码以支持各种多媒体应用中的任一种,例如空中电视广播、有线电视传输、卫星电视传输、http动态自适应流媒体(dynamicadaptivestreamingoverhttp,dash)等互联网流式视频传输、将数字视频编码以存储于数据存储介质中、对存储于数据存储介质上的数字视频解码,或其它应用。在一些示例中,译码系统10可以用于支持单向或双向视频传输,以支持视频流式传输、视频回放、视频广播和/或视频电话等应用。

在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12中的视频编码器20和/或目的地设备14中的视频解码器30可以用于应用上述视频译码技术。在其它示例中,源设备和目的地设备可以包括其它组件或装置。例如,源设备12可以从外部视频源(例如,外部相机)接收视频数据。类似地,目的地设备14可以与外部显示设备连接,而不是包括集成显示设备。

图1所示的译码系统10仅是一个示例。视频译码技术可以由任何数字视频编码和/或解码设备执行。尽管本发明中的技术通常由视频译码设备执行,但这些技术还可以由视频编码器/解码器(通常称为“编解码器(codec)”)执行。此外,本发明中的技术还可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理单元(graphicsprocessingunit,gpu)或类似设备。

源设备12和目的地设备14仅仅是此类译码设备的示例,其中,源设备12生成经译码视频数据,以发送给目的地设备14。在一些示例中,源设备12和目的地设备14可以基本上对称地操作,使得源设备12和目的地设备14都包括视频编码和解码组件。因此,译码系统10可以支持视频设备12和14之间的单向或双向视频传输,例如用于视频流式传输、视频回放、视频广播或视频电话。

源设备12中的视频源18可以包括视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频档案库,和/或从视频内容提供方接收视频的视频输入接口。或者,视频源18可以生成基于计算机图形的数据作为源视频,或作为直播视频、存档视频和计算机生成视频的组合。

在一些情况下,当视频源18是摄像机时,源设备12和目的地设备14可以组成摄像头手机或可视电话。但是,如上所述,本发明中描述的技术通常可以适用于视频译码,并且可以应用于无线应用和/或有线应用。在每种情况下,所捕获、预捕获或计算机生成的视频都可以由视频编码器20进行编码。然后,经编码视频信息可以通过输出接口22输出到计算机可读介质16。

计算机可读介质16可以包括瞬态介质,例如无线广播或有线网络传输,还可以包括存储介质(即,非瞬时性存储介质),例如硬盘、闪存盘、光盘、数字视频光盘、蓝光光盘或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收经编码视频数据,并且通过网络传输等将经编码视频数据提供给目的地设备14。类似地,介质生产设施(例如,光盘冲压设施)中的计算设备可以从源设备12接收经编码视频数据,并产生包含经编码视频数据的光盘。因此,在各种示例中,计算机可读介质16可以理解为包括一个或多个各种形式的计算机可读介质。

目的地设备14中的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20定义的语法信息。该语法信息还由视频解码器30使用,包括描述块和其它译码单元(例如,图像组(groupofpicture,gop))的特征和/或处理方式的语法元素。显示设备32将经解码视频数据显示给用户,并且可以包括各种显示设备中的任一个,例如,阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)、等离子体显示器、有机发光二极管(organiclightemittingdiode,oled)显示器或其它类型的显示设备。

视频编码器20和视频解码器30可以根据视频编码标准(例如目前开发的高效视频编码(efficiencyvideocoding,hevc)标准)进行操作,并且可以遵守hevc测试模型(hevctestmodel,hm)。或者,视频编码器20和视频解码器30可以根据其它专有或行业标准进行操作,这些标准例如为国际电信联盟电信标准化部门(internationaltelecommunicationsuniontelecommunicationstandardizationsector,itu-t)h.264标准(还称为运动图像专家组(motionpictureexpertgroup,mpeg)-4第10部分、高级视频编码(advancedvideocoding,avc))、h.265/hevc及此类标准的扩展版本。但是,本发明中的技术不限于任何特定的编码标准。视频编码标准的其它示例包括mpeg-2和itu-th.263。尽管在图1中未示出,但是在一些方面中,视频编码器20和视频解码器30可以分别与音频编码器和音频解码器集成,并且可以包括合适的复用器-解复用器(multiplexer-demultiplexer,mux-demux)单元或其它硬件和软件,以对共同数据流或单独数据流中的音频和视频都进行编码处理。如果适用,mux-demux单元可以遵守ituh.223复用器协议,或用户数据报协议(userdatagramprotocol,udp)等其它协议。

视频编码器20和视频解码器30可以分别实现为各种合适的编码器电路中的任一个,例如一个或多个微处理器、一个或多个数字信号处理器(digitalsignalprocessor,dsp)、一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)、一个或多个现场可编程门阵列(fieldprogrammablegatearray,fpga)、一个或多个离散逻辑、一个或多个软件、一个或多个硬件、一个或多个固件或其任何组合。当上述技术部分地以软件实现时,一种设备可以将该软件的指令存储在合适的非瞬时性计算机可读介质中,并且在硬件中使用一个或多个处理器来执行这些指令,以执行本发明中的技术。视频编码器20和视频解码器30都可以包括在一个或多个编码器或解码器中,其中任一者可以集成为相应设备中的经组合编码器/解码器(encoder/decoder,codec)的部分。包括视频编码器20和/或视频解码器30的设备可以包括集成电路、微处理器和/或无线通信设备(例如,蜂窝电话)。

图2为可以实施视频译码技术的视频编码器20的示例的框图。视频编码器20可以对视频条带(slice)内的视频块执行帧内译码和帧间译码。帧内译码依赖于空间预测来减少或去除给定视频帧或图像内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除视频序列的相邻帧或图像内的视频中的时间冗余。帧内模式(i模式)可以指若干种基于空间的译码模式中的任一种。帧间模式(例如,单向预测(uni-prediction/uniprediction)(p模式)或双向预测(bi-prediction/biprediction)(b模式))可以指若干种基于时间的译码模式中的任一种。

如图2所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的示例中,视频编码器20包括模式选择单元40、参考帧存储器64、加法器50、变换处理单元52、量化单元54以及熵译码单元56。模式选择单元40又包括运动补偿单元44、运动估计单元42、帧内预测(intra-prediction/intraprediction)单元46和分割单元48。为了视频块重建,视频编码器20还包括反量化单元58、逆变换单元60和加法器62。去块效应滤波器(图2中未示出)也包括在内,以对块边界进行滤波,从而从重建视频中去除块效应。如果需要,去块效应滤波器通常对加法器62的输出进行滤波。除去块效应滤波器之外,还可以使用其它(环内或环后)滤波器。为了简洁起见而未示出此类滤波器,但是如果需要,此类滤波器(作为环内滤波器)可以对加法器50的输出进行滤波。

在编码过程期间,视频编码器20接收待译码的视频帧或条带。可以将帧或条带划分成多个视频块。运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个块对接收到的视频块执行帧间预测译码,以提供时间预测。帧内预测单元46还可以相对于与待译码块位于同一帧或条带中的一个或多个邻块对接收到的视频块执行帧内预测译码,以提供空间预测。视频编码器20可以执行多个译码回合,(例如)以选择用于视频数据的每一块的适当译码模式。

此外,分割单元48可以基于先前译码回合中对先前分割方案的评估而将视频数据的块分割成子块。例如,分割单元48可以最初将一帧或条带分割成多个最大译码单元(largestcodingunit,lcu),并且根据率失真分析(例如,率失真优化)将多个lcu中的每一个分割成多个子译码单元(sub-codingunit,sub-cu)。模式选择单元40可以进一步产生指示lcu到子cu的分割的四叉树数据结构。四叉树中的叶节点cu可以包括一个或多个预测单元(predictionunit,pu)和一个或多个变换单元(transformunit,tu)。

本发明使用术语“块”来指hevc上下文中的cu、pu或tu中的任一个或其它标准上下文中的类似数据结构(例如h.264/avc中的宏块及其子块)。一个cu包括编码节点、与该编码节点相关联的pu和tu。cu的大小与编码节点的大小对应,呈正方形。cu的大小范围可以为8×8个像素到最大值为64×64个像素或更大的树块大小。每个cu可以包括一个或多个pu和一个或多个tu。与cu相关联的语法数据可以描述(例如)cu到一个或多个pu的分割。对cu进行跳过模式或直接模式编码、进行帧内预测模式编码或进行帧间预测(inter-prediction/interprediction)模式编码,分割模式可能有所不同。pu可以分割成非正方形。与cu相关联的语法数据还可以描述(例如)根据四叉树的cu到一个或多个tu的分割。一个tu可以是正方形或非正方形(例如,矩形)。

模式选择单元40可以根据误差结果等选择帧内或帧间译码模式中的一种,将所得到的经帧内或帧间译码块提供给加法器50以生成残差块数据,并提供给加法器62以重建经编码块以用作参考帧。模式选择单元40还将语法元素(例如,运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵译码单元56。

运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而分别说明。由运动估计单元42执行的运动估计为生成运动矢量的过程,这些运动矢量估计视频块的运动。例如,运动矢量可以表示当前视频帧或图像内的视频块的pu相对于参考帧(或其它经译码单元)内的预测块(其相对于当前帧(或其它经译码单元)内的正被译码的当前块)的位移。预测块为发现在像素差方面与待译码块高度匹配的块。所述像素差可以通过绝对差和(sumofabsolutedifference,sad)、平方差和(sumofsquaredifference,ssd)或其它差度量进行确定。在一些示例中,视频编码器20可以计算存储于参考帧存储器64中的参考图像的子整数像素位置的值。例如,视频编码器20可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以执行相对于整数像素位置和分数像素位置的运动搜索,并以分数像素精度输出运动矢量。

运动估计单元42通过将经帧间译码条带中的视频块的pu的位置与参考图像的预测块的位置进行比较而计该pu的运动矢量。参考图像可以选自第一参考图像列表(列表0)或第二参考图像列表(列表1),其中每一个列表标识存储于参考帧存储器64中的一个或多个参考图像。运动估计单元42将计算得到的运动矢量发送给熵译码单元56和运动补偿单元44。

由运动补偿单元44执行的运动补偿可以包括根据运动估计单元42确定的运动矢量来提取或生成预测块。另外,在一些示例中,运动估计单元42和运动补偿单元44可以在功能上集成。在接收到当前视频块的pu的运动矢量时,运动补偿单元44可以其中一个参考图像列表中找到运动矢量所指向的预测块。加法器50通过从正被译码的当前视频块的像素值中减去预测块的像素值,从而形成像素差值来形成残差视频块,如下所述。一般来说,运动估计单元42执行关于亮度分量的运动估计,运动补偿单元44将根据亮度分量计算得到的运动矢量用于色度分量和亮度分量两者。模式选择单元40还可以生成与视频块和视频条带相关联的语法元素,以供视频解码器30在解码视频条带的视频块时使用。

帧内预测单元46可以对当前块进行帧内预测,以替代由运动估计单元42和运动补偿单元44执行的帧间预测,如上文所述。具体地,帧内预测单元46可以确定帧内预测模式,以用于编码当前块。在一些示例中,帧内预测单元46可以(例如)在单独的编码回合期间使用各种帧内预测模式来编码当前块,而且帧内预测单元46(或在一些示例中,模式选择单元40)可以从经测试的模式中选择要使用的合适帧内预测模式。

例如,帧内预测单元46可以使用针对各种经测试的帧内预测模式的速率失真分析而计算率失真值,并在经测试模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经编码块与原始未经编码块(曾经被编码以产生经编码块)之间的失真(或误差)量以及用以产生经编码块的码率(即,位数)。帧内预测单元46可以根据各个经编码块的失真和速率计算比率,以判断哪种帧内预测模式对于该块表现最佳率失真值。

另外,帧内预测单元46可以用于使用深度建模模式(depthmodelingmode,dmm)对深度图像的深度块进行译码。模式选择单元40可以判断可用dmm模式是否比帧内预测模式和其它dmm模式(例如,使用率失真优化(rate-distortionoptimization,rdo))产生更好的译码结果。与深度图像对应的纹理图像的数据可以存储于参考帧存储器64中。运动估计单元42和运动补偿单元44还可以用于对深度图像的深度块进行帧间预测。

在选择块的帧内预测模式(例如,传统的帧内预测模式或其中一个dmm模式)之后,帧内预测单元46可以将信息提供给熵译码单元56,该信息表示为块选择的帧内预测模式。熵译码单元56可以对表示所选帧内预测模式的信息进行编码。视频编码器20可以在所发送的码流中携带配置数据,所述配置数据可以包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表),各种块的编码上下文的定义,待用于每个编码上下文的最有可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。

视频编码器20通过从正被译码的原始视频块中减去来自模式选择单元40的预测数据而形成残差视频块。加法器50表示执行这种减法运算的一个或多个组件。

变换处理单元52将离散余弦变换(discretecosinetransform,dct)或概念上类似的变换等变换应用于残差块,从而产生包括残差变换系数值的视频块。变换处理单元52可以执行概念上类似于dct的其它变换。还可以使用小波变换、整数变换、子带变换或其它类型的变换。

变换处理单元52将变换应用于残差块,从而产生残差变换系数块。变换可以将残差信息从像素值域转化到变换域,如频域。变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低码率。该量化过程可以减小与部分或全部系数相关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以接着对包括量化变换系数的矩阵执行扫描。或者,熵译码单元56可以执行扫描。

在量化之后,熵译码单元56对量化变换系数进行熵编码。例如,熵译码单元56可以执行上下文自适应可变长度编码(contextadaptivevariablelengthcoding,cavlc)、上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码技术。在基于上下文的熵编码的情况中,上下文可以基于邻块。在由熵译码单元56执行熵编码之后,经编码码流可以发送给另一设备(例如,视频解码器30)或存档以供稍后发送或检索。

反量化单元58和逆变换单元60分别应用反量化和逆变换,以在像素域中重建残差块,(例如)以供稍后用作参考块。运动补偿单元44可以通过将残差块加到参考帧存储器64内的其中一个帧的预测块中来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建残差块,以计算子整数像素值以供用于运动估计中。加法器62将重建残差块加到由运动补偿单元44产生的运动补偿预测块中,以产生重建视频块以供存储于参考帧存储器64中。重建视频块可以由运动估计单元42和运动补偿单元44用作参考块,以对后续视频帧中的块进行帧间译码。

图3为可以实现视频译码技术的视频解码器30的示例的框图。在图3的示例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、逆变换单元78、参考帧存储器82和加法器80。在一些示例中,视频解码器30可执行通常与关于视频编码器20(图2)描述的编码回合大体互逆的解码回合。运动补偿单元72可以根据从熵解码单元70接收到的运动矢量来生成预测数据,而帧内预测单元74可以根据从熵解码单元70接收到的帧内预测模式指示符来生成预测数据。

在解码过程期间,视频解码器30从视频编码器20接收经编码视频码流,该经编码视频码流表示经编码视频条带的视频块及相关联的语法元素。视频解码器30中的熵解码单元70对码流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动矢量和其它语法元素转发给运动补偿单元72。视频解码器30可以接收视频条带级和/或视频块级的语法元素。

当视频条带被编码为帧内编码(i)条带时,帧内预测单元74可以根据指示的帧内预测模式和来自当前帧或图像中的先前经解码块的数据为当前视频条带的视频块生成预测数据。当视频帧被编码为帧间编码(例如,b、p或gpb)条带时,运动补偿单元72根据从熵解码单元70接收到的运动矢量和其它语法元素为当前视频条带的视频块产生预测块。这些预测块可以根据其中一个参考图像列表内的其中一个参考图像而产生。视频解码器30可以根据存储于参考帧存储器82中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。

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

运动补偿单元72还可以根据插值滤波器进行插值。运动补偿单元72可以使用由视频编码器20在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元72可以根据接收到的语法元素来确定由视频编码器20使用的插值滤波器,并使用这些插值滤波器来产生预测块。

与深度图像对应的纹理图像的数据可以存储于参考帧存储器82中。运动补偿单元72还可以用于对深度图像的深度块进行帧间预测。

图像和视频压缩发展迅速,由此产生了各种编码标准。这些视频编码标准包括itu-th.261,iso/iecmpeg-1第2部分、itu-th.262或iso/iecmpeg-2第2部分、itu-th.263、iso/iecmpeg-4第2部分、高级视频编码(advancedvideocoding,avc)(也称为itu-th.264或iso/iecmpeg-4第10部分)以及高效视频编码(highefficiencyvideocoding,hevc)(也称为itu-th.265或mpeg-h第2部分)。avc包括可分级的视频编码(scalablevideocoding,svc)、多视图视频编码(multiviewvideocoding,mvc)和多视图视频编码加深度(multiviewvideocodingplusdepth,mvc+d)、3davc(3d-avc)等扩展版。hevc包括可分级hevc(scalablehevc,shvc)、多视图hevc(multiviewhevc,mv-hevc)和3dhevc(3d-hevc)等扩展版。还存在由itu-t和iso/iec的联合视频专家组(jointvideoexpertsteam,jvet)开发的一种新视频编码标准,即通用视频编码(versatilevideocoding,vvc)。vvc的最新工作草案(workingdraft,wd)包括在jvet-l1001-v1中。

在执行视频译码时,视频被划分为帧。这些帧被分割为像素块。然后,通过帧内预测和/或帧间预测压缩每个像素块,每个像素块可以被称为译码树单元(codingtreeunit,ctu)或图像块。帧内预测将每个图像块与帧中的一个或多个参考样本匹配。然后对帧内预测模式进行编码以指示图像块与(一个或多个)参考样本之间的关系。经编码帧内预测模式比图像像素占用更少的空间。对于在帧之间匹配的图像块,帧间预测以类似的方式进行。

分割系统用于将图像块划分为子块。例如,采用各种划分模式的树结构可以用于将节点(例如,块)划分为子节点(例如,子块)。可以采用不同的划分模式获得不同的部分。此外,划分模式也可以递归地应用于进一步细分节点。

图4中的(a)至(e)共同示出了采用各种分割类型中的一种分割类型的块400(例如,ctu)。图4中的(a)中的块400已经被四叉树(quad-tree,qt)分割(又名划分)为四个子块402。图4中的(b)和(c)中的块400已经被二叉树(binary-tree,bt)分割为两个子块402。对于二叉树划分,有两种划分类型。图4中的(b)示出了垂直二叉树分割,图4中的(c)示出了水平二叉树分割。支持除四叉树和二叉树以外的树类型。例如,垂直中心侧三叉树(triple-tree,tt)分割如图4中的(d)所示,水平中心侧tt分割如图4中的(e)所示。tt分割也可以称为三叉树分割或中心侧tt分割。在图4中的(d)和(e)中,块400被划分为三个子块402。分割过程可以迭代以划分块400,直到达到最小允许的四叉树叶节点大小。

上述qt-bttt译码结构可以用于将根节点分割为多个叶节点。首先,可以仅通过四叉树分割将根节点分割为一个或多个四叉树叶节点,并且可以使用二叉树分割或三叉树分割将所述四叉树叶节点进一步划分为编码树的叶节点。文件jvet-d0117中描述了这种编码树结构。

图5中的(a)至(d)共同示出了对应于s×s流水线结构的分割模式500的示例。如图5中的(a)所示,首先使用垂直bt分割将块504(例如,ctu)划分为子块506和508。接下来,如图5中的(b)所示,使用垂直bt分割将块504中的子块506进一步划分为子块512和514。在所示的示例中,子块512表示第一译码单元(cu1),子块514表示第二译码单元(cu2),子块508表示第三译码单元(cu3)。

如图5中的(c)所示,变换单元(例如,tu0-tu5)已经被应用到图5中的(b)的子块508、512和514。水平虚线已经被添加到块504中,以表示tu之间的边界。图5中的(c)中的块504包括四个s×s块518,它们可以通过参考不同的tu来标识。例如,左上s×s块518包含tu0和tu2,右上s×s块518包含tu4,左下s×s块518包含tu1和tu3,右下s×s块518包含tu5。在所示的示例中,块504的大小为128×128,每个s×s块518的大小为64×64,cu1和cu2的大小为32×128,cu3的大小为64×128,tu0-tu3的大小为32×64,tu4和tu5的大小为64×64。本领域技术人员将理解,在实际应用中可以使用其它划分和尺寸。作为参考,块504的高度在图5中的(c)中标记为h,块504的宽度在图5中的(c)中标记为w。

在硬件视频编解码器流水线设计中,块504通常布置在基于s×s块的流水线中,其中,s可以等于标准允许的最大tu大小,例如,对于vvc草案1,s=64。在一个实施例中,阈值为64个亮度样本。在译码期间,s×s块518逐个进行处理。

对于一些块504(例如,编码树节点),二叉树划分或三叉树划分可能会阻碍s×s流水线块结构。例如,cu1中的tu0和tu1跨越两个s×s块518,即左上s×s块518(包含tu0和tu2)和左下s×s块518(包含tu1和tu3)。由于tu0不完全覆盖左上s×s块518,因此左上s×s块518还包含cu2的tu2。但是,当对tu2进行帧内预测时,tu2的参考像素部分地位于tu1内。由于tu1相对于tu2位于不同的s×s块518内,因此tu1中的参考像素没有在s×s流水线结构下重建。这打破了s×s流水线结构。

本文公开了保留s×s流水线结构的视频译码技术。也就是说,这些技术解决了s×s流水线块结构下的帧内预测参考样本依赖问题。本文公开的实施例防止或限制cu在某些条件下被帧内预测,如将在下文进一步详细描述。通过防止在这些条件下对一些cu进行帧内预测,相对于当前编解码器,改进了视频译码中的编码器/解码器(又名“编解码器”)(例如,保持s×s流水线结构或过程的完整性)。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。

在一个实施例中,使用vvc草案1的四叉树多树类型(quadtreemulti-treetype,qt-mtt)编码树结构。最大ctu大小为128×128,最大允许的tu大小为64×64。最大bt大小(表示为maxbtsize)可以设置为128。当节点(例如,块504)的一侧(宽度或高度)大于maxbtsize时,不允许该节点使用二叉树(binarytree,bt)划分。最大tt大小(表示为maxttsize)可以设置为128。当节点的一侧大于maxttsize时,不允许该节点使用三叉树(tripletree,tt)划分。

在这种实施例中,当以下三个条件(即下面描述的条件1至3)中的一个为真(true)或满足时,不允许当前编码树节点中包含的译码单元使用帧内预测。当前编码树节点中包含的译码单元是当前编码树节点的子叶节点。

条件1:当前编码树节点(例如,块504)通过三叉树划分来划分,当前编码树节点的宽度或高度大于阈值s(即,s=64)。

条件2:当前编码树节点通过垂直二叉树划分来划分,当前编码树节点的宽度小于或等于s,当前编码树节点的高度大于s。

条件3:当前编码树节点通过水平二叉树划分来划分,当前编码树节点的高度小于或等于s,当前编码树节点的宽度大于s。

译码单元使用帧内预测模式或帧间预测模式可以通过标志来指示,例如hevc或vvc草案1中的pred_mode_flag来指示。如果pred_mode_flag等于0(或1),则译码单元的预测模式为帧间预测模式(或帧内预测模式)。

当不允许译码单元使用帧内预测时,不需要显式地指示pred_mode_flag。当对这种译码单元的译码单元语法结构进行解析时,pred_mode_flag在码流中不存在,并隐式地确定为0。

图6是对由视频编码器(例如,视频编码器20)实现的视频码流进行编码的方法600的实施例。方法600可以在要将(例如,视频中的)图像编码在视频码流中并接着发送给视频解码器(例如,视频解码器30)时执行。方法600改进了编码过程,因为保持了s×s流水线结构或过程的完整性。因此,实际上提高了编解码器的性能,从而使用户体验更好。

在602中,视频编码器使用划分模式将ctu(例如,块504)划分为至少一个cu(例如,cu1、cu2、cu3)。ctu是可以通过预测编码的最大样本值集。通过使用编码树,可以在编码之前将ctu分割为一个或多个cu。划分模式是一种将ctu中的父节点划分为子/叶节点的机制。根据编码树递归应用划分模式,以将ctu的根节点分割为包含cu的子/叶节点。划分模式可以是qt、垂直bt、水平bt、垂直tt或水平tt等,例如图4中的(a)至(e)中所示。

在604中,当发生或满足以下任何条件时,视频编码器将cu标记为不通过帧内预测进行预测:ctu的划分模式为tt,ctu的宽度或ctu的高度大于阈值;ctu的划分模式为垂直bt,ctu的宽度小于或等于阈值,ctu的高度大于阈值;或ctu的划分模式为水平bt,ctu的高度小于或等于阈值,ctu的宽度大于阈值。

在一个实施例中,阈值为64。在一个实施例中,阈值等于最大tu大小(例如,最大tu大小为64)。阈值可以对应于s×s块518和s×s流水线结构或过程指定为s。

在606中,视频编码器将cu的预测单元(predictionunit,pu)和残差信息(又名,残差)编码到视频码流中。pu是通过参考参考块对当前块进行译码的数据。pu在用于帧间预测时可以包含mv,在用于帧内预测时可以包含帧内模式。在一个实施例中,pu包括一个或多个运动矢量。在一个实施例中,当cu被标记时,预测模式标志不编码到视频码流中。在一个实施例中,ctu504中的s×s块(例如,块518)在s×s流水线中逐个进行处理。

在608中,视频编码器向视频解码器(例如,视频解码器30)发送视频码流。所述视频码流还可以称为经译码视频码流或经编码视频码流。一旦所述视频解码器接收到所述经编码视频码流,所述经编码视频码流可以被解码(例如,如下所述),以生成或产生一个图像,以在电子设备(例如,智能手机、平板电脑、笔记本电脑、个人计算机等)的显示器或屏幕上显示给用户。

图7是由视频解码器(例如,视频解码器30)实现的对经译码视频码流进行解码的方法700的实施例。方法700可以在从视频编码器(例如,视频编码器20)直接或间接接收到所述经解码码流之后执行。方法700改进了解码过程,因为保持了s×s流水线结构或过程的完整性。因此,实际上提高了编解码器的性能,从而使用户体验更好。

在702中,视频解码器确定了经编码码流中的ctu的划分模式。划分模式可以是qt、垂直bt、水平bt、垂直tt或水平tt等,例如图4中的(a)至(e)中所示。

在704中,当发生或满足以下任何条件时,视频解码器将cu标记为不通过帧内预测进行预测:ctu的划分模式为tt,ctu的宽度或ctu的高度大于阈值;ctu的划分模式为垂直bt,ctu的宽度小于或等于阈值,ctu的高度大于阈值;或ctu的划分模式为水平bt,ctu的高度小于或等于阈值,ctu的宽度大于阈值。

在一个实施例中,阈值为64。在一个实施例中,阈值等于最大tu大小(例如,最大tu大小为64)。阈值可以对应于s×s块518和s×s流水线结构或过程指定为s。

在706中,视频解码器对经编码码流进行解析,以从ctu获得cu的预测单元和残差信息。在一个实施例中,pu包括一个或多个运动矢量。在一个实施例中,当cu被标记时,预测模式标志不编码到视频码流中。在一个实施例中,ctu504中的s×s块(例如,块518)在s×s流水线中逐个进行处理。

在708中,当cu已被标记时,视频解码器根据预测单元和残差信息重建cu。在一个实施例中,所述重建cu可以用于生成或产生一个图像,以在电子设备(例如,智能手机、平板电脑、膝上型电脑、个人计算机等)的显示器或屏幕上显示给用户。

图8为本发明一个实施例提供的视频译码设备800(例如,视频编码器20或视频解码器30)的示意图。视频译码设备800适用于实现本文描述的公开实施例。视频译码设备800包括:入端口810和接收单元(rx)820,用于接收数据;处理器、逻辑单元或中央处理单元(centralprocessingunit,cpu)830,用于处理所述数据;发送单元(tx)840和出端口850,用于发送所述数据;存储器860,用于存储所述数据。视频译码设备800还可以包括与入端口810、接收单元820、发送单元840和出端口850耦合的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用于光信号或电信号的出入。

处理器830通过硬件和软件实现。处理器830可以实现为一个或多个cpu芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmablegatearray,fpga)、专用集成电路(applicationspecificintegratedcircuit,asic)和数字信号处理器(digitalsignalprocessor,dsp)。处理器830与入端口810、接收单元820、发送单元840、出端口850和存储器860通信。处理器830包括译码模块870。译码模块870实现上文描述的公开实施例。例如,译码模块870执行、处理、准备或提供各种网络连接功能。因此,包括译码模块870使得视频译码设备800功能得到了显著改进,实现了视频译码设备800不同状态的转换。或者,以存储在存储器860中并由处理器830执行的指令来实现译码模块870。

视频译码设备800还可以包括输入和/或输出(input/output,i/o)设备880,用于向用户发送数据和从用户发送数据。i/o设备880可以包括输出设备,例如显示视频数据的显示器、输出音频数据的扬声器等。i/o设备880还可以包括键盘、鼠标、轨迹球等输入设备和/或与上述输出设备进行交互的对应接口。

存储器860包括一个或多个磁盘、磁带机以及固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储此类程序,并存储在程序执行期间读取的指令和数据。存储器860可以是易失性和/或非易失性,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)和/或静态随机存取存储器(staticrandom-accessmemory,sram)。

图9为用于译码的模块900的一个实施例的示意图。在本实施例中,译码模块900在视频译码设备902(例如,视频编码器20或视频解码器30)中实现。视频译码设备902包括接收模块901。接收模块901用于接收图像进行编码或者接收码流进行解码。视频译码设备902包括与接收模块901耦合的发送模块907。发送模块907用于向解码器发送所述码流或者向显示模块(例如,多个i/o设备880中的一个i/o设备)发送解码图像。

视频译码设备902包括存储模块903。存储模块903与接收模块901或发送模块907中的至少一个耦合。存储模块903用于存储指令。视频译码设备902还包括处理模块905。处理模块905与存储模块903耦合。处理模块905用于执行存储在存储模块903中的指令,以执行本文公开的方法。

还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。

虽然本发明提供了若干个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以通过其它多种具体形式体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者某些特征可以省略或不实现。

另外,在不偏离本发明的范围的情况下,各种实施例中描述及图示为独立或分离的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。展示或描述为彼此耦合或直接耦合或相互通信的其它项可以采用电方式、机械方式或其它方式通过某种接口、设备或中间组件间接地耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可以在不脱离本文公开的精神和范围的情况下举例。

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