CN113205599B - 一种视频三维融合时gpu加速的视频纹理更新方法 - Google Patents
一种视频三维融合时gpu加速的视频纹理更新方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000004927 fusion Effects 0.000 title claims abstract description 16
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 claims abstract description 28
- 230000001133 acceleration Effects 0.000 claims abstract description 11
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims description 27
- 239000013598 vector Substances 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 8
- 239000000126 substance Substances 0.000 claims description 7
- 101100495256 Caenorhabditis elegans mat-3 gene Proteins 0.000 claims description 6
- BJAJDJDODCWPNS-UHFFFAOYSA-N dotp Chemical compound O=C1N2CCOC2=NC2=C1SC=C2 BJAJDJDODCWPNS-UHFFFAOYSA-N 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 6
- 230000001174 ascending effect Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 abstract description 14
- 238000009877 rendering Methods 0.000 abstract description 12
- 238000012805 post-processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30232—Surveillance
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
技术领域
本发明涉及视频编解码、视频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场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
其中,表示三维GIS场景中第i个视频纹理中心点的世界坐标点,Ci(xc,yc,zc)表示Oi对应的第i个设备屏幕坐标点,Msv表示场景相机的投影视图变换矩阵,Msp表示场景相机的透视投影变换矩阵,Msw表示场景相机的视口变换矩阵,N表示三维GIS场景中视频纹理中心点的数量;
设H表示用户观察窗口的长度,设W表示用户观察窗口的宽度;
否则,设备屏幕坐标点Ci相对用户观察窗口不可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点不在用户视域内;
其中,xp为用户视点对应世界坐标点P的X轴坐标分量,yp为用户视点对应世界坐标点P的Y轴坐标分量,zp为用户视点对应世界坐标点P的Z轴坐标分量,为第k个点Ok的X轴坐标分量,为第k个点Ok的Y轴坐标分量,为第k个点Ok的Z轴坐标分量;
作为优选,步骤6具体如下:
计算世界坐标系中模型顶点坐标Pw的公式如下,
Pw=MinvMmvPglv
其中,Mmv为场景相机的模型视图变换矩阵,Minv为三维GIS场景相机视图变换矩阵的逆矩阵,Pglv为模型坐标系中的模型顶点坐标;
计算世界坐标系中模型顶点法向量Nv的公式如下,
Nv=mat3(MinvMmv)Pgln
其中,mat3()表示去除齐次坐标后的变换矩阵,Pgln为模型坐标系中的模型顶点法向量;
在第i个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积Dotpi的公式如下,
其中,normalize()为向量正则化函数,dot()为向量点积函数,为第i个虚拟投影相机的世界坐标,若条件DotPi>0满足时,则表示模型顶点面向第i个虚拟投影相机,反之模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt;
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标Ti的公式如下,
其中,Mn为归一化矩阵。
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值Hi的公式如下,
其中,texture()表示纹理采样函数,DEPTHS为存储虚拟投影相机对应场景深度图的二维纹理数组,L为第i个视频对应IMGS和DEPTHS数组索引,表示归一化屏幕坐标Ti的屏幕坐标分量,表示从二维纹理数组DEPTHS第L层深度图上根据屏幕坐标采样模型顶点深度值。
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件满足时,则表示模型顶点应该渲染视频纹理颜色,反之模型顶点颜色值为Cnt。其中,Δd为计算机保存深度图时的舍入误差和计算误差,为模型顶点的深度值。
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
其中,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场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
其中,表示三维GIS场景中第i个视频纹理中心点的世界坐标点,Ci(xc,yc,zc)表示Oi对应的第i个设备屏幕坐标点,Msv表示场景相机的投影视图变换矩阵,Msp表示场景相机的透视投影变换矩阵,Msw表示场景相机的视口变换矩阵,N表示三维GIS场景中视频纹理中心点的数量;
设H=1024表示用户观察窗口的长度,设W=768表示用户观察窗口的宽度;
否则,设备屏幕坐标点Ci相对用户观察窗口不可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点不在用户视域内;
其中,xp为用户视点对应世界坐标点P的X轴坐标分量,yp为用户视点对应世界坐标点P的Y轴坐标分量,zp为用户视点对应世界坐标点P的Z轴坐标分量,为第k个点Ok的X轴坐标分量,为第k个点Ok的Y轴坐标分量,为第k个点Ok的Z轴坐标分量;
步骤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个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积DotPi的公式如下,
其中,normalize()为向量正则化函数,dot()为向量点积函数,为第i个虚拟投影相机的世界坐标,若条件DotPi>0满足时,则表示模型顶点面向第i个虚拟投影相机,反之模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt;
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标Ti的公式如下,
其中,Mn为归一化矩阵。
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值Hi的公式如下,
其中,texture()表示纹理采样函数,DEPTHS为存储虚拟投影相机对应场景深度图的二维纹理数组,L为第i个视频对应IMGS和DEPTHS数组索引,表示归一化屏幕坐标Ti的屏幕坐标分量,表示从二维纹理数组DEPTHS第L层深度图上根据屏幕坐标采样模型顶点深度值。
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件满足时,则表示模型顶点应该渲染视频纹理颜色,反之模型顶点颜色值为Cnt。其中,Δd为计算机保存深度图时的舍入误差和计算误差,为模型顶点的深度值。
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
其中,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加速视频图像格式转换的过程;
式中y、u、v表示YUV格式影像在Y、U、V三个通道上对应的颜色值,r、g、b表示RGB格式影像在R、G、B三个通道上对应的颜色值。
2)对于畸变较大的影像(如广角影像的桶形畸变和全景影像的全景畸变等)进行畸变校正,进而使影像校正到正常人眼不产生扭曲的程度。具体的,首先通过预处理获得原始影像和校正后影像之间的映射关系,然后通过双线性插值就可计算得到校正后影像:
式中,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场景中视频纹理中心点的世界坐标点对应的设备屏幕坐标点:
其中,表示三维GIS场景中第i个视频纹理中心点的世界坐标点,Ci(xc,yc,zc)表示Oi对应的第i个设备屏幕坐标点,Msv表示场景相机的投影视图变换矩阵,Msp表示场景相机的透视投影变换矩阵,Msw表示场景相机的视口变换矩阵,N表示三维GIS场景中视频纹理中心点的数量;
设H表示用户观察窗口的长度,设W表示用户观察窗口的宽度;
否则,设备屏幕坐标点Ci相对用户观察窗口不可见,即对应的三维GIS场景中视频纹理中心点的世界坐标点不在用户视域内;
其中,xp为用户视点对应世界坐标点P的X轴坐标分量,yp为用户视点对应世界坐标点P的Y轴坐标分量,zp为用户视点对应世界坐标点P的Z轴坐标分量,为第k个点Ok的X轴坐标分量,为第k个点Ok的Y轴坐标分量,为第k个点Ok的Z轴坐标分量;
步骤6具体如下:
计算世界坐标系中模型顶点坐标Pw的公式如下,
Pw=MinvMmvPglv
其中,Mmv为场景相机的模型视图变换矩阵,Minv为三维GIS场景相机视图变换矩阵的逆矩阵,Pglv为模型坐标系中的模型顶点坐标;
计算世界坐标系中模型顶点法向量Nv的公式如下,
Nv=mat3(MinvMmv)Pgln
其中,mat3()表示去除齐次坐标后的变换矩阵,Pgln为模型坐标系中的模型顶点法向量;
在第i个虚拟投影相机视域范围内,计算虚拟投影相机视线向量和模型顶点法向量之间向量点积DotPi的公式如下,
其中,normalize()为向量正则化函数,dot()为向量点积函数,为第i个虚拟投影相机的世界坐标,若条件DotPi>0满足时,则表示模型顶点面向第i个虚拟投影相机,反之模型顶点颜色值为三维GIS场景模型顶点原本的颜色值Cnt;
计算模型顶点在第i个虚拟投影相机中的归一化屏幕坐标Ti的公式如下,
其中,Mn为归一化矩阵;
当模型顶点面向第i个虚拟投影相机,计算在第i个虚拟投影相机内归一化屏幕坐标对应深度图上深度值Hi的公式如下,
其中,texture()表示纹理采样函数,DEPTHS为存储虚拟投影相机对应场景深度图的二维纹理数组,L为第i个视频对应IMGS和DEPTHS数组索引,表示归一化屏幕坐标Ti的屏幕坐标分量,表示从二维纹理数组DEPTHS第L层深度图上根据屏幕坐标采样模型顶点深度值;
计算模型顶点深度值和深度图上对应深度值之间的大小关系来过滤被遮挡的朝向虚拟投影相机的模型顶点,若条件满足时,则表示模型顶点应该渲染视频纹理颜色,反之模型顶点颜色值为Cnt;其中,Δd为计算机保存深度图时的舍入误差和计算误差,为模型顶点的深度值;
计算上述模型顶点对应第i个视频纹理上颜色值的公式如下,
其中,texture()表示纹理采样函数,IMGS为存储预处理后视频影像的二维纹理数组,表示从二维纹理数组IMGS第L层视频纹理上根据屏幕坐标采样模型顶点颜色值。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112437276A (zh) * | 2020-11-20 | 2021-03-02 | 埃洛克航空科技(北京)有限公司 | 一种基于WebGL的三维视频融合方法及系统 |
Family Cites Families (4)
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 | 上海飞猿信息科技有限公司 | 一种高效优化渲染及与位姿反畸变融合的实现方法 |
-
2021
- 2021-04-25 CN CN202110445919.1A patent/CN113205599B/zh not_active Expired - Fee Related
Patent Citations (1)
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 |