针对预测的视频数据的双边滤波器的制作方法

文档序号:22930983发布日期:2020-11-13 16:29阅读:220来源:国知局
针对预测的视频数据的双边滤波器的制作方法

本申请要求享受于2019年4月11日提交的编号为16/381,568的美国申请和于2018年4月12日提交的编号为62/656,872的美国临时申请的利益,故以引用方式将这两份申请的全部内容并入本文。

本公开内容涉及视频编码和视频解码。



背景技术:

数字视频能力可以并入到各种各样的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(pda)、膝上型计算机或桌面型计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流设备等等。数字视频设备实现视频编码技术,诸如通过mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4、第10部分所定义的标准、高级视频编码(avc)、高效视频编码(hevc)标准、itu-th.265/高效率视频编码(hevc)、以及这样的标准的扩展中所描述的那些技术。视频设备可以通过实现这样的视频编码技术来更高效地发送、接收、编码、解码和/或存储数字视频信息。

视频编码技术包括空间(帧内)预测和/或时间(帧间)预测以减少或者去除视频序列中固有的冗余。对于基于块的视频编码,可以将视频切片(例如,视频图像或视频图像的一部分)划分为视频块,所述视频块还可以称为编码树单元(ctu)、编码单元(cu)和/或编码节点。使用相对于同一图像中的邻近块中的参考样本的空间预测,对图像的帧内编码(i)切片中的视频块进行编码。在图像的帧间编码(p或b)切片中的视频块可以使用相对于同一图像中的邻近块中的参考样本的空间预测,或者相对于在其它参考图像中的参考样本的时间预测。图像可以称为帧,以及参考图像可以称为参考帧。



技术实现要素:

通常,本公开内容描述了用于可以在视频写码(编码或解码)的预测阶段期间使用的双边滤波的技术。诸如根据itu-th.265/高效视频编码(hevc)的编解码器的任何现有的视频编解码器可以应用这些技术,或者未来的视频编解码器可以应用这些技术。这些技术可以在未来的视频编码标准中提供高效的编码工具。

在一个示例中,一种对视频数据进行编码的方法包括:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中,应用双边滤波器包括:确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素;以及使用经滤波的预测块,对当前块进行编码。

在另一示例中,一种用于对视频数据进行编码的设备包括被配置为存储视频数据的存储器;以及包括电路并且被配置为进行以下操作的一个或多个处理器:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中,为了应用双边滤波器,处理器被配置为确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素;以及使用经滤波的预测块,对当前块进行编码。

在另一示例中,一种用于对视频数据进行编码的设备包括:用于生成针对视频数据的当前块的预测块的单元;用于向预测块应用双边滤波器以生成针对当前块的经滤波的预测块的单元,其中,用于应用双边滤波器的单元包括:用于确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素的单元;以及用于使用经滤波的预测块,对当前块进行编码的单元。

在另一示例中,一种具有存储在其上的指令的计算机可读存储介质,所述指令当被执行时,使一个或多个处理器进行以下操作:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中,使处理器应用双边滤波器的指令包括:用于使处理器确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素的指令;以及使用经滤波的预测块,对当前块进行编码。

在附图和下文的说明书中阐述了一个或多个示例的细节。根据说明书、附图以及权利要求书,其它特征、对象和优点将是显而易见的。

附图说明

图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的方块图。

图2a和图2b是示出示例编码树单元(ctu)和相应的四叉树数据结构的概念图。

图3是示出示例hevc解码器的方块图。

图4a-4d是示出用于边缘偏移(eo)样本分类的各自的方向图的概念图。

图5是示出在双边滤波过程中利用的示例样本及其邻近的四个样本的概念图。

图6是示出在双边滤波过程中利用的示例样本及其邻近的四个样本的概念图。

图7是示出在免除法双边滤波中使用的示例样本和邻近样本的概念图。

图8是在双边滤波中使用的一个样本及其邻近样本的概念图。

图9a和9b是示出示例四叉树二叉树(qtbt)结构和相应的编码树单元(ctu)的概念图。

图10是示出可以执行本公开内容的技术的示例视频编码器的方块图。

图11是示出可以执行本公开内容的技术的示例视频解码器的方块图。

图12是示出根据本公开内容的技术的用于对当前块进行编码的示例方法的流程图。

图13是示出根据本公开内容的技术的用于对视频数据的当前块进行解码的示例方法的流程图。

具体实施方式

视频编码标准包括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)以及3d视频编码扩展开发联合协作组(jct-3v)最近开发了新的视频编码标准,即高效视频编码(hevc)或itu-th.265,包括其范围扩展、多视图扩展(mv-hevc)和可缩放扩展(shvc)。在itu-tsg16wp3和iso/iecjtc1/sc29/wg11的视频编码联合协作小组(jct-vc)于2013年7月25日至8月2日在奥地利维也纳的第14次会议的文档jctvc-n1003_v1中,wang等人在“highefficiencyvideocoding(hevc)defectreport(高效视频编码(hevc)缺陷报告)”中描述了hevc规范草案(以下简称“hevcwd”),所述文档jctvc-n1003_v1是在phenix.int-evry.fr/jct/doc_end_user/documents/14_vienna/wg11/jctvc-n1003-v1.zip处可获得的。

itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)现在正在研究对具有压缩能力的未来视频编码技术进行标准化的潜在需求,所述压缩能力将大大超过当前的hevc标准(包括其当前扩展以及针对屏幕内容编码和高动态范围编码的近期扩展)。这些小组正在称为联合视频探索小组(jvet)的联合协作工作中共同开展这项探索活动,以评估由它们的在该领域中的专家提出的压缩技术设计。jvet首次于2015年10月19日至21日见面。参考软件的版本(即,联合探索模型7(jem7))是可从jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-7.0/.获得的。在itu-tsg16wp3和iso/iecjtc1/sc29/wg11的联合视频探索小组(jvet)于2017年7月13日至21日,在意大利都灵的第7次会议的文档jvet-g1001-v1中,在chen等人的“联合探索测试模型7(jem7)的算法描述”中提供了对联合探索测试模型7(jem7)的描述,所述文档jvet-g1001-v1是在

phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=3286处可获得的。

图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的方块图。本公开内容的技术通常针对于对视频数据进行写码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未编码的视频、编码的视频、解码的(例如,重建的)视频以及视频元数据(诸如信令数据)。

如图1中所示,在该示例中,系统100包括源设备102,所述源设备102提供要由目的地设备116解码和显示的经编码的视频数据。特别是,源设备102经由计算机可读介质110将视频数据提供给目的地设备116。源设备102和目的地设备116可以包括广泛的设备中的任何设备,包括桌面型计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手机(这样的智能手机)、电视、照相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,因此可以称为无线通信设备。

在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开内容,源设备102的视频编码器200和目的设备116的视频解码器300可以被配置为应用用于对预测块的双边滤波的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从诸如外部照相机的外部视频源接收视频数据。同样地,目的地设备116可以与外部显示设备接合,而不是包括集成的显示设备。

如图1中所示的系统100仅仅是一个示例。通常,任何数字视频编码和/或解码设备都可以执行用于对预测块的双边滤波的技术。源设备102和目的地设备116仅仅是这样的编码设备的示例,在其中源设备102生成用于向目的地设备116的传输的编码的视频数据。本公开内容将“编码”设备称为执行对数据的写码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示编码设备(特别是,视频编码器和视频解码器)的示例。在一些示例中,设备102、116可以以基本上对称的方式操作,使得设备102、116中的每一者包括视频编码和解码组件。因此,系统100可以支持在视频设备102、116之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。

通常,视频源104代表视频数据(即,原始的、未编码的视频数据)的源,以及将视频数据的连续系列的图像(还称为“帧”)提供给视频编码器200,所述视频编码器200对针对图像的数据进行编码。源设备102的视频源104可以包括视频捕获设备(诸如视频照相机)、包含先前捕获的原始的视频的视频归档和/或用于从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源104可以生成基于计算机图形的数据作为源视频、或者视频直播、归档的视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图像从接收到的顺序(有时称为“显示顺序”)重新排列为用于编码的编码顺序。视频编码器200可以生成包括编码的视频数据的比特流。然后,源设备102可以经由输出接口108将编码的视频数据输出到计算机可读介质110上,用于通过例如目的地设备116的输入接口122进行接收和/或取回。

源设备102的存储器106和目的设备116的存储器120代表通用存储器。在一些示例中,存储器106、120可以存储原始的视频数据,例如,来自视频源104的原始的视频和来自视频解码器300的原始的解码的视频数据。另外地或替代地,存储器106、120可以存储可由例如视频编码器200和视频解码器300分别执行的软件指令。尽管在该示例中与视频编码器200和视频解码器300单独地示出,但是应当理解的是,视频编码器200和视频解码器300还可以包括内部存储器,用于实现功能上相似或等效的目的。此外,存储器106、120可以存储编码的视频数据(例如,从视频编码器200输出以及输入到视频解码器300)。在一些示例中,可以分配存储器106、120中的部分存储器作为一个或多个视频缓冲器,例如,以存储原始的、解码和/或编码的视频数据。

计算机可读介质110可以代表能够将编码的视频数据从源设备102传送到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110代表用于使源设备102能够实时地例如经由射频网络或基于计算机的网络,将编码的视频数据直接地发送给目的地设备116的通信介质。输出接口108可以根据诸如无线通信协议的通信标准,来调制包括编码的视频数据的传输信号,以及输入接口122可以对接收到的传输信号进行调制。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成诸如局域网、广域网或全球网络(诸如互联网)的基于分组的网络的一部分。通信介质可以包括路由器、交换机、基站或者可以对促进从源设备102到目的地设备116的通信有用的任何其它装备。

在一些示例中,源设备102可以将编码的数据从输出接口108输出到存储设备116。类似地,目的地设备116可以经由输入接口122存取来自存储设备116的编码的数据。存储设备116可以包括多种分布式或本地存取的数据存储介质(诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器)或者用于存储编码的视频数据的任何其它适当的数字存储介质中的任何一者。

在一些示例中,源设备102可以将编码的视频数据输出到文件服务器114或可以存储由源设备102生成的编码的视频的另一中间存储设备。目的地设备116可以经由串流或下载从文件服务器114存取所存储的视频数据。文件服务器114可以是能够存储编码的视频数据以及将该编码的视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114可以代表网络服务器(例如,用于网站)、文件传输协议(ftp)服务器、内容分发网络设备或网络附加存储(nas)设备。目的地设备116可以通过包括互联网连接的任何标准数据连接,来存取来自文件服务器114的编码的视频数据。这可以包括适合用于存取在文件服务器114上存储的编码的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输协议、下载传输协议或者其组合来操作。

输出接口108和输入接口122可以代表无线发射机/接收机、调制解调器、有线网络组件(例如,以太网卡)、根据各种ieee802.11标准中的任何一者进行操作的无线通信组件、或者其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4g、4g-lte(长期演进)、改进的lte、5g等等的蜂窝通信标准,来传送诸如编码的视频数据的数据。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如ieee802.11规范、ieee802.15规范(例如,zigbee(紫蜂)tm)、蓝牙tm标准等等),来传送诸如编码的视频数据的数据。在一些示例中,源设备102和/或目的地设备116可以包括各自的片上系统(soc)设备。例如,源设备102可以包括soc设备以执行归因于视频编码器200和/或输出接口108的功能,以及目的地设备116可以包括soc设备以执行归因于视频解码器300和/或输入接口122的功能。

本公开内容的技术可以应用于支持各种多媒体应用中的任何一者的视频编码,所述多媒体应用诸如无线电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(诸如http承载动态自适应串流(dash)、编码到数据存储介质上的数字视频),对存储在数据存储介质上的数字视频的解码、或者其它应用。

目的地设备116的输入接口122从计算机可读介质110(例如,存储设备112、文件服务器114等等)接收编码的视频比特流。编码的视频比特流计算机可读介质110可以包括由视频编码器200定义的、还由视频解码器300使用的信令信息,诸如具有描述视频块或其它编码的单元(例如,切片、图像、图像组、序列等等)的特性和/或处理的值的语法元素。显示设备118向用户显示解码的视频数据的解码的图像。显示设备118可以代表多种显示设备中的任何一者,诸如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器、或者另一类型的显示设备。

虽然未在图1中示出,但在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器整合在一起,以及可以包括适当的mux-demux单元或者其它硬件和/或软件,以处理包括在共同数据流中的音频和视频两者的复用的流。如果适用的话,mux-demux单元可以符合ituh.223多路复用器协议或其它协议诸如用户数据报协议(udp)。

视频编码器200和视频解码器300各自可以实现为多种适当的编码器和/或解码器电路中的任何一者,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或者其任意组合。当部分地以软件实现技术时,设备可以将用于软件的指令存储在适当的非暂时性计算机可读介质中,以及使用一个或多个处理器以硬件方式执行指令以执行本公开内容的技术。视频编码器200和视频解码器300中的每一者可以是包括在一个或多个编码器或解码器中的,所述编码器或解码器中的任何一者可以整合作为在各自设备中的组合的编码器/解码器(codec)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。

视频编码器200和视频解码器300可以根据诸如itu-th.265的视频编码标准(还称为高效视频编码(hevc))或者其扩展(诸如多视图和/或可缩放的视频编码扩展)进行操作。或者,视频编码器200和视频解码器300可以根据诸如联合探索测试模型(jem)的其它专用的或工业标准来操作。然而,本公开内容的技术并不限于任何特定的编码标准。

通常,视频编码器200和视频解码器300可以执行图像的基于块的编码。术语“块”通常指的是包括要处理(例如,在编码和/或解码过程中使用的编码的、解码的或其它方式)的数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以yuv(例如,y、cb、cr)格式表示的视频数据进行编码。也就是说,不是对针对图像的样本的红色、绿色和蓝色(rgb)数据进行编码,而是视频编码器200和视频解码器300可以对亮度和色度分量进行编码,其中色度分量可以包括红色色彩和蓝色色彩色度分量。在一些示例中,视频编码器200在编码之前,将接收到的rgb格式的数据转换成yuv表示,以及视频解码器300将yuv表示转换成rgb格式。或者,预处理和后处理单元(未示出)可以执行这些转换。

本公开内容通常可以涉及对图像的写码(例如,编码和解码),以包括对图像的数据进行编码或解码的过程。类似地,本公开内容可以涉及对图像的块的编码,以包括对针对块的数据进行编码或解码的过程,例如预测和/或残差编码。编码的视频比特流通常包括用于语法元素的一系列值,所述语法元素表示编码决策(例如,编码模式)以及对图像到块的划分。因此,对图像或块进行编码的引用,通常应当被理解作为用于形成图像或块的语法元素的编码值。

再举一个示例,视频编码器200和视频解码器300可以被配置为根据jem进行操作。根据jem,视频编码器(诸如视频编码器200)将图像划分为多个编码树单元(ctu)。视频编码器200可以根据诸如四叉树-二叉树(qtbt)结构的树结构,对ctu进行划分。jem的qtbt结构去除了多个分区类型的概念,诸如在hevc的cu、pu和tu之间的分离。jem的qtbt结构包括两个层级:根据四叉树划分而划分的第一层级,以及根据二叉树划分而划分的第二层级。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于编码单元(cu)。

在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt结构来表示亮度和色度分量中的每一者,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个qtbt结构,诸如一个qtbt结构用于亮度分量,以及另一qtbt结构用于两个色度分量(或者用于各自的色度分量的两个qtbt结构)。

视频编码器200和视频解码器300可以被配置为使用每hevc的四叉树划分、根据jem的qtbt划分、或其它划分结构。出于说明的目的,相对于qtbt划分给出了本公开内容的技术的描述。但是,应当理解的是,本公开内容的技术还可以应用于被配置为使用四叉树划分或此外其它类型的划分的视频编码器。

本公开内容可以互换地使用“nxn”和“n乘n”来指代块(诸如cu或其它视频块)在垂直和水平维度方面的样本尺寸,例如16x16样本或16乘16样本。通常,16x16cu将在垂直方向上具有16个样本(y=16),以及将在水平方向上具有16个样本(x=16)。同样地,nxncu通常在垂直方向上具有n个样本,以及在水平方向上具有n个样本,其中n表示非负整数值。可以按行和列来排列在cu中的样本。此外,cu不一定需要在水平方向上具有与在垂直方向上相同数量的样本。举例来说,cu可以包括nxm个样本,其中m不一定等于n。

视频编码器200对针对表示预测和/或残差信息以及其它信息的cu的视频数据进行编码。预测信息指示要如何预测cu,以便形成针对该cu的预测块。残差信息通常表示在编码之前的cu的样本与预测块之间的逐个样本差异。

为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测来形成针对cu的预测块。帧间预测通常指的是从先前编码的图像的数据中预测cu,而帧内预测通常指的是从同一图像的先前编码的数据中预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来产生预测块。视频编码器200通常可以例如在cu与参考块之间的差异方面,执行运动搜索以识别与cu紧密匹配的参考块。视频编码器200可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)或其它这样的差值计算来确定差值度量,以确定参考块是否紧密匹配当前的cu。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前的cu。

jem还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,诸如放大或缩小、旋转、透视运动或其它不规则运动类型。

为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。jem提供67种帧内预测模式,包括各种定向模式以及平面模式和dc模式。通常,视频编码器200选择帧内预测模式,所述帧内预测模式描述到当前块(例如,cu的块)的邻近样本,从这些样本中预测当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对ctu和cu进行编码,则这样的样本通常可以在与当前块相同的图像中的当前块的上方、左上方或左侧。

视频编码器200对表示针对当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用的帧间预测模式中的哪一者的数据、以及针对相应的模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用高级运动矢量预测(amvp)或合并模式,来对运动矢量进行编码。视频编码器200可以使用类似模式来对针对仿射运动补偿模式的运动矢量进行编码。

根据本公开内容的技术,如下文所更详细讨论的,视频编码器200和视频解码器300可以向预测块应用双边滤波器。也就是说,视频编码器200和视频解码器300可以向预测块的每个像素(或样本)应用双边滤波器。双边滤波器可以向预测块的当前像素指示要应用加权值的邻近像素集合。邻近像素可以包括一个或多个水平邻近的像素和/或一个或多个垂直邻近的像素,例如,如下文相对于图4-8所示出以及讨论的。此外,视频编码器200和视频解码器300可以基于邻近像素本身的值来确定加权值。因此,视频编码器200和视频解码器300可以确定加权值,以及将加权值应用于邻近像素值以对当前像素进行滤波,从而更新当前像素的值。

在诸如块的帧内预测或帧间预测的预测以及对作为结果的预测块进行滤波之后,视频编码器200可以计算针对块的残差数据。残差数据(诸如残差块)表示在块与针对块的使用相应的预测模式形成的预测块之间的逐个样本差异。视频编码器200可以向残差块应用一个或多个变换,以在变换域而非样本域中产生经变换的数据。例如,视频编码器200可以向残差视频数据应用离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换。另外,视频编码器200可以在第一变换之后应用次级变换,诸如依赖于模式的不可分离的次级变换(mdnsst)、依赖于信号的变换、卡洛南-洛伊(karhunen-loeve)变换(klt)等等。视频编码器200在应用一个或多个变换之后产生变换系数。

如上文所述,在进行任何变换以产生变换系数之后,视频编码器200可以执行对变换系数的量化。量化通常指的是在其中对变换系数进行量化以可能减少用于表示系数的数据的量,提供进一步的压缩的过程。通过执行量化过程,视频编码器200可以减小与系数中的一些或所有系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值下舍入为m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要量化的值的按位右移。

在量化之后,视频编码器200可以扫描变换系数,根据包括量化的变换系数的二维矩阵产生一维矢量。可以将扫描设计为将较高能量(因此较低频率)的系数放在矢量的前面,以及将较低能量(因此较高频率)的变换系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来扫描经量化的变换系数,以产生经串行化的矢量,然后对矢量的经量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在对量化的变换系数进行扫描以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编码(cabac)对一维矢量进行熵编码。视频编码器200还可以对针对语法元素的值进行熵编码,所述语法元素描述与编码的视频数据相关联的元数据,用于由视频解码器300在对视频数据进行解码时使用。

为了执行cabac,视频编码器200可以将在上下文模型内的上下文分配给要发送的符号。例如,上下文可以涉及符号的邻近值是否为零值。概率确定可以是基于分配给符号的上下文。

视频编码器200还可以例如在图像头、块头、切片头或其它语法数据(诸如序列参数集(sps)、图像参数集(pps)或视频参数集(vps))中,生成对于视频解码器300的语法数据(诸如基于块的语法数据、基于图像的语法数据、以及基于序列的语法数据)。视频解码器300可以同样地对这样的语法数据进行解码,以确定如何对相应的视频数据进行解码。

用此方式,视频编码器200可以生成包括编码的视频数据的比特流,例如,用于描述将图像划分成块(例如,cu)以及针对块的预测和/或残差信息的语法元素。最终,视频解码器300可以接收比特流,以及对编码的视频数据进行解码。

通常,视频解码器300执行与视频编码器200所执行过程互易的过程,以对比特流的编码的视频数据进行解码。例如,视频解码器300可以使用cabac以与视频编码器200的cabac编码过程实质上相似的方式(尽管互易),对针对比特流的语法元素的值进行解码。语法元素可以将图像的分区信息定义为ctu,以及根据相应的分区结构(诸如qtbt结构),对每个ctu进行划分以定义ctu的cu。语法元素可以进一步定义针对视频数据的块(例如,cu)的预测和残差信息。

残差信息可以通过例如量化的变换系数来表示。视频解码器300可以对块的量化的变换系数进行逆量化和逆变换,以再现针对块的残差块。视频解码器300使用以信号发送的预测模式(帧内或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成针对块的预测块。然后,视频解码器300可以对预测块和残差块(以逐个样本为基础)进行组合以再现原始的块。视频解码器300可以执行另外的处理,诸如执行解块过程以减少沿块的边界的视觉伪像。

通常,本公开内容可以涉及“以信号发送”某种信息(诸如语法元素)。术语“以信号发送”通常可以指的是对语法元素的值和/或用于对编码的视频数据进行解码的其它数据的通信。也就是说,视频编码器200可以在比特流中以信号发送针对语法元素的值。通常,以信号发送指的是在比特流中生成值。如上文所述,源设备102可以大体上实时地或者非实时地将比特流式传送到目的地设备116,诸如当将语法元素存储到存储设备112用于稍后由目的地设备116取回时可能发生。

图2a和图2b是示出示例编码树单元(ctu)130和相应的四叉树数据结构132的概念图。hevc定义了各种块,包括编码单元(cu)、预测单元(pu)和变换单元(tu)。在hevc中,在切片中的最大的编码单元称为编码树块(ctb)或编码树单元(ctu)。ctb包含四叉树,其节点是编码单元。根据hevc,视频编码器(诸如视频编码器200)根据四叉树结构将编码树单元(ctu)划分为cu。也就是说,视频编码器将ctu和cu划分为四个相等的、非重叠的正方形,以及四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以称为“叶节点”,以及这样的叶节点的cu可以包括一个或多个pu和/或一个或多个tu。视频编码器可以进一步划分pu和tu。例如,在hevc中,残差四叉树(rqt)表示对tu的划分。在hevc中,pu表示帧间预测数据,而tu表示残差数据。是帧内预测的cu包括帧内预测信息,诸如模式内指示。

在hevc中,指定为亮度和色度ctb的块可以直接用作cb,或者可以进一步分为多个cb。划分可以是使用树结构来实现的。在hevc中的树划分通常同时地应用于亮度和色度两者,尽管当达到针对色度的某些最小大小时会应用例外。

hevc的ctu包含四叉树语法,所述四叉树语法考虑到基于通过ctb覆盖的区域的信号特性来将cb分割成选择的适当大小。可以迭代四叉树分割过程,直到针对亮度cb的大小达到由编码器使用在sps中的语法选择的最小允许的亮度cb大小,以及每hevc始终为8×8或更大(以亮度样本为单位)。

在hevc中,以最小允许的亮度cb大小为单位来定义图像的边界。结果,在图像的右边缘和下边缘,一些ctu可以覆盖部分地位于图像的边界之外的区域。该条件由解码器(例如,视频解码器300)进行检测,以及根据需要隐式地分割ctu四叉树,以将cb大小减小到整个cb将适合于图像的点。

图3是示出示例hevc解码器的方块图。hevc采用两个环路滤波器,包括去块滤波器(dbf)和样本自适应偏移(sao)滤波器,如图3中所示。图3的视频解码器可以对应于视频解码器300(图1)。

dbf在帧内或帧间预测之后,接收包括重建的图像的输入。去块滤波器执行对编码的块边界处的伪像的检测,以及通过应用选择的滤波器将其减弱。与h.264/avc去块滤波器相比,hevc去块滤波器具有较低的计算复杂度和更好的并行处理能力,同时仍实现显著地减少视觉伪像。

sao滤波器在调用去块滤波之后接收重建的图像。sao的概念是通过首先利用选择的分类器将区域样本分类为多个类别,获得针对每个类别的偏移量,然后将偏移量添加到类别的每个样本,从而减少区域的平均样本失真,其中将分类器索引和区域的偏移量编码在比特流中。在hevc中,将区域(用于sao参数信令的单元)定义为编码树单元(ctu)。在hevc中采用了可以满足低复杂度的要求的两种sao类型:边缘偏移(eo)和频带偏移(bo)。可以对sao类型的索引进行编码(其可以在[0,2]的范围中)。

图4a-4d是说明针对边缘偏移(eo)样本分类的各自的方向图的概念图。图4a描绘水平(eo类=0)。图4b描绘垂直(eo类=1)。图4c描绘135度对角线(eo类=2),以及图4d描绘45度对角线(eo类=3)。

对于eo,样本分类是基于在当前样本与邻近样本之间根据1-d方向图的比较:水平、垂直、135°对角线和45°对角线。根据选择的eo模式,进一步定义在表i中通过edgeidx表示的五个类别。针对edgeidx等于0~3,偏移的幅度可以是在对符号标记进行隐式编码时以信号发送的,即针对edgeidx等于0或1时为负偏移,以及针对edgeidx等于2或3时为正偏移。针对edgeidx等于4,偏移量始终设置为0,这意味着没有操作是针对这种情况来要求的。

表i

对于bo,样本分类是基于样本值。每个颜色分量可以具有其自己的sao参数。bo暗示将一个偏移量添加到同一频段的所有样本。将样本值范围平均分为32个频段。对于范围从0到255的8比特样本,频段的宽度是8,以及从8k到8k+7的样本值属于频带k,其中k的范围是0到31。将频带中的原始的样本与重建的样本之间的平均差(即,频带的偏移)以信号发送给解码器。不存在对偏移标记的约束。仅将四个连续频带的偏移量和起始频带位置以信号发送给解码器。

为了减少边带信息,可以将多个ctu合并在一起(从上面的ctu复制参数(通过设置sao_merge_left_flag等于1)或者从左ctu复制参数(通过将sao_merge_up_flag设置等于1)以共享sao参数。

除了修改的db和hevcsao方法之外,jem还包括另一滤波方法,称为基于几何变换的自适应环路滤波(galf)。galf目的在于通过引入若干新方面来提高在hevc阶段研究的alf的编码效率。alf目的在于通过使用基于wiener(维纳)的自适应滤波器,来使在原始的样本和解码的样本之间的均方误差最小化。将图像中的样本分类为多个类别,然后利用它们的关联的自适应滤波器对每个类别中的样本进行滤波。可以以信号发送或继承滤波器系数,以优化在均方误差与开销之间的权衡。在本文中,提出了基于几何变换的alf(galf)方案,以进一步提高alf的性能,该方案取决于在alf之前重建的样本的梯度的方向,引入几何变换(诸如旋转、对角和垂直翻转)以应用于在滤波器支持区域中的样本。到alf/galf的输入可以是在调用sao之后的重建的图像。

在itu-tsg16wp3和iso/iecjtc1/sc29/wg11的探索团队(jvet)于2016年2月20日至2月26日在美国圣地亚哥第2次会议的文档jvet-b0060中的m.karczewicz、l.zhang、w.-j.chien、x.li的“ee2.5:improvementsonadaptiveloopfilter(ee2.5:在自适应环路滤波器上的改进)”,以及在itu-tsg16wp3和iso/iecjtc1/sc29/wg11的探索团队(jvet)于2016年5月26日至6月1日在瑞士日内瓦第3次会议的文档jvet-c0038中的m.karczewicz、l.zhang、w.-j.chien、x.li“ee2.5:improvementsonadaptiveloopfilter(ee2.5:在自适应环路滤波器上的改进)”中,提出了基于几何变换的alf(galf),以及其已被采用于最新版本的jem(即,jem3.0)。在galf中,在考虑了对角梯度的情况下修改分类,以及可以对滤波系数应用几何变换。每个2×2块是基于其方向性和活动的量化值来分类为25个类别中的一个类别。详情如下所述。

在1998年1月,印度孟买的ieeeiccv的proc.中,在作者为c.tomasi和r.manduchi的“bilateralfilteringforgrayandcolorimages(针对灰度和彩色图像的双边滤波)”中,先前提出了双边滤波,以避免针对在边缘中的像素的不合需要的过度平滑。双边滤波的主要思想是对邻近样本的加权将像素值本身考虑在内,以对具有相似亮度或色度值的那些像素进行加权更多。位于(i,j)处的样本将是使用其邻近样本(k,l)进行滤波的。权重ω(i,j,k,l)是分配给样本(k,l)来对样本(i,j)进行滤波的权重,以及其定义为:

其中,i(i,j)和i(k,l)分别是样本(i,j)和(k,l)的强度值。σd是空间参数,以及σr是范围参数。具有通过id(i,j)表示的滤波的样本值的滤波过程可以定义为:

通过这两个参数来控制双边滤波器的特性(或强度)。位于与要滤波的样本更接近的样本以及具有与要滤波的样本的较小强度差的样本,将具有与远离的样本和具有较大强度差的样本相比要大的权重。

在2016年10月15日至21日于中国成都举行的第四次会议中,perwennersten、yingwang、kennethandersson、jonatansamuelsson的“bilateralfilterafterinversetransform(在逆变换之后的双边滤波器)”(jvet-d0069)中,仅使用其直接邻近的重建的样本,对变换单元(tu)中的每个重建的样本进行滤波。滤波器具有集中在要滤波的样本处的加号形状的滤波器孔,如图4中所示。σ_d要基于变换单元大小进行设置(3),以及σ_r要基于用于当前块的qp来设置(4)。

图5是示出在双边滤波过程中利用的样本及其邻近的四个样本的概念图。在2017年1月12日至20日于瑞士日内瓦举行的第五次会议中,p.wennersten、k.andersson、j.enhorn的“bilateralfilterstrengthbasedonpredictionmode(基于预测模式的双边滤波器强度)”jvet-e0032中,为了进一步减少在低延迟配置之下的编码损失,将滤波器强度进一步设计为取决于编码的模式。对于帧内编码的块,仍使用上文的等式(3)。而对于帧间编码的块,将应用以下公式:

针对σd的不同值意味着针对帧间预测块的滤波器强度与帧内预测块相比相对较弱。帧间预测块典型地具有与帧内预测块相比要少的残差。因此,将双边滤波器设计为较少地对帧间预测块的重建进行滤波。输出的经滤波的样本值id(i,j)计算为:

由于滤波器仅接触样本及其4个邻近样本,因此该等式可以写为:

其中,ic是中心样本的强度,以及il、ir、ia和ib分别是针对样本左、右、上方和下方的强度。同样地,ωc是针对中心样本的权重,以及ωl、ωr、ωa和ωb是针对邻近样本的相应的权重。滤波器仅使用在块内的样本用于滤波—将外部权重设置为0。

为了减少计算的数量,已使用查找表(lut)在jem中实现了双边滤波器。对于每个qp,都有一维lut用于值ωl、ωr、ωa和ωb,其中存储以下值

其中,取决于qp,根据(4)来计算由于在lut中的因此可以将其直接用于内部mxn,其中最小值(m,n)等于4种情况,其中中心权重ωc为65,其代表1.0。对于其它模式(即,内部mxn但最小值(m,n)不等于4、kxl个块之间),使用相同的lut,但使用的中心权重为:

其中,通过(3)或(5)来获得σd。如下所示地计算最终的滤波的值:

其中,使用的除法是整数除法,以及加入项(ωc+ωl+ωr+ωa+ωb)>>1以得到正确的舍入。

在jem参考软件中,在等式10中的除法运算是通过lut、乘法和移位运算来代替的。为了减小分子和分母的大小,将等式10进一步细化为:

在jem参考软件中,以可以通过两个查找表实现除法的方式来实现等

式11,以及(11)可以重写为:

两个查找表是用于在移位之后得到每个1/x的近似值(x是正整数值)的查找表lut、以及用于定义针对输入x的额外的移位值的查找表divshift。在2017年3月31日至4月7日于瑞士霍巴特举行的第六次会议中,p.wennersten、k.andersson、j.enhorn的“ee2-jvetrelated:division-freebilateralfilter(与ee2-jvet相关的:免除法的双边滤波器)”jvet-f0096中,详细描述了其细节。

如果qp<18或者如果块是中间类型并且块维度是16×16或更大,则关闭滤波器。应当注意的是,所提出的双边滤波方法仅仅应用于具有至少一个非零系数的亮度块。对于全零系数的色度块和亮度块,始终禁用双边滤波方法。

图6是示出在双边滤波过程中利用的示例样本及其邻近的四个样本的概念图。图6描绘了在左边界(即,左列)处的当前样本的示例,对于该样本仅使用在当前tu内的邻近样本来滤波当前样本。类似的概念应用于在tu边界的顶部的样本。

2017年7月5日提交的编号为62/528,912的美国临时申请和2017年9月11日提交的编号为62/556,614的美国临时申请,描述了免除法的双边滤波(dfbil)方法。对于要进行滤波的一个样本,可以将滤波过程定义为:

其中,ic是当前样本的强度,以及if是在执行dfbil之后当前样本的修改的强度,ii和w(abs(ii-ic))分别是针对第i个邻近样本的强度和加权参数。

wi=disi*rangi

σr=(qp–mindfbilqp+2*indexr–2*(rcandnum/2))*2

σd=dcandidatelist[indexd]

其中,mindfbilqp指示可以应用dfbil的最小qp,例如,可以将最小qp设置为17。可以每四叉树划分以信号发送indexd和indexr。

图7是示出如上文所讨论的在dfbil中使用的示例样本和邻近样本的概念图。

本公开内容认识到,在双边滤波的设计中,非划分双边滤波技术可能会遇到某些问题。例如,这样的技术是直接应用于重建的块的,或者是在重建整个切片之后应用的。如果重建的块是利用模式内编码的,或者对于在随后的帧中的块,则这主要帮助重建的块的空间邻近块。如果这些滤波器可以应用于预测信号(例如,作为解码的一部分而用于重建当前块或者作为编码的一部分而用于确定残差块的预测块),则可以获得额外的编码增益,这是因为这可以有助于减少预测误差。

图9a和图9b是示出示例四叉树二叉树(qtbt)结构134以及相应的编码树单元(ctu)136的概念图。实线表示四叉树分割,以及虚线指示二叉树分割。在二叉树的每个分割(即,非叶)节点中,以信号发送一个标记以指示使用哪种分割类型(即,水平或垂直),其中在这个示例中0指示水平分割,以及1指示垂直分割。对于四叉树分割,由于四叉树节点将块水平地和垂直地分割为具有相等大小的4个子块,因此无需指示分割类型。因此,视频编码器200可以对针对qtbt结构134的区域树层级(即,实线)的语法元素(诸如分割信息)和针对qtbt结构134(即,虚线)的预测树层级的语法元素(诸如分割信息)进行编码,以及视频解码器300可以对其进行解码。视频编码器200可以对针对qtbt结构134的终端叶节点表示的cu的视频数据(诸如预测和变换数据)进行编码,以及视频解码器300可以对其进行解码。

一般而言,图9b的ctu136可以与定义与在第一层级和第二层级处的qtbt结构134的节点相对应的块的大小的参数相关联。这些参数可以包括ctu大小(其代表样本中ctu136的大小)、最小四叉树大小(minqtsize,其代表最小允许的四叉树叶节点大小)、最大二叉树大小(maxbtsize,其代表最大允许的二叉树根节点大小)、最大二叉树深度(maxbtdepth,其代表最大允许的二叉树深度)和最小二叉树大小(minbtsize,其代表最小允许的二叉树叶节点大小)。

与ctu相对应的qtbt结构的根节点可以具有在qtbt结构的第一层级处的四个子节点,其中的每个子节点可以是根据四叉树划分来划分的。即,第一层级的节点是叶节点(没有子节点)或者具有四个子节点。qtbt结构134的示例表示这样的节点,如包括具有用于分支的实线的父节点和子节点。如果第一层级的节点不大于最大允许的二叉树根节点大小(maxbtsize),则可以通过各自的二叉树进一步对这些节点进行划分。可以迭代一个节点的二叉树分割,直到分割产生的节点达到最小允许的二叉树叶节点大小(minbtsize)或最大允许的二叉树深度(maxbtdepth)为止。qtbt结构134的示例将这样的节点表示为具有用于分支的虚线。二进制树叶节点称为编码单元(cu),其用于预测(例如,图像内或图像间预测)和变换,而无需任何进一步的划分。如上文所述,cu还可以称为“视频块”或“块”。

在qtbt划分结构的一个示例中,将ctu大小设置为128x128(亮度样本和两个相应的64x64色度样本),将minqtsize设置为16x16,将maxbtsize设置为64x64,将minbtsize(对于宽度和高度两者)设置为4,以及将maxbtdepth设置为4。首先,对ctu应用四叉树划分以生成四叉树叶节点。四叉树叶节点可以具有从16x16(即,minqtsize)到128x128(即,ctu大小)的大小。如果叶四叉树节点为128x128,则由于大小超过maxbtsize(即,在该示例中为64x64),因此将不会通过二叉树进一步分割。否则,将通过二叉树对叶四叉树节点进一步划分。因此,四叉树叶节点还是针对二叉树的根节点,以及具有为0的二叉树深度。当二叉树深度达到maxbtdepth(在该示例中为4)时,不允许进一步分割。当二叉树节点具有等于minbtsize(在该示例中为4)的宽度时,暗示不允许进一步的水平分割。类似地,具有等于minbtsize的高度的二叉树节点暗示针对二叉树节点而言不允许进一步的垂直分割。如上文所述,将二叉树的叶节点称为cu,以及根据预测和变换对其进行进一步处理而无需进一步划分。

再次参见图1,视频编码器200和视频解码器300可以被配置为以任何组合来执行本公开内容的技术中的任何技术或所有技术。这样的技术包括双边滤波技术。但是,这些技术通常可以不仅应用于双边滤波器和免除法双边滤波器,而且还可以应用于可以应用于预测信号的任何其它滤波器。

视频编码器200和视频解码器300可以将双边滤波器(包括非局部双边滤波器)应用于当前块的预测块。在一个示例中,即使对于双向预测(其中,可以基于针对两个预测方向中的每个预测方向的运动信息,生成两个临时预测块)或多假设,也可以仅应用一次非局部双边滤波器,即,仅应用于最终预测块。或者,视频编码器200和/或视频解码器300可以将双边滤波器应用于临时预测块中的每一者,而不管临时预测块是常规的双向预测块还是利用多假设编码的块(例如,jvet-j0041)。因此,可以应用对双边滤波的多次迭代。或者,对于多假设编码的块(即,可以从多个参考块预测的块),视频编码器200和视频解码器300可以仅应用两次双边滤波器,其中可以首先将预测块分组以生成另一临时块。在一个示例中,可以对哪个预测块进行分组可以取决于在两个参考图像之间的poc距离。视频编码器200和视频解码器300可以利用诸如以下各项的任何类型的预测来生成预测块:帧间预测、帧内预测、块内复制、跨分量线性模型预测(如同lm)、在可缩放的视频编码中的层间预测、在3d视频编码中的视图间预测或者任何组合,诸如两种或多种预测的加权和。

图8是在双边滤波中使用的一个样本及其邻近样本的概念图。当如上文所述将双边滤波器应用于预测块时,可以以信号发送用于双边滤波的参数。也就是说,视频编码器200可以以信号发送(例如,编码和输出)双边滤波参数,以及视频解码器300可以接收、解码和解释双边滤波参数。可以每cu/lcu进一步以信号发送标记,以指示是否启用应用于预测块的滤波。对于应用双边滤波器的每个临时预测块或每个分组的临时预测块,可以以信号发送标记。例如,在2017年7月5日提交的编号为62/528,912的美国临时申请和2017年9月11日提交的编号为62/556,614的美国临时申请中,描述了针对参数(例如,权重)的信号发送方法。或者,并非所有与邻近样本相关的权重都要求以信号发送。相反,对于中心位置,可以在未以信号发送的情况下在运行中导出权重。在图8中描绘了示例。或者,参数可以是未以信号发送的情况下在运行中导出的。或者,是否以信号发送参数(或参数中的部分参数)可以取决于编码的信息,诸如如果其是amvp模式,则可以以信号发送参数;如果是合并模式,则可以从邻近块中继承参数,其中运动信息是从邻近块中获得的。或者,即使对于合并模式,可以进一步以信号发送用于指示是继承参数还是以信号发送参数的一个标记。

视频编码器200和视频解码器300可以被配置为将本公开内容的技术仅应用于某些颜色分量(例如,仅亮度)、仅应用于某些块大小(例如,与给定大小相比要小的块)、和/或仅应用于某些块形状(例如,正方形的或非正方形的块)。对于某些编码的模式(诸如dc/平面帧内预测模式、跳过模式、量化参数),在不以信号发送的情况下,可以不允许所提出的方法。对于没有非零系数、相当数量的非零系数、或者所有变换系数的绝对值小于门限的某些块,在不以信号发送的情况下,可以不允许所提出的方法。

当将双边滤波器或其它类型的滤波器多次应用于预测块时,代替使用平均值,视频编码器200和视频解码器300可以使用多个经滤波的临时预测块的不同线性组合来生成最终的预测块。在一个示例中,对于双向预测,代替使用两个经滤波的临时预测块的平均值来生成最终预测块,视频编码器200和视频解码器300可以使用(m*p0+n*p1)/(m+n),其中pi表示来自参考图像列表i(i为0或1)的经滤波的临时预测块,m和n表示针对经滤波的临时预测块中的每个经滤波的临时预测块的线性权重。

当可以将滤波器(诸如双边滤波器)应用于预测块时,可以应用以下内容。在一个示例中,可以在sps/pps/vps/切片头中的预定义或以信号发送滤波器参数的一个或多个缺省集合。或者,可以进一步按照块级别(诸如具有与小于切片/瓦片/波前相比要小的大小的cu/lcu/区域),以信号发送在滤波器参数的缺省集合与实际滤波器之间的差异。

关于如何在预测块上应用滤波可能存在一些约束。例如,大于或小于门限的块无法应用该滤波器。在另一示例中,具有特定预测类型的块(诸如照明补偿(ic)、仿射或替代时间运动矢量预测(atmvp))无法应用该滤波器。

图10是示出可以执行本公开内容的技术的示例视频编码器200的方块图。提供图10用于解释的目的,以及不应被认为是对本公开内容中广泛例示和描述的技术的限制。出于说明的目的,本公开内容在诸如在开发中的hevc视频编码标准和h.266视频编码标准的视频编码标准的上下文中,描述视频编码器200。但是,本公开内容的技术并不限于这些视频编码标准,以及通常可适用于视频编码和解码。

在图10的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、解码图像缓冲器(dpb)218和熵编码单元220。

视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。dpb218可以充当参考图像存储器,所述参考图像存储器存储参考视频数据,用于由视频编码器200在对随后的视频数据的预测时使用。视频数据存储器230和dpb218可以是由各种存储设备(诸如动态随机存取存储器(dram)(包括同步dram(sdram))、磁阻ram(mram)、电阻性ram(rram)或其它类型的存储设备)中的任何一者形成的。视频数据存储器230和dpb218可以由相同的存储设备或单独的存储设备提供。在各个示例中,视频数据存储器230可以是与视频编码器200的其它组件一起在芯片内的,如图所示,或者相对于那些组件在芯片外的。

在本公开内容中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器(除非如此具体地描述),也不应被解释为限于视频编码器200之外的存储器(除非如此具体地描述)。而是,对视频数据存储器230的引用应当被理解为存储视频数据的参考存储器,其中视频编码器200接收该视频数据用于编码(例如,针对要编码的当前块的视频数据)。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时存储。

示出了图10的各个单元以帮助理解由视频编码器200执行的操作。单元可以实现为固定功能电路、可编程电路或者其组合。固定功能电路指的是提供特定功能、以及在可以执行的操作上预先设置的电路。可编程电路指的是可以被编程以执行各种任务,以及提供在可以执行的操作中的灵活功能的电路。例如,可编程电路可以执行使可编程电路以通过软件或固件的指令定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),以及在一些示例中,一个或多个单元可以是集成电路。

视频编码器200可以包括从可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收以及执行的软件的目标代码,或者在视频编码器200内中的另一存储器(未示出)可以存储这样的指令。

视频数据存储器230被配置为存储接收到的视频数据。视频编码器200可以从视频数据存储器230取回视频数据的图像,以及将视频数据提供给残差生成单元204和模式选择单元202。在视频数据存储器230中的视频数据可以是要进行编码的原始的视频数据。

模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括额外的功能单元,以根据其它预测模式来执行视频预测。举例而言,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等等。

模式选择单元202通常协调多个编码通道,以测试编码参数的组合以及针对这样的组合的作为结果的速率失真值。编码参数可以包括:ctu到cu的划分、针对cu的预测模式、针对cu的残差数据的变换类型、针对cu的残差数据的量化参数等等。模式选择单元202可以最终选择具有比其它测试的组合更好的速率失真值的编码参数的组合。

视频编码器200可以将从视频数据存储器230取回的图像划分为一系列的ctu,以及将一个或多个ctu封装在切片内。模式选择单元210可以根据树结构(诸如上文所描述的hevc的qtbt结构或四叉树结构)来划分图像的ctu。如上文所述,视频编码器200可以根据树结构从划分ctu来形成一个或多个cu。这样的cu通常还可以称为“视频块”或“块”。

通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前的cu、或者在hevc中,pu和tu的重叠的部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别在一个或多个参考图像(例如,存储在dpb218中的一个或多个先前编码的图像)中的一个或多个紧密匹配的参考块。特别是,运动估计单元222可以例如根据绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)等等,来计算表示潜在参考块与当前块有多么相似的值。运动估计单元222通常可以使用在当前块与所考虑的参考块之间的逐个样本差异来执行这些计算。运动估计单元222可以识别具有从这些计算产生的最小值的参考块,指示与当前块最紧密匹配的参考块。

运动估计单元222可以形成一个或多个运动矢量(mv),所述mv定义在参考图像中的参考块相对于在当前图像中的当前块的位置。然后,运动估计单元222可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后,运动补偿单元224可以使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来取回参考块的数据。再举一个示例,如果运动矢量具有分数的采样精度,则运动补偿单元224可以根据一个或多个内插滤波器对针对预测块的值进行内插。此外,对于双向帧间预测,运动补偿单元224可以例如通过逐个样本平均或加权平均,来取回针对由各自的运动矢量标识的两个参考块的数据,以及对所取回的数据进行组合。

再举一个示例,对于帧内预测或帧内预测编码,帧内预测单元226可以从与当前块邻近的样本生成预测块。例如,对于定向模式,帧内预测单元226通常可以在数学上对邻近样本的值进行组合,以及跨越当前块在定义的方向上填充这些计算的值以产生预测块。再举一个示例,对于dc模式,帧内预测单元226可以计算对于当前块的邻近样本的平均值,以及生成预测块以包括针对预测块的每个样本的该作为结果的平均值。

模式选择单元202将预测块提供给滤波器单元216。根据本公开内容的技术,滤波器单元216将双边滤波器应用于预测块以生成经滤波的预测块。如上文所述,滤波器单元216可以根据邻近像素的值,来确定要应用于对于要进行滤波的预测块的当前像素的邻近像素(即,样本)的加权值。对于具有与当前像素的值相似的亮度或色度值的像素,权重可以更高。同样地,与和当前像素距离较远的像素相比,针对更靠近当前像素的像素的权重可以更高。

滤波器单元216将经滤波的预测单元提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未编码版本,以及从模式选择单元202接收预测块。残差生成单元204计算在当前块与预测块之间的逐个样本差异。作为结果的逐个样本差异定义了针对当前块的残差块。在一些示例中,残差生成单元204还可以确定在残差块中的样本值之间的差异,以使用残差差分脉冲编码调制(rdpcm)来生成残差块。在一些示例中,残差生成单元204可以是使用执行二进制减法的一个或多个减法器电路来形成的。

在模式选择单元202将cu划分为pu的示例中,每个pu可以与亮度预测单元和相应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的pu。如上文所指示的,cu的大小可以指的是cu的亮度编码块的大小,以及pu的大小可以指的是pu的亮度预测单元的大小。假设特定cu的大小为2nx2n,则视频编码器200可以支持2nx2n或nxn的pu大小用于帧内预测,以及2nx2n、2nxn、nx2n、nxn或类似的对称pu大小用于帧间预测。视频编码器20和视频解码器30还可以支持针对用于帧间预测的2nxnu、2nxnd、nlx2n和nrx2n的pu大小的非对称划分。

在模式选择单元不将cu进一步划分成pu的示例中,每个cu可以与亮度编码块和相应的色度编码块相关联。如上文所述,cu的大小可以指的是cu的亮度编码块的大小。视频编码器200和视频解码器120可以支持2nx2n、2nxn或nx2n的cu大小。

对于其它视频编码技术(诸如块内复制模式编码、仿射模式编码和线性模型(lm)模式编码,仅举几个示例),模式选择单元202经由与编码技术相关联的各自的单元,生成针对正在编码的当前块的预测块。在一些示例中(诸如调色板模式编码),模式选择单元202可以不生成预测块,而是生成语法元素,所述语法元素指示以其基于所选择的调色板来重建块的方式。在这样的模式下,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。

如上文所述,残差生成单元204接收针对当前块和相应的预测块的视频数据。然后,残差生成单元204生成针对当前块的残差块。为了生成残差块,残差生成单元204计算在预测块与当前块之间的逐个样本差异。因此,

变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(dct)、方向变换、卡洛南-洛伊变换(klt)或者概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如主变换和次要变换(诸如旋转变换)。在一些示例中,变换处理单元206不向残差块应用变换。

量化单元208可以对在变换系数块中的变换系数进行量化,以产生量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值,来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值,来调整应用于与当前块相关联的系数块的量化的程度。量化可能导致信息的丢失,因此量化后的变换系数可能具体比由变换处理单元206生成的原始的变换系数的精度要低的精度。

逆量化单元210和逆变换处理单元212可以将逆量化和逆变换分别应用于量化的变换系数块,以从变换系数块来重建残差块。重建单元214可以基于重建的残差块和由模式选择单元202生成的预测块,来产生与当前块相对应的重建的块(尽管可能具有一定程度的失真)。例如,重建单元214可以将重建的残差块的样本添加到由模式选择单元202和滤波器单元216生成的经滤波的预测块中的相应的样本,以产生重建的块。可以执行另外的滤波,诸如环路去块滤波器以解决块效应伪影,虽然在图10中未示出该滤波器。

视频编码器200将重建的(以及潜在地滤波的)块存储在dpb218中。运动估计单元222和运动补偿单元224可以从dpb218取回从重建的块形成的参考图像,以对随后编码的图像的块进行帧间预测。另外,帧内预测单元226可以使用在当前图像的dpb218中的重建的块,对在当前图像中的其它块进行帧内预测。

通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。再举一个示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或者用于帧内预测的模式内信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成熵编码的数据。例如,熵编码单元220可以执行上下文自适应可变长度编码(cavlc)操作、cabac操作、变量至变量(v2v)长度编码操作、基于语法的上下文自适应二进制算术编码(sbac)操作、概率间隔划分熵(pipe)编码操作、指数戈洛姆编码操作、或者对数据的另一类型的熵编码操作。在一些示例中,熵编码单元220可以在不对语法元素进行熵编码的旁通模式下操作。

视频编码器200可以输出比特流,该比特流包括用于重建切片或图像的块所需要的经熵编码的语法元素。特别是,熵编码单元220可以输出比特流。

相对于块描述了上文所描述的操作。这样的描述应当被理解为用于亮度编码块和/或色度编码块的操作。如上文所述,在一些示例中,亮度编码块和色度编码块是cu的亮度和色度分量。在一些示例中,亮度编码块和色度编码块是pu的亮度和色度分量。

在一些示例中,相对于亮度编码块执行的操作不需要针对色度编码块来重复。举一个示例,不需要重复用于识别针对亮度编码块的运动矢量(mv)和参考图像的操作,来识别针对色度块的mv和参考图像。而是,可以缩放针对亮度编码块的mv以确定针对色度块的mv,以及参考图像可以是相同的。再举一个示例,对于亮度编码块和色度编码块,帧内预测过程可以是相同的。

用此方式,视频编码器200表示用于对视频数据进行编码(即,编码)的设备的示例,其包括被配置为存储视频数据的存储器;以及包括电路并且被配置为进行以下操作的一个或多个处理器:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中为了应用双边滤波器,处理器被配置为确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素;以及使用经滤波的预测块,对当前块进行编码。

图11是示出可以执行本公开内容的技术的示例视频解码器300的方块图。提供图11用于解释的目的,以及不是对本公开内容中广泛例示和描述的技术的限制。出于说明的目的,本公开内容描述了根据jem和hevc的技术的视频解码器300。但是,本公开内容的技术可以由被配置为其它视频编码标准的视频编码设备来执行。

在图11的示例中,视频解码器300包括编码图像缓冲器(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312和解码图像缓冲器(dpb)314。预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括用于根据其它预测模式来执行预测的额外的单元。举例而言,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元318的一部分)、仿射单元、线性模型(lm)单元等等。在其它示例中,视频解码器300可以包括更多、更少或者不同的功能组件。

cpb存储器320可以存储要由视频解码器300的组件解码的视频数据,诸如编码的视频比特流。例如,可以从计算机可读介质110(图1)中获得存储在cpb存储器320中的视频数据。cpb存储器320可以包括存储来自编码的视频比特流的编码的视频数据(例如,语法元素)的cpb。此外,cpb存储器320可以存储除了编码的图像的语法元素之外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。dpb314通常存储解码的图像,其中视频解码器300在解码编码的视频比特流的随后的数据或图像时,可以输出和/或使用该解码图像作为参考视频数据。cpb存储器320和dpb314可以是由诸如动态随机存取存储器(dram)(包括同步dram(sdram)、磁阻式ram(mram)、阻抗式ram(rram)或其它类型的存储设备)的各种存储设备中的任何一者来形成的。cpb存储器320和dpb314可以是由相同的存储设备或单独的存储设备来提供的。在各个示例中,cpb存储器320可以与视频解码器300的其它组件一起在芯片内的,或者相对于那些组件在芯片外的。

另外地或替代地,在一些示例中,视频解码器300可以从存储器120(图1)中取回编码的视频数据。也就是说,存储器120可以如上文参照cpb存储器320所讨论的来存储数据。类似地,当视频解码器300的功能中的一些功能或全部功能是以由视频解码器300的处理电路执行的软件来实现时,存储器120可以存储要由视频解码器300执行的指令。

示出了图11中的各个单元以帮助理解由视频解码器300执行的操作。单元可以实现为固定功能电路、可编程电路或者其组合。类似于图10,固定功能电路指的是提供特定功能并且在可以执行的操作上预先设置的电路。可编程电路指的是可以被编程以执行各种任务并且在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以通过软件或固件的指令定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,单元中的一个或多个单元可以是有区别的电路块(固定功能或可编程),以及在一些示例中,一个或多个单元可以是集成电路。

视频解码器300可以包括alu、efu、数字电路、模拟电路和/或从可编程电路形成的可编程核。在通过在可编程电路上执行的软件来执行视频解码器300的操作的示例中,芯片内的或芯片外的存储器可以存储视频解码器300接收以及执行的软件的指令(例如,目标代码)。

熵解码单元302可以从cpb接收编码的视频数据,以及对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码的视频数据。

通常,视频解码器300以逐块为基础来重建图像。视频解码器300可以单独地对每个块执行重建操作(其中,当前正在重建(即,解码)的块可以称为“当前块”)。

熵解码单元302可以对定义量化的变换系数块的量化的变换系数的语法元素、以及诸如量化参数(qp)和/或变换模式指示的变换信息进行熵解码。逆量化单元306可以使用与量化的变换系数块相关联的qp来确定量化的度,以及同样地,确定用于逆量化单元306应用的逆量化的度。例如,逆量化单元306可以执行按位左移运算以对量化的变换系数进行逆量化。逆量化单元306可以由此形成包括变换系数的变换系数块。

在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以向系数块应用逆dct、逆整数变换、逆卡洛南-洛伊变换(klt)、逆旋转变换、逆方向变换或者另一逆变换。

此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素,来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示在dpb314中的从其取回参考块的参考图像、以及标识在参考图像中的参考块相对于在当前图像中的当前块的位置的运动矢量。运动补偿单元316通常可以以与相对于运动补偿单元224(图10)所描述的方式基本上相似的方式,来执行帧间预测过程。

再举一个示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据通过预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以以与相对于帧内预测单元226(图10)所描述的方式基本上相似的方式来执行帧内预测过程。帧内预测单元318可以从dpb314取回对于当前块的邻近样本的数据。

预测处理单元304将预测块提供给滤波器单元312以生成经滤波的预测块。根据本公开内容的技术,滤波器单元312将双边滤波器应用于预测块以生成经滤波的预测块。如上文所讨论的,滤波器单元312可以确定加权值,以将邻近像素(即,样本)应用于要根据邻近像素的值进行滤波的预测块的当前像素。对于与当前像素的值相似的亮度或色度值的像素,权重可以更高。同样地,与和当前像素距离较远的像素相比,针对更靠近当前像素的像素的权重可以更高。

滤波器单元312将经滤波的预测块提供给重建单元310。重建单元310可以使用经滤波的预测块和残差块来重建当前块。例如,重建单元310可以将残差块的样本添加到经滤波的预测块的相应的样本以重建当前的块。虽然在图11中未示出,但是视频解码器300可以进一步包括环路滤波器,用于对重建的块进行滤波,例如去除块效应伪影。环路滤波器可以对重建单元310的输出进行滤波,以及将作为结果的经滤波的块存储到dpb314。

视频解码器300可以将重建的块存储在dpb314中。如上文所讨论的,dpb314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图像的样本以及用于随后的运动补偿的先前解码的图像。此外,视频解码器300可以从dpb输出解码的图像,用于随后在诸如图1的显示设备118的显示设备上呈现。

用此方式,视频解码器300表示用于对视频数据进行编码(即,解码)的设备的示例,其包括被配置为存储视频数据的存储器;以及包括电路并且被配置为进行以下操作的一个或多个处理器:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中为了应用双边滤波器,处理器被配置为确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素;以及使用经滤波的预测块,对当前块进行编码。

图12是根据本公开内容的技术示出用于对当前块进行编码的示例方法的流程图。当前块可以包括当前的cu。虽然相对于视频编码器200(图1和图10)进行了描述,但是应当理解的是,其它设备可以被配置为执行与图12的方法相类似的方法。

在该示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成针对当前块的预测块。视频编码器200的滤波器单元216可以根据本公开内容的技术中的任何技术或全部技术,向预测块应用双边滤波(352),如上文所讨论的。

然后,视频编码器200可以计算针对当前块的残差块(354)。为了计算残差块,视频编码器200可以计算在原始的未编码的块与针对当前块的预测块之间的差异。然后,视频编码器200可以变换和量化残差块的系数(356)。接着,视频编码器200可以扫描残差块的量化的变换系数(358)。在扫描期间或者在扫描之后,视频编码器200可以对系数进行熵编码(360)。例如,视频编码器200可以使用cavlc或cabac对系数进行编码。然后,视频编码器200可以输出块的熵编码的数据(362)。

用此方式,图12的方法表示对视频数据进行编码(即,编码)的方法的示例,该方法包括:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中,应用双边滤波器包括:确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素;以及使用经滤波的预测块,对当前块进行编码。

图13是根据本公开内容的技术示出用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前的cu。虽然相对于视频解码器300(图1和图11)进行了描述,但是应当理解的是,其它设备可以被配置为执行与图13的方法相类似的方法。

视频解码器300可以接收针对当前块的熵编码的数据,诸如熵编码的预测信息和针对与当前块相对应的残差块的系数的熵编码的数据(370)。视频解码器300可以对经熵编码的数据进行熵解码,以确定针对当前块的预测信息,以及再现残差块的系数(372)。视频解码器300可以例如使用通过针对当前块的预测信息指示的帧内或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。然后,视频解码器300的滤波器单元312可以根据本公开内容的技术中的任何技术或全部技术向预测块应用双边滤波(376),如上文所讨论的。然后,视频解码器300可以反向扫描再现的系数(378),以创建量化的变换系数的块。然后,视频解码器300可以对系数进行逆量化和逆变换,以产生残差块(380)。视频解码器300可以通过对预测块和残差块进行组合来最终对当前块进行解码(382)。

用此方式,图13的方法表示对视频数据进行编码(即,解码)的方法的示例,该方法包括:生成针对视频数据的当前块的预测块;向预测块应用双边滤波器以生成针对当前块的经滤波的预测块,其中应用双边滤波器包括:确定加权值,以将邻近像素应用于要根据邻近像素的值进行滤波的预测块的当前像素;以及使用经滤波的预测块,对当前块进行编码。

要认识到的是,取决于示例,本文所描述的技术中的任何技术的某些动作或事件可以以不同的顺序执行、可以进行添加、合并或者完全省略(例如,并非所有描述的动作或事件都是实践该技术所必需的)。此外,在某些示例中,可以例如通过多线程处理、中断处理或多个处理器并发地而不是顺序地执行动作或事件。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或者其任意组合来实现。如果以软件来实现,则可以将功能存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码进行传输,以及由基于硬件的处理单元来执行。计算机可读介质可以包括计算机可读存储介质,计算机可读存储介质对应于诸如数据存储介质或通信介质的有形介质,其中通信介质包括促进例如根据通信协议,将计算机程序从一个地方传送到另一个地方的任何介质。用此方式,计算机可读介质通常可以对应于:(1)非暂时性的有形计算机可读存储介质;或者(2)诸如信号或载波波形的通信介质。数据存储介质可以是一个或多个计算机或者一个或多个处理器能够进行存取以取回用于实现本公开内容中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

举例而言,但非做出限制,这样的计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或者其它光盘存储器、磁盘存储器或其它磁存储设备、闪存或者能够用于存储具有指令或数据结构的形式的期望的程序代码并且能够由计算机进行存取的任何其它介质。此外,可以将任何连接适当地称作计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字用户线路(dsl)或者诸如红外线、无线电和微波的无线技术,从网站、服务器或其它远程源发送的,那么所述同轴电缆、光纤光缆、双绞线、dsl或者诸如红外线、无线电和微波的无线技术包括在所述介质的定义中。但是,应当理解的是,计算机可读存储介质和数据存储介质并不包括连接、载波波形、信号或者其它暂时的介质,而是针对于非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字通用光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的保护范围之内。

指令可以由诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)的一个或多个处理器或者其它等同的整合的或分立的逻辑电路来执行。因此,如本文所使用的,术语“处理器”可以指的是前述的结构或者适合于实现本文所描述的技术的任何其它结构中的任何一者。此外,在一些方面,本文所描述的功能可以是在被配置用于编码和解码的专用硬件和/或软件模块内提供的,或者并入到组合的编解码器中。此外,技术可以是在一个或多个电路或逻辑元件中完全地实现的。

本公开内容的技术可以以多种多样的设备或装置来实现,包括无线手持装置、集成电路(ic)或者ic的集合(例如,芯片集)。本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定要求由不同的硬件单元来实现。而是,如上文所述,各个单元可以组合在编解码器硬件单元中,或者是通过协作的硬件单元集合(包括如上文所述的一个或多个处理器)结合适当的软件和/或固件来提供的。

已经描述了各个示例。这些示例和其它示例在所附权利要求的保护范围之内。

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