H.264视频编码方法、装置、芯片、存储设备及电子设备制造方法及图纸

技术编号:27195520 阅读:11 留言:0更新日期:2021-01-31 11:49
本发明专利技术公开了H.264视频编码方法、装置、芯片、存储设备及电子设备,该方法包括如下步骤:对于P帧,若当前帧的位置在设定帧位置之前,则将当前帧的第一标识设置为参考帧;若当前帧的位置为设定帧位置,则将当前帧的第一标识设置为非参考帧;若当前帧的位置在设定帧位置之后,判断当前帧距最近的非参考帧的帧间距是否为设定帧间隔,若是则将当前帧的第一标识设置为非参考帧,若否则将当前帧的第一标识设置为参考帧;对当前帧进行编码输出压缩码流;若码率大于第一码率阈值则增加帧间隔以减少非参考帧的数量。本发明专利技术能够兼顾视频帧序列抗干扰能力和编码质量。能力和编码质量。能力和编码质量。

【技术实现步骤摘要】
H.264视频编码方法、装置、芯片、存储设备及电子设备


[0001]本专利技术涉及图像编码领域,尤其涉及H.264视频编码方法、装置、芯片、存储设备及电子设备。

技术介绍

[0002]随着无线网络的迅速发展,移动通信对人们生活的影响也越来越大,无线传输的高速发展使得人们在业务上对其有了更高的要求。在某些特殊场合中的一些特殊业务有高稳定性、低时延、不间断传输的要求,如移动视频会议、视频监控等。相比于传统的有线网络来说,无线网络存在不稳定性和移动性高等特点,无线网络传输过程中容易出现干扰,信号衰减,切换等多种破坏传输的情况。这些都会导致传输效率低下,出现网络拥塞,丢包以及包损坏等问题。这样接收端的视频解码就会出现问题。
[0003]H.264视频压缩标准自2003年3月正式公布以来,被广泛应用于实时视频监控,低延时模式的视频会议、网络视频点播等电子消费领域。H.264之所以有着出色的压缩性能,得益于新引入的多种技术,如帧内预测,帧间预测,多参考帧,帧间可变尺寸块运动估计,去方块滤波和上下文自适应的熵编码技术。其中作为帧间预测的P帧对无线网络传输的可靠性影响较大,特别是在IDR(立即刷新帧)间隔较大时,一旦有一个P帧在无线传输中丢失,那么在一个GOP(图像画面组,具体指两个IDR帧的间隔)内丢失P帧之后的所有P帧的解码都会受到影响。
[0004]目前大多数H.264编码方案在帧间预测时仅使用一个前向参考帧。其中一种编码技术是每一帧P帧都以前面的一帧作为参考帧,具体而言,在对图像组GOP(H.264定义的图像画面组,具体指两个IDR帧的间隔)进行编码时,第一帧(I帧)后面的每一帧P帧都以前面的一帧作为参考帧,因此作为帧间预测的P帧参考帧对无线网络传输的可靠性影响较大,特别是在IDR(立即刷新帧)间隔较大时,一旦有一个P帧在传输中丢失(例如在无线网络传输带宽紧张时丢失),那么丢失的P帧之后的所有该GOP内的P帧的解码都不能正常解码,解码端画面出现卡顿或异常。
[0005]H.264帧间预测时最多可以使用16个参考帧,多参考帧的使用可以降低网络传输丢帧时导致的解码问题。但是消费电子级视频芯片的开发使用多参考帧会带来编码复杂度增加,内存和带宽消耗增大,芯片成本增加等问题。
[0006]另外一种技术如现有技术CN104754345A公开的,在一个图像组中引入多个非参考帧P帧,该技术客观上能够减轻前述编码技术中的问题,但是,研究发现该技术容易导致编码质量下降。另外,该现有技术中将编码后的帧数据直接送出外部缓存中,当需要以该编码后的帧数据作为参考帧使用时,需要再从片外的缓存中再通过参考帧读取模块进行读取,不仅降低了缓存利用率,而且读写效率较低。

技术实现思路

[0007]研究现有技术CN104754345A发现,当连续非参考帧的数量过多,势必会降低帧间
预测的精度,即导致待编码帧与参考帧之间的差异越大,需要更多的比特来表示这种差异,从而导致实时码率增大,当编码器需要控制输出码流的码率(码流速率)在一定码率以下时,进而导致量化参数qp大幅增加,从而引起编码质量急剧下降。
[0008]基于上述现状,本专利技术的主要目的在于提供H.264视频编码方法、装置、芯片、存储设备及电子设备,通过实时检测编码输出码流的码率的大小,当码率大于码率阈值时减小非参考帧之间的帧间隔,以减少非参考帧的数量,从而在非参考帧存在且兼顾视频编码质量的前提下,提高了视频在无线网络传输环境下的抗干扰性,以及接收端解码的视觉成像质量。
[0009]为实现上述目的,本专利技术采用的技术方案如下:
[0010]参考图1,一种H.264视频编码方法,包括如下步骤:S110,判断当前帧的类型,若所述当前帧的类型是I帧则执行步骤S140-S150,若所述当前帧的类型是P帧则执行步骤S120-S150;S120,判断所述当前帧的位置,若所述当前帧的位置在设定帧位置之前,则将所述当前帧的第一标识设置为参考帧,并执行步骤S140-S150;若所述当前帧的位置为设定帧位置,则将所述当前帧的第一标识设置为非参考帧,并执行步骤S140-S150;若所述当前帧的位置在设定帧位置之后,执行步骤S130-S150;其中,所述第一标识用于表示所述当前帧是否为参考帧;S130,判断所述当前帧距最近的非参考帧的帧间距是否为设定帧间隔,若是则将所述当前帧的第一标识设置为非参考帧,若否则将所述当前帧的第一标识设置为参考帧;S140,对所述当前帧根据其第一标识进行编码,并输出压缩码流;S150,实时检测所述压缩码流的码率,判断所述码率是否大于第一码率阈值,若否则重新执行步骤S110-S150,若是则增加所述帧间隔以减少非参考帧的数量,并重新执行步骤S110-S150直至完成编码。
[0011]优选的,在步骤S150中,所述帧间隔每次减小数值1。
[0012]优选的,参考图6,在步骤S110之前,所述视频编码方法还包括如下步骤:S100,在缓存器中为编码提供存储编码过程产生的参考帧数据的两块编码缓存地址;所述步骤S110还包括以下步骤:若所述当前帧的类型是I帧,将所述当前帧的第一标识设置为参考帧,并写入所述当前帧的帧头部,将所述当前帧的写缓存地址初始化为所述两块编码缓存地址中的任一编码缓存地址,以用于存储对所述当前帧进行编码得到的参考帧数据;所述步骤S130后还包括以下步骤:S131,将所述当前帧的所述第一标识写入所述当前帧的帧头部;S132,判断所述当前帧的前一帧是否为参考帧,若是,则执行步骤S133,若否执行步骤S134;S133,将所述当前帧的读缓存地址赋值为所述当前帧前一帧的写缓存地址,以在编码时读取所述当前帧前一帧编码得到的参考帧数据,将写缓存地址赋值为所述两块编码缓存地址中除所述当前帧前一帧的写缓存地址外的另一者,以在当前帧是参考帧时存储所述当前帧编码得到的参考帧数据;S134,将所述当前帧的读缓存地址保持与所述当前帧前一帧的读缓存地址一致,以在编码时读取所述当前帧前一帧的参考帧编码得到的参考帧数据,将写缓存地址保持与所述当前帧前一帧的写缓存地址一致,以在当前帧是参考帧时存储所述当前帧编码得到的参考帧数据。
[0013]优选的,在步骤S110和S130中,将所述当前帧的所述第一标识写入所述当前帧的帧头部中的填充网络抽象层单元内。
[0014]参考图7,本专利技术还提供了一种H.264视频编码方法,包括如下步骤:S210,判断当前帧的类型,若所述当前帧的类型是I帧则执行步骤S240-S250,若所述当前帧的类型是P帧
则执行步骤S220-S250;S220,判断所述当前帧的位置,若所述当前帧的位置在设定帧位置之前,则将所述当前帧的第一标识设置为参考帧,并执行步骤S240-S250;若所述当前帧的位置为设定帧位置,则将所述当前帧的第一标识设置为非参考帧,并执行步骤S240-S250;若所述当前帧的位置在设定帧位置之后,执行步骤S230-S250;其中,所述第一标识用于表示所述当前帧是否为参考帧;S230,判断所述当前帧距最近的非参考帧的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种H.264视频编码方法,其特征在于,包括如下步骤:S110,判断当前帧的类型,若所述当前帧的类型是I帧则执行步骤S140-S150,若所述当前帧的类型是P帧则执行步骤S120-S150;S120,判断所述当前帧的位置,若所述当前帧的位置在设定帧位置之前,则将所述当前帧的第一标识设置为参考帧,并执行步骤S140-S150;若所述当前帧的位置为设定帧位置,则将所述当前帧的第一标识设置为非参考帧,并执行步骤S140-S150;若所述当前帧的位置在设定帧位置之后,执行步骤S130-S150;其中,所述第一标识用于表示所述当前帧是否为参考帧;S130,判断所述当前帧距最近的非参考帧的帧间距是否为设定帧间隔,若是则将所述当前帧的第一标识设置为非参考帧,若否则将所述当前帧的第一标识设置为参考帧;S140,对所述当前帧根据其第一标识进行编码,并输出压缩码流;S150,实时检测所述压缩码流的码率,判断所述码率是否大于第一码率阈值,若否则重新执行步骤S110-S150,若是则增加所述帧间隔以减少非参考帧的数量,并重新执行步骤S110-S150直至完成编码。2.根据权利要求1所述的H.264视频编码方法,其特征在于,在步骤S150中,所述帧间隔每次减小数值1。3.根据权利要求1-2所述的H.264视频编码方法,其特征在于,在步骤S110之前,所述视频编码方法还包括如下步骤:S100,在缓存器中为编码提供存储编码过程产生的参考帧数据的两块编码缓存地址;所述步骤S110还包括以下步骤:若所述当前帧的类型是I帧,将所述当前帧的第一标识设置为参考帧,并写入所述当前帧的帧头部,将所述当前帧的写缓存地址初始化为所述两块编码缓存地址中的任一编码缓存地址,以用于存储对所述当前帧进行编码得到的参考帧数据;所述步骤S130后还包括以下步骤:S131,将所述当前帧的所述第一标识写入所述当前帧的帧头部;S132,判断所述当前帧的前一帧是否为参考帧,若是,则执行步骤S133,若否执行步骤S134;S133,将所述当前帧的读缓存地址赋值为所述当前帧前一帧的写缓存地址,以在编码时读取所述当前帧前一帧编码得到的参考帧数据,将写缓存地址赋值为所述两块编码缓存地址中除所述当前帧前一帧的写缓存地址外的另一者,以在当前帧是参考帧时存储所述当前帧编码得到的参考帧数据;S134,将所述当前帧的读缓存地址保持与所述当前帧前一帧的读缓存地址一致,以在编码时读取所述当前帧前一帧的参考帧编码得到的参考帧数据,将写缓存地址保持与所述当前帧前一帧的写缓存地址一致,以在当前帧是参考帧时存储所述当前帧编码得到的参考帧数据。4.根据权利要求1-3所述的H.264视频编码方法,其特征在于,在步骤S110和S130中,将所述当前帧的所述第一标识写入所述当前帧的帧头部中的填充网络抽象层单元内。5.一种H.264视频编码方法,其特征在于,包括如下步骤:
S210,判断当前帧的类型,若所述当前帧的类型是I帧则执行步骤S240-S250,若所述当前帧的类型是P帧则执行步骤S220-S250;S220,判断所述当前帧的位置,若所述当前帧的位置在设定帧位置之前,则将所述当前帧的第一标识设置为参考帧,并执行步骤S240-S250;若所述当前帧的位置为设定帧位置,则将所述当前帧的第一标识设置为非参考帧,并执行步骤S240-S250;若所述当前帧的位置在设定帧位置之后,执行步骤S230-S250;其中,所述第一标识用于表示所述当前帧是否为参考帧;S230,判断所述当前帧距最近的非参考帧的帧间距是否为设定帧间隔,若是则将所述当前帧的第一标识设置为非参考帧,若否则将所述当前帧的第一标识设置为参考帧;S240,对所述当前帧根据其第一标识进行编码,并输出压缩码流;S250,实时检测所述压缩码流的码率,判断所述码率的大小,若:第二码率阈值≤所述码率≤第三码率阈值,则不调整帧间隔大小,并重新执行步骤S210-S250,直至完成编码;若:所述码率>第三码率阈值,则增加所述帧间隔以减少非参考帧的数量,并重新执行步骤S210-S250,直至完成编码;若:所述码率<第二码率阈值,则减小所述帧间隔以增加非参考帧的数量,并重新执行步骤S210-S250,直至完成编码。6.根据权利要求5所述的H.264视频编码方法,其特征在于,在步骤S250中,所述帧间隔每次减小数值1和/或所述帧间隔每次增加数值1。7.根据权利要求5所述的H.264视频编码方法,其特征在于,在步骤S210之前,所述视频编码方法还包括如下步骤:S200,在缓存器中为编码提供存储编码过程产生的参考帧数据的两块编码缓存地址;所述步骤S210还包括以下步骤:若所述当前帧的类型是I帧,将所述当前帧的第一标识设置为参考帧并写入所述当前帧的帧头部,将所述当前帧的写缓存地址初始化为所述两块编码缓存地址中的任一编码缓存地址,以用于存储对所述当前帧进行编码得到的参考帧数据;所述步骤S230后还包括以下步骤:S231,将所述当前帧的所述第一标识写入所述当前帧的帧头部;S232,判断所述当前帧的前一帧是否为参考帧,若是,则执行步骤S233,若否执行步骤S234;S233,将所述当前帧的读缓存地址赋值为所述当前帧前一帧的写缓存地址,以在编码时读取所述当前帧前一帧编码得到的参考帧数据,将写缓存地址赋值为所述两块编码缓存地址中除所述当前帧前一帧的写缓存地址外的另一者,以在当前帧是参考帧时存储所述当前帧编码得到的参考帧数据;S234,将所述当前帧的读缓存地址保持与所述当前帧前一帧的读缓存地址一致,以在编码时读取所述当前帧前一帧的参考帧编码得到的参考帧数据,将写缓存地址保持与所述当前帧前一帧的写缓存地址一致,以在当前帧是参考帧时存储所述当前帧编码得到的参考帧数据。8.根据权利要求7所述的H.264视频编码方法,其特征在于,
在步骤S210和S230中,将所述当前帧的所述第一标识写入所述当前帧的帧头部中的填充网络抽象层单元内。9.一种H.264视频编码装置,其特征在于,包括:第一一处理单元,用于判断当前帧的类型,若所述当前帧的类型是I帧则触发第一四处理单元和第一五处理单元工作,若所述当前帧的类型是P帧则触发第一二处理单元至第一五处理单元工作;第一二处理单元,用于判断所...

【专利技术属性】
技术研发人员:王桂宾徐会陈泽伟
申请(专利权)人:珠海市杰理科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利