欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种编码模式的确定方法、装置、服务器和存储介质独创技术48127字

一种编码模式的确定方法、装置、服务器和存储介质

2021-03-18 22:20:02

一种编码模式的确定方法、装置、服务器和存储介质

  技术领域

  本发明实施例涉及视频转码技术领域,尤其涉及一种编码模式的确定方法、装置、设备和存储介质。

  背景技术

  随着互联网技术的快速发展,伴随着用户对高清视频的需求增加,多媒体资源交互的视频数据量也在不断增大,此时通常采用视频压缩解码技术有效取出视频数据中的冗余信息,实现视频数据在互联网中的快速传输和离线存储。而为了适应不同观众的带宽和设备情况,服务端会对源流视频进行不同分辨率不同码率下的转码,将转码后的视频分发给对应观众下载;现有的转码过程包括源流解码、缩放到转码指定的分辨率和重新编码三部分,此时在同一转码分辨率下,如果编码复杂度越高,会使编码质量越好,但编码耗时也会更长,而编码耗时过长会导致观众播放该视频出现卡顿,因此在保证高质量编码的基础上,还需要提高编码速度,以降低视频转码过程中的编码耗时。

  目前,通常采用高效率视频编码(High Efficiency Video Coding,HEVC)的方式实现源流视频在不同码率下的快速转码,在HEVC编码中双向预测编码帧和前向预测编码帧下的每个编码块都存在多种预测编码模式,例如帧内预测编码模式下的INTRA_2Nx2N、INTRA_NxN和脉冲编码调制(Pulse Code Modulation,PCM)等,帧间预测编码模式下根据宏块的划分情况确定的INTER_2Nx2N、INTER_2NxN、INTER_Nx2N、INTER_NxN、INTER_2NxnU、INTER_2NxnD、INTER_nLx2N和INTER_nRx2N等,以及特殊帧间预测编码下的Merge模式和skip模式等。

  因此,在对同一源视频流进行多路转码时,对于每一递归深度下的各个编码单元,均需要遍历计算编码单元在该递归深度对应的每一预测编码模式下的率失真代价,以及该编码单元划分后的每一变换单元在每一预测编码模式下的率失真代价,进而为该编码单元筛选出代价最小的最优编码模式;此时在每一递归深度下,均需要计算各个编码单元在每一预测编码模式下的率失真代价,造成大量的计算负担,增加了视频转码过程中的编码开销。

  发明内容

  本发明实施例提供了一种编码模式的确定方法、装置、设备和存储介质,降低了视频编码的计算开销,保证视频编码的高效性。

  第一方面,本发明实施例提供了一种编码模式的确定方法,该方法包括:

  基于每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定所述目标编码单元在该编码深度下的适配预测模式和深度划分指示;

  从该编码深度下的各所述适配预测模式和所述深度划分指示面向的编码划分模式中,确定使所述目标编码单元的编码代价达到最优的目标编码模式。

  第二方面,本发明实施例提供了一种编码模式的确定装置,该装置包括:

  编码适配模块,用于基于每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定所述目标编码单元在该编码深度下的适配预测模式和深度划分指示;

  编码模式确定模块,用于从该编码深度下的各所述适配预测模式和所述深度划分指示面向的编码划分模式中,确定使所述目标编码单元的编码代价达到最优的目标编码模式。

  第三方面,本发明实施例提供了一种服务器,该服务器包括:

  一个或多个处理器;

  存储装置,用于存储一个或多个程序;

  当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的编码模式的确定方法。

  第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的编码模式的确定方法。

  本发明实施例提供的一种编码模式的确定方法、装置、服务器和存储介质,在实现多码率下的视频转码时,基准视频帧在某一码率下已经完成编码,因此其他码率下的视频转码可以参考该基准视频帧的编码情况,此时通过查找每一编码深度下的目标编码单元在对应基准视频帧内的各个映射编码单元,而参考各个映射编码单元的基准编码参数,可以确定出该目标编码单元在该编码深度下的适配预测模式和深度划分指示,该深度划分指示能够表示该目标编码单元在该编码深度下是否需要继续划分,以判断该目标编码单元在该编码深度下是否存在编码划分模式,进而从该编码深度下的各适配预测模式和深度划分指示面向的编码划分模式中,确定使目标编码单元的编码代价达到最优的目标编码模式,此时不再考虑其他非适配预测模式和不必要的划分情况对该目标编码单元的编码影响,也就是不再计算该目标编码单元在非适配预测模式和不必要的编码划分模式下的编码代价,极大降低了视频编码过程中的编码开销,从而利用基准视频帧的基准编码参数,为其他码率下目标编码单元进行编码指引,在保证目标编码单元的编码质量的基础上,降低了目标编码单元的编码复杂度,提高了目标编码单元的编码效率。

  附图说明

  通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

  图1A为本发明实施例一提供的一种编码模式的确定方法的流程图;

  图1B为本发明实施例一提供的编码模式的确定过程的原理示意图;

  图2A为本发明实施例二提供的一种编码模式的确定方法的流程图;

  图2B为本发明实施例二提供的方法中对目标编码单元的目标编码模式的确定过程的原理示意图;

  图3A为本发明实施例三提供的一种编码模式的确定方法的流程图;

  图3B为本发明实施例三提供的方法中目标编码单元在该编码深度下的适配预测模式和深度划分指示的确定过程的原理示意图;

  图4为本发明实施例四提供的一种编码模式的确定装置的结构示意图;

  图5为本发明实施例五提供的一种服务器的结构示意图。

  具体实施方式

  下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

  实施例一

  图1A为本发明实施例一提供的一种编码模式的确定方法的流程图,本实施例可适用于对任一视频存在多码率编码需求的场景中。本实施例提供的编码模式的确定方法可以由本发明实施例提供的编码模式的确定装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中,该服务器可以是参与视频数据交互的后台服务器。

  具体的,参考图1A,该方法可以包括如下步骤:

  S110,基于每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定目标编码单元在该编码深度下的适配预测模式和深度划分指示。

  具体的,在互联网中通常采用视频压缩编码技术对视频数据进行快速传输和离线存储,而为了适应不同观众的带宽和设备情况,针对其他用户(如主播等)向服务端上传的各个上传视频,服务端需要对该上传视频进行不同分辨率不同码率下的转码,进而将上传视频在多码率下转码后的视频分发给对应观众进行下载播放,此时为了便于上传视频在多路码率下的快速转码,服务器会按照每一待转码率对上传视频中的各个视频帧进行对应的缩放操作,从而分别转换成对应的多路源视频,且每一路源视频仅对应一个待转码率,后续在每一待转码率下转码时,可以直接将多路源视频中在该待转码率下的一路源视频进行对应编码即可。然而,多路源视频在分别进行对应编码时会存在极大的计算开销,而多路源视频属于不同分辨率下的同一视频内容,因此为了提高多码率转码下的视频编码效率,本实施例中可以根据转码需求从多路源视频中筛选出一路源视频,以采用现有的视频压缩编码技术对该路源视频预先执行一次编码,进而将该路源视频完成编码后的视频中的每一视频帧均作为多路源视频中还未完成编码的其他源视频中各个视频帧在进行编码时需要对应参考的基准视频帧,此时该基准视频帧下所采用的编码模式能够保证源视频的编码质量较高,而且,未完成编码的其他多路源视频与基准视频属于同一视频内容在不同分辨率下的不同显示,说明基准视频中各基准视频帧的编码模式在一定程度上也适用于其他多路源视频中对应视频帧的编码,因此本实施例会充分利用基准视频帧所采用的编码参数对其他多路源视频中对应视频帧的编码进行有效指引。

  需要说明的是,由于多路源视频内的各个视频帧均是由同一上传视频内的各个视频帧按照对应待转码率的不同而执行不同的缩放操作得到,因此多路源视频内未完成编码的其他源视频内的各个视频帧和基准视频内具有相同视频内容的对应基准视频帧之间的分辨率会呈一定比例。

  同时,目前视频编码通常以编码单元(Coding Unit,CU)为基本单位进行编码的,而编码单元CU存在64*64、32*32、16*16和8*8四种尺寸,在视频编码过程中需要从最大尺寸下的编码单元开始,不断进行四叉树递归尝试,直至递归到最小尺寸下的编码单元,从而在每一尺寸下递归前后的编码单元中选取出最优效率的编码单元,此时根据编码单元的递归情况,会存在不同的编码深度,且不同编码深度下的编码单元尺寸不同,例如64*64尺寸的编码单元CU所处的编码深度为0,每向下递归一次编码深度加1,8*8尺寸的编码单元CU所处的编码深度为3。

  本实施例中,为了实现多路源视频中每一视频帧的成功编码,在对某一路源视频中的当前视频帧进行编码时,首先需要按照每一编码深度确定出该当前视频帧在该编码深度对应的特定尺寸下的各个目标编码单元,可以理解为,按照每一编码深度对应的尺寸,分别对该当前视频帧进行划分,得到每一编码深度下的目标编码单元,后续以各个目标编码单元为单位,对当前视频帧中的逐个目标编码单元分别进行编码,从而实现该当前视频帧的成功编码,此时对于当前视频帧中该编码深度下的每一目标编码单元来说,由于多路源视频转换时的缩放比例不同,因此该目标编码单元在基准视频的对应基准视频帧内会对应有不同的映射编码单元,本实施例中的基准视频帧可以为基准视频内与该目标编码单元所在的视频帧具有相同视频内容的视频帧,也就是通过判断目标编码单元所在的视频帧内存在的视频内容,从基准视频中筛选出具有相同视频内容的视频帧,作为本实施例中该目标编码单元的对应基准视频帧,进而如图1B所示,针对每一编码深度下的各个目标编码单元,可以按照该目标编码单元所在的视频帧与该目标编码单元的对应基准视频帧之间的分辨率比例,对每一目标编码单元进行对应映射,从而确定出该目标编码单元在对应基准视频帧内的各个映射编码单元,同时根据该对应基准视频帧所采用的编码信息,确定出各个映射编码单元的基准编码参数,该基准编码参数能够指示出各个映射编码单元在确保编码质量较高下的编码时所采用的预测单元(Prediction Unit,PU)的最优PU预测模式、编码代价预测时采用的最佳参考帧以及最佳运动矢量等,此时由于对应基准视频帧中各个映射编码单元与该目标编码单元的视频内容大致相同,使得各个映射编码单元的基准编码参数在一定程度上也适用于该目标编码单元的编码,且能够保证该目标编码单元的编码质量,因此通过参考对应基准视频帧内各个映射编码单元在编码时所采用的各项基准编码参数对不同预测模式的适合程度,以及各个映射编码单元在编码时的递归划分情况,可以确定出该目标编码单元在该编码深度下的适配预测模式和深度划分指示,此时该适配预测模式为该目标编码单元在该编码深度下预测编码代价时可能采用的预测模式,该深度划分指示能够表示该目标编码单元在该编码深度下是否需要继续进行递归划分,后续仅按照该适配预测模式和深度划分指示的要求计算对应模式下的编码代价,无需在每一递归深度下,对目标编码单元在每一预测编码模式下的编码代价进行计算,极大减少了编码过程中的计算开销。

  需要说明的是,每个编码单元都存在多种预测模式,例如帧内预测模式下的INTRA_2Nx2N、INTRA_NxN和PCM等,帧间预测模式下的INTER_2Nx2N、INTER_2NxN、INTER_Nx2N、INTER_NxN、INTER_2NxnU、INTER_2NxnD、INTER_nLx2N和INTER_nRx2N等,以及特殊帧间预测编码下的Merge模式和skip模式等,本实施例中参考目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,可以筛选出对应的适配预测模式来执行编码代价的计算。

  同时,由于在视频编码过程中需要从最大尺寸下的编码单元开始,不断进行四叉树递归尝试,直至递归到最小尺寸下的编码单元,因此针对每一编码深度下的目标编码单元,如果该编码深度为初始编码深度,也就是该编码深度为0,那么该编码深度下的目标编码单元为对当前视频帧按照64*64尺寸进行划分后得到的各个编码单元,而如果该编码深度为非初始编码深度,也就是在四叉树递归过程中除编码深度为0外的其他编码深度,则该编码深度下的目标编码单元可以包括该编码深度相邻的上一编码深度下的目标编码单元按照上一编码深度下的深度划分指示进行划分后得到的各划分子单元,例如编码深度为0时,存在2个64*64尺寸下的目标编码单元,而其中1个64*64尺寸下的目标编码单元按照深度划分指示可以划分出4个32*32尺寸下的划分子单元,此时4个32*32尺寸下的划分子单元则为编码深度为1时存在的目标编码单元。而且,编码单元CU的尺寸是从64*64不断划分到8*8,也就是说最小的编码单元CU的尺寸是8*8,64*64尺寸下的编码单元可以不进行划分,直接对整个64*64尺寸下的编码块进行预测,而对于8*8尺寸下的编码单元CU来说,因为是最小编码单元尺寸,所以是不会继续划分的,但是由于编码单元CU所采用预测单元(Prediction Unit,PU)的最小尺寸为4*4,所以8*8尺寸下的编码单元CU在当前编码深度下进行预测的时候,会存在不同的预测模式,比如NxN,就会划分出4*4尺寸的预测块。

  S120,从该编码深度下的各适配预测模式和深度划分指示面向的编码划分模式中,确定使目标编码单元的编码代价达到最优的目标编码模式。

  具体的,在确定出每一编码深度下的目标编码单元在该编码深度下的适配预测模式和深度划分指示之后,首先在该目标编码单元划分前的该编码深度下,分别计算出该目标编码单元采用每一适配预测模式编码时所产生的编码代价,无需再考虑其他非适配预测模式对该目标编码单元的编码影响,也就是不再计算该目标编码单元在非适配预测模式下的编码代价;同时,按照该目标编码单元在该编码深度下的深度划分指示,判断该目标编码单元是否需要继续划分到该编码深度相邻的下一编码深度下,在需要划分时确定出该深度划分指示面向的编码划分模式,进而再次计算出该目标编码单元采用该编码划分模式下各个划分后单元编码时所产生的编码代价,并将各划分后单元的编码代价之和作为该目标编码单元在该编码划分模式下的编码代价,此时如果确定该目标编码单元不需要进行划分,则不需要计算各个划分后单元的编码代价,不再考虑不必要的划分情况对该目标编码单元的编码影响,也就是不再计算该目标编码单元在不必要的编码划分模式下的编码代价,极大降低了视频编码过程中的编码开销,进而根据目标编码单元在各个适配预测模式和深度划分指示面向的编码划分模式下的编码代价,可以确定出使该目标编码单元的编码代价达到最优的目标编码模式,从而充分利用每一目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,为该目标编码单元进行编码指引,在保证编码质量的基础上,降低了目标编码单元的编码复杂度,从而提高了目标编码单元的编码效率。

  需要说明的是,由于目标编码单元在该编码深度下的深度划分指示可能准确表示出该目标编码单元必须划分到该编码深度相邻的下一编码深度,那么说明该目标编码单元一定不会采用该编码深度下的各适配预测模式进行编码,因此本实施例在此类情况下,可以无需计算目标编码单元在该编码深度下的采用每一适配预测模式编码时的编码代价,直接确定使目标编码单元的编码代价达到最优的目标编码模式为该深度划分指示面向的编码划分模式,也就是将目标编码单元划分为4个小编码单元,进一步降低视频编码过程中的编码开销。

  同时,现有采用不同预测模式计算编码代价时,通常需要参靠对应的搜索帧,本实施例中设定目标编码单元在采用各预测模式预测对应编码代价时参考的搜索帧候选集合由各映射编码单元的最佳参考帧组成,无需从对应源视频中逐一筛选该目标编码单元所参考的搜索帧,简化了编码代价的计算流程,从而提高对应的编码效率。

  本实施例提供的技术方案,在实现多码率下的视频转码时,基准视频帧在某一码率下已经完成编码,因此其他码率下的视频转码可以参考该基准视频帧的编码情况,此时通过查找每一编码深度下的目标编码单元在对应基准视频帧内的各个映射编码单元,而参考各个映射编码单元的基准编码参数,可以确定出该目标编码单元在该编码深度下的适配预测模式和深度划分指示,该深度划分指示能够表示该目标编码单元在该编码深度下是否需要继续划分,以判断该目标编码单元在该编码深度下是否存在编码划分模式,进而从该编码深度下的各适配预测模式和深度划分指示面向的编码划分模式中,确定使目标编码单元的编码代价达到最优的目标编码模式,此时不再考虑其他非适配预测模式和不必要的划分情况对该目标编码单元的编码影响,也就是不再计算该目标编码单元在非适配预测模式和不必要的编码划分模式下的编码代价,极大降低了视频编码过程中的编码开销,从而利用基准视频帧的基准编码参数,为其他码率下目标编码单元进行编码指引,在保证目标编码单元的编码质量的基础上,降低了目标编码单元的编码复杂度,提高了目标编码单元的编码效率。

  实施例二

  图2A为本发明实施例二提供的一种编码模式的确定方法的流程图,图2B为本发明实施例二提供的方法中对目标编码单元的目标编码模式的确定过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图2B所示,本实施例主要对于各个目标编码单元采用该编码深度下的各个适配预测模式或者深度划分指示面向的编码划分模式进行编码时所产生的编码代价的具体计算过程进行详细的解释说明。

  可选的,如图2A所示,本实施例中可以包括如下步骤:

  S210,基于每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定目标编码单元在该编码深度下的适配预测模式和深度划分指示。

  S220,预测目标编码单元在每一适配预测模式下的第一编码代价。

  可选的,在充分利用每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定出该目标编码单元在该编码深度下的适配预测模式之后,为了准确得到使目标编码单元的编码代价达到最优的目标编码模式,首先需要采用该目标编码单元在该编码深度下的每一适配预测模式分别对该目标编码单元进行模拟编码,例如帧内预测模式下的INTRA_2Nx2N或INTRA_NxN,或者帧间预测模式下的INTER_2Nx2N、INTER_2NxN或INTER_Nx2N等,从而逐一计算出该目标编码单元在各个适配预测模式下编码时所产生的第一编码代价,以便后续进一步从该编码深度下的多个适配预测模式中选择出能够使目标编码单元的编码代价达到最优的目标编码模式,进而确保目标编码单元的编码效率。

  需要说明的是,本实施例中为了进一步提高目标编码模式的确定效率,本实施例在确定出该目标编码单元在该编码深度下的深度划分指示之后,还会再次判断是否需要计算该目标编码单元在该编码深度下的各个适配预测模式下进行编码时所产生的编码代价,由于该目标编码单元在该编码深度下的深度划分指示可能会准确表示出该目标编码单元必须划分到该编码深度相邻的下一编码深度进行编码,那么说明该目标编码单元一定不会采用该编码深度下的各适配预测模式进行编码,因此本实施例在此类情况下,可以无需计算目标编码单元在该编码深度下采用每一适配预测模式编码时的第一编码代价,也就是忽略S220的执行,直接确定使目标编码单元的编码代价达到最优的目标编码模式为该深度划分指示面向的编码划分模式,也就是直接将目标编码单元划分为4个小编码单元,进一步降低视频编码过程中的编码开销。

  S230,基于所述第一编码代价和所述深度划分指示面向的编码划分模式下的第二编码代价中的至少一项确定使目标编码单元的编码代价达到最优的目标编码模式。

  可选的,在充分利用每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定出该目标编码单元在该编码深度下的深度划分指示之后,能够准确判断出该目标编码单元在该编码深度下是否存在继续划分到该编码深度相邻的下一编码深度的需求,此时存在如下3种划分情况:1)目标编码单元必须划分;2)目标编码单元可以划分,也可以不划分;3)目标编码单元一定不能划分。进而在每一种划分情况下,判断该目标编码单元当前适合的编码模式是否包括该编码深度下的各个适配预测模式和深度划分指示面向的编码划分模式,如果深度划分指示要求目标编码单元需要划分时,还需要进一步计算出该目标编码单元划分后单元的编码代价,将各个划分后单元的编码代价之和作为目标编码单元在深度划分指示面向的编码划分模式下的第二编码代价,从而通过分析该目标编码单元当前适合的编码模式,从各个适配预测模式下的第一编码代价和深度划分指示面向的编码划分模式下的第二编码代价中选择出至少一项用于后续判断编码代价是否达到最优的参考信息,根据所选择出的编码代价大小,从该编码深度下的各适配预测模式和深度划分指示面向的编码划分模式中,确定出能够使目标编码单元的编码代价达到最优的目标编码模式。

  示例性的,本实施例可以针对目标编码单元编码时存在的三种划分情况进行分别说明:

  在第1)种划分情况中,目标编码单元在该编码深度下的深度划分指示要求该目标编码单元必须划分到该编码深度相邻的下一编码深度下进行编码,说明该深度划分指示面向的编码划分模式为非空,那么需要将目标编码单元划分出该编码深度相邻的下一编码深度下的划分子单元,并预测各划分子单元组合后的第二编码代价;可以理解的是,如果该深度划分指示面向的编码划分模式为非空,则直接将该目标编码单元划分出该编码深度相邻的下一编码深度下的4个划分子单元,同时计算每一划分子单元编码时所产生的编码代价,进而将划分子单元的编码代价之和作为该目标编码单元在编码划分模式下的第二编码代价;需要说明的是,本实施例中对于每一划分子单元编码时所产生的编码代价的计算,可以将该划分子单元作为本实施例中下一编码深度下的目标编码单元,采用上述描述的该编码深度下的目标编码单元的编码代价的计算步骤,来计算各个划分子单元的编码代价。

  在2)种划分情况中,目标编码单元在该编码深度下的深度划分指示要求该目标编码单元可以划分到该编码深度相邻的下一编码深度下进行编码,也可以不划分而直接在该编码深度下进行编码,此时该深度划分指示面向的编码划分模式也为非空,因此也需要将目标编码单元划分出该编码深度相邻的下一编码深度下的划分子单元,并预测各划分子单元组合后的第二编码代价。

  此时,在第1)种划分情况和第2)种划分情况中,该深度划分指示面向的编码划分模式均为非空,但是对于目标编码单元是否需要采用该编码深度下的适配预测模式进行编码的需求不同,因此可以至少根据目标编码单元在该深度划分指示面向的编码划分模式下的第二编码代价,来确定能够使目标编码单元的编码代价达到最优的目标编码模式。例如,在第1)种划分情况中,目标编码单元在该编码深度下的深度划分指示要求该目标编码单元必须划分到该编码深度相邻的下一编码深度下进行编码,说明目标编码单元不会采用该目标编码单元在该编码深度下的各个适配预测模式进行编码,因此仅需要根据目标编码单元在该深度划分指示面向的编码划分模式下的第二编码代价,来确定能够使目标编码单元的编码代价达到最优的目标编码模式;而在第2)种划分情况中,目标编码单元在该编码深度下的深度划分指示要求该目标编码单元可以划分到该编码深度相邻的下一编码深度下进行编码,也可以不划分而直接在该编码深度下进行编码,说明该目标编码单元既可能采用该编码深度下的各个适配预测模式进行编码,也可能采用深度划分指示面向的编码划分模式进行编码,因此需要根据目标编码单元在每一适配预测模式下的第一编码代价以及目标编码单元在该深度划分指示面向的编码划分模式下的第二编码代价,共同来确定能够使目标编码单元的编码代价达到最优的目标编码模式。

  在第3)种划分情况中,目标编码单元在该编码深度下的深度划分指示要求该目标编码单元不允许划分到该编码深度相邻的下一编码深度下进行编码,只能采用该编码深度下的各个适配预测模式进行编码,说明该深度划分指示面向的编码划分模式为空,那么只需要根据目标编码单元在每一适配预测模式下的第一编码代价,来确定出能够使目标编码单元的编码代价达到最优的目标编码模式。

  需要说明的是,本实施例中的S220和S230分别对目标编码单元在该编码深度下的各个适配预测模式和深度划分指示面向的编码划分模式下的编码代价进行计算,不存在特定的先后顺序,因此对于S220和S230的执行顺序不作限定,可以先后执行,也可以同时执行。

  S240,依次整合每一编码深度下目标编码单元的目标编码模式,得到最优编码代价下的整体编码模式。

  可选的,在确定出每一编码深度下各目标编码单元的目标编码模式之后,该目标编码模式能够使对应目标编码单元的编码代价达到最优,此时对于每一相邻编码深度而言,该相邻编码深度对中的上一编码深度下的目标编码单元划分后的各划分子单元的尺寸与该相邻编码深度对中的下一编码深度下的目标编码单元的尺寸相同,因此可以依次对同一编码深度下存在的由上一编码深度下的目标编码单元划分出的该编码深度下的各个划分子单元,以及该编码深度下目标编码单元的目标编码模式进行编码代价最优化整合,从而得到最优编码代价下的整体编码模式。

  本实施例提供的技术方案,通过查找每一编码深度下的目标编码单元在对应基准视频帧内的各个映射编码单元,而参考各个映射编码单元的基准编码参数,可以确定出该目标编码单元在该编码深度下的适配预测模式和深度划分指示,以根据该适配预测模式和深度划分指示准确跳过该目标编码单元在非适配预测模式和不必要的划分情况下的编码代价计算步骤,极大降低了视频编码过程中的编码开销,从而利用基准视频帧的基准编码参数,为其他码率下目标编码单元进行编码指引,在保证目标编码单元的编码质量的基础上,降低了目标编码单元的编码复杂度,提高了目标编码单元的编码效率。

  实施例三

  图3A为本发明实施例三提供的一种编码模式的确定方法的流程图,图3B为本发明实施例三提供的方法中目标编码单元在该编码深度下的适配预测模式和深度划分指示的确定过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图3A所示,本实施例对于每一编码深度下的目标编码单元在该编码深度下的适配预测模式和深度划分指示的具体确定过程进行详细的解释说明。

  可选的,如图3A所示,本实施例中可以包括如下步骤:

  S310,基于目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,计算目标编码单元的编码参考深度和预测适配参考项。

  可选的,在确定出目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数之后,该基准编码参数中可以包括各个映射编码单元所采用的当前编码深度、最优预测模式以及该最优预测模式下采用的最佳参考帧和最佳运动矢量,此时由于目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数也适用于该目标编码单元的最优编码,因此本实施例中可以将各个映射编码单元所采用的当前编码深度下的平均编码深度,作为该目标编码单元的编码参考深度,然而由于各个映射编码单元的尺寸可能不同,使得各个映射编码单元与该目标编码单元相对来说的映射面积占比也不相同,如图3B所示,因此本实施例可以将各个映射编码单元在相对于该目标编码单元下的映射面积占比作为对应权重,然后对每一映射编码单元所采用的当前编码深度进行加权平均计算,从而得到该目标编码单元的编码参考深度,通过pred_avgDepth来表示,以便后续根据编码参考深度,确定目标编码单元在该编码深度下的深度划分指示。

  同时,通过预先分析现有编码技术中存在的各个已有预测模式在编码时可以跳过,不进行编码代价预测的相关参数,可以为各个已有预测模式设定对应的适配条件,通过目标编码单元的预测适配参考项来分析各个已有预测模式是否满足对应的适配条件,此时本实施例中的预测适配参考项可以包括目标编码单元在对应基准视频帧内各个映射编码单元下的跳过宏块模式占比(也就是skip模式占比)和在特定帧间预测模式下各预测区域的运动参考矢量,该特定帧间预测模式可以仅为帧间预测模式下的INTER_2NxN和INTER_Nx2N两种模式,会按照对应的不同划分格式将目标编码单元在该编码深度下划分成上下或者左右两个区域进行编码,后续通过判断各个预测适配参考项是否符合对应的适配条件,来确定目标编码单元在该编码深度下的适配预测模式。

  S320,根据编码参考深度,确定目标编码单元在该编码深度下的深度划分指示。

  可选的,为了使目标编码单元尽可能采用与各个映射编码单元组合后的整体编码模块相同的编码模式进行编码,以提高目标编码单元的编码效率,本实施例可以通过判断目标编码单元当前所处的该编码深度与由各个映射编码单元实际采用的当前编码深度所确定的编码参考深度之间的差异,来分析目标编码单元在该编码深度下是否需要继续划分到该编码深度相邻的下一编码深度下,以确保目标编码单元最终采用的编码模式与各个映射编码单元的编码模式之间的相似程度,从而充分利用各个映射编码单元的基准编码参数,提高目标编码单元编码时的划分准确性。

  示例性的,目标编码单元当前所处的该编码深度表示为depth,此时如果目标编码单元的该编码深度满足depth<pred_avgDepth-2,说明目标编码单元当前所处的该编码深度较高于编码参考深度,必须要进行划分,此时由于一定不会在该编码深度下进行编码,因此无需计算目标编码单元在该编码深度下的各个预测模式下的编码代价,直接将目标编码单元划分出该编码深度相邻的下一编码深度下的4个划分子单元即可,后续将划分后的4个划分子单元作为下一编码深度下的目标编码单元来计算对应的编码代价;而如果目标编码单元的该编码深度满足depth>pred_avgDepth+2,说明目标编码单元当前所处的该编码深度较低于编码参考深度,此时不可以继续划分,因此仅需要计算目标编码单元在该编码深度下的各个预测模式下的编码代价即可;如果目标编码单元的该编码深度满足pred_avgDepth-2<depth<pred_avgDepth+2,说明目标编码单元当前所处的该编码深度与编码参考深度相差不大,此时目标编码单元可以划分,也可以不划分,因此需要计算目标编码单元在该编码深度下的各个预测模式下的编码代价和划分后的4个划分子单元在下一编码深度下的编码代价。

  S330,根据预测适配参考项,确定目标编码单元在该编码深度下的适配预测模式。

  可选的,在充分利用各个映射编码单元的基准编码参数,计算出目标编码单元的预测适配参考项之后,可以通过判断各个预测适配参考项是否能够使目标编码单元在该编码深度下的各个已有预测模式符合对应的适配条件,进而筛选出在该编码深度下各个预测适配参考项符合对应适配条件时的已有预测模式作为本实施例中目标编码单元在该编码深度下的适配预测模式,后续仅需要计算目标编码单元在各个适配预测模式下的编码代价即可。

  示例性的,预测适配参考项中的跳过宏块(skip)模式占比可以表示各个映射编码单元采用skip模式进行编码的比例,而预测适配参考项中在特定帧间预测模式下各预测区域的运动参考矢量,能够通过各预测区域的运动参考矢量之间的距离来表示是否适合采用该预测区域划分方式下的特定帧间预测模式进行编码,此时在计算特定帧间预测模式下各预测区域的运动参考矢量时,可以将各个映射编码单元在对应预测区域下所占的映射面积占比作为该映射编码单元的运动权重,并对各个映射编码单元所采用的最佳运动矢量进行加权平均计算,也就是对各个映射编码单元所采用的最佳运动矢量进行对应的缩放操作后,再计算运动矢量平均值,作为目标编码单元在特定帧间预测模式下各预测区域的运动参考矢量。

  此时,本实施例中根据预测适配参考项,确定目标编码单元在该编码深度下的适配预测模式,可以具体包括:如果跳过宏块模式占比为预设全占比值,则确定目标编码单元在该编码深度下的适配预测模式为跳过宏块模式;如果跳过宏块模式占比为非预设全占比值,且跳过宏块模式占比超出预设占比上限,则确定目标编码单元在该编码深度下的适配预测模式中排除帧间预测模式中的非对称分割模式。

  具体的,如果skip模式占比为预设全占比值,说明各个映射编码单元均采用skip模式进行编码,那么目标编码单元在该编码深度下也一定会采用skip模式进行编码,因此可以直接确定目标编码单元在该编码深度下的适配预测模式为跳过宏块模式;而如果跳过宏块模式占比为非预设全占比值,但是跳过宏块模式占比超出预设占比上限,说明各个映射编码单元中大多数映射编码单元采用skip模式进行编码,而skip模式与帧间预测模式中的非对称分割模式所面向的编码内容差异较大,因此在跳过宏块模式占比超出预设占比上限时,可以确定目标编码单元在该编码深度下的适配预测模式中不会存在帧间预测模式中的非对称分割模式,使得后续无需计算目标编码单元在非对称分割模式下的编码代价。此外,对于特定帧间预测模式,如INTER_2NxN和INTER_Nx2N,会将目标编码单元分成上下或者左右的2个预测区域进行编码,此时首先会根据各个映射编码模块所采用的最佳运动矢量,分别计算出目标编码单元在INTER_2NxN模式下的各个预测区域内的运动参考矢量,以及INTER_Nx2N模式下的各个预测区域内的运动参考矢量,此时针对INTER_2NxN模式,会计算上下两个预测区域内的运动参考矢量之间的距离,如果该距离大于一定阈值,说明目标编码单元在INTER_2NxN和INTER_Nx2N中,极有可能选择INTER_2NxN模式进行编码,因此确定目标编码单元在该编码深度下的适配预测模式中不存在INTER_Nx2N模式;相似的,如果INTER_Nx2N模式下的左右两个预测区域内的运动参考矢量之间的距离大于一定阈值,说明目标编码单元在INTER_2NxN和INTER_Nx2N中,极有可能选择INTER_Nx2N模式进行编码,因此确定目标编码单元在该编码深度下的适配预测模式中不存在INTER_2NxN模式;否则目标编码单元在该编码深度下的适配预测模式中会包括INTER_2NxN和INTER_Nx2N。

  需要说明的是,本实施例根据目标编码单元在该编码深度下的深度划分指示确定出目标编码单元必须划分到该编码深度相邻的下一编码深度下时,说明目标编码单元一定不会在该编码深度下进行编码,也就不会计算目标编码单元在该编码深度的各个预测模式下的编码代价,因此为了进一步提高目标编码单元的编码效率,本实施例可以忽略S330,不再确定目标编码单元在该编码深度下的适配预测模式。

  S340,从该编码深度下的各适配预测模式和深度划分指示面向的编码划分模式中,确定使目标编码单元的编码代价达到最优的目标编码模式。

  本实施例提供的技术方案,充分利用每一编码深度下的目标编码单元在对应基准视频帧内的各个映射编码单元的基准编码参数,计算目标编码单元的编码参考深度和预测适配参考项,进而参考编码参考深度和预测适配参考项,确定该目标编码单元在该编码深度下的适配预测模式和深度划分指示,提高目标编码单元在该编码深度下的适配预测模式和深度划分指示的准确性,并根据该适配预测模式和深度划分指示准确跳过该目标编码单元在非适配预测模式和不必要的划分情况下的编码代价计算步骤,极大降低了视频编码过程中的编码开销,从而利用基准视频帧的基准编码参数,为其他码率下目标编码单元进行编码指引,在保证目标编码单元的编码质量的基础上,降低了目标编码单元的编码复杂度,提高了目标编码单元的编码效率。

  实施例四

  图4为本发明实施例四提供的一种编码模式的确定装置的结构示意图,具体的,如图4所示,该装置可以包括:

  编码适配模块410,用于基于每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定所述目标编码单元在该编码深度下的适配预测模式和深度划分指示;

  编码模式确定模块420,用于从该编码深度下的各所述适配预测模式和所述深度划分指示面向的编码划分模式中,确定使所述目标编码单元的编码代价达到最优的目标编码模式。

  本实施例提供的技术方案,在实现多码率下的视频转码时,基准视频帧在某一码率下已经完成编码,因此其他码率下的视频转码可以参考该基准视频帧的编码情况,此时通过查找每一编码深度下的目标编码单元在对应基准视频帧内的各个映射编码单元,而参考各个映射编码单元的基准编码参数,可以确定出该目标编码单元在该编码深度下的适配预测模式和深度划分指示,该深度划分指示能够表示该目标编码单元在该编码深度下是否需要继续划分,以判断该目标编码单元在该编码深度下是否存在编码划分模式,进而从该编码深度下的各适配预测模式和深度划分指示面向的编码划分模式中,确定使目标编码单元的编码代价达到最优的目标编码模式,此时不再考虑其他非适配预测模式和不必要的划分情况对该目标编码单元的编码影响,也就是不再计算该目标编码单元在非适配预测模式和不必要的编码划分模式下的编码代价,极大降低了视频编码过程中的编码开销,从而利用基准视频帧的基准编码参数,为其他码率下目标编码单元进行编码指引,在保证目标编码单元的编码质量的基础上,降低了目标编码单元的编码复杂度,提高了目标编码单元的编码效率。

  本实施例提供的编码模式的确定装置可适用于上述任意实施例提供的编码模式的确定方法,具备相应的功能和有益效果。

  实施例五

  图5为本发明实施例五提供的一种服务器的结构示意图,如图5所示,该服务器包括处理器50、存储装置51和通信装置52;服务器中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;服务器中的处理器50、存储装置51和通信装置52可以通过总线或其他方式连接,图5中以通过总线连接为例。

  本实施例提供的一种服务器可用于执行上述任意实施例提供的编码模式的确定方法,具备相应的功能和有益效果。

  实施例六

  本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的编码模式的确定方法。该方法具体可以包括:

  基于每一编码深度下的目标编码单元在对应基准视频帧内各个映射编码单元的基准编码参数,确定所述目标编码单元在该编码深度下的适配预测模式和深度划分指示;

  从该编码深度下的各所述适配预测模式和所述深度划分指示面向的编码划分模式中,确定使所述目标编码单元的编码代价达到最优的目标编码模式。

  当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的编码模式的确定方法中的相关操作。

  通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

  值得注意的是,上述编码模式的确定装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

  以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

《一种编码模式的确定方法、装置、服务器和存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)