本申请是2016年8月4日提交的申请号为201480074902.8(PCT/US2014/072695)、申请日为2014年12月30日、标题为“用于HEVC扩展处理的条件解析扩展语法”的专利申请的分案申请。
本申请要求以下由Yue Yu和Limin Wang于2014年1月3日提交的申请序号为61/923,334,题为“CONDITIONALLY PARSING EXTENSION SYNTAX OF PICTURE PARAMETER SET(PPS)FOR HEVC RANGE EXTENSION AND MV-HEVC”的美国临时专利申请的权益,其在此通过援引并入本文。
具体实施方式
在下面的描述中,对形成描述一部分的附图进行参考,以及以图示方式示出了本发明的若干实施例。应该理解,在不偏离本发明的范围的情况下,可以利用其他实施例且可以进行结构改变。
视听信息收发和存储
图1是描绘了可以用于传输和/或存储和检索音频和/或视频信息的视频编码-解码(编解码)系统100的示例性实施例的图。编解码系统100包括:编码系统104,其接受视听(AV)信息102并处理AV信息102以生成编码(压缩)的AV信息106;以及解码系统112,其处理编码的AV信息106以产生恢复的AV信息114。由于编码和解码处理并非无损,恢复的AV信息114与原始的AV信息102不完全相同,但通过明智选择编码处理和参数,恢复的AV信息114和未处理的AV信息102之间的差异对于人类感受而言是可接受的。
通常在解码和呈现之前传输或存储和检索编码的AV信息106,如收发(发射和接收)或存储/检索系统108所执行的。收发损失可能是显著的,但存储/检索损失通常最小或不存在,因此,提供给解码系统112的收发的AV信息110通常与编码的AV信息106相同或基本相同。
图2A是将编码的AV信息106传送到另一位置且在该位置接收的编解码系统200A的一个实施例的图。传输分段230将输入的AV信息102转换成适于传输的信号并且在传输信道212上将转换的信号传送到接收分段232。接收分段232接收传输的信号,并将接收到的信号转换成供呈现的恢复的AV信息114。如上所述,由于编码和传输损失和错误,恢复的AV信息114的质量可能低于提供给传输分段230的AV信息102的质量。但是,纠错系统可以被包括进来以减低或消除这样的错误。例如,编码的AV信息106可以是通过增加冗余信息而编码的前向纠错(FEC),这样的冗余信息可以被用来识别和消除接收分段中的差错。
传输分段102包括用于编码AV信息102的多个源的一个或多个源编码器202。出于压缩以产生编码的AV信息106的目的,源编码器202首先对AV信息102进行编码,且如下面进一步所述,源编码器202可以包括例如处理器和相关存储器,该存储器存储实现了诸如MPEG-1,MPEG-2,MPEG-4AVC/H.264,HEVC的编解码器或类似编解码器的指令。
编解码器系统200A还可以包括图2A中虚线所指示的可选元件。这些可选元件包括视频复用编码器204、编码控制器208和视频解复用解码器218。可选视频复用编码器204根据可选编码控制器208所提供的一个或多个参数来复用来自相关联的多个源编码器202的编码的AV信息106。这样的复用通常在时域中完成且是基于数据分组的。
在一个实施例中,视频复用编码器204包括统计复用器,其组合来自多个源编码器202的编码的AV信息106从而最小化传输所需的带宽。由于来自每个源编码器202的编码的AV信息的瞬时比特率可以根据AV信息102的内容而随着时间极大地变化,所以这是可能的。例如,相比具有少量运动或细节(例如肖像对话)的场景,具有大量细节和动作(例如运动事件)的场景通常以更高比特率来编码。由于每个源编码器202可以产生具有高瞬时比特率的信息而另一源编码器202产生具有低瞬时比特率的信息,并且由于编码控制器208可以命令源编码器202根据影响瞬时比特率的特定性能参数来编码AV信息106,来自每个源编码器106的信号(每个具有短暂变化的瞬时比特率)可以以最优方式组合在一起,以最小化复用流205的瞬时比特率。
如上所述,源编码器202和视频复用编码器204可以可选地由编码控制器208来控制以最小化组合视频信号的瞬时比特率。在一个实施例中,这是使用来自临时存储编码视频信号的传输缓冲器206的信息来完成的且可以指示缓冲器206的充满程度。这允许根据传输缓冲器206中剩余存储的在源编码器202或视频复用编码器204中执行的编码。
传输分段230还可以包括传输编码器,其进一步编码视频信号以供向接收分段232进行传输。传输编码可以包括例如用于选择的传输介质的上述的FEC编码和/或编码成复用方案。例如,如果传输是通过卫星或陆地发射机进行的,则传输编码器114可以在传输之前经由正交幅度调制(QAM)或类似调制技术将信号编码为信号星座图。而且,如果将经由互联网协议设备或互联网来流式传输编码的视频信号,则根据适当协议来对信号进行传输编码。进一步,如下面进一步所述,如果将经由移动电话来传输编码信号,则使用适当的编码协议。
接收分段232包括传输解码器214,以使用与传输编码器214中使用的编码方案互补的解码方案来接收由传输编码器210编码的信号。可以临时由可选接收缓冲器216来存储解码的接收信号,并且如果接收信号包括多个视频信号,则由视频复用解码器218来对接收信号进行复用解码,以从由视频复用编码器204复用的视频信号中提取感兴趣的视频信号。最后,由源解码器220使用与源编码器202用于编码AV信息102的编解码器互补的解码方案或编解码器来解码感兴趣的视频信号。
在一个实施例中,传输的数据包括从服务器(代表传输分段230)发射到客户端(代表接收分段232)的分组化的视频流。在此情况下,传输编码器210可以将数据分组化且将网络抽象层(NAL)单元嵌入到网络分组中。NAL单元定义了具有头部和编码元素的数据容器,并且可以对应于视频数据的视频帧或其他切片。
将传输的压缩数据可以被分组化并经由传输信道212来传输,传输信道可以包括广域网(WAN)或局域网(LAN)。这样的网络可以包括例如,诸如WiFi的无线网络、以太网网络、互联网网络或由若干不同网络组成的混合网络。可以经由例如实时传输协议(RTP)、用户数据报协议(UDP)的通信协议或任何其他类型的通信协议来影响这样的通信。不同分组化方法可以用于比特流的每个网络抽象层(NAL)单元。在一种情况中,一个NAL单元的尺寸小于最大传输单元(MTU)的尺寸,该MTU的尺寸对应于可以在没有被分段的情况下在网络上传输的最大分组的尺寸。在此情况下,NAL单元嵌入到单个网络分组中。在另一情况下,多个整个NAL单元包括在单个网络分组中。在第三种情况下,一个NAL单元可能太大以致于不能在单个网络分组中传输且因此被分裂成若干分段的NAL单元,其中每个分段的NAL单元在独立的网络分组中传输。出于解码的目的,分段的NAL单元通常被连续发送。
接收分段232接收分组化的数据并且从网络分组中重新构建NAL单元。对于分段的NAL单元,客户端将来自分段的NAL单元的数据联系起来,以便重新构建原始的NAL单元。客户端232解码接收到的且重新构建的数据流并且在显示设备上重现视频图像以及通过扬声器重现音频数据。
图2B是描绘了存储编码信息且稍后检索编码信息以供呈现的示例性实施例的图,下文将其称为编解码存储系统200B。该实施例可以用于例如在数字录像机(DVR)、闪存驱动器、硬盘驱动器或类似设备中本地存储信息。在这个实施例中,由源编码器202对AV信息102进行源编码,可选地在将其存储在存储设备236中之前由存储缓冲器234进行缓冲。存储设备236可以临时或者在扩展时间段内存储视频信号,并且可以包括硬盘驱动器、闪存驱动器、RAM或ROM。存储的AV信息随后被检索,可选地由检索缓冲器238进行缓冲并由源解码器220进行解码。
图2C是描绘了包括编码系统或编码器202和解码系统或解码器220的、可用于传输和接收HEVC数据的示例性内容分发系统200C的另一图。在一些实施例中,编码系统202可以包括输入接口256、控制器241、计数器242、帧存储器243、编码单元244、发射器缓冲器267和输出接口257。解码系统220可以包括接收器缓冲器259、解码单元260、帧存储器261和控制器267。编码系统202和解码系统220可以经由可以承载压缩比特流的传输路径来相互耦合。编码系统202的控制器241可以控制将基于发射器缓冲器267或接收器缓冲器259的容量而传输的数据量并且可以包括其他参数,诸如每单位时间的数据量。控制器241可以控制编码单元244以防止发生解码系统220的接收信号解码操作失败。控制器241可以是处理器或者包括,但不限于,具有处理器、随机存取存储器和只读存储器的微型计算机。
通过非限制示例,从内容提供商提供的源图片246可以包括视频帧序列,该帧序列包括视频序列中的原图片。原图片246可以是未压缩的或压缩的。如果源图片246是未压缩的,则编码系统202可以具有编码功能。如果源图片246是压缩的,则编码系统202可以具有转码功能。可以利用控制器241从源图片得到编码单元。帧存储器243可以具有第一区域和第二区域,其中第一区域可以用于存储来自源图片246的进入帧而第二区域可以用于读出帧并且将其输出到编码单元244。控制器241可以向帧存储器243输出区域切换控制信号249。区域切换控制信号249可以指示第一区域还是第二区域将被利用。
控制器241可以向编码单元244输出编码控制信号250。编码控制信号250可以使得编码单元202开始编码操作,诸如准备基于源图片的编码单元。响应于来自控制器241的编码控制信号250,编码单元244可以开始读出到高效编码过程的准备的编码单元,高效编码过程诸如为预测编码过程或变换编码过程,其处理准备的编码单元,从而生成基于与编码单元相关联的源图片的视频压缩数据。
编码单元244可以将生成的视频压缩数据在包括视频分组的分组化基础流(PES)中进行打包。编码单元244可以使用控制信息和程序时间戳(PTS)将视频分组映射到编码的视频信号248且编码的视频信号248可以被传送到发射器缓冲器267。
包括生成的视频压缩数据的编码的视频信号248可以存储在发射器缓冲器267中。信息量计数器242可以递增以指示发射器缓冲器267中的总数据量。随着数据被检索和从缓冲器中移除,计数器242可以递减以反映发射器缓冲器267中的数据量。占用区域信息信号253可以被传送到计数器242以指示来自编码单元244的数据是否已经添加到发射器缓冲器267或从其移除,因此计数器242可以递增或递减。控制器241可以基于占用区域信息253来控制由编码单元244产生视频分组,占用区域信息253可以被通信以便预测、避免、防止和/或检测发射器缓冲器267中发生溢出或下溢的。
可以响应于由控制器241生成和输出的预设信号254而重置信息量计数器242。在信息量计数器242被重置之后,其可以对由编码单元244输出的数据进行计数并且获得已经生成的视频压缩数据和/或视频分组的量。信息量计数器242可以向控制器241提供表示获得的信息量的信息量信号255。控制器241可以控制编码单元244以使得在发射器缓冲器267中不存在溢出。
在一些实施例中,解码系统220可以包括输入接口266、接收器缓冲器259、控制器267、帧存储器261、解码单元260和输出接口267。解码系统220的接收器缓冲器259可以临时存储压缩比特流,该压缩比特流包括基于来自源图片246的源图片的接收的视频压缩数据和视频分组。解码系统220可以读取与接收到的数据中的视频分组相关联的控制信息和呈现时间戳信息并且输出可以应用于控制器220的帧数目信号263。控制器267可以以预先确定的间隔来监督计数的帧数目。通过非限制示例,控制器267可以在解码单元260每次完成解码操作时监督计数的帧数目。
在一些实施例中,当帧数目信号263指示了接收器缓冲器259处于预定容量时,控制器267可以向解码单元260输出解码开始信号264。当帧数目信号263指示了接收器缓冲器259处于小于预定容量时,控制器267可以等待计数的帧数目变得等于预定量的情形的发生。当该情形发生时,控制器267可以输出解码开始信号263。通过非限制示例,当帧数目信号263指示了接收器缓冲器259处于预定容量时,控制器267可以输出解码开始信号264。可以基于与编码的视频分组相关联的呈现时间戳以单调次序(即增加或降低)来解码编码的视频分组和视频压缩数据。
响应于解码开始信号264,解码单元260可以解码总计与帧相关联的一个图片的数据,以及与图片相关联的压缩的视频数据,该图片与来自接收器缓冲器259的视频分组相关联。解码单元260可以将解码的视频信号269写入帧存储器261中。帧存储器261可以具有第一区域和第二区域,其中解码的视频信号被写入第一区域且第二区域用于读出到输出接口267的解码图片262。
在各种实施例中,编码系统202可以与在头端的转码器或编码装置相合并或与之相关联,以及解码系统220可以与下游设备相合并或与之相关联,下游设备诸如为移动设备、机顶盒或转码器。
源编码/解码
如上所述,编码器202利用压缩算法来生成具有比AV信息102中原始视频序列的尺寸更小尺寸的比特流和/或文件。可以通过降低原始序列中的空间和时间冗余来进行这样的压缩。
现有技术的编码器202包括与由ITU的“视频编码专家组”(VCEG)和ISO的“运动图像专家组”(MPEG)之间开发的视频压缩标准H.264/MPEG-4AVC(“先进视频编码”)兼容的编码器,尤其是形式为出版物“Advanced Video Coding for Generic AudiovisualServices”(2005年3月),其在此通过援引并入本文。
HEVC“高效视频编码”(有时被称为H.265)被期望替代H.264/MPEG-4AVC。如下面进一步所述,HEVC引入了作为H.264/AVC中定义的编码实体的一般化的新的编码工具和实体。
图3是图示说明了源编码器202的一个实施例的框图。源编码器202接受AV信息102且使用采样器302采样AV信息102以产生连续数字图像或图片的序列303,每个数字图像或图片具有多个像素。图片可以包括帧或字段,其中,帧是在已知时间间隔期间捕捉的完整图像,而字段是组成部分图像的奇数或偶数的扫描行的集合。
采样器302产生未压缩的图片序列303。每个数字图片可以由具有多个系数的一个或多个矩阵来表示,该多个系数表示了关于一起构成图片的像素的信息。像素的值可以对应于亮度或其他信息。在若干分量与每个像素相关联的情况下(例如,红-绿-蓝分量或亮度-色度分量),这些分量中的每个可以被分别处理。
图像可以被分段为“切片”,可以包括一部分图片或可以包括整个图片。在H.264标准中,这些切片被分割成被称为宏块的编码实体(通常是大小为16像素×16像素的块),且每个宏块可以转而被分割成不同大小的数据块102,例如4×4,4×8,8×4,8×8,8×16,16×8。HEVC扩展且广义化了超越宏块概念的编码实体的概念。
HEVC编码实体:CTU,CU,PU和TU
像其他视频编码标准一样,HEVC是基于块的混合空间和时间预测编码方案。但是,HEVC引入了未以H.264/AVC标准来包括的新的编码实体。这些编码实体包括(1)编码树块(CTU)、编码单元(CU)、预测单元(PU)和变换单元(TU),且如下进一步描述这些编码实体。
图4是描绘了AV信息102的图片400的图,图片400诸如为图片序列303中的图片之一。图片400在空间上被分割成不重叠的方块,其被称为编码树单元,或CTU 402。不像其中基本编码单元是16x16像素的宏块的H.264和之前的视频编码标准,CTU 402是HEVC的基本编码单元,并且可以大到128x128像素。如图4中所示,通常在图片400内以类似于逐行扫描的次序来引用CTU 402。
每个CTU 402可以转而被迭代分割成更小的变量尺寸的编码单元,以下通过“四叉树”分解来进一步对其进行描述。编码单元是形成在图像中且在比特流314中传送的区域,对该区域应用类似的编码参数的。
图5是示出了将CTU 402示例性地划分成诸如编码单元502A和502B(下文可替换地称为编码单元502)的编码单元(CU)的图。单个CTU 402可以被分割为四个CU 502,诸如CU502A,每个CU 502A为CTU 402尺寸的四分之一。每个这样分割的CU 502A可以进一步被分割为四个更小的CU 502B,其具有原始CU 502A的四分之一尺寸。
通过“四叉树”数据参数(例如标志或比特)来描述将CTU 402分割成CU 502A和更小的CU 502B,“四叉树”数据参数作为被称为语法的开销,与编码数据一起被编码成输出的比特流314。
图6是图示说明了用于图5中所示的CTU 402划分的代表性四叉树600和数据参数的表示的图。四叉树600包括多个节点,该多个节点包括在一个层级水平上的第一节点602A和在较低的层级水平上的第二节点602B(下文,四叉树节点可以可替换地被称为“节点”602)。在四叉树的每个节点602,如果节点602进一步被分裂成子节点,则赋予“分裂标志”或比特“1”,否则赋予比特“0”。
例如,在图5中所示的CTU 402划分可以由图6中所呈现的四叉树600来表示,四叉树600包括与在顶级CU 502的节点602A相关联的分裂标志“1”(指示了在较低层级水平有4个附加节点)。图示的四叉树600还包括与在中间级CU 502的节点602B相关联的分裂标志“1”,以指示该CU还在下一(底)级CU被划分成四个其他的CU 502。源编码器202可以限制最小和最大的CU 502尺寸,由此改变CU 502分裂的最大可能深度。
编码器202生成了编码的AV信息106,其形式为包括第一部分和第二部分的比特流314,其中第一部分具有对于CU 502的编码数据而第二部分包括被称为语法元素的开销。编码数据包括对应于编码的CU502的数据(即,如下面进一步所述的,与其相关联的运动矢量、预测器一起的编码残留或相关残留)。第二部分包括可以表示编码参数的语法元素,其不能直接对应于块的编码数据。例如,语法元素可以包括图像中的CU 502的地址和标识、量化参数、所选间编码/内编码模式的指示、四叉树600或其他信息。
CU 502对应于基础编码元素且包括两个相关子单元:预测单元(PU)和变换单元(TU),两个都具有等于对应CU 502的尺寸的最大尺寸。
图7是图示说明将CU 502划分成一个或多个PU 702的图。PU 702对应于划分的CU502且用于预测图片内或图片间类型的像素值。PU702是为运动估计而划分H.264/AVC的扩展,且对于每个不再进一步被子分割成其他CU(“分裂标志”=0)的CU 502定义PU 702。如图7中所示,在四叉树600的每个叶子604,2Nx2N的最终(底级)CU 502可以拥有四个可能PU模式之一:2Nx2N(702A),2NxN(702B),Nx2N(702C)和NxN(702D)。
可以对CU 502进行空间或时间预测编码。如果CU 502以“内”模式编码,则如下进一步所述,CU 502的每个PU 702可以具有其自己的空间预测方向和图像信息。而且,在“内”模式中,CU 502的PU 702可以取决于另一CU 502,这是因为其可以使用处于另一CU中的空间邻居。如果CU 502以“间”模式编码,则如下进一步所述,CU 502的每个PU 702可以具有其自己的运动矢量及相关联的参考图片。
图8是示出了将CU 502划分成四个PU 702和相关联的变换单元(TU)802的集合的图。TU 802被用于表示通过DCT(离散余弦变换)进行空间变换的基础单元。通过下面进一步图示说明的“残留”四叉树(RQT)描述了CU 502内的每个块变换TU 802的尺寸和位置。
图9是示出了用于图8的示例中CU 502的TU 802的RQT 900的图。注意,RQT 900的第一节点902A的“1”指示了存在四个分支而相邻较低层级水平的第二节点902B的“1”指示了所指示的节点进一步具有四个分支。描述RQT 900的数据也被编码并作为比特流314中的开销被传送。
视频序列的编码参数可以存储在被称为参数集的专用NAL单元中。可以利用两个类型的参数集NAL单元。第一参数集类型被称为序列参数集(SPS),且包括NAL单元,NAL单元包括在整个视频序列期间未变化的参数。通常,SPS处理编码简介、视频帧的尺寸和其他参数。第二类型的参数集被称为图片参数集(PPS),且对可能从一个图像到另一个图像变化的不同的值进行编码。
空间和时间预测
用于压缩比特流314的技术之一是放弃像素值自身的存储,替代的,使用在解码器220处可以重复的过程来预测像素值并且存储或发送预测像素值与实际像素值之间的差(称为残差)。只要解码器220可以根据所提供信息计算相同的预测像素值,则可以通过将残差添加到预测值来恢复实际图片值。相同技术也可以用于压缩其他数据。
回来参看图3,正在处理的CU 502的每个PU 702被提供给预测器模块307。预测器模块307基于相同帧中邻近PU 702中的信息(帧内预测,其由空间预测器324来执行)和在时间上接近的帧中的PU 702的信息(帧间预测,其由时间预测器330来执行)来预测PU 702的值。但是,时间预测可能不总是基于配置的PU,因为配置的PU被定义为位于具有与当前PU702的x和y坐标相同的x和y坐标的参考/非参考帧。这些技术利用了PU 702之间的空间和时间关联。
编码单元因此可以被分类为包括两种类型:(1)非时间预测单元和(2)时间预测单元。使用当前帧来预测非时间预测单元,当前帧包括帧内相邻或邻近的PU 702(例如,帧内预测),并且由空间预测器324来生成非时间预测单元。根据一个时间图片(例如P帧)或者根据时间上提前和/或推后的至少两个参考图片(即B帧)来预测时间预测单元。
空间预测
图10是图示说明了PU 702的空间预测的图。图片可以包括PU 702和空间上接近的其他PU 1-4,包括邻近的PU 702N。空间预测器324通过使用了当前图像的像素的已编码的其他块的PU 702的“帧内”预测来预测当前块(例如图10的块C)。
空间预测器324定位适于空间编码的邻近PU(例如,图10的PU1、2、3或4)并且确定对该邻近PU的角度预测方向。在HEVC中,可以考虑35个方向,因此每个PU可以具有与之相关联的35个方向之一,包括水平、垂直、45度对角、135度对角、DC等等。在语法中指出了PU的空间预测方向。
回头参看图3的空间预测器324,这个所定位的邻近PU被用于使用元件305来计算残留PU 704(e),以作为邻近PU 702N的像素和当前PU 702的像素之间的差。该结果是内预测PU元素1006,其包括预测方向1002和内预测残留PU 1004。可以通过根据空间上接近的PU以及图片的空间关联性推断方向来编码预测方向1002,从而使得内预测方向模式的编码率能够被降低。
时间预测
图11是图示说明了时间预测的图。时间预测考虑来自时间上相邻的图片或帧的信息,诸如之前图片、图片i-1。
通常,时间预测包括单预测(P类型)和多预测(B类型),P类型通过参考仅来自一个参考图片的一个参考区域来预测PU 702,B类型通过参考来自一个或两个参考图片的两个参考区域来预测PU。参考图像是视频序列中已经被编码且随后被重新构建(通过解码)的图像。
时间预测器330在这些参考区域的一个或若干个(一个用于P类型或若干个用于B类型)中识别时间上邻近的帧中的像素的区域,使得它们可以被用作该当前PU 702的预测器。在使用若干区域预测器的情况(B类型)下,它们可以被融合以生成一个单独预测。在参考帧中通过运动矢量(MV)1104来识别参考区域1102,运动矢量MV 1104被定义为当前帧(图片i)中当前PU 702与参考帧(图片i-1)中参考区域1102(refIdx)之间的位移。B图片中的PU可以具有多达两个MV。MV和refIdx两者信息都包括在HEVC比特流的语法中。
再参看图3,参考区域1102和当前PU 702之间的像素值之差可以由通过开关306所选择的元件305来计算。该差被称为间预测PU1106的残差。在时间或帧间预测过程的结束处,当前PU 1006由一个运动矢量MV 1104和残差1106组成。
但是,如上所述,用于压缩数据的一个技术是使用解码器220可重复的手段,生成用于数据的预测值,从而计算数据的预测和实际值之差(残差)并发送残差以便解码。只要解码器220可以重现预测值,则残差值可以被用于确定实际值。
可以通过生成MV 1104的预测,计算实际MV 1104和预测MV1104之差(残差)并将MV残差在比特流314中发送,来将该技术应用于时间预测中使用的MV 1104。只要解码器220可以重现预测的MV1104,就可以根据残差来计算实际MV 1104。HEVC使用邻近PU 702之间的运动的空间相关性来计算用于每个PU 702的预测MV。
图12是图示说明了HEVC中的运动矢量预测器(MVP)的使用的图。运动矢量预测器V1,V2和V3取自位于邻近或相邻于待编码的块(C)的多个块1、2和3的MV 1104。由于这些矢量涉及相同时间帧内的空间相邻块的运动矢量且可以被用于预测待编码的块的运动矢量,这些矢量被称为空间运动预测器。
图12还图示说明了时间运动矢量预测器VT,其是在序列的之前解码的图片(以解码次序)中共同定位的块C’的运动矢量(例如,图片i-1的块位于与正在被编码的块(图像i的块C)的空间位置相同的空间位置)。
空间运动矢量预测器V1,V2和V3以及时间运动矢量预测器VT的分量可以用于生成中值运动矢量预测器VM。在HEVC中,根据预定的可用性规则,可以如图12中所示从下列块中提取三个空间运动矢量预测器,也就是,位于待编码的块的左侧的块(V1),位于之上的块(V3)以及位于待编码的块的各个角的块之一(V2)。该MV预测器选择技术被称为先进运动矢量预测(AMVP)。
因此,获得具有空间预测器(例如V1,V2和V3)和时间预测器VT的多个(通常五个)MV预测器(MVP)候选。为了减少在比特流中以信令发送运动矢量预测器的开销,可以通过消除重复的运动矢量的数据来减少运动矢量预测器的集合(例如,具有与其他MV的值相同的值的MV可以从候选中消除)。
编码器202可以从候选中选择“最好”的运动矢量预测器,并且计算作为所选运动矢量预测器和实际运动矢量之差的运动矢量预测器残差,并且将运动矢量预测器残差在比特流314中发送。为了执行这个操作,实际运动矢量必须存储以便稍后由解码器220使用(虽然在比特流314中并未发送实际运动矢量)。信令比特或标志包括在比特流314中以指定从归一化运动矢量预测器中计算哪个MV残差,并且稍后解码器使用该信令比特或标志来恢复运动矢量。在下面进一步描述了这些比特或标志。
回头参看图3,从空间(内)或时间(间)预测过程获得的内预测残差1004和间预测残差1106随后被变换模块308变换成上述的变换单元(TU)802。可以使用上面关于图9所述的RQT分解进一步将TU 802分裂成更小的TU。在HEVC中,通常使用2或3级的分解且被认可的变换尺寸来自32×32,16×16,8×8和4×4。如上所述,根据离散余弦变换(DCT)或离散正弦变换(DST)得到变换。
随后通过量化器310量化残差变化系数。量化在数据压缩中扮演了非常重要的角色。在HEVC中,量化将高精确变化系数转换成有限数量的可能值。尽管量化许可了大量压缩,但量化是有损操作,且量化损失不能被恢复。
量化的变换残差的系数随后通过熵编码器312被编码,然后作为编码AV信息的图像的有用数据的一部分被插入到压缩比特流310中。还可以使用语法元素之间的空间关联性来对编码语法元素进行编码以增加编码效率。HEVC提供了上下文自适应二进制算术编码(CABAC)。也可以使用其他形式编码或熵编码或算术编码。
为了计算上面使用的预测器,编码器202使用包括元件316、318、320、322、328的“解码”循环315解码已经编码的PU 702。这个解码循环315重新构建了PU和来自量化变换残差的图像。
量化后的变换残差系数E被提供给去量化器316,其将逆操作应用于量化器310的量化后的变换残差系数E,以产生PU的去量化的变换残差系数(E’)708。去量化的数据708随后被提供给逆变换器318,其应用变换模块308所应用的变换的逆操作,以生成重构的PU的残差系数(e’)710。
重构的PU的残差系数710随后被加至由选择器306从内预测PU1004和间预测PU1106中选择的对应预测PU的对应系数(x’)702’。例如,如果重新构建的残差来自空间预测器324的“内”编码过程,则将“内”预测器(x’)加至这个残差,以便恢复重新构建的PU(x”)712,PU(x”)712对应于由变换(例如在本情况是量化操作)导致的损失而修改的原始PU702。如果残差710来自时间预测器330的“间”编码过程,则由当前运动矢量指向的区域(这些区域属于存储在由当前图像索引所参考的参考缓冲器328中的参考图像)被融合然后被加至这个解码残差。这样,原始PU 702被由于量化操作导致的损失而修改。
就编码器202使用类似于如上所述的图像预测技术的运动矢量预测技术而言,可以使用运动矢量缓冲器329来存储运动矢量以便用于时间在后的帧。如下面进一步描述,可以设置标志并且以语法传输该标志,以指示用于当前解码帧的运动矢量应该被至少用于随后的编码帧,而不是以当前帧的MV来替换MV缓冲器329的内容。
循环滤波器322被应用于重构信号(x”)712,以便减少对所获得的残差的重度量化所造成的影响,并且改善信号质量。循环滤波器322可以包括,例如去块滤波器,其用于平滑PU之间的边界以可视地衰减由编码过程所造成的高频,还包括线性滤波器,其在图像的所有PU已被解码之后被应用以最小化与原始图像的方差和(SSD)。线性滤波过程被逐帧地执行且使用待被滤波的像素周围的若干像素,并且还使用帧像素之间的空间关联性。线性滤波器系数可以被编码且在比特流的一个头部被传送,通常是图片或切片的头部。
滤波的图像,也被称为重构图像,随后作为来自参考图像缓冲器328的参考图像被存储,以便允许后续“间”预测在当前视频序列的后续图像的压缩期间发生。
参考图像语法
如上所述,为了降低错误和改善压缩,HEVC许可若干参考图像的使用,以便对当前图像进行估计和运动补偿。给定当前图片中的当前PU 702,对于特定切片所配置的PU 1102驻留在关联的邻近参考/非参考图片中。例如,在图12中,对于图片(i)中当前PU 702所配置的PU 1102驻留在关联的邻近参考图片(i-1)中。在多个参考/非参考图像的一些中选择当前PU 702的最好的“间”预测器或时间预测器,这可以基于以显示次序在时间上在当前图片之前或之后的图片(分别是后向和前向预测)。
对于HEVC,由在切片语法中描述的参考图片列表来定义对参考图片的索引。由list_0(RefPicList0)来定义前向预测,而由list_1(RefPicList1)来定义后向预测,且列表0和列表1都可以包含以显示次序在当前图片之前或/和之后的多个参考图片。
图13图示说明了参考图片列表的使用的示例。考虑图13中所示的图片0、2、4、5、6、8和10,其中,每个图片的数字表示显示次序以及当前图片是图片5。在此情况下,具有上升参考图片索引且开始于等于零的索引的list_0参考图片是4、2、0、6、8和10,而具有上升参考图片索引且开始于等于零的索引的list_1参考图片是6、8、10、4、2和0。运动补偿预测被限制为list_0预测的切片被称为预测或P切片。通过使用HEVC中的collocated_ref_idx索引来指示配置的图片。对于其运动补充预测包括多于一个参考图片的切片是双预测或B切片。对于B切片,运动补偿预测可以包括来自list_1预测以及list_0的参考图片。
因此,所配置的PU 1102置于在list_0或list_1中指定的参考图片中。标志(collocated_from_l0_flag)用于指定对于特定切片类型应该从list_0还是list_1得到所配置的划分。每个参考图片还与运动矢量相关联。
在Benjamin Bross,Woo-Jin Han,Jens-Rainer Ohm,Gary J.Sullivan,ThomasWiegand,“WD4:Working Draft 4of High-Efficiency Video Coding,“JointCollaborative Team on Video Coding(JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-F803_d5,6th Meeting:Torino,IT,14-22July,2011(在此通过援引并入本文)的第8.4.1.2.9段中表述了用于新兴HEVC标准的参考图片以及相关运动矢量的存储和检索。
根据标准,如果slice_type等于B且collocated_from_l0_flag为0,则collocated_ref_idx变量将参考图片指定为如RefPicList1所指定的包含共同定位的划分的图片。否则(slice_type等于B且collocated_from_l0_flag等于1或slice_type等于P),则collocated_ref_idx变量将参考图片指定为如RefPicList0所指定的包含配置的划分的图片。
图14是图示说明了根据上述标准的编码器202执行的过程的图。块1402确定当前图片是否是用于另一图片的参考图片。如果不是,则不需要存储参考图片或运动矢量信息。如果当前图片是用于另一图片的参考图片,则块1504确定“另一”图片是P类型还是B类型图片。如果图片是P类型图片,则处理被传递到块1410,其将colloc_from_10_flag设置为1,且在列表0中存储参考图片和运动矢量。如果“另一图片”是B类型图片,则尽管如此块1406仍然在所需参考图片将被存储在列表0中时将处理引导到块1408和1410,在所需参考图片和运动矢量将被存储在列表1中时将处理引导到块1412和1414。该决策可以基于是否希望从时间上在先或在后的图片来选择参考图片。选择多个可能参考图片中的哪个是根据collocated_ref_idx索引来确定的。
图15描绘了解码器220根据之前HEVC标准在解码a中对collocated_from_10_flag的使用。块1502确定正在计算的当前切片类型是内还是I类型。这样的切片在编码/解码过程中不使用时间上邻近的切片,且因此不需要找到时间上邻近的参考图片。如果切片类型不是I类型,则块1504确定切片是否是B切片。如果切片不是B类型,则其是P类型切片,且根据collocated_ref_idx的值,在列表0中找到包含配置的划分的参考图片。如果切片是B类型,则collocated_from_10_flag确定在列表0还是列表1中找到参考图片。如索引所指示的,所配置的图片因此被定义为参考图片,取决于切片类型(B类型或P类型)以及collocated_from_10_flag的值,参考图片在列表0或列表1中具有指示的collocated_ref_idx。在HEVC的一个实施例中,第一参考图片(如图13中所示具有索引[0]参考图片被选择为配置的图片)。
基线图片参数集语法
图16A和16B是呈现基线PPS原始字节序列载荷(RBSP)语法的图。用于处理PPS中的扩展的语法如图16B中所示。逻辑1602确定是否将包括第一扩展来编码/解码媒体,且读取适当信令和数据。逻辑1602包括语句1606-1616。语句1606读取指示了第一扩展是否已被选择用于编码/解码过程的pps_extensiona1_flag。在一个实施例中,逻辑值“1”指示将使用第一扩展来处理媒体,而逻辑值“0”指示了将不使用第一扩展来处理媒体。语句1608是条件状态,其引导语句1612-1614根据transform_skip_enabled_flag的值(之前读取的)来执行。特别是,如果transform_skip_enabled_flag是逻辑“1”或真,则图示的逻辑执行语句1612-1614中所示的操作。PPS语法的transform_skip_enabled_flag 1601如图16A中所示。
变换省略是允许在特定环境下将省略TU的DCT变换的扩展。本质上,DCT变换对于高相关信号的媒体而言具有优势,其导致了出色的能量压缩。但是,对于具有高非相关信号的媒体(例如具有大量细节的媒体)而言,压缩性能差得多。对于一些媒体,DCT变换过程具有如此少的压缩性能,为了更好的处理性能过程最好被省略。transform_skip_enabled_flag指示了何时许可省略TU的DCT变换。在例如“Early Termination of Transform SkipMode for High Efficiency Video Coding,”by Do Kyung Lee,Miso Park,Hyung-Do Kimand Je-Chang Jeong in the Proceedings of the 2014International Conference onCommunications,Signal Processing and Computers中对此进行了描述,在此通过援引并入本文。如果transform_skip_enabled flag是逻辑1(真),则处理被传递给语句1612和1614。否则,处理被传递给语句1618。语句1612执行读取值log2_transform_skip_max_size_minus2的操作,其指示了可以被省略的最大TU尺寸(如果transform_skip_enabled_flag指示许可执行TU的DCT变换)。语句1614执行读取标志pps_extension2_flag的操作,其指示是否实现其他扩展(extension2)。
接下来,执行逻辑1604。逻辑1604包括语句1618-1622。语句1618是条件语句,如果pps_extension2_flag是逻辑1,则将处理传递给语句1620和1622的逻辑。语句1620和1622在存在RBSP数据时读取附加pps_extension_data_flags。
在前述的HEVC范围扩展的PPS设计中,pps_extension2_flag考虑了未识别的扩展数据。根据上述的逻辑,如果pps_extension1_flag为真,则pps_extension2_flag存在。如果pps_extension1_flag不为真,则pps_extension2_flag不存在。如果pps_extension2_flag不存在,则pps_extension2_flag被推断为等于0。如果pps_extension2_flag为0,则没有任何附加的扩展数据。
这个逻辑构想总是检查用于可能的附加扩展语法的pps_extension2_flag的值,而不管pps_extension1_flag的状态。但是,如果pps_extension1_flag为0,则不需要检查pps_extension2_flag,因为如果pps_extension1_flag为0,则pps_extension2_flag将不存在,而如果pps_extension2_flag不存在,将推断其等于0,这指示了没有其他扩展数据。
题为“MODIFICATION OF PICTURE PARAMETER SET(PPS)FOR HEVC EXTENSIONS”的相关美国实用专利申请序列号14/533,386描述了前述语法的修改,其中,图16B的逻辑1604(语句1616-1620)并入条件语句1608内,且只在pps_extension1_flag检测为逻辑1时从被执行。这允许如果pps_extension1_flag检测为逻辑0则语句1610-1620的逻辑将被省略,由此节省了执行时间。
当只有一个PPS扩展(例如变换省略扩展)将被启用且可能还有只在第一PPS扩展被执行的情况下才执行的读取附加数据(例如由pps_extension2_flag来以信令发送)的第二PPS扩展读取时,这个设计有用。但是,如果有附加PPS扩展,这个设计可能无效,因为语法要求稍后扩展必须解析所有之前的扩展语法,即使之前执行的扩展和/或语法可能与稍后执行的扩展和/或语法独立或无关。
改进的图片参数集语法
图17A-17D是呈现修改后的PPS原始字节序列载荷(RBSP)语法的图。总的来说,修改后的RBSP语法定义了扩展存在信令标志(pps_extension_present_flag),其以信令发送是否将至少部分地根据至少一个扩展函数来处理序列中的图片。如果pps_extension_present_flag检测为假,则知道没有将遵循的PPS扩展,且不再需要定义和处理这样的扩展的语法逻辑,以及不再执行与执行这样的语法逻辑相关联的处理,因此节省了处理资源、存储器资源和处理时间。修改后的PPS RBSP语法还包括一个或多个扩展信令标志,每个都以信令发送相关联的PPS扩展函数的存在。这增加了PPS语法的解析和执行的效率,因为不需要在语法中存储也不需要处理器读取或执行一个或多个扩展信令标志、关联数据和逻辑指令。
在一个实施例中,PPS RBSP语法被进一步被修改为使得扩展信令标志被索引和迭代地读取。例如,n个PPS扩展信令标志可以被标为pps_extension_flag[i],其中i是其值从0到n-1的索引。在一个实施例中,可以使用定义的七个PPS扩展信令标志(n=7)。每个这样的单独PPS扩展标志可以控制解析特定扩展函数语法。例如,第一PPS扩展标志可以控制HEVC范围的扩展相关语法的解析,第二PPS扩展标志可以控制MV-HEVC相关语法的解析。
在另一实施例中,通过使用附加的pps_extension_7bits语法,可以将前述内容扩展为容纳大于n(n>=8)个扩展。这个附加的语法许可了进一步扩展的信令,可以在未来指定多于不足以完成任务的七个PPS标志的进一步扩展。在优选实施例中,扩展比特的数目(以及上述索引的最大值)被设置为8比特(0-7)的倍数,使得可以容易地完成逐个字节的解析。
图17A是图示说明了可以被用来使用一个或多个扩展函数来编码/解码多个图片的序列的示例性操作的流程图。在块1700,读取扩展存在信令标志。扩展存在信令标志指示了是否将至少部分地根据至少一个扩展函数来处理PPS语法所参考的图片。在块1702,关于读取的扩展存在信令标志是否指示了将至少部分地使用至少一个扩展函数来处理与PPS语法相关联的图片,进行确定。在一个实施例中,这是通过确定扩展函数存在信令标志是否具有第一值来完成的。“值”可以是逻辑值(例如真或假)或者可以是指示了逻辑值的数字或字母数字值(例如1或0)。如果扩展存在信令标志不具有第一值(指示了将不使用任何扩展函数来处理与PPS语法相关联的图片),则可以跳过块1704-1708中所示的操作。如果扩展存在信令标志被确定为指示了将至少部分地根据至少一个扩展函数来解码图片,则如块1704中所示,第一扩展函数信令标志被读取,且无论第一扩展函数信令标志的值如何,如块1706中所示,读取第二扩展函数信令函数。因此,因为无论之前读取的第一扩展函数信令标志的值或状态如何都读取第二扩展函数信令标志,所以第二扩展函数信令标志的读取与所读取的第一扩展函数信令标志的值无关。这与图16B中所示的语法形成对比,在图16B中,只有在逻辑1608中pps_extension1_flag检测为真时才由逻辑1614读取pps_extension2_flag。最后,如块1708所描绘的,执行由块1704-1706中读取的标志以信令发送的扩展函数。
图17B是呈现可以用来执行图17A中所示的操作的示例性PPS语法的图,该示例性PPS语法用于以使用一个或多个扩展函数来解码多个图片的序列。在所示的实施例中,扩展函数包括上述的TU DCT变换省略扩展功能。
逻辑1712读取扩展存在信令标志。在所示的实施例中,扩展存在信令标志包括pps_extension_present_flag。逻辑1714检测以确定pps_extension_present_flag是否逻辑上为真,且只有这样时,才执行逻辑1716-1740。如果确定pps_extension_present_flag在逻辑上为假,则处理被传递给逻辑1740。重要的是,这意味着将不读取任何扩展标志,且将不执行任何扩展函数处理。
如果图17B执行图17A的块1704和1706所述的操作,则因此逻辑1716-1720读取扩展函数信令标志(这里,为pps_extension_flag[i]和/或pps_extension_7bits标志)。特别是,对于i=0到n-1,逻辑1716和1718读取pps_extension_flag[i](在示例性实施例中,n=1,因此只读取一个标志,即pps_extension_flag[0])。逻辑1720读取值pps_extension_7bits,其用于以信令发送多于由pps_extension_flag[0]-pps_extension_flag[6]引用的多达7个扩展函数的附加扩展功能。
逻辑1722和1728检测以确定读取的pps_extension_flag[0]是否具有指示了需要相关扩展函数(TU DCT省略)的逻辑值。如果pps_extension_flag[0]具有这样的值(例如检测逻辑上为真),则执行逻辑1724-1730。
逻辑1724检测以通过检测transform_skip_enabled_flag来确定是否启用变换省略。如果其被启用(例如transform_skip_enabled_flag检测为真),则执行PPS语法的逻辑1726-1728。逻辑1726-1728读取由log2_max_transform_skip_block_size_minus2表示的值,对于可以省略DCT变换其指定了最大变换单元(TU)的块尺寸。
逻辑1732检测以确定由逻辑1760读取的pps_extension_7bits的值是否检测为真。如果这样,则逻辑1734-1738读取这样的附加信令比特。
图17C是进一步图示说明了在图17B中呈现的示例性PPS语法的流程图,如上所述,首先读取所有的扩展函数信令标志(例如pps_extension_flag[i]-pps_extension_flag[n-1]),然后一个接一个地执行每个扩展函数。
参看图17C,块1750读取扩展存在信令标志。块1752确定扩展存在信令标志是否具有指示了将执行至少一个扩展函数的值。如果扩展存在信令标志指示了没有将执行的扩展函数,则处理被传递到块1758之后。如果扩展存在信令标志指示了将执行一个或多个扩展函数,则处理被传递到块1753,其读取了所有扩展函数信令标志(例如pps_extension_flag[i]-pps_extension_flag[n-1])。处理随后传递到块1754,其检测以确定第一扩展函数信令标志是否具有以信令发送将执行第一扩展函数的值。图17B图示说明了用于在逻辑1722执行该检测的示例性语法。
如果扩展函数信令标志指示将不执行扩展函数,则处理绕过块1756和1758。用于执行这些操作的语法被图17B的逻辑1722到逻辑1730所示例。如果扩展函数信令标志指示将执行扩展函数,则处理被传递到块1756,且执行扩展函数处理的至少一部分。用于执行这些操作的语法在图17B中由逻辑1724-1728所图示,其读取对于在由transform_skip_enabled_flag 1601指示的情况下可以省略DCT变化的最大变换单元块的尺寸。
块1758检测以确定是否已经考虑了所有扩展函数。如果已经考虑了所有扩展函数,则处理结束(类似于图17B中所示的语法中的逻辑1740)。如果还没有考虑所有扩展函数,则处理被传递到块1760,这带来了由块1754来考虑的下一函数信令标志。
前面图示说明了处理逻辑,其中读取所有扩展函数信令标志,随后一次一个地执行每个扩展函数。这个实施例在如逻辑1716和1718中所示的通过递增索引来读取扩展函数信令标志的实施例中尤其有用,因为其将标志(带索引)的读取与扩展函数自身(可以带或可以不带索引)的执行解耦。例如,可以仅通过包括用于执行每个扩展函数的语法,一个接着一个地(例如,执行逻辑1754-1756,随后通过插入在逻辑1756和1758之间的逻辑语句,执行进一步逻辑以执行下一扩展函数)来执行由块1754-1760表示的处理循环。或者,它们可以使用递增索引来执行,其可以是用于读取扩展函数信令标志的相同索引,或者不同索引。
图17D是图示说明了可替换实施例的流程图,其中取代于在开始执行扩展函数自身之前读取所有扩展函数信令标志,读取每个扩展函数信令标志且在读取下一扩展函数信令标志之前执行扩展函数。块1760读取第一扩展函数信令标志(可以带索引),且块1762检测读取的第一扩展函数信令标志是否指示了将执行第一扩展函数。如果将不执行函数,则处理被传递到块1768且不执行扩展函数。然而,如果第一扩展函数信令标志是否指示了将执行第一扩展函数,则处理被传递到块1764,其中在将处理传递到块1768之前执行这样的处理。一旦完成这个处理,块1768确定是否已经读取了所有扩展函数信令标志。如果是的话,则处理退出,但是如果不是的话,如块1770所图示,考虑下一扩展函数信令标志。读取第二扩展函数信令标志,且对于该第二扩展函数信令标志及其相关联的第二扩展函数,重复块1760-1768的操作。这还可以经由一个或多个递增索引的使用而完成,且不同索引将用于读取扩展函数信令标志以及执行扩展函数自身。
图18是呈现了用于HEVC范围扩展的PPS语法的实施例的图。如前,逻辑语句1712中读取的pps_extension_present_flag指出了至少一个pps_extension_flag[i]存在于PPS语法中。这个pps_extension_present_flag用于逻辑语句1714中,以指示逻辑语句1716和1718应该被执行,且这些逻辑语句读取对于i=0到n的pps_extension_flag[i]。pps_extension_flag[i]值为1指示了存在用于相关联的pps_extension的语法结构,而pps_extension_flag[i]值为0指示了不存在用于与标志相关联的pps_extension的语法结构。
在图18中所示的示例语法中,pps_extension_flag[0]值为1指示了在PPS RBSP语法结构中存在下面的HEVC范围扩展相关元素,如逻辑语句1724、1726和1804-1820中所示:
·log2_max_transform_skip_block_size_minus2
·luma_chroma_prediction_enabled_flag
·chroma_qp_adjustment_enabled_flag
·diff_cu_chroma_qp_adjustment_depth
·chroma_qp_adjustment_table_size_minus1
·cb_qp_adjustment
·cr_qp_adjustment
因此,pps_extension_flag[0]等于0指定了这些语法元素不存在。
进一步,pps_extension_7bits值为0指定了在PPS RBSP语法结构中不存在更多的pps_extension_data_flag语法元素,且逻辑语句1822省略了逻辑语句1824和1828。pps_extension_7bits应该在符合遗留规范版本的比特流中具有0的值,因为pps_extension_7bits值不等于0被保留用于ITU-T/ISO/IEC未来使用。HEVC解码器应该允许pps_extension_7bits的值不等于0且应该忽略PPS NAL单元中的所有pps_extension_data_flag语法元素。
图19A-19C示出了扩展信令语法的进一步替换实施例。图19A图示说明了一般性语法,其中扩展存在信令标志(pps_extension_present_flag)被用于以信令发送在PPS中是否存在进一步的扩展函数语法。如之前,逻辑语句1712读取pps_extension_present_flag。只有pps_extesion_present_flag指示了PPS中存在用于一个或多个扩展函数的语法,逻辑语句1714才命令逻辑语句1716-1742的执行。逻辑语句1716读取对于所有i值的pps_extension_flag[i],且逻辑语句1720读取pps_extension_7bits。逻辑语句1732-1740读取pps_extension_data_flag和相关联数据。
图19B图示说明了PPS语法,其中,在分开的语句中读取扩展函数信令标志,而不是经由处理循环内递增的索引。具体地,逻辑语句1902-1906读取指示了范围扩展处理将被执行的第一标志(pps_range_extension_flag)、指示了多层或多视图(MV-HEVC)扩展处理将被执行的第二标志(pps_multilayer_extension_flag)和用于读取进一步扩展数据的第三标志(pps_extension_bits6)。逻辑语句1910-1912执行如逻辑语句1902读取的pps_range_extension_flag所指示的pps_range_extension()处理(其可以置于由pps_range_extension()逻辑语句引用的独立PPS范围扩展语法中)。逻辑语句1914-1916执行如pps_multilayer_extension_flag所指示的pps_multilayer_extension()(也可以在由pps_multilayer_extension()逻辑语句引用的不同的PPS语法中被指定)。逻辑语句1918-1926读取pps_extension_data_flag和相关联的数据。
图19C图示说明了PPS语法,其中使用递增的索引读取扩展函数信令标志,而不是以独立、未索引的语句来检测和使用用于执行扩展处理的扩展函数信令标志。具体地,逻辑语句1930-1932使用采用值为0和1的索引i来读取两个pps_extension_flag,即pps_extension_flag[0]和pps_extension_flag[1]。逻辑语句1934读取pps_extension_6bits值,除了引用pps_extension_flag并以[0]或[1]的索引而非不同名称来进行区分,逻辑语句1938-1952类似于逻辑语句1910-1926来操作。
前述语法的其他实施例也被预想到。例如,有可能通过类型或目录来分组扩展存在信令标志(例如pps_extension_flag)。这许可具有类似数据要求的扩展一起被以信令发送以及处理,由此节省了语法语句和解码器处理。
如上所述,以信令发送的扩展函数可以是独立的,或者可以是功能上相关的。例如,在第二扩展函数可以被完成之前,第二扩展函数可以需要使用第一(之前处理或执行的)扩展函数的结果。或者,第二扩展函数可以与第一扩展函数互相排斥(例如,要么将执行第一扩展函数或要么将执行第二扩展函数,但不会二者都执行)。或者,第二扩展函数可以是除非也执行第一扩展函数否则将不会执行的函数,因此,第二扩展函数值仅在第一扩展函数也被执行时才在处理序列中被暗示或执行。例如,计算可能需要来自第一扩展函数和第二扩展函数二者的输出或结果,并且因此,第一扩展函数的存在必需暗示着第二扩展函数,反之亦然。
关于解码处理描述了前述操作,其可以作为编码处理的一部分的发生在源解码器220中或编码器202中。编码处理还可以被表达为包括根据切片类型数据确定一个或多个切片中的切片是否是预测间切片,以及如果切片是预测间切片,则将与切片相关联的切片头部中的第一参数配置为与切片相关联的图像数据的加权预测的状态的信令启用值。
硬件环境
图20图示说明了可以用来实现本发明的实施例的示例性处理系统2000。计算机2002包括处理器2004和存储器,诸如随机存取存储器(RAM)2006。计算机2002操作耦合到显示器2022,其在图形用户界面2018B上将诸如窗口的图像呈现给用户。计算机2002可以耦合到其他设备,诸如键盘2014、鼠标2016、打印机等等。当然,本领域技术人员将认识到上述组件的任意组合,或任意数量的不同组件、外围设备或其他设备,可以同计算机2002一起使用。
通常,计算机2002在存储在存储器2006中的操作系统2008的控制下操作,且与用户交互以接受输入和命令以及通过图形用户界面(GUI)模块2018A呈现结果。尽管GUI模块2018A被描绘为独立模块,但执行GUI功能的指令可以驻留或分布在操作系统2008、计算机程序2010中,或者以专用存储器和处理器来实现。计算机2002还实现了编译器2012,其允许将以诸如COBOL,C++,FORTRAN的编程语言或其他语言撰写的应用程序2010翻译成处理器2004可读代码。在完成之后,应用2010采用使用编译器2012生成的关系和逻辑来访问并操控计算机2002的存储器2006中存储的数据。计算机2002还可选地包括外部通信设备,诸如调制解调器、卫星链路、以太网卡、或用于与其他计算机通信的其他设备。
在一个实施例中,实现操作系统2008、计算机程序2010和编译器2012的指令有形地体现为计算机可读介质,例如数据存储设备2020,其可以包括一个或多个固定或可移动数据存储设备,诸如zip驱动器、软盘驱动器2024、硬盘驱动器、CD-ROM驱动器、磁带驱动器等等。进一步,操作系统2008和计算机程序2010由指令组成,当计算机2002读取和执行该指令时,该指令使得计算机2002执行实现和/或使用本发明所必需的步骤。计算机程序2010和/或操作指令还可以有形地体现为存储器2006和/或数据通信设备2030,由此做出所制造的计算机程序产品或物品。由此,本文使用的术语“制造的物品”、“程序存储设备”和“计算机程序产品”旨在包含可从任何计算机可读设备或介质访问的计算机程序。
处理系统2000还可以体现为桌面计算机、膝上型计算机、平板、笔记本计算机、个人数字助理(PDA)、蜂窝电话、智能电话、或者具有合适处理和存储能力的任何设备。进一步,处理系统2000可以利用专用硬件来执行一些或全部前述功能。例如,上述的编码和解码处理可以由专用处理器和相关联的存储器来执行。
本领域技术人员将认识到,在不背离本公开的范围的情况下,可以对该配置进行许多修改。例如,本领域技术人员将认识到,上述组件的任意组合,或者任意数量的不同组件、外围设备和其他设备,都可以被使用。例如,本文所述的特定功能可以由硬件模块来执行,或者可以由执行以软件或固件形式存储的指令的处理器来执行。进一步,本文所述的功能可以在单个模块中进行组合或者扩展到在多个模块中执行。
结论
出于说明和描述的目的,已经呈现了优选实施例的前述描述。不旨在是穷尽的或者将公开的内容限制到所公开的精确形式。考虑到上面教导,许多修改和变形都是可能的。旨在权利的范围不受到该详细描述的限制,而是由所附的权利要求来限制。