本发明涉及视频压缩和全景视频传输领域,具体涉及一种基于gan的全景视频自适应流传输方法。
背景技术:
近年来,全景视频因在观看时可以为用户提供对观测视角的主动调节和切换,具有很强的沉浸感和交互性,为此受到了公众越来越多的关注。但全景视频拥有的巨大数据量,通常全景视频的分辨率8k或者更高,以确保向用户显示的内
容质量良好。而其传输的带宽需求约为100mbps,现有移动网络的承载能力难以支持全景视频的实时传输。
全景视频是由多组摄像机进行拍摄、拼接生成的球形视频,相较于传统视频具有更高的分辨率,超高的分辨率对网络带宽带来了巨大的挑战,同时球形视频并不能使用传统平面视频编码的进行压缩,为此需要一套适应全景视频传输的系统。当下,由于缺乏能够对球形视频进行编码的标准,主流的做法是将全景视频投影到二维平面,利用相对成熟的平面视频编码标准进行压缩。
总的来说,在服务器端,全景视频传输系统先将全景视频投影成平面视频,利用hevc等编码标准进行编码。在客户端先进行解码,然后将视频反投影为全景视频进行播放。在客户端与服务器之间,将使用dash协议进行码率控制,实时调整传输视频的码率,保证播放流畅性。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于gan的全景视频自适应流传输方法,在gan生成网络模型的基础上,增加编码网络提取潜码,构建码率与重建失真联合约束的代价函数,确定最优的辅助信息数据,并结合时域帧之间的相似性,进一步提高重建质量。
为实现上述目的,本发明采用如下技术方案:
一种基于gan的全景视频自适应流传输方法,包括以下步骤:
步骤s1:构建时域相似性图;
步骤s2:构建一个包含编码网络e,生成网络g和判别网络d的总体网络;
步骤s3构建生成网络g的码率与重建质量联合代价函数;
步骤s4:将得到的时域相似性图输入网络,进行模型训练,得到训练后的总体网络;
步骤s5:在编码器端,压缩奇数帧,并提取偶数视频帧的潜码作为辅助信息,使用mpeg-dash协议组合潜码与压缩后的奇数帧视频,并进行动态自适应传输;
步骤s6:在解码器端,gan的生成器将奇数视频帧与偶数视频帧的潜码结合起来以重构偶数视频帧。
进一步的,所述步骤s1具体为:将视频均匀分块为tile,再将tiles进行横向条状切割,最后将相同位置的条块图按照帧序进行组合生成时域相似性图tsi;
tsi矩阵为:
式中,m既是tsi图像的序列号,也是原始全景视频tiles的行序,k表示tiles帧的数量,t代表矩阵转置,i表示原始图像,i则代表全景视频时域上的帧序号;
矩阵am的大小等于图像大小,该矩阵仅第m行第m列为1,其余元素均为0,表示如下:
矩阵bi的大小等于图像大小,该矩阵仅第i行第m列为1,其余元素均为0,表示如下:
进一步的,所述步骤s5具体为:
步骤s51:将全景视频中奇数帧构成的视频用h.265标准压缩;
步骤s52:将构建的tsi,输入到训练完成的编码网络e中,生成偶数帧的潜码;
步骤s53:使用mpeg-dash协议组合潜码与压缩后的奇数帧视频,并进行动态自适应传输。
进一步的,所述步骤s6具体为:
步骤s61:依据mpeg-dash协议解析接收并解析潜码与压缩后的奇数帧视频;
步骤s62:对奇数视频帧进行解码,并生成奇数帧tsi;
步骤s63:将奇数帧tsi和潜码输入进生成网络g中,重建生成完整tsi;
步骤s64:完整的tsi将重建为tile,并拼接为原始尺寸的完整全景视频进行渲染播放。
进一步的,所述e,g,d三个网络模型具体如下:将原始tsi的偶数帧部分作为编码网络e的输入,输出原始tsi偶数帧部分的潜码;将e网络输出的tsi偶数帧部分的潜码以及奇数帧作为g网络的输入,由g网络生成重建的tsi偶数帧部分图像。对于d网络,当d网络的输入是原始tsi和tsi偶数帧部分潜码时,d网络的输出是1;当d网络的输入是g网络的输出和tsi偶数帧部分潜码时,输出0。
进一步的,所述生成网络模型g的码率与重建质量联合代价函数具体为:
其中,x表示原始全景图像,w表示潜码,
进一步的,所述代价函数中的重建质量约束项,具体如下,
d(x,g(q(e(x))))=lmse+lvgg(5)
其中lmse的计算公式为:
其中lvgg的计算公式为:
式中,lmse代表基于mse的像素级损失,lvgg代表基于vgg的特征级损失,w,h代表图像的宽和高,xi,j代表i、j位置上的原始像素点,
进一步的,所述代价函数中的码率约束项,具体为:
h(q(e(x)))=h(q(w))(8)
式(8)中的量化操作q使用可微分软量化公式计算,具体如下:
其中l代表量化级,wi代表量化操作后的第i个潜码,cj代表第j个量化电平;式(8)中的计算编码平均比特数操作h通过熵测量,具体如下:
其中概率pcj用统计离散的值表示,具体如下:
其中n为潜码的长度,fcj表示的是量化级cj的出现的次数,fcj
具体如下:
进一步的,所述量化级l设定,具体为:
其中,a,b为常量,k为每组tsi的所包含的帧数目,n表示每个列块的宽度,rcurrtile表示当前tile的目标码率,其可以表示为:
其中,rtar表示当前时刻带宽,rcoded表示已经进行编码的tile的码率,tilecurr表示当前待编码tile的权重,对于每个tile会给其分配权重,按照是否在视口内来表示,其方法如下:
本发明与现有技术相比具有以下有益效果:
本发明能够有效提取时域帧间的相似性,有效减少帧间冗余信息,生成的潜码能够代替视频帧在网络中传输,实现了更高的率失真性能,并且所提出的码率控制方法,能够对潜码码率进行自适应调节,实现了更高的带宽使用率。本发明提出的视频传输算法可应用于视频编码、全景视频自适应传输等多个领域。
附图说明
图1为本发明实施例中编码网络e、生成网络g、鉴别网络d网络训练过程示意图;
图2为本发明实施例中服务器端工作流程的示意图;
图3为本发明实施例中客户端工程流程示意图;
图4为本发明实施例中时域相似性图(tsi)构建过程的示意图;
图5为本发明实施例的方法与其他方法客观比较的rd曲线图,其中omaf表示的是当下主流全景传输标准,scp表示的是基于共享视频帧的全景视频视口传输方法,lvas表示的是本文方法;
图6为本发明实施例的方法与其他方法客观比较的码率控制柱状图,其中omaf表示的是当下主流全景传输标准,scp表示的是基于共享视频帧的全景视频视口传输方法,lvas表示的是本文方法;
图7为本发明实施例的方法进行消融实验主观比较的效果图;其中对于每三张相同内容的图片,从左到右依次是:原图、有编码网络e重建图,无编码网络e重建图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图1,本发明提供基于gan的全景视频自适应流传输方法,包括以下步骤:
训练模型阶段,如图1所示
步骤s1:构建时域相似性图(temporalsimilarityimages,tsi),将视频均匀分块为tile,再将tiles进行横向条状切割,最后将相同位置的条块图按照帧序进行组生成tsi:
步骤s2:构建一个包含编码网络e,生成网络g和判别网络d的总体网络;
步骤s3构建生成网络g的码率与重建质量联合代价函数;
步骤s4:将得到的时域相似性图输入网络,进行模型训练,得到训练后的总体网络;
使用模型阶段:
步骤s5,参考图2,在编码器端,压缩奇数帧,并提取偶数视频帧的潜码作为辅助信息,使用mpeg-dash协议组合潜码与压缩后的奇数帧视频,并进行动态自适应传输;
具体为:
步骤s51:将全景视频中奇数帧构成的视频用h.265标准压缩;
步骤s52:将构建的tsi,输入到训练完成的编码网络e中,生成偶数帧的潜码;
步骤s53:使用mpeg-dash协议组合潜码与压缩后的奇数帧视频,并进行动态自适应传输。
步骤s6:参考图3,在解码器端,gan的生成器将奇数视频帧与偶数视频帧的潜码结合起来以重构偶数视频帧,具体为:
步骤s61:依据mpeg-dash协议解析接收并解析潜码与压缩后的奇数帧视频;
步骤s62:对奇数视频帧进行解码,并生成奇数帧tsi;
步骤s63:将奇数帧tsi和潜码输入进生成网络g中,重建生成完整tsi;
步骤s64:完整的tsi将重建为tile,并拼接为原始尺寸的完整全景视频进行渲染播放。
在本实施例中,步骤s1具体为:将全景视频tile转化为tsi图像:首先将每个的帧图像每8行组成行块,转置后形成列块,然后将相同位置但不同帧的列块按帧序拼接在一起,得到tsi。tsi的构建过程如图4所示,
tsi矩阵为:
式中,m既是tsi图像的序列号,也是原始全景视频tiles的行序,k表示tiles帧的数量,t代表矩阵转置,i表示原始图像,i则代表全景视频时域上的帧序号;
矩阵am的大小等于图像大小,该矩阵仅第m行第m列为1,其余元素均为0,表示如下:
矩阵bi的大小等于图像大小,该矩阵仅第i行第m列为1,其余元素均为0,表示如下:
在本实施例中,所述e,g,d三个网络模型具体如下:将原始tsi的偶数帧部分作为编码网络e的输入,输出原始tsi偶数帧部分的潜码;将e网络输出的tsi偶数帧部分的潜码以及奇数帧作为g网络的输入,由g网络生成重建的tsi偶数帧部分图像。对于d网络,当d网络的输入是原始tsi和tsi偶数帧部分潜码时,d网络的输出是1;当d网络的输入是g网络的输出和tsi偶数帧部分潜码时,输出0。
优选的,所述生成网络模型g的码率与重建质量联合代价函数具体为:
第一项表示d网络用于区分真实图像,第二项表示g网络用于生成近似原始样本数据集分布的图像,第三项α[d(x,g(q(e(x))))]为重建质量约束项,第四项βh(q(e(x)))为码率约束项。
其中,x表示原始全景图像,w表示潜码,
优选的,在本实施例中,代价函数中的重建质量约束项,具体如下,
d(x,g(q(e(x))))=lmse+lvgg(5)
其中lmse的计算公式为:
其中lvgg的计算公式为:
式中,lmse代表基于mse的像素级损失,lvgg代表基于vgg的特征级损失,w,h代表图像的宽和高,xi,j代表i、j位置上的原始像素点,
优选的,在本实施例中,代价函数中的码率约束项,具体为:
h(q(e(x)))=h(q(w))(8)
式(8)中的量化操作q使用可微分软量化公式计算,具体如下:
其中l代表量化级,wi代表量化操作后的第i个潜码,cj代表第j个量化电平;式(8)中的计算编码平均比特数操作h通过熵测量,具体如下:
其中概率pcj用统计离散的值表示,具体如下:
其中n为潜码的长度,
优选的,式(9)中使用l量化级对编码网络生成的潜码进行量化,构建了当前带宽与量化级之间的模型,以进行码率控制,实现码率动态分配,提高带宽的使用率,具体方法如下:
其中,a,b为常量,k为每组tsi的所包含的帧数目,n表示每个列块的宽度,rcurrtile表示当前tile的目标码率,其可以表示为:
其中,rtar表示当前时刻带宽,rcoded表示已经进行编码的tile的码率,tilecurr表示当前待编码tile的权重,对于每个tile会给其分配权重,按照是否在视口内来表示,其方法如下:
实施例1:
为了验证本实施例中提出算法的有效性,在具有3.60ghz主频的英特尔i7cpu以及nvidiageforcertx2080ti平台进行训练和测试,使用matlab和python语言实现了基于gan的全景视频自适应流传输方法,并使用了来自aerialcity,drivingincity,drivingincountry,canolafield,highway和natatorium的六个来自jvet和vas的8k和4k的全景视频测试序列进行大量实验,训练数据集设置如表1所示。为了验证本发明提出的基于gan的全景视频自适应流传输方法可行性,本发明将其与当下主流全景传输标准(omaf)和基于共享视频帧的全景视频视口传输(scp)进行比较,设置了两个实验。
表1训练数据集设置
在训练模型阶段,首先将每个全景视频序列通过ffmepg对视频进行tile分割成视频块,再利用matlab代码转成时域相似性图tsi,其中tsi中每帧对应的宽度为8。然后基于python语言构建好e,g,d三个网络模型,具体网络结构图3所示,并构建模型的码率与重建质量联合代价函数,如式(5)所示。最后设置训练集和超参数。将对8k和4k两种全景视频训练两种不同的模型,训练集分别使用三个对应相同分辨率tsi的混合样本集,共20000张图片。训练的sample_num设置为20000,batchsize设置为4,epoch_init设置为20,epoch设置为500;设置完成后开始训练。
而在使用模型阶段,首先选取全景视频序列中的奇数帧,并将其通过h.265标准压缩。然后选取全景视频序列中的偶数帧,将其通过e网络生成潜码,并将潜码以及奇数帧利用dash协议传输至解码端。后将解码端的奇数帧视频和偶数帧潜码一起输入g网络,以此重建偶数帧tsi。最后通过matlab,将重建后的tsi恢复成原始尺寸全景视频。
在本实施例中,使用psnr评估重建视频图像的质量,并采用所有偶数帧视频的平均失真来评估算法性能。对于每个全景视频序列,用图上的曲线表示我们提出的方法的率失真性能。此外对码率控制部分也进行了实验,模拟带宽限定条件,测试本发明提出方法匹配带宽的性能,于此同时也对传输的视口部分质量进行测试,以v-psnr(viewport-psnr)来评判当带宽有限情况下视口内图像重建的质量。
1)客观比较
1、率失真性能
为了证明本发明提出的全景视频自适应传输方法的效率,将本发明的方法与当下主流全景传输标准(omaf)和基于共享视频帧的全景视频视口传输(scp)进行比较。由于本发明设计的目的是评估生成的潜码代替部分视频帧在网络中传输如何影响全景视频的编码效率,所以只考虑这三种方法在使用相同编码方法情况。
图5展示了三种算法的rd(rate-psnr)曲线,其中x轴表示的是编码后码流的比特率大小,y轴表示的是在解码器解码后的视频序列相较于原始视频序列的psnr。从实验结果图中可以看出,scp方法总体上比omaf好,在相同的比特率情况下,均能获得更大的psnr值,也就是解码出质量更高的视频序列。而本发明的方法(lavs)性能在整体上均优于其他两种方法,特别在低码率下,性能较好,psnr大幅度领先于另外两种方法。而在高码率部分,仍然领先于其他两种算法。从率失真性能的提升上可以验证了本发明所提出的方法,能够以更低的码率传输相同质量的视频序列,从而一定程度解决了全景视频码率高而无法传输的问题.
2、码率控制性能
为了证明本发明所提出的全景视频自适应传输方法中码率控制部分的有效性,将本发明的方法与当下主流全景视频传输标准(omaf)和基于共享视频帧的全景视频视口传输(scp)进行比较。比较的方式为,针对同一视频序列aerialcity,在不同切块方式下(4x2,8x4,16x8)设定固定带宽,对视频序列进行编码,使得编码后的码流码率逼近设定的带宽值,于此同时比较解码后的v-psnr。
图6展示了三种方法进行码率控制实验的结果柱状图,从上到下的三行分别是带宽设定值为3m,4m,5m的结果。而每一行的前一张图为实际编码码率,后一张则是解码后v-psnr。从实验结果图可以看出,当在限定带宽的情况下,omaf与scp均无法准确的匹配带宽,而本发明的方法lvas则相较于该方法能更加准确的匹配设置的带宽,具有更高的带宽利用率。于此同时,在v-psnr指标上,无论设置多大的带宽,本发明的方法均好于omaf和scp,这意味着本发明不仅仅能够保持高带宽利用率,还能够保证视口内视频的质量,证明了本发明提出方法的码率控制的有效性。
2)主观比较
为了证明编码网络e所提取潜码的有效性,本发明所提出的网络的结构进行了消融实验进行主观比较,分为有编码网络e与无编码网络e,其余的实验变量以及参数等均保持一致。本发明使用不同的序列对全景视频序列进行了重建如图7,其中从左到右依次是原图、有编码网络e重建图、无编码网络e重建图。由重建的图片可以直接的看出,相较于无编码网络e进行全景视频序列重建,有编码网络e重建出来的图片在细节上更加清晰,无重影,图片质量更高。由此证明,在本发明所提出的方法中,编码网络e所提取的潜码是具有有效性的,能够帮助客户端更好的重建。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
1.一种基于gan的全景视频自适应流传输方法,其特征在于,包括以下步骤:
步骤s1:构建时域相似性图;
步骤s2:构建一个包含编码网络e,生成网络g和判别网络d的总体网络;
步骤s3构建生成网络g的码率与重建质量联合代价函数;
步骤s4:将得到的时域相似性图输入网络,进行模型训练,得到训练后的总体网络;
步骤s5:在编码器端,压缩奇数帧,并提取偶数视频帧的潜码作为辅助信息,使用mpeg-dash协议组合潜码与压缩后的奇数帧视频,并进行动态自适应传输;
步骤s6:在解码器端,gan的生成器将奇数视频帧与偶数视频帧的潜码结合起来以重构偶数视频帧。
2.根据权利要求1所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述步骤s1具体为:将视频均匀分块为tile,再将tiles进行横向条状切割,最后将相同位置的条块图按照帧序进行组合生成时域相似性图tsi;
tsi矩阵为:
式中,m既是tsi图像的序列号,也是原始全景视频tiles的行序,k表示tiles帧的数量,t代表矩阵转置,i表示原始图像,i则代表全景视频时域上的帧序号;
矩阵am的大小等于图像大小,该矩阵仅第m行第m列为1,其余元素均为0,表示如下:
矩阵bi的大小等于图像大小,该矩阵仅第i行第m列为1,其余元素均为0,表示如下:
3.根据权利要求1所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述步骤s5具体为:
步骤s51:将全景视频中奇数帧构成的视频用h.265标准压缩;
步骤s52:将构建的tsi,输入到训练完成的编码网络e中,生成偶数帧的潜码;
步骤s53:使用mpeg-dash协议组合潜码与压缩后的奇数帧视频,并进行动态自适应传输。
4.根据权利要求3所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述步骤s6具体为:
步骤s61:依据mpeg-dash协议解析接收并解析潜码与压缩后的奇数帧视频;
步骤s62:对奇数视频帧进行解码,并生成奇数帧tsi;
步骤s63:将奇数帧tsi和潜码输入进生成网络g中,重建生成完整tsi;
步骤s64:完整的tsi将重建为tile,并拼接为原始尺寸的完整全景视频进行渲染播放。
5.根据权利要求1所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述e,g,d三个网络模型具体如下:将原始tsi的偶数帧部分作为编码网络e的输入,输出原始tsi偶数帧部分的潜码;将e网络输出的tsi偶数帧部分的潜码以及奇数帧作为g网络的输入,由g网络生成重建的tsi偶数帧部分图像。对于d网络,当d网络的输入是原始tsi和tsi偶数帧部分潜码时,d网络的输出是1;当d网络的输入是g网络的输出和tsi偶数帧部分潜码时,输出0。
6.根据权利要求1所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述生成网络模型g的码率与重建质量联合代价函数具体为:
其中,x表示原始全景图像,w表示潜码,
7.根据权利要求6所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述代价函数中的重建质量约束项,具体如下,
d(x,g(q(e(x))))=lmse+lvgg(5)
其中lmse的计算公式为:
其中lvgg的计算公式为:
式中,lmse代表基于mse的像素级损失,lvgg代表基于vgg的特征级损失,w,h代表图像的宽和高,xi,j代表i、j位置上的原始像素点,
8.根据权利要求6所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述代价函数中的码率约束项,具体为:
h(q(e(x)))=h(q(w))(8)
式(8)中的量化操作q使用可微分软量化公式计算,具体如下:
其中l代表量化级,wi代表量化操作后的第i个潜码,cj代表第j个量化电平;式(8)中的计算编码平均比特数操作h通过熵测量,具体如下:
其中概率
其中n为潜码的长度,
9.根据权利要求8所述的一种基于gan的全景视频自适应流传输方法,其特征在于,所述量化级l设定,具体为:
其中,a,b为常量,k为每组tsi的所包含的帧数目,n表示每个列块的宽度,rcurrtile表示当前tile的目标码率,其可以表示为:
其中,rtar表示当前时刻带宽,rcoded表示已经进行编码的tile的码率,tilecurr表示当前待编码tile的权重,对于每个tile会给其分配权重,按照是否在视口内来表示,其方法如下:
