CN106416250B - 视频编码和解码 - Google Patents

视频编码和解码 Download PDF

Info

Publication number
CN106416250B
CN106416250B CN201480073353.2A CN201480073353A CN106416250B CN 106416250 B CN106416250 B CN 106416250B CN 201480073353 A CN201480073353 A CN 201480073353A CN 106416250 B CN106416250 B CN 106416250B
Authority
CN
China
Prior art keywords
picture
layer
pictures
poc
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480073353.2A
Other languages
English (en)
Other versions
CN106416250A (zh
Inventor
M·安尼克塞拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of CN106416250A publication Critical patent/CN106416250A/zh
Application granted granted Critical
Publication of CN106416250B publication Critical patent/CN106416250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种方法,包括:将图片编码到比特流中,比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自与至少两个可分级性层之一相关联;在比特流中指示层间预测依赖性,其表示第一可分级性层的直接参考层(如果存在)和第一可分级性层的间接参考层(如果存在);按照解码顺序选择较早图片作为基于预定义的算法用于导出针对当前图片的图片顺序计数(POC)有关的变量的基础,当前图片与当前可分级性层相关联,其中较早图片是与当前可分级性层或者当前可分级性层的任何直接参考层或间接参考层相关联的图片集合之中按照解码顺序最接近当前图片的在先图片。

Description

视频编码和解码
技术领域
本申请总体上涉及数字视频材料的编解码。特别地,本申请涉及可分级编码。
背景技术
本节旨在提供权利要求中记载的本发明的背景或上下文。本文中的描述可以包括能够寻求的概念,但是不一定是之前已经设想出或者寻求的概念。因此,除非本文中另行指示,在本节中描述的内容不是本申请中的描述和权利要求的现有技术并且也不会通过包含在本节中而被承认是现有技术。
视频编码系统可以包括编码器和解码器,编码器将输入视频变换成适合于存储/传输的经压缩的表示,解码器能够将经压缩的视频表示解压回可观看的形式。编码器可以丢弃原始视频序列中的一些信息以便以更紧凑的形式来表示视频,例如以使得能够以比可能需要的比特率更低的比特率来存储/传输视频信息。
发明内容
一些实施例提供了一种用于对视频信息进行编码和解码的方法。在一些实施例中,提供了用于视频编码的方法、装置和计算机程序产品。
具体实施方式中提供了本发明的示例的各个方面。
根据第一方面,提供了一种方法,包括:
-将图片编码到比特流中,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据实施例,较早图片被要求用于当前图片的解码或者较早图片被要求依据比特流一致性约束而存在于比特流中。
根据实施例,较早图片选自当前图片的层的任何直接参考层或间接参考层。
根据实施例,较早图片被选择为需要存在于比特流中的按照解码顺序的在先图片,诸如基础层IRAP图片。
根据实施例,方法还包括:
-基于被定义为POC参考图片的上述较早图片的POC有关的变量来将至少一个POC有关的语法元素编码到比特流中。
根据实施例,方法还包括:
-在用于递减已解码图片缓冲器中的图片的POC值的POC重置方法的DeltaPocVal取得中使用POC参考图片。
根据实施例,方法还包括:
-确定逐层POC方法作为包括独立层和至少一个依赖层的层树,其中层到层树的映射根据被编码到比特流中的层之间的依赖性信息而获得。
根据实施例,方法还包括:
-确定当前图片可以在预测中依赖的图片的特性,包括(一个或多个)层标识符、(一个或多个)时间子层标识符和/或图片类型;以及
-选择满足特性的按照解码顺序的在先图片作为POC参考图片。
根据实施例,NOLS图片在比特流中被指示或者根据序列级信息来推断,其中POC参考图片在不是NOLS图片的图片中选择。
根据实施例,POC参考图片在作为非CL-RAS图片的图片中选择。
根据第二方面,提供了一种装置,包括至少一个处理器和至少一个存储器,该至少一个存储器上在其上存储有代码,代码在由该至少一个处理器执行时使得装置至少执行以下操作:
-将图片编码到比特流中,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据第三方面,提供了一种在非暂态计算机可读介质上实施的计算机程序产品,包括计算机程序代码,计算机程序代码被配置成当在至少一个处理器上执行时使得装置或系统:
-将图片编码到比特流中,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据第四实施例,提供了一种包括视频编码器的装置,视频编码器被配置用于编码包括图像序列的比特流,视频编码器包括:
-用于将图片编码到比特流中的装置,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-用于选择按照解码顺序的较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关变量的基础的装置,
-其中较早图片是被要求存在于比特流中的图片。
根据第五实施例,提供了一种视频编码器,被配置用于:
-将图片编码到比特流中,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据第六方面,提供了一种方法,包括:
-从比特流解码图片,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据实施例,较早图片需要用于当前图片的解码或者较早图片被要求依据比特流一致性约束而存在于比特流中。
根据实施例,较早图片选自当前图片的层的任何直接参考层或间接参考层。
根据实施例,较早图片是需要存在于比特流中的按照解码顺序的在先图片,诸如基础层IRAP图片。
根据实施例,方法还包括:
-基于被定义为POC参考图片的上述较早图片的POC有关的变量来从比特流中解码至少一个POC有关的语法元素。
根据实施例,方法还包括:
-在用于递减已解码图片缓冲器中的图片的POC值的POC重置方法的DeltaPocVal取得中使用POC参考图片。
根据实施例,方法还包括:
-确定逐层POC方法作为包括独立层和至少一个依赖层的层树,其中层到层树的映射根据被编码到比特流中的层之间的依赖性信息而获得。
根据实施例,方法还包括:
-确定当前图片可以在预测中依赖于其的图片的特性,包括(一个或多个)层标识符、(一个或多个)时间子层标识符和/或图片类型;以及
-选择满足特性的按照解码顺序的在先图片作为POC参考图片。
根据实施例,NOLS图片在比特流中被指示或者根据序列级信息来推断,其中POC参考图片在不是NOLS图片的图片中选择。
根据实施例,POC参考图片在作为非CL-RAS图片的图片中选择。
根据第七方面,提供了一种装置,包括至少一个处理器和至少一个存储器,该至少一个存储器上在其上存储有代码,代码在由该至少一个处理器执行时使得装置至少执行以下操作的代码:
-从比特流解码图片,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据第八方面,提供了一种在非暂态计算机可读介质上实施的计算机程序产品,包括计算机程序代码,计算机程序代码被配置成当在至少一个处理器上执行时使得装置或系统:
-从比特流解码图片,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
根据第九方面,提供了一种包括视频解码器的装置,视频解码器被配置用于解码包括图像序列的比特流,视频解码器包括:
-用于从比特流中解码图片的装置,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-用于选择按照解码顺序的较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础的装置,
-其中较早图片是被要求存在于比特流中的图片。
根据第十方面,提供了一种视频解码器,被配置用于:
-从比特流中解码图片,比特流包括与访问单元相关联的至少两个可分级性层和图片;
-选择按照解码顺序的较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,
-其中较早图片是被要求存在于比特流中的图片。
附图说明
为了更完整地理解本发明的示例实施例,现在结合附图对下面的描述进行参考,在附图中:
图1示出了根据实施例的视频编码系统的框图;
图2示出了根据实施例的用于视频编码的装置;
图3示出了包括多个装置的用于视频编码的布置;
图4示出了可分级视频编码的示例;
图5示出了POC重置方法的示例;
图6示出了逐层POC方法的示例;
图7a示出了逐层POC方法的示例,其中指出了逐层德尔塔POC值;
图7b示出了逐层POC方法的示例,其中指出了逐层POC LSB值;
图8示出了其中POC重置方法变得对图片丢失脆弱的示例。
图9示出了其中由于层向下切换而产生逐层POC故障的示例;
图10示出了根据实施例的编码方法的流程图;
图11示出了根据实施例的解码方法的流程图;
图12示出了根据实施例的层树POC信令和取得的示例;
图13示出了根据实施例的层树POC方法中的丢失恢复的示例;
图14示出了根据实施例的驻留在增强层图片的不同访问单元中的POC参考图片的示例;
图15示出了根据实施例的其中cross_layer_bla_flag等于1的逐层IDR图片重置POC值的示例;
图16示出了根据实施例的其中独立层的层树POC取得和POC驻留在不同访问单元中的示例;
图17示出了根据实施例的层树POC取得的示例;
图18示出了根据实施例的使用层树POC方法的层向下切换的示例;
图19示出了根据实施例的使用层树POC方法的逐层启动过程的示例;
图20示出了根据实施例的自适应分辨率变化比特流的示例;以及
图21示出了根据实施例的自适应分辨率变化比特流的另一示例。
具体实施方式
下面,将在一个视频编码布置的上下文中描述本发明的若干实施例。然而,应当注意,本发明不限于这一特定布置。实际上,不同实施例在其中需要可分级(scalable)和/或多视图视频编码的改进的任何环境中具有广泛的应用。例如,本发明可以适用于视频编码系统,如流送系统、DVD播放器、数字电视接收器、个人视频记录仪、个人计算机、手持式计算机和通信设备上的系统和计算机程序以及网络元件(诸如其中处理视频数据的代码转换器和云计算布置)。
图1示出了根据示例实施例的视频编码系统的方框图作为示例性装置或电子设备50的示意性框图,该示例性装置或电子设备50可以包含根据本发明的实施例的编解码器。图2示出了根据示例实施例的装置的布局。接着将解释图1和2的元件。
电子设备50例如可以是无线通信系统的移动终端或用户设备。然而,应当理解,本发明的实施例可以被实施在可以要求编码或解码或对视频图像进行编码和解码的任何电子设备或装置内。
装置50可以包括用于包含和保护设备的壳体30。装置50还可以包括形式为液晶显示器的显示器32。在本发明的其他实施例中,显示器可以是适合于显示图像或视频的任意适当的显示技术。装置50还可以包括小键盘34。在本发明的其他实施例中,可以采用任意适当的数据或用户接口机构。例如,用户接口可以被实施为作为触敏显示器的一部分的虚拟键盘或者数据输入系统。装置可以包括麦克风36或者可以为数字或模拟信号输入的任意适当的音频输入。装置50还可以包括音频输出设备,音频输出设备在本发明的实施例中可以是以下中的一个:耳机38、扬声器或者模拟音频或数字音频输出连接。装置50还可以包括电池40(或在本发明的其他实施例中,设备可以由诸如太阳能电池、燃料电池或时钟机构发生器的任何适当的移动能量设备来供电)。装置还可以包括能够记录或捕获图像和/或视频的相机42。在一些实施例中,装置50还可以包括用于到其他设备的短程视线通信的红外端口。在其他实施例中,装置50还可以包括任何适当的短程通信解决方案,诸如举例而言蓝牙无线连接或USB/火线有线连接。
装置50可以包括控制器56或用于控制装置50的处理器。控制器56可以连接到存储器58,存储器58在本发明的实施例中可以存储以图像数据和音频数据的形式的两种数据和/或还可以存储用于实施在控制器56上的指令。控制器56还可以连接到编解码器电路54,编解码器电路54适合于执行对音频和/或视频数据的编码和解码或辅助由控制器执行的编码和解码。
装置50还可以包括读卡器48和智能卡46,例如用于提供用户信息并且适合于提供用于在网络处对用户的认证和授权的认证信息的UICC和UICC阅读器。
装置50可以包括无线电接口电路52,无线电接口电路52连接到控制器并且适合于生成例如用于与蜂窝通信网络、无线通信系统或无线局域网的通信的无线通信信号。装置50还可以包括天线44,天线44连接到无线电接口电路52以用于向其他装置传输在无线电接口电路52处生成的射频信号并且用于从其他装置接收射频信号。
在本发明的一些实施例中,装置50包括能够记录或检测单个帧的相机,这些帧之后被传递到编解码器54或控制器以用于处理。在本发明的一些实施例中,装置可以在传输和/或存储视频图像数据之前从另一设备接收该视频图像数据以用于处理。在本发明的一些实施例中,装置50可以无线地或者通过有线连接接收图像以用于编码/解码。
图3示出了根据示例实施例的包括多个装置、网络和网络元件的用于视频编码的布置。参考图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还可以位于交通工具中,包括但不限于汽车、卡车、出租车、公共汽车、火车、轮船、飞机、自行车、摩托车或者任何类似的合适的交通工具。
一些或另外的装置可以通过到基站24的无线连接25发送和接收呼叫和消息并与服务提供商通信。基站24可以连接到网络服务器26,网络服务器26允许移动电话网络11与互联网28之间的通信。系统可以包括另外的通信设备以及各种类型的通信设备。通信设备可以使用各种传输技术来通信,包括但不限于码分多址(CDMA)、全球移动通信系统(GSM)、通用移动电信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议-互联网协议(TCP-IP)、短消息服务(SMS)、多媒体消息服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11以及任何类似的无线通信技术。在实施本发明的各种实施例中涉及的通信设备可以使用各种介质来通信,包括但不限于无线电、红外、激光、线缆连接以及任何适当的连接。
H.264/AVC标准由国际电信联盟电信标准化部(ITU-T)的视频编码专家组(VCEG)的以及国际标准化组织(ISO)/国际电工技术委员会(IEC)的运动图片专家组(MPEG)的联合视频组(JVT)开发。H.264/AVC标准由两个母标准化组织公布,并且它被称为ITU-T推荐H.264和ISO/IEC国际标准14496-10,也称为MPEG-4部分10高级视频编码(AVC)。H.264/AVC标准已经有多个版本,每个版本向规范集成新扩展或特征。这些扩展包括可分级视频编码(SVC)和多视图视频编码(MVC)。
VCEG和MPEG的视频编码联合校准组(JCT-VC)开发了H.265/HEVC标准。H.265/HEVC标准将由两个母标准化组织来发布,并且称为ITU-T推荐H.265和ISO/IEC国际标准23008-2,也称为MPEG-H部分2高效视频编码(HEVC)。当前有正在进行的标准化项目以开发H.265/HEVC的扩展,包括可分级扩展、多视图扩展、三维扩展和保真度范围扩展。
可以实施用于质量可分级性(也称为信噪比或SNR)和/或空间可分级性的可分级视频编解码器。对于基础层,可以使用常规的非可分级视频编码器和解码器。基础层的重构/解码图片被包括在用于增强层的参考图片缓冲器中。在H.264/AVC、HEVC和类似的使用参考图片列表用于帧间预测(inter prediction)的编码器中,基础层解码图片可以与增强层的解码参考图片相似地被插入到用于对增强层图片进行编码/解码的参考图片列表中。因此,编码器可以选择基础层参考图片作为帧间预测参考并且指示它与在编码比特流中的参考图片索引来一起使用。解码器从比特流(例如从参考图片索引)解码出基础层图片用作用于增强层的帧间预测参考。在解码基础层图片用作用于增强层的预测参考时,其称为层间参考图片。
当前研究和开发用于提供三维(3D)视频内容的各种技术。特别地,主要研究各种多视图应用,其中查看者从特定视角能够仅看到一对立体视频并且从不同的视角仅能够看到另一对立体视频。已经证明用于这样的多视图应用的最可行的方法之一是:其中仅有限数目的视图(例如单声道或立体视图加上一些补充数据)被提供给解码器侧并且所有所需要的视图然后被解码器本地渲染(及合成)以在显示器上显示。
本节描述H.264/AVC和HEVC的一些关键定义、比特流和编码结构以及概念,作为其中可以实现实施例的视频编码器、解码器、编码方法、解码方法和比特流结构的示例。H.264/AVC的一些关键定义、比特流和编码结构以及概念与HEVC中一样——因此,下面对其进行联合描述。本发明的各个方面不限于H.264/AVC或HEVC,描述被给出用于一个可能的基础,基于该基础能够部分或完全认识本发明。
在描述H.264/AVC和HEVC时以及在示例实施例中,可以使用例如H.264/AVC或HEVC中规定的用于算法运算符、逻辑运算符、关系运算符、按位运算符、赋值运算符和范围符号的通用符号。另外,可以使用例如H.264/AVC或HEVC中规定的通用数学函数,并且可以使用例如H.264/AVC或HEVC中规定的通用顺序或优先级以及运算符的执行顺序(从左到右或从右到左)。
在描述H.264/AVC和HEVC时以及在示例实施例中,可以使用以下描述来规定每个语法元素的解析过程。
-b(8):具有位串的任何图案的字节(8比特)。
-se(v):左位在先的有符号整数指数哥伦布码编码(Exp-Golomb-coded)的语法元素。
-u(n):使用n个比特的无符号整数。当n是语法表格中的“v”时,比特的数目以取决于其他语法元素的值的方式变化。这一描述符的解析过程由从被解释为无符号整数的二进制表示的比特流开始的接下来n个比特来规定,其中首先写入最高有效位。
-ue(v):左位在先的无符号整数Exp-Golomb编码的语法元素。
可以例如使用下表将Exp-Golomb位串转换成代码编号(codeNum):
位串 codeNum
1 0
0 1 0 1
0 1 1 2
0 0 1 0 0 3
0 0 1 0 1 4
0 0 1 1 0 5
0 0 1 1 1 6
0 0 0 1 0 0 0 7
0 0 0 1 0 0 1 8
0 0 0 1 0 1 0 9
可以例如使用下表将对应于Exp-Golomb位串的码数转换成se(v):
codeNum 语法元素值
0 0
1 1
2 -1
3 2
4 -2
5 3
6 -3
在描述H.264/AVC和HEVC时以及在示例实施例中,可以如下来规定语法结构、语法元素的语义以及解码过程。比特流中的语法元素用粗体类型表示。每个语法元素用其名称(全部小写字母具有下划线特性)、可选地其一个或两个语法类别以及用于其已编码表示的方法的一个或两个描述符来描述。解码过程根据语法元素的值以及先前已解码语法元素的值来进行。当在语法表或文本中使用语法元素的值时,用小写字母和大写字母的混合来命名并且没有任何下划线字符。导出具有大写字母的变量,用于当前语法结构和所有依赖性语法结构的解码。以大写字母开始的变量可以用在之后的语法结构的解码过程中而没有提及变量的起源语法结构。以小写字母开始的变量仅用在其中导出它们的上下文内。在一些情况下,语法元素值或变量值的“助记符”名称与其数值可互换地使用。有时,使用“助记符”名称而不用任何相关联的数值。文本中规定了值与名称的关联关系。名称由以下划线字符分离的一组或多组字母来构造。每组以大写字母开始并且可以包含更多大写字母。
在描述H.264/AVC和HEVC时以及在示例实施例中,可以使用以下方式来规定语法结构。波形括号中包括的一组语句是复合语句并且在功能上被视为单个语句。“while”结构规定条件是否为真的测试,并且如果为真,则重复地规定语句(或者复合语句)的赋值直到条件不再为真。“do…while”结构规定语句的以此赋值,之后是条件是否为真的测试,并且如果为真,则规定语句的重复赋值直到条件不再为真。“if…else”结构规定条件是否为真的测试,并且如果条件为真,则规定主语句的赋值,否则规定替选语句的赋值。这一结构的“else”部分以及相关联的替选语句在不需要替选语句求值的情况下被省略。“for”结构规定初始语句的赋值,之后是条件的测试,并且如果条件为真,则规定主语句的重复赋值,之后是随后的语句,直到条件不再为真。
在现有标准的描述中以及在示例实施例的描述中,可以使用短语“通过(by)外部手段”或“通过(through)外部手段”。例如,实体、诸如解码过程中使用的变量的语法结构或值可以“通过解码过程的外部手段”来提供。短语“通过外部手段”可以表示实体没有被包括在由编码器产生的比特流中,而是例如使用控制协议从比特流在外部传达。替选地或者另外地,其可以表示,实体没有由编码器产生,但是可以例如在使用解码器的层或解码控制逻辑等中来产生。解码器可以具有用于输入外部手段、诸如变量值的接口。
类似于很多早先的视频编码标准,H.264/AVC和HEVC中规定了比特流语法和语义以及用于无误差比特流的解码过程。没有规定编码过程,但是编码器必须生成一致的比特流。比特流和已解码一致性可以通过假设参考解码器损失来验证,但是工具在编码时的使用是可选的,并且没有规定错误比特流的解码过程。
分别用于到H.264/AVC或HEVC编码器的输入以及H.264/AVC或HEVC解码器的输出的基础单元是图片。图片可以是帧或场。帧包括亮度样本以及对应色度样本的矩阵。当源信号交织时,场是帧的交替的样本行的集合,并且可以用作编码器输入。色度图片在于亮度图片相比较时可以被子采样。例如,在4:2:0采样图案中,在沿着两个坐标轴上,色度图片的空间分辨率是亮度图片的空间分辨率的一半。
在H.264/AVC中,宏块为16x16的亮度样本块和对应的色度样本块。例如,在4:2:0采样图案中,宏块每个色度分量包含一个8x8的色度样本块。在H.264/AVC中,图片被分割成一个或多个切片(slice)组,并且切片组包含一个或多个切片。在H.264/AVC中,切片包括在特定切片组内在光栅扫描中连续排序的整数个宏块。
在HEVC中,视频图标分为覆盖图片的区域的编码单元(CU)。CU包括针对CU内的样本定义预测过程的一个或多个预测单元(PU)以及针对CU中的样本定义预测误差编码过程的一个或多个变换单元(TU)。通常,CU包括具有从可能的CU大小的预定义集合中可选择的尺寸的样本的正方形块。具有最大许可大小的CU通常称为CTU(编码树单元),并且视频图片分为非交叠CTU。例如通过递归地划分CTU以及所得到的CU,还可以将CTU划分为更小的CU的组合。每个所得到的CU通常具有至少一个PU和至少一个与其相关联的TU。每个PU和TU还可以划分成更小的PU和TU,以便分别增加预测和预测误差解码过程的粒度。PU划分可以通过按照对称或非对称方式垂直地或者水平地将CU划分成4个相等大小的正方形PU或者将CU划分成2个矩形PU来实现。图学分为CU、CU分为PU和TU通常在比特流中被信号传输,以使得解码器能够再现这些单元的与其结构。
在HEVC中,可以在用瓦片(tile)来分割图片,瓦片是矩形并且包含整数个CTU。在HEVC中,分割成瓦片形成了规则的网格,其中瓦片的高度和宽度彼此不同并且最大相差一个CTU。
在HEVC中,切片定义为相同的访问单元内一个独立性的切片分段以及再下一独立性切片分段(如果存在)之前的全部随后的依赖性切片分段(如果存在)中所包含的整数个编码树单元。在HEVC中,切片分段定义为瓦片扫描中连续排序的并且在单个NAL单元中包含的整数个编码树单元。每个图片分为切片分段是分割。在HEVC中,独立性切片分段定义为其切片分段首部的语法元素的值没有从在先切片分段的值来推断的切片分段,并且依赖性切片分段定义为其切片分段首部的某些语法元素的值从按照解码顺序在先的独立性切片分段的值来推断的切片分段。在HEVC中,切片首部被定义为作为当前切片分段或者在当前依赖性切片分段前面的独立性切片分段的独立性切片分段的切片分段首部,并且切片分段首部被定义为包含从属于切片分段中表示的第一或全部编码树单元的数据元素的已编码切片分段的部分。如果没有使用瓦片,则CU按照瓦片内或图片内的LCU的光栅扫描顺序被扫描。在LCU内,CU具有特定的扫描顺序。
在HEVC的工作草案(WD)5中,如下定义了用于图片分割的一些关键定义和概念。分割被定义为集合分为子集使得集合的每个元素正好为子集之一。
HEVC WD5中的基本编码单元是树块。树块是具有三个样本阵列的图片的NxN的亮度样本块以及两个对应的色度样本块,或者是单色图片或使用三个单独的颜色平面编码的图片的NxN的样本块。可以针对不同的编码和解码过程来分割树块。对于具有三个样本阵列的图片,树块分割是由于树块的分割而产生的亮度样本块以及两个对应的色度样本块,对于单色图片或使用三个单独的颜色平面编码的图片,树块分割是由于树块的分割而产生的亮度样本块。每个树块被分配分割信令以识别用于帧内(intra prediction)或帧间预测的块尺寸以及用于变换编码的块尺寸。分割为递归四叉树分割。四叉树的根与树块相关联。四叉树被划分直到到达叶子,叶子也称为编码节点。编码节点是两个树——预测树和变换树——的根节点。预测树规定预测块的位置和大小。预测树和相关联的预测数据被称为预测单元。变换树规定变换块的位置和大小。变换树和相关联的变换数据被称为变换单元。针对亮度和色度的划分信息对于预测树而言相同,而对于变换树而言可以相同或可以不同。编码节点以及相关联的预测单元和变换单元一起形成编码单元。
在HEVC WD5中,图片分为切片和瓦片。切片可以是树块的序列,但是(在指所谓的细粒度切片时)其边界也可以在树块内在其中变换单元和预测单元一致的位置处。切片内的树块以光栅扫描顺序被编码和解码。对于基础编码图片,每个图片分为切片是分割。
在HEVC WD5中,瓦片定义为瓦片内在光栅扫描中被连续排序的在一列和一行中同时出现的整数个树块。对于基础编码图片,每个图片分为瓦片是分割。瓦片在图片内在光栅扫描中被连续排序。虽然切片包含瓦片内在光栅扫描中连续的树块,但是这些树块在图片内不一定在激光扫描中连续。切片和瓦片不需要包含相同的树块序列。瓦片可以包括被包含在多于一个切片中的树块。类似地,切片可以包括被包含在若干瓦片中的树块。
在H.264/AVC和HEVC中,跨切片边界的图片内预测可以被禁用。因此,可以认为切片是将已编码图片划分为独立可解码的部分的一种方式,并且切片因此被认为是用于传输的基础单元。在很多情况下,编码器可以在比特流中指示关闭哪些类型的跨切片边界图片内预测,并且解码器的操作例如在推断哪些预测源可用时将这一信息考虑在内。例如,如果相邻宏块或CU驻留在不同切片中,则可以认为来自相邻宏块或CU的样本不可用于帧内预测。
语法元素可以被定义为在比特流中表示的数据的元素。语法结构可以定义为以规定的顺序一起存在于比特流中的零个或多个语法元素。
分别用于H.264/AVC或HEVC编码器的输出以及H.264/AVC或HEVC解码器的输入的基础单元是网络抽象层(NAL)单元。对于通过面向分组的网络上的传输或者到结构化文件中的存储,可以将NAL单元封装成数据包或类似结构。H.264/AVC和HEVC中已经规定了用于传输或存储环境的字节流格式,其不提供组帧结构。字节流格式通过在每个NAL单元前面附接起始码来将NAL单元彼此分离。为了避免NAL单元边界的错误检测,编码器可以运行面向字节的起始码仿真预防算法,其在出现起始码的情况下向NAL单元净荷添加仿真预防字节。为了在数据包取向系统与流取向系统之间实现直接网关操作,可以总是执行起始码仿真预防而不管是否使用字节流格式。
NAL单元包括首部和净荷。在H.264/AVC中,NAL单元首部指示NAL单元的类型以及NAL单元中所包含的已编码切片是参考图片还是非参考图片的部分。H.264/AVC包括2比特nal_ref_idc语法元素,其在等于0时指示NAL单元中包含的已编码切片是非参考图片的部分,而在大于0是指示NAL单元中包含的已编码切片是参考图片的部分。SVC和MVC NAL单元的首部还可以包含与可分级性和多视图层级相关的各种指示。
在HEVC中,2字节NAL单元首部用于所有规定的NAL单元类型。NAL单元首部包含一个预留位、6比特的NAL单元类型指示、6比特的预留字段(称为nuh_layer_id)以及用于时间水平的3比特的temporal_id_plus1指示。temporal_id_plus1语法元素可以被认为是NAL单元的时间标识符,并且基于零的TemporalId变量可以如下来导出:TemporalId=temporal_id_plus1-1。TemporalId等于0对应于最低时间水平。temporal_id_plus1的值必须为非零以避免涉及NAL单元首部两字节的起始码仿真。通过排除TemporalId大于或等于所选择的值的所有VCL NAL单元并且包括所有其他VCL NAL单元产生的比特流保持一致。因此,TemporalId等于TID的图片没有使用TemporalId大于TID的任何图片作为帧间预测参考。子层或时间子层可以定义为时间可分级比特流的时间可分级层,包括TemporalId变量为特定值的VCL NAL单元以及相关联的非VCL NAL单元。在不失一般性的情况下,在一些示例实施例中,例如以如下根据nuh_layer_id的值来导出变量LayerId的:LayerId=nuh_layer_id。除非另外指出,在下面可互换地使用LayerId、nuh_layer_id和layer_id。
期望的是,NAL单元首部中的nuh_layer_id和/或类似的语法元素能够携带与可分级性层级有关的信息。例如,LayerId值可以被映射到描述不同可分级性维度的变量或语法元素的值,诸如quality_id或类似、dependency_id或类似,任何其他类型的层标识符、视图顺序索引或类似、视图标识符、NAL单元是否涉及深度或纹理的指示(即depth_flag)或类似、或者类似于在所有大于特定的标识符值的NAL单元从比特流中被移除的情况下指示有效子比特流提取的SVC的priority_id的标识符。例如,nuh_layer_id和/或类似语法元素中某数目的比特可以用于dependency_id或类似,而nuh_layer_id和/或类似语法元素中另一某数目的比特可以用于quality_id或类似。替选地,可以例如在视频参数集合、序列参数集合或另一语法结构中提供LayerId值或者类似到描述不同可分级性维度的变量或语法元素的值的映射。
NAL单元可以分类成视频编码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元通常是编码切片NAL单元。在H.264/AVC中,编码切片NAL单元包含表示一个或多个编码宏块的语法元素,每个编码宏块对应于未压缩图片中的样本的块。在HEVC中,编码切片NAL单元包含表示一个或多个CU的语法元素。
在H.264/AVC中,编码切片NAL单元可以被指示为即时解码刷新(IDR)图片中的编码切片或者非IDR图片中的编码切片。
在HEVC中,可以将编码切片NAL单元指示为以下类型之一:
Figure BDA0001050573970000191
Figure BDA0001050573970000201
在HEVC草案标准中,图片类型的缩写可以如下定义:后置(TRAIL)图片、时间子层访问(TSA)、步进时间子层访问(STSA)、随机访问可解码前置(RADL)图片、随机访问跳跃前置(RASL)图片、中断链路访问(BLA)图片、即时解码刷新(IDR)图片、纯随机访问(CRA)图片。
也或者替选地可以称为帧内随机访问点(IRAP)图片的随机访问点(RAP)图片是其中每个切片或切片分段的nal_unit_type在16到23的范围内(包含)的图片。RAP图片仅包含帧内编码切片,并且可以是BLA图片、CRA图片或IDR图片。比特流中的第一图片是RAP图片。假设必要的参数集合在它们需要被激活时可用,则RAP图片以及按照解码顺序在后的所有的非RASL图片可以被正确地解码而不执行以解码顺序在RAP图片前面的任何图片的解码过程。比特流中可以存在仅包含不是RAP图片的帧内编码切片的图片。
在HEVC中,CRA图片可以是比特流中按照解码顺序的第一图片,或者在比特流中可以稍后出现。HEVC中的CRA图片实现了所谓的前置图片(leading pictures),前置图片按照解码顺序在CRA图片之后但是按照输出顺序在CRA图片之前。前置图片中的一些——所谓的RASL图片——可以使用在CRA图片之前解码的图片作为参考。如果在CRA图片出执行随机访问,则按照解码顺序和输出顺序都在CRA图片之后的图片可解码,并且因此类似于IDR图片的纯随机访问功能实现了纯随机访问。
CRA图片可以具有相关联的RADL或RASL图片。当CRA图片是比特流中按照解码顺序的第一图片时,CRA图片时编码视频序列按照解码顺序的第一图片,并且任何相关联的RASL图片没有被解码器输出并且不可以可解码,因为它们可以包含对不存在于比特流中的图片的参考。
前置图片时按照输出顺序在相关联的RAP图片之前的图片。相关联的RAP图片时按照解码顺序的在先RAP图片(如果存在)。前置图片可以是RADL图片或RASL图片。
所有的RASL图片时相关联的BLA或CRA图片的前置图片。当相关联的RAP图片是BLA图片或者是比特流中的第一已解码图片时,不输出RASL图片并且其可能不可正确地解码,因为RASL图片可以包含对没有存在于比特流中的图片的参考。然而,如果解码已经从在RASL图片的相关联的RAP图片前面的RAP图片开始,则可以正确地解码RASL图片。RASL图片没有用作用于非RASL图片的解码过程的参考图片。如果存在,则所有的RASL图片按照解码顺序在相同的相关联的RAP图片的所有后置图片之前。在HEVC标准的一些草案中,RASL图片称为标记以丢弃(TFD)图片。
所有的RADL图片是前置图片。RADL图片不用作用于相同的相关联的RAP图片的后置图片的解码过程的参考图片。如果存在,则所有的RADL图片按照解码顺序在相同的相关联的RAP图片的所有后置图片前面。RADL图片不参考按照解码顺序在相关联的RAP图片前面的任何图片,并且因此在解码开始于相关联的RAP图片时可以被正确地解码。在HEVC标准的一些草案中,RADL图片称为可解码前置图片(DLP)。
可解码前置图片可以是那些在解码开始于CRA图片时能够被正确解码的图片。换言之,可解码前置图片仅使用初始CRA图片或按照解码顺序随后的图片作为帧间预测中的参考。非可解码前置图片是那些在解码开始于CRA图片时不能够被正确解码的图片。换言之,非可解码前置图片使用按照解码顺序在初始CRA图片前面的图片作为帧间预测中的参考。
可以出现也可以称为切片的已编码视频数据的连结,例如,已编码视频序列连结成被广播或流送或者存储在海量存储器中的比特流。例如,可以将表示商业或广告的已编码视频序列与电影或其他“主要”内容连结。切片比特流可以定义为在第一比特流之后添加的比特流,并且第一比特流和切片比特流的连结形成新的比特流。如果切片比特流仅包含一个已编码视频序列,则其可以称为切片已编码视频序列。类似地,切片比特流的第一已编码视频序列可以称为切片已编码视频序列。执行比特流的连结的实体可以称为切片器。
当从CRA图片开始的比特流的部分被包括在另一比特流中时,与CRA图片相关联的RASL图片可能不可正确地解码,因为其参考图片中的一些可能未存在于组合比特流中。为了使得这样的拼接操作直接,可以改变CRA图片的NAL单元类型以表示其是BLA图片。与BLA图片相关联的RASL图片可能不可正确地解码,因此不被输出/显示。另外,与BLA图片相关联的RASL图片可以从解码中省去。
BLA图片可以是比特流中按照解码顺序的第一图片,或者可以出现在比特流中的后部。每个BLA图片开始新的编码视频序列,并且对解码过程具有与IDR图片类似的影响。然而,BLA图片包含规定非空参考图片集的语法元素。当BLA图片的nal_unit_type等于BLA_W_LP时,其可以具有相关联的RASL图片,这些图片没有被解码器输出并且可能不可解码,因为它们可能包含对没有存在于比特流中的图片的参考。当BLA图片的nal_unit_type等于BLA_W_LP时,其还可以具有相关联的RADL图片,这些图片被规定为要解码。当BLA图片的nal_unit_type等于BLA_W_DLP时,其没有相关联的RASL图片,但是可以具有相关联的RADL图片,这些图片被规定为要解码。BLA_W_DLP也可以称为BLA_W_RADL。当BLA图片的nal_unit_type等于BLA_N_LP时,其没有任何相关联的前置图片。
nal_unit_type等于IDR_N_LP的IDR图片没有存在于比特流中的相关联的前置图片。nal_unit_type等于IDR_W_DLP的IDR图片没有存在于比特流中的相关联的RASL图片,但是可以具有在比特流中的相关联的RADL图片。IDR_W_DLP也可以称为IDR_W_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中的任何一项中。nal_unit_type的值等于TRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12或RSV_VCL_N14的已编码图片可以被丢弃而不影响TemporalId的值相同的其他图片的可解码性。
后置图片可以定义为按照输出顺序在相关联的RAP图片之后的图片。作为后置图片的任何图片的nal_unit_type的值都不等于RADL_N、RADL_R、RASL_N或RASL_R。作为前置图片的任何图片可以被约束为按照解码顺序在与相同的RAP图片相关联的所有后置图片前面。比特流中不存在任何与nal_unit_type等于BLA_W_DLP或BLA_N_LP的BLA图片相关联的RASL图片。比特流中不存在与nal_unit_type等于BLA_N_LP的BLA图片相关联或者与nal_unit_type等于IDR_N_LP的IDR图片相关联的任何RADL图片。与CRA或BLA图片相关联的任何RASL图片可以被约束为按照输出顺序在与CRA或BLA图片相关联的任何RADL图片前面。与CRA图片相关联的任何RASL图片可以被约束为按照输出顺序在按照解码顺序在CRA图片前面的任何其他RAP图片的后面。
在HEVC中,有两种图片类型——TSA图片类型和STSA图片类型,其可以用于指示时间子层切换点。如果TemporalId最高达N的时间子层已经被解码直到TSA或STSA图片(排他性地)并且TSA或STSA图片的TemporalId等于N+1,则TSA或STSA图片实现TemporalId等于N+1的所有随后的图片(按照解码顺序)的解码。TSA图片类型可以对TSA图片本身以及相同子层中按照解码顺序在TSA图片之后的所有图片强加约束。这些图片中没有一个图片被许可使用相同的子层中按照解码顺序在TSA图片之前的任何图片的帧间预测。TSA定义还可以对更高子层中按照解码顺序在TSA图片之后的图片强加约束。这些图片中没有一个图片被许可参考按照解码顺序在TSA图片之前的图片(如果该图片属于与TSA图片相同或更高的子层)。TSA图片的TemporalId大于0。STSA类似于TSA图片,但是没有对更高子层中按照解码顺序在STSA图片之后的图片强加约束,并且因此仅实现了到STSA图片驻留在其中的子层上的向上切换。
非VCL NAL单元可以是例如以下类型之一:序列参数集合、图片参数集合、补充增强信息(SEI)NAL单元、访问单元定界符、序列NAL单元的端部、流NAL单元的端部或者填充数据NAL单元。可能需要已解码图片的重构的参数集合,而其他非VCL NAL单元中的很多对解码样本值的重构并不是必需的。
在编码视频序列中保持不变的参数可以被包括在序列参数集合(SPS)中。除了可能对于解码过程很重要的参数,序列参数集合可选地可以包含视频可用性信息(VUI),其包括对于缓冲、图片输出定时、渲染和资源预留可以很重要的参数。H.264/AVC中规定了3个NAL单元以携带序列参数集合:包含序列中的H.264/AVC VCL NAL的所有数据的序列参数集合NAL单元、包含辅助已编码图片的数据的序列参数集合扩展NAL单元、以及MVC和SVC VCLNAL单元的子集序列参数集合。图片参数集合(PPS)包含那些很有可能在若干已编码图片中不变的参数。
参数集合语法结构可以具有扩展机制,其例如可以用于包括对编码标准的扩展特定的参数。下面针对SPS提供扩展机制的示例语法:
Figure BDA0001050573970000251
编码标准或编码方案的特定版本的解码器可以忽略sps_extension_data_flag,而在编码标准或编码方案的另一版本中,可以规定扩展语法结构并且其可以出现在sps_extension_data_flag比特内。也可以针对其他类型的参数集可以规定类似的扩展机制。
在HEVC的草案中,还有第三类型的参数集,在此称为自适应参数集(APS),其包括很有可能在若干已编码切片中不变的参数。在HEVC的草案中,APS语法结构包括与基于上下文的自适应二进制算术编码(CABAC)、自适应样本偏移、自适应回路滤波和去块滤波相关的参数或语法元素。在HEVC的草案中,APS是NAL单元并且没有来自任何其他NAL单元的参考或预测而被编码。被称为aps_id语法元素的标识符被包括在APS NAL单元中,并且被包括在切片首部中并且在切片首部中使用以指代特定APS。然而,APS没有被包括在最终的H.265/HEVC标准中。
H.265/HEVC还包括另一类型的参数集合,称为视频参数集合(VPS)。视频参数集合RBSP可以包括可以被一个或多个序列参数集合RBSP引用的参数。
VPS、SPS和PPS之间的关系和层级可以如下描述。VPS在参数集合层级中并且在可分级性和/或3DV的上下文中驻留在SPS之上一个水平上。VPS可以包括对于整个编码视频序列中的跨所有(可分级性或视图)层的所有切片公共的参数。SPS包括对于整个编码视频序列中的特定(可分级性或视图)层中的所有切片公共的参数,或者可以由多个(可分级性或视图)层共享。PPS包括对于特定层表示(一个访问单元中的一个可分级性或视图层的表示)中的所有切片公共的参数,并且很有可能由多个层表示中的全部切片共享。
VPS可以提供与比特流中的层的依赖性关系有关的信息以及适用于整个编码视频序列中的跨所有(可分级性或视图)层的所有切片的很多其他信息。在HEVC的可分级扩展中,VPS例如可以包括从NAL单元首部导出的LayerId值到一个或多个可分级性维度值的映射,例如对应于类似于SVC和MVC定义的层的dependency_id、quality_id、view_id、和depth_flag。VPS可以包括一个或多个层的简档和水平信息以及层表示的一个或多个时间子层(包括在某些TemporalId值处以及以下的VCL NAL单元)的简档和/或水平。VPS还可以提供比特流中存在的最大层数。例如,语法元素vps_max_layers_minus1可以被包括在语法中,并且vps_max_layer_minus1+1可以指示比特流中存在的最大层数。比特流中的实际层数可以小于或等于vps_max_layer_minus1+1。变量MaxLayersMinus1可以被规定为等于vps_max_layers_minus1并且可以指示其VPS是有效VPS的CVS中的最大层数减去1。
下面提供旨在作为VPS的部分的VPS扩展的示例语法。所呈现的VPS扩展除其他之外还提供依赖性关系。应当理解,VPS扩展语法作为示例提供,其他类似的和/或扩展的语法结构可以等同地应用于不同示例。
Figure BDA0001050573970000271
可以如下面的段落中描述地来规定所呈现的VPS扩展的语义。
vps_extension_byte_alignment_reserved_one_bit等于1,并且用于实现下一语法元素与字节边界的对准。
scalability_mask[i]等于1指示存在对应于第i可分级性维度的dimension_id语法元素。scalability_mask[i]等于0指示不存在对应于第i可分级性维度的dimension_id语法元素。例如可以将对应于scalability_mask[i]中的i的每个值的可分级性维度规定为包括以下内容或其任何子集连同其他可分级性尺寸。
Figure BDA0001050573970000281
dimension_id_len_minus1[j]加上1规定dimension_id[i][j]语法元素的以比特为单位的长度。vps_nuh_layer_id_present_flag规定是否存在layer_id_in_nuh[i]语法。layer_id_in_nuh[i]规定第i层的VCL NAL单元中nuh_layer_id语法元素的值。如果不存在,则推断layer_id_in_nuh[i]的值等于i。layer_id_in_nuh[i]大于layer_id_in_nuh[i-1]。变量LayerIdxInVps[layer_id_in_nuh[i]]被设置为等于i。dimension_id[i][j]规定第i层的第j可分级性维度类型的标识符。如果不存在,则推断dimension_id[i][j]的值等于0。用于dimension_id[i][j]的表示的比特的数目是dimension_id_len_minus1[j]+1比特。
direct_dependency_flag[i][j]等于0规定索引为j的层不是索引为i的层的直接参考层。direct_dependency_flag[i][j]等于1规定索引为j的层可以是索引为i的层的直接参考层。当direct_dependency_flag[i][j]对于在0到vps_max_num_layers_minus1的范围内的i和j不存在时,推断其等于0。
可以如下导出变量NumDirectRefLayers[i]和RefLayerId[i][j]:
Figure BDA0001050573970000282
Figure BDA0001050573970000292
direct_dep_type_len_minus2加上2规定direct_dependency_type[i][j]语法元素的比特数目。direct_dependency_type[i][j]等于0指示可以会用样本预测并且运动预测没有用于来自用j识别的层的用i识别的层。direct_dependency_type[i][j]等于1指示可以使用运动预测并且样本预测没有用于来自用j识别的层的用i识别的层。direct_dependency_type[i][j]等于2指示样本和运动预测都可以用于来自用j识别的层的用i识别的层。
可以如下导出变量NumSamplePredRefLayers[i]、NumMotionPredRefLayers[i]、SamplePredEnabledFlag[i][j]、MotionPredEnabledFlag[i][j]、NumDirectRefLayers[i]、RefLayerId[i][j]、MotionPredRefLayerId[i][j]和SamplePredRefLayerId[i][j]:
Figure BDA0001050573970000291
Figure BDA0001050573970000301
H.264/AVC和HEVC语法实现了参数集合的很多实例,并且每个实例以唯一的标识符来识别。在H.264/AVC中,每个切片首部包括对于包含切片的图片的解码有效的图片参数集合的标识符,并且每个图片参数集合包含有效序列参数集合的标识符。因此,图片参数集和序列参数集合的传输不一定实际上与切片的传输同步。相反,在引用之前的任何时刻接收到有效序列参数集和图片参数集合即可,这通过使用与用于切片数据的协议相比更可靠的传输机制来实现了“带外”传输参数集合。例如,参数集合可以被包括作为实时传输协议(RTP)会话的会话描述中的参数。如果参数集合在带内传输,则可以对其进行重复以改善错误鲁棒性。
SEI NAL单元可以包含一个或多个SEI消息,这些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消息的过程。
AVC和HEVC标准中已经规定或提出了若干嵌套SEI消息。嵌套SEI消息的思想是在嵌套SEI消息内包含一个或多个SEI消息并且提供用于使得所包含的SEI消息与比特流的子集和/或已解码数据的子集相关联的机制。可能要求嵌套SEI消息包含不是嵌套SEI消息本身的一个或多个SEI消息。嵌套SEI消息中包含的SEI消息可以称为嵌套式SEI消息。没有包含在嵌套SEI消息中的SEI消息可以称为非嵌套式SEI消息。HEVC的可分级嵌套SEI消息使得能够识别嵌套式SEI消息应用于其的比特流子集(由于子比特流提取过程)或者层的集合。比特流子集也可以称为子比特流。
已编码图片是图片的已编码表示。H.264/AVC中的已编码图片包括图片的解码所需要的VCL NAL单元。在H.264/AVC中,已编码图片可以是基础编码图片或冗余编码图片。基础编码图片用在有效比特流的解码过程中,而冗余编码图片是应当仅在基础编码图片不能成功解码时而被解码的冗余表示。在HEVC中,没有规定冗余编码图片。
在H.264/AVC和HEVC中,访问单元包括基础编码图片和与其相关联的NAL单元。在HEVC中,访问单元定义为根据规定的分类规则彼此相关联的NAL单元的集合,这些NAL单元按照解码顺序连续并且仅包含一个已解码图片。在H.264/AVC中,访问单元内的NAL单元的呈现顺序以如下约束。可选的访问单元界定符NAL单元可以指示访问单元的开始,之后是零个或多个SEI NAL单元,接下来是基础编码图片的已编码切片。在H.264/AVC中,基础编码图片的已编码切片之后可以是零个或多个冗余编码图片的已编码切片。冗余编码图片是图片或者图片的部分的已编码表示。如果解码器由于例如传输中的损失或者物理存储介质中的错误而没有接收到基础编码图片,则可以解码冗余已编码图片。
在H.264/AVC中,访问单元还可以包括辅助编码图片,其是补充基础编码图片的图片并且可以例如用在显示过程中。辅助编码图片例如可以用作规定已解码图片中的样本的透明水平的阿尔法通道或阿尔法平面。阿尔法通道或阿尔法平面可以用在分层结构或渲染系统中,其中输出图片由在彼此之上至少部分透明的交叠的图片形成。辅助已编码图片与单色冗余已编码图片具有相同的语法和语义约束。在H.264/AVC中,辅助已编码图片包含与基础编码图片相同的数目的宏块。
在HEVC中,访问单元可以定义为根据规定的分类规则彼此相关联的NAL单元的集合,这些NAL单元按照解码顺序连续,并且包含仅一个已编码图片。除了包含已编码图片的VCL NAL单元,访问单元还可以包含非VCL NAL单元。在HEVC中,访问单元的解码产生已解码图片。
在H.264/AVC中,已编码视频序列定义为按照解码顺序从IDR访问单元(包含)到下一IDR访问单元(不包含)或者到比特流的结尾(以出现较早的为准)连续的访问单元的序列。在HEVC中,已编码视频序列定义为按照解码顺序包括作为比特流中的第一访问单元的CRA(纯随机访问)访问单元以及IDR访问单元或BLA(中断链路访问)访问单元(之后是零个或多个非IDR和非BLA访问单元,包括最高达但是不包括任何随后的IDR或BLA访问单元的所有随后的访问单元)的访问单元的序列。
图片组(GOP)及其特性可以如下定义。GOP可以被解码而不管任何在先图片是否被解码。开放式GOP是其中按照输出顺序在初始帧内图片之前的图片在解码从开放式GOP的初始帧内图片开始时不能正确可解码的图片组。换言之,开放式GOP的图片可以参考(在帧间预测中)属于在先GOP的图片。H.264/AVC解码器可以从H.264/AVC比特流中的恢复点SEI消息识别开始开放式GOP的帧内图片。HEVC解码器可以识别开始开放式GOP的帧内图片,因为特定的NAL单元类型、CDR NAL单元类型用于其已编码切片。封闭式GOP是其中全部图片在解码起始于封闭式GOP的初始帧内图片时都可以正确解码的图片组。换言之,封闭式GOP中没有任何图片参考在先GOP中的任何图片。在H.264/AVC和HEVC中,封闭式GOP从IDR访问单元开始。在HEVC中,封闭式GOP也可以从BLA W DLP或者BLA N LP图片开始。因此,封闭式GOP图片与开放式GOP图片相比具有更大的错误恢复潜力,然而是以压缩效率的可能的降低为代价。由于在参考图片的选择方面的更大灵活性,开放式GOP编码结构在压缩方面有可能更高效。
H.264/AVC和HEVC的比特流语法指示特定图片是否是用于任何其他图片的帧间预测的参考图片。在H.264/AVC和HEVC中,任何编码类型(I,P,B)的图片可以是参考图片或非参考图片。NAL单元首部指示NAL单元的类型以及NAL单元中包含的已编码切片是参考图片还是非参考图片的部分。
很多混合视频编解码器、包括H.264/AVC和HEVC分两个阶段对视频信息进行编码。在第一阶段,应用预测编码,例如作为所谓的样本预测和/或所谓的语法预测。
在样本预测中,预测某个图片区域或“块”中的像素或样本值。例如可以使用以下方式中的一个或多个方式来预测这些像素或样本值:
-运动补偿机制(其也可以称为时间预测或运动补偿时间预测或运动补偿预测或MCP),其涉及在在先已编码视频帧之一中寻找和指示紧密对应于被编码的块的区域。
-视图间预测,其涉及在在先已编码视图分量之一中寻找和指示紧密对应于被编码的块的区域。
-视图合成预测,其涉及基于已重构/已解码测距信息来合成预测块或导出预测块的图像区域。
-层间预测,其使用已重构/已解码样本,诸如所谓的IntraBL(基础层)模式SVC。
-层间残差预测,其中例如可以使用参考层的已编码残差或者来自已重构/已解码参考层图片与对应已重构/已解码增强层图片的差异的所导出的残差来预测当前增强层块的残差块。残差块例如可以被添加至运动补偿后的预测块以获得当前增强层块的最终预测块。
-帧内预测,其中可以通过涉及寻找和指示空间区域关系的空间机制来预测像素或样本值。
在也可以称为参数预测的语法预测中,根据早先解码(编码)的语法元素和/或早先导出的变量来预测语法元素和/或语法元素值和/或根据语法元素导出的变量。下面提供语法预测的非限制性示例:
-在运动矢量预测中,可以关于块特定的预测运动矢量来差分地对例如帧间和/或视图间预测的运动矢量编码。在很多视频编解码器中,按照预定义的方式来产生预测运动矢量,例如通过计算相邻块的已编码或已解码运动矢量的中间矢量。产生运动矢量预测(有时称为高级运动矢量预测(AMVP))的另一方式是根据时间参考图片中的相邻块和/或并置(co-located)的块来生成候选预测的列表并且将所选择的候选作为运动矢量预测符进行信号传输。除了预测运动矢量值,可以预测先前编码/解码的图片的参考索引。参考索引通常根据时间参考图片中的相邻块和/或并置的块来预测。运动矢量的差分编码通常跨切片边界上被停用。
-可以预测例如从CTU到CU并且直至PU的块分割。
-在滤波参数预测中,可以预测例如样本自适应偏移的滤波参数。
使用来自先前已编码图像的图像信息的预测方法也可以称为帧间预测方法,其也可以称为时间预测和运动补偿。使用相同图像内的图像信息的预测方法也可以称为帧内预测方法。
第二阶段是对像素预测的块与像素的原始块之间的误差进行编码或者对样本的预测块与样本的原始块之间的误差进行编码。这可以通过使用规定的变换来对像素或样本值的差异进行变换来实现。这一变换可以是例如离散余弦变换(DCT)或其变型。在对差异进行变换之后,对变换后的差异进行量化并且对其进行熵编码。
通过改变量化过程的保真度,编码器可以控制像素或样本表示的准确性(即图片的视觉质量)与所得到的已编码视频表示的大小(即文件大小或传输比特率)之间的平衡。
解码器通过应用类似于编码器所使用的机制的预测机制来重构输出视频以便形成像素或样本块的预测表示(使用由编码器产生并且被包括在图像的压缩表示中的运动或空间信息)以及预测误差解码(预测误差编码在空间域中恢复量化后的预测误差信号的逆操作)。
在应用像素或样本预测和误差解码过程之后,解码器将预测和预测误差信号(像素或样本值)组合以形成输出视频帧。
解码器(和编码器)还可以应用另外的滤波处理以便在传递输出视频用于显示和/或存储输出视频作为视频序列中即将到来的图片的预测参考之前改善输出视频的质量。
在很多视频编解码器(包括H.264/AVC和HEVC)中,运动信息由与每个运动压缩图像块相关联的运动矢量来指示。这些运动矢量中的每个指示要编码(在编码器中)或解码(在解码器处)的图片中的图像块以及先前已编码或已解码图像(或图片)之一中的预测源块的位移。与很多其他视频压缩标准一样,H.264/AVC和HEVC将图片分为矩形网格,对于每个矩形,参考图片之一中的类似块被指示用于帧间预测。预测块的位置被编码为指示预测块相对于被编码的块的位置的运动矢量。
H.264/AVC和HEVC包括图片顺序计数(POC)的概念。POC的值针对每个图片而导出并且按照输出顺序随着图片位置的增加而不减小。POC因此指示图片的输出顺序。POC可以用在解码过程中例如用于隐含双向预测切片的时间直接模式下的运动矢量的分级,用于隐含地得到加权预测中的权重,并且用于参考图片列表初始化。另外,POC可以用在输出顺序一致性的验证中。在H.264/AVC中,POC相对于在先IDR图片或者包含将所有图片标记为“未用于参考”的存储器管理控制操作的图片来规定。
在H.265/HEVC版本1中,在不考虑增强层的情况下,图片顺序计数编码(解码)和取得如下来执行:
相对于NoRaslOutputFlag等于1的在先IRAP图片来规定POC。对于作为按照解码顺序的比特流中的第一图片的、作为按照解码顺序在序列NAL的结尾之后的第一图片的、或者HandleCraAsBlaFlag等于1的每个IDR图片、每个BLA图片和每个CRA图片,NoRaslOutputFlag的值等于1。
对于每个图片(而非针对LSB的IDR图片),将POC值的最低有效位(LSB)中的4到16个比特编码到比特流中和/或从比特流中对其解码。为了更具体,LSB用u(v)编码的slice_pic_order_cnt_lsb语法元素来表示,其存在于切片分段首部中(对于除了IDR图片之外的其他图片类型)。
slice_pic_order_cnt_lsb语法元素的比特数由序列参数集合语法结构中的ue(v)编码的log2_max_pic_order_cnt_lsb_minus4语法元素来规定。在log2_max_pic_order_cnt_lsb_minus4中,还规定了在如下用于图片顺序计数的解码过程中使用的变量MaxPicOrderCntLsb的值:
MaxPicOrderCntLsb=2(log2_max_pic_order_cnt_lsb_minus4+4)
log2_max_pic_order_cnt_lsb_minus4的值在0到12的范围内(包括性的)。
信号传输的POC LSB用于确定当前图片的POC值小于还是大于按照解码顺序的在先图片的POC值,在先图片的TemporalId等于0并且不是RASL图片、RADL图片或子层非参考图片。这一在先图片在H.265/HEVC解码过程中称为prevTid0Pic。
取得当前图片的图片顺序计数PicOrderCntVal的解码过程如下执行:
在当前图片不是NoRaslOutputFlag等于1的IRAP图片时,变量prevPicOrderCntLsb和prevPicOrderCntMsb如下导出:
-令prevTid0Pic是TemporalId等于0并且不是RASL图片、RADL图片或子层非参考图片的按照解码顺序的在先图片。
-将变量prevPicOrderCntLsb设置为等于prevTid0Pic的slice_pic_order_cnt_lsb。
-将变量prevPicOrderCntMsb设置为等于prevTid0Pic的PicOrderCntMsb。
当前图片的变量PicOrderCntMsb如下导出:
-如果当前图片是NoRaslOutputFlag等于1的IRAP图片,则将PicOrderCntMsb设置为等于0。
-否则,PicOrderCntMsb如下导出:
Figure BDA0001050573970000371
Figure BDA0001050573970000381
PicOrderCntVal如下导出:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
以上过程具有以下影响:所有的IDR图片的PicOrderCntVal等于0,因为slice_pic_order_cnt_lsb被推断为对于IDR图片为0并且prevPicOrderCntLsb和prevPicOrderCntMsb二者都设置为等于0。
函数PicOrderCntVal(picX)如下规定:
PicOrderCnt(picX)=PicOrderCntVal of the picture picX
函数DiffPicOrderCnt(picA,picB)如下规定:
DiffPicOrderCnt(picA,picB)=PicOrderCnt(picA)-PicOrderCnt(picB)
在H.265/HEVC中,要求PicOrderCntVal的值在-231到231-1的范围内(包括性的)。在一个CVS中,要求任何两个已编码图片的PicOrderCntVal值不相同。另外,在H.265/HEVC中,要求比特流不包含产生在解码过程中使用的不在-215到215-1的范围内(包括性的)的DiffPicOrderCnt(picA,picB)的值的数据。
帧间预测过程可以使用以下因子中的一个或多个来特征化。
运动矢量表示的准确性。例如,运动矢量可以具有四分之一像素准确性,并且可以使用有限脉冲响应(FIR)滤波器来获得分数像素位置的样本值。
帧间预测的块分割。很多编码标准(包括H.264/AVC和HEVC)使得能够选择其运动矢量在编码器中应用于运动补偿预测的块的大小和形状,并且在比特流中指示所选择的大小和形状使得解码器能够再现在编码器中进行的运动补偿预测。
帧间预测的参考图片的数目。帧间预测的源是先前已解码图片。很多编码标准(包括H.264/AVC和HEVC)使得能够存储用于帧间预测的多个参考图片并且使得能够基于块来选择所使用的参考图片。例如,在H.264/AVC中可以基于宏块或宏块分割并且在HEVC中可以基于PU或CU来选择参考图片。很多编码标准(诸如H.264/AVC和HEVC)在比特流中包括使得解码器能够创建一个或多个参考图片列表的语法结构。到参考图片列表的参考图片索引可以用于指示多个参考图片中的哪个用于特定块的帧间预测。参考图片索引在某些帧间编码模式下可以被编码器编码到比特流中,或者其在某些其他帧间编码模式下可以(由编码器和解码器)使用例如相邻块来导出。
运动矢量预测。为了在比特流中高效地表示运动矢量,可以关于块特定的预测运动矢量差分编码运动矢量。在很多视频编解码器中,以预定义的方式来产生预测运动矢量,例如通过计算相邻块的已编码或已解码运动矢量的中间矢量。产生运动矢量预测(有时称为高级运动矢量预测(AMVP))的另一方式是从时间参考图片中的相邻块和/或并置的块来生成候选预测的列表并且将所选择的候选作为运动矢量预测符进行信号传输。除了预测运动矢量值,可以预测先前编码/解码的图片的参考索引。参考索引通常从时间参考图片中的相邻块和/或并置的块来预测。运动矢量的差分编码通常跨切片边界上被停用。
多假设运动补偿预测。H.264/AVC和HEVC使得能够使用P切片(本文中称为单向预测切片)中的单个预测块或者双向预测切片(其也称为B切片)的两个运动补偿预测块的线性组合。B切片中的各个块可以被双向预测、单向预测或者帧内预测,并且P切片中的各个块可以被单向预测或者帧内预测。双向预测图片的参考图片可以不限于按照输出顺序的在后的图片和在先的图片,而可以使用任何参考图片。在很多编码标准(诸如H.264/AVC和HEVC)中,针对P切片构造被称为参考图片列表0的一个参考图片列表,并且针对B切片构造2个参考图片列表——列表0和列表1。对于B切片,当前向(forward)方向上的预测可以参考来自参考图片列表0中的参考图片的预测,并且后向(backward)方向上的预测可以参考来自参考图片列表1中的参考图片的预测时,即使用于预测的参考图片可以关于彼此或者关于当前图片具有任何解码或输出顺序。
加权预测。很多编码标准使用预测权重1用于帧间(P)图片的预测块并且使用预测权重0.5用于B图片的每个预测块(得到平均)。H.264/AVC使得能够对P和B切片二者进行加权预测。在隐式加权预测中,权重与图片顺序计数(POC)成比例,而在显式加权预测中,预测权重被显式地指出。
在很多视频编解码器中,运动补偿之后的预测残差首先通过变换核(如DCT)被变换并且然后被编码。这一操作的原因在于,残差之间通常仍然存在某种关联关系并且变换在很多情况下能够帮助减小关联关系并且提供更高效的编码。
在HEVC中,每个PU具有与其相关联的预测信息,其定义要针对该PU内的像素应用哪种预测(例如,用于帧间预测PU的运动矢量信息以及用于帧内预测PU的帧内预测方向性信息)。类似地,每个TU与描述TU内的样本的预测误差解码过程的信息(包括例如DCT系数信息)相关联。可以在CU级别信号传输针对每个CU是否应用预测误差编码。如果没有与CU相关联的预测误差残差,则可以认为没有用于CU的TU。
在一些编码格式和编解码器中,在所谓的短期和长期参考图片之间做出区分。这一区分可以影响一些解码过程,诸如时间直接模式下的运动矢量分级或者隐式加权预测。如果用于时间直接模式的参考图片都是短期参考图片,则可以根据当前图片与参考图片中的每个之间的图片顺序计数差异来对预测中使用的运动矢量进行分级。然而,如果用于时间直接模式的至少一个参考图片是长期参考图片,则可以使用运动矢量的默认分级,可以使用例如将运动分级到一半。类似地,如果使用短期参考图片用于隐式加权预测,则可以根据当前图片的POC与参考图片的POC之间的POC差异来对预测权重进行分级。然而,如果使用长期参考图片用于隐式加权预测,则可以使用默认预测权重,诸如用于双向预测块的隐含加权预测的0.5。
一些视频编码格式、诸如H.264/AVC包括frame_num语法元素,其用于与多个参考图片相关的各种解码过程。在H.264/AVC中,IDR图片的frame_num为0。非IDR图片的frame_num的值等于按照解码顺序增加1的在先参考图片的frame_num(在模运算中,即frame_num的值在frame_num的最大之后绕回至0)。
用于(已解码)参考图片标记的语法结构可以存在于视频编码系统中。例如,当完成图片的解码时,已解码参考图片标记语法结构(如果存在)可以用于自适应地将图片标记为“未用于参考”或者“用于长期参考”。如果已解码参考图片标记语法结构不存在并且被标记为“用于参考”的图片的数目可以不再增加,则可以使用滑动窗口参考图片,其基本上将最早(按照解码顺序)的已解码参考图片标记为未用于参考。
H.264/AVC规定了用于已解码参考图片标记的过程以便控制解码器中的存储器消耗。被称为M的用于帧间预测的参考图片的最大数目在序列参数集合中确定。当参考图片被解码时,其被标记为“用于参考”。如果参考图片的解码引起多于M个图片被标记为“用于参考”,则至少一个图片被标记为“未用于参考”。有两种类型的用于已解码参考图片标记的操作:自适应存储器控制和滑动窗口。用于已解码参考图片标记的操作模式基于图片来选择。自适应存储器控制实现了显式地信令传输哪些图片被标记为“未用于参考”,并且还向短期参考图片指配长期索引。自适应存储器控制可以要求比特流中存在存储器管理控制操作(MMCO)参数。MMCO参数可以被包括在已解码参考图片标记语法结构中。如果使用滑动窗口操作模式并且有M个图片被标记为“用于参考”,则将作为被标记为“用于参考”的那些短期参考图片中的第一已解码图片的短期参考图片标记为“未用于参考”。换言之,滑动窗口操作模式在短期参考图片中产生先入先出缓冲操作。
H.264/AVC中的存储器管理控制操作之一引起除了当前图片的所有参考图片被标记为“未用于参考”。即时解码刷新(IDR)图片仅包含帧内编码切片并且引起参考图片的类似“重置”。
在HEVC中,使用参考图片集合(RPS)语法结构取代参考图片标记语法结构和相关的解码过程,并且取而代之出于类似目的而使用解码过程。对于图片有效或活动的参考图片包括针对图片用作参考的所有参考图片以及针对按照解码顺序的任何随后图片保持被标记为“用于参考”的所有参考图片。有参考图片集合的6个子集,其被称为RefPicSetStCurr0(又称RefPicSetStCurrBefore)、RefPicSetStCurr1(又称RefPicSetStCurrAfter)、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr和RefPicSetLtFoll。RefPicSetStFoll0和RefPicSetStFoll1也可以被认为联合形成一个子集RefPicSetStFoll。6个子集的注释如下。“Curr”指代被包括在当前图片的参考图片列表中并且因此可以用作当前图片的帧间预测参考的参考图片。“Foll”指代没有被包括在当前图片的参考图片列表中但是可以在按照解码顺序的在后图片中用作参考图片的参考图片。“St”指代短期参考图片,其通常可以通过其POC值的某个数目的最低有效位来识别。“Lt”指代长期参考图片,其具体地被识别并且通常与可以用所提及的某个数目的最低有效位表示的相比关于当前图片具有更大的POC值差异。“0”指代比当前图片具有更小的POC值的参考图片。“1”指代比当前图片具有更大POC值的参考图片。RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0和RefPicSetStFoll1统称为参考图片集合的短期子集。RefPicSetStCurr和RefPicSetStFoll统称为参考图片集合的长期子集。
在HEVC中,可以在图片参数集合中规定参考图片集合并且通过到参考图片集合的索引将其用在切片首部中。参考图片集合也可以在切片首部中规定。参考图片集合的长期子集通常仅在切片首部中规定,而相同的参考图片集合的短期子集可以在图片参数集合或切片首部中规定。参考图片集合可以独立地被编码或者可以从另一参考图片集合来预测(被称为帧间RPS预测)。当参考图片集合独立编码时,语法结构总共包括在不同类型的参考图片上迭代的3个循环——POC值比当前图片低的短期参考图片、POC值比当前图片高的短期参考图片以及长期参考图片。每个循环入口规定要被标记为“用于参考”的图片。通常,图片用差分POC值来规定。帧间RPS预测利用以下事实:可以从先前已解码图片的参考图片集合来预测当前图片的参考图片集合。这是因为当前图片的所有参考图片是在先图片的参考图片或者是先前已解码图片本身。仅需要表明这些图片中的哪些应当是参考图片以及用于当前图片的预测。在两种类型的参考图片集合编码中,针对每个参考图片另外发送指示参考图片是(被包括在*Curr列表中)否(被包括在*Foll列表中)用于当前图片的参考的标记(used_by_curr_pic_X_flag)。被包括在由当前切片使用的参考图片集合中的图片被标记为“用于参考”,而不在当前切片使用的参考图片集合中的图片被标记为“未用于参考”。如果当前图片是IDR图片,则RefPicSetStCurr0、RefPicSetStCurr1、RefPicSetStFoll0、RefPicSetStFoll1、RefPicSetLtCurr和RefPicSetLtFoll全部设置为空。
已解码图片缓冲器(DPB)可以用在编码器和/或解码器中。缓冲已解码图片的原因有两个:用于帧间预测中的参考以及用于将已解码图片重新排序为输出顺序。由于H.264/AVC和HEVC提供参考图片标记和输出重新排序的更大的灵活性,所以用于参考图片缓冲和输出图片缓冲的单独的缓冲器可能浪费存储器资源。因此,DPB可以包括用于参考图片和输出重新排序的统一的已解码图片缓冲过程。当已解码图片不再用作参考并且不需要用于输出时,可以将已解码图片从DPB移除。
在H.264/AVC和HEVC的很多编码模式中,用到参考图片列表的索引来指示帧间预测的参考图片。索引可以用CABAC或可变长度编码来被编码。通常,索引越小,对应语法元素可以变得越短。在H.264/AVC和HEVC中,针对每个双向预测(B)切片生成2个参考图片列表(参考图片列表0和参考图片列表1),并且针对每个帧间编码(P)切片形成1个参考图片列表(参考图片列表0)。另外,对于HEVC标准的草拟版本中的B切片,可以在构造最终参考图片列表(列表0和列表1)之后构造组合列表(列表C)。组合列表可以用于B切片内的单向预测(也称为单方向预测)。然而,在最终H.265/AVC标准中,没有构造组合列表。
参考图片列表、诸如参考图片列表0和参考图片列表1可以用两个步骤来构造:首先,生成初始参考图片列表。初始参考图片列表例如可以基于frame_num、POC、temporal_id或者与预测层级有关的信息(诸如GOP结构)、或者其任意组合来生成。其次,可以通过参考图片列表记录(RPLR)命令来记录初始参考图片列表,RPLR命令也称为参考图片列表修改语法结构,其可以被包含在切片首部中。RPLR命令表示被排序为相应参考图片列表的开始的图片。第二步骤也可以称为参考图片列表修改过程,并且RPLR命令可以被包括在参考图片列表修改语法结构中。如果使用参考图片集合,则参考图片列表0可以被初始化以首先包含RefPicSetStCurr0,之后是RefPicSetStCurr1、之后是RefPicSetLtCurr。参考图片列表1可以被初始化以首先包含RefPicSetStCurr1,之后是RefPicSetStCurr0。可以通过参考图片列表修改语法结构来修改初始参考图片列表,其中可以通过到列表的进入索引来识别初始参考图片列表中的图片。
由于多视图视频向编码器和解码器提供使用视图间冗余的可能性,所以可以将已解码的视图间帧也包括在参考图片列表中。
下面的段落中提供运动矢量预测方案和相关编码模式的示例。
除了差分运动矢量被编码的运动补偿宏块模式,在H.264/AVC中,P宏块也可以在所谓的P_Skip类型中被编码。对于这一编码类型,没有差分运动矢量、参考索引或量化的预测误差信号被编码到比特流中。使用P_Skip类型被编码的宏块的参考图片在参考图片列表0中的索引为0。用于重构P_Skip宏块的运动矢量使用宏块的中间运动矢量预测来获得而不需要添加任何差分运动矢量。P_Skip特别是在其中运动场平滑的区域中可以有益于压缩效率。
在H.264/AVC的B切片中,支持4种不同类型的帧间预测:来自参考图片列表0的单向预测、来自参考图片列表1的单向预测、双向预测、直接预测和B_skip。可以针对每个宏块分割单独地选择帧间预测的类型。B切片使用与P切片类似的宏块分割。对于双向预测宏块分割,预测信号由运动补偿列表0和1预测信号的加权平均来形成。可以针对单向预测和双向预测B宏块分割对参考索引、运动矢量差异以及量化的预测误差信号进行编码。
H.264/AVC中包括2个直接模式:时间直接和空间直接,并且可以选择其中之一用于切片首部中的切片,然而其使用例如在简档文件等中可以被进一步约束。在时间直接模式下,参考图片列表1的参考索引设置为0,并且参考图片列表0的参考索引设置为指向在参考图片列表1中索引为0的参考图片的并置的块(与当前块cb相比较)中使用的参考图片(如果该参考图片可用),或者被设置为0(如果该参考图片不可用)。cb的运动矢量预测符基础上通过将参考图片列表1中索引为0的参考图片的并置的块内的运动信息考虑在内来导出。时间直接块的运动矢量预测符通过分级来自并置的块的运动矢量来导出。分级与当前图片和与列表0和列表1中的推断参考索引相关联的参考图片之间的图片排序计数差异成比例,并且通过取决于其使用的参考图片列表选择运动矢量预测符的符号来实现。
在H.264/AVC的空间直接模式下,利用空间上相邻的块的运动信息。可以将空间直接模式下的运动矢量预测分为三个步骤:参考索引确定、单向或双向预测的确定以及运动矢量预测。在第一步骤中,从相邻的块A、B和C(其中A是在当前块的左侧的相邻块,B是在当前块的上方的相邻块,C是在当前块的右上方的相邻块)的参考图片列表0和参考图片列表1中的每个中选择具有最小非负参考索引的参考图片(即非帧内块)。如果相邻块A、B和C的参考图片列表0中不存在任何非负参考索引,并且相邻块A、B和C的参考图片列表1中同样不存在非负参考索引,则选择参考索引0用于两个参考图片列表。
如下来确定用于H.264/AVC空间直接模式的单向或双向预测的使用:如果在参考索引确定步骤找到用于两个参考图片列表的最小非负参考索引,则使用双向预测。如果在参考索引确定步骤中找到用于参考图片列表0或参考图片列表1中之一而非两者的最小非负参考索引,则相应地使用来自参考图片列表0或参考图片列表1的单向预测。
在用于H.264/AVC空间直接模式的运动矢量预测中,检查某些条件,诸如在第一步骤中是否得出负的参考索引,并且如果满足,则确定零运动矢量。否则,类似于P块的运动矢量预测符使用空间上相邻的块A、B和C的运动矢量导出运动矢量预测符。
H.264/AVC中的直接模式块的比特流中不存在任何运动矢量差异或参考索引,而可以对量化的预测误差信号编码并且其因此存在于比特流中。H.264/AVC中的B_skip宏块模式类似于直接模式,但是没有对预测误差信号编码并且其也没有被包括在比特流中。
H.265/AVC包括两个运动矢量预测方案,即高级运动矢量预测(AMVP)和合并模式。在AMVP或合并模式下,针对PU导出运动矢量候选的列表。有两种候选:空间候选和时间候选,其中时间候选也可以称为TMVP候选。
例如可以如下来执行候选列表的取得,然而应当理解,存在用于候选列表的取得的其他可能性。如果候选列表的占用不是最大,则在空间候选可用并且没有存在于候选列表中的情况下首先将空间候选包括在候选列表中。之后,如果候选列表的占用尚未最大,则在候选列表中包括时间候选。如果候选的数目仍然没有达到最大许可数目,则添加进组合的双向预测候选(用于B切片)和零运动矢量。在构造候选列表之后,编码器例如基于速率失真优化(RDO)决策来决定来自候选的最终运动信息并且将所选择的候选的索引编码到比特流中。同样,解码器从比特流中解码所选择的候选的索引,构造候选列表,并且使用已解码索引来从候选列表中选择运动矢量预测符。
在H.265/AVC中,AMVP和合并模式可以如下来特征化。在AMVP中,编码器指示使用单向预测还是双向预测以及使用哪些参考图片并且对运动矢量差异进行编码。在合并模式下,仅将来自候选列表的所选择的候选编码到比特流中,以指示当前预测单元与所指示的预测符具有相同的运动信息。因此,合并模式创建由共享相同的运动信息(其针对每个区域仅被信号传输一次)的相邻预测块所构成的区域。在H.265/AVC中,AMVP与合并模式之间的另一差异在于,AMVP的最大候选数目为2,而合并模式的最大候选数目为5。
高级运动矢量预测例如可以如下操作,然而高级运动矢量预测的其他类似的实现例如在不同候选位置集以及候选位置集的候选位置不同的情况下也是可能的。可以导出2个空间运动矢量预测符(MVP),并且可以导出时间运动矢量预测符(TMVP)。它们可以在以下位置之中来选择:位于当前预测块上方的3个空间运动矢量预测符候选位置(B0,B1,B2)以及在左侧的两个空间运动矢量预测符候选位置(A0,A1)。可以选择按照每个候选位置集合(B0,B1,B2)或(A0,A1)的预定义的顺序可用(例如驻留在相同的切片中,被帧间编码等)的第一运动矢量预测符以指示运动矢量竞争中的预测方向(向上或者向左)。时间运动矢量预测符的参考索引可以由编码器在切片首部中来指示(例如作为collocated_ref_idx语法索引)。可以根据时间运动矢量预测符的参考图片、并置的图片和当前图片的图片顺序计数差异的比例来对从并置的图片获得的运动矢量进行分级。另外,可以在候选之中执行冗余校验以移除相同的候选,这可以导致将零运动矢量包括在候选列表中。例如可以通过指示空间运动矢量预测符的方向(向上或者向左)或者时间运动矢量预测符候选的选择来在比特流中指示运动矢量预测符。
合并/合并模式/过程/机制例如可以如下操作,然而合并模式的其他类似的实现例如在不同候选位置集以及候选位置集的候选位置不同的情况下也是可能的,。
在合并/合并模式/过程/机制中,其中块/PU的所有运动信息被预测并且被使用而不做任何修改/校正。上述PU的运动信息可以包括以下中的一项或多项:1)关于“仅使用参考图片列表0来单向预测PU”还是“仅使用图片列表1来单向预测PU”还是“使用参考图片列表0和列表1二者来双向预测PU”的信息;2)对应于参考图片列表0的运动矢量值,其可以包括水平和垂直运动矢量分量;3)参考图片列表0中的参考图片索引和/或由对应于参考图片列表0的运动矢量指向的参考图片的标识符,其中参考图片的标识符可以是例如图片顺序计数值、层标识符值(对于层间预测)、或者一对图片顺序计数值和层标识符值;4)参考图片的参考图片标记的信息,例如关于参考图片被标记为“用于短期参考”还是“用于长期参考”的信息;5)-7)分别与2)-4)相同,但是用于参考图片列表1。
类似地,使用时间参考图片的相邻块和/或并置的块的运动信息来执行运动信息。可以通过包括与可用的相邻的/并置的块相关联的运动预测候选来构造通常称为合并列表的列表,并且列表中的所选择的运动预测候选的索引被信号传输并且所选择的候选的运动信息被复制到当前PU的运动信息。当合并机制用于整个CU并且用于CU的预测信号用作重构信号——即不处理预测残差时,对CU的这种类型的编码/解码通常称为跳跃模式或者基于合并的跳跃(skip)模式。除了跳跃模式,合并机制也可以用于各个PU(不一定是如跳跃模式中用于整个CU),并且在这种情况下,可以使用预测残差来改善预测质量。这种类型的预测模式通常称为帧间合并(inter-merge)模式。
用于AMVP的合并列表和/或候选列表或者任何类似运动矢量候选列表中的候选之一可以是TMVP候选或类似,其可以从所指示或者所推断的参考图片(诸如例如在切片首部中指示的参考图片)内的并置的块来导出。在HEVC中,根据切片首部中的collocated_from_I0_flag语法元素来选择要用于获取并置的分割的参考图片列表。当标志等于1时,其规定从列表0来导出包含并置的分割的图片,否则从列表1来导出图片。当collocated_from_10_flag不存在时,推断其等于1。切片首部中的collocated_ref_idx规定包含并置的分割的图片的参考索引。在当前切片为P切片时,collocated_ref_idx指代列表0中的图片。在当前切片为B切片时,collocated_ref_idx在collocated_from_10为1的情况下指代列表0中的图片,否则指代列表1中的图片。collocated_ref_idx总是指代有效列表入口,并且所得到的图片对于已编码图片的所有切片而言相同。当collocated_ref_idx不存在时,推断其等于0。
在HEVC中,当运动编码模式是合并模式时,合并列表中的时间运动矢量预测的所谓的目标参考索引设置为0.当使用时间运动矢量预测的HEVC中的运动编码模式是高级运动矢量预测模式时,显式地指示目标参考索引值(例如按照每个PU)。
在HEVC中,可以如下来确定候选预测运动矢量(PMV)的可用性(用于空间和时间候选二者)(SRTP=短期参考图片,LRTP=长期参考图片):
Figure BDA0001050573970000491
在HEVC中,如果已经确定目标参考索引值,则可以如下来导出时间运动矢量预测的运动矢量值:获取与当前预测单元的右下侧邻居并置的块处的运动矢量PMV。例如可以根据切片首部中的信号传输的参考索引来确定并置的块驻留于其中的图片,如以上所描述的。如果位置C0处的PMV不可用,则获取并置图片的位置C1处的运动矢量PMV。关于第一图片顺序计数差异和第二图片顺序计数差异的比例对并置的块处的所确定的可用运动矢量PMV进行分级。第一图片顺序计数差异在包含并置的块的图片与并置的块的运动矢量的参考图片之间来导出。第二图片顺序计数差异在当前图片与目标参考图片之间来导出。如果目标参考图片和并置的块的运动矢量的参考图片中的一者而非两者是长期参考图片(而另一者为短期参考图片),则可以认为TMVP候选不可用。如果目标参考图片和并置的块的运动矢量的参考图片二者均为长期参考图片,则没有基于POC的运动矢量分级可以应用。
运动参考类型或运动信息可以包括但不限于以下类型中的一个或多个:
-预测类型的指示(例如帧内预测、单向预测、双向预测)和/或参考图片的数目;
-预测方向的指示,诸如帧间(又称时间)预测、层间预测、视图间预测、视图合成预测(VSP)和分量间预测(其可以按每参考图片和/或每预测类型而指示,并且其中在一些实施例中可以将视图间预测和视图合成预测可以联合视为一个预测方向),和/或参考图片类型的指示,诸如短期参考图片和/或长期参考图片和/或层间参考图片(其可以例如按每参考图片来指示)
-到参考图片列表的参考索引和/或参考图片的任何其他标识符(其可以例如按每参考图片来指示并且其类型可以取决于预测方向和/或参考图片类型并且其可以伴随有其他相关信息,诸如参考索引应用于其的参考图片列表等);
-水平运动矢量分量(其可以例如按每预测块或者每参考索引等来指示);
-垂直运动矢量分量(其可以例如按每预测块或者每参考索引等来指示);
-一个或多个参数,诸如图片顺序计数差异和/或包含运动参数的图片或者与运动参数相关联的图片与其参考图片之间的相关相机分离,其可以用于在一个或多个运动矢量预测过程中分级水平运动矢量分量和/或垂直运动矢量分量(其中上述一个或多个参数可以例如按每个参考图片或者每个参考索引等来指示);
-运动参数和/或运动信息应用于其的块的坐标,例如以量度样本为单位的块的左上侧样本的坐标;
-运动参数和/或运动信息应用于其的块的范围(例如宽度和高度)。
通常,运动矢量预测机制(诸如以上以示例给出的那些运动矢量预测机制等)可以包括某些预定义的或者所指示的运动参数的预测或继承。
可以认为与图片相关联的运动场包括针对图片的每个已编码块产生的运动信息的集合。运动场例如可以通过块的坐标可访问。运动场例如可以用在TMVP中或者其中使用用于预测而非当前已编码(已解码)图片的源或参考的任何其他运动预测机制中。
可以应用不同的空间粒度或单元以表示和/或存储运动场。例如,可以使用空间单元的规则网格。例如,可以将图片分为某个尺寸的矩形块(可能的例外的块在图片的边缘处,诸如在右侧边缘和底部边缘上)。例如,空间单元的尺寸可以等于编码器能够在比特流中指示的不同运动的最小尺寸,诸如亮度样本单元中的4x4的块。例如,可以使用所谓的已压缩运动场,其中空间单元可以等于预定义的或者所指示的大小,诸如亮度样本单元中的16x16的块,其尺寸可以大于用于指示不同运动的最小尺寸。例如,可以用如下方式来实现HEVC编码器和/或解码器:该方式使得能够针对每个已解码运动场执行运动数据存储减小(MDSR)或运动场压缩(先于使用运动场用于图片之间的任何预测)。在HEVC实现中,MDSR可以通过将运动保持可用于已压缩运动场中的16x16的块的左上侧样本来将运动数据的粒度减小为亮度样本单元中的16x16的块。编码器可以将与已压缩运动场的空间单元相关的指示编码为例如序列级语法结构中的一个或多个语法元素和/或语法元素值,诸如视频参数集合或序列参数集合。在一些编码(解码)方法和/或设备中,可以根据运动预测的块分割(例如根据HEVC标准的预测单元)来指示和/或存储运动场。在一些编码(解码)方法和/或设备中,可以应用规则网格和块分割的组合使得分割大于预定义的或者所指示的空间单元尺寸的运动能够与这些分割相关联地被指示和/或存储,而与分割小于预定义的或者所指示的空间单元尺寸或者未与其对准的运动能够针对预定义的或者所指示的单元被指示和/或存储。
在HEVC中,已经做出若干改进使得编解码器能够更好地使用并行性,即编码和/或解码任务的并行处理,从而更可靠地使用现代多核处理器架构。虽然切片原则上可以用于并行化解码器,然而采用切片用于并行性通常产生相对较差的编码效率。已经向HEVC引入波前处理的概念以改善并行性的使用。
为了实现波前处理,编码器和/或解码器使用在先CTU行中的第二CTU的CABAC状态作为当前CTU行的初始CABAC状态。因此,可以在在先CTU的第二CTU的处理完成之后开始当前CTU行的处理。由于这一属性,可以用并行方式来处理CTU行。通常,例如可以在编码标准中预先定义哪个CTU用于传递CTU的在先行的熵编码(解码)状态,或者可以由编码器在比特流中确定和指示和/或由解码器从比特流中来解码。
HEVC中的波前处理可以在两个并行化方法——波前并行处理(WPP)和交叠的波前(OWF)——中使用。WPP使得能够产生可以并行处理而没有出现高的编码损失的图片分割。
WPP并行地处理编码树单元(CTU)的行同时保留所有的编码依赖性。在WPP中,可以在单个处理步骤中应用熵编码、预测编码以及回路内滤波,其使得WPP的实现更加直接。OWF使得能够将连续图片的执行交叠。当当前图片中的编码树单元的当前处理已经完成并且没有另外的行可用时,可以开始下一图片的处理而非等待当前图片完成。
当已经针对波前处理约束了已编码图片时或者当已经使用瓦片时,可以在比特流中将CTU行或瓦片(分别)字节对准并且可以在其之前放置开始代码。另外地,可以在比特流中(例如在切片首部中)和/或在外部(例如在包含文件中)提供进入点。进入点是到CTU行(用于波前实现的已编码图片)或瓦片的开始的字节指针或者字节计数或者类似的直接参考机制。在HEVC中,可以使用切片首部的entry_point_offset_minus1[i]来规定进入点。在HEVC文件格式(ISO/IEC 14496-15)中,子样本信息盒可以提供进入点的信息。在一些场景中,依赖性切片分段的使用可以很有用,其取代或者补充进入点。例如可以在已编码图片被约束用于波前处理时针对CTU行形成依赖性切片分段,并且因此可以使用依赖性切片分段NAL单元的开始来确定CTU行边界。
很多视频编码标准规定了比特流的缓冲模型和缓冲参数。这样的缓冲模型可以称为假设参考解码器(HRD)或视频缓冲验证器(VBV)。符合标准的比特流通过对应标准中规定的缓冲参数集合而兼容缓冲模型。用于比特流的这样的缓冲参数可以被显式地或者隐式地信号传输。“隐式地信号传输”表示例如根据简档和水平应用默认缓冲参数值。除了其他之外还使用HRD/VBV参数来对符合比特流的比特率变化强加约束。
视频编码标准使用可变比特率编码,其例如由编码器在用于压缩视频帧的帧内和帧间编码适合之间自适应地选择的灵活性引起。为了处理已压缩视频的比特率变化的波动,可以在编码器和解码器侧使用缓冲。可以将假设参考解码器(HRD)认为是规定对编码过程可以产生的符合比特流、符合NAL单元流或符合类型流中的可变性的约束的假设解码器模型。
如果比特流能够被HRD解码而没有缓冲器上溢或者在某些情况下下溢,则比特流是兼容的。如果在缓冲器满时要向缓冲器中放置更多比特,则发生缓冲器上溢。如果在要从缓冲器取回一些比特用于解码/回放时缓冲器中没有上述比特,则发生下溢。
HRD可以是编码器的部分或者在操作上连接至编码器的输出。可以使用缓冲占用和可能的其他HRD信息来控制编码过程。例如,如果HRD中的已编码数据缓冲器可能要上溢,则例如可以通过增加量化器步长来减小编码比特率。
HRD的操作可以用HRD参数来控制,诸如缓冲器大小和初始延迟。可以产生HRD参数值作为被包括或者在操作上连接至编码的HRD过程的部分。替选地,可以与编码单独地生成HRD参数,例如在HRD验证器中,HRD验证器通过所规定的HRD过程来处理输入比特流并且生成比特流符合的这样的HRD参数值。HRD验证器的另一使用是验证给定的比特流以及给定的HRD参数实际上产生符合的HRD操作和输出。
HRD一致性检查可以涉及例如以下两种类型的比特流:第一种类型的比特流(称为类型I比特流)是仅包含比特流中的所有访问单元的VCL NAL单元和滤波数据NAL单元的NAL单元流。第二类型的比特流(称为类型II比特流)除了比特流中的所有访问单元的VCL NAL单元和滤波数据NAL单元之外还包含另外的非VCL NAL单元而非滤波数据NAL单元和/或根据NAL单元流形成字节流的语法元素、诸如leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes和trailing_zero_8bits。
可以使用两种类型的HRD参数(NAL HRD参数和VCL HRD参数)。HRD参数可以通过被包括在序列参数集合语法结构中的视频可用性信息来指示。HRD参数例如可以包括缓冲器尺寸和输入比特率。
可以在比特流中(通过非VCL NAL单元)或者以例如使用信令机制通过带外方式从比特流外部(诸如被包括在例如根据会话描述协议(SDP)格式化的会话描述的媒体行(media line)中的媒体参数)来将缓冲和图片定时参数(例如被包括在VCL NAL单元中提及的序列参数集合和图片参数集合中或者在缓冲周期和图片定时SEI消息中)及时地传达给HRD。出于对HRD中的比特进行计数的目的,可以仅对比特流中实际存在的适当比特进行计数。当借助于除了比特流内的存在之外的其他手段来针对应用传达非VCL NAL单元的内容时,非VCL NAL单元的内容的表示可以或者可以不使用在比特流中存在于非VCL NAL单元的情况下所使用的相同的语法。
HRD可以包含已编码图片缓冲(CPB)、即时解码过程、已解码图片缓冲(DPB)和输出剪裁。
CPB可以基于解码单元来操作。解码单元可以是访问单元或者可以是访问单元的子集,诸如整数个NAL单元。编码器可以确定解码单元例如是瓦片或CTU行(当应用实现波前处理的编码约束时)。当解码单元是图片的子集时,可以实现编码和解码中的更低时延。解码单元的选择可以由编码器在比特流中指示。例如,解码单元SEI消息可以如下来表示解码单元:与解码单元信息SEI消息相关联的NAL单元的集合按照解码顺序包括包含解码单元信息SEI消息的SEI NAL单元以及访问单元中的所有随后的NAL单元最高达但不包括任何随后的包含解码单元信息SEI消息的SEI NAL单元。可以要求每个解码单元包括至少一个VCLNAL单元。与VCL NAL单元相关联的所有非VCL NAL单元可以被包括在包含VCL NAL单元的解码单元中。
HRD可以如下操作。可以通过假设流调度器(HSS)来递送与根据规定的到达调度流入CPB中的解码单元相关联的数据。到达调度可以由编码器来确定并且例如通过图片定时SEI消息来指示,和/或到达调度可以例如基于比特率来导出,其例如可以被指示为视频可使用性信息(其可以被包括在序列参数集合中)中的HRD参数的部分。视频可用性信息中的HRD参数可以包含很多参数集合,每个集合用于不同的比特率或者递送调度。与每个解码单元相关联的数据可以在CPB移除时刻通过即时解码过程被移除和即时解码。CPB移除时刻例如可以使用初始CPB缓冲延迟来确定,初始CPB缓冲延迟可以由编码器来确定并且通过例如缓冲周期SEI消息来指示,并且例如通过图片定时SEI消息针对每个图片指示不同的移除延迟。每个第一解码单元的初始到达时间(即第一比特的到达时间)可以确定为0。任何随后的解码单元的到达时间可以确定为等于在先解码单元的最终到达时间。每个已解码图片可以放置在DPB中。可以在DPB输出时间或者其变得不再需要用于帧间预测参考的稍后将已解码图片从DPB移除。因此,HRD的CPB的操作可以包括:解码单元初始到达的定时(当解码单元的第一比特进入CPB时)、解码单元移除的定时以及解码单元的解码,而HRD的DPB的操作可以包括图片从DPB的移除、图片输出以及当前已解码图片标记和存储。
可以如下用简化方式来描述HRD中基于AU的已编码图片缓冲的操作。假定比特以恒定的到达比特率到达CPB中(当没有使用所谓的低延迟模式时)。因此,已编码图片或访问单元与初始到达时间相关联,初始到达时间指示已编码图片或者访问单元的第一比特何时进入CPB。另外,在低延迟模式下,假定已编码图片或访问单元在已编码图片或访问单元的最后比特被插入到CPB中并且相应已解码图片因此被插入DPB中时即时被移除,从而模拟即时解码。这一时间称为已编码图片或访问单元的移除时间。已编码视频序列的第一已编码图片的移除时间通常例如通过缓冲周期补充增强信息(SEI)消息来控制。这一所谓的初始已编码图片移除延迟确保了关于用于填充CPB的恒定比特率的已编码比特率的任何变化不会引起CPB的饥饿或上溢。应当理解,CPB的操作在某种程度上比这里所描述的更复杂,例如具有低延迟操作模式以及在很多不同的恒定比特率下操作的能力。另外,在不同的标准中可以不同地规定CPB的操作。
当比特流在IRAP图片出开始时,例如由于随机地访问文件或流并且从IRAP图片开始解码或者变为广播,按照解码顺序在IRAP图片之后并且按照输出顺序在其之前可以存在先导图片(RADL和/或RASL图片)。能够丢弃或者省略在RAP图片之后的这些前置图片的解码而没有影响解码操作,因为这些前置图片对任何其他图片的解码过程没有任何影响。
HEVC的缓冲周期SEI消息支持表示初始缓冲延迟和初始缓冲延迟偏移参数的两个集合,其可以例如在IRAP图片出信号传输。一个值集合规定在比特流中存在与IRAP图片(缓冲周期SEI消息与其相关联)相关联的前置图片时所需要的初始缓冲。其他值集合规定先于通过HSS调度和/或将其输入CPB当比特流中不存在先导图片时所需要的初始缓冲。可以要求通过用于在缓冲周期SEI消息中提供的缓冲参数的两个集合的HRD来验证HRD操作。
使用DPB等来控制解码一致比特流所需要的存储器资源。缓冲已解码图片有两个原因:用于在预测中参考以及用于将已解码图片重新排序成输出顺序。由于H.264/AVC和HEVC提供参考图片标记和输出重新排序二者的灵活性的详细细节,所有用于参考图片缓冲和输出图片缓冲的单独的缓冲器浪费存储器资源。因此,DPB包括用于参考图片和输出重新排序的统一的已解码图片缓冲过程。可以在已解码图片不再用作参考并且不再需要用于输出时将已解码图片从DPB移除。
在输出裁剪中,可以根据裁剪矩形从已解码图片移除样本的行和/或列以形成输出图片。在HEVC中,定义裁剪的已解码图片为,基于在由对应已编码图片参考的SPS中所规定的一致性裁剪窗口来裁剪已解码图片的结果。如在HEVC中规定的解码过程,合规解码器需要产生在数字上相同的已裁剪已解码图片。HEVC的输出裁剪产生已裁剪已解码图片。
HRD可以用于检查比特流和解码器的一致性。
HRD的比特流一致性要求可以包括例如以下和/或类似。要求CPB不上溢(相对于例如库在视频可使用性信息的HRD参数中指示的大小)或下溢(即解码单元的移除时间不能小于该解码单元的最后比特的到达时间)。可以要求DPB中图片的数目小于或等于某个最大数目,最大数目可以例如在序列参数集合中指示。可以要求所有用作预测参考的图片存在于DPB中。可以要求用于从DPB输出连续图片的间隔不小于某个最小值。
HRD的解码器一致性要求可以包括例如以下和/或类似。可以要求声明与特定的简档和水平保持一致性的解码器成功解码所有针对解码器一致性所规定的一致性比特流(假定在VCL NAL单元中参考的所有序列参考集合和图片参考集合),以及在比特流中(通过非VCL NAL单元)或者通过外部方式向解码器及时地传达适当的缓冲周期和图片定时SEI消息。解码器可以声明的有两种类型的一致性:输出定时一致性和输出顺序一致性。
为了检查解码器的一致性,可以由假设流调度器(HSS)向HRD和被测解码器(DUT)二者递送符合声明的简档和水平的测试比特流。也可以要求HRD输出的所有图片由DUT来输出,并且对于由HRD输出的每个图片,还可以要求由DUT输出用于对应图片的所有样本的值等于由HRD输出的样本的值。
对于输出定时解码器一致性,HSS可以例如通过从视频可用性信息的HRD参数中指示的递送调度中选择的递送调度或者通过“内插”递送调度来操作。可以针对HRD和DUT二者使用相同的递送调度。对于输出定时解码器一致性,可以要求图片输出的定时(相对于第一比特的递送时间)对于HRD和DUT相同最高达固定延迟。
对于输出顺序解码器一致性,HSS可以根据来自DUT的“需求”向DUT递送比特流,表示HSS仅在DUT需要更多比特以继续进行其处理时递送比特(按照解码顺序)。HSS可以通过比特流中规定的调度之一来向HRD递送比特流使得比特率和CPB大小受到限制。可以要求图片输出的顺序对于HRD和DUT相同。
在可分级视频编码中,可以将视频信号编码到基础层以及一个或多个增强层中。增强层可以增强时间分辨率(即帧速率)、空间分辨率,或者简单地增强由另一层或者其部分所表示的视频内容的质量。每个层连同其所有依赖层是视频信号在某个空间分辨率、时间分辨率和质量水平下的一个表示。在本文档中,将可分级层连同其所有依赖层称为“可分级层表示”。可以提取对应于可分级层表示的可分级比特流的部分并且对其进行解码以产生原始信号在某个保真度下的表示。
下面,在任何类型的可分级性(包括视图可分级性和深度增强)的上下文中使用术语层。增强层是指任何类型的增强,诸如SNR、空间、多视图、深度、比特深度、色度格式和/或颜色色域增强。基础层也指代任何类型的基础操作点,诸如基础视图、SNR/空间可分级性的基础层、或者深度增强的视频编码的纹理基础视图。
可分级视频编码(解码)可以通过被称为单回路解码的概念来实现,其中仅针对最高层来重构已解码参考图片而更低层的图片可以完全不解码或者可以在使用其用于层间预测之后将其丢弃。在单回路解码中,解码器仅针对期望用于回放的可分级层(称为“期望层”或“目标层”)执行运动补偿和全图片表示,从而与多回路解码相比降低解码复杂性。除了期望层之外的所有层不需要完全解码,因为已编码图片数据的全部或部分不需要用于期望层的重构。然而,更低层(与目标层相比)可以用于层间语法或参数预测,诸如层间运动预测。另外地或者替选地,更低层可以用于层间帧内预测并且因此可能必须解码更低层的帧内编码块。另外地或者替选地,可以映射层间残差预测,其中更低层的残差信息可以用于目标层的解码并且可能需要对残差信息解码或重构。在一些编码布置中,需要单个解码回路用于大部分图片的解码,而第二解码回路可以选择性地应用以重构所谓的基础表示(即已解码基础层图片),其可能被需要作为预测参考而没有用于输出或显示。
下面描述H.264/AVC标准的SVC扩展的一些方面作为可分级视频编码标准的示例。
SVC包括支持粗粒度质量和空间可分级性(CGS)、中间粒度质量可分级性(MGS)和时间可分级性。在一些可分级视频编码方案中,可以在某个位置之后或者甚至在任意位置处截短增强层中的数据,其中每个截短位置可以包括表示增加的增强的视觉质量的另外的数据。这样的可分级性称为细粒度(间隔尺寸)可分级性(FGS)。FGS被包括在SVC标准的一些草拟版本中,但是其实际上从最终SVC标准被排除。FGS基础上在SVC标准的一些草拟版本的上下文中讨论。由不能截短的增强层提供的可分级性称为粗粒度(间隔尺寸)可分级性(CGS)。其笼统包括传统的质量(SNR)可分级性和空间可分级性。SVC标准支持所谓的中间粒度可分级性(MGS),其中质量增强图片类似于SNR可分级层图片被编码但是类似于FGS层图片用高层语法元素来表示(通过使得quality_id语法元素大于0)。
SVC使用层间预测机制,其中可以根据除了当前已重构层或下一更低层之外的层来预测某些信息。可以层间预测的信息包括帧内纹理、运动和残差数据。层间运动预测包括块编码模式的预测、首部信息等,其中来自更低层的运动可以用于更高层的预测。如果是帧内编码,则来自周围宏块或者来自更低层的并置的宏块的预测是可能的。这些预测技术没有采用来自更早的已编码访问单元的信息,并且因此被称为帧内预测技术。另外,也可以采用来自更低层的残差数据用于当前层的预测。
SVC使得能够使用单回路解码。通过使用受约束的帧内纹理预测模式来实现,从而能够将层间帧内纹理预测用于基础层的对应块位于帧内MB内的宏块(MB)。同时,基础层中的这些帧内MB使用受约束的帧内预测(例如语法元素“constrained_intra_pred_flag”等于1)。在单回路解码中,解码器仅针对期望用于回放的可分级层(称为“期望层”或“目标层”)执行运动补偿和全图片重构,从而极大地降低解码复杂性。除了期望层之外的所有其他层不需要完全解码,因为没有用于层间预测的MB的数据的全部或部分(不管是层间帧内纹理预测、层间运动预测还是层间残差预测)不需要用于期望层的重构。需要单各解码回路用于多数图片的解码,而选择性地应用第二解码回路以重构基础表示,基础表示需要作为预测参考但是没有用于输出或显示,并且仅针对所谓的关键图片(其“store_ref_base_pic_flag”等于1)被重构。
SVC草案中的可分级性结构的特征在于3个语法元素:“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”值相同的情况下,“quality_id”等于QL的图片使用“quality_id”等于QL-1的图片用于层间预测。可以将“quality_id”大于0的已编码切片编码为可截短FGS切片或非可截短MGS切片。
为了简单,将一个访问单元中“dependency_id”的值相同的所有数据单元(例如SVC上下文中的网络抽象层单元或NAL单元)称为依赖性单元或依赖性表示。在一个依赖性单元内,“quality_id”的值相同的所有数据单元称为质量单元或层表示。
也称为已解码基础图片的基础表示是由于对“quality_id”等于0并且“store_ref_base_pic_flag”设置为等于1的依赖性单元的视频编码层(VCL)NAL单元解码而导出的已解码图片。也称为已解码图片的增强表示是由于解码对于最高依赖性表示存在的所有层表示的规则的解码过程而产生的。
如早先所提及的,CGS包括空间可分级性和SNR可分级性。空间可分级性初始被设计成支持具有不同分辨率的视频的表示。对于每个时刻,在相同的访问单元中编码VCL NAL单元并且这些VCL NAL单元可以对应于不同分辨率。在解码期间,低分辨率VCL NAL单元提供可选地通过高分辨率图片的最终解码和重构来继承的运动场和残差。与旧的视频压缩标准相比,SVC的空间可分级性被一般化以使得基础层能够成为增强层的裁剪的和分级的版本。
MGS质量层用“quality_id”指示。在SVC的草拟版本中,quality_id还用于指示FGS质量层。对于每个依赖性单元(具有相同的“dependency_id”),存在“quality_id”等于0的层并且可以有其他“quality_id”大于0的层。“quality_id”大于0的这些层是MGS层,并且在SVC的草拟版本中,它们是MGS层或FGS层,这取决于切片是否被编码为可截短切片。
在基本形式的FGS增强层中,仅使用层间预测。因此,可以自由地截短FGS增强层而没有在已解码序列中引起任何误差传播。然而,基本形式的FGS遭受低压缩效率的问题。这一问题是由于仅使用低质量UTP用于帧间预测参考。因此已经提出了使用FGS增强的图片作为层间预测参考。然而,这在一些FGS数据被丢弃时可能引起编码解码失配,也称为漂移。
草拟SVC标准的一个特征在于,可以自由地丢弃或截短FGS NAL单元,并且SVC标准的特征在于,可以自由地丢弃MGS NAL单元(但是不能截短)而没有影响比特流的可解码性。如以上讨论的,当这些FGS或MGS数据在编码期间用于帧间预测参考时,数据的丢弃或截短可能导致解码器侧与编码器侧的已解码图片之间的失配。这一失配也称为漂移。
为了控制由于FGS或MGS数据的丢弃或截短而产生的漂移,SVC适用于以下情况:在某个依赖性单元中,将基础表示(通过仅解码“quality_id”等于0的CGS图片和所有依赖于的较低层数据)存储在已解码图片缓冲器中。在解码“dependency_id”值相同的随后的依赖性单元时,所有NAL单元、包括FGS或NGS NAL单元使用基础表示用于帧间预测参考。因此,由于早先的访问单元中的FGS或MGS NAL单元的丢弃或截短而产生的所有漂移在这一访问单元处被停止。对于“dependency_id”值相同的其他依赖性单元,所有的NAL单元使用已解码图片用于帧间预测参考,以实现高的编码效率。
每个NAL单元在NAL单元首部中包括语法元素“use_ref_base_pic_flag”。当这一元素的值等于1时,NAL单元的解码在帧间预测过程期间使用参考图片的基础表示。语法元素“store_ref_base_pic_flag”规定是(如果等于1)否(如果等于0)存储用于未来的图片的当前图片的基础表示用于在帧间预测时使用。
“quality_id”大于0的NAL单元不包含与参考图片列表约束和加权预测有关的语法元素,即语法元素“num_ref_active_1x_minus1”(x=0或1),不存在参考图片列表记录语法表格和加权预测语法表格。因此,MGS或FGS层必须根据需要从相同的依赖性单元的“quality_id”等于0的NAL单元继承这些语法元素。
在SVC中,参考图片列表包括仅基础表示(当“use_ref_base_pic_flag”等于1时)或者仅没有被标记为“基础表示”的已解码图片(当“use_ref_base_pic_flag”等于0时),但是这二者不同时存在。
在H.264/AVC比特流中,一个已编码视频序列中的已编码图片使用相同的序列参数集合,并且在解码过程期间的任何时刻,仅一个序列参数集合有效。在SVC中,来自不同可分级层的已编码图片可以使用不同的序列参数集合。如果使用不同的序列参数集合,则在解码过程期间的任何时刻,可以有多于一个有效序列图片参数集合。在SVC规范中,用于顶部层的序列图片参数集合被表示为有效序列图片参数集合,而其余序列图片参数集合被称为层有效序列图片参数集合。任何给定有效序列参数集合在有效序列参数集合所涉及的层中的已编码视频序列中保持不变。
如早先所指出的,MVC是H.264/AVC的扩展。H.264/AVC的定义、概念、语法结构、语义和解码过程中的很多也适用于MVC,或者具有某些一般性或约束。下面描述MVC的一些定义、概念、语法结构、语义和解码过程。
MVC中的访问单元定义为按照解码顺序连续并且仅包含由一个或多个视图分量的一个基础编码图片的NAL单元的集合。除了基础编码图片,访问单元还可以包含一个或多个冗余已编码图片、一个辅助已编码图片或者包含已编码图片的切片或切片数据分割的其他NAL单元。如果没有发生解码误差、比特流误差或者可能影响解码的其他误差,则访问单元的解码产生包括一个或多个已解码视图分量的一个已解码图片。换言之,MVC中的访问单元针对一个输出时刻包含视图的视图分量。
MVC中的视图分量称为单个访问单元中的视图的已编码表示。
视图间预测可以用在MVC中并且指的是根据相同访问单元的不同视图分量的已解码样本来对视图分量的预测。在MVC中,视图间预测类似于帧间预测来实现。例如,视图间参考图片放置在与用于帧间预测的参考图片相同的参考图片列表中,并且类似地针对视图间和帧间参考图片来编码或推测参考索引以及运动矢量。
锚定图片是其中所有切片可以仅涉及相同的访问单元内的切片的已编码图片,即可以使用视图间预测,但是没有使用帧间预测,并且按照输出顺序的所有随后的已编码图片没有使用来自按照解码顺序先于已编码图片的任何图片的帧间预测。可以使用视图间预测用于作为非基础视图的部分的IDR视图分量。MVC中的基础视图是已编码视频序列中视图顺序索引的值最大的视图。基础视图可以独立于其他视图来解码并且不使用视图间预测。基础视图可以由仅支持单视图简档(诸如H.264/AVC的基线简档或高简档)的H.264/AVC解码器来解码。
在MVC标准中,通过分别使用“视图分量”、“帧视图分量”和“场视图分量”来代替H.264/AVC标准的子过程规范中的术语“图片”、“帧”和“场”,MVC解码过程的子过程中的很多子过程使用H.264/AVC标准的相应子过程。同样,下面通常使用术语“图片”、“帧”和“场”来分别表示“视图分量”、“帧视图分量”和“场视图分量”。
在可分级多视图编码中,相同的比特流可以包含多个视图的已编码视图分量,并且可以使用质量和/或空间可分级性来对至少一些已编码视图分量编码。
很多视频编码器使用拉格朗日代价函数来求解速率失真最佳编码模式,例如期望的宏块模式和相关联的运动矢量。这种类型的代价函数使用加权因子或λ(拉姆达)来将由于有损编码方法而产生的准确或估计图像失真以及表示图像区域中的像素/样本值所需要的准确或估计信息量绑在一起。拉格朗日代价函数可以用以下等式表示:
C=D+λR
其中C是要最小化的拉格朗日代价,D是在考虑到当前模式和运动矢量的情况下的图像失真(例如,原始图像块和已编码图像块中像素/样本值之间的均方差),λ是拉格朗日系数,R是表示在解码器中重构图像块所需要的数据所需的比特的数目(包括表示候选运动矢量的数据的量)。
当前的标准化活动规定了HEVC的多视图扩展(其可以称为MV-HEVC)、HEVC的深度增强的多视图扩展(其可以称为3D-HEVC)、以及HEVC的可分级版本(其可以称为SHVC)。预想能够在所有这些规范中使用多回路解码操作。
在使用多回路编码(解码)的可分级视频编码方案中,可以在已解码图片缓冲器(DPB)中维持每个已编码(已解码)层的已解码参考图片。DPB的存储器消耗因此明显高于使用单回路编码(解码)操作的可分级视频编码方案。然而,多回路编码(解码)可以具有其他优点,诸如与单层编码相比相对较少的另外的部件。
在使用多回路解码的可分级视频编码中,可以根据已经在基础(参考)层解码的图片来预测增强层。这样的图片可以存储在基础层的DPB中并且可以标记为用于参考。在某些情况下,标记为用于参考的图片可以存储在快速存储器中,以便提供对其样本的快速随机访问,并且可以在图片需要显示之后保持存储以便用作预测的参考。这对存储器组织强加了要求。为了放宽这样的存储器要求,多回路多视图视频编码方案(诸如MVC)中的传统设计假定层间预测的受限的使用。允许来自位于相同访问单元处(换言之,表示相同的时间实体处的场景)的基础视图的已解码图片来进行用于增强的视图的层间/视图间预测,。在这样的设计中,可用于预测增强视图的参考图片的数目针对每个参考视图增加1。
已经提出,在使用多回路编码(解码)操作的可分级视频编码中,被标记为用于参考的图片不需要源自于所有层中的相同的访问单元。例如,与基础层相比,可以在增强层中维持更少数目的参考图片。在一些实施例中,可以使用也可以称为对角线层间预测或对角线预测的时间层间预测来改善这样的编码场景中的压缩效率。通常,对角线预测可以指代其中预测跨多于一个可分级性域或可分级性类型的任何预测。例如,对角线预测可以指代从不同的分量类型(例如从深度到纹理)以及从不同的时刻(例如从按照编码(解码)顺序在先的访问单元的图片到当前访问单元中的图片)发生的预测。
解码过程可以参考层标识符列表TargetDecLayerIdList来规定,层标识符列表TargetDecLayerIdList规定了层标识符值的列表,诸如nuh_layer_id值。层标识符值可以按照要解码的NAL单元的升序在TargetDecLayerIdList中。TargetDecLayerIdList可以包括意图由解码器来输出的层的层标识符以及在解码过程中输出层所依赖的所有层的层标识符。
工作进行工作以规定HEVC标准的可分级和多视图扩展。被称为MV-HEVC的HEVC的多视图扩展类似于H.264/AVC的MVC扩展。类似于MVC,在MV-HEVC中,视图间参考图片可以被包括在正被编码或解码的当前图片的参考图片列表中。被称为SHVC的HEVC的可分级扩展预计被规定为使得其使用多回路解码操作(不同于H.264/AVC的SVC扩展)。SHVC使用基于参考索引的设计,其中层间参考图片可以被包括在正被编码或解码的当前图片的一个或多个参考图片列表中(如以上描述的)。在SHVC的较早草案中,还研究另一设计,其可以称为IntraBL或TextureRL,其中使用如CU级的特定编码模式用于使用参考层图片的已解码/已重构样本值用于增强层图片的预测。SHVC开发专注于空间和粗粒度质量可分级性的开发。
MV-HEVC和SHVC都使用基于参考索引的可分级性并且因此彼此类似。MV-HEVC和SHVC的高层语法、语义和解码操作已经在很大程度上调整匹配。SHVC与MV-HEVC之间的差异在于,SHVC实现空间可分级性并且因此包括样本阵列的上采样以及运动场映射或上采样。
能够使用许多相同的语法结构、语义和解码过程用于MV-HEVC和基于参考索引的SHVC。另外,也能够使用相同的语法结构、语义和解码过程用于深度编码。下文中,使用术语HEVC的可分级多视图扩展(SMV-HEVC)来指代其中很大地使用相同的编码(解码)工具而不管可分级性类型并且其中使用在切片首部下在语法、语义或解码过程中没有变化的基于参考索引的方法的编码过程、解码过程、语法和语义。SMV-HEVC可以不限于多视图、空间和粗粒度质量可分级性,而是也可以支持其他类型的可分级性,诸如深度增强的视频。
对于增强层编码,可以在SHVC、MV-HEVC和/或SMV-HEVC中使用HEVC的相同概念和编码工具。然而,可以向SHVC、MV-HEVC和/或SMV-HEVC编解码器集成另外的层间预测工具,其在采用参考层中的已经编码的数据(包括已重构图片样本和运动参数、又称运动信息)用于对增强层高效地编码。
SHVC、MV-HEVC和SMV-HEVC中的访问单元可以定义为这样的NAL单元的集合:根据规定的分类规则彼此相关联、按照解码顺序连续并且包含与相同的输出时间相关联的所有已编码图片的VCL NAL单元及其相关联的非VCL NAL单元。
在MV-HEVC、SMV-HEVC和基于参考索引的SHVC解决方案中,块水平语法和解码过程不被改变以支持层间纹理预测。仅修改高层语法(与HEVC相比)使得来自相同的访问单元的参考层的已重构图片(根据需要被上采样)可以用作用于编码当前增强层图片的参考图片。层间参考图片以及时间参考图片被包括在参考图片列表中。信号传输的参考图片索引用于指示根据时间参考图片还是层间参考图片来预测当前预测单元(PU)。这一特征的使用可以由编码器来控制并且在比特流中指示,例如在视频参数集合、序列参数集合、图片参数和/或切片首部中。指示例如可以特定于增强层、参考层、一对增强层和参考层、特定的TemporalId值、特定的图片类型(例如IRAP图片)、特定的切片类型(例如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的当前草案(JCT-3V文档JCT3V-E1004)没有包括这样的过程。运动场映射特征的使用可以由编码器来控制并且在比特流中指示,例如在视频参数集合、序列参数集合、图片参数和/或切片首部中。指示例如可以特定于增强层、参考层、一对增强层和参考层、具体的TemporalId值、具体的图片类型(例如RAP图片)、具体的切片类型(例如P和B切片而非I切片)、具体的POC值的图片、和/或具体的访问单元。指示的范围和/或一致性连同指示本身被指示和/或可以被推断。
在空间可分级性的运动场映射过程中,基于相应参考层图片的运动场来导出上采样后的层间参考图片的运动场。可以根据参考层图片中的并置的块的对应运动参数和/或预测模式来导出上采样后的层间参考图片的每个块的运动参数(其可以包括例如水平和/或垂直运动矢量值和参考索引)和/或预测模式。用于导出上采样后的层间参考图片中的运动参数和/或预测模式的块大小可以是例如16x16。16x16的块大小与其中使用参考图片的压缩运动场的HEVC TMVP取得过程相同。
在H.265/HEVC中,sps_temporal_mvp_enabled_flag指示在HEVC基础层/视图(nuh_layer_id等于0)中是(当标志等于1时)否(当标志等于0时)使用TMVP机制。当sps_temporal_mvp_enabled_flag等于1时,slice_temporal_mvp_enabled_flag存在于切片首部中并且指示TMVP机制是否用于当前图片。
可以有HEVC的可分级性扩展的“黑盒”实现,其中基础层解码/编码使用现有的HEVC v1实现来实现而没有改变。基础层解码/编码的这样的实现仅在sps_temporal_mvp_enabled_flag等于1的情况下存储运动场。
基础层运动场可以用于以下两个目的之一或二者:基础层的图片之间的时间运动矢量预测以及层间运动预测。如果基础层运动场仅用于层间运动预测,则用于基础层运动场的存储器在访问单元的解码完成之后(或者更准确地,在可以使用基础层作为运动预测参考的访问单元内的所有层的解码完成之后)可以被去分配(de-allocate)或者用于其他目的。然而,当sps_temporal_mvp_enabled_flag用于控制基础层运动场的存储时,其不能用于指示,基础层运动场仅用于层间运动预测而没有用于基础层内的时间运动矢量预测。
在基于textureRL的SHVC解决方案中,可以在引入新的预测模式(即textureRL模式)的CU层执行层间纹理预测。使用并置的上采样的基础层块作为用于以textureRL模式编码的增强层CU的预测。对于增强层编码器的输入CU,,可以例如从帧内模式、帧间模式和textureRL模式中确定CU模式。textureRL特征的使用可以由编码器来控制并且在比特流中指示,例如在视频参数集合、序列参数集合、图片参数和/或切片首部中。指示例如可以特定于增强层、参考层、一对增强层和参考层、具体的TemporalId值、具体的图片类型(例如RAP图片)、具体的切片类型(例如P和B切片而非I切片)、具体的POC值的图片和/或具体的访问单元。指示的范围和/或一致性可以连同指示本身被指示和/或被推断。另外,textureRL可以由编码器在CU水平来选择并且可以每个CU例如使用CU水平标签(texture_rl_flag)来在比特流中指示,该标签可以例如使用上下文自适应算法编码(例如CABAC)来被熵编码。
textureRL预测的CU的其余部分可以如下编码。textureRL预测的CU的变换过程可以与帧内预测的CU相同,其中向亮度分量的大小为4x4的TU应用离散正弦变换(DST)并且向其他类型的TU应用离散余弦变换(DCT)。textureRL预测的CU的变换系数可以与帧间预测的CU相同,其中可以使用no_residue_flag来指示是否跳过整个CU的系数。
在基于textureRL的SHVC解决方案中,除了空间和时间相邻的PU,也可以使用并置的参考层块的运动参数来形成合并候选列表。基础层合并候选可以在与当前PU的中央位置并置的位置处来导出并且可以被插入在合并列表的特定位置,诸如作为合并列表中的第一候选。在空间可分级性的情况下,可以根据两个层之间的空间分辨率比率来对参考层运动矢量进行分级。可以通过并置的基础层候选来针对每个空间相邻的候选执行修剪(复制候选检查)。对于并置的基础层合并候选和空间合并候选取得,可以使用某个最大数目的合并候选;例如,可以在位于6个不同位置的候选中选择4个合并候选。可以按照与HEVC合并列表相同的方式来导出时间合并候选。当候选的数目没有到达最大合并候选数目(其可以由编码器确定或者可以在比特流中指示并且可以被赋值给变量MaxNumMergeCand)时,与HEVC合并列表构造类似地或者相同地,可以在合并列表的末尾生成和添加另外的候选,包括组合双向预测候选和零合并候选。
在一些编码和/或解码布置中,可以组合基于参考索引的可分级性和块水平可分级性方法,诸如基于textureRL的方法。例如,可以如下执行多视图视频加深度(multi-view-video-plus-depth)编码和/或解码。可以在相同视图的组成之间使用textureRL方法。例如,深度视图分量可以使用textureRL方法根据相同视图的纹理视图分量来层间预测。可以使用基于参考索引的方法用于视图间预测,并且在一些实施例中,可以仅在相同组成类型的视图分量之间应用视图间预测。
还正在规定HEVC标准的深度增强的视频编码扩展,其可以称为3D-HEVC,其中可以将纹理视图和深度视图编码成单比特流(其中一些纹理视图中可以与HEVC兼容)。换言之,HEVC解码器可以能够解码这样的比特流的纹理视图中的一些并且可以省略其余纹理视图和深度视图。
其他类型的可分级性和可分级视图编码包括:比特深度可分级性,其中每个亮度和/或色度以比增强层图片(例如10或12比特)更低的比特深度(例如8比特)对基础层图片编码;色度格式可分级性,其中增强层图片在色度方面比基础层图片(例如4:2:0格式)提供更高的保真度和/或更高的空间分辨率(例如用4:4:4色度格式编码);以及颜色色域可分级性,其中增强层图片比基础层图片具有更丰富/更宽广的颜色表示范围——例如,增强层可以具有UHDTV(ITU-R BT.2020)颜色色域,基础层可以具有ITU-ER BT.709颜色色域。另外地或者替选地,可以提供深度增强层或视图(提供距离和/或差异信息)、和/或具有阿尔法图片的层(提供透明信息)、和/或其他类型的辅助图片层作为可分级层。任何数目的这样的其他类型的可分级性例如可以通过如以上描述的基于参考索引的方法或者基于块的方法来实现。
可分级编码的另一分类基于使用相同还是不同的编码标准或技术作为基础层和增强层的基础。术语混合编解码器可分级性或标准可分级性可以用于指示其中使用一个编码标准或系统用于一些层而使用另一编码标准或系统用于某些其他层的场景。例如,基础层可以ACV编码,而一个或多个增强层可以通过HEVC扩展来编码,诸如SHVC或MV-HEVC。多于一个层可以属于第一编码标准或系统,诸如AVC或其扩展、如MVC,并且多于一个层可以是第二表面标准。层可以表示多于两个编码标准。例如,基础层可以通过AVC编码,增强层可以通过MVC编码并且表示非基础视图,并且在先的层中的一者或二者可以通过使用SHVC编码的空间或质量可分级层来增强。
在很多视频通信或传输系统、传送机制和多媒体包含文件格式中,存在与增强层单独地传输或存储基础层的机制。可以认为,层存储在单独的逻辑通道中并且通过单独的逻辑通道来传输。下面提供示例:
1.ISO基础媒体文件格式(ISOBMFF,ISO/IEC国际标准14496-12):基础层可以存储为跟踪并且每个增强层可以存储在另一跟踪中。类似地,在混合编解码器可分级性情况下,非HEVC编码的基础层可以存储为跟踪(例如样本输入类型“avc1”的跟踪),而增强层可以存储为另一跟踪,其使用所谓的跟踪参考链接至基础层跟踪。
2.实时传输协议(RTP):可以使用RTP会话复用或同步源(SSRC)复用来在逻辑上分离不同的层。
3.MPEG-2传输流(TS):每个层可以具有不同的数据包标识符(PID)值。
很多视频通信或传输系统、传送机制和多媒体包含文件格式提供使得诸如不同跟踪或会话的单独的逻辑通道的已编码数据彼此相关联的方法。例如,存在使得相同的访问单元的已编码数据关联在一起的机制。例如,可以在包含文件格式或传送机制中提供解码或输出时间,并且可以认为具有相同解码或输出时间的已编码数据形成访问单元。
一种对不同类型的预测分类的方式是:考虑预测跨哪些域或可分级性类型。这一分类可以产生以下类型的预测中的一项或多项,其有时也可以称为预测方向:
-通常根据相同的可分级性层、视图和分量类型(纹理或深度)的较早图片的例如样本值或运动矢量的时间预测。
-视图间预测(期也可以称为跨视图预测),指代通常在相同时刻或访问单元以及相同分量类型的视图分量之间进行的预测。
-层间预测,指代通常在相同时刻、相同分量类型和相同视图的层之间进行的预测。
-分量间预测,可以定义为包括从一种类型的组成图片到另一类型的组成图片预测语法元素值、样本值、在解码过程中使用的变量值等。例如,组成间预测可以包括根据深度视图分量预测纹理视图分量,反之亦然。
使用来自先前已编码图像的图像信息的预测方法也可以称为帧间预测方法。帧内预测有时可以被认为仅包括运动补偿后的时间预测,而其有时也被认为包括其中使用已重构/已解码样本块作为预测源的所有类型的预测(因此包括传统的视图间预测)。可以认为帧间预测仅包括样本预测,但是替选地可以认为其包括样本预测和语法预测二者。由于语法和演变预测,可以获得样本的像素的预测块。
如果编码器没有使用任何形式的预测误差或残差编码来对预测进行细化,诸如预测的变量值和/或预测块,则预测可以被称为继承。例如,在合并模式的HEVC中,例如没有通过编码(解码)预定矢量差异来细化预测运动信息,并且因此可以认为合并模式是运动信息继承的示例。
视频编码方案可以在图片之间使用预测方案。如所讨论的,可以在编码器中例如通过当前图片中的当前已编码块(Cb)与被选择为参考的图片中的参考块(Rb)之间的块分割和块匹配过程来执行预测。因此,可以将这样的预测的参数定义为包括例如以下中的一项或多项的运动信息(MI):Cb的空间坐标(例如Cb的左上方像素的坐标);规定被选择为参考图片的参考图片列表中的图片的参考索引refIdx等;规定参考图片中Cb和Rb的空间坐标之间的位移的运动矢量(MV);以及运动分割的大小和形状(匹配块的大小和形状)。
可以认为与图片相关联的运动场包括针对图片的每个已编码块而产生的运动信息的集合。运动场可以通过例如块的坐标可访问。运动场可以用在例如时间运动矢量预测或者其中使用用于预测的参考而非当前已解码/已编码图片的任何其他运动预测机制中。
视频编码方案可以使用时间运动矢量预测方案,诸如H.264/AVC中的时间直接模式或者H.265/HEVC的合并和AVMP模式中的时间运动矢量预测符(TMVP)。在时间运动矢量预测方案中,至少使用另一图片的运动信息的子集来导出当前图片的运动信息或运动信息预测符。时间运动矢量预测因此需要存储参考图片的运动信息。
在H.265/HEVC中,序列参数集合包括sps_temporal_mvp_enabled_flag语法元素,其指示切片首部是否包括sps_temporal_mvp_enabled标签。如果sps_temporal_mvp_enabled_flag等于0,则在已编码视频序列中没有使用时间运动矢量预测符。slice_temporal_mvp_enabled_flag规定时间运动矢量预测符是否可以用于帧间预测。当slice_temporal_mvp_enabled_flag等于1时,切片首部中存在识别用于导出时间运动矢量预测符的并置的图片的语法元素。
当使用层间参考图片的运动场来预测或导出当前图片的运动信息时,在可分级视频编码中也可以使用时间运动矢量预测。
例如当层间参考图片与当前图片具有不同的空间分辨率时,可以使用运动场映射。在空间可分级性的运动场映射过程中,基于相应参考层图片的运动场来导出上采样后的层间参考图片的运动场。运动参数(其例如可以包括水平和/或垂直运动矢量值和参考索引)和/或上采样后的层间参考图片的每个块的预测模式可以根据参考层图片中的并置的块的对应运动参数和/或预测模式来导出。
例如可以基于运动分割的最小尺寸(例如在H.264/AVC的情况下为4x4(亮度样本))来执行运动信息的存储。在另一示例中,运动信息的空间粒度例如可以在编码标准中预定义并且可以将已编码运动信息重新采样或者变换成该空间粒度。例如,在H.265/HEVC中可以针对(亮度样本的)16x16块存储运动信息。
在可分级和/或多视图视频编码、诸如SHVC或MV-HEVC中,可以将可丢弃图片定义为没有用作帧间预测的参考图片并且在按照解码顺序的随后图片的解码过程中没有用作层间参考图片的已编码图片。可丢弃图片可以用例如语法元素discardable_flag来指示,其可以被包括在例如切片分段首部中。discardable_flag等于1规定当前已编码图片是可丢弃图片。discardable_flag等于0规定已编码图片可以用作帧间预测的参考图片并且可以在按照解码顺序的随后图片的解码过程中用作层间参考图片。可以规定,如果不存在,则可以推断discardable_flag的值等于0。
在可分级和/或多视图编码、诸如SHVC和MV-HEVC中,将即使在参考层不在输出层中的情况下仍然需要解码的参考层中的图片可以称为关键图片。输出层中的图片例如可以使用关键图片作为层间预测的参考,或者参考层中的另一图片可以用作输出层中的某个图片的层间预测的参考并且关键图片可以用作该另一图片的参考。参考层中的不是关键图片的图片可以称为非关键图片。
非关键图片可以例如如下来分类或特征化:
-没有用于其他基础层(BL)非关键图片的样本预测的非关键图片与可以用于其他基础层(BL)非关键图片的样本预测的非关键图片。(如果非关键图片没有用于其他BL图片的样本预测,其在基础层不在输出层中的情况下不需要被维持在DPB中。如果非关键图片用于其他BL图片的样本预测,则在单回路解码操作中,其需要用相应的已解码EL图片来取代,这引入了漂移。)
-没有用于BL关键图片和/或其他BL非关键图片的运动预测的非关键图片与可以用于BL关键图片和/或其他BL非关键图片的运动预测的非关键图片。
-没有用于层间样本预测的非关键图片与可以用于层间样本预测的非关键图片。
-没有用于层间样本预测的非关键图片与可以用于层间样本预测的非关键图片。
编码器可以在比特流中指示图片是关键图片还是非关键图片和/或可以针对非关键图片指示以上提及的特性中的一项或多项。指示预测特性的一些详细示例如下。
在第一示例中,2比特固定长度已编码语法元素即u(2)(在此称为pic_ref_idc)被包括在图片的语法中,例如在切片分段首部语法结构中,例如通过考虑使用HEVC切片分段首部的slice_reserved[i]语法元素的某两个比特位置。pic_ref_idc的语义可以例如如下规定:
-pic_ref_idc等于3指示可丢弃图片,并且规定已解码图片没有用作帧间预测的参考图片并且在按照解码顺序的随后图片的解码过程中没有用作层间参考图片。
-pic_ref_idc等于2指示层内非参考图片,并且规定图片没有用作相同的层内按照解码顺序的随后图片的帧间预测的参考图片并且图片可以用作层间(样本或运动)预测参考。
-pic_ref_idc等于1指示非输出层跳跃(NOLS)图片,并且规定图片可以用作pic_ref_idc等于1或3的按照解码顺序的随后图片的帧间预测的参考直到pic_ref_idc等于0并且TemporalId值等于或小于当前NOLS图片的按照解码顺序的下一图片。Pic_ref_idc等于1还规定图片没有用作层间预测的参考并且没有用作pic_ref_idc等于0的任何图片的帧间预测的参考。
-pic_ref_idc等于0指示关键图片并且规定图片可以用作相同的层内按照解码顺序的随后图片的帧间预测的参考并且可以用作层间预测的参考。
可以将标记为层内非参考图片以及没用用作或者不再用作层间预测的参考图片的图片标记为“未用于参考”。
第一示例的信令或者实现NOLS图片的识别的任何类似的信令使得能够从不在输出层中的层中移除NOLS图片。可以要求移除(相同的某个层的)两个关键图片之间的(某个层的)所有可丢弃图片和NOLS图片或者不移除(相同的层)的两个关键图片之间的任何NOLS图片。NOLS图片的移除可以通过包括但不限于以下各项的实体来进行:
-移除可以由解码器或者连接至解码器的比特流预处理器来进行,其可以具有关于解码过程在其下操作的输出层集合的知识。因此,可以根据所使用的输出层集合来推断输出层并且可以移除来自没有被输出但是在已解码层中的层的NOLS图片。NOLS图片的这样的移除降低了解码复杂性和已解码图片缓冲所需要的存储器。
-移除可以由修改比特流的实体来进行,诸如媒体感知网络元件(MANE)。可以从没有作为任何规定的输出层集合中的输出层的这样的层中移除NOLS图片。实体可以修改所指示的输出层集合,例如基于接收器的属性和/或模式请求,以排除原始存在于指示中的某些输出层集合(例如在VPS中)。例如,可以移除接收器中被推断为未使用的这些输出层集合或者针对接收器的属性和/或模式请求被推断为次优的输出层集合。因此,可以增加能够从其中移除NOLS图片的层的数目。
第二示例与第一示例类似地相同,但是其规定:NOLS图片可以用于层间运动预测但是不用于层间样本预测。因此,当包含NOLS图片的层不是目标输出层时,仅需要解码NOLS图片的图片运动场,而这些NOLS图片的样本阵列不需要解码或者不需要在DPB中维持。
在第三示例中,单独地指示第一示例和第二示例二者的NOLS图片。例如,在2比特pic_ref_idc语法元素中,可以用(示例1或者示例2的)NOLS图片类型之一来代替指示层内非参考图片的值。
在第四示例中,NOLS图片如第一、第二或第三示例中类似地规定,但是NOLS图片的语义独立于TemporalId值。
可分级视频比特流的HRD可以类似于单层比特流的HRD来操作。然而,一些变化可能是需要的或者期望的,特别是对于可分级比特流的多回路解码中的DPB操作时。能够以多种方式针对可分级比特流的多回路解码规定DPB操作。在逐层的方法中,每个层可以在概念上具有其自己的DPB,其可以独立地操作,但是可以针对所有的逐层DPB联合提供一些DPB参数并且图片输出可以同时操作,使得具有相同输出时间的图片同时地输出或者按照输出顺序一致性检查将来自相同访问单元的图片挨个输出。在被称为分辨率特定的方法的另一方法中,具有相同关键属性的层共享相同的子DPB。关键属性可以包括以下中的一项或多项:图片宽度、图片高度、色度格式、比特深度、颜色格式/色域。
可以能够使用可以称为子DPB模型的相同的DPB模型来支持逐层的方法和分辨率特定的DPB方法二者。DPB分割成若干个子DPB,并且每个子DPB单独地被管理,但是可以针对所有的子DPB联合提供一些DPB参数,并且图片输出可以同时操作,使得具有相同输出时间的图片可以同时输出或者按照输出顺序一致性检查将来自相同访问单元的图片挨个输出。
编码标准可以包括子比特流提取过程,并且例如在SVC、MVC和HEVC中规定了这样的过程。子比特流提取过程涉及通常通过移除NAL单元来将比特流转换成子比特流,子比特流也可以称为比特流子集。子比特流仍然保持符合标准。例如,在HEVC中,通过排除TemporalId值大于所选择的值的所有VCL NAL单元并且包括所有其他VCL NAL单元而产生的比特流保持一致性。在HEVC中,子比特流提取过程将TemporalId和/或nuh_layer_id值的列表作为输入并且通过从比特流中移除TemporalId大于输入的TemporalId值或者nuh_layer_id值不在nuh_layer_id值的输入列表中的所有NAL单元来导出子比特流(也称为比特流子集)。
编码标准或系统可以涉及术语操作点等,其可以指示在其下解码进行操作的可分级层和/或子层,和/或可以是与包括被解码的可分级层子层子比特流相关联。下面提供操作点的一些非限制性定义。
在HEVC中,操作点定义为通过使用另一比特流、目标最高TemporalId和目标层标识符列表作为输入的子比特流提取过程的操作而从另一比特流产生的比特流。
在SHVC和MV-HEVC中,操作点定义可以包括目标输出层集合的考虑。在SHVC和MV-HEVC中,操作点可以定义为通过使用另一比特流、目标最高TemporalId和目标层标识符列表作为输入的子比特流提取过程的操作从另一比特流产生的并且与目标输出层的集合相关联的比特流。
在MVC中,操作点可以如下定义:操作点可以用表示目标时间水平的temporal_id值以及表示目标输出视图的view_id值的集合来标识。一个操作点与比特流子集相关联,比特流子集包括目标输出视图以及目标输出视图依赖于其的所有其他视图,比特流子集以tIdTarget等于temporal_id值并且viewIdTargetList包括view_id值的集合作为输入而使用子比特流提取过程来导出。多于一个操作点可以与相同的比特流子集相关联。当“对操作点解码”时,可以解码对应于操作点的比特流子集并且随后可以输出目标输出视图。
当比特流、诸如HEVC比特流在CRA或BLA图片处开始时,不能够正确地解码与CRA或BLA图片相关联的RASL图片,因为这些RSAL图片的一些参考图片尚未解码。这些RASL图片因此没有通过解码过程和/或HRD被输出。还可以能够提供影响解码过程的外部手段,诸如到解码器的接口或API,解码器通过其能够被控制成类似于开始比特流的BLA图片或CRA图片来处理CRA图片,并且因此省略相关联的RASL图片的输出。解码过程例如可以使得变量NoRaslOutputFlag与每个IRAP图片相关联并且例如如下导出变量的值:
-如果当前图片是IDR图片、BLA图片、按照解码顺序的比特流中的第一图片、或者按照解码顺序在序列NAL单元的末尾之后的第一图片,则变量NoRaslOutputFlag设置为等于1。
-否则,如果某些外部手段可用于将变量HandleCraAsBlaFlag设置为当前图片的值,则变量HandleCraAsBlaFlag设置为等于由外部手段提供的值并且变量NoRaslOutputFlag设置为等于HandleCraAsBlaFlag。
-否则,变量HandleCraAsBlaFlag设备为等于0并且变量NoRaslOutputFlag设置为等于0。
可用的媒体文件格式标准包括ISO基础媒体文件格式(ISO/IEC 14496-12,其可以简写为ISOBMFF)、MPEG-4文件格式(ISO/IEC 14496-14,也称为MP4格式)、用于NAL单元构造的视频的文件格式(ISO/IEC 14496-15)以及3GPP文件格式(3GPP TS 26.244,也称为3GP格式)。SVC和MVC文件格式规定为对AVC文件格式的修改。ISO文件格式是所有以上提及的文件格式的衍生(排除ISO文件格式本身)的基础。这些文件格式(包括ISO文件格式本身)通常称为ISO文件格式家族。
ISO基础媒体文件格式的基本构建块称为盒(box)。每个盒具有首部和净荷。盒首部指示盒的类型和以字节表示的盒的尺寸。盒可以装有其他盒,并且ISO文件格式规定在某种类型的盒中允许哪些盒类型。另外,某些盒的存在在每个文件中可以是强制性的,而其他盒的存在可以是可选的。另外地,对于一些盒类型,可以允许文件中存在多于一个盒。因此,可以认为ISO基础媒体文件格式规定了盒的层级结构。
根据ISO文件格式家族,文件包括媒体数据以及封装在单独的盒中的元数据。在示例实施例中,可以在媒体数据(mdat)盒中提供媒体数据,并且可以使用电影(moov)盒来封装元数据。在一些情况下,对于要可操作的文件,必须存在mdat盒和moov盒二者。电影(moov)盒可以包括一个或多个音轨,并且每个音轨可以驻留在一个对应音轨盒中。音轨可以是以下类型之一:媒体、提示(hint)、定时的元数据。媒体音轨是指根据媒体压缩格式(以及其成为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/IEC 14496-15规定了文件格式内部结构的聚合器和提取器,使得能够从其他音轨对NAL单元组聚或者提取NAL单元。虽然当前ISO/IEC 14496-15规定了聚合器和提取器用于AVC扩展的用途,诸如SVC和MVC,但是类似的NAL单元状结构也可以适用于HEVC扩展。聚合器和提取器使用NAL单元语法,但是它们的净荷不一定受制于起始码仿真预防。这些结构在文件格式的样本结构的上下文中被视为NAL单元。在访问样本时,聚合器必须被移除(留下其所包含的或者引用的NAL单元)并且提取器必须用它们所引用的数据来代替。聚合器和提取器必须没有存在于文件格式外的流中。
ISO/IEC 14496-15支持将多个NAL单元聚合成一个聚合器NAL单元(其NAL单元类型值从在H.264/AVC标准中未规定的值范围中取得)。聚合器NAL单元可以通过在其中包括NAL单元来聚合(在其长度所指示的大小内),以及还通过引用在其之后的NAL单元来聚合(在其中的additional_types字段所指示的区域内)。当流被AVC文件阅读器扫描时,仅所包括的NAL单元被视为在聚合器“内”。这允许例如AVC文件阅读器跳过不需要的SVC或MVC NAL单元的整个集合。SVC NAL单元指代SVC特定的NAL单元,其NAL单元类型值被AVC规范保留。MVC NAL单元指代MVC特定的NAL单元,其NAL单元类型值由AVC规范保留。类似地,如果AVCNAL单元通过引用被聚合,则AVC阅读器不跳过它们并且它们针对该阅读器保持在流中。
本段落呈现通过使用聚合器实现的另一优点。H.264/AVC、HEVC及其扩展使得能够在多个NAL单元中编码访问单元。NAL单元的数目可以变化。为了通过ISOMBFF解析器寻址(SVC的)依赖性表示、(SVC的)层表示或者(MVC的)已编码视图作为一个逻辑单元,可以使用一个或多个聚合器NAL单元。聚合器帮助以每逻辑可分级性单元组织NAL单元的数目的恒定图案中的文件格式样本(例如访问单元)。例如,如果访问单元的所有基础层NAL单元被聚合到一个聚合器,则可以认为基础层包括一个NAL单元。可分级性和/或多视图属性中的一些可以通过所谓的层级(tier)的概念用SVC和MVC文件格式来指示,层级通过ISOBMFF的样本分组机制来规定。被包括作为样本组描述条目的每个可分级组条目或多视图组条目分别文件证明SVC流或MVC流的子集。每个子集与层级相关联并且可以包含一个或多个操作点。可分级组条目或多视图组条目的数目等于到层级分配的不同NAL单元序列图案的数目。例如,一个样本组描述可以指示,文件格式样本包括属于第一层级的一个NAL单元和属于第二层级的另一NAL单元。对于包括属于第一层级的两个NAL单元(之后是属于第二层级的NAL单元)的文件格式样本,可能需要另一样本组描述条目。然而,如果使用聚合器来聚合属于第一层级的两个NAL单元,则认为它们是样本组描述条目中的一个NAL单元。因此,聚合器帮助减小规定层级所需要的信令的量。
聚合器当前支持两种形式的聚合。在第一形式中,被聚合的所有样本被包括在聚合器NAL单元本身中。第一形式的聚合称为通过包括实现的聚合。在第二形式中,通常被存储作为ISOMBFF存储格式的继续字节的所有聚合的样本通过引用来信号传输。聚合的NAL单元没有被包含在聚合器NAL单元中,但是从聚合器NAL单元内被引用。聚合器NAL单元的语法包括additional_tytes字段,其指示通过引用聚合的字节的数目。能够具有通过包括以及通过引用而聚合的单个聚合器,这通过定义聚合器的长度或大小以包括NAL单元并且通过定义非零additional_bytes值以通过引用而聚合NAL单元来实现。
HEVC使得编码器和/或其他实体(诸如拼接器)能够通过如下面描述的pic_output_flag和/或no_output_of_prior_pic_flag语法元素的值控制从解码过程和/或HRD输出的图片。
可以存在于切片分段首部中的pic_output_flag语法元素影响变量PicOutputFlag的取得。每个已解码图片与PicOutputFlag的值相关联(其可以不同于其他图片的PicOutputFlag的值)。针对不是与NoRaslOutputFlag等于1的IRAP图片相关联的RASL图片的图片,PicOutputFlag设置为1。否则,PicOutputFlag设置为等于pic_output_flag。不输出PicOutputFlag等于0的图片。输出PicOutputFlag等于1的图片,除非它们变为受NoOutputOfPriorPicsFlag的影响,如下面解释的。
针对IRAP图片在切片分段首部中存在的no_output_of_prior_pic_flag语法元素如下影响在不是比特流中的第一图片的IDR或BLA图片的解码之后在已解码图片缓冲器中的先前已解码图片的输出:在当前图片的解码之前(但是在解析当前图片的第一切片的切片首部之后)将图片从DPB移除在访问单元n(包含当前图片)中的第一解码单元的CPB移除时间之后立刻发生并且如下继续进行:
-解码当前图片的参考图片集合。
-在当前图片是没有作为图片0的、NoRaslOutputFlag等于1的IRAP图片时,应用以下有序步骤:
ο变量NoOutputOfPirorPicsFlag如下导出:
·如果当前图片是CRA图片,将NoOutputOfPirorPicsFlag设置为等于1(而不管no_output_of_prior_pic_flag的值)。
·否则,如果当前图片的宽度、高度或DPB容量不同于在先图片,则可以但不一定将NoOutputOfPirorPicsFlag设置为1或者可以将其设置为等于no_output_of_prior_pic_flag。
·否则,将NoOutputOfPirorPicsFlag设置为等于no_output_of_prior_pic_flag。
ο将针对被测解码器导出的NoOutputOfPirorPicsFlag的值应用于HRD,使得当NoOutputOfPirorPicsFlag的值等于1时,在DPB中的所有图片存储缓冲器被清空而不输出它们所包含的图片,并且将DPB充满度设置为等于0。
-当以下条件对于DPB中的任何图片k都为真时,从DPB移除DPB中的所有这样的图片k:
ο图片k标记为“未用于参考”。
ο图片k的PicOutputFlag等于0或者其DPB输出时间小于或等于当前图片n的第一解码单元(表示为解码单元m)的CPB移除时间。
-对于从DPB移除的每个图片,将DPB充满度减小1。
例如,当拼接的编码视频序列的输出与在先编码视频序列中的某个图片的输出交叠时,可以将拼接器或拼接已编码视频序列或比特流的其他实体设置为no_output_of_prior_pics_flag等于1。
可以如下规定HEVC的可分级扩展中的已编码视频序列(CVS):已编码视频序列是按照解码顺序包括IRAP访问单元的访问单元的序列,IRAP访问单元包含nuh_layer_id等于0并且NoRaslOutputFlag等于1的IRAP图片,IRAP访问单元之后是没有作为包含nuh_layer_id等于0并且NoRaslOutputFlag等于1的IRAP图片的IRAP访问单元的零个或多个访问单元,包括所有随后的访问单元最高达但是不包括作为包含nuh_layer_id等于0并且NoRaslOutputFlag等于1的IRAP图片的任何随后的访问单元。
再次参考H.265/HEVC中的POC编码和取得,已经针对H.265/HEVC可分级和/或多视图扩展做出可以影响POC取得或编码的以下设计判决:
-IRAP图片不需要对准。换言之,如果一个层具有在AU中的IRAP图片,并不要求其他层具有IRAP图片。
-访问单元不需要包含所有层中的图片(其用比特流表示)。
-比特流可以包含没有使用来自任何其他层的层间预测的独立地编码的层(而非基础层)。例如,辅助图片层可以独立于基础层。
因此,实现了以下特征或使用用例。
自适应层向上切换和向下切换是指以下过程:其中中间盒和/或解码器可以分别在任何访问单元处确定最高层不再被转发和/或解码(或者更一般地,分别确定有多少层被转发和/或解码)——这可以称为层向下切换。同样,其中中间盒和/或解码器可以确定分别开始转发和/或解码附加层(与之前转发和/或解码的最高层分别相比的次高层)——这可以称为层向上切换。
自适应分辨率变化(ARC)是指动态地改变视频序列内的分辨率,例如在视频会议使用情况下。自适应分辨率变化可以用于例如更好的网络自适应和误差恢复。为了获得改变不同内容的网络要求的更好的自适应,除了质量,可能想要能够改变时间/空间分辨率。自适应分辨率变化还可以使得能够快速开始,其中可以能够通过首先发送低分辨率帧并且然后增加分辨率来增加会话的开始时间。自适应分辨率变化还可以用在组织会议中。例如,当有人开始讲话时,可以增加他/她的对应分辨率。通过IDR帧进行这一操作可以引起质量的“尖峰(blip)”,因为IDR帧需要以相对较低的质量来编码使得延迟没有明显增加。
下面,使用可分级视频编码框架来更详细地描述自适应分辨率变化使用情况的一些细节。由于可分级视频编码固有地包括用于分辨率变化的机制,所以如图4中指示地可以高效地支持自适应分辨率变化。
在图4的示例中,切换发生在图片3(BL3)处并且解码器通过以下图片接收比特流:BL0-BL1-BL2-BL3-EL3-EL4-EL6-EL6…。图片BL0-BL3是基础层的图片,并且图片EL3-EL6…是增强层的图片。在本示例中,图片BL0-BL3以及EL4-EL6仅使用层间预测并且图片EL3使用帧内预测和层间预测中的一者或二者。
序列级信令可以用于向解码器指示比特流中是否存在分辨率变化。这例如可以通过使用标志single_layer_for_non_rap_flag来执行。single_layer_for_non_rap_flag可以用于信号传输以下信息:已编码视频序列被约束为执行自适应分辨率变化操作。single_layer_for_non_rap_flag具体地指示:除了切换图片,序列中的每个AU包含来自单个层的单个图片(其可以是或者可以不是BL图片);并且发生切换的访问单元包括来自两个层的图片,这样的访问单元中的EL图片是IRAP图片,并且层间预测可以用于EL IRAP图片。
在VPS中指示single_layer_for_non_rap_flag使得解码器能够知道除了实现分辨率变化没有使用可分级性,使得能够在会话开始时相应地分配解码器资源。
可以使用具有IRAP图片或者没有跨层对准的类似图片的可分级比特流,例如,可以在基础层更频繁地使用IRAP图片,其中它们由于例如更小的空间分辨率而可以具有更小的已编码尺寸。用于解码的逐层开始的过程或机制可以被包括在视频解码方案中。解码器因此可以在基础层包含IRAP图片时开始比特流的解码,并且在其他层包含IRAP图片时步进地开始解码其他层。换言之,随着来自另外的增强层的随后的图片在解码过程中被解码,在解码过程的逐层开始中,解码器逐渐增加已解码层的数目(其中层可以表示空间分辨率、质量水平、视图、、诸如深度的另外的分量或其组合的增强)。已解码层的数目的逐渐增加可以被感知为例如图片质量的逐渐改进(在质量和空间可分级性的情况下)。
逐层开始机制可以生成不可用于特定增强层中的按照解码顺序的第一图片的参考图片的图片。替选地,解码器可以省略对在从其开始层的解码的IRAP图片之前的图片的解码。可以省略的这些图片可以在比特流内由编码器或者的其他实体来具体地标记。例如,可以针对它们使用一个或多个特定的NAL单元类型。这些图片可以称为跨层随机访问跳跃(CL-RAS)图片。
当该增强层的所有参考图片类似地通过参考层中的IRAP图片被初始化时,逐层开始机制可以从该增强层中的IRAP图片开始增强层图片的输出。换言之,可以不从解码器输出和/或可以不显示按照输出顺序在这样的IRAP图片之前的任何图片(在相同的层内)。在一些情况下,可以输出与这样的IRAP图片相关联的可解码的前置图片,而可以不输出在这样的IRAP图片之前的其他图片。
可能发生已编码视频数据的连结(其也可以称为拼接),例如已编码视频序列被连结成被广播或流送或存储在海量存储器中的比特流。例如,表示商业或广告的已编码视频序列可以与电影或其他“主要”内容连结。
可分级视频比特流可以包含没有跨层对准的IRAP图片。然而,可以很方便地实现在其第一访问单元中的基础层中而非所有层中包含IRAP图片的已编码视频序列的连结。在第一已编码视频序列之后拼接的第二已编码视频序列应当触发逐层解码开始过程。这是因为,上述第二已编码视频序列的第一访问单元没有包含其所有层中的IRAP图片,因此该访问单元中的非IRAP图片的一些参考图片可能不可用(在连结的比特流中)并且因此不能被解码。连结已编码视频序列的实体(下文中称为拼接器)因此应当修改第二已编码视频序列的第一访问单元使得其触发解码器中的逐层开始过程。
比特流语法中可以存在用以指示逐层开始过程的触发的指示。这些指示可以由编码器或拼接器生成并且可以由解码器来遵守。这些指示可以仅用于特定的图片类型或NAL单元类型,诸如仅用于IDR图片,而在其他实施例中,这些指示可以用于任何图片类型。在不失一般性的情况下,下面提及被称为cross_layer_bla_flag的指示,其被认为被包括在切片分段首部中。应当理解,可以另外地或者替选地使用具有任何其他名称或者被包括在任何其他语法结构中的类似指示。
独立于触发逐层开始过程的指示,某些NAL单元类型和/或图片类型可以触发逐层开始过程。例如,基础层BLA图片可以触发逐层开始过程。
可以在以下情况中的一种或多种情况下发起逐层开始机制:
-在比特流的开始处。
-在已编码视频序列的开始处,在具体控制时,例如在解码过程响应于例如收听广播或寻找文件或比特流中的位置而被开始或者重新开始时。解码过程可以输入可以由外部装置(例如视频播放器或类似)控制的变量,例如被称为NoClrasOutputFla。
-基础层BLA图片。
-cross_layer_bla_flag等于1的基础层IDR图片。(或者cross_layer_bla_flag等于1的基础层IRAP图片。)
跨层随机访问跳跃(CL-RAS)图片可以具有以下属性:当逐层开始过程被调用时(例如当NoClrasOutputFlag等于1时),CL-RAS图片没有被输出并且不可以正确地可解码,因为CL-RAS图片可能包含对没有存在于比特流中的图片的参考。可以规定,CL-RAS图片没有用作用于非CL-RAS图片的解码过程的参考图片。
CL-RAS图片可以例如用一个或多个NAL单元类型或切片首部标志来显式地指示(例如通过将cross_layer_bla_flag重新命名为cross_layer_constraint_flag并且重新定义非IRAP图片的cross_layer_bla_flag的语义)。如果图片是非IRAP图片(例如通过其NAL单元类型确定),其驻留在增强层中并且cross_layer_constraint_flag(或类似)等于1,则可以认为图片是CL-RAS图片。否则,可以将图片分类为非CL-RAS图片。如果图片是IRAP图片(例如由其NAL单元类型确定),其驻留在基础层中并且cross_layer_constraint_flag等于1,则可以推断cross_layer_bla_flag等于1(或者可以将相应变量设置为1)。否则,可以推断cross_layer_bla_flag等于0(或者可以将相应变量设置为0)。替选地,可以推断CL-RAS图片。例如,如果LayerInitializedFlag[layerId]等于0,则可以将nuh_layer_id等于layerId的图片推断为CL-RAS图片。
可以按照以下方式来规定解码过程:该方式使得某个变量能够控制是否使用逐层启动过程。例如,可以使用变量NoClrasOutputFlag,其在等于0时指示正常解码操作,而在等于1时指示逐层开始操作。NoClrasOutputFlag可以使用例如以下步骤中的一个或多个步骤来设置:
1)如果当前图片是作为比特流中的第一图片的IRAP图片,则将NoClrasOutputFlag设置为等于1。
2)否则,如果一些外部手段可用于将变量NoClrasOutputFlag设置为等于基础层IRAP图片的值,则将变量NoClrasOutputFlag设置为等于由外部手段提供的值。
3)否则,如果当前图片是作为已解码视频序列(CVS)中的第一图片的BLA图片,则将NoClrasOutputFlag设置为等于1。
4)否则,如果当前图片是已解码视频序列(CVS)中的第一图片的IDR图片并且cross_layer_bla_flag等于1,则将NoClrasOutputFlag设置为等于1。
5)否则,将NoClrasOutputFlag设置为等于0。
以上步骤4可以替选地例如如下更一般地来表述:否则,如果当前图片是作为CVS中的第一图片的IRAP图片并且逐层启动过程的指示与IRAP图片相关联,则将NoClrasOutputFlag设置为等于1。可以移除以上步骤3,并且可以规定BLA图片以在其cross_layer_bla_flag等于1时发起逐层开始过程(即将NoClrasOutputFlag设置为等于1)。应当理解,其他表述条件的方式是可能的并且同样可适用。
逐层开始的解码过程例如可以用两个阵列变量LayerInitializedFlag[i]和FirstPicInLayerDecodedFlag[i]来控制,其可以针对每个层具有条目(可能排除基础层并且可能也排除其他独立层)。当逐层启动过程被调用时,例如,响应于NoClrasOutputFlag等于1,这些阵列变量可以重置为其默认值。例如,当启用64个层时(例如6比特nuh_layer_id),变量可以如下重置:针对从0到63的所有i值(包括性的),将变量LayerInitializedFlag[i]设为等于0,并且对于从1到63的所有i值(包括性的),将FirstPicInLayerDecodedFlag[i]设为等于0。
解码过程可以包括以下或类似的操作用于控制RASL图片的输出。如果当前图片是IRAP图片,则以下适用:
-如果LayerInitializedFlag[nuh_layer_id]等于0,则将变量NoRaslOutputFlag设置为等于1。
-否则,如果一些外部手段可用于将变量HandleCraAsBlaFlag设置为当前图片的值,则可以将变量HandleCraAsBlaFlag设置为等于由外部手段提供的值并且将变量NoRaslOutputFlag设置为等于HandleCraAsBlaFlag。
-否则,将变量HandleCraAsBlaFlag设置为等于0并且将变量NoRaslOutputFlag设置为等于0。
解码过程可以包括以下操作用于更新层的LayerInitializedFlag。如果当前图片是IRAP图片并且以下之一为真,则将LayerInitializedFlag[nuh_layer_id]设置为等于1。
-nuh_layer_id等于0。
对于等于RefLayerId[nuh_layer_id][j]的refLayerId的所有值,LayerInitializedFlag[nuh_layer_id]等于0并且LayerInitializedFlag[refLayerId]等于1,其中j在0到NumDirectRefLayer[nuh_layer_id]-1的范围内(包括性的)。
编码器过程可以被约束使得在当前图片是IRAP图片时要求以下之一为真:
-nuh_layer_id等于0。
-对于refLayerId等于RefLayerId[nuh_layer_id][j]的所有值,LayerInitializedFlag[refLayerId]等于1,其中j在0到NumDirectRefLayers[nuh_layer_id]-1的范围内(包括性的)。
编码过程中的以上提及的约束可以例如在编码标准中预先定义,或者以上提及的约束可以由编码器在比特流中指示。如果以上提及的约束预先定义或者从比特流中被解码以在比特流或者其部分中被遵循,则解码过程可以在当前图片是IRAP图片时将LayerInitializedFlag[nuh_layer_id]设置为等于1。
当FirstPicInLayerDecodedFlag[nuh_layer_id]等于0时,可以在解码当前图片之前调用用于生成不可用的参考图片的解码过程。用于生成不可用的参考图片的解码过程可以针对参考图片集合中的每个图片生成具有默认值的图片。生成不可用的参考图片的过程可以主要仅针对CL-RAS图片的语法约束的规定来规定,其中CL-RAS图片可以定义为nuh_layer_id等于layerId的层并且LayerInitializedFlag[layerId]等于0。在HRD操作中,可能需要在导出CPB到达和移除时间时将CL-RAS图片考虑在内。在一些实施例中,解码器可以忽略任何CL-RAS图片,因为这些图片没有被规定用于输出并且对被规定用于输出的任何其他图片的解码过程没有影响。
MV-HEVC/SHVC草拟规范(分别在文档JCT3V-E1004和JCTVC-N1008中)针对VPS中规定的每个层集合导出默认输出层集合。VPS扩展标志default_one_target_output_layer_flag在等于0时规定每个层是输出层,而在等于1时规定仅最高层是输出层。另外,到默认输出层集合的VPS扩展使得能够规定另外的输出层集合,其中所选择的层被指示为输出层。
虽然恒定的输出层集合很好地适合其中最高层在每个访问单元中保持不变的用例和比特流,然而它们不支持其中最高层从一个访问单元到另一访问单元发生变化的用例。因此提出,输出层集合中的每个输出层与最小替选输出层相关联。每个输出层集合中的每个输出层的最小替选输出层在序列级语法结构(例如H.265/HEVC及其扩展中的VPS)中指示。如果输出层的图片不存在于访问单元中,则其用于规定可以取代规定的输出层被输出的图片的最小层标识符值。输出按照往下到所指示的最小替选输出层下降的层标识符顺序存在于访问单元中的第一直接或间接层间参考图片。对于默认输出层集合,最小输出层可以被规定为与输出层相同,即当使用默认输出层集合时,解码器仅输出规定的输出层。对于另外的输出层集合,一个或多个语法元素可以控制替选输出层的分配。例如,VPS扩展可以包括u(1)编码的alt_output_layer_fla。当alt_output_layer_fla等于0时,不输出没有在目标输出层处的图片。当alt_output_layer_fla等于1并且在目标输出层处的图片没有存在于访问单元中时,输出访问单元的PicOutputFlag等于1并且没有在目标输出层中的这些图片中具有最高nuh_layer_id的图片。在另一示例中,向非默认输出层集合中的每个输出层的VPS扩展语法添加语法元素min_alt_output_layer_idx[i][j],语法元素min_alt_output_layer_idx[i][j]规定在第i输出层集合中的第j层的替选输出层索引。
POC重置方法(其最近的提议在文档JCTVC-O0213v4(也以JCT3V-F0073v4公布)中)基于在切片首部中指示要重置POC值使得能够根据用于当前图片的所提供的POC信令导出当前图片的POC,并且按照解码顺序以某个值递减较早图片的POC。
POC重置方法的示例在图5中给出。在本示例中,增强层(EL)中存在IDR图片。对于包含EL IDR图片的访问单元中的所有图片,指示POC MSB重置。这一指示具有以下影响:该访问单元的POC具有等于0的POC MSB和等于信号传输的值(即pic_order_cnt_lsb)的POCLSB。在本示例中,该AU的POC变为10。位于DPB中的图片的POC减去某个值,该值可以称为DeltaPocVal。DeltaPocVal基于在先图片计数PrevPicOrderCnt[nuh_layer_id](其是不是RASL图片、RADL图片或子层非参考图片并且TemporalId等于0并且与当前图片具有相同nuh_layer_id值的在先图片的PicOrderCntVal)来导出。在示例中,EL IDR图片的PrevPicOrderCnt是1032。PrevPicOrderCnt分为两个部分:prevPicOrderCntLsb和prevPicOrderCntMsb,其之和等于PrevPicOrderCnt。在示例中,MaxPicOrderCntLsb是16,并且因此prevPicOrderCntMsb是1024(其被16可除)并且prevPicOrderLsb等于8。对于POCMSB,DeltaPocVal被设置为等于prevPicOrderCntMsb,即在本示例中为1024。更新后的POC值在图5中示出(使用注释:“→更新后的POC值”)。
-所提出的POC重置信令还包含4个模式的POC重置:
-当前访问单元中的POC MSB重置。这可以在增强层包含IRAP图片时使用。(这一模式在语法中用等于1的poc_reset_idc来指示。)
-当前访问单元中的完全POC重置(MSB和LSB都为0)。这可以在基础层包含IDR图片时使用。(这一模式在语法中用等于2的poc_reset_idc来指示。)
-“延迟的”POC MSB重置。这可以用于nuh_layer_id等于nuhLayerId的图片,使得引起POC MSB重置的较早访问单元(按照解码顺序)中没有nuh_layer_id等于nuhLayerId的图片。(这一模式在语法中用等于3的poc_reset_idc和等于0的full_poc_reset_flag来指示。)
“延迟的”完全POC重置,这可以用于nuh_layer_id等于nuhLayerId的图片,使得引起完全POC MSB重置的较早访问单元(按照解码顺序)中没有nuh_layer_id等于nuhLayerId的图片。(这一模式在语法中用等于3的poc_reset_idc和等于1的full_poc_reset_flag来指示。)
“延迟的”POC重置信令还可以用于差错恢复目的(以提供包括POC重置信令的相同层中的在先图片的丢失的恢复)。
基于POC重置周期ID规定了POC重置周期的概念。术语包含至少一个IRAP图片的访问单元的每个非IRAP图片必须是包含非IRAP图片的层中的POC重置周期的开始。在该访问单元中,每个图片可以是包含图片的层中的POC重置周期的开始。POC重置以及DPB中的相同层图片的POC值的更新仅适用于每个POC重置周期内的第一图片。
DPB中的所有层的较早图片的POC值在需要POC重置并且开始新的POC重置周期的每个访问单元的开始处被更新(在针对访问单元接收的第一图片的解码之前,但是在该图片的第一切片的切片首部信息的解析和解码之后)。
对于用于更新DPB中的相同层图片的POC值的德尔塔(delta)POC值的取得以及对于当前图片的POC值的POC MSB的取得,在切片分段首部中有条件地信号传输POC LSB值(poc_lsb_val语法元素)(对于“延迟的”POC重置模式以及对于使用完全POC重置的基础层图片,诸如基础层IDR图片)。如果使用“延迟的”POC重置模式,则可以将poc_lsb_val设置为等于其中POC被重置的访问单元的值POC LSB(slice_pic_order_cnt_lsb)。如果在基础层中使用完全POC重置,则可以将poc_lsb_val设置为等于prevTid0Pic的POC LSB(如早先规定的)。
下面更详细地描述取得当前图片的图片顺序计数PicOrderCntVal的解码过程。
函数GetCurrMsb如下规定。
Figure BDA0001050573970000971
如果FirstPicInLayerDecodedFlag[nuh_layer_id]等于1,poc_reset_idc大于0,并且包含当前图片的访问单元是POC重置周期中按照解码顺序的第一访问单元,以下适用:
-变量pocMsbDelta、pocLsbDelta和DeltaPocVal如下导出:
Figure BDA0001050573970000972
-当前图片的PicOrderCntVal如下导出:
Figure BDA0001050573970000981
-当前图片的PicOrderCntVal如下导出:
Figure BDA0001050573970000982
PrevPicOrderCnt[nuh_layer_id]的值如下导出:
-如果当前图片不是RASL图片、RADL图片或子层非参考图片,并且当前图片的TemporalId等于0,则将PrevPicOrderCnt[nuh_layer_id]设置为等于PicOrderCntVal。
-否则当poc_reset_idc等于3时,将PrevPicOrderCnt[nuh_layer_id]设置为等于full_poc_reset_flag?0:poc_lsb_val。
否则,以下适用:
-将DeltaPocVal的值设置为等于0。
-当前图片的PicOrderCntVal如下导出:
Figure BDA0001050573970000991
PrevPicOrderCnt[nuh_layer_id]的值如下导出:
-如果当前图片不是RASL图片、RADL图片或子层非参考图片,并且当前图片的TemporalId等于0,则将PrevPicOrderCnt[nuh_layer_id]设置为等于PicOrderCntVal。
-否则当FirstPicInLayerDecodedFlag[nuh_layer_id]等于0并且poc_reset_idc等于3时,将PrevPicOrderCnt[nuh_layer_id]设置为等于full_poc_reset_flag?0:poc_lsb_val。
如果当前图片是访问单元中的第一图片(即访问单元中的所有图片中具有最低nuh_layer_id值的图片)并且DeltaPocVal大于0,则DPB中的所有层的所有已解码图片的PicOrderCntVal值减小DeltaPocVal的值。
在解码过程中的这一时刻,当前图片尚未被解码,因此以上操作没有影响当前图片的PicOrderCntVal值。
POC重置方法中至少遇到以下问题:
1.MV-HEVC/SHVC基础层解码器与单层(版本1)解码器推断出不同的POC值。这会使得用于解码可分级比特流的基础层的现有HEVC v1实现(例如HW实现)的使用变得复杂。
2.POC值不再静态。这会使得POC值在后处理操作中用于标记图片的用途变得复杂,其需要用于计算一些SEI消息的持续性。
-背景:以下SEI消息的持续性类似于以下来规定:[消息适合直到]“要解码的下一切片的PicOrderCntVal大于currPicOrderCntVal+pic_order_cnt_delta,其中currPicOrderCntVal是包含SEI消息的访问单元中的图片的PicOrderCntVal的值”
i.恢复点SEI消息
ii.渐进的细化开始SEI消息
iii.区域刷新信息SEI消息
-图片信息SEI消息的结构还具有与以上命名的SEI消息类似的持续性并且另外使用在持续性范围内的POC来识别图片。
-另外地,在输出POC值大于当前图片的POC值的图片时,平移扫描矩形、调(tone)映射信息、帧组装布置和显示定向SEI消息停止持续。
3.POC值可以用于标记已解码图片用于在解码器和/或编码器的上下文外部使用。例如,POC值可以用于在基于反馈的错误控制中指示图片,其中解码器在图片的成功和/或失败解码和/或图片的接收和/或丢失时向远端编码器发送信息。例如,可以生成以下各种反馈消息中的一项或多项:
-某个图片被丢失(没有接收到)或者没有被正确解码。
-某个图片被正确解码。
-随后图片的编码被期望或者被命令仅使用已经正确接收的某个(些)图片。
如果POC基于POC重置信息被动态地更新,则解码器和远端编码器必须具有POC取得状态机的相同状态以正确地解释反馈消息的POC值。换言之,POC值单独不足以用于远端编码器确定解码器指向哪个图片。
逐层POC方法(其最近提议在文档JCTVC-O0275v3(也被公布为JCT3V-F0092v3)中)针对每个图片产生静态标签。对于基础层图片,H.265/HEVC版本1中规定的POC用作静态标签。对于增强层图片,逐层POC用作静态标签。因此避免了以上列出的问题。
逐层POC提议包括以下组成:
1.增强层切片的切片首部有条件地包含用于逐层POC值(JCTVC-O0275/JCT3V-F0092的版本1和2中的layer_delta_pic_order_cnt_mnus1、JCTVC-O0275/JCT3V-F0092的版本3中的layer_pic_order_cnt_lsb)的信令,其旨在在基础层IDR图片之后的每个层的第一图片中使用。切片首部中的逐层POC信令的存在由切片首部标志和PPS标志来门控。
逐层POC LSB值旨在被包括在被包括在IDR图片中的基础层之后的增强层的第一图片中。逐层POC LSB值用于导出TemporalID等于0的相同层上的在先参考图片与当前图片的逐层POC差异,好像POC值在其之间没有被重置。
2.基于切片首部信令(如果存在)并且基于PIcOrderCntVal差异(否则情况下)来针对每个增强层图片导出逐层POC值LayerPicOrderCntVal。
3.函数DiffPicOrderCnt()被规定为使用LayerPicOrderCntVal值。
注意的是,仅在解码过程中使用PicOrderCntVal作为到DiffPicOrderCnt()函数的输入。这打开了重新规定DiffPicOrderCnt()函数使用除了PicOrderCntVal之外的其他输入的可能性。
4.增强层的参考图片集合使用逐层POC值。
逐层POC方法的示例在图6中给出。在本示例中,存在EL IDR图片。其逐层POC基于不是RASL图片、RADL图片或子层非参考图片并且TemporalId等于0并且与当前图片具有相同nuh_layer_id值的在先图片(prevTid0Pic)来导出。在这种情况下,不需要任何附加信令,因为EL IDR图片的slice_pic_order_cnt_lsb可以用于导出POC和逐层POC二者。
逐层POC方法的另一示例在图7a和7b中呈现。在本示例中,存在基础层IDR图片,其将相同的访问单元上的POC值重置为等于0。然而,理想的是,具有通过继续相同的编号原理导出的逐层POC值,好像POC值没有被重置,以便在TMVP过程中具有适当的运动矢量分级。因此,针对与基础层IDR图片驻留在相同访问单元中的EL图片指示逐层POC值。信令可以是本图片与prevTid0Pic(在图7a中)或者指示与这些prevTid0Pic的逐层POC MSB和LSB关系的POC LSB值(在图7b中)之间的逐层POC值的差异。
POC重置方法和逐层POC方法都使用不是RASL图片、RADL图片或子层非参考图片并且TemporalId等于0并且与当前图片具有相同的nuh_layer_id值的在先图片(prevTid0Pic)。在两个方法中,prevTid0Pic的POC用于导出在相同层中的当前图片的POC。替选地,POC重置方法使用prevTid0Pic确定德尔塔POC值从DPB中按照解码顺序的较早图片递减,并且逐层POC方法使用prevTid0Pic确定逐层POC值。这些设计选择具有在以下方法中呈现的结果。
为了使得POC重置方法正确地工作,触发跨层的POC值的递减的层中的prevTid0Pic应当小于从离当前图片的POC值的(MaxPicOrderCntLsb/2)。否则,德尔塔POC值被错误地导出。虽然在传统的可分级图片编码结构中,prevTid0Pic通常满足这一约束,但是已经发现了以下问题:
1.尤其是在POC重置点之前已经出现层向下切换的情况下,POC重置方法变得容易遭受图片丢失。这在图8中图示,其中使用与图5中相同的比特流并且从接收器的视角来考虑。层向下切换在POC等于1000的访问单元之后进行(其可以由发送器、中间盒或接收器来指出)。访问单元处的基础层图片在传输中丢失。因此,在接收器中,访问单元10的EL图片开始DPB中的图片的POC值的递减。EL的PrevPicOrderCnt是1000,其大于从离具有POC 10的AU的真实POC的(MaxPicOrderCntLsb/2)。解码器不能推断POC LSB已经在prevTid0Pic之间轮回了多少次(POC等于PrevPicOrderCnt)。因此,DPB中的图片的POC被错误地更新。
通常,层向上切换点(IRAP图片)不需要共同存在于具有其他图片的访问单元中。
例如,比特流可以包含由传统的彩色图像传感器捕获的已编码纹理视频以及由测距传感器捕获的已编码深度视频。传感器不需要紧密地同步,即其图片捕获时间可以不同。因此,纹理和深度图片可以放置在不同访问单元中。如果这些层之一(通常为深度图片层)在一定时间段内没有被传输,例如以适应所传输的比特率,则其可能发生以下情况:当深度层中的下一IRAP图片被发送时,深度的prevTid0Pic大于(MaxPicOrderCntLsb/2)。POC递减因此被错误地执行。
在另一示例中,类似于以上示例,交织后的视频按照以下方式被编码:该方式使得例如上场图片形成基础层并且相对场图片形成增强层。因此,在任何访问单元中,仅存在一个图片。如果这些图片之一(通常为增强层)在某个时间段没有被传输,例如以适应所传输的比特率,则可能发生如下情况:当增强层中的下一IRAP图片被发送时,深度的prevTid0Pic大于(MaxPicOrderCntLsb/2)。POC递减因此被错误地执行。
在逐层POC方法中,层向下切换引起编码器和解码器在用于向上切换的增强层IRAP图片处具有不同的prevTid0Pic。这在图9中图示。POC和逐层POC取得二者因此在按照解码顺序的随后增强层图片中变为不可预测地错误。
现在,为了至少缓解以上问题,本文中提供了一种用于确定POC参考图片的改进的方法。
根据图10中图示的第一方面,将图片编码(1000)到比特流中,比特流包括与访问单元相关联的至少两个可分级性层和图片。(1000)按照解码顺序选择较早图片作为用于基于预定义的算法得到针对当前图片的图片顺序计数(POC)有关的变量的基础,其中较早图片要求存在于比特流中。
在下面的段落中,提出选择较早图片的各种实施例。每个实施例可以独立地应用,或者这些实施例中的两个或多个可以联合用于规定要求较早图片满足的全部条件,或者两个或多个实施例可以联合用于规定要求较早图片满足其中至少一个(或者某个其他预定义的数目)的条件,或者这些实施例中的两个或多个的条件可以使用一个或多个逻辑操作(诸如AND、OR、XOR和NOT)按照条件或者可能地先前计算的逻辑操作的结果之间的某个顺序来组合。
根据实施例,较早图片被要求用于当前图片的解码或者要求较早图片按照比特流一致性约束存在于比特流中。
根据实施例,较早图片需要用于所使用的输出层集合中的目标输出层中的任何图片的解码,或者较早图片需要按照比特流一致性约束存在于比特流中。例如,较早图片可以是从以下中选择:不是可丢弃图片的那些图片,和/或不在目标输出层中的那些层的NOLS图片。
根据实施例,较早图片选自当前图片的层的任何直接参考层或间接参考层。因此,较早图片不一定需要与当前图片来自相同的层。
根据实施例,较早图片被选择为来自当前图片的层的任何直接参考层或间接参考层的按照解码顺序的在先图片。
根据实施例,较早图片被选择为需要存在于比特流中的按照解码顺序的在先图片,诸如基础层IRAP图片,即使其没有在当前图片的层的直接参考层或间接参考层中。
根据实施例,较早图片被选择为不能在产生比特流的时间子集的子比特流提取过程中提取的在先图片。例如,较早图片可以被选择为TemporalId等于0的图片并且可以要求其不是RASL、RADL或子层非参考图片。
根据实施例,较早图片被选择为可以被解码而不管解码过程从哪个图片开始(只要解码过程在较早图片之前开始)的在先图片。例如,较早图片可以被选择为不是CL-RAS图片的图片。
根据实施例,较早图片可以被选择为可以被解码而不管可以在当前图片之前发生的任何层向下切换的在先图片。例如,如果当前图片实现层向上切换,则可以要求较早图片没有与当前图片来自相同的层。
组合选择较早图片的实施例的第一示例如下。较早图片被选择为以下条件针对其全部为真的按照解码顺序的在先图片:
-较早图片的TemporalId等于0。
-较早图片不是RASL图片、RADL图片或者子层非参考图片。
-较早图片不是可丢弃图片或不在目标输出层中的那些层中的NOLS图片。
-较早图片不是CL-RAS图片。
-以下条件中的至少一项为真:
·当前图片不是IRAP图片并且较早图片的nuh_layer_id等于当前图片的nuh_layer_id。
·当前图片是独立层中的IRAP图片。
·较早图片具有在当前图片的层的直接或间接参考层中的0uh_layer_id。
组合选择较早图片的实施例的第二示例如下。较早图片被选择为如下的按照解码顺序的在先图片:其是作为当前图片的直接参考层或间接参考层的基础层或独立层中的IRAP图片或者满足以上第一示例中的较早图片的条件的图片。
根据实施例,与POC参考图片有关的POC编码被执行,使得基于被定义为POC参考图片的上述较早图片的POC相关变量将至少一个POC有关的语法元素编码到比特流中。
根据实施例,在用于递减已解码图片缓冲器中的图片的POC值的POC重置方法的DeltaPocVal取得中使用POC参考图片。
根据实施例,将层树定义为独立层和至少一个依赖层,其中层到层树的映射根据被编码到比特流中的层之间的依赖性信息来获得。相同层树的层树POC值彼此相关,但是不同层树的层树POC值不需要彼此相关。POC和/或层树POC相关变量基于POC参考图片来导出。
根据实施例,POC参考图片可以被选择为使得能够确定当前图片在预测中可以依赖的图片的特性(包括层标识符、时间子层标识符和/或图片类型),并且满足这些特性的按照解码顺序的在先图片被选择为POC参考图片。
解码操作与以上描述的编码操作相反。因此,根据图11中图示的另一方面,提供了一种解码方法,其中从比特流中解码(1100)图片,比特流包括与访问单元相关联的至少两个可分级性层和图片。按照解码顺序选择较早图片作为用于基于预定义的算法导出针对当前图片的图片顺序计数(POC)有关的变量的基础,其中较早图片要求存在于比特流中。
下面呈现使用POC重置方法实现本发明的示例。
如果FirstPicInLayerDecodedFlag[nuh_layer_id]等于1,poc_reset_idc大于0,并且包含当前图片的访问单元在POC重置周期中是按照解码顺序的第一访问单元,以下适用:
-变量pocMsbDelta、pocLsbDelta和DeltaPocVal如下导出:
Figure BDA0001050573970001071
-当前图片的PicOrderCntVal如下导出:
Figure BDA0001050573970001072
现在,与现有技术中已知的方法相反,针对当前层是直接参考层或间接参考层的nuh_layer_id值lId的每个层,如下导出等于当前图片的nuh_layer_id的lId的PrevPicOrderCnt[lId]的值:
-如果当前图片不是RASL图片、RADL图片或子层非参考图片,并且当前图片的TemporalId等于0,则将PrevPicOrderCnt[lId]设置为等于PicOrderCntVal。
-否则,当poc_reset_idc等于3时,将PrevPicOrderCnt[lId]设置为等于full_poc_reset_flag?0:poc_lsb_val。
否则,以下适用:
-将DeltaPocVal的值设置为等于0。
-当前图片的PicOrderCntVal如下导出:
Figure BDA0001050573970001081
Figure BDA0001050573970001091
-针对当前层是直接参考层或间接参考层的nuh_layer_id值lId的每个层,现在如下导出等于当前图片的nuh_layer_id的lId的PrevPicOrderCnt[lId]的值:
·如果当前图片不是RASL图片、RADL图片或子层非参考图片,并且当前图片的TemporallId等于0,则将PrevPicOrderCnt[lId]设置为等于PicOrderCntVal。
·否则当FirstPicInLayerDecodedFlag[nuh_layer_id]等于0并且poc_reset_idc等于3时,将PrevPicOrderCnt[lId]设置为等于full_poc_reset_flag?0:poc_lsb_val。
如果当前图片是访问单元中的第一图片(即访问单元中的所有图片中具有最低nuh_layer_id值的图片)并且DeltaPocVal大于0,则对于在0到MaxLayersMinus1的范围内的lId的每个值(包括性的),将DPB中的所有层的所有已解码图片的PicOrderCntVal值递减DeltaPocVal的值,并且将PrevPicOrderCnt[lId]递减DeltaPocVal的值。
层树POC方法可以如下实现:
1.层树被定义为包括一个独立层(没有任何参考层)以及直接或间接使用独立层作为参考的所有层。
2.切片首部扩展可选地包含用于另外的误差恢复的层树POC值的信令,其旨在在独立层的IRAP图片中使用并且也可以在其他图片中使用。
3.基于所提及的切片首部信令(如果存在)并且基于PicOrderCntVal差异(否则)针对每个图片导出层树POC值LayerTreePicOrderCntVal。
4.POC值和层树POC值二者分别相对于POC参考图片的POC值和层树POC导出。相同访问单元中的相同层树中的所有图片的层树POC值相等。
5.在一些实施例中(使用POC重置信令),增强层切片首部可选地包含POC重置信息。这一信令可以需要用于在不同于包含基础层的层树的层树中的图片(其是层树中按照解码顺序在基础层IDR或BLA图片之后的第一图片)。信令也可以用在其他图片中用于另外的错误恢复。
6.函数DiffPicOrderCnt()被规定为使用LayerTreePicOrderCntVal值。
下面提供层树POC方法的语法、语义和解码操作的一些示例。示例共享一些公共的定义,这些定义在下面首先给出,之后是语法、语义和相关解码操作的具体示例。
以下定义在层树POC示例中使用:
-直接参考层可以指代可以用于当前层的层间预测的层(即当前图片的层或者指示与其的“直接”参考关系的另一层)。
-间接参考层可以指代不是第一层的直接参考层但是是作为第一层的直接参考层的直接参考层或间接参考层的层的直接参考层的层。
-独立层可以指代没有直接参考层的层。
-层树可以指代包括独立层以及其独立层是直接参考层或间接参考层的所有层的层的集合。
-层树图片顺序计数可以指代与每个图片相关联的变量,其唯一地识别包含包括按照解码顺序(从层树的独立层中的NoClrasOutputFlag等于1的图片(包括性的)到层树的独立层中的NoClrasOutputFlag等于1的下一图片(包括性的)或者比特流的端部,按照解码顺序的任何较早图片)的访问单元的序列内的图片的层树内的图片的访问单元。
在层树POC示例中,函数more_data_in_slice_segment_header_extension()可以如下规定:如果(slice_segment_header()语法结构中的当前位置)-(紧跟在slice_segment_header_extension_length之后的位置)小于(slice_segment_header_extension_length*8),则more_data_in_slice_segment_header_extension()的返回值等于真(TRUE)。否则,more_data_in_slice_segment_header_extension()的返回值等于假(FALSE)。在此,位置指的是从比特流中从该处读取和解析数据的比特位置。
下面提供使用POC重置信令的层树POC方法的示例。切片分段首部语法表格例如可以如下来追加(然而也存在以poc_reset_flag、poc_msb_cycle或layer_tree_poc_lsb的存在为条件的其他可能性)。在本示例中,layer_tree_poc_info_present_flag用图片参数集合语法结构来传达。
Figure BDA0001050573970001121
继续示例,这一方法中POC和层树POC值的取得(使用poc_msb_cycle的POC重置信令)可以如下规定:
令prevTid0Pic为针对其而言所有以下条件为真的按照解码顺序的在先图片:
-prevTid0Pic的TemporalId等于0。
-prevTid0Pic不是RASL图片、RADL图片或子层非参考图片。
-以下条件中的至少一项为真:
·当前图片不是IRAP图片并且prevTid0Pic的nuh_layer_id等于当前图片的nuh_layer_id。
·当前图片是独立层中的IRAP图片。
·对于在0到NumRefLayers[nuh_layer_id]-1的范围内(包括性的)的任何i值,prevTid0Pic的nuh_layer_id等于RecursiveRefLayerId[nuh_layer_id][i]。(在此,RecursiveRefLayerId[nuh_layer_id]是nuh_layer_id等于nuhLayerId的层的直接和间接参考层的nuh_layer_id值的列表,并且NumRefLayers[nuh_layer_id]是nuh_layer_id等于nuhLayerId的层的直接和间接参考层的数目。)
变量PicOrderCntMsb如下导出:
-如果当前图片是NoRaslOutputFlag等于1并且nuh_layer_id等于0的IRAP图片,则将PicOrderCntMsb设置为等于0。
-否则,如果poc_reset_flag等于1(或者基础层POC重置通过其他方式来检测),则将PicOrderCntMsb设置为等于poc_msb_cycle*MaxPicOrderCntLsb。
-否则,以下适用:
·令PrevPicOrderCnt等于prevTid0Pic的PicOrderCntVal。
·将变量prevPicOrderCntLsb设置为等于prevItd0Pic的slice_pic_order_cnt_lsb。
·将变量prevPicOrderCntMsb设置为等于prevItd0Pic的PicOrderCntMsb。
·PicOrderCntMsb如下导出:
Figure BDA0001050573970001131
PicOrderCntVal如下导出:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
变量LayerTreePicOrderCntVal如下导出:
-如果当前图片是独立层中NoClrasOutputFlag等于1的IRAP图片,则将LayerTreePicOrderCntVal设置为等于layer_tree_poc_lsb。
-否则,以下适用:
·令prevLayerTreePicOrderCnt等于prevTid0Pic的LayerTreePicOrderCntVal。
·如果layer_tree_poc_info_present_flag等于1,则以下适用:
ο将变量prevLayerTreePicOrderCntLsb设置为等于prevLayerTreePicOrderCnt&(MaxPicOrderCntLsb-1)。
ο将变量prevLayerTreePicOrderCntMsb设置为等于prevLayerTreePicOrderCnt-prevLayerTreePicOrderCntLsb。
ο变量TreePicOrderCntMsb如下导出:
Figure BDA0001050573970001141
ο将LayerTreePicOrderCntVal设置为等于LayerTreePicOrderCntMsb+layer_tree_poc_lsb。
·否则,将LayerTreePicOrderCntVal设置为等于prevLayerTreePicOrderCnt+PicOrderCntVal-prevPicOrderCnt。
函数LayerTreePicOrderCnt(picX)如下规定:
layerTreePicOrderCnt(picX)=LayerTreePicOrderCntVal of the picturepicX
函数DifferPicOrderCnt(picA,picB)如下规定:
DiffPicOrderCnt(picA,picB)=layerTreePicOrderCnt(picA)-layerTreepicOrderCnt(picB)
下面提供使用POC重置信令的层树POC方法的另一示例。切片分段首部语法表格可以例如如下附加(然而也存在以poc_reset_flag、ref_poc_lsb或layer_tree_poc_lsb的存在为条件的其他可能性)。在本示例中,layer_tree_poc_info_present_flag用图片参数集合语法结构来传达。
Figure BDA0001050573970001151
在本示例中,例如可以与在先示例相同地推导prevTid0Pic。
变量PicOrderCntMsb如下导出:
-如果当前图片是NoRaslOutputFlag等于1并且nuh_layer_id等于0的IRAP图片,则将PicOrderCntMsb设置为等于0。
-否则,以下适用:
-如果poc_reset_flag等于1,以下适用:
-将变量prevPicOrderCntLsb设置为等于ref_poc_lsb。
-将变量prevPicOrderCntMsb设置为等于0。
-否则(poc_reset_flag等于0),以下适用:
-令PrevPicOrderCnt等于prevTid0Pic的PicOrderCntVal。
-将变量prevPicOrderCntLsb设置为等于prevItd0Pic的slice_pic_order_cnt_lsb。
-将变量prevPicOrderCntMsb设置为等于prevItd0Pic的PicOrderCntMsb。
-PicOrderCntMsb如下导出:
Figure BDA0001050573970001161
PicOrderCntVal如下导出:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
变量LayerTreePicOrderCntVal以及函数DiffPicOrderCnt可以与使用POC重置信令的层树POC方法相同地导出(具有poc_msb_cycle)。
下面提供没有POC重置信令的层树POC方法的示例。切片分段首部语法表格可以例如如下附加(然而也存在以layer_tree_poc_lsb的存在为条件的其他可能性)。在本示例中,layer_tree_poc_info_present_flag用图片参数集合语法结构来传达。
Figure BDA0001050573970001171
在没有POC重置信令的层树POC方法中,编码器和/或解码器可以在基础层图片重置POC值时保持跟踪。例如,基础层IDR和BLA图片重置POC值(分别为0或者为信号传输的slice_pic_order_cnt_lsb)。更一般地,可以考虑NoRaslOutputFlag等于1的基础层图片来重置POC值。作为对基础层图片重置POC值的响应,如果在基础层图片重置POC值之后针对每个增强层中的第一图片已经将POC重置考虑在内,则编码器和/或解码器可以保持跟踪。这例如可以通过针对不同的nuh_layer_id值维持变量BLPOCResetFlag[nuh_layer_id]来实现。变量可以作为对基础层图片重置POC值的响应如下来设置:如果当前图片是nuh_layer_id等于0并且NoRaslOutputFlag等于1的IRAP图片,则针对在1到MaxLayersMinus1的范围内(包括性的)的所有i值,将变量BLPOCResetFlag[i]设置为等于1。
在可以连同其他实施例或者独立于其他实施例应用的一些实施例中,基础层POC重置可以另外地或者替选地使用以下方式中的一个或多个来识别,其可以特别地用于完全基础层图片丢失的恢复:
-可以向图片分配poc_reset_period_id(类似于POC重置方法),其可以针对由编码器确定的所选择的图片被信号传输。如同在层树POC方法中,POC仅通过基础层图片来被重置,poc_reset_period_id的变化可以用于计算基础层POC重置。
-可以向图片分配bl_cvs_id,其可以针对由编码器确定的所选择的图片被信号传输。bl_cvs_id在基础层的随后的(按照解码顺序)IDR和BLA图片中不同。bl_cvs_id的变化用于计算基础层POC重置。
-可以向图片分配layer_tree_cvs_id,其可以针对由编码器确定的所选择的图片被信号传输。layer_tree_cvs_id在相同的独立层的随后的(按照解码顺序)IDR和BLA图片中不同。layer_tree_cvs_id的变化可以用于计算基础层POC重置。
-可以使用H.265/HEVC的时间子层零索引SEI消息或者类似的SEI消息或其他语法结构来使得图片与IRAP访问单元相关联。如果时间子层零索引SEI消息指示其基础层图片尚未被接收或解码(完全没有或者没有被正确地)的IRAP访问单元,则可以得出基础层IRAP图片的丢失。
继续没有POC重置信令的层树POC方法的示例,解码过程可以如下操作。prevTid0Pic可以与层树POC方法的其他示例相同地导出。变量PicOrderCntMsb如下导出:
-如果当前图片是NoRaslOutputFlag等于1并且nuh_layer_id等于0的IRAP图片,则将PicOrderCntMsb设置为等于0。
-否则,以下适用:
-如果BLPOCResetFlag[nuh_layer_id]等于0或者prevTid0Pic(如果存在)按照解码顺序在nuh_layer_id等于0并且NoRaslOutputFlag等于1的按照解码顺序的在先IRAP图片之后,则将变量prevPicOrderCnt设置为等于prevTid0Pic的PicOrderCntVal。
-否则(BLPOCResetFlag[nuh_layer_id]等于1),将变量prevPicOrderCnt设置为等于nuh_layer_id等于0并且NoRaslOutputFlag等于1的按照解码顺序的在先IRAP图片的PicOrderCntVal。
-将变量prevPicOrderCntLsb设置为等于prevPicOrderCnt&(MaxPicOrderCntLsb-1)。
-将变量prevPicOrderCntMsb设置为等于prevPicOrderCnt-MaxPicOrderCntLsb。
-PicOrderCntMsb如下导出:
Figure BDA0001050573970001191
PicOrderCntVal如下导出:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb
因此,将BLPOCResetFlag[nuh_layer_id]设置为等于0。
变量LayerTreePicOrderCntVal以及函数DiffPicOrderCnt可以与使用POC重置信令的层树POC方法相同地导出(具有poc_msb_cycle)。
在层树POC方法中,与POC相关的不同功能可以如下来实现:
-解码过程(例如TMVP中的运动矢量分级)可以使用基础层解码中的POC值或层树POC值。对于增强层的解码,可以使用层树POC的差异。对于增强层的解码,可以规定函数DiffPicOrderCnt(picA,picB)使用层树POC。
-访问单元(AU)边界可以使用pic_order_cnt_lsb或者导出的POC值来检测。具有相同的POC或相同的pic_order_cnt_lsb的连续图片被包含在相同的访问单元中。如果i)存在first_slice_segment_in_pic_flag等于1并且nuh_layer_id等于0的图片,或者ii)slice_pic_order_cnt_lsb在相邻图片中不同,则可以推出AU边界。
-基础层中的参考图片集合可以使用POC值或者层树POC值来信号传输。类似地,增强层中的参考图片集合可以使用POC值或层树POC值来信号传输,然而信令可以在使用层树POC值时更高效(因为不存在所使用的值的非故意停止)。
-HRD的取消过程中的图片输出顺序确定基本上遵守基础层输出顺序确定。CVS的访问单元按照输出顺序连续。首先基于CVS顺序确定输出顺序确定,即输出在在后CVS的任何访问单元之前的较早CVS的所有访问单元。在CVS内,根据PicOrderCntVal来确定访问单元输出顺序。访问单元的所有图片(PicOutputFlag等于1)连续输出。
-应用于基础层图片或整个访问单元的SEI消息可以在其语义中使用PicOrderCntVal。当SEI消息适用于增强层图片时,Nuh_layer_id大于0或者被包括在可分级嵌套SEI消息中的SEI消息可以在其语义中使用LayerTreePicOrderCntVal。
-对于基于反馈的错误控制和恢复,可以使用PicOrderCntVal用于识别基础层图片并且可以使用LayerTreePicOrderCntVal用于识别反馈消息中的增强层图片。
可以如下针对MV-HEVC/SHVC规定RTP/AVPF(IETF RFC 4585)的参考图片选择指示(RPSI):字段“每个编解码器定义的本地RPSI位串”是8比特的基础16[IETF RFC 4686]表示,包括等于0的2个最高有效位和6比特的nuh_layer_id,如H.265/HEVC中定义的,之后是在nuh_layer_id等于0时表示PicOrderCntVal的值的34比特(按照网络字节顺序)或者表示被请求在编码下一图片时用于参考图片的LayerTreePicOrderCntVal(按照网络字节顺序)的32比特。
以上,与POC有关的功能在使用术语基础层时可以替选地指代增强层,并且在使用术语增强层时可以替选地指代依赖层(不是独立层的层)。
下面,呈现层树POC方法的若干示例。
在图12的示例中,在基础层中存在具有IDR图片的访问单元,其将POC值重置为0。层树POC值通过包括具有基础层IDR图片的层树POC相关语法元素(例如layer_tree_poc_lsb)来构成。在本示例中,layer_tree_poc_lsb等于10,由于POC参考图片的所导出的层树POC是1032,由此层树POC LSB等于8(当MaxPicOrderCntLsb等于16时),所以对于基础层IDR图片,层树POC值增加2。
在图13的示例中,提供了基础层IDR图片的丢失的附加恢复,使得基础层IDR图片的丢失没有引起错误的POC值或层树POC值的导出。POC重置相关信息使用含有基础层IDR图片的访问单元中的增强层图片而被包括。例如,将poc_reset_flag设置为1并且将poc_msb_cycle设置为0,而如果使用信令ref_poc_lsb的替选,则在poc_reset等于1的所呈现的增强层图片中将ref_poc_lsb的值设置为0。这一信息促进正确的POC值导出,即使基础层IDR图片被丢失。另外,层树POC信息(例如layer_tree_poc_lsb)使用相同的增强层图片而被包括。这一信息促进正确的层树POC值导出,即使基础层IDR图片被丢失。
在图14的示例中,存在于没有包括基础层图片并且(按照解码顺序)跟随重置POC值的访问单元的访问单元中的增强层图片的POC值和层树POC值的导出。如在在先的示例附图中,基础层IDR图片包括使得能够导出基础层IDR图片的层树POC值的layer_tree_poc_lsb(或类似的)。在本示例中,在POC重置点之后的第一增强层图片的POC参考图片的值被设置为在先(按照解码顺序)的基础层图片。基础层图片具有POC值和层树POC值二者并且用作增强层图片的POC值和层树POC值导出二者的参考。
图15的示例图示层树POC值的重置。在本示例中,层树POC值通过在基础层IDR图片中包括cross_layer_bla_flag等于1来被重置。基础层IDR图片(而不管cross_layer_bla_flag的值)也重置POC值。
在图16的示例中,存在两个独立层。因此,每个层的层树POC值的取得独立于其他层(而在示例中,两个层的层树POC值指示其联合输出顺序)。按照解码顺序在基础层IDR图片之后的增强层图片的poc_reset_flag等于1。层树POC等于1035的增强层图片的POC参考图片(prevTid0Pic)是层树POC等于1033的增强层图片。
图17的示例表示增强层的IDR图片,其可以用于层向上切换。这一增强层IDR图片的POC参考图片是相同访问单元中的基础层图片。图18图示与图17相同的比特流,但是其中层向下切换先于增强层IDR图片发生并且层向上切换在增强层IDR图片处发生。由于POC参考层是基础层图片,所以增强层IDR图片的POC值和层树POC值二者可以被正确地解码而不需要接收或解码增强层的较早图片(按照解码顺序)。图19图示与图17类似的比特流,其中增强层不存在或者已经先于(按照解码顺序)增强层IDR图片被移除。类似地,由于POC参考图片是也包含增强层IDR图片的访问单元中的基础层图片,所以增强层IDR图片的POC值和层树POC值二者可以被正确地解码。
图20图示包括到增强层分辨率并且然后回到基础层分辨率的切换的ARC比特流。类似于图19的示例,增强层IDR图片的POC参考图片是也包含增强层IDR图片的访问单元中的基础层图片,所以增强层IDR图片的POC值和层树POC值二者可以被正确地解码。在本示例中,其中发生回到基础层分辨率的切换的基础层图片在POC值方面充分接近在先基础层图片(按照解码顺序),使得PicOrderCntVal值的差异小于MaxPicOrderCntLsb/2,并且因此PicOrderCntMsb的更新被正确地得出。
图21图示包括到增强层分辨率并且然后回到基础层分辨率的切换的ARC比特流。在这一示例情况下,其中发生回到基础层分辨率的切换的基础层图片被编码为cross_layer_bla_flag等于1的IDR图片,使得在POC或层树POC取得中没有使用任何POC参考图片。类似地使用BLA图片取代cross_layer_bla_flag等于1的IDR图片。
在其中推断poc_reset_flag等于1的以上呈现的示例附图中,可以替选地或者另外地使用其他用于信号传输或确定基础层POC重置的方法。例如,可以使用等于1的BLPOCResetFlag[nuh_layer_id]代替或辅助等于1的poc_reset_flag。
在可以独立于其他实施例或者与其他实施例一起使用的实施例中,解码器或解码器侧实体针对使用POC重置方法导出的POC值产生反馈消息。图片使用以下的组合在反馈消息中被识别:i)poc_reset_period_id、bl_cvs_id、irap_pic_id(对于基础层)、layer_tree_cvs_id(对于基础层)等以及ii)POC值。poc_reset_period_id等使得能够接受反馈消息以在产生消息时与解码器(或解码器侧实体)的状态同步。例如,编码器可以针对图片(其缓冲在例如其DPB中的图片)维持POC值的集合,一个POC值用于按照解码顺序的图片处或之后发生的每个poc_reset_period_id。编码器然后可以将poc_reset_period_id和POC值的组合与所存储的每个图片的poc_reset_period_id和POC值的组合相比较并且得出解码器(或者解码器侧实体)指代哪个图片。
例如,可以如下针对MV-HEVC/SHVC流规定RTP/AVPF(IETF RFC 4585)的参考图片选择指示(RPSI):字段“每编解码器定义的本地RPSI位串”是poc_reset_period_id的基础16[IETF RFC 4686]表示(其中值出现在LSB中的8比特),之后是被请求在编码下一图片时用于参考图片的PicOrderCntVal(按照网络字节顺序)的值。
编码器或其他实体、诸如HRD验证器可以针对以下类型的比特流中的一个或两个指示缓冲参数:其中存在NoClrasOutputFlag等于1的IRAP图片的CL-RAS图片的比特流以及其中不存在NoClrasOutputFlag等于1的IRAP图片的CL-RAS图片。例如,可以针对所提及的类型的比特流中的一者或两者例如在UVI中单独指示CPB缓冲器大小和比特率。另外地或者替选地,编码器或另一实体可以针对所提及的类型的比特流中的一者或两者指示初始CPB和/或DPB缓冲延迟和/或其他缓冲和/或定时参数。编码器或另一实体例如可以在可分级嵌套SEI消息中包括缓冲周期SEI消息,可分级嵌套SEI消息可以指示所包含的缓冲周期SEI消息应用于其的子比特流、层集合或输出层集合。HEVC的缓冲周期SEI消息支持指示两个参数集合,一个用于其中存在与IRAP图片相关联的前置图片(其缓冲周期SEI消息也相关联)的情况,另一个用于其中不存在先导图片的情况。如果缓冲周期SEI消息包含在可分级嵌套SEI消息中,则可以认为在后的(替选的)参数集合涉及其中不存在与IRAP图片相关联的CL-RAS图片(其缓冲周期SEI消息也相关联)的比特流。通常,在后的缓冲参数集合可以涉及其中不存在与NoClrasOutputFlag等于1的IRAP图片相关联的CL-RAS图片。应当理解,虽然在本实施例的描述中使用具体的术语和变量名称,然而其可以类似地通过其他术语来实现并且不需要使用相同或类似的变量,只要解码器的操作是类似的。
编码器或另一实体、诸如HRD验证器可以针对输出的层上移除NOLS图片的输出层集合指示缓冲参数。换言之,可以针对包含被包括在其中移除了没有在输出层集合中的目标输出层输出层中的层的NOLS图片的输出层集合中的层的子比特流指示缓冲参数。例如,可以针对这样的子比特流在例如VUI中指示CPB缓冲器大小和比特率。另外地或者替选地,编码器或另一实体可以针对这样的子比特流指示初始CPB和/或DPB缓冲延迟和/或其他缓冲和/或定时参数。编码器或另一实体例如可以在嵌套SEI消息中包括缓冲周期SEI消息,嵌套SEI消息可以指示所包含的缓冲周期SEI消息应用于其的输出层集合。HEVC的缓冲周期SEI消息支持指示两个参数集合,一个用于其中存在与IRAP图片相关联的前置图片(其缓冲周期SEI消息也相关联)的情况,另一个用于其中不存在先导图片的情况。如果缓冲周期SEI消息包含在应用于输出层集合的嵌套SEI消息中,则可以认为在后的(替选的)参数集合涉及其中不存在与IRAP图片相关联的非输出层的NOLS图片和/或CL-RAS图片(其缓冲周期SEI消息也相关联)的比特流。通常,在后的缓冲参数集合可以涉及其中不存在与NoClrasOutputFlag等于1的IRAP图片相关联的CL-RAS图片。应当理解,虽然在本实施例的描述中使用具体的术语和变量名称,然而其可以类似地通过其他术语来实现并且不需要使用相同或类似的变量,只要解码器的操作是类似的。
可以使用子比特流提取过程,其中输入是比特流、输出层集合(或者输出层的列表)、以及可能地还有最大TemporalId值(最高Tid)。输出层集合可以用于推断需要解码的目标层集合,或者可以提供目标层集合作为输入。过程的输出是子比特流。子比特流提取过程在子比特流中包括在输出层集合中TemporalId小于或等于最高Tid的所有VCL NAL单元以及与所包括的VCL NAL单元相关联的非VCL NAL单元。另外,子比特流提取过程包括不是NOLS图片并且是不可丢弃图片的来自非输出层的这些VCL NAL单元(但是被包括在目标层集合中)。另外,子比特流提取过程可以修改包含与输出层集合有关的信息的语法结构,诸如VPS,以排除其中来自其的NOLS图片和可丢弃图片在输出层的输出层集合。另外,子比特流提取过程可以修改HRD参数的信令,使得在不存在非输出层的NOLS图片(和可丢弃图片)的情况下的应用于输出层集合的HRD参数有效。另外,子比特流提取过程可以从比特流中排除假定非输出层的NOLS图片(和可丢弃图片)的存在的那些HRD参数。
子比特流提取过程可以排除与NoClrasOutputFlag等于1的IRAP图片相关联的Cl-RAS图片。另外,子比特流提取过程可以从比特流中排除假定已经从输出比特流移除的CL-RAS图片的存在的那些HRD参数。
以上,已经关于将指示、语法元素和/或语法结构编码到比特流或已编码视频序列中和/或从比特流或已编码视频序列中解码指示、语法元素和/或语法结构描述了一些实施例。然而,需要理解,实施例可以在将指示、语法元素和/或语法结构编码到在包括视频编码层数据(诸如已编码切片)的比特流或已编码视频序列外部的语法结构或数据单元中时和/或在从在包括视频编码层数据(诸如已编码切片)的比特流或已编码视频序列外部的语法结构或数据单元中解码指示、语法元素和/或语法结构时实现。
以上,已经借助于比特流的语法描述了示例实施例。然而,需要理解,对应的结构和/或计算机程序可以驻留在用于生成比特流的编码器和/或用于解码比特流的解码器处。同样,虽然已经参考编码器描述了示例实施例,然而需要理解的是,所得到的比特流和解码器具有对应的元素。同样,虽然已经参考解码器描述了示例实施例,然而需要理解的是,编码器具有用于生成要由解码器来解码的比特流的结构和/或计算机程序。
虽然已经参考分离器描述了示例实施例,然而需要理解的是,分离器同样可以是编码器、中间盒或者产生或修改已编码视频比特流的任何其他实体。
以上,已经参考增强层和参考层描述了一些实施例,其中参考层可以是例如基础层。以上,已经参考增强层和基础层描述了一些增强,其中可以认为基础层是增强层的任何参考层。
需要理解的是,实施例可以适用于任何类型的分层编码,例如用于多视图编码、质量可分级性、空间可分级性,并且用于多视图视频加深度编码。
本发明的实施例可以用软件、硬件、应用逻辑、或者软件、硬件和应用逻辑的组合来实现。在示例实施例中,应用逻辑、软件或指令集维持在各种传统计算机可读介质中的任何介质上。在本文档的上下文中,“计算机可读介质”可以是包含、存储、通信、传播或传输指令用于由或结合指令执行系统、装置或设备(诸如计算机)来使用的任何介质或手段,计算机的一个示例在图1和2中描述和描绘。计算机可读介质可以包括计算机可读存储介质,其可以是能够包含或存储用于由或结合指令执行系统、装置或设备(诸如计算机)来使用的任何介质或手段。
根据需要,本文中所讨论的不同功能可以按照不同顺序和/或彼此同时地执行。另外,根据需要,以上描述的功能中的一个或多个可以是可选的或者可以省略。
虽然以上示例描述在电子设备内的编解码器内操作的本发明的实施例,然而,应当理解,以下描述的本发明可以实现为任何视频编解码器的部分。因此,例如,本发明的实施例可以在可以通过固定或有线通信路径实现视频编码的视频编解码器中实现。
因此,用户设备可以包括诸如以上在本发明的实施例中描述的视频编码器。应当理解,术语用户设备意图覆盖任意合适的类型的无线用户设备,诸如移动电话、便携式数据处理设备或便携式网络浏览器。
另外,公共陆地移动网络(PLMN)的元件也可以包括如以上描述的视频编解码器。
总之,本发明的各种实施例可以用硬件或专用电路、软件、逻辑或其任意组合来实现。例如,一些方面可以用硬件实现,而其他方面可以用可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,然而本发明不限于此。虽然本发明的各个方面可以被说明和描述为框图、流程图,或者使用某种其他图形表示来说明和描述,然而应当理解,本文中描述的这些框、装置、系统、技术和方法作为非限制性示例可以用硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或者其他计算设备、或其某种组合来实现。
本发明的实施例可以用由移动设备的数据处理器可执行的计算机软件来实现,诸如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。另外,在这一点上,应当注意,附图中的逻辑流程的任何块可以表示程序步骤、或者互连的逻辑电路、块和功能、或者程序步骤以及逻辑电路、块和功能的组合。软件可以存储在诸如存储芯片、或者集成在处理器内的存储块、磁性介质(诸如硬盘或软盘)、和光学介质(诸如例如DVD及其数据变型、CD)等物理介质上。
本发明的各种实施例可以在驻留在存储器中并且引起相关装置执行本发明的计算机程序代码的帮助下来实现。例如,终端设备可以包括用于处理、接收和传输数据的电路系统和电子设备、存储器中的计算机程序代码、以及在运行计算机程序代码时引起终端设备执行实施例的特征的处理器。另外,网络设备可以包括用于处理、接收和传输数据的电路系统和电子设备、存储器中的计算机程序代码以及在运行计算机程序代码时引起终端设备执行实施例的特征的处理器。
存储器可以是适合本地技术环境的任何类型并且可以使用任意合适的数据存储技术来实现,诸如基于半导体的存储器设备、磁性存储器设备和系统、光学存储器设备和系统、固定存储器和可移除存储器。数据处理器可以是适合本地技术环境的任何类型,并且可以包括通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器中的一个或多个,作为非限制性示例。
本发明的实施例用各种部件来实践,诸如集成电路模块。集成电路的设计或多或少是高度自动化的过程。复杂且有力的软件工具可用于将逻辑水平设计变换成准备好被蚀刻和形成在半导体衬底上的半导体电路设计。
程序(诸如由加利福尼亚州山景城的Synopsys公司和加利福尼亚州圣何塞的的Cadence Design提供的)使用极很好建立的设计规则以及预先存储的设计模块库来自动路由导体并且在半导体芯片上定位部件。一旦完成半导体电路的设计,可以将标准化电子格式(例如Opus、GDSII等)的所得到的设计运送到半导体制造工厂或“fab”用于制造。
以上描述作为示例性非限制性示例提供了本发明的示例性实施例的全面的并且说明性描述。然而,在结合附图和所附权利要求阅读时,相关领域技术人员鉴于以上描述可以很清楚各种修改和适配。然而,所有对本发明的教示的这样的和类似的修改仍然落入本发明的范围内。

Claims (40)

1.一种用于视频编码的方法,包括:
将图片编码到比特流中,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
在所述比特流中指示层间预测依赖性,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
以解码顺序选择较早图片,其中较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,
所述方法还包括作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地:
确定POC值要被重置;
将重置POC值的指示编码到所述比特流中;以及
在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
2.根据权利要求1所述的方法,其中所述较早图片被要求用于所述当前图片的解码,或者所述较早图片被要求依据比特流一致性约束而存在于所述比特流中。
3.根据权利要求1所述的方法,其中所述较早图片与能够被表示为最高有效部分和最低有效部分之和的POC值变量相关联,其中所述最低有效部分在二进制表示中由固定数目的比特来表示,并且所述最高有效部分的所述固定数目的最低有效位等于0。
4.根据权利要求1所述的方法,所述方法还包括:
基于被定义为POC参考图片的所述较早图片的POC有关的变量来将至少一个POC有关的语法元素编码到所述比特流中。
5.根据权利要求1、3或4所述的方法,其中所述图片集合包括不可丢弃图片,所述不可丢弃图片具有等于0的temporalId,并且不包括随机访问可解码前置(RADL)图片、随机访问跳跃前置(RASL)图片以及子层非参考(SLNR)图片。
6.根据权利要求5所述的方法,其中所述POC有关的语法元素表示所述当前图片的POC值的固定数目的最低有效比特;并且预定义的算法包括调查所述POC有关的语法元素的值与所述较早图片的所述POC值的所述最低有效部分之差。
7.根据权利要求1所述的方法,其中图片以以下特征描述中的一项或多项来表征:
各自地与一个或多个时间子层中的一个时间子层相关联,其特征在于:与特定时间子层相关联的图片的预测被禁用于与高于所述特定时间子层的时间子层相关联的任何图片,
各自地被分类为子层参考图片和子层非参考图片中的一项,其特征在于:与第一时间子层相关联的图片的预测被启用于与所述第一时间子层相关联的子层参考图片,并且与第二时间子层相关联的图片的预测被禁用于与所述第二时间子层相关联的子层非参考图片,
各自地被分类为前置图片、内部随机访问点(IRAP)图片和后置图片中的一项,IRAP图片使能开始所述IRAP图片与其相关联的可分级性层的解码,前置图片按照解码顺序在相关联的IRAP图片之后并且按照输出顺序在所述相关联的IRAP图片之前,后置图片按照输出顺序在相关联的IRAP图片之后,
各自地被分类为可丢弃图片和非可丢弃图片中的一项,可丢弃图片的特征在于没有其他图片使用所述可丢弃图片作为用于预测的参考图片。
8.根据权利要求7所述的方法,所述方法还包括:
根据所述特征描述中的一项或多项确定POC参考图片特性以匹配所述当前图片能够在预测中依赖的图片的特性;以及
选择所述图片集合以包括满足所述POC参考图片特性的图片。
9.根据权利要求8所述的方法,还包括:
确定POC参考图片特性以匹配与最低时间子层相关联的、作为子层参考图片的、作为内部随机访问点图片或后置图片的以及作为非可丢弃图片的图片。
10.一种用于视频编码的装置,包括至少一个处理器和至少一个存储器,所述至少一个存储器上存储有在由所述至少一个处理器执行时使得所述装置至少执行以下操作的代码:
将图片编码到比特流中,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
在所述比特流中指示层间预测依赖性,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
以解码顺序选择较早图片,其中较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,
其中所述装置还被使得以执行:作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地:
确定POC值要被重置;
将重置POC值的指示编码到所述比特流中;以及
在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
11.根据权利要求10所述的装置,其中所述较早图片被要求用于所述当前图片的解码,或者所述较早图片被要求依据比特流一致性约束而存在于所述比特流中。
12.根据权利要求10所述的装置,其中所述较早图片与能够被表示为最高有效部分和最低有效部分之和的POC值变量相关联,其中所述最低有效部分在二进制表示中由固定数目的比特来表示,并且所述最高有效部分的所述固定数目的最低有效位等于0。
13.根据权利要求10所述的装置,还包括在由所述至少一个处理器执行时使得所述装置执行以下操作的代码:
基于被定义为POC参考图片的所述较早图片的POC有关的变量来将至少一个POC有关的语法元素编码到所述比特流中。
14.根据权利要求10、12或13所述的装置,其中所述图片集合包括不可丢弃图片,所述不可丢弃图片具有等于0的temporalId,并且不包括随机访问可解码前置(RADL)图片、随机访问跳跃前置(RASL)图片以及子层非参考(SLNR)图片。
15.根据权利要求14所述的装置,其中所述POC有关的语法元素表示所述当前图片的POC值的固定数目的最低有效比特;并且预定义的算法包括调查所述POC有关的语法元素的值与所述较早图片的所述POC值的所述最低有效部分之差。
16.根据权利要求10所述的装置,其中图片以以下特征描述中的一项或多项来表征:
各自地与一个或多个时间子层中的一个时间子层相关联,其特征在于:与特定时间子层相关联的图片的预测被禁用于与高于所述特定时间子层的时间子层相关联的任何图片,
各自地被分类为子层参考图片和子层非参考图片中的一项,其特征在于:与第一时间子层相关联的图片的预测被启用于与所述第一时间子层相关联的子层参考图片,并且与第二时间子层相关联的图片的预测被禁用于与所述第二时间子层相关联的子层非参考图片,
各自地被分类为前置图片、内部随机访问点(IRAP)图片和后置图片中的一项,IRAP图片使能开始所述IRAP图片与其相关联的可分级性层的解码,前置图片按照解码顺序在相关联的IRAP图片之后并且按照输出顺序在所述相关联的IRAP图片之前,后置图片按照输出顺序在相关联的IRAP图片之后,
各自地被分类为可丢弃图片和非可丢弃图片中的一项,可丢弃图片的特征在于没有其他图片使用所述可丢弃图片作为用于预测的参考图片。
17.根据权利要求16所述的装置,还包括在由所述至少一个处理器执行时使得所述装置执行以下操作的代码:
根据所述特征描述中的一项或多项确定POC参考图片特性以匹配所述当前图片能够在预测中依赖的图片的特性;以及
选择所述图片集合以包括满足所述POC参考图片特性的图片。
18.根据权利要求17所述的装置,还包括在由所述至少一个处理器执行时使得所述装置执行以下操作的代码:
确定POC参考图片特性以匹配与最低时间子层相关联的、作为子层参考图片的、作为内部随机访问点图片或后置图片的以及作为非可丢弃图片的图片。
19.一种非暂态计算机可读介质,包括计算机程序,所述计算机程序被配置成当在至少一个处理器上被执行时使得装置或系统:
将图片编码到比特流中,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
在所述比特流中指示层间预测依赖性,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
以解码顺序选择较早图片,其中较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,
其中所述装置或所述系统还被使得以执行:作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地:
确定POC值要被重置;
将重置POC值的指示编码到所述比特流中;以及
在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
20.一种包括视频编码器的装置,所述视频编码器被配置用于编码包括图像序列的比特流,所述视频编码器包括:
用于将图片编码到比特流中的装置,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
用于在所述比特流中指示层间预测依赖性的装置,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
用于以解码顺序选择较早图片的部件,其中所述较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,以及
用于作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地执行以下的部件:确定POC值要被重置;将重置POC值的指示编码到所述比特流中;以及在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
21.一种用于视频解码的方法,包括:
从比特流中解码图片,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
从所述比特流获取与层间预测依赖性有关的指示,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
以解码顺序选择较早图片,其中较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,
所述方法还包括作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地:
确定POC值要被重置;
将重置POC值的指示编码到所述比特流中;以及
在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
22.根据权利要求21所述的方法,其中所述较早图片被要求用于所述当前图片的解码,或者所述较早图片被要求依据比特流一致性约束而存在于所述比特流中。
23.根据权利要求21所述的方法,其中所述较早图片与能够被表示为最高有效部分和最低有效部分之和的POC值变量相关联,其中所述最低有效部分在二进制表示中由固定数目的比特来表示,并且所述最高有效部分的所述固定数目的最低有效位等于0。
24.根据权利要求21所述的方法,所述方法还包括:
从所述比特流解码至少一个POC有关的语法元素;以及
基于已解码的所述至少一个POC有关的语法元素以及被定义为POC参考图片的所述较早图片的所述POC有关的变量。
25.根据权利要求21、23或24所述的方法,其中所述图片集合包括不可丢弃图片,所述不可丢弃图片具有等于0的temporalId,并且不包括随机访问可解码前置(RADL)图片、随机访问跳跃前置(RASL)图片以及子层非参考(SLNR)图片。
26.根据权利要求24所述的方法,其中所述POC有关的语法元素表示所述当前图片的POC值的固定数目的最低有效比特;并且预定义的算法包括调查所述POC有关的语法元素的值与所述较早图片的所述POC值的所述最低有效部分之差。
27.根据权利要求21所述的方法,其中图片以以下特征描述中的一项或多项来表征:
各自地与一个或多个时间子层中的一个时间子层相关联,其特征在于:与特定时间子层相关联的图片的预测被禁用于与高于所述特定时间子层的时间子层相关联的任何图片,
各自地被分类为子层参考图片和子层非参考图片中的一项,其特征在于:与第一时间子层相关联的图片的预测被启用于与所述第一时间子层相关联的子层参考图片,并且与第二时间子层相关联的图片的预测被禁用于与所述第二时间子层相关联的子层非参考图片,
各自地被分类为前置图片、内部随机访问点(IRAP)图片和后置图片中的一项,IRAP图片使能开始所述IRAP图片与其相关联的可分级性层的解码,前置图片按照解码顺序在相关联的IRAP图片之后并且按照输出顺序在所述相关联的IRAP图片之前,后置图片按照输出顺序在相关联的IRAP图片之后,
各自地被分类为可丢弃图片和非可丢弃图片中的一项,可丢弃图片的特征在于没有其他图片使用所述可丢弃图片作为用于预测的参考图片。
28.根据权利要求27所述的方法,所述方法还包括:
根据所述特征描述中的一项或多项确定POC参考图片特性以匹配所述当前图片能够在预测中依赖的图片的特性;以及
选择所述图片集合以包括满足所述POC参考图片特性的图片。
29.根据权利要求28所述的方法,还包括:
确定POC参考图片特性以匹配与最低时间子层相关联的、作为子层参考图片的、作为内部随机访问点图片或后置图片的以及作为非可丢弃图片的图片。
30.一种用于视频解码的装置,包括至少一个处理器和至少一个存储器,所述至少一个存储器上存储有在由所述至少一个处理器执行时使得所述装置至少执行以下操作的代码:
从比特流中解码图片,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
从所述比特中获取与层间预测依赖性有关的指示,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
以解码顺序选择较早图片,其中较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,
其中所述装置还被使得以执行:作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地:
确定POC值要被重置;
将重置POC值的指示编码到所述比特流中;以及
在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
31.根据权利要求30所述的装置,其中所述较早图片被要求用于所述当前图片的解码,或者所述较早图片被要求依据比特流一致性约束而存在于所述比特流中。
32.根据权利要求30所述的装置,其中所述较早图片与能够被表示为最高有效部分和最低有效部分之和的POC值变量相关联,其中所述最低有效部分在二进制表示中由固定数目的比特来表示,并且所述最高有效部分的所述固定数目的最低有效位等于0。
33.根据权利要求30所述的装置,还包括在由所述至少一个处理器执行时使得所述装置执行以下操作的代码:
从所述比特流解码至少一个POC有关的语法元素;以及
基于已解码的所述至少一个POC有关的语法元素以及被定义为POC参考图片的所述较早图片的所述POC有关的变量,解码所述当前图片的POC有关的变量。
34.根据权利要求30、32或33所述的装置,其中所述图片集合包括不可丢弃图片,所述不可丢弃图片具有等于0的temporalId,并且不包括随机访问可解码前置(RADL)图片、随机访问跳跃前置(RASL)图片以及子层非参考(SLNR)图片。
35.根据权利要求33所述的装置,其中所述POC有关的语法元素表示所述当前图片的POC值的固定数目的最低有效比特;并且预定义的算法包括调查所述POC有关的语法元素的值与所述较早图片的所述POC值的所述最低有效部分之差。
36.根据权利要求30所述的装置,其中图片以以下特征描述中的一项或多项来表征:
各自地与一个或多个时间子层中的一个时间子层相关联,其特征在于:与特定时间子层相关联的图片的预测被禁用于与高于所述特定时间子层的时间子层相关联的任何图片,
各自地被分类为子层参考图片和子层非参考图片中的一项,其特征在于:与第一时间子层相关联的图片的预测被启用于与所述第一时间子层相关联的子层参考图片,并且与第二时间子层相关联的图片的预测被禁用于与所述第二时间子层相关联的子层非参考图片,
各自地被分类为前置图片、内部随机访问点(IRAP)图片和后置图片中的一项,IRAP图片使能开始所述IRAP图片与其相关联的可分级性层的解码,前置图片按照解码顺序在相关联的IRAP图片之后并且按照输出顺序在所述相关联的IRAP图片之前,后置图片按照输出顺序在相关联的IRAP图片之后,
各自地被分类为可丢弃图片和非可丢弃图片中的一项,可丢弃图片的特征在于没有其他图片使用所述可丢弃图片作为用于预测的参考图片。
37.根据权利要求36所述的装置,还包括在由所述至少一个处理器执行时使得所述装置执行以下操作的代码:
根据所述特征描述中的一项或多项确定POC参考图片特性以匹配所述当前图片能够在预测中依赖的图片的特性;以及
选择所述图片集合以包括满足所述POC参考图片特性的图片。
38.根据权利要求37所述的装置,还包括在由所述至少一个处理器执行时使得所述装置执行以下操作的代码:
确定POC参考图片特性以匹配与最低时间子层相关联的、作为子层参考图片的、作为内部随机访问点图片或后置图片的以及作为非可丢弃图片的图片。
39.一种非暂态计算机可读介质,包括计算机程序,所述计算机程序被配置成当在至少一个处理器上被执行时使得装置或系统:
从比特流中解码图片,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
从所述比特流获取与层间预测依赖性有关的指示,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
以解码顺序选择较早图片,其中较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中,
其中所述装置或所述系统还被使得以执行:作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地:
确定POC值要被重置;
将重置POC值的指示编码到所述比特流中;以及
在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片。
40.一种包括视频解码器的装置,所述视频解码器被配置用于解码包括图像序列的比特流,所述视频解码器包括:
用于从比特流中解码图片的装置,所述比特流包括至少两个可分级性层,图片与访问单元相关联并且图片各自地与所述至少两个可分级性层中的一个可分级性层相关联;
用于从所述比特流中获取与层间预测依赖性有关的指示的装置,所述层间预测依赖性指示第一可分级性层的、如果存在的直接参考层以及所述第一可分级性层的、如果存在的间接参考层,直接参考层使得与所述直接参考层相关联的图片可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片,并且间接参考层使得与间接参考层相关联的图片不可使用为用于与所述第一可分级性层相关联的图片的预测的参考图片、但是可使用为用于与所述第一可分级性层的直接参考层或间接参考层相关联的图片的预测的参考图片;
用于以解码顺序选择较早图片的部件,其中所述较早图片的图片顺序计数(POC)被用于作为基于预先定义的算法至少得到当前图片的所述图片顺序计数(POC)的基础,所述当前图片与当前可分级性层相关联,以及
用于作为将所述当前图片编码到所述比特流中的部分或与将所述当前图片编码到所述比特流中相结合地执行以下的部件:确定POC值要被重置;将重置POC值的指示编码到所述比特流中;以及在导出从已解码图片缓冲器中的所有图片的POC值而递减的值时使用所述较早图片,
其中,所述较早图片是按照解码顺序,在图片集合中最接近所述当前图片的在先图片,所述图片集合在包括所述当前可分级性层、以及所述当前可分级性层的任何直接和间接参考层的多个层中。
CN201480073353.2A 2013-12-02 2014-11-28 视频编码和解码 Active CN106416250B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361910616P 2013-12-02 2013-12-02
US61/910,616 2013-12-02
PCT/FI2014/050925 WO2015082763A1 (en) 2013-12-02 2014-11-28 Video encoding and decoding

Publications (2)

Publication Number Publication Date
CN106416250A CN106416250A (zh) 2017-02-15
CN106416250B true CN106416250B (zh) 2020-12-04

Family

ID=53266413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480073353.2A Active CN106416250B (zh) 2013-12-02 2014-11-28 视频编码和解码

Country Status (4)

Country Link
US (3) US9813722B2 (zh)
EP (1) EP3078195A4 (zh)
CN (1) CN106416250B (zh)
WO (1) WO2015082763A1 (zh)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4017006B1 (en) 2011-09-22 2023-09-20 LG Electronics, Inc. Method and apparatus for signaling image information, and decoding method and apparatus using same
CN103843341B (zh) * 2011-09-27 2017-06-13 瑞典爱立信有限公司 用于管理视频解码过程中的画面的解码器及其方法
EP2806649A1 (en) * 2012-01-18 2014-11-26 Electronics and Telecommunications Research Institute Method and device for encoding and decoding image
WO2015008464A1 (en) * 2013-07-14 2015-01-22 Sharp Kabushiki Kaisha Video parameter set signaling
US9900605B2 (en) * 2013-10-14 2018-02-20 Qualcomm Incorporated Device and method for scalable coding of video information
CN106416250B (zh) * 2013-12-02 2020-12-04 诺基亚技术有限公司 视频编码和解码
US9866869B2 (en) * 2014-03-17 2018-01-09 Qualcomm Incorporated POC value design for multi-layer video coding
US10880565B2 (en) * 2014-03-24 2020-12-29 Qualcomm Incorporated Use of specific HEVC SEI messages for multi-layer video codecs
JP2015216632A (ja) * 2014-04-22 2015-12-03 ソニー株式会社 符号化装置および符号化方法
US9866851B2 (en) 2014-06-20 2018-01-09 Qualcomm Incorporated Full picture order count reset for multi-layer codecs
US10264286B2 (en) 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
JP2016015009A (ja) * 2014-07-02 2016-01-28 ソニー株式会社 情報処理システム、情報処理端末、および情報処理方法
GB2538997A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
CN106303673B (zh) * 2015-06-04 2021-01-22 中兴通讯股份有限公司 码流对齐、同步处理方法及发送、接收终端和通信系统
GB2539461B (en) 2015-06-16 2020-01-08 Canon Kk Image data encapsulation
US10063861B2 (en) * 2015-10-07 2018-08-28 Qualcomm Incorporated Methods and systems of performing predictive random access using a background picture
US20170105004A1 (en) * 2015-10-07 2017-04-13 Qualcomm Incorporated Methods and systems of coding a predictive random access picture using a background picture
KR102433227B1 (ko) 2016-02-09 2022-08-18 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 효율적인 감소성 또는 효율적인 랜덤 액세스를 허용하는 픽처/비디오 데이터 스트림들에 대한 개념
GB2547442B (en) * 2016-02-17 2022-01-12 V Nova Int Ltd Physical adapter, signal processing equipment, methods and computer programs
FI20165115A (fi) * 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
FI20165257L (fi) * 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
KR20180134853A (ko) * 2016-05-06 2018-12-19 삼성전자주식회사 인터 프레임의 세그먼트를 부호화하기 위한 방법 및 전자 장치
CN106713927B (zh) * 2016-11-14 2019-08-13 珠海格力电器股份有限公司 一种图像输出装置、方法及解码器
JP2018107580A (ja) * 2016-12-26 2018-07-05 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
US20190268601A1 (en) * 2018-02-26 2019-08-29 Microsoft Technology Licensing, Llc Efficient streaming video for static video content
US11303912B2 (en) * 2018-04-18 2022-04-12 Qualcomm Incorporated Decoded picture buffer management and dynamic range adjustment
CN108900863B (zh) * 2018-07-02 2021-01-15 宇龙计算机通信科技(深圳)有限公司 一种视频图像的生成方法、装置及电子设备
US10645380B2 (en) * 2018-07-09 2020-05-05 Tencent America LLC Method and apparatus for video coding
KR20240024335A (ko) 2018-11-22 2024-02-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브 블록 기반 인터 예측을 위한 조정 방법
CN111479111B (zh) * 2019-01-23 2024-04-09 华为技术有限公司 图像显示顺序的确定方法、装置和视频编解码设备
CN113597768A (zh) * 2019-01-28 2021-11-02 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
BR112021014484A2 (pt) 2019-02-02 2021-09-28 Beijing Bytedance Network Technology Co., Ltd. Gerenciamento de buffer para cópia de bloco intra em codificação de vídeo
WO2020156545A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using intra-buffer samples for intra block copy in video coding
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
CN113557733A (zh) * 2019-03-11 2021-10-26 华为技术有限公司 视频译码中的逐步解码刷新
US10986353B2 (en) * 2019-03-15 2021-04-20 Tencent America LLC Decoded picture buffer management for video coding
US11039150B2 (en) * 2019-04-19 2021-06-15 Tencent America LLC Method and apparatus for video coding
US11303913B2 (en) * 2019-06-19 2022-04-12 Qualcomm Incorporated Decoded picture buffer indexing
CN112118453A (zh) * 2019-06-20 2020-12-22 腾讯美国有限责任公司 视频解码方法和设备、计算机设备以及存储介质
US11539957B2 (en) * 2019-06-20 2022-12-27 Tencent America LLC Layered random access with reference picture resampling
EP3981151A4 (en) 2019-07-06 2022-08-24 Beijing Bytedance Network Technology Co., Ltd. VIRTUAL PREDICTION BUFFER FOR INTRA-BLOCK COPY IN VIDEO ENCODING
KR102635519B1 (ko) * 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
WO2021004496A1 (en) * 2019-07-10 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Bitstream conformance constraints for intra block copy in video coding
CN114097221B (zh) 2019-07-11 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
CN114208184A (zh) 2019-08-13 2022-03-18 北京字节跳动网络技术有限公司 基于子块的帧间预测中的运动精度
US11310492B2 (en) * 2019-09-20 2022-04-19 Tencent America LLC Signaling of inter layer prediction in video bitstream
WO2021052507A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Sub-picture coding and decoding of video
KR20220063273A (ko) * 2019-09-24 2022-05-17 후아웨이 테크놀러지 컴퍼니 리미티드 다층 비디오 비트스트림에 대한 dpb 파라미터의 시그널링 기법
US11395007B2 (en) 2019-12-12 2022-07-19 Tencent America LLC Method for signaling dependent and independent picture header
WO2021125912A1 (ko) * 2019-12-20 2021-06-24 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 이를 위한 장치
EP4062635A4 (en) * 2019-12-26 2022-12-28 ByteDance Inc. CONSTRAINTS ON SIGNALING VIDEO LAYERS IN ENCODED BITSTREAMS
WO2021134018A1 (en) * 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
US11356681B2 (en) * 2019-12-27 2022-06-07 Tencent America LLC Coded video sub-bitstream extraction
KR20220113404A (ko) 2019-12-27 2022-08-12 바이트댄스 아이엔씨 비디오 서브픽처들을 시그널링하기 위한 신택스
US11356698B2 (en) * 2019-12-30 2022-06-07 Tencent America LLC Method for parameter set reference constraints in coded video stream
KR20220123094A (ko) * 2019-12-31 2022-09-05 후아웨이 테크놀러지 컴퍼니 리미티드 인코더, 디코더 그리고 대응하는 방법 및 장치
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
CN115299052A (zh) * 2020-03-19 2022-11-04 字节跳动有限公司 对参考图片列表条目的约束
US20230209075A1 (en) * 2020-05-18 2023-06-29 Lg Electronics Inc. Image decoding method and device therefor
IL298042A (en) * 2020-05-22 2023-01-01 Fraunhofer Ges Forschung Processing systems output layer of coded video
US20220279185A1 (en) * 2021-02-26 2022-09-01 Lemon Inc. Methods of coding images/videos with alpha channels
US20220286666A1 (en) * 2021-02-26 2022-09-08 Lemon Inc. Methods of coding images/videos with alpha channels
CN114067258B (zh) * 2022-01-18 2022-05-03 电子科技大学 一种面部通话视频的分层编码方法
US11695965B1 (en) * 2022-10-13 2023-07-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video coding using a coded picture buffer

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102017627A (zh) * 2008-04-25 2011-04-13 汤姆森许可贸易公司 使用基于深度信息的视差估计的多视点视频编码
CN103096078A (zh) * 2006-01-09 2013-05-08 Lg电子株式会社 用于视频信号的层间预测方法
CN103237213A (zh) * 2013-04-08 2013-08-07 华为技术有限公司 视频编码方法和视频解码方法及相关装置
WO2013157797A1 (ko) * 2012-04-15 2013-10-24 삼성전자 주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000013790A (ja) * 1998-06-19 2000-01-14 Sony Corp 画像符号化装置および画像符号化方法、画像復号装置および画像復号方法、並びに提供媒体
WO2007018670A1 (en) * 2005-07-21 2007-02-15 Thomson Licensing Method and apparatus for weighted prediction for scalable video coding
EP1827023A1 (en) * 2006-02-27 2007-08-29 THOMSON Licensing Method and apparatus for packet loss detection and virtual packet generation at SVC decoders
KR20090085581A (ko) * 2006-10-24 2009-08-07 톰슨 라이센싱 다중-뷰 비디오 코딩을 위한 화상 관리
JP5281076B2 (ja) * 2007-04-25 2013-09-04 トムソン ライセンシング ダウンサンプリングされたリファレンスピクチャによるビュー間予測
US9247261B2 (en) * 2011-03-04 2016-01-26 Vixs Systems, Inc. Video decoder with pipeline processing and methods for use therewith
ES2714756T3 (es) * 2011-06-30 2019-05-29 Ericsson Telefon Ab L M Señalización de imágenes de referencia
CN103843341B (zh) * 2011-09-27 2017-06-13 瑞典爱立信有限公司 用于管理视频解码过程中的画面的解码器及其方法
KR20130037161A (ko) * 2011-10-05 2013-04-15 한국전자통신연구원 스케일러블 비디오 코딩을 위한 향상된 계층간 움직임 정보 예측 방법 및 그 장치
US20130094774A1 (en) * 2011-10-13 2013-04-18 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US8787688B2 (en) * 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US20130107962A1 (en) * 2011-10-26 2013-05-02 Intellectual Discovery Co., Ltd. Scalable video coding method and apparatus using inter prediction mode
CN104255031B (zh) * 2012-02-29 2017-12-22 Lg 电子株式会社 层间预测方法和使用层间预测方法的装置
US20150085939A1 (en) * 2012-04-13 2015-03-26 Sharp Kabushiki Kaisha Devices for sending and receiving a long-term reference picture indicator
WO2014006854A1 (en) * 2012-07-01 2014-01-09 Sharp Kabushiki Kaisha Device for signaling a long-term reference picture in a parameter set
US9398284B2 (en) * 2012-08-16 2016-07-19 Qualcomm Incorporated Constructing reference picture lists for multi-view or 3DV video coding
KR102349338B1 (ko) * 2012-09-13 2022-01-10 엘지전자 주식회사 영상 부호화/복호화 방법 및 장치
EP2966868B1 (en) * 2012-10-09 2018-07-18 HFI Innovation Inc. Method for motion information prediction and inheritance in video coding
KR101981712B1 (ko) * 2012-11-21 2019-05-24 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
US10616607B2 (en) * 2013-02-25 2020-04-07 Lg Electronics Inc. Method for encoding video of multi-layer structure supporting scalability and method for decoding same and apparatus therefor
US9807421B2 (en) * 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
US9380305B2 (en) * 2013-04-05 2016-06-28 Qualcomm Incorporated Generalized residual prediction in high-level syntax only SHVC and signaling and management thereof
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
US9762909B2 (en) * 2013-07-30 2017-09-12 Kt Corporation Image encoding and decoding method supporting plurality of layers and apparatus using same
KR20150026927A (ko) * 2013-09-03 2015-03-11 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
WO2015052939A1 (en) * 2013-10-10 2015-04-16 Sharp Kabushiki Kaisha Alignment of picture order count
CN106416250B (zh) * 2013-12-02 2020-12-04 诺基亚技术有限公司 视频编码和解码

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103096078A (zh) * 2006-01-09 2013-05-08 Lg电子株式会社 用于视频信号的层间预测方法
CN102017627A (zh) * 2008-04-25 2011-04-13 汤姆森许可贸易公司 使用基于深度信息的视差估计的多视点视频编码
WO2013157797A1 (ko) * 2012-04-15 2013-10-24 삼성전자 주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치
CN103237213A (zh) * 2013-04-08 2013-08-07 华为技术有限公司 视频编码方法和视频解码方法及相关装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MV-HEVC/SHVC HLS: on POC value derivation JCTVC-O0275v3;MISKA M HANNUKSELA;《JCTVC-O0275v3,JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16》;20131113;摘要,第3节,图1 *
SHVC draft 4;CHEN J et al;《JCTVC-O1008,JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16》;20131114;第8.1、F.7.3.2.1.1,F.7.4.3.1.1、F.8、F.3节 *

Also Published As

Publication number Publication date
US10652559B2 (en) 2020-05-12
CN106416250A (zh) 2017-02-15
WO2015082763A1 (en) 2015-06-11
US20190342562A1 (en) 2019-11-07
US9813722B2 (en) 2017-11-07
EP3078195A4 (en) 2017-08-09
US20150156501A1 (en) 2015-06-04
EP3078195A1 (en) 2016-10-12
US20180131951A1 (en) 2018-05-10
US10230965B2 (en) 2019-03-12

Similar Documents

Publication Publication Date Title
CN106416250B (zh) 视频编码和解码
US11818385B2 (en) Method and apparatus for video coding
US10904543B2 (en) Method and apparatus for video coding and decoding
US20190174144A1 (en) Video encoding and decoding
US9800893B2 (en) Apparatus, a method and a computer program for video coding and decoding
US9270989B2 (en) Method and apparatus for video coding
US10616573B2 (en) Method and apparatus for video coding and decoding
US20170048550A1 (en) Method and apparatus for video coding
CN105027569B (zh) 用于视频编码和解码的装置和方法
WO2015140401A1 (en) An apparatus, a method and a computer program for video coding and decoding
EP3120552A1 (en) Method and apparatus for video coding and decoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant