2pass视频编码的码率控制方法与流程

文档序号:37195437发布日期:2024-03-01 13:10阅读:17来源:国知局
2pass视频编码的码率控制方法与流程

本发明属于视频编码,具体涉及一种2pass视频编码的码率控制方法。


背景技术:

1、视频技术已经广泛地应用于移动终端、网络直播、家庭影院和远程监控等领域,视频分辨率也逐步从标清(standard definition,sd)向高清(high definition,hd)、超高清(ultra high definition,uhd)进行转变,当前国际常用的视频编解码标准有h.264、h.265/hevc以及国内的avs、avs+、avs2等。

2、h.264视频编码通常会将一帧划分成若干个宏块,根据每个宏块在时域变化的不同,给于每个宏块以不同的编码模式,如果一个宏块在参考帧中能找到纹理相同的匹配块,那么通常会采用skip模式,如果一个宏块在参考帧中难以找到匹配块,通常会采用intra模式,如果一个宏块在参考帧中能找到匹配块,但是该匹配块与当前宏块略有差别,通常采用inter模式。

3、码率控制属于视频编码的一个重要环节,参见图1,它通过获取视频信源特性(如运动剧烈程度、图像纹理复杂度等)和可用网络带宽来计算视频中每一帧图像和该图像中的各个区域应该分配的比特数,并利用rq模型计算qp(quantitative parameters,量化参数),并进行编码,使输出的码流符合信道的传输,同时使输出的视频质量尽可能好。其中rq模型计算量化参数的方式为:

4、

5、其中bits为当前帧可用的比特数;satd为当前帧的残差变换绝对值之和,用来衡量当前帧的复杂度;a、b、c为模型参数;如果某帧的可用比特数越大,其qp值则越小,量化失真便越小,该帧的编码质量就越好。

6、为了提升视频质量,2pass编码方法被应用到离线视频编码中,2pass编码即编码2遍,第1遍编码将视频所有的帧编码一次,并统计出各帧的复杂度、qp和比特数,在第2遍编码时,基于第1遍的各帧信息,对于复杂度大的帧分配越多的码率,对于复杂度小的帧则分配较少的码率。现有2pass编码方法对复杂度小的场景分配较少的码率,使用了较大的qp,可能导致场景变化不大的帧质量较差。


技术实现思路

1、鉴于以上存在的问题,本发明提供一种2pass视频编码的码率控制方法。

2、为解决上述技术问题,本发明采用如下的技术方案:

3、一种2pass视频编码的码率控制方法,包括以下步骤:

4、s1,设置总目标比特数tb,设gop长度为m,开始2pass的第1遍编码,编码结束后,统计视频的总帧数标记为n,并标记第j帧采用全intra模式的satd值为satd_intra(j),标记第j帧采用全inter模式的satd值为satd_inter(j),标记第j帧的运动等级为motion_level(j)=satd_intra(j)/satd_inter(j),标记第j帧的帧级qp为qp1(j),其中j的范围是(1,n);

5、s2,开始2pass的第2遍编码的预分析,根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j),其中j的范围是(1,n);

6、s3,对第j帧使用量化参数qp2(j)编码,并输出最终的编码视频文件。

7、一种可能的实施方式中,s2中根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j)包括:

8、如果第j帧的帧型是i帧,则根据第j帧后的m帧的运动等级平均值,计算第j帧的量化参数qp2(j)。

9、一种可能的实施方式中,根据第j帧后的m帧的运动等级平均值,计算第j帧的量化参数qp2(j)包括:获取第j+1、j+2、j+3、......、j+m帧的运动等级的平均值,记为avg_motion_level(j),如果avg_motion_level(j)大于50,则qp2(j)=qp1(j)-6,如果avg_motion_level(j)大于10且小于50,qp2(j)=qp1(j)-5,否则qp2(j)=qp1(j)。

10、一种可能的实施方式中,s2中根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j)包括:

11、如果第j帧的帧型是p帧,则根据当前p帧的运动等级,计算第j帧的量化参数qp2(j)。

12、一种可能的实施方式中,根据当前p帧的运动等级,计算第j帧的量化参数qp2(j)包括:如果motion_level(j)大于50,则qp2(j)=qp1(j)-3,如果motion_level(j)大于10且小于50,qp2(j)=qp1(j)-2,否则qp2(j)=qp1(j)。

13、一种可能的实施方式中,s2中根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j)包括:

14、如果第j帧的帧型是b帧,则根据当前b帧的运动等级,计算第j帧的量化参数qp2(j)。

15、一种可能的实施方式中,根据当前b帧的运动等级,计算第j帧的量化参数qp2(j),包括:如果motion_level(j)大于50,则qp2(j)=qp1(j)+2,如果motion_level(j)大于10且小于50,qp2(j)=qp1(j)+1,否则qp2(j)=qp1(j)。

16、采用本发明具有如下的有益效果:在2pass的第1遍编码时,分析各帧采用全intra模式的satd值,以及采用全inter模式的satd值,进一步分析出该帧的运动的复杂度,在2pass编码i帧时,根据其后面的p、b帧运动的复杂度,判断当前i帧对后续p、b帧影响的重要度,对于变化不大的场景,降低当前i帧的qp,能提升当前帧的质量,且由于参考当前i帧的后续帧较多,因此后续帧的p、b帧的质量也能得到提升。



技术特征:

1.一种2pass视频编码的码率控制方法,其特征在于,包括以下步骤:

2.如权利要求1所述的2pass视频编码的码率控制方法,其特征在于,s2中根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j)包括:

3.如权利要求2所述的2pass视频编码的码率控制方法,其特征在于,根据第j帧后的m帧的运动等级平均值,计算第j帧的量化参数qp2(j)包括:获取第j+1、j+2、j+3、......、j+m帧的运动等级的平均值,记为avg_motion_level(j),如果avg_motion_level(j)大于50,则qp2(j)=qp1(j)-6,如果avg_motion_level(j)大于10且小于50,qp2(j)=qp1(j)-5,否则qp2(j)=qp1(j)。

4.如权利要求1所述的2pass视频编码的码率控制方法,其特征在于,s2中根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j)包括:

5.如权利要求4所述的2pass视频编码的码率控制方法,其特征在于,根据当前p帧的运动等级,计算第j帧的量化参数qp2(j)包括:如果motion_level(j)大于50,则qp2(j)=qp1(j)-3,如果motion_level(j)大于10且小于50,qp2(j)=qp1(j)-2,否则qp2(j)=qp1(j)。

6.如权利要求1所述的2pass视频编码的码率控制方法,其特征在于,s2中根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数qp2(j)包括:

7.如权利要求6所述的2pass视频编码的码率控制方法,其特征在于,根据当前b帧的运动等级,计算第j帧的量化参数qp2(j),包括:如果motion_level(j)大于50,则qp2(j)=qp1(j)+2,如果motion_level(j)大于10且小于50,qp2(j)=qp1(j)+1,否则qp2(j)=qp1(j)。


技术总结
本发明公开了一种2pass视频编码的码率控制方法,包括以下步骤:S1,设置总目标比特数TB,设GOP长度为M,开始2pass的第1遍编码,编码结束后,统计视频的总帧数标记为N,并标记第j帧采用全intra模式的SATD值为SATD_intra(j),标记第j帧采用全inter模式的SATD值为SATD_inter(j),标记第j帧的运动等级为motion_level(j)=SATD_intra(j)/SATD_inter(j),标记第j帧的帧级QP为QP1(j),其中j的范围是(1,N);S2,开始2pass的第2遍编码的预分析,根据第j帧的帧型和后续各帧的运动等级计算第j帧的量化参数QP2(j),其中j的范围是(1,N);S3,对第j帧使用量化参数QP2(j)编码,并输出最终的编码视频文件。

技术研发人员:廖义,李日
受保护的技术使用者:杭州当虹科技股份有限公司
技术研发日:
技术公布日:2024/2/29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1