CN106657855A - 一种适用于无人机spi接口视频码率控制方法 - Google Patents

一种适用于无人机spi接口视频码率控制方法 Download PDF

Info

Publication number
CN106657855A
CN106657855A CN201611163788.3A CN201611163788A CN106657855A CN 106657855 A CN106657855 A CN 106657855A CN 201611163788 A CN201611163788 A CN 201611163788A CN 106657855 A CN106657855 A CN 106657855A
Authority
CN
China
Prior art keywords
frame
gop
represent
frames
formula
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
CN201611163788.3A
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.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical 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 Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201611163788.3A priority Critical patent/CN106657855A/zh
Publication of CN106657855A publication Critical patent/CN106657855A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • 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/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供了一种适用于无人机SPI接口视频码率控制方法,涉及无人机领域,根据串行外设接口特性以及网络流媒体数据服务端处理机制,在输出端和视频传输复接接口之间划分一块内存作为缓冲区,通过实时调整量化因子、编码器的输入帧率和缓冲区占有率门限来控制输出码率,完成编码控制机制和数据处理缓冲机制,解决视频压缩数据恒定可控问题,满足无线信道预留带宽的目的。

Description

一种适用于无人机SPI接口视频码率控制方法
技术领域
本发明涉及无人机领域,尤其是一种视频码率控制方法。
背景技术
随着无人机在现代战争中应用越来越多,其在战场情报侦察、指挥和控制中也开始发挥重要作用。这些都需要无人机视频处理系统能够提供清晰可靠的视频图像。早期的无人机视频处理系统采用JPEG2000对采集到的视频进行压缩,虽然这种方法已经能够提供不错的图像质量,但缺点是压缩后的视频数据量较大,对带宽有限的无线传输信道造成巨大的压力。我们需要的无人机视频处理系统应能够尽可能以恒定码率输出数据到数据链复接设备,便于与机载任务数据以及其他遥测数据进行复接和处理。
近年来研究人员和技术人员也设计出了一些无人机视频处理系统,但是还没有很好的解决实时性问题和压缩编码数据按照信道带宽要求以恒定速率通过SPI接口传输的问题。由于无人机机载视频处理系统的压缩数据要与机载任务数据以及其他遥测数据进行复接,通过无线信道传输到地面指挥中心进行处理。因此,需要设计缓冲区码率控制机制,使视频处理系统尽可能以恒定码率输出数据到数据链复接设备,便于与机载任务数据以及其他遥测数据进行复接和处理。
发明内容
为了克服现有技术的不足,根据串行外设接口(Serial Peripheral Interface,SPI)接口特性以及网络流媒体数据服务端处理机制,本发明提出了一种适用于无人机SPI接口视频码率控制方法,以实际工程需求为背景,通过分析、研究在输出端和视频传输复接接口之间划分一块内存作为缓冲区,通过实时调整量化因子、编码器的输入帧率和缓冲区占有率门限来控制输出码率,完成编码控制机制和数据处理缓冲机制,解决视频压缩数据恒定可控问题,满足无线信道预留带宽的目的。
本发明的适用于实时应用的无人机SPI接口视频码率控制方法包括了以下步骤:
步骤1:缓冲区正常工作的要求为t时刻缓冲区内已缓存的视频流大小等于0~t时间段内流入缓冲区的视频流总量减去0~t时间段内流出缓冲区的视频流的总量,即满足式(1)
式(1)中,Buffer(t)表示t时刻缓冲区缓存视频数据的总量,Input_rate(t)表示t时刻已编码的视频流入SPI缓冲区的速度,即当前编码器的输出码率,Output_rate(t)表示t时刻视频流出SPI缓冲区的速度,即SPI接口的视频传输速度;
步骤2:根据目标码率计算初始量化参数
根据单位像素的平均目标比特数确定初始量化参数QP0,其计算公式如下:
其中l1,l2,l3是预定的阈值,l1,l2,l3的设置参数表1:
表1
图像大小 l1 l2 l3
QCIF 0.1 0.3 0.6
CIF 0.2 0.6 1.2
大于CIF 0.6 1.4 2.4
表1中CIF为Common Intermediate Format,QCIF为Quarter CommonIntermediate Format,其中CIF和QCIF都是一种通用视频格式,CIF尺寸大小为352×288像素,QCIF尺寸大小为176×144像素;
公式(2)图像中每个像素点所占的比特数bpp由下式确定:
公式(3)中u(n1,1)表示起始可用信道带宽,n1,1表示第1个GOP的第1帧,Fr为编码时的帧率,单位为帧/秒,记为fps,width表示图像宽度,height表示图像高度,width和height单位均为像素;
GOP第一帧为I帧,其余均为P帧,对于图像组(Group of Picture,GOP),起始量化参数由式(4)确定:
其中,表示除第1个I帧之外的第i个GOP的起始量化参数,QPi-1(1)表示除第1个I帧之外的第(i-1)个GOP的起始量化参数,Np(i-1)表示第(i-1)个GOP中P帧个数,TotalQPforPPicture(i-1)表示第(i-1)个GOP中所有P帧量化参数之和,Ngop是第i个GOP中的总帧数;
公式(4)的代入公式(5),与QPi-1(1)-2相比求出最大值,即可求出迭代后的QPi(1):
步骤3:根据目标缓冲区大小,确定当前P帧图像的目标比特数
在第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值依照下式确定:
Tbl(ni,2)=Bc(ni,2) (6)
其中Tbl(ni,2)是第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值,Bc(ni,2)是第i个GOP的第一个P帧编码完成后实际缓冲区大小;
随后的P帧的目标缓冲区大小按照式(7)计算:
其中,Tbl(ni,2)表示第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值;Tbl(ni,j)表示第i个GOP的第(j-1)个P帧编码完成后,目标缓冲区大小的值;Tbl(ni,j+1)表示第i个GOP的第j个P帧编码完成后,目标缓冲区大小的值;Np表示第i个GOP中P帧的总帧数;
第i个GOP的第j个P帧应分配的目标比特数取决于目标缓冲区大小、帧率、可用信道带宽和实际缓冲区大小,计算公式如下:
其中表示第i个GOP的第j个P帧应分配的目标比特数,u(ni,j)表示第i个GOP的第j个P帧应分配的可用信道带宽,γ是常数,Tbl(ni,j)表示第i个GOP的第j-1个P帧应分配的目标缓冲区大小,Bc(ni,j)表示第i个GOP的第j-1个P帧应分配的实际缓冲区大小;
对于第i个GOP开始编码时,分配的比特数由式(9)计算:
其中Tr(ni,0)表示第i个GOP分配的比特数,u(ni,1)表示第i个GOP起始可用信道带宽,Ngop表示第i个GOP中的总帧数,Bc(ni-1,Ngop)表示编码完第(i-1)个GOP后虚拟缓冲区实际大小;
根据公式(9)计算剩余可用比特数,当信道带宽随时间变化时,剩余比特数Tr(ni,j)通过下式计算:
其中Tr(ni,j)表示第i个GOP的第j个P帧的剩余比特数,Tr(ni,j-1)表示第i个GOP的第(j-1)个P帧的剩余比特数,u(ni,j-1)表示第i个GOP的第j-1个P帧应分配的可用信道带宽,A(ni,j-1)表示第i个GOP的第j-1个P帧实际编码比特数;
当信道带宽恒定时,当前帧的剩余比特数通过下式计算:
Tr(ni,j)=Tr(ni,j-1)-A(ni,j-1) (11)
有公式(12):
其中表示第i个GOP的第j个P帧的目标比特数,Np,r(j-1)表示未编码的第(j-1)个P帧数目,当前P帧图像的目标比特数由的加权组合计算得到:
其中β是0至1之间的任意常数;
为了满足假想的解码器HRD(Hypothetical Reference Decoder)要求,目标比特数作如下限制:
即L(ni,j)<f(ni,j)<U(ni,j),其中,f(ni,j)表示目标比特数,U(ni,j)和L(ni,j)分别表示为保证缓冲区既不上溢又不下溢时,编码图像n所产生的比特数的上界和下界,其中,U(ni,j)为比特数的上界,L(ni,j)为比特数的下界;
步骤4:确定帧级量化参数QP
P帧量化参数的计算如下:
设定当前帧的量化参数QPpc,当前帧为I帧或者是紧接I帧之后的第一个P帧时QPpc=QP0
否则,根据MADPi=a1*MADPi-1+a2,a1,a2为预测模型的两个参数,初始值分别为a1=1,a2=0,MADPi代表当前基本单元相应位置处的MAD,MADPi-1代表前一帧相应位置处的MAD,用前一帧的实际平均绝对差MAD(Mean Absolute Difference)来预测当前帧的MAD,按照二次率失真模型,计算出当前帧的量化参数QPpc,为了保证视频质量的连续性,相邻两帧量化参数的差值应不大于2,则量化参数作如下调整:
QPpc=min{QPpp+2,max{QPpp-2,QPpc}} (15)
其中QPpp为前一帧量化参数,由H.264标准可知,量化参数的取值范围为0~51,所有对量化参数作进一步的限制:
QPpc=min{51,max{1,QPpc}} (16)
用式(16)求得的量化参数对当前帧的每个宏块执行率失真优化RDO(RateDistortion Optimized),得出每个宏块的最佳编码模式,最后对模型参数进行更新;
步骤5:跳帧控制
比特数多少来表示运动复杂度作为跳帧衡量的标准,第i个P帧的运动复杂度Ci用下式来表示:
其中Bp,i为第i个P帧根据(i-1)帧线性预测所得到的P帧比特数,Bp,i=αiBi-1,αi初始值为1,Bi-1为已编码的第(i-1)帧的实际比特数,αi为相邻两帧分配比特的变化因子,Bj(j=1,2,...,i)是已编帧的实际比特数,同时,在比特数分配完毕后,αi将进行更新,更新公式为
判定相邻两帧图像是否发生场景切换的方法如下式所示:
其中:Ti为场景切换变化因子,对Ti设定一个阈值ε,阈值ε为0到1的常数;
当Ti>ε时,判定该帧发生场景切换,由于发生场景切换时编码比特数会发生急增,容易超过缓冲区的上溢阈值ω,当缓冲器上溢,就判定P帧为跳帧,具体步骤如下:
采用GOP的结构为IPPPP...,即图像序列的第一帧为I帧,后面是连续的P帧,设定缓存容量的百分比为ω123,且ω1<ω2<ω3,同时设定图像的运动复杂度为a,b,c,且满足0<a<b<c<1,a、b和c均为固定值;ωi为当前编码帧的缓冲区满度;
当ωi<ω1则认为当前帧为静止图像,跳过此帧;
当ω1<ωi<ω2时:若Ci<a,则认为当前帧为静止图像,跳过此帧;若a<Ci<b,则认为当前帧为运动缓慢图像,跳过此帧,若Ci>b,则认为当前图像为运动剧烈图像,需要编码当前帧;
当ω2<ωi<ω3时:若Ci<b,则认为当前帧为静止图像,跳过此帧;若b<Ci<c,则认为当前帧为运动缓慢图像,跳过此帧,若Ci>c,则认为当前图像为运动剧烈图像,需要编码当前帧;
当ωi>ω3时:若Ci<c,则认为当前帧为静止图像,跳过此帧;若Ci>c,则认为当前图像为运动剧烈图像,需要编码当前帧;
同时,当缓冲区满度ωi超过90%以后,无论Ci的值为多少都将此帧判定为跳帧。
本发明的有益效果是由于采用一种适用于无人机SPI接口视频码率控制方法,在编码器的输出端和视频传输复接接口的之间划分一块内存作为缓冲区,通过实时调整量化因子、编码器的输入帧率和缓冲区占有率门限来控制输出码率,完成了编码控制机制和数据处理缓冲机制,解决了视频压缩数据恒定可控问题,满足无线信道预留带宽。
附图说明
图1为本发明码率控制流程图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明,为更清楚地表述本发明的内容,首先对一些术语加以说明:
(1)I帧:I帧称为帧内编码帧,I帧是一个能够完全记载这一帧全部图像数据的帧,即可单独解码。
(2)P帧:P帧称为前向预测帧,是根据与前一帧图像的比较,去掉与前帧相似的数据而构成的帧。
(3)GOP:即图像组(Group of Picture),图像压缩一般是以GOP为一个单元的。一般情况下一个图像组(GOP)由15帧组成,包含I帧和B、P帧等三种编码类型,图像帧编码的顺序为:I PBB PBB…I PBB…,在实时多媒体通信等情况下,一般采用IPPP…IPPP…结构。
选取编码器编码帧率的范围是15~30,本发明为缓冲区设定占有率的门限即缓存容量的取值范围为下限为65%,上限为85%。
本发明的适用于实时应用的无人机SPI接口视频码率控制方法包括了以下步骤:
步骤1:缓冲区正常工作的要求为t时刻缓冲区内已缓存的视频流大小等于0~t时间段内流入缓冲区的视频流总量减去0~t时间段内流出缓冲区的视频流的总量,即满足式(1)
式(1)中,Buffer(t)表示t时刻缓冲区缓存视频数据的总量,Input_rate(t)表示t时刻已编码的视频流入SPI缓冲区的速度,即当前编码器的输出码率,Output_rate(t)表示t时刻视频流出SPI缓冲区的速度,即SPI接口的视频传输速度;
为防止缓冲区溢出,应该确保Buffer(t)的值不能超过缓冲区的容量上限。等式(1)中,Output_rate(t)是恒定的,则只能通过调节Input_rate(t)的大小确保缓冲区内t时刻的数据总量不超过缓冲区容量上限使缓冲区正常工作。Input_rate(t)是视频编码器的输出码率,在视频编码器的内部,通过实时调整量化参数、编码器的输入帧率和缓冲区占有率门限来控制输出码率。
步骤2:根据目标码率计算初始量化参数
根据单位像素的平均目标比特数确定初始量化参数QP0,其计算公式如下:
其中l1,l2,l3是预定的阈值,l1,l2,l3的设置参数表1:
表1
图像大小 l1 l2 l3
QCIF 0.1 0.3 0.6
CIF 0.2 0.6 1.2
大于CIF 0.6 1.4 2.4
表1中CIF为Common Intermediate Format,QCIF为Quarter CommonIntermediate Format,其中CIF和QCIF都是一种通用视频格式,CIF尺寸大小为352×288像素,QCIF尺寸大小为176×144像素;
公式(2)图像中每个像素点所占的比特数bpp由下式确定:
公式(3)中u(n1,1)表示起始可用信道带宽,n1,1表示第1个GOP的第1帧,Fr为编码时的帧率,单位为帧/秒,记为fps,width表示图像宽度,height表示图像高度,width和height单位均为像素;
GOP第一帧为I帧,其余均为P帧,对于图像组(Group of Picture,GOP),起始量化参数由式(4)确定:
其中,表示除第1个I帧之外的第i个GOP的起始量化参数,QPi-1(1)表示除第1个I帧之外的第(i-1)个GOP的起始量化参数,Np(i-1)表示第(i-1)个GOP中P帧个数,TotalQPforPPicture(i-1)表示第(i-1)个GOP中所有P帧量化参数之和,Ngop是第i个GOP中的总帧数;
公式(4)的代入公式(5),与QPi-1(1)-2相比求出最大值,即可求出迭代后的QPi(1):
步骤3:根据目标缓冲区大小,确定当前P帧图像的目标比特数
要计算当前P帧的目标比特数,必须首先计算出当前GOP中P帧的目标缓冲区大小,而目标缓冲区大小的设置是根据第一个即时解码更新帧(IDR)和第一个存储帧的编码比特数以及平均图像复杂度来进行的。由于每个GOP的第一个P帧的量化参数已在GOP层码率控制中得到,此处只需要计算每个GOP中其他P帧的目标缓冲区大小。
在第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值依照下式确定:
Tbl(ni,2)=Bc(ni,2) (6)
其中Tbl(ni,2)是第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值,Bc(ni,2)是第i个GOP的第一个P帧编码完成后实际缓冲区大小;
随后的P帧的目标缓冲区大小按照式(7)计算:
其中,Tbl(ni,2)表示第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值;Tbl(ni,j)表示第i个GOP的第(j-1)个P帧编码完成后,目标缓冲区大小的值;Tbl(ni,j+1)表示第i个GOP的第j个P帧编码完成后,目标缓冲区大小的值;Np表示第i个GOP中P帧的总帧数;
根据线性理论分析,第i个GOP的第j个P帧应分配的目标比特数取决于目标缓冲区大小、帧率、可用信道带宽和实际缓冲区大小,计算公式如下:
其中表示第i个GOP的第j个P帧应分配的目标比特数,u(ni,j)表示第i个GOP的第j个P帧应分配的可用信道带宽,γ是常数,Tbl(ni,j)表示第i个GOP的第j-1个P帧应分配的目标缓冲区大小,Bc(ni,j)表示第i个GOP的第j-1个P帧应分配的实际缓冲区大小;
对于第i个GOP开始编码时,分配的比特数由式(9)计算:
其中Tr(ni,0)表示第i个GOP分配的比特数,u(ni,1)表示第i个GOP起始可用信道带宽,Ngop表示第i个GOP中的总帧数,Bc(ni-1,Ngop)表示编码完第(i-1)个GOP后虚拟缓冲区实际大小;
根据公式(9)计算剩余可用比特数,当信道带宽随时间变化时,剩余比特数Tr(ni,j)通过下式计算:
其中Tr(ni,j)表示第i个GOP的第j个P帧的剩余比特数,Tr(ni,j-1)表示第i个GOP的第(j-1)个P帧的剩余比特数,u(ni,j-1)表示第i个GOP的第j-1个P帧应分配的可用信道带宽,A(ni,j-1)表示第i个GOP的第j-1个P帧实际编码比特数;
当信道带宽恒定时,当前帧的剩余比特数通过下式计算:
Tr(ni,j)=Tr(ni,j-1)-A(ni,j-1) (11)
有公式(12):
其中表示第i个GOP的第j个P帧的目标比特数,Np,r(j-1)表示未编码的第(j-1)个P帧数目,当前P帧图像的目标比特数由的加权组合计算得到:
其中β是0至1之间的任意常数,本发明取为0.9;
为了满足假想的解码器HRD(Hypothetical Reference Decoder)要求,目标比特数作如下限制:
即L(ni,j)<f(ni,j)<U(ni,j),其中,f(ni,j)表示目标比特数,U(ni,j)和L(ni,j)分别表示为保证缓冲区既不上溢又不下溢时,编码图像n所产生的比特数的上界和下界,其中,U(ni,j)为比特数的上界,L(ni,j)为比特数的下界;
步骤4:确定帧级量化参数QP
P帧量化参数的计算如下:
设定当前帧的量化参数QPpc,当前帧为I帧或者是紧接I帧之后的第一个P帧时QPpc=QP0
否则,根据MADPi=a1*MADPi-1+a2,a1,a2为预测模型的两个参数,初始值分别为a1=1,a2=0,MADPi代表当前基本单元相应位置处的MAD,MADPi-1代表前一帧相应位置处的MAD,用前一帧的实际平均绝对差MAD(Mean Absolute Difference)来预测当前帧的MAD,按照二次率失真模型,计算出当前帧的量化参数QPpc,为了保证视频质量的连续性,相邻两帧量化参数的差值应不大于2,则量化参数作如下调整:
QPpc=min{QPpp+2,max{QPpp-2,QPpc}} (15)
其中QPpp为前一帧量化参数,由H.264标准可知,量化参数的取值范围为0~51,所有对量化参数作进一步的限制:
QPpc=min{51,max{1,QPpc}} (16)
用式(16)求得的量化参数对当前帧的每个宏块执行率失真优化RDO(RateDistortion Optimized),得出每个宏块的最佳编码模式,最后对模型参数进行更新;
步骤5:跳帧控制
考虑到MAD值不能很好的表示运动复杂度的问题,并依据比特分布遵循以下的法则:高运动复杂度图像对应高比特数,低运动复杂度图像对应低比特数,以比特数多少来表示运动复杂度作为跳帧衡量的标准,第i个P帧的运动复杂度Ci用下式来表示:
其中Bp,i为第i个P帧根据(i-1)帧线性预测所得到的P帧比特数,Bp,i=αiBi-1,αi初始值为1,Bi-1为已编码的第(i-1)帧的实际比特数,αi为相邻两帧分配比特的变化因子,Bj(j=1,2,...,i)是已编帧的实际比特数,同时,在比特数分配完毕后,αi进行更新,更新公式为
为了更好地对缓冲区的占有量进行控制,获得高质量的图像质量,将场景切换所带来的编码比特数急增的图像考虑进来,给出的判定相邻两帧图像是否发生场景切换的方法如下式所示:
其中:Ti为场景切换变化因子,对Ti设定一个阈值ε,阈值ε为0到1的常数;
当Ti>ε时,就判定该帧发生场景切换,由于发生场景切换时编码比特数会发生急增,容易超过缓冲区的上溢阈值ω,所以为了防止缓冲器上溢,就判定该帧为跳帧。由于相邻两帧的相关性非常强,将场景切换的GOP的第1个P帧跳过,虽然这样做会丢失一些图像细节,导致图像质量略有下降,但是本发明能够更加有效的控制缓冲区的占有量,能够获取更稳定的图像质量。
具体步骤如下:
采用GOP的结构为IPPPP...,即图像序列的第一帧为I帧,后面是连续的P帧,设定缓存容量的百分比为ω123,且ω1<ω2<ω3,同时设定图像的运动复杂度为a,b,c,且满足0<a<b<c<1,a、b和c均为固定值;ωi为当前编码帧的缓冲区满度;
当ωi<ω1则认为当前帧为静止图像,跳过此帧;
当ω1<ωi<ω2时:若Ci<a,则认为当前帧为静止图像,跳过此帧;若a<Ci<b,则认为当前帧为运动缓慢图像,跳过此帧,若Ci>b,则认为当前图像为运动剧烈图像,需要编码当前帧;
当ω2<ωi<ω3时:若Ci<b,则认为当前帧为静止图像,跳过此帧;若b<Ci<c,则认为当前帧为运动缓慢图像,跳过此帧,若Ci>c,则认为当前图像为运动剧烈图像,需要编码当前帧;
当ωi>ω3时:若Ci<c,则认为当前帧为静止图像,跳过此帧;若Ci>c,则认为当前图像为运动剧烈图像,需要编码当前帧;
同时,当缓冲区满度ωi超过90%以后,无论Ci的值为多少都将此帧判定为跳帧。
由于I帧和前面几个P帧对于运动补偿的估计比较重要,跳过这些帧容易影响到后面的帧,因此,本发明从第3个P帧,即第4帧开始;而对前3帧的处理方法是:对I帧不采取跳帧,对第1个和第2个P帧只有当缓冲器的占用量达到90%时才跳过。

Claims (1)

1.一种适用于无人机SPI接口视频码率控制方法,其特征在于包括下述步骤:
步骤1:缓冲区正常工作的要求为t时刻缓冲区内已缓存的视频流大小等于0~t时间段内流入缓冲区的视频流总量减去0~t时间段内流出缓冲区的视频流的总量,即满足式(1)
B u f f e r ( t ) = &Integral; 0 + &infin; I n p u t _ r a t e ( t ) d t - &Integral; 0 + &infin; O u t p u t _ r a t e ( t ) d t - - - ( 1 )
式(1)中,Buffer(t)表示t时刻缓冲区缓存视频数据的总量,Input_rate(t)表示t时刻已编码的视频流入SPI缓冲区的速度,即当前编码器的输出码率,Output_rate(t)表示t时刻视频流出SPI缓冲区的速度,即SPI接口的视频传输速度;
步骤2:根据目标码率计算初始量化参数
根据单位像素的平均目标比特数确定初始量化参数QP0,其计算公式如下:
QP 0 = 33 b p p < l 1 29 l 1 < b p p < l 2 24 l 2 < b p p < l 3 19 b p p > l 3 - - - ( 2 )
其中l1,l2,l3是预定的阈值,l1,l2,l3的设置参数表1:
表1
图像大小 l1 l2 l3 QCIF 0.1 0.3 0.6 CIF 0.2 0.6 1.2 大于CIF 0.6 1.4 2.4
表1中CIF为Common Intermediate Format,QCIF为Quarter Common IntermediateFormat,其中CIF和QCIF都是一种通用视频格式,CIF尺寸大小为352×288像素,QCIF尺寸大小为176×144像素;
公式(2)图像中每个像素点所占的比特数bpp由下式确定:
b p p = u ( n 1 , 1 ) F r &times; w i d t h &times; h e i g h t - - - ( 3 )
公式(3)中u(n1,1)表示起始可用信道带宽,n1,1表示第1个GOP的第1帧,Fr为编码时的帧率,单位为帧/秒,记为fps,width表示图像宽度,height表示图像高度,width和height单位均为像素;
GOP第一帧为I帧,其余均为P帧,对于图像组(Group of Picture,GOP),起始量化参数由式(4)确定:
QP i &OverBar; ( 1 ) = m i n { QP i - 1 ( 1 ) + 2 , T o t a l Q P f o r P P i c t u r e ( i - 1 ) N p ( i - 1 ) - m i n { 2 , N g o p 15 } } - - - ( 4 )
其中,表示除第1个I帧之外的第i个GOP的起始量化参数,QPi-1(1)表示除第1个I帧之外的第(i-1)个GOP的起始量化参数,Np(i-1)表示第(i-1)个GOP中P帧个数,TotalQPforPPicture(i-1)表示第(i-1)个GOP中所有P帧量化参数之和,Ngop是第i个GOP中的总帧数;
公式(4)的代入公式(5),与QPi-1(1)-2相比求出最大值,即可求出迭代后的QPi(1):
QP i ( 1 ) = m a x { QP i - 1 ( 1 ) - 2 , QP i &OverBar; ( 1 ) } - - - ( 5 )
步骤3:根据目标缓冲区大小,确定当前P帧图像的目标比特数
在第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值依照下式确定:
Tbl(ni,2)=Bc(ni,2) (6)
其中Tbl(ni,2)是第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值,Bc(ni,2)是第i个GOP的第一个P帧编码完成后实际缓冲区大小;
随后的P帧的目标缓冲区大小按照式(7)计算:
T b l ( n i , j + 1 ) = T b l ( n i , j ) - T b l ( n i , 2 ) N p - 1 - - - ( 7 )
其中,Tbl(ni,2)表示第i个GOP的第一个P帧编码完成后,目标缓冲区大小的起始值;Tbl(ni,j)表示第i个GOP的第(j-1)个P帧编码完成后,目标缓冲区大小的值;Tbl(ni,j+1)表示第i个GOP的第j个P帧编码完成后,目标缓冲区大小的值;Np表示第i个GOP中P帧的总帧数;
第i个GOP的第j个P帧应分配的目标比特数取决于目标缓冲区大小、帧率、可用信道带宽和实际缓冲区大小,计算公式如下:
f &OverBar; ( n i , j ) = u ( n i , j ) F r + &gamma; ( T b l ( n i , j ) - B c ( n i , j ) ) - - - ( 8 )
其中表示第i个GOP的第j个P帧应分配的目标比特数,u(ni,j)表示第i个GOP的第j个P帧应分配的可用信道带宽,γ是常数,Tbl(ni,j)表示第i个GOP的第j-1个P帧应分配的目标缓冲区大小,Bc(ni,j)表示第i个GOP的第j-1个P帧应分配的实际缓冲区大小;
对于第i个GOP开始编码时,分配的比特数由式(9)计算:
T r ( n i , 0 ) = u ( n i , 1 ) F r &times; N g o p - B C ( n i - 1 , N g o p ) - - - ( 9 )
其中Tr(ni,0)表示第i个GOP分配的比特数,u(ni,1)表示第i个GOP起始可用信道带宽,Ngop表示第i个GOP中的总帧数,Bc(ni-1,Ngop)表示编码完第(i-1)个GOP后虚拟缓冲区实际大小;
根据公式(9)计算剩余可用比特数,当信道带宽随时间变化时,剩余比特数Tr(ni,j)通过下式计算:
T r ( n i , j ) = T r ( n i , j - 1 ) + u ( n i , j ) - u ( n i , j - 1 ) F r ( N g o p - j ) - A ( n i , j - 1 ) - - - ( 10 )
其中Tr(ni,j)表示第i个GOP的第j个P帧的剩余比特数,Tr(ni,j-1)表示第i个GOP的第(j-1)个P帧的剩余比特数,u(ni,j-1)表示第i个GOP的第j-1个P帧应分配的可用信道带宽,A(ni,j-1)表示第i个GOP的第j-1个P帧实际编码比特数;
当信道带宽恒定时,当前帧的剩余比特数通过下式计算:
Tr(ni,j)=Tr(ni,j-1)-A(ni,j-1) (11)
有公式(12):
f ^ ( n i , j ) = T r ( n i , j ) N p , r ( j - 1 ) - - - ( 12 )
其中表示第i个GOP的第j个P帧的目标比特数,Np,r(j-1)表示未编码的第(j-1)个P帧数目,当前P帧图像的目标比特数由的加权组合计算得到:
f ( n i , j ) = &beta; &times; f ^ ( n i , j ) + ( 1 - &beta; ) &times; f &OverBar; ( n i , j ) - - - ( 13 )
其中β是0至1之间的任意常数;
为了满足假想的解码器HRD(Hypothetical Reference Decoder)要求,目标比特数作如下限制:
f ( n i , j ) = max { f ( n i , j ) , L ( n i , j ) } f ( n i , j ) = min { f ( n i , j ) , U ( n i , j ) } - - - ( 14 )
即L(ni,j)<f(ni,j)<U(ni,j),其中,f(ni,j)表示目标比特数,U(ni,j)和L(ni,j)分别表示为保证缓冲区既不上溢又不下溢时,编码图像n所产生的比特数的上界和下界,其中,U(ni,j)为比特数的上界,L(ni,j)为比特数的下界;
步骤4:确定帧级量化参数QP
P帧量化参数的计算如下:
设定当前帧的量化参数QPpc,当前帧为I帧或者是紧接I帧之后的第一个P帧时QPpc=QP0
否则,根据MADPi=a1*MADPi-1+a2,a1,a2为预测模型的两个参数,初始值分别为a1=1,a2=0,MADPi代表当前基本单元相应位置处的MAD,MADPi-1代表前一帧相应位置处的MAD,用前一帧的实际平均绝对差MAD(Mean Absolute Difference)来预测当前帧的MAD,按照二次率失真模型,计算出当前帧的量化参数QPpc,为了保证视频质量的连续性,相邻两帧量化参数的差值应不大于2,则量化参数作如下调整:
QPpc=min{QPpp+2,max{QPpp-2,QPpc}} (15)
其中QPpp为前一帧量化参数,由H.264标准可知,量化参数的取值范围为0~51,所有对量化参数作进一步的限制:
QPpc=min{51,max{1,QPpc}} (16)
用式(16)求得的量化参数对当前帧的每个宏块执行率失真优化RDO(Rate DistortionOptimized),得出每个宏块的最佳编码模式,最后对模型参数进行更新;
步骤5:跳帧控制
比特数多少来表示运动复杂度作为跳帧衡量的标准,第i个P帧的运动复杂度Ci用下式来表示:
C i = B p , i 1 i - 1 &Sigma; j = 1 i - 1 B j - - - ( 17 )
其中Bp,i为第i个P帧根据(i-1)帧线性预测所得到的P帧比特数,Bp,i=αiBi-1,αi初始值为1,Bi-1为已编码的第(i-1)帧的实际比特数,αi为相邻两帧分配比特的变化因子,Bj(j=1,2,...,i)是已编帧的实际比特数,同时,在比特数分配完毕后,αi将进行更新,更新公式为
&alpha; i + 1 = B i B i - 1 &CenterDot; &alpha; i - - - ( 18 )
判定相邻两帧图像是否发生场景切换的方法如下式所示:
T i = B p , i - B i - 1 B i - 1 - - - ( 19 )
其中:Ti为场景切换变化因子,对Ti设定一个阈值ε,阈值ε为0到1的常数;
当Ti>ε时,判定该帧发生场景切换,由于发生场景切换时编码比特数会发生急增,容易超过缓冲区的上溢阈值ω,当缓冲器上溢,就判定P帧为跳帧,具体步骤如下:
采用GOP的结构为IPPPP...,即图像序列的第一帧为I帧,后面是连续的P帧,设定缓存容量的百分比为ω123,且ω1<ω2<ω3,同时设定图像的运动复杂度为a,b,c,且满足0<a<b<c<1,a、b和c均为固定值;ωi为当前编码帧的缓冲区满度;
当ωi<ω1则认为当前帧为静止图像,跳过此帧;
当ω1<ωi<ω2时:若Ci<a,则认为当前帧为静止图像,跳过此帧;若a<Ci<b,则认为当前帧为运动缓慢图像,跳过此帧,若Ci>b,则认为当前图像为运动剧烈图像,需要编码当前帧;
当ω2<ωi<ω3时:若Ci<b,则认为当前帧为静止图像,跳过此帧;若b<Ci<c,则认为当前帧为运动缓慢图像,跳过此帧,若Ci>c,则认为当前图像为运动剧烈图像,需要编码当前帧;
当ωi>ω3时:若Ci<c,则认为当前帧为静止图像,跳过此帧;若Ci>c,则认为当前图像为运动剧烈图像,需要编码当前帧;
同时,当缓冲区满度ωi超过90%以后,无论Ci的值为多少都将此帧判定为跳帧。
CN201611163788.3A 2016-12-16 2016-12-16 一种适用于无人机spi接口视频码率控制方法 Pending CN106657855A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611163788.3A CN106657855A (zh) 2016-12-16 2016-12-16 一种适用于无人机spi接口视频码率控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611163788.3A CN106657855A (zh) 2016-12-16 2016-12-16 一种适用于无人机spi接口视频码率控制方法

Publications (1)

Publication Number Publication Date
CN106657855A true CN106657855A (zh) 2017-05-10

Family

ID=58823724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611163788.3A Pending CN106657855A (zh) 2016-12-16 2016-12-16 一种适用于无人机spi接口视频码率控制方法

Country Status (1)

Country Link
CN (1) CN106657855A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108702511A (zh) * 2017-07-28 2018-10-23 深圳市大疆创新科技有限公司 视频传输的方法、设备及系统
CN110113602A (zh) * 2019-04-22 2019-08-09 西安电子科技大学 一种h.264码率控制跳帧优化方法
CN110933380A (zh) * 2019-12-17 2020-03-27 深圳市道通智能航空技术有限公司 一种图传控制方法、系统及无人机
CN111986070A (zh) * 2020-07-10 2020-11-24 中国人民解放军战略支援部队航天工程大学 基于gpu的vdif格式数据异构并行编帧方法
CN113170054A (zh) * 2020-07-28 2021-07-23 深圳市大疆创新科技有限公司 视频传输方法、可移动平台及计算机可读存储介质
CN113473136A (zh) * 2020-03-30 2021-10-01 炬芯科技股份有限公司 视频编码器及其码率控制装置
WO2022262294A1 (zh) * 2021-06-15 2022-12-22 华为技术有限公司 视频流传输方法以及相关通信装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SIWEI MA ET AL.: "Proposed Draft of Adaptive Rate Control", 《JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 AND ITU-T SG16 Q.6)8TH MEETING: GENEVA, MAY 20-26,2003 ,DOCUMENT: JVT-H017》 *
王建 等: "基于i.MX6 无人机视频码率受控的压缩系统设计*", 《火力与指挥控制》 *
王晓: "一种低码率下的H .264 跳帧算法", 《计算机工程》 *
王瑾: "低码率下H.264码率控制跳帧/插帧算法研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108702511A (zh) * 2017-07-28 2018-10-23 深圳市大疆创新科技有限公司 视频传输的方法、设备及系统
CN110113602A (zh) * 2019-04-22 2019-08-09 西安电子科技大学 一种h.264码率控制跳帧优化方法
CN110933380A (zh) * 2019-12-17 2020-03-27 深圳市道通智能航空技术有限公司 一种图传控制方法、系统及无人机
WO2021121011A1 (zh) * 2019-12-17 2021-06-24 深圳市道通智能航空技术股份有限公司 一种图传控制方法、系统及无人机
CN113473136A (zh) * 2020-03-30 2021-10-01 炬芯科技股份有限公司 视频编码器及其码率控制装置
CN113473136B (zh) * 2020-03-30 2024-02-09 炬芯科技股份有限公司 视频编码器及其码率控制装置
CN111986070A (zh) * 2020-07-10 2020-11-24 中国人民解放军战略支援部队航天工程大学 基于gpu的vdif格式数据异构并行编帧方法
CN111986070B (zh) * 2020-07-10 2021-04-06 中国人民解放军战略支援部队航天工程大学 基于gpu的vdif格式数据异构并行编帧方法
CN113170054A (zh) * 2020-07-28 2021-07-23 深圳市大疆创新科技有限公司 视频传输方法、可移动平台及计算机可读存储介质
WO2022021090A1 (zh) * 2020-07-28 2022-02-03 深圳市大疆创新科技有限公司 视频传输方法、可移动平台及计算机可读存储介质
WO2022262294A1 (zh) * 2021-06-15 2022-12-22 华为技术有限公司 视频流传输方法以及相关通信装置

Similar Documents

Publication Publication Date Title
CN106657855A (zh) 一种适用于无人机spi接口视频码率控制方法
CN101743753B (zh) 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
CN101185337B (zh) 具有预见的准恒定质量速率控制
JP5676705B2 (ja) 映像符号化規格に対応した映像レート制御の改善
US9762917B2 (en) Quantization method and apparatus in encoding/decoding
CN101547349B (zh) 一种对视频信号的二次avs编码码率控制的方法
DE60023576T2 (de) Verfahren und Vorrichtung zur Bewegtbilddatentranscodierung
CN101069432B (zh) 用于视频编码器速率控制的量化参数的确定方法和设备
CN101466035B (zh) 一种基于h.264的视频图像组比特分配方法
CN102630013B (zh) 基于场景切换的码率控制视频压缩方法和装置
CN100464585C (zh) 一种视频压缩方法
MXPA05002511A (es) Un metodo y un aparato para controlar la velocidad de una secuencia de video; un dispositivo que codifica un video.
CN105681793A (zh) 基于视频内容复杂度自适应的极低延迟高性能视频编码帧内码率控制方法
CN104079933A (zh) 适用于hevc的低延时码率控制方法及比特数分配方法
CN103533359A (zh) 一种h.264码率控制方法
CN102137258A (zh) 一种立体视频码率控制方法
CN105392001A (zh) 基于梯度的自适应高性能视频编码码率控制方法
CN110419215A (zh) 支援离线cabac的视频编码工序的基于比特预测的比特率控制方法及其装置
EP4333433A1 (en) Video coding method and apparatus, and electronic device
CN100563338C (zh) 一种恒定码率的控制方法
CN100448295C (zh) 一种低复杂度的积分码率控制方法
CN100442848C (zh) 一种h263编码中码率的控制方法
CN100505874C (zh) 一种视频编码速率控制的方法
CN101605250A (zh) 码率控制中确定初始量化步长的方法
CN102724507A (zh) 一种gpu加速编码器码率控制方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170510