CN110113602A - 一种h.264码率控制跳帧优化方法 - Google Patents

一种h.264码率控制跳帧优化方法 Download PDF

Info

Publication number
CN110113602A
CN110113602A CN201910322251.4A CN201910322251A CN110113602A CN 110113602 A CN110113602 A CN 110113602A CN 201910322251 A CN201910322251 A CN 201910322251A CN 110113602 A CN110113602 A CN 110113602A
Authority
CN
China
Prior art keywords
frame
skipping
present
bit
scale factor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910322251.4A
Other languages
English (en)
Inventor
武斌
董泽芳
李鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201910322251.4A priority Critical patent/CN110113602A/zh
Publication of CN110113602A publication Critical patent/CN110113602A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Abstract

本发明公开了一种H.264码率控制跳帧优化方法,解决了在场景切换或物体运动复杂的情况下缓冲器溢出或连续跳帧的技术问题。实现步骤包括:设置初始化相关参数;计算当前帧的目标比特和量化参数;设置跳帧相关阈值;计算当前帧的运动复杂度;计算当前帧的比特因子;对前3帧做特殊的跳帧处理;从第4帧开始,进行规范性的跳帧处理;编码当前帧;更新跳帧后的相关参数,对下一帧进行跳帧优化。本发明首先用运动复杂度代替MAD,其次对于不同的运动复杂度设置不同的缓冲器占有率,最后综合运动复杂度、缓冲器占有率、未编码帧的比特因子来判断是否跳帧。有效地提高了视频主观质量,主要用于码率控制跳帧优化。

Description

一种H.264码率控制跳帧优化方法
技术领域
本发明属于视频编解码技术领域,主要涉及码率控制,具体是一种H.264码率控制跳帧优化方法,用于有效控制跳帧,提高视频主观质量。
背景技术
由于H.264视频编码标准具有较高的压缩比、良好的网络亲和力和较强的抗误码能力,使得它在视频编码领域得到了广泛的应用。
通常来说,根据图像内容复杂度的变化,编码产生的码流也会随着变化,但信道带宽一般是固定的,这就会造成一种现象:当前帧的运动复杂度较高的时候,编码输出的码流比特比较高,往往超出信道带宽的输出能力;然而当前帧的运动复杂度较低的时候,编码输出的码流比特就比较低,信道带宽没有充分得到利用。所以为了防止信道带宽不够造成数据丢失,又不会浪费信道带宽,在码流发送到信道前,先暂时存储在一个缓冲器当中,来平滑码率,使得码流尽可能地以恒定比特率发往通信信道。
然而,在实际当中,上述的缓冲器很容易出现上溢和下溢的情况,造成数据的丢失,严重影响了视频的主观质量。所以最近几年,许多科研工作者提出了各种跳帧方法来防止缓冲区的上溢和下溢。
H.264编码标准的参考软件JM8.6采用的JVT-H017提案的码率控制提出了最为简单的跳帧策略。该算法仅仅根据当前缓冲区占用率的大小来判断是否跳帧,如果缓冲区占有率大于80%,就采取跳帧;否则不跳帧。当一帧未编码图像分配的平均比特比目标比特低时,如果不跳帧,编码的图像质量会很低,影响序列的整体质量。这种情况采用JVT-H017提案的策略就不合适。华南理工大学电子与信息学院蔡文霞等人在计算机科学与技术发表的一种有效的H.264码率控制跳帧算法提出的跳帧算法对缓冲区占有率设置了三个阈值,然后结合当前缓冲占有率和当前未编码的图像的运动剧烈程度来作为跳帧的判断依据,该算法使用MAD来衡量图像运动剧烈程度,但MAD值不能很好地反映运动的剧烈程度,只能反映当前帧和参考帧之间的相似度。浙江工业大学信息工程学院周骏华等人在浙江工业大学学报发表的一种基于运动复杂度的新的H.264码率控制跳帧算法提出预测码率与已编码帧平均码率之比作为图像复杂度,然后结合缓冲区占有率来判断是否采取跳帧策略,但该算法没有考虑后续未编码帧的情况。武汉大学国家多媒体软件工程技术研究中心周全等人在计算机工程与科学发表的H.264码率控制跳帧算法的优化提出了运动复杂度概念,并考虑了未编码帧的情况,但该算法对缓冲器占有率的阈值划分还是过于粗糙,对前3帧也没有做特殊的处理。
现有技术存在以下几个不足的地方:第一点,对于缓冲器占有率设置一个固定的阈值,仅当缓冲器占有率超过80%时,就跳帧,否则,就不跳帧。当缓冲器占有率为50%时,如果发生场景切换,当前帧产生的比特很大,很容易造成缓冲器上溢。第二点,尽管有些算法考虑了图像复杂度,但使用平均绝对误差(MAD)作为衡量图像复杂度的指标存在一定的局限性,MAD值不能很好地反映运动的剧烈程度,只能反映当前帧和参考帧之间的相似度,所以还需要利用其它的指标去衡量图像的复杂度。第三点,现有算法大部分仅考虑编码帧的影响,并很少考虑未编码帧的影响。当一帧未编码图像分配的平均预测比特比目标比特低时,如果不跳帧,编码的图像质量会很低,影响序列的整体质量。第四点,因为I帧和前几个P帧对于解码很重要,跳过其中的一帧对视频质量会造成很大的影响,所以应该对前3帧作特殊的处理,但现有的算法很少对前三帧作特殊的处理。
发明内容
本发明的目的在于针对上述现有技术存在的不足,提出一种有效控制跳帧,提高视频主观质量的H.264码率控制优化方法。
本发明是一种H.264码率控制跳帧优化方法,其特征在于,包括有如下步骤:
(1)设置初始化相关参数:设置目标码率;设置初始缓冲器占有率以及根据单位像素的平均目标比特设置初始量化参数;
(2)计算当前帧的目标比特和量化参数:根据目标码率和已经编码帧的总比特计算当前帧的目标比特,根据当前帧的目标比特计算当前帧的量化参数;
(3)设置跳帧相关阈值:设置缓冲器占有率bufi的4个阈值,设置运动复杂度Ci的4个阈值和未编码帧的比特因子ai的阈值;
(4)计算当前帧的运动复杂度Ci:根据已编码帧的实际码率,计算已编码帧的平均实际码率;根据前一帧的实际码率预测当前帧的目标码率;根据已编码帧的平均实际码率和当前帧的目标码率计算当前帧的运动复杂度;
(5)计算当前帧的比特因子:设当前帧(第i帧)的比特因子ai:计算一个图像组(GOP)的总目标比特,计算编码完第i-1帧之后的实际总比特,计算当前未编码帧(第i帧)的预测平均比特,最后计算第i帧的比特因子,其中i表示序列中的帧序号,比特因子ai表示当前未编码帧的预测平均比特和目标比特的比值;
(6)对前3帧做特殊的跳帧处理:对于第1帧(I帧),不采取跳帧,执行步骤(8),编码当前帧,对于第2帧和第3帧(前两个P帧),当缓冲器占有率大于80%时,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(8),编码当前帧;
(7)从第4帧开始,进行规范性的跳帧处理:通过比较缓冲器占有率bufi和缓冲器占有率的阈值判定跳帧与否,如果不能确定是否跳帧,进一步根据运动复杂度判断是否跳帧,如果还不能确定是否跳帧,再根据未编码帧的比特因子判断是否跳帧,如果确定跳帧,跳帧之后执行步骤(9),如果不跳帧,则执行步骤(8),编码当前帧;
(8)编码当前帧:对当前帧进行H.264编码处理,编码完之后执行步骤(9),更新跳帧后的相关参数,对下一帧进行跳帧优化;
(9)更新跳帧后的相关参数,对下一帧进行跳帧优化:根据前一帧的剩余总比特和当前帧编码产生的实际比特来更新当前帧的剩余总比特,根据前一帧的缓冲器占有率、编码完当前帧实际产生的比特和当前周期组(GOP)的平均帧率更新当前帧的缓冲器占有率,实现对当前帧的跳帧优化;返回步骤(2),循环执行步骤(2)~(9),实现H.264码率控制跳帧优化过程。
本发明首先对前3帧作特殊的跳帧处理,其次设置了4个缓冲器占有率的阈值,并用运动复杂度代替MAD,对于不同的缓冲器占有率设置不同的运动复杂度阈值,然后结合缓冲器占有率、运动复杂度、当前帧所分配的平均比特和目标比特的关系来判断是否跳帧。本发明尤其在场景切换或物体剧烈运动的情况下,能够得到良好的视频主观质量。
本发明与现有技术相比具有以下优点:
(1)因为I帧和前几个P帧对于解码很重要,跳过其中的一帧对视频质量会造成很大的影响。因此本发明针对前3帧作特殊的处理:对I帧不进行跳帧,对前两个P帧,仅当缓冲器占有率大于80%时,才跳帧。避免了前三帧没有特殊处理对视频质量造成的影响。
(2)避免缓冲器发生上溢:为了提前避免缓冲器发生上溢,随着当前缓冲器占有率变得越来越高,就需要更加频繁地判断缓冲器的状态,以免缓冲器发生上溢。假设当前缓冲器占有率为25%,当遇到场景切换或运动复杂的情况,尽管产生的码流体积很大,也不会超出缓冲器的空间。随着缓冲器占有率不断接近80%,就需要设置更加细致的阈值。因此本发明针对缓冲器占有率的阈值设置了4个阈值,具体为25%,50%,70%,80%,有效地避免了缓冲器发生上溢,保证了视频主观质量。
(3)避免意外跳过重要的帧:考虑到平均绝对误差(MAD)只能表示当前帧和参考帧之间的相似度,不能很好的表示运动的剧烈程度。视频序列中相邻帧的运动物体决定了运动的剧烈程度,如果一帧图像内的物体是静止的或者前后两帧图像之间仅有很小的差别,则这一帧相对于前一帧来说是低运动复杂度的帧。相反,如果相邻两个帧发生了场景切换或帧内物体在前一帧中找不到参考对象,那么这一帧对于前一帧而言是高运动复杂度的帧。通常,运动复杂度越高对应产生的比特数越高,反之亦然。所以本发明采用了由比特数计算的运动复杂度代替MAD作为衡量运动复杂度的标准。将缓冲器的占有率与运动复杂度结合起来能够更有效地控制缓冲器的占用量,从而避免了意外地跳过重要的帧,提高了图像的质量。
(4)控制连续跳帧:为了保证在缓冲器占有率越高的情况下,越容易发生跳帧,相反,在缓冲器占有率越低的情况,越不容易发生跳帧。本发明针对4个缓冲器占有率阈值设置了4个运动复杂度的阈值,有效地控制了连续跳帧,提高了图像质量。
(5)在用未编码帧的比特因子有效控制跳帧:以往的跳帧算法中,只考虑已编码帧的情况,并没有考虑未编码帧的情况,尤其是当未编码帧实际所分配的平均比特小于目标比特一定程度时,如果不跳帧,会导致编码后视频质量非常差,所以这时需要跳帧,并把当前帧所分配的比特平均分配给后面未编码帧,由于后面未编码帧多获得一些比特,使得编码后视频质量有所提高。基于上述原因,本发明由未编码帧分配的平均比特和目标比特计算的比值来表示未编码帧的比特因子,然后结合缓冲器占有率、运动复杂度和未编码帧的比特因子来判断是否跳帧,有效地控制了跳帧,提高了图像质量。
附图说明
图1是本发明跳帧判别流程示意图;
图2是本发明编码过程流程示意图。
具体实施方式
以下参照附图1,对本发明的技术方案和效果作详细说明。
实施例1:
在视频编解码中,当遇到拍摄的物体发生剧烈运动或场景发生切换时,编码产生的实际码率急剧增加,造成了缓冲器上溢,导致编码数据丢失,影响图像质量。为了解决这一问题,国内外相关研究人员提出了许多算法和方法,但这些方法仍存在一些不足之处:设置的阈值过于单一,复杂度算法不能很好反映图像的剧烈运动程度,没有考虑未编码帧的情况等等。本发明针对这些现状,展开了研究与创新,提出一种H.264码率控制跳帧优化方法,参见图1,包括如下步骤:
(1)设置初始化相关参数:设置目标码率T=targetBitRate;设置初始缓冲器占有率,最佳的值为20%;初始量化参数的计算公式如下所示:
其中,NP表示前一个GOP中P帧的总数;SumPQP表示前一个GOP中所有P帧的量化参数总和;表示为编码完第i-1个GOP之后剩余的总比特;Tr(ni,0)表示在第i个GOP开始之前,为第i个GOP分配的总比特数。I帧和第一个P帧都使用QPst编码。
(2)计算当前帧的目标比特和量化参数:根据步骤(1)设置的目标码率和已经编码帧的总比特计算当前帧的目标比特,最后根据当前帧的目标比特计算当前帧的量化参数。
(3)设置跳帧相关阈值为了提前避免缓冲器发生上溢,随着当前缓冲器占有率变得越来越高,就需要更加频繁地判断缓冲器的状态,以免缓冲器发生上溢。假设当前缓冲器占有率为25%,当遇到场景切换或运动复杂的情况,尽管产生的码流体积很大,也不会超出缓冲器的空间。随着缓冲器占有率不断接近80%,就需要设置更加细致的阈值。因此本发明针对缓冲器占有率的阈值设置了4个阈值,最佳值为25%,50%,70%,80%。
为了保证在缓冲器占有率越高的情况下,越容易发生跳帧,相反,在缓冲器占有率越低的情况,越不容易发生跳帧。本发明针对4个缓冲器占有率阈值设置了4个运动复杂度的阈值,最佳值为30%,50%,70%,80%。
在用未编码帧的比特因子有效控制跳帧:以往的跳帧算法中,只考虑已编码帧的情况,并没有考虑未编码帧的情况,尤其是当未编码帧实际所分配的平均比特小于目标比特一定程度时,如果不跳帧,会导致编码后视频质量非常差,所以这时需要跳帧,并把当前帧所分配的比特平均分配给后面未编码帧,由于后面未编码帧多获得一些比特,使得编码后视频质量有所提高。基于上述原因,本发明由未编码帧分配的平均比特和目标比特计算的比值来表示未编码帧的比特因子,最佳比特因子β为20%。
(4)计算当前帧的运动复杂度Ci:首先根据已编码帧的实际码率,计算已编码帧的平均实际码率;然后根据前一帧的实际码率预测当前帧的目标码率;最后根据已编码帧的平均实际码率和当前帧的目标码率计算当前帧的运动复杂度。
考虑到平均绝对误差(MAD)只能表示当前帧和参考帧之间的相似度,不能很好的表示运动的剧烈程度。视频序列中相邻帧的运动物体决定了运动的剧烈程度,如果一帧图像内的物体是静止的或者前后两帧图像之间仅有很小的差别,则这一帧相对于前一帧来说是低运动复杂度的帧。相反,如果相邻两个帧发生了场景切换或帧内物体在前一帧中找不到参考对象,那么这一帧对于前一帧而言是高运动复杂度的帧。通常,运动复杂度越高对应产生的比特数越高,反之亦然。所以本发明采用了由比特数计算的运动复杂度代替MAD作为衡量运动复杂度的标准。将缓冲器的占有率与运动复杂度结合起来能够更有效地控制缓冲器的占用量,从而避免了意外地跳过重要的帧,提高了图像的质量。
(5)计算当前帧的比特因子:设当前帧(第i帧)的比特因子ai:首先计算一个图像组(GOP)的总目标比特,然后计算编码完第i-1帧之后的实际总比特,接着计算当前未编码帧(第i帧)的预测平均比特,最后计算第i帧的比特因子,其中i表示序列中的帧序号,比特因子ai表示当前未编码帧的预测平均比特和目标比特的比值。
未编码帧的比特因子ai越大,则未编码帧分配的平均比特相对于目标比特越大,编码后的视频主观质量越高,反之亦然。
(6)对前3帧做特殊的跳帧处理:首先对于第1帧(I帧),不采取跳帧,执行步骤(8),编码当前帧,然后对于第2帧和第3帧(前两个P帧),当缓冲器占有率大于80%时,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(8),编码当前帧。
(7)从第4帧开始,进行规范性的跳帧处理:通过比较缓冲器占有率bufi和缓冲器占有率的阈值判定跳帧与否,如果不能确定是否跳帧,进一步根据运动复杂度判断是否跳帧,如果还不能确定是否跳帧,再根据未编码的当前帧的比特因子判断是否跳帧,如果确定跳帧,跳帧之后执行步骤(9),如果不跳帧,则执行步骤(8),编码当前帧;
(8)编码当前帧:对当前帧进行H.264编码处理,编码完之后执行步骤(9),更新跳帧后的相关参数,对下一帧进行跳帧优化。
(9)更新跳帧后的相关参数,对下一帧进行跳帧优化:首先根据前一帧的剩余总比特和当前帧编码产生的实际比特来更新当前帧的剩余总比特,然后根据前一帧的缓冲器占有率、编码完当前帧实际产生的比特和当前周期组(GOP)的平均帧率更新当前帧的缓冲器占有率,实现对当前帧的跳帧优化;返回步骤(2),循环执行步骤(2)~(9),实现H.264码率控制跳帧优化过程。
本发明的思路:在视频编解码领域,当遇到场景切换或剧烈运动的情况,会造成实际码率急剧上升,引起缓冲器上溢,导致数据丢失,影响图像质量。本发明,首先针对前3帧做特殊的处理,对I帧不进行跳帧,对前两个P帧,仅当缓冲器占有率大于80%时,才跳帧。其次,为了提前避免缓冲器占有率发生上溢,对缓冲器占有率设置了多个阈值。然后,采用运动复杂度替代MAD,充分利用了图像的剧烈运动程度,去判断跳帧。最后,利用未编码帧分配的平均预测比特和目标比特的关系,进行跳帧判断。
本发明以一个整体的技术方案,给出了一种H.264码率控制跳帧优化方法。尽可能地跳过一些运动平缓的图像,为潜在的运动剧烈的图像保留充足的缓冲器空间,有效地缓解了场景切换或物体剧烈运动造成的缓冲器上溢现象,保证了良好的图像质量。
码率控制在视频通信中是极其重要的一部分,在带宽有限的条件下,能够有效地通过跳帧技术防止缓冲器的上溢或下溢。但目前存在的跳帧算法都是基于缓冲器占有率和图像复杂度这两个方面作为跳帧的判断依据,一方面,基于缓冲器占有率的判断条件过于粗糙;另一方面,尽管图像复杂度能够反映视频序列的运动剧烈程度,但是并不能完全刻画相邻帧的时域相关性,从而影响视频编码质量。针对上面两方面的问题,首先用运动复杂度代替MAD,其次对于不同的缓冲器占有率阈值设置不同的运动复杂度阈值,最后综合运动复杂度、缓冲器占有率、未编码帧所分配的平均比特和目标比特之间的关系来判断是否跳帧。本发明提出的H.264码率控制跳帧优化方法在场景切换或物体运动复杂的情况,能够有效控制跳帧,提高视频质量。
实施例2:
一种H.264码率控制跳帧优化方法同实施例1,步骤(3)所述的设置跳帧相关阈值,包括设置缓冲器占有率bufi的4个阈值、运动复杂度Ci的4个阈值和未编码帧的比特因子ai的阈值,具体包括:
(3a)设置缓冲器占有率bufi的4个阈值,分别为B1=25%,B2=50%,B3=60%,B4=80%。
(3b)设置运动复杂度Ci的4个阈值,实验得出4个阈值分别为c1=30%,c2=50%,c3=60%,c4=80%。
(3c)设置未编码帧的比特因子阈值β为60%。
本发明首先通过设置4个缓冲器占有率的阈值,分别对应4个缓冲器占有率,不仅避免了缓冲器占有率过低浪费带宽,而且防止了缓冲器占用率过高发生上溢而丢失数据。其次通过设置4个不同的运动复杂度的阈值,而且c1<c2<c3<c4,通过对4个不同程度的缓冲器占有率的阈值对应地设置4个不同的运动复杂度的阈值,保证了在缓冲器占有率越高的情况下,越容易发生跳帧,在缓冲器占有率越低的情况,越不容易发生跳帧。当前帧所分配的实际比特低于目标比特的60%时,当前帧的峰值信噪比很低,影响视频质量,通过设置当前帧的比特因子为0.6,很好地解决了这个问题。最后使用运动复杂度代替平均绝对误差(MAD),因为MAD值主要反映的是当前帧图像与参考帧图像的关系,并不能很好地反映图像的运动剧烈程度。所以本发明使用运动复杂度代替了MAD,很好地反映了帧与帧之间的关系而且反映了图像的运动剧烈程度。
实施例3:
一种H.264码率控制优化方法同实施例1-2,本发明步骤(7)所述的从第4帧开始,进行规范性的跳帧处理,包括有如下步骤:
(7.1)比较缓冲器占有率bufi和缓冲器占有率的阈值Bj的大小,j=1,2,3,4,如果bufi>Bj,则继续比较bufi和Bj+1的大小,一直到bufi和B4的大小,如果bufi>B4,则跳帧,跳帧之后执行步骤(9)。
(7.2)根据运动复杂度判断是否跳帧:如果缓冲器占有率bufi<Bj,j=1,2,3,4,则进一步根据运动复杂度判断是否跳帧,如果运动复杂度大于运动复杂度阈值,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(7.3)。
(7.3)根据未编码帧的比特因子判断是否跳帧:如果未编码帧的比特因子小于未编码帧的比特因子的阈值,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(8),对当前帧进行编码处理。
本发明针对缓冲器占有率的阈值设置了4个阈值,具体为25%,50%,70%,80%,有效地避免了缓冲器发生上溢,保证了视频主观质量。其次采用了由比特数计算的运动复杂度代替MAD作为衡量运动复杂度的标准。将缓冲器的占有率与运动复杂度结合起来能够更有效地控制缓冲器的占用量,从而避免了意外地跳过重要的帧,提高了图像的质量。最后由未编码帧分配的平均比特和目标比特计算的比值来表示未编码帧的比特因子,然后结合缓冲器占有率、运动复杂度和未编码帧的比特因子来判断是否跳帧,有效地控制了跳帧,提高了图像质量。
下面从实现和计算的角度对本发明的技术方案做进一步说明。
实施例4:
一种H.264码率控制优化方法同实施例1-3,参见图1,包括如下步骤:
(1)设置初始化相关参数:设置目标码率;设置初始缓冲器占有率以及根据单位像素的平均目标比特设置初始量化参数。
(1a)设置目标码率。
(1b)设置初始缓冲器占有率。
(1c)设置初始量化参数,公式如下所示:
bpp=u(n0,0)/(Fr*Npixel)
其中,bpp表示每像素比特数;u(n0,0)表示初始可用信道带宽,Npixel表示一帧图像中的像素总数。对于QCIF/CIF图像来说,l1,l2,l3分别为0.15,0.45,0.9;对于其他尺寸的图像,l1,l2,l3分别为0.6,1.4,2.4。
(2)计算当前帧的目标比特和量化参数:根据目标码率和已经编码帧的总比特计算当前帧的目标比特,根据当前帧的目标比特计算当前帧的量化参数。
假设T表示目标比特,F表示帧率;GOP的长度为Ngop,已经编码的帧数为N,未编码的帧数为Nr,S(i)表示编码完第i帧后产生的的实际比特,则表示每帧的目标比特。
一个GOP的总目标比特Tgop的计算公式如下:
编码完第j-1帧之后,已经编码帧分配的实际总比特的计算公式如下:
当前帧(第j帧)的目标比特的计算公式如下:
(3)设置跳帧相关阈值:设置缓冲器占有率的4个阈值,设置运动复杂度的4个阈值和未编码帧的比特因子的阈值。
(4)计算当前帧的运动复杂度Ci,计算公式如下所示:
其中,Bj表示已编码帧的实际码率;B(p,i)表示根据前一帧的实际码率预测的当前这一帧的目标码率,计算公式如下:
其中,B(p,i)表示前一帧的实际码率;表示预测系数;编码完一帧后需要按下式更新:
其中,Bi表示当前这一帧的实际码率。
(5)计算当前帧的比特因子
未编码当前帧(第j帧)的比特因子计算公式如下:
未编码的当前帧的比特因子越大,图像的质量越高。
(6)跳帧处理,
现在存在的跳帧算法大部分都是在缓冲器占有率超过80%时,不考虑下一帧的情况直接跳帧,本发明提出的方法设置了4个阈值(C1,C2,C3,C4),根据实验得出4个阈值分别为0.3,0.5,0.6,0.8,比特因子的阈值β为0.6,结合编码器占有率bufi、运动复杂度Ci和未编码帧的比特因子ai来判断是否跳帧。
对前3帧做特殊的跳帧处理,首先对于第1帧(I帧),不采取跳帧,执行步骤(7),编码当前帧,然后对于第2帧和第3帧(前两个P帧),当缓冲器占有率大于80%时,则跳帧,跳帧之后执行步骤(8),否则,执行步骤(7),编码当前帧;
本发明对前3帧作的特殊处理,避免了前三帧没有特殊处理对视频质量造成的影响。
从第4帧开始,进行规范性的跳帧处理:通过比较缓冲器占有率bufi和缓冲器占有率的阈值判定跳帧与否,如果不能确定是否跳帧,进一步根据运动复杂度判断是否跳帧,如果还不能确定是否跳帧,再根据未编码帧的比特因子判断是否跳帧,如果确定跳帧,跳帧之后执行步骤(8),如果不跳帧,则执行步骤(7),编码当前帧。
(6a)当bufi<25%时,若Ci<C1时,即这一帧和前一帧的变化很小,跳过这一帧,并不会造成视觉上的跳跃,因此跳帧,跳帧之后执行步骤(8)。若Ci>C1,则需要额外考虑未编码的比特因子ai。若ai<β,表明在缓冲器的占有率很低、图像复杂度很大和当前未编码帧分配的比特少于目标比特,则跳帧,跳帧之后执行步骤(8)。因为如果不跳帧,编码图像质量就会受到很大的影响。相反,若ai>β,表明在缓冲器的占有率很低、图像复杂度很大和当前未编码帧分配的比特大于目标比特时,能够保证良好的编码图像质量,则不跳帧,执行步骤(7)。
(6b)当25%<bufi<50%时,若Ci<C2,则跳帧。若Ci>C2,还需要额外考虑未编码的比特因子ai。若ai<β,则跳帧,跳帧之后执行步骤(8)。相反,若ai>β,则不跳帧,执行步骤(7)。
(6c)当50%<bufi<60%时,若Ci<C3,则跳帧。若Ci>C3,还需要额外考虑未编码的比特因子ai。若ai<β,则跳帧,跳帧之后执行步骤(8)。相反,若ai>β,则不跳帧,执行步骤(7)。
(6d)当60%<bufi<80%时,若Ci<C4,则跳帧。若Ci>C4,还需要额外考虑未编码的比特因子ai。若ai<β,则跳帧,跳帧之后执行步骤(8)。相反,若ai>β,则不跳帧,执行步骤(7)。
(6e)当bufi>80%时,不需要再其他因素直接跳帧,跳帧之后执行步骤(8)。因为此时缓冲器占有率很高,如果不跳帧,很可能导致缓冲器上溢,造成数据泄露。
(7)编码当前帧:对当前帧进行H.264编码处理,编码完之后执行步骤(9),更新跳帧后的相关参数,对下一帧进行跳帧优化。
(8)更新跳帧后的相关参数,对下一帧进行跳帧优化:首先根据前一帧的剩余总比特和当前帧编码产生的实际比特来更新当前帧的剩余总比特,然后根据前一帧的缓冲器占有率、编码完当前帧实际产生的比特和当前周期组(GOP)的平均帧率更新当前帧的缓冲器占有率。
(8a)跟新跳帧之后的剩余总比特
因为跳过当前帧后,需要把分配给当前帧的比特平均分配给剩余的未编码帧,计算公式如下:
(8b)更新当前帧的缓冲器占有率
当前帧的缓冲占有率等于前一帧的缓冲器占有率加上编码完当前帧实际分配的占有率再减去平均帧率,但当前帧跳过之后,没有实际的码流进入缓冲器,所以跟新公式如下:
bufi=bufi-1-T/F
完成上述更新之后,返回步骤(2),循环执行步骤(2)~(8),实现H.264码率控制跳帧优化过程。
简而言之,本发明公开的一种H.264码率控制跳帧优化方法,具体步骤如下:1)设置初始化相关参数;2)计算当前帧的目标比特和量化参数;3)设置跳帧相关阈值;4)计算当前帧的运动复杂度Ci;5)计算当前帧的比特因子;6)对前3帧做特殊的跳帧处理;7)从第4帧开始,进行规范性的跳帧处理;8)编码当前帧;9)更新跳帧后的相关参数,对下一帧进行跳帧优化。本发明首先用运动复杂度代替MAD,其次对于不同的运动复杂度设置不同的缓冲器占有率,最后综合运动复杂度、缓冲器占有率、未编码帧所分配的平均比特和目标比特之间的关系来判断是否跳帧,有效控制了缓冲器溢出或连续跳帧的问题,提高了视频主观质量。本发明主要用于码率控制跳帧优化。

Claims (3)

1.一种H.264码率控制跳帧优化方法,其特征在于,包括有如下步骤:
(1)设置初始化相关参数:设置目标码率;设置初始缓冲器占有率以及根据单位像素的平均目标比特设置初始量化参数;
(2)计算当前帧的目标比特和量化参数:根据目标码率和已编码帧的总比特计算当前帧的目标比特,根据当前帧的目标比特计算当前帧的量化参数;
(3)设置跳帧相关阈值:设置缓冲器占有率bufi的4个阈值,设置运动复杂度Ci的4个阈值和当前帧的比特因子ai的阈值;
(4)计算当前帧的运动复杂度Ci:根据已编码帧的实际码率,计算已编码帧的平均实际码率;根据前一帧的实际码率预测当前帧的目标码率;根据已编码帧的平均实际码率和当前帧的目标码率计算当前帧的运动复杂度Ci
(5)计算当前帧的比特因子:设当前帧的比特因子ai:计算一个图像组的总目标比特,计算编码完第i-1帧之后的实际总比特,计算未编码的当前帧的预测平均比特,最后计算第i帧的比特因子,其中i表示序列中的帧序号,比特因子ai表示当前未编码帧的预测平均比特和目标比特的比值;
(6)对前3帧做特殊的跳帧处理:对于第1帧,不采取跳帧,执行步骤(8),编码当前帧,对于第2帧和第3帧,当缓冲器占有率大于80%时,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(8),编码当前帧;
(7)从第4帧开始,进行规范性的跳帧处理:通过比较缓冲器占有率bufi和缓冲器占有率的阈值判定跳帧与否,如果不能确定是否跳帧,进一步根据运动复杂度判断是否跳帧,如果还不能确定是否跳帧,再根据当前帧的比特因子判断是否跳帧,如果确定跳帧,跳帧之后执行步骤(9),如果确定不跳帧,则执行步骤(8),编码当前帧;
(8)编码当前帧:对当前帧进行H.264编码处理,编码完之后执行步骤(9),更新跳帧后的相关参数,对下一帧进行跳帧优化;
(9)更新跳帧后的相关参数,对下一帧进行跳帧优化:根据前一帧的剩余总比特和当前帧编码产生的实际比特来更新当前帧的剩余总比特,根据前一帧的缓冲器占有率、编码完当前帧实际产生的比特和当前周期组的平均帧率更新当前帧的缓冲器占有率,实现对当前帧的跳帧优化;返回步骤(2),循环执行步骤(2)~(9),实现H.264码率控制跳帧优化过程。
2.根据权利要求1所述的一种H.264码率控制跳帧优化方法,其特征在于,步骤(3)所述的设置跳帧相关阈值,包括设置缓冲器占有率bufi的4个阈值、运动复杂度Ci的4个阈值和当前帧的比特因子ai的阈值,具体包括:
(3a)设置缓冲器占有率bufi的4个阈值,分别为B1=25%,B2=50%,B3=70%,B4=80%;
(3b)设置运动复杂度Ci的4个阈值,实验得出4个阈值分别为c1=30%,c2=50%,c3=70%,c4=80%;
(3c)设置当前帧的比特因子阈值β为60%。
3.根据权利要求1所述的一种H.264码率控制跳帧优化方法,其特征在于,步骤(7)所述的从第4帧开始,进行规范性的跳帧处理,包括有如下步骤:
(7.1)比较缓冲器占有率bufi和缓冲器占有率的阈值Bj的大小,j=1,2,3,4,如果bufi>Bj,则继续比较bufi和Bj+1的大小,一直到bufi和B4的大小,如果bufi>B4,则跳帧,跳帧之后执行步骤(9);
(7.2)根据运动复杂度判断是否跳帧:如果缓冲器占有率bufi<Bj,j=1,2,3,4,则进一步根据运动复杂度判断是否跳帧,如果运动复杂度大于运动复杂度阈值,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(7.3);
(7.3)根据当前帧的比特因子判断是否跳帧:如果当前帧的比特因子小于当前帧的比特因子的阈值,则跳帧,跳帧之后执行步骤(9),否则,执行步骤(8),对当前帧进行编码处理。
CN201910322251.4A 2019-04-22 2019-04-22 一种h.264码率控制跳帧优化方法 Pending CN110113602A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910322251.4A CN110113602A (zh) 2019-04-22 2019-04-22 一种h.264码率控制跳帧优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910322251.4A CN110113602A (zh) 2019-04-22 2019-04-22 一种h.264码率控制跳帧优化方法

Publications (1)

Publication Number Publication Date
CN110113602A true CN110113602A (zh) 2019-08-09

Family

ID=67486105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910322251.4A Pending CN110113602A (zh) 2019-04-22 2019-04-22 一种h.264码率控制跳帧优化方法

Country Status (1)

Country Link
CN (1) CN110113602A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111135569A (zh) * 2019-12-20 2020-05-12 RealMe重庆移动通信有限公司 云游戏处理方法、装置、存储介质与电子设备
CN114726400A (zh) * 2022-03-31 2022-07-08 成都信息工程大学 一种盲跳频图案fhss信号去跳频方法
CN116761036A (zh) * 2023-08-21 2023-09-15 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005341601A (ja) * 2005-06-08 2005-12-08 Mitsubishi Electric Corp 動画像符号化装置
CN101394554A (zh) * 2008-09-28 2009-03-25 湖北科创高新网络视频股份有限公司 一种自适应跳帧方法和装置
CN101877784A (zh) * 2009-04-30 2010-11-03 上海华平软件技术有限公司 一种适用于实时应用的h.264码率控制方法
US20110002381A1 (en) * 2009-07-02 2011-01-06 Dialogic Corporation Bitrate control algorithm for video transcoding systems
CN106550237A (zh) * 2015-09-16 2017-03-29 中国科学院深圳先进技术研究院 一种监控视频压缩方法
CN106657855A (zh) * 2016-12-16 2017-05-10 西北工业大学 一种适用于无人机spi接口视频码率控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005341601A (ja) * 2005-06-08 2005-12-08 Mitsubishi Electric Corp 動画像符号化装置
CN101394554A (zh) * 2008-09-28 2009-03-25 湖北科创高新网络视频股份有限公司 一种自适应跳帧方法和装置
CN101877784A (zh) * 2009-04-30 2010-11-03 上海华平软件技术有限公司 一种适用于实时应用的h.264码率控制方法
US20110002381A1 (en) * 2009-07-02 2011-01-06 Dialogic Corporation Bitrate control algorithm for video transcoding systems
CN106550237A (zh) * 2015-09-16 2017-03-29 中国科学院深圳先进技术研究院 一种监控视频压缩方法
CN106657855A (zh) * 2016-12-16 2017-05-10 西北工业大学 一种适用于无人机spi接口视频码率控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘晓明等: "实时视频编码中的低复杂度码率控制算法设计", 《重庆大学学报》 *
周全等: "H.264码率控制跳帧算法的优化", 《计算机工程与科学》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111135569A (zh) * 2019-12-20 2020-05-12 RealMe重庆移动通信有限公司 云游戏处理方法、装置、存储介质与电子设备
CN111135569B (zh) * 2019-12-20 2024-01-19 RealMe重庆移动通信有限公司 云游戏处理方法、装置、存储介质与电子设备
CN114726400A (zh) * 2022-03-31 2022-07-08 成都信息工程大学 一种盲跳频图案fhss信号去跳频方法
CN114726400B (zh) * 2022-03-31 2023-08-04 成都信息工程大学 一种盲跳频图案fhss信号去跳频方法
CN116761036A (zh) * 2023-08-21 2023-09-15 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质
CN116761036B (zh) * 2023-08-21 2023-11-14 北京中关村科金技术有限公司 视频编码方法及装置、电子设备、计算机可读存储介质

Similar Documents

Publication Publication Date Title
JP4988567B2 (ja) マルチパスのビデオ符号化
US8594190B2 (en) Encoding with visual masking
CN102006471B (zh) 视频编码的图片级速率控制
CN110113602A (zh) 一种h.264码率控制跳帧优化方法
US8406293B2 (en) Multi-pass video encoding based on different quantization parameters
JP5351040B2 (ja) 映像符号化規格に対応した映像レート制御の改善
CN102630013B (zh) 基于场景切换的码率控制视频压缩方法和装置
Yuan et al. Spatial and temporal consistency-aware dynamic adaptive streaming for 360-degree videos
CN1223199C (zh) 使用比特预算执行视频编码速率控制的方法
JP2000102008A (ja) ビットレ―ト制御方法
US20050226321A1 (en) Method and system for two-pass video encoding using sliding windows
CN105898306A (zh) 用于运动视频的码率控制方法及装置
CN100574442C (zh) 基于图像直方图的码率控制方法
EP4333433A1 (en) Video coding method and apparatus, and electronic device
CN103517080A (zh) 实时视频流编码器和实时视频流编码方法
Zhou et al. Complexity-based intra frame rate control by jointing inter-frame correlation for high efficiency video coding
US20120281757A1 (en) Scene change detection for video transmission system
US20060034369A1 (en) Method and system for parametric video quality equalization in selective re-encoding
CN108924555A (zh) 一种适用于视频切片的码率控制比特分配方法
Xu et al. New rate control optimization algorithm for HEVC aiming at discontinuous scene
Chi et al. Region-of-interest video coding by fuzzy control for H. 263+ standard
CN114513664B (zh) 视频帧编码方法、装置、智能终端及计算机可读存储介质
CN106331705B (zh) 一种新的hevc码率控制gop级比特分配方法
Liu et al. Improved methods for initializing RQ model parameters and quantization parameter in H. 264 rate control
US8862758B1 (en) System and method for controlling one or more media stream characteristics

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190809