CN112788335A - 一种适用于实时视频传输的h.264帧级码率控制方法 - Google Patents

一种适用于实时视频传输的h.264帧级码率控制方法 Download PDF

Info

Publication number
CN112788335A
CN112788335A CN202011578379.6A CN202011578379A CN112788335A CN 112788335 A CN112788335 A CN 112788335A CN 202011578379 A CN202011578379 A CN 202011578379A CN 112788335 A CN112788335 A CN 112788335A
Authority
CN
China
Prior art keywords
size
frame
quantization parameter
coding
target
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.)
Granted
Application number
CN202011578379.6A
Other languages
English (en)
Other versions
CN112788335B (zh
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.)
Parallel Cloud Technology Beijing Co ltd
Original Assignee
Parallel Cloud Technology Beijing Co ltd
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 Parallel Cloud Technology Beijing Co ltd filed Critical Parallel Cloud Technology Beijing Co ltd
Priority to CN202011578379.6A priority Critical patent/CN112788335B/zh
Publication of CN112788335A publication Critical patent/CN112788335A/zh
Application granted granted Critical
Publication of CN112788335B publication Critical patent/CN112788335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/124Quantisation
    • 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/146Data rate or code amount at the encoder output
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation

Abstract

本申请提供一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,包括:步骤1:基于视频的运动速度计算当前的目标帧率;步骤2:根据所述目标帧率确定适用于全局运动视频的编码量化参数;或者根据所述目标帧率确定适用于局部运动视频的编码量化参数;步骤3:利用步骤2得到的编码量化参数来控制编码器进行编码。本申请通过基于应用运动状态的帧率控制来动态调整编码帧率,使得编码帧率不再是单单和系统性能相关,而且和应用的内容相关,并根据不同的应用具有不同的编码规律的特点,分别提出了两种不同的码率控制方法,用户可以根据应用的特点进行适应性选择。

Description

一种适用于实时视频传输的H.264帧级码率控制方法
技术领域
本申请涉及视频编码技术领域,具体而言,涉及一种适用于实时视频传输的H.264帧级码率控制方法。
背景技术
虽然码率控制并非视频编码标准的组成部分,但在视频编码器的控制使用中占据着十分重要的作用。视频编码中的码率控制主要分为两个部分,分别是码率分配和码率控制,码率分配的过程是为每图像组(GOP)、每帧或者每个宏块分配比特数的过程,而码率控制则是利用编码参数对图像进行编码以满足码率分配指标的过程。
现有的编码器一般在实现的时候是把编码标准和码率控制部分集成在一起的,并提供几种码率控制模式供用户选择,但这种通用的码率控制模式并不一定适用于所有的视频编码应用,其适用的范围有限,因此为了使编码器的码率控制和自己的应用相匹配,用户就需要透彻的分析源代码进行修改,并添加适合于自己应用的速率控制模式,这需要很大的工作量,在使用的时候极不灵活。这种编码器的实现方式决定了其具有一定的局限性。比如:
(1)目标帧率的提供方法是根据系统的处理能力来决定的,比如 webrtc(网页实时通讯)就是在采样、编码和传输的能力之间,根据系统处理的能力取最小值,可能存在采样或编码之后的帧不会最终被传输的情形,从而造成了资源的浪费;
(2)一般的速率控制算法在用于视频通信的时候,背景变化越慢,编码帧率越高,相反则编码帧率越低。但从人眼视觉的角度来考虑,对于变化快的图像,应该适当的提高帧率,而变化越慢的场景,则应该控制在基本帧率,适当提高图像质量,因为背景变化越平缓,人眼在上面的时间越长,关注细节的时间越长,因此需要提供更优的编码参数;
(3)码率控制的方法没有和具体应用的类型相关,即没有针对不同的应用类型提供不同的码率控制方法。
因此,如何提供一种与具体的应用类型相匹配的更优质的码率控制方法是目前亟待解决的技术问题。
发明内容
有鉴于此,本申请提供一种适用于实时视频传输的H.264帧级码率控制方法,以使用户可根据具体应用适应性的使用不同的码率控制方法。本申请方案如下:
一种适用于实时视频传输的H.264帧级码率控制方法,包括:
步骤1:基于视频的运动速度计算当前的目标帧率;
步骤2:根据所述目标帧率确定适用于全局运动视频的编码量化参数;或者根据所述目标帧率确定适用于局部运动视频的编码量化参数;
步骤3:利用步骤2得到的编码量化参数来控制编码器进行编码。
可选的,所述基于视频的运动速度计算当前的目标帧率的方法为:
步骤1.1:预先设定视频的最小帧率fpsmin和最大帧率fpsmax、最大运动速度vmax;采集视频帧,基于某个预先设定好的量化参数对视频进行预先编码,获得宏块的平均运动向量(mvx,mvy);
步骤1.2:根据所述平均运动向量计算宏块的平均运动距离:
Figure DEST_PATH_IMAGE001
步骤1.3:根据当前帧和上一帧的时间差t,计算宏块的平均运动速度 v=dis/t和归一化的运动速度vn=v/vmax
步骤1.4:根据公式
Figure DEST_PATH_IMAGE002
来计算当前的目标帧率fpst,其中p为幂指数。
可选的,所述根据所述目标帧率确定适用于全局运动视频的编码量化参数的具体步骤为:
步骤2.1-1:基于所述目标帧率fpst,根据网络调速器的调速周期 intervalpace和一个调速周期发送字节数bytespace预测下一帧编码后的目标尺寸 sizet,预测公式为sizet=1000×bytespace÷fpst÷intervaipace
步骤2.1-2:基于上一帧编码的实际量化参数qplast来对当前帧进行预编码,获得预编码后的绝对变换差和satdpre以及预编码后的帧大小sizepre
步骤2.1-3:判断预编码后的帧大小sizepre和目标编码帧大小sizet的关系,如果预编码后的帧大小大于目标编码帧大小,则转向步骤2.1-4,否则,转向步骤2.1-5;
步骤2.1-4:根据公式size=αqp×satd÷qpstep来预测量化参数qp分别为 qplast+1,qplast+2,…,qplastqp时对当前帧进行编码后的编码帧大小,得到sizelast+1,sizelast+2,…,sizelast+Δqp,其中qpstep=2.0(qp-4)÷6.0,αqp是相应的量化参数对应的系数,Δqp为预先确定的量化参数变化范围;并计算预编码后的帧大小和目标编码帧大小之差的绝对值Δs0=|sizepre-sizet|,Δs1=|sizelast+1-sizet|,…,Δsqp=|sizelast+Δqp-sizet|;取绝对差值最小者对应的量化参数qpsmin为对当前帧实际编码的量化参数;
步骤2.1-5:根据公式size=αqp×satd÷qpstep来预测量化参数qp分别为 qplast-1,qplast-2,…,qplastqp时对当前帧进行编码后的编码帧大小,得到 sizelast-1,sizelast-2,…,sizelast-Δqp,并计算预编码后的帧大小和目标编码帧大小之差的绝对值Δs0=|sizepre-sizet|,Δs1=|sizelast-1-sizet|,…,Δsqp=|sizelast-Δqp-sizet|;取绝对差值最小者对应的量化参数qpsmin为对当前帧实际编码的量化参数。
可选的,所述步骤2.1-5之后还包括:
步骤2.1-6:利用编码结果信息来更新相应的系数αqp;更新的基本公式为:coef=size*qstep÷satd,αqp=0.5×αqp+0.5×coef,其中size为本次编码后的帧大小,satd为本次编码的实际绝对变换差和,qstep为按照公式qpstep=2.0(qp-4}÷60计算出来结果。
可选的,所述根据所述目标帧率确定适用于局部运动视频的编码量化参数的具体步骤为:
步骤2.2-1:利用与上一帧编码同样的量化参数qppre来对当前帧进行预先编码,得到预编码后的帧大小sizepre
步骤2.2-2:基于公式sizet=1000×bytespace÷fpst÷intervalpace来计算当前帧的目标编码大小sizet,intervalpace为网络调速器的调速周期,bytespace为一个调速周期发送字节数;
步骤2.2-3:如果预编码后的帧大小sizepre和目标编码大小sizet之间的关系满足|sizepre-sizet|≤0.08×sizet,则把预编码结果作为对当前帧实际编码的结果,否则转到步骤2.2-4;
步骤2.2-4:如果sizepre>2×sizet,则量化参数取值为min(qppreqp,qpmax),Δqp为预先确定的量化参数变化范围,qpmax为对应用进行视频编码的最大量化参数,否则,转到步骤2.2-5;
步骤2.2-5:如果sizet>sizepre,则对当前帧的编码量化参数取值为 max(qppre-1,qpmin),否则量化参数取值为min(qppre+1,qpmax),qpmin为对应用进行视频编码的最小量化参数。
可选的,所述步骤2之后还包括:
根据所述量化参数调整所述目标帧率。
可选的,所述根据所述量化参数调整所述目标帧率的具体方法为:
(1)判断编码的连续N帧的量化参数是否为qpmax或者qpmin
(2)若编码的连续N帧的量化参数为qpmax,则通过公式p=p+pstep来调节幂指数,并进一步根据公式
Figure 4
来调整目标帧率,以使得目标帧率在fpsmin和fpsmax之间;
若编码的连续N帧的量化参数为qpmin,则通过公式p=p-pstep来调节幂指数,并进一步根据公式
Figure 3
来调整目标帧率,以使得目标帧率在fpsmin和fpsmax之间;
所述N为预定值,pstep为调节步长,qpmax和qpmin分别为对应用进行视频编码的最大量化参数和最小量化参数。
可选的,所述步骤(2)之后还包括:
(3)根据计算出来的目标帧率,控制视频采集的周期为 interval=1000÷fpst
本发明与现有技术相比具有下列好处:
1、应用相关性
现有的码率控制算法是完全和应用独立的,而本申请通过基于应用运动状态的帧率控制来动态调整编码帧率,使得编码帧率不再是单单和系统性能相关,而且和应用的内容相关,并根据不同的应用具有不同的编码规律的特点,分别提出了两种不同的码率控制方法,用户可以根据应用的特点进行适应性选择;
2、编码器和速率控制分离
本申请中,编码器部分只实现编码标准中规定的部分,码率控制部分可以完全由用户来实现,具有更好的灵活性,此外,把码率控制从编码器中分离出来,结合网络调速器的实际发送速率来指导每一帧的采集和编码工作,从而避免不必要的资源浪费。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1.1-1.4为现有的实际应用编码中量化参数和编码帧大小之间的关系图;
图2.1为全局运动视频的绝对变换差和与编码帧大小之间的关系图;
图2.2为局部运动视频的绝对变换差和与编码帧大小之间的关系图;
图3为现有的视频通信码率控制原理图;
图4为本申请中视频控制码率控制原理图;
图5为基于全局运动视频的编码量化参数进行编码的实施效果图;
图6为基于局部运动视频的编码量化参数进行编码的实施效果图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
图1.1-1.4为现有的实际应用编码中量化参数和编码帧大小之间的关系图,即qp-size关系图,该图说明很多时候量化参数和编码帧大小之间的规律是无法准确预测的;图2.1为全局运动视频的绝对变换差和satd与编码帧大小size之间的关系图,两者具有很强的相关性,因此可以根据satd 来预测编码后的帧大小。图2.2是某个局部运动视频的绝对变换差和satd 与编码帧大小size之间的关系图,二者之间相关性极小,因此是不能有效的通过satd来对帧大小进行预测的。也即,传统的基于SAD、SATD等失真度测量指标来预测编码帧大小的方法并不完全适用于所有的应用场景。
有鉴于此,本申请提出了一种根据应用的特点进行针对性的码率控制的方法,并针对两类不同的应用(全局运动的视频和局部运动的视频)设计了两种不同的码率控制算法。
图4为本申请中视频通信码率控制原理图,其基本的工作流程如下:
(a)帧率决策器根据采集到的帧运动信息来动态的确定适合的帧率,并根据当前的目标帧率来决定何时采集下一帧;
(b)带宽估计器负责根据数据包的发送和接收信息来确定当前传输通道上的带宽,把目标码率传递给网络传输控制器,网络传输控制器使用调速算法来适应目标码率,并决定何时发送数据包;
(c)量化参数决策器根据网络调速器在调速间隔内发送的数据速率以及帧率决策器传递过来的目标帧率确定当前帧的目标编码大小,并根据相应的算法来确定量化参数,控制视频编码器进行编码;
(d)编码器输出的编码帧发送给网络传输控制器,根据调速算法依次的发送相应的数据包。
图3为现有的视频通信码率控制原理图,其中视频采集、视频编码和网络传输是独立的。比较图3和图4可知,本申请中,编码器部分只实现编码标准中规定的部分,码率控制部分可以完全由用户来实现,具有更好的灵活性,此外,把码率控制从编码器中分离出来,结合网络调速器的实际发送速率来指导每一帧的采集和编码工作,从而避免不必要的资源浪费。
基于上述原理,本申请所提出的码率控制方法如下:
一种适用于实时视频传输的H.264帧级码率控制方法,包括:
步骤1:基于视频的运动速度计算当前的目标帧率;
步骤2:根据所述目标帧率确定适用于全局运动视频的编码量化参数;或者根据所述目标帧率确定适用于局部运动视频的编码量化参数;
步骤3:利用步骤2得到的编码量化参数来控制编码器进行编码。
本申请主要针对H.264编码的帧级码率控制,比较适用于在硬件编码器上实现,用于视频通信。通过基于应用运动状态的帧率控制来动态调整编码帧率,使得编码帧率不再是单单和系统性能相关,而且和应用的内容相关,并根据不同的应用具有不同的编码规律的特点,分别提出了两种不同的码率控制方法,即适用于全局运动视频的码率控制方法和适用于局部运动视频的码率控制方法,用户可以根据应用的特点进行适应性选择,因此本申请方法灵活性更强。
具体的,所述基于视频的运动速度计算当前的目标帧率的方法为:
步骤1.1:预先设定视频的最小帧率fpsmin和最大帧率fpsmax、最大运动速度vmax;采集视频帧,基于某个预先设定好的量化参数对视频进行预先编码,获得宏块的平均运动向量(mvx,mvy);
步骤1.2:根据所述平均运动向量计算宏块的平均运动距离:
Figure DEST_PATH_IMAGE003
步骤1.3:根据当前帧和上一帧的时间差t,计算宏块的平均运动速度 v=dis/t和归一化的运动速度vn=v/vmax
步骤1.4:根据公式
Figure DEST_PATH_IMAGE004
来计算当前的目标帧率fpst,其中p为幂指数。
在实际操作中,所述幂指数p的初始值可设置为2.0,其可根据需要在 0-2之间动态调整,且每次调整量为0.1。
具体的,所述根据所述目标帧率确定适用于全局运动视频的编码量化参数的具体步骤为:
步骤2.1-1:基于所述目标帧率fpst,根据网络调速器的调速周期 intervalpace和一个调速周期发送字节数bytespace预测下一帧编码后的目标尺寸 sizet,预测公式为sizet=1000×bytespace÷fpst÷intervalpace
步骤2.1-2:基于上一帧编码的实际量化参数qplast来对当前帧进行预编码,获得预编码后的绝对变换差和satdpre以及预编码后的帧大小sizepre
步骤2.1-3:判断预编码后的帧大小sizepre和目标编码帧大小sizet的关系,如果预编码后的帧大小大于目标编码帧大小,则转向步骤2.1-4,否则,转向步骤2.1-5;
步骤2.1-4:根据公式size=αqp×satd÷qpstep来预测量化参数qp分别为 qplast+1,qplast+2,…,qplastqp时对当前帧进行编码后的编码帧大小,得到sizelast+1,sizelast+2,…,sizelast+Δqp,其中qpstep=2.0(qp-4)÷60,αqp是相应的量化参数对应的系数,Δqp为预先确定的量化参数变化范围;并计算预编码后的帧大小和目标编码帧大小之差的绝对值Δs0=|sizepre-sizet|,Δs1=|sizelast+1-sizet|,…,Δsqpp=|sizelast+Δqp-sizet|;取绝对差值最小者对应的量化参数qpsmin为对当前帧实际编码的量化参数;
在实际操作中,所述Δqp包括但不限于取值为3。
步骤2.1-5:根据公式size=αqp×satd÷qpstep来预测量化参数qp分别为 qplast-1,qplast-2,…,qplastqp时对当前帧进行编码后的编码帧大小,得到 sizelast-1,sizelast-2,…,sizelast-Δqp,并计算预编码后的帧大小和目标编码帧大小之差的绝对值Δs0=|sizepre-sizet|,Δs1=|sizelast-1-sizet|,…,Δsqp=|sizelastqp-sizet|;取绝对差值最小者对应的量化参数qpsmin为对当前帧实际编码的量化参数。
作为可选的实施方式,所述步骤2.1-5之后还包括:
步骤2.1-6:利用编码结果信息来更新相应的系数αqp;更新的基本公式为:coef=size*qstep÷satd,αqp=0.5×αqp+0.5×coef,其中size为本次编码后的帧大小,satd为本次编码的实际绝对变换差和,qstep为按照公式qpstep=2.0(qp-4}÷60计算出来结果。
具体的,所述根据所述目标帧率确定适用于局部运动视频的编码量化参数的步骤为:
步骤2.2-1:利用与上一帧编码同样的量化参数qppre来对当前帧进行预先编码,得到预编码后的帧大小sizepre
步骤2.2-2:基于公式sizet=1000×bytespace÷fpst÷intervalpace来计算当前帧的目标编码大小sizet,intervalpace为网络调速器的调速周期,bytespace为一个调速周期发送字节数;
步骤2.2-3:如果预编码后的帧大小sizepre和目标编码大小sizet之间的关系满足|sizepre-sizet|≤0.08×sizet,则把预编码结果作为对当前帧实际编码的结果,否则转到步骤2.2-4;
步骤2.2-4:如果sizepre>2×sizet,则量化参数取值为min(qppreqp,qpmax),Δqp为预先确定的量化参数变化范围,qpmax为对应用进行视频编码的最大量化参数,否则,转到步骤2.2-5;
步骤2.2-5:如果sizet>sizepre,则对当前帧的编码量化参数取值为 max(qppre-1,qpmin),否则量化参数取值为min(qppre+1,qpmax),qpmin为对应用进行视频编码的最小量化参数。
图5为基于全局运动视频的编码量化参数进行编码的实施效果图,其中的record表示第一帧、第二帧…。该图表明,即使在场景切换的情况下,依然保持了极高的预测和控制准确性。
图6为基于局部运动视频的编码量化参数进行编码的实施效果图,其中的record表示第一帧、第二帧…。由于不能根据satd等信息进行有效的预测,所以准确性没有基于全局运动视频的码率控制方法好,但随着目标编码帧大小的变化,仍然能够有效的控制实际编码帧大小,以尽量与目标编码帧大小相匹配。
作为可选的实施方式,所述步骤2之后还包括:
根据所述量化参数调整所述目标帧率。
具体的,所述根据所述量化参数调整所述目标帧率的方法为:
(1)判断编码的连续N帧的量化参数是否为qpmax或者qpmin
(2)若编码的连续N帧的量化参数为qpmax,则通过公式p=p+pstep来调节幂指数,并进一步根据公式
Figure 2
来调整目标帧率,以使得目标帧率在fpsmin和fpsmax之间;
若编码的连续N帧的量化参数为qpmin,则通过公式p=p-pstep来调节幂指数,并进一步根据公式
Figure 1
来调整目标帧率,以使得目标帧率在fpsmin和fpsmax之间;
所述N为预定值,pstep为调节步长,qpmax和qpmin分别为对应用进行视频编码的最大量化参数和最小量化参数。
在实际操作中,预定值N可取值为3;调节步长pstep取值为0.1,但N 和pstep的取值并不限于此,其可根据需要作相应调整。
上述根据量化参数调节目标帧率的目的是为了适当控制编码质量,在帧率和量化参数之间进行有效的折中和平衡。
作为可选的实施方式,所述步骤(2)之后还包括:
(3)根据计算出来的目标帧率,控制视频采集的周期为 interval=1000÷fpst
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (8)

1.一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,包括:
步骤1:基于视频的运动速度计算当前的目标帧率;
步骤2:根据所述目标帧率确定适用于全局运动视频的编码量化参数;或者根据所述目标帧率确定适用于局部运动视频的编码量化参数;
步骤3:利用步骤2得到的编码量化参数来控制编码器进行编码。
2.如权利要求1所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述基于视频的运动速度计算当前的目标帧率的方法为:
步骤1.1:预先设定视频的最小帧率fpsmin和最大帧率fpsmax、最大运动速度vmax;采集视频帧,基于某个预先设定好的量化参数对视频进行预先编码,获得宏块的平均运动向量(mvx,mvy);
步骤1.2:根据所述平均运动向量计算宏块的平均运动距离:
Figure RE-FDA0002967385730000011
步骤1.3:根据当前帧和上一帧的时间差t,计算宏块的平均运动速度v=dis/t和归一化的运动速度vn=v/vmax
步骤1.4:根据公式
Figure RE-FDA0002967385730000012
来计算当前的目标帧率fpst,其中p为幂指数。
3.如权利要求1所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述根据所述目标帧率确定适用于全局运动视频的编码量化参数的具体步骤为:
步骤2.1-1:基于所述目标帧率fpst,根据网络调速器的调速周期intervalpace和一个调速周期发送字节数bytespace预测下一帧编码后的目标尺寸sizet,预测公式为sizet=1000×bytespace÷fpst÷intervalpace
步骤2.1-2:基于上一帧编码的实际量化参数qplast来对当前帧进行预编码,获得预编码后的绝对变换差和satdpre以及预编码后的帧大小sizepre
步骤2.1-3:判断预编码后的帧大小sizepre和目标编码帧大小sizet的关系,如果预编码后的帧大小大于目标编码帧大小,则转向步骤2.1-4,否则,转向步骤2.1-5;
步骤2.1-4:根据公式size=αqp×satd÷qpstep来预测量化参数qp分别为qplast+1,qplast+2,…,qplastqp时对当前帧进行编码后的编码帧大小,得到sizelast+1,sizelast+2,…,sizelast+Δqp,其中qpstep=2.0(qp-4)÷6.0,αqp是相应的量化参数对应的系数,Δqp为预先确定的量化参数变化范围;并计算预编码后的帧大小和目标编码帧大小之差的绝对值Δs0=|sizepre-sizet|,Δs1=|sizelast+1-sizet|,…,Δsqp=|sizelast-Δqp-sizet|;取绝对差值最小者对应的量化参数qpsmin为对当前帧实际编码的量化参数;
步骤2.1-5:根据公式size=αqp×satd÷qpstep来预测量化参数qp分别为qplast-1,qplast-2,…,qplastqp时对当前帧进行编码后的编码帧大小,得到sizelast-1,sizelast-2,…,sizelast-Δqp,并计算预编码后的帧大小和目标编码帧大小之差的绝对值Δs0=|sizepre-sizet|,Δs1=|sizelast-1-sizet|,…,Δsqp=|sizelast-Δqp-sizet|;取绝对差值最小者对应的量化参数qpsmin为对当前帧实际编码的量化参数。
4.如权利要求3所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述步骤2.1-5之后还包括:
步骤2.1-6:利用编码结果信息来更新相应的系数αqp;更新的基本公式为:coef=size*qstep÷satd,αqp=0.5×αqp+0.5×coef,其中size为本次编码后的帧大小,satd为本次编码的实际绝对变换差和,qstep为按照公式qpstep=2.0(qp-4)÷6.0计算出来结果。
5.如权利要求1所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述根据所述目标帧率确定适用于局部运动视频的编码量化参数的具体步骤为:
步骤2.2-1:利用与上一帧编码同样的量化参数qppre来对当前帧进行预先编码,得到预编码后的帧大小sizepre
步骤2.2-2:基于公式sizet=1000×bytespace÷fpst÷intervalpace来计算当前帧的目标编码大小sizet,intervalpace为网络调速器的调速周期,bytespace为一个调速周期发送字节数;
步骤2.2-3:如果预编码后的帧大小sizepre和目标编码大小sizet之间的关系满足|sizepre-sizet|≤0.08×sizet,则把预编码结果作为对当前帧实际编码的结果,否则转到步骤2.2-4;
步骤2.2-4:如果sizepre>2×sizet,则量化参数取值为min(qppreqp,qpmax),Δqp为预先确定的量化参数变化范围,qpmax为对应用进行视频编码的最大量化参数,否则,转到步骤2.2-5;
步骤2.2-5:如果sizet>sizepre,则对当前帧的编码量化参数取值为max(qppre-1,qpmin),否则量化参数取值为min(qppre+1,qpmax),qpmin为对应用进行视频编码的最小量化参数。
6.如权利要求1至5任一项所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述步骤2之后还包括:
根据所述量化参数调整所述目标帧率。
7.如权利要求6所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述根据所述量化参数调整所述目标帧率的具体方法为:
(1)判断编码的连续N帧的量化参数是否为qpmax或者qpmin
(2)若编码的连续N帧的量化参数为qpmax,则通过公式p=p+pstep来调节幂指数,并进一步根据公式
Figure RE-FDA0002967385730000041
来调整目标帧率,以使得目标帧率在fpsmin和fpsmax之间;
若编码的连续N帧的量化参数为qpmin,则通过公式p=p-pstep来调节幂指数,并进一步根据公式
Figure RE-FDA0002967385730000042
来调整目标帧率,以使得目标帧率在fpsmin和fpsmax之间;
所述N为预定值,pstep为调节步长,qpmax和qpmin分别为对应用进行视频编码的最大量化参数和最小量化参数。
8.如权利要求7所述的一种适用于实时视频传输的H.264帧级码率控制方法,其特征在于,所述步骤(2)之后还包括:
(3)根据计算出来的目标帧率,控制视频采集的周期为interval=1000÷fpst
CN202011578379.6A 2020-12-28 2020-12-28 一种适用于实时视频传输的h.264帧级码率控制方法 Active CN112788335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011578379.6A CN112788335B (zh) 2020-12-28 2020-12-28 一种适用于实时视频传输的h.264帧级码率控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011578379.6A CN112788335B (zh) 2020-12-28 2020-12-28 一种适用于实时视频传输的h.264帧级码率控制方法

Publications (2)

Publication Number Publication Date
CN112788335A true CN112788335A (zh) 2021-05-11
CN112788335B CN112788335B (zh) 2023-03-10

Family

ID=75752947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011578379.6A Active CN112788335B (zh) 2020-12-28 2020-12-28 一种适用于实时视频传输的h.264帧级码率控制方法

Country Status (1)

Country Link
CN (1) CN112788335B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113286146A (zh) * 2021-07-26 2021-08-20 腾讯科技(深圳)有限公司 媒体数据处理方法、装置、设备以及存储介质
CN113422958A (zh) * 2021-05-31 2021-09-21 珠海全志科技股份有限公司 视频编码frame层码流大小的控制方法、系统及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877784A (zh) * 2009-04-30 2010-11-03 上海华平软件技术有限公司 一种适用于实时应用的h.264码率控制方法
CN103702119A (zh) * 2013-12-20 2014-04-02 电子科技大学 低延迟视频编码基于可变帧率的码率控制方法
CN106657998A (zh) * 2016-09-20 2017-05-10 杭州比特瑞旺电脑有限公司 一种kvm视频编码量化参数范围控制方法
US20180324439A1 (en) * 2017-05-08 2018-11-08 Mediatek Inc. Method and apparatus for adaptive video encoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877784A (zh) * 2009-04-30 2010-11-03 上海华平软件技术有限公司 一种适用于实时应用的h.264码率控制方法
CN103702119A (zh) * 2013-12-20 2014-04-02 电子科技大学 低延迟视频编码基于可变帧率的码率控制方法
CN106657998A (zh) * 2016-09-20 2017-05-10 杭州比特瑞旺电脑有限公司 一种kvm视频编码量化参数范围控制方法
US20180324439A1 (en) * 2017-05-08 2018-11-08 Mediatek Inc. Method and apparatus for adaptive video encoding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113422958A (zh) * 2021-05-31 2021-09-21 珠海全志科技股份有限公司 视频编码frame层码流大小的控制方法、系统及介质
CN113286146A (zh) * 2021-07-26 2021-08-20 腾讯科技(深圳)有限公司 媒体数据处理方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN112788335B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
JP4390112B2 (ja) ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置
US6910079B2 (en) Multi-threshold smoothing
RU2349054C1 (ru) Контекстно-адаптивная регулировка пропускной способности при управлении скоростью передачи видеосигнала
US6741648B2 (en) Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
US6389072B1 (en) Motion analysis based buffer regulation scheme
EP2612495B1 (en) Adaptive streaming of video at different quality levels
CN112788335B (zh) 一种适用于实时视频传输的h.264帧级码率控制方法
JP2001169284A (ja) 動画符号化装置における量子化ステップ設定方法及びその方法を用いた動画符号化装置
JP2010508769A (ja) パケット化オーバヘッドを削減するための動画像符号化レート適応
KR20040011100A (ko) 개선된 비트율 제어 방법과 그 장치
EP1209625A2 (en) Picture coding apparatus and method
CN104270649A (zh) 影像编码装置及影像编码方法
KR20010018573A (ko) 네트워크 대역폭에 적응적인 영상 압축 장치
EP0734173B1 (en) Fixed rate transmission system with selection of compressor configuration and corresponding method
CN111479113B (zh) 码率控制方法和装置、存储介质和电子设备
CN109660801A (zh) 对量化参数进行限制的视频编码方法
CN101252693A (zh) 基于图像直方图的码率控制方法
CN105187832B (zh) 基于2.5g无线网络移动视频码率控制方法
CN115701709A (zh) 视频编码方法、装置、计算机可读介质及电子设备
KR20040007818A (ko) 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치
JP3055153B2 (ja) 可変レートビデオ符号化制御方式
EP1057344A1 (en) Adaptive buffer and quantizer regulation scheme for bandwidth scalability of video data
KR100949755B1 (ko) 비디오 시퀀스의 레이트를 제어하는 방법 및 장치, 비디오부호화 장치
CN117014613A (zh) 一种恒定视频质量的码率控制方法及装置
Hsu et al. A predictive H. 263 bit-rate control scheme based on scene information

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
GR01 Patent grant
GR01 Patent grant