一种abr视频编码码率控制的优化方法_2

文档序号:9619124阅读:来源:国知局
的防止溢出参数,其中overflow为:
η
[0053] 其中为已编码帧的实际总比特数,Bit为第i帧已编码帧的实际比特数, 4=:1 ESblt为已编码帧的期望总比特数;abrbuffCT为已编码帧的平均缓冲区大小;
[0054] 若
(则 overflow = 0· 5 ;
[0057] 本发明相对于现有技术具有如下的优点及效果:
[0058] (1)本发明优化方法包括对当前编码帧量化参数的优化,在优化过程中根据已编 码帧的编码信息获取到当前编码帧的实际码率和当前编码帧的量化参数,然后根据当前编 码帧的实际码率和当前编码帧的期望码率获取当前编码帧的码率控制误差;根据当前编码 帧的码率控制误差和当前编码帧的关键性来调整当前编码帧的量化参数;在当前编码帧的 码率控制误差小于设定误差时进行量化参数的调整,若当前编码帧为关键帧,则减小量化 参数,若当前编码帧为非关键帧,则增大量化参数,从而实现量化参数的调整。本发明量化 参数的优化方法,在当前编码帧为关键帧时,能够减小对解码重构影响不大的编码帧的比 特数,而增大关键帧的比特数,不会影响解码端重构图像的质量,而当前编码帧不是关键帧 I帧时,减小非关键帧所用的比特数,实现在不影响视频质量的前提下节省编码数据量。本 发明量化参数优化方法能够有效的减小码率控制误差,使视频传输中的实际码率更加接近 期望码率。
[0059] (2)本发明优化方法还包括对当前编码帧缓冲区增长方式进行优化,该优化克服 了现有技术中缓冲区的增长方式对缓冲区的增长没有上限并且49帧以后是单调递增而导 致随着编码帧数的增加缓冲区会越来越大,视频的延迟也会越来越大的技术问题。通过本 发明对当前编码帧缓冲区增长方式的优化,使得视频传输的延迟更小,实时性更好。
【附图说明】
[0060] 图1是本发明方法流程图。
[0061] 图2是本发明当前编码帧量化参数优化流程图。
[0062] 图3是本发明获取当前编码帧的量化参数流程图。
[0063] 图4是输入片源视频序列Mobile时,本发明方法和现有技术方法所得到的码率控 制误差图。
[0064] 图5是为输入片源为视频序列Parils时,本发明方法和现有技术方法所得到的码 率控制误差图。
【具体实施方式】
[0065] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[0066] 实施例1
[0067] 本实施例公开了一种ABR视频编码码率控制的优化方法,如图1所示,包括对当前 编码帧量化参数优化的步骤;
[0068] 其中如图2所示,对当前编码帧量化参数优化的步骤具体如下:
[0069] S11、获取已编码帧的编码信息,包括已编码帧的实际总比特数、已编码帧的关键 帧(I帧)数量以及已编码帧的帧率。
[0070] S12、根据已编码帧的实际总比特数、已编码帧的帧率和已编码帧的关键帧数量获 取当前编码帧的实际码率和当前编码帧的量化参数;
[0071] 本步骤中当前编码帧的实际码率Rblt为:
[0073] 其中?>>,为已编码帧的实际总比特数,Bit为第i帧已编码帧的实际比特数, /-1 Fps为已编码帧的帧率,If_为已编码帧的关键帧数量,η为已编码帧的帧数量。
[0074] 如图3所示,本步骤中当前编码帧的量化参数获取过程如下:
[0075] S121、根据已编码帧的复杂度累计总和预测当前编码帧的复杂度;本实施例中预 测的当前编码帧的复杂度CPLXb^为:
[0077] 其中η为已编码帧的帧数量,CPLX_为已编码帧的复杂度累计总和;
[0078] 前i帧已编码帧的复杂度累计总和CPLX,^为:
[0079] CPLXsunil= CPLX sunijl iXO. 5+SATD, i = 1, 2, 3,. . . , η ;
[0080] 其中CPLX^i i为前i-1帧已编码帧的复杂度累计总和,SATD i i为前i-1帧已编 码帧的预测残差绝对值总和;
[0081] 则已编码帧的复杂度累计总和CPLXslJ% :
[0083] S122、根据步骤S121预测的当前编码帧的复杂度和线性量化控制系数计算当前 编码帧的原量化参数;本步骤中计算得到的当前编码帧的原量化参数Qs。&为:
[0085] 其中QC为线性量化参数等级压缩度,在本实施例中线性量化参数等级压缩度QC =0. 6〇
[0086] S123、先根据编码速率参数对当前编码帧的原量化参数进行调整,得到当前编码 帧的第一量化参数,然后再根据缓冲区溢出参数对当前编码帧的第一量化参数进行调整, 得到当前编码帧的量化参数。
[0087] 本步骤中根据编码速率参数对当前编码帧的原量化参数进行调整后的当前编码 帧的第一量化参数Qsral:为:
[0089] 其中rate_factor为当前编码帧的编码速率,rate_factor为:
[0091] 其中Eblt为当前编码帧的期望码率,CPLX _为已编码帧的复杂度累计总和。
[0092] 本步骤中根据缓冲区溢出参数对当前编码帧的第一量化参数进行调整后的当前 编码帧的量化参数Qsral/为:
[0094] 其中overflow为根据已编码帧的实际总比特数和已编码帧的期望标总比特数之 间的偏差设定的防止溢出参数,其中overflow为:
[0096] 其中.为已编码帧的实际总比特数,Bit为第i帧已编码帧的实际比特数, ?=1 ESblt为已编码帧的期望总比特数;abrbuffCT为已编码帧的平均缓冲区大小;
[0097] 其中x264_clip3f()函数用来判断 的值是否介于0. 5和2之间, 具体如下:

贝丨J overflow = 2〇
[0101] S13、根据步骤S12中计算的当前编码帧的实际码率和当前编码帧的期望码率获 取当前编码帧的码率控制误差;获取到的当前编码帧的码率控制偏差D为:
[0103] 其中Rblt为当前编码帧的实际码率,E blt为当前编码帧的期望码率。
[0104] S14、根据当前编码帧的码率控制误差和当前编码帧的关键性来调整当前编码帧 的量化参数;判断当前编码帧的码率控制误差是否小于设定误差;其中本实施例的设定误 差为3%。
[0105] 若是,则进入步骤S15 ;
[0106] 若否,则结束对当前编码帧量化参数的优化步骤;
[0107] S15、判断当前编码帧是否为关键帧;
[0108] 若是,则减小当前编码帧的量化参数,增大当前编码帧的比特数,在本实施例中当 前编码帧的量化参数减小2 ;
[0109] 若否,则增大当前编码帧的量化参数,减小当前编码帧的比特数,在本实施例中当 前编码帧的量化参数增大2。
[0110] 本实施例上述步骤S15中判断当前编码帧是否为关键帧,在当前编码帧是关键帧 I帧的情况下,由于在视频解码重构图像时关键帧I帧的影响比较大,其他编码帧对解码端 重构图像的影响比较小,因此可以适当减小关键帧I帧的量化参数,增加其他帧的量化参 数来进行码率控制,这样就能够减小对解码重构影响不大的编码帧的比特数,而增大关键 帧的比特数,并且不会影响解码端重构图像的质量。在当前编码帧不是关键帧I帧的情况 下,可以适当的增大非关键帧的量化参数,减小非关键帧所用的比特数,实现在不影响视频 质量的前提下节省编码数据量。
[0111] 本实施例中,当输入片源为标准YUV视频序列Mobile时,码率控制原算法和通过 本实施例量化参数优化后的码率控制算法对比数据如表1所示;
[0114] 如图4所示为输入片源为上述标准YUV视频序列Mobile时,在ABR视频编码中, 通过本实施例上述量化参数优化方法后所得到的码率控制误差图和未通过本实施例上述 量化参数优化方法后所得到的码率控制误差图。其中图4中,位于上方的曲线dl为ABR视 频编码中未通过本实施例上述量化参数优化方法所得到的码率控制误差,位于下方的曲线 d2为ABR视频编码中通过本实施例上述量化参数优化方法后所得到的码率控制误差。可 见,ABR视频编码时经过本实施例上述量化参数优化方法后,码率控制误差能够限制在1% 以内,尤其是在低带宽情况下,码率控制误差更小,并且能够在一定程度上提高图像的PSNR 值。
[0115] 本实施例中,输入片源为标准YUV视频序列Par
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1