CN113205599B - 一种视频三维融合时gpu加速的视频纹理更新方法 - Google Patents

一种视频三维融合时gpu加速的视频纹理更新方法 Download PDF

Info

Publication number
CN113205599B
CN113205599B CN202110445919.1A CN202110445919A CN113205599B CN 113205599 B CN113205599 B CN 113205599B CN 202110445919 A CN202110445919 A CN 202110445919A CN 113205599 B CN113205599 B CN 113205599B
Authority
CN
China
Prior art keywords
video
texture
dimensional
model
scene
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.)
Expired - Fee Related
Application number
CN202110445919.1A
Other languages
English (en)
Other versions
CN113205599A (zh
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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202110445919.1A priority Critical patent/CN113205599B/zh
Publication of CN113205599A publication Critical patent/CN113205599A/zh
Application granted granted Critical
Publication of CN113205599B publication Critical patent/CN113205599B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

本发明提出了一种视频三维融合时GPU加速的视频纹理更新方法。本发明构建视频流数据集,判断其中每个视频在三维GIS场景中对应融合的视频纹理的可见性,并对可见的视频分别通过GPU硬解码和基于CUDA加速的YUV 2RGB算法得到每个视频对应的单帧RGB格式视频影像,同时利用CUDA加速校正存在畸变的视频影像,进而得到每个视频预处理后视频影像并由CUDA内存空间拷贝到OpenGL内存空间,最终每个视频预处理后视频影像存储为二维视频纹理数组后利用投影纹理算法融合到三维GIS场景。本发明极大的释放CPU的计算压力,保证三维GIS场景的渲染效率并大大提高了三维GIS场景能够同时融合的视频个数,便于用户从全局角度对整个监控区域进行观察。

Description

一种视频三维融合时GPU加速的视频纹理更新方法
技术领域
本发明涉及视频编解码、视频GIS和高性能处理领域,尤其涉及一种视频三维融合时GPU加速的视频纹理更新方法。
背景技术
高速公路智能化、智慧化是当下公路运输的发展方向,是实现公路高效运输、安全运输和绿色运输的必然要求。视频监控系统是多媒体技术、计算机网络、工业控制和人工智能等多种技术的综合运用,以其直观方便、信息内容丰富等特点,更是一般安全防范系统的重要组成部分。视频影像具有来源广泛、信息获取方式灵活和实时传输方便等特点,能够提供实时动态、多角度、多方位的监控现场信息。
传统的视频监控系统一般是通过一组视频监视器观看,但这样观察到的视频影像信息容易超出了人类的观察、理解和反应能力。对于整个视频监控区域来说,所有的视频影像是分散、无组织的,监控人员常常需要盯住数十幅甚至上百幅视频影像画面并且对每一个幅视频影像都需要了解所对应摄像头的确切位置,这样不仅加大了监控人员的工作负荷程度,而且在面对大量独立的摄像机和视频画面的时候,进行监控并对图像进行解析,不可避免地会因为人员疲劳和信息不完整连贯而产生疏漏。另外,当对移动的目标进行跟踪时,也会由于画面切换而容易丢失。因此,传统的视频监控方式不利于从宏观上把握各视频监控场景的动态信息。
视频GIS是地理信息行业当前热门的技术,综合利用增强虚拟技术、GIS技术,将多源海量实时监控视频与统一的三维GIS场景进行融合可视化,使监控视频空间化,增强了视频监控的整体性,有利于目标的跟踪分析和海量监控视频集成浏览。然而,现有的三维GIS场景与多视频融合中的视频纹理更新方法主要基于传统的CPU处理,会与三维渲染系统抢占资源,导致三维GIS场景渲染效率降低,而且现有方法能同时融入三维GIS场景中的视频个数较少。
发明内容
本发明利用GPU并行加速能力和与CPU相互独立运行的性质,提出了一种三维GIS场景与多视频融合中基于GPU加速的视频纹理更新方法。
本发明的技术方案为一种视频三维融合时GPU加速的视频纹理更新方法,包括以下步骤:
步骤1,构建视频流数据集,所述视频流数据集由N个视频构成;
步骤2,判断步骤1所述的视频流数据集中每个视频在三维GIS场景中对应融合的视频纹理的可见性,进一步构建多个待融合的视频;
步骤3,将步骤2所述的m个带融合的视频分别通过循环调用解复用方法、GPU硬解码得到每个视频对应的单帧YUV格式视频影像;
步骤4,将步骤3所述的每个视频对应的单帧YUV格式视频影像分别通过基于CUDA加速的YUV 2 RGB算法得到相应的单帧RGB格式视频影像,并对存在畸变的视频影像进行基于CUDA加速的图像畸变校正预处理,得到每个视频预处理后视频影像;
步骤5,将步骤4所述的每个视频预处理后视频影像利用CUDA和OpenGL互操作技术由GPU中CUDA内存空间拷贝到OpenGL内存空间;
步骤6,将步骤5所述的每个视频预处理后视频影像存储为二维视频纹理数组IMGS,进一步将二维视频纹理数组IMGS利用投影纹理算法融合到三维GIS场景;
作为优选,步骤2具体如下:
计算三维GIS场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
Figure GDA0003091403780000021
其中,
Figure GDA0003091403780000022
表示三维GIS场景中第i个视频纹理中心点的世界坐标点,Ci(xc,yc,zc)表示Oi对应的第i个设备屏幕坐标点,Msv表示场景相机的投影视图变换矩阵,Msp表示场景相机的透视投影变换矩阵,Msw表示场景相机的视口变换矩阵,N表示三维GIS场景中视频纹理中心点的数量;
计算设备屏幕坐标点
Figure GDA0003091403780000023
相对用户观察窗口是否可见:
设H表示用户观察窗口的长度,设W表示用户观察窗口的宽度;
若xc>0且xc<W且yc>0且yc<H满足时,则设备屏幕坐标点相对用户观察窗口可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点
Figure GDA0003091403780000024
在用户视域内,简记为Ok
否则,设备屏幕坐标点Ci相对用户观察窗口不可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点不在用户视域内;
计算用户视点对应世界坐标点P(xp,yp,zp)和
Figure GDA0003091403780000031
之间欧氏距离D的公式如下,
Figure GDA0003091403780000032
其中,xp为用户视点对应世界坐标点P的X轴坐标分量,yp为用户视点对应世界坐标点P的Y轴坐标分量,zp为用户视点对应世界坐标点P的Z轴坐标分量,
Figure GDA0003091403780000033
为第k个点Ok的X轴坐标分量,
Figure GDA0003091403780000034
为第k个点Ok的Y轴坐标分量,
Figure GDA0003091403780000035
为第k个点Ok的Z轴坐标分量;
对距离Dk按升序进行排序,取前m(m<26且m≤k)个点
Figure GDA0003091403780000036
代表的视频作为带融合的视频。
作为优选,步骤6具体如下:
计算世界坐标系中模型顶点坐标Pw的公式如下,
Pw=MinvMmvPglv
其中,Mmv为场景相机的模型视图变换矩阵,Minv为三维GIS场景相机视图变换矩阵的逆矩阵,Pglv为模型坐标系中的模型顶点坐标;
计算世界坐标系中模型顶点法向量Nv的公式如下,
Nv=mat3(MinvMmv)Pgln
其中,mat3()表示去除齐次坐标后的变换矩阵,Pgln为模型坐标系中的模型顶点法向量;
计算第i个虚拟投影相机裁剪坐标系中模型顶点坐标
Figure GDA0003091403780000037
的公式如下,
Figure GDA0003091403780000038
Figure GDA0003091403780000039
其中,
Figure GDA00030914037800000310
为第i个虚拟投影相机的投影视图变换矩阵,
Figure GDA00030914037800000311
为第i个虚拟投影相机的透视投影变换矩阵,
Figure GDA00030914037800000312
表示齐次坐标Vi的w分量。
计算模型顶点
Figure GDA00030914037800000313
是否在第i个虚拟投影相机视域范围内的公式如下,
Figure GDA00030914037800000314
Figure GDA0003091403780000041
Figure GDA0003091403780000042
其中,
Figure GDA0003091403780000043
表示模型顶点在裁剪坐标系中坐标分量,
Figure GDA0003091403780000044
值为1表示
Figure GDA0003091403780000045
在第i个虚拟投影相机视域范围内,反之不在,模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt
在第i个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积Dotpi的公式如下,
Figure GDA0003091403780000046
其中,normalize()为向量正则化函数,dot()为向量点积函数,
Figure GDA0003091403780000047
为第i个虚拟投影相机的世界坐标,若条件DotPi>0满足时,则表示模型顶点面向第i个虚拟投影相机,反之模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标Ti的公式如下,
Figure GDA0003091403780000048
其中,Mn为归一化矩阵。
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值Hi的公式如下,
Figure GDA0003091403780000049
其中,texture()表示纹理采样函数,DEPTHS为存储虚拟投影相机对应场景深度图的二维纹理数组,L为第i个视频对应IMGS和DEPTHS数组索引,
Figure GDA00030914037800000410
表示归一化屏幕坐标Ti的屏幕坐标分量,表示从二维纹理数组DEPTHS第L层深度图上根据屏幕坐标采样模型顶点深度值。
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件
Figure GDA00030914037800000411
满足时,则表示模型顶点应该渲染视频纹理颜色,反之模型顶点颜色值为Cnt。其中,Δd为计算机保存深度图时的舍入误差和计算误差,
Figure GDA00030914037800000412
为模型顶点的深度值。
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
Figure GDA0003091403780000051
其中,texture()表示纹理采样函数,IMGS为存储预处理后视频影像的二维纹理数组,表示从二维纹理数组IMGS第L层视频纹理上根据屏幕坐标采样模型顶点颜色值。
本发明的优势在于:提出了一种三维GIS场景与多视频融合中新的视频纹理更新方法,构建了一套完整的在GPU中进行视频解码、后处理与视频纹理更新的框架;能极大的释放CPU的计算压力,保证三维GIS场景的渲染效率并大大提高了三维GIS场景能够同时融合的视频个数,便于用户从全局角度对整个监控区域进行观察。
附图说明
图1:是本发明实施例与传统视频纹理方式的渲染效率对比图;
图2:是本发明实施例的总体流程图。
图3:是本发明实施例的视频硬解码流程图;
图4:是本发明实施例的原始广角影像和校正后广角影像对比图;
图5:是本发明实施例的多线程实时更新视频纹理流程图;
图6:是本发明实施例的后台线程操作流程图;
图7:是本发明实施例的三维GIS场景多线程视频纹理更新流程图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施对本发明做进一步描述,在此仅用本发明的适宜性实例说明来解释本发明,但并不作为本发明的限定。
本发明的关键在于将视频纹理更新这一计算量大、重复性强的工作交由GPU进行操作,利用GPU并行加速视频纹理更新中的视频解码、后处理以及视频纹理更新等操作。
如图1所示,传统的基于CPU处理的视频纹理更新方式随着三维GIS场景中同时融合的视频个数的增加,三维GIS场景的渲染效率也随之逐渐下降,且当同时融合视频个数超过14个时会导致整个系统的崩溃。但是,本发明实施例的方法不会影响三维GIS场景的渲染效率,可以保证在三维GIS场景中同时融合最少25个视频。
下面结合图2介绍本发明的具体实施例为一种三维GIS场景与多视频融合中基于GPU加速的视频纹理更新方法,下述各步骤中对变量赋值,赋值方式如下:
步骤1,构建视频流数据集,所述视频流数据集由N个视频构成;
步骤2,判断步骤1所述的视频流数据集中每个视频在三维GIS场景中对应融合的视频纹理的可见性,进一步构建多个待融合的视频;
步骤2具体如下:
计算三维GIS场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
Figure GDA0003091403780000061
其中,
Figure GDA0003091403780000062
表示三维GIS场景中第i个视频纹理中心点的世界坐标点,Ci(xc,yc,zc)表示Oi对应的第i个设备屏幕坐标点,Msv表示场景相机的投影视图变换矩阵,Msp表示场景相机的透视投影变换矩阵,Msw表示场景相机的视口变换矩阵,N表示三维GIS场景中视频纹理中心点的数量;
计算设备屏幕坐标点
Figure GDA0003091403780000063
相对用户观察窗口是否可见:
设H=1024表示用户观察窗口的长度,设W=768表示用户观察窗口的宽度;
若xc>0且xc<W且yc>0且yc<H满足时,则设备屏幕坐标点相对用户观察窗口可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点
Figure GDA0003091403780000064
在用户视域内,简记为Ok
否则,设备屏幕坐标点Ci相对用户观察窗口不可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点不在用户视域内;
计算用户视点对应世界坐标点P(xp,yp,zp)和
Figure GDA0003091403780000065
之间欧氏距离D的公式如下,
Figure GDA0003091403780000066
其中,xp为用户视点对应世界坐标点P的X轴坐标分量,yp为用户视点对应世界坐标点P的Y轴坐标分量,zp为用户视点对应世界坐标点P的Z轴坐标分量,
Figure GDA0003091403780000067
为第k个点Ok的X轴坐标分量,
Figure GDA0003091403780000068
为第k个点Ok的Y轴坐标分量,
Figure GDA0003091403780000069
为第k个点Ok的Z轴坐标分量;
对距离Dk按升序进行排序,取前m(m<26且m≤k)个点
Figure GDA00030914037800000610
代表的视频作为带融合的视频。
步骤3,将步骤2所述的m个待融合的视频分别通过循环调用解复用方法、GPU硬解码得到每个视频对应的单帧YUV格式视频影像;
步骤4,将步骤3所述的每个视频对应的单帧YUV格式视频影像分别通过基于CUDA加速的YUV 2 RGB算法得到相应的单帧RGB格式视频影像,并对存在畸变的视频影像进行基于CUDA加速的图像畸变校正预处理,得到每个视频预处理后视频影像;
步骤5,将步骤4所述的每个视频预处理后视频影像利用CUDA和OpenGL互操作技术由GPU中CUDA内存空间拷贝到OpenGL内存空间;
步骤6,将步骤5所述的每个视频预处理后视频影像存储为二维视频纹理数组IMGS,进一步将二维视频纹理数组IMGS利用投影纹理算法融合到三维GIS场景;
步骤6具体如下:
计算世界坐标系中模型顶点坐标Pw的公式如下,
Pw=MinvMmvPglv
其中,Mmv为场景相机的模型视图变换矩阵,Minv为三维GIS场景相机视图变换矩阵的逆矩阵,Pglv为模型坐标系中的模型顶点坐标;
计算世界坐标系中模型顶点法向量Nv的公式如下,
Nv=mat3(MinvMmv)Pgln
其中,mat3()表示去除齐次坐标后的变换矩阵,Pgln为模型坐标系中的模型顶点法向量;
计算第i个虚拟投影相机裁剪坐标系中模型顶点坐标
Figure GDA0003091403780000071
的公式如下,
Figure GDA0003091403780000072
Figure GDA0003091403780000073
其中,
Figure GDA0003091403780000074
为第i个虚拟投影相机的投影视图变换矩阵,
Figure GDA0003091403780000075
为第i个虚拟投影相机的透视投影变换矩阵,
Figure GDA0003091403780000076
表示齐次坐标Vi的w分量。
计算模型顶点
Figure GDA0003091403780000077
是否在第i个虚拟投影相机视域范围内的公式如下,
Figure GDA0003091403780000078
Figure GDA0003091403780000079
Figure GDA0003091403780000081
其中,
Figure GDA0003091403780000082
表示模型顶点在裁剪坐标系中坐标分量,
Figure GDA0003091403780000083
值为1表示
Figure GDA0003091403780000084
在第i个虚拟投影相机视域范围内,反之不在,模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt
在第i个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积DotPi的公式如下,
Figure GDA0003091403780000085
其中,normalize()为向量正则化函数,dot()为向量点积函数,
Figure GDA0003091403780000086
为第i个虚拟投影相机的世界坐标,若条件DotPi>0满足时,则表示模型顶点面向第i个虚拟投影相机,反之模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标Ti的公式如下,
Figure GDA0003091403780000087
其中,Mn为归一化矩阵。
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值Hi的公式如下,
Figure GDA0003091403780000088
其中,texture()表示纹理采样函数,DEPTHS为存储虚拟投影相机对应场景深度图的二维纹理数组,L为第i个视频对应IMGS和DEPTHS数组索引,
Figure GDA0003091403780000089
表示归一化屏幕坐标Ti的屏幕坐标分量,表示从二维纹理数组DEPTHS第L层深度图上根据屏幕坐标采样模型顶点深度值。
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件
Figure GDA00030914037800000810
满足时,则表示模型顶点应该渲染视频纹理颜色,反之模型顶点颜色值为Cnt。其中,Δd为计算机保存深度图时的舍入误差和计算误差,
Figure GDA00030914037800000811
为模型顶点的深度值。
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
Figure GDA00030914037800000812
其中,texture()表示纹理采样函数,IMGS为存储预处理后视频影像的二维纹理数组,表示从二维纹理数组IMGS第L层视频纹理上根据屏幕坐标采样模型顶点颜色值。
本发明的第二实施例包括步骤如下:
步骤1,创建SQLite数据库并预先保存输入本地视频文件路径或网络视频的地址,以便系统运行时调用视频数据。其中,本地视频文件包含mp4、avi等视频格式,网络视频一般采用rtsp流媒体协议进行传输视频流。
步骤2,从步骤1所得数据库中读取视频源地址,解复用视频文件或网络视频流获取视频数据和视频相关信息,然后使用硬解码技术解码视频数据,获取YUV格式的视频影像。
步骤3,将步骤2所得的YUV格式视频影像转换为便于图像显示的RGB格式,以及对存在明显畸变的视频影像需要进行畸变纠正,如广角影像、全景影像等。
步骤4,通过CUDA与OpenGL互操作技术直接利用步骤3所得的视频影像数据更新三维GIS场景中视频融合区域的视频纹理以达到实时渲染的效果。
步骤5,利用多线程技术来实现多视频接入和视频纹理生成与更新来提高三维GIS场景的渲染效率。其中,主线程(用户界面线程)用来处理虚拟三维场景的一般操作,后台线程用来处理视频纹理的实时生成和后处理操作,生成后的视频纹理交由主线程进行纹理更新。
步骤6,主线程逐帧渲染三维GIS场景过程中,在OpenGL着色器中利用投影纹理算法将更新的视频纹理融合到三维GIS场景中。
进一步,步骤2中解复用操作是使用FFmpeg开源计算机程序解复用视频文件或rtsp网络视频流,从音视频信号源中分流出不同的音频和视频比特流以及视频分辨率、编码格式等视频数据信息;然后利用编码格式初始化对应的视频硬解码器。
NVIDIA GPU包含一个或多个基于硬件的解码器Video Decode(与CUDA内核分开),可为多种流行的编解码器提供完全加速的基于硬件的视频解码和编码,且相对图形渲染和CPU计算可独立运行。本发明实例使用NVDECODEAPI用于加速视频解码,解码类型包括MPRG-2、VC-1、H264、H265、VP8、VP9和AV1等编码格式。视频解码器将解复用获得的视频数据拷贝到GPU内存中,由Video Decode解码器对视频数据进行解码获得视频影像数据。解码后的视频图像数据格式为YUV格式,不能直接用于图像渲染显示。如图3所示,GPU硬解码阶段包括五个主要步骤:
a)cuvidCreateDecoder创建一个特定编码格式的解码器,特定编码格式由视频解复用获得;
b)cuvidDecodePicture调用Video Decode解码一帧视频影像;
c)cuvidMapVideoFrame获取解码后视频影像数据在GPU内存中的地址A,将解码后的视频影像数据拷贝到GPU内存中的新地址B;
d)cuvidUnmapVideoFrame释放地址A对应的GPU内存;
e)cuvidDestroyDecode销毁解码器。
进一步,步骤3对解码后的视频影像数据进行后处理,整个后处理过程都在GPU中进行,由CUDA进行并行计算处理,具体包括:
1)根据影像数据YUV格式和RGB格式的转换公式,编写用于影像数据YUV格式转换到RGB格式的CUDA核函数,利用CUDA加速视频图像格式转换的过程;
Figure GDA0003091403780000101
式中y、u、v表示YUV格式影像在Y、U、V三个通道上对应的颜色值,r、g、b表示RGB格式影像在R、G、B三个通道上对应的颜色值。
2)对于畸变较大的影像(如广角影像的桶形畸变和全景影像的全景畸变等)进行畸变校正,进而使影像校正到正常人眼不产生扭曲的程度。具体的,首先通过预处理获得原始影像和校正后影像之间的映射关系,然后通过双线性插值就可计算得到校正后影像:
Figure GDA0003091403780000102
式中,x和y表示校正后影像上P点的横坐标和纵坐标,x_0和y_0表示P点对应原始影像上的横坐标和纵坐标,mapx和mapy分别表示校正后影像像素坐标与原始影像像素坐标的映射矩阵,bilinear()表示双线性插值算法,(x,y)表示计算得到的点P的像素值。
视频影像畸变矫正过程中涉及大量的数值计算,结合视频解码后的影像数据本身就存储于显存中,本发明实例采用CUDA并行计算加速影像的畸变校正。
具体步骤如下:
a)将mapx和mapy作为全局变量,仅初始化一次并拷贝到显存中;
b)结合mapx和mapy实现双线性插值算法的CUDA核函数;
c)输入解码后的一帧视频影像,调用CUDA核函数进行畸变校正,输出校正后的视频影像。视频影像校正前后对比如图4所示。
进一步,步骤4处理后的视频影像数据,利用CUDA与OpenGL互操作技术来更新视频纹理,如图5,OpenGL纹理和CUDA程序通过缓冲区共享数据,避免将显存中的视频影像数据拷贝至主存到作为纹理绑定到纹理单元上这中间的显存-主存、主存-显存的数据拷贝耗费的时间。CUDA与OpenGL互操作技术可利用CUDA处理后的视频影像数据实时更新OpenGL中的视频纹理数据,具体操作步骤如下:
a)利用cudaGraphicsResource_t在CUDA中注册资源buffer;
b)获取OpenGL纹理对象texId,利用cudaGraphicsGLRegisterImage()将buffer注册给纹理对象texId
c)利用cudaGraphicsMapResources()开启映射关系;
d)利用cudaGraphicsSubResourceGetMappedArray()将cudaArray绑定到资源对象buffer上,然后利用cudaMemcpyToArray()将视频影像数据数据拷贝到buffer中;
e)利用cudaGraphicsUnmapResources()解除映射关系;
f)利用cudaGraphicsUnregisterResource()解除在CUDA中注册的资源buffer。
进一步,步骤5中的单个后台线程完成视频解复用、视频硬解码和视频影像后处理整个流程,如图6所示,负责从视频中实时生成可以在三维GIS场景中渲染的视频纹理数据;当三维GIS场景中需要接入多个视频时,如图7所示,每个后台线程负责一个视频的视频纹理的实时生成,主线程按照步骤4的方法使用后台线程生成的视频纹理数据更新OpenGL中对应的视频纹理数据,然后将更新的视频纹理融合到三维GIS场景中。
具体实施时,首先创建步骤1的数据库和搭建步骤5的多线程框架,然后确定三维GIS场景中需要融合的视频纹理及其对应的视频,进而开启后台线程进行步骤2、步骤3和步骤4的操作,最后根据步骤5将不断更新视频纹理融合到三维GIS场景中。具体实现视频纹理与三维GIS场景融合属于现有技术中的方法,本发明不予赘述。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (1)

1.一种视频三维融合时GPU加速的视频纹理更新方法,包括以下步骤:
步骤1,构建视频流数据集,所述视频流数据集由N个视频构成;
步骤2,判断步骤1所述的视频流数据集中每个视频在三维GIS场景中对应融合的视频纹理的可见性,进一步构建多个待融合的视频;
步骤3,将m个待融合的视频分别通过循环调用解复用方法、GPU硬解码得到每个视频对应的单帧YUV格式视频影像;
步骤4,将步骤3所述的每个视频对应的单帧YUV格式视频影像分别通过基于CUDA加速的YUV 2RGB算法得到相应的单帧RGB格式视频影像,并对存在畸变的视频影像进行基于CUDA加速的图像畸变校正预处理,得到每个视频预处理后视频影像;
步骤5,将步骤4所述的每个视频预处理后视频影像利用CUDA和OpenGL互操作技术由GPU中CUDA内存空间拷贝到OpenGL内存空间;
步骤6,将步骤5所述的每个视频预处理后视频影像存储为二维视频纹理数组IMGS,进一步将二维视频纹理数组IMGS利用投影纹理算法融合到三维GIS场景;
步骤2具体如下:
计算三维GIS场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
Figure FDA0003566342480000011
其中,
Figure FDA0003566342480000012
表示三维GIS场景中第i个视频纹理中心点的世界坐标点,Ci(xc,yc,zc)表示Oi对应的第i个设备屏幕坐标点,Msv表示场景相机的投影视图变换矩阵,Msp表示场景相机的透视投影变换矩阵,Msw表示场景相机的视口变换矩阵,N表示三维GIS场景中视频纹理中心点的数量;
计算设备屏幕坐标点
Figure FDA0003566342480000013
相对用户观察窗口是否可见:
设H表示用户观察窗口的长度,设W表示用户观察窗口的宽度;
若xc>0且xc<W且yc>0且yc<H满足时,则设备屏幕坐标点相对用户观察窗口可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点
Figure FDA0003566342480000014
在用户视域内,简记为Ok
否则,设备屏幕坐标点Ci相对用户观察窗口不可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点不在用户视域内;
计算用户视点对应世界坐标点P(xp,yp,zp)和
Figure FDA0003566342480000021
之间欧氏距离D的公式如下,
Figure FDA0003566342480000022
其中,xp为用户视点对应世界坐标点P的X轴坐标分量,yp为用户视点对应世界坐标点P的Y轴坐标分量,zp为用户视点对应世界坐标点P的Z轴坐标分量,
Figure FDA00035663424800000213
为第k个点Ok的X轴坐标分量,
Figure FDA0003566342480000024
为第k个点Ok的Y轴坐标分量,
Figure FDA0003566342480000025
为第k个点Ok的Z轴坐标分量;
对距离Dk按升序进行排序,取前m个点
Figure FDA00035663424800000214
代表的视频作为待融合的视频,m<26且m≤k;
步骤6具体如下:
计算世界坐标系中模型顶点坐标Pw的公式如下,
Pw=MinvMmvPglv
其中,Mmv为场景相机的模型视图变换矩阵,Minv为三维GIS场景相机视图变换矩阵的逆矩阵,Pglv为模型坐标系中的模型顶点坐标;
计算世界坐标系中模型顶点法向量Nv的公式如下,
Nv=mat3(MinvMmv)Pgln
其中,mat3()表示去除齐次坐标后的变换矩阵,Pgln为模型坐标系中的模型顶点法向量;
计算第i个虚拟投影相机裁剪坐标系中模型顶点坐标
Figure FDA0003566342480000026
的公式如下,
Figure FDA0003566342480000027
Figure FDA0003566342480000028
其中,
Figure FDA0003566342480000029
为第i个虚拟投影相机的投影视图变换矩阵,
Figure FDA00035663424800000210
为第i个虚拟投影相机的透视投影变换矩阵,
Figure FDA00035663424800000211
表示齐次坐标Vi的w分量;
计算模型顶点
Figure FDA00035663424800000212
是否在第i个虚拟投影相机视域范围内的公式如下,
Figure FDA0003566342480000031
Figure FDA0003566342480000032
Figure FDA0003566342480000033
其中,
Figure FDA0003566342480000034
表示模型顶点在裁剪坐标系中坐标分量,
Figure FDA0003566342480000035
值为1表示
Figure FDA0003566342480000036
在第i个虚拟投影相机视域范围内,反之不在,模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt
在第i个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积DotPi的公式如下,
Figure FDA0003566342480000037
其中,normalize()为向量正则化函数,dot()为向量点积函数,
Figure FDA0003566342480000038
为第i个虚拟投影相机的世界坐标,若条件DotPi>0满足时,则表示模型顶点面向第i个虚拟投影相机,反之模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标Ti的公式如下,
Figure FDA0003566342480000039
其中,Mn为归一化矩阵;
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值Hi的公式如下,
Figure FDA00035663424800000310
其中,texture()表示纹理采样函数,DEPTHS为存储虚拟投影相机对应场景深度图的二维纹理数组,L为第i个视频对应IMGS和DEPTHS数组索引,
Figure FDA00035663424800000311
表示归一化屏幕坐标Ti的屏幕坐标分量,表示从二维纹理数组DEPTHS第L层深度图上根据屏幕坐标采样模型顶点深度值;
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件
Figure FDA00035663424800000312
满足时,则表示模型顶点应该渲染视频纹理颜色,反之模型顶点颜色值为Cnt;其中,Δd为计算机保存深度图时的舍入误差和计算误差,
Figure FDA0003566342480000041
为模型顶点的深度值;
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
Figure FDA0003566342480000042
其中,texture()表示纹理采样函数,IMGS为存储预处理后视频影像的二维纹理数组,表示从二维纹理数组IMGS第L层视频纹理上根据屏幕坐标采样模型顶点颜色值。
CN202110445919.1A 2021-04-25 2021-04-25 一种视频三维融合时gpu加速的视频纹理更新方法 Expired - Fee Related CN113205599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110445919.1A CN113205599B (zh) 2021-04-25 2021-04-25 一种视频三维融合时gpu加速的视频纹理更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110445919.1A CN113205599B (zh) 2021-04-25 2021-04-25 一种视频三维融合时gpu加速的视频纹理更新方法

Publications (2)

Publication Number Publication Date
CN113205599A CN113205599A (zh) 2021-08-03
CN113205599B true CN113205599B (zh) 2022-06-14

Family

ID=77028384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110445919.1A Expired - Fee Related CN113205599B (zh) 2021-04-25 2021-04-25 一种视频三维融合时gpu加速的视频纹理更新方法

Country Status (1)

Country Link
CN (1) CN113205599B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113720852A (zh) * 2021-08-16 2021-11-30 中国飞机强度研究所 一种多相机图像采集监测装置
CN117560578B (zh) * 2024-01-12 2024-04-16 北京睿呈时代信息科技有限公司 基于三维场景渲染且视点无关的多路视频融合方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112437276A (zh) * 2020-11-20 2021-03-02 埃洛克航空科技(北京)有限公司 一种基于WebGL的三维视频融合方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573521B (zh) * 2018-04-12 2022-02-08 东南大学 基于cuda并行计算框架的实时交互式裸眼3d显示方法
KR102525578B1 (ko) * 2018-10-19 2023-04-26 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN109658488B (zh) * 2018-11-12 2022-07-19 浙江大学 一种虚实融合系统中通过可编程gpu加速解码摄像头视频流的方法
CN111726594A (zh) * 2019-03-21 2020-09-29 上海飞猿信息科技有限公司 一种高效优化渲染及与位姿反畸变融合的实现方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112437276A (zh) * 2020-11-20 2021-03-02 埃洛克航空科技(北京)有限公司 一种基于WebGL的三维视频融合方法及系统

Also Published As

Publication number Publication date
CN113205599A (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
CA2948903C (en) Method, system and apparatus for generation and playback of virtual reality multimedia
US6356297B1 (en) Method and apparatus for displaying panoramas with streaming video
US10499033B2 (en) Apparatus, a method and a computer program for coding and rendering volumetric video
US11941748B2 (en) Lightweight view dependent rendering system for mobile devices
CN113205599B (zh) 一种视频三维融合时gpu加速的视频纹理更新方法
CN109040601B (zh) 一种多尺度非结构化的十亿像素vr全景摄影系统
US9621901B1 (en) Encoding of computer-generated video content
CN113989432A (zh) 3d影像的重构方法、装置、电子设备及存储介质
CN111091491B (zh) 一种等距圆柱投影的全景视频像素再分配方法及系统
WO2020184174A1 (ja) 画像処理装置および画像処理方法
CN107562185B (zh) 一种基于头戴vr设备的光场显示系统及实现方法
CN109658488B (zh) 一种虚实融合系统中通过可编程gpu加速解码摄像头视频流的方法
CN113132708B (zh) 利用鱼眼相机获取三维场景图像的方法和装置、设备和介质
EP3729805A1 (en) Method for encoding and decoding volumetric video data
EP4162691A1 (en) A method, an apparatus and a computer program product for video encoding and video decoding
EP3540696A1 (en) A method and an apparatus for volumetric video rendering
US20230106679A1 (en) Image Processing Systems and Methods
WO2023280266A1 (zh) 鱼眼图像压缩、鱼眼视频流压缩以及全景视频生成方法
Hu et al. A multi-user oriented live free-viewpoint video streaming system based on view interpolation
Kriz et al. Proposed Methods for Real-Time Visualization of Panoramic Stadium Tribune Images in High Resolution
US20230360318A1 (en) Virtual view generation
McNamee et al. Efficient Remote Rendering Using Equirectangular Projection.
Duchêne et al. A stereoscopic movie player with real-time content adaptation to the display geometry
Kitahara et al. Cinematized reality: Cinematographic camera controlling 3d free-viewpoint video
CN117931120A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220614