首页> 中国专利> 一种ABR视频编码码率控制的优化方法

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

摘要

本发明公开了一种ABR视频编码码率控制的优化方法,包括对当前编码帧量化参数优化步骤;如下:获取已编码帧的编码信息;根据已编码帧信息获取当前编码帧的实际码率和当前编码帧的量化参数;获取当前编码帧的码率控制误差;调整当前编码帧的量化参数:判断当前编码帧的码率控制误差是否小于设定误差;若当前编码帧的码率控制误差小于设定误差,则判断当前编码帧是否为关键帧;若是,则在误差范围内减小量化参数,增大当前编码帧的比特数;若否,则在误差范围内增大量化参数,减小当前编码帧的比特数;若当前编码帧的码率控制误差大于等于设定误差,则结束当前编码帧量化参数的优化步骤。本发明方法能够有效减小码率控制误差。

著录项

  • 公开/公告号CN105376568A

    专利类型发明专利

  • 公开/公告日2016-03-02

    原文格式PDF

  • 申请/专利权人 广州通达汽车电气股份有限公司;

    申请/专利号CN201510979146.X

  • 发明设计人 邢映彪;

    申请日2015-12-22

  • 分类号H04N19/124(20140101);H04N19/15(20140101);H04N19/147(20140101);H04N19/59(20140101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人付茵茵;郑浦娟

  • 地址 510407 广东省广州市白云区西槎路825号聚龙工业区自编14号楼第4层

  • 入库时间 2023-12-18 14:40:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-06

    授权

    授权

  • 2016-03-30

    实质审查的生效 IPC(主分类):H04N19/124 申请日:20151222

    实质审查的生效

  • 2016-03-02

    公开

    公开

说明书

技术领域

本发明涉及流媒体技术领域,主要针对利用无线网络进行视频传输的低带 宽领域,具体涉及一种ABR视频编码码率控制的优化方法。

背景技术

21世纪是一个信息化的社会,流媒体技术已被应用到广泛的领域,如数字 广播、有线电视、DVD播放机,视频会议等。在应用过程中,必须使视频信息 的处理能力与计算机的数据处理能力和网络的数据传输能力相适应,而且同时 要保证视听质量一定要达到人们一般的接受水平。为了节约传输带宽、存储空 间,视频编码早已成为国内外科学研究和工程应用的热点之一。为了在网络带 宽、延时、缓存的限制下获得更好的图像质量,以及为了在给定码率下高效地 传输编码数据,并保证良好和稳定的接收端质量,码率控制成为视频编码的重 要内容之一,更为视频编码的关键技术之一。

码率控制作为视频传输中一项重要的技术,其目的是通过调整编码参数, 控制编码视频流在单位时间内的数据量,保证视频流在允许带宽的范围内,流 畅的输出高质量的视频。视频通过无线网络进行实时传输的过程中,由于采集 到的视频画面的多样化,导致视频编码输出的码流变化比较大,在有限的带宽 下就容易导致视频传输过程中出现丢帧的现象,从而导致视频解码端的视频质 量出现波动甚至模糊不清。此外无线网络的带宽会随机波动,如何调整码率使 视频能够根据带宽的变化自适应编码,进而保证视频的流畅传输就显得尤为重 要。码率控制技术就是通过调整视频传输过程中的码率,进而保证视频传输的 流畅性。

对于目前比较常用的开源编码器X264来说,它的编码模式主要分为两遍 (2pass)模式和一遍(1pass)模式。其中两遍模式是采用两次编码,第一次编 码之后会获得编码帧的相关统计信息,在第二遍的时候根据这些信息可以在选 择合适码率的同时选择最优的量化参数QP以获得最好的画质,但是由于2pass 模式多了一次编码,实时性较差。一遍(1pass)编码模式又分为ABR(Average Bit-rate,平均比特率)模式、CBR(ConstantBit-rate,恒定比特率)模式、CRF (ConstantRatefactor,恒定速率)模式、CQP(ConstantQuantizer,恒定量化参 数)模式。一遍编码模式由于没有当前编码帧的编码信息,所以采用的是边编 码边调整的方式,根据当前编码帧已编码单元的信息来调整未编码单元的量化 参数。其中ABR模式能够获得与2pass编码差不多的视频质量,不过会有百分 之十的误差,通过这种方式可以在最小限度牺牲视频质量的同时控制编码文件 的大小。CBR模式就是尽可能的让码率维持不变,这样基本为每一帧都分配差 不多的比特数,对于复杂的场景比特数就有可能不够用,而简单的场景又会造 成比特数的浪费,所以这种编码模式下的视频质量变化比较大。X264提供了多 种码率控制策略,可以根据不同的需求选用不同的码率控制模式。如果想要高 的视频质量,又不太在乎实时性的时候就可以选择2pass模式,如果既要保证视 频质量又要兼顾实时性,可以选择ABR模式。现有的技术中使用ABR的编码 模式能够很好的兼顾编码质量和实时性,但是ABR编码方式的误差比较大,会 有百分之十的误差。因此有必要对ABR编码方式的码率控制进行优化。

发明内容

本发明的目的在于克服现有技术的缺点与不足,提供一种ABR视频编码码 率控制的优化方法,该优化方法能够有效的减小码率控制误差,使视频传输中 的实际码率更加接近期望码率。

本发明的目的通过下述技术方案实现:一种ABR视频编码码率控制的优化 方法,包括对当前编码帧量化参数优化的步骤;

所述对当前编码帧量化参数优化的步骤具体如下:

S11、获取已编码帧的编码信息,包括已编码帧的实际总比特数、已编码帧 的关键帧数量以及已编码帧的帧率;

S12、根据已编码帧的实际总比特数、已编码帧的帧率和已编码帧的关键帧 数量获取当前编码帧的实际码率和当前编码帧的量化参数;

S13、根据步骤S12中计算的当前编码帧的实际码率和当前编码帧的期望码 率获取当前编码帧的码率控制误差;

S14、根据当前编码帧的码率控制误差和当前编码帧的关键性来调整当前编 码帧的量化参数;判断当前编码帧的码率控制误差是否小于设定误差;

若是,则进入步骤S15;

若否,则结束对当前编码帧量化参数的优化步骤;

S15、判断当前编码帧是否为关键帧;

若是,则减小当前编码帧的量化参数,增大当前编码帧的比特数;

若否,则增大当前编码帧的量化参数,减小当前编码帧的比特数。

优选的,还包括对当前编码帧缓冲区增长方式优化的步骤,具体如下:

S21、获取已编码帧的缓冲区大小,获取已编码帧的实际总比特数和已编码 帧的期望总比特数;

S22、根据当前编码帧的上一编码帧的缓冲区大小以及已编码帧的实际总比 特数和已编码帧的期望总比特数的偏差得到当前编码帧的缓冲区大小:

ABRbuf=ABRbuf×(1+Σi=1nBiti-ESbitABRbuf);

其中ABR′buf为当前编码帧的缓冲区大小,ABRbuf为当前编码帧的上一编码帧 的缓冲区大小,为已编码帧的实际总比特数,Biti为第i帧已编码帧的实 际比特数,n为已编码帧的帧数量,ESbit为已编码帧的期望总比特数。

优选的,步骤S12中当前编码帧的实际码率Rbit为:

Rbit=Σi=1nBiti×FpsIfram;

其中为已编码帧的实际总比特数,Biti为第i帧已编码帧的实际比特 数,Fps为已编码帧的帧率,Ifram为已编码帧的关键帧数量,n为已编码帧的帧数 量。

优选的,所述步骤S13中当前编码帧的码率控制偏差D为:

D=Rbit-EbitRbit;

其中Rbit为当前编码帧的实际码率,Ebit为当前编码帧的期望码率。

优选的,所述步骤S12中当前编码帧的量化参数获取过程如下:

S121、根据已编码帧的复杂度累计总和预测当前编码帧的复杂度;

S122、根据步骤S121预测的当前编码帧的复杂度和线性量化控制系数计算 当前编码帧的原量化参数;

S123、先根据编码速率参数对当前编码帧的原量化参数进行调整,得到当 前编码帧的第一量化参数,然后再根据缓冲区溢出参数对当前编码帧的第一量 化参数进行调整,得到当前编码帧的量化参数。

更进一步的,所述步骤S121中,预测的当前编码帧的复杂度CPLXblur为:

CPLXblur=CPLXsumn;

其中n为已编码帧的帧数量,CPLXsum为已编码帧的复杂度累计总和;

前i帧已编码帧的复杂度累计总和CPLXsum,i为:

CPLXsum,i=CPLXsum,i-1×0.5+SATDi-1,i=1,2,3,...,n;

其中CPLXsum,i-1为前i-1帧已编码帧的复杂度累计总和,SATDi-1为前i-1帧已编 码帧的预测残差绝对值总和;

已编码帧的复杂度累计总和CPLXsum为:

CPLXsum=CPLXsum,n

更进一步的,所述步骤S122中,当前编码帧的原量化参数Qscale为:

Qscale=CPLXblur(1-QC)

其中CPLXblur为预测的当前编码帧的复杂度,QC为线性量化参数等级压缩 度。

更进一步的,线性量化参数等级压缩度QC=0.6。

更进一步的,所述步骤S123中根据编码速率参数对当前编码帧的原量化参 数进行调整后的当前编码帧的第一量化参数Qscale′为:

Qscale=Qscalerate_factor;

其中rate_factor为当前编码帧的编码速率,rate_factor为:

rate_factor=EbitCPLXsum;

其中Ebit为当前编码帧的期望码率,CPLXsum为已编码帧的复杂度累计总和。

更进一步的,所述步骤S123中根据缓冲区溢出参数对当前编码帧的第一量 化参数进行调整后的当前编码帧的量化参数Qscale″为:

Qscale″=Qscale′×overflow;

其中Qscale′为根据编码速率参数对当前编码帧的原量化参数进行调整后的当 前编码帧的第一量化参数,overflow为根据已编码帧的实际总比特数和已编码帧 的期望标总比特数之间的偏差设定的防止溢出参数,其中overflow为:

overflow=x264_clip3f(1.0+Σi=1nBiti-ESbitabrbuffer,0.5,2);

其中为已编码帧的实际总比特数,Biti为第i帧已编码帧的实际比特 数,ESbit为已编码帧的期望总比特数;abrbuffer为已编码帧的平均缓冲区大小;

1.0+Σi=1nBiti-ESbitabrbuffer<0.5,则overflow=0.5;

0.51.0+Σi=1nBiti-ESbitabrbuffer2,overflow=1.0+Σi=1nBiti-ESbitabrbuffer;

1.0+Σi=1nBiti-ESbitabrbuffer>2,则overflow=2。

本发明相对于现有技术具有如下的优点及效果:

(1)本发明优化方法包括对当前编码帧量化参数的优化,在优化过程中根 据已编码帧的编码信息获取到当前编码帧的实际码率和当前编码帧的量化参 数,然后根据当前编码帧的实际码率和当前编码帧的期望码率获取当前编码帧 的码率控制误差;根据当前编码帧的码率控制误差和当前编码帧的关键性来调 整当前编码帧的量化参数;在当前编码帧的码率控制误差小于设定误差时进行 量化参数的调整,若当前编码帧为关键帧,则减小量化参数,若当前编码帧为 非关键帧,则增大量化参数,从而实现量化参数的调整。本发明量化参数的优 化方法,在当前编码帧为关键帧时,能够减小对解码重构影响不大的编码帧的 比特数,而增大关键帧的比特数,不会影响解码端重构图像的质量,而当前编 码帧不是关键帧I帧时,减小非关键帧所用的比特数,实现在不影响视频质量的 前提下节省编码数据量。本发明量化参数优化方法能够有效的减小码率控制误 差,使视频传输中的实际码率更加接近期望码率。

(2)本发明优化方法还包括对当前编码帧缓冲区增长方式进行优化,该优 化克服了现有技术中缓冲区的增长方式对缓冲区的增长没有上限并且49帧以后 是单调递增而导致随着编码帧数的增加缓冲区会越来越大,视频的延迟也会越 来越大的技术问题。通过本发明对当前编码帧缓冲区增长方式的优化,使得视 频传输的延迟更小,实时性更好。

附图说明

图1是本发明方法流程图。

图2是本发明当前编码帧量化参数优化流程图。

图3是本发明获取当前编码帧的量化参数流程图。

图4是输入片源视频序列Mobile时,本发明方法和现有技术方法所得到的 码率控制误差图。

图5是为输入片源为视频序列Parils时,本发明方法和现有技术方法所得到 的码率控制误差图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方 式不限于此。

实施例1

本实施例公开了一种ABR视频编码码率控制的优化方法,如图1所示,包括 对当前编码帧量化参数优化的步骤;

其中如图2所示,对当前编码帧量化参数优化的步骤具体如下:

S11、获取已编码帧的编码信息,包括已编码帧的实际总比特数、已编码帧 的关键帧(I帧)数量以及已编码帧的帧率。

S12、根据已编码帧的实际总比特数、已编码帧的帧率和已编码帧的关键帧 数量获取当前编码帧的实际码率和当前编码帧的量化参数;

本步骤中当前编码帧的实际码率Rbit为:

Rbit=Σi=1nBiti×FpsIfram;

其中为已编码帧的实际总比特数,Biti为第i帧已编码帧的实际比特 数,Fps为已编码帧的帧率,Ifram为已编码帧的关键帧数量,n为已编码帧的帧数 量。

如图3所示,本步骤中当前编码帧的量化参数获取过程如下:

S121、根据已编码帧的复杂度累计总和预测当前编码帧的复杂度;本实施 例中预测的当前编码帧的复杂度CPLXblur为:

CPLXblur=CPLXsumn;

其中n为已编码帧的帧数量,CPLXsum为已编码帧的复杂度累计总和;

前i帧已编码帧的复杂度累计总和CPLXsum,i为:

CPLXsum,i=CPLXsum,i-1×0.5+SATDi-1,i=1,2,3,...,n;

其中CPLXsum,i-1为前i-1帧已编码帧的复杂度累计总和,SATDi-1为前i-1帧已编 码帧的预测残差绝对值总和;

则已编码帧的复杂度累计总和CPLXsum为:

CPLXsum=CPLXsum,n

S122、根据步骤S121预测的当前编码帧的复杂度和线性量化控制系数计算 当前编码帧的原量化参数;本步骤中计算得到的当前编码帧的原量化参数Qscale为:

Qscale=CPLXblur(1-QC)

其中QC为线性量化参数等级压缩度,在本实施例中线性量化参数等级压缩 度QC=0.6。

S123、先根据编码速率参数对当前编码帧的原量化参数进行调整,得到当 前编码帧的第一量化参数,然后再根据缓冲区溢出参数对当前编码帧的第一量 化参数进行调整,得到当前编码帧的量化参数。

本步骤中根据编码速率参数对当前编码帧的原量化参数进行调整后的当前 编码帧的第一量化参数Qscale′为:

Qscale=Qscalerate_factor;

其中rate_factor为当前编码帧的编码速率,rate_factor为:

rate_factor=EbitCPLXsum;

其中Ebit为当前编码帧的期望码率,CPLXsum为已编码帧的复杂度累计总和。

本步骤中根据缓冲区溢出参数对当前编码帧的第一量化参数进行调整后的 当前编码帧的量化参数Qscale″为:

Qscale″=Qscale′×overflow;

其中overflow为根据已编码帧的实际总比特数和已编码帧的期望标总比特数 之间的偏差设定的防止溢出参数,其中overflow为:

overflow=x264_clip3f(1.0+Σi=1nBiti-ESbitabrbuffer,0.5,2);

其中为已编码帧的实际总比特数,Biti为第i帧已编码帧的实际比特 数,ESbit为已编码帧的期望总比特数;abrbuffer为已编码帧的平均缓冲区大小;

其中x264_clip3f()函数用来判断的值是否介于0.5和2之间, 具体如下:

1.0+Σi=1nBiti-ESbitabrbuffer<0.5,则overflow=0.5;

0.51.0+Σi=1nBiti-ESbitabrbuffer2,overflow=1.0+Σi=1nBiti-ESbitabrbuffer;

1.0+Σi=1nBiti-ESbitabrbuffer>2,则overflow=2。

S13、根据步骤S12中计算的当前编码帧的实际码率和当前编码帧的期望码 率获取当前编码帧的码率控制误差;获取到的当前编码帧的码率控制偏差D为:

D=Rbit-EbitRbit;

其中Rbit为当前编码帧的实际码率,Ebit为当前编码帧的期望码率。

S14、根据当前编码帧的码率控制误差和当前编码帧的关键性来调整当前编 码帧的量化参数;判断当前编码帧的码率控制误差是否小于设定误差;其中本 实施例的设定误差为3%。

若是,则进入步骤S15;

若否,则结束对当前编码帧量化参数的优化步骤;

S15、判断当前编码帧是否为关键帧;

若是,则减小当前编码帧的量化参数,增大当前编码帧的比特数,在本实 施例中当前编码帧的量化参数减小2;

若否,则增大当前编码帧的量化参数,减小当前编码帧的比特数,在本实 施例中当前编码帧的量化参数增大2。

本实施例上述步骤S15中判断当前编码帧是否为关键帧,在当前编码帧是关 键帧I帧的情况下,由于在视频解码重构图像时关键帧I帧的影响比较大,其他编 码帧对解码端重构图像的影响比较小,因此可以适当减小关键帧I帧的量化参数, 增加其他帧的量化参数来进行码率控制,这样就能够减小对解码重构影响不大 的编码帧的比特数,而增大关键帧的比特数,并且不会影响解码端重构图像的 质量。在当前编码帧不是关键帧I帧的情况下,可以适当的增大非关键帧的量化 参数,减小非关键帧所用的比特数,实现在不影响视频质量的前提下节省编码 数据量。

本实施例中,当输入片源为标准YUV视频序列Mobile时,码率控制原算法 和通过本实施例量化参数优化后的码率控制算法对比数据如表1所示;

表1

如图4所示为输入片源为上述标准YUV视频序列Mobile时,在ABR视频编码 中,通过本实施例上述量化参数优化方法后所得到的码率控制误差图和未通过 本实施例上述量化参数优化方法后所得到的码率控制误差图。其中图4中,位于 上方的曲线d1为ABR视频编码中未通过本实施例上述量化参数优化方法所得到 的码率控制误差,位于下方的曲线d2为ABR视频编码中通过本实施例上述量化 参数优化方法后所得到的码率控制误差。可见,ABR视频编码时经过本实施例 上述量化参数优化方法后,码率控制误差能够限制在1%以内,尤其是在低带宽 情况下,码率控制误差更小,并且能够在一定程度上提高图像的PSNR值。

本实施例中,输入片源为标准YUV视频序列Parils时,码率控制原算法和通 过本实施例量化参数优化后的码率控制算法对比数据如表2所示;

表2

如图5所示为输入片源为上述标准YUV视频序列Parils时,在ABR视频编码 中,通过本实施例上述量化参数优化方法后所得到的码率控制误差图和未通过 本实施例上述量化参数优化方法后所得到的码率控制误差图。其中图5中,位于 上方的曲线d1为ABR视频编码中未通过本实施例上述量化参数优化方法所得到 的码率控制误差,位于下方的曲线d2为ABR视频编码中通过本实施例上述量化 参数优化方法后所得到的码率控制误差。可见,ABR视频编码时经过本实施例 上述量化参数优化方法后,码率控制误差能够限制在2%以内,经过量化参数优 化的视频的实际码率更加接近期望码率,并且能够在一定程度上提高图像的 PSNR值,减小了图像的失真度。

实施例2

本实施例2公开了一种ABR视频编码码率控制的优化方法,其与实施例1中 ABR视频编码码率控制的优化方法的区别仅在于,如图1中所示,本实施例还包 括对当前编码帧缓冲区增长方式优化的步骤。

本实施例中对当前编码帧缓冲区增长方式优化的步骤,具体如下:

S21、获取已编码帧的缓冲区大小,获取已编码帧的实际总比特数和已编码 帧的期望总比特数;

S22、根据当前编码帧的上一编码帧的缓冲区大小以及已编码帧的实际总比 特数和已编码帧的期望总比特数的偏差得到当前编码帧的缓冲区大小:

ABRbuf=ABRbuf×(1+Σi=1nBiti-ESbitABRbuf);

其中ABR′buf为当前编码帧的缓冲区大小,ABRbuf为当前编码帧的上一编码帧 的缓冲区大小,Biti为第i帧已编码帧的实际比特数,为已编码帧的实际总 比特数,n为已编码帧的帧数量,ESbit为已编码帧的期望总比特数。

本实施例通过上述步骤S21和S22对当前编码帧缓冲区增长方式进行优化, 克服了现有技术中缓冲区的增长方式对缓冲区的增长没有上限并且49帧以后是 单调递增,导致随着编码帧数的增加缓冲区会越来越大,视频的延迟也会越来 越大的技术问题。通过对当前编码帧缓冲区增长方式的优化,使得视频传输的 延迟更小,实时性更好。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实 施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、 替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号