CN105359525A - 瓦片对齐信令和一致性约束 - Google Patents

瓦片对齐信令和一致性约束 Download PDF

Info

Publication number
CN105359525A
CN105359525A CN201480037423.9A CN201480037423A CN105359525A CN 105359525 A CN105359525 A CN 105359525A CN 201480037423 A CN201480037423 A CN 201480037423A CN 105359525 A CN105359525 A CN 105359525A
Authority
CN
China
Prior art keywords
layer
cpb
picture
decoding unit
delay
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.)
Pending
Application number
CN201480037423.9A
Other languages
English (en)
Inventor
萨钦·G·德施潘德
克兰·米斯拉
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to CN201810516387.4A priority Critical patent/CN108650514A/zh
Publication of CN105359525A publication Critical patent/CN105359525A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Abstract

本发明涉及在视频参数集扩展句法元素中的变化,其允许关于在与其直接依赖的层有关的各个层之间的瓦片对齐的更加灵活的信令。

Description

瓦片对齐信令和一致性约束
技术领域
本公开总体涉及电子设备。
背景技术
电子设备已变得更小并且更强大以便满足消费者需求并且改善便携性和便利性。消费者已变得依赖于电子设备并且开始期望功能的增加。电子设备的一些示例包括台式计算机、膝上型计算机、蜂窝电话、智能电话、媒体播放器、集成电路等。
一些电子设备用于处理并显示数字媒体。例如,便携式电子设备如今几乎允许在消费者可能所在的任何地方消费数字媒体。另外,一些电子设备可提供数字媒体内容的下载或流传输,以便于消费者的使用和欣赏。
发明内容
技术问题
数字媒体的越来越普及带来了若干问题。例如,活动地表示高质量数字媒体以便于存储、发送和快速回放遇到了若干挑战。可从本讨论观察到,以改进的性能活动地表示数字媒体的系统和方法可能是期望的。
问题的解决方案
根据本发明,提供一种用于解码视频的方法,包括:(a)解码所述视频的多个帧,其中所述帧中的每一个属于多个层中的不同层并且具有(1)在相对应的被解码的所述视频中的相同的时间(temporaltime)和(2)在相对应的被解码的所述视频中的不同的时间中的至少一个,(b)接收提供被用于所述层的所述解码的信息的视频参数集扩展句法,其中所述信息包括用于所述不同层的直接参考层的瓦片边界对齐的标志。
本发明的上述和其它目的、特征和优点在考虑以下结合附图进行的本发明的详细描述时将更容易理解。
附图说明
图1A是图示其中可以实现用于发送消息并且缓冲比特流的系统和方法的一个或多个电子设备的示例的框图;
图1B是图示其中可以实现用于发送消息并且缓冲比特流的系统和方法的一个或多个电子设备的示例的另一框图;
图2是图示发送消息的方法的一个配置的流程图;
图3是图示用于确定用于在访问单元中的解码单元的一个或者多个去除延迟的方法的一个配置的流程图;
图4是图示用于缓冲比特流的方法的一个配置的流程图;
图5是图示为访问单元中的解码单元确定一个或多个去除延迟的方法的一个配置的流程图;
图6A是图示电子设备上的编码器604的一个配置的框图;
图6B是图示电子设备上的编码器604的一个配置的另一框图;
图7A是图示电子设备上的解码器的一个配置的框图;
图7B是图示电子设备上的解码器的一个配置的另一框图;
图8图示发送电子设备中可以利用的各种组件;
图9是图示接收电子设备中可以利用的各种组件的框图;
图10是图示其中可以实现用于发送消息的系统和方法的电子设备的一个配置的框图;以及
图11是图示其中可以实现用于缓冲比特流的系统和方法的电子设备的一个配置的框图。
图12是图示用于解码画面缓冲器的操作方法的一个配置的框图。
图13A-13C图示不同的NAL单元报头句法。
图14图示一般的NAL单元句法。
图15图示现有视频参数集。
图16图示现有可缩放性类型。
图17图示示例性视频参数集。
图18图示示例性可缩放性映射句法。
图19图示示例性视频参数集。
图20图示现有视频参数集。
图21图示现有维度类型、维度id句法。
图22图示示例性视频参数集。
图23图示示例性可缩放性映射句法。
图24图示示例性视频参数集。
图25图示示例性视频参数集。
图26图示示例性视频参数集。
图27图示示例性可缩放性掩码句法。
图28图示示例性视频参数集扩展句法。
图29图示示例性视频参数集扩展句法。
图30图示示例性视频参数集扩展句法。
图31图示示例性视频参数集扩展句法。
图32图示示例性视频参数集扩展句法。
图33图示示例性视频参数集扩展句法。
图34A图示示例性视频参数扩展句法。
图34B图示示例性视频参数扩展句法。
图35A图示示例性op_dpb_info_parameters(j)句法。
图35B图示示例性op_dpb_info_parameters(j)句法。
图36图示另一示例性视频参数扩展句法。
图37图示另一示例性oop_dpb_info_parameters(j)句法。
图38图示另一示例性oop_dpb_info_parameters(j)句法。
图39图示示例性num_dpb_info_parameters句法。
图40图示另一示例性oop_dpb_info_parameters(j)句法。
图41图示另一示例性num_dpb_info_parameters句法。
图42图示另一示例性num_dpb_info_parameters句法。
图43图示另一示例性视频参数扩展句法和layer_dpb_info(i)。
图44图示示例性oop_dpb_info_parameters和layer_dpb_info(i)句法。
图45图示示例性基本层和增强层。
图46图示具有多个切片的示例性画面。
图47图示具有多个切片的另一示例性画面。
图48图示具有列和行边界的画面。
图49图示具有切片的画面。
图50图示具有基本层、增强层和瓦片的访问单元。
图51A图示示例性的SPS句法。
图51B图示示例性的SPS句法。
图52A图示示例性vui句法。
图52B图示示例性vui句法。
图53图示示例性PPS句法。
图54A图示示例性的VPS句法。
图54B图示示例性的VPS句法。
图55图示示例性的VPS扩展句法。
图56图示示例性的VPS扩展句法。
图57图示示例性的VPS扩展句法。
图58图示示例性的VPS扩展句法。
图59图示示例性的VPS扩展句法。
图60图示示例性的vui句法。
图61图示示例性的vui句法。
图62图示示例性的vui句法。
图63图示reflayer_tile_boundaries_aligned_flag操作。
图64图示另一reflayer_tile_boundaries_aligned_flag操作。
具体实施方式
描述一种用于发送消息的电子设备。该电子设备包括处理器以及存储在与该处理器电子通信的存储器中的指令。当编码画面缓冲器(CPB)支持子画面级别的操作时,该电子设备确定是否在画面定时补充增强信息(SEI)消息中包括公共解码单元CPB去除延迟参数。当公共解码单元CPB去除延迟参数将要被包括在画面定时SEI消息(或者一些其它SEI消息或者一些其它参数集,例如画面参数集或序列参数集或视频参数集或自适应参数集)中时,该电子设备还生成公共解码单元CPB去除延迟参数,其中,该公共解码单元CPB去除延迟参数适用于来自CPB的访问单元中的所有解码单元。当公共解码单元CPB去除延迟参数将不被包括在画面定时SEI消息中时,电子设备还针对访问单元中的各个解码单元生成单独的解码单元CPB去除延迟参数。电子设备还发送具有公共解码单元CPB去除延迟参数或者解码单元CPB去除延迟参数的画面定时SEI消息。
公共解码单元CPB去除延迟参数可指定在从CPB去除紧接在前的解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的当前解码单元之前等待的子画面时钟节拍的量。
另外,当解码单元是访问单元中的第一解码单元时,公共解码单元CPB去除延迟参数可指定在从CPB去除与在前的访问单元中的最近缓冲周期SEI消息关联的访问单元中的最后解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的第一解码单元之前等待的子画面时钟节拍的量。
相比之下,当解码单元是访问单元中的非第一解码单元时,公共解码单元CPB去除延迟参数可指定在从CPB去除与画面定时SEI消息关联的访问单元中的在前解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的当前解码单元之前等待的子画面时钟节拍的量。
解码单元CPB去除延迟参数可指定在从CPB去除最后解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的第i解码单元之前等待的子画面时钟节拍的量。
电子设备可根据模2(cpb_removal_delay_length_minus1+1)计数器的余数来计算解码单元CPB去除延迟参数,其中cpb_removal_delay_length_minus1+1是公共解码单元CPB去除延迟参数的长度。
当CPB支持访问单元级别的操作时,电子设备还可生成包括CPB去除延迟参数的画面定时SEI消息,该CPB去除延迟参数指定在从CPB去除与在前的访问单元中的最近缓冲周期SEI消息关联的访问单元之后在从CPB去除与画面定时SEI消息关联的访问单元之前要等待多少时钟节拍。
电子设备还可确定CPB是否支持子画面级别或者访问单元级别的操作。这可包括确定画面定时标志,其基于画面定时标志的值指示编码画面缓冲器(CPB)是否提供支持子画面级别的操作的参数。画面定时标志可被包括在画面定时SEI消息中。
确定是否包括公共解码单元CPB去除延迟参数可包括当公共解码单元CPB去除延迟参数将要被包括在画面定时SEI消息中时将公共解码单元CPB去除延迟标志设定为1。它还可包括当公共解码单元CPB去除延迟参数将不被包括在画面定时SEI消息中时将公共解码单元CPB去除延迟标志设定为0。公共解码单元CPB去除延迟标志可被包括在画面定时SEI消息中。
当CPB支持子画面级别的操作时,电子设备还可生成单独的网络抽象层(NAL)单元相关参数,其针对访问单元中的各个解码单元指示NAL单元的量(偏移一)。可选地,或者另外,电子设备可生成公共NAL参数,其指示访问单元中的各个解码单元公共的NAL单元的量(偏移一)。
还描述了一种用于缓冲比特流的电子设备。该电子设备包括处理器以及存储在与该处理器电子通信的存储器中的指令。该电子设备确定CPB针对访问单元用信号发送子画面级别的参数。当所接收的画面定时补充增强信息(SEI)消息包括公共解码单元编码画面缓冲器(CPB)去除延迟标志时,该电子设备还确定适用于访问单元中的所有解码单元的公共解码单元CPB去除延迟参数。当画面定时SEI消息不包括公共解码单元CPB去除延迟标志时,该电子设备还针对访问单元中的各个解码单元确定单独的解码单元CPB去除延迟参数。该电子设备还利用公共解码单元CPB去除延迟参数或者单独的解码单元CPB去除延迟参数从CPB去除解码单元。该电子设备还对访问单元中的解码单元进行解码。
在一个配置中,电子设备确定画面定时标志被设定在画面定时SEI消息中。电子设备还可根据下式来设定CPB去除延迟参数cpb_removal_delay,
c p b _ r e m o v a l _ d e l a y = ( Σ i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 d u _ c p b _ r e m o v a l _ d e l a y [ i ] ) * t c , s u b t c
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。
可选地,电子设备可设定CPB去除延迟参数、cpb_removal_delay和du_cpb_removal_delay[num_decoding_units_minus1]以满足下式
- 1 ≤ [ c p b _ r e m o v a l _ d e l a y * t c - ( Σ i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 d u _ c p b _ r e m o v a l _ d e l a y [ i ] ) * t c , s u b ) ] ≤ 1
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。
可选地,电子设备可根据cpb_removal_delay*tc=du_cpb_removal_delay[num_decoding_units_minus1]*tc_sub来设定CPB去除延迟参数cpb_removal_delay和du_cpb_removal_delay[num_decoding_units_minus1],其中du_cpb_removal_delay[num_decoding_units_minus1]是第num_decoding_units_minus1解码单元的解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一)。
在一个配置中,电子设备确定画面定时标志被设定在画面定时SEI消息中。电子设备还可设定CPB去除延迟参数cpb_removal_delay和du_cpb_removal_delay[num_decoding_units_minus1]以满足下式:-1<=(cpb_removal_delay*tc-du_cpb_removal_delay[num_decoding_units_minus1]*tc,sub)<=1,其中du_cpb_removal_delay[num_decoding_units_minus1]是第num_decoding_units_minus1解码单元的解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一)。
ClockDiff变量可被定义为ClockDiff=(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1))/time_scale),其中num_units_in_tick是按照频率time_scaleHz(与时钟节拍计数器的一个增量对应)运行的时钟的时间单位的数量,num_units_in_sub_tick是按照频率time_scaleHz(与子画面时钟节拍计数器的一个增量对应)运行的时钟的时间单位的数量,num_decoding_units_minus1+1是访问单元中的解码单元的量,time_scale是在一秒内过去的时间单位的数量。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1,CPB按照子画面级别操作,并且ClockDiff大于零时,解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)+ClockDiff来确定,其中tr,n(m)是解码单元m的标称去除时间,tc_sub是子画面时钟节拍Ceil()是顶函数,taf(m)是解码单元m的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1,CPB按照访问单元级别操作,并且ClockDiff大于零时,访问单元n的去除时间tr(n)根据tr(n)=tr,n(n)+tc*Ceil((taf(n)-tr,n(n))/tc)–ClockDiff来确定,其中tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,Ceil()是顶函数,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1,并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+max((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1,并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据tr(n)=tr,n(n)+max((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+min((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据tr(n)=tr,n(n)+min((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据tr(n)=tr,n(n)+(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,不是最后解码单元的解码单元m的去除时间被设定为tr(m)=taf(m),其中taf(m)是解码单元m的最终到达时间。当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,作为访问单元的最后解码单元m的解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+(tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元m的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,不是最后解码单元的解码单元m的去除时间被设定为tr(m)=taf(m),其中taf(m)是解码单元m的最终到达时间。当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,作为访问单元的最后解码单元m的解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+(tc*Ceil((taf(m)-tr,n(m))/tc)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元m的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,解码单元m的去除时间被设定为tr(m)=taf(m),其中tr,n(m)是解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的解码单元m的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据tr(n)=taf(n),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
另外,在一些情况下,可在比特流的部分中发送标志,以用信号发送以上可选的等式中的哪些用于决定解码单元的去除时间和访问单元的去除时间。在一个情况下,所述标志可被称为du_au_cpb_alignment_mode_flag。如果du_au_cpb_alignment_mode_flag为1,则使用使在基于子画面的模式下操作的CPB的操作与在访问单元模式下操作的CPB匹配的等式。如果du_au_cpb_alignment_mode_flag为0,则使用不使在基于子画面的模式下操作的CPB的操作与在访问单元模式下操作的CPB匹配的等式。
在一个情况下,标志du_au_cpb_alignment_mode_flag可在视频可用性信息(VUI)中用信号发送。在另一情况下,标志du_au_cpb_alignment_mode_flag可在画面定时SEI消息中发送。在另一情况下,标志du_au_cpb_alignment_mode_flag可在比特流的一些其它规范性部分中发送。如下表(0)中给出依据本文所公开的系统和方法的修改的句法和语义的一个示例。
表(0)
应该注意的是,对于各种变量可使用与上面使用的那些不同的符号(名称)。例如,访问单元n的tr(n)可被称为CpbRemovalTime(n),解码单元n的tr(m)可被称为CpbRemovalTime(m),tc_sub可被称为ClockSubTick,tc可被称为ClockTick,访问单元m的taf(n)可被称为访问单元n的FinalArrivalTime(n),解码单元m的taf(m)可被称为FinalArrivalTime(m),tr,n(n)可被称为访问单元n的NominalRemovalTime(n),tr,n(m)可被称为解码单元m的NominalRemovalTime(m)。
还描述了一种由电子设备发送消息的方法。该方法包括当编码画面缓冲器(CPB)支持子画面级别的操作时,确定是否在画面定时补充增强信息(SEI)消息中包括公共解码单元CPB去除延迟参数。该方法还包括当公共解码单元CPB去除延迟参数将要被包括在画面定时SEI消息中时,生成公共解码单元CPB去除延迟参数,其中,该公共解码单元CPB去除延迟参数适用于来自CPB的访问单元中的所有解码单元。该方法还包括当公共解码单元CPB去除延迟参数将不被包括在画面定时SEI消息中时,针对访问单元中的各个解码单元生成单独的解码单元CPB去除延迟参数。该方法还包括发送具有公共解码单元CPB去除延迟参数或者解码单元CPB去除延迟参数的画面定时SEI消息。
还描述了一种由电子设备缓冲比特流的方法。该方法包括确定CPB针对访问单元用信号发送子画面级别的参数。该方法还包括当所接收的画面定时补充增强信息(SEI)消息包括公共解码单元编码画面缓冲器(CPB)去除延迟标志时,确定适用于访问单元中的所有解码单元的公共解码单元CPB去除延迟参数。该方法还包括当画面定时SEI消息不包括公共解码单元CPB去除延迟标志时,针对访问单元中的各个解码单元确定单独的解码单元CPB去除延迟参数。该方法还包括利用公共解码单元CPB去除延迟参数或者单独的解码单元CPB去除延迟参数从CPB去除解码单元。该方法还包括对访问单元中的解码单元进行解码。
本文所公开的系统和方法描述了用于发送消息和缓冲比特流的电子设备。例如,本文所公开的系统和方法描述了以子画面参数开始为比特流进行缓冲。在一些配置中,本文所公开的系统和方法可描述用信号发送基于子画面的假想参考解码器(HRD)参数。例如,本文所公开的系统和方法描述了对画面定时补充增强信息(SEI)消息的修改。当各个子画面到达并且按照规则的间隔从CPB去除时,本文所公开的系统和方法(例如,HRD修改)可导致参数的更紧凑的信号发送。
另外,当存在子画面级别CPB去除延迟参数时,编码画面缓冲器(CPB)可按照访问单元级别或子画面级别操作。本发明的系统和方法还可施加比特流约束,以使得基于子画面级别的CPB操作和访问单元级别CPB操作导致解码单元去除的相同定时。具体地讲,在子画面模式下操作时访问单元中的最后解码单元的去除定时与在访问单元模式下操作时访问单元的去除定时将相同。
应该注意的是,尽管提及HRD时使用了术语“假想”,HRD可被物理地实现。例如,“HRD”可用于描述实际解码器的实现。在一些配置中,HRD可被实现以便确定比特流是否符合高效视频编码(HEVC)规范。例如,HRD可用于确定类型I比特流和类型II比特流是否符合HEVC规范。类型I比特流可仅包含视频编码层(VCL)网络访问层(NAL)单元和填充数据NAL单元。类型II比特流可包括另外的其它NAL单元和句法元素。
视频编码联合组(JCTVC)文献JCTVC-I0333包括基于子画面的HRD并且支持画面定时SEI消息。此功能已被并入高效视频编码(HEVC)委员会草案(JCTVC-I1003)中,其整体通过引用并入本文。B.Bros、W-J.Han、J-R.Ohm、G.J.Sullivan、Wang和T-.Wiegand的“Highefficiencyvideocoding(HEVC)textspecificationdraft10(针对DFIS&LastCall)”(JCTVC-J10003_v34,日内瓦,2013年1月)整体通过引用并入本文。B.Bros、W-J.Han、J-R.Ohm、G.J.Sullivan、Wang和T-.Wiegand的“Highefficiencyvideocoding(HEVC)textspecificationdraft10”(JCTVC-L1003,日内瓦,2013年1月)整体通过引用并入本文。
如下表(1)中给出依据本文所公开的系统和方法的修改的句法和语义的一个示例。
表(1)
关于依据本文所公开的系统和方法的缓冲周期SEI消息语义的示例给出如下。具体地讲,关于修改的句法元素的语义的附加细节给出如下。当NalHrdBpPresentFlag或VclHrdBpPresentFlag等于1时,缓冲周期SEI消息可与比特流中的任何访问单元关联,并且缓冲周期SEI消息可与与各个IDR访问单元、与各个CRA访问单元以及与恢复点SEI消息所关联的各个访问单元关联。对于一些应用,缓冲周期SEI消息的频繁存在可能是期望的。缓冲周期被指定为按照解码顺序介于缓冲周期SEI消息的两个实例之间的访问单元的集合。
“seq_parameter_set_id”指定包含序列HRD属性的序列参数集。seq_parameter_set_id的值可以等于与缓冲周期SEI消息关联的基本编码画面所参考的画面参数集中的seq_parameter_set_id的值。seq_parameter_set_id的值可在0至31(含)的范围内。
“initial_cpb_removal_delay”[SchedSelIdx]指定对于HRD初始化之后的第一缓冲周期,与缓冲周期SEI消息所关联的访问单元关联的编码数据的第一比特到达CPB中的时间与从CPB去除相同访问单元所关联的编码数据的时间之间的第SchedSelIdxCPB的延迟。句法元素的长度(比特)由initial_cpb_removal_delay_length_minus1+1给出。其以90kHz时钟为单位。initial_cpb_removal_delay[SchedSelIdx]可不等于0,并且可不超过90000*(CpbSize[SchedSelldx]÷BitRate[SchedSelldx]),以90kHz时钟为单位的CPB大小的时间当量。
“initial_cpb_removal_delay_offset”[SchedSelIdx]与cpb_removal_delay组合用于第SchedSelIdxCPB以指定编码的访问单元向CPB的初始传送时间。initial_cpb_removal_delay_offset[SchedSelIdx]以90kHz时钟为单位。initial_cpb_removal_delay_offset[SchedSelIdx]句法元素是固定长度代码,其长度(比特)由initial_cpb_removal_delay_length_minus1+1给出。解码器不使用此句法元素,此句法元素仅是传送调度器(HSS)所需的(例如,如JCTVC-I1003的附录C中所指定)。
在整个编码的视频序列上,对于SchedSelIdx的各个值,initial_cpb_removal_delay[SchedSelIdx]与initial_cpb_removal_delay_offset[SchedSelIdx]之和可为恒定的。
“initial_du_cpb_removal_delay”[SchedSelIdx]指定对于HRD初始化之后的第一缓冲周期,与缓冲周期SEI消息所关联的访问单元中的第一解码单元关联的编码数据的第一比特到达CPB中的时间与从CPB去除相同解码单元所关联的编码数据的时间之间的第SchedSelIdxCPB的延迟。该句法元素的长度(比特)由initial_cpb_removal_delay_length_minus1+1给出。其以90kHz时钟为单位。initial_du_cpb_removal_delay[SchedSelIdx]可不等于0,并且可不超过90000*(CpbSize[SchedSelldx]÷BitRate[SchedSelldx]),以90kHz时钟为单位的CPB大小的时间当量。
“initial_du_cpb_removal_delay_offset”[SchedSelIdx]与cpb_removal_delay组合用于第SchedSelIdxCPB以指定解码单元向CPB的初始传送时间。initial_cpb_removal_delay_offset[SchedSelIdx]以90kHz时钟为单位。initial_du_cpb_removal_delay_offset[SchedSelIdx]句法元素是固定长度代码,其长度(比特)由initial_cpb_removal_delay_length_minus1+1给出。解码器不使用此句法元素,此句法元素仅是传送调度器(HSS)所需的(例如,如JCTVC-I1003的附录C中所指定)。
在整个编码的视频序列上,对于SchedSelIdx的各个值,initial_du_cpb_removal_delay[SchedSelIdx]与initial_du_cpb_removal_delay_offset[SchedSelIdx]之和可为恒定的。
关于依据本文所公开的系统和方法的画面定时SEI消息语义的示例给出如下。具体地讲,关于修改的句法元素的语义的附加细节给出如下。
画面定时SEI消息的句法取决于对于画面定时SEI消息所关联的编码画面而言活动的序列参数集的内容。然而,除非瞬时解码刷新(IDR)访问单元的画面定时SEI消息前面是相同访问单元内的缓冲周期SEI消息,否则关联的序列参数集的激活(以及对于不是比特流中的第一画面的IDR画面,编码画面是IDR画面的确定)不会发生,直至编码画面的第一编码切片网络抽象层(NAL)单元的解码。由于编码画面的编码切片NAL单元按照NAL单元顺序遵循画面定时SEI消息,所以可能存在这样的情况:解码器有必要存储包含画面定时SEI消息的原始字节序列有效载荷(RBSP),直至确定对于编码画面而言将活动的序列参数的参数,然后执行画面定时SEI消息的解析。
比特流中的画面定时SEI消息的存在被如下指定。如果CpbDpbDelaysPresentFlag等于1,则一个画面定时SEI消息可存在于编码视频序列的每一个访问单元中。否则(CpbDpbDelaysPresentFlag等于0),编码视频序列的任何访问单元中可不存在画面定时SEI消息。
“cpb_removal_delay”指定在从CPB去除与在前的访问单元中的最近缓冲周期SEI消息关联的访问单元之后在从缓冲器去除与画面定时SEI消息关联的访问单元数据之前要等待多少时钟节拍(参见JCTVC-I1003的子条款E.2.1)。该值也用于计算对于HSS,访问单元数据到达CPB中的最早可能时间,如JCTVC-I1003的附录C中所指定的。该句法元素是固定长度代码,其长度(比特)由cpb_removal_delay_length_minus1+1给出。cpb_removal_delay是模2(cpb_removal_delay_length_minus1+1)计数器的余数。
确定句法元素cpb_removal_delay的长度(比特)的cpb_removal_delay_length_minus1的值是对于画面定时SEI消息所关联的基本编码画面而言活动的序列参数集中所编码的cpb_removal_delay_length_minus1的值,但是cpb_removal_delay指定相对于包含缓冲周期SEI消息的在前访问单元(可以是不同的编码视频序列的访问单元)的去除时间的时钟节拍数。
“dpb_output_delay”用于计算画面的解码画面缓冲器(DPB)输出时间。它指定在从CPB去除访问单元中的最后解码单元之后在从DPB输出解码画面之前要等待多少时钟节拍(参见JCTVC-I1003的子条款C.2)。
关于DPB,画面在仍被标记为“用于短期参考”或者“用于长期参考”时不在其输出时间从DPB去除。对于解码画面仅指定一个dpb_output_delay。句法元素dpb_output_delay的长度(比特)由dpb_output_delay_length_minus1+1给出。当max_dec_pic_buffering[max_temporal_layers_minus1]等于0时,dpb_output_delay可等于0。
从输出自输出定时一致性的解码器(如JCTVC-I1003的子条款C.2中指定的)的任何画面的dpb_output_delay推导的输出时间在解码顺序上可位于从任何后续编码视频序列中的所有画面的dpb_output_delay推导的输出时间之前。通过此句法元素的值建立的画面输出顺序可与通过子条款所指定的PicOrderCnt()的值建立的顺序相同。对于由于在解码顺序上位于no_output_of_prior_pics_flag等于1或者推断等于1的IDR画面之前而没有通过子条款的“排挤(bumping)”处理输出的画面,相对于相同编码视频序列内的所有画面,从dpb_output_delay推导的输出时间可按照PicOrderCnt()的增加值增加。
“num_decoding_units_minus1”加1指定与画面定时SEI消息关联的访问单元的解码单元的数量。num_decoding_units_minus1的值可在0至PicWidthInCtbs*PicHeightInCtbs-1(含)的范围内。
“common_du_cpb_removal_delay_flag”等于1指定存在句法元素common_du_cpb_removal_delay。common_du_cpb_removal_delay_flag等于0指定不存在句法元素common_du_cpb_removal_delay。
“common_du_cpb_removal_delay”指定如下信息:如果解码单元是与画面定时SEI消息关联的访问单元中的第一解码单元,则common_du_cpb_removal_delay指定在从CPB去除与在前的访问单元中的最近缓冲周期SEI消息关联的访问单元中的最后解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的第一解码单元之前要等待多少子画面时钟节拍(参见JCTVC-I1003的子条款E.2.1)。
否则,common_du_cpb_removal_delay指定在从CPB去除与画面定时SEI消息关联的访问单元中的在前解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的当前解码单元之前要等待多少子画面时钟节拍(参见JCTVC-I1003的子条款E.2.1)。该值也用于计算对于HSS,解码单元数据到达CPB中的最早可能时间,如附录C中所指定的。该句法元素是固定长度代码,其长度(比特)由cpb_removal_delay_length_minus1+1给出。common_du_cpb_removal_delay是模2(cpb_removal_delay_length_minus1+1)计数器的余数。
指定“common_du_cpb_removal_delay”的另选方式如下:
“common_du_cpb_removal_delay”指定在从CPB去除最后解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的当前解码单元之前要等待多少子画面时钟节拍(参见JCTVC-I1003的子条款E.2.1)。该值也用于计算对于HSS,解码单元数据到达CPB中的最早可能时间,如附录C中所指定的。该句法元素是固定长度代码,其长度(比特)由cpb_removal_delay_length_minus1+1给出。common_du_cpb_removal_delay是模2(cpb_removal_delay_length_minus1+1)计数器的余数。
确定句法元素common_du_cpb_removal_delay的长度(比特)的cpb_removal_delay_length_minus1的值是对于画面定时SEI消息所关联的编码画面而言活动的序列参数集中所编码的cpb_removal_delay_length_minus1的值,但是common_du_cpb_removal_delay指定相对于包含缓冲周期SEI消息的在前访问单元(可以是不同的编码视频序列的访问单元)中的第一解码单元的去除时间的子画面时钟节拍数。
“num_nalus_in_du_minus1[i]”加1指定与画面定时SEI消息关联的访问单元的第i解码单元的NAL单元的数量。num_nalus_in_du_minus1[i]的值可在0至PicWidthInCtbs*PicHeightInCtbs-1(含)的范围内。
访问单元的第一解码单元由访问单元中按照解码顺序的前num_nalus_in_du_minus1[0]+1个连续的NAL单元组成。访问单元的第i(i大于0)解码单元由按照解码顺序紧随访问单元的先前解码单元中的最后NAL单元之后的num_nalus_in_du_minus1[i]+1个连续的NAL单元组成。各个解码单元中可存在至少一个VCLNAL单元。与VCLNAL单元关联的所有非VCLNAL单元可被包括在同一解码单元中。
“du_cpb_removal_delay[i]”指定在从CPB去除与在前访问单元中的最近缓冲周期SEI消息关联的访问单元中的第一解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的第i解码单元之前要等待多少子画面时钟节拍(参见JCTVC-I1003的子条款E.2.1)。该值还用于计算对于HSS,解码单元数据到达CPB中的最早可能时间(例如,如JCTVC-I1003的附录C中指定的)。句法元素是固定长度的代码,其长度(比特)由cpb_removal_delay_length_minus1+1给出。du_cpb_removal_delay[i]是模2(cpb_removal_delay_length_minus1+1)计数器的余数。
确定句法元素du_cpb_removal_delay[i]的长度(比特)的cpb_removal_delay_length_minus1的值是对于画面定时SEI消息所关联的编码画面而言活动的序列参数集中所编码的cpb_removal_delay_length_minus1的值,但是du_cpb_removal_delay[i]指定相对于包含缓冲周期SEI消息的在前访问单元(可以是不同的编码视频序列的访问单元)中的第一解码单元的去除时间的子画面时钟节拍数。
在一个配置中,解码单元去除的定时和解码单元的解码可如下实现。
如果SubPicCpbFlag等于0,则变量CpbRemovalDelay(m)被设定为与作为解码单元m的访问单元关联的画面定时SEI消息中的cpb_removal_delay的值,变量Tc被设定为tc。否则,如果SubPicCpbFlag等于1并且common_du_cpb_removal_delay_flag为0,则变量CpbRemovalDelay(m)被设定为与包含解码单元m的访问单元关联的画面定时SEI消息中的解码单元m(m在0至num_decoding_units_minus1的范围内)的du_cpb_removal_delay[i]的值,并且变量Tc被设定为tc_sub
在一些情况下,否则,如果SubPicCpbFlag等于1并且common_du_cpb_removal_delay_flag为0,则变量CpbRemovalDelay(m)被设定为与包含解码单元m的访问单元关联的画面定时SEI消息中的解码单元m(m在0至num_decoding_units_minus1的范围内)的(m+1)*du_cpb_removal_delay[i]的值,并且变量Tc被设定为tc_sub
否则,如果SubPicCpbFlag等于1并且common_du_cpb_removal_delay_flag为1,则变量CpbRemovalDelay(m)被设定为与包含解码单元m的访问单元关联的画面定时SEI消息中的解码单元m的common_du_cpb_removal_delay的值,变量Tc被设定为tc_sub
当解码单元m是n等于0的解码单元(对HRD初始化的访问单元的第一解码单元)时,从CPB的解码单元的标称去除时间由tr,n(0)=InitCpbRemovalDelay[SchedSelldx]÷90000指定。
当解码单元m是不对HRD初始化的缓冲周期的第一访问单元的第一解码单元时,从CPB的解码单元的标称去除时间由tr,n(m)=tr,n(mb)+Tc*CpbRemovalDelay(m)指定,其中tr,n(mb)是先前缓冲周期的第一解码单元的标称去除时间。
当解码单元m是缓冲周期的第一解码单元时,则在解码单元m的去除时间tr,n(m)处mb被设定为等于m。不是缓冲周期的第一解码单元的解码单元m的标称去除时间tr,n(m)由tr,n(m)=tr,n(mb)+Tc*CpbRemovalDelay(m)给出,其中tr,n(mb)是当前缓冲周期的第一解码单元的标称去除时间。
解码单元m的去除时间被如下指定。如果low_delay_hrd_flag等于0或者tr,n(m)>=taf(m),则解码单元m的去除时间由tr(m)=tr,n(m)指定。否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),则解码单元的去除时间由tr(m)=tr,n(m)+Tc*Ceil((taf(m)-tr,n(m))÷Tc)指定。后一种情况(low_delay_hrd_flag等于1并且tr,n(m)<taf(m))指示解码单元m的大小b(m)太大,从而妨碍了按照标称去除时间来去除。
在另一情况下,解码单元m的去除时间被如下指定。如果low_delay_hrd_flag等于0或者tr,n(m)>=taf(m),则解码单元m的去除时间由tr(m)=tr,n(m)指定。否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),则不是访问单元中的最后解码单元的解码单元m的去除时间由tr(m)=taf(m)指定,并且是访问单元中的最后解码单元的解码单元m的去除时间tr(m)=tr,n(m)+Tc*Ceil((taf(m)-tr,n(m))÷tc)。后一种情况(low_delay_hrd_flag等于1并且tr,n(m)<taf(m))指示解码单元m的大小b(m)太大,从而妨碍了按照标称去除时间来去除。
在另一情况下,解码单元m的去除时间被如下指定。如果low_delay_hrd_flag等于0或者tr,n(m)>=taf(m),则解码单元m的去除时间由tr(m)=tr,n(m)指定。否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),则不是访问单元中的最后解码单元的解码单元m的去除时间由tr(m)=taf(m)指定,作为访问单元中的最后解码单元的解码单元m的去除时间tr(m)=tr,n(m)+tc*Ceil((taf(m)-tr,n(m))÷tc)。后一种情况(low_delay_hrd_flag等于1并且tr,n(m)<taf(m))指示解码单元m的大小b(m)太大,从而妨碍了按照标称去除时间来去除。
在另一情况下,解码单元m的去除时间被如下指定。如果low_delay_hrd_flag等于0或者tr,n(m)>=taf(m),则解码单元m的去除时间由tr(m)=tr,n(m)指定。否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),解码单元m的去除时间由tr(m)=taf(m)指定。后一种情况(low_delay_hrd_flag等于1并且tr,n(m)<taf(m))指示解码单元m的大小b(m)太大,从而妨碍了按照标称去除时间来去除。
当SubPicCpbFlag等于1时,访问单元n的标称CPB去除时间tr,n(n)被设定为访问单元n中的最后解码单元的标称CPB去除时间,访问单元n的CPB去除时间tr(n)被设定为访问单元n中的最后解码单元的CPB去除时间。
当SubPicCpbFlag等于0时,各个解码单元是访问单元,因此访问单元n的标称CPB去除时间和CPB去除时间是解码单元n的标称CPB去除时间和CPB去除时间。
在解码单元m的CPB去除时间,解码单元被瞬时地解码。
表(2)中如下给出了依据本文所公开的系统和方法的画面定时SEI消息的修改的句法和语义的另一示例。依据本文所公开的系统和方法的修改加粗表示。
表(2)
表(2)所示的示例包括句法元素common_num_nalus_in_du_minus1,其可用于确定在去除解码单元时应该从CPB去除多少数据。“common_num_nalus_in_du_minus1”加1指定与画面定时SEI消息关联的访问单元的各个解码单元中的NAL单元的数量。common_num_nalus_in_du_minus1的值可在0至PicWidthInCtbs*PicHeightInCtbs-1(含)的范围内。
访问单元的第一解码单元由访问单元中按照解码顺序的第一common_num_nalus_in_du_minus1+1个连续的NAL单元组成。访问单元的第i(i大于0)解码单元由按照解码顺序紧随访问单元的先前解码单元中的最后NAL单元之后的common_num_nalus_in_du_minus1+1个连续的NAL单元组成。各个解码单元中可存在至少一个VCLNAL单元。与VCLNAL单元关联的所有非VCLNAL单元可被包括在同一解码单元中。
表(3)中如下给出了依据本文所公开的系统和方法的画面定时SEI消息的修改的句法和语义的另一示例。依据本文所公开的系统和方法的修改加粗表示。
表(3)
表(3)所示的示例包括句法元素“common_num_nalus_in_du_flag”,其等于1时指定存在句法元素“common_num_nalus_in_du_minus1”。“common_num_nalus_in_du_flag”等于0指定不存在句法元素“common_num_nalus_in_du_minus1”。
在另一实施方式中,可不发送标志common_du_cpb_removal_delay_flagcommon_num_nalus_in_du_minus1。相反,每次可发送句法元素common_num_nalus_in_du_minus1和common_du_cpb_removal_delay。在这种情况下,可使用这些句法元素的0(或一些其它)值来指示没有用信号发送这些元素。
除了画面定时SEI消息的句法元素和语义的修改以外,本发明的系统和方法还可实现比特流约束以使得基于子画面的CPB操作和访问单元级别CPB操作导致解码单元去除的相同定时。
当sub_pic_cpb_params_present_flag等于1,存在子画面级别CPB去除延迟参数时,CPB可按照访问单元级别或者子画面级别来操作。sub_pic_cpb_params_present_flag等于0指定不存在子画面级别CPB去除延迟参数,CPB按照访问单元级别来操作。当不存在sub_pic_cpb_params_present_flag时,其值被推断为等于0。
为了支持访问单元级别或者子画面级别二者的操作,可使用以下比特流约束:如果sub_pic_cpb_params_present_flag为1,则比特流一致性要求是在针对所有i用信号发送cpb_removal_delay和du_cpb_removal_delay[i]的值时遵守以下约束:
c p b _ r e m o v a l _ d e l a y = ( &Sigma; i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 d u _ c p b _ r e m o v a l _ d e l a y &lsqb; i &rsqb; ) * t c , s u b t c
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。在一些实施方式中,可增加容差参数以满足上述约束。
为了支持访问单元级别或者子画面级别二者的操作,可使用如下的比特流约束:将变量Tdu(k)定义为:
T d u ( k ) = T d u ( k - 1 ) + t c _ s u b * &Sigma; i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 k ( d u _ c p b _ r e m o v a l _ d e l a y _ min u s 1 k &lsqb; i &rsqb; + 1 )
其中du_cpb_removal_delay_minus1k[i]和num_decoding_units_minus1k是第k访问单元的第i解码单元的参数(对于将HRD初始化的访问单元,k=0,并且对于k<1,Tdu(k)=0),并且其中du_cpb_removal_delay_minus1k[i]+1=du_cpb_removal_delay_minus1k[i]是第k访问单元的第I解码单元的解码单元CPB去除延迟参数,num_decoding_units_minus1k是第k访问单元中的解码单元的数量,tc是时钟节拍,tc,sub是子画面时钟节拍,i和k是索引。然后,当画面定时标志(例如,sub_pic_cpb_params_present_flag)被设定为1时,以下约束可为真:(au_cpb_removal_delay_minus1+1)*tc==Tdu(k),其中(au_cpb_removal_delay_minus1+1)=cpb_removal_delay,CPB去除延迟。因此,在这种情况下,CPB去除延迟(au_cpb_removal_delay_minus1+1)被设定为使得基于子画面的CPB操作和基于访问单元的CPB操作的操作导致访问单元去除的相同定时和访问单元去除的最后解码单元。
为了支持访问单元级别或者子画面级别二者的操作,可使用以下比特流约束:如果sub_pic_cpb_params_present_flag为1,则比特流一致性要求是在针对所有i用信号发送cpb_removal_delay和du_cpb_removal_delay[i]的值时遵守以下约束:
- 1 &le; &lsqb; c p b _ r e m o v a l _ d e l a y * t c - ( &Sigma; i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 d u _ c p b _ r e m o v a l _ d e l a y &lsqb; i &rsqb; ) * t c , s u b ) &rsqb; &le; 1
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。
为了支持访问单元级别或者子画面级别二者的操作,可使用以下比特流约束:如果sub_pic_cpb_params_present_flag为1,则比特流一致性要求是在用信号发送cpb_removal_delay和du_cpb_removal_delay[num_decoding_units_minus1]的值时遵守以下约束:cpb_removal_delay*tc=du_cpb_removal_delay[num_decoding_units_minus1]*tc,sub,其中du_cpb_removal_delay[num_decoding_units_minus1]是第num_decoding_units_minus1解码单元的解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一)。在一些实施方式中,可添加容差参数以满足上述约束。
为了支持访问单元级别或者子画面级别二者的操作,可使用以下比特流约束:如果sub_pic_cpb_params_present_flag为1,则比特流一致性要求是在针对所有i用信号发送cpb_removal_delay和du_cpb_removal_delay[i]的值时遵守以下约束:-1<=(cpb_removal_delay*tc-du_cpb_removal_delay[num_decoding_units_minus1]*tc,sub)<=1,其中du_cpb_removal_delay[num_decoding_units_minus1]是第num_decoding_units_minus1解码单元的解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一)。
另外,本发明的系统和方法可修改解码单元去除的定时。当存在子画面级别CPB去除延迟参数时,针对“大画面”(当low_delay_hrd_flag为1并且tr,n(m)<taf(m))的解码单元的去除时间可被改变以补偿由于时钟节拍计数器和子画面时钟节拍计数器可引起的差异。
当sub_pic_cpb_params_present_flag等于1时,则存在子画面级别CPB去除延迟参数,并且CPB可按照访问单元级别或者子画面级别来操作。sub_pic_cpb_params_present_flag等于0指定不存在子画面级别CPB去除延迟参数并且CPB按照访问单元级别来操作。当不存在sub_pic_cpb_params_present_flag时,其值被推断为等于0。
具体地讲,解码单元去除的定时和解码单元解码的实现的一个示例如下。变量SubPicCpbPreferredFlag由外部装置指定,或者当外部装置没有指定时被设定为0。变量SubPicCpbFlag如下推导:SubPicCpbFlag=SubPicCpbPreferredFlag&&sub_pic_cpb_params_present_flag。如果SubPicCpbFlag等于0,则CPB按照访问单元级别操作并且各个解码单元是访问单元。否则,CPB按照子画面级别操作并且各个解码单元是访问单元的子集。
如果SubPicCpbFlag等于0,则变量CpbRemovalDelay(m)被设定为与作为解码单元m的访问单元关联的画面定时SEI消息中的cpb_removal_delay的值,并且变量Tc被设定为tc。否则,变量CpbRemovalDelay(m)被设定为与包含解码单元m的访问单元关联的画面定时SEI消息中的解码单元m的du_cpb_removal_delay[i]的值,并且变量Tc被设定为tc_sub
当解码单元m是n等于0的解码单元(对HRD初始化的访问单元的第一解码单元)时,从CPB的解码单元的标称去除时间由tr,n(0)=InitCpbRemovalDelay[SchedSelldx]÷90000指定。
当解码单元m是不对HRD初始化的缓冲周期的第一访问单元的第一解码单元时,从CPB的解码单元的标称去除时间由tr,n(m)=tr,n(mb)+Tc*CpbRemovalDelay(m)指定,其中tr,n(mb)是先前缓冲周期的第一解码单元的标称去除时间。
当解码单元m是缓冲周期的第一解码单元时,在解码单元m的去除时间tr,n(m)处mb被设定为等于m。
不是缓冲周期的第一解码单元的解码单元m的标称去除时间tr,n(m)由tr,n(m)=tr,n(mb)+Tc*CpbRemovalDelay(m)给出,其中tr,n(mb)是当前缓冲周期的第一解码单元的标称去除时间。
解码单元m的去除时间被如下指定。变量ClockDiff被定义为ClockDiff=(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1))/time_scale)。在一些情况下,比特流一致性要求可为用信号发送参数num_units_in_tick、num_units_in_sub_tick、num_decoding_units_minus1以使得满足以下式。
(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1)))>=0
在一些其它情况下,比特流一致性要求可为用信号发送参数num_units_in_tick、num_units_in_sub_tick、num_decoding_units_minus1以使得满足以下式。
(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1)))<=0
如果low_delay_hrd_flag等于0或者tr,n(m)>=taf(m),则解码单元m的去除时间由tr(m)=tr,n(m)指定。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),当sub_pic_cpb_params_present_flag等于1并且CPB按照子画面级别操作时,并且如果ClockDiff大于零,则解码单元m(当它是访问单元n的最后解码单元时)的去除时间由tr(m)=tr,n(m)+Tc*Ceil((taf(m)-tr,n(m))/Tc)+ClockDiff指定。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),当sub_pic_cpb_params_present_flag等于1并且CPB按照访问单元级别操作时,并且如果ClockDiff小于零,则访问单元n的去除时间由tr(m)=tr,n(m)+tc*Ceil((taf(m)-tr,n(m))/tc)-ClockDiff指定。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),解码单元m的去除时间由tr(m)=tr,n(m)+Tc*Ceil((taf(m)-tr,n(m))/Tc)指定。后一种情况(low_delay_hrd_flag等于1并且tr,n(m)<taf(m))指示解码单元m的大小b(m)太大,从而妨碍了按照标称去除时间去除。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),当画面定时标志被设定为1并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+min((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
否则(low_delay_hrd_flag等于1和tr,n(n)<taf(n)),当画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据:tr(n)=tr,n(n)+min((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
否则(low_delay_hrd_flag等于1和tr,n(m)<taf(m)),画面定时标志被设定为1并且CPB按照子画面级别操作,访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
否则(low_delay_hrd_flag等于1并且tr,n(n)<taf(n)),画面定时标志被设定为1并且CPB按照访问单元级别操作,访问单元n的去除时间tr(n)根据:tr(n)=tr,n(n)+(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),画面定时标志被设定为1并且CPB按照子画面级别操作,不是访问单元的最后解码单元的解码单元的去除时间被设定为tr(m)=taf(m),其中taf(m)是解码单元m的最终到达时间。并且访问单元的最后解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+(tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub))设定,其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元m的最终到达时间。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),画面定时标志被设定为1并且CPB按照子画面级别操作,不是访问单元的最后解码单元的解码单元的去除时间被设定为tr(m)=taf(m),其中taf(m)是解码单元m的最终到达时间。并且访问单元的最后解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+(tc*Ceil((taf(m)-tr,n(m))/tc))设定,其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元m的最终到达时间。
否则(low_delay_hrd_flag等于1并且tr,n(m)<taf(m)),画面定时标志被设定为1并且CPB按照子画面级别操作,解码单元的去除时间被设定为tr(m)=taf(m),其中tr,n(m)是解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的解码单元m的最终到达时间。
否则(low_delay_hrd_flag等于1并且tr,n(n)<taf(n)),画面定时标志被设定为1并且CPB按照访问单元级别操作,访问单元n的去除时间tr(n)根据:tr(n)=taf(n),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当SubPicCpbFlag等于1时,访问单元n的标称CPB去除时间tr,n(n)被设定为访问单元n中的最后解码单元的标称CPB去除时间,访问单元n的CPB去除时间tr(n)被设定为访问单元n中的最后解码单元的CPB去除时间。
当SubPicCpbFlag等于0时,各个解码单元是访问单元,因此访问单元n的标称CPB去除时间和CPB去除时间是解码单元n的标称CPB去除时间和CPB去除时间。在解码单元m的CPB去除时间,解码单元被瞬时地解码。
如上文所示,本文所公开的系统和方法提供了修改承载基于子画面的参数的画面定时SEI消息比特流的句法和语义。在一些配置中,本文所公开的系统和方法可被应用于HEVC规范。
为了方便,给出可应用于本文所公开的系统和方法的若干定义如下。随机访问点可以是数据流(例如,比特流)中的任何点,其中比特流的解码不需要访问随机访问点之前的比特流中的任何点以按照输出顺序对当前画面以及所述当前画面后续的所有画面解码。
缓冲周期可被指定为在解码顺序上介于缓冲周期SEI消息的两个实例之间的访问单元集合。补充增强信息(SEI)可包含并非从VCLNAL单元对编码画面的样本进行解码所必需的信息。SEI消息可有助于与解码、显示或其它目的有关的过程。一致性的解码器可能不需要处理用于与HEVC规范(例如,HEVC规范(JCTVC-I1003)的附录C包括一致性规范)的输出顺序一致性的此信息。一些SEI消息信息可用于检查比特流一致性并且用于输出定时解码器一致性。
缓冲周期SEI消息可以是与缓冲周期有关的SEI消息。画面定时SEI消息可以是与CPB去除定时有关的SEI消息。这些消息可定义限定了比特流到达定时和编码画面去除定时的句法和语义。
编码画面缓冲器(CPB)可以是按照假想参考解码器(HRD)中指定的解码顺序包含访问单元的先入先出缓冲器。访问单元可以是网络访问层(NAL)单元的集合,其在解码顺序上是连续的并且只包含一个编码画面。除了编码画面的编码切片NAL单元以外,访问单元还可包含其它不包含编码画面的切片的NAL单元。访问单元的解码总是得到解码画面。NAL单元可以是这样的句法结构,其包含跟随的数据的类型的指示以及包含该数据的字节,所述字节为根据需要穿插有防竞争字节的原始字节序列有效载荷的形式。
如本文所用,术语“公共”通常是指适用于不止一个事物的句法元素或变量。例如,在画面定时SEI消息中的句法元素的背景下,术语“公共”可表示句法元素(例如,common_du_cpb_removal_delay)适用于与画面定时SEI消息关联的访问单元中的所有解码单元。另外,以“n”和“m”来描述的数据单元通常分别表示访问单元和解码单元。
现在参照附图描述各种配置,附图中相似的标号可指示功能上相似的元件。本文中在附图中大致描述并示出的系统和方法可按照各种各样不同的配置来加以布置和设计。因此,图中所表示的若干配置的以下更详细的描述并非旨在限制要求保护的范围,而仅是所述系统和方法的代表。
图1A是示出可实现用于发送消息和缓冲比特流的系统和方法的一个或多个电子设备102的示例的框图。在此示例中,示出了电子设备A102a和电子设备B102b。然而,应该注意的是,在一些配置中与电子设备A102a和电子设备B102b相关描述的特征和功能中的一个或多个可被组合到单个电子设备中。
电子设备A102a包括编码器104。编码器104包括消息生成模块108。包括在电子设备A102a内的各个元件(例如,编码器104和消息生成模块108)可被实现于硬件、软件或这二者的组合中。
电子设备A102a可获得一个或多个输入画面106。在一些配置中,一个或多个输入画面106可在电子设备A102a上利用图像传感器来捕获,可从存储器检索,和/或可从另一电子设备接收。
编码器104可对一个或多个输入画面106进行编码以生成编码数据。例如,编码器104可对一系列输入画面106(例如,视频)进行编码。在一个配置中,编码器104可以是HEVC编码器。编码数据可以是数字数据(例如,比特流114的一部分)。编码器104可基于输入信号生成开销信令。
消息生成模块108可生成一个或多个消息。例如,消息生成模块108可生成一个或多个SEI消息或者其它消息。对于支持子画面级别的操作的CPB,电子设备102可发送子画面参数(例如,CPB去除延迟参数)。具体地讲,电子设备102(例如,编码器104)可确定是否将公共解码单元CPB去除延迟参数包括在画面定时SEI消息中。例如,当编码器104要将公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)包括在画面定时SEI消息中时,电子设备可将标志(例如,common_du_cpb_removal_delay_flag)设定为一。当包括公共解码单元CPB去除延迟参数时,电子设备可生成适用于访问单元中的所有解码单元的公共解码单元CPB去除延迟参数。换言之,并非针对访问单元中的各个解码单元包括解码单元CPB去除延迟参数,公共参数可应用于与画面定时SEI消息关联的访问单元中的所有解码单元。
相比之下,当公共解码单元CPB去除延迟参数将不被包括在画面定时SEI消息中时,电子设备102可针对与画面定时SEI消息关联的访问单元中的各个解码单元生成单独的解码单元CPB去除延迟。消息生成模块108可执行下面结合图2和图3描述的过程中的一个或多个。
在一些配置中,电子设备A102a可向电子设备B102b发送消息作为比特流114的一部分。在一些配置中,电子设备A102a可通过分开的传输110来向电子设备B102b发送消息。例如,分开的传输可以不是比特流114的一部分。例如,可利用一些带外机制来发送画面定时SEI消息或其它消息。应该注意的是,在一些配置中,所述其它消息可包括上述画面定时SEI消息的特征中的一个或多个。另外,在一个或多个方面,所述其它消息可与上述SEI消息相似地使用。
编码器104(以及例如消息生成模块108)可生成比特流114。比特流114可包括基于一个或多个输入画面106的编码画面数据。在一些配置中,比特流114还可包括诸如画面定时SEI消息或其它消息、一个或多个切片报头、一个或多个PPS等的开销数据。随着附加的输入画面106被编码,比特流114可包括一个或多个编码画面。例如,比特流114可包括具有对应开销数据(例如,画面定时SEI消息或其它消息)的一个或多个编码画面。
比特流114可被提供给解码器112。在一个示例中,可利用有线或无线链路将比特流114发送给电子设备B102b。在一些情况下,这可在诸如互联网或局域网(LAN)的网络上进行。如图1A所示,解码器112可与电子设备A102a上的编码器104分离地被实现于电子设备B102b上。然而,应该注意的是,在一些配置中,编码器104和解码器112可被实现于同一电子设备上。在编码器104和解码器112被实现于同一电子设备上的实现方式中,例如,比特流114可经总线被提供给解码器112或者被存储在存储器中以便于解码器112检索。
解码器112可被实现于硬件、软件或者这二者的组合中。在一个配置中,解码器112可以是HEVC解码器。解码器112可接收(例如,获得)比特流114。解码器112可基于比特流114来生成一个或多个解码画面118。一个或多个解码画面118可被显示、回放、存储在存储器中和/或发送给另一设备等。
解码器112可包括CPB120。CPB120可临时存储编码画面。CPB120可使用在画面定时SEI消息中找到的参数来确定何时去除数据。当CPB120支持子画面级别的操作时,可一次去除单独的解码单元,而非整个访问单元。解码器112可包括解码画面缓冲器(DPB)122。各个解码画面被置于DPB122中以便于解码处理参考以及便于输出和剪切。在稍后的DPB输出时间或者帧间预测不再需要参考它的时间从DPB去除解码画面。
解码器112可接收消息(例如,画面定时SEI消息或其它消息)。解码器112还可确定所接收的消息是否包括公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)。这可包括识别当画面定时SEI消息中存在公共参数时设定的标志(例如,common_du_cpb_removal_delay_flag)。如果存在公共参数,则解码器112可确定适用于访问单元中的所有解码单元的公共解码单元CPB去除延迟参数。如果不存在公共参数,则解码器112可针对访问单元中的各个解码单元确定单独的解码单元CPB去除延迟参数。解码器112还可利用公共解码单元CPB去除延迟参数或者单独的解码单元CPB去除延迟参数从CPB120去除解码单元。CPB120可执行下面结合图4和图5描述的过程中的一个或多个。
上述HRD可以是图1A所示的解码器112的一个示例。因此,在一些配置中,电子设备102可依据上述的HRD和CPB120和DPB122来操作。
应该注意的是,包括在一个或多个电子设备102中的元件或其部分中的一个或多个可被实现于硬件中。例如,这些元件或其部分中的一个或多个可被实现为芯片、电路或者硬件组件等。还应该注意的是,本文所述的功能或方法中的一个或多个可被实现于硬件中和/或利用硬件来执行。例如,本文所述的方法中的一个或多个可被实现于芯片集、专用集成电路(ASIC)、大规模集成电路(LSI)或者集成电路等中和/或利用其来实现。
图1B是示出编码器1908和解码器1972的另一示例的框图。在此示例中,示出了电子设备A1902和电子设备B1970。然而,应该注意的是,在一些配置中,与电子设备A1902和电子设备B1970相关描述的特征和功能可被组合为单个电子设备。
电子设备A1902包括编码器1908。编码器1908可包括基本层编码器1910和增强层编码器1920。视频编码器1908适合于可缩放视频编码和多视角视频编码,如稍后描述的。编码器1908可被实现于硬件、软件或者这二者的组合中。在一个配置中,编码器1908可以是高效视频编码(HEVC)编码器(包括可缩放和/或多视角)。同样可使用其它编码器。电子设备A1902可获得源1906。在一些配置中,源1906可在电子设备A1902上利用图像传感器来捕获,从存储器检索,或者接收自另一电子设备。
编码器1908可对源1906进行编码以生成基本层比特流1934和增强层比特流1936。例如,编码器1908可对源1906中的一系列画面(例如,视频)进行编码。具体地讲,对于用于SNR可缩放性(也称作质量可缩放性)的可缩放视频编码,相同的源1906可被提供给基本层和增强层编码器。具体地讲,对于用于空间可缩放性的可缩放视频编码,下采样的源可用于基本层编码器。具体地讲,对于多视角编码,不同视角的源可用于基本层编码器和增强层编码器。编码器1908可类似于稍后结合图6B描述的编码器1782。
比特流1934、1936可包括基于源1906的编码画面数据。在一些配置中,比特流1934、1936还可包括诸如切片报头信息、PPS信息等的开销数据。随着源1906中的附加画面被编码,比特流1934、1936可包括一个或多个编码画面。
比特流1934、1936可被提供给解码器1972。解码器1972可包括基本层解码器1980和增强层解码器1990。视频解码器1972适合于可缩放视频解码和多视角视频解码。在一个示例中,可利用有线或无线链路将比特流1934、1936发送给电子设备B1970。在一些情况下,这可经诸如互联网或局域网(LAN)的网络来进行。如图1B所示,解码器1972可与电子设备A1902上的编码器1908分离地在电子设备B1970上实现。然而,应该注意的是,在一些配置中,编码器1908和解码器1972可被实现于同一电子设备上。在编码器1908和解码器1972被实现于同一电子设备上的实现方式中,例如,比特流1934、1936可经总线被提供给解码器1972或者被存储在存储器中以便于解码器1972检索。解码器1972可提供解码的基本层1992和一个或多个解码的增强层画面1994作为输出。
解码器1972可被实现于硬件、软件或者这二者的组合中。在一个配置中,解码器1972可以是高效视频编码(HEVC)解码器(包括可缩放和/或多视角)。同样可使用其它解码器。解码器1972可类似于稍后结合图7B描述的解码器1812。另外,基本层编码器和/或增强层编码器可各自包括消息生成模块,例如与图1A相关描述的。另外,基本层解码器和/或增强层解码器可包括编码画面缓冲器和/或解码画面缓冲器,例如与图1A相关描述的。另外,如果适用的话,图1B的电子设备可依据图1A的电子设备的功能来操作。
图2是示出用于发送消息的方法200的一个配置的流程图。方法200可由编码器104或者其子部分之一(例如,消息生成模块108)来执行。编码器104可确定202指示CPB120是否支持子画面级别的操作的画面定时标志(例如,sub_pic_cpb_params_present_flag)。例如,当画面定时标志被设定为1时,CPB120可在访问单元级别或子画面级别来操作。应该注意的是,即使当画面定时标志被设定为1时,关于实际上是否以子画面级别来操作的决策也留给解码器112自己。
编码器104还可为访问单元中的解码单元确定204一个或多个去除延迟。例如,编码器104可确定适用于访问单元中的所有解码单元的从CPB120的单个公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)。可选地,编码器104可为访问单元中的各个解码单元确定单独的解码单元CPB去除延迟(例如,du_cpb_removal_delay[i])。
编码器104还可确定206指示访问点中的各个解码单元中的NAL单元的量(偏移一)的一个或多个NAL参数。例如,编码器104可确定适用于访问单元中的所有解码单元的从CPB120的单个公共NAL参数(例如,common_num_nalus_in_du_minus1)。可选地,编码器104可为访问单元中的各个解码单元确定单独的解码单元CPB去除延迟(例如,num_nalus_in_du_minus1[i])。
编码器104还可发送208包括画面定时标志、去除延迟和NAL参数的画面定时SEI消息。画面定时SEI消息还可包括其它参数(例如,cpb_removal_delay、dpb_output_delay等)。例如,电子设备102可经由无线传输、有线传输、设备总线、网络等中的一个或多个来发送消息。例如,电子设备A102a可向电子设备B102b发送消息。例如,消息可以是比特流114的一部分。在一些配置中,电子设备A102a可在分开的传输110(不是比特流114的一部分)中向电子设备B102b发送208消息。例如,可利用一些带外机制来发送消息。在一些情况下,可在不同于画面定时SEI消息的SEI消息中发送204、206中所指示的信息。在另一情况下,可在参数集(例如,视频参数集和/或序列参数集和/或画面参数集和/或适应参数集和/或切片报头)中发送204、206中所指示的信息。
图3是示出为访问单元中的解码单元确定一个或多个去除延迟的方法300的一个配置的流程图。换言之,图3所示的方法300可进一步示出图2所示的方法200中的步骤204。方法300可由编码器104执行。编码器104可确定302是否包括公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)。这可包括确定是否设定公共解码单元CPB去除延迟标志(例如,common_du_cpb_removal_delay_flag)。在按照规则的间隔从CPB去除解码单元的情况下,编码器104可发送该公共参数。例如,当各个解码单元对应于特定数量的行的画面或者具有一些其它规则结构时,可为这种情况。
例如,当公共解码单元CPB去除延迟参数将要被包括在画面定时SEI消息中,公共解码单元CPB去除延迟标志可被设定为1,当不被包括时可被设定为0。如果是(例如,标志被设定为1),则编码器104可确定304适用于访问单元中的所有解码单元的公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)。如果否(例如,标志被设定为0),则编码器104可为访问单元中的各个解码单元确定306单独的解码单元CPB去除延迟参数(例如,du_cpb_removal_delay[i])。
如果画面定时SEI消息中存在公共解码单元CPB去除延迟参数,则它可指定在从CPB120去除紧接在前的解码单元之后在从CPB120去除与画面定时SEI消息关联的访问单元中的当前解码单元之前要等待的子画面时钟节拍的量。
例如,当解码单元是访问单元中的第一解码单元时,公共解码单元CPB120去除延迟参数可指定在从CPB120去除与在前访问单元中的最近缓冲周期SEI消息关联的访问单元中的最后解码单元之后在从CPB120去除与画面定时SEI消息关联的访问单元中的第一解码单元之前要等待的子画面时钟节拍的量。
当解码单元不是访问单元中的第一解码单元时,公共解码单元CPB去除延迟参数可指定在从CPB120去除与画面定时SEI消息关联的访问单元中的在前解码单元之后在从CPB去除与画面定时SEI消息关联的访问单元中的当前解码单元之前要等待的子画面时钟节拍的量。
相比之下,当画面定时SEI消息中没有发送公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)时,可针对访问单元中的各个解码单元在画面定时SEI消息中包括单独的解码单元CPB去除延迟参数(例如,du_cpb_removal_delay[i])。解码单元CPB去除延迟参数(例如,du_cpb_removal_delay[i])可指定在从CPB120去除最后解码单元之后在从CPB120去除与画面定时SEI消息关联的访问单元中的第i解码单元之前要等待的子画面时钟节拍的量。解码单元CPB去除延迟参数可根据模2(cpb_removal_delay_length_minus1+1)计数器的余数来计算,其中cpb_removal_delay_length_minus1+1是公共解码单元CPB去除延迟参数的长度。
图4是示出用于缓冲比特流的方法400的一个配置的流程图。方法400可由电子设备102(例如,电子设备B102b)中的解码器112执行,其可接收402消息(例如,画面定时SEI消息或其它消息)。例如,电子设备102可经由无线传输、有线传输、设备总线、网络等中的一个或多个来接收402消息。例如,电子设备B102b可从电子设备A102a接收402消息。例如,所述消息可以是比特流114的一部分。在另一示例中,电子设备B102b可在分开的传输110(例如,不是比特流114的一部分)中从电子设备A102a接收消息。例如,画面定时SEI消息可利用一些带外机制来接收。在一些配置中,所述消息可包括画面定时标志、访问单元中的解码单元的一个或多个去除延迟以及一个或多个NAL参数中的一个或多个。因此,接收402消息可包括接收画面定时标志、访问单元中的解码单元的一个或多个去除延迟以及一个或多个NAL参数中的一个或多个。
解码器112可确定404CPB120是在访问单元级别还是在子画面级别来操作。例如,解码器112如果想要实现低延时则可决定基于子画面来操作。可选地,所述决策可基于解码器112是否有足够的资源来支持基于子画面的操作。如果CPB120在子画面级别操作,则解码器可确定406访问单元中的解码单元的一个或多个去除延迟。例如,解码器112可确定适用于访问单元中的所有解码单元的单个公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)。可选地,解码器112可为访问单元中的各个解码单元确定单独的解码单元CPB去除延迟(例如,du_cpb_removal_delay[i])。换言之,画面定时SEI消息可包括适用于访问单元中的所有解码单元的公共参数或者用于每一个解码单元的单独的参数。
解码器112还可基于解码单元的去除延迟,即,利用适用于访问单元中的所有解码单元的公共参数或者用于每一个解码单元的单独的参数,来去除408解码单元。解码器112还可对解码单元进行解码410。
解码器112在从各种用信号发送的参数确定去除时间时可使用变量ClockDiff。具体地讲,ClockDiff可根据ClockDiff=(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1))/time_scale)来确定,其中num_units_in_tick是按照与时钟节拍计数器的一个增量对应的频率time_scaleHz操作的时钟的时间单位的数量,num_units_in_sub_tick是按照与子画面时钟节拍计数器的一个增量对应的频率time_scaleHz操作的时钟的时间单位的数量,num_decoding_units_minus1+1是访问单元中的解码单元的量,time_scale是在一秒内过去的时间单位的数量。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1,CPB按照子画面级别操作并且ClockDiff大于零时,解码单元m的去除时间tr(m)根据tr(m)=tr,n(m)+tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)+ClockDiff来确定,其中tr,n(m)是解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是解码单元m的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1,CPB按照访问单元级别操作并且ClockDiff大于零时,访问单元n的去除时间tr(n)根据tr(n)=tr,n(n)+tc*Ceil((taf(n)-tr,n(n))/tc)-ClockDiff来确定,其中tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,Ceil()是顶函数,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+max((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据:tr(n)=tr,n(n)+max((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+min((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub),(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据:tr(n)=tr,n(n)+min((tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),(tc*Ceil((taf(n)-tr,n(n))/tc))),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据:tr(n)=tr,n(n)+(tc*Ceil((taf(n)-tr,n(n))/tc)),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,不是访问单元的最后解码单元的解码单元的去除时间被设定为tr(m)=taf(m),其中taf(m)是解码单元m的最终到达时间。并且访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+(tc_sub*Ceil((taf(m)-tr,n(m))/tc_sub)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,不是访问单元的最后解码单元的解码单元的去除时间被设定为tr(m)=taf(m),其中taf(m)是解码单元m的最终到达时间。并且访问单元的最后解码单元m的去除时间tr(m)根据:tr(m)=tr,n(m)+(tc*Ceil((taf(m)-tr,n(m))/tc)),其中tr,n(m)是最后解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元的最终到达时间。
当低延迟假想参考解码器(HRD)标志(例如,low_delay_hrd_flag)被设定为1,tr,n(m)<taf(m),画面定时标志被设定为1并且CPB按照子画面级别操作时,解码单元的去除时间被设定为tr(m)=taf(m),其中tr,n(m)是解码单元m的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间,taf(m)是访问单元n中的最后解码单元的最终到达时间。
当低延迟假想参考解码器(HRD)标志被设定为1,tr,n(n)<taf(n),画面定时标志被设定为1并且CPB按照访问单元级别操作时,访问单元n的去除时间tr(n)根据:tr(n)=taf(n),其中tr,n(m)是最后解码单元n的标称去除时间,tc_sub是子画面时钟节拍,Ceil()是顶函数,taf(m)是最后解码单元m的最终到达时间,tr,n(n)是访问单元n的标称去除时间,tc是时钟节拍,taf(n)是访问单元n的最终到达时间。
如果CPB在访问单元级别操作,则解码器112可确定412CPB去除延迟参数。这可被包括在所接收的画面定时SEI消息(例如,cpb_removal_delay)中。解码器112还可基于CPB去除延迟参数去除414访问单元,并且对访问单元进行解码416。换言之,解码器112可一次对整个访问单元,而非访问单元内的解码单元进行解码。
图5是示出为访问单元中的解码单元确定一个或多个去除延迟的方法500的一个配置的流程图。换言之,图5所示的方法500可进一步示出图4所示的方法400中的步骤406。方法500可由解码器112执行。解码器112可确定502所接收的画面定时SEI消息是否包括公共解码单元CPB去除延迟参数。这可包括确定是否设定公共解码单元CPB去除延迟标志(例如,common_du_cpb_removal_delay_flag)。如果是,则解码器112可确定504适用于访问单元中的所有解码单元的公共解码单元CPB去除延迟参数(例如,common_du_cpb_removal_delay)。如果否,解码器112可为访问单元中的各个解码单元确定506单独的解码单元CPB去除延迟参数(例如,du_cpb_removal_delay[i])。
除了修改画面定时SEI消息语义以外,本发明的系统和方法还可施加比特流约束以使得基于子画面的CPB操作和基于访问单元的CPB操作的操作导致相同的解码单元去除的定时。具体地讲,当画面定时标志(例如,sub_pic_cpb_params_present_flag)被设定为1时,可根据下式来设定CPB去除延迟
c p b _ r e m o v a l _ d e l a y = ( &Sigma; i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 d u _ c p b _ r e m o v a l _ d e l a y &lsqb; i &rsqb; ) * t c , s u b t c
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。
可选地,CPB去除延迟可如接下来所述地设定:将变量Tdu(k)定义为:
T d u ( k ) = T d u ( k - 1 ) + t c _ s u b * &Sigma; i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 k ( d u _ c p b _ r e m o v a l _ d e l a y _ min u s 1 k &lsqb; i &rsqb; + 1 )
其中du_cpb_removal_delay_minus1k[i]和num_decoding_units_minus1k是第k访问单元的第i解码单元的参数(对于初始化HRD的访问单元,k=0,对于k<1,Tdu(k)=0),并且其中du_cpb_removal_delay_minus1k[i]+1=du_cpb_removal_delay_minus1k[i]是第k访问单元的第I解码单元的解码单元CPB去除延迟参数,num_decoding_units_minus1k是第k访问单元中的解码单元的数量,tc是时钟节拍,tc,sub是子画面时钟节拍,i和k是索引。然后,当画面定时标志(例如,sub_pic_cpb_params_present_flag)被设定为1时,以下条件可为真:
(au_cpb_removal_delay_minus1+1)*tc==Tdu(k),其中(au_cpb_removal_delay_minus1+1)=cpb_removal_delay,CPB去除延迟。因此在这种情况下,CPB去除延迟(au_cpb_removal_delay_minus1+1)被设定为使得基于子画面的CPB操作和基于访问单元的CPB操作的操作导致相同的访问单元去除的定时和访问单元去除的最后解码单元。
可选地,可根据下式来设定CPB去除延迟
- 1 &le; &lsqb; c p b _ r e m o v a l _ d e l a y * t c - ( &Sigma; i = 0 n u m _ d e c o d i n g _ u n i t s _ min u s 1 d u _ c p b _ r e m o v a l _ d e l a y &lsqb; i &rsqb; ) * t c , s u b ) &rsqb; &le; 1
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。
可选地,cpb_removal_delay和du_cpb_removal_delay[num_decoding_units_minus1]可根据cpb_removal_delay*tc=du_cpb_removal_delay[num_decoding_units_minus1]*tc,sub来设定,其中du_cpb_removal_delay[num_decoding_units_minus1]是第num_decoding_units_minus1解码单元的解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一)。
除了修改画面定时SEI消息语义以外,本发明的系统和方法还可施加比特流约束以使得基于子画面的CPB操作和基于访问单元的CPB操作的操作导致相同的解码单元去除的定时。具体地讲,当画面定时标志(例如,sub_pic_cpb_params_present_flag)被设定为1时,cpb_removal_delay和du_cpb_removal_delay[num_decoding_units_minus1]的值可被设定为满足:-1<=(cpb_removal_delay*tc-du_cpb_removal_delay[num_decoding_units_minus1]*tc,sub)<=1,其中du_cpb_removal_delay[num_decoding_units_minus1]是第num_decoding_units_minus1解码单元的解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一)。
图6A是示出电子设备602上的编码器604的一个配置的框图。应该注意的是,被示出为包括在电子设备602内的元件中的一个或多个可被实现于硬件、软件或者这二者的组合中。例如,电子设备602包括编码器604,其可被实现于硬件、软件或者这二者的组合中。例如,编码器604可被实现为电路、集成电路、专用集成电路(ASIC)、与具有可执行指令的存储器电子通信的处理器、固件、现场可编程门阵列(FPGA)等或者其组合。在一些配置中,编码器604可以是HEVC编码器。
电子设备602可包括源622。源622可向编码器604提供画面或图像数据(例如,视频)作为一个或多个输入画面606。源622的示例可包括图像传感器、存储器、通信接口、网络接口、无线接收器、端口等。
一个或多个输入画面606可被提供给帧内预测模块和重构缓冲器624。输入画面606还可被提供给运动估计和运动补偿模块646和减法模块628。
帧内预测模块和重构缓冲器624可基于一个或多个输入画面606和重构数据660生成帧内模式信息640和帧内信号626。运动估计和运动补偿模块646可基于来自解码画面缓冲器676的一个或多个输入画面606和参考画面678来生成帧间模式信息648和帧间信号644。在一些配置中,解码画面缓冲器676可将来自一个或多个参考画面的数据包括在解码画面缓冲器676中。
编码器604可依据模式在帧内信号626与帧间信号644之间选择。在帧内编码模式下可使用帧内信号626以便利用画面内的空间特性。在帧间编码模式下可使用帧间信号644以便利用画面之间的时间特性。在帧内编码模式下,帧内信号626可被提供给减法模块628,帧内模式信息640可被提供给熵编码模块642。在帧间编码模式下,帧间信号644可被提供给减法模块628,帧间模式信息648可被提供给熵编码模块642。
在减法模块628处从输入画面606减去帧内信号626或帧间信号644(取决于模式)以便生成预测残差630。预测残差630被提供给变换模块632。变换模块632可压缩预测残差630以生成变换信号634,该变换信号634被提供给量化模块636。量化模块636将变换信号634量化以生成变换和量化的系数(TQC)638。
TQC638被提供给熵编码模块642和逆量化模块650。逆量化模块650对TQC638执行逆量化以生成逆量化信号652,该逆量化信号652被提供给逆变换模块654。逆变换模块654将逆量化信号652解压缩以生成解压缩信号656,该解压缩信号656被提供给重构模块658。
重构模块658可基于解压缩信号656来生成重构数据660。例如,重构模块658可重构(修改的)画面。重构数据660可被提供给去块滤波器662以及帧内预测模块和重构缓冲器624。去块滤波器662可基于重构数据660来生成滤波信号664。
滤波信号664可被提供给样本自适应偏移(SAO)模块666。SAO模块666可生成被提供给熵编码模块642的SAO信息668以及被提供给自适应环路滤波器(ALF)672的SAO信号670。ALF672生成ALF信号674,该ALF信号674被提供给解码画面缓冲器676。ALF信号674可包括来自可用作参考画面的一个或多个画面的数据。
熵编码模块642可对TQC638编码以生成比特流A614a(例如,编码画面数据)。例如,熵编码模块642可利用上下文自适应可变长度编码(CAVLC)或者上下文自适应二进制算术编码(CABAC)来对TQC638进行编码。具体地讲,熵编码模块642可基于帧内模式信息640、帧间模式信息648和SAO信息668中的一个或多个来对TQC638进行编码。比特流A614a(例如,编码画面数据)可被提供给消息生成模块608。消息生成模块608可类似于结合图1描述的消息生成模块108来配置。另外地或可选地,消息生成模块608可执行结合图2和图3描述的过程中的一个或多个。
例如,消息生成模块608可生成包括子画面参数的消息(例如,画面定时SEI消息或其它消息)。所述子画面参数可包括解码单元的一个或多个去除延迟(例如,common_du_cpb_removal_delay或者du_cpb_removal_delay[i])以及一个或多个NAL参数(例如,common_num_nalus_in_du_minus1或num_nalus_in_du_minus1[i])。在一些配置中,所述消息可被插入比特流A614a中以生成比特流B614b。因此,例如,可在生成整个比特流A614a之后(例如,在生成比特流B614b的大部分之后)生成所述消息。在其它配置中,所述消息可不被插入比特流A614a中(在这种情况下比特流B614b可与比特流A614a相同),而是可在分开的传输610中提供。
在一些配置中,电子设备602将比特流614发送给另一电子设备。例如,比特流614可被提供给通信接口、网络接口、无线发送器、端口等。例如,比特流614可经由LAN、互联网、蜂窝电话基站等被发送给另一电子设备。另外地或可选地,比特流614可被存储在存储器中或者电子设备602上的其它组件中。
图6B是示出电子设备1702上的视频编码器1782的一个配置的框图。视频编码器1782可包括增强层编码器1706、基本层编码器1709、分辨率提高(resolutionupscaling)块1770和输出接口1780。例如,如本文所述,图6B的视频编码器适用于可缩放视频编码和多视角视频编码。
增强层编码器1706可包括接收输入画面1704的视频输入1781。视频输入1781的输出可被提供给接收预测选择1750的输出的加法器/减法器1783。加法器/减法器1783的输出可被提供给变换和量化块1752。变换和量化块1752的输出可被提供给熵编码块1748以及缩放和逆变换块1772。在执行熵编码1748之后,熵编码块1748的输出可被提供给输出接口1780。输出接口1780可输出编码的基本层视频比特流1707和编码的增强层视频比特流1710二者。
缩放和逆变换块1772的输出可被提供给加法器1779。加法器1779还可接收预测选择1750的输出。加法器1779的输出可被提供给去块块1751。去块块1751的输出可被提供给参考缓冲器1794。参考缓冲器1794的输出可被提供给运动补偿块1754。运动补偿块1754的输出可被提供给预测选择1750。参考缓冲器1794的输出也可被提供给帧内预测器1756。帧内预测器1756的输出可被提供给预测选择1750。预测选择1750还可接收分辨率提高块1770的输出。
基本层编码器1709可包括视频输入1762,其接收下采样的输入画面、或者适合于与另一图像组合的其它图像内容、或者另选视角输入画面或者相同的输入画面1703(即,与增强层编码器1706所接收的相同的输入画面1704)。视频输入1762的输出可被提供给编码预测环路1764。可在编码预测环路1764的输出上提供熵编码1766。编码预测环路1764的输出还可被提供给参考缓冲器1768。参考缓冲器1768可向编码预测环路1764提供反馈。参考缓冲器1768的输出还可被提供给分辨率提高块1770。一旦执行了熵编码1766,输出就可被提供给输出接口1780。编码的基本层视频比特流1707和/或编码的增强层视频比特流1710可根据需要被提供给一个或多个消息生成模块。
图7A是示出电子设备702上的解码器712的一个配置的框图。解码器712可被包括在电子设备702中。例如,解码器712可以是HEVC解码器。解码器712以及被示出为包括在解码器712中的一个或多个元件可被实现于硬件、软件或者这二者的组合中。解码器712可接收比特流714(例如,包括在比特流714中的一个或多个编码画面和开销数据)以用于解码。在一些配置中,所接收的比特流714可包括接收的开销数据,例如消息(例如,画面定时SEI消息或其它消息)、切片报头、PPS等。在一些配置中,另外地,解码器712可接收分开的传输710。分开的传输710可包括消息(例如,画面定时SEI消息或其它消息)。例如,可在分开的传输710中(而非在比特流714中)接收画面定时SEI消息或其它消息。然而,应该注意的是,分开的传输710可以是可选的,在一些配置中可不使用。
解码器712包括CPB720。CPB720可类似于上面结合图1描述的CPB120来配置。另外地或可选地,解码器712可执行结合图4和图5描述的过程中的一个或多个。例如,解码器712可接收具有子画面参数的消息(例如,画面定时SEI消息或其它消息),并且基于子画面参数去除并解码访问单元中的解码单元。应该注意的是,一个或多个访问单元可被包括在比特流中,并且可包括编码画面数据和开销数据中的一个或多个。
编码画面缓冲器(CPB)720可将编码画面数据提供给熵解码模块701。编码画面数据可由熵解码模块701进行熵解码,从而生成运动信息信号703以及量化、缩放和/或变换的系数705。
在运动补偿模块780处可将运动信息信号703与来自解码画面缓冲器709的参考帧信号798的一部分组合,这可生成帧间预测信号782。量化、去缩放和/或变换的系数705可被逆模块707逆量化、缩放和逆变换,从而生成解码的残差信号784。解码的残差信号784可与预测信号792相加,以生成组合信号786。预测信号792可以是选自由运动补偿模块780生成的帧间预测信号782或者由帧内预测模块788生成的帧内预测信号790的信号。在一些配置中,此信号选择可基于比特流714(例如,由比特流714控制)。
可从来自组合信号786(例如,当前帧中)的先前解码的信息预测帧内预测信号790。组合信号786还可通过去块滤波器794来滤波。所得滤波信号796可被写到解码画面缓冲器709。所得滤波信号796可包括解码画面。解码画面缓冲器709可提供解码画面,该解码画面可被输出718。在一些情况下,709可被视为帧存储器。
图7B是示出电子设备1802上的视频解码器1812的一个配置的框图。视频解码器1812可包括增强层解码器1815和基本层解码器1813。视频解码器812还可包括接口1889和分辨率提高1870。例如,如本文所述,图7B的视频解码器适用于可缩放视频编码和多视角视频编码。
接口1889可接收编码的视频流1885。编码的视频流1885可由基本层编码视频流和增强层编码视频流组成。这两个流可被分别发送或一起发送。接口1889可将编码的视频流1885的一些或全部提供给基本层解码器1813中的熵解码块1886。熵解码块1886的输出可被提供给解码预测环路1887。解码预测环路1887的输出可被提供给参考缓冲器1888。参考缓冲器可向解码预测环路1887提供反馈。参考缓冲器1888还可输出解码的基本层视频流1884。
接口1889也可将编码的视频流1885的一些或全部提供给增强层解码器1815中的熵解码块1890。熵解码块1890的输出可被提供给逆量化块1891。逆量化块1891的输出可被提供给加法器1892。加法器1892可将逆量化块1891的输出与预测选择块1895的输出相加。加法器1892的输出可被提供给去块块1893。去块块1893的输出可被提供给参考缓冲器1894。参考缓冲器1894可输出解码的增强层视频流1882。参考缓冲器1894的输出还可被提供给帧内预测器1897。增强层解码器1815可包括运动补偿1896。运动补偿1896可在分辨率提高1870之后执行。预测选择块1895可接收帧内预测器1897的输出和运动补偿1896的输出.另外,解码器可根据需要包括一个或多个编码画面缓冲器(例如,与接口1889一起)。
图8示出发送电子设备802中可使用的各种组件。本文所述的电子设备102、602、702中的一个或多个可依据图8所示的发送电子设备802来实现。
发送电子设备802包括控制电子设备802的操作的处理器817。处理器817也可被称作CPU。可包括只读存储器(ROM)、随机存取存储器(RAM)或者可存储信息的任何类型的设备的存储器811向处理器817提供指令813a(例如,可执行指令)和数据815a。存储器811的一部分还可包括非易失性随机存取存储器(NVRAM)。存储器811可与处理器817电子通信。
指令813b和数据815b也可驻留于处理器817中。被载入处理器817中的指令813b和/或数据815b还可包括为了由处理器817执行或处理而从存储器811载入的指令813a和/或数据815a。指令813b可由处理器817执行以实现本文所公开的系统和方法。例如,指令813b可以是可执行的以执行上述方法200、300、400、500中的一个或多个。
发送电子设备802可包括一个或多个通信接口819以用于与其它电子设备(例如,接收电子设备)通信。通信接口819可以是基于有线通信技术、无线通信技术或这二者。通信接口819的示例包括串行端口、并行端口、通用串行总线(USB)、以太网适配器、IEEE1394总线接口、小型计算机系统接口(SCSI)总线接口、红外(IR)通信端口、蓝牙无线通信适配器、依据第3代合作伙伴计划(3GPP)规范的无线收发器等。
发送电子设备802可包括一个或多个输出设备823和一个或多个输入设备821。输出设备823的示例包括扬声器、打印机等。可包括在电子设备802中的一种类型的输出设备是显示设备825。以本文所公开的配置使用的显示设备825可利用任何合适的图像投射技术,例如阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)、气体等离子显示器、电致发光显示器等。可提供显示控制器827以用于将存储在存储器811中的数据转换为显示在显示器825上的文本、图形和/或运动图像(如果适当的话)。输入设备821的示例包括键盘、鼠标、麦克风、遥控设备、按钮、操纵杆、轨迹球、触摸板、触摸屏、光笔等。
发送电子设备802的各种组件可通过总线系统829耦合在一起,除了数据总线以外,所述总线系统829可包括电源总线、控制信号总线和状态信号总线。然而,为了清晰起见,图8中将各种总线示出为总线系统829。图8所示的发送电子设备802是功能框图,而非具体组件的列表。
图9是示出接收电子设备902中可使用的各种组件的框图。本文所述的电子设备102、602、702中的一个或多个可依据图9所示的接收电子设备902来实现。
接收电子设备902包括控制电子设备902的操作的处理器917。处理器917也可被称作CPU。可包括只读存储器(ROM)、随机存取存储器(RAM)或者可存储信息的任何类型的设备的存储器911向处理器917提供指令913a(例如,可执行指令)和数据915a。存储器911的一部分还可包括非易失性随机存取存储器(NVRAM)。存储器911可与处理器917电子通信。
指令913b和数据915b也可驻留于处理器917中。被载入处理器917中的指令913b和/或数据915b还可包括为了由处理器917执行或处理而从存储器911载入的指令913a和/或数据915a。指令913b可由处理器917执行以实现本文所公开的系统和方法。例如,指令913b可以是可执行的以执行上述方法200、300、400、500中的一个或多个。
接收电子设备902可包括一个或多个通信接口919以用于与其它电子设备(例如,发送电子设备)通信。通信接口919可以是基于有线通信技术、无线通信技术或这二者。通信接口919的示例包括串行端口、并行端口、通用串行总线(USB)、以太网适配器、IEEE1394总线接口、小型计算机系统接口(SCSI)总线接口、红外(IR)通信端口、蓝牙无线通信适配器、依据第3代合作伙伴计划(3GPP)规范的无线收发器等。
接收电子设备902可包括一个或多个输出设备923和一个或多个输入设备921。输出设备923的示例包括扬声器、打印机等。可包括在电子设备902中的一种类型的输出设备是显示设备925。以本文所公开的配置使用的显示设备925可利用任何合适的图像投影技术,例如阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)、气体等离子显示器、电致发光显示器等。可提供显示控制器927以用于将存储在存储器911中的数据转换为显示在显示器925上的文本、图形和/或运动图像(如果适当的话)。输入设备921的示例包括键盘、鼠标、麦克风、遥控设备、按钮、操纵杆、轨迹球、触摸板、触摸屏、光笔等。
接收电子设备902的各种组件可通过总线系统929耦合在一起,除了数据总线以外,所述总线系统929可包括电源总线、控制信号总线和状态信号总线。然而,为了清晰起见,图9中将各种总线示出为总线系统929。图9所示的接收电子设备902是功能框图,而非具体组件的列表。
图10是示出可实现用于发送消息的系统和方法的电子设备1002的一个配置的框图。电子设备1002包括编码装置1031和发送装置1033。编码装置1031和发送装置1033可被配置为执行上面结合图1、图2、图3、图6和图8中的一个或多个描述的功能中的一个或多个。例如,编码装置1031和发送装置1033可生成比特流1014。上面的图8示出了图10的具体设备结构的一个示例。可实现其它各种结构以实现图1、图2、图3、图6和图8的功能中的一个或多个。例如,DSP可通过软件来实现。
图11是示出可实现用于缓冲比特流1114的系统和方法的电子设备1102的一个配置的框图。电子设备1102可包括接收装置1135和解码装置1137。接收装置1135和解码装置1137可被配置为执行上面结合图1、图4、图5、图7和图9中的一个或多个描述的功能中的一个或多个。例如,接收装置1135和解码装置1137可接收比特流1114。上面的图9示出了图11的具体设备结构的一个示例。可实现其它各种结构以实现图1、图4、图5、图7和图9的功能中的一个或多个。例如,DSP可通过软件来实现。
图12是示出解码画面缓冲器(DPB)的操作方法1200的一个配置的流程图。方法1200可由编码器104或其子部分之一(例如,解码画面缓冲器模块676)来执行。方法1200可由电子设备102(例如,电子设备B102b)中的解码器112执行。另外地或可选地,方法1200可由解码器712或其子部分之一(例如,解码画面缓冲器模块709)来执行。解码器可解析画面1202的第一切片报头。在对当前画面解码之前(但是在解析当前画面的第一切片的切片报头之后)当从CPB去除包含当前画面的访问单元的第一解码单元并且如下前进时瞬时地从DPB输出和去除画面。
-调用针对参考画面集(RPS)的解码处理。参考画面集是与画面关联的参考画面的集合,由按照解码顺序在所关联的画面之前的所有参考画面组成,可用于所关联的画面或者按照解码顺序在所关联的画面之后的任何画面的帧间预测。
-视频的比特流可包括被置于通常称作网络抽象层(NAL)单元的逻辑数据分组中的句法结构。各个NAL单元包括NAL单元报头,例如两字节NAL单元报头(例如,16比特),以标识所关联的数据有效载荷的目的。例如,各个编码的切片(和/或画面)可被编码于一个或多个切片(和/或画面)NAL单元中。对于其它类别的数据可包括其它NAL单元,例如补充增强信息、时间子层访问(TSA)画面的编码切片、逐步时间子层访问(STSA)画面的编码切片、非TSA的编码切片、非STSA拖尾画面、断链访问画面的编码切片、瞬时解码刷新画面的编码切片、清除随机访问画面的编码切片、可解码引导画面的编码切片、为丢弃画面标记的编码切片、视频参数集、序列参数集、画面参数集、访问单元分隔符、序列结束、比特流结束、填充数据和/或序列增强信息消息。表(4)示出NAL单元代码和NAL单元类型类的一个示例。可根据需要包括其它NAL单元类型。还应该理解,表(4)所示的NAL单元的NAL单元类型值可被重组和重新指派。另外,可增加附加NAL单元类型。另外,可去除一些NAL单元类型。
帧内随机访问点(IRAP)画面是各个视频编码层NAL单元具有在BLA_W_LP至RSV_IRAP_VCL23(含)的范围内的nal_unit_type的编码画面,如表(4)所示。IRAP画面仅包含帧内编码的(I)切片。瞬时解码刷新(IDR)画面是各个视频编码层NAL单元具有等于IDR_W_RADL或IDR_N_LP的nal_unit_type的IRAP画面,如表(4)所示。瞬时解码刷新(IDR)画面仅包含I切片,并且按照解码顺序可以是比特流中的第一画面,或者可在比特流中稍后出现。各个IDR画面按照解码顺序是编码视频序列(CVS)的第一画面。断链访问(BLA)画面是各个视频编码层NAL单元具有等于BLA_W_LP、BLA_W_RADL或BLA_N_LP的nal_unit_type的IRAP画面,如表(4)所示。BLA画面仅包含I切片,并且按照解码顺序可以是比特流中的第一画面,或者可在比特流中稍后出现。各个BLA画面开始新的编码视频序列,并且对解码处理的影响与IDR画面相同。然而,BLA画面包含指定非空参考画面集的句法元素。
表(4)
参照表(5),NAL单元报头句法可包括两字节的数据,即,16比特。第一比特是“forbidden_zero_bit”,其在NAL单元的开始处总是被设定为零。接下来的六比特是“nal_unit_type”,其指定NAL单元中所包含的原始字节序列有效载荷(“RBSP”)数据结构的类型,如表(4)所示。接下来的6比特是“nuh_layer_id”,其指定层的标识符。在一些情况下,作为替代,这六比特可被指定为“nuh_reserved_zero_6bits”。在标准的基本规范中nuh_reserved_zero_6bits可等于0。在可缩放视频编码和/或句法扩展中,nuh_layer_id可指定该特定NAL单元属于由这6比特的值标识的层。接下来的句法元素是“nuh_temporal_id_plus1”。nuh_temporal_id_plus1减1可指定NAL单元的时间标识符。变量时间标识符TemporalId可被指定为TemporalId=nuh_temporal_id_plus1-1。时间标识符TemporalId用于标识时间子层。变量HighestTid标识要解码的最高时间子层。
表(5)
表(6)示出示例性序列参数集(SPS)句法结构。
pic_width_in_luma_samples以亮度样本为单位指定各个解码画面的宽度。pic_width_in_luma_samples可不等于0。
pic_height_in_luma_samples以亮度样本为单位指定各个解码画面的高度。pic_height_in_luma_samples可不等于0。
sps_max_sub_layers_minus1加1指定可存在于参考SPS的各个CVS中的时间子层的最大数量。sps_max_sub_layers_minus1的值可在0至6(含)的范围内。
sps_sub_layer_ordering_info_present_flag标志等于1指定对于sps_max_sub_layers_minus1+1子层存在sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]和sps_max_latency_increase_plus1[i]句法元素。sps_sub_layer_ordering_info_present_flag等于0指定sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]、sps_max_num_reorder_pics[sps_max_sub_layers_minus1]和sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]的值应用于所有子层。
sps_max_dec_pic_buffering_minus1[i]加1以画面存储缓冲器为单位指定当HighestTid等于i时,用于CVS的解码画面缓冲器的最大所需大小。sps_max_dec_pic_buffering_minus1[i]的值可在0至MaxDpbSize-1(含)的范围内,其中MaxDpbSize以画面存储缓冲器为单位指定最大解码画面缓冲器大小。当i大于0时,sps_max_dec_pic_buffering_minus1[i]可大于或等于sps_max_dec_pic_buffering_minus1[i-1]。当由于sps_sub_layer_ordering_info_present_flag等于0,对于在0至sps_max_sub_layers_minus1-1(含)范围内的i不存在sps_max_dec_pic_buffering_minus1[i]时,它被推断等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。
sps_max_num_reorder_pics[i]指示当HighestTid等于i时,按照解码顺序可在CVS中的任何画面之前并且按照输出顺序在该画面之后的画面的最大允许数量。sps_max_num_reorder_pics[i]的值可在0至sps_max_dec_pic_buffering_minus1[i](含)的范围内。当i大于0时,sps_max_num_reorder_pics[i]可大于或等于sps_max_num_reorder_pics[i-1]。当由于sps_sub_layer_ordering_info_present_flag等于0,对于在0至sps_max_sub_layers_minus1-1(含)的范围内的i不存在sps_max_num_reorder_pics[i]时,它被推断等于sps_max_num_reorder_pics[sps_max_sub_layers_minus1]。
不等于0的sps_max_latency_increase_plus1[i]用于计算SpsMaxLatencyPictures[i]的值,其指定当HighestTid等于i时按照输出顺序可在CVS中的任何画面之前并且按照解码顺序在该画面之后的画面的最大数量。
当sps_max_latency_increase_plus1[i]不等于0时,SpsMaxLatencyPictures[i]的值被指定如下:
SpsMaxLatencyPictures[i]=sps_max_num_reorder_pics[i]+sps_max_latency_increase_plus1[i]-1
当sps_max_latency_increase_plus1[i]等于0时,未表达对应极限。
sps_max_latency_increase_plus1[i]的值可在0至232-2(含)的范围内。当由于sps_sub_layer_ordering_info_present_flag等于0,对于在0至sps_max_sub_layers_minus1-1(含)范围内的i不存在sps_max_latency_increase_plus1[i]时,它被推断等于sps_max_latency_increase_plus1[sps_max_sub_layers_minus1]。
表(6)
当当前画面是IRAP画面时,以下适用:
-如果当前画面是IDR画面、BLA画面、按照解码顺序在比特流中的第一画面、或者按照解码顺序在序列NAL单元的结束之后的第一画面,则变量NoRaslOutputFlag被设定为等于1。
-否则,如果一些外部装置可用于将变量HandleCraAsBlaFlag设定为用于当前画面的值,则变量HandleCraAsBlaFlag被设定为等于由该外部装置提供的值,并且变量NoRaslOutputFlag被设定为等于HandleCraAsBlaFlag。
-否则,变量HandleCraAsBlaFlag被设定为等于0,变量NoRaslOutputFlag被设定为等于0。
如果当前画面是NoRaslOutputFlag等于1的IRAP画面,不是画面0,则以下排序的步骤适用:
1.为受试的解码器如下推导变量NoOutputOfPriorPicsFlag:
-如果当前画面是CRA画面,则NoOutputOfPriorPicsFlag被设定为等于1(不管no_output_of_prior_pics_flag的值如何)。
-否则,如果从活动SPS推导的pic_width_in_luma_samples、pic_height_in_luma_samples或者sps_max_dec_pic_buffering_minus1[HighestTid]的值不同于从对于在前画面而言活动的SPS相应地推导的pic_width_in_luma_samples、pic_height_in_luma_samples或者sps_max_dec_pic_buffering_minus1[HighestTid]的值,则NoOutputOfPriorPicsFlag可被受试的解码器设定为1(但是不应该这样做),而不管no_output_of_prior_pics_flag的值如何。
-否则,NoOutputOfPriorPicsFlag被设定为等于no_output_of_prior_pics_flag。
2.为受试的解码器推导的NoOutputOfPriorPicsFlag的值如下应用于HRD:
-如果NoOutputOfPriorPicsFlag等于1,则DPB中的所有画面存储缓冲器被清空,没有它们所包含的画面的输出,并且DPB充盈度被设定为等于0。
-否则(NoOutputOfPriorPicsFlag等于0),包含被标记为“无需输出”和“不用于参考”的画面的所有画面存储缓冲器被清空(没有输出),DPB中的所有非空画面存储缓冲器通过重复地调用“排挤”处理1204来清空,并且DPB充盈度被设定为等于0。
-否则(当前画面不是NoRaslOutputFlag等于1的IRAP画面),包含被标记为“无需输出”和“不用于参考”的画面的所有画面存储缓冲器被清空(没有输出)。对于被清空的各个画面存储缓冲器,DPB充盈度减一。当以下条件中的一个或多个为真时,在针对被清空的各个附加画面存储缓冲器进一步使DPB充盈度减一的同时重复地调用“排挤”处理1204,直至以下条件均不为真:
1.DPB中被标记为“需要输出”的具有特定nuh_layer_id值的画面的数量大于来自活动序列参数集(当该特定nuh_layer_id值等于0时)或者来自用于该特定nuh_layer_id值的活动层序列参数集的sps_max_num_reorder_pics[HighestTid]。
2.如果来自活动序列参数集(当该特定nuh_layer_id值等于0时)或者来自用于该特定nuh_layer_id值的活动层序列参数集的sps_max_latency_increase_plus1[HighestTid]不等于0并且DPB中存在被标记为“需要输出”的具有该特定nuh_layer_id值的至少一个画面,其所关联的变量PicLatencyCount大于或等于用于该特定nuh_layer_id值的SpsMaxLatencyPictures[HighestTid]。
3.DPB中具有该特定nuh_layer_id值的画面的数量大于或等于来自活动序列参数集(当该特定nuh_layer_id值等于0时)或者来自用于该特定nuh_layer_id值的活动层序列参数集的sps_max_dec_pic_buffering[HighestTid]+1。
当从CPB去除包含当前画面的访问单元的最后解码单元时瞬时地发生块1206中的画面解码处理(画面解码和标记)。
对于DPB中被标记为“需要输出”的layer_id值等于当前画面的nuh_layer_id值的各个画面,关联的变量PicLatencyCount被设定为等于PicLatencyCount+1。
当前画面被认为在画面的最后解码单元被解码之后被解码。当前解码的画面被存储在DPB中的空画面存储缓冲器中,且以下适用:
-如果当前解码的画面的PicOutputFlag等于1,则它被标记为“需要输出”并且其关联的变量PicLatencyCount被设定为等于0。
-否则(当前解码的画面的PicOutputFlag等于0),它被标记为“无需输出”。
当前解码的画面被标记为“用于短期参考”。
当以下条件中的一个或多个为真时,重复地调用附加“排挤”处理1208,直至以下条件均不为真:
-DPB中被标记为“需要输出”的nuh_layer_id值等于当前画面的nuh_layer_id值的画面的数量大于来自活动序列参数集(当当前画面的nuh_layer_id值等于0时)或者来自用于当前画面的nuh_layer_id值的活动层序列参数集的sps_max_num_reorder_pics[HighestTid]。
-来自活动序列参数集(当当前画面的nuh_layer_id值等于0时)或者来自用于当前画面的nuh_layer_id值的活动层序列参数集的sps_max_latency_increase_plus1[HighestTid]不等于0,并且DPB中存在被标记为“需要输出”的具有该特定nuh_layer_id值的至少一个画面,其所关联的变量PicLatencyCount大于或等于用于该特定nuh_layer_id值的SpsMaxLatencyPictures[HighestTid]。
“排挤”处理1204和附加排挤处理1208在步骤方面相同,由下列有序步骤组成:首先输出的画面被选为DPB中被标记为“需要输出”的所有画面中画面顺序计数(PicOrderCntVal)具有最小值的画面。画面顺序计数是与各个画面关联的变量,唯一地标识CVS中的所有画面当中所关联的画面,并且当要从解码画面缓冲器输出所关联的画面时,相对于相同CVS中要从解码画面缓冲器输出的其它画面的输出顺序位置按照输出顺序来指示所关联的画面的位置。
-利用nuh_layer_id等于0的画面的活动序列参数集或者nuh_layer_id值等于画面的活动层序列参数集中指定的一致性修剪窗口来修剪这些画面,所修剪的画面按照nuh_layer_id的升序输出,并且画面被标记为“无需输出”。
-包含被标记为“不用于参考”的画面并且包括被修剪和输出的画面之一的各个画面存储缓冲器被清空。
参照图13A,如先前描述的,NAL单元报头句法可包括两字节的数据,即,16比特。第一比特是“forbidden_zero_bit”,其在NAL单元的开始处总是被设定为零。接下来的六比特是“nal_unit_type”,其指定NAL单元中所包含的原始字节序列有效载荷(“RBSP”)数据结构的类型。接下来的6比特是“nuh_reserved_zero_6bits”。在标准的基本规范中nuh_reserved_zero_6bits可等于0。nuh_reserved_zero_6bits的其它值可根据需要来指定。当基于标准的基本规范处理流时,解码器可忽略(即,从比特流去除并丢弃)nuh_reserved_zero_6bits的值不等于0的所有NAL单元。在可缩放或其它扩展中,nuh_reserved_zero_6bits可指定其它值,以用信号发送可缩放视频编码和/或句法扩展。在一些情况下,句法元素nuh_reserved_zero_6bits可被称为reserved_zero_6bits。在一些情况下,如图13B和图13C所示,句法元素nuh_reserved_zero_6bits可被称为layer_id_plus1或者layer_id。在这种情况下,元素layer_id将为layer_id_plus1减1。在这种情况下,它可用于用信号发送与可缩放编码视频的层有关的信息。接下来的句法元素是“nuh_temporal_id_plus1”。nuh_temporal_id_plus1减1可指定NAL单元的时间标识符。变量时间标识符TemporalId可被指定为TemporalId=nuh_temporal_id_plus1-1。
参照图14,示出了一般NAL单元句法结构。图13的NAL单元报头两字节句法被包括在对图14的nal_unit_header()的参考中。NAL单元句法的其余部分主要涉及RBSP。
使用“nuh_reserved_zero_6bits”的一个现有技术是通过将6比特的nuh_reserved_zero_6bits分割成不同的比特字段来用信号发送可缩放视频编码信息,即,依赖性ID、质量ID、视角ID和深度标志中的一个或多个,其中的每一个参考可缩放编码视频的不同层的标识。因此,这6比特指示此特定NAL单元属于可缩放编码技术的哪一层。然后,在数据有效载荷中,例如图15所示的视频参数集(“VPS”)扩展句法(“scalability_type”)中,定义关于层的信息。图15的VPS扩展句法包括4比特的可缩放性类型(句法元素scalability_type),其指定编码视频序列中使用的可缩放性类型以及通过NAL单元报头中的layer_id_plus1(或layer_id)用信号发送的维度。当可缩放性类型等于0时,编码视频序列符合基本规范,因此所有NAL单元的layer_id_plus1等于0并且不存在属于增强层或视角的NAL单元。可缩放性类型的较高值如图16所示来解释。
layer_id_dim_len[i]指定第i可缩放性维度ID的长度(比特)。对于在0至7范围内的所有i值的值layer_id_dim_len[i]之和小于或等于6。vps_extension_byte_alignment_reserved_zero_bit为零。vps_layer_id[i]指定随后的层依赖性信息所适用的第i层的layer_id的值。num_direct_ref_layers[i]指定第i层所直接依赖的层的数量。ref_layer_id[i][j]标识第i层所直接依赖的第j层。
这样,现有技术在NAL单元中和在视频参数集中用信号发送可缩放性标识符以在图16中所列的可缩放性类型之中分配比特。然后,对于各个可缩放性类型,图16定义了支持多少维度。例如,可缩放性类型1具有2个维度(即,空间和质量)。对于各个维度,layer_id_dim_len[i]定义了分配给这两个维度中的每一个的比特数,其中layer_id_dim_len[i]的所有值的总和小于或等于6(NAL单元报头的nuh_reserved_zero_6bits中的比特数)。因此,结合来看,所述技术标识使用哪一类型的可缩放性以及如何在可缩放性之中分配NAL单元报头的6比特。
尽管如图16所示,不同可缩放性维度的这种固定组合适用于许多应用,存在未被包括的期望组合。参照图17,修改的视频参数集扩展句法为nuh_reserved_zero_6bits句法元素中的各个比特指定可缩放性类型。vps_extension_byte_alignment_reserved_zero_bit被设定为0。max_num_layers_minus1_bits指示用于图13中的NAL单元报头的前两个字节中的句法元素(被称作layer_id_plus1或nuh_reserved_zero_6bits)的总比特数。scalability_map[i]为layer_id_plus1句法元素中的各个比特指定可缩放性类型。在一些情况下,作为替代,layer_id_plus1句法元素可被称为nuh_reserved_zero_6bits或者rserved_zero_6bits句法元素。句法元素layer_id_plus1的所有比特的可缩放性映射一起指定编码视频序列中使用的可缩放性。各个可缩放性类型的标识符的实际值通过NAL单元报头中的layer_id_plus1(nuh_reserved_zero_6bits)字段中的那些对应比特来用信号发送。当对于i的所有值,scalability_map[i]等于0时,编码视频序列符合基本规范,因此NAL单元的layer_id_plus1值等于0并且不存在属于增强层或视角的NAL单元。vps_layer_id[i]指定随后的层依赖性信息所适用的第i层的layer_id的值。num_direct_ref_layers[i]指定第i层所直接依赖的层的数量。ref_layer_id[i][j]标识第i层所直接依赖的第j层。
scalability_map[i]的较高值如图18所示的来解释。可缩放性映射[i]包括下列可缩放性维度:(0)无;(1)空间;(2)质量;(3)深度;(4)多视角;(5)未指定;(6)保留;和(7)保留。
因此,NAL单元报头中的各个比特基于视频参数集中的3比特来解释可缩放性维度是什么(例如,无、空间、质量、深度、多视角、未指定、保留)。例如,为了用信号发送layer_id_plus1中的所有比特均对应于空间可缩放性,对于6比特的NAL单元报头,VPS中的scalability_map值可被编码为001001001001001001。另外,例如,为了用信号发送layer_id_plus1中的3比特对应于空间可缩放性,3比特对应于质量可缩放性,对于6比特的NAL单元报头,VPS中的scalability_map值可被编码为001001001010010010。
参照图19,另一实施方式包括利用num_scalability_dimensions_minus1用信号发送6比特的NAL单元报头中的可缩放性维度的数量的视频参数。num_scalability_dimensions_minus1加1指示通过layer_id_plus1、nuh_reserved_zero_6bits和/或reserved_zero_6bits句法元素用信号发送的可缩放性维度的数量。scalability_map[i]具有如上面关于图17描述的相同语义。num_bits_for_scalability_map[i]指定第i可缩放性维度的长度(比特)。对于i=0,...num_scalability_dimensions_minus1,所有num_bits_for_scalability_map[i]之和等于六(或者说等于用于layer_id_plus1、vps_reserved_zero_6bits、max_num_layers_minus1、reserved_zero_6bits、nuh_reserved_zero_6bits句法元素的比特数)。
关于图17和图19,如果期望的话,可使用其它变型。例如,在一个实施方式中,scalability_map[i]可利用u(4)(或者u(n),其中n>3或n<3)来用信号发送。在这种情况下,scalability_map[i]的较高值可被指定为保留用于符合视频技术的特定配置文件的比特流。例如,当利用u(4)来用信号发送scalability_map[i]时,可缩放性映射值6...15可被指定为“保留”。在另一实施方式中,例如,scalability_map[i]可利用ue(v)或者一些其它编码方案来用信号发送。在另一实施方式中,例如,可指定限制以使得scalability_map[i]值按照单调不减(或者不增)顺序布置。这导致邻接的NAL单元报头中的layer_id_plus1字段中的各种可缩放性维度字段。
利用“layer_id_plus1”或者“nuh_reserved_zero_6bits”句法元素来用信号发送可缩放视频编码的另一现有技术是通过在视频参数集中用信号发送一般查找表来将NAL单元报头中的layer_id_plus1映射至层标识。参照图20,现有技术包括指定查找表的第i层的维度类型的数量和维度标识的视频参数集。具体地讲,vps_extension_byte_alignment_reserved_zero_bit为零。num_dimensions_minus1[i]加1指定第i层的维度类型的数量(dimension_type[i][j])和维度标识符(dimension_id[i][j])。dimension_type[i][j]指定layer_id或layer_id_plus1等于i的第i层的第j可缩放性维度类型,如图31中指定的。如图21中所示,所标识的维度包括(0)视角顺序索引;(1)深度标志;(2)依赖性ID;(3)质量ID;(4)-(15)保留。dimension_id[i][j]指定第i层的第j可缩放性维度类型的标识符,当其不存在时被推断为0。num_direct_ref_layers[i]指定第i层所直接依赖的层的数量。ref_layer_id[i][j]标识第i层所直接依赖的第j层。不幸的是,图20中所示的所提出的实施方式导致不实用的大查找表。
参照图22,修改的视频参数集扩展包括与可缩放性维度组合使用的可缩放性掩码。scalability_mask用信号发送0和1比特图案,其中各个比特对应于一个可缩放性维度,如图23的可缩放性映射句法所指示的。特定可缩放性维度的值1指示此层(第i层)中存在此可缩放性维度。特定可缩放性维度的值0指示此层(第i层)中不存在此可缩放性维度。例如,比特集合00100000表示质量可缩放性。所存在的特定可缩放性维度的实际标识符值由用信号发送的scalability_id[j]值指示。num_scalability_types[i]的值等于值为1的scalability_mask中的比特的数之和。因此,scalability_id[j]指示对于由scalability_mask值用信号发送的可缩放性值的类型,第j可缩放性维度的标识符值。
参照图24,图22的修改包括在环路之外用信号发送的可缩放性掩码。这导致用于各个层标识的一个公共掩码。参照图25,在此修改中,对应示例性视频参数集可包括不包括可缩放性掩码的可缩放标识。在这种情况下,句法元素scalable_id[j]具有与图22中的句法元素scalability_id[j]相同的解释。
参照图26,图22的修改包括在环路之外用信号发送的可缩放性掩码(scalability_mask)。这导致用于各个层标识的一个公共掩码。scalability_mask用信号发送0和1比特图案,其中各个比特对应于一个可缩放性维度,如图27的可缩放性映射句法所指示的。特定可缩放性维度的值1指示此层(第i层)中存在此可缩放性维度。特定可缩放性维度的值0指示此层(第i层)中不存在此可缩放性维度。例如,比特集合00100000表示质量可缩放性。所存在的特定可缩放性维度的实际标识符值由用信号发送的scalability_id[j]值指示。num_scalability_types[i]的值等于值为1的scalability_mask中的比特的数之和。因此,在这种情况下,作为替代,scalability_id[j]变量可被称为dimension_id[i][j]变量。dimension_id[i][j]指定第i层的第j可缩放性维度的可缩放性标识符。然后,变量ScalabilityId[i][j]被如下推导。
其中ScalabilityId[i][k]用信号发送对应可缩放性类型的维度ID如下。
k ScalabilityId[i][k]
0 DependencyId[i][k]
1 QualityId[i][k]
2 depthFlag[i][k]
3 Viewld[i][k]
4-15 保留
其中DependencyId[i][1]是第i层的空间可缩放性维度的依赖性ID,QualityId[i][2]是第i层的质量可缩放性维度的质量ID,depthFlag[i][3]是第i层的深度可缩放性维度的深度标志/深度ID,ViewId[i][4]是第i层的多视角可缩放性维度的视角ID。
另外在图26中,avc_base_codec_flag等于1指定基本层符合Rec.ITU-TH.264|ISO/IEC14496-10,avc_base_codec_flag等于1指定符合HEVC。vps_nuh_layer_id_presnet_flag指示NAL单元报头中用信号发送layer_id的值的layer_id_in_nuh[i]变量是否被用信号发送。
在另一实施方式中,可利用与u(8)不同数量的比特来用信号发送句法元素scalability_mask[i]、scalability_mask、scalability_id[j]中的一个或多个。例如,可利用u(16)(或者u(n),其中n>8或n<8)来用信号发送它们。在另一实施方式中,这些句法元素中的一个或多个可利用ue(v)来用信号发送。在另一实施方式中,可在NAL单元报头中在layer_id_plus1、vps_reserved_zero_6bits、max_num_layers_minus1、reserved_zero_6bits和/或nuh_reserved_zero_6bits句法元素中来用信号发送scalability_mask。在一些实施方式中,系统可仅针对VPSNAL单元,或者仅针对非VPSNAL单元,或者针对所有NAL单元来这样做。在另一实施方式中,可无论在比特流中的何处每画面地用信号发送scalability_mask。例如,可在切片报头、画面参数集、视频参数集或者任何其它参数集或者比特流的任何其它规范部分中用信号发送它。
应该注意的是,因为图13的网抽层单元报头中的句法元素恩瑞斯或肋厄_id_plus1具有6比特,所以图13、图15、图18、图20、图21、图22、图23以及对应的描述涉及6比特。然而,如果该句法元素使用与6比特不同数量的比特,则所有以上描述可被适当地修改。例如,作为替代,如果该句法元素(nuh_reserved_zero_6bits或layer_id_plus1)使用9比特,则在图17中,max_num_layer_minus1比特的值将为9,并且将针对9比特(而非6比特)中的每一比特用信号发送scalability_map[i]。
参照图24,图22的修改提供用于用信号发送层依赖性信息的句法。定义新句法元素layer_dependency_information_pattern。layer_dependency_information_pattern用信号发送长度等于vps_max_layers_minus1的0和1比特图案。第i比特的值0指示具有layer_id(i+1)的层是独立的层。第i比特的值1指示具有layer_id(i+1)的层是依赖于一个或多个其它层的非独立的层。
NumDepLayers的值等于值为1的layer_dependency_information_pattern中的比特的数之和。因此, N u m D e p L a y e r s = &Sigma; k = 0 v p s _ max _ l a y e r _ min u s 1 - 1 l a y e r _ d e p e n d e n c y _ inf o r m a t i o n _ p a t t e r n ( k ) .
参照图29,图26的修改提供了用于用信号发送层依赖性信息的句法。定义新句法元素layer_dependency_flag[i]。layer_dependency_flag[i]用信号发送层是否依赖于其它层。该标志的值0指示具有layer_idi的层是独立的层。第i比特的值1指示具有layer_idi的层是非独立的层。
参照图30,图26的修改提供了用于用信号发送层依赖性信息的句法。定义了新句法元素layer_dependency_map[i]。layer_dependency_map[i]用信号发送长度等于vps_max_layers_minus1的0和1比特图案。layer_dependency_map[i]的第k比特的值0指示层i不依赖于具有layer_id(k+1)的层。layer_dependency_map[i]的第k比特的值1指示层i依赖于具有layer_id(k+1)的层。
参照图31,图26的修改提供了用于用信号发送层依赖性信息的句法。定义了新句法元素layer_dependency_information_pattern。layer_dependency_information_pattern用信号发送长度等于vps_max_layers_minus1的0和1比特图案。第i比特的值0指示具有layer_id(i+1)的层是独立的层。第i比特的值1指示具有layer_id(i+1)的层是依赖于一个或多个其它层的非独立的层。NumDepLayers的值等于值为1的layer_dependency_information_pattern中的比特的数之和。因此, N u m D e p L a y e r s = &Sigma; k = 0 v p s _ max _ l a y e r _ min u s 1 - 1 l a y e r _ d e p e n d e n c y _ inf o r m a t i o n _ p a t t e r n ( k ) . layer_dependency_map[i]用信号发送长度等于vps_max_layers_minus1的0和1比特图案。layer_dependency_map[i]的第k比特的值0指示层i不依赖于具有layer_id(k+1)的层。layer_dependency_map[i]的第k比特的值1指示层i依赖于具有layer_id(k+1)的层。
参照图32,图26的修改提供了用于用信号发送层依赖性信息的句法。图28是基于图27中的句法的变形句法。定义了新句法元素layer_dependency_information_pattern。
layer_dependency_information_pattern用信号发送长度等于vps_max_layers_minus1的0和1比特图案。第i比特的值0指示具有layer_id(i+1)的层是独立的层。第i比特的值1指示具有layer_id(i+1)的层是依赖于一个或多个其它层的非独立的层。
NumDepLayers的值等于值为1的layer_dependency_information_pattern中的比特的数之和。因此, N u m D e p L a y e r s = &Sigma; k = 0 v p s _ max _ l a y e r _ min u s 1 - 1 l a y e r _ d e p e n d e n c y _ inf o r m a t i o n _ p a t t e r n ( k ) . 只有当layer_dependency_information_pattern(i)具有值1时,才用信号发送句法元素num_direct_ref_layers[i]和ref_layer_id[i][j]。其中layer_depdndency_information_pattern(i)是句法元素layer_dependency_pattern的第i比特。
参照图33,图26的修改提供了用于用信号发送层依赖性信息的句法。图29是基于图31中的句法的变形句法。定义了新句法元素layer_dependency_information_pattern。
layer_dependency_information_pattern用信号发送长度等于vps_max_layers_minus1的0和1比特图案。第i比特的值0指示具有layer_id(i+1)的层是独立的层。第i比特的值1指示具有layer_id(i+1)的层是依赖于一个或多个其它层的非独立的层。
NumDepLayers的值等于值为1的layer_dependency_information_pattern中的比特的数之和。因此, N u m D e p L a y e r s = &Sigma; k = 0 v p s _ max _ l a y e r _ min u s 1 - 1 l a y e r _ d e p e n d e n c y _ inf o r m a t i o n _ p a t t e r n ( k ) . layer_dependency_map[i]用信号发送长度等于vps_max_layers_minus1的0和1比特图案。layer_dependency_map[i]的第k比特的值0指示层i不依赖于具有layer_id(k+1)的层。layer_dependency_map[i]的第k比特的值1指示层i依赖于具有layer_id(k+1)的层。只有当layer_dependency_information_pattern(i)具有值1时,才用信号发送句法元素layer_dependency_map[i]。其中layer_depdndency_information_pattern(i)是句法元素layer_dependency_information_pattern的第i比特。
在另一实施方式中,可作为1比特标志值的集合来用信号发送layer_dependency_information_pattern句法元素。在这种情况下,将用信号发送总共vps_max_layers_minus1个1比特值:
在另一实施方式中,可作为1比特标志值的集合来用信号发送layer_dependency_map[i]句法元素。在这种情况下,将用信号发送总共vps_max_layers_minus1个1比特值:
在另一实施方式中,代替u(v),可利用已知的固定数量的比特来用信号发送句法元素layer_dependency_information_pattern、layer_dependency_map中的一个或多个。例如,可利用u(64)来用信号发送它们。
在另一实施方式中,可利用ue(v)或者一些其它编码方案来用信号发送句法元素layer_dependency_information_pattern、layer_dependency_map中的一个或多个。
在另一实施方式中,与所描述的句法和语义相比,各种句法元素的名称及其语义可通过增加plus1或plus2或者通过减去minus1或minus2来更改。
在另一实施方式中,可在比特流中的任何地方每画面地用信号发送诸如layer_dependency_information_pattern、layer_dependency_map、layer_dependency_flag[i]等的各种句法元素。例如,可在切片报头、pps/sps/vps/aps或者任何其它参数集或者比特流的其它规范部分中用信号加以发送。
如先前所描述的,可缩放视频编码是对还包含一个或多个子集比特流的视频比特流进行编码的技术。子集视频比特流可通过从较大的视频丢弃分组来得到,以减小子集比特流所需的带宽。子集比特流可表示较低空间分辨率(较小屏幕)、较低时间分辨率(较低帧频)或者较低质量视频信号。例如,视频比特流可包括5个子集比特流,其中各个子集比特流将附加内容添加到基本比特流。Hannuksela等人的“TestModelforScalableExtensionsofHighEfficiencyVideoCoding(HEVC)”(JCTVC-L0453,上海,2012年10月)由此整体通过引用并入本文。Chen等人的“SHVCDraftText1”(JCTVC-L1008,日内瓦,2013年3月)由此整体通过引用并入本文。
如先前所描述的,多视角视频编码是对还包含代表另选视角的一个或多个其它比特流的视频比特流进行编码的技术。例如,多个视角可以是用于立体视频的一对视角。例如,多个视角可表示从不同视点的相同场景的多个视角。多个视角通常包含大量视角间统计依赖性,因为图像是来自不同视点的相同场景。因此,组合时间和视角间预测可实现活动的多视角编码。例如,不仅可从时间相关帧,而且还可从邻近视点的帧活动地预测帧。Hannuksela等人的“Commonspecificationtextforscalableandmulti-viewextensions”(JCTVC-L0452,日内瓦,2013年1月)整体通过引用并入本文。Tech等人的“MV-HEVCDraftText3(ISO/IEC23008-2:201x/PDAM2)”(JCT3V-C1004_d3,日内瓦,2013年1月)由此整体通过引用并入本文。
各自整体通过引用并入本文的Chen等人的“SHVCDraftText1”(JCTVC-L1008,日内瓦,2013年1月)、Hannuksela等人的“TestModelforScalableExtensionsofHighEfficiencyVideoCoding(HEVC)”(JCTVC-L0453-spec-text,上海,2012年10月)以及Hannuksela的“DraftTextforMultiviewExtensionofHighEfficiencyVideoCoding(HEVC)”(JCTVC-L0452-spec-text-r1,上海,2012年10月)各自具有输出顺序解码画面缓冲器(DPB),其基于使用sps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]和sps_max_dec_pic_buffering[HighestTid]句法元素来操作以用于从DPB的画面0的输出和去除。此信息在基本层的视频参数集中用信号发送,其提供包括增强层(如果有的话)的视频内容的缓冲信息。
已确定,基于使用sps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]和sps_max_dec_pic_buffering[HighestTid]句法元素来用信号发送输出顺序解码画面缓冲器(DPB)以用于从DPB的画面的输出和去除不会造成可由可缩放视频编码导致的缓冲特性,例如当使用在基于用户的观看偏好对内容进行了编码之后往往会变化的不同数量的增强层以及在基于用户的观看偏好对内容进行了编码之后往往会变化的多视角增强层时。另外,已确定,当解码器在特定操作点操作和/或在输出所选择的输出层集合时,基于使用sps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]和sps_max_dec_pic_buffering[HighestTid]句法元素来用信号发送输出顺序解码画面缓冲器(DPB)以用于从DPB的画面的输出和去除可能在DPB的内存使用方面不是最佳的。为了适应观看偏好的此类差异,另外和/或可选地,输出顺序解码画面缓冲器(DPB)可基于随视频参数集扩展(VPS扩展)一起被包括的此类句法元素来提供用于一个或多个增强层的句法元素。这样,句法元素可被选择为特别适合于往往与用户的观看偏好对应的特定操作点或者输出层集合。
可针对用于一个或多个操作点和/或VPS扩展中的输出层集合的CVS的子层用信号发送DPB缓冲相关参数vps_max_dec_pic_buffering_minus1、vps_max_num_reorder_pics、vps_max_latency_increase_plus1。类似地,如果针对受试的操作点或者针对所选择的输出层集合用信号发送它们,则该系统可定义输出顺序DPB的操作和排挤处理以使用来自VPS扩展的以上用信号发送的DPB缓冲参数。否则,使用来自活动SPS(当与当前画面的nuh_layer_id对应的currLayerId等于0时)或者来自依赖于当前层的layer_id的活动层SPS的对应SPS水平参数。
参照图34A,示出了示例性修改的vps_extension。修改的vps扩展包括新句法,即,num_op_dpb_info_parameters和operation_point_layer_set_idx[i]。该修改的vps扩展可就操作点来定义,其是通过以另一比特流、目标最高TemporalId和目标层标识符列表为输入的子比特流提取处理的操作从另一比特流创建的比特流。
num_output_layer_sets指定利用output_layer_set_index[i]和output_layer_flag[lsIdx][j]指定了输出层的层集合的数量。当不存在时,num_output_layer_sets的值被推断为等于0。描述输出层的层集合是输出层集合。
output_layer_set_idx[i]指定存在output_layer_flag[lsIdx][j]的层集合的索引lsIdx。
output_layer_flag[lsIdx][j]等于1指定nuh_layer_id等于j的层是第lsIdx层集合的目标输出层。output_layer_flag[lsIdx][j]的值等于0指定nuh_layer_id等于j的层不是第lsIdx层集合的目标输出层。
num_op_dpb_info_parameters指定就操作点而言定义的VPS扩展RBSP中存在的op_dpb_parameters()句法结构的数量。num_op_dpb_info_parameters解码器在0至vps_num_layer_sets_minus1(含)的范围内。
operation_point_layer_set_idx[i]指定通过VPS扩展中的第iop_dpb_info_parameters()句法结构所应用于的操作点定义的层集合的列表中的索引。operation_point_layer_set_idx[i]的值可在0至vps_num_layer_sets_minus1(含)的范围内。为了比特流一致性,对于不等于i的任何j,operation_point_layer_set_idx[i]不等于operation_point_layer_set_idx[j]。
参照图35A,op_dpb_info_parameters指定vps_max_sub_layers_minus1[j]、vps_sub_layer_ordering_info_present_flag[j]、vps_max_dec_pic_buffering_minus1[j][k]、vps_max_num_reorder_pics[j][k]和vps_max_latency_increase_plus1[j][k]。
vps_max_sub_layers_minus1[j]加1指示包括多少子层。vps_max_sub_layers_minus1[j]加1指定nuh_layer_id等于j的层的CVS中可存在的时间子层的最大数量。vps_max_sub_layers_minus1[j]的值在0至6(含)的范围内。
vps_sub_layer_ordering_info_present_flag[j]指示该句法是用于包括所有层的一个集合还是用于各个单独的层。vps_sub_layer_ordering_info_present_flag[j]等于1指定针对vps_max_sub_layers_minus1[j]+1子层对于nuh_layer_id等于j的层存在vps_max_dec_pic_buffering_minus1[j][k]、vps_max_num_reorder_pics[j][k]和vps_max_latency_increase_plus1[j][k]。vps_sub_layer_ordering_info_present_flag[j]等于0指定vps_max_dec_pic_buffering_minus1[j][vps_max_sub_layers_minus1[j]]、vps_max_num_reorder_pics[j][vps_max_sub_layers_minus1[j]]和vps_max_latency_increase_plus1[j][vps_max_sub_layers_minus1[j]]的值适用于nuh_layer_id等于j的层的所有子层。
vps_max_dec_pic_buffering_minus1[j][k]加1指定当HighestTid等于k时,对于nuh_layer_id等于j的层的CVS的解码画面缓冲器的、以画面存储缓冲器为单位的最大所需大小。vps_max_dec_pic_buffering_minus1[j][k]的值可在0至MaxDpbSize-1(如子条款A.4中指定的)(含)的范围内。当k大于0时,vps_max_dec_pic_buffering_minus1[j][k]可大于或等于vps_max_dec_pic_buffering_minus1[j][k-1]。当由于vps_sub_layer_ordering_info_present_flag[j]等于0,对于在0至vps_max_sub_layers_minus1[j]-1(含)的范围内的k不存在vps_max_dec_pic_buffering_minus1[j][k]时,它被推断为等于vps_max_dec_pic_buffering_minus1[j][vps_max_sub_layers_minus1[j]]。
vps_max_num_reorder_pics[j][k]指示当HighestTid等于k时,按照解码顺序可在nuh_layer_id等于j的层的CVS中的任何画面之前并且输出顺序在该画面之后的画面的最大允许数量。vps_max_num_reorder_pics[j][k]的值可在0至vps_max_dec_pic_buffering_minus1[j][k](含)的范围内。当k大于0时,vps_max_num_reorder_pics[j][k]大于或等于vps_max_num_reorder_pics[j][k-1]。当由于vps_sub_layer_ordering_info_present_flag[j]等于0,对于在0至vps_max_sub_layers_minus1[j]-1(含)的范围内的k不存在vps_max_num_reorder_pics[j][k]时,它被推断为等于vps_max_num_reorder_pics[j][vps_max_sub_layers_minus1[j]]。
vps_max_latency_increase_plus1[j][k]不等于0用于计算VpsMaxLatencyPictures[j][k]的值,其指定当HighestTid等于k时,按照输出顺序可在nuh_layer_id等于j的层的CVS中的任何画面之前并且解码顺序在该画面之后的画面的最大数量。
当vps_max_latency_increase_plus1[j][k]不等于0时,VpsMaxLatencyPictures[j][k]的值可被如下指定:
VpsMaxLatencyPictures[id][j][k]=
vps_max_num_reorder_pics[id][j][k]+
vps_max_latency_increase_plus1[id][j][k]-1
当vps_max_latency_increase_plus1[j][k]等于0时,不表达对应极限。
vps_max_latency_increase_plus1[j][k]的值在0至232-2(含)的范围内。当由于vps_sub_layer_ordering_info_present_flag[j]等于0,对于在0至vps_max_sub_layers_minus1[j]-1(含)范围内的k不存在vps_max_latency_increase_plus1[j][k]时,它被推断等于vps_max_latency_increase_plus1[j][vps_max_sub_layers_minus1[j]]。
“vps_max_sub_layers_minus1”[id][j]加1指定与索引id关联的操作点的nuh_layer_id等于j的层的CVS中可存在的时间子层的最大数量。vps_max_sub_layers_minus1[id][j]的值可在0至6(含)的范围内。
“vps_sub_layer_ordering_info_present_flag”[id][j]等于1指定针对vps_max_sub_layers_minus1[id][j]+1子层对于与索引id关联的操作点的nuh_layer_id等于j的层存在vps_max_dec_pic_buffering_minus1[id][j][k]、vps_max_num_reorder_pics[id][j][k]和vps_max_latency_increase_plus1[id][j][k]。vps_sub_layer_ordering_info_present_flag[id][j]等于0指定vps_max_dec_pic_buffering_minus1[id][j][vps_max_sub_layers_minus1[id][j]]、vps_max_num_reorder_pics[id][j][vps_max_sub_layers_minus1[id][j]]和vps_max_latency_increase_plus1[id][j][vps_max_sub_layers_minus1[id][j]]的值应用于与索引id关联的操作点的nuh_layer_id等于j的层的所有子层。
“vps_max_dec_pic_buffering_minus1”[id][j][k]加1指定当HighestTid等于k时,与索引id关联的操作点的nuh_layer_id等于j的层的CVS的解码画面缓冲器的、以画面存储缓冲器为单位的最大所需大小。vps_max_dec_pic_buffering_minus1[id][j][k]的值可在0至MaxDpbSize-1(如子条款A.4中指定的)(含)的范围内。当k大于0时,vps_max_dec_pic_buffering_minus1[id][j][k]可大于或等于vps_max_dec_pic_buffering_minus1[id][j][k-1]。当由于vps_sub_layer_ordering_info_present_flag[id][j]等于0,对于在0至vps_max_sub_layers_minus1[id][j]-1(含)的范围内的k不存在vps_max_dec_pic_buffering_minus1[id][j][k]时,它被推断为等于vps_max_dec_pic_buffering_minus1[id][j][vps_max_sub_layers_minus1[id][j]]。
“vps_max_num_reorder_pics”[id][j][k]指示当HighestTid等于k时,按照解码顺序可在与索引id关联的操作点的nuh_layer_id等于j的层的CVS中的任何画面之前并且输出顺序在该画面之后的画面的最大允许数量。vps_max_num_reorder_pics[id][j][k]的值可以在0至vps_max_dec_pic_buffering_minus1[id][j][k](含)的范围内。当k大于0时,vps_max_num_reorder_pics[id][j][k]可大于或等于vps_max_num_reorder_pics[id][j][k-1]。当由于vps_sub_layer_ordering_info_present_flag[id][j]等于0,对于在0至vps_max_sub_layers_minus1[id][j]-1(含)的范围内的k不存在vps_max_num_reorder_pics[id][j][k]时,它被推断为等于vps_max_num_reorder_pics[id][j][vps_max_sub_layers_minus1[id][j]]。
“vps_max_latency_increase_plus1”[id][j][k]不等于0用于计算VpsMaxLatencyPictures[id][j][k]的值,其指定当HighestTid等于k时,按照输出顺序可在与索引id关联的操作点的nuh_layer_id等于j的层的CVS中的任何画面之前并且解码顺序在该画面之后的画面的最大数量。
当vps_max_latency_increase_plus1[id][j][k]不等于0时,VpsMaxLatencyPictures[id][j][k]的值被如下指定:
VpsMaxLatencyPictures[id][j][k]=
vps_max_num_reorder_pics[id][j][k]+
vps_max_latency_increase_plus1[id][j][k]-1
当vps_max_latency_increase_plus1[id][j][k]等于0时,不表达对应极限。
vps_max_latency_increase_plus1[id][j][k]的值可在0至232-2(含)的范围内。当由于vps_sub_layer_ordering_info_present_flag[id][j]等于0,对于在0至vps_max_sub_layers_minus1[id][j]-1(含)的范围内的k不存在vps_max_latency_increase_plus1[id][j][k]时,它被推断为等于vps_max_latency_increase_plus1[id][j][vps_max_sub_layers_minus1[id][j]]。
参照图35B,可如所示进一步将op_dpb_info_parameters修改为op_dpb_info_parameters(id,j)。在这种情况下,VPS扩展的句法可如图34B所示。使用假想参考解码器(HRD)来检查比特流和解码器一致性。两种类型的比特流或者比特流子集经受视频编码联合组(JCT-VC)的HRD一致性检查。第一类型称为类型I比特流,是仅包含比特流中的所有访问单元的VCLNAL单元以及nal_unit_type等于FD_NUT的NAL单元(填充数据NAL单元)的NAL单元流。第二类型称为类型II比特流,除了比特流中的所有访问单元的VCLNAL单元以及填充数据NAL单元以外还包含下列项中的至少一个:(a)填充数据NAL单元以外的附加非VCLNAL单元;以及(b)形成来自NAL单元流的字节流的所有leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes和trailing_zero_8bits句法元素。
HRD所需的非VCLNAL单元的句法元素(或者其一些句法元素的默认值)在附录D和E的条款7的语义子条款中指定。
使用两种类型的HRD参数集(NALHRD参数和VCLHRD参数)。通过hrd_parameters()句法结构(可以是SPS句法结构或VPS句法结构的部分)来用信号发送HRD参数集。
可能需要多个测试来检查比特流(被称作受试的比特流)的一致性。对于各个测试,以下步骤按照所列顺序应用:
(1)选择受试的操作点(称为TargetOp)。TargetOp的层标识符列表OpLayerIdList由nuh_layer_id值按照与TargetOp关联的比特流子集中所存在的nuh_layer_id值(是受试的比特流中所存在的nuh_layer_id值的子集)的增序的列表组成。TargetOp的OpTid等于与TargetOp关联的比特流子集中所存在的最高TemporalId。
(2)TargetDecLayerIdList被设定为等于TargetOp的OpLayerIdList,HighestTid被设定为等于TargetOp的OpTid,以受试的比特流、HighestTid和TargetDecLayerIdList作为输入来调用如条款10中所指定的子比特流提取处理,并且输出被指派给BitstreamToDecode。
(3)选择适用于TargetOp的hrd_parameters()句法结构和sub_layer_hrd_parameters()句法结构。如果TargetDecLayerIdList包含受试的比特流中所存在的所有nuh_layer_id值,则选择活动SPS中的(或者通过本规范中未指定的外部装置提供的)hrd_parameters()句法结构。否则,选择适用于TargetOp的活动VPS中的(或者通过本规范中未指定的一些外部装置提供的)hrd_parameters()句法结构。在所选择的hrd_parameters()句法结构内,如果BitstreamToDecode是类型I比特流,则选择紧随条件“if(vcl_hrd_parameters_present_flag)”之后的sub_layer_hrd_parameters(HighestTid)句法结构,并且变量NalHrdModeFlag被设定为等于0;否则(BitstreamToDecode是类型II比特流),选择紧随条件“if(vcl_hrd_parameters_present_flag)”(在这种情况下,变量NalHrdModeFlag被设定为等于0)或者条件“if(nal_hrd_parameters_present_flag)”(在这种情况下,变量NalHrdModeFlag被设定为等于1)之后的sub_layer_hrd_parameters(HighestTid)句法结构。当BitstreamToDecode是类型II比特流并且NalHrdModeFlag等于0时,从BitstreamToDecode丢弃除了填充数据NAL单元以外的所有非VCLNAL单元以及形成来自NAL单元流(如附录B中指定的)的字节流的所有leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes和trailing_zero_8bits句法元素(当存在时),并且剩余比特流被指派给BitstreamToDecode。
在另一情况下,可能需要多个测试来检查比特流(被称作受试的比特流)的一致性。对于各个测试,以下步骤按照所列顺序应用:
(1)选择受试的输出层集合(称为TargetOpLs)。由output_layer_set_idx[]在TargetOpLs中提及的操作点标识受试的操作点。TargetOpLs的输出层标识符列表OpLayerIdList由nuh_layer_id值按照与TargetOp和TargetOpLs关联的比特流子集中所存在的nuh_layer_id值(是受试的比特流中所存在的nuh_layer_id值的子集)的增序的列表组成。TargetOp的OpTid等于与TargetOp关联的比特流子集中所存在的最高TemporalId。
(2)TargetDecLayerIdList被设定为等于所选择的输出层集合TargetOpLs的目标解码层标识符列表targetDLayerIdList,HighestTid被设定为等于TargetOp的OpTid,以受试的比特流、HighestTid和TargetDecLayerIdList作为输入来调用如条款10中所指定的子比特流提取处理,并且输出被指派给BitstreamToDecode。
(3)选择适用于TargetOp的hrd_parameters()句法结构和sub_layer_hrd_parameters()句法结构。如果TargetDecLayerIdList包含受试的比特流中所存在的所有nuh_layer_id值,则选择活动SPS中的(或者通过本规范中未指定的外部装置提供的)hrd_parameters()句法结构。否则,选择适用于TargetOp的活动VPS中的(或者通过本规范中未指定的一些外部装置提供的)hrd_parameters()句法结构。在所选择的hrd_parameters()句法结构内,如果BitstreamToDecode是类型I比特流,则选择紧随条件“if(vcl_hrd_parameters_present_flag)”之后的sub_layer_hrd_parameters(HighestTid)句法结构,并且变量NalHrdModeFlag被设定为等于0;否则(BitstreamToDecode是类型II比特流),选择紧随条件“if(vcl_hrd_parameters_present_flag)”(在这种情况下,变量NalHrdModeFlag被设定为等于0)或者条件“if(nal_hrd_parameters_present_flag)”(在这种情况下,变量NalHrdModeFlag被设定为等于1)之后的sub_layer_hrd_parameters(HighestTid)句法结构。当BitstreamToDecode是类型II比特流并且NalHrdModeFlag等于0时,从BitstreamToDecode丢弃除了填充数据NAL单元以外的所有非VCLNAL单元以及形成来自NAL单元流(如附录B中指定的)的字节流的所有leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes和trailing_zero_8bits句法元素(当存在时),并且剩余比特流被指派给BitstreamToDecode。
一致性的解码器可满足此子条款中所指定的所有要求。
(1)要求对特定配置文件、等级和水平的一致性的解码器可以能够成功地按照附录A中所指定的方式解码符合子条款C.4中所指定的比特流一致性要求的所有比特流,前提是在比特流中(通过非VCLNAL单元)或者通过本规范中未指定的外部装置将VCLNAL单元中参考的所有VPS、SPS和PPS以及适当的缓冲周期和画面定时SEI消息及时地传达给解码器。
(2)当比特流包含值被指定为保留的句法元素并且指定解码器可忽略句法元素的值或者包含具有保留的值的句法元素的NAL单元,并且比特流在其它方面符合此规范时,一致性的解码器可按照与它将一致性的比特流解码相同的方式来将比特流解码,并且可忽略句法元素或者包含具有如指定的保留值的句法元素的NAL单元。
存在解码器的两种类型的一致性:输出定时一致性和输出顺序一致性。
为了检查解码器的一致性,通过假想流调度器(HSS)将如子条款C.4中指定的符合所要求的配置文件、等级和水平的测试比特流传送给HRD和受试的解码器(DUT)二者。由HRD输出的所有修剪的解码画面也可由DUT输出,由DUT输出的各个修剪的解码画面可以是PicOutputFlag等于1的画面,并且对于由DUT输出的各个这样修剪的解码画面,输出的所有样本的值可等于通过指定的解码处理生成的样本的值。
对于输出定时解码器一致性,利用仅选自对于指定的配置文件、等级和水平,比特率和CPB大小如附录A中所指定的受到限制的SchedSelIdx的值的子集的传送调度,或者利用如下指定的比特率和CPB大小如附录A中所指定的受到限制的“插值”传送调度,HSS如上所述操作。针对HRD和DUT二者使用相同的传送调度。
当在cpb_cnt_minus1[HighestTid]大于0的情况下存在HRD参数和缓冲周期SEI消息时,解码器可以能够将从利用被指定为具有峰比特率r、CPB大小c(r)和初始CPB去除延迟(f(r)÷r)的“插值”传送调度操作的HSS传送的比特流如下解码:
对于任何SchedSelIdx>0以及使得BitRate[SchedSelIdx-1]<=r<=BitRate[SchedSelIdx]的r,使得对于所指定的配置文件、等级和水平的最大比特率和缓冲大小,r和c(r)在如附录A中所指定的极限内。InitCpbRemovalDelay[SchedSelIdx]可从一个缓冲周期到另一缓冲周期不同,并且必须被重新计算。
对于输出定时解码器一致性,使用如上所述的HRD,并且对于HRD和DUT二者,输出画面的定时(相对于第一比特的传送时间)相同(直到固定的延迟)。
对于输出顺序解码器一致性,以下适用:
(1)HSS“按需”从DUT将比特流BitstreamToDecode传送给DUT,意味着HSS只有在DUT需要更多比特来继续其处理时才传送比特(按照解码顺序)。这意味着对于此测试,DUT的编码画面缓冲器可与最大解码单元的大小一样小。
(2)使用如下所述的修改的HRD,HSS按照比特流BitstreamToDecode中所指定的调度之一来将比特流传送给HRD,使得比特率和CPB大小如附录A中所指定的受到限制。对于HRD和DUT二者,输出画面的顺序可相同。
(3)HRDCPB大小由如子条款E.2.3中所指定的CpbSize[SchedSelIdx]来指定,其中SchedSelIdx和HRD参数如子条款C.1中所指定的来选择。DPB大小由来自活动SPS(当当前解码画面的nuh_layer_id等于0时)或者来自当前解码画面的nuh_layer_id的值的活动层SPS的sps_max_dec_pic_buffering_minus1[HighestTid]+1给出。在一些情况下,如果对于所选择的输出层集合存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时DPB大小由vps_max_dec_pic_buffering_minus1[HighestTid]给出,或者当currLayerId大于0时,对于受试的操作点的currLayerId,被设定为vps_max_dec_pic_buffering_minus1[CurrLayerId][HighestTid],其中currLayerId是当前解码画面的nuh_layer_id。否则,如果对于受试的操作点不存在操作点DPB信息参数op_dpb_info_parameters(),则DPB大小由来自活动SPS(当当前解码画面的nuh_layer_id等于0时)或者来自当前解码画面的nuh_layer_id的值的活动层SPS的sps_max_dec_pic_buffering_minus1[HighestTid]+1给出。
在一些情况下,如果对于所选择的输出层集合存在输出层集合DPB信息参数oop_dpb_info_parameters(),则当currLayerId等于0时DPB大小由vps_max_dec_pic_buffering_minus1[HighestTid]给出,或者对于所选择的输出层集合的currLayerId,被设定为vps_max_dec_pic_buffering_minus1[CurrLayerId][HighestTid],其中currLayerId是当前解码画面的nuh_layer_id。否则,如果对于所选择的输出层集合不存在输出层集合DPB信息参数oop_dpb_info_parameters(),则DPB大小由来自活动SPS(当当前解码画面的nuh_layer_id等于0时)或者来自当前解码画面的nuh_layer_id的值的活动层SPS的sps_max_dec_pic_buffering_minus1[HighestTid]+1给出。
对于HRD从CPB的去除时间是最后比特到达时间,并且立即解码。此HRD的DPB的操作如子条款C.5.2至C.5.2.3中所述。
解码画面缓冲器包含画面存储缓冲器。从活动SPS推导nuh_layer_id等于0的画面存储缓冲器的数量。从该非零nuh_layer_id值的活动层SPS推导各个非零nuh_layer_id值的画面存储缓冲器的数量。各个画面存储缓冲器包含被标记为“用于参考”或者被保存以用于未来输出的解码画面。调用如子条款F.13.5.2.2中所指定的从DPB输出和去除画面的处理,然后调用如子条款F.13.5.2.3中所指定的画面解码、标记、附加排挤和存储的处理。“排挤”处理在子条款F.13.5.2.4中指定,并且如子条款F.13.5.2.2和F.13.5.2.3中指定来调用。
在当前画面解码之前(但是在解析当前画面的第一切片的切片报头之后),当从CPB去除包含当前画面的访问单元的第一解码单元时瞬时地从DPB输出和去除画面并且如下继续。
如子条款8.3.2中所指定的对RPS的解码处理被调用。
(1)如果当前画面是NoRaslOutputFlag等于1并且nuh_layer_id等于0的IRAP画面,不是画面0,则以下有序步骤适用:
(A)为受试的解码器如下推导变量NoOutputOfPriorPicsFlag:
(i)如果当前画面是CRA画面,则NoOutputOfPriorPicsFlag被设定为等于1(不管no_output_of_prior_pics_flag的值如何)。
(ii)否则,如果从活动SPS推导的pic_width_in_luma_samples、pic_height_in_luma_samples或sps_max_dec_pic_buffering_minus1[HighestTid]的值不同于从对于在前画面而言活动的SPS相应地推导的pic_width_in_luma_samples、pic_height_in_luma_samples或sps_max_dec_pic_buffering_minus1[HighestTid]的值,则NoOutputOfPriorPicsFlag可被受试的解码器设定为1(但是不应该这样做),而不管no_output_of_prior_pics_flag的值如何。尽管在这些条件下优选的是将NoOutputOfPriorPicsFlag设定为等于no_output_of_prior_pics_flag,在这种情况下允许受试的解码器将NoOutputOfPriorPicsFlag设定为1。
(iii)否则,NoOutputOfPriorPicsFlag被设定为等于no_output_of_prior_pics_flag。
(B)为受试的解码器推导的NoOutputOfPriorPicsFlag的值如下应用于HRD:
(i)如果NoOutputOfPriorPicsFlag等于1,则DPB中的所有画面存储缓冲器被清空,没有它们所包含的画面的输出,并且DPB充盈度被设定为等于0。
(ii)否则(NoOutputOfPriorPicsFlag等于0),包含被标记为“无需输出”和“不用于参考”的画面的所有画面存储缓冲器被清空(没有输出),DPB中的所有非空画面存储缓冲器通过重复地调用子条款F.13.5.2.4中所指定的“排挤”处理来清空,并且DPB充盈度被设定为等于0。
(iii)否则(当前画面不是NoRaslOutputFlag等于1并且nuh_layer_id等于0的IRAP画面),包含被标记为“无需输出”和“不用于参考”的画面的所有画面存储缓冲器被清空(没有输出)。对于被清空的各个画面存储缓冲器,DPB充盈度递减一。变量currLayerId被设定为等于当前解码画面的nuh_layer_id。
基于受试的当前操作点如下推导变量MaxNumReorderPics[TargetOp][currLayerId][HighestTid]、MaxLatencyIncreasePlus1[TargetOp][currLayerId][HighestTid]、MaxLatencyPictures[TargetOp][currLayerId][HighestTid]、MaxDecPicBufferingMinus1[TargetOp][currLayerId][HighestTid]:
(1)如果对于受试的操作点TargetOp存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时,MaxNumReorderPics[TargetOp][currLayerId][HighestTid]被设定为vps_max_num_reorder_pics[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为vps_max_num_reorder_pics[TargetOp][CurrLayerId][HighestTid]。否则,如果对于受试的操作点不存在操作点DPB信息参数op_dpb_info_parameters(),则MaxNumReorderPics[TargetOp][currLayerId][HighestTid]被设定为来自活动SPS(当currLayerId等于0时)或者来自currLayerId的值的活动层SPS的sps_max_num_reorder_pics[HighestTid]。
(2)如果对于受试的操作点TargetOp存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxLatencyIncreasePlus1[TargetOp][currLayerId][HighestTid]被设定为vps_max_latency_increase_plus1[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为vps_max_latency_increase_plus1[TargetOp][CurrLayerId][HighestTid]。如果对于受试的操作点存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxLatencyPictures[TargetOp][currLayerId][HighestTid]被设定为VpsMaxLatencyPictures[HighestTid],或者对于受试的操作点的currLayerId,当currLayerId大于0时被设定为VpsMaxLatencyPictures[TargetOp][CurrLayerId][HighestTid]。否则,如果对于受试的操作点存在操作点DPB信息参数op_dpb_info_parameters(),则MaxLatencyIncreasePlus1[TargetOp][currLayerId][HighestTid]被设定为活动SPS(当currLayerId等于0时)或者currLayerId的值的活动层SPS的sps_max_latency_increase_plus1[HighestTid],并且MaxLatencyPictures[TargetOp][currLayerId][HighestTid]被设定为从活动SPS(当currLayerId等于0时)或者从currLayerId的值的活动层SPS推导的SpsMaxLatencyPictures[HighestTid]。
(3)如果对于所选择的受试的操作点TargetOp存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxDecPicBufferingMinus1[TargetOp][currLayerId][HighestTid]被设定为vps_max_dec_pic_buffering_minus1[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为vps_max_dec_pic_buffering_minus1[TargetOp][CurrLayerId][HighestTid]。否则,如果对于受试的操作点不存在操作点DPB信息参数op_dpb_info_parameters(),则MaxDecPicBufferingMinus1[TargetOp][currLayerId][HighestTid]被设定为来自活动SPS(当currLayerId等于0时)或者来自currLayerId的值的活动层SPS的sps_max_dec_pic_buffering_minus1[HighestTid]。
当以下条件中的一个或多个为真时,在针对被清空的各个附加画面存储缓冲器进一步使DPB充盈度递减的同时重复地调用子条款F.13.5.2.4中所指定的“排挤”处理,直至以下条件均不为真:
(1)DPB中被标记为“需要输出”的nuh_layer_id等于currLayerId的画面的数量大于MaxNumReorderPics[TargetOp][CurrLayerId][HighestTid]。
(2)如果MaxLatencyIncreasePlus1[TargetOp][CurrLayerId][HighestTid]不等于0并且DPB中存在被标记为“需要输出”的nuh_layer_id等于currLayerId的至少一个画面,其所关联的变量PicLatencyCount[currLayerId]大于或等于MaxLatencyPictures[TargetOp][CurrLayerId][HighestTid]。
(3)DPB中nuh_layer_id等于currLayerId的画面的数量大于或等于MaxDecPicBuffering[TargetOp][CurrLayerId][HighestTid]。
当从CPB去除包含当前画面的访问单元的最后解码单元时瞬时地发生此子条款中所指定的处理。
变量currLayerId被设定为等于当前解码画面的nuh_layer_id。
对于DPB中被标记为“需要输出”并且nuh_layer_id值等于currLayerId的各个画面,关联的变量PicLatencyCount[currLayerId]被设定为等于PicLatencyCount[currLayerId]+1。
当前画面被认为在画面的最后解码单元被解码之后被解码。当前解码画面被存储在DPB中的空画面存储缓冲器中,且以下适用:
(A)如果当前解码画面的PicOutputFlag等于1,则它被标记为“需要输出”并且其关联的变量PicLatencyCount[currLayerId]被设定为等于0。
(B)否则(当前解码画面的PicOutputFlag等于0),它被标记为“无需输出”。
当前解码画面被标记为“用于短期参考”。
当以下条件中的一个或多个为真时,重复地调用子条款F.13.5.2.4中所指定的“排挤”处理,直至以下条件均不为真:
(A)DPB中被标记为“需要输出”的nuh_layer_id等于currLayerId的画面的数量大于MaxNumReorderPics[TargetOp][CurrLayerId][HighestTid]。
(B)MaxLatencyIncreasePlus1[TargetOp][CurrLayerId][HighestTid]不等于0,并且DPB中存在被标记为“需要输出”的nuh_layer_id等于currLayerId的至少一个画面,其所关联的变量PicLatencyCount[currLayerId]大于或等于MaxLatencyPictures[TargetOp][CurrLayerId][HighestTid]。
在其它情况下,可如下推导变量MaxNumReorderPics[currLayerId][HighestTid]、MaxLatencyIncreasePlus1[currLayerId][HighestTid]、MaxLatencyPictures[currLayerId][HighestTid]、MaxDecPicBufferingMinus1[currLayerId][HighestTid]:
(1)如果对于受试的操作点存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxNumReorderPics[currLayerId][HighestTid]被设定为vps_max_num_reorder_pics[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为vps_max_num_reorder_pics[CurrLayerId][HighestTid]。否则,如果对于受试的操作点不存在操作点DPB信息参数op_dpb_info_parameters(),则MaxNumReorderPics[currLayerId][HighestTid]被设定为来自活动SPS(当currLayerId等于0时)或者来自currLayerId的值的活动层SPS的sps_max_num_reorder_pics[HighestTid]。
(2)如果对于受试的操作点存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxLatencyIncreasePlus1[currLayerId][HighestTid]被设定为vps_max_latency_increase_plus1[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为vps_max_latency_increase_plus1[CurrLayerId][HighestTid]。如果对于受试的操作点存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxLatencyPictures[currLayerId][HighestTid]被设定为VpsMaxLatencyPictures[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为VpsMaxLatencyPictures[CurrLayerId][HighestTid]。否则,如果对于受试的操作点不存在操作点DPB信息参数op_dpb_info_parameters(),则MaxLatencyIncreasePlus1[currLayerId][HighestTid]被设定为活动SPS(当currLayerId等于0时)或者currLayerId的值的活动层SPS的sps_max_latency_increase_plus1[HighestTid],并且MaxLatencyPictures[currLayerId][HighestTid]被设定为从活动SPS(当currLayerId等于0时)或者从currLayerId的值的活动层SPS推导的SpsMaxLatencyPictures[HighestTid]。
(3)如果对于所选择的受试的操作点存在操作点DPB信息参数op_dpb_info_parameters(),则当currLayerId等于0时MaxDecPicBufferingMinus1[currLayerId][HighestTid]被设定为vps_max_dec_pic_buffering_minus1[HighestTid],或者当currLayerId大于0时,对于受试的操作点的currLayerId,其被设定为vps_max_dec_pic_buffering_minus1[CurrLayerId][HighestTid]。否则,如果对于受试的操作点不存在操作点DPB信息参数op_dpb_info_parameters(),则MaxDecPicBufferingMinus1[currLayerId][HighestTid]被设定为来自活动SPS(当currLayerId等于0时)或者来自currLayerId的值的活动层SPS的sps_max_dec_pic_buffering_minus1[HighestTid]。
当以下条件中的一个或多个为真时,在针对被清空的各个附加画面存储缓冲器进一步使DPB充盈度递减的同时重复地调用子条款F.13.5.2.4中所指定的“排挤”处理,直至以下条件均不为真:
(1)DPB中被标记为“需要输出”的nuh_layer_id等于currLayerId的画面的数量大于MaxNumReorderPics[CurrLayerId][HighestTid]。
(2)如果MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]不等于0并且DPB中存在被标记为“需要输出”的nuh_layer_id等于currLayerId的至少一个画面,其所关联的变量PicLatencyCount[currLayerId]大于或等于MaxLatencyPictures[CurrLayerId][HighestTid]。
(3)DPB中nuh_layer_id等于currLayerId的画面的数量大于或等于MaxDecPicBuffering[CurrLayerId][HighestTid]。
当从CPB去除包含当前画面的访问单元n的最后解码单元时瞬时地发生此子条款中所指定的处理。
变量currLayerId被设定为等于当前解码画面的nuh_layer_id。
对于DPB中被标记为“需要输出”并且nuh_layer_id值等于currLayerId的各个画面,关联的变量PicLatencyCount[currLayerId]被设定为等于PicLatencyCount[currLayerId]+1。
当前画面被认为在画面的最后解码单元被解码之后被解码。当前解码画面被存储在DPB中的空画面存储缓冲器中,且以下适用:
(A)如果当前解码画面的PicOutputFlag等于1,则它被标记为“需要输出”并且其关联的变量PicLatencyCount[currLayerId]被设定为等于0。
(B)否则(当前解码画面的PicOutputFlag等于0),它被标记为“无需输出”。
当前解码画面被标记为“用于短期参考”。
当以下条件中的一个或多个为真时,重复地调用子条款F.13.5.2.4中所指定的“排挤”处理,直至以下条件均不为真:
(A)DPB中被标记为“需要输出”的nuh_layer_id等于currLayerId的画面的数量大于MaxNumReorderPics[CurrLayerId][HighestTid]。
(B)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]不等于0,并且DPB中存在被标记为“需要输出”的nuh_layer_id等于currLayerId的至少一个画面,其所关联的变量PicLatencyCount[currLayerId]大于或等于MaxLatencyPictures[CurrLayerId][HighestTid]。
“排挤”处理由以下有序步骤组成:
(A)首先输出的画面被选为DPB中被标记为“需要输出”的所有画面中PicOrderCntVal具有最小值的画面。
(B)利用nuh_layer_id等于0的画面的活动SPS或者nuh_layer_id值等于画面的活动层SPS中指定的一致性修剪窗口来修剪这些画面,所修剪的画面按照nuh_layer_id的升序输出,并且画面被标记为“无需输出”。
(C)包含被标记为“不用于参考”的画面并且包括被修剪和输出的画面之一的各个画面存储缓冲器被清空。
如果需要,VPS扩展可具有附加修改。
参照图36,附加修改可包括在输出层集合(而非操作点)的VPS扩展中发送DPB参数,其中oops_dpb_info_parameters(j)示出于图37中。
num_dpb_info_parameters指定VPS扩展RBSP中存在的oop_dpb_parameters()句法结构的数量。num_dpb_info_parameters解码器可在0至num_output_layer_sets(含)的范围内。
output_point_layer_set_idx[i]指定VPS扩展中的第ioop_dpb_info_parameters()句法结构所应用于的目标输出层集合的列表中的索引。
output_point_layer_set_idx[i]的值应该在0至num_output_layer_sets(含)的范围内。比特流一致性要求对于不等于i的任何j,output_point_layer_set_idx[i]可不等于output_point_layer_set_idx[j]。
参照图38,oop_dpb_info_paremters(c)可被进一步修改,其中VPS扩展中的句法可如图39所示。
参照图40,oop_dpb_info_paremters(c)可被进一步修改,其中VPS扩展中的句法可如图41或图42所示。
VPS扩展中的句法的示例性替代是
for(j=0;j<=vps_max_layer_id;j++)
oop_dpb_info_parameters(j)
可被改变为
for(j=0;j<=vps_max_layers_minus1;j++)
oop_dpb_info_parameters(j)
vps_max_layer_id指定CVS中的所有NAL单元的nuh_layer_id的最大允许值。vps_max_layers_minus1指定CVS中可存在的层的最大数量,其中,层可以是例如空间可缩放层、质量可缩放层、纹理视角或者深度视角。
VPS扩展中的句法的另一示例性替代是
for(j=0;j<=vps_max_layer_id;j++)
oop_dpb_info_parameters(j)
可被改变为
for(j=0;j<numOutputLayers;j++)
oop_dpb_info_parameters(j)
其中所选择的输出层集合索引oplsIdx的numOutputLayers被推导为:
VPS扩展中的句法的另一示例性替代是
for(j=0;j<=vps_max_layer_id;j++)
oop_dpb_info_parameters(j)
可被改变为
for(j=0;j<numDecodedLayers;j++)
oop_dpb_info_parameters(j)
其中所选择的oplsIdx的numOutputLayers被推导为:
然后,所选择的oplsIdx的目标解码层标识符列表targetDLayerIdList和numDecodedLayers被推导为:
在一个实施方式中,可如下用信号发送附加标志以指示是否针对特定层用信号发送oop_dpb_information_parameters:
vps_layer_info_present_flag[j]等于1指定对于特定输出层集合的第j层存在oop_dpb_info_parametersr。vps_layer_info_present_flag[j]等于0指定对于特定输出层集合的第j层不存在oop_dpb_info_parameters。
在另一实施方式中,num_dpb_info_parameters解码器可在0至1024(含)的范围内。在另一实施方式中,可代替1024使用不同的固定数。
在另选实施方式中,output_point_layer_set_idx[i]在0至1023(含)的范围内。
参照图43,如果独立于输出层集合和操作点在各个层的VPS扩展中发送DPB参数,则可使用另一修改的VPS扩展和layer_dpb_info(i)。
参照图44,可使用修改的layer_dpb_info(i),其中从VPS用信号发送的句法元素vps_max_sub_layer_minus1用于所有层,并且不单独地在oop_dpb_info_parameters(id)/op_dpb_info_parameters(id)中用信号发送。
在另一实施方式中,代替u(v)代替ue(v),一个或多个句法元素可利用已知的固定数量的比特来用信号发送。例如,它们可利用u(8)或u(16)或u(32)或u(64)等来用信号发送。
在另一实施方式中,代替诸如u(v)编码的固定数量的比特,这些句法元素中的一个或多个可利用ue(v)或者一些其它编码方案来用信号发送。
在另一实施方式中,与所描述的句法和语义相比,各种句法元素的名称及其语义可通过添加plus1或plus2或者通过减去minus1或minus2来更改。
在另一实施方式中,可在比特流中的任何地方每画面地用信号发送各种句法元素。例如,可在片段报头、pps/sps/vps/aps或者任何其它参数集或者比特流的其它规范部分中用信号发送它们。
在另一实施方式中,本发明中与输出层集合相关定义的所有概念可被应用于输出操作点[2,3]和/或操作点[1]。
如先前所描述的,序列参数集(“SPS”)可用于承载对于整个视频序列而言有效的数据。因此,SPS是包含应用于零或更完整的编码视频序列的句法元素的句法结构,其由在句法元素所参考的PPS中找到的(例如,在各个片段报头中找到的)句法元素的内容来确定。另外,如前所述,画面参数集(“PPS”)承载逐画面有效的数据。因此,PPS是包含应用于零或更完整的编码画面的句法元素的句法结构,其由在各个片段报头中找到的句法元素来确定。例如,基本层可以是1080p编码的视频序列,而一个或多个增强层提供4K编码的视频序列。
参考图45,当可缩放高效编码(“SVHC”)时,基本层可包括一个或多个SPS并且还可包括一个或多个PPS。另外,各个增强层可包括一个或多个SPS,并且还可包括一个或多个PPS。在图45中,SPS+指示一个或多个SPS,PPS+指示为特定基本层或增强层用信号发送的一个或多个PPS。这样,对于具有基本层和一个或多个增强层二者的视频比特流,SPS和PPS数据集合的总数随发送此类数据所需的带宽一起变得显著,这在许多应用中往往受限。由于此类带宽限制,期望的是限制需要被发送的数据,并且以活动的方式将数据定位于比特流中。需要时,各个层可以具有在任何特定的时间处是活动的一个SPS和/或PPS,并且可以按照期望选择不同的活动的SPS和/或PPS。
输入画面可以包括多个编码的树型块(即,本文中一般被称为块),可以被划分为一个或一些切片。在切片表示的画面区域中的采样值可以在不使用来自其他切片的数据的情况下被合适地解码,假如在编码器和解码器中使用的参考画面是相同的,和去块滤波不使用在切片边界的信息。因此,切片的熵解码和块重建不取决于其他切片。特别地,熵编码状态可以在每个切片的起始处重新设置。当为熵解码和重建两者定义邻近可用性时,其他切片中的数据可以被标记为不可用。切片可以被并行地熵解码和重建。在切片的边界处优选地不允许进行帧内预测和运动向量预测。相比之下,去块滤波可以使用跨切片边界的信息。
图46示出示例性的视频画面2090,其包括沿着水平方向的十一个块和沿着垂直方向的九个块(被标记为2091-2099的九个示例性块)。图46示出三个示例性的切片:表示为“SLICE#0”的第一切片2080、表示为“SLICE#1”的第二切片2081和表示为“SLICE#2”的第三切片2082。解码器可以并行地解码和重建三个切片2080、2081、2082。每个切片可以按照扫描线顺序以顺序地方式被发送。在每个切片的解码/重建过程的开始,上下文模型被初始化或重新设置,其他切片中的块被标记为不可用于熵解码和块重建。上下文模型一般表示熵编码器和/或解码器的状态。因此,对于块而言,例如,在“SLICE#1”中被标记为2093的块,在“SLICE#0”中的块(例如,被标记为2091和2092的块)不可以被用于上下文选择或重建。然而,对于块而言,例如在“SLICE#1”中被标记为2095的块,在“SLICE#1”中的其他块(例如,被标记为2093和2094的块)可以用于上下文选择或重建。因此,熵解码和块重建在切片内连续地进行。除非切片是利用灵活块排序(FMO)被定义的,否则切片内的块是按照光栅扫描的顺序被处理。
灵活块排序定义切片组,以修改如何将画面划分为切片。切片组中的块是由块到切片组映射定义,是由画面参数集的内容和切切片报头中的额外信息通过信号发送的。块到切片组映射是由画面中每个块的切片组标识数目构成。切片组标识数目指定相关联的块属于哪个切片组。每个切片组可以被划分为一个或多个切片,其中切片是在特定切片组的块集合内按照光栅扫描的顺序被处理的相同切片组内的块的顺序。熵解码和块重建在切片组内连续地进行。
图47描绘分配到三个切片组的示例性块:表示为“SLICEGROUP#0”的第一切片组2083、表示为“SLICEGROUP#1”的第二切片组2084和表示为“SLICEGROUP#2”的第三切片组2085。三个切片组2083、2084、2085可以分别与画面2090中的两个前景区域和背景区域相关联。
如图47中所描绘的,切片的布置可以限制为将每个切片按照图像扫描顺序定义在一对块之间,图像扫描顺序还被称为光栅扫描或光栅扫描顺序。扫描顺序切片的布置计算效率高但是不适用于高效并行编码和解码。而且,切片的扫描顺序定义也不适用于分组很可能具有更适用于高效编码的公共特性的图像的更小局部区域。如图47中所示的切片2083、2084、2085的布置在其布置中是高度灵活的,但是不适用于高效并行编码或解码。而且,高度灵活性的切片定义用于在解码器中实现时计算上较复杂。
参考图48,瓦片技术将图像划分为矩形(包括正方形)区域的集合。每个瓦片内的块(在一些系统中可替选地被称为最大编码单元或编码的树型块)以光栅扫描顺序被编码和解码。瓦片的布置同样可以以光栅扫描顺序被编码和解码。因此,可以存在任意合适数目的列边界(即,0或更多)和可以存在任意合适数目的行边界(即,0或更多)。因此,帧可以定义一个或多个切片,例如图48中所示的一个切片。在一些实施方式中,定位在不同瓦片中的块不可用于帧内预测、运动补偿、熵编码上下文选择或依赖邻近块信息的其他过程。
参考图49,所示瓦片技术将图像划分为三个矩形列集合。每个瓦片内的块(在一些系统中可替选地被称为最大编码单元或编码的树型块)是以光栅扫描顺序被编码和被解码。瓦片同样地以光栅扫描顺序被编码和被解码。一个或多个切片可以按照瓦片的扫描顺序被定义。每个切片可以被独立解码。例如,切片1可以被定义为包括块1-9,切片2可以被定义为包括块10-28,和切片3可以被定义为包括横跨三个瓦片的块29-126。瓦片的使用通过在帧的更多局部区域中处理数据促进编码效率。
参考图50,基本层和增强层可以包括其中每个共同形成画面或画面的一部分的瓦片。包括来自基本层和一个或多个增强层的瓦片的编码画面可以共同形成访问单元。访问单元可以被定义为根据指定的分类规则彼此相关联的、按照解码顺序连续的NAL单元的集,和/或包含与相同输出时间(画面序列计数或其他方式)相关联的所有编码画面的VCLNAL单元和其相关联的非-VCLNAL单元。VCLNAL是网络抽象层的视频编码层。相似地,编码的画面可以被定义为包含访问单元内具有nuh_layer_id的特定值的VCLNAL单元和包含画面的所有编码树型单元的画面的编码表示。额外的描述在B.Bros,W-J.Han,J-R.Ohm,G.J.Sullivan和T.Wiegand的“Highefficiencyvideocoding(HEVC)textspecificationdraft10,”(JCTVC-L1003,日内瓦,2013年1月);J.Chen,J.Boyce,Y.Ye,M.M.Hannuksela的“SHVCDraftText2,”(JCTVC-M1008,仁川,2013年5月);G.Tech,K.Wegner,Y.Chen,M.Hannuksela,J.Boyce的“MV-HEVCDraftText4(ISO/IEC23008-2:201x/PDAM2),”(JCTVC-D1004,仁川,2013年5月)以及K.Suhring,R.Skupin,G.Tech,T.Schierl,K.Rapaka,W.Pu,X.Li,J.Chen,Y.-K.Wang,M.Karczewicz,K.Ugur,M.M.Hannuksela的“TileBoundaryAlignmentandInter-layerPredictionConstraintforSHVCandMV-HEVC,”(JCTVC-M0464,仁川,2013年4月)中描述,由此整体通过引用并入本文。
x<<y表示x的y二进制数字的二进制补码整数表示的算术左位移。仅为y的非负整数值定义此函数。被位移到最低活动位作为左位移的结果的比特具有等于0的值。
x>>y表示x的y二进制数字的二进制补码整数表示的算术右位移。仅为y的非负整数值定义此函数。被位移到MSB作为右位移的结果的比特具有在位移运算之前等于x的MSB的值。
Ceil(x)表示大于或者等于x的最小的整数。
+表示加法。
–表示减法。
÷
被用于表示不打算舍入或者取整的算术等式中的除法。
x/y被用于表示不打算舍入或者取整的算术等式中的除法。
>表示大于。
>=表示大于等于
<表示小于。
<=表示小于等于。
==表示等于
!=表示不等于。
=表示赋值运算符。
*表示乘法,包括矩阵乘法。
X&&y表示x和y的布尔逻辑“和”。
x‖y表示x和y的布尔逻辑“或”。
编码树型块是用于N的一些值的采样的N×N块,使得分量除以编码树型块为分割。
用于在宽度和高度两者中的各个亮度编码树型块的数组大小是以采样为单位的CtbSizeY。
如下地导出变量PicWidthInCtbsY
PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY)
如下地导出变量PicHeightInCtbsY
PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY)
如下地导出变量PicSizelnCtbsY,PicSizelnCtbsY=
PicWidthlnCtbsY*PicHeightlnCtbsY
num_tile_columns_minusl加1指定划分画面的瓦片列的数量。num_tile_columns_minusl应当在0至PicWidthInCtbsY–1(含)的范围内。当不存在时,num_tile_columns_minusl的值被推断为等于0。
num_tile_rows_minus1加1指定划分画面的瓦片行的数量。num_tile_rows_minus1应当在0至PicHeightInCtbsY–1(含)的范围内。当不存在时,num_tile_rows_minusl被推断为等于0。
当tiles_enabled_flag等于1时,num_tile_columns_minusl和num_tile_rows_minusl应当都不等于0。
uniform_spacing_flag等于1指定瓦片列边界和瓦片行边界均匀地分布在画面上。uniform_spacing_flag等于0指定瓦片列边界和瓦片行边界没有均匀地分布在画面上但是利用句法元素column_width_minusl[i]和row_height_minusl[i]被明确地用信号发送。当不存在时,uniform_spacing_flag的值被推断为等于1。
column_width_minusl[i]加1指定在编码树型块的单元中的瓦片列。
row_height_minusl[i]加1指定在编码树型块的单元中的第i个瓦片行的高度。
loop_filter_across_tiles_enabled_flag等于1指定回路滤波操作可以在被称为PPS的画面中的瓦片边界上被指定。loop_filter_across_tiles_enabled_flag等于0指定回路滤波操作不在被称为PPS的画面中的瓦片边界上被指定。回路滤波操作包括去块滤波器和样本自适应偏移滤波器操作。当不存在时,loop_filter_across_tiles_enabled_flag的值被推断为等于1。
从0至num_tile_rows_minus1(含)的j的列表rowHeight[j]指定在CTB的单元中的第j个瓦片行的高度。
从0至num_tile_columns_minusl(含)的i的列表colWidth[i]指定在CTB的单元中的第i个瓦片列的宽度。
变量PicWidthInSamplesL和PicHeightInSamplesL被设定为分别等于pic_width_in_luma_samples和pic_height_in_luma_samples。
变量CtbAddrInRs指定在编码画面的树型块光栅扫描中的编码树型块地址。
从0至Pic-SizeInCtbsY-1(含)的ctbAddrRs的列表CtbAddrRsToTs[ctbAddrRs]指定在画面的CTB光栅扫描中的CTB地址到在瓦片扫描中的CTB地址的转换。
从0至PicSizeInCtbsY-1(含)的ctbAddrTs的列表TileId[ctbAddrTs]指定从瓦片扫描中的CTB地址到瓦片标识符的转换。
scaled_ref_layer_left_offset[i]指定在用于层间预测的重采样的第i个直接参考层画面的左上方亮度样本和两个亮度样本的单元中的当前画面的左下方亮度样本之间的水平偏移。当不存在时,scaled_ref_layer_left_offset[i]的值被推断为等于0。
scaled_ref_layer_top_offset[i]指定在用于层间预测的重采样的第i个直接参考层画面的左上方亮度样本和在两个亮度样本的单元中的当前画面的左上方亮度样本之间的垂直偏移。当不存在时,scaled_ref_layer_top_offset[i]的值被推断为等于0。
scaled_ref_layer_right_offset[i]指定在用于层间预测的重采样的第i个直接参考层画面的右下方亮度样本和在两个亮度样本的单元中的当前画面的右下方亮度样本之间的水平偏移。当不存在时,scaled_ref_layer_right_offset[i]的值被推断为等于0。
scaled_ref_layer_bottom_offset[i]指定用于层间预测的重采样的第i个直接参考层画面的右下方亮度样本和在两个亮度样本的单元中的当前画面的右下方亮度样本之间的垂直偏移。当不存在时,scaled_ref_layer_bottom_offset[i]的值被推断为等于0。
变量ScaledRefLayerLeftOffset,ScaledRefLayerTopOffset,ScaledRefLayerRightOffset和ScaledRefLayerBottomOffset被如下推导:
ScaledRefLayerLeftOffset=scaled_ref_layer_left_offset[dRlldx]<<1
ScaledRefLayerTopOffset=scaled_ref_layer_top_offset[dRlldx]<<1
ScaledRefLayerRightOffset=scaled_ref_layer_right_offset[dRlldx]<<1
ScaledRefLayerBottomOffset=scaled_ref_layer_bottom_offset[dRlldx]<<1
其中dRIIdx对应于直接参考层索引。
变量RefLayerPicWidthInSamplesL和RefLayerPicHeightInSamplesL被设定为分别等于在亮度样本的单元中的解码的参考层画面的宽度和高度。
变量ScaledRefLayerPicWidthInSamplesL和ScaledRefLayerPicHeightIn-SamplesL被如下推导:
ScaledRefLayerPicWidthInSamplesL=PicWidthInSamplesL-
ScaledRefLayerLeftOffset-ScaledRefLayerRightOffset
ScaledRefLayerPicHeightInSamplesL=PicHeightInSamplesL-
ScaledRefLayerTopOffset-ScaledRefLayerBottomOffset
变量ScaleFaclorX和ScaleFaclorY被如下推导:
ScaleFactorX=((RefLayerPicWidthInSamplesL<<16)+
(ScaledRefLayerPicWidthInSamplesL>>1))/
ScaledRefLayerPicWidthInSamplesL
ScaleFactorY=((RefLayerPicHeightInSamplesL<<16)+
(ScaledRefLayerPicHeightInSamplesL>>1))/
ScaledRefLayerPicHeightInSamplesL
参考层的宽度和高度中每个亮度编码树型块的数组大小是在样本的单元中的CtbSizeYRL。
pic_width_in_luma_samples_RL指定在亮度样本的单元中的每个参考层解码画面的宽度。pic_width_in_luma_samples_RL可以不等于0。
pic_height_in_luma_samples_RL指定在亮度样本的单元中的每个参考层解码画面的高度。pic_height_in_luma_samples_RL可以不等于0。
变量PicWidthInCtbsYRL被如下推导:
PicWidthInCtbsYRL=Ceil(pic_width_in_luma_samples_RL÷CtbSizeYRL)
变量PicHeightInCtbsYRL被如下推导:
PicHeightInCtbsYRL=Ceil(pic_height_in_luma_samples_RL÷CtbSizeYRL)
变量PicSizeinCtbsYRL被如下推导:
PicSizeInCtbsYRL=PicWidthInCtbsYRL*PicHeightInCtbsYRL
num_tile_columns_minusl_RL加1指定划分参考层画面的瓦片列的数量。num_tile_columns_minusl_RL应当在从0至PicWidthInCtbsYRL-1(含)的范围内。当不存在时,num_tile_columns_minusl_RL的值被推断为等于0。
num_tile_rows_minus1_RL加1指定划分参考层画面的行的数量。num_tile_rows_minusl_RL应当在从0至PicHeightInCtbsYRL-1(含)的范围内。当不存在时,num_tile_rows_minusl_RL的值被推断为等于0。
从0至num_tile_rows_minusl_RL(含)的j的列表rowHeightRL[j]指定在相对应的参考层画面的CTB的单元中的第j个瓦片行的高度。
从0至num_tile_columns_minusl_RL(含)的i的列表colWidthRL[i]指定在相对应的参考层画面的CTB的单元中的第i个瓦片列的宽度。
column_width_minusl_RL[i]加1指定相对应的参考层画面的编码树型块的单元中的第i个瓦片列的宽度。
ColumnWidthMinuslRl[i]加1指定相对应的参考层画面的编码树型块的单元中的第i个瓦片列的宽度。
row_height_minusl_RL[i]加1指定相对应的参考层画面的编码树型块的单元中的第i个瓦片行的高度。
RowHeightMinus1Rl[i]加1指定相对应的参考层画面的编码树型块的单元中的第i个瓦片行的高度。
变量CtbAddrInRsRL指定在相对应的参考层画面的编码树型块光栅扫描中的编码树型块地址。
从0至PicSizeInCtbsYRL-1(含)的ctbAddrRs的列表CtbAddrRsToTsRL[ctbAddrRs]指定从在相对应的参考层画面的CTB光栅扫描中的CTB地址到在瓦片扫描中的CTB地址的转换。
从0至PicSizeInCtbsYRL-1(含)的ctbAddrTs的列表TileIdRL[ctbAddrTs]指定从在相对应的参考层画面的瓦片扫描中的CTB地址到瓦片标识符的转换。
layer_id_in_nuh[i]指定在第i层的VCLNAL单元中的nuh_layer_id句法元素的值。在实施方式中,i在从0至vps_max_layers_minusl(含)的范围内。在实施方式中,当不存在时,layer_id_in_nuh[i]的值被推断为等于i。
列表值NumDirectRefLayer[layer_id_in_nuh[i]等于具有nuh_layer_idlayer_id_in_nuh[i]的目标层的直接参考层的数量。
数组值DirectRefLayerIdx[layer_id_in_nuh[i]][layer_id_in_nuh[j]]等于具有nuh_layer_idlayer_id_in_nuh[i]的目标层和具有nuh_layer_idlayer_id_in_nuh[j]的参考层的直接参考层索引。
数组值RefLayerId[layer_id_in_nuh[i]][j]等于与具有nuh_layer_idlayer_id_in_nuh[i]的目标层相对应的参考层和具有直接参考层索引j的参考层的nuh_layer_id。
变量RefPicLayerId[i]对应于可以由当前画面用于进行层间预测的第i个画面的nuh_layer_id。
还参考图51A和图51B,SPS句法包括用信号发送vui_parameters()句法中的vui(视频可用信息)信息的存在性的vui_parameters_present_flag。参考图52A和图52B,vui_parameters()句法包括用信号发送的tile_boundaries_aligned_flag。tile_boundaries_aligned_flag指示一个或多个层的编码画面的瓦片是否互相对齐。定义对齐关系的一个技术是tile_boundaries_aligned_flag等于1指示当访问单元中的一个画面的任两个样本属于一个瓦片时,如果有的话,在相同访问单元中的另一个画面中的同位样本也属于一个瓦片,以及当访问单元中的一个画面的任两个样本属于不同瓦片时,相同访问单元中的另一个画面中的同位样本也可以属于不同的瓦片。tile_boundaries_aligned_flag等于0指示这样的限制可以应用或可以不应用。例如,如果tile_boundaries_aligned_flag等于1,那么在基本层的单个瓦片中的两个样本同样是相同访问单元中的增强层的单个瓦片中的两个相对应的样本。例如,如果tile_boundaries_aligned_flag等于1,那么基本层的两个不同瓦片中的两个样本同样是相同访问单元的增强层的两个不同瓦片中的两个相对应的样本。
定义对齐关系的另一个技术是tile_boundaries_aligned_flag等于1指示相对应的基本层画面的所有瓦片边界具有在给定增强层中相对应的瓦片边界,并且增强层中不存在额外的瓦片边界。这意味着,对于在相同增强层瓦片内的任两个增强层画面样本,同位的基本层样本还可以在相同参考层瓦片内,对于在相同参考层瓦片内的任两个参考层画面样本,同位的增强层样本还可以在相同增强层瓦片内。tile_boundaries_aligned_flag等于0指示在相对应的增强层和给定的参考层之间的瓦片配置上没有限制。
当比特流的tile_boundaries_aligned_flag等于1时,那么一个或多个约束集可以由系统以一些方式选择和定义,因此在视频的不同层之间保持一致的信令,这降低比特流提供不期望的渲染输出的可能性。一个实施方式在下面详细给出。
首先,如果对于访问单元中的一个画面,tile_boundaries_aligned_flag等于1和tiles_fixed_structure_flag等于1,那么在相同访问单元中的其他一个或多个画面的层的活动SPS的vui_parameters()中tiles_fixed_structure_flag可以被设定为1。一般地,当存在时,tiles_fixed_structure_flag等于1指示在编码的视频系列中活动的每个画面参数集具有句法元素num_tile_columns_minusl,num_tile_rows_minusl,uniform_spacing_flag,column_width_minusl[i],row_height_minusl[i]和loop_filter_across_tiles_enabled_flag的相同值。tiles_fixed_structure_flag等于0指示在不同的画面参数集中的句法元素可以或不可以具有相同值。当tiles_fixed_structure_flag句法元素不存在时,被推断为等于0。因此,tiles_fixed_structure_flag等于1的信令是对CVS中每个画面具有以可能有用于如果是多线程解码时的工作量分配的相同方式分布的相同瓦片数量的解码器的保证。
其次,如果tile_boundaries_aligned_flag等于1,那么num_tile_columns_minus1可以等于对于相同访问单元中的一个或多个画面是活动的每个PPS。一般地,num_tile_columns_minus1加1指定划分画面的瓦片列的数量。
第三,如果tile_boundaries_aligned_flag等于1,那么num_tile_rows_minusl可以等于对于相同访问单元中的一个或多个画面是活动的每个PPS。一般地,num_tile_rows_minus1加1指定划分画面的瓦片行的数量。
第四,定义CtbSizeYRatio=CtbSizeY÷CtbSizeYRL。
如果tile_boundaries_aligned_flag等于1,那么对于相对应的一个或多个参考层:
rowHeight[0]=(ScaledRefLayerTopOffset+((CtbSizeYRL*rowHeightRL[0])÷ScaleFactorY))/CtbSizeYandcilWidth[0]=(ScaledRefLayerLeftOffset+((CtbSizeYRL*colWidthRL[0])÷ScaleFactorX))/CtbSizeY
rowHeight[num_tile_row_minus_1]=(ScaledRefLayerBottomOffsey+((CtbSizeYRL*rowHeightRL[num_tile_row_minus_1])÷ScaleFactorY))/CtbSizeYandcolWidth[num_tile_columns_minus1]=(ScaledRefLayerRightOffset+((CtbSizeYRL*colWidthRL[num_tile_columns_minus1])÷ScaleFactorX))/CtbSizeY
rowHeight[i]=rowHeightRL[i]/(ScaleFactorY*CtbSizeYRatio),其中i不等于0或num_tile_row_minus1并且在从1至(num_tile_row_minus1-1)(含)的范围内。
colWidth〔j〕=colWidthRL〔j〕/(ScaleFactorYScaleFactorX*CtbSizeYRatio),其中j不等于0或num_tile_columns_minus1__并且在从1至(num_tile_columns_minus1_-1)(含)的范围内。
可替选地,如果tile_boundaries_aligned_flag等于1,那么对于相对应的一个或多个参考层:
row_height_minus1[0]=(ScaledRefLayerTopOffset+((CtbSizeYRL*rowHeightRL[0])÷ScaleFactorY))/CtbSizeY-1andcolumn_width_minus1[0]=(ScaledRefLaterLeftOffset+((CtbSizeYRL*colWidthRL[0])÷ScaleFactorX))/CtbSizeY-1.
Row_height_minus1[i]=rowHeightRL[i]/(ScaleFactorY*CtbSizeYRatio)-1,其中,i不等于0或num_tile_row_minus_1,并且在从1至(num_tile_row_minus_1-1)(含)的范围内。Column_width_minus1[j]=colWidthRL[j]/(ScaleFactorX*CtbSizeYRatio)-1,其中j不等于0或num_tile_columns_minus1,并且在从1至(num_tile_columns_minus1-1)(含)的范围内。
可替选地,如果tile_boundaries_aligned_flag等于1,那么对于相对应的一个或多个参考层:
row_height_minus1[0]=(ScaledRefLayerTopOffset+((CtbSizeYRL*(row_height_minus1_RL[0]+1))÷ScaleFactorY))/CtbSizeY-1andcolumn_width_minus1[0]=(ScaledRefLayerLeftOffset+((CtbSizeYRL*(column_width_minus1_RL[0]+1))÷ScaleFactorX))/CtbSizeY-1.
Row_height_minus1[i]=(row_height_minus1_RL[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1,其中i不等于0或num_tile_row_minus_1,并且在从1至(num_tile_row_minus_1-1)(含)的范围内。
Column_width_minus1[j]=(column_width_minus1_RL[j]+1)/(ScaleFactorX*CtbSizeYRatio)-1,其中j不等于0或num_tile_columns_minus1,并且在从1至(num_tile_columns_minus1-1)(含)的范围内。
可替选地,如果tile_boundaries_aligned_flag等于1,那么对于具有层标识符RefLayerId[nuh_layer_id][k]的每个参考层,k在从0至NumDirectRefLayer[nuh_layer_id]-1的范围内:
Row_height_minus1[0]应当等于(ScaleRefLayerTopOffset+((CtbSizeYRL*(RowHeightMinus1RL[0]+1))÷ScaleFactorY))/CtbSizeY-1和column_width_minus1[0]应当等于(ScaleRefLayerTopOffset+((CtbSizeYRL*(ColumnWidthMinus1RL[0]+1))÷ScaleFactorX))/CtbSizeY-1。
对于其中从1至(num_tile_row_minus_1-1)(含)的每个i,row_height_minus1[i]应当等于(RowHeightMinus1Rl[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
对于从1至(num_tile_columns_minus1-1(含)的每个i,column_width_minus1[j]应当等于(ColumnWidthMinus1Rl[j]+1)/(ScaleFactorX*CtbSizeYRatio)-1。
可替选地,如果tile_boundaries_aligned_flag等于1,那么对于具有层标识符ReflayerId[currLayerId][k]的每个参考层,其中k在从0至NumDirectRefLayer[currLayerId]-1的范围内,其中currLayerId是当前画面的nuh_layer_id:
Row_height_minus1[0]应当等于(ScaleRefLayerTopOffset+((CtbSizeYRL*(RowHeightMinus1Rl[0]+1))÷ScaleFactorY))/CtbSizeY-1,和column_width_minus1[0]应当等于(ScaleRefLayerLeftOffset+((CtbSizeYRL*(ColumnWidthMinus1Rl[0]+1))÷ScaleFactorX))/CtbSizeY-1。
对于其中从1至(num_tile_row_minus_1-1)(含)的每个i,row_height_minus1[i]应当等于(RowHeightMinus1Rl[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
对于从1至(num_tile_columns_minus1-1(含)的每个i,column_width_minus1[j]应当等于(ColumnWidthMinus1Rl[j]+1)/(ScaleFactorX*CtbSizeYRatio)-1。
变量ScaledRefLayerLeftOffset、ScaleFactorX、ScaledRefLayerTopOffset、ScaleFactorY的值利用来自nuh_layer_id等于RefLayerId[currLayerId][k]和索引DirectRefLayerIdx[currLayerId][RefLayerId][currLayerId][k]作为输入的画面的信息加以推导。
在一个实施方式中,CtbSizeYRatio可以被如下约束:
CtbSizeYRatio∈{8,4,2,1,1/2,1/4,1/8}
而且,行和列计算可以根据需要被修改,还可以基于参考层和当前层的特殊特性被修改(即,可以具有不同数量、瓦片大小等)。
第五,如果tile_boundaries_aligned_flag等于1,那么uniform_spacing_flag可以等于对于相同访问单元中的画面是活动的每个PPS的uniform_spacing_flag。
在一些情况中,期望在不同层之中(即,基本层和/或增强层),瓦片仅使用来自另一个层的同位的瓦片的样本预测(即,向上缩放)和运动映射(即,运动向量、模式信息、运动场),使得在视频的不同层上维持一致的信令,这降低比特流提供不期望的渲染输出的可能性。还允许并行解码在层之间的瓦片,而不需要等待属于参考层的整个画面被解码。一个实现方式将在下面详细说明。
首先,在一个实施方式中,该同位的瓦片限制可以基于tile_boundaires_aligned_flag或基于诸如另一个标志,例如inter_layer_pred_tile_dec_constraint_flag等于1指示在CVS内属于第i个瓦片的CTB不适用样本值或来自属于参考层内除第i个瓦片之外的任意瓦片的CTB的运动信息,其中i在从0至(num_tile_row_minus_1+1)*(num_tile_columns_minusl+1)-1(含)的范围内。inter_layer_pred_tile_dec_constraint_flag等于0指示在CVS内属于第i个瓦片的CTB可以使用样本值或来自属于参考层内的任意瓦片的CTB的运动信息,i在从0至(num_tile_row_minus_1+1)*(num_tile_columns_minusl+1)-1(含)的范围内。当tile_boundaries_aligned_flag等于0时,inter_layer_pred_tile_dec_constraint_flag可以是0。当inter_layer_pred_tile_dec_constraint_flag不存在时,其被推断为等于0。在另一个实施方式中,inter_layer_pred_tile_dec_constraint_flag指定在瓦片边界的层间预测是否被约束在CVS中。
-如果inter_layer_pred_tile_dec_constraint_flag等于1,以下应用:
-当画面的块的解码过程使用层间预测时,编码的画面应当被约束,使得层间预测仅取决于能够从块的同位的参考层瓦片推导的层间参考画面的数据元素。
-供当前画面使用的所有层间参考画面的句法元素loop_filter_across_tiles_enabled_flag应当等于0。
-否则,(inter_layer_tile_dec_constraint_flag等于0),不用该标志信号发送约束。
当不存在时,inter_layer_pred_tile_dec_constraint_flag被推断为等于0。
在一些实施方式中,inter_layer_pred_tile_dec_constraint_flag可以被称为inter_layer_pred_tile_constraint_flag。
首先,在另一个实施方式中,由intcr_layer_pred_tile_dec_constraint_flag的语义定义的约束可以利用在比特流中用信号发送的历史数据指示,即,tile_boundaries_aligned_flag、剖面、水平。这可以由回路滤波器实施,不是被允许在瓦片边界上操作而是被允许在瓦片边界内操作。特别地,如果inter_layer_pred_tile_dec_constraint_flag等于1,那么对于相同访问单元中的每个画面的每个参考层的活动PPS,loop_filter_across_tiles_enabled_flag可以是0。特别地,如果inter_layer_pred_tile_dec_conslraint_flag等于1,那么对于相同访问单元中的每个画面的每个参考层的活动PPS,pps_loop_filter_across_slices_enabled_flag可以是0。
还是在另一个可替选的实施方式中,如果inter_layer_pred_tile_dec_constraint_flag等于1,那么受回路滤波器(SAO或去块)影响的参考层样本值不应当在以下两种情况下被使用,(a)在层间预测解码过程(即,对于SNR可缩放性)或(b)在层间上采样过程内(即,当空间可缩放性因数不是1时)。
在又一个实施方式中,如果inter_layer_pred_tile_dec_constraint_flag等于1,那么在当前层和参考层之间的运动映射过程被修改,使得瓦片的解码过程不会使用来自参考层中的非同位的瓦片的运动信息。示例改进被如下伪代码列出:
变量xP和yP表示在当前层画面内考虑的亮度样本位置。变量xRL和yRL表示参考层画面内相对应的亮度样本位置。变量PredMode[xP][yP]对应于亮度位置(xP,yP)的重采样画面的预测模式。变量tilePredPreventOffset可以基于在比特流内用信号发送的历史数据推导。在一个示例中,tilePredPreventOffset被设定为值8。MODE_INTRA对应于层内预测模式。
当比特流的tile_boundaries_aligned_flag等于1时,那么一个或多个增强层的约束集可以由系统参考基本层选择和定义,使得在视频的不同层上维持一致的信令,这降低比特流提供不期望的渲染输出的可能性。
选择期望约束保证在不同的增强层上维持一致的信令,当nuh_layer_id>0和tile_boundaries_aligned_flag等于1时,不期望专门用信号发送num_tile_columns_minusl、num_tile_rows_minusl、uniform_spacing_flag、column_width_minusl[i]和/或row_height_minusl[i]句法元素,以使得这样的数据可以根据需要被拷贝和被推断。
参考图53,画面参数集(例如,pic_parameter_set_rbsp())可以被修改,以考虑其是否是增强层,和设定tile_boundaries_aigned_flag以确定是否使用来自基本层的其他用信号发送的句法,即“′if(!nuh_layer_id>0&&tile_boundaries_aligned_flag))′”和其相关联的句法。这可以例如被表述为如下,当与pps_seq_parameter_set_id相对应的SPS的nuh_layer_id>0&&tile_boundaries_aligned_flag是1时,num_tile_columns_minusl、num_tile_rows_minusl、uniform_spacing_flag、column_width_minusl[i]、row_height_minusl[i]不被用信号发送。来自参考层的活动PPS的相对应值被用于当前层的那些PPS句法元素的值的参考。它们可以被如下推导:
首先,当前层PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag的值分别被设定为等于nuh_layer_id等于0的层的活动PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag句法元素的值。
第二,column_width_minus1[0]的值被设定为等于来自nuh_layer_id等于0的层的活动PPS的句法元素的值(ScaledRefLayerLeftOffset+(CtbSizeYRL*(column_width_minus1_RL[0]+1))÷ScaleFactorX)/CtbSizeY-1。
第三,当前层PPS的column_width_minus1[i](i=1,…,num_tile_columns_minus1-1)的值被分别设定为等于nuh_layer_id等于0的层的活动PPS的句法元素的值(column_width_minus1_RL[i]+1)/(ScaleFactorX*CtbSizeYRatio)-1。
第四,row_height_minus1[0]的值被设定为等于nuh_layer_id等于0的层的活动PPS的句法元素的值(ScaledRefLayerTopOffset+(CtbSizeYRL*(row_height_minus1_RL[0]+1))÷ScaleFactorY)/CtbSizeY-1。
第五,当前层PPS的row_height_minus1[i](i=1,…,num_tile_row_minus1-1)的值被分别设定为等于nuh_layer_id等于0的层的活动PPS的句法元素的值(row_height_minus1_RL[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
对于那些从第一到第五的句法元素的每一个,应用于相对应的参考层PPS句法元素的值的所有约束,如果有的话,也应用。在一些实施方式中,参考层可以是基本层。活动PPS可以是当前画面的访问单元中的nuh_layer_id等于0的层的PPS。在一些实施方式中,代替将值设定为等于来自具有nuh_layer_id等于0的层的活动PPS的那些值,该值被设定为等于来自不同参考层,即nuh_layer_id不同于0的层的活动PPS的那些值。
在又一个实施方式中,瓦片句法元素可以被如下推导:
首先,当前层PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag的值被分别设定为等于来自nuh_layer_id等于0的活动PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag句法元素的值。
第二,变量dRlIdx0被设定为等于DirectRefLayerIdx[currLayerId][RefLayerId[currLayerId][0]],其中currLayerId是当前画面的nuh_layer_id。
第三,ScaledRefLayerLeftOffset、ScaleFactorX、ScaledRefLayerTopOffset、ScaleFactorY的值利用来自nuh_layer_id等于RefLayerId[currLayerId][0]和索引dRlIdx0作为输入的画面的信息加以推导。
第四,列表ColumnWidthMinusldRl0[i]被分别设定为等于column_width_minus1[i](每个i=0,…,num_tile_columns_minus1-1),列表RowHeightMinusldRl0[i]被分别设定为等于来自nuh_layer_id等于RefLayerId[currLayerId][0]的层的活动PPS的row_height_minus1[i]的值(每个i=0,…,num_tile_rows_minus1-1)。
第五,column_width_minus1[0]的值被设定为等于来自nuh_layer_id等于RefLayerId[currLayerId][0]的层的活动PPS的句法元素的值(ScaledRefLayerLeftOffset+(CtbSizeYRL*(ColumnWidthMinus1dRI0[0]+1))÷ScaleFactorX)/CtbSizeY-1。
第六,当前层PPS的column_width_minusl[i](i=1,...,num_tile_columns_minusl-1)的值分别被设定为等于来自nuh_layer_id等于RefLayerId[currLayerId][0]的层的活动PPS的句法元素的值(ColumnWidthMinus1dRl0[i]+1)/(ScaleFactorX*CtbSizeYRatio)-1。
第七,row_height_minus1[0]的值被设定为等于来自nuh_layer_id等于RefLayerId[currLayerId][0]的层的活动PPS的句法元素的值(ScaledRefLayerTopOffset+(CtbSizeYRL*(RowHeightMinus1dRI0[0]+1))÷ScaleFactorY)/CtbSizeY-1。
第八,当前层PPS的row_height_minus1[i](i=1,...,num_tile_rows_minusl-1)的值被分别设定为等于来自nuh_layer_id等于RefLayerId[currLayerId][0]的层的活动PPS的句法元素的值RowHeightMinus1dRl0[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
在又一个实施方式中,瓦片句法元素可以被如下推导:
首先,当前层PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag的值被分别设定为等于来自nuh_layer_id等于0的活动PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag句法元素的值。
第二,变量dRlIdx1被设定为等于DirectRefLayerIdx[currLayerId][RefLayerId[currLayerId][0]],其中currLayerId是当前画面的nuh_layer_id。
第三,ScaledRefLayerLeftOffset、ScaleFactorX、ScaledRefLayerTopOffset、ScaleFactorY的值利用来自与当前画面相同的访问单元内的DPB中并且nuh_layer_id等于RLPic1的参考层画面(即RLPic1)的信息和索引dRlIdx1作为输入加以推导。
第四,列表ColumnWidthMinusldRl1[i]被分别设定为等于column_width_minus1[i](每个i=0,…,num_tile_columns_minus1-1),列表RowHeightMinusldRl1[i]被分别设定为等于来自RLPic1的活动PPS的row_height_minus1[i]的值(每个i=0,…,num_tile_rows_minus1-1)。
第五,column_width_minus1[0]的值被设定为等于RLPic1的活动PPS的句法元素的值(ScaledRefLayerLeftOffset+(CtbSizeYRL*(ColumnWidthMinus1dRI1[0]+1))÷ScaleFactorX)/CtbSizeY-1。
第六,当前层PPS的column_width_minusl[i](i=1,...,num_tile_columns_minusl-1)值分别被设定为等于RLPic1的活动PPS的句法元素的值(ColumnWidthMinus1dRl1[i]+1)/(ScaleFactorX*CtbSizeYRatio)-1。
第七,row_height_minus1[0]的值被设定为等于RLPic1的活动PPS的句法元素的值。(ScaledRefLayerTopOffset+(CtbSizeYRL*(RowHeightMinus1dRI1[0]+1))÷ScaleFactorY)/CtbSizeY-1。
第八,当前层PPS的row_height_minus1[i](i=1,...,num_tile_rows_minusl-1)的值被分别设定为等于来自RLPic1的活动PPS的句法元素的值(RowHeightMinus1dRl1[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
在又一个实施方式中,瓦片句法元素可以被如下推导:
首先,当前层PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag的值被分别设定为等于来自nuh_layer_id等于0的活动PPS的num_tile_columns_minus1、num_tile_rows_minus1、和/或uniform_spacing_flag句法元素的值。
第二,变量dRlIdx2被设定为等于DirectRefLayerIdx[currLayerId][RLPicNuhLId],其中currLayerId是当前解码画面的nuh_layer_id以及RLPicNuhLId是当前画面的参考层画面的nuh_layer_id。
第三,ScaledRefLayerLeftOffset、ScaleFactorX、ScaledRefLayerTopOffset、ScaleFactorY的值利用来自nuh_layer_id等于RLPicNuhLId的画面的信息和索引dRlIdx0作为输入加以推导。
第四,列表ColumnWidthMinusldRl2[i]被分别设定为等于column_width_minus1[i](每个i=0,…,num_tile_columns_minus1-1),和列表RowHeightMinusldRl2[i]被分别设定为等于来自nuh_layer_id等于RLPicNuhLId的层的活动PPS的row_height_minus1[i]的值(每个i=0,…,num_tile_rows_minus1-1)。
第五,column_width_minus1[0]的值被设定为等于来自nuh_layer_id等于RLPicNuhLId的层的活动PPS的句法元素的值(ScaledRefLayerLeftOffset+(CtbSizeYRL*(ColumnWidthMinus1dRI2[0]+1))÷ScaleFactorX)/CtbSizeY-1。
第六,当前层PPS的column_width_minusl[i](i=1,...,num_tile_columns_minusl-1)的值分别被设定为等于来自nuh_layer_id等于RlPicNuhLId的层的活动PPS的句法元素的值(ColumnWidthMinus1dRl2[i]+1)/(ScaleFactorX*CtbSizeYRatio)-1。
第七,row_height_minus1[0]的值被设定为等于来自nuh_layer_id等于RlPicNuhLId的层的活动PPS的句法元素的值(ScaledRefLayerTopOffset+(CtbSizeYRL*(RowHeightMinus1dRI2[0]+1))÷ScaleFactorY)/CtbSizeY-1。
第八,当前层PPS的row_height_minus1[i](i=1,...,num_tile_rows_minusl-1)的值被分别设定为等于来自nuh_layer_id等于RlPicNuhLId的层的活动PPS的句法元素的值(RowHeightMinus1dRl2[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
在又一个实施方式中,瓦片句法元素可以被如下推导:当前层PPS的num_columns_minus1、num_tile_rows_minus1、uniform_spacing_flag的值被分别设定为等于来自nuh_layer_id等于0的层的活动PPS的num_tile_columns_minus1和num_tile_rows_minus1、uniform_spacing_flag句法元素的值。
column_width_minusl[i],row_height_minusl[i]的值被如下推导:
ScaledRefLayerLeftOffset、ScaleFactorX、ScaledRefLayerTopOffset、ScaleFactorY利用来自nuh_layer_id等于RefLayerId[currLayerId][0]的画面的信息和索引DirectRefLayerIdx[currLayerId][RefLayerId[currLayerId][0]]作为输入加以计算。其中currLayerId是当前画面的nuh_layer_id。ColumnWidthMinus1RI3[i]分别被设定为对于每个i=0,…,num_tile_columns_minus1-1等于column_width_minus[i],以及RowHeightMinus1RI3[i]分别被设定为对于每个i=0,…,num_tile_rows_minus1-1等于其row_height_minus1[i],来自Nuh_layer_id等于RefLayerId[currLayerId][0]的层的活动PPS的值。CtbSizeYRatio被设定为等于CtbSizeY÷CtbSizeYRL,其中CtbSizeYRL是在nuh_layer_id等于RefLayerId[currLayerId][0]的层在宽度和高度的每个亮度编码树型块的数组大小。
column_width_minus1[0]的值被设定为值(ScaledRefLayerLeftOffset+(CtbSizeYRL*(ColumnMidthMinus1RI3[0]+1))÷ScaleFactorX)/CtbSizeY-1。
Column_width_minus1[i](i=1,…,num_tile_columns_minus1-1)的值分别被设定为等于值(ColumnWidthMinus1RI3[i]+1)/(ScalefactorX*CtbSizeYRatio)-1.。
Row_height_minus1[0]的值被设定为值(ScaledRefLayerTopOffset+(CtbSizeYRL*(RowHeightMinus1RI3[0]+1))÷ScaleFactorY)/CtbSizeY11.。
Row_height_minus1[i](i=1,…,num_tile_rows_minus1-1)的值分别被设定为等于值(RowHeightMinus1RI3[i]+1)/(ScaleFactorY*CtbSizeYRatio)-1。
在额外的实施方式中,当前层PPS的loop_filter_across_tiles_enabled_flag和/或pps_loop_filter_across_slices_enabled_flag被分别设定为等于来自nuh_layer_id等于0的层的活动PPS的loop_filter_across_tiles_enabled_flag和/或pps_loop_filter_across_slices_enabled_flag句法元素的值。在该情况中,当nuh_layer_id>0&&且与pps_seq_parameter_set_id相对应的SPS的tile_boundaries_aligned_flag是1时,那些句法元素也不被用信号发送。
tile_boundaries_aligned_flag是适用于访问单元内的所有层的标志。tile_boundaries_aligned_flag可以被包括在SPS句法内,作为vui_parameters句法的一部分,但是SPS句法被包括在每个层内,因此相同访问单元的tile_boundaries_aligned_flag被用信号发送多次。为了减少系统的带宽,连同tile_boundaries_aligned_flag的信令的简化,期望包括VPS句法内的tile_boundaries_aligned_flag,其适用于访问单元的所有层而不是访问单元的每个层包括的SPS句法。
参考图54A和图54B,示例性的VPS句法包括vps_extension_flag,如果被标记用信号发送vps_extension()。参考图55,示例性的vps_extension()可以包括tile_boundaries_aligned_vps_flag。tile_boundaries_aligned_vps_flag可以被定义,例如,为等于1指示,当访问单元中的一个画面的任意两个样本属于一个瓦片时,在相同访问单元中的另一个画面的同位的样本,如果有的话,属于一个瓦片,以及当访问单元中的一个画面的任两个样本属于不同瓦片时,在相同访问单元中的另一个画面的同位的样本可以属于不同瓦片。tile_boundaries_aligned_flag等于0指示这样的限制可以或不可以应用。
在另一个实施方式中,tile_boundaries_aligned_flag可以在vps扩展句法内用信号发送,可适用于扩展层的特定层,可适用于访问单元的选择层而不是访问单元的每个层包括的SPS句法。
参考图56,对于每个增强层(例如,i=1;i<=vps_max_layers_minusl;i++)和每个增强层内的每个句法(例如,j=0;j<i;j++),句法可以用信号发送瓦片如何被对齐(例如,reflayer_tile_boundaries_aligned_flag[i][j])。
例如,reflayer_tile_boundaries_aligned_flag[i][j]可以被定义为,等于1指示,当属于层i的画面的任意两个样本属于一个瓦片时,属于层j的另一个画面中的同位样本,如果有的话,属于一个瓦片,和当属于层i的画面的任意两个样本属于不同瓦片时,在属于层j的另一个画面中的同位样本可以属于不同瓦片。reflayer_tile_boundaries_aligned_vps_flag[i][j]等于0指示这样的限制可以或不可以应用于属于层i和层j的画面。当reflayer_tile_boundaries_aligned_vps_flag[i][j]不存在时,其被推断为等于0。
例如,reflayer_tile_boundaries_aligned_flag[i][j]可以被定义为,等于1指示,当属于层i的画面的任意两个样本属于一个瓦片时,属于层j的相同访问单元的另一个画面中的同位样本,如果有的话,属于一个瓦片,和当属于层i的画面的任意两个样本属于不同瓦片时,在属于层j的另一个画面中的同位样本可以属于不同瓦片。reflayer_tile_boundaries_aligned_vps_flag[i][j]等于0指示这样的限制可以或不可以应用于属于层i和层j的画面。当reflayer_tile_boundaries_aligned_vps_flag[i][j]不存在时,其被推断为等于0。
例如,reflayer_tile_boundaries_aligned_flag[i][j]可以被定义为,等于1指示,当属于层i的画面的任意两个样本属于一个瓦片时,属于层j的另一个画面中的同位样本,如果有的话,属于一个瓦片,其中层j可以是层i的直接参考层,和当属于层i的画面的任意两个样本属于不同瓦片时,在属于层j的另一个画面中的同位样本可以属于不同瓦片。reflayer_tile_boundaries_aligned_vps_flag[i][j]等于0指示这样的限制可以或不可以应用于属于层i和层j的画面。当reflayer_tile_boundaries_aligned_vps_flag[i][j]不存在时,其被推断为等于0。
例如,reflayer_tile_boundaries_aligned_flag[i][j]可以被定义为,等于1指示,当属于层i的访问单元中的画面的任意两个样本属于一个瓦片时,属于层j的相同访问单元中的另一个画面中的同位样本,如果有的话,属于一个瓦片,其中层j可以是层i的直接参考层,和当属于层i的画面的任意两个样本属于不同瓦片时,在属于层j的另一个画面中的同位样本可以属于不同瓦片。reflayer_tile_boundaries_aligned_vps_flag[i][j]等于0指示这样的限制可以或不可以应用于属于层i和层j的画面。当reflayer_tile_boundaries_aligned_vps_flag[i][j]不存在时,其被推断为等于0。
在另一个实施方式中,tile_boundaries_aligned_flag可以在vps扩展句法内用信号发送,可适用于扩展层的特定层,其可基于其依赖性而不是访问单元的每个层包括的SPS句法适用于访问单元的选择层。
参考图57,对于每个增强层(例如,i=1;i<=vps_max_layers_minusl;i++)和其依赖(例如,direct_dependency_flag[i][j]等于1)的每个增强层内的每个句法(例如,j=0;j<i;j++),句法可以用信号发送瓦片如何被对齐(例如,reflayer_tile_boundaries_aligned_flag[i][j])。
参考图58,示出与图56具有相似功能的改进结构。
参考图59,示出与图57具有相似功能的进一步改进结构。在图57和图59中的一些实施方式中,当direct_dependency_flag[i][j]是0时的reflayer_tile_boundaries_aligned_flag[i][j]被推断为等于0。
除了图52B中的SPS中的tile_boundaries_aligned_flag的当前信令之外,如图55、图56、图57、图58或图59中所示的VPS中的瓦片边界对齐信令可以被发送。在该情况中,SPS中的信息可以更新/覆盖在VPS中用信号发送的信息。
在一些实施方式中,代替用信号发送VPS中的reflayer_tile_boundaries_aligned_flag[i][j],其可以在SPS中用信号发送。在一个实施方式中,该信令可以在vui_parameters内部。图60示出与图56中的句法变体相似的句法变体,但是在SPS中是在vui_parameters中。在图60中,reflayer_tile_boundaries_aligned_flag[i][j]具有与图56在该情况中的reflayer_tile_boundaries_aligned_flag[i][j]相似的语义。
图61示出与图57中的句法变体相似但是在SPS中是在vui_parameters中的句法变体。在图61中,reflayer_tile_boundaries_aligned_flag[i][j]具有与图57在该情况中的reflayer_tile_boundaries_aligned_flag[i][j]相似的语义。图61示出其中ref_layer_tile_boundaries_aligned_vps_flag[j]是在vui_parameters中的SPS中被用信号发送的句法变体。ref_layer_tile_boundaries_aligned_vps_flag[j]等于1指示,当nuh_layer_id的画面的任意两个样本属于一个瓦片时,在属于nuh_layer_id等于RefLayerId[nuh_layer_id][j]的层的另一个画面中的同位样本,如果有的话,属于同一瓦片,当nuh_layer_id的画面的任意两个样本属于不同瓦片时,在属于nuh_layer_id等于RefLayerId[nuh_layer_id][j]的层的另一个画面中的同位样本应当属于不同瓦片。ref_layer_tile_boundaries_aligned_flag[j]等于0指示这样的限制可以或不可以应用于具有nuh_layer_id的画面。当ref_layer_tile_boundaries_aligned_vps_flag[j]不存在时,其被推断为等于0。
进一步的句法变体在图62和图63中示出,用于传递reflayer_tile_boundaries_aligned_flag[i][j]。在又一个实施方式中,图62和/或图63中的句法变体可以在比特流的规范部分的任意位置被执行,例如画面参数集、切片片段报头、任意其他参数集等,或在比特流的非规范部分中。
在另一实施方式中,代替u(v)代替ue(v),一个或多个句法元素可利用已知的固定数量的比特来用信号发送。例如,它们可利用u(8)或u(16)或u(32)或u(64)等来用信号发送。
在另一实施方式中,代替诸如u(v)编码的固定数量的比特,这些句法元素中的一个或多个可利用ue(v)或者一些其它编码方案来用信号发送。
在另一实施方式中,与所描述的句法和语义相比,各种句法元素的名称及其语义可通过添加plus1或plus2或者通过减去minus1或minus2来更改。
在另一实施方式中,可在比特流中的任何地方每画面地用信号发送各种句法元素。例如,可在片段报头、pps/sps/vps/或者任何其它参数集或者比特流的其它规范部分中用信号发送它们。
术语“计算机可读介质”是指可由计算机或处理器访问的任何可用介质。如本文所用,术语“计算机可读介质”可表示非瞬时的有形的计算机和/或处理器可读介质。作为示例而非限制,计算机可读或处理器可读介质可包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储、磁盘存储或者其它磁存储设备,或者可用于以指令或数据结构的形式承载或者存储期望的程序代码并且可由计算机或处理器访问的任何其它介质。如本文所用,磁盘和盘包括紧凑盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘以及蓝光(注册商标)盘,其中磁盘通常按照磁的方式再现数据,而盘利用激光以光学方式再现数据。
应该注意的是,本文所述的一个或多个方法可在硬件中实现和/或利用硬件来执行。例如,本文所述的一个或多个方法可在芯片集、ASIC、大规模集成电路(LSI)或集成电路等中实现和/或利用其来实现。
本文所公开的各个方法包括用于实现所述方法的一个或多个步骤或动作。在不脱离权利要求的范围的情况下,方法步骤和/或动作可彼此互换和/或组合成单个步骤。换言之,除非为了所描述的方法的正确操作需要步骤或动作的具体顺序,否则在不脱离权利要求的范围的情况下,可修改特定步骤和/或动作的顺序和/或使用。
将理解,权利要求不限于上面示出的精确配置和组件。在不脱离权利要求的范围的情况下,可对本文所述的系统、方法和设备的布置方式、操作和细节进行各种修改、改变和变化。

Claims (8)

1.一种解码视频的方法,包括:
(a)解码所述视频的多个帧,其中,所述帧的每一个属于多个层的不同的一个并且具有(1)在相对应的被解码的所述视频中的相同的时间和(2)在相对应的被解码的所述视频中的不同的时间中的至少一个,
(b)接收提供被用于所述层的所述解码的信息的视频参数集扩展句法,
其中,所述信息包括用于所述不同层的直接参考层的瓦片边界对齐的标志。
2.根据权利要求1所述的方法,其中,所述视频的所述帧中的每一个包括至少一个切片和至少一个瓦片,
其中,所述至少一个切片中的每一个的特征在于与其他所述至少一个切片独立地被解码,
其中,所述至少一个切片中的每一个的特征在于与其他所述至少一个切片独立地被解码,
其中,所述至少一个瓦片中的每一个的特征在于它是所述帧的矩形区域并且具有在所述帧的区域内以光栅扫描顺序布置的、通过所述解码来解码的多个编码单元,
其中,所述帧包括不相互重叠的多个所述瓦片;
其中,所述帧中的所述至少一个瓦片以所述帧的光栅扫描顺序被共同地布置。
3.根据权利要求1或2所述的方法,其中,所述瓦片边界对齐的标志等于1指示:当通过所述视频参数集扩展句法指定的所述层中的一个的所述帧的任何两个采样属于所述多个瓦片中的一个时,所述两个采样当均存在于所述层的所述一个的所述帧的直接参考层的所述帧中时也属于一个瓦片。
4.根据权利要求1或2所述的方法,其中,通过所述视频参数集扩展句法指定的所述层中的所述一个的所述帧的所述任何两个采样属于不同的所述瓦片,所述两个采样当均存在于所述层的所述一个的所述帧的所述直接参考层的所述帧中时也属于不同的瓦片。
5.根据权利要求4所述的方法,其中,瓦片边界对齐的标志等于0指示这样的限制能够应用或者能够不应用。
6.根据权利要求1或2所述的方法,其中
对于所述层中的每一个并且对于所述层中的每一个具有直接依赖性的所述层中的每一个内的每一个句法,所述视频参数集扩展句法指示如何对齐所述瓦片中的至少一个。
7.根据权利要求1所述的方法,其中,对于不是所述不同层的直接参考层的层,不用信号发送所述瓦片边界对齐的标志。
8.根据权利要求7所述的方法,其中,当不用信号发送时,所述瓦片边界对齐的标志被推断为0。
CN201480037423.9A 2013-07-14 2014-07-14 瓦片对齐信令和一致性约束 Pending CN105359525A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810516387.4A CN108650514A (zh) 2013-07-14 2014-07-14 瓦片对齐信令和一致性约束

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361846056P 2013-07-14 2013-07-14
US61/846,056 2013-07-14
US201361847462P 2013-07-17 2013-07-17
US61/847,462 2013-07-17
PCT/JP2014/003721 WO2015008477A1 (en) 2013-07-14 2014-07-14 Tile alignment signaling and conformance constraints

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810516387.4A Division CN108650514A (zh) 2013-07-14 2014-07-14 瓦片对齐信令和一致性约束

Publications (1)

Publication Number Publication Date
CN105359525A true CN105359525A (zh) 2016-02-24

Family

ID=52345953

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810516387.4A Pending CN108650514A (zh) 2013-07-14 2014-07-14 瓦片对齐信令和一致性约束
CN201480037423.9A Pending CN105359525A (zh) 2013-07-14 2014-07-14 瓦片对齐信令和一致性约束

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810516387.4A Pending CN108650514A (zh) 2013-07-14 2014-07-14 瓦片对齐信令和一致性约束

Country Status (5)

Country Link
US (1) US10250897B2 (zh)
JP (1) JP6352317B2 (zh)
CN (2) CN108650514A (zh)
HK (1) HK1222067A1 (zh)
WO (1) WO2015008477A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105659596A (zh) * 2013-10-22 2016-06-08 株式会社Kt 用于对多层视频信号进行编码/解码的方法和装置
CN105684447A (zh) * 2013-10-29 2016-06-15 株式会社Kt 多层视频信号编码/解码方法和装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015037920A1 (ko) * 2013-09-10 2015-03-19 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
KR20150046744A (ko) * 2013-10-22 2015-04-30 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
JP6692087B2 (ja) * 2013-12-27 2020-05-13 サン パテント トラスト 配信方法、およびシステム
US10264286B2 (en) 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
EP3352460A4 (en) * 2015-11-24 2019-02-27 Samsung Electronics Co., Ltd. VIDEO CODING METHOD AND DEVICE AND CODING METHOD AND DEVICE THEREFOR
US10687055B2 (en) * 2017-03-03 2020-06-16 Qualcomm Incorporated Coding MCTS-EIS SEI messages of an access unit
EP3610649A1 (en) * 2017-04-11 2020-02-19 VID SCALE, Inc. 360-degree video coding using face continuities
CN115361549B (zh) * 2018-12-21 2024-04-09 华为技术有限公司 一种使用基于历史的运动矢量预测的编码器、解码器及相应方法
CN113661714A (zh) * 2019-03-11 2021-11-16 Vid拓展公司 子画面比特流提取和重新定位
MX2021011025A (es) * 2019-03-11 2021-11-12 Huawei Tech Co Ltd Un codificador, un decodificador y métodos correspondientes.
CA3132744A1 (en) * 2019-03-15 2020-09-24 Mediatek, Inc. Method and apparatus of latency reduction for chroma residue scaling
CN114208165B (zh) * 2019-08-10 2023-12-15 北京字节跳动网络技术有限公司 子图片解码中的缓冲器管理
US11375223B2 (en) * 2019-09-20 2022-06-28 Tencent America LLC Method for signaling output layer set with sub-picture
JP2022548405A (ja) 2019-09-24 2022-11-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 接尾辞seiメッセージのためのスケーラブルネスティング
US11438611B2 (en) 2019-12-11 2022-09-06 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
US11356681B2 (en) * 2019-12-27 2022-06-07 Tencent America LLC Coded video sub-bitstream extraction
US11445176B2 (en) * 2020-01-14 2022-09-13 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259729A1 (en) * 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
CN101032172A (zh) * 2004-07-09 2007-09-05 诺基亚公司 用于可分级视频比特流的熵编码和解码的方法和系统
CN101395921A (zh) * 2006-11-17 2009-03-25 Lg电子株式会社 用于解码/编码视频信号的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1869891A4 (en) * 2005-04-13 2014-06-11 CODING, STORAGE AND SIGNALING OF SCALABILITY INFORMATION
KR101101965B1 (ko) * 2006-10-16 2012-01-02 노키아 코포레이션 멀티뷰 비디오 코딩에 대한 병렬 디코딩가능 슬라이스들을 이용하기 위한 시스템 및 방법
US8654860B2 (en) * 2010-11-01 2014-02-18 Mediatek Inc. Apparatus and method for high efficiency video coding using flexible slice structure
GB2488830B (en) * 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
US9467707B2 (en) * 2013-03-05 2016-10-11 Qualcomm Incorporated Parallel processing for video coding
KR20200045012A (ko) * 2013-07-15 2020-04-29 소니 주식회사 상호작용성을 위한 모션-구속된 타일 세트들 sei 메시지의 확장들

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259729A1 (en) * 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
CN101032172A (zh) * 2004-07-09 2007-09-05 诺基亚公司 用于可分级视频比特流的熵编码和解码的方法和系统
CN101395921A (zh) * 2006-11-17 2009-03-25 Lg电子株式会社 用于解码/编码视频信号的方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105659596A (zh) * 2013-10-22 2016-06-08 株式会社Kt 用于对多层视频信号进行编码/解码的方法和装置
CN105659598A (zh) * 2013-10-22 2016-06-08 株式会社Kt 用于对多层视频信号进行编码/解码的方法和装置
US10602136B2 (en) 2013-10-22 2020-03-24 Kt Corporation Method and apparatus for encoding/decoding multilayer video signal
US10602137B2 (en) 2013-10-22 2020-03-24 Kt Corporation Method and device for encoding/decoding multi-layer video signal
CN105684447A (zh) * 2013-10-29 2016-06-15 株式会社Kt 多层视频信号编码/解码方法和装置
US10602164B2 (en) 2013-10-29 2020-03-24 Kt Corporation Multilayer video signal encoding/decoding method and device
US10602165B2 (en) 2013-10-29 2020-03-24 Kt Corporation Multilayer video signal encoding/decoding method and device

Also Published As

Publication number Publication date
WO2015008477A1 (en) 2015-01-22
US10250897B2 (en) 2019-04-02
CN108650514A (zh) 2018-10-12
US20160165247A1 (en) 2016-06-09
HK1222067A1 (zh) 2017-06-16
JP6352317B2 (ja) 2018-07-04
JP2016528747A (ja) 2016-09-15

Similar Documents

Publication Publication Date Title
CN105359525A (zh) 瓦片对齐信令和一致性约束
CN105379273A (zh) 信令指示和约束
CN105453569A (zh) 缩放列表信号发送和参数集激活
US11025954B2 (en) Method and device for transmitting image information, and decoding method and device using same
US10841619B2 (en) Method for decoding a video bitstream
CN105122815A (zh) 在vps扩展中用信号通知dpb参数以及dpb操作
US10547834B2 (en) Support of non-HEVC base layer in HEVC multi-layer extensions
CN105379285A (zh) 用信号通知输出层集的改变
CN105556975A (zh) 信令告知用于编码的信息
JP6193365B2 (ja) パラメータセットにおけるスケーラビリティ情報のシグナリング
WO2015168553A1 (en) Method and device for testing conformance of hypothetical reference decoder parameters for partitioning schemes in video coding
US11032559B2 (en) Video encoding and decoding method and apparatus using the same
JP7323099B2 (ja) マルチレイヤビデオビットストリームのためのdpbパラメータのシグナリング
KR20220065061A (ko) 다계층 비디오 비트스트림에서 불필요한 계층 금지
US10277918B2 (en) Video encoding and decoding method and apparatus using the same
EP4022907A1 (en) An encoder, a decoder with picture order counter derivation
CN117203968A (zh) 基于包括层标识符信息的sei消息的图像编码/解码方法和装置及发送比特流的方法
KR20240056804A (ko) 혼합된 nal 유닛 타입들을 갖는 픽처들

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1222067

Country of ref document: HK

WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160224

WD01 Invention patent application deemed withdrawn after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1222067

Country of ref document: HK