[发明专利]一种适用于无人机SPI接口视频码率控制方法在审
申请号: | 201611163788.3 | 申请日: | 2016-12-16 |
公开(公告)号: | CN106657855A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 王健;张修飞;辛向龙 | 申请(专利权)人: | 西北工业大学 |
主分类号: | H04N5/765 | 分类号: | H04N5/765;H04N19/103;H04N19/177;H04N19/423;H04N19/146 |
代理公司: | 西北工业大学专利中心61204 | 代理人: | 金凤 |
地址: | 710072 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种适用于无人机SPI接口视频码率控制方法,涉及无人机领域,根据串行外设接口特性以及网络流媒体数据服务端处理机制,在输出端和视频传输复接接口之间划分一块内存作为缓冲区,通过实时调整量化因子、编码器的输入帧率和缓冲区占有率门限来控制输出码率,完成编码控制机制和数据处理缓冲机制,解决视频压缩数据恒定可控问题,满足无线信道预留带宽的目的。 | ||
搜索关键词: | 一种 适用于 无人机 spi 接口 视频 控制 方法 | ||
【主权项】:
一种适用于无人机SPI接口视频码率控制方法,其特征在于包括下述步骤:步骤1:缓冲区正常工作的要求为t时刻缓冲区内已缓存的视频流大小等于0~t时间段内流入缓冲区的视频流总量减去0~t时间段内流出缓冲区的视频流的总量,即满足式(1)Buffer(t)=∫0+∞Input_rate(t)dt-∫0+∞Output_rate(t)dt---(1)]]>式(1)中,Buffer(t)表示t时刻缓冲区缓存视频数据的总量,Input_rate(t)表示t时刻已编码的视频流入SPI缓冲区的速度,即当前编码器的输出码率,Output_rate(t)表示t时刻视频流出SPI缓冲区的速度,即SPI接口的视频传输速度;步骤2:根据目标码率计算初始量化参数根据单位像素的平均目标比特数确定初始量化参数QP0,其计算公式如下:QP0=33bpp<l129l1<bpp<l224l2<bpp<l319bpp>l3---(2)]]>其中l1,l2,l3是预定的阈值,l1,l2,l3的设置参数表1:表1图像大小l1l2l3QCIF0.10.30.6CIF0.20.61.2大于CIF0.61.42.4表1中CIF为Common Intermediate Format,QCIF为Quarter Common Intermediate Format,其中CIF和QCIF都是一种通用视频格式,CIF尺寸大小为352×288像素,QCIF尺寸大小为176×144像素;公式(2)图像中每个像素点所占的比特数bpp由下式确定:bpp=u(n1,1)Fr×width×height---(3)]]>公式(3)中u(n1,1)表示起始可用信道带宽,n1,1表示第1个GOP的第1帧,Fr为编码时的帧率,单位为帧/秒,记为fps,width表示图像宽度,height表示图像高度,width和height单位均为像素;GOP第一帧为I帧,其余均为P帧,对于图像组(Group of Picture,GOP),起始量化参数由式(4)确定:QPi‾(1)=min{QPi-1(1)+2,TotalQPforPPicture(i-1)Np(i-1)-min{2,Ngop15}}---(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):QPi(1)=max{QPi-1(1)-2,QPi‾(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)计算:Tbl(ni,j+1)=Tbl(ni,j)-Tbl(ni,2)Np-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‾(ni,j)=u(ni,j)Fr+γ(Tbl(ni,j)-Bc(ni,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)计算:Tr(ni,0)=u(ni,1)Fr×Ngop-BC(ni-1,Ngop)---(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)=Tr(ni,j-1)+u(ni,j)-u(ni,j-1)Fr(Ngop-j)-A(ni,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^(ni,j)=Tr(ni,j)Np,r(j-1)---(12)]]>其中表示第i个GOP的第j个P帧的目标比特数,Np,r(j‑1)表示未编码的第(j‑1)个P帧数目,当前P帧图像的目标比特数由和的加权组合计算得到:f(ni,j)=β×f^(ni,j)+(1-β)×f‾(ni,j)---(13)]]>其中β是0至1之间的任意常数;为了满足假想的解码器HRD(Hypothetical Reference Decoder)要求,目标比特数作如下限制:f(ni,j)=max{f(ni,j),L(ni,j)}f(ni,j)=min{f(ni,j),U(ni,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:确定帧级量化参数QPP帧量化参数的计算如下:设定当前帧的量化参数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 Distortion Optimized),得出每个宏块的最佳编码模式,最后对模型参数进行更新;步骤5:跳帧控制比特数多少来表示运动复杂度作为跳帧衡量的标准,第i个P帧的运动复杂度Ci用下式来表示:Ci=Bp,i1i-1Σj=1i-1Bj---(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将进行更新,更新公式为αi+1=BiBi-1·αi---(18)]]>判定相邻两帧图像是否发生场景切换的方法如下式所示:Ti=Bp,i-Bi-1Bi-1---(19)]]>其中:Ti为场景切换变化因子,对Ti设定一个阈值ε,阈值ε为0到1的常数;当Ti>ε时,判定该帧发生场景切换,由于发生场景切换时编码比特数会发生急增,容易超过缓冲区的上溢阈值ω,当缓冲器上溢,就判定P帧为跳帧,具体步骤如下:采用GOP的结构为IPPPP...,即图像序列的第一帧为I帧,后面是连续的P帧,设定缓存容量的百分比为ω1,ω2,ω3,且ω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的值为多少都将此帧判定为跳帧。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611163788.3/,转载请声明来源钻瓜专利网。
- 上一篇:改变扩展显示标识数据信息的方法和系统
- 下一篇:一种安全性高的可调分配器