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

文档序号:21202086发布日期:2020-06-23 19:26阅读:301来源:国知局
用于视频编码和解码的装置、方法和计算机程序与流程

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



背景技术:

视频和图像样本通常使用颜色表示(colorrepresentation)而被编码,诸如,由一个亮度通道(luminancechannel)和两个色度通道(chrominancechannel)组成的yuv或ycbcr。在这些情况下,主要表示场景照明的亮度通道通常以一定的分辨率被编码,而通常表示某些颜色分量之间的差异的色度通道通常以低于亮度信号的第二分辨率被编码。

这种差分表示的意图是解除颜色分量的关联,并且能够更有效地压缩数据。然而,在许多情况下,通道之间仍然残留地存在一些关联,这种关联可以被用于更有效地表示数据。



技术实现要素:

现在,为了至少减轻上述问题,本文介绍了一种用于颜色通道编码和解码的增强方法。

根据第一方面的方法包括:确定针对至少一个样本的残余信号;确定所述残余信号是否表示针对多于一个通道中的样本残余;以及如果是肯定的,则针对第一通道中的至少第一样本应用所述残余信号,以用于生成第一经重构样本;以及针对第二通道中的至少第二样本应用所述残余信号以用于生成第二经重构样本。

根据实施例,该方法进一步包括:针对静止图像或视频序列的色度通道应用组合的残余信号。

根据实施例,该方法还包括:在比特流中包括用于指示针对残余解码的至少一个预定义条件被满足的标志。

根据实施例,该方法进一步包括:对组合的残余标志进行解码;响应于组合的残余标志为1或真而对单个残余块进行解码;以及将残余应用于第一通道和第二通道两者。

根据第二实施例的装置包括:用于确定针对至少一个样本的残余信号的部件;用于确定所述残余信号是否表示针对多于一个通道中的样本的残余的部件;用于响应于所述残余信号表示针对多于一个通道中的样本的残余,而针对第一通道中的至少第一样本应用所述残余信号以用于生成第一经重构样本的部件;以及用于针对第二通道中的至少第二样本应用所述残余信号以用于生成第二经重构样本的部件。

根据实施例,该装置还包括:用于针对静止图像或视频序列的色度通道应用组合的残余信号的部件。

根据实施例,该装置还包括:用于对组合的残余标志进行解码的部件;用于响应于组合的残余标志为1或真而对单个残余块进行解码的部件;以及用于将残余应用于第一通道和第二通道两者的部件。

根据实施例,该装置还包括:用于对针对第一通道的编码的块标志和针对第二通道的编码的块标志进行解码的部件;用于响应于两个编码的块标志是1或真,而对组合的残余标志进行解码的部件;用于响应于组合的残余标志为1或真,而对单个残余块进行解码的部件;以及用于针对第一通道和第二通道两者应用所述单个残余块的部件。

根据实施例,该装置还包括:用于对组合的残余标志进行解码的部件;用于响应于组合的残余标志为1或真而对单个残余块进行解码的部件;用于将单个残余块添加到第一通道中的预测块的部件;以及用于从第二通道中的预测块减去单个残余块的部件。

根据实施例,该装置还包括:用于对与第一通道相关联的标识符进行解码的部件;以及用于从第一通道中的预测信号减去第二通道的残余信号的部件。

根据实施例,该装置还包括:用于将组合的残余信号应用于由比特流信令所确定的块子集的部件。

根据实施例,该装置还包括:用于利用属于预定的预测模式集合的预测模式来将组合的残余信号应用于块的部件。

根据实施例,该装置还包括:用于利用属于预定的残余编码模式集合的残余编码模式来将组合的残余信号应用于块的部件。

根据第三方面的装置包括至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,该代码在由所述至少一个处理器执行时使装置至少执行:确定针对少一个样本的残余信号;确定所述残余信号是否表示针对多于一个通道中的样本残余;响应于所述残余信号表示针对多于一个通道中的样本残余,而针对第一通道中的至少第一样本应用所述残余信号以用于生成第一经重构样本;以及将针对第二通道中的至少第二样本应用所述残余信号以用于生成第二经重构样本。

如上所述,在其上存储有代码的装置和计算机可读存储介质因此被设置为执行上述方法以及与之相关的一个或多个实施例。

附图说明

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

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

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

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

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

图5示出了根据本发明的实施例的方法的流程图;

图6a和图6b分别示出了根据现有技术和根据本发明的实施例的残余编码的示例;

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

图8示出了各种实施例可以在其内被实现的示例多媒体通信系统的示意图。

具体实施方式

以下进一步详细描述了用于启动视点切换的合适装置和可能机制。在这方面,首先参照图1和2,其中图1示出了根据示例实施例的视频编码系统的框图,作为示例性装置或电子设备50的示意性框图,其可以并入根据本发明的实施例的编解码器。图2示出了根据示例实施例的装置的布局。接下来将解释图1和2的元件。

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

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

该装置可以包括麦克风36或者可以是数字或模拟信号输入的任何合适的音频输入。装置50可以进一步包括音频输出设备,其在本发明的实施例中可以是听筒38、扬声器或者模拟音频或数字音频输出连接中的任何一种。装置50还可以包括电池(或者在本发明的其他实施例中,该设备可以由诸如太阳能电池、燃料电池或发条发电机等任何合适的移动能源设备供电)。该装置可以进一步包括能够记录或拍摄图像和/或视频的相机。装置50可以进一步包括用于与其他设备的短距离视线通信的红外端口。在其他实施例中,装置50可以进一步包括任何合适的短距离通信解决方案,诸如,例如,蓝牙无线连接或usb/火线(firewire)有线连接。

装置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还可以无线地或通过有线连接接收图像以用于编码/解码。上述装置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也可以通过运输模式定位,包括但不限于汽车、卡车、出租车、公共汽车、火车、轮船、飞机、自行车、摩托车或任何类似的合适运输模式。

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

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

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

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

在iso/iec13818-1中或在itu-t建议书h.222.0中等效地规定的mpeg-2传输流(ts)是用于在多路复用流中承载音频、视频和其他媒体以及程序元数据或其他元数据的格式。分组标识符(pid)被用于标识ts内的基本流(又被称为分组的基本流)。因此,mpeg-2ts内的逻辑通道可以被认为对应于特定的pid值。

可用的媒体文件格式标准包括iso基本媒体文件格式(iso/iec14496-12,可以缩写为isobmff)和nal单元结构化视频的文件格式(iso/iec14496-15),该文件格式从isobmff得出。

下面将isobmff的一些概念、结构和规范描述为容器文件格式的示例,基于该容器文件格式可以实现实施例。本发明的方面不限于isobmff,而是针对一种可能的基础给出了描述,在此基础上可以部分或完全地实现本发明。

iso基本媒体文件格式的基本构造块被称为框。每个框具有报头和有效载荷。框报头指示框的类型和以字节为单位的框大小。框可以包围(enclose)其他框,并且iso文件格式规定在某种类型的框中允许哪些框类型。此外,每个文件中一些框的存在可能是强制性的,而其他框的存在可能是可选的。另外,针对一些框类型,可能允许在文件中具有多个框。因此,可以考虑iso基本媒体文件格式来规定框的层次结构。

根据iso文件格式族,文件包括被封装在框中的媒体数据和元数据。每个框都由四个字符代码(4cc)来标识,并且以报头开始,该报头通知框的类型和大小。

在符合iso基本媒体文件格式的文件中,媒体数据可以在媒体数据‘mdat’框中被提供,并且电影‘moov’框可以被用于包围元数据。在一些情况下,为了使文件可操作,可能需要存在‘mdat’和‘moov’框。电影‘moov’框可以包括一个或多个轨道(track),并且每个轨道可以驻留在一个对应的轨道‘trak’框中。轨道可以是多个类型中的一个类型,包括媒体轨道,该媒体轨道是指根据媒体压缩格式(及其对iso基本媒体文件格式的封装)格式化的样本。

例如,在将内容录制到iso文件时,例如,为了避免在录制应用崩溃,内存空间耗尽或发生一些其他事件时丢失数据,可以使用电影片段。在不具有电影片段的情况下,可能会发生数据丢失,因为文件格式可能要求将所有元数据(例如,电影框)写入文件的一个连续区域中。此外,当记录文件时,可能不存在足够的存储空间量(例如,随机存取存储器ram)来针对可用存储装置的大小缓冲电影框,并且在电影关闭时重新计算电影框的内容可能太慢。而且,电影片段可以使用常规的iso文件解析器来实现同时记录和回放文件。此外,更小的初始缓冲的持续时间可能被需要以用于渐进式下载,例如,在使用电影片段时同时接收和回放文件,并且与具有相同媒体内容但没有电影片段进行结构化的文件相比,初始电影框更小。

电影片段特征可以实现将原本可能驻留在电影框中的元数据分割成多个片段。每个片段可以对应于轨道的特定时间段。换言之,电影片段特征可以实现对文件元数据和媒体数据的交织。因此,电影框的大小可能被限制,并且可以实现上面提到的用例。

在一些示例中,如果电影片段的媒体样本与moov框处于相同的文件中,则它们可以驻留在mdat框中。然而,针对电影片段的元数据,可以提供moof框。moof框可以包括针对先前在moov框中已经存在的、回放时间的一定持续时间的信息。moov框可能仍然以其自己表示有效的电影,但是另外,它还可以包括mvex框,该mvex框指示在该相同文件中随后的将是电影片段。电影片段可以及时扩展与moov框相关联的演示。

在电影片段内,可能存在轨道片段集合,包括每轨道的从零到多个的任何位置。轨道片段又可以包括从零到多个轨道运行的任何位置,文档中的每个文档都是针对该轨道的样本的连续运行。在这些结构内,许多字段是可选的,并且可以是默认的。可以被包括在moof框中的元数据可能限于可以被包括在moov框中的元数据的子集,并且在一些情况下可以被不同地编码。可以从iso基本媒体文件格式规范中找到有关可以被包括在moof框中的框的细节。独立的电影片段可以被定义为由以文件顺序连续的moof框和mdat框所组成,并且其中mdat框包含该电影片段的样本(moof框为其提供元数据),并且不包含任何其他电影片段的样本(即,任何其他的moof框)。

轨道参考机制可以被用于将轨道彼此关联。trackreferencebox包括(多个)框,每个框提供从包含轨道到其他轨道的集合的引用。这些引用通过所包含的(多个)框的框类型(即,框的四字符代码)而被标记。

iso基本媒体文件格式包含可以与特定样本相关联的定时元数据的三个机制:样本组、定时元数据轨道、以及样本辅助信息。派生的规范可以利用这三个机制中的一个或多个机制来提供类似的功能。

iso基本媒体文件格式以及其派生形式(诸如,avc文件格式和svc文件格式)的样本分组可以基于分组标准而被定义为将轨道中的每个样本指派为一个样本组中的成员。样本分组(samplegrouping)中的样本组(samplegroup)不限于连续的样本,并且可以包含不相邻的样本。由于针对轨道中的样本可能存在多于一个样本分组,所以每个样本分组都可以具有类型字段来指示分组的类型。样本分组可以由两个链接的数据结构表示:(1)sampletogroupbox(sbgp框)表示样本到样本组的指派;以及(2)samplegroupdescriptionbox(sgpd框)包含针对每个样本组的样本组条目,该条目描述了该组的特性。基于不同的分组标准,可能存在sampletogroupbox和samplegroupdescriptionbox的多个实例。这些可以通过被用于指示分组类型的类型字而被区分。sampletogroupbox可以包含grouping_type_parameter字段,其可以被用于例如指示分组的子类型。

matroska文件格式能够(但不限于)将视频、音频、图片或字幕轨道中的任何一个存储在一个文件中。matroska可以被使用作为针对派生的文件格式(诸如,webm)的基础格式。matroska使用可扩展二进制元语言(ebml)作为基础。ebml受xml原理的启发,规定二进制和八位字节(字节)对齐的格式。ebml本身是二进制标记技术的概括描述。matroska文件由构成ebml“文档”的元素组成。这些元素并入元素id、针对元素大小的描述符和二进制数据本身。这些元素可以被嵌套。matroska的分段元素是其他顶级(第1级)元素的容器。matroska文件可以包括(但不限于由其组成)一个分段。matroska文件中的多媒体数据以集群(或集群元素)被组织,每个集群通常包含几秒钟的多媒体数据。集群包括blockgroup元素,blockgroup元素又包括block元素。提示元素包括可以辅助随机访问或查找的元数据,并且可以包括针对查找点的文件指针或相应的时间戳。

视频编解码器由将输入视频变换为适合存储/传输的压缩表示的编码器,以及可以将压缩视频表示解压缩回可见形式的解码器组成。视频编码器和/或视频解码器也可以彼此分离,即,不需要形成编解码器。通常,编码器会丢弃原始视频序列中的一些信息,以便以更紧凑的形式(即,较低的比特率)表示视频。

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

在时间预测中,预测源是先前解码的图片(又被称为参考图片)。在块内复制(ibc;又被称为块内复制预测)中,预测与时间预测类似地被应用,但是参考图片是当前图片,并且在预测过程中仅可以参考先前解码的样本。层间(inter-layer)或视图间(inter-view)预测可以类似地被应用于时间预测,但是该参考图片分别是从另一可缩放层或从另一视图所解码的图片。在一些情况下,帧间预测(interprediction)可以仅指时间预测,而在其他情况下,帧间预测可以统称为时间预测以及块内复制、层间预测和视图间预测中的任何一项,前提是它们以与时间预测相同或类似的过程执行。帧间预测或时间预测有时可以称为运动补偿或运动补偿预测。

可以利用完整样本或子样本准确度来执行运动补偿。在完整样本准确的运动补偿的情况下,可以将运动表示为具有针对水平和垂直位移整数值的运动向量,并且运动补偿过程可以使用这些位移有效地从参考图片中复制样本。在子样本准确的运动补偿的情况下,运动向量由针对运动向量的水平和垂直分量的分数或十进制值所表示。在运动向量指代参考图片中的非整数位置的情况下,通常调用子样本内插过程,以基于参考样本和所选择的子样本位置来计算预测的样本值。子样本内插过程通常包含:针对关于完整样本位置的水平偏移进行水平滤波补偿,然后是针对关于完整样本位置的垂直偏移进行垂直滤波补偿。然而,在一些环境中,垂直处理也可以在水平处理之前完成。

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

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

图4示出了适合于采用本发明的实施例的视频编码器的框图。图4呈现了用于两层的编码器,但是要了解的是,所呈现的编码器可以类似地扩展为对两个以上的层进行编码。图4图示了视频编码器的实施例,该视频编码器包括第一编码器部分500和第二编码器部分502,该第一编码器部分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,该最终的经重构图像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,当与第二求和设备339、439处的图像块312、412的预测表示组合时,其产生初步的经重构图像314、414。预测误差解码器可以被认为包括对量化系数值(例如,dct系数)进行去量化以重构变换信号的去量化器361、461以及对重构的变换信号执行逆变换的逆变换单元363、463,其中逆变换单元363、463的输出包含(多个)经重构的块。预测误差解码器还可以包括块滤波器,该块滤波器可以根据进一步解码的信息和滤波器参数来对(多个)经重构的块进行滤波。

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

可以以许多方式执行熵编码/解码。例如,可以应用基于上下文的编码/解码,其中编码器和解码器都基于先前编码/解码的编码参数来修改编码参数的上下文状态。基于上下文的编码可以例如是上下文自适应二进制算术编码(cabac)或基于上下文的可变长度编码(cavlc)或任何类似的熵编码。可以备选地或另外地使用诸如huffman编码/解码或exp-golomb编码/解码等可变长度编码方案来执行熵编码/解码。对来自熵编码的比特流或码字的编码参数的解码可以被称为解析。

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的后来版本包括可伸缩、多视图、保真度范围扩展、三维和屏幕内容编码扩展,可以分别缩写为shvc、mv-hevc、rext、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中规定了比特流语法和语义以及针对无误差比特流的解码过程。编码过程没有被规定,但是编码器必须生成一致的比特流(conformingbitstream)。可以利用假设参考解码器(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中,图片可以是帧或场。帧包括亮度样本以及可能的对应色度样本的矩阵。场是帧的交替样本行的集合,并且当源信号被交错(interlace)时,可以用作编码器输入。当与亮度样本阵列相比时,色度样本阵列可能不存在(因此可能使用单色采样),或者色度样本阵列可能会被二次采样。色度格式可以总结如下:

-在单色采样中,仅存在一个样本阵列,名义上可以认为是亮度阵列。

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

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

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

在h.264/avc和hevc中,可以将样本阵列作为单独颜色平面编码到比特流中,并且分别对来自比特流的单独编码的颜色平面进行解码。当使用单独颜色平面时,利用单色采样将它们中的每个颜色平面分别作为图片(通过编码器和/或解码器)进行处理。

划分可以被定义为将集合分成子集,使得集合的每个元素恰好在子集中的一个子集中。

当描述hevc编码和/或解码的操作时,可以使用以下术语。编码块可以被定义为针对n的一些值的n×n的样本块,使得将编码树块分成编码块是划分。编码树块(ctb)可以被定义为针对n的一些值的n×n的样本块,使得将分量分成编码树块是划分。将编码树单元(ctu)可以被定义为亮度样本的编码树块、具有三个样本阵列的图片的色度样本的两个对应的编码树块或者单色图片、或使用三个单独颜色平面和被用于对样本进行编码的语法结构而被编码的图片的样本的编码树块。编码单元(cu)可以被定义为亮度样本的编码块、具有三个样本阵列的图片的色度样本的两个对应的编码块、或者单色图片或使用三个单独颜色平面和用于对样本进行编码的语法结构而被编码的图片的样本的编码块。具有最大允许大小的cu可以被命名为lcu(最大编码单元)或编码树单元(ctu),并且视频图片被分成非重叠的lcu。

cu包括:定义cu内的针对样本的预测过程的一个或多个预测单元(pu),以及定义针对所述cu中的样本的预测误差编码过程的一个或多个变换单元(tu)。通常,cu由正方形样本块组成,该样本块具有从可能的cu大小的预定义集合中可选择的大小。每个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中,切片报头被定义为独立切片段的切片段报头,该独立切片段是当前切片段或者是在当前从属切片段之前的独立切片段,并且切片段报头被定义为包含与切片段中所表示的第一或所有编码树单元有关的数据元素的编码切片段的一部分。如果未使用图块,则以图块内或图片内的lcu的光栅扫描顺序扫描cu。在lcu内,cu具有特定的扫描顺序。

运动受约束的图块集(mcts)使得帧间预测过程在编码中受到约束,使得在运动受约束的图块集之外没有样本值、并且在分数样本位置处没有样本值(使用运动受约束的图块集之外的一个或多个样本值导出)被用于帧内预测运动受约束的图块集内的任何样本。另外,以不从mcts之外的块得出运动向量候选的方式来约束mcts的编码。这可以通过关闭hevc的时间运动向量预测,或通过禁止编码器使用tmvp候选或者合并中在tmvp候选之后的任何运动向量预测候选或者pu的位于mcts的右图块边界正左侧的amvp候选列表来强制实施,mcts右下角的最后一个除外。通常,mcts可以被定义为独立于mcts之外的任何样本值和编码数据(诸如,运动向量)的图块集。在一些情况下,可能需要mcts来形成矩形区域。应该理解,取决于上下文,mcts可以引用图片内的图块集或图片序列中的相应图块集。各个图块集可以但通常不需要在图片序列中并置。

要注意的是,帧间预测中所使用的样本位置可以通过编码和/或解码过程而饱和,使得在图片之外的位置将以其他方式被饱和以指向图片的对应边界样本。因此,如果图块边界也是图片边界,则在一些用例下,编码器可以允许运动向量有效地跨过该边界,或者允许运动向量引起有效地分数样本内插,该分数样本内插将引用该边界之外的位置,因为样本位置被饱和到边界上。在其他用例下,具体地,如果可以从位于与图片边界相邻的位置的比特流中将编码图块提取到另一比特流(其中,图块位于与图片边界不相邻的位置),则编码器可以与任何mcts边界类似地将运动向量约束在图片边界上。

hevc的时间运动受约束的图块集sei消息可以被用于指示比特流中运动受约束的图块集的存在。

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

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

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

在典型的视频编解码器中,运动补偿后的预测残余首先利用变换内核(如dct)而被变换,然后被编码。这样的原因是,残余之间通常仍然存在一些相关,并且在许多情况下变换可以帮助减少这种相关并提供更有效的编码。

典型的视频编码器利用lagrangian成本函数来找到最佳的编码模式,例如,针对块和相关联的运动向量的期望编码模式。这种成本函数使用权重因子λ来将由于有损编码方法而导致的(精确或估计的)图像失真与表示图像区域中的像素值所需的(精确或估计的)信息量联系在一起:

c=d+λr,(1)

其中,c是将被最小化的lagrangian成本,d是考虑了模式和运动向量的图像失真(例如,均方误差),并且r是表示在解码器中重构图像块所需数据所需的比特数(包括表示候选运动向量的数据量)。

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

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

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

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

nal单元可以分类成视频编码层(vcl)nal单元和非vclnal单元。vclnal单元通常是编码的切片nal单元。在hevc中,vclnal单元包含表示一个或多个cu的语法元素。

在hevc中,图片类型的缩写可以被定义如下:拖尾(trail)图片、时间子层访问(tsa)、逐步时间子层访问(stsa)、随机访问可解码前导(radl)图片、随机访问跳过前导(rasl)图片、断开链接访问(bla)图片、即时解码刷新(idr)图片、干净随机访问(cra)图片。

在独立层中也可以称为帧内随机访问点(irap)图片的随机访问点(rap)图片仅包含帧内编码切片。属于预测层的irap图片可以包含p、b和i切片,无法使用来自相同的所预测层中的其他图片的帧间预测,并且可以使用来自其直接参考层的层间预测。在hevc的当前版本中,irap图片可以是bla图片、cra图片或idr图片。包含基础层的比特流中的第一图片是基础层处的irap图片。只要必要的参数集在需要激活时是可用的,就可以以解码顺序来正确解码独立层处的irap图片和独立层处的所有后续非rasl图片,而不需要执行在按照解码顺序的irap图片之前的任何图片的解码过程。当需要被激活时必要参数集是可用的并且对已经被初始化的预测层的每个直接参考层的解码时,可以正确地解码属于预测层的irap图片以及在相同预测层内按照解码顺序的所有后续非rasl图片,而不执行按照解码顺序的irap图片之前的相同预测层的任何图片的解码过程。在比特流中可能存在图片,其仅包含不是irap图片的帧内编码切片。

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

通过编码视频序列保持不变的参数可以被包括在序列参数集中。除了解码过程可能需要的参数之外,序列参数集还可以可选地包含视频可用性信息(vui),该信息包括对于缓冲、图片输出定时、呈现和资源预留可能很重要的参数。在hevc中,序列参数集rbsp包括可以由一个或多个图片参数集rbsp或包含缓冲周期sei消息的一个或多个seinal单元引用的参数。图片参数集包含在几个编码图片中可能不变的这种参数。图片参数集rbsp可以包括可以由一个或多个编码图片的编码切片nal单元引用的参数。

在hevc中,视频参数集(vps)可以被定义为语法结构,其包含应用于零个或多个完整编码视频序列的语法元素,该语法元素由在sps中找到的语法元素的内容所确定,由在每个pss中找到的语法元素所引用,由在每个切片段报头中找到的语法元素所引用。

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

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

vps可以提供关于比特流中的层的相关性关系的信息以及适用于跨整个编码视频序列中的所有(可伸缩性或视图)层的所有切片的许多其他信息。vps可以被认为包括两个部分(基本vps和vps扩展),其中vps扩展可以可选地存在。

带外传输、信令或存储可以另外或备选地被用于除了容忍传输误差之外的其他目的,诸如,易于访问或会话协商。例如,符合iso基本媒体文件格式的文件中的轨道的样本条目可以包括参数集,而比特流中的编码的数据被存储在文件或另一文件中的其他位置。沿着比特流(例如,沿着比特流指示)或沿着比特流的编码单元(例如,沿着编码图块指示)的短语可以在权利要求和所描述的实施例中使用以通过带外数据分别与比特流或编码单元相关联的方式指代带外传输、信令或存储。沿着比特流或沿着比特流的编码单元等的短语解码可以指对分别与比特流或编码单元相关联的参考带外数据(可以从带外传输、信令或存储中获得)进行解码。

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单元,即,后缀seinal单元和前缀seinal单元,其具有彼此不同的nal_unit_type值。后缀seinal单元中所包含的(多个)sei消息与vclnal单元相关联,该vclnal单元按解码顺序在后缀seinal单元之前。被包含在前缀seinal单元中的(多个)sei消息与vclnal单元相关联,该vclnal单元按解码顺序在前缀seinal单元之后。

编码图片是图片的编码表示。

在hevc中,可以将编码图片定义为包含图片的所有编码树单元的图片的编码表示。在hevc中,访问单元(au)可以被定义为根据规定的分类规则而彼此相关联的、按照解码顺序连续并且包含具有nuh_layer_id的任何特定值的最多一个图片的nal单元集合。除了包含编码图片的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图片的访问单元。针对每个idr图片、每个bla图片和每个irap图片,norasloutputflag的值等于1,每个irap图片是比特流中按照解码顺序在该特定层中的第一图片,是在序列nal单元的末尾之后的第一irap图片(按照解码顺序具有相同的nuh_layer_id值)。可能存在从诸如播放器或接收器等外部实体向解码器提供handlecraasblaflag的值的方式,该外部实体可以控制解码器。handlecraasblaflag可以由例如寻求比特流中的新位置或调谐到广播并且开始解码然后从cra图片开始解码的播放器设置为1。当cra图片的handlecraasblaflag等于1时,cra图片如同它是bla图片被处理和解码。

在hevc中,当特定的nal单元(可以被称为序列末尾(eos)nal单元)出现在比特流中并且具有等于0的nuh_layer_id时,编码视频序列可以另外或备选地(根据上述说明)被指定为结束。

可以如下定义一组图片(gop)以及其特性。无论是否解码了任何先前的图片,都可以对gop进行解码。开放gop是这样的一组图片,其中当解码从开放gop的初始帧内图片开始时,按照输出顺序在初始帧内图片之前的图片可能无法被正确解码。换言之,开放gop的图片可以指代(在帧间预测中)属于先前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编码结构在压缩中可能更有效,这是因为选择参考图片的灵活性更大。

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

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

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

可以针对单个预测单元导出若干候选运动向量。例如,运动向量预测hevc包括两个运动向量预测方案,即,高级运动向量预测(amvp)和合并模式。在amvp或合并模式中,针对pu导出运动向量候选的列表。存在两种类型的候选:空间候选和时间候选,其中时间候选也可以被称为tmvp候选。

例如,可以如下执行候选列表导出,同时应该理解,针对候选列表推导可能存在其他可能性。如果候选列表的占用不是最大,则空间候选(如果可用并且不存在于候选列表中)首先包括在候选列表中。此后,如果候选列表的占用尚未达到最大,则时间候选被包括在候选列表中。如果候选数量仍未达到最大允许数量,则将组合的双向预测候选(针对b切片)和零运动向量相加。在候选列表已经被构造之后,编码器例如基于速率失真优化(rdo)决策从候选决定最终运动信息,并且将所选候选的索引编码到比特流中。同样地,解码器从比特流中解码所选择的候选的索引,构造候选列表,并且使用解码后的索引从候选列表中选择运动向量预测器。

在hevc中,amvp和合并模式可以被表征如下。在amvp中,编码器指示使用单向预测还是双向预测以及使用哪些参考图片并对运动向量差进行编码。在合并模式中,仅从候选列表中选择的候选被编码到比特流中,以指示当前预测单元具有与所指示的预测器相同的运动信息。因此,合并模式创建由共享相同运动信息的相邻预测块所组成的区域,针对每个区域,该运动信息仅用信号通知一次。

下面提供高级运动向量预测的操作的示例,而高级运动向量预测的其他类似实现也是可能的,例如,具有不同的候选位置集和具有候选位置集的候选位置。还需要理解,诸如合并模式等其他预测模式可以类似地进行操作。两个空间运动向量预测器(mvp)可以被导出,并且时间运动向量预测器(tmvp)可以被导出。可以在以下位置中进行选择:位于当前预测块上方的三个空间运动向量预测器候选位置(b0、b1、b2)和位于左侧的两个空间运动向量预测器候选位置(a0、a1)。以每个候选位置集(b0、b1、b2)或(a0、a1)的预定义顺序可用的(例如,驻留在同一切片中,进行帧间编码等)第一运动向量预测器可以被选择以表示运动向量竞争中的预测方向(向上或向左)。时间运动向量预测器的参考索引可以由切片报头中的编码器来指示(例如,作为collocated_ref_idx语法元素)。以潜在的时间候选位置的预定义顺序(例如,以顺序(c0、c1))(例如,帧间编码)可用(例如,帧间编码)的第一运动向量预测器可以被选择作为时间运动向量预测器的源。从共址图片中的第一可用候选位置导出的运动向量可以根据时间运动向量预测器的参考图片、同位图片和当前图片的图片顺序计数差的比例而被缩放。而且,可以在候选之间执行冗余检查以移除相同候选,这可能会导致在候选列表中包括零运动向量。例如,可以通过指示空间运动向量预测器的方向(向上或向左)或选择时间运动向量预测器候选来在比特流中指示运动向量预测器。共址的图片也可以称为并置图片、用于运动向量预测的源或用于运动向量预测的源图片。

运动参数类型或运动信息可以包括但不限于以下类型中的一项或多项:

-对预测类型(例如,帧内预测、单向预测、双向预测)和/或参考图片的数目的指示;

-对预测方向的指示,诸如,帧间(又称为时间)预测、层间预测、视图间预测、视图合成预测(vsp)和分量间预测(可以按参考图片和/或预测类型指示,并且在一些实施例中,视图间预测和视图综合预测可以被共同视为一个预测方向)和/或

-对参考图片类型的指示,诸如,短期参考图片和/或长期参考图片和/或层间参考图片(例如,可以按参考图片指示)

-对参考图片列表的参考索引和/或参考图片的任何其他标识符(例如可以按参考图片来指示,并且其类型可以取决于预测方向和/或参考图片类型,并且可以附有其他相关信息,诸如,参考图片列表或参考索引所适用的类似内容);

-水平运动向量分量(其可以例如按预测块或参考索引等指示);

-垂直运动向量分量(其可以例如按预测块或参考索引等指示);

-一个或多个参数,诸如,图片顺序计数差和/或包含或与运动参数相关联的图片与其参考图片之间的相对相机间隔,其可以被用于缩放水平运动向量分量和/或在一个或多个运动向量预测过程中的垂直运动向量分量(其中,例如,可以按每个参考图片或每个参考索引等指示所述一个或多个参数);

-应用运动参数和/或运动信息的块的坐标,例如,以亮度样本为单位的块的左上样本的坐标;

-应用运动参数和/或运动信息的块的范围(例如,宽度和高度)。

通常,运动向量预测机制(诸如,上面作为示例呈现的那些运动向量预测机制)可以包括对某些预定义或指示的运动参数的预测或传承。

与图片相关联的运动场可以被认为包括针对图片的每个编码块产生的一组运动信息。例如,运动场可以通过块的坐标来访问。例如,可以在tmvp或任何其他运动预测机制中使用运动场,其中,使用了除了当前(解码)编码图片之外的用于预测的源或继承。

不同的空间粒度或单位可以被应用来表示和/或存储运动场。例如,可以使用空间单位的规则网格。例如,可以将图片分成一定大小的矩形块(可能在图片边缘处(诸如,在右边缘和下边缘)的块除外)。例如,空间单位的大小可以等于最小大小,针对该最小大小,编码器可以在比特流中指示出明显的运动,诸如,亮度样本单位的4x4块。例如,可以使用所谓的压缩运动场,其中空间单位可以等于预定义或所指示的大小,诸如,亮度样本单位的16x16块,其大小可以大于用于指示出明显的运动的最小大小。例如,可以以针对每个解码的运动场执行运动数据存储减少(mdsr)或运动场压缩(在将运动场用于图片之间的任何预测之前)的方式来实现hevc编码器和/或解码器。在hevc实现中,mdsr可以通过在压缩运动场中保持适用于16x16块的左上样本的运动来将运动数据的粒度减小到亮度样本单位的16x16块。编码器可以例如在诸如视频参数集或序列参数集等序列级语法结构中将与压缩运动场的空间单位有关的(多个)指示编码为一个或多个语法元素和/或语法元素值。在一些(解码)编码方法和/或设备中,可以根据运动预测的块划分(例如,根据hevc标准的预测单元)来表示和/或存储运动场。在一些(解码)编码方法和/或设备中,可以应用规则网格和块划分的组合,使得与大于预定义或指示的空间单元大小的分区相关联的运动被表示和/或与那些分区相关联地被存储,而与小于或未与预定义或指示的空间单元大小或网格对齐的分区相关联的运动被表示和/或存储以用于预定义或所指示的单元。

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

在一些可伸缩视频编码方案中,视频信号可以被编码成基础层和一个或多个增强层。增强层可以增强例如时间分辨率(即,帧速率)、空间分辨率或者仅增强由另一层或其一部分表示的视频内容的质量。每个层及其所有从属层都是视频信号的一个表示,例如,在一定的空间分辨率、时间分辨率和质量水平下。在本文档中,我们将可伸缩层及其所有从属层称为“可伸缩层表示”。可以提取和解码与可伸缩层表示相对应的可伸缩比特流的部分,以一定保真度产生原始信号的表示。

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

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

-空间可伸缩性:与增强层图片相比,基础层图片以较低的分辨率被编码(即,具有更少的样本)。空间可伸缩性和质量可伸缩性,尤其是其粗粒可伸缩性类型,有时可以被视为相同类型的可伸缩性。

-比特深度可伸缩性:与增强层图片(例如,10或12位)相比,基础层图片以更低比特深度被编码(例如,8位)。

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

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

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

-视图可伸缩性(viewscalability),其也可以被称为多视图编码。基础层表示第一视图,而增强层表示第二视图。视图可以被定义为表示一个相机或视点的图片序列。可以认为,在立体或两视图视频中,针对左眼呈现一个视频序列或视图,而针对右眼呈现平行的视图。

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

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

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

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

应该理解,许多可伸缩性类型可以被组合并且一起被应用。例如,可以组合色域可伸缩性和比特深度可伸缩性。

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

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

发送器、网关、客户端或另一实体可以选择可伸缩视频比特流的传输层和/或子层。术语层提取、层的提取或层下切换可以指传输比在由发送器、网关、客户端或另一实体接收的比特流中可用的层更少的层。层上切换可以指与发送器、网关、客户端或另一实体在进行层上切换之前传输的那些层相比传输(多个)附加层,即,重新开始传输先前在层下切换中已停止传输的一个或多个层。与层下切换和/或上切换类似,发送器、网关、客户端或另一实体可以执行时间子层的下和/或上切换。发送器、网关、客户端或另一实体也可以执行层和子层的下切换和/或上切换。层和子层的下切换和/或上切换可以在相同访问单元等中被执行(即,实际上同时),或者可以在不同的访问单元等中被执行(即,实际上在不同的时间)。

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

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

虽然上一段描述了具有两个可伸缩层(具有增强层和基础层)的可伸缩视频编解码器,但是需要理解,描述可以被概括为具有两个以上层的可伸缩性层次结构中的任何两个层。在这种情况下,第二增强层可以在编码和/或解码过程中依赖于第一增强层,并且因此第一增强层可以被视为用于对第二增强层的进行编码和/或解码的基础层。此外,需要理解的是,在增强层的参考图片缓冲器或参考图片列表中可能存在来自多于一层的层间参考图片,并且这些层间参考图片中的每个图片都可以被认为驻留在用于编码和/或解码的增强层的基础层或参考层中。此外,需要理解的是,除了参考层图片上采样之外,反而或另外可以进行其他类型的层间处理。例如,参考层图片的样本的比特深度可以被转换为增强层的比特深度和/或样本值可能会经历从参考层的颜色空间到增强层的颜色空间的映射。

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

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

直接参考层可以被定义为可以被用于对另一层进行层间预测的层,该层针对该另一层是直接参考层。直接预测的层可以被定义为另一层是直接参考层的层。间接参考层可以被定义为不是第二层的直接参考层但是是第三层的直接参考层的层,该第三层是该层是间接参考层的第二层的直接参考层或直接参考层的间接参考层。间接预测层可以被定义为另一层是间接参考层的层。独立层可以被定义为不具有直接参考层的层。换言之,不使用层间预测来预测独立层。非基础层可以被定义为除了基础层之外的任何其他层,并且基础层可以被定义为比特流中的最低层。独立的非基础层可以被定义为既是独立层又是非基础层的层。

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

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

针对增强层编码,可以在shvc、mv-hevc等中使用hevc基础层的概念和编码工具。然而,可以在参考层中使用已经编码的数据(包括重构的图片样本和运动参数,又称为运动信息)来有效地编码增强层的附加层间预测工具可以被集成到shvc、mv-hevc和/或相似的编解码器。

如上所述,视频和图像样本通常使用颜色表示而被编码,诸如,由一个亮度通道和两个色度通道组成的yuv或ycbcr。在这些情况下,主要表示场景照明的亮度通道通常以一定的分辨率被编码,而通常表示某些颜色分量之间的差异的色度通道通常以低于亮度信号的第二分辨率被编码。这种差分表示的目的是解除颜色分量的关联,并且能够更有效地压缩数据。然而,在许多情况下,通道之间仍然存在一些关联,其可以用于更有效地表示数据。

现在介绍了一种用于颜色通道编码的改进方法。

在图5中示出了根据方面的方法,该方法包括:确定针对至少一个样本的残余信号(500);确定所述残余信号是否表示针对多于一个通道中的样本的残余(502);以及如果是肯定的,则针对第一通道中的至少第一样本应用所述残余信号以生成第一经重构样本(504);以及针对第二通道中的至少第二样本应用所述残余信号以生成第二经重构样本(506)。

根据实施例,针对静止图像或视频序列的色度通道应用组合的残余信号。

因此,提供了一种方法来对两个或更多个颜色通道(尤其是色度通道)的残余信号进行联合编码。比特流标识符可以被用于检测将相同的残余信号应用于多个色度通道的情况。通过指示和解码可以将相同的残余信号应用于多个色度通道的指示,可以进一步提高视频编码/解码的压缩效率。

除非本文另外说明,否则该方法和相关实施例同样适用于由编码器或解码器执行的操作。该方法和相关实施例可以以不同方式被实现。例如,可以改变上述操作的顺序,或者可以以不同方式交错操作。而且,可以在处理的不同阶段中应用不同的附加操作。例如,可能存在附加的滤波、缩放、映射或其他处理应用于所描述操作的最终或中间结果。上述操作的最终或中间结果也可以与其他操作的结果进一步组合。

确定残余信号可以以各种方式被执行,其中确定残余信号的实际实现通常在解码器和编码器之间不同。例如,视频或图像解码器可以从描述变换系数的比特流解码语法元素,该变换系数可以进一步使用例如离散余弦逆变换(dct)而被变换为残余样本块的值。自然地,其他变换也可以被使用,诸如,离散正弦变换(dst)或小波变换,或者可以省略变换步骤,并且可以基于描述单个残余样本或残余样本块的样本差异的语法元素直接构造残余样本值。

也可以在视频或图像编码器中以各种方式确定残余信号。在两个或多个通道之间共享残余的情况下,例如可以通过平均或使用残余信号的加权平均值并进行可选地变换,量化到期望精度,逆量化和逆变换到采样域来生成联合残余。视频或图像编码器可以例如被配置为在生成联合残余信号或联合残余样本块时从一个通道添加一半残余,并且从另一个通道减去一半残余。作为量化过程的一部分,可以使用速率失真优化的量化过程。在这种情况下,可以考虑联合残余的多通道性质,并且量化过程可以适用于例如对估计的量化误差进行加权,这与单通道残余编码的情况不同。

可以以各种方式来确定残余是否表示针对多于一个通道中的样本残余。在视频或图像编码器中,可以测试不同的操作模式,并且例如可以为编码单元、预测单元、变换单元或其他样本块选择最低的速率失真成本。可以在比特流中用信号通知相关信息,视频/图像解码器可以从该比特流中获得该信息并将其解码。比特流信令和信息解码也可以以不同方式完成。

根据实施例,该方法进一步包括:在比特流中包括用于指示针对残余解码的至少一个预定义条件被满足的标志。这种标志可以被称为组合的残余标志。例如,可以将1比特标识符标志或1-bin上下文编码的标识符标志使用作为比特流中的指示,其中在一个或多个预定义条件下,可以将这种组合残余标志有利地包括在比特流中。

根据实施例,对组合残余标志进行解码,并且响应于组合的残余标志为1或真而对单个残余块进行解码,并且将残余应用于第一通道和第二通道。因此,这种条件的示例包括:如果首先指示两个色度相关通道具有与它们相关联的残余,则仅对标志进行指示或解码。

根据实施例,针对第一通道的编码块标志被解码,针对第二通道的编码块标志被解码,并且响应于两者均为1或真,而对组合的残余标志进行解码,并且响应于组合的残余标记为1或真,解码单个残余块并将其应用于第一和第二通道。下面给出这种指示的比特流语法的示例作为transform_unit_example_1,其中首先用编码块标记(cbf)指示与色度相关的通道cb和cr都有与之相关联的残余,然后指示联合残余可以应用于两个通道。

根据实施例,组合的残余标志被解码,并且响应于组合的残余标志是1或真而对单个残余块进行解码,并且将其添加到第一通道中的预测块并从第二通道中的预测块减去。在这种情况下,可以在比特流中省略针对第二通道的残余,而是可以从针对第一通道所接收到的联合残余来计算第二通道的残余,例如,从上面的语法。

根据实施例,与第一颜色通道相关联的标识符被解码,并且响应于该标识符,从第一通道中的预测信号减去第二通道的残余信号。因此,针对标志的条件指示的另一示例是首先指示或解码标识符,该标识符指示第一通道是否存在残余。如果所述指示暗示第一通道存在残余,那么使用标记来指示所述残余是两个或多个通道的联合残余还是仅应用于第一通道。在该示例中,在指示联合残余的情况下,无需解码指示第二通道的编码残余的语法元素。下面给出用于这种指示的示例比特流语法作为transform_unit_example_2,其中将编码块标记(cbf)用作标识符,以指示存在与色度相关通道cb相关联的残余。语法元素tu_cb_cr_joint_residual用于指示与色度相关的通道cb和cr都存在联合残余。

条件信令的又一可能性是首先指示通道中的一个通道具有残余。下面给出这种示例作为transform_unit_example_3。在这种情况下,使用tu_cbf_cr标志仅指示第二通道的残余将触发tu_cb_cr_joint_residual标志的解码。当然也可以将标志用于第一通道(tu_cbf_cb)。

在另一示例中,对联合残余模式的指示可以在编码块标志之前被完成。在这种情况下,在用信号通知联合残余模式并且不需要明确编码或解码cbf标志两者的情况下,可以两个编码块标志tu_cbf_cb和tu_cbf_cr可以被指派有为真或1的值。因此,也可以在本文中应用上面提到的实施例,其中解码组合的残余标志,并且响应于组合的残余标志为1或真,而解码单个残余块并将该残余应用于第一通道和第二通道。

在另一示例中,可以在残余块之一的残余编码语法内完成对联合残余模式的指示。这由transform_unit_example_4进行说明,其包含cb和cr块的编码块标志的标识符;以及由residual_coding_example_4进行说明,其包含将当前通道索引与第一通道(在该示例中为cr通道,具有cidx==2的比较)相匹配的检查,并且第二通道(在该示例中为具有tu_cbf_cb的cb通道)的编码块标记为1或真。在两个条件都为真的情况下,对联合残余模式的指示进行解码,并且在评估为真的情况下,可以省略对cr残余的进一步解析操作,因为可以从cb残余中导出cr残余。备选地,可能出现一些附加信令以指示残余如何彼此相关。

根据实施例,组合的残余模式被应用于由比特流信令所确定的块子集。

根据实施例,仅利用属于预定的预测模式集合的预测模式来将组合的残余模式应用于块。预定的预测模式集合可以包括例如所有帧内预测模式的全部或子集。

根据实施例,仅利用属于预定的残余编码模式集合的残余编码模式来将组合残余模式应用于块。预定的残余编码模式集合可以包括例如所有变换编码模式的全部或子集。可以针对单个变换单元或覆盖多个变换单元对组合残余模式的指示进行编码或解码。例如,可以以可能覆盖多个变换单元的编码树单元、编码单元、预测单元或根变换树级别来给出指示。

如果确定残余信号表示针对多于一个通道中的样本残余,则可以将对此做出确定的编码单元、编码块、预测单元、预测块、变换单元或变换块说成是“组合的残余模式”或“共享残余模式”或“联合残余模式”的单元或块。同样地,可以说该单元或块的“组合/共享/联合残余模式”为“开启”。

根据实施例,该方法进一步包括:将后处理方式应用于所述至少第一经重构样本,以生成所述第一通道中的至少第一输出样本;以及将后处理方式应用于所述至少第二经重构样本,以生成所述第二通道中的至少第二输出样本。

根据实施例,该方法进一步包括:基于是否对样本块应用了组合的残余编码模式,来设置在残余编码中使用的量化参数或逆量化参数。与针对其模式被关闭的那些块相比,对于应用了组合的残余编码模式的块,可以有利地将逆量化参数或逆量化步长设置为较小。同样地,可以在编码之前按比例放大组合的残余和/或在解码之后按比例缩小组合的残余以实现类似的效果。

根据实施例,从比特流中解码附加信息,并且将其与联合残余一起用于确定重构的样本块。这种附加信息可以包括例如缩放值的标量或矩阵、用于线性或非线性地映射样本值的参数;或另外,变换编码或非变换编码的样本值或样本偏移。

如果确定残余信号表示针对多于一个通道中的样本残余,则可以以不同方式将残余应用于所述通道。根据实施例,对第一通道的编码块标志进行解码,对第二通道的编码块标志进行解码,并且响应于第一通道的编码块标志是0或假以及第二通道的编码块标志为1或真,而将第二通道的残余的缩放版本添加到第一通道的预测中。例如,针对第一通道,可以使用由值su所表示的标量缩放,而针对第二通道,可以使用不同的标量值sv。针对样本块,可以以矩阵形式将其描述为:

ou=pu+su*ruv

ov=pv+sv*ruv

其中ou和ov分别表示u和v通道中的经重构样本块(如果使用1x1样本的块大小,则为单个样本)。同样地,pu和pv表示这些通道中的对应样本预测块,而ruv表示联合残余。

根据实施例,与第一颜色通道相关联的残余信号被解码,与第二颜色通道相关联的标识符被解码,并且响应于该标识符,从第二通道中的预测信号减去第一通道的残余信号。因此,可以将yuv或ucbcr视频的标量值su和sv有利地选择为1和-1,从而允许以更紧凑的形式表示方程式:

ou=pu+ruv

ov=pv-ruv

根据实施例,第一通道的残余信号与第二通道的残余信号之间的差异在比特流中被编码。

根据实施例,解码的残余信号被添加到第一通道中的样本块,并且从第二通道中的样本块中被减去。

图6a和6b示出了示例,该示例图示了根据实施例的组合/共享残余模式的益处。图6a图示了残余信号的传统编码。在该示例中,存在两个色度通道,都具有单独的残余信号。通过将残余块添加到每个通道上的预测块来生成输出块ou和ov。图6b依次图示了共享残余模式下的操作。在该示例中,权重+1和-1分别与第一和第二通道相关联。即,用信号通知的残余被添加到第一通道中的预测块,并且从第二通道中的预测块中减去,以形成两个输出块ou和ov。

自然可以将解决方案概括为使用权重矩阵来代替标量权重su和sv。备选地或另外地,权重可以是信号相关的,并且使用例如线性、分段线性或非线性映射单独为每个样本导出权重。这种映射的一个示例是使用经重构块ou和ov的周围重构样本的集合来计算线性模型,并且应用该模型以计算在样本块内的坐标x、y处的su(x,y)和sv(x,y)的值,给出:

ou=pu+su(x,y)*ruv

ov=pv+sv(x,y)*ruv

或者:

ou(x,y)=pu(x,y)+su(x,y)*ruv(x,y)

ov(x,y)=pv(x,y)+sv(x,y)*ruv(x,y)

或者将权重表示为预测信号的函数:

ou(x,y)=pu(x,y)+su(pu(x,y))*ruv(x,y)

ov(x,y)=pv(x,y)+sv(pv(x,y))*ruv(x,y)

当在视频或图像编码器中被应用时,确定组合或联合残余信号可以包括计算原始或处理后的输入样本与预测样本值之间的一个或多个差异。它还可以包括附加操作,诸如,应用于组合残余的中间实例的滤波或基于样本的非线性操作。联合残余可以被变换到不同的域(例如,使用dct)并且在变换编码的情况下被量化,或者如果应用了变换跳跃之类的编码模式则被简单地量化。如果将速率失真优化的量化应用于组合残余,则编码器可以有利地调整用于关联重构误差和编码所需的比特的lambda参数,使其不同于用于传统残余编码模式的lambda参数,因为在组合残余编码的情况下,将残余应用于多个编码块。备选地,当进行模式选择时,编码器可以选择以调整量化误差的估计。

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

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

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

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

服务器1540可以或可以不通过通信网络被连接到网关1550,该通信网络例如可以是cdn、互联网和/或一个或多个访问网络的组合。网关也可以或备选地被称为中间盒。针对dash,网关可以是(cdn的)边缘服务器或网络代理。要注意的是,该系统通常可以包括任何数目的网关等,但是为了简单起见,以下描述仅考虑一个网关1550。网关1550可以执行不同类型的功能,诸如,根据一个通信协议栈将分组流平移到另一通信协议栈,数据流的合并和分支以及根据下行链路和/或接收器功能操纵数据流,诸如,根据主要的下行网络条件控制转发流的比特率。在各种实施例中,网关1550可以是服务器实体。

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

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

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

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

解码器1580可以被配置为执行在不同表示之间的切换,例如,以在360度视频内容的不同视口之间进行切换,视图切换,比特率适应和/或快速启动,和/或解码器1580可以被配置为选择所传输的(多个)表示。可能出于多种原因而在不同表示之间进行切换,诸如,以实现更快的解码操作或适应所传输的比特流,例如,在比特率、传送比特流的网络的主要条件(诸如,吞吐量)方面。例如,如果包括解码器1580的设备是多任务的并且将计算资源用于除了解码视频比特流之外的其他目的,则可能需要更快的解码操作。在另一示例中,当以比正常回放速度更快的速度回放内容时,例如,比传统的实时回放速度快两倍或三倍,可能需要更快的解码操作。

在上文中,已经参照和/或使用hevc的术语描述了一些实施例。需要理解的是,实施例可以用任何视频编码器和/或视频解码器类似地实现。

在上文中,在已经参照编码器描述了示例实施例的情况下,需要理解的是,所得到的比特流和解码器可以在其中具有对应的元素。同样地,在已经参照解码器描述了示例实施例的情况下,需要理解的是,编码器可以具有用于生成要由解码器解码的比特流的结构和/或计算机程序。例如,已经描述了与生成预测块作为编码的一部分有关的一些实施例。通过生成预测块作为解码的一部分,可以类似地实现实施例,不同之处在于,与编码器所确定的相比,从比特流中解码诸如水平偏移和垂直偏移等编码参数。

上面描述的本发明的实施例就分离的编码器和解码器装置来描述编解码器,以帮助理解所涉及的过程。然而,要了解的是,该装置、结构和操作可以被实现为单个编码器-解码器装置/结构/操作。此外,编码器和解码器可能可以共享一些或所有公共元素。

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

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

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

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

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

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

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

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

前述描述通过示例性且非限制性示例提供了对本发明的示例性实施例的完整且信息丰富的描述。然而,鉴于前述描述,在结合附图和所附权利要求阅读时,各种修改和改编对于相关领域的技术人员来说可能是明显的。然而,本发明的教导的所有这种和类似的修改仍将落入本发明的范围内。

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