法律状态公告日
法律状态信息
法律状态
2010-04-28
专利权的转移 IPC(主分类):H04N7/32 变更前: 变更后: 登记生效日:20100322 申请日:20051108
专利申请权、专利权的转移
2008-10-08
授权
授权
2006-06-28
实质审查的生效
实质审查的生效
2006-05-03
公开
公开
技术领域
本发明涉及一种码流转换中编码速度和视频质量的自适应联合控制方法。
背景技术
近年出现的一批数字音视频编解码标准,具有代表性的有国际标准MPEG-1,H.263,MPEG-2,MPEG-4、H.264/MPEG-4 AVC,我国自主制定的标准AVS,微软公司推出的WM9等等,这些标准在实际应用中都涉及不同视频应用范围。为了使不同的标准的码流之间进行交换,必须为不同的标准的码流进行转码,在这些码流转换中,最令人关心的问题是编码速度和视频质量,然而这两者是相互作用的紧密联合体,因此如何自适应的处理这两者的关系就是我们研究的重点。
发明内容
本发明提供的一种码流转换中编码速度和视频质量的自适应联合控制方法,在保证速度的同时,尽可能地提高编码图像质量,同时也可以在保证编码图像质量的同时,尽可能提高编码速度,而且这种控制算法计算复杂度很低,不仅适合各种软件应用,而且也适合硬件的实时工作。
为了达到上述目的,本发明提供了一种码流转换中编码速度和视频质量的自适应联合控制方法,其包含以下步骤:
步骤1、计算编码过程中的实际平均帧率av_fps:
使用逐帧平均的方法,具体计算为:
其中,d_fps为视频帧率,即视频编码输出码流的显示帧率,tcur为当前帧编码的时间,为最近d_fps帧的平均编码时间,不包括当前帧,tav为最近d_fps帧的平均编码时间,但包括当前帧,由公式(1)计算得到tav后,由
步骤2、计算目标帧率o_fps,即视频编码器的输出帧率:
o_fps=d_fps+fps其他资源开销;
其中,fps其他资源开销表示编码系统其他部分的资源占用的帧率,其值可自行定义;
步骤3、计算编码帧率误差diff_fps:
diff_fps=av_fps-o_fps;
步骤4、自定义编码帧率误差门限,得到编码速度控制级别:
所述的编码速度控制级别从低到高依次定义为:无加速,慢加速,中等加速,快加速,最快加速;
自定义编码帧率误差门限的各个区段,其分别对应上述各个不同的编码速度控制级别,根据步骤3中计算得到的当前编码帧率误差diff_fps的值处于哪个区段的编码帧率误差门限中,对应得到在编码时所采用的编码速度控制级别;
步骤5、根据所采用的编码速度控制级别,以及所定义的编码加速规则,使编码器采用相应的编码加速措施,从而达到编码速度和视频图像质量的联合控制;
所述的编码加速规则是指各个编码速度控制级别应分别对应采用的加速措施,其根据实际情况的编码图像质量和编码速度两者之间的平衡制定;
影响编码速度的因素主要是运动估计模块(具体搜索算法如全搜索、三步搜索等算法)和DCT(离散余弦变换)变换,因此减少这些模块的使用将极大提高编码速度。在不同标准码流转换中,当前图像帧的编码可以利用它被解码时的信息,这些信息将有助于提高编码速度;
所述的编码加速措施包含帧内编码模式的加速措施、宏块跳过模式的加速措施、解码运动矢量的加速措施、大小块搜索模式的加速措施、解码宏块中DCT系数为0的信息减少DCT变换的加速措施和跳帧的加速措施;
步骤6、如果所有图像编码完成,则结束编码控制过程,否则,跳到步骤1继续编码控制。
本发明提供的一种码流转换中编码速度和视频质量的自适应联合控制方法,在保证速度的同时,尽可能地提高编码图像质量,同时也可以在保证编码图像质量的同时,尽可能提高编码速度,而且这种控制算法计算复杂度很低,不仅适合各种软件应用,而且也适合硬件的实时工作。
具体实施方式
以下具体说明本发明的一种具体实施方式:
本发明提供了一种码流转换中编码速度和视频质量的自适应联合控制方法,其包含以下步骤:
步骤1、计算编码过程中的实际平均帧率av_fps:
使用逐帧平均的方法,具体计算为:
其中,d_fps为视频帧率,即视频编码输出码流的显示帧率,tcur为当前帧编码的时间,为最近d_fps帧的平均编码时间,不包括当前帧,tav为最近d_fps帧的平均编码时间,但包括当前帧,由公式(1)计算得到tav后,由
步骤2、计算目标帧率o_fps,即视频编码器的输出帧率:
o_fps=d_fps+fps其他资源开销;
d_fps为视频帧率,即视频编码输出码流的显示帧率;fps其他资源开销由用户自定义;
步骤3、计算编码帧率误差diff_fps:
diff_fps=av_fps-o_fps;
步骤4、自定义编码帧率误差门限,得到编码速度控制级别:
所述的编码速度控制级别从低到高依次定义为:无加速,慢加速,中等加速,快加速,最快加速。
定义编码帧率误差门限为0,-2,-4,-6,则其组成的各个误差门限区段分别对应上述各个不同的编码速度控制级别,则编码帧率误差diff_fps所处的误差门限区段对应的编码速度控制级别分别为:
无加速:diff_fps≥0;
慢加速:-2≤diff_fps<0;
中等加速:-4≤diff_fps<-2;
快加速:-6≤diff_fps<-4;
最快加速:diff_fps<-6;
步骤5、根据采用的编码速度控制级别,以及所定义的编码加速规则,使编码器采用相应的编码加速措施,从而达到编码速度和视频图像质量的联合控制;
所述的编码加速规则是指各个编码速度控制级别应分别对应采用的加速措施,其根据实际情况的编码图像质量和编码速度两者之间的平衡制定;但是在有些应用过程中更加偏向编码速度,则此时,规则的制定应该倾向编码快速的要求;有些应用过程中更加偏向编码图像质量,则此时,规则的制定应该倾向编码图像质量;
由于所述的编码加速规则在实际应用中可能变化多样,在此仅仅给出一些简单的例子:
1)当加速级别高于中等加速时,应用帧内编码模式的加速措施;
2)当加速级别高于慢加速时,应用宏块跳过模式的加速措施;
3)当加速级别高于中等加速时,应用解码运动矢量的加速措施;
4)当加速级别高于中等加速时,不采用小块搜索模式的加速措施,反之,则采用小块搜索模式的加速措施;
5)当加速级别高于中等加速时,应用解码宏块中DCT系数为0的信息减少DCT变换的加速措施;
6)当加速级别为最快加速时,应用跳帧的加速措施;即,当采用一种加速级别时,将联合使用上述加速措施:
当加速级别为中等加速时,联合应用宏块跳过模式的加速措施和大块搜索模式的加速措施;
当加速级别为快加速时,联合应用帧内编码模式的加速措施,宏块跳过模式的加速措施,解码运动矢量的加速措施,大块搜索模式的加速措施,解码宏块中DCT系数为0的信息减少DCT变换的加速措施;
当加速级别为最快加速时,联合应用帧内编码模式的加速措施,宏块跳过模式的加速措施,解码运动矢量的加速措施,大块搜索模式的加速措施,解码宏块中DCT系数为0的信息减少DCT变换的加速措施,跳帧的加速措施;
所述帧内编码模式的加速措施:如果一个宏块解码时为帧内编码,则说明此宏块包含的高频纹理细节(如人脸处,运动剧烈区域等)很多;在加速级别高时,进行帧内编码,将减少运动搜索,提高编码速度,但帧内编码将产生较多比特开销,在码率恒定的条件下,影响其他宏块的编码图像质量;在加速级别低时,进行帧间编码,将增加运动搜索,降低编码速度,但产生较少比特开销,在码率恒定的条件下,将提高其他宏块的编码图像质量。
所述宏块跳过模式的加速措施:如果一个宏块解码时为宏块跳过模式,则说明此宏块包含的高频纹理细节很少;在加速级别高时,使用宏块跳过模式,将减少运动搜索,提高编码速度,但使用宏块跳过模式的编码图像质量没有直接编码时好;在加速级别低时,不使用宏块跳过模式,将增加运动搜索,降低编码速度,但提高了编码图像质量。
所述解码运动矢量的加速措施:在加速级别高时,使用解码运动矢量,将减少运动搜索,提高编码速度,但使用解码运动矢量的编码图像质量没有使用运动搜索得到的运动矢量的编码图像质量好;在加速级别低时,不使用解码运动矢量,将增加运动搜索,降低编码速度,但提高了编码图像质量。
所述不同大小块搜索模式的加速措施:如果一个宏块解码时为16×16块搜索模式,则说明此宏块包含的纹理信息较少;在加速级别高时,使用16×16块,将减少运动搜索,提高编码速度,但得到的编码图像质量没有使用更小块搜索的编码图像质量好;反之,在加速级别低时,使用16×16块,16×8块,8×16块,8×8块等更小的块搜索,将增加运动搜索,降低编码速度,但提高了编码图像质量;
所述解码宏块中DCT系数为0的加速措施:如果一个宏块解码时某些块的DCT系数为0,则说明此宏块包含的纹理信息很少;在加速级别高时,使该块的DCT系数为0,减少DCT变换,提高编码速度,但得到的编码图像质量没有使用DCT变换后编码的图像质量好;在加速级别低时,使用DCT变换,降低编码速度,但提高了编码图像质量。
所述跳帧的加速措施:在加速级别特别高时,将丢掉B帧,这样可以减少B帧的编码,提高编码速度;
步骤6、如果所有图像编码完成,则结束编码控制过程,否则,跳到步骤1继续编码控制。
具体实施例
步骤1、计算编码过程中的实际平均帧率av_fps:
使用逐帧平均的方法,具体计算为:
其中,d_fps为25帧/秒。
步骤2、计算目标帧率o_fps,即视频编码器的输出帧率:
co_fps=d_fps+fps其他资源开销;
fps其他资源开销设置为1;
步骤3、计算编码帧率误差diff_fps:
diff_fps=av_fps-o_fps;
步骤4、自定义编码帧率误差门限,得到编码速度控制级别:
所述的编码速度控制级别从低到高依次定义为:无加速,慢加速,中等加速,快加速,最快加速;
定义编码帧率误差门限为0,-2,-4,-6,则其组成的各个误差门限区段分别对应上述各个不同的编码速度控制级别,则编码帧率误差diff_fps所处的误差门限区段对应的编码速度控制级别分别为:
无加速: diff_fps≥0;
慢加速: -2≤diff_fps<0;
中等加速:-4≤diff_fps<-2;
快加速: -6≤diff_fps<4;
最快加速:diff_fps<-6;
步骤5、根据采用的编码速度控制级别,以及所定义的编码加速规则,使编码器采用相应的编码加速措施,从而达到编码速度和视频图像质量的联合控制;
当加速级别为中等加速时,应用宏块跳过模式的措施;
当加速级别为快加速时,将采用应用帧内编码模式的措施,应用宏块跳过模式的措施,应用解码运动矢量的措施,采用大块搜索模式,应用解码宏块中DCT系数为0的信息;
当加速级别为最快加速时,将采用应用帧内编码模式的措施,应用宏块跳过模式的措施,应用解码运动矢量的措施,采用大块搜索模式,应用解码宏块中DCT系数为0的信息,应用跳帧的措施;
步骤6、如果所有图像编码完成,则结束编码控制过程,否则,跳到步骤1继续编码控制。
本发明提供的一种码流转换中编码速度和视频质量的自适应联合控制方法,在保证速度的同时,尽可能地提高编码图像质量,同时也可以在保证编码图像质量的同时,尽可能提高编码速度,而且这种控制算法计算复杂度很低,不仅适合各种软件应用,而且也适合硬件的实时工作。
机译: 在网络环境中为自适应码流提供多个代码转换器的对齐的系统和方法
机译: 用于音频转换编码中重叠率的信号自适应转换的编码器,解码器和方法
机译: 自适应均衡处理中稳定和收敛速度的自适应控制方法