掌桥专利:专业的专利平台
掌桥专利
首页

具有受限几何动态范围的网格压缩

文献发布时间:2024-04-18 19:58:53


具有受限几何动态范围的网格压缩

交叉引用

本申请要求2022年3月4日提交的第63/316,876号美国临时专利申请的其优先权,该申请通过引用整体结合在本文中。本申请还要求2022年10月26日提交的第17/973,824号美国专利申请的优先权,该申请通过引用整体结合在本文中。

技术领域

本公开总体上涉及网格编码(或压缩)和网格解码(或解压缩)过程,并且尤其涉及用于具有受限几何动态范围的网格压缩的方法和系统。

背景技术

本文所提供的背景描述旨在整体呈现本申请的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本申请的现有技术。

开发了各种技术来采集、表示和模拟三维(3D)空间中的现实世界对象、环境等。世界的3D表示能够实现更具沉浸感的交互式通信形式。对象和环境的示例性3D表示包括但不限于点云和网格。对象和环境的一系列3D表示可以形成视频序列。可利用对象和环境的3D表示的序列内的冗余和相关性,将这种视频序列压缩和编解码成更紧凑的数字形式。

发明内容

本公开总体上涉及3D网格的编码(压缩)和解码(解压缩),并且具体涉及具有受限几何动态范围的网格压缩。

本公开描述了一种用于对三维网格的几何补丁进行解码的方法。该方法包括由设备接收已编码码流,该已编码码流包括三维网格的几何补丁。该设备包括存储指令的存储器和与存储器通信的处理器。该方法还包括由设备从已编码码流中提取第一语法元素,所述第一语法元素指示几何补丁是否被分区所述几何补丁包括一个或多个分区;以及对于几何补丁中的各个分区,由设备获得各个分区中点的像素值的动态范围,其中,所述点对应于三维网格中的顶点,所述动态范围使得能够在预定比特深度内对几何补丁进行编码。

根据另一方面,本公开的实施例提供了一种用于对3D网格进行编码或解码的装置。该装置包括存储指令的存储器;以及与存储器通信的处理器。当处理器执行指令时,处理器被配置为使装置执行上述方法。

在另一方面,本公开的实施例提供了存储指令的非易失性计算机可读介质,该指令在由计算机执行以用于视频解码和/或编码时使计算机执行上述方法。

在附图、说明书和权利要求书中更详细地描述了上述和其他方面及其实现。

附图说明

从以下详细描述和附图中,所公开的主题的进一步特征、性质和各种优点将变得更加明显,其中:

图1是根据实施例的通信系统的简化框图的示意图;

图2是根据实施例的流系统的简化框图的示意图;

图3示出了根据一些实施例的用于对网格帧进行编码的编码器的框图;

图4示出了根据一些实施例的用于对与网格帧相对应的压缩码流进行解码的解码器的框图;

图5是根据实施例的视频解码器的简化框图的示意图;

图6是根据实施例的视频编码器的简化框图的示意图;

图7示出了根据一些实施例的用于对网格帧进行编码的编码器的框图;

图8示出了根据本公开的一些实施例的用于网格压缩的框架的示意图;

图9示出了概述根据一些实施例的过程示例的流程图;

图10示出了根据本公开的一些实施例的用于网格压缩的框架的示意图;

图11示出了根据本公开的一些实施例的用于网格压缩的框架的另一示意图;

图12是根据实施例的计算机系统的示意图。

具体实施方式

在整个说明书和权利要求书中,术语可能具有上下文中所暗示或隐含的具有细微差别的含义,而不仅仅是明确陈述的含义。如本文所用的短语“在一个实施例中”或“在一些实施例中”不一定是指相同的实施例,并且如本文所用的短语“在另一实施例中”或“在其他实施例中”不一定是指不同的实施例。同样,如本文所用的短语“在一种实施方式中”或“在一些实施方式中”不一定是指相同的实施方式,并且如本文所用的短语“在另一实施方式中”或“在其他实施方式中”不一定是指不同的实施方式。例如,所要求保护的主题旨在包括示例性实施例/实施方式的全部或部分的组合。

一般而言,术语可以至少部分地根据上下文中的用法来理解。例如,如本文所用的术语,诸如“和”、“或”,或“和/或”,可以包括多种含义,其可以至少部分取决于使用此类术语的上下文。通常,“或”如果用于关联列表,诸如A、B或C,则旨在表示A、B和C,在此以包含性意义使用,以及A、B或C,在此以排他性意义使用。另外,如本文所用的术语“一个或多个”或“至少一个”,至少部分地取决于上下文,可用于以单数形式描述任何特征、结构或特性,或可用于以复数形式描述特征、结构或特性的组合。类似地,诸如“一(a)”、“一个(an)”或“该(the)”等术语同样可以被理解为传达单数用法或传达复数用法,这至少部分地取决于上下文。另外,术语“基于”或“由……确定”可以被理解为不一定旨在传达一组排他的因素,而是可以允许存在不一定明确描述的附加因素,同样,这至少部分地取决于上下文。

3D媒体处理中的技术发展,诸如3D采集、3D建模和3D渲染等方面的进步,促进了在多个平台和设备上普遍存在的3D内容的创建。这种3D内容包含可以被处理以生成各种形式的媒体的信息,以提供例如沉浸式观看/呈现和交互式体验。3D内容的应用非常丰富,包括但不限于虚拟现实、增强现实、元宇宙交互、游戏、沉浸式视频会议、机器人技术、计算机辅助设计(CAD,computer-aided design)等。根据本公开的一个方面,为了改善沉浸式体验,3D模型变得越来越复杂,并且3D模型的创建和使用需要大量的数据资源,诸如数据存储、数据传输资源和数据处理资源。

与传统的2维(2D)内容通常由2D像素阵列(诸如图像)形式的数据集表示,相比,具有三维全分辨率像素化的3D内容可以是令人望而却步的资源密集型内容,并且在许多(如果不是大多数)实际应用中也是不必要的。在大多数3D沉浸式应用中,根据本公开的一些方面,可以采用3D内容的较低的数据密集度表示。例如,在大多数应用中,可能只需要3D场景(由诸如LIDAR设备的传感器采集的真实世界场景或由软件工具生成的动画3D场景)中的对象的地形信息而不是体积信息。因此,可以使用更有效的形式的数据集来表示3D对象和3D场景。例如,3D网格(mesh)可以用作一种3D模型来表示沉浸式3D内容,诸如3D场景中的3D对象。

一个或多个对象的网格(替代地称为网格模型)可以包括顶点的集合。顶点可以彼此连接以形成边。边可以进一步连接以形成面(face)。面可以进一步形成多边形。各种对象的3D表面(surface)可以被分解为例如面和多边形。顶点、边、面、多边形或表面中的每一个可以与诸如颜色、法线、纹理等各种属性相关联。表面的法线可以被称为表面法线;和/或顶点的法线可以被称为顶点法线。顶点如何连接成边、面或多边形的信息可以被称为连接性信息。连接性信息对于唯一地定义网格的分量非常重要,这是因为同一组顶点可以形成不同的面、表面和多边形。通常,顶点在3D空间中的位置可以由其3D坐标表示。面可以由一组顺序连接的顶点来表示,每个顶点与一组3D坐标相关联。同样地,边可以由两个顶点表示,每个顶点与其3D坐标相关联。顶点、边和面可以在3D网格数据集中进行索引。

网格可以由这些基本元素类型中的一个或多个的集合来定义和描述。然而,为了完整地描述网格,并非上述所有类型的元素都是必需的。例如,可以通过仅使用顶点及其连接性来完整地描述网格。对于另一示例,可以仅通过使用面和面的公共顶点的列表来完整地描述网格。因此,网格可以是由可选数据集组成和格式描述的各种可选类型。示例网格类型包括但不限于面-顶点网格、翼边(winged-edge)网格、半边网格、四边(quad-edge)网格、角表(corner-table)网格、顶点-顶点网格等。相应地,网格数据集可以与符合可选文件格式的信息一起存储,文件格式具有文件扩展名,包括但不限于.raw、.blend、.fbx、.3ds、.dae、.dng、3dm、.dsf、.dwg、.obj、.ply、.pmd、.stl、amf、.wrl、.wrz、.x3d、.x3db、.x3dv、.x3dz、.x3dbz、.x3dvz、.c4d、.lwo、.smb、.msh、.mesh、.veg、.z3d、.vtk、.l4d等。这些元素的属性,诸如颜色、法线、纹理等,可以以各种方式被包括到网格数据集中。

在一些实施方式中,网格的顶点可以被映射到像素化的2D空间,称为UV空间。因此,网格的每个顶点可以被映射到UV空间中的像素。在一些实施方式中,一个顶点可以被映射到UV空间中的多于一个像素,例如,边界处的顶点可以被映射到UV空间中的两个或三个像素。同样地,网格中的面或表面可以被采样成多个3D点,这些3D点可以在或可以不在网格中记录的顶点中,并且这些多个3D点也可以被映射到2维UV空间中的像素。将网格中的面或表面的顶点和采样的3D点映射到UV空间中,并且UV空间中的后续数据分析和处理可以有助于网格或网格序列的3D数据集的数据存储、压缩和编解码,如下面进一步详细描述的。映射的UV空间数据集可以被称为UV图像,或2D图,或网格的2D图像。

在将3D网格中的顶点和采样的表面点映射到2D UV空间后,一些像素可以被映射到3D网格的顶点和采样的表面点,而其他像素可以不被映射。网格的2D图像中的每个映射像素可以与3D网格中的对应映射顶点或表面点的信息相关联。根据包括在UV空间中的像素的信息类型,可以构建网格的各种2D图像或2D图。多个2D图的集合可以用作网格的替代或/或联合表示。

例如,网格的最简单的2D图可以被构建为占用图(occupancy map)。占用图可以指示UV空间中被映射到网格的3D顶点或采样的表面点的像素。占用的指示可以由每个2D像素处的二进制指示符来表示,例如,二进制值“1”指示映射或占用,而二进制值“0”指示非映射或非占用。因此,占用图可以被构建为2D图像。虽然正常的2D图像包含具有例如8位色深的三个通道(RGB、YUV、YCrCb等)的阵列,但是这种网格的2D占用图仅需要一位二进制通道。

对于另一示例,可以为网格构建2D几何图。2D几何图不包含单个二进制通道,而是完整的三通道图像,其中,在每个被占用像素处的三色通道将对应于网格中对应的映射顶点或采样的3D点的三个3D坐标。

在一些实施方式中,可以为网格构建其他2D图。例如,可以从网格数据集中提取网格的每个顶点和采样的3D点的一组属性,并且可以将这组属性编码到2D图图像的3色通道中。这种2D图可以被称为网格的属性图。特定的属性图可以包含UV空间中每个被占用像素的三通道颜色。对于另一示例,与网格的每个映射顶点或采样的3D点相关联的纹理属性可以被参数化为三通道值并被编码为2D属性图。对于另一示例,与网格的每个映射顶点或采样的3D点相关联的法线属性可以被参数化为三通道值并被编码为2D属性图。在一些示例实施方式中,可以构建多个2D属性图,以便保存网格的顶点和采样的表面点的所有必要属性信息。

上述2D图仅仅是示例。可以为网格构建其他类型的2D图。另外,可以从3D网格中提取其他数据集,以与上述2D图一起共同表示原始3D网格。例如,除了2D图之外,顶点之间的连接或连接性信息可以以列表、表格等形式单独分组和组织。例如,连接性信息可以使用顶点索引来指代顶点。顶点索引可以被映射到它们在2D图中的相应像素位置。对于另一示例,表面纹理、颜色、法线、位移和其他信息可以在2D图之外单独提取和组织,而不是作为2D图。可以从3D网格中进一步提取其他元数据,以结合上述2D图和其他数据集来表示3D网格。

虽然以上示例性实施方式聚焦于静态的网格,但是根据本公开的一方面,3D网格可以是动态的。例如,动态网格可以指其中至少一个分量(几何信息、连接性信息、映射信息、顶点属性和属性图)随时间变化的网格。因此,动态网格可以由网格序列或网格(也称为网格帧)来描述,类似于形成视频的2D图像帧的定时序列。

在一些示例性实施方式中,动态网格可以具有恒定连接性信息、时变几何形状和时变顶点属性。在一些其他示例中,动态网格可以具有时变连接性信息。在一些示例中,数字3D内容创建工具可用于生成动态网格,所述动态网格具有时变属性图和时变连接性信息。在一些其他示例中,使用体积采集/检测/感测技术来生成动态网格。体积采集技术可以生成具有时变连接性信息的动态网格,尤其是在实时限制条件下。

由于动态网格可能包括随时间变化的大量信息,因此动态网格可能需要大量数据。然而,可以执行压缩以利用网格帧内(帧内压缩)和网格帧之间(帧间压缩)的冗余。可以实现各种网格压缩过程以允许在网格表示中有效地存储和传输媒体内容,特别是对于网格序列。

本公开的各方面提供了用于网格压缩的示例架构和技术。这些技术可用于各种网格压缩,包括但不限于静态网格压缩、动态网格压缩、具有恒定连接性信息的动态网格的压缩、具有时变连接性信息的动态网格的压缩、具有时变属性图的动态网格的压缩等。这些技术可用于各种应用的有损和无损压缩,诸如实时沉浸式通信、存储、自由视点视频、增强现实(AR,Augmented Reality)、虚拟现实(VR,Virtual Reality)等。这些应用可以包括诸如随机存取和可缩放/渐进编解码的功能。

虽然本公开明确地描述了可应用于3D网格的技术和实施方式,但是本文描述的各种实施方式所基于的原理也可应用于其他类型的3D数据结构,包括但不限于点云(PC,Point Cloud)数据结构。为了简单起见,以下对3D网格的引用旨在是通用的并且包括其他类型的3D表示,诸如点云和其他3D体积数据集。

首先转向示例性架构级实施方式,图1图示了根据本公开的一个示例实施例的通信系统(100)的简化框图。通信系统(100)可以包括能够经由例如通信网络(150)(替代地称为网络)彼此通信的多个终端设备。例如,通信系统(100)可以包括经由网络(150)互连的一对终端设备(110)和(120)。在图1的示例中,第一对终端设备(110)和(120)可以执行3D网格的单向传输。例如,终端设备(110)可以压缩3D网格或3D网格序列,这些网格可以由终端设备(110)生成,或者从存储中获得,或者由与终端设备(110)连接的3D传感器(105)捕获。压缩的3D网格或3D网格序列可以例如以码流(也称为已编码码流)的形式经由网络(150)传输到另一终端设备(120)。终端设备(120)可以从网络(150)接收压缩的3D网格或3D网格序列、对码流进行解压缩以重建原始3D网格或3D网格序列,并适当地处理重建的3D网格或3D网格序列以用于显示或用于其他目的/用途。单向数据传输在媒体服务应用等中可能是常见的。

在图1的示例中,终端设备(110)和(120)中的两者之一或两者可以被实现为服务器、固定或移动个人计算机、膝上型计算机、平板计算机、智能电话、游戏终端、媒体播放器和/或专用三维(3D)装备等,但是本公开的原理可以不限于此。网络(150)可以表示在终端设备(110)和(120)之间传输压缩的3D网格的任何类型的网络或网络组合。网络(150)可以包括例如有线(有线)和/或无线通信网络。网络(150)可以在电路交换和/或分组交换通道中交换数据。代表性的网络包括长途电信网络、局域网、广域网、蜂窝网络和/或因特网。出于本公开的目的,网络(150)的架构和拓扑对于本公开的操作可能是无关紧要的,除非在下文中解释。

图2示出了根据本公开的实施例的流式传输系统(200)的示例简化框图。图2图示了与3D网格和压缩的3D网格相关的所公开实现的示例应用。所公开的主题可以同等地适用于其他支持3D网格或点云的应用,诸如3D远程呈现应用、虚拟现实应用等。

流式传输系统(200)可以包括采集或存储子系统(213)。采集或存储子系统(213)可以包括生成或提供未压缩的3D网格(202)或点云(202)的3D网格生成器或存储介质(201),例如3D网格或点云生成工具/软件、图形生成部件,或者点云传感器,诸如光检测和测距(LIDAR)系统、3D相机、3D扫描仪、3D网格存储等。在一些示例性实施方式中,3D网格(202)包括3D网格的顶点或点云的3D点(两者都被称为3D网格)。3D网格(202)被描绘为粗线,以在与压缩的3D网格(204)(压缩的3D网格的码流)相比时强调相应的高数据量。压缩的3D网格(204)可以由包括耦合到3D网格(202)的编码器(203)的电子设备(220)生成。编码器(203)可以包括硬件、软件或其组合,以使能或实现如下文更详细描述的所公开的主题的各方面。压缩的3D网格(204)(或压缩的3D网格(204)的码流)可以被存储在流流服务器(205)中以供将来使用,该压缩的3D网格(204)被描绘为细线以在与未压缩的3D网格(202)的流相比时强调较低的数据量。诸如图2中的客户端子系统(206)和(208)的一个或多个流式传输客户端子系统可以存取流服务器(205)以检索压缩的3D网格(204)的副本(207)和(209)。客户端子系统(206)可以包括例如电子设备(230)中的解码器(210)。解码器(210)可以被配置为对压缩的3D网格的传入副本(207)进行解码,并创建可在呈现设备(212)上呈现或用于其他用途的重建3D网格(211)的输出流。

注意,电子设备(220)和(230)可以包括其他部件(未示出)。例如,电子设备(220)可以包括解码器(未示出),并且电子设备(230)也可以包括编码器(未示出)。

在一些流式传输系统中,压缩的3D网格(204)、(207)和(209)(例如,压缩的3D网格的码流)可以根据某些标准进行压缩。在一些示例中,如下文进一步详细描述,视频编解码标准用于在首先将3D网格投影以映射成适合于视频压缩的2D表示之后,利用3D网格的压缩中的冗余和相关性。这些标准的非限制性示例包括高效率视频编解码(HEVC,HighEfficiency Video Coding)、下一代视频编解码(VVC,Versatile Video Coding)等,如下文进一步详细描述。

压缩的3D网格或3D网格序列可以由编码器生成,而解码器可以被配置为对压缩或已编码的3D网格进行解压缩。图3图示了这种编码器(301)和解码器(303)中的3D网格的高级示例性数据流。如图3所示,原始输入3D网格或3D网格序列(302)可以通过轨道重新网格化、参数化和/或体素化来进行预处理,以生成到映射单元的输入数据,映射单元用于将3D网格映射到2D UV空间(304),在一些实施方式中,2D UV空间(304)可以包括具有UV图集的网格。可以对3D网格进行采样以包括可能不在顶点中的3D表面点,并且将这些采样的3D表面点添加到UV空间的映射中。可以在编码器301中生成各种2D图,包括但不限于占用图(310)、几何图(312)、属性图(314)。这些图像类型的图可以由编码器301使用例如视频编解码/压缩技术来压缩。例如,视频编码器可以通过使用帧内预测技术和由其他3D网格参考帧进行的帧间预测来帮助压缩3D网格帧。其他非图像或非图数据或元数据(316)也可以以各种方式进行编码以去除冗余,从而经由熵编解码(作为非限制性示例)生成压缩的非图数据。然后,编码器301可以组合或复用压缩的2D图和非图数据,并进一步对组合的数据进行编码以生成已编码码流(或称为编码的码流)。已编码码流然后可以被存储或传输以供解码器303使用。解码器可以被配置为对码流进行解码,对已解码的码流进行解复用以获得压缩的2D图和非图数据,以及进行预解压缩以生成已解码的占用图(320)、已解码的几何图(322)、已解码的属性图(324)以及已解码的非图数据和元数据(326)。解码器303然后可以进一步被配置为从已解码的2D图(320、322和324)和已解码的非图数据(326)重建3D网格或3D网格序列(330)。

更详细地,图4示出了根据本公开的一些实施例的用于对3D网格帧进行编码的示例3D网格编码器(400)的框图。在一些示例性实施方式中,网格编码器(400)可用于通信系统(100)和流式传输系统(200)中。例如,编码器(203)可以以与网格编码器(400)类似的方式来配置和操作。

网格编码器(400)可以接收3D网格帧作为未压缩的输入,并生成对应于压缩的3D网格帧的码流。在一些示例实现中,网格编码器(400)可以从任何源接收3D网格帧,例如从图2的网格或点云源(201)等接收。

在图4的示例中,网格编码器(400)可以包括补丁生成模块(406)(替代地称为图表生成模块)、补丁打包模块(408)、几何图像生成模块(410)、纹理图像生成模块(412)、补丁信息模块(404)、占用图模块(414)、平滑模块(436)、图像填充模块(416)和(418)、群组扩展模块(420)、视频压缩模块(422)、(423)和(432)、辅助补丁信息压缩模块(438)、熵压缩模块(434)和复用器(424)。

在本公开的各种实施例中,模块可以指软件模块、硬件模块或其组合。软件模块可以包括具有预定功能并与其他相关部分一起工作以实现预定目标(诸如在本公开中描述的那些功能)的计算机程序或计算机程序的一部分。可以使用被配置为执行本公开中描述的功能的处理电路和/或存储器来实现硬件模块。每个模块可以使用一个或多个处理器(或处理器和存储器)来实现。同样,处理器(或多个处理器和存储器)可用于实现一个或多个模块。此外,每个模块可以是包括模块功能的整个模块的一部分。本文的描述也可以应用于术语模块和其他等效术语(例如,单元)。

根据本公开的一方面,并且如上所述,网格编码器(400)将3D网格帧连同一些非图元数据(例如,补丁或图表信息)一起转换成基于图像的表示(例如,2D图),所述非图元数据用于辅助将压缩的3D网格转换回解压缩的3D网格。在一些示例中,网格编码器(400)可以将3D网格帧转换成2D几何图或图像、纹理图或图像以及占用图或图像,然后使用视频编解码技术将几何图像、纹理图像和占用图连同元数据和其他压缩的非图数据一起编码成码流。通常,并且如上所述,2D几何图像是具有2D像素的2D图像,所述2D像素填充有与投影到2D像素的3D点相关联的几何值(术语“投影”用于表示“映射”),并且填充有几何值的2D像素可以被称为几何样本。纹理图像是像素填充有纹理值的2D图像,所述纹理值与投影到2D像素的3D点相关联,并且填充有纹理值的2D像素可以被称为纹理样本。占用图是具有2D像素的2D图像,所述2D像素填充有用于指示被3D点占用或未被3D点占用的值。

补丁生成模块(406)将3D网格分割成可以重叠或不重叠的一组图表或补丁(例如,将补丁定义为由3D网格或点云描述的表面的连续子集),使得每个补丁可以由相对于2D空间中的平面的深度场来描述(例如,表面的平坦化使得表面上更深的3D点进一步远离对应的2D图的中心)。在一些实施例中,补丁生成模块(406)旨在将3D网格分解成具有平滑边界的最小数量的补丁,同时还最小化重建误差。

补丁信息模块(404)可以收集指示补丁的大小和形状的补丁信息。在一些示例中,补丁信息可以被打包到数据帧中,并且然后由辅助补丁信息压缩模块(438)进行编码以生成压缩的辅助补丁信息。辅助补丁压缩可以以各种形式实现,包括但不限于各种类型的算术编解码。

补丁或图表打包模块(408)可以被配置为将所提取的补丁映射到UV空间的2D栅格(grid)上,同时最小化未使用的空间。在一些示例性实施方式中,2D UV空间的像素可以被颗粒化为像素块,用于对补丁或图表进行映射。块大小可以是预定义的。例如,块大小可以是M,为M×M(例如,16×16)。利用这种粒度,可以保证2D UV栅格(grid)的每个M×M块与唯一的补丁相关联。换句话说,每个补丁都被映射到2D粒度为M×M的2D UV空间。通过最小化未使用的空间或确保时间一致性,高效的补丁打包可以直接影响压缩效率。下面更详细地给出将补丁或图表打包到2D UV空间中的示例性实施方式。

几何图像生成模块(410)可以生成与3D网格在2D栅格中的给定补丁位置处的几何形状相关联的2D几何图像。纹理图像生成模块(412)可以生成2D纹理图像,所述2D纹理图像在2D栅格(grid)中的给定补丁位置处与3D网格的纹理相关联。如上所述,几何图像生成模块(410)和纹理图像生成模块(412)实质上利用在上述打包过程中计算的3D到2D映射,来将3D网格的几何形状和纹理存储为2D图像。

在一些实施方式中,为了更好地处理多个点被投影到同一样本的情况(例如,补丁在网格的3D空间中重叠),可以对2D图像进行分层。换句话说,每个补丁可以被投影到例如称为层的两个图像上,使得多个点可以被投影到不同层中的相同点上。

在一些示例性实施方式中,几何图像可以由宽度x高度(W×H)的单色帧来表示。因此,可以使用3个亮度或色度通道的三个几何图像来表示3D坐标。在一些示例性实施方式中,几何图像可以由具有特定色深(例如,8位、12位、16位等)的三个通道(RGB、YUV、YCrCb等)的2D图像来表示。因此,可以使用具有3个颜色通道的一个几何图像来表示3D坐标。

为了生成纹理图像,纹理生成过程利用重建/平滑的几何形状,以便计算与来自原始3D网格的采样点相关联的颜色(参见图3的“采样”,其例如将生成不在原始3D网格的顶点中的3D表面点)。

占用图模块(414)可以被配置为生成描述每个单元处的填充信息的占用图。例如,如上所述,占用图像可以包括二进制图,该二进制图针对2D栅格的每个单元指示该单元是属于空白空间还是属于3D网格。在一些示例性实施方式中,占用图可以使用二进制信息来描述每个像素是否被填充。在一些其他示例性实施方式中,占用图可以使用二进制信息来针对每个像素块(例如,每个M×M块)描述该像素块是否被填充。

可以使用无损编解码或有损编解码来压缩由占用图模块(414)生成的占用图。当使用无损编解码时,熵压缩模块(434)可用于压缩占用图。当使用有损编解码时,视频压缩模块(432)可用于压缩占用图。

注意,补丁打包模块(408)可以在2D补丁之间留下一些空白空间,所述2D补丁被打包在图像帧中。图像填充模块(416)和(418)可以填充空白空间(称为填充),以便生成可以适用于2D视频和图像编解码器的图像帧。图像填充也被称为背景填充,其可以用冗余信息填充未使用的空间。在一些示例中,良好实施的背景填充最低限度地增加比特率,同时避免在补丁边界周围引入显著的编解码失真。

视频压缩模块(422)、(423)和(432)可以基于合适的视频编解码标准(诸如HEVC、VVC等)对2D图像(诸如,填充的几何图像、填充的纹理图像和占用图)进行编码。在一些示例性实施方式中,视频压缩模块(422)、(423)和(432)是分开操作的单独部件。注意,在一些其他示例性实施方式中,视频压缩模块(422)、(423)和(432)可以被实现为单个部件。

在一些示例实现中,平滑模块(436)可以被配置为生成重建的几何图像的平滑图像。可以将平滑图像提供给纹理图像生成(412)。然后,纹理图像生成(412)可以基于重建的几何图像调整纹理图像的生成。例如,当补丁形状(例如几何形状)在编码和解码期间略微失真时,在生成纹理图像以校正补丁形状中的失真时可以考虑失真。

在一些实施例中,群组扩展(420)被配置为利用冗余低频内容来填充对象边界周围的像素,以便提高编解码增益以及重建的3D网格的视觉质量。

复用器(424)可以被配置为将压缩的几何图像、压缩的纹理图像、压缩的占用图、压缩的辅助补丁信息复用到压缩的码流(或称为已编码码流)中。

图5示出了根据本公开的一些实施例的用于对与3D网格帧相对应的压缩的码流进行解码的示例性网格解码器(500)的框图。在一些示例性实施方式中,网格解码器(500)可用于通信系统(100)和流式传输系统(200)中。例如,解码器(210)可以被配置为以与网格解码器(500)类似的方式操作。网格解码器(500)接收压缩的码流,并基于压缩的码流生成重建的3D网格,压缩的码流包括例如压缩的几何图像、压缩的纹理图像、压缩的占用图、压缩的辅助补丁信息。

在图5的示例中,网格解码器(500)可以包括解复用器(532)、视频解压缩模块(534)和(536)、占用图解压缩模块(538)、辅助补丁信息解压缩模块(542)、几何重建模块(544)、平滑模块(546)、纹理重建模块(548)和颜色平滑模块(552)。

解复用器(532)可以接收压缩的码流并将其分离成压缩的纹理图像、压缩的几何图像、压缩的占用图和压缩的辅助补丁信息。

视频解压缩模块(534)和(536)可以根据合适的标准(例如,HEVC、VVC等)对压缩图像进行解码并输出解压缩图像。例如,视频解压缩模块(534)可以对压缩的纹理图像进行解码并输出解压缩的纹理图像。视频解压缩模块(536)可以进一步对压缩的几何图像进行解码并输出解压缩的几何图像。

占用图解压缩模块(538)可以被配置为根据合适的标准(例如,HEVC、VVC等)对压缩的占用图进行解码,并输出解压缩的占用图。

辅助补丁信息解压缩模块(542)可以被配置为根据合适的解码算法对压缩的辅助补丁信息进行解码,并输出解压缩的辅助补丁信息。

几何重建模块(544)可以被配置为接收解压缩的几何图像,并基于解压缩的占用图和解压缩的辅助补丁信息生成重建的3D网格几何形状。

平滑模块(546)可以被配置为平滑补丁边缘处的不一致。平滑过程可以旨在减轻由于压缩伪影而可能在补丁边界处出现的潜在不连续性。在一些示例实现中,可以将平滑滤波器应用于位于补丁边界上的像素,以减轻可能由压缩/解压缩引起的失真。

纹理重建模块(548)可以被配置为基于解压缩的纹理图像和平滑几何形状确定3D网格中的点的纹理信息。

颜色平滑模块(552)可以被配置为平滑着色的不一致。在2D视频中,3D空间中的非相邻补丁通常彼此相邻地打包。在一些示例中,来自非相邻补丁的像素值可能会被基于块的视频编解码器混淆。颜色平滑的目标可以是减少出现在补丁边界处的可见伪影。

图6示出了根据本公开的实施例的示例视频解码器(610)的框图。视频解码器(610)可用于网格解码器(500)中。例如,视频解压缩模块(534)和(536)、占用图解压缩模块(538)可以被类似地配置为视频解码器(610)。

视频解码器(610)可以包括解析器(620)以从诸如已编码视频序列的压缩图像重建符号(621)。这些符号的类别可以包括用于管理视频解码器(610)的操作的信息。解析器(620)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffmancoding)、具有或不具有上下文灵敏度的算术编码等等。解析器(620)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(PredictionUnit,PU)等等。解析器(620)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

解析器(620)可对从缓冲存储器接收的图像序列执行熵解码/解析操作,从而创建符号(621)。

取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(621)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(620)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(620)与下文的多个单元之间的此类子群控制信息流。

除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,仅出于描述所公开主题的目的,在概念上细分成下文的功能单元。

视频解码器(610)可以包括缩放器/逆变换单元(651)。缩放器/逆变换单元(651)从解析器(620)接收作为符号(621)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(651)可输出包括样本值的块,所述样本值可输入到聚合器(655)中。

在一些情况下,缩放器/逆变换单元(651)的输出样本可属于帧内编码块,所述帧内编码块为不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(652)提供。在一些情况下,帧内图片预测单元(652)采用从当前图片缓冲器(658)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(658)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(655)基于每个样本,将帧内预测单元(652)生成的预测信息添加到由缩放器/逆变换单元(651)提供的输出样本信息中。

在其它情况下,缩放器/逆变换单元(651)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(653)可访问参考图片存储器(657)以提取用于预测的样本。在根据符号(621)对提取的样本进行运动补偿之后,这些样本可由聚合器(655)添加到缩放器/逆变换单元(651)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(653)从参考图片存储器(657)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(621)的形式而供运动补偿预测单元(653)使用,所述符号(621)例如是包括X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(657)提取的样本值的内插、运动矢量预测机制等等。

聚合器(655)的输出样本可在环路滤波器单元(656)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(620)的符号(621)可用于环路滤波器单元(656)。视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(656)的输出可以是样本流,所述样本流可输出到显示装置以及存储在参考图片存储器(657),以用于后续的帧间图片预测。

一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(620))被识别为参考图片,则当前图片缓冲器(658)可变为参考图片存储器(657)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。

视频解码器(610)可根据例如ITU-T H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical ReferenceDecoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

图7示出了根据本公开的实施例的视频编码器(703)的框图。视频编码器(703)可用于对3D网格或点云进行压缩的网格编码器(400)中。在一些示例性实施方式中,视频压缩模块(422)和(423)以及视频压缩模块(432)被配置为类似于编码器(703)。

视频编码器(703)可以接收2D图像(诸如填充的几何图像、填充的纹理图像等),并生成压缩图像。

根据实施例,视频编码器(703)可实时或在由应用所要求的任何其它时间约束下,将源视频序列(图像)的图片编码且压缩成已编码视频序列(压缩的图像)。施行适当的编码速度是控制器(750)的一个功能。在一些实施例中,控制器(750)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(750)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。控制器(750)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(703)。

在一些实施例中,视频编码器(703)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(730)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(703)中的(本地)解码器(733)。解码器(733)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(由于在公开的主题中考虑的视频压缩技术中,符号和编码视频比特流之间的任何压缩都是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(734)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(734)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。

“本地”解码器(733)的操作可与例如已在上文结合图6详细描述视频解码器(610)的“远程”解码器相同。然而,另外简要参考图6,当符号可用且熵编码器(745)和解析器(620)能够无损地将符号编码/解码为已编码视频序列时,包括解析器(620)在内的视频解码器(610)的熵解码部分,可能无法完全在本地解码器(733)中实施。

本申请的各实例中,除了解码器中存在的解析/熵解码之外,任何解码器技术可能需要以基本相同的功能形式存在于相应的编码器中。出于这个原因,本申请的各实施例侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。

在操作期间,在一些实施例中,源编码器(730)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(732)对输入图片的像素块与参考图片的像素块之间的差异进行编码,所述参考图片可被选作所述输入图片的预测参考。

本地视频解码器(733)可基于源编码器(730)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(732)的操作可为有损过程。当已编码视频数据可在视频解码器(图7中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(733)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(734)中。以此方式,视频编码器(703)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。

预测器(735)可针对编码引擎(732)执行预测搜索。即,对于将要编码的新图片,预测器(735)可在参考图片存储器(734)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(735)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(735)获得的搜索结果,可确定输入图片可具有从参考图片存储器(734)中存储的多个参考图片取得的预测参考。

控制器(750)可管理源编码器(730)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可在熵编码器(745)中对所有上述功能单元的输出进行熵编码。熵编码器(745)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。

控制器(750)可管理视频编码器(703)的操作。在编码期间,控制器(750)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:

帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。

源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。

视频编码器(703)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(703)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。

视频可以呈时间序列的多个源图片(图像)的形式。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。

在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。

此外,合并模式技术可用于帧间图片预测中以改善编码效率。

根据本申请公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(codingtree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),所述三个编码树块是一个亮度CTB和两个色度CTB。更进一步的,还可将每个CTU以四叉树拆分为一个或多个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在实施例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将CU拆分为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8×8像素、16×16像素、8×16像素、16×8像素等等。

在各种实施例中,上述网格编码器(400)和网格解码器(500)可以用硬件、软件或其组合来实现。例如,网格编码器(400)和网格解码器(500)可以用诸如一个或多个集成电路(IC,integrated circuits)的处理电路来实现,这些集成电路在有或没有软件的情况下操作,诸如专用集成电路(ASIC,application specific integrated circuit)、现场可编程门阵列(FPGA,field programmable gate array)等。在另一示例中,网格编码器(400)和网格解码器(500)可以被实现为包括存储在非永久性(或非易失性)计算机可读存储介质中的指令的软件或固件。这些指令在由诸如一个或多个处理器的处理电路执行时,使处理电路执行网格编码器(400)和/或网格解码器(500)的功能。

图8示出了将3D x-y-z坐标系(819)中的3D补丁(810)映射到u-v坐标系(859)中的2D UV平面(850)中的示例。在一些实施方式中,3D补丁(或简称为补丁)通常可以指由对应于3D空间中的网格的一组顶点所描述的表面的连续子集。在非限制性示例中,补丁包括具有3D坐标、法向矢量、颜色、纹理和其他信息的顶点。在一些实现中,2D几何补丁(或简称为几何补丁)可以指2D UV平面中的投影形状、对应于补丁的投影形状,以及对应于补丁的几何补丁。

在UV平面的投影形状中,每个映射点(ui,vi)对应于具有位置(xi,yi,zi)的3D顶点,其中i=1、2、3、4等。例如,具有3D坐标(x1,y1,z1)的第一顶点(811)被映射到具有2D坐标(u1,v1)的第一点(851);具有3D坐标(x2,y2,z2)的第二顶点(812)被映射到具有2D坐标(u2,v2)的第二点(852);具有3D坐标(x3,y3,z3)的第三顶点(813)被映射到具有2D坐标(u3,v3)的第三点(853);具有3D坐标(x4,y4,z4)的第四顶点(814)被映射到具有2D坐标(u4,v4)的第四点(854)。

然后,将顶点几何形状(即,xi、yi和zi的值)的编解码转换成对2D平面中的3通道值进行编码,其中,(u,v)位置处的每个3通道值对应于相关联的3D位置。例如,第一位置(851)的像素值包括对应于第一顶点(811)的3D坐标的3通道值(或三个通道值),其中,3通道值的第一通道值对应于x1的值,3通道值的第二通道值对应于y1的值,并且3通道值的第三通道值对应于z1的值。

因此,具有一个或多个补丁的投影/映射的2D平面被称为几何图像,并且因此可以使用任何图像或视频编解码器(例如,支持4:4:4颜色格式的视频编解码器)进行编码。

在一些实现中,UV平面上的投影/映射点的像素值可以对应于从3D顶点到UV平面的距离。因此,为了定位顶点位置信息,不同方向上的多个平面可用于这种投影。在这种情况下,UV平面中的每个位置(或称为点)都是1通道值,记录距离。这种图像被称为深度图像。可以使用任何图像或视频编解码器(例如,支持YUV4:2:0或YUV4:0:0颜色格式的视频编解码器)对深度图像进行编码。

在一些实施方式中,使用u-v平面中的点的像素值来表示3D网格中的顶点的3D坐标值可能存在问题/难题。问题/难题之一是顶点的3D坐标值的一个或多个分量的动态范围可能大于具有特定比特深度的像素值的范围。例如,2D UV平面上的样本值的比特深度可能需要与3D补丁的几何位置的动态范围相匹配。有时这种动态范围可能非常大,因此来自视频编解码器支持的所需比特深度高于一些视频编解码器所支持的最大比特深度。换句话说,并非每个视频编解码器都可以支持高比特深度编解码,以匹配网格中顶点的3D坐标值的非常大的动态范围。另一个问题/难题可以包括,即使某个视频编解码器支持高比特深度,也可能不需要为每个补丁分配高比特深度,因为不是每个补丁在几何位置分布中都具有高动态范围。

本公开描述了用于对具有受限几何动态范围的3D网格进行编码或解码的各种实施例,解决了上述至少一个问题/难题,从而提高了压缩几何信息的效率和/或推进了高效的3D网格压缩技术。

图9示出了遵循上述实施方式所基于的原理的用于对具有受限几何动态范围的3D网格进行解码的示例方法的流程图900。示例解码方法流程开始于S901,并且可以包括以下步骤的一部分或全部:在S910中,接收包括三维网格的几何补丁的已编码码流;在S920中,从已编码码流中提取指示所述几何补丁是否被分区的第一语法元素,其中,所述几何补丁包括一个或多个分区;以及在S930中,对于几何补丁中的各个分区,获得各个分区中点的像素值的动态范围,其中,所述点对应于三维网格中的顶点,动态范围使得能够在预定比特深度内对几何补丁进行编码。示例方法在S999处停止。

在一些实施方式中,用于对具有受限几何动态范围的3D网格进行解码的另一示例方法可以包括:接收已编码码流;从已编码码流中提取指示几何补丁是否被分区的第一语法元素,其中几何补丁包括一个或多个分区;对于几何补丁中的分区:从已编码码流获得分区中的点的极值像素值,其中,分区中的点对应于三维网格中的顶点;从已编码码流获得分区中的点的已编码像素值;以及基于极值像素值和已编码像素值确定分区中的点的像素值,其中,像素值对应于三维网格中的顶点的三维坐标。

在一些实施方式中,已编码码流包括以下中的至少一者:已编码的几何图或已编码的元数据。例如,已编码码流可以是图4中的压缩的码流,其可以包括一个或多个压缩的几何图像/图、一个或多个压缩的纹理图像/图、一个或多个压缩的占用图和/或压缩的辅助补丁信息。一些已编码码流可以不具有任何占用图,因为当发信号通知每个补丁的边界顶点时,可以从解码器侧推断占用图信息。在一些实施方式中,几何补丁是对应于已编码的几何图的补丁之一。

在一些实施方式中,当第一语法元素指示几何补丁被分区时,几何补丁可以包括多于一个分区。

在一些实施方式中,当第一语法元素指示几何补丁未被分区时,几何补丁可以包括作为几何补丁本身的单个分区。

在一些实施方式中,每个分区包括u-v平面中的一个或多个点,每个分区在几何补丁被分区时包括多个分区,或者在几何补丁未被分区时包括单个分区。分区中的点对应于三维网格中的顶点;并且分区中的点的已编码像素值与三维网格中的顶点的三维坐标相关。

在一些实施方式中,分区中的点的极值像素值可以是对分区中的已编码像素值的偏移。基于分区中的点的已编码像素值和点的极值像素值,可以获得对应于三维网格中的顶点的三维坐标的分区中的点的像素值。

在一些实施方式中,分区中的点的极值像素值可以是分区中的点的最小像素值或分区中的点的最大像素值。对于非限制性示例,当像素值具有三个通道(例如,RGB)时,最小像素值可以包括每个通道的三个最小值,其中,最小像素值是(r_min,g_min,b_min),r_min是分区中所有点的最小红色通道值,g_min是分区中所有点的最小绿色通道值,且b_min是分区中所有点的最小蓝色通道值。

在一些实施方式中,响应于第一语法元素指示几何补丁未被分区,几何补丁包括单个分区。例如,响应于第一语法元素指示几何补丁未被分区,几何补丁总是包括单个分区。

在一些实施方式中,响应于第一语法元素指示几何补丁被分区,该方法进一步包括:由设备从已编码码流中提取指示几何补丁的分区类型的第二语法元素,以及由设备基于分区类型对几何补丁进行分区以获得多个分区。

在一些实施方式中,对于多个分区中的分区,该示例解码方法可以进一步包括:由设备从已编码码流中提取指示所述分区是否被进一步分区的第三语法元素;和/或响应于第三语法元素指示所述分区被进一步分区,由设备从已编码码流中提取指示所述分区的分区类型的第四语法元素;以及基于所述分区的分区类型对分区进行进一步分区。

在一些实施方式中,响应于第一语法元素指示几何补丁未被分区,几何补丁包括单个分区。

在一些实施方式中,响应于第一语法元素指示几何补丁被分区,该方法进一步包括:由设备从已编码码流中提取指示分区深度的第二语法元素,和/或由设备基于分区深度和预定义的分区类型对几何补丁进行分区以获得多个分区。

在一些实施方式中,分区中的点的极值像素值是最小像素值;并且基于极值像素值和已编码像素值确定分区中的点的像素值包括:分别将最小像素值的分量和已编码像素值中的每一个像素值的分量相加,以获得像素值。

在一些实施方式中,最小像素值包括{x_min,y_min,z_min},并且每个已编码像素值包括{x_coded,y_coded,z_coded};并且每个像素值包括{x,y,z},该{x,y,z}是根据x=x_min+x_coded、y=y_min+y_coded和z=z_min+z_coded确定的,其中,x、y、z、x_min、y_min、z_min、x_coded、y_coded、z_coded是非负整数。

在一些实施方式中,示例解码方法可以进一步包括由设备从已编码码流获得分区中的超限点的超限值。

在一些实施方式中,对于超限点,分别将最小像素值的分量和已编码像素值中的每一个像素值的分量相加,以获得像素值包括:分别将超限值的分量、最小像素值的分量和对应于超限点的已编码像素值的分量相加,以获得超限点的像素值。

在一些实施方式中,对于超限点,对应于超限值的非零分量的已编码像素值的分量等于2N-1,并且N是已编码像素值的比特深度。

在一些实施方式中,分区中的点的极值像素值是最大像素值。

在一些实施方式中,基于极值像素值和已编码像素值确定分区中的点的像素值包括:分别从最大像素值的分量中减去已编码像素值中的每一个像素值的分量,以获得像素值。

在一些实施方式中,最大像素值包括{x_max,y_max,z_max},并且每个已编码像素值包括{x_coded,y_coded,z_coded};并且每个像素值包括{x,y,z},所述{x,y,z}是根据x=x_max-x_coded、y=y_max-y_coded和z=z_max-z_coded确定的,其中,x、y、z、x_max、y_max、z_max、x_coded、y_coded、z_coded是非负整数。

在一些实施方式中,示例性解码方法可以进一步包括由设备从已编码码流获得分区中的超限点的超限值;并且其中,对于超限点,分别从最大像素值的分量中减去已编码像素值中的每一个像素值的分量,以获得像素值包括:分别从最大像素值的分量中减去超限值的分量和已编码像素值中的每一个像素值的分量,以获得像素值。

在一些实施方式中,对于超限点,对应于超限值的非零分量的已编码像素值的分量等于2^N-1,并且N是已编码像素值的比特深度。

在一些实施方式中,获得分区中的点的极值像素值包括:获得对应于分区中的点的极值像素值的极值像素值差;以及基于极值像素值差和第二极值像素值,确定分区中的点的极值像素值。

在一些实施方式中,示例性解码方法可以进一步包括从已编码码流获得第二分区或第二几何补丁的第二极值像素值。

一个或多个实施例或实现中的各个步骤可以单独应用或以任何形式的组合来应用。本公开中的各种实施例可以应用于动态网格或静态网格。在静态网格中,可能只有一个网格帧或网格内容不会随时间变化。本公开中的各种实施例可以扩展到深度图像/属性图像/纹理图像/等的编解码,其中,样本值的动态范围可能超出某一阈值,诸如8比特。

在一些实施方式中,可以对几何图像中的每个图表/补丁进行分区,使得每个分区的动态范围在某个动态范围内,以便通过指定某个比特深度(诸如8比特、10比特等)来对几何图像进行编码。图表/补丁可以用一个或多个预定义模式来进行分区。

对于非限制性示例,参考图10,可以使用四叉树分区对2D几何补丁/图表进行分区。具有任意形状(1011)和边界框(1010)的2D几何补丁/图表。该补丁/图表的动态范围可能超出目标动态范围(例如,8比特)。可以在补丁/图表(1010)的边界框上应用四叉树分区,从而得到分区结构(1020),其中整个补丁/图表具有4个分区。当每个分区的动态范围在目标动态范围(例如,8比特)内时,可以停止分区。例如,当一个分区(或称为子分区)(1021)在目标动态范围内时,可以停止对该分区(1021)进行分区。

当每个分区的动态范围不在目标动态范围内时,补丁/图表可以被进一步分区成更小的块,直到每个分区的动态范围在目标动态范围内(例如,8比特)。例如,示出了包括16个分区(或称为子分区)的两次四叉树分区(1030)。

在一些实施方式中,进一步的分区可以仅应用于不在目标动态范围内的分区,并且进一步的分区可以不应用于在目标动态范围内的分区。

这种递归分区算法可能会收敛,因为每个分区都会减小动态范围。在最坏的情况下,补丁/图表的全部或一部分可以一直向下分区成单个像素(例如,具有1x1大小且包括一个单个像素的最小分区)。

图11示出了一些非限制性示例,包括允许递归分区以形成分区树的预定义分区模式。在一个示例中,可以预定义10路分区结构或模式的一部分或全部。示例性分区结构可以包括各种2:1/1:2(在图11的第三行中)和4:1/1:4(在图11的第一行中)的矩形分区。第二行中指示为1102、1104、1106和1108的具有3个子分区的分区类型可以被称为“T型”分区,分别为左T型、顶T型、右T型和底T型。在一些示例性实施方式中,不允许进一步细分图11的矩形分区中的任何一个。可以进一步定义分区深度以指示来自补丁或图表的分割深度。在一些实施方式中,可以仅允许将1110中的全正方形分区递归分区到分区树的下一级。换句话说,对于T型模式内的正方形分区,可能不允许递归分区。在一些其他示例中,四叉树结构可用于将补丁或补丁的分区进行分区成四叉树分区。这种四叉树分割可以分层地和递归地应用于任何方形分区。

在一些实现中,视频编码/解码中的各种分区结构/方法可适用于对补丁/图表进行分区。

在用于实现网格编解码器的一些实施方式中,一种方法可以包括以下的一部分或全部:首先,需要在已编码码流中发信号通知一些语法元素以支持解码过程;其次,需要改变几何图像,其中,将每个分区中的像素值从该分区中的最小值中减去,使得可以在某个比特深度范围中对图像进行处理/编码。

在一些实现中,每个补丁/图表的语法元素可以包括以下的一部分或全部。

发信号通知二进制标志以指示补丁/图表是否被分区。当二进制标志指示补丁/图表被分区时,发信号通知一些分区标志以指示如何对补丁/图表进行分区。分区可以以各种形式应用,并且与分区相关的语法元素可以相应地改变。例如,可以应用四叉树、二叉树和任何其他形式的对称或非对称分区。还可以应用不同分区结构的一些组合。

对于非限制性示例,参考其中仅应用四叉树的图9,可以发信号通知四叉树分区深度以指示分区模式。

对于另一非限制性示例,分区仅应用于动态范围超过极限的区域,而分区不应用于动态范围在极限内的区域。在这种情况下,可以为每个分区/区域发信号通知一个标志以指示其是否需要进一步的分区,并且当该标志指示其需要进一步的分区时,可以发信号通知另一个标志以指示其分区类型。

在一些实施方式中,可以发信号通知每个分区的最小值,该最小值包括对应于几何图像的最小x、y、z。当补丁/图表未被分区时,可以发信号通知整个补丁的最小值。在这种情况下,整个补丁/图表可以被视为单个分区,并且整个补丁的最小值可以是单个分区的最小值。

在一些实施方式中,一些分区可以是空的(即,内部没有采样点),并且可以跳过空补丁/图表的最小值。例如,图10中的左下分区(或子分区)(1039)是空分区,并且不必发信号通知分区(1039)的最小值。

在一些实施方式中,需要在已编码码流中发信号通知一个补丁/图表中的每个分区的最小值(例如,分别用于几何图像的最小x、y、z)。对于UV平面中每个通道的每个样本值,可以通过从该通道的值中减去同一补丁或分区的发信号通知的最小值来减小其动态范围,同时仍保持更新后的值为非负值。例如,令xm、ym、zm分别是分区中的x、y和z坐标的最小值。对于补丁中的任何像素值(x,y,z),待编码的更新值可以变为(x-xm,y-ym,z-zm)。

在一些实施方式中,当在网格中存在多个补丁时,对于每个补丁,可能存在最小值。为了发信号通知这些值,可以采用预测编解码,其中可以将补丁的最小值用作另一个补丁的预测值。将这种最小值对的差进行编码,从而减少需要被编码到码流中的比特数并提高网格压缩/解压缩效率。

在一些实施方式中,最小值的信令是针对每个定义的区域进行的。2D几何图像被划分成几个非重叠区域。对于每个区域,发信号通知每个通道的最小值。这种最小值的编解码可以通过来自先前已编码值(诸如来自空间相邻区域)的预测编解码来完成。例如,整个图像可以被划分成基于64x64的栅格(grid)。对于每个64x64区域,发信号通知该区域的最小值(x,y,z)。该区域中的所有样本将在编解码前通过减去最小值进行更新。

在一些实施方式中,可以将补丁进一步划分成更小的子补丁。对于每个子补丁,其内的样本值的动态范围在某个动态范围内,因此可以由视频编解码器支持。发信号通知每个通道的偏移值,该偏移值是该子补丁中的样本的通道的最小值。

在一些实施方式中,可以对补丁中的一些隔离的3D点应用特殊的编解码过程,这些点中的一个或多个通道具有超过给定比特深度的动态范围。分别记录和编码这个点在UV平面中的位置以及超限部分。

在一些实施方式中,对于具有超过给定比特深度的动态范围的一个或多个点,原始值可能被给定比特深度的最大可能值代替。例如,当比特深度为8时,原始值可能被255(=2^8-1)代替。对于另一示例,当比特深度为12时,原始值可能被4095(=2^12-1)代替。在一些实施方式中,最终的已解码值可以等于最大值加上超限部分。

对于非限制性示例,xm、ym、zm可以分别表示分区中的x、y和z坐标的最小值;并且允许用于对样本进行编码的比特深度可以是8比特。对于补丁中的点(x1,y1,z1),更新后的值是(x1-xm,y1-ym,z1-zm)。当x1-xm>255(=2^8-1)且y1-ym<=255且z1-zm<=255,并且此点在UV平面中的投影位置为(u1,v1)时,除了针对UV平面中的每个位置以8比特深度进行正常UV平面编解码之外,还将位置(u1,v1)连同额外的超限值信息(x1-xm-255,0,0)一起编码到码流中。在解码器侧,在使用上述方法对几何图像进行解码之后,应当对额外的值(x1-xm-255,0,0)进行解码,并将其添加到位置(u1,v1)处的已解码的3通道值,以恢复该点的真实几何信息。即,(x1-xm-255,0,0)+(255,y1-ym,z1-zm)=(x1-xm,y1-ym,z1-zm)。通过将每个通道(xm,ym,zm)的最小值添加到每个位置的进一步调整可以恢复原始几何形状(x1,y1,z1)。

在一些实施方式中,当整个几何图像的动态范围是已知的,诸如[0,2^m]并且每个补丁的比特深度是n并且m>n时,可以使用常规的m比特视频编解码器用其他常规值,来对该值的较低n比特的动态范围进行编码。该值的几何信息的较高(m-n)比特可以进行单独编码。对于比特深度为8比特的非限制性示例,当整个几何图像的动态范围为14比特时,由于6=14-8,较高比特信息的动态范围可能被限制为6比特范围。

在一些实施方式中,可以使用最大值进行编码/解码,而不是对最小值进行编码/解码。可以在码流中发信号通知一个补丁中的每个分区的最大值(例如,分别用于几何图像的最大x、y、z)。对于UV平面中每个通道的每个样本值,可以通过从该通道的值到同一补丁或分区的发信号通知的最大值的距离来减小其动态范围,同时仍保持更新后的值为非负值。例如,xm、ym、zm分别是分区在3个坐标轴上的最大值。对于补丁中的任何点(x,y,z),待编码的更新值可以变为(xm-x,ym-y,zm-z)。

在一些实施方式中,可以对一些补丁标记最小值,并且可以对一些其他补丁标记最大值。在一些实施方式中,对于单个补丁,可以对补丁中的一些分区标记最小值,并且可以对补丁中的一些其他分区标记最大值。

在一些实施方式中,可以针对每个定义的区域,发送最大值的信令。

在一些实施方式中,可以将补丁进一步划分成更小的子补丁。对于每个子补丁,其内的样本值的动态范围在某个动态范围内,因此可以由视频编解码器支持。发信号通知每个通道的偏移值,并且该偏移值可以是该子补丁中的样本的通道的最大值。

在一些实施方式中,对补丁中的一些隔离的3D点应用特殊的编解码过程,这些点中的一个或多个通道具有超过给定比特深度的动态范围。分别记录和编码这个点在UV平面中的位置以及越限部分,并且同时,原始值可能被给定比特深度的最大可能值代替。

对于非限制性示例,当xm、ym、zm分别是补丁在三个坐标轴上的最大值并且允许对样本进行编码的比特深度是8比特时;并且对于补丁中的点(x1,y1,z1),更新后的值是(xm-x1,ym-y1,zm-z1)。当xm-x1>255且ym-y1<=255且zm-z1<=255且此点在UV平面中的投影位置为(u1,v1)时,除了针对UV平面中的每个位置以8比特深度进行正常UV平面编解码之外,还将位置(u1,v1)连同额外超限值信息(xm-x1-255,0,0)一起编码到码流中。在解码器侧,在使用上述方法对几何图像进行解码之后,可以对额外的值(xm-x1-255,0,0)进行解码,并将其添加到位置(u1,v1)处的已解码的3通道值,以正确地恢复该点的真实几何信息。即,(xm-x1-255,0,0)+(255,ym-y1,zm-z1)=(xm-x1,ym-y1,zm-z1)。通过从到每个位置的每个通道(xm,ym,zm)的最大值减去该额外的值的进一步调整可以恢复原始几何形状(x1,y1,z1)=(xm,ym,zm)-(xm-x1,ym-y1,zm-z1)。

在本公开中,符号“m^n”表示对应于基数m和指数或幂n的取幂运算,即m

本公开中公开的技术可以单独使用或以任何顺序组合使用。此外,这些技术(例如,方法、实施例)、编码器和解码器中的每一者可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。

上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图12示出了计算机系统(1300),其适于实现所公开主题的某些实施例。

所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。

所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。

图12所示的用于计算机系统(1300)的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统(1300)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。

计算机系统(1300)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘(1301)、鼠标(1302)、触控板(1303)、触摸屏(1310)、数据手套(未示出)、操纵杆(1305)、麦克风(1306)、扫描仪(1307)、照相机(1308)。

计算机系统(1300)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(1310)、数据手套(未示出)或操纵杆(1305)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(1309)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(1310),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。

计算机系统(1300)还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)(1320)或类似介质(1321)的光学介质、拇指驱动器(1322)、可移动硬盘驱动器或固体状态驱动器(1323),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。

本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。

计算机系统(1300)还可以包括通往一个或多个通信网络(1354)的接口(1355)。所述网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络的示例可以包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1349)(例如,计算机系统(1300)的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统(1300)的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统(1300)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。

上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统(1300)的核心(1340)。

核心(1340)可包括一个或多个中央处理单元(CPU)(1341)、图形处理单元(GPU)(1342)、以现场可编程门阵列(FPGA)(1343)形式的专用可编程处理单元、用于特定任务的硬件加速器(1344)等。这些设备以及只读存储器(ROM)(1345)、随机存取存储器(1346)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(1347)等可通过系统总线(1348)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1348),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(1348),或通过外围总线(1349)进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。在一个示例中,屏幕(1310)可以与图形适配器(1350)相连接。外围总线的架构包括PCI、USB等。

CPU(1341)、GPU(1342)、FPGA(1343)和加速器(1344)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1345)或RAM(1346)中。过渡数据也可以存储在RAM(1346)中,而永久数据可以存储在例如内部大容量存储器(1347)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个CPU(1341)、GPU(1342)、大容量存储器(1347)、ROM(1345)、RAM(1346)等紧密关联。

所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。

作为实施例而非限制,具有体系结构(1300)的计算机系统,特别是核心(1340),可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(1340)的特定存储器,例如核心内部大容量存储器(1347)或ROM(1345)。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心(1340)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(1340)特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM(1346)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(1344))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。

虽然本申请已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。

相关技术
  • 一种高动态范围红外图像动态范围压缩方法
  • 一种高动态范围红外图像动态范围压缩方法
技术分类

06120116506634