CN105453569A - 缩放列表信号发送和参数集激活 - Google Patents
缩放列表信号发送和参数集激活 Download PDFInfo
- Publication number
- CN105453569A CN105453569A CN201480037340.XA CN201480037340A CN105453569A CN 105453569 A CN105453569 A CN 105453569A CN 201480037340 A CN201480037340 A CN 201480037340A CN 105453569 A CN105453569 A CN 105453569A
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/187—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述了一种对来自比特流的视频序列进行解码的方法。该比特流具有一致性,使得当具有第一层ID的第一SPS对于第二层被激活,并且在第一SPS中推断缩放列表标志等于1时,针对对于第一SPS中指定的第三层而言活动的第二SPS,推断缩放列表标志等于0。
Description
相关申请的交叉引用
无
技术领域
本公开总体涉及电子设备。更具体地讲,本公开涉及用信号发送基于子画面的假想参考解码器参数的电子设备。
背景技术
电子设备已变得更小并且更强大以便满足消费者需求并且改善便携性和便利性。消费者已变得依赖于电子设备并且开始期望功能的增加。电子设备的一些示例包括台式计算机、膝上型计算机、蜂窝电话、智能电话、媒体播放器、集成电路等。
一些电子设备用于处理并显示数字媒体。例如,便携式电子设备如今几乎允许在消费者可能所在的任何地方消费数字媒体。另外,一些电子设备可提供数字媒体内容的下载或流传输,以便于消费者的使用和欣赏。
数字媒体的越来越普及带来了若干问题。例如,活动地表示高质量数字媒体以便于存储、发送和快速回放遇到了若干挑战。可从本讨论观察到,以改进的性能活动地表示数字媒体的***和方法可能是期望的。
本发明的上述和其它目的、特征和优点在考虑以下结合附图进行的本发明的详细描述时将更容易理解。
发明内容
本发明的一个实施方式公开了一种从比特流对视频序列进行解码的方法,该方法包括:(a)对多个画面进行解码,所述画面中的每一个属于多个层中的不同的一个并且在对应解码的所述视频中具有相同的时间(temporaltime);(b)接收多个序列参数集句法,所述序列参数集句法中的每一个提供用于所述视频序列的所述解码的信息;(c)其中,所述比特流具有一致性,使得当对于具有第二层标识的所述多个层中的第二个而言活动的所述多个序列参数集句法中的第一个具有第一层标识,其中所述第一层标识具有来自所述多个层中的一个或多个的第一集合的值,并且所述第二层标识具有来自所述多个层中的一个或多个的第二集合的值,其中所述第一集合不同于所述第二集合,并且所述多个序列参数集句法中的所述第一个具有值等于1的sps推断缩放列表标志时,则将第三层标识sps缩放列表参考层id包括在所述多个序列参数集句法中的所述第一个中,并且针对对于具有等于sps缩放列表参考层id的第三层标识的所述多个层中的第三个而言活动的所述多个序列参数集句法中的第二个,sps推断缩放列表标志值等于0。
本发明的另一实施方式公开了一种从比特流对视频序列进行解码的方法,该方法包括:(a)对多个画面进行解码,所述画面中的每一个属于多个层中的不同的一个并且在对应解码的所述视频中具有相同的时间;(b)接收多个画面参数集句法,所述画面参数集句法中的每一个提供用于所述视频序列的所述解码的信息;(c)其中,所述比特流具有一致性,使得当对于具有第二层标识的所述多个层中的第二个而言活动的所述多个画面参数集句法中的第一个具有第一层标识,其中所述第一层标识具有来自所述多个层中的一个或多个的第一集合的值,并且所述第二层标识具有来自所述多个层中的一个或多个的第二集合的值,其中所述第一集合不同于所述第二集合,并且所述多个画面参数集句法中的所述第一个具有值等于1的pps推断缩放列表标志时,则将第三层标识pps缩放列表参考层id包括在所述多个画面参数集句法中的所述第一个中,并且针对对于具有等于pps缩放列表参考层id的第三层标识的所述多个层中的第三个而言活动的所述多个画面参数集句法中的第二个,pps推断缩放列表标志值等于0。
附图说明
图1A是示出可实现用于发送消息并且缓冲比特流的***和方法的一个或多个电子设备的示例的框图。
图1B是示出可实现用于发送消息并且缓冲比特流的***和方法的一个或多个电子设备的示例的另一框图。
图2是示出发送消息的方法的一个配置的流程图。
图3是示出为访问单元中的解码单元确定一个或多个去除延迟的方法的一个配置的流程图。
图4是示出缓冲比特流的方法的一个配置的流程图。
图5是示出为访问单元中的解码单元确定一个或多个去除延迟的方法的一个配置的流程图。
图6A是示出电子设备上的编码器604的一个配置的框图。
图6B是示出电子设备上的编码器604的一个配置的另一框图。
图7A是示出电子设备上的解码器的一个配置的框图。
图7B是示出电子设备上的解码器的一个配置的另一框图。
图8示出发送电子设备中可使用的各种组件。
图9是示出接收电子设备中可使用的各种组件的框图。
图10是示出可实现用于发送消息的***和方法的电子设备的一个配置的框图。
图11是示出可实现用于缓冲比特流的***和方法的电子设备的一个配置的框图。
图12是示出解码画面缓冲器的操作的方法的一个配置的框图。
图13A示出不同的NAL单元报头句法。
图13B示出不同的NAL单元报头句法。
图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示出示例性序列参数集rbsp。
图49示出示例性画面参数集rbsp。
图50示出示例性序列参数集rbsp。
图51示出示例性画面参数集rbsp。
图52示出示例性序列参数集rbsp。
图53示出示例性画面参数集rbsp。
图54A示出示例性活动序列参数集。
图54B示出示例性活动序列参数集。
图54C示出示例性活动序列参数集。
图54D示出示例性活动序列参数集。
具体实施方式
描述一种用于发送消息的电子设备。该电子设备包括处理器以及存储在与该处理器电子通信的存储器中的指令。当编码画面缓冲器(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,
其中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]以满足下式
其中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]÷BilRate[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)=lnitCpbRemovalDelay[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*Cell((tat(m)-t,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]的值时遵守以下约束:
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。在一些实施方式中,可增加容差参数以满足上述约束。
为了支持访问单元级别或者子画面级别二者的操作,可使用如下的比特流约束:将变量Tdu(k)定义为:
其中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]的值时遵守以下约束:
其中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)=lnitCpbRemovalDelay[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去除延迟
其中du_cpb_removal_delay[i]是解码单元CPB去除延迟参数,tc是时钟节拍,tc,sub是子画面时钟节拍,num_decoding_units_minus1是访问单元中的解码单元的量(偏移一),i是索引。
可选地,CPB去除延迟可如接下来所述地设定:将变量Tdu(k)定义为:
其中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去除延迟
其中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 | Scalabilityld[i][k] |
0 | Dependencyld[i][k] |
1 | Qualityld[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_plusl具有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中的比特的数之和。因此,
参照图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中的比特的数之和。因此, 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中的比特的数之和。因此, 只有当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中的比特的数之和。因此, 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[j][k]=vps_max_num_reorder_pics[j][k]+vps_max_latency_increase_plus1[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中所指定的受到限制的SchedSelldx的值的子集的传送调度,或者利用如下指定的比特率和CPB大小如附录A中所指定的受到限制的“插值”传送调度,HSS如上所述操作。针对HRD和DUT二者使用相同的传送调度。
当在cpb_cnt_minusl[HighestTid]大于0的情况下存在HRD参数和缓冲周期SEI消息时,解码器可以能够将从利用被指定为具有峰比特率r、CPB大小c(r)和初始CPB去除延迟(f(r)÷r)的“插值”传送调度操作的HSS传送的比特流如下解码:
α=(r-BitRate[SchedSelldx-1])÷(BitRate[SchedSelldx]-BitRate[SchedSelldx-1]),(C-22)
c(r)=α*CpbSize[SchedSelldx]+(1-α)*
CpbSize[SchedSelldx-1],(C-23)
f(r)=α*InitCpbRemovalDelay[SchedSelldx]*BitRate[SchedSelldx]+
(1-α)*InitCpbRemovalDelay[SchedSelldx-1]*BitRate[SchedSelldx-1](C-24)
对于任何SchedSelldx>0以及使得BitRate[SchedSelldx-1]<=r<=BitRate[SchedSelldx]的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_iayers_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_msx_layer_id;j++) |
oop_dpb_info_parameters(j) |
可被改变为
for(j=0;j<numOutputLayers;j++) |
oop_dpb_info_parameters(j) |
其中所选择的输出层集合索引oplsIdx的numOutputLayers被推导为:
VPS扩展中的句法的另一示例性替代是
for(i=0;i<=vps_max_laver_id;j++) |
oop_dpb_info_parameters(j) |
可被改变为
for(i=0;i<numDecodedLavers;i++) |
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和图46,当编码可缩放高效编码(“SVHC”)时,基本层可包括一个或多个SPS并且还可包括一个或多个PPS。另外,各个增强层可包括一个或多个SPS,并且还可包括一个或多个PPS。在图46中,SPS+指示一个或多个SPS,PPS+指示为特定基本层或增强层用信号发送的一个或多个PPS。这样,对于具有基本层和一个或多个增强层二者的视频比特流,SPS和PPS数据集合的总数随发送此类数据所需的带宽一起变得显著,这在许多应用中往往受限。由于此类带宽限制,期望的是将SPS和/或PPS之一中的一些数据复制到SPS和/或PPS中的另一个。这样,需要发送的数据可能较少。优选地,一个层(层A)的SPS和/或PPS之一中的数据被复制到另一层(层B)的SPS和/或PPS中的另一个,其中层A被层B用作参考层。另外,将来自SPS和/或PPS之一的所有数据复制到另一SPS和/或PPS是不期望的,相反期望的是复制所选择的数据,即,缩放列表数据。
参照图47,示出了缩放列表数据的示例性句法。缩放数据可用于缩放视频,例如缩放视频数据的变换系数。
用信号发送另一对应层的特定SPS和/或PPS以从当前层的SPS和/或PPS获得期望的信息应该以活动的方式来用信号发送。例如,可从另一增强层或基本层获得期望的SPS和/或PPS数据。另外,可能期望的是利用固定长度编码(“u(v)”)或可变长度编码(“ue(v)”)来用信号发送另一增强层或基本层。
应该用信号发送哪一个SPS和/或PPS,以获得缩放列表数据的一个活动的信号发送方式可基于用于特定当前层的参考层的使用。例如,当前参考层可具有层标识5,当前参考层所使用的参考层可使用参考层0、参考层2和参考层3(可被引用为有序列表[0,2,3])。可利用有序序列中的当前层的特定参考层的标识来用信号发送SPS和/或PPS的期望的层。第一层“0”是具有索引“0”的层,第二层“2”是具有索引“1”的层,第三层“3”是具有索引“2”的层。因此,例如,为了用信号发送从其获得缩放列表数据的期望的层“2”可通过“1”来用信号发送作为从有序列表的选择。因此,缩放列表或者来自层2的SPS和/或PPS的其它数据被复制到当前SPS和/或PPS或者以其它方式对当前SPS和/或PPS可用。
参照图48和图49,使用特定当前层的参考层的该技术可如下来用信号发送。句法元素scaling_list_sps_pred_layer_idc/scaling_list_pps_pred_layer_idc指定nuh_layer_id等于RefLayerId[nuh_layer_id][scaling_list_sps_pred_layer_idc/scaling_list_sps_pred_layer_idc]的参考层的活动SPS/PPS用于获得当前SPS/PPS的scaling_list_data()。因此,句法元素提供从其SPS/PPS复制缩放列表数据的当前层的RefLayerId列表中的索引。
scaling_list_enabled_flag等于1指定缩放列表用于变换系数的缩放处理。scaling_list_enabled_flag等于0指定缩放列表不用于变换系数的缩放处理。
sps_scaling_list_data_present_flag等于1指定SPS中存在缩放列表数据。sps_scaling_list_data_present_flag等于0指定SPS中不存在缩放列表数据。当不存在时,sps_scaling_list_data_present_flag的值被推断为等于0。当scaling_list_enabled_flag等于1并且sps_scaling_list_data_present_flag等于0时,使用默认缩放列表数据来推导HVEC规范中所指定的语义7.4.5中所指定的缩放列表数据语义中所描述的阵列ScalingFactor。
如果sps_scaling_list_data_present_flag等于1,则用信号发送sps_base_pred_scaling_list_flag。sps_base_pred_scaling_list_flag等于1指定从参考层序列参数集中的缩放列表数据推断缩放列表数据。sps_base_pred_scaling_list_flag等于0指定序列参数集中存在缩放列表数据。如果参考层是基本层并且vps_extension()中的值avc_base_layer_flag为1,则值为0。当不存在时,值被推断为0。
scaling_list_sps_pred_layer_idc指定nuh_layer_id等于RefLayerId[nuh_layer_id][scaling_list_sps_pred_layer_idc]的参考层的活动SPS用于获得当前SPS的scaling_list_data()。scaling_list_sps_pred_layer_idc的长度为Ceil(Log2(NumDirectRefLayers[nuh_layer_id])比特。scaling_list_sps_pred_layer_idc可在0至NumDirectRefLayers[nuh_layer_id]-1(含)的范围内。
在另一实施方式中,scaling_list_sps_pred_layer_idc的长度为Ceil(Log2(NumDirectRefLayers[LayerIdInVps[nuh_layer_id]])比特。scaling_list_sps_pred_layer_idc可在0至NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-1(含)的范围内。
pps_scaling_list_data_present_flag等于1指定PPS中存在参数以修改活动SPS中所指定的缩放列表。pps_scaling_list_data_present_flag等于0指定用于参考PPS的画面的缩放列表被推断为等于活动SPS所指定的那些。当scaling_list_enabled_flag等于0时,pps_scaling_list_data_present_flag的值等于0。当scaling_list_enabled_flag等于1时,sps_scaling_list_data_present_flag等于0,并且pps_scaling_list_data_present_flag等于0,使用默认缩放列表数据来推导如HVEC规范中所指定的缩放列表数据语义7.4.5中所描述的阵列ScalingFactor。
如果pps_scaling_list_data_present_flag等于1,则用信号发送pps_base_pred_scaling_list_flag。pps_base_pred_scaling_list_flag等于1指定从参考层画面参数集中的缩放列表数据推断缩放列表数据。pps_base_pred_scaling_list_flag等于0指定序列参数集中存在缩放列表数据。如果参考层是基本层并且vps_extension()中的avc_base_layer_flag的值为1,则值可为0。当不存在时,值被推断为0。
scaling_list_pps_pred_layer_idc指定nuh_layer_id等于RefLayerId[nuh_layer_id][scaling_list_pps_pred_layer_idc]的参考层的活动PPS用于获得当前PPS的scaling_list_data()。scaling_list_sps_pred_layer_idc的长度为Ceil(Log2(NumDirectRefLayers[nuh_layer_id])比特。scaling_list_sps_pred_layer_idc在0至NumDirectRefLayers[nuh_layer_id]-1(含)的范围内。在另一实施方式中,scaling_list_sps_pred_layer_idc的长度为Ceil(Log2(NumDirectRefLayers[LayerIdInVps[nuh_layer_id]])比特。scaling_list_sps_pred_layer_idc在0至NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-1(含)的范围内。
应该用信号发送哪一个SPS和/或PPS的另一活动的信号发送方式可基于特定当前层的参考层的列表中的delta值索引。例如,当前参考层可具有层标识5,直接参考层的数量可为3,并且当前参考层所使用的参考层可使用参考层0、参考层2和参考层3(可被引用为有序列表[0,2,3])。可利用有序序列中的特定层的delta值索引标识来用信号发送SPS和/或PPS中的期望的层。第一层“0”是具有索引“0”的层,第二层“2”是具有索引“1”的层,第三层“3”是具有索引“2”的层。因此,例如,从其获得缩放列表数据的期望的层“3”可通过“0”用信号来传递,其为3(直接参考层的数量)减1(对于以0为基础编索引),等于减2(列表中的索引号“3”),作为从有序列表的选择。因此,层3的SPS和/或PPS的缩放列表或者其它数据被复制到当前SPS和/或PPS或者以其它方式对当前SPS和/或PPS可用。
参照图50和图51,使用特定当前层的参考层的该技术可如下来用信号发送。句法元素scaling_list_sps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta指定nuh_layer_id等于RefLayerId[nuh_layer_id][NumDirectRefLayers[nuh_layer_id]-scaling_list_sps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta-1]的参考层的活动SPS/PPS用于获得当前SPS/PPS的scaling_list_data()。在另一实施方式中,句法元素scaling_list_sps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta指定nuh_layer_id等于RefLayerId[nuh_layer_id][NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-scaling_list_sps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta-1]的参考层的活动SPS/PPS用于获得当前SPS/PPS的scaling_list_data()。因此,句法元素提供delta值,从当前层索引减去该delta值以获得从其SPS/PPS复制缩放列表数据的当前层的RefLayerId列表中的索引。
scaling_list_enabled_flag等于1指定缩放列表用于变换系数的缩放处理。scaling_list_enabled_flag等于0指定缩放列表不用于变换系数的缩放处理。
sps_scaling_list_data_present_flag等于1指定SPS中存在缩放列表数据。sps_scaling_list_data_present_flag等于0指定SPS中不存在缩放列表数据。当不存在时,sps_scaling_list_data_present_flag的值被推断为等于0。当scaling_list_enabled_flag等于1并且sps_scaling_list_data_present_flag等于0时,使用默认缩放列表数据来推导HVEC规范中所指定的语义7.4.5中所指定的缩放列表数据语义中所描述的阵列ScalingFactor。
如果sps_scaling_list_data_present_flag等于1,则用信号发送sps_base_pred_scaling_list_flag。sps_base_pred_scaling_list_flag等于1指定从参考层序列参数集中的缩放列表数据推断缩放列表数据。sps_base_pred_scaling_list_flag等于0指定序列参数集中存在缩放列表数据。如果参考层是基本层并且vps_extension()中的值avc_base_layer_flag为1,则值为0。当不存在时,值被推断为0。
scaling_list_sps_pred_layer_idx_delta指定nuh_layer_id等于RefLayerId[nuh_layer_id][NumDirectRefLayers[nuh_layer_id]-scaling_list_sps_pred_layer_idc-1]的参考层的活动SPS用于获得当前SPS的scaling_list_data()。scaling_list_sps_pred_layer_idx_delta在0至NumDirectRefLayers[nuh_layer_id]-1(含)的范围内。
在另一实施方式中,scaling_list_sps_pred_layer_idx_delta指定nuh_layer_id等于RefLayerId[nuh_layer_id][NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-scaling_list_sps_pred_layer_idc-1]的参考层的活动SPS用于获得当前SPS的scaling_list_data()。scaling_list_sps_pred_layer_idx_delta在0至NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-1(含)的范围内。
需要注意的是,如果需要,scaling_list_sps_pred_layer_idx可被编码为u(v),代替编码为ue(v)。那么,scaling_list_sps_pred_layer_idx_delta的长度为Ceil(Log2(NumDirectRefLayers[[nuh_layer_id])比特。另外,如果需要,scaling_list_sps_pred_layer_idx_delta可在0至NumDirectRefLayers[nuh_layer_id]-1(含)的范围内。
在另一实施方式中,那么scaling_list_sps_pred_layer_idx_delta的长度为Ceil(Log2(NumDirectRefLayers[LayerIdInVps[nuh_layer_id]])比特。另外,如果需要,scaling_list_sps_pred_layer_idx_delta可在0至NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-1(含)的范围内。
pps_scaling_list_data_present_flag等于1指定PPS中存在参数以修改活动SPS中所指定的缩放列表。pps_scaling_list_data_present_flag等于0指定用于参考PPS的画面的缩放列表被推断为等于活动SPS所指定的那些。当scaling_list_enabled_flag等于0时,pps_scaling_list_data_present_flag的值可等于0。当scaling_list_enabled_flag等于1,sps_scaling_list_data_present_flag等于0并且pps_scaling_list_data_present_flag等于0时,使用默认缩放列表数据来推导如HVEC规范中所指定的缩放列表数据语义7.4.5中所描述的阵列ScalingFactor。
如果pps_scaling_list_data_present_flag等于1,则用信号发送pps_base_pred_scaling_list_flag。pps_base_pred_scaling_list_flag等于1指定从参考层画面参数集中的缩放列表数据推断缩放列表数据。pps_base_pred_scaling_list_flag等于0指定序列参数集中存在缩放列表数据。如果参考层是基本层并且vps_extension()中的avc_base_layer_flag的值为1,则值可为0。当不存在时,值被推断为0。
scaling_list_pps_pred_layer_idx_delta指定nuh_layer_id等于RefLayerId[nuh_layer_id][NumDirectRefLayers[nuh_layer_id]-scaling_list_pps_pred_layer_idc-1]的参考层的活动PPS用于获得当前PPS的scaling_list_data()。scaling_list_pps_pred_layer_idx_delta可在0至NumDirectRefLayers[nuh_layer_id]-1(含)的范围内。在另一实施方式中,scaling_list_pps_pred_layer_idx_delta指定nuh_layer_id等于RefLayerId[nuh_layer_id][NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-scaling_list_pps_pred_layer_idc-1]的参考层的活动PPS用于获得当前PPS的scaling_list_data()。scaling_list_pps_pred_layer_idx_delta可在0至NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-1(含)的范围内。
需要注意的是,如果需要,scaling_list_pps_pred_layer_idx可被编码为u(v),代替编码为ue(v)。那么scaling_list_pps_pred_layer_idx_delta的长度为Ceil(Log2(NumDirectRefLayers[nuh_layer_id])比特。另外,如果需要,scaling_list_pps_pred_layer_idx_delta可在0至NumDirectRefLayers[nuh_layer_id]-1(含)的范围内。在另一实施方式中,那么scaling_list_pps_pred_layer_idx_delta的长度为Ceil(Log2(NumDirectRefLayers[LayerIdInVps[nuh_layer_id]])比特。另外,如果需要,scaling_list_pps_pred_layer_idx_delta可在0至NumDirectRefLayers[LayerIdInVps[nuh_layer_id]]-1(含)的范围内。
应该用信号发送哪一个SPS和/或PPS的另一活动的信号发送方式可基于特定当前层的层索引值的delta值索引。这样,不必识别当前层的直接参考层的列表以便从另一层的SPS和/或PPS获得缩放列表或者其它数据。例如,当前参考层可具有层标识4。可利用delta值标识来用信号发送SPS和/或PPS中的期望的层。因此,例如,具有层标识(nuh_layer_id)“1”的期望的层可通过“2”来用信号发送,其得到4(当前参考层标识)减1(对于以0为基础编索引)减2(期望的层的值),因此达到1作为从其获得缩放列表和其它数据的层的层标识。因此,具有层标识1的层的SPS和/或PPS被复制到当前SPS和/或PPS或者以其它方式对当前SPS和/或PPS可用。在一个实施方式中,层标识可以是HEVC和SHVC和MV-HEVC标准中在NAL单元报头中用信号发送的nuh_layer_id值。
参照图52和图53,使用特定当前层的参考层的该技术可如下来用信号发送。句法元素scaling_list_sps_delta_ref_layer_id_minus1/scaling_list_pps_delta_ref_layer_id_minus1+1指定nuh_layer_id的值与其活动SPS/PPS被用于获得当前SPS/PPS的scaling_list_data()的参考层的nuh_layer_id的值之差。因此,所述句法元素提供delta值,从当前层的nuh_layer_id值减去该delta值以获得缩放列表数据从其SPS/PPS复制的层的nuh_layer_id。
scaling_list_enabled_flag等于1指定缩放列表用于变换系数的缩放处理。scaling_list_enabled_flag等于0指定缩放列表不用于变换系数的缩放处理。
sps_scaling_list_data_present_flag等于1指定SPS中存在缩放列表数据。sps_scaling_list_data_present_flag等于0指定SPS中不存在缩放列表数据。当不存在时,sps_scaling_list_data_present_flag的值被推断为等于0。当scaling_list_enabled_flag等于1并且sps_scaling_list_data_present_flag等于0时,使用默认缩放列表数据来推导如HVEC规范中所指定的语义7.4.5中所指定的缩放列表数据语义中所描述的阵列ScalingFactor。
如果sps_scaling_list_data_present_flag等于1,则用信号发送sps_base_pred_scaling_list_flag。sps_base_pred_scaling_list_flag等于1指定从参考层序列参数集中的缩放列表数据推断缩放列表数据。sps_base_pred_scaling_list_flag等于0指定缩放列表数据存在于序列参数集中。如果参考层是基本层并且vps_extension()中的值avc_base_layer_flag为1,则值可为0。当不存在时,值被推断为0。
scaling_list_sps_delta_ref_layer_id_minus1+1指定nuh_layer_id的值与其活动SPS被用于获得当前SPS的scaling_list_data()的参考层的nuh_layer_id的值之差。scaling_list_sps_delta_ref_layer_id_minus1可在0至nuh_layer_id-1(含)的范围内。
如果需要,scaling_list_sps_delta_ref_layer_id_minus1可被编码为u(v),代替编码为ue(v)。
pps_scaling_list_data_present_flag等于1指定PPS中存在参数以修改活动SPS中所指定的缩放列表。pps_scaling_list_data_present_flag等于0指定用于参考PPS的画面的缩放列表被推断为等于活动SPS所指定的那些。当scaling_list_enabled_flag等于0时,pps_scaling_list_data_present_flag的值可等于0。当scaling_list_enabled_flag等于1,sps_scaling_list_data_present_flag等于0并且pps_scaling_list_data_present_flag等于0时,使用默认缩放列表数据来推导如HVEC规范中所指定的缩放列表数据语义7.4.5中所描述的阵列ScalingFactor。
如果pps_scaling_list_data_present_flag等于1,则用信号发送pps_base_pred_scaling_list_flag。pps_base_pred_scaling_list_flag等于1指定从参考层画面参数集中的缩放列表数据推断缩放列表数据。pps_base_pred_scaling_list_flag等于0指定缩放列表数据存在于序列参数集中。如果参考层是基本层并且vps_extension()中的avc_base_layer_flag的值为1,则值可为0。当不存在时,值被推断为0。
scaling_list_pps_delta_ref_layer_id_minus1+1指定nuh_layer_id的值与其活动PPS用于获得当前PPS的scaling_list_data()的参考层的nuh_layer_id的值之差。scaling_list_pps_delta_ref_layer_id_minus1可在0至nuh_layer_id-1(含)的范围内。
如果需要,scaling_list__sps_delta_ref_layer_id_minus1可被编码为u(v),代替编码为ue(v)。
在可缩放视频编码内,各个层可具有可用的多个SPS和/或PPS选择。这样,在画面和/或视频流内的不同的位置处,可选择或激活不同的SPS和/或PPS(通常分别被称作特定视频流和/或画面的活动SPS和/或PPS)。对于特定基本层或增强层在特定时间仅可激活一个SPS和/或PPS。不幸的是,从其复制数据的期望的SPS和/或PPS可能被去激活,另一非期望的SPS和/或PPS可能被激活,导致获得错误的数据。
期望的是包括避免获得非期望的SPS和/或PPS的能力的句法规则。确保这样的一种方式是如果在一个层中SPS和/或PPS被去激活,则***将当前层中的SPS和/或PPS去激活。确保这样的另一种方式是如果在当前层中SPS和/或PPS被激活并且如果对应标志为1,则从在SPS和/或PPS中具有直接可用的所需数据的另一层复制SPS和/或PPS。
实现避免获得非期望的SPS和/或PPS的能力的句法结果的一种方式可如下。对于SPS激活,例如,当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且SPSRBSP中存在scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_delta_ref_layer_id_minus1时,nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_sps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[nuhLayerIdB]-scaling_list_sps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_delta_ref_layer_id_minus1+1)的层的scaling_list_data()的值可被认为对nuh_layer_id等于nuhLayerIdB的层活动。
在另一实施方式中,对于SPS激活,例如,当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且SPSRBSP中存在scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_delta_ref_layer_id_minus1时,nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_sps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[LayerIdInVps[nuhLayerIdB]]-scaling_list_sps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_delta_ref_layer_id_minus1+1)的层的scaling_list_data()的值可被认为对nuh_layer_id等于nuhLayerIdB的层活动。
对于SPS激活,例如,当nuh_layer_id等于nuhLayerIdA的SPSRBSP对于nuh_layer_id等于nuhLayerIdB的层而言活动并且SPSRBSP中存在scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_pred_layer_idx_delta/scaling_list__sps_delta_ref_layer_id_minus1,并且对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_sps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[nuhLayerIdB]-scaling_list_sps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_sps_delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP被去激活时,则可通过为该层激活另一SPSRBSP来将对于nuh_layer_id等于nuhLayerIdB的层而言活动的SPSRBSP去激活。
在另一实施方式中,对于SPS激活,例如,当nuh_layer_id等于nuhLayerIdA的SPSRBSP对于nuh_layer_id等于nuhLayerIdB的层而言活动并且SPSRBSP中存在scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_pred_layer_idx_delta/scaling_list__sps_delta_ref_layer_id_minus1,并且对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_sps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[LayerIdInVps[nuhLayerIdB]]-scaling_list_sps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_sps_delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP被去激活时,则可通过为该层激活另一SPSRBSP来将对于nuh_layer_id等于nuhLayerIdB的层而言活动的SPSRBSP去激活。
对于PPS激活,例如,当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的PPSRBSP并且PPSRBSP中存在scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_delta_ref_layer_id_minus1时,nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_pps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[nuhLayerIdB]-scaling_list_pps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_pps_delta_ref_layer_id_minus1-+1)的层的scaling_list_data()的值可被认为对nuh_layer_id等于nuhLayerIdB的层活动。
在另一实施方式中,对于PPS激活,例如,当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的PPSRBSP并且PPSRBSP中存在scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_delta_ref_layer_id_minus1时,nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_pps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[LayerIdInVps[nuhLayerIdB]]-scaling_list_pps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_pps_delta_ref_layer_id_minus1-+1)的层的scaling_list_data()的值可被认为对nuh_layer_id等于nuhLayerIdB的层活动。
对于PPS激活,例如,当nuh_layer_id等于nuhLayerIdA的PPSRBSP对于nuh_layer_id等于nuhLayerIdB的层而言活动并且SPSRBSP中存在scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_delta_ref_layer_id_minus1,并且对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_pps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[nuhLayerIdB]-scaling_list_pps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_pps_delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP被去激活时,则可通过为该层激活另一SPSRBSP来将对于nuh_layer_id等于nuhLayerIdB的层而言活动的SPSRBSP去激活。
在另一实施方式中,对于PPS激活,例如,当nuh_layer_id等于nuhLayerIdA的PPSRBS对于nuh_layer_id等于nuhLayerIdB的层而言活动并且SPSRBSP中存在scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_delta_ref_layer_id_minus1,并且对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_pps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[LayerIdInVps[nuhLayerIdB]]-scaling_list_pps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_pps_delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP被去激活时,则可通过为该层激活另一SPSRBSP来将对于nuh_layer_id等于nuhLayerIdB的层而言活动的SPSRBSP去激活。
期望的是包括避免在层之中链接SPS和/或PPS的能力的句法规则。例如,层可不通过一个或多个中间层来参考另一层的SPS和/或PPS。例如,将不允许以下结构,即,层3指示其数据应该从层2获得,层2指示其数据应该从层1获得以获得非期望的SPS和/或PPS。要避免图54A中针对SPS链接以及图54C中针对PPS链接示出的这种情况。在这种情况下,层3应该直接参考层1以获得从其复制数据的SPS和/或PPS。这在图54B中针对SPS以及在图54D中针对PPS示出。因此,要支持图54B和图54D所示的实施方式。
为了避免这种SPS链接,例如,这可能是比特流一致性的要求,即当针对nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且在SPSRBSP中sps_base_pred_scaling_list_flag等于1时,则针对对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_sps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[nuhLayerIdB]-scaling_list_sps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_sps_delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP,sps_base_pred_scaling_list_flag可为0(即,不能为1)。
在另一实施方式中,为了避免这种SPS链接,例如,这可能是比特流一致性的要求,即当针对nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且在SPSRBSP中sps_base_pred_scaling_list_flag等于1时,则针对对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_sps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[LayerIdInVps[nuhLayerIdB]]-scaling_list_sps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_sps_delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP,sps_base_pred_scaling_list_flag可为0(即,不能为1)。
为了避免SPS链接,例如,这可能是比特流一致性的要求,即当针对nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的PPSRBSP并且在PPSRBSP中pps_base_pred_scaling_list_flag等于1时,则针对对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_pps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[nuhLayerIdB]-scaling_list_pps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_pps_delta_ref_layer_id_minus1+1)的层而言活动的PPSRBSP,pps_base_pred_scaling_list_flag可为0(即,不能为1)。
在另一实施方式中,为了避免SPS链接,例如,这可能是比特流一致性的要求,即当针对nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的PPSRBSP并且在PPSRBSP中pps_base_pred_scaling_list_flag等于1时,则针对对于nuh_layer_id等于RefLayerId[nuhLayerIdB][scaling_list_pps_pred_layer_idc]/RefLayerId[nuhLayerIdB][NumDirectRefLayers[LayerIdInVps[nuhLayerIdB]]-scaling_list_pps_pred_layer_idc-1]/nuhLayerIdB-(scaling_list_pps_delta_ref_layer_id_minus1+1)的层而言活动的PPSRBSP,pps_base_pred_scaling_list_flag可为0(即,不能为1)。
在一些实施方式中,可允许特定层的PPS从相同层的另一PPS来预测。
在一些实施方式中,可允许特定层的SPS从相同层的另一SPS来预测。
在一些实施方式中,scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_pred_layer_idx_delta/scaling_list_sps_delta_ref_layer_id_minus1和scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_pred_layer_idx_delta/scaling_list_pps_delta_ref_layer_id_minus1可被限制为使得它们指向属于RefPicLayerId列表(而非属于RefLayerId列表)的层内的层。其中在通过引用并入的JCTVC-M1008中定义了RefPicLayerId列表。因此,在这种情况下,可仅从当前层的活动参考层之一进行层间参数预测。
包括避免PPS和/或SPS激活的链接的比特流约束的优选技术也适用于并且有益于其它层间参数集预测技术。因此,当使用层间SPS预测机制时可针对SPS激活提出以下限制:比特流一致性要求当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且在SPS中ref_layer_present_flag等于1(即,存在delta_ref_layer_id_minus1)时,则针对对于nuh_layer_id等于nuhLayerIdB-(delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP,ref_layer_present_flag必须等于0(即,不能等于1)。这里,delta_ref_layer_id_minus1+1指定nuh_layer_id的值与用于序列参数集预测的参考层的nuh_layer_id的值之差。delta_view_ref_layer_id_minus1的值将在0至nuh_layer_id-1(含)的范围内。
在另一实施方式中,上述限制可被修改为:比特流一致性要求当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且在SPS中ref_layer_present_flag等于1(即,存在delta_ref_layer_id_minus1)时,则针对对于nuh_layer_id等于nuhLayerIdA-(delta_ref_layer_id_minus1+1)的层而言活动的SPSRBSP,ref_layer_present_flag必须等于0(即,不能等于1)。这里,delta_ref_layer_id_minus1+1指定nuh_layer_id的值与用于序列参数集预测的参考层的nuh_layer_id的值之差。delta_view_ref_layer_id_minus1的值将在0至nuh_layer_id-1(含)的范围内。
在另一实施方式中,上述限制可被修改为:当为nuh_layer_id等于nuhLayerIdB的层激活nuh_layer_id等于nuhLayerIdA的SPSRBSP并且在SPSRBSP中存在delta_ref_layer_id_minus1时,为nuh_layer_id等于nuhLayerIdB的层激活的SPSRBSP中不存在的nuh_layer_id等于nuhLayerIdB-delta_view_ref_layer_id_minus1-1的层的所有SPS参数的值将被认为对nuh_layer_id等于nuhLayerIdB的层活动。当nuh_layer_id等于nuhLayerIdA的SPSRBSP对于nuh_layer_id等于nuhLayerIdB的层而言活动并且SPSRBSP中存在delta_ref_layer_id_minus1,并且对于nuh_layer_id等于nuhLayerIdB-delta_view_ref_layer_id_minus1-1的层而言活动的SPSRBSP被去激活时,则将通过激活该层的另一SPSRBSP来将对于nuh_layer_id等于nuhLayerIdB的层而言活动的SPSRBSP去激活。这里,delta_ref_layer_id_minus1+1指定nuh_layer_id的值与用于序列参数集预测的参考层的nuh_layer_id的值之差。delta_view_ref_layer_id_minus1的值将在0至nuh_layer_id-1(含)的范围内。
在另一实施方式中,代替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 (10)
1.一种对来自比特流的视频序列进行解码的方法,所述方法包括:
(a)对多个画面进行解码,所述画面中的每一个属于多个层中的不同的一个,并且在对应解码的所述视频中具有相同的时间;
(b)接收多个序列参数集句法,所述序列参数集句法中的每一个提供用于所述视频序列的所述解码的信息;
(c)其中,所述比特流具有一致性,使得当对于具有第二层标识的所述多个层中的第二个而言活动的所述多个序列参数集句法中的第一个具有第一层标识,其中所述第一层标识具有来自所述多个层中的一个或多个的第一集合的值,并且所述第二层标识具有来自所述多个层中的一个或多个的第二集合的值,其中所述第一集合不同于所述第二集合,并且所述多个序列参数集句法中的所述第一个具有值等于1的sps推断缩放列表标志时,则将第三层标识sps缩放列表参考层id包括在所述多个序列参数集句法中的所述第一个中,并且针对对于具有等于sps缩放列表参考层id的第三层标识的所述多个层中的第三个而言活动的所述多个序列参数集句法中的第二个,sps推断缩放列表标志值等于0。
2.根据权利要求1所述的方法,其中,所述sps推断缩放列表标志是指示缩放列表数据是包括在序列参数集句法中还是从具有缩放列表数据的另一序列参数集获得的标志。
3.根据权利要求1所述的方法,其中,所述sps缩放列表参考层id是其活动序列参数集应当被用于获得层的缩放列表数据的层的值。
4.根据权利要求2所述的方法,其中,所述缩放列表数据提供能够用于缩放量化矩阵的系数。
5.根据权利要求3所述的方法,其中,所述缩放列表数据提供能够用于缩放量化矩阵的系数。
6.一种对来自比特流的视频序列进行解码的方法,所述方法包括:
(a)对多个画面进行解码,所述画面中的每一个属于多个层中的不同的一个,并且在对应解码的所述视频中具有相同的时间;
(b)接收多个画面参数集句法,所述画面参数集句法中的每一个提供用于所述视频序列的所述解码的信息;
(c)其中,所述比特流具有一致性,使得当对于所述多个层中的具有第二层标识的第二个而言活动的所述多个画面参数集句法中的第一个具有第一层标识,其中所述第一层标识具有来自所述多个层中的一个或多个的第一集合的值,并且所述第二层标识具有来自所述多个层中的一个或多个的第二集合的值,其中所述第一集合不同于所述第二集合,并且所述多个画面参数集句法中的所述第一个具有值等于1的pps推断缩放列表标志时,则将第三层标识pps缩放列表参考层id包括在所述多个画面参数集句法中的所述第一个中,并且针对对于具有等于pps缩放列表参考层id的第三层标识的所述多个层中的第三个而言活动的所述多个画面参数集句法中的第二个,pps推断缩放列表标志值等于0。
7.根据权利要求6所述的方法,其中,所述pps推断缩放列表标志是指示缩放列表数据是包括在画面参数集句法中还是从具有缩放列表数据的另一画面参数集获得的标志。
8.根据权利要求6所述的方法,其中,所述pps缩放列表参考层id是其活动序列参数集应当被用于获得层的缩放列表数据的层的值。
9.根据权利要求7所述的方法,其中,所述缩放列表数据提供能够用于缩放量化矩阵的系数。
10.根据权利要求8所述的方法,其中,所述缩放列表数据提供能够用于缩放量化矩阵的系数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361844769P | 2013-07-10 | 2013-07-10 | |
US61/844,769 | 2013-07-10 | ||
PCT/JP2014/003685 WO2015004924A1 (en) | 2013-07-10 | 2014-07-10 | Scaling list signaling and parameter sets activation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105453569A true CN105453569A (zh) | 2016-03-30 |
Family
ID=52279627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037340.XA Pending CN105453569A (zh) | 2013-07-10 | 2014-07-10 | 缩放列表信号发送和参数集激活 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20160173887A1 (zh) |
EP (1) | EP3020202B1 (zh) |
JP (1) | JP6505026B2 (zh) |
CN (1) | CN105453569A (zh) |
HK (1) | HK1222065A1 (zh) |
WO (1) | WO2015004924A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155877A (zh) * | 2016-05-23 | 2019-01-04 | 高通股份有限公司 | 分开的文件轨中的序列结束及位流结束网络抽象层(nal)单元 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10595031B2 (en) | 2013-07-12 | 2020-03-17 | Qualcomm Incorporated | Selection of target output layers in high efficiency video coding extensions |
US10091532B2 (en) | 2014-06-26 | 2018-10-02 | Qualcomm Incorporated | Bitstream conformance constraints in scalable video coding |
US10148969B2 (en) * | 2015-02-11 | 2018-12-04 | Qualcomm Incorporated | Of sample entry and operation point signalling in a layered video file format |
FR3046321B1 (fr) * | 2015-12-29 | 2018-01-26 | B<>Com | Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes |
WO2018124957A1 (en) | 2016-12-30 | 2018-07-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Decoded picture buffer management for handling cross-picture data prediction |
US10904574B2 (en) * | 2018-09-13 | 2021-01-26 | Tencent America LLC | Method and device using an out of band end of stream NAL unit in decoding |
KR20240056798A (ko) | 2019-01-09 | 2024-04-30 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩의 서브 픽처 식별자 시그널링 |
JP7519373B2 (ja) * | 2019-03-11 | 2024-07-19 | 華為技術有限公司 | エンコーダ、デコーダ及び対応する方法 |
WO2020185878A1 (en) * | 2019-03-11 | 2020-09-17 | Vid Scale, Inc. | Sub-picture bitstream extraction and reposition |
CN113574889B (zh) | 2019-03-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 环路整形信息的信令和语法 |
US20220217404A1 (en) * | 2019-04-15 | 2022-07-07 | Lg Electronics Inc. | Scaling list-based video or image coding |
KR20220003619A (ko) | 2019-05-06 | 2022-01-10 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 코딩에서 새로운 코딩된 비디오 시퀀스를 시작하는 픽처에 대한 이전 픽처의 출력 |
KR20210149867A (ko) * | 2019-06-11 | 2021-12-09 | 엘지전자 주식회사 | 스케일링 리스트 파라미터 기반 비디오 또는 영상 코딩 |
WO2021027774A1 (en) | 2019-08-10 | 2021-02-18 | Beijing Bytedance Network Technology Co., Ltd. | Subpicture dependent signaling in video bitstreams |
EP4018658B1 (en) * | 2019-09-17 | 2023-03-29 | Huawei Technologies Co., Ltd. | Signaling subpicture ids in subpicture based video coding |
CN114424571A (zh) * | 2019-09-24 | 2022-04-29 | 华为技术有限公司 | 编码器、解码器及对应方法 |
BR112022005466A2 (pt) | 2019-09-24 | 2022-06-14 | Huawei Tech Co Ltd | Dispositivos de codificação, e de decodificação de vídeo, e de produto de computador, e métodos associados |
CN114514751B (zh) | 2019-10-07 | 2024-03-15 | 华为技术有限公司 | 避免多层视频码流中的冗余指示 |
CN114631317B (zh) | 2019-10-18 | 2024-03-15 | 北京字节跳动网络技术有限公司 | 子图片的参数集信令中的语法约束 |
EP4080885A4 (en) * | 2019-12-20 | 2023-07-05 | Wilus Institute of Standards and Technology Inc. | VIDEO SIGNAL PROCESSING METHOD AND RELATED DEVICE |
WO2021034230A2 (en) * | 2019-12-23 | 2021-02-25 | Huawei Technologies Co., Ltd. | Method and apparatus of lossless video coding based on refinement of lossy reconstructed signal |
US20220417526A1 (en) * | 2019-12-30 | 2022-12-29 | Lg Electronics Inc. | Image decoding method for coding dpb parameter, and device therefor |
WO2021137597A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치 |
US20220417519A1 (en) * | 2019-12-30 | 2022-12-29 | Lg Electronics Inc. | Image decoding method comprising dpb management process and apparatus therefor |
WO2021137591A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | Ols dpb 파라미터 인덱스를 포함하는 영상 정보 기반 영상 디코딩 방법 및 그 장치 |
WO2021137589A1 (ko) * | 2019-12-30 | 2021-07-08 | 엘지전자 주식회사 | 영상 디코딩 방법 및 그 장치 |
EP4307677A3 (en) | 2020-02-24 | 2024-04-17 | ByteDance Inc. | Interaction between subpicture and tile row signaling |
JP7479492B2 (ja) | 2020-03-03 | 2024-05-08 | バイトダンス インコーポレイテッド | ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング |
CN115699733A (zh) | 2020-05-21 | 2023-02-03 | 字节跳动有限公司 | 在视频编解码中信令通知层间参考图片 |
WO2021242716A1 (en) * | 2020-05-26 | 2021-12-02 | Bytedance Inc. | Identification of inter-layer reference pictures in coded video |
CN115769571A (zh) * | 2020-06-17 | 2023-03-07 | 字节跳动有限公司 | 视频编解码中的解码的图片缓冲器管理和子图片 |
US20230007305A1 (en) * | 2021-06-28 | 2023-01-05 | Tencent America LLC | Subpicture partitioning and scaling window information |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060050793A1 (en) * | 2004-09-03 | 2006-03-09 | Nokia Corporation | Parameter set and picture header in video coding |
WO2013027417A1 (en) * | 2011-08-25 | 2013-02-28 | Panasonic Corporation | Methods and apparatuses for encoding and decoding video using periodic buffer description |
CN103069800A (zh) * | 2010-08-17 | 2013-04-24 | 韩国电子通信研究院 | 用于编码视频的方法和设备、以及解码方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253483B2 (en) * | 2012-09-25 | 2016-02-02 | Google Technology Holdings LLC | Signaling of scaling list |
-
2014
- 2014-07-10 EP EP14823500.5A patent/EP3020202B1/en active Active
- 2014-07-10 WO PCT/JP2014/003685 patent/WO2015004924A1/en active Application Filing
- 2014-07-10 CN CN201480037340.XA patent/CN105453569A/zh active Pending
- 2014-07-10 US US14/902,677 patent/US20160173887A1/en not_active Abandoned
- 2014-07-10 JP JP2015562621A patent/JP6505026B2/ja not_active Expired - Fee Related
-
2016
- 2016-08-12 HK HK16109667.5A patent/HK1222065A1/zh unknown
-
2018
- 2018-03-08 US US15/915,226 patent/US20190007692A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060050793A1 (en) * | 2004-09-03 | 2006-03-09 | Nokia Corporation | Parameter set and picture header in video coding |
CN103069800A (zh) * | 2010-08-17 | 2013-04-24 | 韩国电子通信研究院 | 用于编码视频的方法和设备、以及解码方法和设备 |
WO2013027417A1 (en) * | 2011-08-25 | 2013-02-28 | Panasonic Corporation | Methods and apparatuses for encoding and decoding video using periodic buffer description |
Non-Patent Citations (2)
Title |
---|
SHAN LIU, XIMIN ZHANG, SHAWMIN LE: "AHG9: On Scaling List Signalling for SHVC", 《JCT-VC MEETING》 * |
THOMAS RUSERT: "AHG9: Inter-layer SPS prediction for HEVC extensions", 《JCT-VC MEETING》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155877A (zh) * | 2016-05-23 | 2019-01-04 | 高通股份有限公司 | 分开的文件轨中的序列结束及位流结束网络抽象层(nal)单元 |
US11115669B2 (en) | 2016-05-23 | 2021-09-07 | Qualcomm Incorporated | End of sequence and end of bitstream NAL units in separate file tracks |
CN109155877B (zh) * | 2016-05-23 | 2021-09-21 | 高通股份有限公司 | 产生、处理用于存储视频内容的文件的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3020202A4 (en) | 2017-03-01 |
EP3020202B1 (en) | 2019-09-04 |
US20190007692A1 (en) | 2019-01-03 |
EP3020202A1 (en) | 2016-05-18 |
JP2016530734A (ja) | 2016-09-29 |
JP6505026B2 (ja) | 2019-04-24 |
HK1222065A1 (zh) | 2017-06-16 |
US20160173887A1 (en) | 2016-06-16 |
WO2015004924A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453569A (zh) | 缩放列表信号发送和参数集激活 | |
CN105379273A (zh) | 信令指示和约束 | |
US11653011B2 (en) | Decoded picture buffer removal | |
US10986357B2 (en) | Signaling change in output layer sets | |
CN105359525A (zh) | 瓦片对齐信令和一致性约束 | |
CN105122815A (zh) | 在vps扩展中用信号通知dpb参数以及dpb操作 | |
CN105556975A (zh) | 信令告知用于编码的信息 | |
CN104838660A (zh) | 发信号通知步进式时间子层访问样本的方法 | |
CN104488269A (zh) | 用于发信号通知渐进式时间层访问图片的方法 |
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: 1222065 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1222065 Country of ref document: HK |