用于视频编码和解码的装置、方法、以及计算机程序与流程

文档序号:13702906阅读:677来源:国知局

本发明涉及用于视频编码和解码的装置、方法、以及计算机程序。



背景技术:

在视频编码中,b(双向预测)帧是从多个帧(通常是b帧之前的至少一个帧和b帧之后的至少一个帧)被预测的。预测可以基于它们从其被预测的帧的简单平均值。然而,也可以使用加权双向预测来计算b帧,该加权双向预测诸如基于时间的加权平均或基于诸如亮度的参数的加权平均。加权双向预测更强调帧中的一个帧或帧的某些特性。

加权双向预测需要执行两个运动补偿预测,随后进行伸缩并且将两个预测信号加在一起的操作,因此通常提供良好的编码效率。例如在h.265/hevc中使用的运动补偿双向预测通过平均两个运动补偿操作的结果来构建样本预测块。在加权预测的情况下,可以针对两个预测以不同的权重来执行操作,并且可以将另外的偏移添加到结果。

然而,这些操作都没有考虑预测块的特殊特性,诸如这样的偶尔的情况,其中单向预测块中的任意一个将提供比(加权的)平均双向预测块更好的样本估计。因此,已知的加权双向预测方法在许多情况下不提供最优性能。

因此,需要一种用于改进运动补偿预测的准确性的方法。



技术实现要素:

现在为了至少减轻上述问题,本文引入了用于运动补偿预测的改进方法。

第一方面包括一种用于运动补偿预测的方法,该方法包括:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

基于l0和l1预测之间的差异来标识一个或多个样本子集;以及

确定被至少应用在一个或多个样本子集上用以补偿差异的运动补偿过程。

根据一个实施例,运动补偿过程包括以下一项或多项:

-指示将被应用的预测类型的样本级别决策;

-对调制信号进行编码,用于指示l0和l1的权重;

-在预测块级别上发信号通知用以指示针对在l0和l1中所标识的不同类别偏离的预期操作。

根据一个实施例,样本子集包括其中第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1彼此相差超过预定值的样本。

根据一个实施例,样本子集包括在预测块内具有l0与l1之间的最大差异的预定数量的样本。

根据一个实施例,标识和确定还包括:

计算l0和l1之间的差异;以及

基于l0和l1之间的差异为预测单元创建运动补偿预测。

根据一个实施例,该方法还包括:

计算l0和l1之间的差异;

基于l0和l1之间的差异来确定重建预测误差信号;

确定运动补偿预测;以及

将重建预测误差信号添加到运动补偿预测。

根据一个实施例,该方法还包括:

基于最偏离的l0和l1样本的位置将用于确定预测误差信号的信息限制到编码单元的特定区域。

根据一个实施例,该方法还包括:

针对包括整个预测单元、变换单元或编码单元的变换区域来对预测误差信号进行编码;以及

仅将预测误差信号应用于变换区域内的样本子集。

根据一个实施例,该方法还包括:

针对预测单元内的所有样本或样本的子集应用运动补偿过程。

根据第二实施例的装置包括:

至少一个处理器和至少一个存储器,至少一个存储器上存储有代码,该代码在由至少一个处理器执行时使得装置至少执行:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

基于l0和l1预测之间的差异来标识一个或多个样本子集;以及

确定将至少被应用在一个或多个样本子集上用以补偿差异的运动补偿处理。

根据第三实施例,提供了一种计算机可读存储介质,其上存储有供代码使用的代码,代码在由处理器执行时使装置执行:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

基于l0和l1预测之间的差异来标识一个或多个样本子集;以及

确定将至少被应用在一个或多个样本子集上用以补偿差异的运动补偿过程。

根据第四实施例,提供了一种包括视频编码器的装置,该视频编码器被配置用于执行运动补偿预测,该视频解码器包括:

用于创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1的部件;

用于基于l0和l1预测之间的差异来标识一个或多个样本子集的部件;以及

用于确定将至少被应用在一个或多个样本子集上以补偿差异的运动补偿过程的部件。

根据第五实施例,提供了一种视频编码器,被配置用于执行运动补偿预测,其中该视频编码器还被配置用于:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

基于l0和l1预测之间的差异来标识一个或多个样本子集;以及

确定将至少被应用在一个或多个样本子集上用以补偿差异的运动补偿过程。

根据第六实施例的方法包括一种用于运动补偿预测的方法,方法包括:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

获得关于一个或多个样本子集的指示,该一个或多个样本子集基于l0和l1预测之间的差异而被定义;以及

至少对一个或多个样本子集应用用以补偿差异的运动补偿过程。

根据一个实施例,该方法还包括:

将一个或多个样本子集标识为其中第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1彼此相差超过预定值的样本;以及

确定将至少被应用在一个或多个样本子集上用以补偿差异的运动补偿过程。

根据一个实施例,该方法还包括:

将一个或多个样本子集标识为在预测块内具有l0和l1之间的最大差异的预定数量的样本;以及

确定将至少被应用在一个或多个样本子集上用以补偿差异的运动补偿过程。

根据一个实施例,确定运动补偿过程包括以下一项或多项:

-获得关于将应用的预测类型的样本级别决策;

-从调制信号中获得l0和l1的权重;

-从预测块级别信令中获得在l0和l1中标识的不同类别偏离的预期操作。

根据一个实施例,标识和确定还包括:

计算l0和l1之间的差异;以及

基于l0和l1之间的差异针对预测单元创建运动补偿预测。

根据一个实施例,该方法包括

计算l0和l1之间的差异;

基于l0和l1之间的差异来确定重建预测误差信号;

确定运动补偿预测;以及

将重建预测误差信号添加到运动补偿预测。

根据一个实施例,该方法还包括:

基于最偏离的l0和l1样本的位置将用于确定预测误差信号的信息限制到编码单元的特定区域。

根据一个实施例,该方法还包括:

针对包括整个预测单元、变换单元、或编码单元的变换区域来对预测误差信号进行编码;以及

仅将预测误差信号应用于变换的区域内的样本子集。

根据一个实施例,该方法还包括:

针对预测单元内的所有样本或样本子集应用运动补偿过程。

根据第七实施例的装置包括:

至少一个处理器和至少一个存储器,至少一个存储器上存储有代码,代码在由至少一个处理器执行时使得装置至少执行

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

获得关于一个或多个样本子集的指示,该一个或多个样本子集基于l0和l1预测之间的差异而被定义;以及

至少针对一个或多个样本子集应用用以补偿差异的运动补偿过程。

根据第八实施例,提供了一种计算机可读存储介质,其上存储有供代码使用的代码,代码在由处理器执行时使装置执行:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

获得关于一个或多个样本子集的指示,该一个或多个样本子集基于l0和l1预测之间的差异而被定义;以及

至少对一个或多个样本子集应用用以补偿差异的运动补偿过程。

根据第九实施例的装置包括:

视频解码器,被配置用于运动补偿预测,其中视频解码器包括:

用于创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1的部件;

用于获得关于一个或多个样本子集的指示的部件,该一个或多个样本子集基于l0和l1预测之间的差异而被定义;以及

用于至少对一个或多个样本子集应用用以补偿差异的运动补偿过程的部件。

根据第十实施例,提供了一种视频解码器,被配置用于运动补偿预测,其中该视频解码器进一步被配置用于:

创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1;

获得关于一个或多个样本子集的指示,该一个或多个样本子集基于l0和l1预测之间的差异而被定义;以及

至少对一个或多个样本子集应用用以补偿差异的运动补偿过程。

附图说明

为了更好地理解本发明,现在将通过示例方式参考附图,在附图中:

图1示意性地示出了采用本发明的实施例的电子设备;

图2示意性地示出了适于采用本发明的实施例的用户设备;

图3还示意性地示出了使用无线和有线网络连接而被连接的采用本发明的实施例的电子设备;

图4示意性地示出了适于实施本发明的实施例的编码器;

图5示出了根据本发明实施例的运动补偿预测的流程图;

图6展示根据本发明的实施例的经运动补偿的单向预测和双向预测的示例;

图7示出了适于实现本发明实施例的解码器的示意图;

图8示出了根据本发明实施例的解码过程中的运动补偿预测的流程图;以及

图9示出了其中可以实现各种实施例的示例多媒体通信系统的示意图。

具体实施方式

下面进一步详细描述用于运动补偿预测的合适的装置和可能的机制。就此而言,首先参考图1和图2,其中图1示出根据示例实施例的视频编码系统的框图,作为示例性装置或电子设备50的示意框图,其可以包含根据本发明的实施例的编解码器。图2示出了根据示例实施例的装置的布局。下面将解释图1和2的元件。

电子设备50可以例如是无线通信系统的移动终端或用户设备。然而,将理解,本发明的实施例可以在可能需要编码和解码或者编码或解码视频图像的任意电子设备或装置内实现。

装置50可以包括用于集成和保护该设备的壳体30。装置50还可以包括液晶显示器形式的显示器32。在本发明的其它实施例中,显示器可以是适于显示图像或视频的任意合适的显示器技术。装置50还可以包括小键盘34。在本发明的其它实施例中,可以采用任意合适的数据或用户接口机制。例如,用户接口可以被实现为作为触敏显示器的一部分的虚拟键盘或数据输入系统。

该装置可以包括麦克风36或者可以是数字或模拟信号输入的任意合适的音频输入。装置50还可以包括音频输出设备,其在本发明的实施例中可以是以下任一项:耳机38、扬声器、或者模拟音频或数字音频输出连接。装置50还可以包括电池40(或者在本发明的其他实施例中,该设备可以由诸如太阳能电池、燃料电池或发条发电机的任意合适的移动能量设备供电)。该装置可以还包括能够记录或捕获图像和/或视频的摄像机42。装置50还可以包括用于到其他设备的短程视线通信的红外端口。在其他实施例中,装置50还可以包括任意合适的短程通信解决方案,诸如例如蓝牙无线连接或usb/火线有线连接。

装置50可以包括用于控制装置50的控制器56或处理器。控制器56可以连接到存储器58,存储器58在本发明的实施例中可以以图像和音频数据的形式存储数据和/或可以还存储用于在控制器56上实现的指令。控制器56可以进一步连接到编解码器电路54,编解码器电路54适于执行音频和/或视频数据的编码和解码或辅助由控制器执行的编码和解码。

装置50可以还包括读卡器48和智能卡46,例如uicc和uicc读取器,用于提供用户信息并且适于提供用于在网络处对用户的认证和授权的认证信息。

装置50可以包括无线电接口电路52,无线电接口电路52连接到控制器并且适于生成无线通信信号,无线通信信号例如用于与蜂窝通信网络、无线通信系统、或无线局域网的通信。装置50还可以包括连接到无线电接口电路52的天线44,用于向其他装置传输在无线电接口电路52处生成的射频信号并且用于从其他装置接收射频信号。

装置50可以包括摄像机,该摄像机能够记录或检测单独的帧,单独的帧然后将被传送到编解码器54或控制器以进行处理。该装置可以在传输和/或存储之前从另一设备接收视频图像数据以进行处理。装置50还可以无线地或通过有线连接来接收用于编码/解码的图像。

关于图3,示出了其中可以利用本发明的实施例的系统的示例。系统10包括可以通过一个或多个网络进行通信的多个通信设备。系统10可以包括有线或无线网络的任意组合,无线网络包括但不限于无线蜂窝电话网络(诸如gsm、umts、cdma网络等)、诸如由ieee802.x标准中的任意一个定义的无线局域网(wlan)、蓝牙个域网、以太网局域网、令牌环局域网、广域网、以及因特网。

系统10可以包括有线和无线通信设备和/或适于实现本发明的实施例的装置50。

例如,图3中所示的系统示出了移动电话网络11和因特网28的表示。到因特网28的连接可以包括但不限于长距离无线连接、短距离无线连接、以及包括但不限于电话线、电缆线、电力线和类似的通信路径的各种有线连接。

系统10中示出的示例通信设备可以包括但不限于电子设备或装置50、个人数字助理(pda)和移动电话14的组合、pda16、集成消息传送设备(imd)18、台式计算机20、笔记本计算机22。当由正在移动的个体携带时,装置50可以是固定的或移动的。装置50还可以位于运输模式中,包括但不限于汽车、卡车、出租车、公共汽车、火车、船、飞机、自行车、摩托车或任意类似的合适的运输模式。

这些实施例也可以在机顶盒中实现;即在可能/可能不具有显示器或无线能力的数字电视接收器、在具有硬件或软件或编码器/解码器实施方式的组合的平板计算机或(膝上型)个人计算机(pc)中、在各种操作系统中、并且在芯片组、处理器、dsp和/或提供基于硬件/软件的编码的嵌入式系统中。

一些或其他装置可以发送和接收呼叫和消息,并且通过到基站24的无线连接25与服务提供商通信。基站24可以连接到网络服务器26,网络服务器26允许移动电话网络11和因特网28之间的通信。该系统可以包括附加的通信设备和各种类型的通信设备。

通信设备可以使用各种传输技术进行通信,包括但不限于码分多址(cdma)、全球移动通信系统(gsm)、通用移动电信系统(umts)、时分多址(tdma)、频分多址(fdma)、传输控制协议-因特网协议(tcp-ip)、短消息服务(sms)、多媒体消息服务(mms)、电子邮件、即时消息服务(ims)、蓝牙、ieee802.11、以及任意类似的无线通信技术。涉及实现本发明的各种实施例的通信设备可以使用各种媒体进行通信,包括但不限于无线电、红外线、激光、电缆连接、以及任意合适的连接。

在电信和数据网络中,信道可以指物理信道或逻辑信道。物理信道可以指物理传输介质(诸如线缆),而逻辑信道可以指能够传送几个逻辑信道的在复用介质上的逻辑连接。信道可以用于将信息信号(例如位流)从一个或多个发送器(或发射机)传送到一个或多个接收器。

实时传输协议(rtp)广泛用于诸如音频和视频的在一定时间内发生的媒体的实时传输。rtp可以在用户数据报协议(udp)的顶部操作,而udp进而可以在因特网协议(ip)的顶部操作。rtp在可从www.ietf.org/rfc/rfc3550.txt获得的因特网工程任务组(ietf)请求注解(rfc)3550中规定。在rtp传输中,媒体数据被封装成rtp包。通常,每个媒体类型或媒体编码格式具有专用的rtp有效载荷格式。

rtp会话是利用rtp进行通信的一组参与者之间的关联。它是一个可以潜在地携带多个rtp流的组通信通道。rtp流是rtp分组的流,该rtp分组包括媒体数据。rtp流由属于特定rtp会话的ssrc标识。ssrc是指同步源或同步源标识符,该同步源标识符是rtp分组首部中的32位ssrc字段。同步源的特征在于来自同步源的所有分组形成相同定时和序列号空间的一部分,因此接收器可以通过同步源对分组进行分组以供播放。同步源的示例包括从诸如麦克风或摄像机的信号源导出的分组流的发送器,或rtp混合器。每个rtp流由rtp会话中唯一的ssrc标识。rtp流可以被视为逻辑信道。

在iso/iec13818-1或等同地在itu-t建议h.222.0中规定的mpeg-2传输流(ts)是用于在复用的流中携带音频、视频和其它媒体以及节目元数据或者其他元数据的格式。分组标识符(pid)用于标识ts内的基本流(也称分组化基本流)。因此,可以认为mpeg-2ts内的逻辑信道对应于特定的pid值。

可用的媒体文件格式标准包括iso基本媒体文件格式(iso/iec14496-12,其可以被缩写为isobmff)、mpeg-4文件格式(iso/iec14496-14,也被称为mp4格式)、nal单元结构化视频的文件格式(iso/iec14496-15)、以及3gpp文件格式(3gppts26.244,也被称为3gp格式)。iso文件格式是所有上述文件格式(排除iso文件格式本身)的派生的基础。这些文件格式(包括iso文件格式本身)通常被称为文件格式的iso族。

视频编解码器由编码器和解码器组成,编码器将输入视频转换成适于存储/传输的压缩表示,解码器可将压缩的视频表示解压缩回可视形式。视频编码器和/或视频解码器也可以彼此分离,即不需要形成编解码器。通常,编码器丢弃原始视频序列中的一些信息,以便以更紧凑的形式(即,以较低的位率)表示视频。视频编码器可以被用于对随后定义的图像序列进行编码,并且视频解码器可以被用于对编码的图像序列进行解码。视频编码器或视频编码器的帧内(intra)编码部分或图像编码器可用于对图像进行编码,并且视频解码器或视频解码器的帧间(inter)解码部分或图像解码器可用于对经编码图像进行解码。

典型的混合视频编码器(例如itu-th.263和h.264的许多编码器实现)以两个阶段对视频信息进行编码。首先,例如通过运动补偿部件(寻找并且指示与正在被编码块紧密对应的先前被编码视频帧之一中的区域)或者通过空间部件(使用要以指定的方式被编码块周围的像素值)来预测某个图片区域(或“块”)中的像素值。其次,预测误差(即预测像素块和原始像素块之间的差异)被编码。这通常通过使用特定变换(例如离散余弦变换(dct)或其变体)对像素值的差异进行变换、对系数进行量化、以及对量化系数进行熵编码来完成。通过改变量化过程的保真度,编码器可以控制像素表示的准确度(图片质量)与所得到的编码视频表示的大小(文件大小或传输位率)之间的平衡。

也可以被称为时间预测、运动补偿、或运动补偿预测的帧间预测减少了时间冗余。在帧间预测中,预测的来源是先前被解码的图片。帧内预测利用了相同图片内的相邻像素可能相关的事实。帧内预测可以在空间或变换域中执行,即,可以预测样本值或变换系数。帧内预测通常在帧内编码中被利用,其中不应用帧间预测。

编码过程的一个结果是编码参数的集合,例如运动矢量和量化变换系数。如果从空间或时间上相邻的参数首先预测许多参数,则该许多参数可以被更高效地熵编码。例如,可以从空间上相邻的运动矢量预测运动矢量,并且可以仅对与运动矢量预测器有关的差异进行编码。编码参数的预测和帧内预测可以统称为图片内预测。

图4示出了适于采用本发明的实施例的视频编码器的框图。图4呈现了用于两层的编码器,但是应当理解,所呈现的编码器可以被类似地简化为仅对一个层进行编码或被扩展为对两个以上的层进行编码。图4示出了包括用于基本层的第一编码器部分500和用于增强层的第二编码器部分502的视频编码器的实施例。第一编码器部分500和第二编码器部分502中的每一个可以包括用于对进入图片进行编码的类似部件。编码器部分500、502可以包括:像素预测器302、402,预测误差编码器303、403,以及预测误差解码器304、404。图4还示出像素预测器302、402的实施例,其包括:帧间预测器306、406,帧内预测器308、408,模式选择器310、410,滤波器316、416、以及参考帧存储器318、418。第一编码器部分500的像素预测器302接收300视频流的基本层图像,其要在帧间预测器306(其确定图像与运动补偿参考帧318之间的差异)和帧内预测器308(其仅基于当前帧或图片的已经处理的部分来确定图像块的预测)两者处被编码。帧间预测器和帧内预测器两者的输出被传递到模式选择器310。帧内预测器308可具有多于一个帧内预测模式。因此,每个模式可以执行帧内预测并且将预测的信号提供给模式选择器310。模式选择器310还接收基本层图像300的副本。相应地,第二编码器部分502的像素预测器402接收400视频流的增强层图像,其要在帧间预测器406(其确定图像与运动补偿参考帧418之间的差异)和帧内预测器408(其仅基于当前帧或图片的已处理部分来确定图像块的预测)两者处被编码。帧间预测器和帧内预测器两者的输出被传递到模式选择器410。帧内预测器408可以具有多于一个帧内预测模式。因此,每个模式可以执行帧内预测并将预测的信号提供给模式选择器410。模式选择器410还接收增强层图片400的副本。

取决于选择哪个编码模式来对当前块进行编码,帧间预测器306、406的输出或者可选的帧内预测器模式之一的输出或者模式选择器内的表面编码器的输出被传递到模式选择器310、410的输出。模式选择器的输出被传递到第一求和设备321、421。第一求和设备可以从基本层图像300/增强层图片400中减去像素预测器302、402的输出以产生输入到预测误差编码器303、403的第一预测误差信号320、420。

像素预测器302、402还从初步经重建器339、439接收图像块312、412的预测表示和预测误差解码器304、404的输出338、438的组合。初步经重建图像314、414可以被传递到帧内预测器308、408并且被传递到滤波器316、416。接收初步表示的滤波器316、416可以对初步表示进行滤波并且输出最终重建图像340、440,其可以被保存在参考帧存储器318、418中。参考帧存储器318可以连接到帧间预测器306,以用作参考图像,在帧间预测操作中将来的基本层图像300与该参考图像进行比较。根据一些实施例,受基本层选择并且被指示为用于增强层的层间样本预测和/或层间运动信息预测的源,参考帧存储器318也可以连接到帧间预测器406,以被用作在帧间预测操作中将其与未来增强层图片400进行比较的参考图像。此外,参考帧存储器418可以连接到帧间预测器406,以被用作在帧间预测操作中将其与未来增强层图片400进行比较的参考图像。

根据一些实施例,可以将来自第一编码器部分500的滤波器316的滤波参数提供给第二编码器部分502,受制于基本层被选择并且被指示为用于预测增强层的滤波参数的源。

预测误差编码器303、403包括变换单元342、442和量化器344、444。变换单元342、442将第一预测误差信号320、420变换到变换域。变换例如是dct变换。量化器344、444量化变换域信号(例如dct系数),以形成量化系数。

预测误差解码器304、404接收来自预测误差编码器303、403的输出,并且执行预测误差编码器303、403的相反过程,以产生经解码的预测误差信号338、438,当预测误差信号338、438在第二求和设备339、439处与图像块312、412的预测表示组合时,产生初步重建图像314、414。预测误差解码器可被认为包括:解量化器361、461,解量化器361、461解量化经量化的系数值(例如dct系数)以重建变换信号;以及逆变换单元363、463,逆变换单元363、463对重建变换信号执行逆变换,其中逆变换单元363、463的输出包含经重建块。预测误差解码器还可以包括块滤波器,块滤波器可以根据其他经解码的信息和滤波器参数来对重建块进行滤波。

熵编码编码器330、430接收预测误差编码器303、403的输出,并且可以对该信号执行合适的熵编码/可变长度编码,以提供误差检测和纠正能力。熵编编码器330、430的输出可以例如通过复用器508被插入到比特流中。

h.264/avc标准是由国际电信联盟(itu-t)的电信标准化部门的视频编码专家组(vceg)的联合视频组(jvt)以及国际标准化组织(iso)/国际电工委员会(iec)的运动图片专家组(mpeg)开发的。h.264/avc标准由两个母标准化组织公布,并且被称为itu-t推荐h.264和iso/iec国际标准14496-10,也被称为mpeg-4第10部分高级视频编码(avc)。h.264/avc标准有多种版本,将新的扩展或特征集成到规范中。这些扩展包括可伸缩视频编码(svc)和多视图视频编码(mvc)。

高效视频编码(h.265/hevc又名hevc)标准的版本1由vceg和mpeg的联合协作小组-视频编码(jct-vc)开发。该标准由两个母标准化组织公布,并且被称为itu-t推荐h.265和iso/iec国际标准23008-2,也被称为mpeg-h第2部分高效视频编码(hevc)。h.265/hevc的版本2包括可伸缩、多视图、以及保真度范围扩展,其可分别缩写为shvc、mv-hevc、以及rext。h.265/hevc的第2版已经作为itu-th.265推荐(10/2014)预先发布,很可能在2015年作为iso/iec23008-2的第2版发布。目前存在正在进行的标准化项目用以开发对h.265/hevc的进一步扩展,包括三维和屏幕内容编码扩展,其可以分别缩写为3d-hevc和scc。

shvc、mv-hevc和3d-hevc使用hevc标准的版本2的附录f中规定的通用基本规范。该通用基础包括例如高级语法和语义,例如规定比特流的层的一些特性(诸如层间依赖性)以及解码过程,诸如包括层间参考图片的参考图片列表构建以及用于多层比特流的图片顺序计数导出。附录f也可用于hevc潜在的后续多层扩展。应当理解,即使视频编码器、视频解码器、编码方法、解码方法、比特流结构和/或实施例可以在下文中参照诸如shvc和/或mv-hevc的特定扩展来描述,它们通常可应用于hevc的任意多层扩展,甚至更一般地适用于任意多层视频编码方案。

本节中描述了h.264/avc和hevc的一些关键定义、比特流和编码结构、以及概念作为视频编码器、解码器、编码方法、解码方法和比特流结构的示例,其中实施例可以被实现。h.264/avc的一些关键定义、比特位流和编码结构、以及概念与hevc中的相同,因此下面将联合描述它们。本发明的各个方面不限于h.264/avc或hevc,而是对在其上本发明可部分或完全实现的一个可能的基础给出描述。

类似于许多较早的视频编码标准,在h.264/avc和hevc中规定比特流语法和语义以及用于无误差比特流的解码处理。编码过程没有规定,但编码器必须生成符合的比特流。比特流和解码器一致性可以用假想参考解码器(hrd)来验证。标准包含有助于应对传输误差和丢失的编码工具,但是编码中工具的使用是可选的,并且还没有规定针对误差的比特流解码过程。

在现有标准的描述以及示例实施例的描述中,可以将语法元素定义为在比特流中表示的数据的元素。语法结构可以被定义为以特定顺序一起存在于比特流中的零个或更多个语法元素。在现有标准的描述以及示例实施例的描述中,可以使用短语“由外部部件”或“通过外部部件”。例如,诸如解码处理中使用的语法结构或变量的值的实体可以“由外部部件”提供给解码处理。短语“由外部部件”可以指示该实体不包括在由编码器创建的比特流中,而是例如使用控制协议从比特流向外部传送。它可以替代地或附加地表示该实体不是由编码器创建的,而是可以例如在播放器或解码控制逻辑中或者正在使用解码器的类似物中创建。解码器可以具有用于输入外部部件(诸如变量值)的接口。

输入到h.264/avc或hevc编码器的基本单元和h.264/avc或hevc解码器的输出分别是图片。作为到编码器的输入而给出的图片也可以被称为源图片,并且由解码所解码的图片可以被称为解码图片。

源图片和解码图片各自由一个或多个样本阵列组成,诸如以下采样阵列中的一个:

-只有亮度(y)(单色)。

-亮度和两个色度(ycbcr或ycgco)。

-绿色、蓝色、以及红色(gbr,也称为rgb)。

-表示其他未规定的单色或三色激励样本的阵列(例如,yzx,也称为xyz)。

在下文中,这些阵列可被称为亮度(或l或y)和色度,其中两个色度阵列可被称为cb和cr;而不管使用中的实际颜色表示方法如何。例如使用h.264/avc和/或hevc的视频可用性信息(vui)语法,可以例如在经编码比特流中指示正在使用的实际颜色表示方法。分量可以被定义为来自三个样本阵列阵列(亮度和两个色度)之一的阵列或单个样本,或者构成单色格式图片的阵列或阵列的单个样本。

在h.264/avc和hevc中,图片可以是帧或场。帧包括亮度样本矩阵和可能的对应色度样本。场是帧的交替样本行集合,并且当源信号交错时可以用作编码器输入。色度样本阵列可能不存在(因此可能正在使用单色样本),或者当与亮度样本阵列比较时,可以对色度样本阵列进行子采样。色度格式可以总结如下:

-在单色采样中,只有一个样本阵列,可能名义上被认为是亮度阵列。

-在4:2:0采样中,两个色度阵列中的每一个都具有亮度阵列的一半高度和一半宽度。

-在4:2:2采样中,两个色度阵列中的每一个具有亮度阵列的相同高度和一半宽度。

-在4:4:4采样中,当没有使用分离的颜色平面时,两个色度阵列中的每一个具有与亮度阵列相同的高度和宽度。

在h.264/avc和hevc中,可以将样本阵列作为分离的色彩平面编码到比特流中,并分别从比特流中分别解码经编码的色彩平面。当使用分离的颜色平面时,它们中的每一个都被分离地处理(由编码器和/或解码器)作为具有单色采样的图片。

分区(partitioning)可以被定义为将一个集合划分为子集,使得该集合的每个元素恰好在这些子集中的一个子集中。

在h.264/avc中,宏块是16×16的亮度样本块和色度样本的对应块。例如,在4:2:0采样模式中,宏块对于每个色度分量包含一个8×8的色度样本块。在h.264/avc中,图片被分区为一个或多个切片组,并且切片组包含一个或多个切片。在h.264/avc中,切片由在特定切片组内的光栅扫描中连续排序的整数个宏块组成。

当描述hevc编码和/或解码的操作时,可以使用以下术语。编码块可以被定义为对于某个n值的n×n个样本块,使得编码树块到编码块的划分是分区。编码树块(ctb)可以被定义为对于某个n值的n×n样本块,使得分量到编码树块的划分是分区。编码树单元(ctu)可以被定义为亮度样本的编码树块、具有三个样本阵列的图片的色度样本的两个对应的编码树块、或者单色图片或使用三个分离的颜色平面和用于对样本进行编码的语法结构而被编码的图片的样本的编码树块。编码单元(cu)可以被定义为亮度样本的编码块、具有三个样本阵列的图片的色度样本的两个对应编码块、或者单色图片或使用三个分离的颜色平面和用于对样本进行编码的语法结构而被编码的图片的样本的编码块。

在诸如高效率视频编码(hevc)编解码器的一些视频编解码器中,视频图片被划分为覆盖图片区域的编码单元(cu)。cu由定义用于cu内的样本的预测过程的一个或多个预测单元(pu)和定义用于所述cu中的样本的预测误差编码过程的一个或多个变换单元(tu)组成。通常情况下,cu包含方块样本,其大小可以从预定义的可能的cu大小集合中选择。具有最大允许大小的cu可以被命名为lcu(最大编码单元)或编码树单元(ctu),并且视频图片被划分成不重叠的lcu。例如通过递归地分割lcu和所得到的cu,lcu可以被进一步分割成较小的cu的组合。每个所得的cu通常具有至少一个pu以及与其相关联的至少一个tu。每个pu和tu可以被进一步分割成更小的pu和tu,以便于分别增加预测和预测误差编码处理的粒度。每个pu具有与其关联的预测信息,该预测信息定义对该pu内的像素应用什么类型的预测(例如用于帧间预测的pu的运动矢量信息和用于帧内预测的pu的帧内预测方向性信息)。

每个tu可以与描述所述tu内的样本的预测误差解码处理的信息(包括例如dct系数信息)相关联。通常在cu级上发信号通知针对每一个cu是否应用预测误差编码。在没有与cu相关联的预测误差残差的情况下,可以认为对于所述cu没有tu。通常在比特流中发信号通知将图片划分成cu并将cu划分为pu和tu,从而允许解码器再现这些单元的预期结构。

在hevc中,可以将图片划分为的图块(tile),图块是矩形的并且包含整数个lcu。在hevc中,对图块的分区形成规则的网格,其中图块的高度和宽度彼此最大相差一个lcu。在hevc中,切片被定义为在一个独立切片分段中以及在相同访问单元内的下一个独立切片分段(如果有的话)之前的所有后续的从属切片分段(如果有的话)中包含的整数个编码树单元。在hevc中,切片切片分段被定义为在图块扫描中连续排列并且在单个nal单元中包含的整数个编码树单元。将每个图片到切片分段的划分是分区。在hevc中,独立切片分段被定义为切片分段头的语法元素的值不是从先前切片分段的值推断的的切片分段,并且从属切片分段被定义为切片分段首部的一些语法元素的值是从按照解码顺序的先前独立切片分段的值推断的切片分段。在hevc中,切片首部被定义为是当前切片分段的独立切片分段或者是在当前相关切片分段之前的独立切片分段的切片分段首部,并且切片分段首部被定义为包含属于切片分段中表示的第一或全部编码树单元的数据元素的编码切片分段的一部分。如果图块没有被使用,则cu在图块内或图片内以lcu的光栅扫描顺序被扫描。在lcu内,cu具有特定的扫描顺序。

解码器通过应用与编码器相似的预测部件来重建输出视频,以形成像素块的预测表示(使用由编码器创建并且在压缩表示中存储的运动或空间信息)和预测误差解码(在空间像素域中恢复量化预测误差信号的预测误差编码逆操作)。在应用预测和预测误差解码部件之后,解码器将预测和预测误差信号(像素值)相加以形成输出视频帧。解码器(和编码器)也可以在将其传递用于显示和/或将其存储为视频序列中即将到来的帧的预测参考之前,应用附加的滤波部件来改进输出视频的质量。

例如,滤波可以包括以下一项或多项:解块(deblocking)、样本自适应偏移(sao)、和/或自适应环路滤波(alf)。h.264/avc包括解块,而hevc包括解块和sao两者。

在典型的视频编解码器中,运动信息使用与每个运动补偿图像块相关联的运动矢量(诸如预测单元)来指示。这些运动矢量中的每一个表示要编码(在编码器侧)或解码(在解码器侧)的图片中的图像块和预先编码或解码的图片之一中的预测源块的位移。为了高效地表示运动矢量,通常针对块特定的预测运动矢量对它们进行差分编码。在典型的视频编解码器中,以预定的方式创建预测的运动矢量,例如计算相邻块的编码或解码运动矢量的中值。用以创建运动矢量预测的另一方式是从时间参考图片中的相邻块和/或处于相同位置块生成候选预测的列表,并且发信号通知所选择的候选者作为运动矢量预测值。除了预测运动矢量值之外,还可以预测哪个(些)参考图片被用于运动补偿预测,并且这个预测信息可以例如由先前编码/解码图片的参考索引来表示。通常根据时间参考图片中的相邻块和/或处于相同位置块来预测参考索引。此外,典型的高效视频编解码器采用附加的运动信息编码/解码机制,通常称为合并/合并模式,其中包括针对每个可用参考图片列表的运动矢量和对应参考图片索引的所有运动场信息被没有任意修改/纠正地预测和使用。类似地,使用时间参考图片中的相邻块和/或处于相同位置块的运动场信息来执行预测运动场信息,并且在充满可用的相邻/处于相同位置块的运动场信息的运动场候选列表的列表之间发信号通知所使用的运动场信息。

典型的视频编解码器能够实现单向预测的使用(其中单个预测块被用于被编码(解码)的块),以及能够实现双向预测的使用(其中两个预测块被组合以形成被编码(解码)的块的预测)。一些视频编解码器启用加权预测,其中在添加残差信息之前对预测块的样本值进行加权。例如,乘法加权因子和可以应用的附加偏移量。在由某些视频编解码器实现的显式加权预测中,可以将加权因子和偏移量编码到例如每个可允许参考图片索引的切片分段首部中。在由某些视频编解码器启用的隐式加权预测中,加权因子和/或偏移不被编码,而是例如基于参考图片的相对图片顺序计数(poc)距离来导出。

在典型的视频编解码器中,运动补偿之后的预测残差首先用变换内核(如dct)进行变换,然后进行编码。这样做的原因是:残差和变换之间往往仍然存在一定的相关性,这在许多情况下可以帮助减少这种相关性并且提供更高效的编码。

典型的视频编码器利用拉格朗日代价函数来找到最优编码模式,例如所需的宏块模式和相关联的运动矢量。这种代价函数使用加权因子λ将由于有损编码方法导致的(精确的或估计的)图片失真与表示图片区域中的像素值所需的(精确的或估计的)信息量结合在一起:

c=d+λr,(1)

其中c是待最小化的拉格朗日成本,d是考虑到模式和运动矢量的图片失真(例如均方误差),并且r是表示解码器中重建图像块所需的数据所需的比特数(包括表示候选运动矢量的数据量)。

视频编码标准和规范可以允许编码器将经编码图片划分为编码切片或类似物。图片内预测通常在切片边界上被禁用。因此,切片可以被认为是将编码图片分割成独立可解码片段的一种方式。在h.264/avc和hevc中,可以在跨切片边界上禁用图片内预测。因此,切片可被认为是将编码图片分割为可独立可解码片段的一种方式,因而切片通常被认为是用于传输的基本单元。在许多情况下,编码器可以在比特流中指示哪些类型的图片内预测在切片边界上封闭,并且解码器操作例如在推断哪些预测源可用时考虑到这个信息。例如,如果相邻宏块或cu驻留在不同的切片中,则来自相邻宏块或cu的样本可被认为不可用于帧内预测。

分别用于h.264/avc或hevc编码器的输出以及h.264/avc或hevc解码器的输入的基本单元是网络抽象层(nal)单元。为了通过面向分组的网络的传输或者到结构化文件中的存储,可以将nal单元封装到分组或类似结构中。在h.264/avc和hevc中规定了字节流格式用于不提供帧结构的传输或存储环境。字节流格式通过在每个nal单元前面附加起始码来将nal单元彼此分开。为了避免nal单元边界的错误检测,编码器运行面向字节的起始码仿真预防算法,如果在其他情况下将会出现起始码,则将仿真预防字节添加到nal单元有效载荷。为了能够在面向分组的系统和面向流的系统之间实现直接的网关操作,无论字节流格式是否在使用,始终都可以执行起始码仿真预防。nal单元可以被定义为包含要遵循的数据类型的指示的语法结构以及包含根据需要散布有仿真防止字节的rbsp形式的该数据的字节。原始字节序列有效载荷(rbsp)可以被定义为包含封装在nal单元中的整数个字节的语法结构。rbsp为空的或具有包含语法元素的数据位串其后跟随有rbsp停止位并且随后是等于0的零个或更多个后续位的形式。

nal单元由首部和有效载荷组成。在h.264/avc和hevc中,nal单元首部指示nal单元的类型。

h.264/avcnal单元首部包括2位nal_ref_idc语法元素,其在等于0时指示在nal单元中包含的编码切片是非参考图片的一部分,并且当大于0时指示在nal单元中包含的编码切片是参考图片的一部分。svc和mvcnal单元的首部可以另外包含与可伸缩性和多视图层级有关的各种指示。

在hevc中,对于所有规定的nal单元类型使用两个字节的nal单元首部。nal单元首部包含一个保留位、六位nal单元类型指示、用于时间等级(可能需要大于或等于1)的三位nuh_temporal_id_plus1指示、以及六位nuh_layer_id语法元素。temporal_id_plus1语法元素可以被认为是针对nal单元的时间标识符,并且可以如下导出基于零的temporalid变量:temporalid=temporal_id_plus1-1。等于0的temporalid对应于最低时间级别。为了避免涉及两个nal单元首部字节的起始码仿真,temporal_id_plus1的值需要是非零的。通过排除具有大于或等于所选择的值的temporalid的所有vclnal单元并且包括所有其他vclnal单元而创建的比特流保持一致。因此,具有等于tid的temporalid的图片不使用具有大于tid的temporalid的任意图片作为帧间预测参考。子层或时间子层可以被定义为时间可伸缩比特流的时间可伸缩层,其由具有temporalid变量的特定值的vclnal单元和相关联的非vclnal单元组成。nuh_layer_id可以被理解为可伸缩性层标识符。

nal单元可以被分类为视频编码层(vcl)nal单元和非vclnal单元。vclnal单元通常是编码切片nal单元。在h.264/avc中,编码切片nal单元包含表示一个或一个以上编码宏块的语法元素,其中的每一个对应于未经压缩图片中的样本块。在hevc中,vclnal单元包含表示一个或多个cu的语法元素。

在h.264/avc中,编码切片nal单元可被指示为瞬时解码刷新(idr)图片中的编码切片或非idr图片中的编码切片。

在hevc中,编码切片nal单元可被指示为以下类型之一:

在hevc中,图片类型的缩写可以被定义为如下:后续(trail)图片、时间子层访问(tsa)、逐步时间子层访问(stsa)、随机访问可解码引导(radl)图片、随机访问跳过引导(rasl)图片、断链访问(bla)图片、瞬时解码刷新(idr)图片、清除随机访问(cra)图片。

随机访问点(rap)图片(其也可被称为内部随机访问点(irap)图片)是其中每个切片或切片分段具有在16至23(包含)的范围内的nal_unit_type的图片。独立层中的irap图片仅包含帧内经编码切片。属于具有nuh_layer_id值currlayerid的预测层的irap图片可以包含p、b、以及i切片,不能使用具有等于currlayerid的nuh_layer_id的其他图片的帧间预测,并且可以使用来自其直接参考层的层间预测。在当前版本的hevc中,irap图片可以是bla图片、cra图片或idr图片。包含基本层的比特流中的第一个图片是基本层处的irap图片。如果必要的参数集合需要被激活时可用,则独立层处的irap图片和以解码顺序的独立层处的所有后续非rasl图片可被正确地解码,而不执行解码顺序中在irap图片之前的任意图片的解码处理。当需要参数集合可用时、当它们需要被激活时、以及当具有nuh_layer_id等于currlayerid的层的每个直接参考层的解码已经被初始化时(即,当对于reflayerid等于具有nuh_layer_id等于currlayerid的层的直接参考层的所有nuh_layer_id值,layerinitializedflag[reflayerid]等于1时),属于具有nuh_layer_id值currlayerid的预测层的irap图片以及在解码顺序中具有nuh_layer_id等于currlayerid的所有随后的非rasl图片可以被正确地解码,而不执行在解码顺序中在irap图片之前的具有nuh_layer_id等于currlayerid的任意图片的解码处理。比特流中可能存在仅包含不是irap图片的帧内编码切片的图片。

在hevc中,cra图片可以是解码顺序中的比特流中的第一图片,或者可以稍后出现在比特流中。hevc中的cra图片允许在解码顺序中在cra图片之后但在输出顺序中在cra图片之前的所谓的引导图片。引导图片(即所谓的rasl图片)中的一些可以使用在cra图片之前解码的图片作为参考。如果在cra图片处执行随机访问,则在解码顺序和输出顺序两者中在cra图片之后的图片是可解码的,并且因此实现干净的随机访问,这类似于idr图片的干净的随机访问功能。

cra图片可具有相关联的radl或rasl图片。当cra图片是解码顺序中在比特流中的第一图片时,cra图片是在解码顺序中的编码视频序列的第一图片,并且任意相关联的rasl图片不被解码器输出,并且可能不可解码,因为它们可能包含对比特流中不存在的图片的参考。

引导图片是在输出顺序中在相关联的rap图片之前的图片。相关联的rap图片是在解码顺序中的先前的rap图片(如果存在的话)。引导图片是radl图片或rasl图片。

所有rasl图片是相关联的bla或cra图片的引导图片。当相关联的rap图片是bla图片或者是比特流中的第一经编码图片时,由于rasl图片可能包含对比特流中不存在的图片的参考,因此rasl图片不被输出并且可能不能被正确地解码。然而,如果解码是从rasl图片的相关联rap图片之前的rap图片开始的,则rasl图片可以被正确地解码。rasl图片不被用作非rasl图片解码处理的参考图片。当存在时,所有rasl图片在解码顺序中先于相同的相关rap图片的所有后续图片。在hevc标准的一些草案中,rasl图片被称为标记为丢弃(tfd)图片。

所有的radl图片都是引导图片。radl图片不被用作用于相同的相关联rap图片的后续图片的解码处理的参考图片。当存在时,所有的radl图片在解码顺序中在相同的相关联的rap图片的所有后续图片之前。radl图片不参考在解码顺序中相关联的rap图片之前的任意图片,并且因此当解码从相关联的rap图片开始时可以被正确地解码。在hevc标准的一些草案中,radl图片被称为可解码的引导图片(dlp)。

当从cra图片开始的比特流的一部分被包括在另一比特流中时,与cra图片相关联的rasl图片可能不能被正确地解码,因为它们的一些参考图片可能不存在于组合比特流中。为了使这样的拼接操作直截了当,可以改变cra图片的nal单元类型以指示它是bla图片。与bla图片相关联的rasl图片可能不能被正确地解码,因此不被输出/显示。此外,与bla图片相关联的rasl图片可以从解码中被省略。

bla图片可以是解码顺序中的比特流中的第一图片,或者可以稍后出现在比特流中。每个bla图片开始新的编码视频序列,并且对解码处理具有与idr图片相似的效果。但是,bla图片包含指定非空参考图片集合的语法元素。当bla图片具有的nal_unit_type等于bla_w_lp时,它可以具有相关联的rasl图片,其不是由解码器输出的并且可能是不可解码的,因为它们可能包含对不存在于比特流中的图片的参考。当bla图片具有等于bla_w_lp的nal_unit_type时,其也可以具有相关联的radl图片,其被指定为将被解码。当bla图片具有等于bla_w_dlp的nal_unit_type时,其不具有相关联的rasl图片,但可具有指定要被解码的相关联的radl图片。当bla图片具有等于bla_n_lp的nal_unit_type时,它没有任何关联的引导图片。

具有等于idr_n_lp的nal_unit_type的idr图片不具有存在于比特流中的相关联的引导图片。具有等于idr_w_lp的nal_unit_type的idr图片不具有存在于比特流中的相关联的rasl图片,但是可以在比特流中具有相关联的radl图片。

当nal_unit_type的值等于trail_n、tsa_n、stsa_n、radl_n、rasl_n、rsv_vcl_n10、rsv_vcl_n12、或rsv_vcl_n14时,解码图片不被用作用于相同时间子层的任意其他图片的参考。即,在hevc中,当nal_unit_type的值等于trail_n、tsa_n、stsa_n、radl_n、rasl_n、rsv_vcl_n10、rsv_vcl_n12、或rsv_vcl_n14时,解码图片不被包括在具有相同的temporalid值的任意图片的refpicsetstcurrbefore、refpicsetstcurrafter和refpicsetltcurr中的任意一个中。具有等于trail_n、tsa_n、stsa_n、radl_n、rasl_n、rsv_vcl_n10、rsv_vcl_n12、或rsv_vcl_n14的nal_unit_type的编码图片可以被丢弃,而不影响具有temporalid的相同值的其它的图片的可解码性。

后续图片可以被定义为在输出顺序中在相关联的rap图片之后的图片。作为后续图片的任意图片均不具有等于radl_n、radl_r、rasl_n或rasl_r的nal_unit_type。作为引导图片的任意图片都可以被约束为在解码顺序中在与相同的rap图片相关联的所有后续图片之前。在比特流中不存在与具有等于bla_w_dlp或bla_n_lp的nal_unit_type的bla图片相关联的rasl图片。在比特流中没有与具有等于bla_n_lp的nal_unit_type的bla图片相关联的、或与具有等于idr_n_lp的nal_unit_type的idr图片相关联的radl图片。与cra或bla图片相关联的任意rasl图片可以被约束为在输出顺序中在与cra或bla图片相关联的任意radl图片之前。与cra图片相关联的任意rasl图片可以被约束为在输出顺序中跟随在解码顺序中在cra图片之前的任意其他rap图片。

在hevc中,存在两种图片类型,即可用于指示时间子层切换点的tsa和stsa图片类型。如果具有直到n的temporalid的时间子层已经被解码,直到tsa或stsa图片(不包含)并且tsa或stsa图片具有等于n+1的temporalid,则tsa或stsa图片能够实现具有等于n+1的temporalid的所有后续图片的解码。tsa图片类型可以对tsa图片本身以及在解码顺序中在tsa图片之后的相同子层中的所有图片施加约束。这些图片都不允许使用来自在解码顺序中的tsa图片之前的相同子层中的任意图片的帧间预测。tsa定义可以进一步对在解码顺序中的tsa图片之后的更高子层中的图片施加约束。这些图片都不被允许参考在解码顺序中在tsa图片之前的一张图片,如果该张图片属于与tsa图片相同或更高的子层的话。tsa图片具有大于0的temporalid。stsa与tsa图片相似,但是不对解码顺序中在stsa图片之后的更高子层中的图片施加约束,因此仅能够实现向上切换到stsa图片驻留的子层上的子层。

非vclnal单元可以是例如以下类型之一:序列参数集合、图片参数集合、补充增强信息(sei)nal单元、访问单元定界符、序列结尾nal单元、比特流结尾nal单元、或者填充数据nal单元。可能需要参数集合用于解码图片的重建,而许多其他非vclnal单元对于经解码样本值的重建不是必需的。

通过编码视频序列保持不变的参数可被包括在序列参数集合中。除了解码处理可能需要的参数之外,序列参数集合可以替代地包含视频可用性信息(vui),其包括对于缓冲、图片输出定时、渲染、以及资源保留可能是重要的参数。在h.264/avc中规定了三个nal单元来携带序列参数集合:包含序列中用于h.264/avcvclnal单元的所有数据的序列参数集合nal单元、包含用于辅助编码图片的数据的序列参数集合扩展nal单元、以及用于mvc和svcvclnal单元的子集序列参数集合。在hevc中,序列参数集合rbsp包括可由一个或多个图片参数集合rbsp或包含缓冲时段sei消息的一个或多个seinal单元参考的参数。图片参数集合包含在几个经编码图片中可能未改变的参数。图片参数集合rbsp可以包括可以由一个或多个编码图片的编码切片nal单元参考的参数。

在hevc中,可以将视频参数集合(vps)定义为包含语法元素的语法结构,该语法元素应用于0个或更多个完整的编码视频序列,该0个或更多个完整的编码视频序列由在sps中找到的语法元素的内容确定,sps由在pps中找到的语法元素引用,pps由在每个切片分段首部中找到的语法元素引用。

视频参数集合rbsp可以包括可以由一个或多个序列参数集合rbsp引用的参数。

视频参数集合(vps)、序列参数集合(sps)、以及图片参数集合(pps)之间的关系和层次可以被描述如下。在参数集合层次结构和可伸缩性和/或3d视频的上下文中,vps位于sps之上一级。vps可以包括对整个编码视频序列中的所有(可伸缩性或视图)层的所有切片通用的参数。sps包括在整个编码视频序列中的特定(可伸缩性或视图)层中的所有切片通用的、并且可以由多个(可伸缩性或视图)层共享的参数。pps包括对于特定层表示(一个访问单元中的一个可伸缩性或视图层的表示)中的所有切片通用的、并且可能由多个层表示中的所有切片共享的参数。

vps可以提供关于比特流中的层的依赖性关系的信息以及适用于跨整个编码视频序列中的所有(可伸缩性或视图)层的所有切片的许多其他信息。vps可以被认为包括两个部分,即基本vps和vps扩展,其中vps扩展可以被可选地展现。在hevc中,可以认为基本vps包括video_parameter_set_rbsp()语法结构,而没有vps_extension()语法结构。video_parameter_set_rbsp()语法结构主要是针对hevc版本1而已经被规定的,并且包括可能用于基本层解码的语法元素。在hevc中,可以将vps扩展视为包括vps_extension()语法结构。vps_extension()语法结构主要针对多层扩展在hevc版本2中被规定,并且包括可用于一个或多个非基本层的解码的语法元素,诸如指示层依赖关系的语法元素。

vps扩展中的语法元素max_tid_il_ref_pics_plus1可用于指示非irap图片不被用作层间预测的参考,并且如果不是这样的话,那么哪些时间子层不被用作针对帧间预测的参考:

max_tid_il_ref_pics_plus1[i][j]等于0规定具有等于layer_id_in_nuh[i]的nuh_layer_id的非irap图片不被用作针对等于layer_id_in_nuh[j]的nuh_layer_id的图片的层间预测的源图片。max_tid_il_ref_pics_plus1[i][j]大于0规定具有等于layer_id_in_nuh[i]的nuh_layer_id并且temporalid大于max_tid_il_ref_pics_plus1[i][j]-1的图片不被用作针对等于layer_id_in_nuh[j]的nuh_layer_id的图片的层间预测的源图片。当不呈现时,max_tid_il_ref_pics_plus1[i][j]的值被推断为等于7。

h.264/avc和hevc语法允许参数集合的许多实例,并且每个实例用唯一的标识符而被标识。为了约束参数集合所需的存储器使用量,参数集合标识符的取值范围受到约束。在h.264/avc和hevc中,每个切片首部包括对于包含切片的图片的解码活动的图片参数集合的标识符,并且每个图片参数集合包含活动序列参数集合的标识符。因此,图片和序列参数集合的传输不必与切片的传输精确地同步。相反,活动序列和图片参数集合在其被参考之前的任意时刻被接收就足够了,这允许使用与用于切片数据的协议相比更可靠的传输机制来传送“带外”参数集合。例如,参数集合可以作为参数包含在用于实时传输协议(rtp)会话的会话描述中。如果参数集合是在带内被传输的,则可以重复这些参数集合来提高误差鲁棒性。

带外传输、信令、或存储可以附加地或替代地用于除对传输误差的容错之外的其他目的,诸如容易访问或会话协商。例如,符合iso基本媒体文件格式的文件中的轨道的样本条目可以包括参数集合,而比特流中的编码数据存储在文件中的其他地方或另一文件中。顺着比特流(例如顺着比特流指示)的短语可以在权利要求和所描述的实施例中用于指代以带外数据与比特流相关联的方式的带外传输、信令或存储。顺着比特流或者类似物的短语解码可以指代对与比特流相关联的所涉及的带外数据(其可以从带外传输、信令或者存储获得)进行解码。

参数集合可以通过来自切片、或来自另一有效参数集合、或者在一些情况下可以来自诸如缓冲时段sei消息的另一种语法结构的参考来激活。

seinal单元可以包含一个或多个sei消息,这对输出图片的解码不是必需的,但是可以辅助诸如图片输出定时、渲染、误差检测、误差隐藏、以及资源保留的相关过程。在h.264/avc和hevc中规定了几个sei消息,并且用户数据sei消息使组织和公司能够规定自己使用的sei消息。h.264/avc和hevc包含规定的sei消息的语法和语义,但是没有定义在接收方中处理消息的过程。因此,编码器在创建sei消息时需要遵循h.264/avc标准或hevc标准,并且分别符合h.264/avc标准或hevc标准的解码器不需要处理sei消息输出顺序一致性。在h.264/avc和hevc中包括sei消息的语法和语义的原因之一是允许不同的系统规范完全相同地解释补充信息并且因此互操作。意在系统规范可以要求在编码端和解码端都使用特定的sei消息,另外还可以规定在接收方中处理特定的sei消息的过程。

在hevc中,存在两种类型的seinal单元,即具有彼此不同的nal_unit_type值的后缀seinal单元和前缀seinal单元。在后缀seinal单元中包含的sei消息与在解码顺序中的后缀seinal单元之前的vclnal单元相关联。在前缀seinal单元中包含的sei消息与解码顺序中的前缀seinal单元之后的vclnal单元相关联。

编码图片是图片的编码表示。h.264/avc中的编码图片包括图片的解码所需的vclnal单元。在h.264/avc中,编码图片可以是主编码图片或冗余编码图片。在有效比特流的解码处理中使用主编码图片,而冗余编码图片是仅在主编码图片不能被成功解码时才被解码的冗余表示。在hevc中,没有指定冗余编码图片。

在h.264/avc中,访问单元(au)包括主编码图片以及与其相关联的那些nal单元。在h.264/avc中,访问单元内的nal单元的出现顺序受到如下约束。可选的访问单元定界符nal单元可以指示访问单元的开始。紧随其后的是零个或多个seinal单元。主编码图片的编码切片接下来出现。在h.264/avc中,主编码图片的编码切片之后可以是用于零个或多个冗余编码图片的编码切片。冗余编码图片是图片或图片的一部分的编码表示。如果例如由于传输丢失或物理存储介质损坏导致解码器未接收到主编码图片,则冗余编码图片可能被解码。

在h.264/avc中,访问单元还可以包括辅助编码图片,该辅助编码图片是补充主编码图片并且可以例如在显示过程中使用的图片。辅助编码图片例如可以被用作规定解码图片中样本的透明度级别的阿尔法通道或阿尔法平面。阿尔法通道或平面可用于分层合成或渲染系统中,其中输出图片是通过将彼此之上至少部分透明的图片进行叠加而形成的。辅助编码图片具有与单色冗余编码图片相同的句法和语义约束。在h.264/avc中,辅助编码图片包含与主编码图片相同数量的宏块。

在hevc中,编码图片可以被定义为包含图片的所有编码树单元的图片的编码表示。在hevc中,访问单元(au)可以被定义为根据规定的分类规则彼此关联的、在解码顺序上是连续的nal单元集合,并且包含具有nuh_layer_id的任意特定值的至多一个图片。除了包含编码图片的vclnal单元之外,访问单元还可以包含非vclnal单元。

可能需要编码图片在访问单元内以特定顺序出现。例如,可能需要nuh_layer_id等于nuhlayerida的编码图片在解码顺序中在相同访问单元中具有大于nuhlayerida的nuh_layer_id的所有编码图片之前。

在hevc中,图片单元可被定义为包含编码图片的所有vclnal单元及其相关联的非vclnal单元的nal单元集合。用于非vclnal单元的相关联的vclnal单元可以被定义为:针对某些类型的非vclnal单元的在解码顺序中的非vclnal单元的前一vclnal单元,以及针对其他类型的非vclnal单元的在解码顺序中的非vclnal单元的下一vclnal单元。对于vclnal单元的相关联的非vclnal单元可以被定义为vclnal单元是相关联的vclnal单元的非vclnal单元。例如,在hevc中,相关联的vclnal单元可以被定义为:具有等于eos_nut、eob_nut、fd_nut、或suffix_sei_nut、或在rsv_nvcl45..rsv_nvcl47或unspec56..unspec63的范围内的nal_unit_type的非vclnal单元在解码顺序中的前一vclnal单元;或否则为在解码顺序中的下一vclnal单元。

比特流可以被定义为以nal单元流或字节流的形式的比特序列,其形成编码图片以及形成一个或多个编码视频序列的相关联数据的表示。在相同个逻辑信道中(诸如在相同的文件中或者在通信协议的相同的连接中),第一个比特流可以跟随有第二个比特流。基本流(在视频编码的上下文中)可以被定义为一个或多个比特流的序列。第一比特流的结尾可以由特定的nal单元来指示,该特定的nal单元可以被称为比特流结尾(eob)nal单元,并且是比特流的最后一个nal单元。在hevc及其当前草稿扩展中,eobnal单元需要具有等于0的nuh_layer_id。

在h.264/avc中,编码视频序列被定义为在解码顺序中从idr访问单元(包含)到下一idr访问单元(不包含)或到比特流的结尾(以出现较早者为准)的连续访问单元的序列。

在hevc中,可以将编码视频序列(cvs)例如定义为在解码顺序中由以下各项构成的访问单元序列:具有norasloutputflag等于1的irap访问单元,随后为不是具有norasloutputflag等于1的irap访问单元的零个或更多个访问单元,其包括直到所有后续访问单元但不包括作为具有norasloutputflag等于1的irap访问单元的任意后续的访问单元。irap访问单元可被定义为其中基本层图片是irap图片的访问单元。norasloutputflag的值对于以下是等于1的:每个idr图片,每个bla图片,以及作为解码顺序中的比特流中的该特定层中的第一图片、作为紧跟在解码顺序中具有相同的nuh_layer_id值的序列末尾nal单元之后的第一irap图片的每个irap图片。在多层hevc中,当它的nuh_layer_id使得layerinitializedflag[nuh_layer_id]等于0并且对于reflayerid的所有值等于iddirectreflayer[nuh_layer_id][j][其中j在0到numdirectreflayers[nuh_layer_id]-1的范围内(包含)]而言layerinitializedflag[reflayerid]等于1时,对于每个irap图片,norasloutputflag的值等于1。否则,norasloutputflag的值等于handlecraasblaflag。norasloutputflag等于1具有以下影响:与针对其设置norasloutputflag的irap图片相关联的rasl图片不被解码器输出。可能有手段将handlecraasblaflag的值从外部实体提供给解码器,外部实体诸如可以控制解码器的播放器或接收器。例如,handlecraasblaflag可以被播放器设置为1,该播放器寻找比特流中的新位置或者调谐到广播中,并且开始解码,然后从cra图片开始解码。当针对cra图片的handlecraasblaflag等于1时,cra图片就好像它是bla图片一样被处理和解码。

在hevc中,当可以被称为序列结尾(eos)nal单元的特定nal单元出现在比特流中并且具有等于0的nuh_layer_id时,编码视频序列可以被附加地或替代地(相对对上文的说明书)被规定到末尾。

在hevc中,例如,可以将编码视频序列组(cvsg)定义为在解码顺序一项或多项连续的cvs,其共同由激活尚不活动的vpsrbspfirstvpsrbsp的irap访问单元,随后是在解码顺序中到比特流的尾部或到不包括激活与firstvpsrbsp不同的vpsrbsp的访问单元(以解码顺序中较早者为准)的firstvpsrbsp是活动vpsrbsp的所有后续访问单元组成。

一组图片(gop)及其特征可被定义如下。无论先前的图片是否被解码,gop都可以被解码。开放的gop是这样的的一组图片,其中当从该开放gop的初始帧内图片开始解码时,在输出顺序中在初始帧内图片之前的图片可能不能被正确地解码。换句话说,开放gop的图片可以参考(在帧间预测中)属于先前gop的图片。h.264/avc解码器可以从h.264/avc比特流中的恢复点sei消息识别作为开放gop的开始的帧内图片。hevc解码器可以识别作为开放gop的开始的帧内图片,因为特定的nal单元类型、cranal单元类型可以用于其编码的切片。封闭的gop是这样的一组图片,其中当解码从该封闭的gop的初始帧内图片开始解码时,所有的图片可以被正确地解码。换句话说,封闭的gop中没有图片参考以前的gop中的任何图片。在h.264/avc和hevc中,封闭的gop可以从idr图片开始。在hevc中,封闭的gop也可以从bla_w_radl或bla_n_lp图片开始。由于参考图片的选择具有较大的灵活性,所以与封闭的gop编码结构相比,开放的gop编码结构在压缩方面潜在地更高效。

可以将图片结构(sop)定义为在解码顺序上连续的一个或多个编码图片,其中解码顺序中的第一编码图片是在最低时间子层处的参考图片,并且除了解码顺序中的潜在的第一编码图片之外,没有编码图片是rap图片。前一个sop中的所有图片在解码顺序上在当前sop中的所有图片之前,并且在下一个sop中的所有图片在解码顺序上在当前sop中的所有图片之后。sop可以表示分层和重复的帧间预测结构。术语图片组(gop)有时可以与术语sop互换使用,并且具有与sop的语义相同的语义。

h.264/avc和hevc的比特流语法指示特定图片是否是用于任意其他图片的帧间预测的参考图片。在h.264/avc和hevc中,任意编码类型(i,p,b)的图片可以是参考图片或非参考图片。

h.264/avc规定了用于解码参考图片标记的过程,以便控制解码器中的存储器消耗。在序列参数集合中确定用于帧间预测的参考图片的最大数量,被称为m。当参考图片被解码时,它被标记为“用于参考”。如果参考图片的解码导致多于m个图片被标记为“用于参考”,则至少一个图片被标记为“不用于参考”。解码参考图片标记有两种类型的操作:自适应存储器控制和滑动窗口。在图片基础上选择解码参考图片标记的操作模式。自适应存储器控制能够实现显式地信号通知将哪些图片标记为“不用于参考”并且还可以将长期索引指派给短期参考图片。自适应存储器控制可能需要在比特流中呈现存储器管理控制操作(mmco)参数。mmco参数可以被包括在解码参考图片标记语法结构中。如果滑动窗口操作模式正在使用并且有m个被标记为“用于参考”的图片,则作为标记为“用于参考”的那些短期参考图片中的第一个解码图片的短期参考图片被标记为“不用于参考”。换句话说,滑动窗口操作模式导致短期参考图片之中的先进先出缓冲操作。

h.264/avc中的存储器管理控制操作之一使得除当前图片之外的所有参考图片被标记为“不用于参考”。瞬时解码刷新(idr)图片仅包含帧内编码切片并且引起参考图片的类似“重置”。

在hevc中,不使用参考图片标记语法结构和相关解码处理,而是替代地使用参考图片集合(rps)语法结构和解码过程用于相似的目的。对图片有效或活动的参考图片集合包括用于图片的参考的所有参考图片以及在解码顺序中的任意后续图片被保持标记为“用于参考”的所有参考图片。参考图片集合有六个子集,分别被称为refpicsetstcurr0(a.k.a.refpicsetstcurrbefore)、refpicsetstcurr1(a.k.a.refpicsetstcurrafter)、refpicsetstfoll0、refpicsetstfoll1、refpicsetltcurr、以及refpicsetltfoll。refpicsetstfoll0和refpicsetstfoll1也可以被认为是联合形成一个子集refpicsetstfoll。六个子集的记法如下。“curr”是指在当前图片的参考图片列表中包括的参考图片,因此可以用作当前图片的帧间预测参考。“foll”是指在当前图片的参考图片列表中不包括、但是可以按照解码顺序在随后的图片中用作参考图片的参考图片。“st”是指短期参考图片,其通常可以通过其poc值的一定数量的最低有效位而被标识。“lt”指的是长期参考图片,其特定地被识别,并且通常相比于当前图片具有比所提及的特定数量的最低有效位可以表示的poc值更大的差异。“0”是指具有比当前图片更小的poc值的那些参考图片。“1”是指具有比当前图片更大的poc值的那些参考图片。refpicsetstcurr0、refpicsetstcurr1、refpicsetstfoll0、以及refpicsetstfoll1统称为参考图片集合的短期子集。refpicsetltcurr和refpicsetltfoll被统称为参考图片集合的长期子集。

在hevc中,可以在序列参数集合中指定参考图片集合,并通过参考图片集合的索引在切片首部中使用参考图片集合。参考图片集合也可以在切片首部中被规定。参考图片集合可以被独立地编码或者可以从另一参考图片集合被预测(被称为rps间预测)。在这两种参考图片集合编码中,对于每个参考图片附加地发送标志(used_by_curr_pic_x_flag),该标志指示参考图片被当前图片用于参考(包括在*curr列表中)还是不被当前图片用于参考(包括在*foll中列表)。在当前切片使用的参考图片集合中包括的图片被标记为“用于参考”,并且不在当前切片使用的参考图片集合中的图片被标记为“不用于参考”。如果当前图片是idr图片,则将refpicsetstcurr0、refpicsetstcurr1、refpicsetstfoll0、refpicsetstfoll1、refpicsetltcurr和refpicsetltfoll全部设置为空。

解码图片缓冲区(dpb)可以用在编码器和/或解码器中。有两个原因来缓冲解码图片,用于帧间预测中的参考以及用于将解码的图片重新排序为输出顺序。由于h.264/avc和hevc为参考图片标记和输出重新排序提供了很大的灵活性,用于参考图片缓冲和输出图片缓冲的分离缓冲区可能浪费存储器资源。因此,dpb可以包括用于参考图片和输出重新排序的统一解码图片缓冲过程。当dpb不再用作参考且不需要用于输出时,解码图片可能会被从dpb中移除。

在h.264/avc和hevc的许多编码模式中,用于帧间预测的参考图片用对参考图片列表的索引来指示。该索引可以用可变长度编码进行编码,这通常导致较小的索引以对于对应的语法元素具有较短的值。在h.264/avc和hevc中,为每个双向预测(b)切片生成两个参考图片列表(参考图片列表0和参考图片列表1),并且为每个帧间编码(p)切片形成一个参考图片列表(参考图片列表0)。

参考图片列表(诸如参考图片列表0和参考图片列表1)通常以两个步骤来构建:首先,生成初始参考图片列表。初始参考图片列表可以例如基于frame_num、poc、temporal_id(或temporalid或类似物)或关于预测层级的信息(诸如gop结构)或其任意组合来生成。其次,初始参考图片列表可以由参考图片列表重新排序(rplr)命令(也被称为参考图片列表修改语法结构)来重新排序,所述参考图片列表重新排序(rplr)命令可以包含在切片首部中。在h.264/avc中,rplr命令指示被排序到相应参考图片列表的开头的图片。该第二步骤也可以被称为参考图片列表修改过程,并且rplr命令可以被包括在参考图片列表修改语法结构中。如果使用参考图片集合,则参考图片列表0可以被初始化为首先包含refpicsetstcurr0,接着是refpicsetstcurr1,接着是refpicsetltcurr。参考图片列表1可以被初始化为首先包含refpicsetstcurr1,然后是refpicsetstcurr0。在hevc中,可以通过参考图片列表修改语法结构来修改初始参考图片列表,其中初始参考图片列表中的图片可以通过列表的条目索引来标识。换句话说,在hevc中,参考图片列表修改被编码成包括在最终参考图片列表中的每个条目上的循环的语法结构,其中每个循环条目是到初始参考图片列表的固定长度编码索引,并且指示图片按升序排列在最终参考图片列表中。

包括h.264/avc和hevc的许多编码标准可以具有解码过程,用以将参考图片索引导出到参考图片列表,其可以用于指示多个参考图片中的哪一个被用于针对特定的块的帧间预测。编码器可以将参考图片索引编码到比特流中的是一些帧间编码模式,或者可以(例如,由编码器和解码器)使用一些其他帧间编码模式中的相邻块来导出参考图片索引。

为了在比特流中有效地表示运动矢量,可以针对块特定预测运动矢量差分地对运动矢量进行编码。在许多视频编解码器中,以预定义的方式(例如通过计算相邻块的编码或解码运动矢量的中值)创建预测运动矢量。有时称为高级运动矢量预测(amvp)的另一创建运动矢量预测的方式是从时间参考图片中的相邻块和/或处于同一位置块生成候选预测的列表,并且将所选候选作为运动矢量预测发信号通知。除了预测运动矢量值之外,还可以预测先前编码/解码图片的参考索引。通常根据时间参考图片中的相邻块和/或处于同一位置块来预测参考索引。运动矢量的差分编码通常在切片边界上被禁用。

可伸缩视频编码可以指编码结构,其中一个比特流可以包含内容的多个表示,例如,以不同的位率、分辨率或帧速率。在这些情况下,接收器可以根据其特性(例如,与显示设备最佳匹配的分辨率)来提取期望的表示。替代地,服务器或网络元件可以根据例如网络特性或接收器的处理能力来提取要发送给接收器的比特流的部分。可以通过仅解码可伸缩比特流的特定部分来产生有意义的解码表示。可伸缩比特流通常由提供可用的最低质量视频的“基本层”和一个或多个增强层组成,该增强层在与较低层一起接收和解码时增强视频质量。为了改进增强层的编码效率,该层的编码表示通常取决于较低层。例如,可以从较低层预测增强层的运动和模式信息。类似地,可以使用较低层的像素数据来创建针对增强层的预测。

在一些可伸缩视频编码方案中,可以将视频信号编码到基本层和一个或多个增强层中。例如,增强层可以增强时间分辨率(即,帧速率)、空间分辨率、或者简单地增强由另一层或其一部分表示的视频内容的质量。每层连同其所有依赖层是视频信号的例如以一定的空间分辨率、时间分辨率和质量级别的一种表示。在本文档中,我们将可伸缩层连同其所有依赖层一起称为“可伸缩层表示”。对应于可伸缩层表示的可伸缩比特流的部分可以被提取和解码以产生某种保真度的原始信号的表示。

可伸缩性模式或可伸缩性维度可以包括但不限于以下各项:

-质量可伸缩性:基本层图片以比增强层图片更低的质量被编码,这可以例如在基本层中使用比增强层更大的量化参数值(即,用于变换系数量化的更大的量化步长大小)来实现。如下所述,质量可伸缩性可以被进一步分类为细颗粒或细粒度可伸缩性(fgs)、中颗粒或中粒度可伸缩性(mgs)、和/或粗颗粒或粗粒度可伸缩性(cgs)。

-空间可扩展性:基本层图片以比增强层图片更低的分辨率(即具有更少的样本)进行编码。空间可伸缩性和质量可伸缩性(特别是其粗略的可伸缩性类型)有时可能被认为是相同类型的可伸缩性。

-位深度可扩展性:基本层图片以比增强层图片(例如10或12位)更低的位深度(例如8位)进行编码。

-动态范围可伸缩性:可伸缩图层表示使用不同的音调映射函数和/或不同的光学传递函数来获得的不同的动态范围和/或图像。

-色度格式可伸缩性:基本层图片在色度样本阵列(例如,以4:2:0色度格式进行编码)中提供比增强层图片(例如4:4:4格式)更低的空间分辨率。

-色域可扩展性:增强层图片具有比基本层图片更丰富/更宽的颜色表示范围-例如,增强层可能具有uhdtv(itu-rbt.2020)色域,并且基本层可能具有itu-rbt.709色域。

-查看可伸缩性,其也可以被称为多视图编码。基本层代表第一视图,而增强层代表第二视图。

-深度可伸缩性,其也可以被称为深度增强编码。比特流的一层或一些层可以表示纹理视图,而其他一个或多个层可以表示深度视图。

-感兴趣区域的可伸缩性(如下所述)。

-隔行到逐行(interlaced-to-progressive)可伸缩性(也称为场到帧可伸缩性):利用增强层来增强基本层的编码隔行源内容资料以表示逐行源内容。基本层中的编码的隔行源内容可以包括编码字段、表示字段对的编码帧、或它们的混合。在隔行到逐行可伸缩性中,可以对基本层图片进行重新采样,使得其成为用于一个或多个增强层图片的合适的参考图片。

-混合编解码器可伸缩性(也称为编码标准可伸缩性):在混合编解码器可伸缩性中,基本层和增强层的比特流语法、语义和解码过程在不同的视频编码标准中被规定。因此,根据与增强层图片不同的编码标准或格式来对基本层图片进行编码。例如,基本层可以用h.264/avc进行编码,增强层可以用hevc多层扩展进行编码。

应当理解,许多可伸缩性类型可以被组合和应用在一起。例如色域可伸缩性和位深度可伸缩性可以被组合。

术语层可以在任意类型的可伸缩性(包括视图可伸缩性和深度增强)的情况下使用。增强层可以指任意类型的增强,诸如snr、空间、多视图、深度、位深度、色度格式、和/或色域增强。基本层可以指任意类型的基本视频序列,诸如基本视图、用于snr/空间可伸缩性的基本层、或用于深度增强视频编码的纹理基本视图。

目前正在研究和开发用于提供三维(3d)视频内容的各种技术。可以认为,在立体或双视图视频中,针对左眼呈现一个视频序列或视图,同时针对右眼呈现并行视图。对于能够实现视点切换的应用或者可能同时呈现大量视图的自动立体显示器而言,可能需要多于两个并行视图,并且让观看者从不同视点观察内容。

视图可被定义为代表一个摄像机或视点的图片序列。表示视图的图片也可以被称为视图分量。换句话说,视图分量可以被定义为单个访问单元中的视图的编码表示。在多视图视频编码中,多于一个视图被编码在比特流中。由于视图通常旨在被显示在立体或多视图自动立体显示器上或被用于其他3d布置,所以它们通常表示相同的场景并且在内容方面部分重叠,尽管它们表示内容的不同视点。因此,可以在多视图视频编码中利用视图间预测来利用视图间相关性并提高压缩效率。实现视图间预测的一种方式是在位于第一视图内的正被编码或解码的图片的参考图片列表中包括一个或多个其他视图的一个或多个解码图片。视图可伸缩性可以指这样的多视图视频编码或多视图视频比特流,其能够实现一个或多个编码视图的移除或省略,同时所得到的比特流保持一致并且表示具有比原始地更少数量视图的视频。

感兴趣区域(roi)编码可以被定义为指代以更高的保真度对视频内的特定区域进行编码。对于编码器和/或其他实体存在根据要进行编码的输入图片确定roi的几种方法。例如,可以使用面部检测,并且面部可以被确定为roi。另外地或替代地,在另一示例中,可以检测并确定焦点对象是roi,同时焦点外的对象被确定为在roi之外。另外地或替代地,在另一示例中,例如基于深度传感器,可以估计或者已知到物体的距离,并且可以将roi确定为相对地靠近摄像机而不是在背景中的那些物体。

roi可伸缩性可以被定义为其中增强层仅在参考层图片的一部分上例如在空间上、质量上、在位深度上和/或沿着其他可伸缩性维度来增强的可伸缩性类型。由于roi可伸缩性可以与其他类型的可伸缩性一起使用,因此可以考虑形成可伸缩性类型的不同分类。对于不同需求的roi编码存在多种不同的应用,其可以通过roi的可扩展性来实现。例如,可以传输增强层以提高基本层中的区域的质量和/或分辨率。接收增强层和基本层比特流的解码器可以解码这两个层,并且将解码图片彼此叠加并显示最终的图片。

可以推断参考层图片和增强层图片的空间对应关系,或者可以用一种或多种类型的所谓参考层位置偏移来指示参考层图片和增强层图片的空间对应关系。在hevc中,参考层位置偏移量可由编码器包括在pps中并且由解码器从pps解码。参考层位置偏移可以用于但不限于实现roi可伸缩性。参考层位置偏移可以包括伸缩参考层偏移、参考区域偏移、以及重新采样相位集合中的一项或多项。可以考虑伸缩的参考层偏移用以指定当前图片中与参考层中的解码图片中的参考区域的左上方亮度样本处于同一位置的样本之间的水平和垂直偏移、以及当前图片中与参考层中的解码图片中的参考区域的右下方亮度样本处于同一位置的样本之间的水平和垂直偏移。另一种方式是考虑经伸缩参考层偏移用以指定经上取样的参考区域的角点(corner)样本相对于增强层图片的相应角点样本的位置。伸缩参考层偏移值可以被签名。可以考虑参考区域偏移用以指定:参考层中的解码图片中的参考区域的左上方亮度样本与相同解码图片的左上方亮度样本之间的水平和垂直偏移,以及参考层中的解码图片中的参考区域的右下方亮度样本与相同解码图片的右下方亮度样本之间的水平和垂直偏移。参考区域偏移值可以被签名。可以考虑重新采样相位集合来指定用于层间预测的源图片的重新采样过程中使用的相位偏移。可以为亮度和色度分量提供不同的相位偏移。

一些可伸缩视频编码方案可能要求irap图片跨层用以下方式进行对齐:访问单元中的所有图片都是irap图片,或者访问单元中没有图片是irap图片。其他可伸缩视频编码方案(诸如hevc的多层扩展)可以允许未被对齐的irap图片,即,访问单元中的一张或多张图片是irap图片,同时访问单元中的一张或多张其他图片是不是irap图片。具有不跨越层对齐的irap图片或类似的可伸缩比特流可以用于例如在基本层中提供更频繁的irap图片,其中由于例如较小的空间分辨率,它们可以具有较小的编码大小。视频解码方案中可以包括用于解码的逐层启动的过程或机制。因此,解码器可以在基本层包含irap图片时开始对比特流进行解码,并且当其包含irap图片时逐步开始解码其他层。换句话说,在解码机制或过程的逐层启动中,随着来自附加增强层的后续图片在解码过程中被解码,解码器逐渐增加解码层的数量(其中层可表示空间分辨率、质量级别、视图、诸如深度的附加组件或组合中的增强)。解码层的数量的逐渐增加例如可以被视为图片质量的逐渐改善(在质量和空间可伸缩性的情况下)。

分层启动机制可以在特定增强层中以解码顺序生成第一图片的参考图片的不可用图片。替代地,解码器可以省略在解码顺序中可以从其开始对层的解码的irap图片之前的图片的解码。可以省略的这些图片可以由编码器或另一实体在比特流内具体标记。例如,可以为它们使用一个或多个特定的nal单元类型。无论这些图片是用nal单元类型特定标记的还是例如由解码器推断的,这些图片均可以被称为跨层随机访问跳过(cl-ras)图片。解码器可以省略所生成的不可用图片和解码cl-ras图片的输出。

可扩展性可以以两种基本方式实现。通过引入用于从可伸缩表示的较低层执行像素值或语法的预测的新编码模式,或者通过将较低层图片放置到较高层的参考图片缓冲区(例如,解码图片缓冲区,dpb)。第一种方案可能更灵活,因此在大多数情况下可以提供更好的编码效率。然而,第二种基于参考帧的可伸缩性方案可以在对单层编解码器以最小改变来高效地实现,同时仍然实现大部分可用的编码效率增益。基本上,基于参考帧的可扩展性编解码器可以通过对所有层利用相同的硬件或软件实现来实现,只是通过外部部件来关注dpb管理。

用于质量可伸缩性(也称为信噪比或snr)和/或空间可伸缩性的可伸缩视频编码器可以如下实现。对于基本层,可以使用传统的不可伸缩视频编码器和解码器。基本层的重建/解码图片被包括在用于增强层的参考图片缓冲区和/或参考图片列表中。在空间可伸缩性的情况下,可以在重建/解码的基本层图片被插入用于增强层图片的参考图片列表之前,重建/解码的基本层图片被上采样。类似于增强层的解码参考图片,可以将基本层解码图片插入用于增强层图片的编码/解码的参考图片列表中。因此,编码器可以选择基本层参考图片作为帧间预测参考,并且指示将其用于编码比特流中的参考图片索引。解码器从比特流中(例如从参考图片索引中)解码出基本层图片被用作增强层的帧间预测参考。当解码基本层图片被用作增强层的预测参考时,其被称为层间参考图片。

尽管前面的段落描述了具有具有增强层和基本层的两个可伸缩性层的可伸缩视频编解码器,但是需要理解的是,可以将该描述一般化为具有多于两层的可伸缩性层次结构中的任意两个层。在这种情况下,第二增强层可以在编码和/或解码过程中依赖于第一增强层,并且因此第一增强层可以被视为用于第二增强层的编码和/或解码的基本层。此外,需要理解的是,可能存在来自参考图片缓冲区中的多于一个层的层间参考图片或增强层的参考图片列表,并且这些层间参考图片中的每一个可被认为驻留在基本层或用于被编码和/或解码的增强层的参考层中。此外,需要理解的是,除参考层图片上采样以外的其他类型的层间处理可以替代地或附加地进行。例如,参考层图片的样本的位深度可以被转换为增强层的位深度和/或样本值可以经历从参考层的颜色空间到增强层的颜色空间的映射。

可伸缩视频编码和/或解码方案可以使用多循环编码和/或解码,其可以被表征如下。在编码/解码中,基本层图片可以被重建/解码以用作在相同层内在编码/解码顺序中的后续图片的运动补偿参考图片,或者作为用于层间(或视图间或分量间)预测的参考。重建/解码的基本层图片可以存储在dpb中。类似地,增强层图片可以被重建/解码以被用作在相同层内在编码/解码顺序中的后续图片的运动补偿参考图片,或者作为用于更高的增强层(如果有的话)的层间(或者视图间或者分量间)预测的参考。除了重建/解码的样本值之外,可以在层间/分量间/视图间预测中使用基本/参考层的语法元素值或从基本/参考层的语法元素值导出的变量。

层间预测可以以取决于来自与当前(被编码或解码)图片的层不同的层的参考图片的数据元素(例如,样本值或运动矢量)的方式被定义为预测。存在许多类型的层间预测,并且可以应用于可伸缩视频编码器/解码器中。可用类型的层间预测可以例如取决于比特流或比特流内的特定层根据其正被编码的、或者在解码时比特流或比特流内的特定层被表示符合的编码简档。替代地或另外地,可用类型的层间预测可以取决于可伸缩性的类型或正在使用的可伸缩编解码器或视频编码标准修改的类型(例如shvc、mv-hevc、或3d-hevc)。

层间预测的类型可以包括但不限于以下一项或多项:层间样本预测、层间运动预测、层间残差预测。在层间样本预测中,用于层间预测的源图片的重建样本值的至少一个子集被用作用于预测当前图片的样本值的参考。在层间运动预测中,用于层间预测的源图片的运动矢量的至少一个子集被用作用于预测当前图片的运动矢量的参考。通常,关于哪些参考图片与运动向量相关联的预测信息也被包括在层间运动预测中。例如,用于运动矢量的参考图片的参考索引可以被层间预测,和/或图片顺序计数或参考图片的任意其它标识可以被层间预测。在一些情况下,层间运动预测还可以包括块编码模式、首部信息、块分区、和/或其它类似的参数的预测。在一些情况下,诸如块分区的层间预测的编码参数预测可被认为是另一种类型的层间预测。在层间残差预测中,用于层间预测的源图片的所选块的预测误差或残差被用于预测当前图片。在诸如3d-hevc的多视点加深度编码中,可以应用交叉分量层间预测,其中第一类型的图片(诸如深度图片)可以影响第二类型的图片(诸如传统的纹理图片)的层间预测。举例来说,可以应用视差(disparity)补偿的层间样本值及/或运动预测,其中视差可至少部分地从深度图片导出。

直接参考层可以被定义为可以用于层针对其是直接参考层的另一层的层间预测的层。直接预测层可以被定义为另一层针对其是直接参考层的层。间接参考层可以被定义为作为不是第二层的直接参考层而是作为第三层的直接参考层的层,该第三层是第二参考层的的直接参考层的直接参考层或间接参考层,该层针对其是间接参考层。间接预测层可以被定义为另一层针对其是间接参考层的层。独立层可以被定义为不具有直接参考层的层。换句话说,独立层不是使用层间预测而被预测的。非基本层可以被定义为除基本层以外的任意其他层,并且基本层可以被定义为比特流中的最低层。独立的非基本层可以被定义为既是独立层又是非基本层的层。

可以将用于层间预测的源图片定义为解码图片,该解码图片是层间参考图片或者被用于导出层间参考图片,该层间参考图片可以用作用于当前图片的预测的参考图片。在多层hevc扩展中,层间参考图片被包括在当前图片的层间参考图片集合中。层间参考图片可被定义为可用于当前图片的层间预测的参考图片。在编码和/或解码过程中,层间参考图片可被视为长期参考图片。

用于层间预测的源图片可能被要求与当前图片处于相同的访问单元中。在一些情况下,例如当不需要重新采样、运动场映射、或其他层间处理时,用于层间预测的源图片和相应的层间参考图片可以是完全相同的。在一些情况下,例如当需要重新采样来将参考层的采样网格与当前图片(被编码或解码)的层的采样网格进行匹配时,应用层间处理来从源图片导出层间参考图片用于层间预测。下面的段落描述了这种层间处理的示例。

层间样本预测可以包括对用于层间预测的源图片的样本阵列进行重新采样。编码器和/或解码器可以例如基于针对一对增强层及其参考层的参考层位置偏移来为该一对增强层及其参考层导出水平伸缩因子(例如存储在变量scalefactorx中)和垂直伸缩因子(例如存储在变量scalefactory中)。如果伸缩因子中的任一个或两个不等于1,则可以对用于层间预测的源图片进行重新采样以生成用于预测增强层图片的层间参考图片。用于重新采样的过程和/或滤波器可以例如在编码标准中预定义、和/或由比特流中的编码器指示(例如,作为预定义的重新采样过程或滤波器中的索引)、和/或由来自比特流的解码器进行解码。不同的重新采样处理可由编码器指示、和/或由解码器解码、和/或由编码器和/或解码器根据比例因子的值推断。例如,当两个伸缩因子都小于1时,可以推断预定义的下采样处理;并且当两个伸缩因子都大于1时,可以推断预定义的上采样过程。另外地或替代地,取决于哪个样本阵列被处理,可以由编码器指示、和/或由解码器解码、和/或由编码器和/或解码器推断不同的重新采样过程。例如,可以推断用于亮度样本阵列的第一重新采样过程,并且可以推断用于色度样本阵列的第二重新采样过程。

重新采样可以例如以图片方式(针对用于层间预测的整个源图片或用于层间预测的源图片的参考区域)执行、以切片方式(例如,与增强层切片相对应的参考层区域)、以块方式(例如,与增强层编码树单元相对应的参考层区域)。所确定的区域(例如,增强层图片中的图片、切片、或编码树单元)的重新采样可以例如通过在所确定的区域的所有样本位置上循环并且针对每个样本位置执行以样本方式重新采样过程来执行。然而,应当理解,存在对所确定的区域进行重新采样的其他可能性-例如,某个样本位置的滤波可以使用先前样本位置的变量值。

shvc能够实现基于3d查找表(lut)的加权预测或颜色映射过程的使用,用于(但不限于)色域可伸缩性。3dlut方案可以描述如下。每个颜色分量的样本值范围可以首先被分割成两个范围,形成2×2×2的八分圆,然后亮度范围可以被进一步分割成四个部分,得到高达8×2×2的八分圆。在每个八分圆内,应用十字(cross)颜色分量线性模型来执行颜色映射。对于每个八分圆,四个顶点被编码到比特流中和/或从比特流中解码以表示八分圆内的线性模型。颜色映射表针对每个颜色分量被分别编码到比特流中和/或从比特流中解码。颜色映射可以被认为涉及三个步骤:首先,确定给定的参考层样本三元组(y、cb、cr)所属的八分圆。其次,可以通过应用颜色分量调整过程来对齐亮度和色度的样本位置。第三,应用了为所确定的八分圆所指定的线性映射。映射可以具有交叉分量性质,即一个颜色分量的输入值可以影响另一颜色分量的映射值。此外,如果还需要层间重新采样,则对重新采样过程的输入是已被颜色映射的图片。颜色映射可以(但不需要)将第一位深度的样本映射到另一位深度的样本。

在mv-hevc、smv-hevc和基于参考索引的shvc解决方案中,对于支持层间纹理预测,块级语法和解码过程不改变。只有高级语法已经被修改(与hevc的高级语法相比),使得来自相同访问单元的参考层的重建图像(如果需要的话,经上采样的)可以用作用于对当前增强层图片进行编码的参考图片。层间参考图片以及时间参考图片被包括在参考图片列表中。用信号通知的参考图片索引用于指示当前的预测单元(pu)是从时间参考图片还是从层间参考图片预测的。该特征的使用可以由编码器控制,并且在在比特流中指示,例如在视频参数集合、序列参数集合、图片参数、和/或切片首部中。指示可以是专用于增强层、参考层、增强层和参考层的对、特定temporalid值、特定图片类型(例如rap图片)、特定切片类型(例如p和b切片但非i切片)、特定poc值的图片、和/或特定访问单元。指示的范围和/或持续性可以与指示本身一起被指示和/或可以被推断。

在mv-hevc、smv-hevc和基于参考索引的shvc解决方案中的参考列表可以使用特定过程而被初始化,在该特定过程中,层间参考图片(如果有的话)可以包括在初始参考图片列表中。其被构造如下。例如,可以首先以与hevc中的参考列表构造相同的方式将时间参考添加到参考列表(l0、l1)中。此后,可以在时间参考之后添加层间参考。层间参考图片可以例如从层依赖性信息(诸如如上描述的从vps扩展导出的reflayerid[i]变量)推断出。如果当前增强层切片是p切片,则层间参考图片可以被添加到初始参考图片列表l0,并且如果当前增强层切片是b切片,则层间参考图片可以被添加到初始参考图片列表l0和l1两者。层间参考图片可以以特定的顺序被添加到参考图片列表,这对于两个参考图片列表可以相同但不需要相同。例如,与初始参考图片列表0相比,将层间参考图片添加到初始参考图片列表1的相反顺序可以被使用。例如,可以将层间参考图片以nuh_layer_id的升序插入初始参考图片0,同时相反顺序可用于初始化初始参考图片列表1。

在编码和/或解码过程中,层间参考图片可被视为长期参考图片。

层间运动预测可以如下实现。诸如h.265/hevc的tmvp的时间运动矢量预测过程可以用于利用不同层之间的运动数据的冗余。这可以按如下进行:当解码的基本层图片被上采样时,基本层图片的运动数据也被映射到增强层的分辨率。如果增强层图片利用来自基本层图片的运动矢量预测,例如利用诸如h.265/hevc的tmvp的时间运动矢量预测机制,则对应的运动矢量预测器来源于经映射的基本层运动字段。这种方式可以利用不同层的运动数据之间的相关性来提高可伸缩视频编码器的编码效率。

在shvc和/或类似物中,层间运动预测可以通过将层间参考图片设置为用于tmvp导出的处于同一位置的参考图片而被执行。例如,可以执行两个层之间的运动场映射过程,以避免tmvp导出中的块级解码过程修改。运动场映射特征的使用可以由编码器控制,并且在比特流中(例如在视频参数集合、序列参数集合、图片参数、和/或切片首部中)被指示。该指示可以特定于增强层、参考层、增强层和参考层的对、特定temporalid值、特定图片类型(例如rap图片)、特定切片类型(例如p和b切片但非i切片)、特定poc值的图片、和/或特定访问单元。该指示的范围和/或持续性可以与指示本身一起被指示和/或可以被推断。

在用于空间可伸缩性的运动场映射过程中,可以基于用于层间预测的相应源图片的运动场来获得经上采样的层间参考图片的运动场。用于经上采样的层间参考图片的每个块的运动参数(其可以例如包括水平和/或垂直运动矢量值和参考索引)和/或预测模式可以从用于层间预测的源图片中的处于同一位置块的对应的运动参数和/或预测模式中导出。用于经上采样的层间参考图片中的运动参数和/或预测模式的导出的块大小可以例如是16×16。16×16块大小与在使用参考图片的压缩运动场情况下的hevctmvp导出过程相同。

在一些情况下,增强层中的数据可以在特定位置之后或者甚至在任意位置处被截断,其中每个截断位置可以包括表示愈发增强的视觉质量的附加数据。这种可伸缩性被称为细颗粒(粒度)可伸缩性(fgs)。

类似于mvc,在mv-hevc中,视图间参考图片可以被包括在被编码或解码的当前图片的参考图片列表中。shvc使用多循环解码操作(不同于h.264/avc的svc扩展)。可以认为shvc使用基于参考索引的方案,即层间参考图片可以被包括在正被编码或解码的当前图片的一个或多个参考图片列表中(如上文所描述的)。

对于增强层编码,可以在shvc、mv-hevc等中使用hevc基本层的概念和编码工具。然而,附加层间预测工具可以被集成到shvc、mv-hevc和/或类似的编解码器,该附加层间预测工具在参考层中采用已编码的数据[包括经重建的图片样本和运动参数(也称为运动信息)]以用于高效地对增强层进行编码。

如上面所讨论的,b切片以及由此b帧是从多个帧中被预测的,其中预测可以基于它们从其被预测的帧的简单平均值。然而,也可以使用加权双向预测来计算b帧,该加权双向预测诸如基于时间的加权平均或基于诸如亮度的参数的加权平均。加权预测参数可以被包括在预测参数集合中作为子集。加权双向预测更强调帧中的一个帧或者帧的某些特征。不同的编解码器以不同的方式实现加权双向预测。例如,h.264中的加权预测支持过去帧和未来帧的简单平均、基于到过去帧和未来帧的时间距离的直接模式加权、以及基于过去帧和未来帧的亮度(或其他参数)的加权预测。h.265/hevc视频编码标准描述了一种构建具有和不具有使用加权预测的选项的双向预测运动补偿样本块的方法。

加权双向预测需要执行两个运动补偿预测,随后进行用于伸缩两个预测信号并且将该两个预测信号相加在一起的操作,因此通常提供良好的编码效率。h.265/hevc中使用的运动补偿双向预测通过平均两个运动补偿操作的结果来构建样本预测块。在加权预测的情况下,可以针对两个预测以不同的权重来执行操作,并且可以将另一偏移添加到结果。然而,这些操作中没有一个考虑预测块的特殊特性,诸如以下偶然情况,单一预测块中的任一个将比(加权)平均的双向预测块提供更好的样本估计。因此,已知的加权双向预测方法在许多情况下不提供最优性能。

现在为了改进运动补偿双向预测的准确度,在下文中提出了一种用于运动补偿预测的改进方法。

在图5中公开的方法中,创建第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1(500),基于l0和l1之间的差异标识一个或多个样本子集(502);并确定至少应用于所述一个或多个样本子集以补偿差异的运动补偿过程(504)。

换句话说,分析由运动补偿双向预测操作生成的两个样本预测,于是标识这样的场景,其中该预测实质上偏离,从而指示输入样本中的突变。在这种场景中,两个样本预测提供相当冲突的预测,并且双向预测运动补偿通常不能够足够精确地预测输入样本。因此,另一运动补偿过程至少应用于其中预测实质上相互偏离的样本,以补偿冲突的预测。

根据一个实施例,所述运动补偿处理包括以下一项或多项:

-指示要应用的预测类型的样本级别决策;

-编码用于指示l0和l1的权重的调制信号;

-在预测块级别上发信号通知以指示在l0和l1中标识的不同类别偏离的预期操作。

因此,解码器被指示关于所述运动补偿过程中的至少一个,并且解码器然后可以应用所指示的运动补偿处理来高效地解决冲突并且获得改善的预测性能。

根据一个实施例,所述样本子集包括其中第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1彼此相差超过预定值的样本。因此,发生输入样本的突变的样本子集可以被指示为l0和l1之间超过预定值的差异。

根据一个实施例,所述样本的子集包括在预测块内具有l0和l1之间的最大差异的预定数量的样本。本文中,样本的子集可以包括n个最偏离的样本;即l0和l1之差异最大的n个样本。

根据一个实施例,所述标识和确定还包括计算l0和l1之间的差异;以及基于所述l0与l1之间的所述差异来为预测单元创建运动补偿预测。

图6示出了一维中的双向预测运动补偿的典型场景。图6示出了显示相同行样本上的8个连续样本的简化示例。在本例中,l0和l1预测的平均(即由b指示的双向预测)能够在针对其的l0和l1预测之间的差异小的那些样本(即样本1-3和6-8)中良好地预测输入信号。然而,当l0和l1的预测更实质性偏离时(即在样本4和5中),双向预测b不再能够充分预测输入样本。在这个示例的情况下,l1预测对于样本值4和5将是比双向预测b更好的预测器。

现在,根据实施例操作的编码器可以分析l0和l1预测器之间的差异,并且指示两个最偏离的样本4和5应当是l1预测,同时其余样本可以是双向预测的。类似地,当解码器接收到针对其的l0和l1预测器偏离最大的预测单元pu内的两个样本是l1预测的指示时,其可以分析l0和l1预测以找到两个样本的位置并且为这些位置的样本应用l1预测。替代地,编码器可显式地指示pu内的样本的数量(即4和5),使得解码器可直接将l1预测器应用于所述样本。

根据可与其它实施例组合或独立于其他实施例实现的实施例,所述方法包括计算l0与l1之间的差异;基于所述l0和l1之间的差异来确定经重建预测误差信号;确定运动补偿预测;以及将所述重建预测误差信号添加到运动补偿预测。

本文中,公开了其中应用基于所生成的运动补偿的差异信号的预测误差编码的替代实施方式。在这种方案中,编解码器假定偏离的预测信号是预测误差的潜在位置的指示,并且相应地调整其预测误差编码模块的操作。预测误差信号可以基于l0和l1预测之间的差异而以不同的方式被重建。

根据实施例,该方法还包括基于最偏离的l0和l1样本的位置将用于确定预测误差信号的信息约束到编码单元的某些区域。

根据实施例,方法还包括:对包括整个预测单元、变换单元、或编码单元的变换区域的预测误差信号进行编码;以及仅将预测误差信号应用于变换区域内的样本子集。

在下文中,公开了用于实现实施例的各种选项。

根据实施例,可以以各种方式执行中间l0和l1预测的计算及其差异。例如,可以对计算进行组合,只对样本子集或预测单元内的所有样本进行计算,可以以不同的精度进行计算,结果可以被裁剪到一定的范围内。

根据实施例,不是对预测单元应用操作,而是可以利用图片的任意子集或整个图片。

根据实施例,该方法还包括对预测单元内的所有样本或样本的子集应用运动补偿处理。例如,可以基于差异信号来预测l0和l1预测偏离最大的样本,而其余样本可以被单向预测或双向预测。

运动补偿预测可以以多种方式执行。例如:

-编码器可以指示一定数量的最偏离的l0和l1预测样本应当被标识,并且可以进一步指示这些样本是使用l0预测、l1预测还是这些的组合来预测。该指示可以针对每个最偏离的样本或共同最偏离的样本的某个分组进行。

-如果l0和l1样本预测之间的差异处于特定范围,编码器可指示样本偏移将被应用。

-当l0和l1预测之间的差异处于特定范围时,编码器可指示l0或l1预测或其组合被应用于样本。

-差异信号可以被调制(例如用dct),以指示当计算最终预测信号时如何加权l0和l1预测。

-可以通过将整体或部分差异(在l0和l1之间)添加到双向预测样本来执行预测。

-可以通过伸缩所标识的差异信号(l0和l1预测器之间的差异)并且将其添加到双向预测来执行预测。

-编码器可以指示或者解码器可以定义在构建预测时l0和l1预测器以不同的权重被加权。

根据实施例,可以考虑l0和l1预测之间的差异来选择预测误差编码的类型。例如,如果在l0和l1预测之间存在具有相对较大差异的一定数量的样本,则可以选择变换旁路模式,并且可以针对这些位置传输和解码表示预测误差的样本值差异。此外,可以基于差异信号来调整预测误差类型的编码,使得基于差异信号的特性来增加或减少在模式的算术编码中使用的模式或概率的定义。

根据实施例,可以基于l0和l1预测器的分析的输出来选择在预测误差编码中使用的变换。例如,如果通过计算l0和l1预测器的差异而被创建的差异样本块包含某些方向属性,则可以选择为对这样的方向性进行编码而设计的变换。

图7示出了适于采用本发明的实施例的视频解码器的框图。图7描绘了双层解码器的结构,但是应当理解,解码操作可以类似地用于单层解码器中。

视频解码器550包括用于基本视图分量的第一解码器部分552和用于非基本视图分量的第二解码器部分554。框556示出了解复用器,其用于将关于基本视图分量的信息递送到第一解码器部分552并且将关于非基本视图分量的信息递送到第二解码器部分554。参考p'n代表图像块的预测表示。参考d'n代表重建的预测误差信号。框704、804示出初步经重建图像(i'n)。参考r'n代表最终的重建图像。框703、803图示了逆变换(t-1)。框702、802示出了逆量化(q-1)。框701、801示出了熵解码(e-1)。框705、805示出参考帧存储器(rfm)。框706、806图示预测(p)(帧间预测或帧内预测)。框707、807示出了滤波(f)。可以使用框708、808来将解码的预测误差信息与预测的基本视图/非基本视图分量进行组合以获得初步重建图像(i'n)。可以从第一解码器部分552输出709初步重建和滤波的基本视图图像,并且可以从第一解码器部分554输出809初步重建和滤波的基本视图图像。

本文中,解码器应被解释为覆盖能够执行解码操作的任意操作单元,诸如播放器、接收器、网关、解复用器和/或解码器。

图8示出了根据本发明实施例的解码器的操作的流程图。实施例的解码操作以其他方式与编码操作类似,除了解码器获得关于另一运动补偿过程可以为其提供更好精度的样本的指示之外。因此,当将运动补偿预测应用于所接收样本时,解码器创建(800)第一中间运动补偿样本预测l0和第二中间运动补偿样本预测l1,获得(802)关于基于l0和l1预测之间的差异而被定义的一个或多个样本子集的指示;并且至少在所述一个或多个样本子集上应用(804)用以补偿所述差异的运动补偿过程。

因此,上述编码和解码方法提供了用于通过更好地考虑预测块的特殊特性来提高运动补偿预测的精度的手段。

图9是其中可以实现各种实施例的示例多媒体通信系统的图形表示。数据源1510以模拟、非压缩数字、或压缩数字格式、或这些格式的任意组合来提供源信号。编码器1520可以包括预处理或者与预处理连接,预处理诸如数据格式转换和/或源信号的滤波。编码器1520将源信号编码成编码媒体比特流。应当注意的是,要解码的比特流可以直接或间接地从位于几乎任意类型的网络内的远程设备接收。附加地,可以从本地硬件或软件接收比特流。编码器1520可以能够编码多于一种媒体类型,诸如音频和视频,或者可能需要多于一个的编码器1520来对源信号的不同媒体类型进行编码。编码器1520还可以获得合成产生的输入(诸如图形和文本),或者其可以能够产生合成媒体的编码比特流。在下文中,仅考虑一个媒体类型的一个编码媒体比特流的处理以简化描述。然而,应当注意的是,典型的实时广播服务包括几个流(通常至少一个音频、视频和文本子标题流)。还应当注意的是,该系统可以包括许多编码器,但是在附图中仅仅示出了一个编码器1520以简化描述而不缺乏一般性。应当进一步理解的是,虽然本文包含的文本和示例可以具体描述编码过程,但是本领域技术人员将会理解,相同的概念和原理也适用于对应的解码过程,反之亦然。

编码媒体比特流可以被传送到存储器1530。存储器1530可以包括用于存储编码媒体比特流的任意类型的大容量存储器。存储器1530中的编码媒体比特流的格式可以是基本自包含比特流格式,或者一个或多个编码媒体比特流可以被封装到容器文件中。如果一个或多个媒体比特流被封装在容器文件中,则可以使用文件生成器(图中未示出)来在文件中存储一个或多个媒体比特流,并且创建文件格式元数据,其也可以存储在文件中。编码器1520或存储器1530可以包括文件生成器,或者文件生成器可操作地附接到编码器1520或存储器1530。一些系统“实况(live)”操作,即省略存储并且直接从编码器1520向发送器1540传输编码媒体比特流传。编码媒体比特流然后可以根据需要被传送到也被称为服务器的发送器1540。传输中使用的格式可以是基本自包含比特流格式、分组流格式,或者一个或多个编码媒体比特流可以被封装到容器文件中。编码器1520、存储器1530和服务器1540可以驻留在相同的物理设备中,或者它们可以被包括在分离的设备中。编码器1520和服务器1540可以用实况实时内容来操作,在这种情况下,编码媒体比特流通常不是永久存储的,而是在内容编码器1520和/或服务器1540中缓存一小段时间以消除处理延迟、传输延迟、和编码媒体比特率。

服务器1540使用通信协议栈来发送编码媒体比特流。堆栈可以包括但不限于实时传输协议(rtp)、用户数据报协议(udp)、超文本传输协议(http)、传输控制协议(tcp)、和因特网协议(ip)中的一项或多项。当通信协议栈是面向分组的时,服务器1540将编码媒体比特流封装到分组中。例如,当使用rtp时,服务器1540根据rtp有效载荷格式来将编码媒体比特流封装到rtp分组中。通常,每种媒体类型都有专用的rtp有效载荷格式。应当再次注意的是,系统可以包含多于一个服务器1540,但是为了简单起见,以下描述仅考虑一个服务器1540。

如果媒体内容被封装在用于存储器1530的容器文件中或者用于将数据输入到发送器1540,则发送器1540可以包括“发送文件解析器”(图中未示出)或可操作地附接到“发送文件解析器”(图中未示出)。具体地,如果容器文件不是如此传输的,而是所包含的编码媒体比特流中的至少一个被封装用于通过通信协议进行传输,则发送文件解析器定位将通过通信协议而被传送的编码媒体比特流的适当部分。发送文件解析器也可以帮助为通信协议创建正确的格式,诸如分组首部和有效载荷。多媒体容器文件可以包含封装指令(诸如iso基本媒体文件格式中的提示轨道),用于在通信协议上对所包含的媒体比特流中的至少一个的封装。

服务器1540可以或可以不通过通信网络连接到网关1550。网关也可以或者替代地被称为中间盒。要注意的是,系统通常可以包括任意数量的网关或类似物,但是为了简单起见,以下描述仅考虑一个网关1550。网关1550可以执行不同类型的功能,诸如根据一个通信协议栈到另一通信协议栈的分组流的转换、数据流的合并和分流(fork)、以及根据下行链路和/或接收器能力对数据流的操纵,诸如根据主要的下行链路网络条件来控制转发的流的比特率。网关1550的示例包括多点会议控制单元(mcu)、电路交换和分组交换视频电话之间的网关、蜂窝一键通(poc)服务器,手持数字视频广播(dvb-h)系统中的ip封装器、机顶盒或向家庭无线网络本地转发广播传输的其他设备。当使用rtp时,网关1550可以被称为rtp混合器或rtp转换器,并且可以充当rtp连接的端点。代替网关1550或除网关1550之外,系统可以包括连接视频序列或比特流的拼接器(splicer)。

系统包括一个或多个接收器1560,其通常能够将所发送的信号接收、解调和解封装成编码媒体比特流。编码媒体比特流可以被传送到记录存储器1570。记录存储器1570可以包括用于存储编码媒体比特流的任意类型的大容量存储器。记录存储器1570可以替代地或附加地包括计算存储器,诸如随机存取存储器。记录存储器1570中的编码媒体比特流的格式可以是基本自包含比特流格式,或者一个或多个编码媒体比特流可以被封装到容器文件中。如果存在彼此相关联的诸如音频流和视频流的多个编码媒体比特流,则通常使用容器文件,并且接收器1560包括从输入流产生容器文件的容器文件生成器或附接到从输入流产生容器文件的容器文件生成器。一些系统“实况”操作,即省略记录存储器1570,并且将编码媒体比特流从接收器1560直接传送到解码器1580。在一些系统中,仅记录流的最近部分(例如最近的10分钟所记录的流的摘录)被保持在记录存储器1570中,而任意较早的所记录的数据被从记录存储1570中丢弃。

编码媒体比特流可以从记录存储器1570传送到解码器1580。如果存在许多诸如音频流和视频流的编码媒体比特流彼此相关联并且被封装到容器文件,或者单个媒体比特流被封装在容器文件中,例如为了更容易访问,使用文件解析器(图中未示出)将每个编码媒体比特流从容器文件解封装。记录存储器1570或解码器1580可以包括文件解析器,或者文件解析器附接到记录存储且1570或解码器1580。还应当注意的是,该系统可以包括许多解码器,但是这里仅讨论一个解码器1570以简化描述而不缺乏一般性

编码媒体比特流可以由解码器1570进一步处理,解码器1570的输出是一个或多个未压缩媒体流。最后,例如,渲染器1590可以用扬声器或显示器再现未压缩的媒体流。接收器1560、记录存储器1570、解码器1570和呈现器1590可以驻留在相同的物理设备中,或者它们可以被包括在分离的设备中。

发送器1540和/或网关1550可以被配置为执行例如用于视图切换、比特率适配、和/或快速启动的不同表示之间的切换,并且/或者发送器1540和/或网关1550可以是被配置为选择传输的表示。在不同的表示之间的切换可能出于多种原因而发生,诸如响应于接收器1560的请求或比特流在其上被传送的网络的盛行条件(诸如吞吐量)。来自接收器的请求可以是例如针对来自与之前不同的表示的分段或子分段的请求、针对所传输的可伸缩性层和/或子层的改变的请求、或者与前一个相比具有不同能力的呈现设备的改变。对分段的请求可以是httpget请求。对子分段的请求可以是具有字节范围的httpget请求。另外地或替代地,可以使用比特率调整或比特率适配,例如用于在流传输服务中提供所谓的快速启动,其中在开始或按顺序随机访问流之后,所传输的流的比特率低于信道比特率,以便于立即开始播放,并且实现容许偶尔的分组延迟和/或重传的缓冲区占用等级。比特率适配可以包括以各种顺序发生的多个表示或层上切换和表示或层下切换操作。

解码器1580可以被配置为执行例如用于视图切换、比特率适配、和/或快速启动的不同表示之间的切换,和/或解码器1580可以被配置为选择所传输的表示。在不同的表示之间的切换可能出于多种原因而发生,诸如为了实现更快的解码操作或者将传输的比特流例如在比特率方面适配于在其上传送比特流的网络的盛行条件(诸如吞吐量)。例如,如果包括解码器580的设备是多任务处理并且将计算资源用于除了对可伸缩视频比特流进行解码之外的其他目的,则可能需要更快的解码操作。在另一示例中,当以比正常播放速度更快的速度播放内容时(例如比传统实时播放速率快两倍或三倍),可能需要更快的解码操作。解码器操作的速度可以在解码或播放期间改变,例如作为对从正常重放速率的快进播放改变的响应,或者反之亦然,从而可以以各种顺序进行多个层上切换和层下切换操作。

在上文中,已经在诸如shvc和mv-hevc的多层hevc扩展的上下文中描述了示例实施例。需要理解的是,可以在任意其他的多层编码场景中类似地实现实施例。上面的一些描述具体地涉及shvc或mv-hevc或两者,而需要理解的是,描述可以类似地指代任意多层hevc扩展或任意其它多层编码场景。上面的一些描述将hevc称为包括hevc标准的基本版本和hevc标准的所有扩展(即,hevc版本1、单层扩展(例如,rext、屏幕内容编码)、以及多层扩展(mv-hevc、shvc、3d-hevc)。

在以上参考编码器描述了示例实施例的情况下,需要理解的是,所得到的比特流和解码器可以在其中具有对应的元素。类似地,在已经参考解码器描述了示例实施例的情况下,需要理解的是,编码器可以具有用于生成要由解码器解码的比特流的结构和/或计算机程序。

上面描述的本发明的实施例根据分离的编码器和解码器装置来描述编解码器,以辅助所涉及的处理的理解。然而,可以理解的是,该装置、结构和操作可以被实现为单个编码器-解码器装置/结构/操作。此外,编码器和解码器可以共享通常元素中的一些或全部。

尽管以上示例描述了在电子设备内的编解码器内操作的本发明的实施例,但是应理解的是,权利要求中限定的本发明可以被实现为任意视频编解码器的一部分。因此,例如,本发明的实施例可以在可以在固定或有线通信路径上实现视频编码的视频编解码器中实现。

因此,用户设备可以包括诸如以上在本发明的实施例中描述的视频编解码器。应当理解,术语用户设备旨在覆盖任意适当类型的无线用户设备,诸如移动电话、便携式数据处理设备、或便携式web浏览器。

此外,公共陆地移动网络(plmn)的元件还可以包括如上所述的视频编解码器。

通常,本发明的各种实施例可以用硬件或专用电路、软件、逻辑、或其任意组合来实现。例如,一些方面可以用硬件来实现,而其他方面可以用可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管可以将本发明的各个方面示出和描述为框图、流程图或使用一些其他图形表示,但是很好理解的是,本文描述的这些框、设备、系统、技术或方法可以实现在作为非限制性实施例的硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或其一些组合中。

本发明的实施例可以由移动设备的数据处理器(诸如在处理器实体中)可执行的计算机软件来实现,或者通过硬件、或者通过软件和硬件的组合来实现。进一步在这方面,应当注意的是,如附图中的逻辑流程的任意框可以表示程序步骤、或者互连逻辑电路、框和功能、或者程序步骤和逻辑电路、方框和功能的组合。软件可以存储在诸如存储器芯片、处理器内实现的存储器块、诸如硬盘或软盘的磁介质、以及诸如例如dvd及其数据变型、cd的光学介质的物理介质上。

存储器可以是适于本地技术环境的任意类型,并且可以使用任意合适的数据存储技术来实现,诸如基于半导体的存储器设备、磁存储器设备和系统、光存储器设备和系统、固定存储器和可移除存储器。数据处理器可以是适用于本地技术环境的任意类型,并且可以包括作为非限制示例的通用计算机、专用计算机、微处理器、数字信号处理器(dsp)和基于多核处理器架构的处理器一项或多项。

本发明的实施例可以在诸如集成电路模块的各种组件中实践。集成电路的设计大体上是高度自动化的处理。复杂和强大的软件工具可用于将逻辑级设计转换成准备在半导体衬底上蚀刻和形成的半导体电路设计。

诸如加利福尼亚州山景城的synopsys公司和加利福尼亚州圣何塞的cadence设计公司提供的程序使用已建立的设计规则以及预存储的设计模块的库来自动路由导体并在半导体芯片上定位组件。一旦半导体电路的设计已经完成,以标准化的电子格式(例如,opus、gdsii等)所得到的设计可以被发送到半导体制造设施或“fab”以进行制造。

前面的描述已经通过示意性和非限制性的示例的方式提供了本发明的示例性实施方式的全面的、和信息性的描述。然而,当结合附图和所附权利要求阅读时,鉴于前面的描述,各种修改和适应对于相关领域的技术人员来说可以变得显而易见。然而,对本发明教导的所有这些和类似的修改仍然落入权利要求的范围内。

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