CN116245989A - 体积视频的处理方法、装置、存储介质及计算机设备 - Google Patents
体积视频的处理方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN116245989A CN116245989A CN202211612830.0A CN202211612830A CN116245989A CN 116245989 A CN116245989 A CN 116245989A CN 202211612830 A CN202211612830 A CN 202211612830A CN 116245989 A CN116245989 A CN 116245989A
- Authority
- CN
- China
- Prior art keywords
- video
- data
- decoding
- dynamic memory
- array
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种体积视频的处理方法、装置、存储介质及计算机设备,本申请实施例中,根据待处理的体积视频为渲染引擎分配动态内存数组;然后为该动态内存数组创建数组指针,并将数组指针发送至视频解码模块;接着通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组;通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧;播放渲染引擎输出的视频帧。通过本申请实施例的方案,可以直接将解码数据存储到渲染引擎可以读取的内存中,极大地提高了体积视频的渲染效率,提高了体积视频播放的流畅度。
Description
技术领域
本申请涉及通讯技术领域,具体涉及一种体积视频的处理方法、装置、存储介质及计算机设备。
背景技术
随着科技的发展,人们对各种影像资源的要求越来越高,为了给用户营造身临其境的感觉,越来越多的影像资源采用了体积视频的技术,体积视频是一种可以捕获三维空间中信息(如深度信息和色彩信息等)并生成三维模型序列的技术,这些三维模型连起来就形成了可以在任意视角观看的全新视频格式。
体积视频在播放时需要依次进行解码、3D建模之后才能渲染播放,其中,体积视频的解码多是采用硬件解码。
但是,常用的渲染引擎,如Unity3D等所使用的编码语言与硬解数据使用的语言不同。例如,Unity3D引擎的开发语言是C#语言,而硬解数据存在于C++语言模型下的内存缓冲区之中,这种语言环境的不一致导致将硬解数据传递至渲染引擎的过程至少需要两次大规模的数据复制,而体积视频的硬解数据的数据量是比较大的,数据复制占用的时间过长会导致体积视频的渲染效率低,造成体积视频无法流畅播放。
发明内容
本申请实施例提供一种体积视频的处理方法、装置、存储介质及计算机设备,能够提高体积视频的渲染效率。
本申请实施例提供一种体积视频的处理方法,包括:
根据待处理的体积视频为渲染引擎分配动态内存数组;
为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放所述渲染引擎输出的所述视频帧。
相应地,本申请实施例还提供一种体积视频的处理装置,包括:
分配单元,用于根据待处理的体积视频为渲染引擎分配动态内存数组;
创建单元,用于为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
解码单元,用于通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
渲染单元,用于通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放单元,用于播放所述渲染引擎输出的所述视频帧。
此外,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的体积视频的处理方法。
此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的体积视频的处理方法。
本申请实施例提供的技术方案,根据待处理的体积视频为渲染引擎分配动态内存数组;然后为该动态内存数组创建数组指针,并将数组指针发送至视频解码模块;接着通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组;通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧;播放渲染引擎输出的视频帧。通过本申请实施例的方案,可以直接将解码数据存储到渲染引擎可以读取的内存中,极大地提高了体积视频的渲染效率,提高了体积视频播放的流畅度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的体积视频的处理方法的应用场景示意图。
图2为本申请实施例提供的体积视频的处理方法的一种流程示意图。
图3为本申请实施例提供的体积视频的处理方法的另一种流程示意图。
图4为本申请实施例提供的体积视频的处理装置的一种结构示意图。
图5为本申请实施例提供的计算机设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
体积视频(Volumetric Video,又称容积视频、空间视频、体三维视频或6自由度视频等)是一种通过捕获三维空间中信息(如深度信息和色彩信息等)并生成三维模型序列的技术。相对于传统的视频,体积视频将空间的概念加入到视频中,用三维模型来更好的还原真实三维世界,而不是以二维的平面视频加上运镜来模拟真实三维世界的空间感。由于体积视频实质为三维模型序列,使得用户可以随自己喜好调整到任意视角进行观看,较二维平面视频具有更高的还原度和沉浸感。
可选地,在本申请中,用于构成体积视频的三维模型可以按照如下方式重建得到:
先获取拍摄对象的不同视角的彩色图像和深度图像,以及彩色图像对应的相机参数;然后根据获取到的彩色图像及其对应的深度图像和相机参数,训练隐式表达拍摄对象三维模型的神经网络模型,并基于训练的神经网络模型进行等值面提取,实现对拍摄对象的三维重建,得到拍摄对象的三维模型。
应当说明的是,本申请实施例中对采用何种架构的神经网络模型不作具体限制,可由本领域技术人员根据实际需要选取。比如,可以选取不带归一化层的多层感知机(Multilayer Perceptron,MLP)作为模型训练的基础模型。
下面将对本申请提供的三维模型重建方法进行详细描述。
首先,可以同步采用多个彩色相机和深度相机对需要进行三维重建的目标物体(该目标物体即为拍摄对象)进行多视角的拍摄,得到目标物体在多个不同视角的彩色图像及对应的深度图像,即在同一拍摄时刻(实际拍摄时刻的差值小于或等于时间阈值即认为拍摄时刻相同),各视角的彩色相机将拍摄得到目标物体在对应视角的彩色图像,相应的,各视角的深度相机将拍摄得到目标物体在对应视角的深度图像。需要说明的是,目标物体可以是任意物体,包括但不限于人物、动物以及植物等生命物体,或者机械、家具、玩偶等非生命物体。
以此,目标物体在不同视角的彩色图像均具备对应的深度图像,即在拍摄时,彩色相机和深度相机可以采用相机组的配置,同一视角的彩色相机配合深度相机同步对同一目标物体进行拍摄。比如,可以搭建一摄影棚,该摄影棚中心区域为拍摄区域,环绕该拍摄区域,在水平方向和垂直方向每间隔一定角度配对设置有多组彩色相机和深度相机。当目标物体处于这些彩色相机和深度相机所环绕的拍摄区域时,即可通过这些彩色相机和深度相机拍摄得到该目标物体在不同视角的彩色图像及对应的深度图像。
此外,进一步获取每一彩色图像对应的彩色相机的相机参数。其中,相机参数包括彩色相机的内外参,可以通过标定确定,相机内参为与彩色相机自身特性相关的参数,包括但不限于彩色相机的焦距、像素等数据,相机外参为彩色相机在世界坐标系中的参数,包括但不限于彩色相机的位置(坐标)和相机的旋转方向等数据。
如上,在获取到目标物体在同一拍摄时刻的多个不同视角的彩色图像及其对应的深度图像之后,即可根据这些彩色图像及其对应深度图像对目标物体进行三维重建。区别于相关技术中将深度信息转换为点云进行三维重建的方式,本申请训练一神经网络模型用以实现对目标物体的三维模型的隐式表达,从而基于该神经网络模型实现对目标物体的三维重建。
可选地,本申请选用一不包括归一化层的多层感知机(Multilayer Perceptron,MLP)作为基础模型,按照如下方式进行训练:
基于对应的相机参数将每一彩色图像中的像素点转化为射线;
在射线上采样多个采样点,并确定每一采样点的第一坐标信息以及每一采样点距离像素点的SDF值;
将采样点的第一坐标信息输入基础模型,得到基础模型输出的每一采样点的预测SDF值以及预测RGB颜色值;
基于预测SDF值与SDF值之间的第一差异,以及预测RGB颜色值与像素点的RGB颜色值之间的第二差异,对基础模型的参数进行调整,直至满足预设停止条件;
将满足预设停止条件的基础模型作为隐式表达目标物体的三维模型的神经网络模型。
首先,基于彩色图像对应的相机参数将彩色图像中的一像素点转化为一条射线,该射线可以为经过像素点且垂直于彩色图像面的射线;然后,在该射线上采样多个采样点,采样点的采样过程可以分两步执行,可以先均匀采样部分采样点,然后再在基于像素点的深度值在关键处进一步采样多个采样点,以保证在模型表面附近可以采样到尽量多的采样点;然后,根据相机参数和像素点的深度值计算出采样得到的每一采样点在世界坐标系中的第一坐标信息以及每一采样点的有向距离(Signed Distance Field,SDF)值,其中,SDF值可以为像素点的深度值与采样点距离相机成像面的距离之间的差值,该差值为有符号的值,当差值为正值时,表示采样点在三维模型的外部,当差值为负值时,表示采样点在三维模型的内部,当差值为零时,表示采样点在三维模型的表面;然后,在完成采样点的采样并计算得到每一采样点对应的SDF值之后,进一步将采样点在世界坐标系的第一坐标信息输入基础模型(该基础模型被配置为将输入的坐标信息映射为SDF值和RGB颜色值后输出),将基础模型输出的SDF值记为预测SDF值,将基础模型输出的RGB颜色值记为预测RGB颜色值;然后,基于预测SDF值与采样点对应的SDF值之间的第一差异,以及预测RGB颜色值与采样点所对应像素点的RGB颜色值之间的第二差异,对基础模型的参数进行调整。
此外,对于彩色图像中的其它像素点,同样按照上述方式进行采样点采样,然后将采样点在世界坐标系的坐标信息输入至基础模型以得到对应的预测SDF值和预测RGB颜色值,用于对基础模型的参数进行调整,直至满足预设停止条件,比如,可以配置预设停止条件为对基础模型的迭代次数达到预设次数,或者配置预设停止条件为基础模型收敛。在对基础模型的迭代满足预设停止条件时,即得到能够对拍摄对象的三维模型进行准确地隐式表达的神经网络模型。最后,可以采用等值面提取算法对该神经网络模型进行三维模型表面的提取,从而得到拍摄对象的三维模型。
可选地,在一些实施例中,根据相机参数确定彩色图像的成像面;确定经过彩色图像中像素点且垂直于成像面的射线为像素点对应的射线。
其中,可以根据彩色图像对应的彩色相机的相机参数,确定该彩色图像在世界坐标系中的坐标信息,即确定成像面。然后,可以确定经过彩色图像中像素点且垂直于该成像面的射线为该像素点对应的射线。
可选地,在一些实施例中,根据相机参数确定彩色相机在世界坐标系中的第二坐标信息及旋转角度;根据第二坐标信息和旋转角度确定彩色图像的成像面。
可选地,在一些实施例中,在射线上等间距采样第一数量个第一采样点;根据像素点的深度值确定多个关键采样点,并根据关键采样点采样第二数量个第二采样点;将第一数量个的第一采样点与第二数量个的第二采样点确定为在射线上采样得到的多个采样点。
其中,先在射线上均匀采样n(即第一数量)个第一采样点,n为大于2的正整数;然后,再根据前述像素点的深度值,从n个第一采样点中确定出距离前述像素点最近的预设数量个关键采样点,或者从n个第一采样点中确定出距离前述像素点小于距离阈值的关键采样点;然后,根据确定出的关键采样点再采样m个第二采样点,m为大于1的正整数;最后,将采样得到的n+m个采样点确定为在射线上采样得到的多个采样点。其中,在关键采样点处再多采样m个采样点,可以使得模型的训练效果在三维模型表面处更为精确,从而提升三维模型的重建精度。
可选地,在一些实施例中,根据彩色图像对应的深度图像确定像素点对应的深度值;基于深度值计算每一采样点距离像素点的SDF值;根据相机参数与深度值计算每一采样点的坐标信息。
其中,在每一像素点对应的射线上采样了多个采样点后,对于每一采样点,根据相机参数、像素点的深度值确定彩色相机的拍摄位置与目标物体上对应点之间的距离,然后基于该距离逐一计算每一采样点的SDF值以及计算出每一采样点的坐标信息。
需要说明的是,在完成对基础模型的训练之后,对于给定的任意一个点的坐标信息,即可由完成训练的基础模型预测其对应的SDF值,该预测的SDF值即表示了该点与目标物体的三维模型的位置关系(内部、外部或者表面),实现对目标物体的三维模型的隐式表达,得到用于隐式表达目标物体的三维模型的神经网络模型。
最后,对以上神经网络模型进行等值面提取,比如可以采用等值面提取算法(Marching cubes,MC)绘制出三维模型的表面,得到三维模型表面,进而根据该三维模型表面得到目标物体的三维模型。
本申请提供的三维重建方案,通过神经网络去隐式建模目标物体的三维模型,并加入深度信息提高模型训练的速度和精度。采用本申请提供的三维重建方案,在时序上持续的对拍摄对象进行三维重建,即可得到拍摄对象在不同时刻的三维模型,这些不同时刻的三维模型按时序构成的三维模型序列即为对拍摄对象所拍摄得到的体积视频。以此,可以针对任意拍摄对象进行“体积视频拍摄”,得到特定内容呈现的体积视频。比如,可以对跳舞的拍摄对象进行体积视频拍摄,得到可以在任意角度观看拍摄对象舞蹈的体积视频,可以对教学的拍摄对象进行体积视频拍摄,得到可以在任意角度观看拍摄对象教学的体积视频,等等。
需要说明的是,本申请以下实施例涉及的体积视频可采用以上体积视频拍摄方式所拍摄得到。
本申请实施例提供一种体积视频的处理方法、装置、计算机设备和计算机可读存储介质。其中,该体积视频的处理装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以包括平板电脑、笔记本电脑、以及个人计算机(PC,Personal Computer),但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
例如,参见图1,以本申请实施例提供的体积视频的处理方法集成在计算机设备中为例,计算机设备先根据待处理的体积视频为渲染引擎分配动态内存数组;然后为该动态内存数组创建数组指针,并将数组指针发送至视频解码模块;计算机设备通过视频解码模块对该体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于该数组指针将第一解码数据写入到动态内存数组,然后,通过该渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧,播放渲染引擎输出的视频帧。
其中,内存动态数组是计算机设备为渲染引擎分配的内存空间,用于存储解码数据。
其中,渲染引擎是用于对体积视频进行渲染的软件,例如,可以是Unity3D等可以用于三维模型渲染的计算机程序。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例将会从计算机设备的角度来描述该体积视频的处理方法的具体过程。
请参阅图2,图2为本申请实施例提供的体积视频的处理方法的一种流程示意图。本申请实施例提供的体积视频的处理方法的具体流程可以如下:
101、根据待处理的体积视频为渲染引擎分配动态内存数组。
体积视频是拍摄并制作完成的三维模型序列经过编码压缩后得到的。当播放该体积视频时,需要对体积视频进行解码处理,并对解码后的得到的数据进行渲染处理,得到视频帧数据进行播放。
其中,待处理的体积视频为需要进行解码、渲染和播放的体积视频。该体积视频可以存储在服务器中,用户终端与服务器建立连接并通过服务器提供的数据进行在线播放。该体积视频也可以存储在用户终端,并在用户终端进行本地播放。如果进行的是在线播放,那么解码和渲染的过程是在服务器端进行。
本申请实施例中,计算机设备的底层硬件对该体积视频进行解码处理,将解码数据写入特定的内存空间,渲染引擎再从该内存空间读取解码数据并对其渲染处理。
首先,根据该体积视频为渲染引擎分配动态内存数据。例如,在一实施例中,根据待处理的体积视频为渲染引擎分配动态内存数组,包括:根据待处理的体积视频确定内存需求量;根据内存需求量为体积视频分配多个动态内存数组,第一解码数据包括多种不同类型的子解码数据,每一类子解码数据对应于至少一个动态内存数组。
例如,对于待处理的体积视频,对该体积视频进行解析,确定该体积视频的时长、数据量大小、帧数等信息,并根据这些信息估算的渲染引擎对该体积视频渲染所需要的内存需求量。例如,根据上述信息估算该体积视频的一帧视频帧的解码数据的数据量,将与该数据量匹配的内存大小确定为内存需求量。或者,也可以根据上述信息估算该体积视频的两帧或者两帧以上的视频帧的解码数据的数据量,将与该数据量匹配的内存大小确定为内存需求量。在确定出内存需求量之后,根据该内存需求量为体积视频分配多个动态内存数组。
如前文所言,体积视频本质上是三维模型序列,它的每一帧都是一个三维模型。对于一帧视频帧来说,解码数据一般包括模型的网格数据和纹理数据。其中,网格数据包括顶点数据、法线数据、三角面数据、纹理坐标数据等,纹理数据为纹理贴图。也就是说,解码数据至少包括上述五种类型的子解码数据。其中,第一解码数据可以是上述多种类型的解码数据中的至少一种。例如,在一实施例中,第一解码数据为网格数据。或者,在另一实施例中,第一解码数据为网格数据和纹理数据。
在一实施例中,当第一解码数据包括一种以上类型的子解码数据时,可以为每一种类型的数据分配一个或者一个以上的动态内存数组,具体的数量可以根据实际需要预先设置,并设置该动态内存数组的内存容量的上限值。例如,对于顶点数据,可以根据上文中确定出的内存需求量以及顶点数据在全部解码数据中所占的比例,确定顶点数据对应的动态内存数组的内存容量的上限值。
102、为动态内存数组创建数组指针,并将数组指针发送至视频解码模块。
计算机设备在为渲染引擎分配动态内存数组之后,接下来为动态内存数组创建数组指针。
本申请实施例中,数组指针为内存指针,用于标识一段内存空间的地址。
在不同的计算机语言环境下的指针并不是互通的。例如,Unity3D引擎的开发语言是C#语言,C++语言模型下的内存数据通过指针方式进行引用,但是C#语言无法直接使用这个指针。
因此,本申请实施例中,为动态内存数据创建一个数组指针,该指针是计算机设备的底层硬件解码API(Application Programming Interface,应用程序编程接口)可以读写的指针,或者说是计算机设备的Native层可以读写的指针。而渲染引擎本身并不需要使用该指针,该指针是提供给底层硬件解码API存储解码数据使用的。这里的Native层是指计算机设备的原生系统或者原生框架,是相对于一些可以跨平台使用的程序(如Unity3D)而言的。
其中,视频解码模块通过硬件解码API输出解码数据至内存空间。
计算机设备在为渲染引擎的动态内存数据分配数组指针之后,将这些数组指针发送给视频解码模块。如前文所言,数组指针为内存指针,用于标识一段内存空间的地址。而该内存指针计算机设备的底层硬件解码API可以读写的指针,因此,视频解码模块可以将对体积视频解码处理得到的解码数据,根据该指针写入到对应的动态内存数组中。
需要说明的是,本申请实施例中,计算机设备采用硬解的方式对体积视频解码处理。其中,硬解是视频解码的一种方法,相对于软解而言的。软解是指通过软件让CPU进行视频解码处理。而硬解则无需通过CPU,而是通过专用的设备(子卡)单独完成视频解码。而随着计算机设备的发展,目前的计算机设备将硬解码模块被整合在了GPU(graphicsprocessing unit,图形处理器)内部。而目前主流的显卡或者显示芯片等都能支持硬解码。
本申请的视频解码模块可以是GPU、显卡或者显示芯片等能够对体积视频进行解码处理的硬件模块。
在一实施例中,为动态内存数组创建数组指针,并将数组指针发送至视频解码模块,包括:确定每一动态内存数组对应的子解码数据的数据类型;为每一动态内存数组创建数组指针,得到多个数组指针,并建立数组指针与数据类型之间的关联关系;将多个数组指针和关联关系发送至视频解码模块。
计算机设备在创建动态内存数组之后,确定每一个动态内存数组用于存储哪一类型的子解码数据。例如,计算机设备针对五类的子解码数据创建了五个动态内存数组,分别为动态内存数组1,动态内存数组2,动态内存数组3,动态内存数组4以及动态内存数组5。其中,动态内存数组1用于存储顶点数据,动态内存数组2用于存储法线数据,动态内存数组3用于存储三角面数据,动态内存数组4用于存储纹理坐标数据,动态内存数组5用于存储纹理数据。在为每一动态内存数组创建数组指针,得到多个数组指针。根据上述各动态内存数组与各类型的子解码数据之间的关系,对应地建立数组指针与数据类型之间的关联关系,将多个数组指针和关联关系发送至视频解码模块。
103、通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组。
104、通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧。
计算机设备的视频解码模块在接收到上述数组指针之后,将对体积视频解码得到的视频帧的第一解码数据对应地写入到数组指针所指示的动态内存数据中。
可以理解的是,计算机设备为渲染引擎创建的动态内存数组,渲染引擎可以直接对该动态内存数组内的数据进行读写的。但是计算机设备又为这些动态内存数组分配了视频解码模块可以使用的指针,基于此,视频解码模块可以直接将第一解码数据写入到渲染引擎可以读写的内存中,实现了将解码数据快速地传递至渲染引擎。避免了中间的多次数据复制过程,加快了渲染效率。
在一实施例中,通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组,包括:通过视频解码模块对体积视频进行逐帧解码处理;每当得到一帧视频帧的第一解码数据中的一类子解码数据,根据关联关系从数组指针中确定子解码数据对应的目标指针;基于目标指针将子解码数据写入目标指针对应的动态内存数组。
其中,体积视频实质上是三维模型序列,体积视频的每一帧都是一个三维模型,尤其对应的网格数据和纹理数据。体积视频压缩存储时也是以视频帧为单位压缩存储的,因此解码时,也是以帧为单位得到解码数据的。其中,视频解码模块按照三维模型序列中三维模型的顺序依次解码并输出视频帧的第一解码数据,这里的第一解码数据为一帧视频帧中的三维模型中的解码数据。视频解码模块对体积视频进行逐帧解码处理,每当得到一帧视频帧的第一解码数据中的一类子解码数据,就根据关联关系从数组指针中确定子解码数据对应的目标指针;例如,解码得到一视频帧的顶点数据,则根据上文中的关联关系,确定顶点数据对应的目标指针,然后,基于目标指针将子解码数据写入目标指针对应的动态内存数组。
其中,可以理解的是,在用户实时播放体积视频的过程中,体积视频也是一边解码和渲染,一边播放的。视频解码模块将解码得到的第一解码数据写入到动态数据组之后,渲染引擎就可以立即从动态数据组中读取数据进行渲染。
以子解码数据为顶点数据为例,对于顶点数据,计算机设备可以为其分配一个动态内存数组,当视频解码模块解码得到一帧视频帧的顶点数据后,将该顶点数据写入该动态内存数组,然后,渲染引擎从该动态内存数组读取该顶点数据。在渲染引擎从该动态内存数组读取该顶点数据进行渲染之后,视频解码模块可以将解码得到的下一帧视频帧的顶点数据写入到该动态内存数组。
或者,计算机设备也可以为其分配一个以上动态内存数组,例如为其分配两个动态内存数组,当视频解码模块解码得到一帧视频帧的顶点数据后,将该顶点数据写入其第一个动态内存数组,渲染引擎从该动态内存数组读取该顶点数据。与此同时,视频解码模对下一帧视频帧进行解码,将得到的顶点数据写入第二个动态内存数组,在渲染引擎从第一个动态内存数组读取该顶点数据进行渲染之后,视频解码模可以将解码得到的下下一帧视频帧的顶点数据写入到第一个动态内存数组中,如此循环往复,提高解码和渲染的效率。
对于渲染引擎来说,也是逐帧地对每一视频帧的三维模型进行渲染处理,并输出进行播放。渲染引擎从动态内存数组读取第一解码数据,并对这些数据进行渲染处理,得到视频帧。
105、播放渲染引擎输出的视频帧。
计算机设备对渲染引擎输出的视频帧进行播放处理。由于本申请实施例的方案在硬件解码与渲染这两个步骤之间节省了数据复制的时间,从而可以提高的体积视频的渲染速度,从而减少了视频帧时间的卡顿情况,提高了体积视频播放的流畅度。
具体实施时,本申请不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。
由上可知,本申请实施例提供的体积视频的处理方法,根据待处理的体积视频为渲染引擎分配动态内存数组;然后为该动态内存数组创建数组指针,并将数组指针发送至视频解码模块;接着通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组;通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧;播放渲染引擎输出的视频帧。通过本申请实施例的方案,可以直接将解码数据存储到渲染引擎可以读取的内存中,极大地提高了体积视频的渲染效率,提高了体积视频播放的流畅度。
在一些实施例中,通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧,包括:通过渲染引擎从动态内存数组读取网格数据和第一纹理数据;通过渲染引擎的预设着色器,对第一纹理数据进行格式转换处理,得到目标格式的第二纹理数据,其中,第一纹理数据的格式不同于目标格式;通过渲染引擎对网格数据和第二纹理数据进行渲染处理,得到视频帧。
对于纹理数据来说,不同平台硬件解码的数据格式也可能不同。例如,iOS、Android、Windows平台下因为硬件的差异,解码得到的纹理数据的格式会存在差异。例如,iOS平台解码得到的纹理数据为RGB格式的,Unity3D等渲染引擎可以直接对RGB格式的纹理数据渲染处理,而Android平台解码得到的纹理数据为YUV格式的,Windows平台解码得到的纹理数据为YUYV格式的,对于这两种格式的纹理数据,Unity3D等渲染引擎无法直接对非RGB格式的纹理数据渲染处理。为了解决这一问题,该实施例预先在渲染引擎中创建一个着色器(shader),记为预设着色器。
若计算机设备的操作系统为Android系统或者Windows,计算机设备在使用渲染引擎对解码数据进行渲染时,通过渲染引擎从动态内存数组读取网格数据和第一纹理数据,然后通过该预设着色器对第一纹理数据进行格式转换处理,得到目标格式的第二纹理数据。例如,渲染引擎通过该预设着色器将YUV格式的第一纹理数据转换为RGB格式的第二纹理数据,再对渲染引擎对网格数据和第二纹理数据进行渲染处理,得到视频帧。
上文中的实施例提出的体积视频的处理方法中,第一解码数据可以是网格数据和纹理数据。也就是说,网格数据和纹理数据可以都采用上文中实施例的方案进行传递。
如图3所示,图3为本申请实施例提供的体积视频的处理方法的另一种流程示意图。
在步骤102之后,该方法还包括:
106、为通过视频解码模块对体积视频进行解码处理,得到视频帧的第一纹理数据。
107、将第一纹理数据发送至图形应用程序编程接口进行处理。
108、获取图形应用程序编程接口根据第一纹理数据生成的纹理ID,并将纹理ID传递至渲染引擎。
步骤104包括:
1041、通过渲染引擎,从动态内存数组读取网格数据并根据纹理ID创建出第二纹理数据。
1042、通过渲染引擎对网格数据和第二纹理数据进行渲染处理,得到视频帧。
该实施例中,第一解码数据包括网格数据,采用上文中创建数组指针的方式,将硬件解码的网格数据传递至渲染引擎。而对于纹理数据,则可以采用另一种方式将其由硬解解码API传递至渲染引擎。需要说明的是,该实施例中的第一纹理数据可以存储在为视频解码模块分配的内存空间中。
通过视频解码模块对体积视频进行解码处理,得到视频帧的第一纹理数据,然后,将第一纹理数据提交给运行平台的图形应用程序编程框架进行处理;图形应用程序编程框架根据第一纹理数据生成的纹理ID,并将纹理ID传递至渲染引擎。
其中,对于使用macOS、iOS系统的计算机设备来说,图形API(ApplicationProgramming Interface,应用程序编程接口)由Metal引擎提供,其中,Metal是由苹果公司开发的一个应用程序编程接口,兼顾图形与计算功能,实现面向底层、低功耗的硬件加速。Metal可以对第一纹理数据处理,将其转换为一个对应的纹理ID(标识)并输出。
对于使用Android系统的计算机设备来说,图形应用程序编程接口可以是OpenGLES,其中,OpenGL ES(OpenGL for Embedded Systems)是OpenGL三维图形API的子集,能够对第一纹理数据进行处理,输出一个对应的纹理ID。
对于使用Windows系统的计算机设备来说,图形应用程序编程接口可以是图形接口Direct3D,Direct3D能够对纹理数据进行处理,输出一个对应的纹理ID。
图形应用程序编程接口根据第一纹理数据生成的纹理ID,并将纹理ID传递至渲染引擎,渲染引擎可以根据该纹理ID创建出引擎需要的第二纹理数据完成渲染。渲染引擎从动态内存数组读取网格数据,并根据纹理ID创建出第二纹理数据;然后可以对网格数据和第二纹理数据进行渲染处理,得到视频帧。
本申请实施例的方案利用计算机设备本身提供的图形应用程序编程接口直接实现了纹理数据的传递和转换,不仅无需在内存中进行纹理数据的多次复制,而且在传递数据之前实现了纹理数据的格式转换,渲染引擎根据该纹理ID创建出引擎需要的格式的第二纹理数据。进一步提高了渲染的效率,从而提高了体积视频播放的流畅度。
为了更好地实施以上方法,本申请实施例还提供一种体积视频的处理装置。该体积视频的处理装置可以集成在计算机设备,比如服务器或终端等设备中,该终端可以包括平板电脑、笔记本电脑和/或个人计算机等。
如图4所示,该体积视频的处理装置可以包括:
分配单元301,用于根据待处理的体积视频为渲染引擎分配动态内存数组;
创建单元302,用于为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
解码单元303,用于通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
渲染单元304,用于通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放单元305,用于播放所述渲染引擎输出的所述视频帧。
在一些实施例中,分配单元301,用于根据待处理的体积视频确定内存需求量;根据内存需求量为所述体积视频分配多个动态内存数组,所述第一解码数据包括多种不同类型的子解码数据,每一类子解码数据对应于至少一个所述动态内存数组。
在一些实施例中,创建单元302,用于确定每一所述动态内存数组对应的子解码数据的数据类型;为每一所述动态内存数组创建数组指针,得到多个数组指针,并建立所述数组指针与所述数据类型之间的关联关系;将所述多个数组指针和所述关联关系发送至视频解码模块。
在一些实施例中,解码单元303,用于通过所述视频解码模块对所述体积视频进行逐帧解码处理;每当得到一帧视频帧的所述第一解码数据中的一类所述子解码数据,根据所述关联关系从所述数组指针中确定所述子解码数据对应的目标指针;基于所述目标指针将所述子解码数据写入所述目标指针对应的所述动态内存数组。
在一些实施例中,所述第一解码数据包括网格数据和第一纹理数据。
在一些实施例中,渲染单元304,用于通过所述渲染引擎从所述动态内存数组读取所述网格数据和所述第一纹理数据;通过所述渲染引擎的预设着色器,对所述第一纹理数据进行格式转换处理,得到目标格式的第二纹理数据,其中,所述第一纹理数据的格式不同于所述目标格式;通过所述渲染引擎对所述网格数据和所述第二纹理数据进行渲染处理,得到视频帧。
在一些实施例中,所述第一解码数据包括网格数据;解码单元303,用于通过所述视频解码模块对所述体积视频进行解码处理,得到所述视频帧的第一纹理数据;将所述第一纹理数据发送至图形应用程序编程接口进行处理;获取所述图形应用程序编程接口根据所述第一纹理数据生成的纹理ID,并将所述纹理ID传递至渲染引擎;
渲染单元304,用于通过所述渲染引擎,从所述动态内存数组读取所述网格数据并根据所述纹理ID创建出第二纹理数据;通过所述渲染引擎对所述网格数据和所述第二纹理数据进行渲染处理,得到视频帧。
应当说明的是,本申请实施例提供的体积视频的处理装置与上文实施例中的体积视频的处理方法属于同一构思,通过该体积视频的处理装置可以实现体积视频的处理方法实施例中提供的任一方法,其具体实现过程详见体积视频的处理方法实施例,此处不再赘述。
由上可知,本申请实施例提出的体积视频的处理装置,根据待处理的体积视频为渲染引擎分配动态内存数组;然后为该动态内存数组创建数组指针,并将数组指针发送至视频解码模块;接着通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组;通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧;播放渲染引擎输出的视频帧。通过本申请实施例的方案,可以直接将解码数据存储到渲染引擎可以读取的内存中,极大地提高了体积视频的渲染效率,提高了体积视频播放的流畅度。
本申请实施例还提供一种计算机设备,如图5所示,其示出了本申请实施例所涉及的计算机设备的一种结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和计算机程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息通讯,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能,如下:
根据待处理的体积视频为渲染引擎分配动态内存数组;
为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放所述渲染引擎输出的所述视频帧。
由上可知,本实施例提供的计算机设备,根据待处理的体积视频为渲染引擎分配动态内存数组;然后为该动态内存数组创建数组指针,并将数组指针发送至视频解码模块;接着通过视频解码模块对体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于数组指针将第一解码数据写入动态内存数组;通过渲染引擎从动态内存数组读取第一解码数据,并对第一解码数据进行渲染处理得到视频帧;播放渲染引擎输出的视频帧。通过本申请实施例的方案,可以直接将解码数据存储到渲染引擎可以读取的内存中,极大地提高了体积视频的渲染效率,提高了体积视频播放的流畅度。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任意一种体积视频的处理方法。例如,该计算机程序可以执行如下步骤:
根据待处理的体积视频为渲染引擎分配动态内存数组;
为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放所述渲染引擎输出的所述视频帧。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括但不限于:只读存储器(ROM,Read OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种体积视频的处理中的步骤,因此,可以实现本申请实施例所提供的任一种体积视频的处理所能实现的有益效果,详见前面的实施例,在此不再赘述。
此外,本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
以上对本申请实施例所提供的体积视频的处理方法、装置、存储介质及计算机设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种体积视频的处理方法,其特征在于,包括:
根据待处理的体积视频为渲染引擎分配动态内存数组;
为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放所述渲染引擎输出的所述视频帧。
2.如权利要求1所述的方法,其特征在于,所述根据待处理的体积视频为渲染引擎分配动态内存数组,包括:
根据待处理的体积视频确定内存需求量;
根据内存需求量为所述体积视频分配多个动态内存数组,所述第一解码数据包括多种不同类型的子解码数据,每一类子解码数据对应于至少一个所述动态内存数组。
3.如权利要求2所述的方法,其特征在于,所述为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块,包括:
确定每一所述动态内存数组对应的子解码数据的数据类型;
为每一所述动态内存数组创建数组指针,得到多个数组指针,并建立所述数组指针与所述数据类型之间的关联关系;
将所述多个数组指针和所述关联关系发送至视频解码模块。
4.如权利要求3所述的方法,其特征在于,所述通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组,包括:
通过所述视频解码模块对所述体积视频进行逐帧解码处理;
每当得到一帧视频帧的所述第一解码数据中的一类所述子解码数据,根据所述关联关系从所述数组指针中确定所述子解码数据对应的目标指针;
基于所述目标指针将所述子解码数据写入所述目标指针对应的所述动态内存数组。
5.如权利要求1所述的方法,其特征在于,所述第一解码数据包括网格数据和第一纹理数据。
6.如权利要求5所述的方法,其特征在于,所述通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧,包括:
通过所述渲染引擎从所述动态内存数组读取所述网格数据和所述第一纹理数据;
通过所述渲染引擎的预设着色器,对所述第一纹理数据进行格式转换处理,得到目标格式的第二纹理数据,其中,所述第一纹理数据的格式不同于所述目标格式;
通过所述渲染引擎对所述网格数据和所述第二纹理数据进行渲染处理,得到视频帧。
7.如权利要求1所述的方法,其特征在于,所述第一解码数据包括网格数据;所述为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块之后,所述方法还包括:
通过所述视频解码模块对所述体积视频进行解码处理,得到所述视频帧的第一纹理数据;
将所述第一纹理数据发送至图形应用程序编程接口进行处理;
获取所述图形应用程序编程接口根据所述第一纹理数据生成的纹理ID,并将所述纹理ID传递至渲染引擎;
所述通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧,包括:
通过所述渲染引擎,从所述动态内存数组读取所述网格数据并根据所述纹理ID创建出第二纹理数据;
通过所述渲染引擎对所述网格数据和所述第二纹理数据进行渲染处理,得到视频帧。
8.一种体积视频的处理装置,其特征在于,包括:
分配单元,用于根据待处理的体积视频为渲染引擎分配动态内存数组;
创建单元,用于为所述动态内存数组创建数组指针,并将所述数组指针发送至视频解码模块;
解码单元,用于通过所述视频解码模块对所述体积视频进行解码处理,得到视频帧对应的第一解码数据,并基于所述数组指针将所述第一解码数据写入所述动态内存数组;
渲染单元,用于通过所述渲染引擎从所述动态内存数组读取所述第一解码数据,并对所述第一解码数据进行渲染处理得到视频帧;
播放单元,用于播放所述渲染引擎输出的所述视频帧。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的体积视频的处理方法。
10.一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至7任一项所述的体积视频的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211612830.0A CN116245989A (zh) | 2022-12-15 | 2022-12-15 | 体积视频的处理方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211612830.0A CN116245989A (zh) | 2022-12-15 | 2022-12-15 | 体积视频的处理方法、装置、存储介质及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116245989A true CN116245989A (zh) | 2023-06-09 |
Family
ID=86626686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211612830.0A Pending CN116245989A (zh) | 2022-12-15 | 2022-12-15 | 体积视频的处理方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116245989A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116899216A (zh) * | 2023-07-07 | 2023-10-20 | 上海散爆信息技术有限公司 | 一种虚拟场景中特效融合的处理方法和装置 |
-
2022
- 2022-12-15 CN CN202211612830.0A patent/CN116245989A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116899216A (zh) * | 2023-07-07 | 2023-10-20 | 上海散爆信息技术有限公司 | 一种虚拟场景中特效融合的处理方法和装置 |
CN116899216B (zh) * | 2023-07-07 | 2024-04-19 | 上海散爆信息技术有限公司 | 一种虚拟场景中特效融合的处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114119849B (zh) | 三维场景渲染方法、设备以及存储介质 | |
CN111542861A (zh) | 利用深度外观模型渲染化身的系统和方法 | |
CN113661471A (zh) | 混合渲染 | |
US10163247B2 (en) | Context-adaptive allocation of render model resources | |
KR20170131246A (ko) | 실제 객체 및 실제 객체의 가상 복제를 포함하는 장면의 이미지를 렌더링하기 위한 방법 및 디바이스 | |
US20200221114A1 (en) | Methods and Systems for Using Atlas Frames to Process Data Representative of a Scene | |
CN102667865B (zh) | 用于生成环境地图的方法 | |
US11450072B2 (en) | Physical target movement-mirroring avatar superimposition and visualization system and method in a mixed-reality environment | |
US11501467B2 (en) | Streaming a light field compressed utilizing lossless or lossy compression | |
CN116245989A (zh) | 体积视频的处理方法、装置、存储介质及计算机设备 | |
US11475549B1 (en) | High dynamic range image generation from tone mapped standard dynamic range images | |
CN117315211B (zh) | 数字人合成及其模型训练方法、装置、设备及存储介质 | |
US20230298243A1 (en) | 3d digital avatar generation from a single or few portrait images | |
KR102065632B1 (ko) | 복수의 가상 카메라를 이용한 게임 내 360 vr 영상 획득 장치 및 방법 | |
CN116095353A (zh) | 基于体积视频的直播方法、装置、电子设备及存储介质 | |
Nitschke et al. | Real-time space carving using graphics hardware | |
EP3821602A1 (en) | A method, an apparatus and a computer program product for volumetric video coding | |
Chen et al. | A quality controllable multi-view object reconstruction method for 3D imaging systems | |
CN115442634A (zh) | 图像压缩方法、装置、存储介质、电子设备及产品 | |
CN116012666B (zh) | 图像生成、模型的训练、信息重建方法、装置及电子设备 | |
Zhang et al. | A smart method for developing game-based virtual laboratories | |
US11948338B1 (en) | 3D volumetric content encoding using 2D videos and simplified 3D meshes | |
US11769299B1 (en) | Systems and methods for capturing, transporting, and reproducing three-dimensional simulations as interactive volumetric displays | |
CN116132653A (zh) | 三维模型的处理方法、装置、存储介质及计算机设备 | |
CN116095338A (zh) | 体积视频的解码方法、装置、介质、设备及产品 |
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 |