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

占用图精度的自适应选择

文献发布时间:2023-06-19 12:14:58


占用图精度的自适应选择

技术领域

本公开一般涉及处理多媒体数据。更具体地,本公开涉及用于在点云的处理期间对用于占用图的下采样和上采样的占用图精度的自适应的选择的方法和装置。

背景技术

点云是具有属性的三维(3D)点的集合。属性可以包括几何坐标、颜色、法线、纹理坐标、材质属性、运动等。在用于处理点云的基于视频的点云(V-PCC)方法中,对于每个输入点云帧,几何和属性基于一些标准(例如,法线方向、到投影帧的距离、连续性等)被聚类并被投影到不同的平面上(例如xy、yz、zx平面)。聚类中的每个聚类当被投影到它们各自的平面上时,都显示为图块(patch)。图块被分类并被打包到存储点云的几何和纹理信息的2D视频帧中。然后,2D视频帧中的每个2D视频帧用诸如HEVC、AVC、VP9、VP8、JVET、AVC等的视频编解码器编码。图块可以是不规则形状的,因此使用二进制占用图(occupancy map)来指示几何和纹理视频中包含有效点的像素。压缩的视频和压缩的占用图与用于图块创建的一些辅助信息一起复用,以形成输出比特流。输出比特流可以被解码器接收以重建点云。

发明内容

技术方案

本公开的实施例包括用于3D点云的点云压缩的编码设备、编码的方法和解码设备。

在一个实施例中,提供了编码(encoding)设备。编码设备包括被配置为发送比特流的通信接口,以及可操作地连接到通信接口的处理器,该处理器被配置为使得编码设备为三维(3D)点云生成至少几何帧的集合,该几何帧的集合提供3D点云中的点的坐标;生成指示3D点云的点对于编码(coding)是否有效的占用图帧的集合;以及基于与该几何帧的集合中的至少一个生成的几何帧相关联的量化参数(QP)来选择占用精度值,其中当QP小于第一QP阈值时,所选择的占用精度值是第一值,其中当QP在第一QP阈值和第二QP阈值之间时,所选择的占用精度值是高于第一值的第二值,并且其中当QP大于第二阈值时,所选择的占用精度值是高于第二值的第三值。处理器还使得编码设备基于所选择的占用精度值对占用图帧的集合中的至少一个占用图帧进行子采样;将该几何帧的集合和该占用图帧的集合编码成比特流;以及发送该比特流。

在另一实施例中,提供了一种用于3D点云的点云压缩的方法。该方法包括为三维(3D)点云生成至少几何帧的集合,该几何帧的集合提供3D点云中的点的坐标;生成指示3D点云的点对于编码是否有效的占用图帧的集合;以及基于与该几何帧的集合中的至少一个生成的几何帧相关联的量化参数(QP)来选择占用精度值,其中当QP小于第一QP阈值时,所选择的占用精度值是第一值,其中当QP在第一QP阈值和第二QP阈值之间时,所选择的占用精度值是高于第一值的第二值,并且其中当QP大于第二阈值时,所选择的占用精度值是高于第二值的第三值。此外,该方法包括基于所选择的占用精度值对该占用图帧的集合中的至少一个占用图帧进行子采样;将该几何帧的集合和该占用图帧的集合编码成比特流;以及发送该比特流。

在又一实施例中,提供了一种用于解码3D点云的点云压缩的解码设备。解码设备包括被配置为接收比特流的通信接口,以及可操作地连接到通信接口的处理器,该处理器被配置为使解码设备将比特流解码成几何帧的集合,该几何帧的集合提供3D点云中的点的坐标;将比特流解码成指示3D点云的点对于编码是否有效的占用图帧的集合;以及基于与该几何帧的集合中的至少一个解码的几何帧相关联的量化参数(QP)获得占用精度值,其中当QP小于第一QP阈值时,所标识的占用精度值是第一值,其中当QP在第一QP阈值和第二QP阈值之间时,所标识的占用精度值是高于第一值的第二值,以及其中当QP大于第二阈值时,所标识的占用精度值是高于第二值的第三值。处理器还使得解码设备基于所获得的占用精度值对占用图帧的集合中的至少一个占用图帧进行上采样;以及使用该几何帧的集合和该占用图帧的集合生成3D点云。

从以下附图、描述和权利要求,本领域技术人员可以容易地明白其他技术特征。

在进行下面的详细描述之前,阐述贯穿本专利文件使用的某些词语和短语的定义可能是有利的。术语“耦合”和它的衍生词指代两个或更多个元素之间的任何直接或者间接通信,不管那些元素是否彼此物理接触。术语“发送”、“接收”和“通信”及其派生词包括直接和间接通信。术语“包括”和“包含”以及它们的派生词意味着包括但不限于。术语“或”是包含性的,意思是和/或。短语“与……相关联”及其派生词是指包括、被包括在内、与……互连、包含、被包含在内、连接到或与……连接、耦合到或与……耦合、可与……通信、与……协作、交错、并置、接近、结合或与……结合、具有、具有……属性、与……有关系等。术语“控制器”表示控制至少一个操作的任意设备、系统或其部分。这样的控制器可以实施在硬件中,或者实施在硬件和软件和/或固件的组合中。与任何特定控制器相关联的功能可以是集中式的或者分布式的,无论本地地还是远程地。短语“...中的至少一个”当与项目列表一起使用时,意味着所列出的项目中的一个或多个的不同组合可以被使用,并且可能仅需要所述列表中的仅仅一个项目。例如,“A、B和C中的至少一个”包括下列组合中的任意一个:A,B,C,A和B,A和C,B和C,以及A和B和C。同样,术语“集合”意指一个或多个。因此,项目的集合可以是单个项目或两个或更多个项目的集。

此外,下面描述的各种功能可以由一个或多个计算机程序来实施或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指一个或多个计算机程序、软件组件、指令集、程序、功能、对象、类、实例、相关数据或其适于在合适的计算机可读程序代码中实施的部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传播暂时性电信号或其他信号的有线、无线、光学或其他通信链路。非暂时性计算机可读介质包括其中数据可被永久存储的介质和其中数据可被存储并随后被重写的介质,诸如可重写光盘或可擦除存储设备。

贯穿本专利文件提供了其他特定的词和短语的定义。本领域普通技术人员应该理解,在许多情况下,如果不是大多数情况下,这样的定义适用于这样定义的词和短语的先前和将来的使用。

本发明的有利效果

本公开涉及用于在点云的处理期间对用于占用图的下采样和上采样的占用图精度的自适应的选择的方法和装置。

附图说明

为了更完整地理解本公开及其优点,现在结合附图参考以下描述,其中:

图1示出了根据本公开的各种实施例的示例性联网计算系统;

图2示出了根据本公开的各种实施例的示例性服务器;

图3示出了根据本公开的各种实施例的示例性电子设备;

图4示出了根据本公开的实施例的点云和示例性网格(mesh);

图5A示出了根据本公开的各种实施例的示例性3D点云,图5B示出了根据本公开的各种实施例的示例性3D点云的相应2D帧,图5C示出了根据本公开的各种实施例的示例性3D点云的相应2D帧,以及图5D示出了根据本公开的各种实施例的示例性3D点云的相应2D帧;

图6示出了根据本公开的各种实施例的各种占用精度值的失真率曲线;

图7示出了根据本公开的各种实施例的用于编码占用图帧和几何帧的比较比特曲线;

图8示出了根据本公开的各种实施例的示例性编码单元;

图9示出了根据本公开的各种实施例的示例性解码单元;

图10示出了根据本公开的各种实施例的自适应选择占用精度值的过程的流程图;

图11示出了根据本公开的各种实施例的用于自适应选择占用精度值的另一过程的流程图;

图12A示出了根据本公开的各种实施例使用子块指示符处理的占用图,图12B示出了根据本公开的各种实施例使用子块指示符处理的占用图,以及图12C示出了根据本公开的各种实施例使用子块指示符处理的占用图;

图13示出了根据本公开的各种实施例的使用子块指示符生成上采样的占用图的流程图;

图14A示出了根据本公开各实施例的占用图中的有效像素和无效像素,图14B示出了根据本公开各实施例的占用图中的有效像素和无效像素,以及图14C示出了根据本公开各实施例的占用图中的有效像素和无效像素;

图15示出了根据本公开的各种实施例,基于有效像素与无效像素的比较来选择占用精度值的流程图;

图16示出了根据本公开的各种实施例的解码器处的受限的占用图过滤的流程图;

图17示出了根据本公开的各种实施例的用于编码3D点云的过程的流程图;

图18示出了根据本公开的各种实施例的用于解码3D点云的过程的流程图;

图19示出了根据本公开的各种实施例的编码器处的占用图修整(trimming)的流程图;

图20示出了根据本公开的各种实施例的解码器处的占用图修整的流程图;

图21A示出了根据本公开的各种实施例的在基于预定义占用模式的占用图修整中使用的边界块类型,图21B示出了根据本公开的各种实施例的在基于预定义占用模式的占用图修整中使用的边界块类型,图21C示出了根据本公开的各种实施例的在基于预定义占用模式的占用图修整中使用的边界块类型,以及图21D示出了根据本公开的各种实施例的在基于预定义占用模式的占用图修整中使用的边界块类型;

图22示出了根据本公开的各种实施例的基于预定义占用模式在编码器处的占用图修整的流程图;

图23示出了根据本公开的各种实施例的基于预定义占用模式在解码器处的占用图修整的流程图;

图24A示出了根据本公开的各种实施例的示例性预定义占用模式,以及图24B示出了根据本公开的各种实施例的示例性预定义占用模式;

图25A示出了使用来自图24的预定义占用模式的下采样和上采样的占用图,图25B示出了使用来自图24的预定义占用模式的下采样和上采样的占用图,以及图25C示出了使用来自图24的预定义占用模式的下采样和上采样的占用图;

图26A示出了根据本公开的各种实施例的用于边界块的附加预定义占用模式,以及图26B示出了根据本公开的各种实施例的用于边界块的附加预定义占用模式;

图27示出了根据本公开的各种实施例的编码器处的占用图修整的流程图;

图28示出了根据本公开的各种实施例的解码器处的占用图修整的流程图;

图29示出了根据本公开的各种实施例的解码器处的占用图修整的流程图;

图30示出了根据本公开的各种实施例的用于确定占用图的修整的流程图;

图31示出了根据本公开的各种实施例的解码器处的占用图修整的流程图;

图32A示出了根据本公开各实施例的具有基于外角点修整的边界块的占用图,图32B示出了根据本公开各实施例的具有基于外角点修整的边界块的占用图,以及图32C示出了根据本公开各实施例的具有基于外角点修整的边界块的占用图;

图33示出了根据本公开的各种实施例的用于基于外角点标识用于修整的边界块的流程图;

图34示出了根据本公开的各种实施例的基于外角点在解码器处的边界块修整的流程图;

图35示出了根据本公开的各种实施例的使用零阶保持在编码器处的占用图修整的流程图;和

图36示出了根据本公开的各种实施例的使用零阶保持在解码器处的占用图修整的流程图。

具体实施方式

本文包括的图1-36以及用于描述本公开的原理的各种实施例仅仅是示例性的,不应该以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以实施在任何适当地安排的无线通信系统中。

点云表示体积视觉数据。点云由位于3D空间中的多个3D点构成。3D点云中的每个点都包括由三元组(X,Y,Z)坐标值表示的几何位置。当每个点由三个坐标标识时,3D环境或空间中的精确位置被标识。每个点在3D环境或空间中的位置可以相对于原点、点云的其他点或它们的组合。原点是X轴、Y轴和Z轴相交的位置。在一些实施例中,点位于对象的外表面上。在其他实施例中,点位于对象的整个内部结构和外表面。另外,取决于应用,点云中的每个点还可以包括附加属性,诸如颜色(也称为纹理)、反射率、强度、表面法线等。在一些实施例中,3D点云的单个点可以具有多个属性。例如,除了点的几何定位(诸如点在3D空间中的位置)之外,每个点可以包括对应于点的颜色的属性、对应于点的反射性的另一属性,以及诸如强度、表面法线或其任意组合的附加属性。在一些应用中,点云也可以用于近似光场数据,其中每个点包括多个依赖于视图的颜色信息(R,G,B或Y,U,V三元组)。

单个点云可以包含数十亿个点,每个点与几何定位以及一个或多个属性相关联。几何定位和与点相关联的每个附加属性占用一定数量的比特。例如,点云中单个点的几何定位可以消耗30个比特。例如,如果单个点的每个几何定位由X值、Y值和Z值定义,那么每个坐标(X、Y和Z)使用十比特,总计三十比特。类似地,对应于点云颜色的纹理可以消耗24比特。例如,如果基于红色值、绿色值和蓝色值定义单个点的颜色分量,则每个颜色分量(红色、绿色和蓝色)使用八比特,总计二十四比特。因此,每个坐标具有10比特几何属性数据、每个颜色值具有8比特颜色属性数据的单个点占用54比特。每个附加属性都会增加单个点所需的比特数。如果帧包括一百万个点,则每帧的比特数为五千四百万比特(每点五十四比特乘以每帧一百万个点)。如果帧速率为每秒30帧,并且没有经过压缩,则每秒将1.62千兆字节(每秒五千四百万比特乘以每秒30帧)从一个电子设备发送到另一个电子设备,以便第二设备显示点云。因此,由于与单个点云相关联的数据的大小和复杂性,将未压缩的点云从一个电子设备发送到另一个电子设备会使用大量带宽。结果,点云在传输之前被压缩。

由于点云包含大量数据,所以它们需要压缩以进行高效的存储和传输。为了能够使用现有的硬件,点云压缩(PCC)编解码器可以基于将3D坐标和属性投影(映射)到2D视频帧(图像)来操作,然后使用现有的视频编解码器(诸如HEVC或AVC)来压缩2D视频帧(图像)。特别地,3D坐标可以被映射到几何帧的集合中,并且属性可以被映射到属性帧的集合中。

当生成2D帧时,还会生成占用图。如本文所使用的,术语“占用图”可以与“占用图帧”互换使用。通常,对于相应2D帧(例如,几何帧和/或属性帧)内的每个像素,占用图指示该像素是有效像素还是无效像素。例如,如果占用图中坐标(u,v)处的像素有效,则坐标(u,v)处的几何帧和相应属性帧中的相应像素也有效。如果占用图中坐标(u,v)处的像素无效,则解码器跳过坐标(u,v)处的几何和/或纹理帧中的相应像素。在某些实施例中,当占用图是二进制占用图时,定位(u,v)处的占用值可以是1或0。通常占用图是二进制的,因此每个像素的值不是1就是0。在非限制性实施例中,当占用图的定位(u,v)处的像素值为1时,指示属性帧和几何帧的定位(u,v)处的像素有效。相比之下,当占用图的定位(u,v)处的像素值为零时,指示属性帧和几何帧的定位(u,v)处的像素无效。

为了减少开销,MPEG V-PCC允许在编码前在编码器中以等于占用精度值的因子对占用图进行子采样。占用精度值是确定对占用图进行编码所需的比特数的采样因子。如本文所使用的,“占用精度”是可以与“占用精度值”或“占用精度的值”互换使用的语法元素。占用精度的值越低,导致占用图的比特数越多,分辨率越高。占用精度值的越高,导致占用图的比特数越少,分辨率越低。在解码器中,占用图基于占用精度值被上采样回原始分辨率并被使用。通常使用默认的占用精度值4(即占用图在水平和垂直方向两者上以因子4进行子采样)。一般来说,占用精度=4会降低比特率,但会对失真(质量)产生负面影响,因为在解码器中,伪点会被引入重建的点云中。同样,占用精度=2将具有比占用精度=4更高的比特率,但失真更小,因为平均引入的伪点更少。

在MPEG-V-PCC参考软件中,任何点云的占位精度的值都是经由用户输入从外部设置的。对于某些点云压缩场景,占用精度的默认值和用户定义的占用精度值可能不够。本公开的实施例认识到前述缺陷,并提供了用于编码占用图的占用精度值的自适应选择的系统和方法。

图1示出了根据本公开的各种实施例的示例性联网计算系统。通信系统100包括促进通信系统100中各种组件之间通信的网络102。例如,网络102可以在网络地址之间传送IP分组、帧中继帧、异步传递模式(ATM)信元或其他信息。网络102包括一个或多个局域网(LAN)、城域网(MAN)、广域网(WAN)、诸如因特网的全球网络的全部或一部分、或在一个或多个位置的一个或多个任何其他通信系统。

在该示例中,网络102促进服务器104和各种客户端设备106-116之间的通信。客户端设备106-116可以是例如智能电话、平板计算机、膝上型计算机、个人计算机、可穿戴设备、头戴式显示器等。服务器104可以表示一个或多个服务器。每个服务器104包括能够为一个或多个客户端设备(诸如客户端设备106-116)提供计算服务的任何合适的计算或处理设备。每个服务器104可以例如包括一个或多个处理设备、存储指令和数据的一个或多个存储器、以及促进通过网络102进行的通信的一个或多个网络接口。如下文更详细描述的,服务器104可以将表示点云的压缩比特流发送到一个或多个显示设备,诸如客户端设备106-116。在某些实施例中,每个服务器104可以包括用于处理3D点云的编码器和/或解码器。

每个客户端设备106-116表示通过网络102与至少一个服务器(诸如服务器104)或其他计算设备交互的任何合适的计算或处理设备。客户端设备106-116包括台式计算机106、移动电话或移动设备108(诸如智能电话)、PDA110、膝上型计算机112、平板计算机114和头戴式显示器116。然而,在通信系统100中可以使用任何其他或附加的客户端设备。智能电话表示一类移动设备108,它们是具有移动操作系统和用于语音、短消息服务(SMS)和互联网数据通信的集成移动宽带蜂窝网络连接的手持设备。在某些实施例中,客户端设备106-116中的任何一个可以包括编码器、解码器或两者。例如,移动设备108可以记录视频,然后编码该视频,使得该视频能够被发送到客户端设备106-116之一。在另一个示例中,膝上型计算机112可以用于生成虚拟3D点云,然后该点云被编码并发送到客户端设备106-116之一。

在该示例中,一些客户端设备108-116与网络102间接通信。例如,移动设备108和PDA 110经由一个或多个基站118(诸如蜂窝基站或eNodeB(eNB))通信。此外,膝上型计算机112、平板计算机114和头戴式显示器116经由一个或多个无线接入点120(诸如IEEE 802.11无线接入点)通信。注意,这些仅用于说明,并且每个客户端设备106-116可以直接与网络102通信,或者经由任何合适的中间设备或网络间接与网络102通信。在某些实施例中,服务器104或任何客户端设备106-116可用于压缩点云,生成表示点云的比特流,并将比特流发送到另一客户端设备,诸如任何客户端设备106-116。

在某些实施例中,任何客户端设备都可以安全且高效地将信息发送到另一设备,诸如服务器104。此外,客户端设备106-116中的任何一个可以触发其自身和服务器104之间的信息传输。

在某些实施例中,客户端设备106-116或服务器104中的任何一个可以创建3D点云、压缩3D点云、发送3D点云、接收3D点云、渲染3D点云或其组合。例如,服务器104接收3D点云,分解3D点云以适合2D帧,并压缩帧以生成比特流。比特流可以被发送到存储设备,诸如信息库,或者客户端设备106-116中的一个或多个。对于另一个示例,客户端设备106-116之一可以接收3D点云,分解3D点云以适合2D帧,压缩帧以生成比特流,该比特流可以被发送到存储设备,诸如信息库、客户端设备106-116中的另一个,或被发送到服务器104。

虽然图1示出了通信系统100的一个示例,但是可以对图1做出各种改变。例如,通信系统100可以在任何合适的布置中包括任何数量的每个组件。一般来说,计算和通信系统有多种配置,并且图1不将本公开的范围限制到任何特定的配置。虽然图1示出了可以使用本专利文件中公开的各种特征的一种操作环境,但是这些特征可以用于任何其他合适的系统。

图2示出了根据本公开的各种实施例的示例性服务器。服务器200可以表示图1中的服务器104。服务器200可以表示一个或多个编码器、解码器、本地服务器、远程服务器、集群计算机以及充当无缝资源的单个池、基于云的服务器等的组件。服务器200可以被图1的一个或多个客户端设备106-116或另一个服务器访问。

服务器200包括支持至少一个处理设备(诸如处理器210)、至少一个存储设备215、至少一个通信接口220和至少一个输入/输出(I/O)单元225之间的通信的总线系统205。

处理器210执行可以存储在存储器230中的指令。处理器210可以包括任何合适数量和类型的处理器或任何合适布置的其他设备。处理器210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立(discrete)电路。在某些实施例中,处理器210可以执行指令以使编码单元800根据以下附图中更详细讨论的各种实施例,对存储在存储设备215内的3D点云进行编码。例如,编码单元800可以基于预定标准自适应地选择占用精度值,以减少发送3D点云的编码比特流所需的开销。

存储器230和永久存储装置235是存储设备215的示例,存储设备215表示能够存储和促进检索信息(诸如数据、程序代码或其他基于临时或永久的合适信息)的任何结构。存储器230可以表示随机存取存储器或任何其他合适的易失性或非易失性存储设备。例如,存储在存储器230中的指令可以包括用于将点云分解成图块的指令、用于在2D帧上打包图块的指令、用于压缩2D帧的指令、用于确定对占用图的集合进行子采样的占用精度值的指令、以及用于编码2D帧以生成比特流的指令。永久存储装置235可以包含支持更长期数据存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。

通信接口220支持与其他系统或设备的通信。例如,通信接口220可以包括网络接口卡或无线收发器,以促进通过图1的网络102进行通信。通信接口220可以支持通过任何合适的物理或无线通信链路的通信。例如,通信接口220可以将包含3D点云的比特流发送到另一个设备,诸如客户端设备106、116之一。

I/O单元225允许数据的输入和输出。例如,I/O单元225可以通过键盘、鼠标、小键盘、触摸屏或其他合适的输入设备为用户输入提供连接。I/O单元225还可以向显示器、打印机或其他合适的输出设备发送输出。然而,注意,可以省略I/O单元225,诸如当经由网络连接发生与服务器200的I/O交互时。

注意,虽然图2被描述为表示图1的服务器104,但是相同或相似的结构可以用于各种客户端设备106-116中的一个或多个。例如,台式计算机106或膝上型计算机112可以具有与图2所示相同或相似的结构。

图3示出了根据本公开的各种实施例的示例性电子设备。电子设备300可以表示图1中的客户端设备106-116中的一个或多个。电子设备300可以是移动通信设备,诸如,例如移动站、订户站、无线终端、台式计算机(类似于图1的台式计算机106)、便携式电子设备(类似于图1的移动设备108、PDA110、膝上型计算机112、平板计算机114或头戴式显示器116)等。在某些实施例中,图1的客户端设备106-116中的一个或多个可以包括与电子设备300相同或相似的配置。在某些实施例中,电子设备300可以是编码设备、解码器设备或两者。例如,电子设备300可用于数据传递、图像或视频压缩、图像或视频解压缩、编码、解码和媒体渲染应用。

如图3中所示,电子设备300包括天线305、射频(RF)收发器310、发送(TX)处理电路315、麦克风320、和接收(RX)处理电路325。RF收发器310可以包括例如RF收发器、BLUETOOTH收发器、WI FI收发器、ZIGBEE收发器、红外收发器和各种其他无线通信信号。电子设备300还包括扬声器330、处理器340、输入/输出(I/O)接口(IF)345、输入350、显示器360、存储器365、和传感器365。存储器360包括操作系统(OS)361和一个或多个应用362。

RF收发器310从天线305接收从接入点(诸如基站、WI FI路由器或BLUETOOTH设备)或网络102的其他设备(诸如WI-FI、BLUETOOTH、蜂窝、5G、LTE、LTE-A、WiMAX或任何其他类型的无线网络)发送的传入RF信号。RF收发器310对传入RF信号进行下变频以产生中频或基带信号。所述中频或者基带信号被传送到RX处理电路325,RX处理电路通过对所述基带或者中频信号进行滤波、解码、和/或数字化以生成处理后的基带信号。RX处理电路325将处理后的基带信号发送到扬声器330(诸如对于语音数据)或发送到处理器340以进行进一步处理(诸如对于网络浏览数据)。

TX处理电路315从麦克风320接收模拟或数字语音数据,或者从处理器340接收其他传出基带数据。传出基带数据可以包括网络数据、电子邮件或交互式视频游戏数据。TX处理电路315对传出基带数据进行编码、复用和/或数字化,以生成处理后的基带或中频信号。RF收发器310从TX处理电路315接收传出的处理后的基带或中频信号,并将基带或中频信号上变频为经由天线305发送的RF信号。

处理器340可以包括一个或多个处理器或其他处理设备。处理器340可以执行存储在存储器360中的指令,诸如OS 361,以便控制电子设备300的整体操作。例如,处理器340能够根据熟知的原理,通过RF收发器310、RX处理电路225、和TX处理电路315来控制正向信道信号的接收和反向信道信号的发送。处理器340可以包括任何合适数量和类型的处理器或任何合适布置的其他设备。例如,在某些实施例中,处理器340包括至少一个微处理器或微控制器。处理器340的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立电路。

处理器340还能够执行驻留在存储器360中的其他进程和程序,诸如接收和存储数据的操作。处理器340可以根据执行进程的需要将数据移入或移出存储器360。在一些实施例中,处理器340被配置为基于OS 361或响应于从外部源或操作者接收的信号来执行一个或多个应用362。示例性应用362可以包括编码器应用、解码器应用、VR或AR应用、相机应用(用于静止图像和视频)、视频电话呼叫应用、电子邮件客户端、社交媒体客户端、SMS消息客户端、虚拟助理等。在某些实施例中,处理器340被配置为接收和发送媒体内容。

处理器340还耦合到I/O接口345,I/O接口345向电子设备300提供连接到诸如客户端设备106-114的其他设备的能力。I/O接口345是这些附件和处理器340之间的通信路径。

处理器340还耦合到输入350和显示器355。电子设备300的操作者可以使用输入350向电子设备300键入数据或输入。输入350可以是键盘、触摸屏、鼠标、轨迹球、语音输入或能够充当用户界面以允许用户与电子设备300交互的其他设备。例如,输入350可以包括语音识别处理,从而允许用户输入语音命令。在另一个示例中,输入350可以包括触摸板、(数字)笔传感器、键或超声波输入设备。触摸面板可以识别例如以至少一种方案进行的触摸输入,诸如电容方案、压敏方案、红外方案或超声波方案。通过向处理器340提供附加输入,输入350可以与传感器365和/或相机相关联。在某些实施例中,传感器365包括一个或多个惯性测量单元(IMU)(诸如加速度计、陀螺仪和磁力计)、运动传感器、光学传感器、相机、压力传感器、心率传感器、高度计等。输入350还可以包括控制电路。在电容方案中,输入350可以识别触摸或接近。

显示器355可以是液晶显示器(LCD)、发光二极管(LED)显示器、有机LED(OLED)、有源矩阵OLED(AMOLED)或能够渲染诸如来自网站、视频、游戏、图像等的文本和/或图形的其他显示器。显示器355的尺寸可以适合头戴式显示器。显示器355可以是单个显示屏或能够产生立体显示的多个显示屏。在某些实施例中,显示器355是平视显示器(HUD)。显示器355可以显示3D对象,诸如3D点云。

存储器360耦合到处理器340。存储器360的一部分可以包括RAM,并且存储器360的另一部分可以包括闪存或其他ROM。存储器360可以包括永久存储(未示出),其表示能够存储和促进检索信息(诸如数据、程序代码和/或其他合适的信息)的任何结构。存储器360可以包含支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。存储器360还可以包含媒体内容。媒体内容可以包括各种类型的媒体,诸如图像、视频、三维内容、VR内容、AR内容、3D点云等。

电子设备300还包括一个或多个传感器365,其可以计量物理量或检测电子设备300的激活状态,并将计量或检测的信息转换成电信号。例如,传感器365可以包括用于触摸输入的一个或多个按钮、相机、手势传感器、IMU传感器(诸如陀螺仪或陀螺仪传感器和加速度计)、眼睛跟踪传感器、气压传感器、磁传感器或磁力计、抓握传感器、接近传感器、颜色传感器、生物物理传感器、温度/湿度传感器、照明传感器、紫外线(UV)传感器、肌电图(EMG)传感器、脑电图(EEG)传感器、心电图(ECG)传感器、IR传感器、超声波传感器、虹膜传感器、指纹传感器、颜色传感器(诸如红绿蓝(RGB)传感器)等。传感器365还可以包括控制电路,用于控制其中包括的任何传感器。

如下文将更详细讨论的,在一些说明性实施例中,电子设备300可以接收编码/压缩比特流。电子设备300的解码单元900可以将接收的比特流解码/解压缩成多个2D帧。在某些实施例中,解码后的比特流还包括占用图,解码单元900可以使用根据本文公开的各种实施例自适应选择的所选择的占用精度值来对该占用图进行上采样。

多个2D帧可以包括指示坐标(诸如点云的每个点的地理位置)的帧的集合。例如,帧可以包括图形描绘,诸如以2D表示的点云的每个几何点的一个或多个图块。帧的另一集合可以包括与每个点相关联的纹理(即,或其他属性),诸如每个点的颜色。电子设备300的解码单元900随后可以以三维重建和渲染点云。

在一些实施例中,电子设备300可以类似于服务器200,并且编码点云。电子设备300可以生成表示点云的几何和纹理的多个2D帧。点云可以被映射到一个或多个2D帧。例如,帧的一个集合可以包括在图块中描绘的几何点。在另一个示例中,帧的另一集合可以包括点云的纹理或颜色或两者。在某些实施例中,表示2D帧上的点云的数据可以是结构化的、半结构化的或非结构化的。

尽管图2和3示出了电子设备的示例,但是可以对图2和3进行各种改变。例如,图2和图3中的各种组件可以组合、进一步细分或省略,并且可以根据特定需要添加额外的组件。作为特定示例,处理器340可以被划分为多个处理器,诸如一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)。此外,如同计算和通信一样,电子设备和服务器可以有多种配置,并且图2和3不将本公开限制于任何特定的电子设备或服务器。

图4示出了根据本公开的实施例的点云405和示例网格410。点云405描绘了点云的图示。点云是在3D空间中可视地定义对象的数字化数据。如图所示,点云405包括多个点,每个点表示对象的外部坐标(即地理位置),类似于地形图。此外,每个点可以包括一个或多个属性,诸如颜色、强度、纹理、运动、材料属性等。

类似地,网格410描绘了3D网格的图示。网格410是在3D空间中可视地定义对象的数字化数据。网格410的图形描绘由各点之间的信息的许多多边形或三角形互连来定义。每个多边形可以包括各种信息,诸如在3D空间中定义每个顶点的几何位置的几何信息。此外,每个多边形可以包括诸如颜色反射率、运动等的属性。例如,拓扑数据提供顶点之间的连通性信息,如顶点、边和面的邻接。属性信息为每个单独的顶点提供法线、颜色和应用相关的信息。每个多边形的顶点类似于点云405中的点。网格410的每个多边形表示对象的外表面。

点云(诸如点云405)和网格(诸如网格410)利用相当大的带宽从一个计算设备发送到另一个计算设备。压缩对于降低存储和带宽要求是必要的。例如,有损压缩可以在减小数据的大小的同时压缩点云和网格,同时将失真保持在可容忍的水平。

图5示出了根据本公开的各种实施例的对应于表示3D点云的2D帧的示例性3D点云。特别地,图5A示出了3D点云510。3D点云510是3D空间中的数据点的集合。3D点云510的每个点至少包括几何位置和可选的一个或多个属性,这些属性提供关于每个点的信息,诸如颜色、反射率、材料等。

图5B、5C和5D各自示出了包括多个图块的2D帧。特别地,图5B描绘了几何帧520,图5C描绘了属性帧530,图5D描绘了占用图帧540。几何帧520包括表示3D点云510的点的几何定位的信息。在该说明性示例中,属性帧530包括至少表示与3D点云510的点相关联的颜色的信息。其他属性也可以在属性帧530中表示。占用图帧540包括指示在占用图帧中的各个定位处的几何帧和/或属性帧中包括的像素是否表示3D点云的点的信息。重申一遍,占用图帧指示几何帧和属性帧的集合中的3D点云的点对于编码是否有效。

几何帧520包括表示3D点云510的深度值的多个图块(诸如图块522)。属性帧530包括表示属性(诸如3D点云510的颜色)的多个图块(诸如图块532)。属性帧530中的每个颜色像素对应于几何帧520中的特定几何像素。可以在几何帧520和属性帧530中的每个像素之间生成映射。

占用图帧540中的图块标识点云510的哪些点对于编码是有效的。例如,黑色像素为无效,而白色像素为有效。对于无损压缩,占用图帧540中的图块直接对应于几何帧520和属性帧530中的类似图块。然而,在本文公开的一些实施例中,提供了有损压缩,在这种情况下,占用图帧540中的图块与几何帧520和属性帧530中的图块略有不同,并且将像素排除在编码/解码过程之外。

图6示出了根据本公开的各种实施例的各种占用精度值的失真率曲线。特别地,曲线图600示出了由QP值控制的不同比特率上的失真率曲线。曲线图600的y轴是峰值信噪比,并且是质量的度量。曲线图600的x轴是比特率。曲线602表示占用精度=4。曲线604表示占用精度=2。曲线606表示占用精度=1。曲线图600示出,当考虑组合的失真率性能时,占用精度=4在更低比特率下比占用精度=2表现更好,其中占用精度=1和2在更高比特率下表现更好。

在解码器处,经子采样的占用图被上采样回到原始分辨率,导致无效像素(即,不在原始点云中的点),这些无效像素可以使用几何平滑过滤来过滤掉,以实现良好的重建质量。如表1和表2的比较所示,与占用精度值=2时相比,当占用精度值=4时,无效像素的比例更高,表1和表2描绘了下采样和上采样后各种对象的3D点云帧的有效和无效像素。因此,希望使用更低的占用精度值来获得更好的重建质量。

表1.占用精度值=2。

【表1】

表2.占用精度值=4。

【表2】

可能希望使用更低的占用精度值来减少无效像素的数量并提高质量。然而,编码占用图所需的比特数随着占用精度值的下降而上升,如表3所示。

表3.编码占用图所需的比特数。

【表3】

图7示出了根据本公开的各种实施例的用于编码占用图帧和几何帧的比较比特曲线。当占用图被无损编码时,编码占用图所需的比特保持不变,与比特率无关。曲线702表示占用精度=4。曲线704表示占用精度=2。曲线706表示占用精度=1。曲线708表示代表性的几何帧。

从图700中可以看出,更小的占用精度值以用于编码占用图的比特率增加为代价来提供更好的质量。用于占用图的比特可以是用于编码几何的总比特(占用图比特+几何视频比特)的重要部分。在增加的比特和提高的质量之间存在权衡。

除了改善速率失真性能之外,所公开的方法将改善高比特率下重建的点云的视觉质量。由于更小的占用精度值将导致更少数量的伪点,即使不对几何进行平滑,重建点云的视觉质量也会提高。占用精度值的自适应选择可用于平衡重建的3D点云的质量及其相应的比特率。

图8示出了根据本公开的各种实施例的示例性编码单元。编码器800可以结合到服务器中,诸如图2中的服务器200,或者结合到一个或多个电子设备中,诸如图3中的电子设备300。编码器800示出了对点云进行编码和压缩以进行传输的电子设备的本公开的实施例的高级概述。在某些实施例中,编码器800打包点云,以便通过比特流传输到一个或多个解码器,诸如图9中的解码器900。

通常,编码器800可以压缩、编码和发送点云、网格或两者作为编码比特流。在某些实施例中,编码器800生成多个2D帧,诸如分别在图5B和5C中的几何帧520和属性帧530,其中点云或网格被映射或投影到其上。在某些实施例中,编码器800生成占用图(诸如图5D中的占用图540),该占用图指示当点云被映射到2D帧上时,点云的每个像素位于何处。例如,占用图指示每个帧的有效点和无效点。无效点是帧中不对应于点云的点的位置,而有效点是帧中对应于3D点云中的点的位置。在某些实施例中,编码器800是网络服务器、诸如管理服务器的服务器计算机或能够将点云的三维映射成二维、压缩帧并编码图像以供传输的任何其他电子计算系统。在某些实施例中,编码器800可以是通过一个或多个网络互连的计算机的“云”,其中每个都是利用集群计算机和组件以在通过图1的网络102被访问时充当无缝资源的单个池的计算系统。

编码器800被配置为接收表示点云的输入点云帧802,诸如图5A中的点云510。点云可以存储在与编码器800相关联的存储器中,诸如图2中的存储设备230。图块生成器804将点云帧802分解成多个图块。可以基于几何和属性来组织图块。几何是点云的每个点的地理位置,并且属性表示点云的每个点的各个方面,诸如颜色、强度、法线、反射率等。图块生成器804对几何属性和纹理属性进行聚类。聚类可以基于诸如法线方向、到投影帧的距离、邻近度等的标准。每个生成的集群被表示为图块,如图5所示。

在某些实施例中,图块生成器804经由一对一映射将点云的点投影并映射到2D帧上。在某些实施例中,图块生成器804经由将点投影到不同的平面上,来将点云的点投影并映射到2D帧(例如,几何帧808和属性帧810)上。在某些实施例中,将点云的点投影和映射到2D帧上可以基于光栅扫描映射、基于X几何坐标的映射、基于Y几何坐标的映射、基于Z几何坐标的映射、基于颜色的映射、基于法线方向的映射等。

在某些实施例中,在将点云的点投影和映射到2D帧上之后,可以在2D帧中对点进行分类和打包,以提高编码效率。打包单元612对图块内的点进行分类和打包。打包单元806还将图块分类并打包到一个或多个几何帧808和一个或多个属性帧810中。在某些实施例中,打包单元806创建一个或多个几何帧808和一个或多个属性帧810。

在一些实施例中,打包单元806可以创建占用图812。占用图指示包含被投影或映射到各个帧上的点云的有效点的帧(诸如一个或多个几何帧808和一个或多个属性帧810)中的像素位置。例如,占用图812指示每个帧(诸如一个或多个几何帧808和一个或多个属性帧810)上的每个像素是有效像素还是空白。占用图上的有效像素指示2D帧上对应于点云中的3D点的像素。在某些实施例中,对于每个帧,诸如一个或多个几何帧808和一个或多个属性帧810,占用图812可以是相同的。在某些实施例中,占用图812表示多个占用图,其中每个占用图对应于一个帧(诸如一个或多个几何帧808和一个或多个属性帧810)。占用图812可以包括在另一个帧中,类似于一个或多个几何帧808或一个或多个属性帧810的帧。在某些实施例中,占用图812可以作为元数据作为单独的比特流来发送。

图块生成器804还生成辅助图块信息814。辅助图块信息814是与每个生成的图块相关联的信息。在某些实施例中,辅助图块信息814是关于图块的元数据。例如,每个图块将辅助信息与之相关联,所述辅助信息诸如(i)空间定位偏移,(ii)深度偏移,(iii)图块在视频帧中的位置,(iv)图块的大小(诸如图块的高度和宽度),(v)投影平面的索引,等等。解码器(诸如图9中的解码器900)使用辅助图块信息814来重建点云。为了减少开销,辅助图块信息814可以在传输之前由辅助图块信息压缩单元824压缩。

可以将2D帧(例如,几何帧808、属性帧810和占用图帧)发送到图像填充单元816,以使用图像填充算法来填充经投影的图块之间的未填充区域,从而减少经投影的视频帧中锐边的数量,这降低了压缩比特率。

一个或多个几何帧808由压缩单元818使用常规2D编解码器(诸如高效视频编码(HEVC)或高级视频编码(AVC))压缩。为了编码包括颜色属性的属性帧,首先解码几何帧的集合以重建3D坐标。然后,使用平滑单元820平滑重建的几何坐标,并且从输入坐标的颜色值内插它们的颜色值。然后,生成的颜色被打包成属性帧的集合810。

为了减少开销,占用图子采样器822使用在下面的各种实施例中描述的方法对占用图帧的集合812进行子采样。经子采样的占用图帧的集合也可以被称为低分辨率占用图帧。

经子采样的占用图帧的集合830、压缩的几何帧826、压缩的属性帧828和压缩的辅助图块信息832可以经由复用器834被复用,以创建可以被发送到解码器(诸如图9中的解码器900)的单个比特流836。

图9示出了根据本公开的各种实施例的示例性解码单元。解码单元900可以结合到电子设备中,诸如图3中的电子设备300,或者结合到一个或多个服务器中,诸如图2中的服务器200。

解码单元900被配置为解码/解压缩编码比特流,诸如包括点云、网格或两者的表示的编码比特流836。在某些实施例中,解码单元900从包括多个2D帧的接收比特流生成多个点云。例如,可以基于在2D帧中接收的信息和接收的占用图来映射点云的每个点。

一旦接收到编码比特流836,解复用器902将编码比特流836分离成压缩的几何帧826、压缩的属性帧828、低分辨率占用图帧830和压缩的辅助图块信息832。

压缩的几何帧826和压缩的属性帧828由视频解压缩单元904解压缩,以分别生成几何926和颜色928的2D视频帧。压缩的辅助图块信息832由辅助路径解压缩单元910解压缩,以形成解压缩的辅助图块信息932。如本文所使用的,解压缩可以与解码互换使用。

占用图上采样器906对低分辨率占用图帧的集合830进行上采样,以形成上采样的占用图帧930,该上采样的占用图帧930可以与解压缩的辅助图块信息932一起传递到几何重建单元908。上采样的占用图帧的集合930指示2D帧内的有效像素位置,以重建3D点云。

几何重建单元908基于从解复用器902和/或视频解压缩单元904接收的数据重建几何帧数据。从解压缩的辅助图块信息单元910中检索常规图块的位置和尺寸。例如,通过将图块偏移(来自解压缩的辅助图块信息932)添加到视频中的点的空间位置,并将图块的深度偏移添加到该空间位置处的像素值,来从常规图块重建点。

几何重建单元908可以将重建的几何帧数据发送到平滑单元912,然后发送到属性重建单元,用于与解压缩的属性帧928中的信息相结合来重建3D点云。

图10示出了根据本公开的各种实施例的自适应选择占用图精度的过程的流程图。流程图1000中描述的操作可以在编码器中实施,诸如图8中的编码器800。编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

在本发明的一个实施例中,基于用于量化几何视频帧的量化参数,自动选择占用精度。流程图1000从操作1002开始,做出关于QP是否小于QPTHRESH1地确定。如果QP不小于QPTHRESH1,则在操作1004中做出关于QP是否小于QPTHRESH2的另一确定。如果QP不小于QPTHRESH2,则在操作1006中选择占用精度4。在操作1008中,基于所选择的占用精度对占用图帧进行子采样,并且该过程终止。

返回到操作1002,如果QP小于QPTHRESH1,则在操作1010中选择占用精度1,并且流程图前进到操作1008,在操作1008中,在过程终止之前,基于所选择的占用精度对占用图帧进行子采样。

在操作1004,如果QP小于QPTHRESH2,则在操作1012选择占用精度为2,并且流程图前进到操作1008,在操作1008,在过程终止之前,基于所选择的占用精度对占用图帧进行子采样。

图11示出了根据本公开的各种实施例的用于选择可变占用精度值的另一过程的流程图。流程图1100可以在编码器中实施,诸如图8中的编码器800。编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

在根据该实施例的过程中,定义了以下变量:

B

B

R=B

R

R

R

V=占用精度=4时的无效像素百分比;和

V

V确定了占用精度=4时几何的质量。可以将V与预定义的阈值V

在一个实施例中,比率R与R

回到图11,流程图1100从操作1102开始,做出关于V是否小于V

在操作1108中,做出关于R是否小于R

在本文公开的实施例的一个或多个变型中,可以使用多个阈值来决定其他占用精度值;可基于用于量化几何、纹理和辅助视频的量化参数自动选择占用精度;可以基于由几何、纹理和占用图所消耗的比特来自动选择占用精度;可以基于图块数量自动选择占用精度;可以基于图块边界像素的数量自动选择占用精度;并且可以基于在解码器中对低分辨率占用图进行上采样之后创建的无效像素的数量来选择占用精度。

图12示出了根据本公开的各种实施例使用子块指示符处理的占用图。该实施例将对占用图的内部块使用更大的占用精度值以提高编码效率,而对外部块使用更小的占用精度值。由于将对外部块使用更小的占用精度值,因此几乎不需要几何平滑。这导致解码器中复杂度和存储器使用的显著降低。

在图12中的说明性示例中,占用精度被设置为更高的值,诸如2或4,但是对于接近图块边界的部分填充的4×4块可以使用更小的占用精度值(例如,2或1)。2×2像素的子块的占用值被添加到低分辨率占用图中,并在解码器处被用于修整图块界附近的占用图。外部块的顺序也将被用信号通知给解码器,以确定相应的子块占用值。可替代地,代替如图12中的扩展低分辨率占用图,子块占用值可以使用SEI消息或其他机制用信号通知给解码器。

图12A描绘了具有图块1202的占用图1200a,图块1202具有4×4边界块1204、1206和1208。边界块1204和1208是部分填充的边界块,并且边界块1206是完全填充的边界块。图12B描绘了占用图1200b,其可以通过以占用精度2对占用图1200a进行下采样然后上采样来获得。然而,根据该实施例,编码器可以创建占用图帧,其包括对于内部块使用高占用精度值(诸如4)和对于外部块使用更低占用精度值的占用图1200b。可以使用符合标准的视频编码器(如HEVC/AVC等)对该占用图帧进行编码。然后,标识占用图中的外部4×4块(例如,块1204、1206和1208)。一种方法是,如果任何相邻的4×4块(上、下、左或右)未被占用,则当前的4×4块被分类为外部块。然后,对于每个外部4×4块,每个2×2子块(例如,子块1204a、1204b和1208a)的占用信息可以被编码为图块帧比特流中的侧信息(side information),或者可替换地编码为SEI消息。外部4×4块以解码器已知的预定顺序被扫描(例如光栅扫描)。这个过程可以针对另一个级别继续进行,其中确定外部2×2块,并且对于每个外部2×2块,发送针对每个像素定位的占用信息。可替换地,初始占用图视频可以用占用精度值2来创建。

图12C是以占用精度4的下采样的占用图1200,如果原始占用图中的对应块包括有效像素,则块的值为1,或者如果原始占用图中的对应块不包括有效像素,则为0。例如,占用图1200c中的块1204、1206和1208包括1,因为占用图1200a中的块1204、1206和1208包括有效像素。下采样的占用图1200c还包括附加在末端的与图12B中的2×2子块相对应的子块指示符1204a’、1204b’和1208a’。因此,解码器可以使用下采样的占用图1200c来创建上采样的占用图1200b,其中内部块或完全填充的外部块的占用精度值为4,以及部分填充的外部块的占用精度值为2。

在解码器处,符合标准的低分辨率占用图比特流(例如,占用精度值为4)被解码。基于解码的2D占用图帧,外部块(在这种情况下为4×4)被确定为在编码器中。最后,对于每个外部块,从比特流(图块帧比特流或SEI消息)中解析子块占用图(在这种情况下为2×2),以确定属于外部4×4块的像素的占用信息。可以重复该过程来标识外部2×2块,并解码每个外部块的像素级别(1×1级别)占用图。相应的流程图在图13中有更详细的描述。

图13示出了根据本公开的各种实施例的使用子块指示符生成上采样的占用图的流程图。流程图1300中描述的操作可以在解码器中实施,诸如图9中的解码单元900。解码单元可以包括在电子设备中,诸如图3中的电子设备300,或者包括在服务器中,诸如图2中的服务器200。

流程图1300从操作1302开始,从编码比特流解码低分辨率占用图。在操作1304中,以因子4对低分辨率占用图进行上采样。在操作1306中,标识外部4×4边界块,并且对于外部4×4边界块中的每个,以2×2级别解码子块占用图。

在V-PCC中,可以使用基于标准的视频编码器(如HEVC或AVC)对占用图进行编码。一些较新的标准,如通用视频编码(VVC)和开放媒体编解码器联盟(AV-1),支持同一视频序列中具有不同分辨率的帧。该特征可以结合上述可替代实施例来利用。

例如,上述可替代实施例可用于确定每个帧的适当占用精度。然后,编码器可以生成适当分辨率的占用图帧。例如,如果最佳占位精度被确定为2,则占位图帧的大小将等于(asps_frame_width/2)×(asps_frame_height/2)。为了生成分辨率降低的占用图帧,如果在全分辨率占用帧处的空间上对应的2×2子块具有至少一个非零值,则特定定位的占用图值被设置为1。以这种方式生成的占用图视频使用允许具有不同分辨率的帧的视频编码器(如VVC或AV-1)进行压缩。V-PCC解码器解码占用图视频,并且如有必要,使用像素复制对每个占用图帧进行上采样,以获得大小为asps_frame_width x asps_frame_height的占用图帧。该实施例的优点在于,关于要使用的适当占用精度的决定可以适配于每个帧。

图14示出了根据本公开的各种实施例在占用图的编码期间生成的有效像素和无效像素。图14A描绘了具有跨越4×4块1404、1406和1408的多个像素1402的全分辨率占用图1400。图14B描绘了通过以占用精度4对全分辨率占用图1400进行下采样而获得的低分辨率占用图1410(即,下采样占用图)。低分辨率占用图1410在分别对应于块1404、1406和1408的位置中的块1414、1416和1418中包括值1。值0被填到低分辨率占用图1410的剩余块中,以指示缺少有效像素。

图14C描绘了通过以占用精度4对低分辨率占用图1410行上采样而生成的上采样的占用图1420。结果,块1424、1426和1428被完全像素化。上采样的占用图1420和原始占用图1400的比较显示了图14A中的多个像素1410是在解码器处被认为是有效像素的无效像素。

在图14的该说明性实施例中,占用精度选择基于无效像素与有效像素数量的比率。如果无效像素与有效像素数量的比率小于阈值,则占用精度可设置为4。否则,可以选择更小的占用精度值。在下面的图中示出了该实施例的相应流程图。

图15示出了根据本公开的各种实施例,基于无效像素与无效像素的比率来选择占用精度值的流程图。流程图1500中描述的操作可以在编码器中实施,诸如图8中的编码器800。编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图1500从操作1502开始,选择占用精度值。在操作1504中,使用所选择的占用精度对原始占用图进行下采样。在操作1506中,使用所选择的占用精度对下采样的占用图进行上采样,并且在操作1508中计算无效像素与有效像素的比率。

在操作1510中,做出关于计算的比率是否小于预定的像素比率的确定。如果计算的比率小于预定的像素比率,则在操作1512中保持所选择的占用精度。否则,如果计算的比率大于预定的像素比率,则流程图1500返回到操作1502以选择另一个占用精度值。

在另一个实施例中,上采样的占用图将被过滤以去除无效像素。过滤将被限制为仅过滤出无效像素并保留有效像素。由于对于占用精度值1,在上采样的占用图中没有无效像素,因此不对上采样的占用图执行过滤。图16显示了在解码器处的基于占用精度值的受限占用图过滤流程图。然而,在可替代实施例中,可以在编码器处做出决定,并将其发信号通知给解码器。

图16示出了根据本公开的各种实施例的解码器处的受限占用图过滤的流程图。流程图1600的操作可以在解码器中实施,诸如图9中的解码器900。解码器可以包括在电子设备中,诸如图3中的电子设备300,或者图3中的服务器200。

流程图1600在操作1602开始,接收下采样的占用图。在操作1604中,接收占用精度值。在操作1606中,做出关于占用精度值是否等于1的确定。如果在操作1604中接收的占用精度值不等于1,则在操作1608中,使用接收的占用精度值对接收的占用图进行上采样。此后,在操作1610中,上采样的占用图经受受限的过滤。

返回到操作1606,如果确定占用精度值等于1,则流程图1600前进到操作1612,其中使用占用精度值1对接收的占用图进行上采样。如前所述,上采样的占用图不经受进一步过滤。

图17示出了根据本公开的各种实施例的用于编码3D点云的过程的流程图。流程图1700的操作可以在编码器中实施,诸如图8中的编码单元800。另外,编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图1700从操作1702开始,生成至少几何帧的集合,该几何帧的集合提供3D点云中的点的坐标。在操作1704中,生成占用图帧的集合,其指示该几何帧的集合中的3D点云的点对于编码是否有效。在一些实施例中,还可以生成几何帧的集合和/或图集帧的集合。

在操作1706中,基于与该几何帧的集合中的至少一个生成的几何帧相关联的量化参数(QP),选择占用精度值。在至少一个实施例中,当QP小于第一QP阈值时,所选择的占用精度值是第一值;当QP在第一QP阈值和第二QP阈值之间时,所选择的占用精度值是高于第一值的第二值;以及当QP大于第二阈值时,所选择的占用精度值是高于第二值的第三值。例如,第一值可以是1,第二值可以是2,以及第三值可以是4。

在操作1708中,基于所选择的占用精度值,对该占用图帧的集合中的至少一个占用图帧进行子采样。在一些实施例中,可以使用不同的占用精度值对占用图帧进行子采样。例如,至少一个占用图帧的内部块可以用更高的占用精度值(例如,2或4)进行子采样,并且当占用图帧的外部块被部分填充时,它们可以用更低的占用精度值(例如,1或2)进行子采样。

此后,至少该几何帧的集合和该占用图帧的集合被编码成比特流。如其他说明性实施例所讨论的,编码的比特流还可以包括属性帧的集合、图集帧的集合和辅助图块信息。在操作1712,发送编码的比特流。

在一些实施例中,该方法包括在已被子采样的至少一个占用图帧中发送一个或多个子块占用指示符的另一步骤。可替换地,一个或多个子块占用指示符可以在补充增强信息(SEI)消息中发送。

在其他实施例中,该占用图帧的集合中的不同占用图帧可以用不同的占用精度值进行子采样。因此,图17中的过程可以包括确定不同于所选择的占用精度值的另一占用精度值,并且用另一占用精度值对该占用图帧的集合中的另一占用图帧进行子采样。

在一些其他实施例中,占用精度值可以基于最高占用精度值处的无效像素的百分比以及至少一个占用图帧的比特与对应于至少一个几何帧的至少一个几何帧的比特的比率来确定或修改。

图18示出了根据本公开的各种实施例的用于解码3D点云的过程的流程图。流程图1800的操作可以在解码器中实施,诸如图9中的解码单元900。另外,解码器可以包括在电子设备中,诸如图3中的电子设备300,或者包括在服务器中,诸如图2中的服务器200。

流程图1800在操作1802开始,接收比特流。在操作1804,比特流被解码成几何帧的集合。在操作1806,比特流也被解码成占用图帧的集合。

在操作1808中,基于与该几何帧的集合中的至少一个解码的几何帧相关联的量化参数(QP),获得占用精度值。在至少一个实施例中,当QP小于第一QP阈值时,所获得的占用精度值是第一值;当QP在第一QP阈值和第二QP阈值之间时,所获得的占用精度值是高于第一值的第二值;以及当QP大于第二阈值时,所获得的占用精度值是高于第二值的第三值。例如,第一值可以是1,第二值可以是2,以及第三值可以是4。

在操作1810中,基于所获得的占用精度值对该占用图帧的集合中的至少一个占用图帧进行上采样。在一些实施例中,可以使用不同的占用精度值对占用图帧进行上采样。例如,可以用更高的占用精度值(例如,2或4)对至少一个占用图帧的内部块进行上采样,并且当外部块被部分填充时,可以基于一个或多个子块占用指示符,用更低的占用精度值(例如,1或2)对占用图帧的外部块进行上采样。在一些实施例中,子块占用指示符在至少一个占用图帧中获得。在其他实施例中,一个或多个子块占用指示符可以从补充增强信息(SEI)消息中获得。

在操作1812中,使用几何帧的集合和占用图帧的集合生成3D点云。

在其中占用图帧的集合包括以不同占用精度值子采样的至少另一个占用图帧的一些实施例中,该方法还包括获得不同于所选择的占用精度值的另一个占用精度值以及用所述另一个占用精度值对另一个占用图帧进行上采样的步骤。

受限的修整

全分辨率占用图的扩展通常发生在NxN点的块与空块相邻的边界块处。最近,引入了一些技术来在解码器处过滤上采样的占用图,并从占用图中修整无效点。虽然这些方法成功地修整了许多无效点,但它们也删除了一些有效点。这对重建点云的视觉质量有不利影响。本公开的一些实施例涉及避免移除有效点的受限的占用图修整。代替使用二进制占用图(即取0或1的值),使用m进制占用图,并且占用图的值根据高分辨率占用图中边界块的占用模式来定义。一些实施例允许更积极的占用图修整,其从占用图移除有限数量的有效点,同时移除更多无效点。以下部分描述了占用图的受限的修整的各种实施例。

在根据受限的占用图修整的一种方法中,将在编码器处决定是否以及如何修整每个块中的占用图。这个决定可以通过各种方式传达给解码器。用于向解码器传送该决定的一些示例性机制包括:在补充增强信息(SEI)中发送该决定;向解码器发送用于每个块的特定数字,以指示是否以及如何修整块;向解码器发送二进制图或m进制图,以指示哪些块将被修整;通过改变视频样本的值(例如,占用图值等)来将决定嵌入到各种视频中或将其作为单独的图块添加到视频中;以及将该决定包括在图块数据单元中。此外,可以在帧级别用信号通知用于指示关于对于每个图块的占用图修整的决定的比特的数量,以消除对占用图解码的解析依赖性。

在第一实施例中,对于任何占用图修整技术(例如,基于预定义占用模式的技术、基于上采样/过滤的技术等),将在编码器处确定原始高分辨率占用图中的块的任何(有效)点是否将在修整该块时被移除。如果当块被修整时,块中的有效点将被移除,则该块将被排除在修整之外,并且该决定将被传送到解码器。图19和图20分别是第一实施例的编码器和解码器的流程图。

图19示出了根据本公开的各种实施例的编码器处的占用图修整的流程图。流程图1900中描述的操作可以在编码器中实施,诸如图8中的编码器800。编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图1900从操作1902开始,标识占用图中的边界块。在操作1904中,做出关于原始占用图中的边界块中的点是否被修整的确定。如果原始占用图的边界块中的点不被修整,则在操作1906中允许修整,并且该决定被传达到解码器。然而,如果在操作1904中做出原始占用图中的边界块中的有效点被修整的确定,则在操作1908中不允许修整,并且该决定被传达到解码器。

图20示出了根据本公开的各种实施例的解码器处的占用图修整的流程图。流程图2000中描述的操作可以在解码器中实施,诸如图9中的解码单元900。解码单元可以包括在电子设备中,诸如图3中的电子设备300,或者包括在服务器中,诸如图2中的服务器200。

流程图2000开始于操作2002,标识上采样的占用图中的边界块,然后在操作2004中做出关于是否允许修整占用图的确定。如果不允许修整占用图,则在操作2006中不修整边界块。然而,如果允许修整占用图,则在操作2008中修整边界块。

在受限的修整的另一个实施例中,标识其中块的至少一侧与空块或属于上采样的占用图中的另一个图块的块相邻的NxN点(例如,N=4)的边界块。

对于每种类型的边界块,如图21所示,原始高分辨率占用图中的最可能的占用模式被找到,并且在原始占用图中,如果边界块的未占用部分覆盖预定义占用模式的未占用部分,则低分辨率占用图中的块的占用值被设置为指示该块可以被修整的值,例如占用值=1。如果块在对应于预定义占用模式的未占用部分的区域中包含任何有效像素,则低分辨率占用图中的块的占用值被设置为指示边界块不能被修整的值,例如,占用值=2。

图21示出了根据本公开的各种实施例的基于预定义占用模式的占用图修整中使用的边界块类型。图21A描绘了边界块2100a,其仅一侧与空块或属于另一图块的块相邻。图21B描绘了边界块2100b,其仅两个平行侧与空块或属于另一图块的块相邻。图21C描绘了边界块2102c,其仅两个交叉侧与空块或属于另一图块的块相邻。图21D描绘了边界块2102d,其三个侧与空块或属于另一图块的块相邻。

图22示出了根据本公开的各种实施例的基于预定义占用模式在编码器处的占用图修整的流程图。流程图2200中描述的操作可以在编码器中实施,诸如图8中的编码器800。编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图2200在操作2202开始,标识边界块。在操作2204中,从图21所示的四种类型之一中标识边界块类型。在操作2206中,做出关于边界块的未占用部分是否大于或等于在操作2208中获得的预定义占用模式的未占用部分的确定。如果边界块的未占用部分不大于或等于预定义占用模式的未占用部分,则在操作2210中,边界块的占用值被设置为不允许修整的值。如果边界块的未占用部分大于或等于预定义占用模式的未占用部分,则在操作2212中,边界块的占用值被设置为允许修整的值。

请注意,为边界块定义的占用模式越多,占用图文件的大小就越大,因为占用图中的值将是多个值,而不是二进制值。因此,在从上采样的占用图中移除扩展点和m进制占用图文件的大小之间存在权衡。否则,目标分数会降低。

如果为任何类型的边界块定义了多个预定义的占用模式,则占用模式将基于某些标准来选择,例如,选择移除更高数量的无效像素、引入最少数量的伪点的模式等。

每种类型的边界块的占用模式的集合可以在不同的级别定义,即图块级别、帧级别或序列级别。如果占用模式是在更低级别(即图块级别)定义的,则可以以要发送到解码器的更多元数据为代价来执行对占用图的更精确的修整。

图23示出了根据本公开的各种实施例的基于预定义占用模式在解码器处的占用图修整的流程图。流程图2300中描述的操作可以在解码器中实施,诸如图9中的解码单元900。解码单元可以包括在电子设备中,诸如图3中的电子设备300,或者包括在服务器中,诸如图2中的服务器200。

流程图2300从操作2302开始,标识上采样的占用图中的边界块。在操作2304中从图21所示的四种类型之一中标识边界块类型。在操作2306中,做出关于所标识的边界块的占用值是否对应于在操作2308中获得的预定义占用模式值的确定。如果所标识的边界块的占用值不对应于预定义占用块的值,则在操作2310中不修整边界块。否则,如果所标识的边界块的占用值确实对应于预定义占用块的值,则在操作2312中修整边界块。

在非限制性实施例中,占用值1允许修整,而占用值2不允许修整。因此,在解码器处,如果边界块的占用值等于1,则根据该占用模式移除上采样的占用图的相应边界块中的点。否则,如果占用值等于2,则上采样的占用图的相应边界块的任何点都不会被移除。

图24示出了根据本公开的各种实施例的示例性预定义占用模式。特别地,图24A描绘了对应于图21C所示的边界块的边界块的预定义占用模式2402a。图24B描绘了对应于图21D所示边界块的边界块的预定义占用模式2402b。

三进制占用图可以在[0,2]的范围内定义。在该示例中,边界块2402a和2402b是原始高分辨率占用图的最可能的占用模式。对于边界块,如果预定义占用模式的未占用部分中的所有点都未被填充,则块的占用值被设置为1,否则占用值被指定为2。在解码器处,如果边界块的占用值等于1,则根据预定义占用模式修整上采样的占用图,否则不会从上采样的占用模式修整任何点。图25示出了使用图24中所示的边界块的预定义占用模式的全分辨率占用模式以及由此产生的下采样和上采样的占用图的示例。

图25示出了使用图24中的预定义占用模式的下采样和上采样的占用图。编码器,例如图8中的编码器800,可以生成图25a中的原始全分辨率占用图2500a和图25B中的下采样的占用图2500b。解码器,例如图9中的解码器900,可以从图24中所示的预定义占用模式生成图25c中的上采样的占用图2500c。

在图25的这个示例中,编码器标识占用图2500a中的边界块2502a和2502b,并生成三进制下采样的占用图2500b,其在每个块中包括0、1或2的值。占用值为0指示原始占用图中没有像素。占用值1指示与预定义占用模式相关,以及值2指示与预定义占用模式不相关。解码器然后可以修整边界块2502a和2502b,以分别匹配图24中的预定义占用模式2402a和2402b。图25C显示了修整后的占用图2500c。

图24中所示的预定义边界块是边界块的两个非限制性示例。图26示出了根据本公开的各种实施例的边界块的两个附加的预定义占用模式。特别地,图26A描绘了包括对应于图21C中的边界块类型2102c的预定义占用模式2602a的占用图2600a。图26B描绘了包括对应于图21D中的边界块类型21D的预定义占用模式2602b的占用图2600b。

在先前的受限的修整实施例中,没有修整来自原始高分辨率占用图的点。结果,由于许多边界块不能被修整,所以在上采样的占用图中的许多扩展点将被保留。在另一个实施例中,可以修整原始高分辨率占用图中的几个点(例如,NxN点的块中的1个或2个原始点)。例如,在该实施例中,如果原始占用图中的边界块的未占用部分覆盖预定义占用模式之一的对应的未占用部分,或者相差预定义的点数,例如1或2点,则下采样的占用图中的块的占用值,即低分辨率占用模式,可以被设置为对应于该占用模式的值。否则,占用值可以设置为指示边界块不能被修整的预定义值。

这将导致在上采样的占用图中移除许多不想要的点。本实施例中解码器的操作将根据图23中流程图2300的操作进行。该实施例中编码器的操作将根据下面图27中更详细讨论的流程图的操作进行。

图27示出了根据本公开的各种实施例的编码器处的占用图修整的流程图。流程图2700的操作可以由编码器执行,诸如图8中的编码器800。

流程图2700在操作2702开始,标识边界块。在操作2704中,标识边界块类型。在操作2706中,做出关于如下的确定:从操作2708获得的预定义占用模式的未占用部分是否与边界块中的对应像素匹配,或者相差小于某个占用阈值。如果预定义占用模式的未占用部分与边界块中的对应像素不匹配或者相差不小于某个占用阈值,则流程图2700前进到操作2710,在操作2710中,边界块的占用值被设置为预定义值,并且不允许修整。否则,流程图2700前进到操作2712,在操作2712中,边界块的占用值被设置为预定义值,并且允许修整。

在另一个实施例中,每个块边界被分成4个2×2点的子块。可以确定每个子块的占用(例如,1:被占用,0:空)。结果,边界块的占用情况由四比特指定。这四个比特可以被转换成十进制值,并被用作下采样的占用模式中边界块的占用值。可替换地,这四个比特可以通过包括对占用图视频的扩展等的其他机制发送到解码器。作为该实施例的替代,边界块的占用情况可以在像素级别被表征,对于NxN个像素的块,这将需要NxN比特来这样做。

在另一个实施例中,可以通过考虑左上、左下、右上和右下相邻块的占用情况来标识其他类型的边界块。总共将使用8个相邻块(即左、右、上、下、左上、左下、右上和右下相邻块)来标识边界块的类型。

在另一个实施例中,为了减小m进制占用图视频的大小(与二进制占用图相比),占用图视频将以有损模式压缩。这将导致一些边界块的占用图的值发生变化,因此将在一些边界块上执行一些不想要的修整。如果占用图以高比特率压缩,有损压缩可能不会导致视觉质量的显著下降,同时改善目标分数。

在另一个实施例中,可以通过在水平方向和垂直方向两者上以因子4对低分辨率占用图进行上采样(对于占用分辨率=4),对上采样的占用图应用2D滤波,并在滤波后的占用图中修整任何小于预定义阈值的值,来修整上采样的占用图。

对于上述实施例,m进制占用图仍可用于标识边界块的占用模式。仅占用模式的未填充部分中的像素允许被修整(如果该值小于阈值),否则占用模式的填充部分中的像素将不被修整。该实施例中编码器的操作将根据图22中的流程图2200进行。该实施例中解码器的操作将根据下面图28中描述的流程图进行。

图28示出了根据本公开的各种实施例的使用2D过滤在解码器处修整占用图的流程图。流程图2800中描述的操作可以在电子设备的解码器中实施,诸如图8中的解码单元800。解码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图2800从操作2802开始,以对应于在编码器处为占用图选择的占用精度值的因子对低分辨率占用图进行上采样。在该说明性实施例中,低分辨率占用图以因子4来上采样。在操作2806中,将2D过滤应用于上采样的占用图,并且在操作2804中标识边界块。

在操作2808,做出关于如下的确定:边界块的占用值是否等于从操作2810获得的预定义占用模式值。如果边界块的占用值不等于预定义的占用模式值,则流程图2800前进到操作2812,在操作2812,不允许对边界块进行修整。否则,流程图2800前进到操作2814,在操作2814中,如果像素的值小于阈值,则基于占用模式来修整边界块。

在另一个实施例中,可以根据图28中流程图2800的操作,在解码器处修整上采样的占用图。但是,高分辨率占用图中的一些原始像素将被允许修整。在标识边界块的占用模式的过程中,如果在原始占用图中,边界块的被占用部分匹配先前定义的占用模式之一或者相差预定义数量的点(例如,1或2点),则下采样的占用图中的边界块(即,低分辨率占用模式)的占用值可以被设置为对应于该占用模式的值。在解码器处,如果边界块已经被标识为预定义占用模式,则如果像素值小于阈值,则占用模式的未填充部分中的像素可以被修整。该实施例的编码器可以遵循图27的流程图2700中描述的操作,并且该实施例的解码器可以遵循图28的流程图2800中描述的操作。

在另一个实施例中,如图27中的流程图2700所述,可以在编码器中标识边界块的占用模式,但是在解码器中,如果对应于预定义占用模式的未填充部分的像素的值小于预定义阈值(例如,threshold_u),则可以对该像素进行修整。如果对应于占用模式的填充部分的像素的值小于预定义的阈值(例如,threshold_f),则该像素也可以被修整。threshold_f的值将比threshold_u大得多,以限制占用模式的填充部分的被修整像素的数量。图29示出了该实施例的解码器的操作。

图29示出了根据本公开的各种实施例的使用上阈值和下阈值在解码器处修整占用图的流程图。流程图2900的操作可以由解码器执行,诸如图8中的解码单元800。

流程图2900从操作2902开始,以对应于在编码器处为占用图选择的占用精度值的因子对低分辨率占用图进行上采样。在该说明性实施例中,低分辨率占用图以因子4来上采样。在操作2904中标识边界块,并且在操作2906中将2D过滤应用于上采样的占用图。

在操作2908中,做出关于如下的确定:边界块的占用值是否等于从操作2910获得的预定义占用模式值。如果边界块的占用值不等于预定义的占用模式值,则流程图2900前进到操作2912,在操作2912,不允许对边界块进行修整。否则,流程图2900从操作2908前进到操作2914,以进行如下操作:如果该值小于Threshold_U,则基于占用模式的未填充部分修整边界块的像素,或者如果该值小于Threshold_F,则基于占用模式的填充部分修整边界块的填充部分

在另一个实施例中,没有为边界块定义占用模式。在编码器处,在任何边界块中,如果只有扩展像素的值小于预定义阈值,则下采样的占用图(即低分辨率占用图)中的边界块的占用值将被设置为特定值(例如1)。该占用值意味着可以在解码器处修整该边界块。否则,如果来自原始高分辨率占用图的任何像素的值低于阈值,则将不对块执行修整,并且下采样的占用图(即,低分辨率占用图)中的边界块的占用值将被设置为另一特定值(例如,2)。图30是该实施例的编码器的流程图,以及图31是该实施例的解码器的流程图。

图30示出了根据本公开的各种实施例的用于确定占用图的修整的流程图。流程图3000的操作可以由编码器执行,诸如图2中的服务器200中的编码单元700。

流程图3000从操作3002开始,以对应于在编码器处为占用图选择的占用精度值的因子对低分辨率占用图进行上采样。在该说明性实施例中,低分辨率占用图以因子4来上采样。在操作3004中,将2D过滤应用于上采样的占用图。在操作3006中做出关于如下的确定:边界块中任何有效点的值是否小于阈值。如果边界块中的任何有效点的值不小于阈值,则流程图3000前进到操作3008,在操作3008中,边界块的占用值被设置为指示允许修整的预定义值。否则,流程图3000前进到操作3010,在操作3010,边界块的占用值被设置为不允许修整的预定义值。

图31示出了根据本公开的各种实施例的用于在解码器处修整占用图的流程图。流程图3100的操作可以由解码器来执行,诸如图3中的电子设备300中的解码单元800。

流程图3100从操作3102开始,以对应于在编码器处为占用图选择的占用精度值的因子对低分辨率占用图进行上采样。在该说明性实施例中,低分辨率占用图以因子4来上采样。在操作3104中,标识边界块,并且在操作3106中,做出关于如下的确定:基于分配给边界块的占用值是否允许修整。如果基于占用值不允许修整,则流程图3100前进到操作3106,在操作3106,不允许对边界块进行修整。如果基于占用值允许修整,则流程图3100前进到操作3108,在操作3108中,修整边界块以移除具有小于阈值的值的像素。

在另一个实施例中,占用图以有损方式压缩。占用图修整将被禁用,因为占用值将与阈值进行比较并被修整。可替换地,如果占用图修整被启用,则有损占用图阈值不被发信号通知并且被推断为0。以下是上述操作的语法:

if(lossy_occupancy_map_flag){

occupancy_map_trimming_flag=0

}

else{

occupancy_map_trimming_flag=1

}

替代实施方式的语法如下:

if(occupancy_map_trimming_flag){

lossy_occupancy_map_threshold=0

}

else{

lossy_occupancy_map_flag=1

}

图32示出了根据本公开的各种实施例的具有基于外角点修整的边界块的占用图帧。占用图3200包括图块3202,白色区域表示占用/有效像素,以及周围的黑色像素表示未占用/无效像素。占用图3200的区域3200a被更详细地示出,其中外角点3204被标识。

对于外角点3204,其水平端3206b是通过向右侧或左侧前进找到的,其垂直端3206a是根据如图32A所示的外角点的位置向顶侧或底侧前进找到的。如图32C所示,水平端和垂直端被链接以构造斜线3208,并且斜线之外,即斜线3208和未占用像素之间的像素的占用值将被设置为指示像素未被占用的值。在非限制性实施例中,该值为零。另外,在精度B0=4的情况下,从外角点3204到水平端3206n的距离不超过B0个像素。

对于该实施例,在编码器处,只有当斜线3008之外的浅色像素都没有在原始高分辨率占用图中被占用时,边界块(即,4×4像素)才可以被标识为可修整的。否则,将不允许对块进行修整,并且下采样的占用图(即,低分辨率占用图)中的边界块的占用值将被设置为另一特定值(例如,2)。图33和34分别是这个实施例的编码器和解码器的操作流程图。

图33示出了根据本公开的各种实施例的基于外角点在编码器处修整边界块的流程图。流程图3300的操作可以由编码器执行,诸如图8中的编码单元800。编码器可以包括在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图3300在操作3302开始,标识占用图中的外角点。在操作3304中,外角点的水平端和垂直端用斜线链接。此后,在操作3306中做出关于的确定:斜线之外的像素是否在原始占用图中被占用。如果斜线之外的像素在原始占用图中没有被占用,则流程图3300前进到操作3308,并且边界块的占用值被设置为允许修整的预定义值。如果斜线之外的像素在原始占用图中被占用,则流程图3300前进到操作3310,并且边界块的占用值被设置为不允许修整的预定义值。

图34示出了根据本公开的各种实施例的基于外角点在解码器处修整边界块的流程图。流程图3400的操作可以由解码器执行,诸如图9中的解码单元900。解码器可以包括在电子设备中,诸如图3中的电子设备300,或者包括在服务器中,诸如图2中的服务器200。

流程图3400从操作3402开始,标识上采样的占用图中的外角点。在操作3404中,外角点的水平端和垂直端用斜线链接。在操作3406中,做出关于是否允许修整占用图的确定。如果不允许修整占用图,则流程图3400前进到操作3408,并且不对边界块执行修整。然而,如果允许修整占用图,则流程图3400前进到操作3410,并且修整斜线之外的点。

在另一个实施例中,占用图修整可以使用零阶保持来执行。图35描述了编码器的操作,以及图36描述了解码器的操作。

图35示出了根据本公开的各种实施例的使用零阶保持在编码器处的占用图修整的流程图。流程图3500的操作可以由编码器执行诸如图8中的编码单元800。编码器可以被实施在服务器中,诸如图2中的服务器200,或者电子设备中,诸如图3中的电子设备300。

流程图3500开始于操作3502,以因子N对占用图进行下采样。在操作3504中,占用图被上采样,然后在操作3506中做出关于在NxN边界块中是否任何有效样本被丢弃的确定。如果有效样本被丢弃,则流程图3500前进到操作3508,在操作3508中,使用零阶保持来生成上采样的边界块。在操作3510中,边界块的占用值被设置为不允许修整的预定义值。

在操作3506,如果做出在NxN边界块中没有有效样本被丢弃的确定,则流程图3500前进到操作3512,在操作3512,保留上采样的块,并且该块的占用值被设置为允许修整的预定义值。

图36示出了根据本公开的各种实施例的使用零阶保持在解码器处的占用图修整的流程图。流程图3600的操作可以由解码器来执行,诸如图3中的电子设备300中的解码单元800。

流程图3600开始于操作3602,接收低分辨率占用图。在操作3604,做出关于低分辨率占用图的边界块是否允许修整的确定。如果不允许修整,则流程图3600前进到操作3606,在操作3606中,使用零阶保持生成上采样的块。如果在操作3604允许修整,则流程图3600前进到操作3608,在操作3608中,使用所选择的上采样技术生成上采样的边界块。

在本文公开的一个或多个实施例中,占用图信令可以通过使用标志来实现。例如,可以使用标志来发信号通知占用图是否可以在解码器侧被修整。该标志可以设置为1,以指示在某些条件下,占用图可以在解码器侧进行修整。该标志可以处于不同的级别(即序列和帧级别)。这样的标志可以被命名为占用图修整启用标志(occupancyMapTrimmingEnabledFlag)。

另一个标志可以用于发信号通知上面实施例中描述的受限的占用图修整是否与任何其他占用图修整/滤波技术相结合。例如,此标志的值为1指示占用图修整/滤波受到限制,因此不会(或很少)丢弃原始占用图中的有效点。它还指示占用图值控制是否对相应的N×N块应用修整/滤波。在这种情况下,对于一些块,可以应用占用图修整/滤波,而对于其他块,N×N块中的所有占用图值被设置为更低分辨率处的相应占用图值。此标志可以处于序列级别和帧级别,并且可以命名为受限的占用图修整启用标志(constraineedoccupancymaprimmingenabledflag)。

在一些实施例中,如果constraineedoccupancyMapTrimmingEnabledFlag为1,则occupancyMapTrimmingEnabledFlag也为1。可替换地,可以有条件地发信号通知constrainedOccupancyMapTrimmingEnabledFlag标志。也就是说,仅当occupancyMapTrimmingEnabledFlag为1时,它才会被发信号通知。

在替代实施例中,单个标志控制受限的占用图修整。如果这样的标志是1,则取决于相应的占用图的值,占用图修整/滤波可以应用于N×N块。如果该标志为0,则不使用占用图修整/滤波。

尽管已经利用示例性实施例描述了本公开,但是可以向本领域技术人员建议各种改变和修改。期望的是本公开包含落入所附权利要求的范围内的这样的改变和修改。

相关技术
  • 占用图精度的自适应选择
  • 一种基于自适应运动矢量精度的运动矢量精度快速选择方法及装置
技术分类

06120113224440