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

文档序号:9619124阅读:1067来源:国知局
一种abr视频编码码率控制的优化方法
【技术领域】
[0001] 本发明涉及流媒体技术领域,主要针对利用无线网络进行视频传输的低带宽领 域,具体涉及一种ABR视频编码码率控制的优化方法。
【背景技术】
[0002] 21世纪是一个信息化的社会,流媒体技术已被应用到广泛的领域,如数字广播、有 线电视、DVD播放机,视频会议等。在应用过程中,必须使视频信息的处理能力与计算机的 数据处理能力和网络的数据传输能力相适应,而且同时要保证视听质量一定要达到人们一 般的接受水平。为了节约传输带宽、存储空间,视频编码早已成为国内外科学研究和工程应 用的热点之一。为了在网络带宽、延时、缓存的限制下获得更好的图像质量,以及为了在给 定码率下高效地传输编码数据,并保证良好和稳定的接收端质量,码率控制成为视频编码 的重要内容之一,更为视频编码的关键技术之一。
[0003] 码率控制作为视频传输中一项重要的技术,其目的是通过调整编码参数,控制编 码视频流在单位时间内的数据量,保证视频流在允许带宽的范围内,流畅的输出高质量的 视频。视频通过无线网络进行实时传输的过程中,由于采集到的视频画面的多样化,导致视 频编码输出的码流变化比较大,在有限的带宽下就容易导致视频传输过程中出现丢帧的现 象,从而导致视频解码端的视频质量出现波动甚至模糊不清。此外无线网络的带宽会随机 波动,如何调整码率使视频能够根据带宽的变化自适应编码,进而保证视频的流畅传输就 显得尤为重要。码率控制技术就是通过调整视频传输过程中的码率,进而保证视频传输的 流畅性。
[0004] 对于目前比较常用的开源编码器X264来说,它的编码模式主要分为两遍(2pass) 模式和一遍(lpass)模式。其中两遍模式是采用两次编码,第一次编码之后会获得编码 帧的相关统计信息,在第二遍的时候根据这些信息可以在选择合适码率的同时选择最优 的量化参数QP以获得最好的画质,但是由于2pass模式多了一次编码,实时性较差。一 遍(lpass)编码模式又分为ABR (Average Bit-rate,平均比特率)模式、CBR (Constant Bit-rate,恒定比特率)模式、CRF(Constant Ratefactor,恒定速率)模式、CQP (Constant Quantizer,恒定量化参数)模式。一遍编码模式由于没有当前编码帧的编码信息,所以采 用的是边编码边调整的方式,根据当前编码帧已编码单元的信息来调整未编码单元的量化 参数。其中ABR模式能够获得与2pass编码差不多的视频质量,不过会有百分之十的误差, 通过这种方式可以在最小限度牺牲视频质量的同时控制编码文件的大小。CBR模式就是尽 可能的让码率维持不变,这样基本为每一帧都分配差不多的比特数,对于复杂的场景比特 数就有可能不够用,而简单的场景又会造成比特数的浪费,所以这种编码模式下的视频质 量变化比较大。X264提供了多种码率控制策略,可以根据不同的需求选用不同的码率控制 模式。如果想要高的视频质量,又不太在乎实时性的时候就可以选择2pass模式,如果既要 保证视频质量又要兼顾实时性,可以选择ABR模式。现有的技术中使用ABR的编码模式能 够很好的兼顾编码质量和实时性,但是ABR编码方式的误差比较大,会有百分之十的误差。 因此有必要对ABR编码方式的码率控制进行优化。

【发明内容】

[0005] 本发明的目的在于克服现有技术的缺点与不足,提供一种ABR视频编码码率控制 的优化方法,该优化方法能够有效的减小码率控制误差,使视频传输中的实际码率更加接 近期望码率。
[0006] 本发明的目的通过下述技术方案实现:一种ABR视频编码码率控制的优化方法, 包括对当前编码帧量化参数优化的步骤;
[0007] 所述对当前编码帧量化参数优化的步骤具体如下:
[0008] S11、获取已编码帧的编码信息,包括已编码帧的实际总比特数、已编码帧的关键 帧数量以及已编码帧的帧率;
[0009] S12、根据已编码帧的实际总比特数、已编码帧的帧率和已编码帧的关键帧数量获 取当前编码帧的实际码率和当前编码帧的量化参数;
[0010] S13、根据步骤S12中计算的当前编码帧的实际码率和当前编码帧的期望码率获 取当前编码帧的码率控制误差;
[0011] S14、根据当前编码帧的码率控制误差和当前编码帧的关键性来调整当前编码帧 的量化参数;判断当前编码帧的码率控制误差是否小于设定误差;
[0012] 若是,则进入步骤S15 ;
[0013] 若否,则结束对当前编码帧量化参数的优化步骤;
[0014] S15、判断当前编码帧是否为关键帧;
[0015] 若是,则减小当前编码帧的量化参数,增大当前编码帧的比特数;
[0016] 若否,则增大当前编码帧的量化参数,减小当前编码帧的比特数。
[0017] 优选的,还包括对当前编码帧缓冲区增长方式优化的步骤,具体如下:
[0018] S21、获取已编码帧的缓冲区大小,获取已编码帧的实际总比特数和已编码帧的期 望总比特数;
[0019] S22、根据当前编码帧的上一编码帧的缓冲区大小以及已编码帧的实际总比特数 和已编码帧的期望总比特数的偏差得到当前编码帧的缓冲区大小:
[0021] 其中ABW buf为当前编码帧的缓冲区大小,ABRbuf为当前编码帧的上一编码帧的 缓冲区大小,Σβ/(为已编码帧的实际总比特数,Bit为第i帧已编码帧的实际比特数,η 为已编码帧的帧数量,ESblt为已编码帧的期望总比特数。
[0022] 优选的,步骤S12中当前编码帧的实际码率Rblt为:
[0024] 其中为已编码帧的实际总比特数,Bit为第i帧已编码帧的实际比特数, Fps为已编码帧的帧率,If_为已编码帧的关键帧数量,η为已编码帧的帧数量。
[0025] 优选的,所述步骤S13中当前编码帧的码率控制偏差D为:
[0027] 其中Rblt为当前编码帧的实际码率,E blt为当前编码帧的期望码率。
[0028] 优选的,所述步骤S12中当前编码帧的量化参数获取过程如下:
[0029] S121、根据已编码帧的复杂度累计总和预测当前编码帧的复杂度;
[0030] S122、根据步骤S121预测的当前编码帧的复杂度和线性量化控制系数计算当前 编码帧的原量化参数;
[0031] S123、先根据编码速率参数对当前编码帧的原量化参数进行调整,得到当前编码 帧的第一量化参数,然后再根据缓冲区溢出参数对当前编码帧的第一量化参数进行调整, 得到当前编码帧的量化参数。
[0032] 更进一步的,所述步骤S121中,预测的当前编码帧的复杂度CPLXbk为:
[0034] 其中η为已编码帧的帧数量,CPLX_为已编码帧的复杂度累计总和;
[0035] 前i帧已编码帧的复杂度累计总和CPLX,^为:
[0036] CPLXsunil= CPLX sunijl iXO. 5+SATD, i = 1, 2, 3,. . . , η ;
[0037] 其中CPLX^i i为前i-1帧已编码帧的复杂度累计总和,SATD i i为前i-1帧已编 码帧的预测残差绝对值总和;
[0038] 已编码帧的复杂度累计总和CPLXslJ% :
[0040] 更进一步的,所述步骤S122中,当前编码帧的原量化参数Qsrale为:
[0041] Qscale=CPLXblur(1QC);
[0042] 其中CPLXbk为预测的当前编码帧的复杂度,QC为线性量化参数等级压缩度。
[0043] 更进一步的,线性量化参数等级压缩度QC = 0. 6。
[0044] 更进一步的,所述步骤S123中根据编码速率参数对当前编码帧的原量化参数进 行调整后的当前编码帧的第一量化参数Qsral,为:
[0046] 其中rate_factor为当前编码帧的编码速率,rate_factor为:
[0048] 其中Eblt为当前编码帧的期望码率,CPLX _为已编码帧的复杂度累计总和。
[0049] 更进一步的,所述步骤S123中根据缓冲区溢出参数对当前编码帧的第一量化参 数进行调整后的当前编码帧的量化参数Qsral/为:
[0051] 其中QsraJ为根据编码速率参数对当前编码帧的原量化参数进行调整后的当前 编码帧的第一量化参数,overflow为根据已编码帧的实际总比特数和已编码帧的期望标总 比特数之间的偏差设定
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1