CN112929705B - 纹理压缩和解压方法、装置、计算机设备和存储介质 - Google Patents

纹理压缩和解压方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112929705B
CN112929705B CN202110142876.XA CN202110142876A CN112929705B CN 112929705 B CN112929705 B CN 112929705B CN 202110142876 A CN202110142876 A CN 202110142876A CN 112929705 B CN112929705 B CN 112929705B
Authority
CN
China
Prior art keywords
texture
subblock
code stream
decompressed
stream data
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.)
Active
Application number
CN202110142876.XA
Other languages
English (en)
Other versions
CN112929705A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110142876.XA priority Critical patent/CN112929705B/zh
Publication of CN112929705A publication Critical patent/CN112929705A/zh
Application granted granted Critical
Publication of CN112929705B publication Critical patent/CN112929705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

本申请涉及一种纹理压缩和解压方法、装置、计算机设备和存储介质。所述方法包括:获取三维场景下的原始纹理图像;获取对原始纹理图像划分得到的纹理子块;分别对各纹理子块利用视频编码器进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据;将各帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据;将各纹理子块对应的码流数据写入至预设结构体,得到内存占用较小的视频格式的纹理压缩数据。使得解压终端通过视频解码器对压缩后的纹理压缩数据中的码流数据进行解码,因此采用本方法能够有效减少纹理数据的内存占用,以及能够降低纹理解压过程中的资源消耗。

Description

纹理压缩和解压方法、装置、计算机设备和存储介质
技术领域
本申请涉及图像处理技术领域,特别是涉及一种纹理压缩和解压方法、装置、计算机设备和存储介质。
背景技术
计算机图形学中的纹理,表示物体表面细节的一幅或几副二维图形,也称纹理贴图。当把纹理按照特定的方式映射到物体表面上的时候能使物体看上去更加真实。对于高质量、复杂场景的三维场景中的纹理数据比较庞大,如游戏场景中的纹理,因此需要对纹理进行压缩,以减少内存占用。
在相关技术中,通常是通过CPU(Central Processing Unit,中央处理器)采用高压缩比的图片压缩方式对纹理图像进行编码,然后通过CPU进行纹理解压,或通过GPU(Graphics Processing Unit,图形处理器)进行纹理解压。然而,这种纹理压缩方式会导致压缩后的纹理数据的内存占用较大,进而导致设备在对纹理数据进行解压的过程中的资源消耗较大。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效减少纹理数据的内存占用,进而能够有效减少纹理数据解压过程中的资源消耗的纹理压缩和解压方法、装置、计算机设备和存储介质。
一种纹理压缩方法,所述方法包括:
获取三维场景下的原始纹理图像;
获取对所述原始纹理图像划分得到的纹理子块;
分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;
将各所述帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
将各所述纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据。
一种纹理压缩装置,所述装置包括:
数据获取模块,用于获取三维场景下的原始纹理图像;获取对所述原始纹理图像划分得到的纹理子块;
纹理压缩模块,用于分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;将各所述纹理子块对应的帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
纹理存储模块,用于将各所述纹理子块对应的码流数据写入预设结构体,得到视频格式的纹理压缩数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取三维场景下的原始纹理图像;
获取对所述原始纹理图像划分得到的纹理子块;
分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;
将各所述帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
将各所述纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取三维场景下的原始纹理图像;
获取对所述原始纹理图像划分得到的纹理子块;
分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;
将各所述帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
将各所述纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据。
一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令时实现以下步骤:
获取三维场景下的原始纹理图像;
获取对所述原始纹理图像划分得到的纹理子块;
分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;
将各所述帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
将各所述纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据。
上述纹理压缩方法、装置、计算机设备和存储介质,获取三维场景下的原始纹理图像,并获取对原始纹理图像划分得到的纹理子块后,通过分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据。然后将各帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。由于通过视频格式的帧内编码方式对各纹理子块进行编码,由此能够编码得到内存占用较少的码流数据。将各纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据,以按照预设的数据组织方式存储压缩后的各纹理子块对应的码流数据,有效提高了纹理编码效率和传输效率,并且有效减少了压缩后的纹理压缩数据的内存占用。
一种纹理解压方法,所述方法包括:
确定与待展示的当前三维场景相匹配的待解压纹理子块;
从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;所述原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像;
对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
基于所述解压后的纹理子块渲染所述当前三维场景。
一种纹理解压装置,所述装置包括:
纹理确定模块,用于确定与待展示的当前三维场景相匹配的待解压纹理子块;
纹理查找模块,用于从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;所述原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像;
纹理解码模块,用于对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
纹理渲染模块,用于基于所述解压后的纹理子块渲染所述当前三维场景。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
确定与待展示的当前三维场景相匹配的待解压纹理子块;
从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;所述原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像;
对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
基于所述解压后的纹理子块渲染所述当前三维场景。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
确定与待展示的当前三维场景相匹配的待解压纹理子块;
从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;所述原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像;
对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
基于所述解压后的纹理子块渲染所述当前三维场景。
一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令时实现以下步骤:
确定与待展示的当前三维场景相匹配的待解压纹理子块;
从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;所述原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像;
对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
基于所述解压后的纹理子块渲染所述当前三维场景。
上述纹理解压方法、装置、计算机设备和存储介质,确定与待展示的当前三维场景相匹配的待解压纹理子块后,通过从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。由于纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据,因此压缩后的内存占用较小的码流数据。由此,解压终端从而能够更加高效地对码流数据进行解码,同时还能够有效减少解压终端在对纹理压缩数据进行解压过程中的资源消耗。进而能够更加高效地基于解压后的纹理子块渲染当前三维场景,有效提高了纹理解压效率和场景渲染效率。
附图说明
图1为一个实施例中纹理压缩方法的应用环境图;
图2为一个实施例中纹理解压方法的应用环境图;
图3为一个实施例中纹理压缩方法的流程示意图;
图4为一个实施例中通过视频编码器对纹理子块进行压缩的示意图;
图5为一个实施例中利用预设结构体存储纹理数据的示意图;
图6为一个实施例中纹理压缩方法的时序图;
图7为一个实施例中纹理解压方法的流程示意图;
图8为一个实施例中纹理解压过程的示意图;
图9为一个实施例中纹理解压方法的时序图;
图10为一个实施例中实验测对应的实验数据示意图;
图11为一个实施例中对三维游戏场景下的原始纹理图像压缩的示意图;
图12为一个实施例中对三维游戏场景下的原始纹理图像解压的示意图;
图13为一个实施例中纹理压缩装置的结构框图;
图14为一个实施例中纹理解压装置的结构框图;
图15为一个实施例中计算机设备的内部结构图;
图16为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的纹理压缩方法,可以应用于计算机设备中。计算机设备可以为终端或服务器。可以理解的是,本申请提供的纹理压缩方法可以应用于终端,也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。
本申请提供的纹理压缩方法,可以应用于如图1所示的应用环境中。其中,压缩终端102通过网络与服务器104进行通信。其中,终端102通过网络与服务器104进行通信。其中,压缩终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。压缩终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
具体地,压缩终端102可以从服务器104中获取三维场景下的原始纹理图像。压缩终端然后获取对原始纹理图像划分得到的纹理子块;分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据;将各帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据;将各纹理子块对应的码流数据写入至预设结构体,从而得到视频格式的纹理压缩数据。
本申请提供的纹理解压方法,可以应用于如图2所示的应用环境中。其中,压缩终端202通过网络与服务器204进行通信,解压终端206通过网络与服务器204进行通信。其中,压缩终端202和解压终端206可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。具体地,解压终端206确定与待展示的当前三维场景相匹配的待解压纹理子块后,从通过从服务器204中下载至解压终端206本地中的视频格式的纹理压缩数据中,或从通过从压缩终端202传输至服务器204中的视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据;纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像;对码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块;基于解压后的纹理子块渲染当前三维场景,并在解压终端的显示屏中展示。
其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。可以理解,本申请正是基于计算机视觉技术,对纹理图像进行压缩和解压处理。
在一个实施例中,如图3所示,提供了一种纹理压缩方法,以该方法应用于图1中的压缩终端为例进行说明。可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中的纹理压缩方法包括以下步骤:
S302,获取三维场景下的原始纹理图像。
其中,三维场景,可以指用虚拟化技术手段来真实模拟出现世界的各种物质形态、空间关系等信息。三维场景能够更加美观地展示物体形态,同时也能更加直观的展示现实世界。例如,可以把三维数据加载到三维场景中,三维场景与二维地图一样,也是用图层的形式进行展示和管理其中的数据。
例如,计算机设备展示三维场景时,可以在屏幕上观察到一个三维的仿真环境,三维的仿真环境中的所有物体都是由三维数据描述的,这些三维描述数据可以共同构成三维场景。例如,通过利用三维图形对应的三维应用可以让这些场景动起来,或从不同的角度和位置去观察,以显示出三维的场景效果。
其中,纹理表示物体表面细节的一幅或几副二维图形,也称纹理贴图。可以理解的是,纹理实际上是一个二维数组,二维数组中的元素是一些颜色值。当把纹理按照特定的方式映射到物体表面上的时候能使物体看上去更加真实。纹理可以用于体现需要被渲染到展示图像或视频帧上的对象所包括的内容。
纹理图像可以存储较多的信息,例如每个像素可以记录颜色、法向量、材质、背景光、散射、高光、透明度、几何高度、几何位移等信息中的至少一种,这些信息可以用于描绘物体表面的细节。
可以理解,划分得到的纹理子块,表示需要被压缩的纹理图像。解压后的纹理图像,可以用于渲染三维场景下的画面。通过对原始纹理图像进行压缩得到纹理压缩数据,纹理压缩数据在处理设备中所占用的存储空间小,可以减小处理设备的存储压力。此外,将纹理压缩数据进行解压以渲染到视频帧的过程中,还可以有效提高纹理渲染速度。
三维场景下的原始纹理图像,可以是预先设置的至少一个三维场景对应的原始纹理图像。原始纹理图像,具体可以是预先绘制的虚拟纹理图像。原始纹理图像中可以包括一个或多个图形对象所对应的纹理图像。例如,图形对象可以包括三维场景下的地形、房屋、树木、人物等中的至少一种。
S304,获取对原始纹理图像划分得到的纹理子块。
可以理解,本实施例中的纹理可以为虚拟纹理(VT,Virtual Textures),虚拟纹理是适用于高解析度。其中,虚拟纹理的概念类似虚拟内存,不会将超大纹理的全部数据加载到内存中,而是根据三维应用在运行时的实现需要,只将这个超大纹理中需要的部分区域加载到内存中。
此外,与虚拟内存不同的是,虚拟纹理运行时不会产生阻塞,在数据无法即使从硬盘读取到时,可以用内存中对应的Mipmap(多级渐远纹理)中层级高的纹理暂时代替显示。例如,可以将地图纹理分为不同解析度的层级纹理,个别再分割成多个区块,在渲染时越接近的区块才显出较高解析度。然后通过预先定义的映射关系,映射到一张内存中存在的纹理,这里的纹理是物理纹理,在展示的视野发生变化的时候,一部分物理纹理会被替换出去,一部分物理纹理会被加载。
通常原始纹理图像的体积较大,因此需要将原始纹理图像划分为多个纹理子块。具体地,纹理子块可以是按照预设尺度大小对原始纹理图像进行划分得到的,还可以是按照预设采样率对原始纹理图像进行采样并划分得到的。本申请在此不做限定。
其中,各纹理子块可以通过采用二维数组存储相应的图像数据。可以理解的是,纹理子块可以为RGBA色彩格式的图像数据,也可以为YUV色彩格式的图像数据。
其中,RGBA色彩格式的图像数据,是指代表Red(红色)、Green(绿色)、Blue(蓝色)和Alpha通道的色彩空间数据。其中,Alpha通道,是表示透明度的通道参数,用于渲染时使用,Alpha通道的数值通常在0到1之间,用于描述图像的透明度从透明到完全不透明。
其中,YUV色彩格式的图像数据,是通过YUV颜色编码方式编码得到。其中,Y表示亮度,U和V表示两个色度分量。例如,YUV系列的格式还包括YCrCb、YPbPr等格式。YCrCb格式中,Y包含了绿色色度和亮度,Cr表示红色色度,Cb表示蓝色色度。可以理解,在现在的计算机系统中,YUV一般代指YCbCr用来表示文件的编码格式,通常用于数字视频的编码。
RGBA色彩主要用于色彩的显示和描述。YUV色彩格式的图像数据主要用于优化彩色视频信号的传输,相较于RGBA色彩格式的图像数据,YUV色彩格式的图像数据的内存占用更少。
S306,分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据。
其中,帧内压缩编码,表示视频格式的编码方式,具体可以是采用预设视频压缩标准的压缩编码方式。帧内编码数据,是表示对各纹理子块进行帧内压缩编码所产生的编码后的数据。
具体地,当各纹理子块可以为RGBA色彩格式的图像数据时,压缩终端则将纹理子块转换为YUV色彩格式的图像数据。具体地,压缩终端可以采用YUV颜色编码方式对纹理子块进行编码,得到YUV色彩格式的图像数据。压缩终端则对YUV色彩格式的图像数据进行帧内压缩编码处理。
当各纹理子块可以为YUV色彩格式的图像数据时,压缩终端则可以直接对各纹理子块进行帧内压缩编码处理。
可以理解,帧内压缩编码,可以是指采用关键帧压缩法,也被称为I帧(Intra-coded Picture,帧内编码图像帧)算法,进行帧内编码的压缩方式。采用帧内编码的压缩方式能够将关键帧的画面的完整保留,也就是对关键帧进行帧内压缩编码后,编码后得到的数据中包含了该关键帧的全部信息,不用参考其他帧就可被独立解码。
本实施例中,将每个纹理子块作为一帧图像数据,并且将每个纹理子块作为关键帧。然后分别对各个纹理子块进行帧内压缩编码,以得到与各纹理子块对应的帧内编码数据。
具体地,解压终端获得YUV色彩格式的各纹理子块后,则采用基于视频格式的帧内压缩编码算法,分别对每个纹理子块进行帧内压缩编码,从而能够有效得到每纹理子块对应的编码后的帧内编码数据。当原始的纹理子块的格式为YUV格式时,通过采用帧内压缩编码方式对各纹理子块进行编码压缩后,压缩后的纹理数据的内存占用大概仅占原始格式的纹理体积的约1%-5%。
S308,将各帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。
其中,码流数据,可以是采用网络适配层结构封装的数据,表示通过帧内压缩编码方式对纹理子块进行编码后的输出数据。
在一个实施例中,码流数据可以为网络传输单元数据,即NALU(Network AbstractLayer-Unit,网络抽象层单元)数据。NALU数据是一种封装的数据,也就是将帧内压缩编码得到的帧内编码数据,包装成网络适配层的单元封包(NAL-Unit),也即码流数据,使得适于通过网络进行传输,以传送到远程服务器或储存在储存媒体中。
可以理解,在视频编解码标准中,NALU框架通常分为两个层面,VCL层(VideoCoding Layer,视频编解码层面)和NAL层(Network Abstract Layer,网络抽象层面)。其中,VCL层负责有效表示视频帧数据内容,NAL层负责格式化数据并加上相应的头信息,以保证数据适于在各种信道和存储介质上的传输。NALU单元数据是NAL的基本语法结构,其中包含一个字节的头信息和一系列来自VCL层的原始字节载序列载荷(RBSP)的字节流。
具体地,压缩终端分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据后。然后采用NAL打包格式分别对每个纹理子块对应的帧内编码数据进行封装,从而生成体积小的各纹理子块对应的NALU数据,由此能够有效减少压缩后的纹理子块的内存占用。
通过采用NALU结构根据视频格式数据的特性对各纹理子块对应的帧内编码数据进行分装与标识,使其可以被网络识别并进行优化处理,从而能够高效地在网络中传输。
相较于采用图像压缩格式对各纹理子块进行编码的方式,本实施例中通过视频格式的帧内编码方式对各纹理子块进行编码,由此能够编码得到内存占用更少的码流数据。
S310,将各纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据。
其中,结构体,表示采用预先定义的数据类型,按照预设数据组织方式构建的数据结构。可以理解,本实施例中的预设结构体,是支持随机读取的数据存储结构体。预设结构体具体可以为预先定义的二维数组结构。结构体通常用于封装一些属性来组成新的类型,以便于简化运算和数据读取。
可以理解,视频格式的纹理压缩数据,是指采用视频压缩格式的帧内压缩编码方式对纹理子块进行压缩得到的纹理压缩数据。
结构体中通常包括一些元素的集合,这些元素数组称为结构体的成员。预设结构体可以包括文件头和元素数组,元素数组中包括至少一个元素存储空间。其中,文件头可以用于存储帧内编码数据的文件头数据,例如帧头参数等。元素数组用于存储各纹理子块对应的码流数据。
压缩终端分别对各帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据后,则按照预设结构体对各纹理子块对应的压缩后的码流数据进行存储。由此使得能够有效地支持从压缩后的纹理压缩数据随机读取纹理子块。
具体地,压缩终端将各个纹理子块对应的码流数据写入至预设结构体中。其中,压缩终端可以按照各个纹理子块进行帧内压缩编码得到的帧头参数,将帧头参数一致的纹理子块对应的码流数据写入至同一个预设结构体中。
进一步地,预设结构体中还可以包括多组元素数组,压缩终端还可以将帧头参数一致的纹理子块对应的码流数据写入至预设结构体中的同一组元素数组中。不同帧头参数的纹理子块对应的码流数据,存储于不同组的元素数组中。
在另一个实施例中,预设结构体中还包括与纹理层级对应的层级数组。压缩终端还可以按照各个纹理子块所属的纹理层级,将各纹理子块写入至与各纹理子块所属的纹理层级对应的层级数组中。
上述纹理压缩方法中,获取三维场景下的原始纹理图像,并获取对原始纹理图像划分得到的纹理子块后,通过分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据。然后将各帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。由于通过视频格式的帧内编码方式对各纹理子块进行编码,由此能够编码得到内存占用较少的码流数据。将各纹理子块对应的码流数据写入至预设结构体,得到视频格式的纹理压缩数据,以按照预设的数据组织方式存储压缩后的各纹理子块对应的码流数据,有效提高了纹理编码效率和传输效率,并且有效减少了压缩后的纹理压缩数据的内存占用。由此使得解压终端解压时,能够随机读取所需的纹理子块。并且在解压终端对纹理压缩数据进行解压时,还能够有效减少解压过程中的资源消耗。
在一个实施例中,分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据,包括:通过视频编码器分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据。上述纹理压缩方法还包括:在解压纹理压缩数据时,通过视频解码器对纹理压缩数据中的码流数据进行解压。
其中,视频编码器,是指具有视频编码能力的硬件的视频编码设备,也可以是具有视频编码能力的视频编码软件。视频编码器是采用预设的视频压缩标准对视频帧数据进行编码,以实现编码压缩功能。
视频编码是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。例如,视频流传输中的编解码标准包括但不限于H.264、H.265、H.266、VP8、VP9、AV1等。
可以理解,硬件的视频编码器,可以是由专用音视频压缩编解码器芯片、数据输入输出通道、网络接口、音视频接口、嵌入软件等构成硬件设备,可以搭载于压缩终端中。视频编码软件,是指通过软件代码编写的视频编码器,可以安装在压缩终端中运行。
压缩终端在进行纹理压缩的过程中,可以通过视频编码器分别对各纹理子块进行帧内压缩编码,以得到与各纹理子块对应的帧内编码数据。
具体地,压缩终端获取对原始纹理图像划分得到的纹理子块后,分别将各个纹理子块输入至视频编码器中,视频编码器则将输入的纹理子块划分为互不重叠的编码单元,然后再进行预测编码。视频编码器进而利用视频的空间相关性,采用帧内预测算法去除时空域冗余信息,从而得到预测图像块。然后视频编码器将预测图像块与初始的纹理子块作差得到预测残差块,再对预测残差进行离散余弦变换(DCT)和量化,获得量化的DCT系数。最后对量化后的DCT系数进行熵编码,得到帧内压缩编码后的各纹理子块对应的帧内编码数据。
通过将各个纹理子块对应的帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。多个纹理子块对应的压缩后的码流数据则可以表示为压缩码流。
例如,如图4所示,为一个实施例中通过视频编码器对纹理子块进行压缩的示意图。参照图4,通过采用HEVC格式的视频编码器4H对原始纹理图像中的纹理子块41a、纹理子块42a和纹理子块43a进行帧内压缩编码,可以得与纹理子块41a、纹理子块42a和纹理子块43a分别对应的压缩后的视频格式的码流数据41b、码流数据42b和码流数据43b。对各纹理子块进行帧内压缩编码还得到各纹理子块对应的帧头参数。压缩终端进而将各纹理子块对应的帧头参数和码流数据写入至预设结构体4T中,预设结构体4T的元素数组中则存储有各纹理子块对应的包括帧头数据,即VPS/SPS/PPS/IDR参数,以及压缩后的码流数据,即Nalu数据。预设结构体4T中存储的纹理压缩数据则可以为虚拟纹理。
在一个具体的实施例中,压缩终端可以采用编解码标准为H.265的视频编码器。H.265也称为HEVC(High Efficiency Video Coding,高效率视频编码),HEVC压缩编码方式可以使1080P视频内容时的压缩效率提高50%左右,表示视频内容的质量能够大幅提高,并且能够节省大量的网络带宽。
压缩终端对纹理进行压缩,得到纹理压缩数据后,压缩终端可以在本地实现对纹理压缩数据进行解压,也可以将纹理压缩数据传输至解压终端。使得解压缩终端从纹理压缩数据获取所需的纹理子块对应的码流数据进行解压。在解压纹理压缩数据时,通过视频解码器对码流数据进行解压。具体地,与视频编码器同理,视频解码器可以是具有视频解码能力的硬件的视频解码器,也可以是具有视频解码能力的视频解码软件。
通常而言,大多数终端设备都自带常用的视频格式硬件解码器,由此,解压终端在对纹理压缩数据进行解压时,能够直接通过解压终端中的硬件的视频解码器进行解压处理。因此在解压的过程中,并不会占用CPU资源和GPU资源,则不会与其他处理抢占CPU资源或GPU资源,从而能够有效减少纹理的资源占用的同时,还能够有效提高纹理解压效率。
在另一个实施例中,若解压终端中没有硬件的视频解码器时,还可以采用视频解码软件对纹理压缩数据进行解压。由于压缩后的纹理压缩数据的体积较小,因此解压终端通过视频解码软件对纹理压缩数据进行解压处理的过程中,也能够有效减少纹理的资源占用。
本实施例中,通过视频编码器对各纹理子块进行帧内压缩编码,能够有效得到帧内编码数据,并进一步将帧内编码数据封装为码流数据,从而能够有效地压缩为体积较小的视频格式的纹理压缩数据。以使得在纹理解压时,能够有效减少纹理的内存占用。当解压终端采用硬件的视频解码器进行纹理解压时,还能够高效地减少解压终端的CPU资源或GPU资源,从而有效提高纹理解压效率。
在一个实施例中,对各纹理子块进行帧内压缩编码还得到各纹理子块对应的帧头参数;预设结构体包括文件头和对应于文件头的元素数组。将各纹理子块对应的码流数据写入预设结构体的步骤,包括:将各纹理子块对应的帧头参数写入预设结构体的文件头中;将各纹理子块对应的码流数据,分别写入至相应文件头所对应的元素数组中;其中,每个纹理子块的帧头参数所写入至的文件头,与纹理子块对应的码流数据相对应。
其中,帧头参数,是指在对各纹理子块进行编码过程中,产生的各纹理子块对应的序列和图像的头信息。帧头参数包含各纹理子块相应的编码图像的信息。例如,帧头参数包括VPS(Video Parameter Set,视频参数集)、SPS(Sequence Parameter Set,序列参数集)、PPS(Picture Parameter Set,图像参数集)等参数。
其中,VPS参数用于描述编码过程中纹理子块序列的整体结构,包括时域子层依赖关系等,主要用于传输视频分级信息,有利于兼容标准在可分级视频编码或多视点视频的扩展。SPS参数包括一个图像序列的所有信息,即两个IDR图像间的所有图像信息。PPS参数包括一个纹理子块中所有分片的所有相关信息,包括图像类型、序列号等,解码时某些序列号的丢失可用来检验信息包的丢失与否。
在对纹理子块进行编码的过程中,可以预先设置视频编码器的编码参数。例如,将多个不同的序列和图像参数集存储在编解码器中。编解码器依据每个编码分片的头部的存储位置来选择适当的参数集,图像参数集本身也包括使用的序列参数集参考信息。通过视频编码器分别对各纹理子块进行编码时,则会产生各纹理子块对应的帧头参数。
通常在进行纹理解码前,各纹理子块的帧头参数就已传输至解码器。每个片的头信息对应一个片标识,PPS被其激活后一直有效到下一个PPS被激活;类似的,每个PPS对应一个序列标识。SPS被其激活以后将一直有效到下一个SPS被激活。参数集机制将一些重要的、改变少的序列参数和图像参数与编码片分离,并在编码片之前传送至解码端,或者通过其他机制传输。
压缩终端对各纹理子块进行帧内编码压缩,会得到各纹理子块对应的帧头参数和帧内编码数据。压缩终端将各纹理子块对应的帧内编码数据进行封装,得到对应的压缩后的码流数据后,则将各纹理子块对应的帧头参数和码流数据写入至预设结构体,从而得到视频格式的纹理压缩数据。
具体地,预设结构体包括文件头和对应于文件头的元素数组,也就是每个文件头后面包括与各文件头对应的元素数组。压缩终端在存储各纹理子块对应的帧头参数和码流数据时,首先将各纹理子块对应的帧头参数写入至预设结构体的文件头中。具体地,可以将各纹理子块对应的帧头参数合并写入同一个文件头中,还可以将各纹理子块对应的帧头参数分别写入不同的文件头中。
压缩终端进而将各纹理子块对应的码流数据,分别写入至相应文件头所对应的元素数组中。即每个纹理子块的帧头参数所写入至的文件头,与该纹理子块对应的码流数据所写入的元素数组相对应。
本实施例中,通过将各纹理子块对应的帧头参数和码流数据存储至预设结构体中,由此使得能够有效地支持从压缩后的纹理压缩数据随机读取纹理子块,有效提高了纹理压缩数据的存储效率和读取效率。
在一个实施例中,将各纹理子块对应的帧头参数写入预设结构体的文件头中,包括:将各纹理子块对应的帧头参数中相同的帧头参数,合并写入预设结构体的文件头中;将各纹理子块对应的码流数据,分别写入预设结构体中与文件头对应的元素数组中,包括:将具有相同的帧头参数的纹理子块对应的码流数据,写入与相应文件头对应的元素数组中。
可以理解,压缩终端可以通过视频编码器对各纹理子块进行帧内压缩编码。在对纹理子块进行编码的过程中,可以预先设置视频编码器的编码参数。具体地,可以对视频编码器设置相同的编码参数,由此通过视频编码器对各纹理子块进行编码,会得到相同的各纹理子块对应的帧头参数,以及各纹理子块分别对应的帧内编码数据。
压缩终端进而将各纹理子块的帧内编码数据封装为相应的码流数据。然后,压缩终端将各纹理子块对应的帧头参数和码流数据写入预设结构体。具体地,对于具有相同帧头参数的多个纹理子块,压缩终端将各纹理子块对应的帧头参数中相同的帧头参数,合并写入预设结构体的文件头中,也就是将这些相同的帧头参数,均写入文件头中并且只保留一份帧头参数。由此能够有效节省文件头的体积占用。
压缩终端进而将具有相同的帧头参数的纹理子块对应的码流数据,写入与相应文件头对应的元素数组中。可以理解,也就是将纹理子块对应的码流数据,存储至与该纹理子块的帧头参数所写入的文件头对应的元素数组中。
如图5所示,为一个实施例中利用预设结构体存储纹理数据的示意图。参照图5,压缩后的纹理压缩数据52是采用预设结构体存储的。纹理压缩数据52中包括文件头52A和与文件头对应的元素数组52B。文件头52A中存储有存储帧头参数、文件索引等数据头信息,元素数组52B中存储有各纹理子块对应的码流数据。例如,文件头52A中可以采用StructFileHeader对应的数据结构。其中,文件头52A中还可以包括文件头部分52A(1)和文件索引部分52A(2),文件头部分52A(1)可以采用Struct FileHeader的数据结构,StructFileHeader的数据结构中可以包括文件索引部分52A(2)。文件索引部分52A(2)可以采用ArrayIndexHeader的数据结构,ArrayIndexHeader的数据结构用于指向IndexArrayOffetOnFile数据结构,也就是元素数组。IndexArrayOffetOnFile数组中存储有各纹理子块的码流数据。
例如,纹理压缩数据52中包括IndexArrayOffetOnFile数组,其中包括与纹理T1、纹理T2和纹理T3对应的文件头52A和元素数组52B,元素数组52(1)中存储有纹理T1、纹理T2和纹理T3对应的码流数据。通采用这种预设的结构体存储各纹理子块对应的码流数据,从而能够支持在解码时,实现随机访问每个纹理子块对应的码流数据,以提高纹理子块的读取效率。
本实施例中,通过将相同的帧头参数合并写入至预设结构体的同一个文件头中,由此能够有效节省文件头的内存占用。并且在通过视频解码器进行纹理解压的过程中,对于具有相同帧头参数的多个纹理子快,只需利用帧头参数对视频解码器进行一次初始化,从而能够有效降低频繁对视频解码器进行参数初始化带来的性能开销,进而有效减少了资源消耗。
在一个实施例中,将各纹理子块对应的码流数据,分别写入预设结构体中与文件头对应的元素数组中的步骤,包括:根据各纹理子块对应的元素数组相对于文件头的位置,确定各纹理子块对应的偏移值;针对每个纹理子块,将纹理子块对应的码流数据和偏移值,写入与纹理子块对应的元素数组中;根据各纹理子块对应的偏移值,建立各纹理子块对应的文件索引,并将文件索引写入文件头中。
其中,偏移值,在计算机学中是指把存储单元的实际地址与其所在段的段地址之间的距离称为段内偏移,也称为有效地址或偏移量。本实施例中的偏移值,表示各纹理子块的码流数据所存储的元素数组的位置,相对于文件头的位置之间的距离。
可以理解,文件索引,是指各纹理子块在预设结构体中的索引,用于提供指向各纹理子块在预设结构体中的元素数组的位置,从而能够实现快速访问预设结构体中元素数组中存储的纹理子块对应的码流数据。
压缩终端将各纹理子块对应的码流数据,分别写入预设结构体中的过程中,压缩终端首先将各纹理子块的帧头参数写入预设结构体的文件头中。然后,压缩终端确定各纹理子块的码流数据待存储的元素数组的位置,进而根据各纹理子块对应的元素数组相对于文件头的位置,确定各纹理子块对应的偏移值。接着,针对每个纹理子块,压缩终端进而将纹理子块对应的码流数据和偏移值,写入所确定的与纹理子块对应的元素数组中。
进一步地,压缩终端还根据各纹理子块对应的偏移值,建立各纹理子块对应的文件索引,并将文件索引写入文件头中。
本实施例中,通过根据各纹理子块的码流数据所存储的元素数组的位置,相对于文件头的位置之间的偏移值,构建各纹理子块的文件索引,由此能够用于快速高效地从纹理压缩数据中进行随机读取,以查找所需要的纹理子块。
在一个实施例中,纹理压缩数据,用于在解压终端中待展示当前三维场景时,提供与当前三维场景相匹配的码流数据,以使得解压终端对相匹配的码流数据进行解压,并基于解压后的纹理子块渲染当前三维场景。
可以理解,在三维场景中,观测点的位置和视角不同,所展示的相应的场景画面也是不同的。其中,待展示当前三维场景,是表示在展示三维场景时,当前需要展示的场景画面。通过展示连续的场景画面对应的图像帧,能够展示动态的三维场景或三维场景视频。
压缩终端对纹理进行压缩,生成视频格式的纹理压缩数据。压缩终端得到纹理压缩数据后,还可以将纹理压缩数据传输至服务器或解压终端。压缩后的纹理压缩数据,则可以用于在解压终端中待展示当前三维场景时,提供与当前三维场景相匹配的码流数据。
也就是说,解压终端可以基于三维场景下的纹理子块展示对应的三维场景。当解压终端在展示三维场景的过程中,则获取待展示的当前三维场景,使得解压终端从纹理压缩数据获取所需的纹理子块对应的码流数据进行解压。以使得解压终端对相匹配的码流数据进行解压,并基于解压后的纹理子块渲染当前三维场景。
本实施例中,由于纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据,因此压缩后的内存占用较小的码流数据。由此,解压终端从而能够更加高效地对码流数据进行解码,同时还能够有效减少解压终端的资源消耗。进而能够更加高效地基于解压后的纹理子块渲染当前三维场景,有效提高了纹理解压效率和场景渲染效率。
在一个实施例中,原始纹理图像包括地形纹理图像。获取三维场景下的原始纹理图像的步骤,包括:获取三维场景下的三维地形所对应的地形纹理图像。获取对原始纹理图像划分得到的纹理子块的步骤,包括:按照预设尺度对地形纹理图像划分,得到尺度相同的纹理子块。
可以理解,地形纹理图像,是指用于表示地形的纹理图像。三维地形,可以是三维场景下虚拟的三维地形。三维场景中可以包括多种类型的场景对象,即图形对象。场景对象可以包括三维地形、房屋、树木、人物等中的至少一种。通常,三维地形需要通过多张地形纹理图像组合而成。
其中,预设尺度是指图像的尺度大小,具体可以是分辨率尺度或像素尺度。地形纹理图像可以是至少一个单独的尺度较小的纹理图像,例如512*512分辨率的纹理图像。地形纹理图像也可以是至少一个尺度较大的纹理图像,例如8192*8192分辨率的纹理图像。
具体地,压缩终端可以获取三维场景下的三维地形所对应的地形纹理图像,以采用上述纹理压缩方式对地形纹理图像进行压缩。具体地,压缩终端获取地形纹理图像后,按照预设尺度对地形纹理图像进行划分,以将地形纹理图像划分为尺度相同的纹理子块。
在对地形纹理图像进行划分的过程中,压缩终端可以根据原始的地形纹理图像的尺度大小,将尺度较大的地形纹理图像按照预设尺度切分为多个纹理子块,也可以将地形纹理图像按照预设尺度合并为一个纹理子块。
例如,预设尺度可以为1024*1024分辨率的尺度大小。若原始纹理图像的尺度大小为512*512分辨率,则需将要4个原始纹理图像合并成一个1024*1024分辨率的纹理子块。若原始纹理图像的尺度大小为8192*8192分辨率,则需要将原始纹理图像划分为64个1024*1024分辨率的纹理子块。
本实施例中,可以仅对三维场景下的三维地形对应的地形纹理图像,采用上述纹理压缩方法进行压缩,以利于在展示三维场景的过程中,能够更加高效地渲染三维场景下的三维地形。
由于视频解码器初始化一次后,只能对固定分辨率的视频流进行解压。若对不同分辨率的视频流进行解压,则需要多次对视频解码器进行初始化,导致解压终端的资源消耗较大。因此,本实施中通过将不同分辨率的原始纹理整理成同样大小的纹理子块,能够高效地对各纹理子块进行压缩,还能够有效地提高纹理解压效率和较少资源消耗。
在一个具体的实施例中,如图6所示,提供了一种纹理压缩方法的时序图。本实施例中,压缩终端中包括编辑器模块、纹理导出模块、纹理流处理模块、视频流传输模块和视频编码模块等对应的虚拟模块。例如,编辑器模块可以为Game Editor游戏编辑器,纹理导出模块可以为VT Importer虚拟纹理导出模块,纹理流处理模块可以为SVT虚拟纹理流模块,视频流传输模块可以为Hevc Streamer视频流模块,视频编码模块可以为HEVC Encoder视频编码器。
具体地,压缩终端中的编辑器模块导出三维场景下的原始纹理图像后,向虚拟纹理导出模块触发纹理导出的指示。原始纹理图像为RGBA格式的图像数据。压缩终端然后通过纹理导出模块获取对原始纹理图像划分得到的纹理子块,并将RGBA格式的纹理子块编码转换为YUV格式的纹理子块。接着,纹理导出模块将YUV格式的纹理子块传输至视频流传输模块。通过视频流传输模块对YUV格式的纹理子块进行序列拼接后,依次输入至视频编码模块。以通过视频编码模块分别各纹理子块进行帧内压缩编码,得到各纹理子块对应的NALU网络传输单元数据以及帧头参数。视频编码模块然后依次将压缩后的NALU数据返回至视频流传输模块,视频流传输模块接着分别返回各纹理子块对应的帧头参数和NALU数据,并合并NALU数据。然后将各纹理子块对应的帧头参数和NALU数据存储至预设结构体,得到压缩后的视频格式的纹理压缩数据。进而将纹理压缩数据返回至虚拟纹理导出模块。
在一个实施例中,如图7所示,提供了一种纹理解压方法,以该方法应用于图2中的解压终端为例进行说明。可以理解的是,该方法还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中的纹理解压方法包括以下步骤:
S702,确定与待展示的当前三维场景相匹配的待解压纹理子块。
可以理解,在三维场景中,观测点的位置和视角不同,所展示的相应的场景画面也是不同的。其中,待展示当前三维场景,是表示在展示三维场景时,当前需要展示的场景画面。通过展示连续的场景画面对应的图像帧,能够展示动态的三维场景或三维场景视频。
其中,与当前三维场景相匹配的待解压纹理子块,是指当前三维场景中的场景画面所需要的待解压的纹理子块。可以理解,展示三维场景中不同的场景画面时,对应需要的纹理子块可能不同。
解压终端可以通过获取三维场景对应的场景数据,例如三维场景所需的纹理数据、顶点数据、光照数据等,进而基于场景数据渲染和展示三维场景。
解压终端在展示三维场景的过程中,可以实时获取与三维场景相匹配的待解压纹理子块。具体地,解压终端可以根据三维场景中观测点的当前位置,确定待展示的当前与三维场景相匹配的待解压纹理子块。
在其中一个实施例中,解压终端中运行有能够提供三维场景的三维应用。具体地,解压终端运行三维应用时,会根据运行过程中的状态,确定当前需要展示的场景画面。也就是,当前三维场景可以是解压终端中的三维应用运行时待展示的场景画面。
S704,从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据;纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像。
其中,纹理压缩数据,是通过压缩终端或服务器对原始纹理图像中各纹理子块分别进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据并进行封装,得到对应的压缩后的码流数据。然后将各纹理子块对应的码流数据写入至预设结构体,得到的视频格式的纹理压缩数据。因此,纹理压缩数据中包括各纹理子块对应的压缩后的码流数据。
可以理解的是,纹理压缩数据可以是通过上述任意一个或多个实施例中的纹理压缩方法,对原始纹理图像进行编码压缩得到的。
其中,原始纹理图像,是三维场景下的原始纹理图像,可以是预先设置的至少一个三维场景对应的原始纹理图像,具体可以是预先绘制的虚拟纹理图像。原始纹理图像中可以包括一个或多个图形对象所对应的纹理图像,例如,图形对象包括为三维场景下的地形、房屋、树木等。
可以理解,解压终端可以预先获取纹理压缩数据,在展示三维场景的过程中,则直接从本地的纹理压缩数据从实时获取与三维场景相匹配的待解压纹理子块。解压终端也可以在展示三维场景的过程中,从服务器中实时获取与三维场景相匹配的待解压纹理子块。
解压终端确定与待展示的当前三维场景相匹配的待解压纹理子块后,则从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。具体地,解压终端可以根据待解压纹理子块对应的文件索引,或待解压纹理子块的纹理标识,从纹理压缩数据中查找与待解压纹理子块对应的码流数据,并获取待解压纹理子块对应的码流数据。
S706,对码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块。
解压终端从纹理压缩数据中获取的与待解压纹理子块对应的码流数据,是压缩后的纹理数据。因此,解压终端则进一步对码流数据进行解码。
具体地,由于视频格式的纹理压缩数据,是通过视频格式的编码方式编码压缩得到的。因此,解压终端对码流数据进行解码时,则通过视频格式的解码方式对码流数据进行解码。具体地,解压终端可以通过视频解码器对码流数据进行解码,从而解码得到与待解压纹理子块对应的解压后的纹理子块。
S708,基于解压后的纹理子块渲染当前三维场景。
其中,渲染,可以是指将三维场景中的物体模型,按照设定的环境、纹理、光照及渲染参数等,二维投影成数字图像的过程。可以理解,渲染就是从模型生成图像的过程,模型是用计算机语言或者数据结构定义的三维物体或虚拟场景的描述,通常是三维场景制作的最后一步。例如,在经过纹理贴图之后,形成了一个“木箱”模型。通常只有将这个模型作为二维图像输出到屏幕上之后,才会展示相应的图像效果。
解压终端确定与待展示的当前三维场景相匹配的待解压纹理子块,然后从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据,并对码流数据进行解码后。解压终端则可以基于解压后的纹理子块渲染当前三维场景。
具体地,解压终端获得当前三维场景所需的解压后的纹理子块后,由图形处理器读入每个着色器对应的输入纹理图像,通过图形处理器的渲染管线对每个着色器输入的纹理图像进行渲染。然后,将渲染后的图像写入帧缓存区进行缓存,通过着色器对当前三维场景渲染完成后,最终输出到解压终端的屏幕,并展示当前三维场景对应的场景画面。
上述纹理解压方法中,确定与待展示的当前三维场景相匹配的待解压纹理子块后,通过从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。由于纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据,因此压缩后的内存占用较小的码流数据。由此,解压终端从而能够更加高效地对码流数据进行解码,同时还能够有效减少解压终端的资源消耗。进而能够更加高效地基于解压后的纹理子块渲染当前三维场景,有效提高了纹理解压效率和场景渲染效率。
在一个实施例中,纹理压缩数据通过预设结构体存储,预设结构体中包括文件头和元素数组;元素数组中存储有各纹理子块对应的码流数据。从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据的步骤,包括:从文件头中查找待解压纹理子块对应的文件索引;根据文件索引,从元素数组中查找相应的码流数据。
其中,预设结构体,是支持随机读取的数据存储结构体,具体可以为预先定义的二维数组结构。预设结构体可以包括文件头和元素数组,元素数组中包括至少一个元素存储空间。其中,文件头可以用于存储帧内编码数据的文件头数据,例如帧头参数等。元素数组用于存储各纹理子块对应的码流数据。文件头还用于存储文件索引,文件索引是指各纹理子块在预设结构体中的索引,用于提供指向各纹理子块在预设结构体中的元素数组的位置。
可以理解,视频格式的纹理压缩数据,是通过对原始纹理图像中各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据后进行封装,得到各纹理子块对应的压缩后的码流数据。然后将各纹理子块对应的压缩后的码流数据写入至预设结构体中生成的。其中,文件头中还包括各纹理子块对应的码流数据在预设结构体中的文件索引。
解压终端从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据时,解压终端首先从文件头中查找待解压纹理子块对应的文件索引。然后就可以根据文件索引,从元素数组中查找与待解压纹理子块对应的码流数据,并获取相应的码流数据。
本实施例中,由于纹理压缩数据中的文件头中包括个纹理子块的文件索引,由此能够快速高效地从纹理压缩数据中进行随机读取,从而能够快速地查找到待解压纹理子块对应的码流数据。
在一个实施例中,文件头包括根据各纹理子块对应的偏移值构建的文件索引;各纹理子块对应的偏移值,是各纹理子块对应的码流数据在元素数组中的存储位置,相对于文件头的位置偏移值。根据文件索引,从元素数组中查找相应的码流数据的步骤,包括:根据文件头中的文件索引,确定待解压纹理子块对应的偏移值;根据偏移值,从元素数组中定位待解压纹理子块对应的码流数据的存储位置;从定位的存储位置中,获取待解压纹理子块对应的码流数据。
其中,偏移值,表示各纹理子块的码流数据所存储的元素数组的位置,相对于文件头的位置之间的距离。通过根据偏移值构建各纹理子块的文件索引,从而能够实现快速查找预设结构体中元素数组中各纹理子块对应的码流数据的存储位置。
压缩终端在对压缩后的各纹理子块对应的码流数据进行存储时,压缩终端首先将各纹理子块的帧头参数写入预设结构体的文件头中。然后确定各纹理子块的码流数据待存储的元素数组的位置,进而根据各纹理子块对应的元素数组相对于文件头的位置,确定各纹理子块对应的偏移值。针对每个纹理子块,压缩终端进而将纹理子块对应的码流数据和偏移值,写入所确定的与纹理子块对应的元素数组中。进而根据各纹理子块对应的偏移值,建立各纹理子块对应的文件索引,并将文件索引写入文件头中。
具体地,解压终端在纹理压缩数据中查找所需的纹理子块时,首先从文件头中查找待解压纹理子块对应的文件索引。由于文件索引是根据各纹理子块在元素数组中存储位置相对于文件头的偏移值所构建的,由此则可以根据文件头中的文件索引,确定待解压纹理子块对应的偏移值。然后,解压终端就可以根据偏移值,从元素数组中定位待解压纹理子块对应的码流数据的存储位置。进而从定位的存储位置中,就可以获取到待解压纹理子块对应的码流数据。
如图8所示,为一个实施例中纹理解压过程的示意图。按照图8,压缩后的纹理压缩数据82中包括文件头82A和元素数组82B,其中,文件头中可以包括索引部分82A(1)和帧头参数部分82A(2)。元素数组82B中则包括各纹理子块对应的NALU网络传输单元数据。图8中示意了各纹理子块中纹理T1、纹理T2和纹理T3对应的解压过程。解压终端在进行纹理解压时,将纹理T1、纹理T2和纹理T3对应的帧头参数和NALU数据,输入至HEVC格式的视频解码器8H中进行解压。从而得到解压后的YUV格式的纹理数据81c、纹理数据82c和纹理数据83c。解压终端进而将YUV格式的网络数据编码转为RGBA格式,得到RGBA格式的纹理数据81b、纹理数据82b和纹理数据83b。进而可以将RGBA格式的纹理数据分别解压为对应原始的原始纹理图像81a、原始纹理图像82a和原始纹理图像83a。
本实施例中,通过根据各纹理子块的码流数据所存储的元素数组的位置,相对于文件头的位置之间的偏移值,构建各纹理子块的文件索引,由此能够用于快速高效地从纹理压缩数据中进行随机读取,以查找所需要的纹理子块。
在一个实施例中,上述纹理解压方法还包括:从纹理压缩数据的文件头中,获取待解压纹理子块的帧头参数。对码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块的步骤,包括:将待解压纹理子块对应的码流数据进行拼接;根据帧头参数,通过视频解码器分别对拼接后的码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块。
其中,帧头参数,是指在对各纹理子块进行编码过程中,产生的各纹理子块对应的序列和图像的头信息。在对纹理子块进行编码的过程中,可以预先设置视频编码器的编码参数。
压缩终端对各纹理子块进行帧内编码压缩,会得到各纹理子块对应的帧头参数和帧内编码数据。压缩终端对帧内编码数据进行封装,得到对应的压缩后的码流数据后,将各纹理子块对应的帧头参数写入至预设结构体的文件头中,将各纹理子块对应的码流数据,分别写入至相应文件头所对应的元素数组中。
通常在进行纹理解码前,各纹理子块的帧头参数就已传输至视频解码器。因此,解压终端从视频格式的纹理压缩数据中,获取与待解压纹理子块对应的码流数据的过程中,首先从纹理压缩数据的文件头中,获取待解压纹理子块的帧头参数。
解压终端从纹理压缩数据中,获取与待解压纹理子块对应的帧头参数和码流数据后。将各纹理子块的帧头参数输入至视频解码器。然后将待解压纹理子块对应的码流数据进行拼接。具体地,可以将多个待解压纹理子块对应的码流数据视为码流数据,具体可以按照码流数据的读取顺序,依次对多个码流数据进行拼接。
解压终端进而将拼接后的码流数据依次输入至视频解码器,通过视频解码器分别对拼接后的码流数据进行解码,从而能够高效地得到与待解压纹理子块对应的解压后的纹理子块。本实施例中,通过对多个码流数据进行拼接后再进行解码,能够有效提高纹理子块的解压效率。
在一个实施例中,解压终端对从纹理压缩数据中获取的网络传输单元进行解压后,得到的解压后的纹理子块为YUV格式的图像数据。由于解压后的YUV格式的纹理子块对于显存的占用较大,因此,本实施例中,解压终端还可以进一步将纹理子块转换为对显存占用更小的格式,也可以是纹理压缩格式,即适于在解压终端对纹理进行渲染的格式,例如ETC2格式或ATSC格式等,通过将原始格式的纹理子块编码转换为ETC2格或ATSC格式后,对显存的占用大概仅占原始格式的纹理体积的约12%。由此,解压终端在基于纹理子块渲染当前三维场景时,能够有效减少对显存的内存占用,从而能够有效提高场景渲染效率。
在一个实施例中,纹理子块为地形纹理图像中的纹理子块;确定与待展示的当前三维场景相匹配的待解压纹理子块的步骤,包括:获取待展示的当前三维场景中的三维地形信息和位置信息;根据三维地形信息和位置信息,确定与待展示的当前三维场景中的三维地形画面相匹配的待解压纹理子块。
基于解压后的纹理子块渲染当前场景的步骤,包括:基于解压后的纹理子块渲染三维地形画面。
其中,原始纹理图像,具体可以是预先绘制的虚拟纹理图像。原始纹理图像中可以包括一个或多个图形对象所对应的纹理图像。例如,例如,图形对象可以包括三维场景下的地形、房屋、树木、人物等中的至少一种。
可以理解,三维地形,可以是三维场景下虚拟的三维地形。三维地形对应的纹理子块可以为地形纹理子块。三维地形通常需要通过多张地形纹理图像组合而成。三维场景中的三维地形信息,是指三维场景下的三维地形所对应的地形描述信息。三维场景中的位置信息,是指三维场景中虚拟观测点所处的位置的信息。进一步地,位置信息中还可以包括三维场景中虚拟观测点所处的位置的视角信息。三维场景中虚拟观测点所处的位置信息不同,待展示的当前三维场景的场景画面通常也不同。
其中,对于三维场景下的三维地形所对应的原始的地形纹理图像,可以预先通过压缩终端进行帧内压缩编码,并按照预设结构体进行存储,生成纹理压缩数据。
具体地,解压终端在展示三维场景的过程中,获取待展示的当前三维场景中的三维地形信息和位置信息,解压终端进而根据三维地形信息和位置信息,确定与待展示的当前三维场景中的三维地形画面相匹配的待解压纹理子块。然后解压终端则从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据,并对码流数据进行解码,就能够有效得到与待解压纹理子块对应的解压后的地形纹理子块。解压终端进而基于解压后的纹理子块渲染三维地形画面。
本实施例中,可以仅对三维场景下的三维地形对应的地形纹理图像,采用上述纹理压缩方法进行压缩,以利于在展示三维场景的过程中,能够更加高效地渲染三维场景下的三维地形。由于纹理压缩数据中包括对地形纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据,因此压缩后的内存占用较小的码流数据。由此,解压终端从而能够更加高效地对码流数据进行解码,同时还能够有效减少解压终端的资源消耗。
在一个具体的实施例中,如图9所示,提供了一种纹理解压方法的时序图。本实施例中,解压终端中包括渲染模块、纹理响应模块、纹理流处理模块、视频流传输模块和视频解码模块等对应的虚拟模块。例如,渲染模块可以为Game Render游戏渲染器,纹理响应模块可以为VT Feedback纹理反馈模块,纹理流处理模块可以为SVT虚拟纹理流模块,视频流传输模块可以为Hevc Streamer视频流模块,视频解码模块可以为Hevc Decoder视频解码器。
具体地,压缩终端中的渲染模块确定待展示的当前三维场景后,则向纹理反馈模块发起纹理响应请求。纹理反馈模块则计算与待展示的当前三维场景相匹配的待解压纹理子块的文件索引,并根据待解压纹理子块的文件索引向纹理流处理模块发起纹理获取请求。纹理流处理模块接收到纹理获取请求后,则从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据,并将这些码流数据进行拼接,然后传输至视频流传输模块。通过视频流传输模块将拼接后的码流数据,依次输入至视频解码模块,以通过视频解码模块分别各纹理子块对应的码流数据进行解码,得到解压后的YUV格式的各纹理子块,然后通过视频流传输模块将YUV格式的纹理子块返回至纹理流处理模块。纹理流处理模块进而向纹理反馈模块反馈解压后的YUV格式的纹理子块。进一步地,纹理反馈模块还可以将YUV格式的纹理子块,编码转换为ETC2格式的纹理子块,并生成物理纹理,以使得渲染模块基于物理纹理渲染当前三维场景。
在一个具体的实施例中,如图10所示,提供了一个实验测试实施例对应的实验数据示意图。本实施例的实验测试中,在同样的硬件环境下,采用现有的JPEG图像编解码方式和采用与本申请中的帧内压缩编码方式,分别对纹理数据进行压缩和解码,以测试采用不同编解码方式,在对压缩后的纹理数据进行解码时,在CPU资源占用方面的对比数据。具体地,实验测试的硬件环境为荣耀8X MAX型号的手机终端,手机终端的操作系统为Android,CPU为高通Snapdragon 660型号的处理器。
在实验测试中,采用现有的JPEG图像编解码方式,对原始的纹理资源进行压缩后,然后在手机终端上对压缩后的纹理数据进行解压时,测试出所占用的CPU资源,为108%的CPU占用率。
采用本申请中的帧内压缩编码方式,具体采用的是HEVC格式的视频编码器采用帧内压缩编码方式,即采用I帧算法对原始的纹理资源压缩。然后在手机终端上对压缩后的纹理数据进行解压时,可以通过视频解码软件进行解码,也可以通过硬件的视频解码器进行解码。具体地,当手机终端通过视频解码软件,也就是采用软件解码方式进行解码时,测试出所占用的CPU资源,为342.3%的CPU占用率。当手机终端通过硬件的视频解码器,也就是采用硬件解码方式进行解码时,测试出所占用的CPU资源,为28%的CPU占用率,大概仅占用0.28个CPU核。
由此可以看出,当手机终端采用软件解码方式进行解码时,CPU占用是现有的JPEG图像编解码方式的3.169倍。但是当手机终端采用硬件解码方式进行解码时,CPU占用率只有现有的JPEG图像编解码方式的0.259倍,大大降低了解码时CPU的资源消耗。并且,目前市面上大多数终端基本都支持HEVC格式的硬件解码方式。
此外,采用HEVC格式的视频编解码器以及采用I帧的压缩算法的编码方式,相较于现有的JPEG图像编解码方式复杂,这也是上述采用软件解码方式进行解码时CPU占用高的原因。但是,在同样画质下对比,采用HEVC格式的视频编解码器以及采用I帧的压缩算法的编码方式,对原始的纹理资源进行压缩后,压缩后的纹理文件体积,仅为采用现有的JPEG图像编解码方式压缩后的纹理文件体积的一半。
本申请还提供一种应用场景,该应用场景为三维游戏场景,该游戏场景应用上述的纹理压缩和解压方法。具体地,可以预先通过游戏编辑器获得游戏纹理资源。游戏纹理资源及为三维游戏场景下的原始纹理图像。
传统的方式中,通常在游戏编辑器中,纹理资源和顶点资源在同一游戏场景中被组织管理起来,当游戏场景导出时,会将纹理资源和顶点数据保存到文件中。其中,纹理资源会进行有损或者无损压缩,以降低文件大小,便于传输。但这种方式中,纹理解压过程全部在CPU上进行,会大量消耗CPU的资源。
本实施例中,图11所示,为压缩终端对三维游戏场景下的原始纹理图像进行压缩的示意图。其中,压缩终端是将三维游戏场景中的纹理资源和顶点数据分开进行压缩。
具体地,原始纹理图像具体可以为RGBA格式的图像数据。压缩终端获取三维游戏场景下的原始纹理图像后,获取对原始纹理图像划分得到的纹理子块,然后分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧头参数和帧内编码数据,并对帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。压缩终端进而将各纹理子块对应的码流数据写入至预设结构体,具体可以将相同帧头参数的各纹理子块对应的码流数据写入至同一个结构体。实现采用视频压缩的格式存储游戏纹理资源,从而得到视频格式的纹理压缩数据。
图12所示,为解压终端对三维游戏场景下的原始纹理图像进行解压的示意图。解压终端可以下载三维游戏场景对应的游戏应用包,解压终端中安装有该游戏应用。其中,游戏应用包中可以包括纹理压缩数据,也可以未包括纹理压缩数据。
解压终端在运行游戏应用的过程中,游戏应用会根据运行时的当前三维场景,确定与待展示的当前三维场景相匹配的待解压纹理子块,进而从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。具体的,当解压终端本地的游戏应用包中包括纹理压缩数据时,则可以直接从本地的视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。解压终端本地的游戏应用包中未包括纹理压缩数据时,则可以通过网络从游戏应用对应的服务器中的视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。
解压终端进而对查找并获取的码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块。同时解压终端还可以获取当前三维场景对应的顶点数据并解压,进而基于解压后的纹理子块和顶点数据渲染当前三维场景,以将渲染后的当前三维场景写入帧缓冲区中,以在解压终端的显示屏上展示渲染后的当前三维场景对应的场景画面。由上可知,通过采用上述纹理压缩方式对游戏纹理进行压缩后,能够使携带有压缩后的纹理压缩数据的游戏安装包的体积也更小。然后采用上述纹理解压方式进行解压,从而能够快速高效地对游戏应用中的纹理进行解压,并且解压过程中的CPU资源占用更少,进而有效减少了纹理解压过程中的资源消耗。
本申请还提供一种应用场景,该应用场景为三维环境演示场景,例如旅游环境演示场景、建筑物演示场景等,该三维环境演示场景应用上述的纹理压缩和解压方法。针对各种环境下的三维环境演示场景,可以预先设置三维场景下的原始纹理图像。
具体地,原始纹理图像具体可以为RGBA格式的图像数据。压缩终端获取三维环境演示场景下的原始纹理图像后,获取对原始纹理图像划分得到的纹理子块,然后分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧头参数和帧内编码数据,并对帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。压缩终端进而将各纹理子块对应的码流数据写入至预设结构体,具体可以将相同帧头参数的各纹理子块对应的码流数据写入至同一个结构体。实现采用视频压缩的格式存储游戏纹理资源,从而得到压缩后的内存占用较小的视频格式的纹理压缩数据。
解压终端可以预先将三维环境演示场景对应的纹理压缩数据加载至本地,也可以通过网络从相应服务器中加载三维环境演示场景对应的纹理压缩数据。
具体的,解压终端在展示三维环境演示场景的过程中,解压终端首先会根据展示过程中待展示的当前三维环境场景,确定与待展示的当前环境三维场景相匹配的待解压纹理子块,进而从本地的视频格式的纹理压缩数据中,或从服务器中的视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据。
解压终端进而对查找并获取的码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块。同时解压终端还可以获取当前三维环境场景对应的顶点数据并解压,进而基于解压后的纹理子块和顶点数据渲染当前三维环境场景,以将渲染后的当前三维环境场景写入帧缓冲区中,以在解压终端的显示屏上展示渲染后的当前三维环境场景对应的场景画面。由于纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据,因此压缩后的内存占用较小的纹理压缩数据。然后采用上述纹理解压方式进行纹理压缩数据中的码流数据进行解压,从而能够快速高效地对三维环境演示场景中的纹理进行解压,并且解压过程中的CPU资源占用更少,进而有效减少了纹理解压过程中的资源消耗。
应该理解的是,虽然图3、7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3、7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图13所示,提供了一种纹理压缩装置1300,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:数据获取模块1302、纹理压缩模块1304和纹理存储模块1306,其中:
数据获取模块1302,用于获取三维场景下的原始纹理图像;获取对原始纹理图像划分得到的纹理子块。
纹理压缩模块1304,用于分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据;将各纹理子块对应的帧内编码数据进行封装,得到各纹理子块对应的压缩后的码流数据。
纹理存储模块1306,用于将各纹理子块对应的码流数据写入预设结构体,得到视频格式的纹理压缩数据。
在一个实施例中,纹理压缩模块1304还用于通过视频编码器分别对各纹理子块进行帧内压缩编码,得到与各纹理子块对应的帧内编码数据;在解压纹理压缩数据时,通过视频解码器对纹理压缩数据中的码流数据进行解压。
在一个实施例中,对各纹理子块进行帧内压缩编码还得到各纹理子块对应的帧头参数;预设结构体包括文件头和对应于文件头的元素数组;纹理存储模块1306还用于将各纹理子块对应的帧头参数写入预设结构体的文件头中;将各纹理子块对应的码流数据,分别写入至相应文件头所对应的元素数组中;其中,每个纹理子块的帧头参数所写入至的文件头,与纹理子块对应的码流数据相对应。
在一个实施例中,纹理存储模块1306还用于将各纹理子块对应的帧头参数中相同的帧头参数,合并写入预设结构体的文件头中;将具有相同的帧头参数的纹理子块对应的码流数据,写入与相应文件头对应的元素数组中。
在一个实施例中,纹理存储模块1306还用于根据各纹理子块对应的元素数组相对于文件头的位置,确定各纹理子块对应的偏移值;针对每个纹理子块,将纹理子块对应的码流数据和偏移值,写入与纹理子块对应的元素数组中;根据各纹理子块对应的偏移值,建立各纹理子块对应的文件索引,并将文件索引写入文件头中。
在一个实施例中,纹理压缩数据,用于在解压终端中待展示当前三维场景时,提供与当前三维场景相匹配的码流数据,以使得解压终端对相匹配的码流数据进行解压,并基于解压后的纹理子块渲染当前三维场景。
在一个实施例中,原始纹理图像包括地形纹理图像;数据获取模块1302还用于获取三维场景下的三维地形所对应的地形纹理图像;按照预设尺度对地形纹理图像划分,得到尺度相同的纹理子块。
关于纹理压缩装置的具体限定可以参见上文中对于纹理压缩方法的限定,在此不再赘述。上述纹理压缩装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图14所示,提供了一种纹理解压装置1400,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:纹理确定模块1402、纹理查找模块1404、纹理解码模块1406和纹理渲染模块1408,其中:
纹理确定模块1402,用于确定与待展示的当前三维场景相匹配的待解压纹理子块。
纹理查找模块1404,用于从视频格式的纹理压缩数据中,查找与待解压纹理子块对应的码流数据;纹理压缩数据中包括对原始纹理图像中各纹理子块分别进行帧内压缩编码得到的码流数据;原始纹理图像,是与预先设置的至少一个三维场景对应的原始纹理图像。
纹理解码模块1406,用于对码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块。
纹理渲染模块1408,用于基于解压后的纹理子块渲染当前三维场景。
在一个实施例中,纹理压缩数据通过预设结构体存储,预设结构体中包括文件头和元素数组;元素数组中存储有各纹理子块对应的码流数据;纹理查找模块1404还用于从文件头中查找待解压纹理子块对应的文件索引;根据文件索引,从元素数组中查找相应的码流数据。
在一个实施例中,文件头包括根据各纹理子块对应的偏移值构建的文件索引;各纹理子块对应的偏移值,是各纹理子块对应的码流数据在元素数组中的存储位置,相对于文件头的位置偏移值;纹理查找模块1404还用于根据文件头中的文件索引,确定待解压纹理子块对应的偏移值;根据偏移值,从元素数组中定位待解压纹理子块对应的码流数据的存储位置;从定位的存储位置中,获取待解压纹理子块对应的码流数据。
在一个实施例中,纹理查找模块1404还用于从纹理压缩数据的文件头中,获取待解压纹理子块的帧头参数;纹理解码模块1406还用于将待解压纹理子块对应的码流数据进行拼接;根据帧头参数,通过视频解码器分别对拼接后的码流数据进行解码,得到与待解压纹理子块对应的解压后的纹理子块。
在一个实施例中,纹理子块为地形纹理图像中的纹理子块;纹理确定模块1402还用于获取待展示的当前三维场景中的三维地形信息和位置信息;根据三维地形信息和位置信息,确定与待展示的当前三维场景中的三维地形画面相匹配的待解压纹理子块;纹理渲染模块1408还用于基于解压后的纹理子块渲染三维地形画面。
关于纹理解压装置的具体限定可以参见上文中对于纹理解压方法的限定,在此不再赘述。上述纹理解压装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是压缩终端,其内部结构图可以如图15所示。该压缩终端包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该压缩终端的处理器用于提供计算和控制能力。该压缩终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该压缩终端的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种纹理压缩方法。该压缩终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该压缩终端的输入装置可以是显示屏上覆盖的触摸层,也可以是压缩终端外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是解压终端,其内部结构图可以如图16所示。该解压终端包括通过系统总线连接的处理器、存储器、通信接口、显示屏、输入装置和视频解码器。其中,该解压终端的处理器用于提供计算和控制能力。该解压终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该解压终端的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种纹理解压方法。该解压终端的显示屏可以是液晶显示屏或者电子墨水显示屏,用于显示渲染后的三维场景。该解压终端的输入装置可以是显示屏上覆盖的触摸层,也可以是解压终端外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。该解压终端的视频解码器,用于对待解压纹理子块对应的码流数据进行解码,以获得解压后的纹理数据。
本领域技术人员可以理解,图15和16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (14)

1.一种纹理压缩方法,其特征在于,所述方法包括:
获取三维场景下的原始纹理图像;所述原始纹理图像是预先针对三维场景绘制的虚拟纹理图像;
获取对所述原始纹理图像划分得到的纹理子块;
通过视频编码器将每个所述纹理子块作为一帧图像数据,并且将每个所述纹理子块作为关键帧,以分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;
将各所述帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
将各所述纹理子块对应的码流数据写入至预设结构体中进行存储,得到视频格式的纹理压缩数据;
其中,所述视频格式的纹理压缩数据,用于在解压终端中待展示当前三维场景时,使得所述解压终端从所述视频格式的纹理压缩数据中查找与所述当前三维场景相匹配的码流数据,并通过视频解码器对所述相匹配的码流数据进行解压,以基于解压后的纹理子块渲染所述当前三维场景;所述当前三维场景,是在展示所述三维场景时当前需要展示的场景画面。
2.根据权利要求1所述的方法,其特征在于,对各所述纹理子块进行帧内压缩编码还得到各纹理子块对应的帧头参数;所述预设结构体包括文件头和对应于所述文件头的元素数组;
所述将各所述纹理子块对应的码流数据写入预设结构体,包括:
将各所述纹理子块对应的帧头参数写入预设结构体的文件头中;
将各所述纹理子块对应的码流数据,分别写入至相应文件头所对应的元素数组中;其中,每个纹理子块的帧头参数所写入至的文件头,与所述纹理子块对应的码流数据相对应。
3.根据权利要求2所述的方法,其特征在于,所述将各所述纹理子块对应的帧头参数写入预设结构体的文件头中,包括:
将各所述纹理子块对应的帧头参数中相同的帧头参数,合并写入预设结构体的文件头中;
所述将各所述纹理子块对应的码流数据,分别写入所述预设结构体中与所述文件头对应的元素数组中,包括:
将具有相同的帧头参数的纹理子块对应的码流数据,写入与相应所述文件头对应的元素数组中。
4.根据权利要求2所述的方法,其特征在于,所述将各所述纹理子块对应的码流数据,分别写入所述预设结构体中与所述文件头对应的元素数组中,包括:
根据各所述纹理子块对应的元素数组相对于所述文件头的位置,确定各所述纹理子块对应的偏移值;
针对每个所述纹理子块,将所述纹理子块对应的码流数据和偏移值,写入与所述纹理子块对应的元素数组中;
根据各所述纹理子块对应的偏移值,建立各所述纹理子块对应的文件索引,并将所述文件索引写入所述文件头中。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述原始纹理图像包括地形纹理图像;
所述获取三维场景下的原始纹理图像,包括:
获取三维场景下的三维地形所对应的地形纹理图像;
所述获取对所述原始纹理图像划分得到的纹理子块,包括:
按照预设尺度对所述地形纹理图像划分,得到尺度相同的纹理子块。
6.一种纹理解压方法,其特征在于,所述方法包括:
确定与待展示的当前三维场景相匹配的待解压纹理子块;
从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述码流数据是通过视频编码器分别将原始纹理图像中每个纹理子块作为一帧图像数据,并将每个所述纹理子块作为关键帧,以分别对各所述纹理子块进行帧内压缩编码得到的;所述原始纹理图像,是与预先设置的至少一个三维场景对应的虚拟纹理图像;
对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
基于所述解压后的纹理子块渲染所述当前三维场景。
7.根据权利要求6所述的方法,其特征在于,所述纹理压缩数据通过预设结构体存储,所述预设结构体中包括文件头和元素数组;所述元素数组中存储有各所述纹理子块对应的码流数据;
所述从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据,包括:
从所述文件头中查找所述待解压纹理子块对应的文件索引;
根据所述文件索引,从所述元素数组中查找相应的码流数据。
8.根据权利要求7所述的方法,其特征在于,所述文件头包括根据各纹理子块对应的偏移值构建的文件索引;各所述纹理子块对应的偏移值,是各所述纹理子块对应的码流数据在元素数组中的存储位置,相对于文件头的位置偏移值;
所述根据所述文件索引,从所述元素数组中查找相应的码流数据,包括:
根据所述文件头中的文件索引,确定所述待解压纹理子块对应的偏移值;
根据所述偏移值,从所述元素数组中定位所述待解压纹理子块对应的码流数据的存储位置;
从定位的存储位置中,获取待解压纹理子块对应的码流数据。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
从所述纹理压缩数据的文件头中,获取所述待解压纹理子块的帧头参数;
所述对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块,包括:
将所述待解压纹理子块对应的码流数据进行拼接;
根据所述帧头参数,通过视频解码器分别对拼接后的码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块。
10.根据权利要求6至9中任意一项所述的方法,其特征在于,所述纹理子块为地形纹理图像中的纹理子块;所述确定与待展示的当前三维场景相匹配的待解压纹理子块,包括:
获取待展示的当前三维场景中的三维地形信息和位置信息;
根据所述三维地形信息和所述位置信息,确定与待展示的所述当前三维场景中的三维地形画面相匹配的待解压纹理子块;
所述基于所述解压后的纹理子块渲染所述当前场景,包括:
基于所述解压后的纹理子块渲染所述三维地形画面。
11.一种纹理压缩装置,其特征在于,所述装置包括:
数据获取模块,用于获取三维场景下的原始纹理图像;获取对所述原始纹理图像划分得到的纹理子块;所述原始纹理图像是预先针对三维场景绘制的虚拟纹理图像;
纹理压缩模块,用于将每个所述纹理子块作为一帧图像数据,并且将每个所述纹理子块作为关键帧,以分别对各所述纹理子块进行帧内压缩编码,得到与各所述纹理子块对应的帧内编码数据;将各所述纹理子块对应的帧内编码数据进行封装,得到各所述纹理子块对应的压缩后的码流数据;
纹理存储模块,用于将各所述纹理子块对应的码流数据写入预设结构体中进行存储,得到视频格式的纹理压缩数据;其中,所述视频格式的纹理压缩数据,用于在解压终端中待展示当前三维场景时,使得所述解压终端从所述视频格式的纹理压缩数据中查找与所述当前三维场景相匹配的码流数据,并通过视频解码器对所述相匹配的码流数据进行解压,以基于解压后的纹理子块渲染所述当前三维场景;所述当前三维场景,是在展示所述三维场景时当前需要展示的场景画面。
12.一种纹理解压装置,其特征在于,所述装置包括:
纹理确定模块,用于确定与待展示的当前三维场景相匹配的待解压纹理子块;
纹理查找模块,用于从视频格式的纹理压缩数据中,查找与所述待解压纹理子块对应的码流数据;所述码流数据是通过视频编码器分别将原始纹理图像中每个纹理子块作为一帧图像数据,并将每个所述纹理子块作为关键帧,以分别对各所述纹理子块进行帧内压缩编码得到的;所述原始纹理图像,是与预先设置的至少一个三维场景对应的虚拟纹理图像;
纹理解码模块,用于对所述码流数据进行解码,得到与所述待解压纹理子块对应的解压后的纹理子块;
纹理渲染模块,用于基于所述解压后的纹理子块渲染所述当前三维场景。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
14.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
CN202110142876.XA 2021-02-02 2021-02-02 纹理压缩和解压方法、装置、计算机设备和存储介质 Active CN112929705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110142876.XA CN112929705B (zh) 2021-02-02 2021-02-02 纹理压缩和解压方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110142876.XA CN112929705B (zh) 2021-02-02 2021-02-02 纹理压缩和解压方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112929705A CN112929705A (zh) 2021-06-08
CN112929705B true CN112929705B (zh) 2022-04-22

Family

ID=76169543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110142876.XA Active CN112929705B (zh) 2021-02-02 2021-02-02 纹理压缩和解压方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112929705B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113658327A (zh) * 2021-08-10 2021-11-16 煤炭科学研究总院 煤矿三维模型数据的轻量化方法和装置
CN114598912A (zh) * 2022-02-10 2022-06-07 互影科技(北京)有限公司 一种多媒体文件显示方法、装置、存储介质及电子设备
CN117218263B (zh) * 2023-09-12 2024-03-19 山东捷瑞信息技术产业研究院有限公司 一种基于三维引擎的纹理轻量化优化方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101415121A (zh) * 2007-10-15 2009-04-22 华为技术有限公司 一种自适应的帧预测的方法及装置
WO2010061515A1 (ja) * 2008-11-26 2010-06-03 株式会社日立製作所 動画像符号化装置及び符号化方法、動画像復号化装置及び復号化方法
CN102055982A (zh) * 2011-01-13 2011-05-11 浙江大学 三维视频编解码方法及装置
CN104301739A (zh) * 2013-07-18 2015-01-21 联发科技(新加坡)私人有限公司 多视点视频编码方法
CN105612747A (zh) * 2013-10-15 2016-05-25 高通股份有限公司 用于深度帧内译码的楔波样式扩展
CN108111863A (zh) * 2017-12-22 2018-06-01 洛阳中科信息产业研究院(中科院计算技术研究所洛阳分所) 一种在线实时三维模型视频编解码方法
CN109547783A (zh) * 2018-10-26 2019-03-29 西安科锐盛创新科技有限公司 基于帧内预测的视频压缩方法及其设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101415121A (zh) * 2007-10-15 2009-04-22 华为技术有限公司 一种自适应的帧预测的方法及装置
WO2010061515A1 (ja) * 2008-11-26 2010-06-03 株式会社日立製作所 動画像符号化装置及び符号化方法、動画像復号化装置及び復号化方法
CN102055982A (zh) * 2011-01-13 2011-05-11 浙江大学 三维视频编解码方法及装置
CN104301739A (zh) * 2013-07-18 2015-01-21 联发科技(新加坡)私人有限公司 多视点视频编码方法
CN105612747A (zh) * 2013-10-15 2016-05-25 高通股份有限公司 用于深度帧内译码的楔波样式扩展
CN108111863A (zh) * 2017-12-22 2018-06-01 洛阳中科信息产业研究院(中科院计算技术研究所洛阳分所) 一种在线实时三维模型视频编解码方法
CN109547783A (zh) * 2018-10-26 2019-03-29 西安科锐盛创新科技有限公司 基于帧内预测的视频压缩方法及其设备

Also Published As

Publication number Publication date
CN112929705A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
KR102596002B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신장치 및 포인트 클라우드 데이터 수신 방법
CN112929705B (zh) 纹理压缩和解压方法、装置、计算机设备和存储介质
US20220159261A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11595630B2 (en) Depth codec for real-time, high-quality light field reconstruction
US11647177B2 (en) Method, apparatus and stream for volumetric video format
US20210295567A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114930813B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
KR102585498B1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신장치 및 포인트 클라우드 데이터 수신 방법
US11315270B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115443652B (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN115398890B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US20210209806A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN114946179B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US20210409767A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115918093A (zh) 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN115396645A (zh) 一种沉浸媒体的数据处理方法、装置、设备及存储介质
CN111464812B (zh) 编码解码的方法、系统、装置、存储介质及处理器
US20230388542A1 (en) A method and apparatus for adapting a volumetric video to client devices
US20210398323A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN115428442B (zh) 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
KR102659806B1 (ko) V-pcc용 스케일링 파라미터
RU2807582C2 (ru) Способ, устройство и поток для формата объемного видео
KR20220128388A (ko) V-pcc용 스케일링 파라미터
CN117978996A (zh) 点云数据发送设备和方法、点云数据接收设备和方法
CN117978994A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40046379

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant