本发明涉及用于视频编码和解码的装置、方法和计算机程序。
背景技术:
视频编解码器包括编码器和解码器,编码器将输入视频的图像变换成适合于存储/传输的经压缩的表示,解码器能够将经压缩的视频表示解压回到可观看的形式。图像序列能够被压缩为利用空间预测装置编码的静止图片的序列或利用空间和时间预测装置编码的帧间图片的序列。具有随机访问并支持对单个图片进行编辑的图像序列已经在传统上通过将该序列表示为一系列独立编码的帧内图片来实现。这样的格式包括,例如,运动JPEG、动画呈现的GIF和H.264的帧内档次(Intra profile)。
如果图像的序列被表示为一系列静止图片,则编码效率通常很差并且针对高分辨率序列的文件大小要求能够变得非常大。在序列利用时间预测被编码为视频的情况下,存在关于该序列需要如何被解码、在用户想要对该序列中的一些图像进行编辑时其如何能够被回放并且发布的严格限制。
因此,存在对用于对图像序列进行编码和解码而同时提供随机访问和可编辑性功能的更高效的方法的需要。
技术实现要素:
本发明从这样的考虑出发:通过信号通知参考图片集合是否能够一次被存储在参考图片缓冲器中以及该序列中的所有输出图片是否能够利用在对该序列进行解码的过程期间不改变的所述参考图片集合进行解码来实现图像序列的具有随机访问和可编辑性功能的更高效的编码/解码。
根据第一实施例的一种方法,包括一种用于从比特流解码图像序列的方法,所述方法包括:
对指示所有输出图片是否利用预定义的参考图片集合可解码的标识符进行解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据实施例,所述方法还包括:
从一个或多个语法元素和/或语法元素值解码图片是参考图片还是非参考图片的指示。
根据实施例,所述方法还包括:
对所述比特流包括仅一个时间子层的指示进行解码,其中时间子层非参考图片被认为是非参考图片,并且所有其他图片被认为是参考图片。
根据实施例,所述方法还包括:
对所述比特流包括两个或更多个时间子层的指示进行解码,其中具有等于0的TemporalId的所有图片被认为是参考图片,并且具有大于0 的TemporalId的所有图片被认为是非参考图片。
根据实施例,所述方法还包括:
从用于所述比特流的容器文件格式解码指示参考图片和非参考图片的元数据。
根据实施例,所述方法还包括:
对指示输出图片和/或未被输出的图片的指示进行解码,所述指示为以下中的一项:
-HEVC的pic_output_flag,
-用于指示要被显示的图片的SEI消息,
-用于指示要被显示的图片的容器文件格式元数据指示。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中所述输出图片利用样本分组机制来指示,使得图像的序列或集合使用ISOMBFF的轨道结构来存储。
根据实施例,所述方法还包括:
对图片的集合中的所有帧间编码的图片仅使用帧内图片作为参考图片的指示进行解码。
根据实施例,所述方法还包括:
对所有的所述帧间编码的图片使用仅一幅参考图片的指示进行解码。
根据实施例,所述方法还包括:
对关于零个或更多个解码顺序的指示进行解码,所述零个或更多个解码顺序与来自容器文件格式或来自一个或多个SEI消息的比特流顺序不相同。
根据实施例,所述容器文件格式是ISO基本媒体文件格式(ISOBMFF),其中块偏移框数据结构和块框数据结构的样本被用于将以任何顺序驻存在媒体数据框数据结构内或外部文件中的样本与所述解码顺序关联。
根据实施例,所述方法还包括:
对关于零个或更多个显示顺序的指示进行解码,所述零个或更多个显示顺序与在所述比特流内指定的或被指示为来自容器文件格式或来自一个或多个SEI消息的默认顺序的输出顺序不相同。
根据第二实施例的一种方法,包括一种用于从比特流解码图像序列的方法,所述方法包括:
对指示所述序列内的所有帧间预测的图片是否是非参考图片的标识符进行解码;
对至少一幅帧内图片进行解码;以及
对至少一幅帧间图片进行解码。
根据实施例,所述方法还包括:
对所有帧间编码的图片使用仅一幅参考图片的指示进行解码。
根据第三实施例的一种方法,包括一种用于从比特流解码图像序列的方法,所述方法包括:
对指示所有增强层图片是否仅使用来自基本层图片的图片的标识符进行解码;
对至少一幅基本层图片进行解码;以及
对至少一幅增强层图片进行解码。
根据第四实施例的一种装置包括:
至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码当由所述至少一个处理器运行时,使得装置至少执行:
从比特流解码标识符,所述标识符指示图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据第五实施例,提供了一种计算机可读存储介质,在其上存储有用于由装置使用的代码,所述代码当由处理器运行时,使得所述装置执行:
从比特流解码标识符,所述标识符指示图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据第六实施例,提供了一种包括视频解码器的装置,所述视频解码器被配置为对包括图像序列的比特流进行解码,所述视频解码器包括:
用于从所述比特流解码标识符的部件,所述标识符指示所述图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
用于对给定输出图片所需要的参考图片的指示进行解码的部件;
用于对针对所述给定输出图片指示的至少一幅参考图片进行解码的部件;以及
用于对至少一幅输出图片进行解码的部件。
根据第七实施例,提供了一种视频解码器,所述视频解码器被配置为对包括图像序列的比特流进行解码,其中所述视频解码器还被配置用于:
从所述比特流解码标识符,所述标识符指示所述图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据第八实施例的一种方法,包括一种用于将图像序列编码在比特流中的方法,所述方法包括:
对参考图片集合进行编码;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
根据实施例,所述方法还包括:
将图片是参考图片还是非参考图片的指示编码在一个或多个语法元素和/或语法元素值中。
根据实施例,所述方法还包括:
对所述比特流包括仅一个时间子层的指示进行编码,其中时间子层非参考图片被认为是非参考图片,并且所有其他图片被认为是参考图片。
根据实施例,所述方法还包括:
对所述比特流包括两个或更多个时间子层的指示进行编码,其中具有等于0的TemporalId的所有图片被认为是参考图片,并且具有大于0 的TemporalId的所有图片被认为是非参考图片。
根据实施例,所述方法还包括:
将指示参考图片和非参考图片的元数据编码在用于所述比特流的容器文件中。
根据实施例,所述方法还包括:
对指示输出图片和/或未被输出的图片的指示进行编码,所述指示为以下中的一项:
-HEVC的pic_output_flag,
-用于指示要被显示的图片的SEI消息,
-用于指示要被显示的图片的容器文件格式元数据指示。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中所述输出图片利用样本分组机制来指示,使得图像的序列或集合使用ISOMBFF的轨道结构来存储。
根据实施例,所述方法还包括:
对图片的集合中的所有帧间编码的图片仅使用帧内图片作为参考图片的指示进行编码。
根据实施例,所述方法还包括:
对所有的所述帧间编码的图片使用仅一幅参考图片的指示进行编码。
根据实施例,所述方法还包括:
对关于零个或更多个解码顺序的指示进行编码,所述零个或更多个解码顺序与容器文件格式中或一个或多个SEI消息中的比特流顺序不相同。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中块偏移框数据结构和块框数据结构的样本被用于将以任何顺序驻存在媒体数据框数据结构内或外部文件中的样本与所述解码顺序关联。
根据实施例,所述方法还包括:
对关于零个或更多个显示顺序的指示进行编码,所述零个或更多个显示顺序与在所述比特流内指定的或被指示为容器文件格式中或一个或多个SEI消息中的默认顺序的输出顺序不相同。
根据第九实施例的一种装置,包括:
至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码当由所述至少一个处理器运行时,使得装置至少执行:
将参考图片集合编码在比特流中;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
根据第十实施例,提供了一种计算机可读存储介质,在其上存储有用于由装置使用的代码,所述代码当由处理器运行时,使得所述装置执行:
将参考图片集合编码在比特流中;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
根据第十一实施例的一种装置,包括:
视频编码器,所述视频编码器被配置为将图像序列编码在比特流中,其中所述视频编码器包括:
用于对参考图片集合进行编码的部件;
用于将所述参考图片集合存储在初始参考图片缓冲器中的部件;
用于在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码的部件;以及
用于将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中的部件。
根据第十二实施例,提供了一种视频编码器,所述视频编码器被配置用于将图像序列编码在比特流中,其中所述视频编码器还被配置用于:
对参考图片集合进行编码;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
附图说明
为了更好地理解本发明,通过举例的方式对附图进行参考,在附图中:
图1示意性地示出了采用本发明的一些实施例的电子设备;
图2示意性地示出了适合于采用本发明的一些实施例的用户设备;
图3进一步示意性地示出了使用无线网络连接和有线网络连接的采用本发明的实施例的电子设备;
图4示意性地示出了适合于实施本发明的一些实施例的编码器;
图5示出了包括两个区片的图片的示例;
图6示出了当前块和用作运动预测候选者的五个空间相邻块的示例;
图7示出了根据本发明的实施例的编码过程的流程图;
图8a-8d示出了根据一些实施例的编码结构的一些示例;
图9示出了适合于实施本发明的一些实施例的解码器的示意图;
图10示出了根据本发明的实施例的解码过程的流程图;以及
图11示出了根据本发明的另一实施例的解码过程的流程图。
具体实施方式
下文进一步详细描述了用于在不显著牺牲编码效率的情况下对增强层子图片进行编码的适当的装置和可能的机制。在这一点上,首先参考图1,图1示出了示范性装置或电子设备50的示意性方框图,所述示范性装置或电子设备50可以包含根据本发明的实施例的编解码器。
电子装置50可以例如是移动终端或无线通信系统的用户设备。然而,将认识到,本发明的实施例可以被实施在可以要求编码和解码或对视频图像进行编码和解码的任何电子设备或装置内。
装置50可以包括用于包含和保护设备的壳体30。装置50还可以包括形式为液晶显示器的显示器32。在本发明的其他实施例中,显示器可以是适合于显示图像或视频的任何适当的显示技术。装置50还可以包括小键盘34。在本发明的其他实施例中,可以采用任何适当的数据或用户接口机构。例如,用户接口可以被实施为作为触敏显示器的一部分的虚拟键盘或数据输入系统。装置可以包括麦克风36或可以为数字或模拟信号输入的任何适当的音频输入。装置50还可以包括音频输出设备,所述音频输出设备在本发明的实施例中可以为以下的任何一个:耳机 38、扬声器或任何模拟音频或数字音频输出连接。装置50还可以包括电池40(或在本发明的其他实施例中,设备可以由诸如太阳能电池、燃料电池或时钟机构发生器的任何适当的移动能量设备来供电)。所述装置还可以包括用于到其他设备的短程视影通信的红外端口42。在其他实施例中,装置50还可以包括任何适当的短程通信解决方案,诸如举例而言蓝牙无线连接或USB/火线有线连接。
装置50可以包括控制器56或用于控制装置50的处理器。控制器 56可以被连接到存储器58,所述存储器58在本发明的实施例中可以存储以图像和音频数据的形式的两种数据和/或还可以存储用于实施在控制器56上的指令。控制器56还可以被连接到适合于执行对音频和/或视频数据的编码和解码或辅助由控制器56执行的编码和解码的编解码器电路54。
装置50还可以包括读卡器48和智能卡46,例如用于提供用户信息并且适合于提供用于在网络处对用户的认证和授权的认证信息的UICC 和UICC阅读器。
装置50可以包括连接到控制器并且适合于生成无线通信信号例如以用于与蜂窝通信网络、无线通信系统或无线局域网的通信的无线电接口电路52。装置50还可以包括连接到射频接口电路52以用于向其他装置传输在无线电接口电路52处生成的射频信号并且用于从其他装置接收射频信号的天线44。
在本发明的一些实施例中,装置50包括能够记录或检测单个帧的相机,这些帧之后被传递到编解码器54或控制器以用于处理。在本发明的其他实施例中,装置可以在传输和/或存储视频图像数据之前从另一设备接收该视频图像数据以用于处理。在本发明的其他实施例中,装置 50可以无线地或通过有线连接接收图像以用于编码/解码。
参考图3,示出了其内能够利用本发明的实施例的系统的示例。系统10包括多个通信设备,所述多个通信设备能够通过一个或多个网络通信。系统10可以包括有线网络或无线网络的任何组合,包括但不限于无线蜂窝电话网络(诸如,GSM、UMTS、CDMA网络等)、诸如由 IEEE 802.x标准中的任何标准限定的无线局域网(WLAN)、蓝牙个人局域网、以太网局域网、令牌环局域网、广域网以及互联网。
系统10可以包括适合于实施本发明的实施例的有线和无线通信设备或装置50两者。
例如,图3中示出的系统示出了移动电话网络11和互联网28的表示。到互联网28的连接性可以包括但不限于远程无线连接、短程无线连接以及各种有线连接,包括但不限于电话线、线缆线、电力线和类似的通信通路。
系统10中示出的示例通信设备可以包括但不限于电子设备或装置 50、个人数字助理(PDA)和移动电话14的组合、PDA 16、集成消息设备(IMD)18、台式计算机20、笔记本电脑22。装置50当由正在移动的个人携带时可以是固定的或移动的。装置50还可以位于交通工具中,交通工具包括但不限于汽车、卡车、出租车、公交车、火车、轮船、飞机、自行车、摩托车或任何类似的交通工具。
实施例还可以被实施在机顶盒、即数字TV接收器中,其可以具有/不具有显示或无线功能,可以被实施在具有编码器/解码器实施方式的硬件或软件组合的平板电脑或(膝上型)个人计算机(PC)中,可以被实施在各种操作系统中,并且可以被实施在提供基于硬件/软件编码的芯片组、处理器、DSP和/或嵌入式系统中。
一些或另外的装置可以通过到基站24的无线连接25发送和接收呼叫和消息并与服务提供商通信。基站24可以被连接到网络服务器26,所述网络服务器26允许移动电话网络11和互联网28之间的通信。系统可以包括附加的通信设备和各种类型的通信设备。
通信设备可以使用各种传输技术来通信,包括但不限于码分多址 (CDMA)、全球移动通信系统(GSM)、通用移动通信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议-互联网协议 (TCP-IP)、短消息服务(SMS)、多媒体消息服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11以及任何类似的无线通信技术。在实施本发明的各种实施例中涉及的通信设备可以使用各种介质来通信,包括但不限于无线电、红外、激光、线缆连接以及任何适当的连接。
视频编解码器包括编码器和解码器,编码器将输入视频变换成适合于存储/传输的经压缩的表示,解码器能够将经压缩的视频表示解压回到可观看的形式。通常编码器丢弃原始视频序列中的一些信息以便以更紧凑的形式(即,以更低比特率)来表示视频。
例如ITU-T H.263和H.264的许多编码器实施方式的典型的混合视频编解码器在两个阶段中对视频信息进行编码。首先,在某个图片区域(或者“块”)中的像素值例如通过运动补偿装置(找到并指示先前编码的视频帧中的紧密对应于被编码的块的一帧中的区域)或通过空间装置(使用将以指定方式被编码的块周围的像素值)来预测。第二,预测误差,即预测的像素块和原始像素块之间的差被编码。这通常通过使用指定变换(例如,离散余弦变换(DCT)或其变型)来对像素值的差进行变换、对系数进行量化并对所量化的系数进行熵编码来完成。通过改变量化过程的保真度,编码器能够控制像素表示的准确性(图片质量) 和得到的经编码的视频表示的大小(文件大小或传输比特率)之间的平衡。
还可以被称为时间预测、运动补偿或经运动补偿的预测的帧间预测减少时间冗余度。在帧间预测中,预测的源是先前解码的图片。帧内预测利用相同图片内的相邻图片有可能相关的事实。帧内预测能够被执行在空间域或变换域中,即样本值或变换系数能够被预测。帧内预测通常被利用在帧内编码中,其中没有应用帧间预测。
编码流程的一个结果是诸如运动向量和经量化的变换系数的编码参数的集合。如果许多参数首先从空间上或时间上邻近的参数被预测,则它们能够更高效地被熵编码。例如,运动向量可以从空间上相邻的运动向量来预测并且仅仅相对于运动向量预测器的差可以被编码。对编码参数和帧内预测的预测可以统称为图片中预测。
图4示出了适合于采用本发明的实施例的视频编码器的方框图。图4将针对两层来呈现编码器,但是将认识到呈现的编码器能够类似地被扩展以对超过两层进行编码。图4图示了包括针对基本层的第一编码器部分500和针对增强层的第二编码器部分502的视频编码器的实施例。第一编码器部分500和第二编码器部分502中的每一个可以包括用于对进入的图片进行编码的类似的元件。编码器部分501、502可以包括像素预测器302、402,预测误差编码器303、403和预测误差解码器 304、404。图4还将像素预测器302、402的实施例示出为包括帧间预测器306、406,帧内预测器308、408,模式选择器310、410,滤波器 316、416和参考帧存储器318、418。第一编码器部分500的像素预测器302接收要在帧间预测器306(其确定图像与经运动补偿的参考帧318 之间的差)和帧内预测器308(其仅基于当前帧或图片的已经处理的部分来确定针对图像块的预测)两者处被编码的视频流的基本层图像300。帧间预测器和帧内预测器两者的输出被传递到模式选择器310。帧内预测器308可以具有多于一种帧内预测模式。因此,每种模式可以执行帧内预测并将所预测的信号提供给模式选择器310。模式选择器310还接收基本层图片300的副本。对应地,第二编码器部分502的像素预测器 402接收要在帧间预测器406(其确定图像与经运动补偿的参考帧418 之间的差)和帧内预测器408(其仅基于当前帧或图片的已经处理的部分来确定针对图像块的预测)两者处被编码的视频流的增强层图像400。帧间预测器和帧内预测器的输出被传递到模式选择器410。帧内预测器 408可以具有多于一种帧内预测模式。因此,每种模式可以执行帧内预测并将所预测的信号提供给模式选择器410。模式选择器410还接收增强层图片400的副本。
取决于哪种编码模式被选择以对当前块进行编码,帧间预测器 306、406的输出或可选的帧内预测器模式之一的输出或模式选择器内的表面编码器的输出被传递到模式选择器310、410的输出。模式选择器的输出被传递到第一求和设备321、421。第一求和设备可以从基本层图片300/增强层图片400减去像素预测器302、402的输出以产生第一预测误差信号320、420,其被输入到预测误差编码器303、403。
像素预测器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,其当与图像块312、412的预测表示在第二求和设备 339、439处被组合时产生初步重建图像314、414。预测误差解码器可以被认为包括反量化器361、461和逆变换单元363、463,反量化器361、 461对经量化的系数值(例如DCT系数)进行反量化以重建变换信号,逆变换单元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)标准由联合VCEG和MPEG的联合协作团队—视频编码(JCT-VC)开发。目前,H.265/HEVC标准正在经历在ISO/IEC和ITU-T中的最终批准投票。该标准将由两个父标准化组织发布,并且其被称为ITU-T推荐H.265和ISO/IEC国际标准 23008-2,还被称为MPEG-H部分2高效率视频编码(HEVC)。存在当前正在进行的标准化项目以开发对H.265/HEVC的扩展,包括可分级的、多视图的、三维的和保真度范围扩展。
H.264/AVC和HEVC的一些关键定义、比特流和编码结构以及概念在本节中被描述为视频编码器、解码器、编码方法、解码方法和比特流结构的示例,其中实施例可以被实施。H.264/AVC的一些关键定义、比特流和编码结构以及概念与HEVC标准草案中相同,因此,下面联合地对它们进行描述。本发明的方面不限于H.264/AVC或HEVC,相反在本发明可以部分地或完全地被实现的基础上给出所述描述。
类似于许多较早的视频编码标准,在H.264/AVC和HEVC中规定了比特流语法和语义以及针对无差错比特流的解码过程。该编码过程不是特定的,但是编码器必须生成一致的比特流。比特流和解码器一致性可以利用假想的参考解码器(HRD)来验证。该标准包含有助于处置传输错误和丢失的编码工具,但是在编码中对工具的使用是可选的并且没有解码过程已经被规定用于错误的比特流。
在现有标准的描述中以及在示例实施例的描述中,语法元素可以被定义为在比特流中表示的数据的元素。语法结构可以被定义为以规定顺序一起在比特流中呈现的零个或更多个语法元素。
档次(Profile)可以被定义为由解码/编码标准或规范规定的全部比特流语法的子集。在由给定档次的语法施加的约束内,仍然能够取决于由比特流中的语法元素获取的诸如解码的图片的规定大小的值来要求在编码器和解码器的性能中的非常大的变化。在许多应用中,实施能够处理特定档次内的语法的所有假想使用的解码器可能既不实际也不经济。为了处理该问题,可以使用级别(level)。级别可以被定义为被施加在比特流中的语法元素和在解码/编码标准或规范中规定的变量的值的约束的规定集合。这些约束可以是对值的简单限制。备选地或附加地,它们可以采取对值(例如,图片宽度乘以图片高度乘以每秒解码的图片的数量)的算术组合的约束的形式。还可以使用用于规定针对级别的约束的其他手段。在级别中规定的约束中的一些约束可以例如与最大图片大小、以诸如宏块的编码单元为单位的每时间段(例如,秒)的最大比特率和最大数据速率相关。可以针对所有档次定义相同的级别的集合。可以优选例如增大实施不同档次的终端的可互操作性,每个级别的定义的大部分或所有方面在不同的档次上可以是共同的。
到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中,将样本数组作为单独的颜色平面编码到比特流中并且分别从比特流对单独编码的颜色平面进行解码是可能的。当使用单独的颜色平面时,利用单色采样将它们中的每一个单独地作为图片来处理(由编码器和/或解码器)。
当使用色度子采样(例如,4:2:0或4:2:2色度采样)时,可以在编码器侧确定色度样本相对于亮度样本的位置(例如,作为预处理步骤或作为编码的部分)。相对于亮度样本位置的色度样本位置可以例如被预定义在诸如H.264/AVC或HEVC的编码标准中,或者可以被指示在比特流中例如作为H.264/AVC或HEVC的VUI的部分。
分割可以被定义为将集合划分成子集使得该集合的每个元素恰好处于子集中的一个子集中。
在H.264/AVC中,宏块是亮度样本的16x16块和色度样本的对应块。例如,在4:2:0采样模式中,宏块包含每个色度分量一个色度样本的8x8块。在H.264/AVC中,图片被分割为一个或多个切片组,并且切片组包含一个或多个切片。在H.264/AVC中,切片包括特定切片组内的在光栅扫描中连续排序的整数个宏块。
当描述HEVC编码和/或解码的操作时,可以使用以下术语。编码块可以被定义为针对N的某个值的NxN的样本块使得将编码树块划分成编码块是分割。编码树块(CTB)可以被定义为针对N的某个值的 NxN样本块使得将分量划分成编码树块是分割。编码树单元(CTU)可以被定义为具有三个样本数组的图片的亮度样本的编码树块、两个对应的色度样本的编码树块,或者使用三个单独的颜色平面和用于对样本进行编码的语法结构来编码的单色图片或图片的样本的编码树块。编码单元(CU)可以被定义为具有三个样本数组的图片的亮度样本的编码块、两个对应的色度样本的编码块,或者使用三个单独的颜色平面和用于对样本进行编码的语法结构来编码的单色图片或图片的样本的编码块。
在诸如高效率视频编码(HEVC)编解码器的一些视频编解码器中,视频图片被划分成覆盖图片的区域的编码单元(CU)中。CU包括一个或多个预测单元(PU)和一个或多个变换单元(TU),所述一个或多个预测单元定义针对CU内的样本的预测过程,所述一个或多个变换单元定义针对所述CU中的样本的预测误差编码过程。通常,CU包括具有可从可能CU大小的预定义集合选择的大小的样本的方块。具有最大允许大小的CU可以被称为LCU(最大编码单元)或编码树单元(CTU) 并且视频图片被划分成非重叠LCU。LCU还能够例如通过递归地将LCU 和得到的CU拆分而被拆分成更小的CU的组合。每个得到的CU通常具有至少一个PU和与其相关联的至少一个TU。每个PU和TU能够进一步被拆分成更小的PU和TU以便分别增大预测和预测误差编码过程的粒度。每个PU具有与其相关联的、定义哪种类型的预测要被应用于该PU内的像素的预测信息(例如,针对帧间预测的PU的运动向量信息和针对帧内预测的PU的帧内预测方向性信息)。
用于帧内预测的预测模式的方向,即要被应用在特定预测模式中的预测方向可以是垂直的、水平的、对角的。例如,在当前HEVC草案编解码器中,统一帧内预测取决于PU的大小提供高达34个方向性预测模式,并且帧内预测模式中的每一个具有向其指派的预测方向。
类似地,每个TU与描述针对所述TU内的样本的预测误差解码过程的信息(包括例如DCT系数信息)相关联。通常在CU级别上信号传送是否要针对每个CU应用预测误差编码。在不存在与CU相关联的预测误差残差的情况下,可以认为不存在针对所述CU的TU。图像到CU 中的划分以及CU到PU和TU的划分通常在比特流中被信号传送,以允许解码器重新产生这些单元的预期结构。
在HEVC标准草案中,图片能够被分割成区片,区片是矩形的并且包含整数个LCU。在HEVC标准草案中,到区片的分割形成规则网格,其中区片的高度和宽度最多彼此相差一个LCU。在HEVC草案中,切片被定义为包含在一个独立切片片段和在相同访问单元内的下一独立切片片段(如果存在)前面的所有后续从属切片片段(如果有的话)中的整数个编码树单元。在HEVC标准草案中,切片片段被定义为在区片扫描中连续排序的并且包含在单个NAL单元中的整数个编码树单元。将每个图片划分成切片片段是分割。在HEVC草案中,独立的切片片段被定义为其切片片段头的语法元素的值不是从前面的切片片段的值推出的切片片段,并且从属的切片片段被定义为其切片片段头的一些语法元素的值是从在解码顺序中的前面的独立切片片段的值推出的切片片段。在HEVC草案中,切片头被定义为作为当前切片片段的独立切片片段或是在当前从属切片片段前面的独立切片片段的切片片段头,并且切片片段头被定义为包含与表示在切片片段中的第一编码树单元或所有编码树单元有关的数据元素的编码切片片段的一部分。如果没有使用区片的话,则CU以区片内或图片内的LCU的光栅扫描顺序来扫描。在LCU 内,CU具有特定的扫描顺序。图5示出了包括被分割成方块编码单元 (实线)的两个区片的图片的示例,方块编码单元已经进一步被分割成矩形预测单元(虚线)。
解码器通过应用类似于编码器的预测装置以形成对像素块的预测的表示(使用由编码器创建的并且存储在经压缩的表示中的运动或空间信息)和预测误差解码(在空间像素域中恢复经量化的预测误差编码的反操作)来重建输出视频。在应用预测和预测误差解码装置之后,解码器对预测和预测误差信号(像素值)进行合计以形成输出视频帧。解码器(和编码器)还能够应用附加的滤波装置以在将传递输出视频以用于显示和/或将其存储为用于视频序列中的即将到来的帧的预测参考之前改进该输出视频的质量。
滤波可以例如包括以下中的一个多个:去块效应、样本自适应偏移(SAO)和/或自适应环路滤波(ALF)。
在SAO中,图片被划分成区域,其中针对每个区域做出单独的 SAO决策。区域中的SAO信息被封装在SAO参数适配单元(SAO单元)中,并且在HEVC中,用于适配SAO参数的基本单元是CTU(因此,SAO区域是由对应的CTU覆盖的块)。
在SAO算法中,CTU中的样本根据规则集被分类并且每个经分类的样本集合通过添加偏移值而被增强。偏移值在比特流中被信号传送。存在两种类型的偏移:1)带状偏移2)边缘偏移。对于CTU,没有SAO或带状偏移或边缘偏移被采用。是否没有SAO或带状偏移或边缘偏移要被使用的选择可以由具有例如率失真优化(RDO)的编码器来决定并且被信号传送到解码器。
在带状偏移中,整个范围的采样值在一些实施例中被划分成32个等宽度的带。例如,对于8比特样本,带的宽度是8(=256/32)。在32 个带中的4个带被选择并且针对所选择的带中的每个带来信号传送不同的偏移。选择决策由编码器做出并且可以如下被信号传送:第一个带的索引被信号通知并且之后推测随后的四个带是选定的带。在对平滑区域中的误差进行校正时带状偏移可以是有用的。
在边缘偏移类型中,边缘偏移(EO)类型可以从四个可能的类型 (或边缘分类)中被选出,其中每个类型与方向相关联:1)垂直;2) 水平;3)135度对角;以及4)45度对角。方向的选择由编码器给出并被信号传送到解码器。每种类型基于角度针对给定样本定义两个邻近样本的位置。之后,CTU中的每个样本基于针对两个邻近样本的值的样本值的比较而被分类到五个种类之一。五个种类被描述如下:
1)当前样本值小于两个邻近样本
2)当前样本值小于邻居之一并且等于其他邻居
3)当前样本值大于邻居之一并且等于其他邻居
4)当前样本值大于两个邻近样本
5)以上都不是
这五个种类不要求被信号传送到解码器,因为分类仅仅基于重建样本,所述重建样本在编码器和解码器两者中可以是可用并且相同的。在边缘偏移类型CTU中的每个样本被分类为五个种类之一后,针对头四个种类中的每个种类的偏移值被确定并被信号传送到解码器。针对每个种类的偏移被添加到与对应的种类相关联的样本值。在对振铃伪影进行校正时边缘偏移可以是有效的。
SAO参数可以被信号传送为被交织在CTU数据中。在CTU上面,切片头含有指定是否要在切片中使用SAO的语法元素。如果使用SAO,则两个附加的语法元素指定SAO是否被应用到Cb和Cr分量。对于每个CTU,存在三个选项:1)复制来自左边CTU的SAO参数2)复制来自上边CTU的SAO参数或者3)信号传送新的SAO参数。
自适应环路滤波器(ALF)是用于增强重建样本的质量的另一方法。这可以通过在环路中对样本值进行滤波来实现。在一些实施例中,编码器确定图片中的哪个区域要被滤波和基于例如RDO的滤波器系数并且该信息被信号传送到解码器。
在典型的视频编解码器中,运动信息利用与每个经运动补偿的图像块相关联的运动向量来指示。这些运动向量中的每个运动向量表示将 (在编码器侧)被编码或(在解码器侧)被解码的图片中的图像块和先前编码或解码的图片中的一个图片中的预测源块的位移。为了有效地表示运动向量,那些向量通常以相对于块特定的预测的运动向量不同的方式被编码。在典型的视频编解码器中,预测的运动向量可以以预定义方式、例如通过计算相邻块的经编码或解码的运动向量的中值来被创建。创建运动向量预测的另一方式是从时间参考图片中的相邻块和/或共同定位的块来生成候选预测的列表并将选出的候选者作为运动向量预测来进行信号传送。除了预测运动向量值,能够预测哪个(哪些)参考图片被用于经运动补偿的预测并且该预测信息可以例如通过先前编码的/ 解码的图片的参考索引来表示。通常从时间参考图片中的相邻块和/或共同定位的块来预测参考索引。此外,典型的高效视频编解码器采用附加的运动信息编码/解码机制,通常被称为“合并/归并模式”,其中包括针对每个可用的参考图片列表的运动向量和对应的参考图片索引的所有运动场信息被预测并且在没有任何修改/校正的情况下被使用。类似地,使用运动场信息或时间参考图片中的相邻块和/或共同定位的块来执行对运动场信息的预测,并且使用的运动场信息在填充有可用相邻块/共同定位的块的运动场信息的运动场候选列表的列表之中被信号传送。
典型的视频编解码器实现对单预测和双预测的使用,在单预测中单个预测块被用于正被编码(解码)的块,在双预测中两个预测块被组合以形成针对正被编码(解码)的块的预测。一些视频编解码器实现加权预测,其中预测块的样本值在添加残差信息之前被加权。例如,乘法加权因子和附加的偏移能够被应用。在由一些视频编解码器实现的显式加权预测中,加权因子和偏移能够例如被编码在针对每个可允许参考图片索引的切片头中。在由一些视频编解码器实现的隐式加权预测中,加权因子和/或偏移不被编码但是例如基于参考图片的相对图片顺序计数 (POC)距离来导出。
在典型的视频编解码器中,在运动补偿之后的预测残差可以首先利用变换核(如DCT)被变换并且之后被编码。对此的原因在于该残差中通常仍然存在一些相关性并且在许多情况下变换能够帮助减少该相关性并提供更高效的编码。
典型的视频编码器可以利用拉格朗日成本函数来找到最优编码模式,例如期望的宏块模式和相关联的运动向量。这种类型的成本函数使用加权因子λ以将由于有损编码方法的(精确或估计的)图像失真和表示图像区域中的像素值所要求的(精确或估计的)信息量联系在一起:
C=D+λR (1)
其中,C是要被最小化的拉格朗日成本,D是考虑了模式和运动向量的图像失真(例如,均方误差),并且R是需要用于表示在解码器中重建图像块所要求的数据的比特的数目(包括用于表示候选运动向量的数据量)。
视频编码标准和规范可以允许编码器将经编码的图片划分为经编码的切片等。图片中预测通常在切片边界上被禁用。因此,切片能够被认为是将经编码的图片拆分为可独立解码的片段的方式。在H.264/AVC 和HEVC中,图片中预测可以在切片边界上被禁用。因此,切片能够被认为是将编码图片拆分成可独立解码的片段的方式,并且切片因此通常被认为是用于传输的基本单元。在许多情况下,编码器可以在比特流中指示在切片边界上关掉哪些类型的图片中预测,并且解码器操作例如在推断出哪些预测源可用时考虑该信息。例如,如果邻近宏块或CU驻存在不同的切片中,则来自邻近宏块或CU的样本可以被认为对于帧内预测不可用。
经编码的切片例如能够被分类成三类:光栅扫描顺序切片、矩形切片和灵活切片。
光栅扫描顺序切片是包括以光栅扫描顺序的连续宏块等的经编码的切片。例如,MPEG-4部分2的视频分组和在H.263中以非空GOB头开始的宏块组(GOB)是光栅扫描顺序切片的示例。
矩形切片是包括宏块等的矩形区域的经编码的切片。矩形切片可以高于一个宏块或类似行并且比整体图片宽度窄。H.263包括可选的矩形切片子模式,并且H.261GOB还能够被认为是矩形切片。
灵活切片可以包含任何预定义宏块(等)位置。H.264/AVC编解码器允许将宏块分组成多于一个切片组。切片组可以包含任何宏块位置,包括非相邻宏块位置。在H.264/AVC的一些档次中的切片包括在光栅扫描顺序中在特定切片组内的至少一个宏块。
分别针对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/AVC中,NAL单元头指示包含在 NAL单元中的经编码的切片是否为参考图片或非参考图片的一部分。
H.264/AVC NAL单元头包括2个比特的nal_ref_idc语法元素,其在等于0时指示包含在NAL单元中的经编码的切片是非参考图片的一部分并且在大于0时指示包含在NAL单元中的经编码的切片是参考图片的一部分。针对SVC和MVC NAL单元的头可以附加地包含与可分级性和多视图层次相关的各种指示。
在HEVC标准草案中,两个字节的NAL单元头被用于所有指定的NAL单元类型。NAL单元头包含一个保留比特、六个比特的NAL 单元类型指示、针对时间级别的三个比特的nuh_temporal_id_plusl指示 (可能需要为大于或等于1)和六个比特的保留字段(被称为 reserved_zero_6bits),其还可以被称为nuh_layer_id。temporal id语法元素可以被认为是针对NAL单元的时间标识符,并且基于零的TemporalId 变量可以如下被导出:Temporalid=temporal_id_plusl–1。等于0的 TemporalId与最低时间级别相对应。要求temporal_id_plusl的值为非零以便避免涉及两种NAL单元头类型的起始码仿真。
六个比特的保留字段被期望由诸如未来可分级的和3D视频扩展的扩展使用。期望这六个比特将携带关于可分级性层次的信息,诸如 quality_id或类似信息、dependency_id或类似信息、任何其他类型的层标识符、视图顺序索引或类型信息、视图标识符、类似于在大于特定标识符值的所有NAL单元从比特流被去除时指示有效子比特流提取的 SVC的priority_id的标识符。不失一般性,在一些示例实施例中,变量 LayerId例如如下根据reserved_zero_6bits的值被导出:LayerId= reserved_zero_6bits。
NAL单元能够被分类成视频编码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元通常是经编码的切片NAL单元。在H.264/AVC 中,经编码的切片NAL单元包含表示一个或多个经编码的宏块的语法元素,其中每个经编码的宏块与未压缩图片中的样本的块相对应。在 HEVC中,经编码的切片NAL单元包含表示一个或多个CU的语法元素。
在H.264/AVC中,经编码的切片NAL单元能够被指示为瞬时解码刷新(IDR)图片中的经编码的切片或非IDR图片中的经编码的切片。
在HEVC中,经编码的切片NAL单元能够被指示为以下类型之一。
在HEVC标准草案中,图片类型的缩写可以被定义如下:追随 (TRAIL)图片,时间子层访问(TSA)、步进式时间子层访问(TSA)、随机访问可解码引导(RADL)图片、随机访问跳跃的引导(RASL)图片、失效链接访问(BLA)图片、瞬时解码刷新(IDR)图片、空白随机访问(CRA)图片。
随机访问点(RAP)图片是其中每个切片或切片分段具有在16到23的范围中包括16和23的nal_unit_type的图片。RAP图片含有仅仅帧内编码的切片,并且可以是BLA图片、CRA图片或IDR图片。比特流中的第一个图片是RAP图片。假设在必要的参数集需要被激活时其是可用的,则RAP图片和在解码顺序中的所有随后的非RASL图片能够在没有执行对在解码顺序中在RAP图片前面的任何图片的解码过程的情况下被正确地校正。在比特流中可以存在仅含有不是RAP图片的帧内编码的切片的图片。
在HEVC中,CRA图片在解码顺序中是比特流中的第一个图片,或者可以稍后出现在比特流中。在HEVC中的CRA图片允许在解码顺序中在CRA图片后面但是在输出顺序中在其前面的所谓的引导图片。引导图片中的一些引导图片、所谓的RASL图片可以使用在CRA图片之前解码的图片作为参考。如果随机访问被执行在CRA图片处则在解码顺序和输出顺序两者中都在CRA图片后面的图片是可解码的,并且因此空白随机访问与IDR图片的空白随机访问功能类似地被实现。
CRA图片可以具有相关联的RADL或RASL图片。当CRA图片在解码顺序中是比特流中的第一个图片时,CRA图片在解码顺序中是编码视频序列中的第一个图片,并且任何相关联的RASL图片不是由解码器输出并且可能不是可解码的,因为它们可能含有对比特流中不存在的图片的参考。
引导图片是在输出顺序中在相关联的RAP图片前面的图片。相关联的RAP图片是在解码顺序中的前面的RAP图片(如果存在的话)。引导图片是RADL图片或RASL图片。
所有RASL图片是相关联的BLA或CLA图片的引导图片。当相关联的RAP图片是BLA图片或者是比特流中的第一个经编码的图片时, RASL不被输出并且可能不是可正确解码的,因为RASL图片可能含有对比特流中不存在的图片的参考。然而,在解码已经从在RASL图片的相关联的RAP图片前面的RAP图片开始时RASL图片能够被正确解码。 RASL图片不被用作用于非RASL图片的解码过程的参考图片。当存在时,在解码顺序中所有RASL图片在相同的相关联的RAP图片的所有追随图片以前。在一些较早的HEVC标准草案中,RASL图片被称为标记为丢弃(TFD)的图片。
所有RADL图片是引导图片。RADL图片不被用作用于相同的相关联的RAP图片的追随图片的解码过程的参考图片。当存在时,在解码顺序中所有RASL图片在相同的相关联的RAP图片的所有追随图片以前。RADL图片不是指在解码顺序中在相关联的RAP图片前面的任何图片,并且因此在解码从相关联的RAP图片开始时能够被正确解码。在一些较早的HEVC标准草案中,RADL图片被称为可解码引导图片(DLP)。
当比特流的从CRA图片开始的部分被包括在另一比特流中时,与 CRA图片相关联的RASL图片可能不是可正确解码的,因为其参考图片中的一些参考图片可能在组合的比特流中不存在。为了使这样的拼接操作简单,CRA图片的NAL_UNIT_TYPE可以被改变以指示其是BLA图片。与BLA图片相关联的RASL图片可能不是可正确解码的,因此不被输出/显示。另外,与BLA图片相关联的RASL图片可能从解码被省略。
BLA图片在解码顺序中可以是比特流中的第一个图片,或者可以稍后出现在比特流中。每个BLA图片开始新编码的视频序列,并且具有对解码过程的与IDR图片类似的效果。然而,BLA图片含有指定非空参考图片集合的语法元素。当BLA图片具有等于BLA_W_LP的 nal_unit_type时,其可以具有相关联的RASL图片,RASL图片不由解码器输出并且可以不是可解码的,因为它们可能含有对比特流中不存在的图片的参考。当BLA图片具有等于BLA_W_LP的nal_unit_type时,其还可以具有相关联的RADL图片,RADL图片被指定为被解码。当 BLA图片具有等于BLA_W_DLP的nal_unit_type时,其不具有相关联的RASL图片但是可以具有相关联的RADL图片,RADL图片被指定为被解码。当BLA图片具有等于BLA_N_LP的nal_unit_type时,其不具有任何相关联的引导图片。
具有等于IDR_N_LP的nal_unit_type的IDR图片不具有存在于比特流中的相关联的引导图片。具有等于DR_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中的任一个中。在不影响具有相同的TemporalId的值的其他图片的可解码性的情况下,具有等于TRAIL_N、TSA_N、STSA_N、 RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12或RSV_VCL_N14 的nal_unit_type的经编码的图片可以被丢弃。
追随图片可以被定义为在输出顺序中在相关联的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图片可以被约束为在输出顺序中在任何其他RAP图片后面,所述任何其他RAP图片在解码顺序中在CRA图片前面。
在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图片前面的图片。TSA图片具有大于0的TemporalId。STSA类似于TSA图片,但是不对在更高的子层中的在解码顺序中在STSA图片后面的图片施加限制并且因此实现仅仅到STSA图片所在的子层上的上切换。
非VCL NAL单元可以是例如以下类型之一:序列参数集、图片参数集、辅助增强信息(SEI)NAL单元、访问单元分界符、序列NAL 单元的结尾、流NAL单元的结尾或填充器数据NAL单元。对解码的图片的重建可能需要参数集,然而其他非VCL NAL单元中的许多非VCL NAL单元对于对解码的样本值的重建不是必要的。
通过编码的视频序列保持未改变的参数可以被包括在序列参数集中。除了可能由解码过程需要的参数,序列参数集可以可选地包含视频可用性信息(VUI),其包括可能对于缓冲、图片输出定时、渲染和资源预留重要的参数。存在H.264/AVC中指定的用于承载序列参数集的三个 NAL单元:包含用于序列中的H.264/AVC VCL NAL单元的所有数据的序列参数集NAL单元、包含用于辅助编码的图片的数据的序列参数集扩展NAL单元以及用于MVC和SVC VCL NAL单元的子集序列参数集。在HEVC标准草案中,序列参数集RBSP包括能够被称为一个或多个图片参数集RBSP或包含缓存期间SEI消息的一个或多个SEI NAL单元的参数。图片参数集包含这样的参数,其有可能在若干经编码的图片中未被改变。图片参数集RBSP可以包括能够被称为一个或多个经编码的图片的编码的切片NAL单元的参数。
在HEVC草案中,还存在第三类型的参数集,这里被称为适应参数集(APS),其包括有可能在若干编码切片中未被改变但是可能例如针对每个图片或每几个图片改变的参数。在HEVC草案中,APS语法结构包括与量化矩阵(QM)、自适应样本偏移(SAO)、自适应环路滤波(ALF) 以及去块效应滤波有关的参数或语法元素。在HEVC草案中,APS是 NAL单元并且在没有来自任何其他NAL单元的参考或预测的情况下被编码。被称为aps_id语法元素的标识符被包括在APS NAL单元中,并且在切片头中被包括和使用以指代特定APS。在另一HEVC标准草案中, APS语法结构仅仅包含ALF参数。在HEVC标准草案中,在 sample_adaptive_offset_enabled_flag或adaptive_loop_filter_enabled_flag 中的至少一个等于1时适应参数集RBSP包括能够被称为一个或多个经编码的图片的编码的切片NAL单元的参数。在一些后来的HEVC草案中,APS语法结构从规范文本被去除。
在HEVC中,视频参数集(VPS)可以被定义为包含应用到如由在SPS中找到的语法元素的内容确定的零个或多个整个编码的视频序列的语法元素的语法结构,SPS被称为在PPS中找到的语法元素,PPS被称为在每个切片分段头中找到的语法元素。
视频参数集RBSP可以包括能够被称为一个或多个序列参数集 RBSP的参数。
视频参数集(VPS)、序列参数集(SPS)以及图片参数集(PPS) 之间的关系和层次可以被描述如下。VPS在参数集层次中并且在可分级性和/或3D视频的上下文中驻存在SPS以上的一个层级。VPS可以包括跨整个编码的视频序列中的所有(可分级性或视图)层的所有切片共同的参数。SPS包括跨整个编码的视频序列中的特定(可分级性或视图) 层中的所有切片共同的参数,并且可以由多个(可分级性或视图)层共享。PPS包括特定层表示(一个访问单元中的一个可分级性或视图层的表示)中的所有切片共同的参数,并且有可能由多个层表示中的所有切片共享。
VPS可以提供关于比特流中的层的依赖关系的信息,以及适用于跨整个编码的视频序列中的所有(可分级性或视图)层的所有切片的许多其他信息。在HEVC的可分级的扩展中,例如,VPS可以包括从NAL 单元头导出到LayerId值到一个或多个可分级性尺寸值的映射,例如对应于dependency_id、quality_id、view_id以及针对与SVC和MVC类似地定义的层的depth_flag。VPS可以包括针对一个或多个层的简档和层级信息以及针对层表示的(包括在特定temporal_id值处和以下的VCL NAL单元的)一个或多个时间子层的简档和/或层级。
H.264/AVC和HEVC语法允许参数集的许多实例,并且每个实例利用唯一的标识符来标识。为了限制参数集需要的存储器使用,参数集标识符的值范围已经被限制。在H.264/AVC和HEVC标准草案中,每个切片头包括针对包含切片的图片的解码活动的图片参数集的标识符,并且每个图片参数集包含活动的序列参数集的标识符。在HEVC标准草案中,切片头附加地包含APS标识符,尽管在一些后来的HEVC标准草案中从切片头去除了APS标识符。因此,对图片和序列参数集的传输不一定必须与切片的传输准确地同步。相反,在它们被参考之前的任何时刻接收活动序列和图片参数集是足够的,这允许使用与用于切片数据的协议相比更可靠的传输机制对“带外”参数集的传输。例如,参数集能够被包括作为用于实时传输协议(RTP)会话的会话描述中的参数。如果在带内传输参数集,则它们能够被重复以改进误差鲁棒性。
参数集可以通过来自切片或来自另一活动的参数集或在一些情况下来自诸如缓存期间SEI消息的另一语法结构的参考来激活。
SEI NAL单元可以包含一个或多个SEI消息,其不是输出图片的解码所要求的但是可以辅助相关的过程,例如图片输出定时、渲染、误差检测、误差掩盖以及资源预留。若干SEI消息在H.264/AVC和HEVC 中被指定,并且用户数据SEI消息使得组织和公司能够指定用于其自己使用的SEI消息。H.264/AVC和HEVC包含针对指定的SEI消息的语法和语义但是没有定义用于在接收方中处理消息的过程。因此,编码器需要在它们创建SEI消息时遵循H.264/AVC标准或HEVC标准,并且分别符合H.264/AVC标准或HEVC标准的解码器不需要处理SEI消息以获得输出顺序一致性。将SEI消息的语法和语义包括在H.264/AVC和HEVC 中的原因之一在于允许不同系统规范相同地解释辅助信息并且因此交互操作。意图在于系统规范能够要求在编码端中和在解码端中两者使用特定SEI消息,并且附加地,能够指定用于在接收方中处理特定SEI消息的过程。
经编码的图片是图片的经编码的表示。在H.264/AVC中的经编码的图片包括图片的编码所需要的VCL NAL单元。在H.264/AVC中,经编码的图片可以是基本编码图片或冗余编码图片。基本编码图片被使用在对有效比特流的解码过程中,然而,冗余编码图片是应当仅仅在基本编码图片不能够被成功地解码时被解码的冗余表示。在HEVC草案中,尚未指定冗余编码图片。
在H.264/AVC中,访问单元包括基本编码图片和与其相关联的那些NAL单元。在H.264/AVC中,NAL单元在访问单元内的出现顺序被约束如下。可选的访问单元分界符NAL单元可以指示访问单元的开始。其跟随有零个或多个SEI NAL单元。接下来,基本编码图片的经编码的切片出现。在H.264/AVC中,基本编码图片的经编码的切片可以跟随有针对零个或多个冗余编码图片的经编码的切片。冗余编码图片是图片或图片的一部分的经编码的表示。在基本编码图片例如由于传输中的丢失或物理存储介质中的损坏而没有由解码器接收到时,冗余编码图片可以被解码。
在H.264/AVC中,访问单元还可以包括辅助编码图片,其是辅助基本编码图片的图片并且可以例如在显示过程中使用。辅助编码图片可以例如被用作指定经解码的图片中的样本的透明度级别的alpha通道或 alpha平面。alpha通道或alpha平面可以被用在分层的合成或渲染系统中,其中输出图片通过叠加在彼此顶部上至少部分透明的图片来形成。辅助编码图片具有与单色冗余编码图片相同的语法和语义限制。在 H.264/AVC中,辅助编码图片包含与基本编码图片相同数量的宏块。
在HEVC中,访问单元可以被定义为NAL单元的集合,NAL单元根据指定的分类规则彼此相关联、在解码顺序中是连续的并且精确地包含一个经编码的图片。除了包含经编码的图片的VCL NAL单元,访问单元还可以包含非VCL NAL单元。对访问单元的解码总是产生经解码的图片。
在H.264/AVC中,经编码的视频序列被定义为在解码顺序中从 IDR访问单元(包括IDR访问单元)到下一IDR访问单元(不包括下一 IDR访问单元)或到比特流的结尾(无论之前是否出现)的连续的访问单元的序列。在HEVC标准草案中,经编码的视频序列被定义为访问单元的序列,其包括在解码顺序中作为比特流中的第一个访问单元的CRA 访问单元、IDR访问单元或BLA访问单元,所述IDR访问单元或BLA 访问单元跟随有零个或多个非IDR和非BLA访问单元,其包括所有随后的访问单元、直到但不包括任何随后的IDR或BLA访问单元。
图片组(GOP)和其特性可以被定义如下。无论任何前面的图片是否被解码,GOP能够被解码。开放的GOP这样的图片组,其中在解码从开放GOP的初始内部图片开始时在输出顺序中在初始内部图片前面的图片可能不是可正确解码的。换言之,开放GOP的图片可以(在帧间预测中)指代属于前面的GOP的图片。H.264/AVC解码器能够从 H.264/AVC比特流中的恢复点SEI消息识别开始开放GOP的内部图片。 HEVC解码器能够识别开始开放GOP的内部图片,因为特定的NAL单元类型、CRA NAL单元类型能够被用于其经编码的切片。封闭GOP是这样的图片组,其中在解码从封闭GOP的初始内部图片开始时所有图片能够被正确解码。换言之,封闭GOP中的图片不指代之前GOP中的任何图片。在H.264/AVC和HEVC中,封闭GOP可以被认为从IDR访问单元开始。因此,封闭GOP结构具有与开放GOP结构相比更多误差恢复潜力,然而以压缩效率的可能降低为代价。开放GOP编码结构可能在压缩中是更有效的,由于在参考图片的选择中的更大灵活性。
H.264/AVC和HEVC的比特流语法指示特定图片是否是用于任何其他图片的帧间预测的参考图片。任何编码类型(I、P、B)的图片可以是H.264/AVC和HEVC中的参考图片或非参考图片。
H.264/AVC指定用于解码的参考图片标记的过程,以便控制解码器中的存储器消耗。用于帧间预测的参考图片的最大数量,被称为M,在序列参数集中被确定。当参考图片被解码时,其被标记为“用于参考”。如果对参考图片的解码使得多于M个图片被标记为“用于参考”,则至少一个图片被标记为“未用于参考”。存在用于解码的参考图片标记的两种类型的操作:自适应存储器控制和滑动窗口。用于解码的参考图片标记的操作模式在图片的基础上被选择。自适应存储器控制使得能够显式信号传送哪些图片被标记为“未用于参考”并且还可以将长期指数指派给短期参考图片。自适应存储器控制可以要求存储器管理控制操作 (MMCO)参数存在于比特流中。MMCO参数可以被包括在解码的参考图片标记语法结构中。如果正在使用滑动窗口操作模式并且存在M个图片被标记为“用于参考”,则作为被标记为“用于参考”的那些短期参考图片之中的第一解码的图片的短期参考图片被标记为“未用于参考”。换言之,滑动窗口操作模式导致短期参考图片之中的先进先出缓冲操作中。
H.264/AVC中的存储器管理控制操作之一使得除了当前图片的所有参考图片被标记为“未用于参考”。瞬时解码刷新(IDR)图片仅仅包含帧内编码的切片并且引起对参考图片的类似的“重置”。
在HEVC标准草案中,不使用参考图片标记语法结构和相关的解码过程,但是相反出于类似的目的,代替地使用参考图片集合(RPS) 语法结构和解码过程。针对图片有效或活动的参考图片集合包括被用作针对该图片的参考的所有参考图片以及针对在解码顺序中的任何随后图片被保持标记为“用于参考”的所有参考图片。存在参考图片集合的六个子集,其被称为RefPicSetStCurr0、RefPicSetStCurrl、 RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr和RefPicSetLtFoll。六个子集的符号如下。“Curr”是指包括在当前图片的参考图片列表中并且因此可以被用作针对当前图片的帧间预测参考的参考图片。“Foll”是指未被包括在当前图片的参考图片列表中但是可以在解码顺序中的随后图片中用作参考图片的参考图片。“St”是指短期参考图片,其一般可以通过其POC值的最低有效位的某数字来标识。“Lt”是指长期参考图片,其被特别标识并且一般具有相对于当前图片的、比能够由最低有效位的上述某数字表示的更大的POC值的差。“0”是指具有比当前图片的 POC值更小的POC值的那些参考图片。“1”是指具有比当前图片的POC 值更大的POC值的那些参考图片。RefPicSetStCurr0、RefPicSetStCurr1、 RefPicSetStFoll0和RefPicSetStFoll1统称为参考图片集合的短期子集。 RefPicSetLtCurr和RefPicSetLtFoll统称为参考图片集合的长期子集。
在HEVC标准草案中,参考图片集合可以在序列参数集中被指定并且通过参考图片集合的索引投入到切片头中使用。参考图片集合还可以在切片头中被指定。参考图片集合的长期子集一般仅仅在切片头中被指定,同时相同参考图片集合的短期子集可以在图片参数集或切片头中被指定。参考图片集合可以被独立地编码或可以从另一参考图片集合来预测(被称为RPS间预测)。当参考图片集合被独立地编码时,语法结构包括在不同类型的参考图片上迭代的多达三个环路;具有比当前图片低的POC值的短期参考图片、具有比当前图片高的POC值的短期参考图片以及长期参考图片。每个环路入口指定要被标记为“用于参考”的图片。一般地,利用不同的POC值来指定图片。RPS间预测利用能够从先前解码的图片的参考图片集合来预测当前图片的参考图片集合的事实。这是因为当前图片的所有参考图片是先前图片的参考图片或先前解码的图片本身。仅仅有必要指示这些图片中的哪个图片应当是参考图片并且用于对当前图片的预测。在两种类型的参考图片集合编码中,附加地针对每个参考图片来发送标记(used_by_curr_pic_X_flag),指示参考图片是用于(被包括在*Curr列表中)还是未用于(被包括在*Foll列表中)当前图片的参考。包括在由当前切片使用的参考图片集合中的图片被标记为“用于参考”,未在由当前切片使用的参考图片集合中的图片被标记为“未用于参考”。如果当前图片是IDR图片,则RefPicSetStCurr0、 RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr 和RefPicSetLtFoll全部被设置为空。
解码的图片缓冲器(DPB)可以在编码器中和/或在解码器中被使用。存在对经解码的图片进行缓冲的两个原因,用于帧间预测中的参考和用于将经解码的图片重新排序成输出顺序。因为H.264/AVC和HEVC 提供用于参考图片标记和输出重新排序两者的大量灵活性,用于参考图片缓冲和输出图片缓冲的分离的缓冲器可能浪费存储器资源。因此,DPB 可以包括用于参考图片和输出重新排序的统一的解码的图片缓冲过程。经解码的图片可以在其不再被用作参考并且不需要用于输出时从DPB 被去除。
在H.264/AVC和HEVC的许多编码模式中,利用参考图片列表的索引来指示用于帧间预测的参考图片。可以利用可变长度编码来编码索引,所述可变长度编码通常使得较小的索引具有针对对应的语法元素的较短的值。在H.264/AVC和HEVC中,针对每个双向预测(B)切片生成两个参考图片列表(参考图片列表0和参考图片列表1),并且针对每个帧间编码的(P)切片形成一个参考图片列表(参考图片列表0)。另外,对于HEVC标准草案中的B切片,组合的列表(列表C)可以在已经构建了最终的参考图片列表(列表0和列表1)之后被构建。组合的列表可以被用于B切片内的单预测(还称为单向预测)。在一些后来的HEVC标准草案中,去除了组合的列表。
诸如参考图片列表0和参考图片列表1的参考图片列表通常在两个步骤中被构建:第一,生成初始参考图片列表。可以基于frame_num、 POC、temporal_id或关于诸如GOP结构的预测层次的信息或它们的任何组合来生成初始参考图片列表。第二,通过可以被包含在切片头中的参考图片列表重新排序(RPLR)命令(还称为参考图片列表修改语法结构)来对初始参考图片列表进行重新排序。在H.264/AVC中,RPLR 命令指示被排序到相应参考图片列表的开始的图片。该第二步骤还被称为参考图片列表修改过程,并且RPLR命令可以被包括在参考图片列表修改语法结构中。如果使用了参考图片集合,则参考图片列表0可以被初始化为首先包含RefPicSetStCurr0,紧接着是RefPicSetStCurr1,紧接着是RefPicSetLtCurr。参考图片列表1可以被初始化为首先包含 RefPicSetStCurr1,紧接着是RefPicSetStCurr0。在HEVC中,可以通过参考图片列表修改语法结构来修改初始参考图片列表,其中可以通过列表的入口索引来标识初始参考图片列表中的图片。换言之,在HEVC中,参考图片列表修改被解码到包括最终的参考图片列表中的每个入口上的环路的语法结构中,其中每个环路入口是初始参考图片列表的固定长度编码的索引并在最终的参考图片列表中以升序位置顺序指示图片。
包括H.264/AVC和HEVC的许多编码标准可以具有导出参考图片列表的参考图片索引的解码过程,其可以用于指示多个参考图片中的哪个参考图片被用于针对特定块的帧间预测。在一些帧间编码模式中参考图片索引可以由编码器编码到比特流中或在一些其他帧间编码模式中其可以例如使用邻近块(通过编码器和解码器)来导出。
为了有效地表示比特流中的运动向量,运动向量可以相对于块特定的预测的运动向量被不同地编码。在许多视频编解码器中,预测的运动向量可以以预定义方式来创建,例如通过计算相邻块的经编码或解码的运动向量的中值。创建运动向量预测的另一方式,有时被称为高级运动向量预测(AMVP),是从时间参考图片中的相邻块和/或共同定位的块来生成候选预测的列表并将选出的候选者作为运动向量预测符来进行信号传送。除了预测运动向量值,可以预测先前编码的/解码的图片的参考索引。通常从时间参考图片中的相邻块和/或共同定位的块来预测参考索引。对运动向量的差分编码通常在切片边界上被禁用。
例如,高级运动向量预测(AMVP)等可以如下来操作,同时还有可能利用不同的候选位置集合和具有候选位置集合的候选位置来进行对AMVP的其他类似的实现。可以导出两个空间运动向量预测区 (MVP)并且可以导出时间运动向量预测符(TMVP)。它们可以在图6 中示出的位置中被选择:位于当前预测块600上的三个空间MVP候选位置603、604、605(B0、Bl、B2)以及左边的两个601、602(A0、 A1)。以每个候选位置集合的预定义顺序可用的(例如,驻留在相同切片中、被帧间编码的,等等)第一运动向量指示符(B0、Bl、B2)或(A0、 A1)可以被选择以表示运动向量竞争中的预测方向(向上或向左)。针对TMVP的参考索引可以在切片头中由编码器指示(例如,如 collocated_ref_idx语法元素)。从共同定位的图片获得的运动向量可以根据TMVP的参考图片、共同定位的图片以及当前图片的图片顺序计数差的比例被缩放。此外,冗余校验可以在候选者之中被执行以去除相同的候选者,其能够导致零MV被包括在候选列表中。运动向量指示符可以例如通过指示空间MVP(向上或向左)的方向或TMVP候选者的选择而在比特流中被指示。
诸如HEVC编解码器草案的许多高效的视频编解码器采用附加的运动信息编码/解码机制,通常被称为合并/归并模式/过程/机制,其中块 /PU的所有运动信息被预测并在没有任何修改/校正的情况下被使用。针对PU的前述运动信息可以包括以下的一个或多个:1)“PU是仅使用参考图片列表0被单预测的”、还是“PU是仅使用参考图片列表1被单预测的”或是“PU是使用参考图片列表0和列表1两者被双预测的”的信息;2)对应于参考图片列表0的运动向量值,其可以包括级别运动向量分量和垂直运动向量分量;3)参考图片列表0中的参考图片索引和/或由对应于参考图片列表0的运动向量指向的参考图片的标识符,其中参考图片的标识符可以例如为图片顺序计数值、(用于层间预测的) 层标识符值、或者图片顺序计数值和层标识符值的对;4)参考图片的参考图片标记的信息,例如参考图标被标记为“用于短期参考”还是“用于长期参考”的信息;5)-7)分别与2)-4)相同,但是针对参考图片列表1。类似地,使用时间参考图片中的相邻块和/或共同定位的块的运动信息来实现对运动信息的预测。通常被称为合并列表的列表可以通过包括与可用向量块/共同定位的块相关联的运动预测候选者来构建并且所选择的运动预测候选者在列表中的索引被信号传送,并且所选择的候选者的运动信息被复制到当前PU的运动信息。当合并机制被用于整个 CU并且针对CU的预测信号被用作重建信号时,即预测残差未被处理时,这种类型的对CU的编码/解码通常被称为跳跃模式或基于合并的跳跃模式。除了跳跃模式,合并机制还被用于单个PU(不一定是如跳跃模式中的整个CU)并且在这种情况下,可以利用预测残差来改进预测质量。这种类型的预测模式可以被称为合并间模式。
合并列表中的候选者之一可以是TMVP候选者,其可以例如使用 collocated_ref_idx语法元素等从指示的或推测的参考图片(诸如,例如在切片头中指示的参考图片)内的共同定位的块来导出。
在HEVC中,当运动编码模式是合并模式时,针对合并列表中的时间运动向量预测的所谓的目标参考索引被设置为0。当HEVC中的利用时间运动向量预测的运动编码模式是高级运动向量预测模式时,目标参考索引被明确地指示(例如,对于每个PU)。
当已经确定了目标参考索引时,时间运动向量预测的运动向量值可以如下被导出:在与当前预测单元的右下邻居一起共同定位的块处的运动向量被计算。如以上描述的,共同定位的块所处的图片可以例如根据切片头中的被信号传送的参考索引来确定。在共同定位的块处的所确定的运动向量关于第一图片顺序计数差和第二图片顺序计数差的比值被缩放。第一图片顺序计数差在包含共同定位的块的图片和共同定位的块的运动向量的参考图片之间被导出。第二图片顺序数差在当前图片和目标参考图片之间被导出。如果目标参考图片和共同定位的块的运动向量的参考图片中的一个而非两者是长期参考图片(同时另一个是短期参考图片),则TMVP候选者可以被认为是不可用的。如果目标参考图片和共同定位的块的运动向量的参考图片中的两者都是长期参考图片,则没有基于POC的运动向量缩放可以被应用。
可分级的视频编码是指其中一个比特流能够包含内容的以不同比特率、分辨率或帧率的多个表示的编码结构。在这些情况下,接收器可以取决于其特性(例如,与显示设备最好地匹配的分辨率)来提取期望的表示。备选地,服务器或网络元件可以取决于例如接收器的网络特性或处理能力来提取要被传输到接收器的比特流的部分。可分级的比特流可以包括提供可获得的最低质量视频的“基本层”和在与更低层一起被接收并解码时增强视频质量的一个或多个增强层。为了改进增强层的编码效率,该层的编码表示可以取决于更低层。例如,能够从更低层预测增强层的运动和模式信息。类似地,更低层的像素数据能够被用于创建针对增强层的预测。
在一些可分级的视频编码方案中,视频信号能够被编码到基本层和一个或多个增强层中。增强层可以增强时间分辨率(即,帧率)、空间分辨率或简单地增强由另一层或其部分表示的视频内容的质量。每层连同其从属层中的所有层一起是以某空间分辨率、时间分辨率和质量级别的视频信号的一个表示。在该文档中,我们将可分级的层连同其从属层中的所有层一起称为“可分级的层表示”。可分级的比特流的对应于可分级的层表示的部分能够被提取并被解码以产生原始信号的以某保真度的表示。
一些编码标准允许创建可分级的比特流。有意义的解码的表示能够通过仅仅对可分级的比特流的某部分进行解码来产生。可分级的比特流能够用于例如在串流服务器中对预编码的单播流的速率适应并且用于将单个比特流传输到具有不同能力和/或具有不同网络状况的终端。用于可分级视频编码的一些其他用例的列表能够在于2003年3月10日到 14日的泰国芭提雅的第64届MPEG会议的ISO/IEC JTC1SC29WG11 (MPEG)输出文档N5540“Applications and Requirements for Scalable Video Coding”中找到。
在一些情况下,增强层中的数据能够在某个位置之后或甚至在任意位置处被截断,其中每个截断位置可以包括表示越来越增强的视觉质量的附加数据。这种可分级性被称为细粒度(粒度)可分级性(FGS)。
SVC使用层间预测机制,其中某信息可以从除了当前重建的层或下一更低层以外的层来预测。能够被层间预测的信息包括帧内纹理、运动和残差数据。层间运动预测包括对块编码模式、头信息、块分割等的预测,其中来自较低层的运动可以被用于预测较高层。在帧内编码的情况下,从周围宏块或从共同定位的更低层的宏块的预测是有可能的。这些预测技术不采用来自较早编码访问单元的信息并且因此被称为帧内预测技术。另外,来自更低层的残差数据还能够被用于对当前层的预测。
SVC指定被称为单环路解码的概念。其通过使用约束的帧内纹理预测模式来实现,由此层间帧内纹理预测能够被应用到宏块(MB),针对所述宏块,基本层的对应块被定位在内部MB内。同时,基本层中的那些内部MB使用约束的帧内预测(例如,使语法元素“constrained_intra_pred_flag”等于1)。在简单的环路解码中,解码器仅仅针对期望用于回放的可分级的层(被称为“期望层”或“目标层”) 来执行运动补偿和完全图片重建,从而大大降低解码复杂度。除了期望层以外的所有层不需要被完全解码,因为未用于层间预测(其为层间帧内纹理预测、层间运动预测或层间残差预测)的MB的数据中的全部或部分数据对于重建期望层是不需要的。
对于对大多数图片的解码需要单个解码环路,同时第二解码环路选择性地被应用以重建基本表示,其被需要作为预测参考但是不用于输出或显示,并且仅仅针对所谓的关键图片(针对“store_ref_base_pic_flag”等于1的图片)而被重建。
FGS被包括在SVC标准的一些草定版本中,但是其最后从最终的 SVC标准被排除。随后在SVC标准的一些草定版本的上下文中讨论 FGS。由那些不能够被截断的增强层提供的可分级性被称为粗粒度(粒度)可分级性(CGS)。其共同包括传统质量(SNR)可分级性和空间可分级性。SVC标准支持所谓的中粒度可分级性(MGS),其中质量增强图片与SNR可分级的层图片类似地被编码但是与FGS层图片类似地由高级语法元素通过使quality_id语法元素大于0来指示。
SVC草案中的可分级性结构可以由三个语法元素来表征:“temporal_id”、“dependency_id”和“quality_id”。语法元素“temporal_id”用于指示时间可分级性层次或间接地指示帧率。包括具有较小的最大“temporal id”值的图片的可分级的层表示具有比包括具有较大的最大“temporal id”的图片的可分级的层表示更小的帧率。给定时间层通常取决于较低的时间层(即,具有较小的“temporal_id”值的时间层)但是不取决于任何较高的时间层。语法元素“dependency_id”用于指示CGS 层间编码依赖性层次(如早前提到的,其包括SNR和空间可分级性两者)。在任何时间级别位置,具有较小的“dependency_id”值的图片可以用于对具有较大“dependency_id”值的图片的编码的层间预测。语法元素“quality_id”用于指示FGS或MGS层的质量级别层次。在任何时间位置,并且在相同的“dependency_id”值的情况下,具有等于QL的“quality_id”的图片使用具有等于QL-1的“quality_id”的图片来用于层间预测。具有大于0的“quality_id”的经编码的切片可以被编码为可截断的FGS切片或不可截断的MGS切片。
为简单起见,具有“dependency_id”的相同值的一个访问单元中的所有数据单元(例如,在SVC上下文中的网络抽象层单元或NAL单元)被称为依赖性单元或依赖性表示。在一个依赖性单元内,具有“quality_id”的相同值的所有数据单元被称为质量单元或层表示。
基本表示(还称为解码的基本图片)是从对具有等于0的“quality_id”的依赖性单元的视频编码层(VCL)NAL单元进行解码而得到的经解码的图片并且针对该图片“store_ref_base_pic_flag”被设置等于1。还称为经解码的图片的增强表示从规则解码过程得到,其中针对最高的依赖性表示而呈现的层表示被解码。
如早前提到的,CGS包括空间可分级性和SNR可分级性两者。空间可分级性初始地被设计用于支持具有不同分辨率的视频的表示。对于每个时间实例,VCL NAL单元被编码在相同的访问单元中并且这些VCL NAL单元能够对应于不同的分辨率。在解码期间,低分辨率VCL NAL 单元提供能够可选地通过对高分辨率图片的最终的解码和重建来继承的运动场和残差。当与较老的视频压缩标准相比时,SVC的空间可分级性已经被概括为使得基本层能够作为增强层的经剪切和缩放的版本。
MGS质量层与FGS质量层类似地利用“quality_id”来指示。对于(具有相同“dependency_id”的)每个依赖性单元,存在具有“quality_id”等于0的的层并且可以存在具有“quality_id”大于1的其他层。具有大于0的“quality_id”的这些层是MGS层或FGS层,取决于切片是否被编码为可截断的切片。
在FGS增强层的基本形式中,仅仅使用了层间预测。因此,FGS 增强层能够被自由地被截断,而不引起经解码的序列中的任何误差传播。然而,FGS的基本形式遭受低压缩效率。该问题由于仅仅低质量图片被用于帧间预测参考而出现。因此已经提出FGS增强的图片被用作帧间预测参考。然而,当一些FGS数据被丢弃时这可以引起编码-解码不匹配,也被称为漂移。
SVC标准草案的一个特征在于FGS NAL单元能够自由地被丢掉或截断,并且SVC标准的特征在于MGS NAL单元能够在不影响比特流的一致性的情况下被自由地丢掉(但是不能够被截断)。如以上讨论的,当那些FGS或MGS数据在编码期间已经被用于帧间预测参考时,对数据的丢掉或截断将导致在解码器侧和在编码器侧的经解码的图片之间的不匹配。该不匹配还被称为漂移。
为了控制由于对FGS或MGS数据的丢掉或截断的漂移,SVC应用以下解决方案:在某个依赖性单元中,基本表示(通过仅仅对具有“quality id”等于0的CGS图片和所有依赖的较低层数据进行解码)被存储在解码的图片缓冲器中。当对具有相同的“dependency_id”值的随后依赖性单元进行编码时,包括FGS或MGS NAL单元的所有NAL单元将基本表示用于帧间预测参考。因此,在较早的访问单元中由于对FGS 或MGS NAL单元的丢掉或截断的所有漂移在该访问单元处被停止。对于具有相同的“dependency_id”值的其他依赖性单元,所有NAL单元为了高编码效率将经解码的图片用于帧间预测参考。
每个NAL单元在NAL单元头中包括语法元素“use_ref_base_pic_flag”。当该元素的值等于1时,对NAL单元的解码使用在帧间预测过程期间的参考图片的基本表示。语法元素“store_ref_base_pic_flag”指定是(当等于1时)否(当等于0时)存储当前图片的基本表示以供未来图片用于帧间预测。
具有大于0的“quality_id”的NAL单元不包含与参考图片列表构建和加权的预测相关的语法元素,即语法元素“num_ref_active_lx_minus1”(x=0或1)、参考图片列表重新排序语法表以及加权的预测语法表不存在。因此,MGS或FGS层必须在需要时从相同依赖性单元的具有等于0的“quality_id”的NAL单元继承这些语法元素。
在SVC中,参考图片列表包括仅基本表示(当“use_ref_base_pic_flag”等于1时)或仅未标记为“基本表示”的经解码的图片(当“use_ref_base_pic_flag”等于0时),但是决不同时包括两者。
针对质量可分级性(还被称为信噪比或SNR)和/或空间可分级性的可分级的视频编解码器可以被实施如下。对于基本层,使用常规的非可分级的视频编码器和解码器。基本层的经重建/解码的图片被包括在用于增强层的参考图片缓冲器中。在H.264/AVC、HEVC以及使用参考图片列表以用于帧间预测的类似的编解码器中,基本层经解码的图片可以被插入到用于对类似于增强层的经解码的参考图片的增强层图片的编码/解码的参考图片列表中。因此,编码器可以选择基本层参考图片作为帧间预测参考并指示其在编码的比特流中与参考图片索引一起使用。解码器从比特流、例如从参考图片索引解码出基本层图片被用作针对增强层的帧间预测参考。当经解码的基本层图片被用作针对增强层的预测参考时,其被称为层间参考图片。
除了质量可分级性,以下可分级性模式存在:
·空间可分级性:基本层图片以比增强层图片更高的分辨率来编码。
·比特深度可分级性:基本层图片以比增强层图片(例如,10比特或 12比特)更低的比特深度(例如,8比特)来编码。
·色度格式可分级性:基本层图片在色度上提供比增强层图片(例如, 4:4:4格式)更低的保真度(例如,以4:2:0色度格式来编码)。
·色彩饱和度可分级性,其中增强层图片比基本层图片的颜色表示具有更丰富/更宽广的颜色表示范围——例如增强层可以具有UHDTV (ITU-R BT.2020)色彩饱和度而基本层可以具有ITU-R BT.709色彩饱和度。
在所有的以上可分级性情况下,基本层信息能够用于对增强层进行编码以使附加的比特率开支最小化。
能够以两种基本方式来实现可分级性。通过引入用于执行对来自可分级的表示的更低层的像素值或语法的预测的新编码模式或者通过将较低层图片放置到较高层的参考图片缓冲器(解码的图片缓冲,DPB)。第一方式是更灵活的并且因此在大多数情况下能够提供更好的编码效率。然而,第二基于参考帧的可分级性方式能够在对单层编解码器的改变最小同时仍然实现大多数的编码效率增益可用的情况下非常有效地被实施。基本上,基于参考帧的可分级性编解码器能够通过利用针对所有层的相同的硬件或软件实施方式来实施,仅仅注意通过外部装置的 DPB管理。
可分级的视频编码和/或解码方案可以使用多环路编码和/或解码,其可以被特征化如下。在编码/解码中,基本层图片可以被重建/被解码以被用作针对在相同层内的在编码/解码顺序中的随后图片的运动补偿参考图片或者用作用于层间(或视图间或分量间)预测的参考。经重建 /解码的基本层图片可以被存储在DPB中。如果存在,增强层图片可以类似地被重建/被解码以被用作针对在相同层内的在编码/解码顺序中的随后图片的运动补偿参考图片或者用作用于更高增强层的层间(或视图间或分量间)预测的参考。除了经重建/解码的样本值,基本/参考层的语法元素值或从基本/参考层的语法元素值导出的变量可以在层间/分量间/视图间预测中被使用。
例如针对质量可分级性(还称为信噪比或SNR)和/或空间可分级性的可分级的视频编码器可以被实施如下。对于基本层,可以使用常规非可分级的视频编码器和解码器。基本层的经重建/解码的图片被包括在用于增强层的参考图片缓冲器和/或参考图片列表中。在空间可分级性的情况下,经重建/解码的基本层图片可以在其插入到用于增强层图片的参考图片列表中之前被上采样。基本层经解码的图片可以被插入到用于对类似于增强层的经解码的参考图片的增强层图片的编码/解码的参考图片列表中。因此,编码器可以选择基本层参考图片作为帧间预测参考并指示其在编码的比特流中与参考图片索引一起使用。解码器从比特流、例如从参考图片索引解码出基本层图片被用作针对增强层的帧间预测参考。当经解码的基本层图片被用作针对增强层的预测参考时,其被称为层间参考图片。
尽管前面的段落描述了具有含有增强层和基本层的两个可分级性层的可分级的视频编解码器,需要理解,描述能够被概括为在具有多于两层的可分级性层次中的任何两层。在这种情况下,第二增强层可以取决于编码和/或解码过程中的第一层,并且第一增强层可以因此被认为是用于对第二增强层的编码和/或解码的基本层。另外,需要理解,可以存在来自增强层的参考图片缓冲或参考图片列表中的多于一个层的层间参考图片,并且这些层间参考图片中的每一个可以被认为驻存在用于被编码和/或被解码的增强层的基本层或参考层中。
正在进行的工作是指定对HEVC标准的可分级的和多视图的扩展。被称为MV-HEVC的HEVC的多视图扩展类似于H.264/AVC的MVC 扩展。类似于MVC,在MV-HEVC中,视图间参考图片能够被包括在被编码或被解码的当前图片的参考图片列表中。被称为SHVC的HEVC 的可分级的扩展被规划为被指定使得其使用多环路解码操作(不同于 H.264/AVC的SVC扩展)。当前,针对SHVC调查用于实现可分级性的两种设计。一种是基于参考索引的,其中层间参考图片能够被包括在被编码或被解码的当前图片的一个或多个参考图片列表中(如以上描述的)。另一种可以被称为IntraBL或TextureRL,其中例如在CU级别中的特定编码模式被用于将参考层图片的经解码/重建的样本值用于增强层图片中的预测。SHVC发展已经集中于空间和粗粒度质量可分级性的发展。
有可能使用许多相同的语法结构、语义和针对MV-HEVC和基于参考索引的SHVC的解码过程。另外,也有可能使用相同的语法结构、语义和解码过程以用于深度编码。此后,术语HEVC的可分级的多视图扩展(SMV-HEVC)用于指代编码过程、解码过程、语法和语义,其中无论可分级性类型而使用大量相同的编码(解码)工具,并且其中没有在切片头以下的语法、语义或解码过程中的变化的基于参考索引的方式被使用。SMV-HEVC可能不限于多视图、空间以及粗粒度质量可分级性,但是还可以支持其他类型的可分级性,诸如深度增强的视频。
对于增强层编码,HEVC的相同概念和编码工具可以在SHVC、MV-HEVC和/或SMV-HEVC中使用。然而,采用在参考层中已经编码的数据(包括重建的图片样本和运动参数,又名运动信息)以有效地对增强层进行编码的附加的层间预测工具可以被集成到SHVC、MV-HEVC 和/或SMV-HEVC编解码器。
在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。
在编码和/或解码过程中,帧间参考图片可以被当作长期参考图片。
在SMV-HEVC和基于参考索引的SHVC解决方案中,层间运动参数预测可以通过将层间参考图片设置为用于TMVP导出的共同定位的参考图片来执行。两个层之间的运动场映射过程可以被执行以例如避免在TMVP导出中的块级解码过程修改。运动场映射还能够被执行用于多视图编码,但是MV-HEVC的当前草案不包括这样的过程。对运动场映射特征的使用可以由编码器控制并且在比特流中,例如在视频参数集、序列参数集、图片参数和/或切片头中被指示。指示可以特定于例如增强层、参考层、增强层和参考层的对、特定的TemporalId值、特定的图片类型(例如,RAP图片)、特定的切片类型(例如,P切片和B切片但不是I切片)、具有特定POC值的图片和/或特定访问单元。指示的范围和/或持久性可以与指示本身一起被指示和/或可以被推测。
在针对空间可分级性的运动场映射过程中,基于相应参考层图片的运动场来获得经上采样的层间参考图片的运动场。针对经上采样的层间参考图片的每个块的运动参数(其可以例如包括级别运动向量值和/ 或垂直运动向量值以及参考索引)和/或预测模式可以从参考层图片中的共同定位的块的对应的运动参数和/或预测模式导出。用于导出经上采样的层间参考图片中的运动参数和/或预测模式的块大小可以例如为 16x16。16x16块大小与HEVC TMVP导出过程中相同,在HEVC TMVP 导出过程中,使用了参考图片的经压缩的运动场。
运动场可以被认为包括运动参数。运动参数可以包括但不限于以下类型中的一个或多个类型:
·预测类型(例如,帧内预测、单预测、双预测)的指示和/或参考图片的数量;
·预测方向的指示,例如帧间(又名时间)预测、层间预测、视图间预测、视图合成预测(VSP)以及例如来自纹理图片到深度图片的分量间预测。预测方向可以针对每个参考图片和/或每个预测类型被指示,并且其中在一些实施例中,视图间预测和视图合成预测可以联合地被认为是一个预测方向;
·参考图片类型的预测,诸如短期参考图片和/或长期参考图片和/或层间参考图片(其可以例如针对每个参考图片被指示);
·对参考图片列表的参考索引和/或参考图片的任何其他标识符(其可以例如针对每个参考图片被指示并且其类型可以取决于预测方向和/ 或参考图片类型并且其可以伴随有其他相关的信息片断,诸如参考图片列表或对其应用参考索引的类似物);
·级别运动向量分量(其可以例如针对每个预测块或每个参考索引等被指示);
·垂直运动向量分量(其可以例如针对每个预测块或每个参考索引等被指示);
·一个或多个参数,诸如含有运动参数或与运动参数相关联的图片和其参考图片之间的图片顺序计数差和/或相对相机分离,其可以被用于在一个或多个运动向量预测过程中对级别运动向量分量和/或垂直运动向量分量的缩放(其中所述一个或多个参数可以例如针对每个参考图片或每个参考索引等被指示)。
术语时间瞬间或时间点或时间实体或时间实例可以被定义为表示相同的捕获时间或输出时间或输出顺序。例如,如果第一视图的第一视图分量与第二视图中的第二视图分量同时被捕获,这两个视图分量可以被认为是具有相同时间点。访问单元可以被定义为包含相同时间点的图片(或视图分量),并且因此在这种情况下驻存在访问单元中的图片可以被认为是具有相同时间点。具有相同时间点的图片可以(例如,由编码器)使用多种手段来指示并且可以(例如,通过解码)使用诸如图片顺序计数(POC)值或时间戳(例如,输出时间戳)的多种手段来标识。
已经提出在具有多循环编码(解码)操作的可分级视频编码中被标记用于参考的图片不需要来源于相同的访问单元或所有层中的相同时间实例。例如,相较于基本层,较小数量的参考图片可以被维持在增强层中。在一些编码系统和/或布置中,还可以被称为对角层间预测或对角预测的时间层间预测能够用于改善在这样的编码情形下的压缩效率。提出了用于实现针对对角层间的参考图片标记、参考图片集合和参考图片列表构造的方法。
在对角预测的示例中,可以使用例如在视频参数集中的序列级信号传送。VPS或类似的序列级语法结构可以指示在各层或视图之间的依赖性。语法元素可以针对一些或所有指示的依赖性而被添加以指示是否使用了来自相同访问单元或时间实例的图片的对角预测或传统“垂直”预测。被选择为用于对角预测的参考的图片可以具有例如预定属性,诸如参考图片列表中的(针对被指示为用于对角预测的参考的层或视图的)第一层间或视图间参考图片。备选地,编码器可以在比特流中指示用于对角预测的参考图片,例如作为参考图片列表的参考索引,并且解码器可以从比特流对用于对角预测的参考图片的指示进行解码。
在对角预测的示例中,编码器可以将图片指派为长期参考图片 (例如,标记为“用于长期参考”)并在比特流中指示该指派。对应地,解码器可以从比特流对该指示进行解码并且因此将图片指派为长期参考图片。长期参考图片可以被指派有与其层或视图无关的标识符,或者标识符可以包括或伴随有长期参考图片的层或视图的标识符。编码器可以例如通过将其标识符包含在参考图片集合中(其被编码到比特流中) 来指示该长期参考图片是或可以被用作参考。对应地,解码器可以从比特流对该长期参考图片是或可以被用作参考的指示进行解码。因此,编码器和/或解码器可以将该参考图片包含在一个或多个初始参考图片列表中。编码器可以将参考图片列表修改语法包含在比特流中,并且解码器可以从比特流对参考图片列表修改语法进行解码,基于此该长期图片可以驻存在一个或多个最终参考图片列表中。如果没有参考图片列表修改语法被编码和/或被解码,则最终参考图片列表可以是直接基于初始参考图片列表的,潜在地通过(由编码器)在比特流中指示列表中的参考图片的数目并(由解码器)从比特流对列表中的参考图片的数目进行解码来调节。
在例如与对角预测相关的示例中,编码器可以确定层间参考图片集合(ILRPS)并在比特流中对其进行指示,并且解码器可以接收来自比特流的ILRPS相关的语法元素并且基于它们来重建ILRPS。编码器和解码器可以例如在参考图片列表初始化中使用ILRPS。
在示例中,编码器可以例如在视频参数集中确定并指示多个 ILRPS。多个ILRPS中的每个ILRPS可以具有标识符或索引,其可以作为语法元素值与其他ILRPS相关的语法元素一起被包含到比特流中或者可以例如基于ILRPS的比特流顺序而被推断出。在特定(分量)图片中使用的ILRPS可以例如利用在切片头中的指示ILRPS索引的语法元素来指示。
在示例中,与标识ILRPS中的图片有关的语法元素可以以例如相对于涉及ILPRS的当前图片的相对方式来编码。例如,ILPRS中的每幅图片可以与相对的layer_id和相对的图片顺序计数相关联,相对的 layer_id和相对的图片顺序计数两者都是相对于当前图片的对应的值。
例如,编码器可以生成用于层间参考的特定的参考图片集合 (RPS)语法结构或专用于层间参考的另一RPS语法结构的一部分。例如,可以使用以下语法结构:
呈现的语法的语义可以被规定如下:num_inter_layer_ref_pics指定可以用于针对涉及该层间RPS的分量图片的层间预测和对角层间预测的分量图片的数目。delta_layer_id[i]指定相对于预计的layer_id值 expLayerId的layer_id差。在示例中,expLayerId可以首先被设定为当前分量图片的layer_id,而在一些其他实施例中,expLayerId可以首先被设定为(当前分量图片的layer_id值)-1。delta_poc[i]指定相对于预计的 POC值expPOC的POC值差,其可以被设定为当前分量图片的POC值。
在示例中,参考以上的inter_layer_ref_pic_set(idx)的语法和语义,编码器和/或解码器和/或HRD可以如下执行分量图片的标记。针对 i的每个值,以下可以应用:
·具有等于expLayerId-delta_layer_id[i]的layer_id的分量图片被标记为“用于层间参考”并且具有等于expPOC+delta_poc[i]的POC。
·expLayerId的值可以被更新为expLayerId-delta_layer_id[i]–1。
在示例中,参考图片列表初始化可以将来自ILPRS的用于当前分量图片的图片包含到初始参考图片列表中。来自ILRPS的图片可以以相对于加入到参考图片列表初始化过程中的其他图片的预定义顺序被包含,其他图片例如RefPicSetStCurrBefore、RefPicSetStCurrAfter和 RefPicSetLtCurr中的图片。例如,ILRPS的图片可以在 RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr中的图片之后被包含到初始参考图片列表中。在另一示例中,ILRPS的图片在 RefPicSetStCurrBefore和RefPicSetStCurrAfter之后但是在 RefPicSetLtCurr之前被包含到初始参考图片列表中。
在示例中,由ILRPS相关的语法元素(例如,由以上呈现的 inter_layer_ref_pic_set语法结构)标识的参考图片可以包括还被包含在诸如对当前图片有效的RefPicSetLtCurr的另一参考图片集合中的图片。在这样的情况下,在示例中,出现在多个参考图片集合中的对当前图片有效的参考图片的仅仅一次出现被包含在初始参考图片列表中。可以预定义在多个RPS子集中的相同参考图片的情况下来自参考图片集合的哪个子集的图片被包含到初始参考图片列表中。例如,可以预定义在多个RPS子集中的相同参考图片的情况下,从参考图片列表初始化省略 (即,不加入)参考图片在层间RPS中的出现。备选地,编码器可以决定哪个RPS子集或参考图片的哪个特定出现被包含在参考图片列表初始化中并在比特流中对该决定进行指示。例如,编码器可以指示在多于一个RPS子集中的相同参考图片的多个副本的情况下的RPS子集的优先顺序。解码器可以对比特流中的相关指示进行解码并因此执行参考图片列表初始化,仅仅包含将如由编码器在比特流中确定并指示的初始参考图片列表中的参考图片。
在示例中,零个或更多个ILRPS可以从诸如包含在视频参数集中的层依赖性或参考信息的其他语法元素来导出。在示例中,层间RPS的构造可以使用被提供在序列级别语法结构中的层依赖性或预测信息作为基础。例如,较早呈现的vps_extension语法结构可以用于构造初始层间RPS。例如,参考以上语法,针对在0到 num_direct_ref_layers[LayerIdInVps[nuh_layer_id]]–1(包含在内)的范围中的i,具有索引0的ILRPS可以被指定为包含具有等于 PocILRPS[0][i]的POC值和等于NuhLayerIdILRPS[0][i]的 nuh_layer_id的图片i,其中PocILRPS[0][i]和NuhLayerIdILRPS[0][i] 被规定如下:
层间RPS语法结构可以之后包含指示与初始层间RPS相比较的差的信息,诸如未用于层间参考的layer_id值的列表,即使序列级别信息将允许它们被用于层间参考。
帧间ILRPS间预测可以被使用在对ILPRS和相关的语法元素的编码(解码)中。例如,可以指示哪些参考被包含在比特流顺序中靠前的第一ILRPS中、被包含在比特流顺序中靠后的第二ILRPS中和/或哪些参考未包含在所述第二ILRPS中。
在示例中,参考层的分量图片是否被用作针对一个或多个增强层分量图片的层间参考和用于参考图片列表初始化的诸如层间RPS的控制和/或标记与层间预测相关的状态的参考图片的一个或多个指示可以由编码器和/或解码器和/或HRD一起使用。例如,在示例中,编码器可以对指示第一分量图片是否可以被用作针对相同时间点(或相同访问单元中的)另一分量图片的层间参考或所述第一分量图片是否不被用作针对相同时间点的任何其他分量图片的层间参考的指示进行编码。例如,参考图片列表初始化可以在第一分量图片被指示为不被用作针对相同时间点的任何其他分量图片的层间参考时排除所述第一分量图片,即使其被包含在有效的ILRPS中。
在示例中,ILRPS不被用于参考图片的标记而是仅仅被用于参考图片列表初始化或其他参考图片列表过程。
在示例中,对角预测的使用可以从诸如RefPicSetStCurrBefore和 RefPicSetStCurrAfter的一个或多个参考图片列表(或参考图片集合的子集)推测出。在下文中,我们将诸如RefPicSetStCurrBefore和 RefPicSetStCurrAfter的参考图片列表标记为SubsetRefPicSet。 SubsetRefPicSet中的第i幅图片被标记为SubsetRefPicSet[i]并且与POC 值PocSubsetRPS[i]相关联。如果在针对当前图片的有效RPS中存在图片SubsetRefPicSet[missIdx]使得DPB不包含具有等于 PocSubsetRPS[missIdx]的POC值并且具有等于当前图片的nuh_layer_id 的nuh_layer_id的图片,解码器和/或HRD可以操作如下:如果在DPB 中存在具有等于PocSubsetRPS[missIdx]的POC值并且具有等于当前图片的参考层的nuh_layer_id的nuh_layer_id的图片,解码器和/或HRD 可以在针对当前图片的后续解码操作中、诸如在参考图片列表初始化和帧间预测过程中使用该图片。提到的图片可以被称为用于对角预测的推测的参考图片。
在示例中,编码器可以将RPS子集(例如,RefPicSetStCurrBefore 或RefPicSetStCurrAfter)中的哪些参考图片驻存在与当前图片不同的层中作为RPS相关的语法的一部分指示或在诸如切片头的其他语法结构中指示,并且因此可以在那些参考图片中的任何参考图片被使用时应用对角预测。在示例中,编码器可以附加地或备选地将哪个是针对RPS子集(例如,RefPicSetStCurrBefore或RefPicSetStCurrAfter)的一幅或多幅参考图片的参考层作为RPS相关的语法的一部分指示或在诸如切片头的其他语法结构中指示。在与当前图片不同的层中的指示的参考图片可以被称为用于对角预测的指示的参考图片。解码器可以从比特流对指示进行解码并在诸如参考图片列表初始化和帧间预测的解码过程中使用来自推测的或指示的其他层的参考图片。
如果针对对角预测的推测的或指示的参考图片具有与当前图片不同的空间分辨率和/或色度采样,可以(由编码器和/或解码器和/或HRD) 执行对用于对角预测的参考图片的重采样和/或可以执行对用于对角预测的参考图片的运动场的重采样。
在示例中,针对RPS中的图片的不同层的指示和/或针对RPS中的图片的层的指示可以是RPS间预测的,即一个或多个层相关的属性可以从一个RPS到另一RPS来被预测。在其他实施例中,一个或多个层相关的属性不是从一个RPS到另一RPS来被预测的,即,不加入RPS 间预测。
下面提供具有针对包含在RPS中的图片的参考层的指示的 short_term_ref_pic_set语法结构的示例语法。在该示例中,层相关的属性不是从一个RPS到另一RPS来被预测的。
语法元素中的一些语法元素的语义可以被规定如下。
diag_ref_layer_X_idx_plusl[i](其中X是inter_rps、s0或s1)等于0指示相应的参考图片具有与(涉及该参考图片集合的)当前图片的 nuh_layer_id值相同的nuh_layer_id值。diag_ref_layer_X_idx_plusl[i] 大于0指定相应的参考图片的nuh_layer_id(标记为refNuhLayerId[i]) 如下。假设变量diagRefLayerIdx[i]等于diag_ref_layer_X_idx_plusl[i]– 1。refNuhLayerId[i]被设定等于ref_layer_id[LayerIdInVps[当前图片的 nuh_layer_id]][diagRefLayerIdx[i]].
在示例中,在对相应的参考图片集合进行解码时不改变对用于对角预测的指示的和推测的参考图片的标记。
可用媒体文件格式标准包括ISO基本媒体文件格式(ISO/IEC 14496-12,其可以被缩写为ISOBMFF)、MPEG-4文件格式(ISO/IEC 14496-14,还被称为MP4格式)、AVC文件格式(ISO/IEC 14496-15) 和3GPP文件格式(3GPP TS 26.244,还被称为3GP格式)。SVC和MVC 文件格式被规定为对AVC文件格式的修改。ISO文件格式是用于所有上述文件格式(不包括ISO文件格式本身)的衍生的基础。这些文件格式 (包括ISO文件格式本身)一般被称为ISO文件格式族。
ISO基本媒体文件格式的基本构造块被称为框。每个框具有头和载荷。框头指示框的类型和以字节为单位的框的大小。框可以包围其他框,并且ISO文件格式规定哪些框类型被允许在特定类型的框内。另外,一些框的存在可以在每个文件中是强制的,而其他框的存在可以是可选的。附加地,对于一些框类型,具有存在于文件中的多于一个框可以是可允许的。因此,ISO基本媒体文件格式可以被认为用于规定框的层次结构。
根据ISO文件格式族,文件包括被包围在分离的框中的媒体数据和元数据。在示例实施例中,媒体数据可以被提供在媒体数据(mdat) 框中并且电影(moov)框可以用于包围元数据。在一些情况下,对于可操作的文件,mdat和moov框两者必须存在。电影(moov)框可以包括一个或多个轨道,并且每个轨道可以驻存在一个对应的跟踪框中。轨迹可以为以下类型之一:媒体、提示、定时的元数据。媒体轨道是指根据媒体压缩格式而被格式化的样本(以及其到ISO基本媒体文件格式的封装)。提示轨道是指提示样本,包含用于构造通过指示的通信协议传输的分组的手册指令。手册指令可以包括用于分组头构造的指导并且包括分组载荷构造。在分组载荷构造中,可以参考驻存在其他轨道或项目中的数据。因此,例如,驻存在其他轨道或项目中的数据可以通过关于特定轨道或项目中的哪个数据片段被指示为在分组构造过程期间被复制到分组中的参考来指示。定时的元数据轨道可以指描述涉及的媒体和/ 或提示样本的样本。为了呈现一种媒体类型,通常选择一个媒体轨道。轨道的样本可以与样本数隐式地相关联,样本数在样本的指示的解码顺序中被递增1。轨道中的第一样本可以与样本数1相关联。
根据ISO基本媒体文件格式的简化文件结构的示例可以被描述如下。文件可以包括moov框和mdat框,并且moov框可以包括分别与视频和音频相对应的一个或多个轨道。
ISO基本媒体文件格式不限制要被包含在一个文件中的呈现。因此,呈现可以被包括在若干文件内。作为示例,一个文件可以包括用于整体呈现的元数据并且可以因此包括所有元数据以使呈现自包含。其他文件如果使用的话可以不要求被格式化为ISO基本媒体文件格式,并且可以用于包括媒体数据,并且还可以包括未使用的媒体数据或其他信息。ISO基本媒体文件格式仅仅涉及呈现文件的结构。媒体数据文件的格式可以仅仅由ISO基本媒体文件格式或其衍生格式约束,因为媒体文件中的媒体数据如ISO基本媒体文件格式或其衍生格式中规定的被格式化。
引用外部文件的能力可以通过数据引用来实现。在一些示例中,包含在每个轨道中的样本描述框可以提供样本条目的列表,每个样本条目提供关于使用的编码类型的详细信息和该编码所需要的任何初始化信息。数据块(chunk)的所有样本和轨道片段的所有样本可以使用相同的样本条目。数据块可以被定义为针对一个轨道的连续的样本集。也包含在每个轨道中的数据引用(dref)框可以定义统一资源定位器(URL)、统一资源名称(URN)和/或对包含元数据的文件的自引用的索引列表。样本条目可以指向数据引用框的一个索引,由此指示包含相应的块或轨道片段的样本的文件。
可以在将内容记录到ISO文件时使用电影片段以便在记录应用崩溃、耗尽存储空间或一些其他事件发生时避免丢失数据。在没有电影片段的情况下,数据丢失可能发生,因为文件格式可以通常要求例如电影框的所有元数据被写入文件的一个连续区域中。另外,在记录文件时,可能不存在足够量的存储空间(例如,RAM)以缓冲针对可用的存储的大小的电影框,并且在电影被关闭时重新计算电影框的内容可能太慢。此外,电影片段可以使用常规ISO文件解析器实现对文件的同时记录和回放。最终,初始缓冲的较小持续时间可以被要求用于渐进式下载,例如对文件的同时接受和回放,在电影片段被使用并且初始电影框与具有相同媒体内容的文件但是被结构设计为没有电影片段的文件相比较更小。
电影片段特征可以使得能够将传统上将驻存在电影框中的元数据拆分成多个片段。每个片段可以与针对轨道的特定时间段相对应。换言之,电影片段特征可以使得能够将文件元数据和媒体数据交织。因此,电影框的大小可以被限制并且以上提到的用例可以被实现。
在一些示例中,针对电影片段的媒体样本可以在它们处在与moov 框相同的文件中时照常驻存在mdat框中。然而,针对电影片段的元数据,可以提供moof框。Moof框可以包括之前已经处在moov框中的针对回放时间的特定持续时间的信息。moov框可以仍然靠其自身来表示有效电影,但是另外,其可以包括指示电影片段将跟随在相同文件中的 mvex框。电影片段可以及时延长与moov框相关联的呈现。
在电影片段内可以存在轨道片段集,每个轨道包括从零到多个的任何地方。轨道片段可以转而包括从零到多个轨道运行的任何地方,对于其中的每个轨道运行,文档是针对该轨道的样本的连续运行。在这些结构内,许多字段是可选的并且可以是默认的。可以被包含在moof框中的元数据可以限于元数据的子集,该元数据可以被包含在moov框中并且可以在一些情况下被不同地编码。关于能够被包含在moof框中的框的细节可以从ISO基本媒体文件格式规范找到。
ISO基本媒体文件格式和其衍生格式、诸如AVC文件格式和SVC 文件格式中的样本分组可以基于分组准则被定义为对轨道中的每个样本到一个样本组的成员的指派。样本分组中的样本组不限于是连续样本并且可以包含非相邻样本。由于可能存在针对轨道中的样本的多于一个样本分组,所以每个样本分组具有指示分组的类型的类型字段。样本分组由两个链接的数据结构表示:(1)SampleToGroup框(sbgp框)表示样本到样本组的指派;并且(2)SampleGroupDescription框(sgpd框) 包含针对描述分组的属性的每个样本组的样本组条目。基于不同分组准则可能存在SampleToGroup框和SampleGroupDescription框的多个实例。这些由用于指示分组的类型的类型字段来区分。
样本组框(SampleGroupDescription框和SampleToGroup框)驻存在样本表格(stbl)框内,样本表格(stbl)框被包围在电影(moov)框内的媒体信息(mini)框、媒体(mdia)框和轨道(trak)框(以该顺序) 中。SampleToGroup框被允许驻存在电影片段中。因此,样本分组能够逐片段地来进行。
图像序列能够被压缩为利用空间预测装置编码的静止图片的序列或利用空间和时间预测装置编码的帧内图片的序列。具有随机访问和对编辑单个图片的支持的图像序列已经在传统上通过将该序列表示为一系列独立编码的帧内图片来实现。例如,这样的格式包括运动JPEG、动画呈现的GIF和H.264的帧内档次。
如果图像序列被表示为一系列静止图片,则编码效率通常很差并且针对高分辨率序列的文件大小要求能够变得非常大。在序列利用时间预测被编码为视频的情况下,存在关于该序列需要如何被解码、在用户想要对该序列中的一些图像进行编辑时其如何能够被回放并且发布的严格限制。
因此,期望引入用于对图像序列进行编码和解码而同时提供随机访问和可编辑性功能的改进的方法。
现在为了增强编码效率,下文中提出了一种用于对图像序列进行编码的改进的方法。
在图7中公开的方法中,对参考图片集合进行编码(700)并且将所述参考图片集合存储(702)在初始参考图片缓冲器中。然后,在不改变初始参考图片缓冲器的内容的情况下对输出图片的集合进行编码(704),并且将指示该序列中的所有输出图片能够使用初始参考图片集合来解码的指示编码(706)在比特流中。
换言之,该方法使得能够限制并指示与图像序列相关联的预测结构的解码延迟特性。根据实施例,这通过信号传送参考图片集合是否能够一次被存储在参考图片缓冲器中并且该序列中的所有输出图片是否能够利用在对该序列进行解码的过程期间不改变的该固定参考图片集合解码来被执行。
尽管实际实施方式可以以不同方式来执行,但是不同实施方式中的基本思想之一是指示图像序列的延迟和编辑能力。在图8a-8d中描绘了不同编码结构的一些示例。
在图8a中,存在一个参考/输出图片ROI,其是所有其他输出图片O2-O 8在帧间预测过程期间用作参考的参考图片(R),并且同时是解码器输出的输出图片(O 1)。在图8a的布置中,针对访问流中的输出图片O2-O8中的任何输出图片的最大解码延迟是两个图片单元;即用于对参考图片ROI进行解码的一个单元和用于对所选择的输出图片O2-O8进行解码的一个单元的延迟。
在图8b中,所有输出图片O1-O8在帧间预测过程中使用相同的参考图片R1作为参考,但是这里参考图片R1不是输出图片。因此,图8b的编码布置具有与图8a的编码布置相同的延迟特性(针对输出图片O1-O8中的任何输出图片的最大解码延迟是两个图片单元),但是另外图8b的编码布置允许在不影响其他输出图片的经压缩的表示的情况下信号传送对输出图片中的任何输出图片进行编辑的可能性,因为该序列中的唯一有效参考图片(R1)不是输出图片。
在图8c中,两幅非输出参考图片R1和R2用作针对输出图片 O1-O8的在帧间预测过程中的参考。非输出参考图片R1用作针对输出图片O1-O4的在帧间预测过程中的参考,而非输出参考图片R2用作针对输出图片O5-O8的在帧间预测过程中的参考。同样地,针对访问输出图片中的任何输出图片的最大解码延迟是两个图片单元(与对指示的参考图片和输出图片本身的解码相对应)。
图8d描绘了编码结构,其中多幅参考图片被用于一些输出图片。非输出参考图片R1用作针对输出图片O1-O4的在帧间预测过程中的参考,而非输出参考图片R2用作针对输出图片O2-O8的在帧间预测过程中的参考。作为结果,针对输出图片O2、O3和O4的初始解码延迟是三个图片单元,因为它们要求两幅参考图片R1和R2在对那些输出图片中的任何输出图片进行解码之前被解码。然而,一旦参考图片已经被解码,则能够信号传送针对输出图片中的任何输出图片的解码延迟仅仅是一个图片单元。该信号传送能够有益于指导解码器首先占据其参考图片缓冲器并且在对参考图片的解码之后允许输出图片以最小解码延迟被浏览。
该方法能够以多种方式来实施。例如,显而易见的,所描述的处理步骤可以以不同顺序来执行。此外,可以存在用于指示参考图片和/或非参考图片的一种或多种方式。还可以存在用于使解码过程将图片处置为参考图片和/或非参考图片的一种或多种方式。
作为备选,类似的机制可以针对可分级的编解码器来实施,诸如HEVC的可分级扩展。这样的机制可以通过将图像序列中的单个图片中的每幅图片编码为单独的层来实现。备选地,用于参考但不用于输出的图片(如,图8b、8c和8d中的图片R1和R2)可以驻存在诸如基本层的第一层中,并且意图用于输出但不用于参考的图片(如,图8b、8c和8d中的图片O1-O8)可以驻存在诸如增强层的第二层中。用于参考和输出的图片(例如,图8a中的图片RO1)可以在一些实施例中驻存在第一层中,而在其他实施例中其可以驻存在第二层中。对增强层图片的预测可以被限制使得增强层图片在层间预测过程期间仅仅利用来自基本层的而非来自任何其他层的图片。对增强层图片的预测可以利用例如根据以上的对角预测的示例中的任何示例的对角预测。该机制可以涉及用于指示每幅增强层图片的输出时间的附加的信号传送,因为那些图片可以与在不同时间点获取的图片相对应。
根据实施例,在一些系统中,诸如在H.264/AVC中,其可以利用一个或多个语法元素和/或语法元素值来被指示图片是参考图片还是非参考图片。
根据实施例,在一些系统中,诸如在基于HEVC的一些实施例中,其可以被指示存在仅一个时间子层(即,所有图片具有等于0的 TemporalId)并且因此(如由NAL单元类型指示的)时间子层非参考图片可以被认为是非参考图片并且所有其他图片可以被认为是参考图片。例如,时间子层的数目可以在序列参考集中被指示(例如,使用HEVC的sps_max_sub_layers_minus1语法元素)。
根据实施例,在一些系统中,诸如在基于HEVC的一些实施例中,其可以被指示存在两个(或更多个)时间子层。例如,具有等于 0的TemporalId的所有图片可以被认为是参考图片,并且具有大于0 的TemporalId的所有图片可以被认为是非参考图片。在一些实施例中,具有大于0的TemporalId的所有图片可以被认为是子层非参考图片。在一些实施例中,具有等于0的TemporalId的所有图片可以被指示为具有除了子层非参考图片以外的其他类型。
根据实施例,在一些系统中,诸如在基于HEVC的一些实施例中,包含在参考图片集合中的图片可以被认为是参考图片,并且/或者未包含在参考图片集合中的图片可以被认为是非参考图片。
根据实施例,在一些系统中,可以在用于视频比特流的容器文件中存在指示参考图片和非参考图片的这样的元数据。例如,在 ISOBMFF(ISO基本媒体文件格式)和其衍生格式(诸如指定AVC 和HEVC文件封装的ISO/IEC 14496-15)中,可以使用独立的且一次性的样本框。字段sample_is_depended_on可以用于指示图片是参考图片(该字段等于1)还是非参考图片(该字段等于2)。
根据实施例,可以在语法结构中、诸如在序列参数集中存在用于指示在比特流中使用哪种方式来指示参考图片和/或非参考图片的指示。
可以存在用于指示输出图片和/或未被输出的图片的一种或多种方式,包括但不限于以下:
·经编码的图片内的以及伴随经编码的图片的HEVC的pic_output_flag 或类似指示,
·用于指示图片要被显示的SEI消息等,
·用于指示对图片的显示的文件格式元数据指示。
尤其,如果文件格式元数据被使用在ISOBMFF中,则指示可以如下文提供的来执行。
根据实施例,输出图片可以利用样本分组机制来指示使得可能没有时间信息的图像的序列或集合可以使用ISOMBFF的轨道结构来存储。对于ISOMBFF解析器可能有用的是知道在给定序列或集合之中的哪些图片(样本)要被呈现。该呈现可以是在图像的序列或集合之中的单幅图像,或者在图像的序列或集合之中的图像的子序列或子集。
ISOMBFF提供能够在实施例中使用的样本分组机制。其实现以以下两个链接的框数据结构的形式的样本分组机制:(a) SampleToGroupBox和(b)SampleGroupDescriptionBox。 SampleToGroup框表示样本到样本组的指派并且 SampleGroupDescription框包含针对描述组的属性的每个样本组的样本组描述条目。
根据实施例,如果特定图像集要被解析、被解码并且被呈现,则针对该样本集的新样本组通过扩展ISOMBFF的抽象类 VisualSampleGroupEntry来定义。该扩展的语法如下所示:
class DefaultPictureSamplesGroup() extends VisualSampleGroupEntry('dflt')
{
}
然后,要被处置为要被显示的样本的那些样本的 group_description_index指向DefaultPictureSamplesGroup框。不要被显示的样本不被指示为样本组的成员。
根据备选实施例,输出图片可以利用合成时间来指示,使得图像的序列或集合、连同到样本框的解码时间(还被称为TimeToSampleBox)和到样本框的可选的合成时间(还被称为 CompositionOffsetBox)中的定时信息可以使用ISOMBFF的轨道结构来存储。在针对定时的图像序列的一些用例中,在图像序列中的图像集之中存在需要被解码但是不需要被输出以用于显示的一些图像。当前,没有处理这样的情形的ISOMBFF方法描述。
根据实施例,ISOMBFF的一些语法和语义元素被重新定义以指示这样的用例。ISOMBFF已经提供CompositionOffsetBox来信号传送轨道中的每个样本的合成时间。通过迫使不要被显示的那些图像样本使用非法合成偏移值,解析器能够正确地推测这样的样本不要被显示。
作为轨道的一部分的每个定时的图像样本使用句柄类型‘vide’。该句柄类型默认提供所有需要的解码和呈现定时机制。 TimeToSampleBox提供轨道中的每个样本的解码时间。 TimeToSampleBox中的值的正确设定将根据需要提供图像样本的正确解码时间。
附加地,ISOMBFF还提供CompositionOffsetBox用于对轨道中的每个样本的合适呈现。为了支持其中图像样本被解码但不被显示的用例,CompositionOffsetBox被呈现在轨道中。该 CompositionOffsetBox使用版本1的框。根据实施例,sample_offset 值,32位有符号整数,被设定为最小整数(-231)。这是在图像和视频呈现的每个设想的用例中绝不现实的值。因此,当ISOMBFF解析器遇到提供现实解码时间但是合成时间为(-231)的样本时将认为这样的样本要被解码但不被显示。
ISOBMFF还提供合成到解码框(Composition to Decode Box),其包含文档记载解码时间和合成时间的关系的一些语法元素。在这些语法元件之中leastDecodeToDisplayDelta被定义为该轨道中的 CompositionTimeToSample框中的最小合成偏移。根据实施例, leastDecodeToDisplayDelta的值可以被设定为大于最小整数(-231)以指示偏移值等于最小整数实际上指示不要被输出的图片。
根据实施例,代替或除了指示所有输出图片是否能够利用预定义集合的参考图片来解码,需要在能够对一幅或多幅输出图片进行解码之前被解码的参考图片的数目可以被指示。这能够针对单幅图片或具有一个标识符的多幅图片进行。
根据实施例,代替地或附加地,经编码的视频序列或比特流内的参考图片的数目可以被指示。
根据实施例,代替地或附加地,被认为在DPB的操作中被占据的多个图片存储缓冲器可以针对经编码的视频序列或比特流而被指示。该数目可以等于参考图片的数目。DPB完整度可以初始地(在解码操作的开始)被认为等于占据的图片存储缓冲器的数目。占据的图片存储缓冲可以不被清空或可以仅仅在经编码的视频序列和/或比特流的开始被清空。
当参考图片被解码并且其已经不存在于占据的图片存储缓冲器中的任何图片存储缓冲器中时,其可以被包含在占据的图片存储缓冲器中还没有由任何其他经解码的图片使用的一个图片存储缓冲器中。根据实施例,即使参考图片已经被输出并且不再需要用于参考,包括经解码的图片的图片存储缓冲器可以不被清空。可以要求或指示经编码的视频序列或比特流符合指示的档次(profile)和/或等级(tier)和 /或级别(level)和/或特定或指示的缓冲参数(例如,最大数目图片存储缓冲器,诸如HEVC的sps_max_dec_pic_buffering_minusl[i]语法元素)。在一些实施例中,档次和/或等级和/或级别和/或特定或指示的缓冲参数的第二集合可以针对DPB操作例如如以上描述的使用占据的图片存储缓冲器来提供,而在一些实施例中,档次和/或等级和/ 或级别和/或特定或指示的缓冲参数的相同集合可以对于(没有如所描述的使用占据的图片存储缓冲器等的)常规DPB操作和例如如以上描述的使用占据的图片存储缓冲的DPB操作有效。
根据实施例,代替或除了指示所有输出图片能够利用预定义集合的参考图片来解码,可以指示图片的集合中的所有帧间编码的图片仅仅使用帧内图片作为参考图片。
根据实施例,代替或除了指示所有输出图片能够利用预定义集合的参考图片来解码,可以指示图片的集合中的所有帧间编码的图片仅仅使用帧内图片作为参考图片并且所有的帧内编码的图片仅使用一幅参考图片。
在本文中,以上提到的帧内图片可以指代不同内容,例如IDR 图片或IRAP图片。
根据实施例,可以指示在解码过程中使用的所有参考图片都不是输出图片或所有输出图片是非参考图片。以这种方式,所有输出图片可以被修改而不影响对其他输出图片中的任何输出图片的预测。
根据实施例,以上描述的指示中的任何指示可以针对单幅图片单独地、针对一组图片联合地或针对图像序列中的所有图片联合地被执行。所述信号传送的形式也可以变化。例如,信号传送可以作为档次/等级/级别指示、其他语法元素、SEI消息或其他带中或带外信号传送发生。
根据实施例,可以在对该序列的编码或解码期间构建参考图片集合。例如,每第N个编码的图片可以用作参考图片并且被放置在参考图片缓冲器中。
根据实施例,可以存在关于彼此相关的图片和它们的关系的另外的指示(例如,特定图片可以形成能够恢复在不同距离处的焦点的焦点栈,而一些其他图片可以形成能够重建具有比原始图片更高的动态范围的图片的暴光栈,一些图片也可以在与另一图片的特定区域相对应的表示中被缩放等等)。
根据实施例,比特流中的参考图片和/或输出图片的位置可以被信号传送,以便允许解码器在对请求的输出图片进行解码之前占据参考图片缓冲器。该信号传送可以以各种方式来执行。例如,该位置可以通过诸如ISO基本媒体文件格式或其衍生格式的样本分组和/或定时的元数据轨道的一种或多种文件格式元数据机制被信号传送为指向比特流中的定位的指针,作为NAL单元索引,或者可以隐式地或显式地指示所有需要的参考图片被聚集在容器格式的开头中。
根据实施例,在比特流中的参考图片和/或输出图片的比特(或字节)的数目方面的大小可以被信号传送,以便允许解码器实现文件内的随机访问。
根据实施例,所有或一些输出图片可以被信号传送为具有或没有指示需要参考图片集合以对一幅或多幅输出图片进行解码的附加的信号传送的随机访问点。
根据实施例,可以存在对所有输出图片使用相同数目的比特的限制的指示,使得在图片被编辑时经修改的图片可以在不改变文件内的其他图片的位置的情况下被放置在比特流缓冲器中。
根据实施例,可以存在对所有输出图片被放置在比特流中的彼此之间等同的距离处的限制的指示。这可以通过在图片之间放置冗余数据来实现。
根据实施例,与比特流顺序不相同的零个或更多个解码顺序可以例如在容器文件格式中或SEI消息中被指示。解码顺序可以不包括经编码的视频序列或(根据诸如HEVC的编码规范利用比特流顺序或解码顺序定义的)比特流中的一些图片。解码顺序可以多于一次地包括相同的经编码的图片。解码顺序中的两幅图片可以在相同解码顺序内的另一位置中具有相反顺序和/或可以具有与它们根据编码规范在比特流顺序或解码顺序中具有的相互顺序不同的相互顺序。
尤其,如果在ISOBMFF中指示解码顺序,则指示可以如下文提供的来被执行。
ISOBMFF使得能够将媒体数据(例如,视频比特流)存储在还包含文件元数据(ISOBMFF的框)的文件中或一个或多个单独的文件中。媒体数据的位置利用数据引用(Data Reference)框来指示。当媒体数据被存储在与文件元数据相同的文件中时,一个或多个媒体数据(mdat) 框包含该媒体数据。轨道包含关于在数据块偏移(Chunk Offset)框,样本到数据块(Sample to Chunk)框和样本大小(Sample Size)框中的媒体数据内的样本(即视频比特流情况下的图片或访问单元)的位置的信息。样本以其解码顺序(例如在解码时间方面)被描述在Sample Table 框内。根据实施例,数据块偏移框和样本到数据块框可以用于将以任何顺序驻存在媒体数据框内或外部文件中的样本与解码顺序相关联。类似地,相同的经编码的图片(样本)可以使用数据块偏移框和样本到数据块框被多次映射到轨道。
相同的经编码的参考图片可以在解码顺序中出现多次。由于第一次对经编码的参考图片进行解码,经解码的参考图片可以被包含在DPB 中的图片存储缓冲器中。随后,经解码的参考图片可以被保持在图片存储缓冲器中。针对相同的经编码的参考图片在解码顺序中的第二次或稍后的出现,解码器可以省略对经编码的参考图片的解码并且在随后的解码操作中使用已经被存储在图片存储缓冲器中的经解码的参考图片。
根据实施例,与如被指定在比特流内或如被指示为容器文件格式中的默认顺序的输出顺序不相同的零个或更多个显示顺序可以例如在容器文件格式中或SEI消息中被指示。显示顺序可以不包括经编码的视频序列或比特流的一些图片。显示顺序可以多于一次地包括相同的经编码的图片。在显示顺序中的两幅图片可以具有在相同显示顺序内的另一位置中的相反顺序和/或可以具有与它们在输出中具有的相互顺序不同的相互顺序。
尤其,如果在ISOBMFF中指示显示顺序,则该指示可以如下文提供的来执行。
在一些用例中,图像集被要求以许多不同的顺序来呈现。在这样的情况下,应当存在针对图像序列的每个唯一的呈现顺序而创建的新轨道。每个这样的轨道应当包含合适地记录轨道中的每个图像样本应当何时被呈现的时间的CompositionOffsetBox。
在一些用例中,在图像集之中的特定图像可以被要求多于一次被显示在图像序列的呈现中。当前,在ISOMBFF中,这仅在样本数据被复制时是可能的。对样本数据的复制导致大于所需要的文件大小。
当样本要多于一次被显示在呈现中,CompositionOffsetBox必须记录针对该样本的所有呈现偏移。当前,ISOMBFF将CompositionOffsetBox 中的sample_count定义为对具有给定偏移的连续样本的数目进行计数的整数。换言之,ISOBMFF允许相同的图片具有仅一个合成时间(即,仅显示一次)。
根据实施例,为了克服上述缺陷,CompositionOffsetBox的语法不需要被修改但是语义被补充如下。
当针对样本的多个呈现偏移要被记录时,该样本与其他样本不同地被处置。针对这样的样本,CompositionOffsetBox中的条目的数目等于其被显示在呈现中的次数。这些条目中的第一个条目将sample_count 设定为一并且相关的sample_offset将记录在呈现的时间线中的样本的最小呈现偏移。其他附加的偏移通过将sample_count设定为零并且然后将合适的合成偏移记录在相关的sample_offset字段中来记录。遇到 CompositionOffsetBox中的、具有等于一的sample_count的、跟随有等于零的sample_count的条目的条目的解析器将sample_offset的值解读为先前样本的附加的偏移。
换言之,在CompositionOffsetBox中的循环内的当前条目中的 sample_count语法元素在其等于0时需要被定义以指示针对最后样本的另一合成偏移,针对所述最后样本合成偏移被提供在循环内的先前条目中。
根据另一实施例,编辑列表框可以用于指定相同的样本出现在编辑列表框内的多个条目(又名编辑片段)中。
应当指出,以上提到的指示中的任何指示可以特定于解码顺序、特定于显示顺序或特定于解码顺序和显示顺序的组合。上述指示与特定解码顺序、特定显示顺序和/或解码顺序和显示顺序的特定组合的关联可以被指示。
本发明的另一方面是在解码器接收到经编码的比特流时的解码器的操作。图9示出了适合于采用本发明的实施例的视频解码器的方框图。图9描绘了两层解码器的结构,但是将认识到解码操作可以类似地被用于单层解码器中。
视频解码器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。
图10中示出的实施例的解码操作与编码操作相反。因此,在解码过程中,解码器可以1000对指示所有输出图片是否能利用预定义的参考图片的集合来解码的标识符进行解码(1000)。解码器对给定输出图片所需要的参考图片的指示进行解码(1002)。然后,针对给定输出图片,解码器对所指示的至少一幅参考图片进行解码(1004)并且然后对至少一幅输出图片进行解码(1006)。
如以上提到的,还可能有其中指示图片集中的所有帧内编码的图片仅使用帧内图片作为参考图片的编码结构。
在这样的情况下,如图11中示出的,解码过程包括对指示序列内的所有帧间图片是否是非参考图片的标识符进行解码(1100)。该过程可以可性地包括对指示序列内的所有帧内图片是否被输出的标识符进行解码(1102)。然后,为了解码给定输出图片,解码器对至少一幅帧内图片进行解码(1104),并且然后使用所述至少一幅帧内图片作为参考图片对至少一幅帧间图片进行解码(1106)。
如以上描述的,解码器还被布置为对关于解码顺序、关于显示顺序或关于解码顺序和显示顺序的组合的指示进行解码,并且被布置为控制对解码器和包括解码器的装置的操作以相应地构建经解码的图像序列。
因此,以上描述的编码和解码方法提供用于信号传送预测编码结构的装置,其允许随机访问特征和在经压缩的图像序列中编辑单个图片的可能性,同时获得图片的帧内编码的编码效率益处中的大多数。
以上描述的本发明的实施例根据分离的编码器和编码器装置来描述编解码器以便帮助理解涉及的过程。然而,将会理解,所述装置、结构和操作可以被实施为单个编码器-解码器装置/结构/操作。另外,在本发明的一些实施例中,编码器和解码器可以共享一些或所有共同元件。
尽管以上示例描述了在电子设备内的编解码器内操作的本发明的实施例,但是将会理解如权利要求中限定的本发明可以被实施为任何视频编解码器的部分。因此,例如,本发明的实施例可以被实施在视频编解码器中,所述视频编解码器可以通过固定或有线通信路径实施视频编码。
因此,用户装备可以包括视频编解码器,诸如以上在本发明的实施例中描述的那些。应理解,术语用户装备旨在覆盖任何适当类型的无线用户装备,诸如移动电话、便携式数据处理设备或便携式web浏览器。
公共陆地移动网络(PLMN)的另外的元件还可以包括如以上描述的视频编解码器。
总体上,本发明的各种实施例可以被实施在硬件或专用电路、软件、逻辑或其任何组合中。例如,一些方面可以被实施在硬件中,而其他方面可以被实施在可以由控制器、微处理器或其他计算设备运行的固件或软件中,尽管本发明不限于此。尽管本发明的各个方面可以被图示并被描绘为方框图、流程图或者使用一些其他绘图表示,容易理解本文中描述的这些方框、装置、系统、技术或方法可以作为非限制性示例被实施在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某组合中。
本发明的实施例可以通过由移动设备的数据处理器、诸如在处理器实体中可执行的计算机软件,或通过硬件,或通过软件和硬件的组合来实施。另外,在这一点上,应当指出如附图中的逻辑流程的任何方框可以表示程序步骤,或者相互连接的逻辑电路、方框和功能,或者程序步骤和逻辑电路、方框和功能的组合。软件可以被存储在如存储器芯片的物理媒体、或被实施在处理器内的存储器块、诸如硬盘或软盘的磁介质、和诸如DVD和其数据变型CD的光介质上。
存储器可以具有适合于本地技术环境的任何类型并且可以使用诸如基于半导体的存储设备、磁存储设备和系统、光存储设备和系统、固定存储器和可移动存储器的任何适当的数据存储技术来实施。数据处理器可以具有适合于本地技术环境的任何类型,并且作为非限制性示例可以包括通用计算机、专用计算机、微处理器、数字信号处理器(DSP) 和基于多核处理器架构的处理器。
本发明的实施例可以被实践在诸如集成电路模块的各种部件中。对集成电路的设计大体是高度自动化过程。复杂的且强大的软件工具可用于将逻辑级设计转换成容易被蚀刻并被形成在半导体基板上的半导体电路设计。
诸如由加利福利亚的山景城的Synopsys公司和加利福利亚的圣何塞的Cadence Design提供的那些程序使用良好建立的设计规则以及预存储的设计模块的库来自动地对导体布线并将元件定位在半导体芯片上。一旦已经完成针对半导体电路的设计,以标准化电子格式(例如,Opus、 GDSII等)的作为结果的设计可以被发送到半导体制造工厂或“fab”以用于制造。
前面的描述已经通过示范性且非限制性示例的方式提供了本发明的示范性实施例的完整且翔实的描述。然而,本领域技术人员鉴于前面的描述在结合附图和所附权利要求进行阅读时,各种修改和调整可以变得明显。然而,对本发明的教导的所有这样的和类似的修改将仍然落在本发明的范围内。
根据第一实施例的一种方法,包括一种用于从比特流解码图像序列的方法,所述方法包括:
对指示所有输出图片是否利用预定义的参考图片集合可解码的标识符进行解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据实施例,所述方法还包括:
从一个或多个语法元素和/或语法元素值解码图片是参考图片还是非参考图片的指示。
根据实施例,所述方法还包括:
对所述比特流包括仅一个时间子层的指示进行解码,其中时间子层非参考图片被认为是非参考图片,并且所有其他图片被认为是参考图片。
根据实施例,所述方法还包括:
对所述比特流包括两个或更多个时间子层的指示进行解码,其中具有等于0的TemporalId的所有图片被认为是参考图片,并且具有大于 0的TemporalId的所有图片被认为是非参考图片。
根据实施例,所述方法还包括:
从用于所述比特流的容器文件格式解码指示参考图片和非参考图片的元数据。
根据实施例,所述方法还包括:
对指示输出图片和/或未被输出的图片的指示进行解码,所述指示为以下中的一项:
-HEVC的pic_output_flag,
-用于指示要被显示的图片的SEI消息,
-用于指示要被显示的图片的容器文件格式元数据指示。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中所述输出图片利用样本分组机制来指示,使得图像的序列或集合使用ISOMBFF的轨道结构来存储。
根据实施例,所述方法还包括:
对图片的集合中的所有帧间编码的图片仅使用帧内图片作为参考图片的指示进行解码。
根据实施例,所述方法还包括:
对所有的所述帧间编码的图片使用仅一幅参考图片的指示进行解码。
根据实施例,所述方法还包括:
对关于零个或更多个解码顺序的指示进行解码,所述零个或更多个解码顺序与来自容器文件格式或来自一个或多个SEI消息的比特流顺序不相同。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中块偏移框数据结构和块框数据结构的样本被用于将以任何顺序驻存在媒体数据框数据结构内或外部文件中的样本与所述解码顺序关联。
根据实施例,所述方法还包括:
对关于零个或更多个显示顺序的指示进行解码,所述零个或更多个显示顺序与在所述比特流内指定的或被指示为来自容器文件格式或来自一个或多个SEI消息的默认顺序的输出顺序不相同。
根据第二实施例的一种方法,包括一种用于从比特流解码图像序列的方法,所述方法包括:
对指示所述序列内的所有帧间预测的图片是否是非参考图片的标识符进行解码;
对至少一幅帧内图片进行解码;以及
对至少一幅帧间图片进行解码。
根据实施例,所述方法还包括:
对所有帧间编码的图片使用仅一幅参考图片的指示进行解码。
根据第三实施例的一种方法,包括一种用于从比特流解码图像序列的方法,所述方法包括:
对指示所有增强层图片是否仅使用来自基本层图片的图片的标识符进行解码;
对至少一幅基本层图片进行解码;以及
对至少一幅增强层图片进行解码。
根据第四实施例的一种装置包括:
至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码当由所述至少一个处理器运行时,使得装置至少执行:
从比特流解码标识符,所述标识符指示图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据第五实施例,提供了一种计算机可读存储介质,在其上存储有用于由装置使用的代码,所述代码当由处理器运行时,使得所述装置执行:
从比特流解码标识符,所述标识符指示图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据第六实施例,提供了一种包括视频解码器的装置,所述视频解码器被配置为对包括图像序列的比特流进行解码,所述视频解码器包括:
用于从所述比特流解码标识符的部件,所述标识符指示所述图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
用于对给定输出图片所需要的参考图片的指示进行解码的部件;
用于对针对所述给定输出图片指示的至少一幅参考图片进行解码的部件;以及
用于对至少一幅输出图片进行解码的部件。
根据第七实施例,提供了一种视频解码器,所述视频解码器被配置为对包括图像序列的比特流进行解码,其中所述视频解码器还被配置用于:
从所述比特流解码标识符,所述标识符指示所述图像序列的所有输出图片是否利用预定义的参考图片集合可解码;
对给定输出图片所需要的参考图片的指示进行解码;
对针对所述给定输出图片指示的至少一幅参考图片进行解码;以及
对至少一幅输出图片进行解码。
根据第八实施例的一种方法,包括一种用于将图像序列编码在比特流中的方法,所述方法包括:
对参考图片集合进行编码;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
根据实施例,所述方法还包括:
将图片是参考图片还是非参考图片的指示编码在一个或多个语法元素和/或语法元素值中。
根据实施例,所述方法还包括:
对所述比特流包括仅一个时间子层的指示进行编码,其中时间子层非参考图片被认为是非参考图片,并且所有其他图片被认为是参考图片。
根据实施例,所述方法还包括:
对所述比特流包括两个或更多个时间子层的指示进行编码,其中具有等于0的TemporalId的所有图片被认为是参考图片,并且具有大于 0的TemporalId的所有图片被认为是非参考图片。
根据实施例,所述方法还包括:
将指示参考图片和非参考图片的元数据编码在用于所述比特流的容器文件中。
根据实施例,所述方法还包括:
对指示输出图片和/或未被输出的图片的指示进行编码,所述指示为以下中的一项:
-HEVC的pic_output_flag,
-用于指示要被显示的图片的SEI消息,
-用于指示要被显示的图片的容器文件格式元数据指示。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中所述输出图片利用样本分组机制来指示,使得图像的序列或集合使用ISOMBFF的轨道结构来存储。
根据实施例,所述方法还包括:
对图片的集合中的所有帧间编码的图片仅使用帧内图片作为参考图片的指示进行编码。
根据实施例,所述方法还包括:
对所有的所述帧间编码的图片使用仅一幅参考图片的指示进行编码。
根据实施例,所述方法还包括:
对关于零个或更多个解码顺序的指示进行编码,所述零个或更多个解码顺序与容器文件格式中或一个或多个SEI消息中的比特流顺序不相同。
根据实施例,所述容器文件格式是ISO基本媒体文件格式 (ISOBMFF),其中块偏移框数据结构和块框数据结构的样本被用于将以任何顺序驻存在媒体数据框数据结构内或外部文件中的样本与所述解码顺序关联。
根据实施例,所述方法还包括:
对关于零个或更多个显示顺序的指示进行编码,所述零个或更多个显示顺序与在所述比特流内指定的或被指示为容器文件格式中或一个或多个SEI消息中的默认顺序的输出顺序不相同。
根据第九实施例的一种装置包括:
至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码当由所述至少一个处理器运行时,使得装置至少执行:
将参考图片集合编码在比特流中;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
根据第十实施例,提供了一种计算机可读存储介质,在其上存储有用于由装置使用的代码,所述代码当由处理器运行时,使得所述装置执行:
将参考图片集合编码在比特流中;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。
根据第十一实施例的一种装置,包括:
视频编码器,所述视频编码器被配置为将图像序列编码在比特流中,其中所述视频编码器包括:
用于对参考图片集合进行编码的部件;
用于将所述参考图片集合存储在初始参考图片缓冲器中的部件;
用于在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码的部件;以及
用于将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中的部件。
根据第十二实施例,提供了一种视频编码器,所述视频编码器被配置用于将图像序列编码在比特流中,其中所述视频编码器还被配置用于:
对参考图片集合进行编码;
将所述参考图片集合存储在初始参考图片缓冲器中;
在不改变所述初始参考图片缓冲器的内容的情况下对输出图片集进行编码;以及
将指示所述图像序列中的所有输出图片是使用所述参考图片集合可解码的指示编码在所述比特流中。