视频图像码流处理方法和设备与流程

文档序号:11780273阅读:242来源:国知局
视频图像码流处理方法和设备与流程
本发明实施例涉及图像处理技术,尤其涉及一种视频图像码流处理方法和设备。

背景技术:
高性能视频编码(HighEfficiencyVideoCoding,以下简称:HEVC),是为满足日益增长的视频应用需求,特别是高清视频的应用需求而制定的新一代视频编码标准。HEVC设计的目标是在主观效果相似的情况下,相比较于上一代视频编码标准,如先进视频编码(AdvancedVideoCoding,以下简称:AVC),节省50%的码率。当采用基于峰值信噪比(PeakSignalNoiseRatio,以下简称:PSNR)的客观评价准则时,HEVC相对于AVC压缩性能如下:在全部帧内图像的测试条件下,码率节省约23%;在支持随机访问的测试条件下,码率节省约33%;在低延迟的测试条件下,码率节省约41%。相比于HEVC的客观性能提升,HEVC的主观性能提升更加突出,主要原因是HEVC中改进的帧间预测和环路滤波技术对提升主观性能的作用明显。由于HEVC优越的性能,可以预见,在不远的将来,HEVC会成为新一代非常成功的视频编码标准。

技术实现要素:
本发明实施例提供一种视频图像码流处理方法和设备。本发明实施例提供一种视频图像码流处理方法,包括:提取编码设备产生的码流,所述码流中包含纯净随机访问CRA图像信息,所述CRA图像信息满足CRA图像的约束条件且所述约束条件包括CRA图像必须为参考图像。相应地,本发明实施例提供一种解码设备,包括:提取模块,用于提取编码设备产生的码流,所述码流中包含纯净随机访问CRA图像信息,所述CRA图像信息满足CRA图像的约束条件且所述约束条件包括CRA图像必须为参考图像。本发明上述实施例,在现有HEVC标准文稿的基础上,改进了CRA图像的约束条件,即在现有针对CRA图像的约束条件的基础上,强制约束CRA图像为参考图像。解码设备在提取编码设备生成的码流后,可以确定该码流是否包含CRA图像,若包含,则可以根据CRA图像的约束条件判断该码流中该CRA图像的属性是否为参考图像,如果是参考图像,则可以确定该码流为合法码流,而该CRA图像可以用于辅助后续图像的POC推导,否则该码流为非法码流,而该CRA图像不能用于辅助后续图像的POC推导,从而避免POC计算异常以及解码异常。本发明实施例提供另一种视频图像码流处理方法,包括:确定依次解码的图像的图片顺序编号POC是否按照非降序排列;若是,则采用如下方法确定所述当前图像的POC重要比特位POCMsb:从码流中获取当前图像的POC非重要比特位POCLsb;如果所述当前图像的POCLsb小于之前图像的POCLsb,则当前图像的POCMsb等于之前图像的POCMsb与最大POCLsb之和,其中最大POCLsb=2N,N为POCLsb的位宽;否则,所述当前图像的POCMsb等于之前图像的POCMsb;根据所述当前图像的POCMsb以及所述当前图像的POCLsb,确定所述当前图像的POC。相应地,本发明实施例提供一种解码设备,包括:第一确定模块,用于确定依次解码的图像的图片顺序编号POC是否按照非降序排列;处理模块,用于若是按照非降序排列,则采用如下方法确定所述当前图像的POC重要比特位POCMsb:从码流中获取当前图像的POC非重要比特位POCLsb;如果所述当前图像的POCLsb小于之前图像的POCLsb,则当前图像的POCMsb等于之前图像的POCMsb与最大POCLsb之和,其中最大POCLsb=2N,N为POCLsb的位宽;否则,所述当前图像的POCMsb等于之前图像的POCMsb;第二确定模块,用于根据所述当前图像的POCMsb以及所述当前图像的POCLsb,确定所述当前图像的POC。本发明上述实施例中,解码设备可以先确定依次解码的图像的POC是否按照非降序排列;如果是按照非降序排列的,则可以采用改进的推导方式确定当前图像的POCMsb,即从码流中获取当前图像的POC非重要比特位POCLsb,如果所述当前图像的POCLsb小于之前图像的POCLsb,则当前图像的POCMsb等于之前图像的POCMsb与最大POCLsb之和,否则,当前图像的POCMsb等于prevPicOrderCntMsb;最后再根据当前图像的POCMsb以及当前图像的POCLsb,确定当前图像的POC。因此,解码设备可以根据当前图像的POC以及DPB中各幅图像的POC确定输出顺序。因此,本发明实施例针对依次解码的图像的POC按照非降序排列的情况,简化了POCMsb的推导方式,提高了处理效率,而且,基于该改进的推导方式,可以去除对激活图像中任意两幅图像的POC差值的大小的限制,从而可以减少码流中POCLsb的位宽,进而减小传输开销。其中,激活图像是指当前图像以及DPB中所有被标记用作短期参考的图像和等待输出的图像。本发明实施例提供再一种视频图像码流处理方法,包括:提取编码设备产生的码流,其中,第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上,所述第一类语法元素是指包含时间层数量信息的语法元素,所述第二类语法元素是指包含每个时间层的码流特征信息的语法元素,所述第三类语法元素是指包含每一幅图像所占用存储空间大小信息的语法元素;从所述码流的所述邻近位置上抽取至少两类语法元素。相应地,本发明实施例提供一种处理设备,包括:提取模块,用于提取编码设备产生的码流,其中,第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上,所述第一类语法元素是指包含时间层数量信息的语法元素,所述第二类语法元素是指包含每个时间层的码流特征信息的语法元素,所述第三类语法元素是指包含每一幅图像所占用存储空间大小信息的语法元素;抽取模块,用于从所述码流的所述邻近位置上抽取至少两类语法元素。本发明上述实施例中,解码设备或者媒体网关可以提取编码设备生成的码流,该码流中,第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上,因此,解码设备或者媒体网关在抽取每个时间层信息时,无需额外解析其他无关的语法元素,而是可以连续地将每个时间层信息的全部语法元素都抽取出来,从而提高了时间层信息的处理效率。本发明实施例提供又一种视频图像码流处理方法,包括:提取编码设备产生的码流中的语法元素max_dec_pic_buffering_diff[i]和num_reorder_pics_diff[i],其中,语法元素max_dec_pic_buffering_diff[i]表示解码时间层标识不超过i的子码流所需要的解码图像缓存的大小与解码时间层标识不超过i-1的子码流所需要的解码图像缓存的大小的差值,语法元素num_reorder_pics_diff[i]表示时间层标识不超过i的子码流中倒置图像的数量与时间层标识不超过i-1的子码流中倒置图像的数量的差值;若i为0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=max_dec_pic_buffering_diff[i];NumReorderPics[i]=num_reorder_pics_diff[i];若i大于0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=MaxDecPicBuffering[i-1]+max_dec_pic_buffering_diff[i];NumReorderPics[i]=NumReorderPics[i-1]+num_reorder_pics_diff[i];其中,MaxDecPicBuffering[i]表示假设参考解码器HRD的DPB针对第i个时间层码流所要求的存储空间大小,NumReorderPics[i]表示第i个时间层码流中的时序倒置图像的最大数量。相应地,本发明实施例提供一种解码设备,包括:提取模块,用于提取编码设备产生的码流中的语法元素max_dec_pic_buffering_diff[i]和num_reorder_pics_diff[i],其中,语法元素max_dec_pic_buffering_diff[i]表示解码时间层标识不超过i的子码流所需要的解码图像缓存的大小与解码时间层标识不超过i-1的子码流所需要的解码图像缓存的大小的差值,语法元素num_reorder_pics_diff[i]表示时间层标识不超过i的子码流中倒置图像的数量与时间层标识不超过i-1的子码流中倒置图像的数量的差值;差分解码模块,用于若i为0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=max_dec_pic_buffering_diff[i];NumReorderPics[i]=num_reorder_pics_diff[i];若i大于0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=MaxDecPicBuffering[i-1]+max_dec_pic_buffering_diff[i];NumReorderPics[i]=NumReorderPics[i-1]+num_reorder_pics_diff[i];其中,MaxDecPicBuffering[i]表示假设参考解码器HRD的DPB针对第i个时间层码流所要求的存储空间大小,NumReorderPics[i]表示第i个时间层码流中的时序倒置图像的最大数量。本发明上述实施例中,利用表示解码时间层标识不超过i的子码流所需要的解码图像缓存的大小的语法元素的值和表示时间层标识不超过i的子码流中倒置图像的数量的语法元素的值均是非减的这一特性,对这两个语法元素进行差分编码,以减少表示SPS中的语法元素所需要的比特,从而提高压缩效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明视频图像码流处理方法实施例一的流程图;图2为本发明视频图像码流处理方法实施例二的流程图;图3为本发明视频图像码流处理方法实施例三的流程图;图4为本发明视频图像码流处理方法实施例四的流程图;图5为本发明解码设备实施例二的结构示意图;图6为本发明处理设备实施例的结构示意图;图7为本发明解码设备实施例三的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种视频图像码流处理方法,该方法包括:提取编码设备产生的码流,所述码流中包含纯净随机访问(CleanRandomAccess,以下简称:CRA)图像信息,所述CRA图像信息满足CRA图像的约束条件且所述约束条件包括CRA图像必须为参考图像。本实施例的技术方案,在现有HEVC标准文稿的基础上,改进了CRA图像的约束条件,即在现有针对CRA图像的约束条件的基础上,强制约束CRA图像为参考图像,从而使得该CRA图像可以用于辅助后续图像的图片顺序编号(PictureOrderCount,以下简称:POC)推导,否则该码流为非法码流,而该CRA图像不能用于辅助后续图像的POC推导,从而避免POC计算异常以及解码异常。下面采用一个具体的实施例,对上述技术方案进行详细说明。图1为本发明视频图像码流处理方法实施例一的流程图,如图1所示,本实施例的方法可以包括:步骤101、提取编码设备产生的码流,码流中包含CRA图像信息;步骤102、根据CRA图像的约束条件,确定该码流是否是合法码流;该约束条件包括CRA图像必须为参考图像。具体来说,HEVC使用即时解码刷新(InstantaneousDecodingRefresh,以下简称:IDR)图像和CRA图像两种图像类型支持随机访问。对于CRA图像来说,其只能是I帧图像;对于解码顺序和输出顺序在CRA图像之后的图像,不允许使用解码顺序或输出顺序在CRA图像之前的图像进行帧间预测,对解码顺序在CRA图像之前的图像,其输出顺序也在CRA图像之前。因此,CRA图像可以不依赖于其他图像进行正常解码,CRA图像之后的图像的解码操作不依赖于任何CRA图像之前的图像,因此,CRA图像可以作为起始点解码一个视频序列;而CRA图像之前的图像不会影响CRA图像之后图像的输出,因此,CRA图像可以作为起始点输出一个视频序列。综上,CRA图像可以作为一个视频序列中的第一幅图像进行解码与输出操作。HEVC中规定一个视频序列的第一幅图像只能是IDR图像或CRA图像,因此若一幅图像既不是IDR图像也不是CRA图像,则其一定不是所在视频序列中的第一幅图像。进一步地,对于每一幅图像来说,其都有一个对应的POC,该POC是用于指示一幅图像与解码图像缓存(DecodedPictureBuffer,以下简称:DPB)中其它图像的时序先后关系,而该时序先后关系规定DPB中所有图像的输出顺序。一般来说,POC号码较小的图像应当在POC号码较大的图像之前输出。因此,在推导当前图像的POC的过程中需要首先确定当前图像的之前图像,然后获取之前图像的POC信息并应用之前图像的POC信息推导当前图像的POC。其中,之前图像,是指满足下面两个条件的按照解码顺序的前一幅图像:条件一,该图像的语法元素temporal_id为0,该语法元素temporal_id可从网络抽象层单元(NetworkAbstractLayerUnit,以下简称:NALU)的头字段(以下简称:header)中获取;条件二,该图像是参考图像,可从NALUheader中的语法元素nal_ref_flag判断一幅图像是否为参考图像,现有HEVC标准文稿中,nal_ref_flag为1表示该图像是参考图像,nal_ref_flag为0表示该图像不是参考图像。因此,一个视频序列中的第一幅解码图像,无论是IDR图像还是CRA图像,都必须同时满足上述两个条件,才能够保证所在视频序列中后续的任何一幅图像都能够找到其对应的之前图像。但是,在实践过程中发现,如果一个视频序列中的第一幅图像是CRA,则时常出现后续图像无法找到其对应的之前图像的问题。经过深入研究发现,现有HEVC标准文稿对于CRA图像的temporal_id,限制其必须为0,否则包含该CRA图像的码流为非法码流。但对于CRA图像的nal_ref_flag来说,现有HEVC标准文稿并未限制其nal_ref_flag必须为1。在该情况下,若一幅CRA图像作为一个视频序列的第一幅图像,且该CRA图像的nal_ref_flag为0,也即表示该CRA图像不是参考图像,那么该CRA图像后的各幅图像就无法找到其对应的之前图像,从而引起POC计算异常并最终导致解码异常。鉴于上述问题,本实施例在现有HEVC标准文稿的基础上,改进了CRA图像的约束条件,即在现有针对CRA图像的约束条件的基础上,强制约束CRA图像为参考图像。解码设备可以提取编码设备生成的码流,然后可以确定该码流是否包含CRA图像信息,若包含,则根据CRA图像的约束条件判断该码流中该CRA图像的属性是否为参考图像,如果是参考图像,则可以认为该码流为合法码流,其可以用作后续图像的POC推导,否则该码流为非法码流。在实际应用中,解码设备可以强制约束CRA图像为参考图像,从而对该非法码流进行容错处理。整个视频码流是封装在多个NALU内进行传输的,每个NALU可以包含一幅图像的全部信息或者部分信息。因此,本实施例在具体实现时,对于CRA图像对应的NALU来说,可以采用NALUheader中的语法元素nal_unit_type指示该NALU中包含的信息属于CRA图像,且该NALUheader中的另一语法元素nal_ref_flag为1,则可以表示该CRA图像为参考图像。在解码设备提取编码设备生成的NALU后,可以根据该NALUheader中的语法元素nal_unit_type确定该NALU中包含的信息是否属于CRA图像,如果属于CRA图像,则可以根据该NALUheader中的另一语法元素nal_ref_flag来确定该CRA图像是否为参考图像,进而确定包含该NALU的码流是否为合法码流。本实施例,在现有HEVC标准文稿的基础上,改进了CRA图像的约束条件,即在现有针对CRA图像的约束条件的基础上,强制约束CRA图像为参考图像。解码设备在提取编码设备生成的码流后,可以确定该码流是否包含CRA图像,若包含,则可以根据CRA图像的约束条件判断该码流中该CRA图像的属性是否为参考图像,如果是参考图像,则可以确定该码流为合法码流,而该CRA图像可以用于辅助后续图像的POC推导,否则该码流为非法码流,而该CRA图像不能用于辅助后续图像的POC推导,从而避免POC计算异常以及解码异常。图2为本发明视频图像码流处理方法实施例二的流程图,如图2所示,本实施例的方法可以包括:步骤201、确定依次解码的图像的POC是否按照非降序排列;步骤202、若是,则采用如下方法确定所述当前图像的POCMsb:从码流中获取当前图像的POCLsb;如果所述当前图像的POCLsb小于之前图像的POCLsb,则当前图像的POCMsb等于之前图像的POCMsb与最大POCLsb之和,其中最大POCLsb=2N,N为POCLsb的位宽;否则,所述当前图像的POCMsb等于之前图像的POCMsb;步骤203、根据所述当前图像的POCMsb以及所述当前图像的POCLsb,确定所述当前图像的POC。如前所述,对于每一幅图像来说,其都有一个对应的POC,该POC是用于指示一幅图像与DPB中其它图像的时序先后关系,而该时序先后关系规定DPB中所有图像的输出顺序。一般来说,POC号码较小的图像应当在POC号码较大的图像之前输出。因此,在推导当前图像的POC的过程中需要首先确定当前图像的之前图像,然后获取之前图像的POC信息并应用之前图像的POC信息推导当前图像的POC。具体来说,一幅图像的POC是由其重要比特位(MostSignificantBit,以下简称:MSB)和非重要比特位(LeastSignificantBit以下简称:LSB)共同决定的。在本实施例中,MSB可记作POCMsb,LSB可记作POCLsb。当前图像的POC可以按照下式计算得到:PicOrderCntVal=PicOrderCntMsb+pic_order_cnt_lsb其中,pic_order_cnt_lsb是从码流中获取的当前图像的POCLsb,而PicOrderCntMsb是解码设备推导获得的当前图像的POCMsb,PicOrderCntVal是当前图像的POC。现有HEVC标准文稿采用如下方式推导获得PicOrderCntMsb:1、获取之前图像的POCLsb(以下简称:prevPicOrderCntLsb)和之前图像的POCMsb(以下简称:prevPicOrderCntMsb)如果当前图像是IDR图像,或者当前图像是整个序列中的第一幅图像且为CRA图像,则将prevPicOrderCntLsb和prevPicOrderCntMsb均设置为0;否则,确定当前图像的之前图像,并获取之前图像的POCMsb与POCLsb,分别作为prevPicOrderCntLsb和prevPicOrderCntMsb,其中,之前图像的定义在前一实施例中已经说明,此处不再赘述。2、根据prevPicOrderCntLsb和prevPicOrderCntMsb,确定PicOrderCntMsb具体地,确定PicOrderCntMsb的过程可以采用如下伪代码所表示的操作实现:其中,最大POCLsb(以下简称:MaxPicOrderCntLsb)是由POCLsb的位宽N决定的,MaxPicOrderCntLsb=2N。举例来说,POCLsb的位宽为4,即POCLsb采用4bit表示,则MaxPicOrderCntLsb=24=16,POCLsb采用8比特表示时,MaxPicOrderCntLsb=28=64。上述三条分支语言的含义分别为:如果从码流中获得的当前图像的pic_order_cnt_lsb小于之前图像的prevPicOrderCntLsb,并且prevPicOrderCntLsb与pic_order_cnt_lsb的差值大于等于MaxPicOrderCntLsb/2,则PicOrderCntMsb=prevPicOrderCntMsb+MaxPicOrderCntLsb;如果从码流中获得的当前图像的pic_order_cnt_lsb大于之前图像的prevPicOrderCntLsb,并且pic_order_cnt_lsb与prevPicOrderCntLsb的差值大于MaxPicOrderCntLsb/2,则PicOrderCntMsb=prevPicOrderCntMsb-MaxPicOrderCntLsb;否则,PicOrderCntMsb=prevPicOrderCntMsb。因此,按照现有技术推导PicOrderCntMsb的效果是,当前图像的POC大于之前图像的POC-MaxPicOrderCntLsb/2,且小于等于之前图像的POC+MaxPicOrderCntLsb/2。举例来说,假设用4比特表示POCLsb,即MaxPicOrderCntLsb为16,而视频码流中按照输出时序顺序排列的相邻三幅图像A、B与C均为参考图像且temporal_id为0,这三幅图像的POCLsb分别为:POCLsb(A)=2,POCLsb(B)=7,POCLsb(C)=11。假设三幅图像均被解码设备正确接收、解码并放置在DPB中等待输出,则解码设备会按照下面方法确定这三幅图像输出顺序:1、确定图像A的POC将图像A的POCMsb记作POCMsb(A),POCMsb(A)可以在解码图像A的过程中确定。因此,图像A的POC为:POC(A)=POCMsb(A)+POCLsb(A)=POCMsb(A)+22、确定图像B的POC选择B作为当前图像,因此pic_order_cnt_lsb=POCLsb(B)=7;确定图像B的之前图像为图像A,因此,prevPicOrderCntLsb=2,prevPicOrderCntMsb=POCMsb(A)。由于pic_order_cnt_lsb>prevPicOrderCntLsb且pic_order_cnt_lsb-prevPicOrderCntLsb=5<MaxPicOrderCntLsb/2,因此,按照上述第三条件分支计算PicOrderCntMsb=prevPicOrderCntMsb,则可推断POCMsb(B)=POCMsb(A);因此,图像B的POC为:POC(B)=POCMsb(B)+pic_order_cnt_lsb=POCMsb(A)+7。3、确定图像C的POC选择C作为当前图像,因此pic_order_cnt_lsb=POCLsb(C)=11;确定图像C的之前图像为图像B,因此,prevPicOrderCntLsb=7,prevPicOrderCntMsb=POCMsb(B)=POCMsb(A)由于pic_order_cnt_lsb>prevPicOrderCntLsb且pic_order_cnt_lsb-prevPicOrderCntLsb=4<MaxPicOrderCntLsb/2,因此,按照上述第三条件分支计算PicOrderCntMsb=prevPicOrderCntMsb,则可推断POCMsb(C)=POCMsb(B)=POCMsb(A);因此,图像C的POC为:POC(C)=POCMsb(C)+pic_order_cnt_lsb=POCMsb(A)+11。因为,解码设备计算得到的这三幅图像的POC值分别是POC(A)=POCMsb(A)+2,POC(B)=POCMsb(A)+7,POC(C)=POCMsb(A)+11,所以这三幅图像的输出顺序是A->B->C。但是,如果B没有被解码设备正确接收,则只有图像A与C被解码设备正确接收、解码并被放置在DPB中等待输出。解码设备则会按照下面的方法确定这两幅图像输出顺序:1、确定图像A的POC将图像A的POCMsb记作POCMsb(A),POCMsb(A)可以在解码图像A的过程中确定。因此,图像A的POC为:POC(A)=POCMsb(A)+POCLsb(A)=POCMsb(A)+22、确定图像C的POC选择C作为当前图像,因此pic_order_cnt_lsb=POCLsb(C)=11;确定图像C的之前图像为图像A,因此,prevPicOrderCntLsb=2,prevPicOrderCntMsb=POCMsb(A);由于pic_order_cnt_lsb>prevPicOrderCntLsb且pic_order_cnt_lsb-prevPicOrderCntLsb=9>MaxPicOrderCntLsb/2,因此,按照上述第二条件分支计算PicOrderCntMsb=prevPicOrderCntMsb-MaxPicOrderCntLsb,则可推断POCMsb(C)=POCMsb(A)-16;因此,图像C的POC:POC(C)=POCMsb(C)+pic_order_cnt_lsb=POCMsb(A)-16+11=POCMsb(A)-5。因为计算得到的图像A与C的POC分别是POC(A)=POCMsb(A)+2,POC(C)=POCMsb(A)-5,所以这两幅图像的输出顺序是C->A。显然,在图像B丢失的情况下,解码设备按照给定方法无法推导图像A与C的正确输出顺序。为了解决上述由于图像丢失而导致的图像乱序输出问题,现有HEVC限制激活图像中的任意两幅图像之间的POC差值必须小于MaxPicOrderCntLsb/2。以上述丢失图像B的例子举例来说,如果POCLsb(C)与POCLsb(A)的差值小于MaxPicOrderCntLsb/2,则POCMsb(C)=POCMsb(A),从而不会出现图像A与C输出顺序颠倒的情况。但是,在实践过程中发现,现有HEVC规定的POC推导过程,适用于任何编码结构,也即,既允许当前图像的POC比之前图像的POC大,又允许当前图像的POC比之前图像的POC小。例如,在推导PicOrderCntMsb的计算式中,第二个条件分支对应当前图像POCMsb小于之前图像POCMsb的情况。此时,考虑POCLsb的取值范围在[0,MaxPicOrderCntLsb)范围内,比较最后计算得到的当前图像的POC与之前图像的POC,显然当前图像的POC小于之前图像的POC。但是,当不存在当前图像的POC小于之前图像的POC的情况,即所有依次解码的图像的POC是按照非降序排列的,此时,上述推导PicOrderCntMsb的第二个条件分支是多余的,其无需限制激活图像中的任意两幅图像之间的POC差值必须小于MaxPicOrderCntLsb/2。鉴于上述分析,本实施例针对依次解码的图像的POC按照非降序排列的情况,对PicOrderCntMsb推导过程进行了改进,具体的伪代码所表达如下:上述语法的含义为:如果从码流中获取的当前图像的pic_order_cnt_lsb小于之前图像的prevPicOrderCntLsb,则PicOrderCntMsb=prevPicOrderCntMsb+MaxPicOrderCntLsb;否则,PicOrderCntMsb=prevPicOrderCntMsb。在具体实现时,可以利用当序列参数集(SequenceParameterSet,以下简称:SPS)中表示时序倒置图像的最大数量的语法元素num_reorder_pics的值来指示依次解码的图像的POC是否按照非降序排列。所述时序倒置图像指解码顺序在某一幅图像之前而输出顺序在那一幅图像之后的图像。例如,使用num_reorder_pics为0表示依次解码的图像的POC按照非降序排列,使用num_reorder_pics大于0表示依次解码的图像的POC没有按照非降序排列。需注意,在后续方法实施例四中对语法元素num_reorder_pics的编码方式进行了修改。修改后的变量MaxDecPicBuffering与修改前的语法元素num_reorder_pics具有相同的物理含义。因此,在实施例四的条件下,可根据变量MaxDecPicBuffering的值确定依次解码的图像的POC是否按照非降序排列。需要说明的是,由于num_reorder_pics是按照不同时间层传递的,本实施例中不带数组组标的变量均表示当前解码时间层的参数信息。如当前解码第1层,则num_reorder_pics表示num_reorder_pics[1],其余变量类似。解码设备在确定当前图像与DPB各幅图像的输出顺序时,可以先根据SPS中的num_reorder_pics的取值来确定依次解码的图像的POC是否按照非降序排列,如果确定依次解码的图像的POC是按照非降序排列的,则可以采用本实施例改进的推导方式获得当前图像的PicOrderCntMsb,并依据PicOrderCntMsb和从码流中获取的当前图像的pic_order_cnt_lsb,来得到当前图像的PicOrderCntVal,从而根据当前图像的PicOrderCntVal以及DPB中各幅图像的POC值来确定当前图像与DPB各幅图像的输出顺序;如果确定依次解码的图像的POC不是按照非降序排列的,则可以采用上述HEVC标注给出的现有推导方式进行处理,本实施例不再赘述。可以理解的是,在依次解码的图像的POC按照非降序排列的情况下,即使对激活图像中任意两幅图像的POC差值的大小不做限制,也不会影响解码的鲁棒性,即不会出现解码图像相对位置错乱的情况。因此,基于本实施例上述处理过程,本实施例还可以改进现有HEVC标准文稿中对激活图像中任意两幅图像的POC差值的大小的约束条件,即,针对依次解码的图像的POC按照非降序排列的情况,无需采用约束条件对激活图像中任意两幅图像的POC差值的大小进行限制。而针对依次解码的图像的POC按照非降序排列的情况,去除POC差值的大小的约束,其好处在于可以减少pic_order_cnt_lsb的位宽,从而可以减小传输开销。本实施例中,解码设备可以先确定依次解码的图像的POC是否按照非降序排列;如果是按照非降序排列的,则可以采用改进的推导方式确定当前图像的POCMsb,即从码流中获取当前图像的POC非重要比特位POCLsb,如果所述当前图像的POCLsb小于之前图像的POCLsb,则当前图像的POCMsb等于之前图像的POCMsb与最大POCLsb之和,否则,当前图像的POCMsb等于prevPicOrderCntMsb;最后再根据当前图像的POCMsb以及当前图像的POCLsb,确定当前图像的POC。因此,解码设备可以根据当前图像的POC以及DPB中各幅图像的POC确定输出顺序。因此,本实施例针对依次解码的图像的POC按照非降序排列的情况,简化了POCMsb的推导方式,提高了处理效率,而且,基于该改进的推导方式,可以去除对激活图像中任意两幅图像的POC差值的大小的限制,从而可以减少码流中POCLsb的位宽,进而减小传输开销。图3为本发明视频图像码流处理方法实施例三的流程图,如图3所示,本实施例的方法可以包括:步骤301、提取编码设备产生的码流,其中,第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上,所述第一类语法元素是指包含时间层数量信息的语法元素,所述第二类语法元素是指包含每个时间层的码流特征信息的语法元素,所述第三类语法元素是指包含每一幅图像所占用存储空间大小信息的语法元素;步骤302、从所述码流的所述邻近位置上抽取至少两类语法元素。具体来说,由于解码设备的能力是有限的。为了保证解码设备能够正常解码码流,解码设备需要判断该码流所要求的解码能力是否在其所支持的解码能力范围内,若是,则解码设备可以正常接收码流并进行解码,否则,解码设备将进行异常处理。其中,解码能力可以包括对DPB的限制。这种限制可以包括:DPB中存储的图像数量的限制,DPB中所有图像占用的存储空间的限制。DPB中所有图像占用的存储空间可由表示DPB中存储的图像数量的相关参数以及每一幅图像所占用的存储空间的相关参数计算得到,其中,表示每一幅图像所占用存储空间的语法元素可以包括:表示图像大小的相关参数,例如图像的宽和高;图像裁剪参数;每个采样值各个色度分量的位宽等。其中,解码设备进行异常处理可以采用下述两种方式:一种是拒绝解码整个码流,另一种是在码流中包含若干不同的时间层的情况下,只抽取并解码所能支持的部分时间层码流而丢弃解码设备不能支持的时间层码流。上述按时间层对码流进行抽取的操作还可以在媒体网关中进行。在视频的传输过程中,解码设备,例如客户端中的解码器,可以与媒体网关进行通信,告知媒体网关自己的解码能力。一种情况下,媒体网关通过解析SPS中的部分信息发现当前码流对解码能力的要求超过解码设备所能支持的解码能力,则可以选择不将码流发送给解码器。另一种情况下,如果媒体网关通过解析SPS中的部分信息发现尽管完整码流所要求的解码能力超过解码设备所支持的解码能力但部分时间层码流所要求的解码能力在解码设备所支持的解码能力范围之内,则媒体网关可以选择丢弃部分时间层码流,而只将余下部分时间层码流发送给解码设备,以节省传输带宽。上述解码设备或媒体网关进行时间层码流抽取操作的前提是通过解码SPS中部分语法元素获得相关信息,从而确定解码设备所能够支持的时间层码流。在SPS中,与时间层码流抽取操作相关的语法元素可以分为三类,在本实施例中分别记为第一类语法元素、第二类语法元素以及第三类语法元素。其中,第一类语法元素,是指包含时间层数量信息的语法元素,例如语法元素max_temporal_layers_minus1;第二类语法元素,是指包含每个时间层的码流特征信息的语法元素,例如语法元素max_dec_pic_buffering[i]、num_reorder_pics[i]和max_latency_increase[i],其中,语法元素max_dec_pic_buffering[i]表示解码所有temporal_id不超过i的子码流所需要的解码图像缓存的大小,语法元素num_reorder_pics[i]表示为temporal_id不超过i的子码流中倒置图像的数量,i为时间层的标识;第三类语法元素,是指包含每一幅图像所占用存储空间大小信息的语法元素,例如表示图像宽度的语法元素pic_width_in_luma_samples和表示图像高度的pic_heigh_in_luma_samples,表示图像裁剪信息的语法元素pic_cropping_flag、pic_crop_left_offset、pic_crop_right_offset、pic_crop_top_offset和pic_crop_bottom_offset,以及表示每个采样值各个色度分量位宽的语法元素bit_depth_luma_minus8和bit_depth_chroma_minus。在现有HEVC中,各个时间层均有各自的参数,这些参数在SPS中传递。举例来说,该SPS可以包括以下语法元素:然而,在现有技术中,第一类语法元素、第二类语法元素以及第三类语法元素在SPS中的位置相隔较远。以上述内容举例来说,表示时间层数量的语法元素max_temporal_layers_minus1和表示每个时间层的码流特征信息的语法元素max_dec_pic_buffering[i],num_reorder_pics[i]以及max_latency_increase[i]相隔较远,中间有很多与解码设备或者媒体网关抽取时间层码流操作无关的语法元素,例如pcm_enabled_flag等。此时,解码设备或者媒体网关为抽取每个时间层信息以完成时间层码流抽取操作,需要额外解析这些无关语法元素,会降低解码设备或者媒体网关的处理效率。为解决上述问题,提高解码设备或者媒体网关抽取每个时间层信息的处理效率,本实施例提供如下技术方案:编码设备可以将第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者将第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上。相应地,解码设备或者媒体网关在提取编码设备生成的码流后,可以从该码流中一邻近位置上抽取至少两类语法元素。在具体实现时,上述语法元素在码流中的放置方式至少可以采用下述四种方式实现:第一种方式是,保持第三类语法元素的位置不动,调整现有SPS中的第一类语法元素位置,即将第一类语法元素放置在第二类语法元素之前;采用第一种方式得到的SPS中各语法元素位置关系如下所示:第二种方式是,保持第三类语法元素的位置不动,调整第二类语法元素位置,即将第二类语法元素放置在第一类语法元素之后。采用第二种方式得到的SPS中各语法元素位置关系如下所示:第三种方式,保持第三类语法元素的位置不动,将第一类语法元素和第二类语法元素均调整到中间位置,如将第一类语法元素和第二类语法元素均调整到第三类语法元素之后。采用第三种方式得到的SPS中各语法元素位置关系如下所示:第四种方式,是将第三类语法元素放置在第一类语法元素之后,而将第二类语法元素放置在第三类语法元素之后。采用第四种方式得到的SPS中各语法元素位置关系如下所示:本实施例中,解码设备或者媒体网关可以提取编码设备生成的码流,该码流中,第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上,因此,解码设备或者媒体网关在抽取每个时间层信息时,无需额外解析其他无关的语法元素,而是可以连续地将每个时间层信息的全部语法元素都抽取出来,从而提高了时间层信息的处理效率。图4为本发明视频图像码流处理方法实施例四的流程图,如图4所示,本实施例的方法可以包括:步骤401、提取编码设备产生的码流中的语法元素max_dec_pic_buffering_diff[i]和num_reorder_pics_diff[i],其中,语法元素max_dec_pic_buffering_diff[i]表示解码时间层标识不超过i的子码流所需要的解码图像缓存的大小与解码时间层标识不超过i-1的子码流所需要的解码图像缓存的大小的差值,语法元素num_reorder_pics_diff[i]表示时间层标识不超过i的子码流中倒置图像的数量与时间层标识不超过i-1的子码流中倒置图像的数量的差值;步骤402、若i为0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=max_dec_pic_buffering_diff[i];NumReorderPics[i]=num_reorder_pics_diff[i];步骤403、若i大于0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=MaxDecPicBuffering[i-1]+max_dec_pic_buffering_diff[i];NumReorderPics[i]=NumReorderPics[i-1]+num_reorder_pics_diff[i];其中,MaxDecPicBuffering[i]表示假设参考解码器(HypotheticalReferenceDecoder,以下简称:HRD)的DPB针对第i个时间层码流所要求的存储空间大小,NumReorderPics[i]表示第i个时间层码流中的时序倒置图像的最大数量。所述第i个时间层码流与所述时间层标识不超过i的子码流含义相同,指去除原码流中所有temporal_id大于i的NALU所得到的子码流。由上述图3所示方法实施例三中的描述可知,语法元素max_dec_pic_buffering[i]表示解码所有temporal_id不超过i的子码流所需要的解码图像缓存的大小,因此,语法元素max_dec_pic_buffering[i]的值是非减的,即max_dec_pic_buffering[i]≥max_dec_pic_buffering[i-1]。也即,不会出现解码temporal_id不超过i的图像所需要的解码图像缓存大小,小于解码temporal_id不超过i-1的图像所需要的解码图像缓存大小的情况。同理,语法元素num_reorder_pics[i]表示temporal_id不超过i的子码流中倒置图像的数量,因此,语法元素num_reorder_pics[i]的值也是非减的。因此,本实施例利用语法元素max_dec_pic_buffering[i]的值和语法元素num_reorder_pics[i]的值均是非减的这一特性,对这两个语法元素进行差分编码,以减少表示SPS中的语法元素max_dec_pic_buffering和语法元素num_reorder_pics所需要的比特,从而提高压缩效率。具体地实施方式可以为:使用语法元素max_dec_pic_buffering_diff[i]和num_reorder_picsdiff[i]分别替代现有的语法元素max_dec_pic_buffering[i]和num_reorder_pics[i]。使用变量MaxDecPicBuffering[i]表示HR的DPB针对第i个时间层码流所要求的存储空间大小,该存储空间大小以图像存储空间大小为基本单元计算,例如该MaxDecPicBuffering[i]=2表示DPB存储空间大小为2幅图像所需的存储空间大小。使用变量NumReorderPics[i]表示第i个时间层码流中的时序倒置图像的最大数量。当i为0时:MaxDecPicBuffering[i]=max_dec_pic_buffering_diff[i]NumReorderPics[i]=num_reorder_pics_diff[i];当i>0时:MaxDecPicBuffering[i]=MaxDecPicBuffering[i-1]+max_dec_pic_buffering_diff[i]NumReorderPics[i]=NumReorderPics[i-1]+num_reorder_pics_diff[i]本实施例中,利用表示解码时间层标识不超过i的子码流所需要的解码图像缓存的大小的语法元素的值和表示时间层标识不超过i的子码流中倒置图像的数量的语法元素的值均是非减的这一特性,对这两个语法元素进行差分编码,以减少表示SPS中的语法元素所需要的比特,从而提高压缩效率。本发明解码设备实施例一中,解码设备可以包括:提取模块,该提取模块,用于提取编码设备产生的码流,所述码流中包含纯净随机访问CRA图像信息所述CRA图像信息满足CRA图像的约束条件且所述约束条件包括CRA图像必须为参考图像。在具体实现时,提取模块,具体用于提取所述编码设备产生的网络抽象层单元NALU,所述NALU的头字段中的语法元素nal_unit_type指示该NALU中包含CRA图像信息,所述约束条件,包括:所述NALU的头字段中的语法元素nal_ref_flag必须为1。本实施例的解码设备用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。图5为本发明解码设备实施例二的结构示意图,如图5所示,本实施例的解码设备,可以包括:第一确定模块21、处理模块22以及第二确定模块23,其中,第一确定模块21,用于确定激活图像中依次解码的图像的图片顺序编号POC是否按照非降序排列,所述激活图像包括当前图像以及解码图像缓存DPB中所有被标记用作短期参考的图像和等待输出的图像;处理模块22,用于若是按照非降序排列,则采用如下方法确定所述当前图像的POC重要比特位POCMsb:从码流中获取当前图像的POC非重要比特位POCLsb;如果所述当前图像的POCLsb小于之前图像的POCLsb,则当前图像的POCMsb等于之前图像的POCMsb与最大POCLsb之和,其中最大POCLsb=2N,N为POCLsb的位宽;否则,所述当前图像的POCMsb等于prevPicOrderCntMsb;第二确定模块23,用于根据所述当前图像的POCMsb以及所述当前图像的POCLsb,确定所述当前图像的POC。在具体实现时,第一确定模块21,具体用于根据序列参数集SPS中表示时序倒置图像的最大数量的语法元素num_reorder_pics的取值来确定所述激活图像中依次解码的图像的POC是否按照非降序排列。本实施例的解码设备用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。图6为本发明处理设备实施例的结构示意图,如图6所示,本实施例的设备,可以包括:提取模块31、抽取模块32,其中,提取模块31,用于提取编码设备产生的码流,其中,第一类语法元素与第二类语法元素放置在所述码流中的邻近位置上,或者第二类语法元素与第三类语法元素放置在所述码流中的邻近位置上,所述第一类语法元素是指包含时间层数量信息的语法元素,所述第二类语法元素是指包含每个时间层的码流特征信息的语法元素,所述第三类语法元素是指包含每一幅图像所占用存储空间大小信息的语法元素;抽取模块32,用于从所述码流的所述邻近位置上抽取至少两类语法元素。在具体实现时,第二类语法元素和第三类语法元素在所述码流中的位置不变,所述第一类语法元素放置在所述第二类语法元素之前;或者,所述第一类语法元素和第三类语法元素在所述码流中的位置不变,所述第二类语法元素放置在所述第一类语法元素之后;或者,所述第三类语法元素在所述码流中的位置不变,所述第一类语法元素和第二类语法元素放置在所述码流的中间位置;或者,所述第三类语法元素放置在所述第一类语法元素之后,所述第二类语法元素放置在所述第三类语法元素之后。而且,本实施例的处理设备可以是解码设备,例如终端设备中的解码器,也可以是媒体网关。本实施例的处理设备用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。图7为本发明解码设备实施例三的结构示意图,如图7所示,本实施例的设备,可以包括:提取模块41、差分解码模块42,其中,提取模块41,用于提取编码设备产生的码流中的语法元素max_dec_pic_buffering_diff[i]和num_reorder_pics_diff[i],其中,语法元素max_dec_pic_buffering_diff[i]表示解码时间层标识不超过i的子码流所需要的解码图像缓存的大小与解码时间层标识不超过i-1的子码流所需要的解码图像缓存的大小的差值,语法元素num_reorder_pics_diff[i]表示时间层标识不超过i的子码流中倒置图像的数量与时间层标识不超过i-1的子码流中倒置图像的数量的差值;差分解码模块42,用于若i为0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=max_dec_pic_buffering_diff[i];NumReorderPics[i]=num_reorder_pics_diff[i];若i大于0,采用下述方式得到MaxDecPicBuffering[i]和NumReorderPics[i]:MaxDecPicBuffering[i]=MaxDecPicBuffering[i-1]+max_dec_pic_buffering_diff[i];NumReorderPics[i]=NumReorderPics[i-1]+num_reorder_pics_diff[i];其中,MaxDecPicBuffering[i]表示假设参考解码器HRD的DPB针对第i个时间层码流所要求的存储空间大小,NumReorderPics[i]表示第i个时间层码流中的时序倒置图像的最大数量。所述第i个时间层码流与所述时间层标识不超过i的子码流含义相同,指去除原码流中所有temporal_id大于i的NALU所得到的子码流。本实施例的解码设备用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1