CN112771850A - 使用3d辅助数据的运动估计 - Google Patents
使用3d辅助数据的运动估计 Download PDFInfo
- Publication number
- CN112771850A CN112771850A CN201980063719.0A CN201980063719A CN112771850A CN 112771850 A CN112771850 A CN 112771850A CN 201980063719 A CN201980063719 A CN 201980063719A CN 112771850 A CN112771850 A CN 112771850A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- data
- patch
- frame
- dimensional
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Generation (AREA)
Abstract
用于执行运动估计的方法、系统、以及装置,包括编码在计算机存储介质上的计算机程序。在一些实施方式中,一种方法包括基于点云数据的连续性数据生成点云数据的分割部分。分割的点云数据的表示被投影到三维边界框的侧面上。基于分割的点云数据的投影表示生成patch。生成patch的第一帧。使用第一帧和参考帧生成第一辅助信息和第二辅助信息。基于第一辅助信息和第二辅助信息识别第一帧中与参考帧中的patch匹配的patch。基于第一辅助信息和第二辅助信息之间的差生成第一patch和第二patch之间的运动矢量候选。使用运动矢量候选执行运动补偿。
Description
相关申请的交叉引用
本申请要求于2018年10月2日提交的申请号为No.62/740,237的美国临时专利申请以及于2019年6月19日提交的申请号为62/863,362的美国临时专利申请的优先权,其全部内容以引入的方式并入本文。
背景技术
点云处理已经成为诸如娱乐业、智能汽车导航、地理空间探查、现实世界对象的三维(three dimensional,3-D)建模、以及环境可视化之类的各种应用的重要组成部分。
发明内容
在一些实施方式中,说明书描述了用于使用三维和二维辅助数据执行运动估计的技术。执行运动估计是为了编码和发送三维点云数据。三维点云数据包括勾勒或视觉表示三维对象(例如人或真实世界物品)的外表面的数据点。三维点云数据还可以包括指示三维点云数据的颜色、纹理、和深度的属性信息。编码器或解码器可以使用运动修正数据分别对三维点云数据进行编码或解码。
在一些实施方式中,编码器或解码器使用三维边界框来包围三维点云数据,并接着生成用于编码和传输的patch。编码器可以将三维点云数据的图像投影到三维边界框的每个侧面上。编码器可以将图像或patch分组成帧以用于编码。为了减少通常用于发送三维点云数据的带宽量(这通常较大),编码器可以替代地通过将来自当前生成的帧的patch与先前生成的帧的patch进行比较,从而生成运动修正数据。编码器可以在两个帧之间匹配patch并基于标识匹配的patch的数据来生成运动修正数据。例如,编码器可以使用定义patch的位置坐标和尺寸的辅助信息来作为运动修正数据。代替编码和发送patch的帧,运动修正数据可以用于编码和发送,以减少整体传输带宽和正确地解码和接收消息。一旦确定了运动修正数据,运动修正数据就可以添加到现有视频压缩技术以改进三维点云数据的传输。
在一个总的方面,一种方法包括:基于三维点云数据的连续性数据生成记录媒体的三维点云数据的分割部分;将分割的三维点云数据的表示投影到三维边界框的一个或多个侧面,分割的三维点云数据的表示基于三维边界框的投影侧面而不同;基于分割的三维点云数据的投影表示生成一个或多个patch;生成一个或多个patch的第一帧;生成第一帧的第一辅助信息;生成参考帧的第二辅助信息;基于第一辅助信息和第二辅助信息,识别第一帧中与参考帧中的第二patch匹配的第一patch;基于第一辅助信息和第二辅助信息之间的差生成第一patch和第二patch之间的运动矢量候选;使用运动矢量候选执行运动补偿。
本公开的该方面和其他方面的其他实施例包括用于执行上述方法动作的对应系统、装置、以及编码在计算机存储设备上的计算机程序。可以借助于安装在系统上的软件、固件、硬件或其组合来配置一个或多个计算机的系统,这些软件、固件、硬件在操作时使系统执行上述动作。一个或多个计算机程序可以通过具有指令的方式进行配置,该指令在由数据处理装置执行时使该装置执行上述动作。
可选地,上述实施例和其他实施例可以单独或组合地包括以下特征中的一个或多个。例如,一个实施例可以包括所有以下特征的组合。
在一些实施方式中,上述方法包括,参考帧对应于先前发送的编码帧,并且参考帧被解码以生成第二辅助信息。
在一些实施方式中,生成记录媒体的三维点云数据的分割部分还包括:生成三维点云数据媒体上的多个分割部分,以用于后续对多个分割部分中的每个分割部分进行投影和编码。
在一些实施方式中,第一辅助信息包括一个或多个patch中的每个patch的索引数据、一个或多个patch中的每个patch的二维数据、以及一个或多个patch中的每个patch的三维数据。
在一些实施方式中,一个或多个patch中的每个patch的索引数据对应于三维边界框的对应侧面。
在一些实施方式中,对应于三维点云数据的一部分的一个或多个patch中的每个patch的二维数据和一个或多个patch中的每个patch的三维数据是连接的。
在一些实施方式中,基于三维点云数据的连续性数据生成三维点云数据的一个或多个patch还包括:确定三维点云数据在每个方向上的平滑标准;比较三维点云数据的每个方向上的平滑标准;以及响应于比较,选择在边界框的侧面上具有最大投影面积的三维点云数据的平滑标准的方向。
在一些实施方式中,生成第一patch和第二patch之间的运动矢量候选还包括:确定第一辅助信息的二维数据和第二辅助信息的二维数据之间的距离;基于第一辅助信息的二维数据和第二辅助信息的二维数据之间的距离生成运动矢量候选;以及将运动矢量候选添加到运动矢量候选列表。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图、和权利要求书,本主题的其他特征、方面、和优点将变得显而易见。
附图说明
图1是对视频信号进行编解码的示例方法的流程图。
图2是用于视频编解码的示例编解码(codec)系统的示意图。
图3是示出示例视频编码器的框图。
图4是示出示例视频解码器的框图。
图5是示出单向帧间预测的示例的示意图。
图6是示出双向帧间预测的示例的示意图。
图7是示出在视频编解码中采用的示例帧内预测模式的示意图。
图8是示出视频编解码中块的方向关系的示例的示意图。
图9是示出示例环内滤波器的框图。
图10示出了在块划分中采用的示例划分模式。
图11是示例视频编码机制的示意图。
图12是用于编解码的计算设备的示意图。
图13是示出点云媒体的系统的示例。
图14是示出点云帧序列的系统的示例。
图15是三维patch边界框到二维patch投影的变换过程的示例。
图16是示出3D到2Dpatch投影结果的系统的示例。
图17是点云媒体的属性分割的示例。
图18是示出具有属性信息的点云媒体的打包patch的系统的示例。
图18是基于视频的点云压缩(video-based point cloud compression,V-PCC)位流结构的示例。
图19是用于执行运动估计的系统的示例。
图20是示出当前帧的patch和参考帧的patch之间的运动矢量候选的系统的示例。
图21示出了用于融合候选列表构造的导出过程。
图22示出了针对空间融合候选的冗余校验考虑的空间融合候选和候选对的位置的系统。
图23是示出Nx2N分区和2NxN分区的第二PU的位置的系统。
图24示出了获得时间融合候选(temporal merge candidate)的缩放运动矢量。
图25是示出时间融合候选的候选位置的系统。
图26示出了组合双向预测融合候选(bi-predictive merge candidate)的示例表格。
图27是包括使用辅助数据的运动估计过程(pipeline)的修改的系统的示例。
图28是V-PCC单元有效载荷的包流表示的示例。
图29是V-PCC单元有效载荷的视觉表示的另一示例。
图30是用于使用3D辅助数据执行运动估计的过程的示例的流程图。
在各个附图中,相同的附图标记和称号指示相同的元素。
具体实施方式
首先应该理解,尽管下面提供了一个或多个实施例的说明性实施方式,但是所公开的系统和/或方法可以使用任何数量的技术(无论是当前已知的还是现有的技术)来实施。本公开不应限于以下示出的示例性实施方式、附图、和技术,包括本文示出和描述的示例性设计和实施方式,而是可以在所附权利要求的范围及其等同物的全部范围内进行修改。
图1是对视频信号进行编解码的示例性方法100的流程图。具体地,视频信号在编码器处进行编码。编码过程通过采用各种机制来减小视频文件大小来压缩视频信号。较小的文件大小允许将压缩的视频文件发送给用户,同时减少相关的带宽开销。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,以显示给最终用户。解码过程通常会镜像编码过程,以使解码器能够一致地重建视频信号。
在步骤101,视频信号被输入到编码器中。例如,视频信号可以是存储在存储器中的未压缩视频文件。作为另一示例,视频文件可以由诸如摄像机的视频捕获设备捕获,并且被编码以支持视频的实时流传输。视频文件可以包括音频分量和视频分量。视频组件包含一系列图像帧,当按顺序查看时,这些图像帧会给人视觉上的运动印象。帧包含以光和颜色表示的像素,光在此称为亮度分量,而以颜色表示的是色度分量。在一些示例中,帧还可以包含深度值以支持三维观看。
在步骤103,视频被划分为块。划分包括将每个帧中的像素细分为正方形块和/或矩形块以进行压缩。例如,可以使用编码树来划分块,然后递归地细分块,直到实现支持进一步编码的配置。这样,在高效视频编码(High Efficiency Video Coding,HEVC)(也称为H.265和MPEG-H第2部分)中,这些块可以被称为编码树单元。例如,可以细分帧的亮度分量,直到各个块包含相对均匀的亮度值为止。此外,可以细分帧的色度分量,直到各个块包含相对均匀的颜色值为止。因此,划分机制根据视频帧的内容而变化。
在步骤105,采用各种压缩机制来压缩在步骤103划分的图像块。例如,可以采用帧间预测和/或帧内预测。帧间预测旨在利用以下事实:共同场景中的对象倾向于出现在连续的帧中。因此,不需要在后续的帧中重复描述参考帧中的对象的块。具体地,诸如桌子的对象可以在多个帧中保持在恒定的位置。因此,该桌子仅需描述一次,后续的帧可以参考该参考帧。可以采用模式匹配机制来匹配多个帧上的对象。此外,例如由于对象移动或相机移动,运动对象可以跨多个帧表示。作为特定示例,视频可以显示在多个帧上跨屏幕移动的汽车。可以采用运动矢量来描述这种运动。运动矢量是二维矢量,提供从某一帧中的对象坐标到参考帧中的对象坐标的偏移。这样,帧间预测可以将当前帧中的图像块编码为指示相对于参考帧中的对应块的偏移的一组运动矢量。
帧内预测对公共帧中的块进行编码。帧内预测利用了帧中的亮度分量和色度分量倾向于聚集这一事实。例如,树的一部分中的绿色patch倾向于位于相似的绿色patch的相邻处。帧内预测采用多个方向预测模式(例如,HEVC中的33种)、平面模式、和直流(directcurrent,DC)模式。方向模式指示当前块与对应方向上的相邻块相似/相同。平面模式指示可以基于行边缘处的相邻块来对该行(例如,平面)上的一系列块进行插值。实际上,平面模式通过在变化值中采用相对恒定的斜率,指示光/颜色在行中的平滑过渡。DC模式用于边界平滑,并指示一个块类似/相同于与所有与方向预测模式的角度方向相关联的相邻块相关联的平均值。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是实际值。在任一种情况下,在某些情况下,预测块可以不准确地表示图像块。任何差异都存储在残差块中。可以将变换应用于残差块以进一步压缩文件。
在步骤107,可以应用各种滤波技术。在HEVC中,根据环路内滤波方案来应用滤波器。上面讨论的基于块的预测可以在解码器处产生块状图像。此外,基于块的预测方案可以对块进行编码,然后重构经编码的块以供以后用作参考块。环路内滤波方案将噪声抑制滤波器、去块滤波器、自适应环路滤波器、和SAO滤波器重复应用于块/帧。这些滤波器减轻了这种块伪影(blocking artefact),因此可以准确地重建经编码的文件。此外,这些滤波器减轻了重建的参考块中的伪影,使得伪影不太可能在基于重建的参考块进行编码的后续块中创建附加伪影。环路内滤波过程将在下面详细讨论。
一旦视频信号被划分、压缩、和滤波,则在步骤109将得到的数据编码在位流中。该位流包括以上讨论的数据以及支持在解码器处进行正确的视频信号重建所需的任何信令数据。例如,这样的数据可以包括划分数据、预测数据、残差块、和向解码器提供编码指令的各种标志。可以将位流存储在存储器中,以根据请求向解码器传输。位流还可以向多个解码器广播和/或多播。位流的创建是一个迭代过程。因此,步骤101、103、105、107和109可以在许多帧和块上连续和/或同时发生。图1中所示的顺序是出于清楚和易于讨论的目的给出,并不旨在将视频编解码过程限制为特定顺序。
在步骤111,解码器接收位流并开始解码过程。具体地,解码器采用熵解码方案将位流转换为相应的语法和视频数据。解码器在步骤111使用来自位流的语法数据来确定帧的分区。划分应与步骤103的块划分结果相匹配。现在描述在步骤111中采用的熵编码/解码。编码器在压缩过程中做出了许多选择,例如,基于输入图像中的值的空间位置,从若干可能的选择中选择块划分方案。信令通知确切的选择可能会使用大量的二元符号(bin)。如本文所使用的,bin是被视为变量的二进制值(例如,可以根据上下文而变化的比特值)。熵编码使编码器可以丢弃在特定情况下显然不可行的任何选项,仅保留一组允许的选项。然后,为每个允许的选项分配一个码字。码字的长度基于允许的选项的数量(例如,一个bin用于两个选项,两个bin用于三个至四个选项,等等)。然后,编码器对用于所选选项的码字进行编码。因为码字的大小仅需要能够唯一地指示允许的选项的小子集中的一个选择,而不是需要能够唯一地指示所有可能选择的潜在大集合中的一个选择,所以该方案减小了码字的大小。然后,解码器通过以与编码器类似的方式确定允许的选项的集合来对选择进行解码。通过确定允许的选项的集合,解码器可以读取码字并确定编码器进行的选择。
在步骤113,解码器执行块解码。具体地,解码器采用反变换来生成残差块。然后,解码器采用残差块和相应的预测块来根据划分来重建图像块。预测块可以包括在步骤105在编码器处生成的帧内预测块和帧间预测块。然后,根据在步骤111确定的划分数据,将重建的图像块放置在重建的视频信号的帧中。如上所述,也可以通过熵编码在位流中信令通知步骤113的语法。
在步骤115,以类似于在编码器处的步骤107的方式,对重建的视频信号的帧执行滤波。例如,噪声抑制滤波器、去块滤波器、自适应环路滤波器、和SAO滤波器可应用于帧以去除块伪影。一旦对帧进行了滤波,则可以在步骤117将视频信号输出到显示器,以供最终用户观看。
图2是用于视频编解码的示例编码和解码(codec)系统200的示意图。具体地,编解码器系统200提供支持方法100的实现的功能。对编解码器系统200进行概括以描绘在编码器和解码器中采用的组件。编解码器系统200如关于方法100中的步骤101和103所讨论的那样接收并划分视频信号,这将生成划分的视频信号201。然后,在充当编码器时,如关于方法100中的步骤105、107和109所讨论的,编解码器系统200将划分的视频信号201压缩为编码位流。在充当解码器时,编解码器系统200如关于方法100中的步骤111、113、115和117所讨论的那样,从位流生成输出视频信号。编解码器系统200包括通用编解码器控制组件211、变换缩放和量化组件213、图像内估计组件215、图像内预测组件217、运动补偿组件219、运动估计组件221、缩放和反变换组件229、滤波器控制分析组件227、环路内滤波器组件225、解码图像缓冲器组件223、以及报头格式化和上下文自适应二进制算术编码(contextadaptive binary arithmetic coding,CABAC)组件231。这些组件如图所示地耦合。在图2中,黑线表示要编码/解码的数据的移动,而虚线表示控制其他组件的操作的控制数据的移动。编解码器系统200的组件可以全部存在于编码器中。解码器可以包括编解码器系统200的组件的子集。例如,解码器可以包括图像内预测组件217、运动补偿组件219、缩放和反变换组件229、环路内滤波器组件225、和解码图像缓冲器组件223。现在描述这些组件。
划分的视频信号201是已被编码树划分为像素块的捕获的视频流。编码树采用各种划分模式将像素块细分为较小的像素块。然后,可以将这些块进一步细分为更小的块。这些块可以被称为编码树上的节点。较大的父节点被分为较小的子节点。节点被细分的次数称为节点/编码树的深度。在某些情况下,划分的块称为编解码单元(coding unit,CU)。划分模式可包括二叉树(binary tree,BT)、三叉树(triple tree,TT)、和四叉树(quad tree,QT),分别用于将一个节点划分为两个、三个、或四个子节点,这些节点的形状根据所采用的划分模式各不相同。划分的视频信号201被转发到通用编解码器控制组件211、变换缩放和量化组件213、图像内估计组件215、滤波器控制分析组件227、和运动估计组件221以进行压缩。
通用编解码器控制组件211被配置为根据应用约束做出与将视频序列的图像编码到位流中有关的决定。例如,通用编解码器控制组件211管理相对于重建质量的比特率/位流大小的优化。可以基于存储空间/带宽可用性和图像分辨率请求来做出这样的决定。通用编解码器控制组件211还根据传输速度来管理缓冲器利用率,以缓解缓冲器欠载和超限问题。为了管理这些问题,通用编解码器控制组件211管理其他组件的划分、预测、和滤波。例如,通用编解码器控制组件211可以动态地增加压缩复杂度以提高分辨率并增加带宽使用,或者降低压缩复杂度以降低分辨率和带宽使用。因此,通用编解码器控制组件211控制编解码器系统200的其他组件以平衡视频信号重建质量与比特率问题。通用编解码器控制组件211创建控制数据,该控制数据控制其他组件的操作。控制数据也被转发到报头格式化和CABAC组件231,以在比特流中进行编码,以信令通知用于在解码器处的解码的参数。
划分的视频信号201还被发送到运动估计组件221和运动补偿组件219以进行帧间预测。划分的视频信号201的帧或切片可以被划分为多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对接收到的视频块执行帧间预测编解码,以提供时间预测。编解码器系统200可以执行多个编解码过程,例如以为视频数据的每个块选择适当的编解码模式。
运动估计组件221和运动补偿组件219可以高度集成,但是出于概念性目的而分开示出。由运动估计组件221执行的运动估计是生成运动矢量的过程,该运动矢量估计视频块的运动。举例来说,运动矢量可指示视频块的预测单元(prediction unit,PU)相对于参考帧内的预测块(或其它编解码单元)相对于当前帧内正被编解码的块(或其他编解码单元)的位移。预测块是在像素差方面与待编解码块紧密匹配的块,该像素差可以由绝对差之和(sum of absolute difference,SAD)、平方差之和(sum of square difference,SSD)、或其他差值来确定。在一些示例中,编解码器系统200可计算存储在解码图像缓冲器223中的参考图像的子整数像素位置的值。例如,视频编解码器系统200可对参考图像的四分之一像素位置、八分之一像素位置、或其他分数像素位置的值进行插值。因此,运动估计组件221可以执行相对于整数像素位置和分数像素位置的运动搜索,并且以分数像素精度输出运动矢量。运动估计组件221通过将PU的位置与参考图像的预测块的位置进行比较来计算帧间编码切片中的视频块的PU的运动矢量。运动估计组件221将计算出的运动矢量作为运动数据输出到报头格式和CABAC组件231以进行编码,并将运动矢量输出到运动补偿组件219。
由运动补偿组件219执行的运动补偿可以涉及基于由运动估计组件221确定的运动矢量来获取或生成预测块。同样,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成在一起。在接收到当前视频块的PU的运动矢量时,运动补偿组件219可以在参考图像列表中定位运动矢量指向的预测块。然后,通过从正被编解码的当前视频块的像素值中减去预测块的像素值,形成像素差值,从而形成残差视频块。通常,运动估计组件221执行相对于亮度分量的运动估计,并且运动补偿组件219将基于亮度分量计算的运动矢量用于色度分量和亮度分量。预测块和残差块被转发到变换缩放和量化组件213。
划分的视频信号201还被发送到图像内估计组件215和图像内预测组件217。与运动估计组件221和运动补偿组件219一样,图像内估计组件215和图像内预测组件217可以是高度集成的,但是出于概念目的而分开示出。图像内估计组件215和图像内预测组件217相对于当前帧中的块来对当前块进行帧内预测,作为如上所述的由运动估计组件221和运动补偿组件219在帧之间执行的帧间预测的替代方案。特别地,图像内估计组件215确定用于对当前块进行编码的帧内预测模式。在一些示例中,图像内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式以对当前块进行编码。然后,将所选的帧内预测模式转发到报头格式化和CABAC组件231以进行编码。
例如,图像内估计组件215对各个测试的帧内预测模式使用率失真分析来计算率失真值,并且在测试的模式当中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块和原始未编码块(被编码以生成编码块)之间的失真(或误差)量,以及用于产生编码块的比特率(例如,比特数量)。图像内估计组件215根据各个编码块的失真和率来计算比值,以确定哪种帧内预测模式显示出该块的最佳率失真值。另外,图像内估计组件215可被配置为基于率失真优化(rate-distortion optimization,RDO)使用深度建模模式(depth-modeling mode,DMM)来对深度图的深度块进行编解码。
图像内预测组件217可以基于由图像内估计组件215确定的选择的帧内预测模式从预测块生成残差块。残差块包括预测块和原始块的值之间的差,表示为矩阵。然后,残差块被转发到变换缩放和量化组件213。图像内估计组件215和图像内预测组件217可以对亮度分量和色度分量进行操作。
变换缩放和量化组件213被配置为进一步压缩残差块。变换缩放和量化组件213将诸如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sinetransform,DST)、或概念上类似的变换之类的变换应用于残差块,从而产生包括残差变换系数值的视频块。也可以使用小波变换、整数变换、子带变换、或其他类型的变换。变换可将残差信息从像素值域转换到变换域,例如频域。变换缩放和量化组件213还被配置为例如基于频率来对变换后的残差信息进行缩放。这种缩放涉及将缩放因子应用于残差信息,从而以不同的粒度对不同的频率信息进行量化,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还被配置为对变换系数进行量化以进一步降低比特率。量化过程可以减小与一些或所有系数相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可以对包括量化的变换系数的矩阵执行扫描。量化的变换系数被转发到报头格式和CABAC组件231以在位流中进行编码。
缩放和反变换组件229应用变换缩放和量化组件213的反操作以支持运动估计。缩放和反变换组件229应用反缩放、变换、和/或量化以在像素域中重建残差块,例如,以供稍后用作参考块,该参考块可以成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可通过将残差块加回到对应的预测块来计算参考块,以用于稍后的块/帧的运动估计。滤波器应用于重建的参考块,以减轻在缩放、量化、和变换期间创建的伪影。否则,当预测后续块时,此类伪影可能会导致不准确的预测(并创建其他伪影)。
滤波器控制分析组件227和环路内滤波器组件225将滤波器应用于残差块和/或重建的图像块。例如,来自缩放和反变换组件229的经变换残差块可与来自图像内预测组件217和/或运动补偿组件219的对应预测块组合以重建原始图像块。然后,可以将滤波器应用于重建的图像块。在一些示例中,可替代地将滤波器应用于残差块。与图2中的其他组件一样,滤波器控制分析组件227和环路内滤波器组件225是高度集成的,并且可以一起实现,但是出于概念上的目的而分开示出。应用于重建的参考块的滤波器被应用于特定的空间区域,并且包括多个参数以调整如何应用这种滤波器。滤波器控制分析组件227分析重建的参考块,以确定应该在哪里应用这种滤波器并设置相应的参数。这样的数据被转发到报头格式和CABAC组件231,作为滤波器控制数据以进行编码。环路内滤波器组件225基于滤波器控制数据来应用这样的滤波器。滤波器可以包括去块滤波器、噪声抑制滤波器、SAO滤波器、和自适应环路滤波器。取决于示例,可以在空间/像素域(例如,在重建的像素块上)或频域中应用这样的滤波器。
当作为编码器操作时,将滤波后的重建图像块、残差块、和/或预测块存储在解码图像缓冲器223中,以供以后在如上所述的运动估计中使用。当作为解码器工作时,解码图像冲器223将重建和滤波后的块作为输出视频信号的一部分存储并转发给显示器。解码图像缓冲器223可以是能够存储预测块、残差块、和/或重建图像块的任何存储设备。
报头格式化和CABAC组件231从编解码器系统200的各个组件接收数据,并将这些数据编码为编码位流,以传输至解码器。具体地,报头格式化和CABAC组件231生成各种报头以对诸如通用控制数据和滤波器控制数据之类的控制数据进行编码。此外,包括帧内预测和运动数据的预测数据以及以量化的变换系数数据形式的残差数据都被编码在位流中。最终的位流包括解码器重建原始划分的视频信号201所需的所有信息。此类信息还可以包括帧内预测模式索引表(也称为码字映射表)、各个块的编码上下文定义、最可能帧内预测模式的指示、分区信息的指示,等等。可以使用熵编码来编码这样的数据。例如,可以通过采用上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、CABAC、和基于语法的上下文自适应二进制算术编码(syntax-based contextadaptivebinaryarithmeticcoding,SBAC)、概率区间划分熵(probabilityintervalpartitioningentropy,PIPE)编码、或另一熵编码技术来对信息进行编码。在熵编码之后,编码的位流可以被发送到另一设备(例如,视频解码器)或被存档以用于后续发送或检索。
图3是示出示例视频编码器300的框图。视频编码器300可用于实施编解码器系统200的编码功能和/或实施方法100的步骤101、103、105、107和/或109。编码器300划分输入视频信号,得到划分的视频信号301,其与划分的视频信号201基本相似。然后,划分的视频信号301被编码器300的组件压缩并编码到位流中。
具体地,将划分的视频信号301转发到图像内预测组件317以进行帧内预测。图像内预测组件317可基本上类似于图像内估计组件215和图像内预测组件217。划分的视频信号301还被转发到运动补偿组件321以基于解码图像缓冲器323中的参考块进行帧间预测。运动补偿组件321可以基本上类似于运动估计组件221和运动补偿组件219。来自图像内预测组件317和运动补偿组件321的预测块和残差块被转发到变换和量化组件313以用于对残差块进行变换和量化。变换和量化组件313可以与变换缩放和量化组件213基本相似。经过变换和量化的残差块以及相应的预测块(以及相关联的控制数据)被转发到熵编码组件331,以将其编码到位流中。熵编码组件331可以基本上类似于报头格式化和CABAC组件231。
经变换和量化的残差块和/或相应的预测块还从变换和量化组件313转发到反变换和量化组件329,以重建为参考块以供运动补偿组件321使用。反变换和量化组件329可以与缩放和反变换组件229基本相似。取决于示例,环路内滤波器组件325中的环路内滤波器也被应用于残差块和/或重建的参考块。环路内滤波器组件325可以与滤波器控制分析组件227和环路内滤波器组件225基本相似。环路内滤波器组件325可以包括多个滤波器,包括如下所述的噪声抑制滤波器。然后,滤波后的块被存储在解码图像缓冲器323中,以供运动补偿组件321用作参考块。解码图像缓冲器323可以与解码图像缓冲器223基本相似。
图4是示出示例视频解码器400的框图。视频解码器400可用于实施编解码器系统200的解码功能和/或实施方法100的步骤111、113、115和/或117。解码器400接收例如来自编码器300的位流,并基于该位流生成重建的输出视频信号,以显示给终端用户。
位流由熵解码组件433接收。熵解码组件433执行熵编码组件331的逆功能。熵解码组件433被配置为实施熵解码方案,例如CAVLC、CABAC、SBAC、和PIPE编解码或其他熵编解码技术。例如,熵解码组件433可以采用报头信息来提供上下文以解释在位流中被编码为码字的附加数据。解码的信息包括用于解码视频信号的任何所需信息,例如通用控制数据、滤波器控制数据、分区信息、运动数据、预测数据、以及来自残差块的量化变换系数。量化的变换系数被转发到反变换和量化组件429以重构为残差块。反变换和量化组件429可以基本上类似于反变换和量化组件329。
重建的残差块和/或预测块被转发到图像内预测组件417,以基于帧内预测操作被重构为图像块。图像内预测组件417可以基本上类似于图像内预测组件317,但是相反地操作。具体地,图像内预测组件417采用预测模式来在帧中定位参考块,并将残差块应用于结果以重建帧内预测的图像块。重建的帧内预测图像块和/或残差块以及相应的帧间预测数据经由环路滤波器组件425转发到解码图像缓冲器组件423,该解码图像缓冲器组件423和环路内滤波器组件425可以分别基本类似于解码图像缓冲器组件323和环路内滤波器组件425。环路内滤波器组件425对重建的图像块、残差块、和/或预测块进行滤波,并且这样的信息被存储在解码图像缓冲器组件423中。来自解码图像缓冲器组件423的重建图像块被转发到运动补偿组件421以用于帧间预测。运动补偿组件421可以基本上类似于运动补偿组件321,但是可以相反地操作。具体地,运动补偿组件421采用来自参考块的运动矢量来生成预测块,并将残差块应用于结果以重建图像块。所得的重建块也可以经由环路内滤波器组件425转发到解码图像缓冲器组件423。解码图像缓冲器组件423继续存储附加的重建图像块,这些重建图像块可以经由分区信息被重建为帧。这样的帧也可以放置在序列中。该序列作为重建的输出视频信号向显示器输出。
帧间预测
在视频编码过程中,许多方案协作用于压缩视频数据。例如,将视频序列分成图像帧。然后将图像帧划分为图像块。然后可以通过帧间预测(不同帧中的块之间的相关性)或帧内预测(同一帧中的块之间的相关性)来压缩图像块。
当诸如编码树单元(CTU)、编码树块(codingtreeblock,CTB)、编码单元(CU)、子CU等的编码对象出现在视频序列的多个帧中时,采用帧间预测。并不是在每个帧中编码相同的对象,而是在参考帧中编码该对象,并且采用运动矢量(motion vector,MV)来指示对象的运动轨迹。对象的运动轨迹是对象随时间的运动。MV是指示对象在帧之间位置改变的方向和幅度的向量。对象和MV可以被编码在位流中,并通过解码器进行解码。为了进一步提高编码效率并减小编码的大小,可以从位流中省略MV,并在解码器处导出MV。例如,可以采用一对参考帧。参考帧是位流中的帧,该帧包含当编码相关帧时可以通过参考进行编解码的数据。可以采用诸如双边匹配(bi-lateral matching)和/或模板匹配(templatematching)之类的匹配算法来确定编码对象在两个参考帧中的位置。双边匹配算法将前一帧中的块与当前帧中的块进行匹配。模板匹配算法将当前块的相邻块与一个或多个参考帧中的当前块的相邻块进行匹配。一旦在两个参考帧中确定了对象的位置,就可以确定表示对象在参考帧之间运动的MV。然后,可以使用MV在参考帧之间定位帧中的对象。作为特定示例,可以为整个CU确定初始MV。然后,可以使用局部搜索来修正初始MV。此外,可以基于修正的初始MV来确定和修正对象的子CU部分的MV。只要对象的运动轨迹在参考帧之间是连续的,这种方法就可以指示对象的正确位置。
图5是示出单向帧间预测500的示例的示意图,单向帧间预测例如在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321、和/或运动补偿组件421处执行以确定运动矢量(MV)。
单向帧间预测500使用具有参考块531的参考帧530来预测当前帧510中的当前块511。如图所示,参考帧530可以在时间上位于当前帧510之后,但是在一些示例中也可以在时间上位于当前帧510之前。当前帧510是在特定时间被编码/解码的示例帧/图像。当前帧510包含当前块511中的对象,该对象与参考帧530的参考块531中的对象匹配。参考帧530是被用作对当前帧510进行编码的参考的帧,参考块531是参考帧530中的包含对象的块,该对象也包含在当前帧510的当前块511中。当前块511是在编解码过程中的指定时刻处被编码/解码的任何编码单元。当前块511可以是整个划分块,或者在仿射帧间预测(affine inter-prediction)情况下可以是子块。当前帧510与参考帧530相距某个时间距离(temporaldistance,TD)533。TD533指示视频序列中当前帧510与参考帧530之间的时间量。在由TD 533表示的时间段上,当前块511中的对象从当前帧510中的位置移动到参考帧530中的另一位置(例如,参考块531的位置)。例如,该对象可以沿着运动轨迹513移动,该运动轨迹是该对象随时间运动的方向。运动矢量535描述了在TD 533上对象沿运动轨迹513运动的方向和幅度。因此,编码的MV 535和参考块531提供了足以重建当前块511并在当前帧510中定位当前块511的信息。
图6是示出双向帧间预测600的示例的示意图,双向帧间预测例如在块压缩步骤105、块解码步骤113、运动估计组件221、运动补偿组件219、运动补偿组件321、和/或运动补偿组件421处执行以确定MV。例如,可以采用双向帧间预测600来在帧间预测模式下确定块的运动矢量和/或在仿射帧间预测模式下确定子块的运动矢量。
双向帧间预测600类似于单向帧间预测500,但是采用一对参考帧来预测当前帧610中的当前块611。因此,当前帧610和当前块611基本分别类似于当前帧510和当前块511。当前帧610在时间上位于先前参考帧620和后续参考帧630之间,先前参考帧620在视频序列中在当前帧610之前发生,后续参考帧630在视频序列中在当前帧610之后发生。先前参考帧620和后续参考帧630基本上类似于参考帧530。
当前块611匹配到先前参考帧620中的先前参考块621并匹配到后续参考帧630中的后续参考块631。这种匹配指示在视频序列的过程中,对象沿着运动轨迹613并经由当前块611从先前参考块621处的位置移动到后续参考框631处的位置。当前帧610与先前参考帧620相距某个先前时间距离(TD0)623,并与后续参考帧630相距某个后续时间距离(TD1)633。TD0 623指示视频序列中先前参考帧620与当前帧610之间的时间量。TD1 633指示视频序列中当前帧610和后续参考帧630之间的时间量。因此,在由TD0 623指示的时间段上,对象沿着运动轨迹613从先前参考块621移动到当前块611。在TD1 633指示的时间段上,对象还沿着运动轨迹613从当前块611移动到后续参考块631。
先前运动矢量(MV0)625描述了对象在TD0 623上(例如,在先前参考帧620与当前帧610之间)沿着运动轨迹613的运动的方向和幅度。后续运动矢量(MV1)635描述了对象在TD1 633上(例如,在当前帧610和后续参考帧630之间)沿运动轨迹613的运动的方向和幅度。这样,在双向帧间预测600中,可以通过采用先前参考块621和/或后续参考块631、MV0625、和MVl 635来对当前块611进行编解码和重建。
帧内预测
在视频编解码过程中,许多方案协作用于压缩视频数据。例如,视频序列被分成图像帧。然后,图像帧被划分为图像块。然后,可以通过帧间预测(不同帧中的块之间的相关性)或帧内预测(同一帧中的块之间的相关性)来压缩图像块。在帧内预测中,根据参考样本行来预测当前图像块。参考行包括来自相邻图像块(也称为相邻块)的样本。当前块中的样本与参考行中具有最接近的luma(亮度)或chroma(颜色)值的样本匹配。当前块被编码为指示匹配的样本的预测模式。预测模式包括角度预测模式、直流(DC)模式、和平面模式。由预测模式预测的值与实际值之间的差被编码为残差块中的残差值。
图7是示出在视频编解码中采用的示例帧内预测模式700的示意图。例如,帧内预测模式700可以由方法100的步骤105和113、编解码器系统200的图像内估计组件215和图像内预测组件217、编码器300的图像内预测组件317、和/或解码器400的图像内预测组件417使用。具体地,可以采用帧内预测模式700将图像块压缩为包含所选预测模式和剩余残差块的预测块。
如上所述,帧内预测涉及将当前图像块匹配到一个或多个相邻块的一个或多个对应样本。然后,可以将当前图像块表示为所选预测模式索引和残差块,这比表示当前图像块中包含的所有亮度/色度值小得多。当没有可用的参考帧时,或者当当前块或帧不使用帧间预测编码时,可以使用帧内预测。用于帧内预测的参考样本可以从同一帧中的先前编码(或重建)的相邻块中导出。高级视频编码(AdvancedVideoCoding,AVC)(也称为H.264)和H.265/HEVC都采用相邻块的参考边界样本行作为用于帧内预测的参考样本。为了覆盖不同的纹理或结构特征,采用了许多不同的帧内预测模式。H.265/HEVC支持35个帧内预测模式700,这些帧内预测模式700将当前块与一个或多个参考样本在空间上相关。具体地,帧内预测模式700包括索引号为模式2至34的33个方向预测模式、索引号为模式1的DC模式、和索引号为模式0的平面模式。
在编码期间,编码器将当前块的亮度/色度值与相邻块的边缘上的参考行中的相应参考样本的亮度/色度值进行匹配。当找到与参考行之一的最佳匹配时,编码器选择指向最佳匹配参考行的方向的帧内预测模式700之一。为了便于讨论,下面采用首字母缩略词来指代特定的方向帧内预测模式700。DirS表示从左下角顺时针计数时的起始方向帧内预测模式(例如,HEVC中的模式2)。DirE表示当从左下角顺时针计数时的最后方向帧内预测模式(例如,HEVC中的模式34)。DirD表示当从左下角顺时针计数时的中间方向帧内编码模式(例如,HEVC中的模式18)。DirH表示水平帧内预测模式(例如,HEVC中的模式10)。DirV表示垂直帧内预测模式(例如,HEVC中的模式26)。
如上所述,DC模式充当平滑函数,并且导出当前块的预测值作为遍历相邻块的参考行中的所有参考样本的平均值。同样如上所述,平面模式返回指示在参考样本的参考行的左下和左上或左上和右上的样本之间的平滑过渡(例如,值的恒定斜率)的预测值。
对于平面、DC、和从DirH到DirV的预测模式,参考行的顶行和参考行的左列中的样本都用作参考样本。对于具有从DirS到DirH的预测方向的预测模式(包括DirS和DirH),参考线左列上的先前编码和重建的相邻块中的参考样本用作参考样本。对于具有从DirV到DirE的预测方向的预测模式(包括DirV和DirE),参考线顶行上的先前编码和重建的相邻块的参考样本用作参考样本。
图8是示出视频编解码中的块800的方向关系的示例的示意图。例如,当选择帧内预测模式500时,可以采用块800。因此,块800可以由方法100的步骤105和113、编解码器系统的图像内预测组件215和图像内预测组件217、编码器300的图像内预测组件317、和/或解码器400的图像内预测组件417使用。在视频编解码中,基于视频内容对块800进行划分,因此块800可以包括许多形状和尺寸不同的矩形和正方形。为了说明的目的,将块800描绘为正方形,并且因此将块800从实际的视频编码块简化以支持清楚讨论。
块800包含当前块801和相邻块810。当前块810是在指定时间正被编解码的任何块。相邻块810是紧邻当前块801的左边缘或上边缘的任何块。视频编解码通常从左上进行到右下。这样,在对当前块801进行编解码之前,相邻块810已经进行编码和重建。当对当前块801进行编解码时,编码器将当前块801的亮度/色度值与来自穿过相邻块810的边缘的参考线的参考样本(或多个参考样本)进行匹配。然后,该匹配被用来例如从帧内预测模式700中选择指向匹配样本(或当选择了DC模式或平面模式时的多个样本)的帧内预测模式。然后,所选择的帧内预测模式指示当前块801的亮度/色度值基本上类似于与所选择的帧内预测模式相对应的参考样本。任何差异都可以保留在残差块中。然后,在位流中编码所选的帧内预测模式。在解码器处,可以通过采用相邻块810中与所选择的帧内预测模式相对应的所选的参考线中的参考样本的亮度/色度值(以及来自残差块的任何残差信息)来重建当前块801。
环路内滤波器
视频编解码方案将视频信号细分为图像帧,然后将图像帧细分为各种类型的块。然后压缩图像块。当重建和显示压缩的视频信号时,此方法可能会创建视觉伪影。例如,图像压缩过程可能人为地增加块状形状。这称为块化(blocking),通常发生在块分区边界。此外,还可能人为地将与非线性信号有关的舍入误差(称为量化噪声)添加到压缩图像中。可以采用各种过滤器来校正这种伪影。可以在后处理中将滤波器应用于重建的帧。后处理发生在重建了压缩视频信号的大部分之后,并且紧接在显示给用户之前。通过采用称为环路内滤波的机制,这些滤波器也可以用作压缩/解压缩过程的一部分。环路内滤波是一种在编码和/或解码过程中将滤波器应用于重建的视频图像的滤波方案,以支持相关图像之间的更精确压缩。例如,帧间预测基于先前和/或后续图像帧对图像帧进行编码。在编码器处,压缩的图像被重建并通过环路内滤波进行滤波,使得重建的图像提供更准确的图像以用于通过帧间预测对先前/后续图像帧进行编码。在解码器处,压缩的图像被重建并通过环路内滤波进行滤波,以创建更准确的图像供最终用户查看,并支持更准确的帧间预测。环路内滤波采用若干个滤波器,例如去块(deblocking)滤波器、样本自适应偏移(SAO)滤波器、和自适应环路滤波器。环路滤波还可以包括噪声抑制滤波器。
图9是示出示例环路内滤波器900的框图。环路内滤波器900可用于实现环路内滤波器225、325、和/或425。环路内滤波器900包括噪声抑制滤波器941、去块滤波器943、样本自适应偏移(SAO)滤波器945、和自适应环路滤波器947。环路内滤波器900的滤波器依次应用于重建的图像块和/或残差块。
噪声抑制滤波器941用于去除由图像压缩引起的量化噪声。具体地,噪声抑制滤波器941用于去除出现在图像边缘中的伪影。例如,图像压缩可能会在与图像中不同颜色/光patch之间的尖锐过渡(边缘)相邻处产生不同且不正确的颜色/光值。这被称为振铃,是由于对图像数据中与锐利边缘相关联的高频部分进行变换而引起的。噪声抑制滤波器941被用来减轻这种振铃伪影。噪声抑制滤波器941在空域(例如,像素的空间方向)和频域(例如,变换的系数值与像素数据的关系)中操作。在编码器处,噪声抑制滤波器941将重建的帧划分为参考宏块(macroblock)。这样的块也可以被细分为较小的参考块。噪声抑制滤波器941首先基于该块处的量化噪声的估计量来生成指示应被滤波的帧的各部分的应用图。噪声抑制滤波器941然后采用匹配组件来针对由应用图指示的每个参考块来确定与对应参考块相似的一组patch,其中“相似”表示色度/亮度值在预定范围内。噪声抑制滤波器941然后将patch分组为簇(cluster),并且可以采用二维(2D)变换将簇变换到频域中,从而得到频域patch。噪声抑制滤波器941还可以采用反向2D变换来将频域patch转换回空域。
去块滤波器943用于去除由基于块的帧间预测和帧内预测创建的块状边缘。去块滤波器943扫描图像部分(例如,图像切片)以寻找在分区边界处出现的色度和/或亮度值的不连续性。然后,去块滤波器943将平滑函数应用于这些块边界以去除这种不连续性。去块滤波器943的强度可以根据在与块边界相邻的区域中发生的空间活动度(例如,亮度/色度分量的变化)而变化。
SAO滤波器945用于去除与由编码过程引起的样本失真有关的伪影。编码器处的SAO滤波器945基于相对的去块边缘形状和/或方向将重建图像的去块样本分类为若干类别。然后确定偏移量,并基于上述类别将其添加到样本中。然后在位流中编码这些偏移量,并在解码器处由SAO滤波器945使用这些偏移量。SAO滤波器945去除带状伪影(值的带而不是平滑过渡)和环状伪影(尖锐边缘附近的杂散信号)。
在编码器处,自适应环路滤波器947用于将重建图像与原始图像进行比较。自适应环路滤波器947例如经由基于Wiener的自适应滤波器来确定描述重建图像与原始图像之间的差异的系数。这样的系数被编码在位流中并且在解码器处的自适应环路滤波器947处被使用以去除重建图像和原始图像之间的差异。尽管自适应环路滤波器947在校正伪影方面是有效的,但是重建图像和原始图像之间的差异越大,要用信号发送系数数量越多。这进而产生较大的位流,因此降低了压缩效率。这样,在应用自适应环路滤波器947之前,通过其他滤波器来最小化差异能够改善压缩。
划分
视频编解码采用编码器来压缩媒体文件,并且采用解码器来从压缩的媒体文件重建原始媒体文件。视频编解码采用各种标准化过程,以确保采用该标准化过程的任何解码器都能一致地再现由同样采用该标准化过程的任何编码器压缩的媒体文件。例如,编码器和解码器可以都采用诸如高效视频编码(HEVC)(其也被称为H.265)之类的编解码标准。在编码器处,视频信号被分成帧。然后帧被划分为包含像素组的图像块。然后图像块被压缩、滤波、并编码到位流中。然后,位流可以被发送到解码器,该解码器重建视频信号以显示给终端用户。
划分系统被配置为将图像块划分为子块。例如,采用各种划分模式的树结构可以用于将节点(例如,块)划分为子节点(例如,子块)。可以采用不同的划分模式以获得不同的分区。此外,划分模式也可以递归地应用于进一步细分节点。划分模式的这种应用得到各种划分样式。
图10示出了在块划分中采用的示例划分模式1000。划分模式1000是在划分期间将父节点(例如,图像块)划分为多个子节点(例如,图像子块)的机制。划分模式1000包括四叉树(QT)划分模式1001、垂直二叉树(BT)划分模式1003、水平BT划分模式1005、垂直三叉树(TT)划分模式1007、和水平TT划分模式1009。QT划分模式1001是用于块划分的树结构,其中,尺寸为4Mx4N的节点被划分为尺寸为MxN的四个子节点,其中M表示块宽度,N表示块高度。垂直BT划分模式1003和水平BT划分模式1005是用于块划分的树结构,其中,尺寸为4Mx4N的节点分别被垂直划分为尺寸为2Mx4N的两个子节点或水平划分为尺寸为4Mx2N的两个子节点。垂直TT划分模式1007和水平TT划分模式1009是用于块划分的树结构,其中,尺寸为4Mx4N的节点被垂直划分为三个尺寸分别为Mx4N、2Mx4N、和Mx4N的子节点;或被水平划分成三个尺寸分别为4MxN、4Mx2N、和4MxN的子节点。在三个子节点中,最大的节点位于中心。
划分模式1000也可以递归地应用以进一步划分块。例如,可以通过以下方式创建四叉树二叉树(quad-tree binary-tree,QT-BT):使用QT划分模式1001划分节点,然后使用垂直BT划分模式1003和/或水平BT划分模式1005划分每个子节点(有时称为四叉树叶节点)。此外,可以通过以下方式创建四叉树三叉树(quad-tree triple tree,QT-TT):用四叉树划分来划分节点,然后用垂直TT划分模式1007和/或水平TT划分模式1009来划分得到的子节点。
HEVC在联合勘探模型(Joint Exploration Model,JEM)应用上运行。在JEM中,采用QT-BT块划分来将编码树单元(CTU)划分为多个块。还建议将TT块划分包含在JEM中,以进一步丰富块划分类型。在基于QT、QT-BT、QT-TT块划分模式的视频编解码中,深度为K的编码块或预测块可以通过BT、TT、或QT划分模式划分为深度为K+1的N个较小编码块或预测块,其中N分别设置为2、3、或4。划分模式的划分样式在图10中示出,其中划分样式指示从父节点划分出的两个或更多子节点的尺寸和位置。
变换
视频编解码采用编码器来压缩媒体文件,并且采用解码器来从压缩的媒体文件重建原始媒体文件。视频编解码采用各种标准化过程,以确保采用该标准化过程的任何解码器都能一致地再现由同样采用该标准化过程的任何编码器压缩的媒体文件。
例如,编码器和解码器可以都采用诸如高效视频编码(HEVC)(其也被称为H.265)之类的编解码标准。H.265基于预测和变换框架。在编码器处,视频文件被分成帧。然后帧被细分为包含像素组的图像块。图像块进一步被分解成包含预测信息(例如预测模式和运动矢量信息)的预测块以及包含残差信息(例如变换模式、变换系数、和量化参数)的残差块。预测块和残差块比图像块占用更少的存储空间,但是可以被解码器用来重建图像块。预测块和残差块被编码到比特流中,并被发送到解码器和/或被存储以用于以后根据请求进行发送。在解码器处,解析预测信息和残差信息。然后,通过使用帧内预测或帧间预测,所解析的预测信息用于生成预测样本。帧内预测采用重建的图像块来预测同一帧中的其他图像块。帧间预测采用重建的图像块来预测相邻帧之间的其他图像块。此外,例如通过顺序地应用反量化和反变换,将残差信息用于生成残差样本。预测样本和残余样本被组合以获得对应于由编码器编码的图像块的重建样本(例如,以在监视器上显示给最终用户)。
空间变化变换(Spatial varying transform,SVT)是一种用于进一步提高视频编解码效率的机制。SVT采用变换块来进一步压缩残差块。具体地,矩形残差块包括宽度w和高度h(例如,wxh)。选择小于残差块的变换块。因此,使用变换块来变换残差块的对应部分,并留下残差块的其余部分而无需另外的编码/压缩。SVT的基本原理是,残差信息可能不会均匀分布在残差块中。使用具有自适应位置的较小变换块可以捕获残差块中的大多数残差信息,而无需对整个残差块进行变换。在某些情况下,此方法可以比对残差块中的所有残差信息进行变换实现更好的编码效率。由于变换块小于残差块,因此SVT采用了一种机制来信令通知相对于残差块的变换位置。这种位置信令增加了编码过程的总体信令开销,因此降低了压缩效率。另外,在某些情况下,在所有情况下都使用相同类型的变换块可能不会产生有益的结果。
图11是示例视频编码机制1100的示意图。编码器可以从一个或多个帧获得图像块1101。例如,图像可以被划分成多个矩形图像区域。每个图像区域都对应一个编码树单元(CTU)。CTU被划分为多个块,例如HEVC中的编码单元。然后,在位流中编码块分区信息。因此,图像块1101是图像的分区部分,并且包含表示图像的对应部分处的亮度分量和/或色度分量的像素。在编码期间,图像块1101被编码为包含预测信息的预测块1103,预测信息例如是用于帧内预测的预测模式和/或用于帧间预测的运动矢量。然后,将图像块1101编码为预测块1103可以留下包含残差信息的残差块1105,该残差信息指示预测块303和图像块301之间的差。
应当注意,图像块1101可以被划分为包含一个预测块1103和一个残差块1105的编码单元。预测块1103可以包含该编码单元的所有预测样本,残差块1105可以包含该编码单元的所有残差样本。在这种情况下,预测块1103具有与残差块1105相同的尺寸。在另一示例中,图像块1101可以被划分为包含两个预测块1103和一个残差块1105的编码单元。在这种情况下,每个预测块1103包含编码单元的预测样本的一部分,并且残差块1105包含编码单元的所有残差样本。在又一示例中,图像块1101被划分为包含两个预测块1103和四个残差块1105的编码单元。编码单元中的残差块1105的划分样式可以在位流1111中信令通知。这样的位置样式可以包括HEVC中的残差四叉树(Residual Quad-Tree,RQT)。此外,图像块1101可仅包含图像样本(或像素)的亮度分量(例如,光),表示为Y分量。在其他情况下,图像块1101可以包含图像样本的Y、U、和V分量,其中U和V指示蓝色亮度和红色亮度(UV)色彩空间中的色度分量(例如,颜色)。
可以采用变换来进一步压缩信息。具体地,可以采用变换块1107来进一步压缩残差块1105。变换块1107包含诸如逆离散余弦变换(DCT)和/或逆离散正弦变换(DST)之类的变换。预测块1103与图像块1101之间的差通过采用变换系数来适应变换。通过指示变换块1107的变换模式(例如,逆DCT和/或逆DST)和相应的变换系数,解码器可以重建残差块1105。当不需要精确的再现时,可以通过舍入某些值来进一步压缩变换系数,以更好地适应变换。此过程称为量化,并根据描述允许的量化的量化参数执行。因此,将变换块1107的变换模式、变换系数、和量化参数作为变换残差信息存储在变换残差块1109中,在某些情况下,该变换残差块1109也可简称为残差块。
然后,可以在位流1111中对预测块1103的预测信息和变换残差块1109的变换残差信息进行编码。可以存储位流1111和/或将其发送至解码器。解码器随后可以反向执行该过程以恢复图像块1101。具体地,解码器可以利用变换残差信息来确定变换块1107。然后,变换块1107可以与变换残差块1109结合使用,以确定残差块1105。然后可以使用残差块1105和预测块1103来重建图像块1101。然后可以相对于其他解码图像块1101定位图像块1101以重建帧并将此类帧定位以恢复编码的视频。
应注意,一些预测块1103可以被编码而不会生成残差块1105。但是,这种情况不会使用变换块1107,因此不再进一步讨论。变换块1107可以用于帧间预测的块或帧内预测的块。此外,变换块1107可以用于由指定的帧间预测机制(例如,基于平移模型的运动补偿)生成的残差块1105,但是可以不应用于由其他指定的帧间预测机制(例如,基于仿射模型的运动补偿)生成的残差块1105。
图12是根据本公开实施例的用于视频编解码的示例计算设备1200的示意图。计算设备1200适于实现本文描述的公开实施例。计算设备1200包括用于接收数据的入口端口1220和接收器单元(Rx)1210;用于处理数据的处理器、逻辑单元、或中央处理单元(centralprocessing unit,CPU)1230;用于发送数据的发射器单元(TX)1240和出口端口1250;用于存储数据的存储器1260。计算设备1200还可包括耦合到入口端口1220、接收器单元1210、发射器单元1240、和出口端口1250的光电(optical-to-electrical,OE)组件和电-光(electrical-to-optical,EO)组件,用于光信号或电信号的输入和输出。在一些示例中,计算设备1200还可包括无线发射器和/或接收器。
处理器1230由硬件和软件实现。处理器1230可以实现为一个或多个CPU芯片、核(例如,作为多核处理器)、现场可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)、和数字信号处理器(digital signal processor,DSP)。处理器1230与入口端口1220、接收器单元1210、发射器单元1240、出口端口1250、和存储器1260通信。处理器1230包括编解码模块1214。编解码模块1214实现上述公开的实施例。例如,编解码模块1214实现、处理、准备、或提供各种编解码操作。因此,包括编解码模块1214为计算设备1200的功能提供了实质性的改进,并且实现了计算设备1200到不同状态的转换。可替代地,编解码模块1214被实现为存储在存储器1260中并由处理器1230执行的指令(例如,作为存储在非暂时性介质上的计算机程序产品)。
存储器1260包括一个或多个磁盘、磁带驱动器、和固态驱动器,并且可以用作溢出数据存储设备,以在程序被选择以执行时存储程序,并存储在程序执行过程中读取的指令和数据。存储器1260可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容可寻址存储器(ternary content-addressable memory,TCAM)、和/或静态随机存取存储器(staticrandom-access memory,SRAM)。计算设备1200还可以包括用于与终端用户进行交互的输入/输出(I/O)设备。例如,计算设备1200可以包括用于视觉输出的显示器(例如监视器)、用于音频输出的扬声器、以及用于用户输入的键盘/鼠标/轨迹球等。
图13是示出点云媒体的系统1300的示例。特别地,系统1300示出了点云媒体的帧的各个示例。这些示例包括男人1302、正面女人1304、和背面女人1306。在一些实施方式中,系统1300可以包括点云媒体的更多或更少示例。点云媒体可以包括对象或人的虚拟表示及其在三维(3-D)空间中一段时间内的相应移动。
通常,点云媒体包括在3-D空间中的一组数据点,这些数据点勾勒了3-D对象的外表面。例如,对象可以包括人、商品、和真实世界的对象。例如,可以通过相机实时地记录这些对象,并且在三维空间中将对象虚拟地显示在显示器或投影屏幕上。点云媒体的帧可以包括对象在特定时间点的3D表示。点云媒体的连续帧表示点云媒体的动态表示。
描述了以下首字母缩略词的定义:帧组(Group of Frame,GoF)–在固定的时间内配准的用于进一步处理的一组点云。图像组(Group of Pictures,GoP)–从点云导出的用于视频压缩编码的一组投影。点云压缩(Point cloud compression,PCC)–一种压缩点云媒体以进行传输的技术。
基于视频的PCC编解码解决方案是基于将3D点云数据分割为2D投影patch。基于视频的PCC广泛用于诸如沉浸式6自由度、动态AR/VR对象、文化遗产、GIS、CAD、自主导航等内容。
点云媒体已成为包括娱乐业、智能汽车导航业、地理空间检查、现实世界对象的3D建模、和可视化在内的各种应用中不可或缺的部分。在这些应用的每一个中,各种客户端设备可以显示和示出点云媒体。考虑到不均匀的采样几何形状,使用紧凑表示来存储和传输这种数据是有益的。
例如,客户端设备可以使用点云媒体来为制造零件、计量和质量检查、以及大量的可视化、动画、渲染、和批量定制应用创建3-D计算机动画绘图(computer animateddrawing,CAD)模型。在一些示例中,如在医学成像中经常执行的,点云媒体还可以用于表示体积数据,例如在可视化骨头、手臂、或腿所占据的空间时使用。
与现有的3D演示相比,不规则的点云表面(例如勾勒一个人的点云表面)更为常见,适用于更广泛的传感器和数据采集策略。例如,在虚拟现实世界中进行3D演示或在远程呈现环境中进行远程渲染时,虚拟图形的渲染和实时指令将作为密集点云数据集进行处理。例如,在通过远程呈现环境在虚拟现实世界中呈现男人1302、正面女人1304、和背面女人1306的示例中,这些单点云帧中的每一个都将被处理为密集点云数据集。
系统1300示出了由特定时间点的点云媒体帧表示的不同对象。设备(例如客户端设备)可以在一段时间内显示点云媒体的连续帧。在一些示例中,设备可以在沉浸式六自由度(six degrees of freedom,6DoF)环境、动态增强现实(augmented reality,AR)和虚拟现实(virtual reality,VR)环境、文化遗产环境、地理信息系统(geographic informationsystem,GIS)环境、计算机辅助设计(computer-aided design,CAD)、和自主导航系统中显示点云媒体。
可以接收、显示、和发送点云媒体的设备可以包括客户端设备,诸如个人计算机、手持设备、电视、导航系统或可以显示点云媒体的其他设备。在一些实施方式中,这些设备可以将点云媒体存储在其内部存储器中或将点云媒体存储在某个外部存储设备中。因为存储点云媒体需要大量存储空间,所以通常在外部存储设备上存储和访问点云媒体。
对于用来捕获和中继点云媒体的客户端设备,这些客户端设备可以依赖于多重采样技术和数据压缩技术来减少存储和/或传输点云媒体所需的带宽。在某些情况下,由于点云媒体的单个帧的绝对大小,存储和传输点云媒体的动态表示非常复杂。例如,点云媒体的单个帧可以包含大量数据,例如数百GB。因此,存储和发送点云媒体的多个帧需要数据压缩和编码技术,以确保大量的点云媒体帧能够跨各种介质(这些介质可能会导致数据丢失)正确传输。
图14是示出点云帧序列的系统1400的示例。特别地,系统1400示出了动态点云媒体序列,该动态点云媒体序列表示在不同时间戳处的点云媒体的帧序列。例如,系统1400包括在第一时间戳处的第一点云帧1402、在第二时间戳处的第二点云帧1404、和在第三时间戳处的第三点云帧1404。第一点云帧、第二点云帧、和第三点云帧构成了一个动态点云序列,当实时查看时,该动态点云序列示出了在三维环境中,在递增的时间戳上,在1400中的女人向前移动右脚的过程。可以按任何时间单位(例如秒或微秒)测量上述递增时间戳。
系统1400示出了点云媒体的帧1402的边界框1408、点云媒体的另一帧1404的边界框1410、以及点云媒体的另一帧1406的边界框1412。每个点云媒体的边界框都包括三维(例如X维度、Y维度、Z维度)中的固定网格,这三个维度分别由u1、v1、d1位置坐标表示。
边界框包含可以为空或填充有数据的点。在一些示例中,空点可以是无效点。在一些示例中,占用点可以包括一个或多个属性。无效点可以包括点云媒体的帧中没有属性的位置。另一方面,占用点可以包括点云媒体的帧中具有至少一个属性的位置。属性可以包括例如色度、亮度、反射率、和颜色。边界框内的点可以通过特定的坐标系标识。例如,点云媒体的帧1402的边界框1408内的点可以由u1、v1、d1坐标系表示。
通常,当客户端设备通过网络向另一客户端设备发送点云媒体的一个或多个帧时,点云媒体的每个帧都将被编码。编码可确保正确传输,并确保在接收方客户端设备上接收数据时不会丢失数据。但是,因为点云媒体的一个帧的大小可能就超过数百GB,故对点云媒体的帧进行编码可能会很复杂。例如,试图对第一点云帧1402进行编码的系统(例如客户端设备)将需要对五百GB的数据进行编码,这样做会浪费时间和资源。因此,需要依赖于边界框(例如边界框1408)来对点云媒体的特定帧进行编码的不同编码技术。如下所述,边界框表示允许系统以压缩格式对点云媒体的单个帧进行编码。
在一些实施方式中,使用基于视频的点云压缩(V-PCC)编码器来编码点云媒体的帧。V-PCC编码器基于将点云媒体的帧分割为一组三维patch来操作。三维patch通过三维边界框呈现并操作用于传输。这将在下面进一步描述。
图15是将三维patch边界框转换为二维patch投影的变换过程1500的示例。在一些实施方式中,变换过程1500由V-PCC编码器使用V-PCC编码解决方案来执行。
在V-PCC编码解决方案期间,V-PCC编码器使用三维边界框对点云媒体的帧进行编码。通常,迭代一组点并将其投影到边界框,然后基于平滑连续表面标准的定义对patch进行分割。每个patch对应于特定且唯一的索引和相应的3-D坐标。此外,存在匹配的patch列表以确保其在列表中的顺序相似,并且此列表中的匹配patch具有同一索引。
首先,3-D点云媒体的帧被分割成一组三维(3-D)patch边界框或分割部分,例如一个或多个3-Dpatch边界框1504。3-D patch边界框1504包括以下参数:u1、v1、d1、u1的大小、v1的大小、和d1的大小。3-D patch边界框1504的参数指示3-Dpatch边界框1504在点云3-D边界框1502内的尺寸和位置。在一些实施方式中,系统针对点云媒体的整个帧生成多个3-Dpatch边界框,以覆盖帧内的对象。每个3-Dpatch边界框的位置可以彼此靠近。在一些实施方式中,每个3-Dpatch边界框在覆盖点云3-D边界框1502内的对象时可以彼此重叠。
接着,V-PCC编码器为每个3-D patch边界框(例如3-D patch边界框1504)定义投影平面1508为点云3-D边界框1502的侧面之一。V-PCC编码器定义用于选择投影平面的标准。例如,该标准包括3-D patch边界框1504的每一侧的平滑连续表面标准的定义。当平滑连续表面标准包括投影到3D边界框1502的一侧并且是每个投影方向中的最大面积的投影的3-Dpatch边界框1504的区域时,选择该投影平面。例如,可以通过使用一种或多种平滑连续算法来确定平滑连续表面。可以将平滑连续表面定义为具有最少数量的模糊或阻塞数据点的表面。然后,V-PCC编码器比较每个方向上的每个平滑表面,以确定哪个方向将生成将包括3D边界框1502一侧上的最大面积的2D边界框。
如系统1500中所示,投影平面1508对应于3-D patch边界框1504的具有最大面积的平行投影区域。换言之,如果V-PCC编码从投影平面1508的对侧(例如侧面1505)观看3-Dpatch边界框1504,则V-PCC编码器将确定当patch 3-D边界框1504中包括的属性点投影到投影平面1508上时,与投影到点云3-D边界框1502的其他侧面相比,该投影将展现出最大面积。因为包括在点云3-D边界框1502内的点云媒体的帧是静止不动的,故V-PCC编码器可以分析从点云3-D边界框1502的各个侧面的投影,以确定哪个投影将包括最大面积。因此,V-PCC编码器确定投影平面1508会生成来自patch 3-D边界框1504的属性投影的最大面积。因此,该投影在patch 2-D投影边界框1506中显示。patch 2-D投影边界框1506由边界框的近层和远层上的u坐标和v坐标定义。例如,图17示出了深度图像1708和1712和属性图像1710和1714的近层1704和远层1706。
一旦选择了投影平面,例如投影平面1508,就绘制了patch3-D边界框1504的法线轴,从而V-PCC编码器知道投影的方向。例如,V-PCC编码器绘制与投影平面1508垂直或正交的轴,在点云3-D边界框1502中用“n”表示。此外,V-PCC编码器生成patch3-D边界框1504的切线轴和双切线轴,在点云3-D边界框1502中用“bt”和“t”表示。响应于V-PCC编码器绘制在点云3-D边界框1502内的法线轴、切线轴、和双切线轴,在patch3-D边界框1504上的双切线轴和正交轴之间生成了右手3-D坐标系。
此时,V-PCC编码器沿着法线轴“n”将patch3-D边界框1504投影到点云3-D边界框1502的投影平面1508。如过程1500中所示,投影的结果是在点云33-D边界框1502的特定侧面上的二维(2-D)投影1506。
在一些实施方式中,点云媒体的帧的3-D投影被投影到点云3-D边界框1502的每一侧上。当帧被投影到点云3-D边界框1502的一侧上时,可以获得2-D边界框的一组坐标。例如,二维边界框的该组坐标包括u0、v0、size_u0、和size_v0。如边界框1510中所示,V-PCC编码器将边界框1510内的点云的表面投影到投影平面1512上。
图16是示出3-D到2-Dpatch投影结果的系统1600的示例。系统1600示出了边界框1602,在边界框1602的每一侧上都具有2-Dpatch投影。如关于系统1500所描述的,在边界框的每一侧上的投影基于patch的正交方向。每个2-Dpatch投影包括描述patch的2-D投影的2-D坐标的patch索引、u0、v0、size_u0、和size_v0。patch索引标识与相应边界框1602的特定侧相关联的特定patch。u0定义了该patch在投影平面上的X坐标。v0定义了该patch在投影平面上的Y坐标。size_u0和size_v0分别描述了与每个patch坐标u0和v0相对应的大小。
投影到边界框1602上的patch形成“patch分块组(patch tile group)”。patch分块组的每个元素对应于特定patch,该patch包括特定且唯一的索引,并且对应于3-D点云帧内的唯一3-D边界框。
除了生成边界框1602上的投影图以外,系统还将patch 2-D和3-D数据存储在存储器中。例如,以下所示代码提供了用于生成patch和存储2-D和3-D patch数据作为用于视频编解码的补充数据的一个示例性解决方案:
用于视频编解码的补充信息生成
上述代码示出了“patch”的定义;patch 3-D信息如何转换为2-D patch信息;投影过程;以及重建过程。特别地,示出了如何根据帧的2-D投影来解释这些帧。
另外,对于帧中的每个patch,V-PCC编码器生成投影图。投影图包括被提供给视频编码器的附加文本文件。特定patch的2-D数据,例如u0、v0对应于投影的X坐标和Y坐标的左上角。size_u0和size_v0对应于相应patch的高度和宽度。对于3-D patch投影数据,投影图包括u1、v1、d1坐标,其对应于X、Y、Z轴。特别地,u1、v1、d1对应于投影面的索引,或与法线轴对应的投影面。例如,如系统1600中所示,边界框1602的每一侧包括其自己的索引。因此,每个索引表示特定的投影轴。因此,u1、v1、d1是边界框1602中示出的X、Y、Z坐标的重建。
在一些实施方式中,u1、v1、d1坐标对应于局部坐标系。X、Y、Z坐标对应于全局坐标系。例如,当确定了法线轴(对应于投影轴)时,V-PCC编码器可以在3-D空间内旋转投影轴以与Z轴对齐。此时,V-PCC编码器可以在局部坐标系和全局坐标系之间转换。
所提的解决方案还提供了用于基于辅助信息的运动补偿的附加运动矢量候选,该辅助信息在视频压缩技术中用作视频压缩解决方案的附加输入。
图17是用于云点媒体的属性分割的系统1700的示例。一旦从投影生成了每个3-D点云的2-D patch,便为patch分块组内的每个2-D patch生成一组图像。因为在3-D到2-D投影期间,深度和属性信息丢失,所以系统1700为patch分块组内的2-D patch中的每个patch生成该组图像。生成该组图像以保留与投影发生之前点云媒体相对应的深度和属性信息。
在一些实施方式中,patch分块组包括patch 1702。系统从特定patch 1702生成两组图像。第一组图像包括近层1704。第二组图像包括远层1712。近层1704包括深度数据的图像1708和属性数据的图像1710。另外,远层1706包括深度数据的图像1712和属性数据的图像1712。因此,2-D投影中的每个点都具有深度信息和属性信息,例如颜色、纹理、亮度等。特定的层(例如,近层1704和远层1706)示出了3-D点云对象的2-D投影的两侧。
图18是示出具有属性信息的点云媒体的打包patch的系统1800的示例。在一些实施方式中,属性信息可以包括纹理信息、深度信息、颜色信息、亮度、反射率、和色度信息。打包的patch组1802示出了来自点云媒体的帧(例如点云媒体的帧1402)的一个或多个投影的patch、2-D帧。patch的集合创建patch分块组,并且patch分块组组合在点云媒体的给定帧的patch数据组中。patch数据组的每个元素(称为“patch”)均包含特定且唯一的索引,并且对应于3-D点云帧内的唯一3-D边界框。打包的patch1802可以被编码并且随后被发送。特别地,如果一个点云帧中的patch在参考点云帧(例如,前一帧)中具有对应的参考patch,则在位流中传输参考patch分块组中的参考patch的索引。这将在下面进一步描述。
图19是用于执行运动估计的系统1900的示例。在现有的视频压缩解决方案中,使用运动估计过程来估计来自2-D投影图像(例如,patch)的数据。系统1900示出了该运动估计过程。框1902中所示的编码和解码块使用编码器生成运动估计,在数据转换信道上发送运动估计或进行存储,并在解码器处对发送的运动估计进行解码。结果得到新恢复的帧。
框1904描绘了运动估计过程的图示。例如,编码器生成参考帧中的相似patch图像的预测。例如,参考帧可以是前一帧。在一些实施方式中,编码器通过比较参考帧和当前帧之间的样本值来确定相似度。例如,样本值可能会因属性和位置而异。此过程称为运动估计,目的是在参考帧中找到看起来与当前帧中的图像相似的对应图像。编码器在参考帧的相邻像素内搜索像素。当找到匹配图像时,编码器对需要较少信息量的相似度进行编码,而无需对来自当前帧和参考帧的每个图像进行具体编码。总体而言,这减少了传输带宽。因此,编码器分析当前帧和前一帧以获取相似图像。确定与当前帧和参考(前一)帧之间的每个图像的属性和位置信息相关联的修正数据。然后,编码器为当前帧和将来的预测帧对修正数据进行编码。这通常用于传输2D运动视频或2D图像。
由于patch打包方法的细节,对于每个点云媒体,patch在投影帧内的位置可能有很大不同。因此,在不同的帧之间,patch可以从一个位置跳到另一位置,例如跨3D边界框的不同侧面。这样,无法满足通常用于2-D运动视频或2-D图像的帧间预测编解码算法中使用patch位置的预测运动估计,因此不能正确地编码和发送。因此,框1902和1904虽然有用,但是需要增强以发送使用patch数据组的运动估计数据。因此,以下描述的技术通过将辅助信息添加到运动矢量候选列表来增强对2-D patch数据使用运动估计的预测的使用。
在要发送2-D patch之间的时间预测的情况下,为相似的patch提供有效的运动矢量候选,以确保在发送期间的最大压缩效率。如下面进一步描述的,可以通过替换现有的候选或者引入从patch辅助信息生成的附加候选来改进现有的运动矢量候选列表构造方法。
在一些实施方式中,帧中的某个patch具有特定的2D坐标,该2D坐标通过patch元数据连接到点云媒体内的3D坐标。patch数据(也称为“辅助信息”)基于patch的相应3D位置和2D平面上的关联投影位置。在一些实施方式中,辅助信息或patch元数据可以包括patch索引、u0、v0、u1、v1、和d1。u0和v0对应于2-D投影中patch的左上角。u1、v1、d1代表3-D域中的X、Y、Z坐标。因此,u0和v0坐标连接到u1、v1、d1坐标。该连接基于u1、v1、d1坐标与u0和v0坐标之间的数学关系。2-D坐标和3-D坐标之间的此连接可用于生成运动矢量候选、更新矢量候选列表、以及更新运动矢量搜索过程。
图20是示出当前帧的patch与参考帧的patch之间的运动矢量候选的系统的示例。客户端设备的编码器,例如,V-PCC编码器,分析当前patch帧与先前编码的参考帧的关系。编码器需要首先解码先前编码的参考帧,以便将其与当前帧进行比较。然后,编码器将当前patch帧分成一个或多个称为预测单元(prediction unit,PU)的小块。存储在每个PU中的信息量很大,因此,为了减少发送时的信息量,编码器依赖于差分编码方法。编码器生成残差帧。例如,从当前PU(属于当前帧)减去预测单元PU(属于参考帧的patch),例如,当前PU–预测单元PU,以生成残差帧。编码器随后仅编码残差帧以用于传输。例如,以下代码描述了此过程:
1.将当前帧分为N个PU块
2.从当前辅助帧生成PU_pred候选列表
3.for i=0to N-1
获得PU_cur[i]的左上角的(x,y)坐标
对参考图像中的预测PU_pred执行搜索
cost[k]=max
while cost[k]>minCost[k-1]do
cost[k]=(PU_cur[i]–PU_pred[k])+lambda*BitSize
在位流中编码:
MV=PU_cur[i](x,y)–PU_pred[k](x,y)
ResidualUnit=Transform(PU_cur[i]-PU_pred[k])
上述代码描述了基于率失真问题最小化的编解码模式选择过程。在一些实施方式中,编码器在先前编码的参考帧中搜索预测单元PU,并针对编码残差所要求的比特量执行搜索以匹配到当前PU的值。选择预测单元PU的过程包括率失真最小化问题,其中,率对应于编解码的残差的比特大小,失真对应于残差的L2范数,该范数对应于残差相距于原始值的距离。然后,编码器对残差信息和对应的位移信息进行编码,位移信息变成运动矢量。然而,当编码和发送点云媒体时,该实施方式需要改进。
通过查看patch数据中包括的附加辅助信息来增强编码器。对于当前帧,辅助信息是从当前的2D patch和相应的3D点云生成的。对于参考帧,辅助信息是从先前编码的参考2-Dpatch和相应的3-D点云生成的。编码器可以通过将来自当前帧的patch的辅助信息(例如u0、v0、u1、v1、d1)与来自参考帧的patch的辅助信息(例如u0、v0、u1、v1、d1)进行比较,从而预测块的位置。该比较基于这些patch的辅助信息得出patch之间的距离。
在一些实施方式中,编码器首先确定3-D差。由于CU的起始像素的3-D位置可以不同,所以3-D差对应于当前辅助信息帧和参考辅助信息帧之间的3-D差。方程包括以下:
然后,编码器计算2-D差。考虑到占用块分辨率(occupancy block resolution,OBR),该2-D差对应于当前辅助信息帧和参考辅助信息帧之间的2-D差。OBR对应于patch数据组中的坐标相对于patch投影大小的比例。例如,patch宽度等于patch投影大小乘以OBR。然后,编码器在2-D域中生成运动矢量。方程包括以下:
最终导出的运动矢量是这两个运动矢量分量的组合。例如,最终导出的运动矢量对应于:
在非标准解中,运动矢量(motion vector,MV)被估计为搜索范围的中心的候选。在将导出的估计MV添加为候选之后,编码器将使用RDO从预测MV、零MV、估计MV、和来自分区2Nx2N的MV中进行选择,以确定搜索范围的中心。如果估计MV具有最小的率失真(rate-distortion,R-D)成本,其将用于视频压缩。
图21示出了用于融合候选列表构造的导出过程2100。在一些实施方式中,当使用融合模式预测某个预测单元时,从位流中解析出指向融合候选列表中的条目的索引,并且该索引用于恢复运动信息。该列表的构造在HEVC标准中指定,并且可以总结为以下一系列步骤:
步骤1:初始候选导出
步骤1.1:空间候选导出
步骤1.2:空间候选的冗余校验
步骤1.3:时间候选导出
步骤2:附加候选插入
步骤2.1:创建双向预测候选
步骤2.2:插入零运动候选
这些步骤也在图21中示意性地示出。对于空间融合候选导出,在位于五个不同位置的候选中选择最多四个融合候选。对于时间融合候选导出,在两个候选中选择最多一个融合候选。由于在解码器中假定每个预测单元的候选数目恒定,因此当候选的数目未达到切片报头(slice header)中用信号通知的最大融合候选数目(MaxNumMergeCand)时,会生成附加候选。由于候选的数目是恒定的,因此最佳融合候选的索引使用截断一元二值化(truncated unary binarization,TU)进行编码。如果CU的大小等于8,则当前CU的所有PU共享单个融合候选列表,其与2Nx2N预测单元的融合候选列表相同。
在下文中,详细说明与上述步骤有关的操作。
图22示出了针对空间融合候选的冗余校验考虑的空间融合候选和候选对的位置的系统2200。在空间融合候选的导出中,在位于图22所示的位置的候选中选择最多四个融合候选。导出顺序为A1、B1、B0、A0、B2。仅当位置A1、B1、B0、A0的任何PU都不可用(例如,因为其属于另一个切片或分块)或进行帧内编码时,才考虑位置B2。在添加位置A1处的候选之后,剩余候选的添加会进行冗余校验,这确保了将具有相同运动信息的候选从列表中排除,从而提高了编码效率。为了降低计算复杂度,在提到的冗余校验中并未考虑所有可能的候选对。取而代之的是,仅考虑在图22中用箭头链接的对,并且仅当用于冗余校验的相应候选具有不相同的运动信息时,才将该候选添加到列表中。重复运动信息的另一个来源是与不同于2Nx2N的分区相关联的“第二PU”。举例来说,图22分别描绘了在Nx2N和2NxN的情况下的第二PU。当当前PU被划分为Nx2N时,不考虑位置A1处的候选用于列表构造。实际上,添加该候选将导致两个预测单元具有相同运动信息,这对于在编码单元中仅具有一个PU是冗余的。类似地,当当前PU被划分为2NxN时,不考虑位置B1。
图23是示出Nx2N分区和2NxN分区的第二PU的位置的系统2300。特别地,系统2300描述了时间候选推导过程。在此步骤中,仅将一个候选添加到列表中。特别地,在该时间融合候选的导出中,基于属于给定参考图像列表内与当前图像具有最小POC差的图像的共位PU(co-located PU)来导出缩放运动矢量。在切片报头中显式地信令通知要用于导出共位PU的参考图像列表。如图24(系统2400)中的虚线所示获得用于时间融合候选的缩放运动矢量,该缩放运动矢量使用POC距离tb和td从共位PU的运动矢量缩放,其中,tb被定义为当前图像的参考图像与当前图像之间的POC差,td被定义为共位图像的参考图像与该共位图像之间的POC差。时间融合候选的参考图像索引被设置为等于零。对于B-切片,获得两个运动矢量,一个运动矢量用于参考图像列表0,另一个运动矢量用于参考图像列表1,并将这两个运动矢量组合以产生双向预测融合候选。
图25是示出时间融合候选的候选位置的系统2500。如系统2500所示,在属于参考帧的共位PU(Y)中,在候选C0和C1之间选择时间候选的位置。如果位置C0的PU不可用,或其是帧内编码的,或其在当前CTU之外,则使用位置C1。否则,位置C0用于导出时间融合候选。
除了时空融合候选之外,还有两种其他类型的融合候选:组合双向预测融合候选和零融合候选。组合双向预测融合候选通过利用时空融合候选来生成。组合双向预测融合候选仅用于B-切片。组合双向预测候选通过将初始候选的第一参考图像列表运动参数与另一候选的第二参考图像列表运动参数进行组合来生成。如果这两个元组提供不同的运动假设,则这两个元组将形成新的双向预测候选。作为示例,系统2500示出了以下情况:原始列表(左侧)中的两个候选(具有mvL0和refIdxL0或mvL1和refIdxL1)用于创建添加到最终列表(右侧)的组合双向预测融合候选。关于组合的规则很多,这些规则被考虑用于生成这些附加融合候选。
图26示出了组合双向预测融合候选的示例表格2600。插入零运动候选以填充融合候选列表中的其余条目,因此达到了MaxNumMergeCand容量。这些候选具有零空间位移和参考图像索引,该参考图像索引从零开始,并且在每次将新的零运动候选添加到列表时都会增加。对于单向预测和双向预测,这些候选使用的参考帧的数量分别为一或二。最后,不对这些候选对象执行冗余校验。
图27是包括使用辅助数据的运动估计过程的修改的系统2700的示例。系统2700示出了系统1900中的组件1902中示出的运动估计过程的编码器部分的附加组件。例如,系统2000包括辅助帧2002(也称为patch帧数据单元或patch帧数据组)。系统2700还包括新帧2704、运动估计组件2706、运动熵编解码器2708、运动补偿插值2710、减法模块2712、残差编码器2014、残差解码器2016、和加法器2018。
运动估计组件2706接收辅助帧2702、新帧2704、以及来自残差解码器2716和加法器2718的先前编码的(新解码的)残差帧。
在一些实施方式中,当运动估计组件2706接收包括帧的patch数据的新帧2704时,运动估计组件2706比较与辅助帧2702内的patch相关联的3-D坐标。这是因为每个辅助帧2702都包含自己的patch元数据(或辅助数据),该patch元数据将解释patch数据的2D坐标到边界框内点云媒体的3D坐标之间的转换。特别地,运动估计2706使用辅助帧2702中的patch元数据来生成参考帧。然后,来自当前帧(例如新帧2704)的当前3-D信息以及来自先前帧(例如参考帧)的3-D信息可用于确定patch的位置。例如,运动估计2706可确定新帧2704中的此patch与参考帧中的另一patch来自3-D坐标中的相同位置,其中参考帧中的patch位于与新帧2704不同的2-D位置。
然后,运动估计组件2706对新帧2704中的每个patch执行该处理,并提取2-D信息以获得对应的3-D信息。运动估计组件2706获得辅助帧2702中的patch的2-D信息。使用新帧2704中的patch的2-D信息和辅助帧2702中的patch的2-D信息,运动估计组件2706例如通过比较来自新帧2704的patch的u0和v0位置坐标与辅助帧2702中patch的u0和v0位置坐标来确定这两个patch之间的2-D距离,接着,可以确定在2-D中patch如何从其在辅助帧2702中的位置移动到其在新帧2704中的位置。辅助帧2702中的patch的u0、v0和新帧2704中的patch的u0、v0之间的差对应于运动矢量候选。运动估计组件2706将如此生成的运动矢量候选插入运动矢量候选列表中。运动估计组件2706执行将新帧2704中的每个patch与辅助帧2702中的每个patch进行比较的过程。如果发生匹配,则将这些匹配的patch之间的2-D坐标之间的差添加到运动矢量候选列表中。
在一些实施方式中,一旦运动矢量候选被添加到运动矢量候选列表,则对3-D坐标列表中的patch执行3-D运动搜索。
在一些实施方式中,编码器包括场相邻(filed neighbor’s)候选列表。场相邻候选列表可以包括用于查看2-D图像内的运动的可能位置。运动估计组件2706可以针对每个patch帧修正场相邻候选列表中的位置。
以下代码示出了使用辅助信息细化参考帧中的匹配patch的过程。例如,使用现有2-D信息和来自辅助3-D信息文件的3-D信息,辅助3-D信息文件从用于参考帧的点云压缩解决方案缓冲器生成。例如,该代码包括:
在上面的代码中,V-PCC编码器为视频编码器寻找参考帧中的匹配patch。V-PCC编码器使用与每个帧中的patch相对应的相同的2-D和3-D信息以及关于图16描述的投影信息。在此步骤中,V-PCC编码器会生成新的候选以进行运动修正。该算法以以下方式执行:V-PCC编码器循环遍历一组帧中的每个帧。V-PCC编码器从特定参考帧的patch列表中提取patch。之后,V-PCC编码器从当前帧中提取特定的patch。
V-PCC编码器基于运动矢量候选来估计率失真优化中的成本。由率失真优化函数中的估计成本返回的成本或距离,例如度量或向量空间中的度量距离,对应于运动矢量候选列表中的最小成本。特别地,最小成本对应于X差的平方值、Y差的平方值、和Z差的平方值的和。例如,从当前帧中的patch的X坐标减去参考帧中的patch的X坐标,以产生X差(“Xdif”);从当前帧中的patch的Y坐标减去参考帧中的patch的Y坐标,以产生Y差(“Ydif”);从当前帧中的patch的Z坐标减去参考帧中的patch的Z坐标,以产生Z差(“Zdif”)。然后,PCC编码器将Xdif的平方、Ydif的平方、和Zdif的平方相加,以生成参考帧中的patch与当前帧中的patch之间的特定距离。
重复进行率失真优化中的估计成本的过程,直到找到最小的成本或距离。当找到最小成本或距离时,使用X坐标、Y坐标、和最小成本值更新pcMvFieldNeighbors变量,该最小成本值对应于与参考帧中的patch相关联的正确patch。
然后,V-PCC编码器基于修正的运动矢量候选和融合候选执行运动补偿。在一些实施方式中,从融合候选列表中生成新实体。该实体用作执行运动估计的预测器,以为运动估计找到更好的预测。例如,基于patch的3-D信息和投影图像中的相应2-Dpatch位置来更新运动矢量候选列表。另外,可以基于patch的3-D信息和投影图像中的相应2-D位置来更新融合候选列表。因此,添加这些信息以进行视频压缩和解压缩。基于辅助信息为视频编码器创建这些信息,并且为视频解码器创建相同的信息。不传送或计算运动矢量候选列表,而是由V-PCC编码器在接收到具有patch元数据的2-Dpatch时生成运动矢量候选列表。根据“视频编解码的补充信息生成”代码集生成运动矢量候选列表。V-PCC编码器和V-PCC解码器均执行“视频编解码的补充信息生成”以生成运动矢量候选列表。因此,不需要在V-PCC编码器和V-PCC解码器之间传输附加运动矢量候选列表或其他信息。
在一些实施方式中,从点云编码位流生成辅助信息文件。点云编码位流将在下面进一步描述和说明。辅助信息用于在V-PCC编码器和V-PCC解码器上生成新的运动矢量候选,V-PCC编码器和V-PCC解码器都使用相同的方法来确保V-PCC编码器和V-PCC解码器生成相同的结果。通过使用辅助信息,V-PCC编码器和V-PCC解码器生成新的运动矢量候选和融合候选列表输入。然后,将新的运动矢量候选和融合候选列表提供给现有的视频编码/解码技术。
图28是V-PCC单元有效载荷的包流2800表示的示例。包流2800包括V-PCC位流2802。V-PCC位流2802包括一个或多个V-PCC单元。例如,V-PCC单元2804包括V-PCC单元头2806和V-PCC单元有效载荷2808。V-PCC单元有效载荷2808包括序列参数集2810、patch数据组2812、占用视频数据2814、几何视频数据2818、和属性视频数据2816。占用视频数据2814包括2-D帧数据。属性视频数据2816包括一组两个2-D帧,例如,近层和远层。几何视频数据2818也包括一组两个2-D帧,例如,近层和远层。
patch数据组单元类型包括多个数据集。例如,patch数据组单元类型2812包括序列参数集2820、帧几何参数集2822、几何patch参数集2826、帧参数集2826、帧属性参数集、和属性patch参数集2830。另外,patch数据组单元类型2812包括多个patch分块组2832。如前所述,patch分块组包括多个patch。例如,patch数据组包括一组patch分块组T(i,0)至T(i,m)。重建点云帧所需要的信息来自V-PCC单元有效载荷的占用、属性、和几何分量。“I”是对应于3-D PCC帧“I”的patch数据组索引。M+1是针对3-D点云帧“I”生成的3-D patch的数量;T(i,j)在本文档中指代patch。
图29是V-PCC单元有效载荷的视觉表示2900的另一示例。如V-PCC单元有效载荷的视觉表示2900所示,箭头表示从参考帧/数据单元到当前数据单元的预测流。仅在同一V-PCC数据帧内才允许在近层和远层之间进行预测。例如,视觉表示2900示出了3D点云、patch数据组、近层和远层的几何视频数据、近层和远层的属性视频数据、以及占用视频数据。
图30是示出用于使用3D辅助数据执行运动估计的过程3000的示例的流程图。过程3000可以由包括图27所示的组件的V-PCC编码器或V-PCC解码器执行。
V-PCC编码器基于三维点云数据的连续性数据生成记录媒体的三维点云数据的分割部分(3002)。V-PCC编码器将三维(3-D)点云数据分割成一组3-Dpatch边界框或分割部分,例如3-D patch边界框1504。可以为整个3-D点云数据生成多个分割部分以覆盖3-D点云数据帧内的对象。每个分割部分或3-D patch边界框可以彼此靠近放置,或者在覆盖3-D点云数据内的对象时彼此重叠。
V-PCC编码器将分割的三维点云数据的表示投影到三维边界框的一个或多个侧面上,分割的三维点云数据的表示基于三维边界框的投影侧面而不同(3004)。V-PCC用3-D边界框包围3-D点云数据,以将3-D点云数据的图像投影到3-D边界框的每一侧上,例如图16所示的结果。在一些实施方式中,V-PCC编码器定义用于选择投影到3-D边界框的一侧上的投影平面的标准。例如,该标准可以包括平滑连续表面标准。因此,选择当平滑连续表面标准包括如下投影面积时的特定投影平面:分割部分在边界框的一侧上的投影面积是每个投影方向中的最大面积。可以通过使用一种或多种平滑连续算法来确定平滑连续表面。可以将平滑连续表面定义为具有最少数量的模糊或阻塞数据点的表面。然后,V-PCC编码器比较每个方向上的每个平滑表面,以确定哪个方向将生成将包括3-D边界框的一侧上的最大面积的投影。一旦选择了特定的投影平面,V-PCC编码器则将3D点云数据的特定表面投影到3D边界框的特定投影平面上。在一些实施方式中,V-PCC编码器将3-D点云数据的各种表面投影到3-D边界框的每一侧上。
V-PCC编码器基于分割的三维点云数据的投影表示来生成一个或多个patch(3006)。将图像投影到3-D边界框的侧面后,V-PCC编码器会根据每个投影生成patch。与3-D边界框的侧面上的2-D边界框对应的每个patch均包含一组坐标。该patch对应于3-D边界框侧面上的投影区域。例如,patch的坐标包括patch索引、u0、v0、size_u0、和size_v0。patch索引标识与相应边界框的特定侧面相关联的特定patch。u0定义了patch在投影平面上的X坐标。v0定义了patch在投影平面上的Y坐标。size_u0和size_v0分别描述了与patch的每个坐标u0和v0相对应的幅度。
在一些实施方式中,V-PCC编码器将3-D边界框的每一侧的patch及其对应的坐标信息进行组合,以形成“patch分块组”。Patch分块组的每个元素对应于特定patch,该特定patch包括特定且唯一的索引,并且对应于3-D点云帧内的唯一3-D边界框。例如,打包的patch1802包括patch分块组的组,称为patch数据组。
来自patch数据组中每个patch的坐标信息被包括在投影图中。投影图是一个附加文件,稍后由V-PCC编码器提供给视频编码解决方案。投影图包括每个patch的2D位置信息和3D位置信息。特定patch的2D数据如u0、v0对应于投影的X和Y坐标的左上角。size_u0和size_v0对应于相应patch的高度和宽度。对于3-D patch投影数据,投影图包括u1、v1、和d1坐标,其对应于X、Y、和Z轴。特别地,u1、v1、和d1对应于投影面或者与法线轴对应的投影面的索引。
V-PCC编码器生成一个或多个patch的第一帧(3008)。V-PCC编码器生成从3006生成的patch数据组的帧。可以对该帧进行编码并将其提供给视频压缩解决方案以进行传输。
V-PCC编码器生成第一帧的第一辅助信息(3010)。第一辅助信息对应于第一帧中的特定patch的patch元数据。例如,第一辅助信息可以包括特定patch的patch索引、u0、v0、u1、v1、和d1。
V-PCC编码器生成参考帧的第二辅助信息(3012)。V-PCC编码器提取参考帧,该参考帧是包括一个或多个patch的先前编码的帧。V-PCC编码器在解码参考帧之后从参考帧提取patch,并且提取与来自参考帧的patch相关联的辅助信息。与来自参考帧的patch相关联的辅助信息包括特定patch的patch索引、u0、v0、u1、v1、和d1。
V-PCC编码器基于第一辅助信息和第二辅助信息,识别第一帧中与参考帧的第二patch匹配的第一patch(3014)。V-PCC将与第一帧关联的辅助信息与与来自参考帧的patch相关联的辅助信息进行比较。例如,V-PCC比较与每个patch相关联的patch索引、u0、v0、v1、和d1,以确定这些信息之间的距离。V-PCC编码器将第一帧中的patch与参考帧中的每个patch进行比较,以找到具有最小辅助信息距离的匹配patch。一旦距离最小,则V-PCC编码器表示两个patch之间的匹配patch。
V-PCC编码器基于第一辅助信息和第二辅助信息之间的差来生成第一patch和第二patch之间的运动矢量候选(3016)。当与第一patch和第二patch相对应的辅助信息之间的差与其他patch相比最小时,生成第一patch和第二patch之间的运动矢量候选。将运动矢量候选添加到运动矢量候选列表,该列表用于传输。上述差可以基于率失真优化中的估计成本。由率失真优化函数中的估计成本返回的成本或距离,例如度量或向量空间中的度量距离,对应于运动矢量候选列表中的最小成本。当找到最小成本或距离时,使用X坐标、Y坐标、和最小成本值更新pcMvFieldNeighbors变量,该最小成本值对应于与参考帧中的patch相关联的正确patch。
V-PCC编码器使用运动矢量候选来执行运动补偿(3018)。然后,V-PCC编码器基于修正的运动矢量候选和融合候选执行运动补偿。在一些实施方式中,从融合候选列表中生成新实体。该实体用作执行运动估计的预测器,以为运动估计找到更好的预测。例如,基于patch的3-D信息和投影图像中的相应2-Dpatch位置来更新运动向量候选列表。另外,可以基于patch的3-D信息和投影图像中的相应2-D位置来更新融合候选列表。因此,可以添加该信息以进行视频压缩和解压缩。基于辅助信息为视频编码器创建此信息,并且为视频解码器创建相同的信息。不传送或计算运动矢量候选列表,而是由V-PCC编码器在接收到具有patch元数据的2-D patch时生成运动矢量候选列表。根据“视频编码的补充信息生成”代码集生成运动矢量候选列表。然后,将新的运动矢量候选和融合候选列表提供给现有的视频编码/解码技术。
当第一组件和第二组件之间不存在中间组件(除了线、迹线、或另一介质)时,第一组件直接耦合至第二组件。当第一组件和第二组件之间存在除线、迹线、或另一介质之外的中间组件时,第一组件间接耦合至第二组件。术语“耦合”及其变体包括直接耦合和间接耦合。除非另有说明,否则术语“约”的使用是指包括随后数字的±10%的范围。
尽管在本公开中已经提供了若干实施例,但是可以理解,在不脱离本公开的精神或范围的情况下,可以以许多其他特定形式来实现所公开的系统和方法。本示例被认为是说明性的而不是限制性的,并且本发明的意图不限于在此给出的细节。例如,各种元件或组件可以被组合或集成在另一个系统中,或者某些特征可以被省略或不被实现。
另外,在不脱离本公开的范围的情况下,在各种实施例中以离散或分离的方式描述和示出的技术、系统、子系统、和方法可以与其他系统、组件、技术、或方法组合或集成。改变、替换、和变更的其他示例可以由本领域技术人员确定并且可以在不脱离本文公开的精神和范围的情况下做出。
本说明书中描述的本发明实施例和所有功能操作可以在数字电子电路中或在计算机软件、固件、或硬件中实现,包括在本说明书中公开的结构及其等同结构或其一个或多个的组合。本发明的实施例可以被实现为一种或多种计算机程序产品,即,在计算机可读介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是非暂时性计算机可读存储介质、机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成、或以上一种或多种的组合。术语“数据处理设备”涵盖用于处理数据的所有装置、设备、和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或以上一项或多项的组合的代码。传播的信号是人为产生的信号,例如机器产生的电、光、或电磁信号,其被产生以对信息进行编码以传输到合适的接收器设备。
计算机程序(也称为程序、软件、软件应用程序、脚本、或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且可以以任何形式进行部署,包括作为独立程序或适合在计算环境中使用的模块、组件、子例程、或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件、或多个协调文件(例如,存储一个或多个模块、子程序、或代码部分的文件)中。可以将计算机程序部署为在位于一个站点上或分布在多个站点上并通过通信网络互连的一台计算机或多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器来执行。处理和逻辑流程也可以由专用逻辑电路执行,并且装置可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁,磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或将数据传输到这两个或两个以上大容量存储设备。但是,计算机不必具有此类设备。此外,计算机可以被嵌入在另一设备中,例如,平板计算机、移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,仅举几例。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质、和存储设备,包括例如半导体存储设备,例如,EPROM、EEPROM、和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本发明的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)或键盘和指示设备(例如鼠标或轨迹球)的计算机上实现,用户可以通过键盘和指示设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈、或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音、或触觉输入。
本发明的实施例可以在包括以下的计算系统中实现:后端组件(例如,数据服务器),中间组件(例如,应用服务器),前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该Web浏览器与本发明的实现进行交互),或者一种或多种此类后端、中间、或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“local area network,LAN”)和广域网(“wide area network,WAN”),例如互连网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。
尽管上面已经详细描述了一些实施方式,但是可以进行其他修改。例如,虽然客户端应用被描述为访问代理,但是在其他实施方式中,代理可以被由一个或多个处理器实现的其他应用所采用,例如在一个或多个服务器上执行的应用。另外,附图中描绘的逻辑流程不需要所示的特定顺序或顺序的顺序来实现期望的结果。另外,可以从所描述的流程中提供其他动作,或者可以消除动作,并且可以向所描述的系统添加其他组件或从所描述的系统中删除其他组件。因此,其他实施方式在所附权利要求的范围内。
尽管本说明书包含许多特定的实施细节,但是这些细节不应解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的效果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以被集成在一起在单个软件产品或软件中或打包成多个软件产品。
已经描述了本主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
权利要求是:
Claims (20)
1.一种计算机实现的方法,包括:
一个或多个处理器基于三维点云数据的连续性数据生成记录媒体的所述三维点云数据的分割部分;
所述一个或多个处理器将分割的所述三维点云数据的表示投影到三维边界框的一个或多个侧面,分割的所述三维点云数据的所述表示基于所述三维边界框的投影侧面而不同;
所述一个或多个处理器基于分割的所述三维点云数据的投影表示生成一个或多个patch;
所述一个或多个处理器生成所述一个或多个patch的第一帧;
所述一个或多个处理器生成所述第一帧的第一辅助信息;
所述一个或多个处理器生成参考帧的第二辅助信息;
所述一个或多个处理器基于所述第一辅助信息和所述第二辅助信息,识别所述第一帧中与所述参考帧中的第二patch匹配的第一patch;
所述一个或多个处理器基于所述第一辅助信息和所述第二辅助信息之间的差,生成所述第一patch和所述第二patch之间的运动矢量候选;
所述一个或多个处理器使用所述运动矢量候选执行运动补偿。
2.根据权利要求1所述的计算机实现的方法,其中,所述参考帧对应于先前发送的编码帧,并且所述参考帧被解码以生成所述第二辅助信息。
3.根据前述权利要求中任一项所述的计算机实现的方法,其中,生成所述记录媒体的所述三维点云数据的所述分割部分还包括:
所述一个或多个处理器生成所述三维点云数据媒体上的多个分割部分,以用于后续对所述多个分割部分中的每个分割部分进行投影和编码。
4.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述第一辅助信息包括所述一个或多个patch中的每个patch的索引数据、所述一个或多个patch中的每个patch的二维数据、以及所述一个或多个patch中的每个patch的三维数据。
5.根据权利要求4所述的计算机实现的方法,其中,所述一个或多个patch中的每个patch的所述索引数据对应于所述三维边界框的对应侧面。
6.根据权利要求4所述的计算机实现的方法,其中,对应于所述三维点云数据的一部分的所述一个或多个patch中的每个patch的所述二维数据和所述一个或多个patch中的每个patch的所述三维数据是连接的。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中,基于所述三维点云数据的连续性数据生成所述三维点云数据的所述一个或多个patch还包括:
所述一个或多个处理器确定所述三维点云数据在每个方向上的平滑标准;
所述一个或多个处理器比较所述三维点云数据的每个方向上的所述平滑标准;以及
响应于比较,所述一个或多个处理器选择在边界框的侧面上具有最大投影面积的所述三维点云数据的平滑标准的方向。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中,生成所述第一patch和所述第二patch之间的所述运动矢量候选还包括:
所述一个或多个处理器确定所述第一辅助信息的二维数据和所述第二辅助信息的二维数据之间的距离;
所述一个或多个处理器基于所述第一辅助信息的所述二维数据和所述第二辅助信息的所述二维数据之间的所述距离生成所述运动矢量候选;以及
所述一个或多个处理器将所述运动矢量候选添加到运动矢量候选列表。
9.一种系统,包括一个或多个计算机和存储有指令的一个或多个存储设备,当由所述一个或多个计算机执行时,所述指令使所述一个或多个计算机执行包括以下的操作:
基于三维点云数据的连续性数据生成记录媒体的所述三维点云数据的分割部分;
将分割的所述三维点云数据的表示投影到三维边界框的一个或多个侧面,分割的所述三维点云数据的所述表示基于所述三维边界框的投影侧面而不同;
基于分割的所述三维点云数据的投影表示生成一个或多个patch;
生成所述一个或多个patch的第一帧;
生成所述第一帧的第一辅助信息;
生成参考帧的第二辅助信息;
基于所述第一辅助信息和所述第二辅助信息,识别所述第一帧中与所述参考帧中的第二patch匹配的第一patch;
基于所述第一辅助信息和所述第二辅助信息之间的差生成所述第一patch和所述第二patch之间的运动矢量候选;
使用所述运动矢量候选执行运动补偿。
10.根据权利要求9所述的系统,其中,所述参考帧对应于先前发送的编码帧,并且所述参考帧被解码以生成所述第二辅助信息。
11.根据权利要求9-10中任一项所述的系统,其中,生成所述记录媒体的所述三维点云数据的所述分割部分还包括:
生成所述三维点云数据媒体上的多个分割部分,以用于后续对所述多个分割部分中的每个分割部分进行投影和编码。
12.根据权利要求9-11中任一项所述的系统,其中,所述第一辅助信息包括所述一个或多个patch中的每个patch的索引数据、所述一个或多个patch中的每个patch的二维数据、以及所述一个或多个patch中的每个patch的三维数据。
13.根据权利要求12所述的系统,其中,所述一个或多个patch中的每个patch的所述索引数据对应于所述三维边界框的对应侧面。
14.根据权利要求12所述的系统,其中,对应于所述三维点云数据的一部分的所述一个或多个patch中的每个patch的所述二维数据和所述一个或多个patch中的每个patch的所述三维数据是连接的。
15.根据权利要求9-14中任一项所述的系统,其中,基于所述三维点云数据的所述连续性数据生成所述三维点云数据的所述一个或多个patch还包括:
确定所述三维点云数据在每个方向上的平滑标准;
比较所述三维点云数据的每个方向上的所述平滑标准;以及
响应于比较,选择所述三维点云数据的平滑标准中在边界框的侧面上具有最大投影面积的方向。
16.根据权利要求9-15中任一项所述的系统,其中,生成所述第一patch和所述第二patch之间的所述运动矢量候选还包括:
确定所述第一辅助信息的二维数据和所述第二辅助信息的二维数据之间的距离;
基于所述第一辅助信息的所述二维数据和所述第二辅助信息的所述二维数据之间的距离生成所述运动矢量候选;以及
将所述运动矢量候选添加到运动矢量候选列表。
17.一个或多个非暂时性计算机可读存储介质,包括存储在其上的指令,所述指令可由一个或多个处理设备执行,在执行时,所述指令使所述的一个或多个处理设备执行包括以下的操作:
基于三维点云数据的连续性数据生成记录媒体的所述三维点云数据的分割部分;
将分割的所述三维点云数据的表示投影到三维边界框的一个或多个侧面,分割的所述三维点云数据的所述表示基于所述三维边界框的投影侧面而不同;
基于分割的所述三维点云数据的投影表示生成一个或多个patch;
生成所述一个或多个patch的第一帧;
生成所述第一帧的第一辅助信息;
生成参考帧的第二辅助信息;
基于所述第一辅助信息和所述第二辅助信息,识别所述第一帧中与所述参考帧中的第二patch匹配的第一patch;
基于所述第一辅助信息和所述第二辅助信息之间的差生成所述第一patch和所述第二patch之间的运动矢量候选;
使用所述运动矢量候选执行运动补偿。
18.根据权利要求17所述的一个或多个非暂时性计算机可读介质,其中,所述参考帧对应于先前发送的编码帧,并且所述参考帧被解码以生成所述第二辅助信息。
19.根据权利要求17-18中任一项所述的一个或多个非暂时性计算机可读介质,其中,生成所述记录媒体的所述三维点云数据的所述分割部分还包括:
生成所述三维点云数据媒体上的多个分割部分,以用于后续对所述多个分割部分中的每个分割部分进行投影和编码。
20.根据权利要求17-19中任一项所述的一个或多个非暂时性计算机可读介质,其中,所述第一辅助信息包括所述一个或多个patch中的每个patch的索引数据、所述一个或多个patch中的每个patch的二维数据、以及所述一个或多个patch中的每个patch的三维数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862740237P | 2018-10-02 | 2018-10-02 | |
US62/740,237 | 2018-10-02 | ||
US201962863362P | 2019-06-19 | 2019-06-19 | |
US62/863,362 | 2019-06-19 | ||
PCT/US2019/054194 WO2020072579A1 (en) | 2018-10-02 | 2019-10-02 | Motion estimation using 3d auxiliary data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112771850A true CN112771850A (zh) | 2021-05-07 |
CN112771850B CN112771850B (zh) | 2022-05-24 |
Family
ID=70054789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980063719.0A Active CN112771850B (zh) | 2018-10-02 | 2019-10-02 | 使用3d辅助数据的运动补偿方法、系统以及存储介质 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11688104B2 (zh) |
EP (1) | EP3850832A4 (zh) |
JP (1) | JP7187688B2 (zh) |
KR (1) | KR102537087B1 (zh) |
CN (1) | CN112771850B (zh) |
BR (1) | BR112021006256A2 (zh) |
MX (1) | MX2021003841A (zh) |
SG (1) | SG11202103302VA (zh) |
WO (1) | WO2020072579A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023050072A1 (en) * | 2021-09-28 | 2023-04-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Methods and systems for video compression |
WO2024007523A1 (zh) * | 2022-07-08 | 2024-01-11 | 北京大学深圳研究生院 | 一种点云运动的估计方法、装置、电子设备及存储介质 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110114803B (zh) * | 2016-12-28 | 2023-06-27 | 松下电器(美国)知识产权公司 | 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置 |
EP3547704A1 (en) | 2018-03-30 | 2019-10-02 | Thomson Licensing | Method, apparatus and stream for volumetric video format |
CN116684591A (zh) * | 2018-12-04 | 2023-09-01 | 华为技术有限公司 | 视频编码器、视频解码器、及对应方法 |
CN110232741B (zh) * | 2019-06-17 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 多层包围盒确定方法、碰撞检测及运动控制方法与设备 |
US11669939B1 (en) * | 2019-10-07 | 2023-06-06 | Gopro, Inc. | Burst deblurring with kernel estimation networks |
US20230179797A1 (en) * | 2020-03-25 | 2023-06-08 | Sony Group Corporation | Image processing apparatus and method |
CN115380537A (zh) * | 2020-04-13 | 2022-11-22 | Lg电子株式会社 | 发送点云数据的设备、发送点云数据的方法、接收点云数据的设备及接收点云数据的方法 |
CN112396703B (zh) * | 2020-11-18 | 2024-01-12 | 北京工商大学 | 一种单图像三维点云模型重建方法 |
WO2022220382A1 (ko) * | 2021-04-15 | 2022-10-20 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치 |
KR102343051B1 (ko) * | 2021-06-17 | 2021-12-24 | 주식회사 인피닉 | 라이다 점군으로부터 카메라 이미지의 바운딩 박스를 조정하는 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 |
WO2023090616A1 (ko) * | 2021-11-19 | 2023-05-25 | 현대자동차주식회사 | 포인트 단위 예측을 이용하는 라이다 포인트 클라우드 코딩을 위한 방법 및 장치 |
US11954775B2 (en) * | 2022-02-23 | 2024-04-09 | International Business Machines Corporation | Artboard element positioning in a series of computer-based artboards |
WO2023182764A1 (ko) * | 2022-03-21 | 2023-09-28 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법. |
WO2023191252A1 (ko) * | 2022-03-29 | 2023-10-05 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
US20240078711A1 (en) * | 2022-09-01 | 2024-03-07 | Illuscio, Inc. | Systems and Methods for Lossless Line Fit Data Compression |
WO2024063608A1 (ko) * | 2022-09-22 | 2024-03-28 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100104158A1 (en) * | 2006-12-21 | 2010-04-29 | Eli Shechtman | Method and apparatus for matching local self-similarities |
GB2520338A (en) * | 2013-11-19 | 2015-05-20 | Nokia Corp | Automatic scene parsing |
US20150178988A1 (en) * | 2012-05-22 | 2015-06-25 | Telefonica, S.A. | Method and a system for generating a realistic 3d reconstruction model for an object or being |
CN108053481A (zh) * | 2017-12-26 | 2018-05-18 | 深圳市易尚展示股份有限公司 | 三维点云法向量的生成方法、装置和存储介质 |
CN108171217A (zh) * | 2018-01-29 | 2018-06-15 | 深圳市唯特视科技有限公司 | 一种基于点融合网络的三维物体检测方法 |
EP3373583A1 (en) * | 2017-03-07 | 2018-09-12 | Thomson Licensing | Quality metric for point clouds |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715761B2 (en) | 2013-07-08 | 2017-07-25 | Vangogh Imaging, Inc. | Real-time 3D computer vision processing engine for object recognition, reconstruction, and analysis |
US9552633B2 (en) * | 2014-03-07 | 2017-01-24 | Qualcomm Incorporated | Depth aware enhancement for stereo video |
US11297346B2 (en) * | 2016-05-28 | 2022-04-05 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
CN106600710B (zh) * | 2016-10-18 | 2019-06-14 | 浙江大学 | 一种几何网格模型邻接拓扑关联的层切多连通域构建方法 |
US10909725B2 (en) * | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
US11900639B2 (en) | 2018-01-19 | 2024-02-13 | Interdigital Vc Holdings, Inc. | Processing a point cloud |
JP7476104B2 (ja) * | 2018-01-19 | 2024-04-30 | インターデジタル ヴイシー ホールディングス, インコーポレイテッド | 点群処理 |
US10867414B2 (en) * | 2018-04-10 | 2020-12-15 | Apple Inc. | Point cloud attribute transfer algorithm |
US11288412B2 (en) * | 2018-04-18 | 2022-03-29 | The Board Of Trustees Of The University Of Illinois | Computation of point clouds and joint display of point clouds and building information models with project schedules for monitoring construction progress, productivity, and risk for delays |
US11501507B2 (en) | 2018-06-26 | 2022-11-15 | Sony Group Corporation | Motion compensation of geometry information |
US11044478B2 (en) * | 2018-07-02 | 2021-06-22 | Apple Inc. | Compression with multi-level encoding |
US11017566B1 (en) * | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
CN110675315A (zh) | 2018-07-03 | 2020-01-10 | 财团法人工业技术研究院 | 点云拼贴处理方法及装置 |
US11012713B2 (en) * | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
EP3633621A1 (en) * | 2018-10-02 | 2020-04-08 | BlackBerry Limited | Predictive coding of point clouds using multiple frames of references |
US11430155B2 (en) * | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
US11284091B2 (en) * | 2019-03-25 | 2022-03-22 | Apple Inc. | Video based point cloud compression-patch alignment and size determination in bounding box |
WO2020155522A1 (en) * | 2019-01-31 | 2020-08-06 | Huawei Technologies Co., Ltd. | Three-dimension (3d) assisted personalized home object detection |
US11450030B2 (en) * | 2019-09-24 | 2022-09-20 | Apple Inc. | Three-dimensional mesh compression using a video encoder |
US11627314B2 (en) * | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
US11562507B2 (en) * | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
-
2019
- 2019-10-02 JP JP2021518178A patent/JP7187688B2/ja active Active
- 2019-10-02 WO PCT/US2019/054194 patent/WO2020072579A1/en unknown
- 2019-10-02 MX MX2021003841A patent/MX2021003841A/es unknown
- 2019-10-02 EP EP19869618.9A patent/EP3850832A4/en active Pending
- 2019-10-02 BR BR112021006256A patent/BR112021006256A2/pt unknown
- 2019-10-02 SG SG11202103302VA patent/SG11202103302VA/en unknown
- 2019-10-02 CN CN201980063719.0A patent/CN112771850B/zh active Active
- 2019-10-02 KR KR1020217012942A patent/KR102537087B1/ko active IP Right Grant
-
2021
- 2021-03-29 US US17/215,224 patent/US11688104B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100104158A1 (en) * | 2006-12-21 | 2010-04-29 | Eli Shechtman | Method and apparatus for matching local self-similarities |
US20150178988A1 (en) * | 2012-05-22 | 2015-06-25 | Telefonica, S.A. | Method and a system for generating a realistic 3d reconstruction model for an object or being |
GB2520338A (en) * | 2013-11-19 | 2015-05-20 | Nokia Corp | Automatic scene parsing |
EP3373583A1 (en) * | 2017-03-07 | 2018-09-12 | Thomson Licensing | Quality metric for point clouds |
CN108053481A (zh) * | 2017-12-26 | 2018-05-18 | 深圳市易尚展示股份有限公司 | 三维点云法向量的生成方法、装置和存储介质 |
CN108171217A (zh) * | 2018-01-29 | 2018-06-15 | 深圳市唯特视科技有限公司 | 一种基于点融合网络的三维物体检测方法 |
Non-Patent Citations (1)
Title |
---|
熊风光等: "三维点云中关键点误匹配剔除方法", 《光学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023050072A1 (en) * | 2021-09-28 | 2023-04-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Methods and systems for video compression |
WO2024007523A1 (zh) * | 2022-07-08 | 2024-01-11 | 北京大学深圳研究生院 | 一种点云运动的估计方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3850832A1 (en) | 2021-07-21 |
CN112771850B (zh) | 2022-05-24 |
SG11202103302VA (en) | 2021-04-29 |
MX2021003841A (es) | 2021-12-10 |
WO2020072579A1 (en) | 2020-04-09 |
KR20210069683A (ko) | 2021-06-11 |
JP2022502961A (ja) | 2022-01-11 |
US11688104B2 (en) | 2023-06-27 |
JP7187688B2 (ja) | 2022-12-12 |
KR102537087B1 (ko) | 2023-05-26 |
BR112021006256A2 (pt) | 2021-07-06 |
US20210217202A1 (en) | 2021-07-15 |
EP3850832A4 (en) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112771850B (zh) | 使用3d辅助数据的运动补偿方法、系统以及存储介质 | |
AU2020397870B2 (en) | Method and apparatus for point cloud coding | |
CN111133476B (zh) | 包括多个点的点云的压缩和解压缩的系统、设备和方法 | |
US11575886B2 (en) | Bitstream signaling of error mitigation in sub-picture bitstream based viewport dependent video coding | |
CN112425166B (zh) | 视频译码中使用交叉分量线性模型进行帧内预测 | |
JP2021536204A (ja) | ポイントクラウド符号化における改善された属性サポート | |
CN110891180B (zh) | 视频解码方法及视频解码器 | |
CN110868589B (zh) | 帧间预测方法、装置及其应用的编/解方法及装置 | |
CN113615173A (zh) | 对仿射译码块进行光流预测修正的方法及装置 | |
CN115398906A (zh) | 用信号通知视频编码数据的方法 | |
CN110958452B (zh) | 视频解码方法及视频解码器 | |
CN111010565B (zh) | 帧间预测方法、装置及其应用的编/解方法及装置 | |
CN115280770A (zh) | 用于对视频进行编码或解码的方法和装置 | |
CN112042199B (zh) | 自适应插值滤波器 | |
CN116636218A (zh) | 利用多方向帧内预测的视频编解码 | |
CN117730535A (zh) | 视频编解码中用于仿射运动补偿预测的几何分割 | |
CN112042199A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |