一种基于H.264视频报文类型的不等差错传输保护方法与流程

文档序号:12378897阅读:来源:国知局

技术特征:

1.一种基于H.264视频报文类型的不等差错传输保护方法,其特征在于首先按照实际网络丢包环境度量H.264视频报文不同类型的重要性并依此对视频流内容进行分级,即通过解析视频流,按照视频分组的帧类型和图像组GOP位置进行分级;然后建立线性编码的冗余带宽优化分配模型;在此基础上调整信源编码和信道编码的码率,信道编码采用线性编码对视频流进行不等差错保护,寻找视频质量衰减的最低值对应的信道带宽分配比例,得到网络随机丢包率为1%至10%之间的接收端接收到的最佳视频质量。

2.根据权利要求1所述的基于H.264视频报文类型的不等差错传输保护方法,其特征在于对H.264视频流进行基于帧类型和GOP位置的重要性分级步骤如下:

首先,通过解析码流区分不同数据包所携带报文的不同类型:在压缩的H.264视频流中,视频帧按照生成方式和参考性分为I帧、P帧、B帧三种基本类型,并以GOP为独立编码单位;I帧采用帧内编码方式,即不参考其他帧进行编码;P帧为前向预测编码,参考帧为I帧及播放顺序在其之前的P帧,并按照编码生成顺序进行播放;B帧采用双向预测编码,参考播放顺序在其前、后的I帧和P帧生成;

其次,将H.264视频流按照帧类型和P帧的GOP位置分为不同的重要性等级,I帧数据为一级,B帧数据为一级,P帧数据按照其GOP位置由前向后重要性依次降低,分为不同的重要性等级,解析视频流,按照上述分级方法分级,I帧分组重要性高,B帧分组重要性低,P帧分组按其GOP位置由前向后重要性递减;

再次,对不同的报文类型独立控制丢包,得到丢包率与视频质量衰减之间的关系,即H.264视频流在进行网络传输时,封装为UDP包,在传输层进行分片传输,分片最大长度为最大传输单元MTU,网络丢包也是以此为单位进行的;在采用X264编码器进行视频编码时,即按照MTU大小限制进行分片编码,H.264视频流的每个网络抽取层NAL单元大小不超过MTU,实现应用层视频分组到网络数据包的一对一映射,由此控制丢弃视频分组即可模拟控制丢包率;在此基础上,对不同重要性等级的视频分组数目进行统计,按照丢包率设置产生随机数列,选择丢弃数目为当前等级视频分组数目与丢包率的乘积的视频分组,即可得到不 同丢包率下不同重要性等级的视频分组独立丢包带来的视频质量衰减;

最后,采用FFmpeg视频解码器进行解码后得到恢复视频,将恢复视频的质量与原始视频质量对比,采用PSNR方法评估视频质量;再将视频直接进行编码和解码,并与原始视频对比,得到解码视频的质量;对解码视频和恢复视频质量求差,抵消视频的压缩失真,得到随机丢包造成的传输失真,由此得到不同重要性等级视频分组丢包率与视频质量衰减之间的关系曲线,并将不同重要性等级丢包造成的视频质量衰减差别作为其所需冗余码率占总冗余带宽比例的参照。

3.根据权利要求1所述的基于H.264视频报文类型的不等差错传输保护方法,其特征在于建立基于线性编码的冗余带宽优化分配模型方法为:设视频流按照报文的重要性等级被分级为t个等级,第j级源分组数目为mj,冗余分组数为nj,分组的丢包-视频质量衰减曲线斜率为kj,则设在网络丢包率为p的条件下,第j级单个源分组丢失的概率为其自身丢失,并且本等级内其余mj+nj-1个分组中丢失数目大于nj-1的概率为pr,j,表示为

<mrow> <msub> <mi>p</mi> <mrow> <mi>r</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <mi>p</mi> <mo>&CenterDot;</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> </mrow> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msubsup> <mi>C</mi> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> <mi>i</mi> </msubsup> <msup> <mi>p</mi> <mi>i</mi> </msup> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> <mo>-</mo> <mi>i</mi> </mrow> </msup> </mrow>

则当前条件下的总视频失真为

<mfenced open='' close=''> <mtable> <mtr> <mtd> <mi>&Delta;PSNR</mi> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>k</mi> <mi>j</mi> </msub> <msub> <mi>p</mi> <mrow> <mi>r</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>k</mi> <mi>j</mi> </msub> <mi>p</mi> <mo>&CenterDot;</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> </mrow> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msubsup> <mi>C</mi> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> <mi>i</mi> </msubsup> <msup> <mi>p</mi> <mi>i</mi> </msup> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> <mo>-</mo> <mi>i</mi> </mrow> </msup> </mtd> </mtr> </mtable> </mfenced>

因此,冗余码率分配问题表示为如下优化问题

<mfenced open='{' close=''> <mtable> <mtr> <mtd> <mfenced open='' close=''> <mtable> <mtr> <mtd> <mi>min</mi> </mtd> <mtd> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mo>[</mo> <msub> <mi>k</mi> <mi>j</mi> </msub> <mi>p</mi> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> </mrow> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msubsup> <mi>C</mi> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> <mi>i</mi> </msubsup> <msup> <mi>p</mi> <mi>i</mi> </msup> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>p</mi> <mo>)</mo> </mrow> <mrow> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>-</mo> <mn>1</mn> <mo>-</mo> <mi>i</mi> </mrow> </msup> <mo>]</mo> </mtd> </mtr> </mtable> </mfenced> </mtd> </mtr> <mtr> <mtd> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>t</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>=</mo> <mi>n</mi> </mtd> </mtr> <mtr> <mtd> <msub> <mi>n</mi> <mi>j</mi> </msub> <mo>&GreaterEqual;</mo> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced>

其中n为冗余分组数目,为信道总冗余带宽与源视频分组最大长度的比值。

4.根据权利要求1所述的基于H.264视频报文类型的不等差错传输保护方法,其特征在于不等差错保护过程为:对原始YUV格式视频采用X264编码器进行视频编码得到H.264视频流,在无线网络中随机丢包;除视频条带之外的其 他类型分组不进行丢包,直接使用socket进行UDP打包送至接收端;各重要性等级的视频分组则按照冗余带宽优化分配模型所分配得到的冗余分组添加比例进行线性编码,并使用socket进行UDP打包发送;按照当前的网络丢包率对视频数据包进行随机丢包;经过丢包后的视频分组送至接收端后进行线性解码,并按照其视频序列顺序进行排序,采用FFmpeg对H.264视频流进行视频解码,得到YUV格式恢复视频;评价时,仍然以原始YUV视频为参考计算恢复YUV视频的PSNR值,得到视频压缩与丢包造成的总失真。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1