1.一种视频三维融合时gpu加速的视频纹理更新方法,包括以下步骤:
步骤1,构建视频流数据集,所述视频流数据集由n个视频构成;
步骤2,判断步骤1所述的视频流数据集中每个视频在三维gis场景中对应融合的视频纹理的可见性,进一步构建多个待融合的视频;
步骤3,将步骤2所述的m个带融合的视频分别通过循环调用解复用方法、gpu硬解码得到每个视频对应的单帧yuv格式视频影像;
步骤4,将步骤3所述的每个视频对应的单帧yuv格式视频影像分别通过基于cuda加速的yuv2rgb算法得到相应的单帧rgb格式视频影像,并对存在畸变的视频影像进行基于cuda加速的图像畸变校正预处理,得到每个视频预处理后视频影像;
步骤5,将步骤4所述的每个视频预处理后视频影像利用cuda和opengl互操作技术由gpu中cuda内存空间拷贝到opengl内存空间;
步骤6,将步骤5所述的每个视频预处理后视频影像存储为二维视频纹理数组imgs,进一步将二维视频纹理数组imgs利用投影纹理算法融合到三维gis场景。
2.根据权利要求1所述的视频三维融合时gpu加速的视频纹理更新方法,其特征在于,
步骤2具体如下:
计算三维gis场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
其中,
计算设备屏幕坐标点
设h表示用户观察窗口的长度,设w表示用户观察窗口的宽度;
若xc>0且xc<w且yc>0且yc<h满足时,则设备屏幕坐标点相对用户观察窗口可见,即对应的三维gis场景中视频纹理中心点的世界坐标点
否则,设备屏幕坐标点ci相对用户观察窗口不可见,即对应的三维gis场景中视频纹理中心点的世界坐标点不在用户视域内;
计算用户视点对应世界坐标点p(xp,yp,zp)和
其中,xp为用户视点对应世界坐标点p的x轴坐标分量,yp为用户视点对应世界坐标点p的y轴坐标分量,zp为用户视点对应世界坐标点p的z轴坐标分量,
对距离dk按升序进行排序,取前m(m<26且m≤k)个点
3.根据权利要求1所述的视频三维融合时gpu加速的视频纹理更新方法,其特征在于,
步骤6具体如下:
计算世界坐标系中模型顶点坐标pw的公式如下,
pw=minvmmvpglv
其中,mmv为场景相机的模型视图变换矩阵,minv为三维gis场景相机视图变换矩阵的逆矩阵,pglv为模型坐标系中的模型顶点坐标;
计算世界坐标系中模型顶点法向量nv的公式如下,
nv=mat3(minvmmv)pgln
其中,mat3()表示去除齐次坐标后的变换矩阵,pgln为模型坐标系中的模型顶点法向量;
计算第i个虚拟投影相机裁剪坐标系中模型顶点坐标
其中,
计算模型顶点
其中,
在第i个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积dotpi的公式如下,
其中,normalize()为向量正则化函数,dot()为向量点积函数,
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标ti的公式如下,
其中,mn为归一化矩阵;
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值hi的公式如下,
其中,texture()表示纹理采样函数,depths为存储虚拟投影相机对应场景深度图的二维纹理数组,l为第i个视频对应imgs和depths数组索引,
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
其中,texture()表示纹理采样函数,imgs为存储预处理后视频影像的二维纹理数组,表示从二维纹理数组imgs第l层视频纹理上根据屏幕坐标采样模型顶点颜色值。