用于概括的trisoup几何编码的技术和装置

文档序号:1958214 发布日期:2021-12-10 浏览:10次 >En<

阅读说明:本技术 用于概括的trisoup几何编码的技术和装置 (Techniques and apparatus for generalized TRISOUP geometric coding ) 是由 阿拉什·沃索基 芮世薰 史蒂芬·文格尔 刘杉 于 2020-09-01 设计创作,主要内容包括:本申请包括一种方法和包括计算机代码的装置。计算机代码被配置成使一个或多个处理器执行以下操作:获取基于几何的点云压缩G-PCC数据的叶节点;将叶节点拆分成多个长方体;为多个长方体中的每个长方体导出单独的三角形集合;和分别为每个长方体的多条边中的每条边编码多个标志,其中,多个标志用于指示单独的三角形集合的多个顶点是否存在于多条边中的各边上。(The present application includes a method and apparatus including computer code. The computer code is configured to cause the one or more processors to perform the following: acquiring a leaf node of point cloud compressed G-PCC data based on geometry; splitting leaf nodes into a plurality of cuboids; deriving a separate set of triangles for each of the plurality of cuboids; and encoding a plurality of flags for each of the plurality of edges of each cuboid, respectively, wherein the plurality of flags are used to indicate whether a plurality of vertices of the separate set of triangles are present on each of the plurality of edges.)

用于概括的TRISOUP几何编码的技术和装置

相关申请的交叉引用

本申请要求于2019年9月3日提交的美国临时申请第62/895,339号和于2020年8月27日提交的美国申请第17/004,616号的优先权,这两个申请的全部公开内容并入本文。

技术领域

本申请涉及点云编码技术,更具体地涉及包括概括了MPEG/G-PCC的Trisoup有损压缩并包括快速RDO方案的点云几何压缩。

背景技术

世界上先进的3D表示能够实现更沉浸的交互和通信形式。这些3D表示还允许机器理解、解释世界和在世界上导航。点云已广泛用作世界的3D表示。已经确定了与点云数据相关联的多个使用情况,且已经形成对点云表示和压缩的对应要求。

点云是3D空间中的一组点,每个点具有相关联的属性,例如,颜色、材料特性等。点云可用于将对象或场景重建为这些点的组合。点云可使用各种设置下的多个相机和深度传感器来捕获,且可由数千个到数十亿个点组成,以真实地表示重建的场景。

需要压缩技术来减少表示点云所需的数据量。因此,需要对在实时通信和六自由度(6 DoF)虚拟现实中使用的点云的有损压缩的技术。另外,在用于自主驾驶和文化遗产应用等的动态映射的环境中,寻求无损点云压缩的技术。MPEG已开始着手建立标准来解决几何和属性(例如,颜色和反射率)的压缩、可缩放/渐进式编码、随时间推移捕获的点云序列的编码以及对点云子集的随机访问。

在有损G-PCC Trisoup几何编码中,可能发生:流形例如太复杂而不能使用有限数量的自由参数来建模。

因此,需要一种解决这些问题的技术方案。

发明内容

为了解决一个或多个不同的技术问题,本申请概括了在MPEG/G-PCC中采用的Trisoup技术来解决该问题,且对于所提出的概括的Trisoup,还预期了率失真优化(RDO)方案。

包括一种方法和装置,该装置包括:存储器,被配置成存储计算机程序代码;一个或多个处理器,被配置成访问计算机程序代码且如计算机程序代码所指示的进行操作。计算机程序代码包括:获取代码,被配置成使至少一个处理器获取基于几何的点云压缩(G-PCC)数据的叶节点;拆分代码,被配置成使至少一个处理器将叶节点拆分成多个长方体;导出代码,被配置成使至少一个处理器为多个长方体中的每个长方体导出单独的三角形集合;和编码代码,被配置成使至少一个处理器分别为每个长方体的多条边中的每条边编码多个标志,其中,多个标志用于指示单独的三角形集合的多个顶点是否存在于多条边中的各边上。

根据示例性实施例,编码代码进一步被配置成使至少一个处理器通过两个比特对叶节点的拆分模式的信令进行熵编码,且两个比特指示是否沿着x轴、y轴和z轴中的一个轴将叶节点拆分成两个相等的长方体。

根据示例性实施例,对于多个长方体中的每个长方体,用信号通知对叶节点进行拆分的、并沿着x轴和y轴中的至少一个轴的位置。

根据示例性实施例,导出代码进一步被配置成使至少一个处理器在G-PCC数据的多个叶节点中的叶节点处,递归地导出三角形集合。

根据示例性实施例,编码代码进一步被配置成使至少一个处理器通过三个比特对叶节点的拆分模式的信令进行熵编码,且三个比特指示是否沿着以下之一将叶节点拆分成两个相等的长方体:x轴,y轴,z轴,x轴和y轴的组合,x轴和z轴的组合,y轴和z轴的组合,以及x轴、y轴和z轴的组合。

根据示例性实施例,对于多个长方体中的每个长方体,用信号通知对叶节点进行拆分的、并沿着x轴、y轴和z轴中的至少一个轴的位置。

根据示例性实施例,计算机程序代码进一步包括确定代码,确定代码被配置成使至少一个处理器确定是否对叶节点设置限制至少一个方向的标志,所述标识指示叶节点不能沿着至少一个方向进行拆分。

根据示例性实施例,计算机程序代码进一步包括确定代码,确定代码被配置成使至少一个处理器根据率失真优化(RDO)方案确定拆分模式。

根据示例性实施例,将叶节点分成多个长方体包括:将叶节点拆分成大小相等的两部分。

附图说明

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

图1至图9B是根据实施例的图的示意性图示。

图10和图11是根据实施例的简化框图。

图12是根据实施例的简化图示。

图13是根据实施例的简化流程图。

图14是根据实施例的图的示意性图示。

具体实施方式

下面讨论的所提出的特征可单独使用或以任何顺序组合使用。此外,实施例可由处理电路(例如,一个或多个处理器或者一个或多个集成电路)实施。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。

图1示出了根据本申请的实施例的通信系统100的简化框图。通信系统100可包括经由网络105互连的至少两个终端102和103。对于数据的单向传输,第一终端103可对本地位置处的视频数据进行编码,以经由网络105传输到另一终端102。第二终端102可从网络105接收另一终端的已编码视频数据,对已编码数据进行解码并显示恢复的视频数据。单向数据传输在媒体服务等应用中可能是较常见的。

图1示出了被设置成支持已编码视频的双向传输的第二终端对101和104,该双向传输可例如在视频会议期间发生。对于数据的双向传输,每个终端101和104可以对在本地位置捕获的视频数据进行编码,以经由网络105传输到另一终端。每个终端101和104还可接收由另一终端传输的已编码视频数据,可以对已编码数据进行解码,并可以在本地显示设备上显示恢复的视频数据。

在图1中,终端101、终端102、终端103和终端104可被示出为服务器、个人计算机和智能电话,但本申请的原理不限于此。本申请的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络105表示在终端101、终端102、终端103和终端104之间传送已编码视频数据的任何数量的网络,包括例如有线和/或无线通信网络。通信网络105可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于本讨论的目的,除非在下文中有所解释,否则网络105的架构和拓扑对于本申请的操作来说可能是无关紧要的。

作为所申请的主题的应用的示例,图2示出了视频编码器和视频解码器在流式传输环境中的放置方式。所公开的主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。

流式传输系统可包括采集子系统203,该采集子系统可包括例如数码相机的视频源201,该视频源创建例如未压缩的视频样本流213。当与已编码视频比特流相比时,样本流213可由高数据量强调,并可由耦接到相机201的编码器202处理。编码器202可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。当与样本流相比时,由较低数据量强调的已编码视频比特流204可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端212和207可访问流式传输服务器205以检索已编码视频比特流204的副本208和副本206。客户端212可包括视频解码器211,视频解码器211对已编码视频比特流的传入副本208进行解码,且创建可在显示器209或另一呈现装置(未描绘)上呈现的输出视频样本流210。在一些流式传输系统中,可根据某些视频编码/压缩标准对视频比特流204、视频比特流206和视频比特流208进行编码。这些标准的示例在上面指出并在这里进一步描述。

图3可以是根据本申请的一个实施例的视频解码器300的功能框图。

接收器302可接收将由解码器300解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列的解码。可从信道301接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器302可接收可转发到它们各自的使用实体(未描绘)的已编码视频数据以及其它数据,例如已编码音频数据和/或辅助数据流。接收器302可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器303可耦接在接收器302与熵解码器/解析器304(此后称为“解析器”)之间。当接收器302从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要缓冲器303,或可将该缓冲器做得较小。为了尽力在互联网等业务分组网络上使用,可能需要缓冲器303,该缓冲器可相对较大并可有利地具有自适应性大小。

视频解码器300可包括解析器304以根据熵编码的视频序列重建符号313。这些符号的类别包括用于管理解码器300的操作的信息,以及用以控制呈现装置(例如,显示器312)的潜在信息,该呈现装置不是解码器的组成部分,但可耦接到解码器。用于呈现装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(Video Usability Information,VUI)的参数集片段(未描绘)的形式。解析器304可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员公知的各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器304可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。熵解码器/解析器还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

解析器304可对从缓冲器303接收的视频序列执行熵解码/解析操作,从而创建符号313。解析器304可接收已编码数据,并选择性地解码特定符号313。此外,解析器304可确定特定符号313是否提供给运动补偿预测单元306、缩放器/逆变换单元305、帧内预测单元307或环路滤波器311。

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

除已经提及的功能块以外,解码器300可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分成下文的功能单元是适当的。

第一单元是缩放器/逆变换单元305。缩放器/逆变换单元305从解析器304接收作为符号313的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元305可输出包括样本值的块,该样本值可输入到聚合器310中。

在一些情况下,缩放器/逆变换单元305的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元307提供。在一些情况下,帧内图片预测单元307采用从当前(部分重建)图片309提取的周围已重建信息生成大小和形状与正在重建的块相同的块。在一些情况下,聚合器310基于每个样本,将帧内预测单元307生成的预测信息添加到由缩放器/逆变换单元305提供的输出样本信息中。

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

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

环路滤波器单元311的输出可以是样本流,该样本流可输出到呈现装置312以及存储在参考图片存储器557中,以用于将来的帧间图片预测。

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

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

在一个实施例中,接收器302可连同已编码视频的接收一起接收附加(冗余)数据。该附加数据可被包括作为已编码视频序列的一部分。该附加数据可由视频解码器300使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。

图4可以是根据本申请的实施例的视频编码器400的功能框图。

编码器400可从视频源401(并非编码器的一部分)接收视频样本,该视频源可采集将由编码器400编码的视频图像。

视频源401可提供将由编码器(303)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601 Y CrCB、RGB……)和任何合适采样结构(例如Y CrCb 4∶2∶0、Y CrCb 4∶4∶4)。在媒体服务系统中,视频源401可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源401可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可容易理解像素与样本之间的关系。下文侧重于描述样本。

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

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

“于本领解码器406的操作可与已在上文结合图3详细描述的“远程”解码器300的操作相同。然而,另外简要参考图4,当符号可用且熵编码器408和解析器304可无损地将符号编码/解码为已编码视频序列时,包括信道301、接收器302、缓冲器303和解析器304在内的解码器300的熵解码部分,可能无法完全在本地解码器406中实施。

此时可观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并在下文提供。

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

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

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

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

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

传输器409可缓冲由熵编码器408创建的已编码视频序列,从而为通过通信信道411进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储装置的硬件/软件链路。传输器409可将来自视频编码器403的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

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

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

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

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

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

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

在一个实施例中,传输器409可在传输已编码视频时传输附加数据。源编码器403可包括此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其它形式的冗余数据、辅助增强信息(SEI)消息、视频可用性信息(VUI)参数集片段等。

图5示出了高效视频编码(HEVC)和联合探索模型(JEM)中使用的帧内预测模式(intra prediction mode)。为了捕获在自然视频中呈现的任意边缘方向(edgedirection),方向帧内模式的数量从如HEVC中使用的33扩展到65。在图1(b)中以虚线箭头描绘了HEVC顶部的JEM中的附加方向模式(directional mode),且平面模式和DC模式保持相同。这些更密集的方向帧内预测模式适用于所有块大小以及亮度和色度帧内预测。如图5所示,由虚线箭头所标识的、与奇数帧内预测模式索引相关联的方向帧内预测模式被称为奇数帧内预测模式。由实线箭头所标识的、与偶数帧内预测模式索引相关联的方向帧内预测模式被称为偶数帧内预测模式。在本文中,如图5中的实线箭头或虚线箭头所指示的方向帧内预测模式还被称为角模式(angular mode)。

在JEM中,总共67个帧内预测模式用于亮度帧内预测。为了对帧内模式进行编码,基于相邻块的帧内模式建立大小为6的最可能模式(MPM,mostprobable mode)列表。如果帧内模式不是来自MPM列表,则用信号通知标志,以指示帧内模式是否属于所选择的模式。在JEM-3.0中,有16个选择模式,这16个选择模式按照每四个角模式来均匀地(uniformly)选择。在JVET-D0114和JVET-G0060中,导出16个次级(secondary)MPM以代替均匀选择的模式。

图6示出了用于帧内方向模式的N个参考层(reference tiers)。存在块单元611,段A 601,段B 602,段C 603,段D 604,段E 605,段F 606,第一参考层610,第二参考层609,第三参考层608和第四参考层607。

在HEVC和JEM以及诸如H.264/AVC的一些其它标准中,用于预测当前块的参考样本被限制到最近的参考行(行或列)。在多个参考行帧内预测方法中,对于帧内方向模式,候选参考行(行或列)的数量从1(即最近的)增加到N,其中N是大于或等于1的整数。图2以4×4预测单元(PU)作为示例,示出了多行帧内方向预测方法的概念。帧内方向模式可任意选择N个参考层中的一个参考层以生成预测器。换句话说,预测器p(x,y)从参考样本S1,S2……SN中的一个参考样本生成。用信号通知标志,以指示选择哪个参考层用于帧内方向模式。如果N设置为1,则帧内方向预测方法与JEM 2.0中的传统方法相同。在图6中,参考行610,609,608和607由六个段601,602,603,604,605和606连同左上参考样本组成。在本文中,参考层还称为参考行(reference line)。当前块单元内的左上像素的坐标是(0,0),且第一参考行中的左上像素的坐标是(-1,-1)。

在JEM中,对于亮度分量,在生成过程之前对用于帧内预测样本生成的相邻样本进行滤波。通过给定的帧内预测模式和变换块大小来控制滤波。如果帧内预测模式是DC或者变换块大小等于4×4,则不对相邻样本进行滤波。如果给定的帧内预测模式与垂直模式(或水平模式)之间的距离大于预定阈值,则启用滤波过程。对于相邻样本滤波,使用[1,2,1]滤波器和双线性滤波器。

位置相关帧内预测组合(PDPC,position dependent intra predictioncombination)方法是一种帧内预测方法,其调用未滤波的边界参考样本与具有滤波后的边界参考样本的HEVC样式帧内预测的组合。如下计算位于(x,y)的每个预测样本pred[x][y]:

pred[x][y]=(wL*R-1,y+wT*Rx,-1+wTL*R-1,-1+(64-wL-wT-wTL)*pred[x][y]+32)>>6 (等式2-1)

其中Rx,-1,R-1,y分别表示位于当前样本(x,y)的顶部和左侧的未滤波的参考样本,而R-1,-1表示位于当前块的左上角的未滤波的参考样本。如下计算权重。

wT=32>>((y<<1)>>移位) (等式2-2)

wL=32>>((x<<1)>>移位) (等式2-3)

wTL=-(wL>>4)-(wT>>4) (等式2-4)

移位=(log2(宽度)+log2(高度)+2)>>2 (等式2-5)。

图7示出了图700,其中DC模式PDPC权重针对一个4×4块内的(0,0)和(1,0)位置为(wL,wT,wTL)。如果PDPC应用于DC帧内模式、平面帧内模式、水平帧内模式和垂直帧内模式,则不需要附加的边界滤波器,例如HEVC DC模式边界滤波器或者水平/垂直模式边缘滤波器。图7示出了应用于右上对角线模式的PDPC的参考样本Rx,-1,R-1,y和R-1,-1的定义。预测样本pred(x′,y′)位于预测块内的(x′,y′)处。参考样本Rx,-1的坐标x由x=x′+y′+1给出,且参考样本R-1,y的坐标y类似地由y=x′+y′+1给出。

图8示出了局部照明补偿(LIC,Local Illumination Compensation)图800,并是基于使用缩放因子(scaling factor)a和偏移(offset)b的照明变化的线性模型。对每个帧间模式编码的编码单元(CU)自适应地启用或禁用该线性模型。

当LIC应用于CU时,利用最小平方误差方法(least square error method)以通过使用当前CU的相邻样本及其对应的参考样本来导出参数a和b。更具体地,如图8所示,使用CU的子采样(2∶1子采样)相邻样本和参考图片中对应的样本(由当前CU或子CU的运动信息标识)。分别为每个预测方向导出并应用IC参数。

当采用合并模式对CU进行编码时,以类似于合并模式下的运动信息复制的方式从相邻块复制LIC标志;否则,对于CU,用信号通知LIC标志以指示是否应用LIC。

图9A示出了在HEVC中使用的帧内预测模式900。在HEVC中,存在总共35个帧内预测模式,其中模式10是水平模式,模式26是垂直模式,而模式2、模式18和模式34是对角线模式。通过三个最可能模式(MPM)和32个剩余模式来用信号通知帧内预测模式。

图9B示出了在VVC的实施例中总共存在87个帧内预测模式,其中模式18是水平模式,模式50是垂直模式,而模式2、模式34和模式66是对角线模式。模式-1~-10和模式67~76被称为广角帧内预测(WAIP,Wide-Angle Intra Prediction)模式。

使用帧内预测模式(DC,平面,角度)和参考样本的线性组合,根据PDPC表达式来预测位于位置(x,y)处的预测样本pred(x,y):

pred(x,y)=(wL×R1,y+wT×Rx,-1-wTL×R-1,-1+(64-wL-wT+wTL)×pred(x,y)+32)>>6

其中Rx,-1,R-1,y分别表示位于当前样本(x,y)的顶部和左侧的参考样本,而R-1,-1表示位于当前块的左上角的参考样本。

对于DC模式,对具有宽度尺寸和高度尺寸的块计算权重,如下:

wT=32>>((y<<1)>nScale),wL=32>>((x<<1)>>nScale),wTL=(wL>>4)+(wT>>4),

其中,nScale=(log2(宽度)-2+log2(高度)-2+2)>>2,其中,wT表示位于上方参考行中的具有相同水平坐标的参考样本的加权因子(weighting factor),wL表示位于左侧参考行中的具有相同垂直坐标的参考样本的加权因子,且wTL表示当前块的左上参考样本的加权因子,nScale指定加权因子沿着轴减小的速度(wL从左向右减小,或者wT从上向下减小),即加权因子减小率,且在当前设计中nScale沿着x轴(从左向右)和y轴(从上向下)是相同的。32表示相邻样本的初始加权因子,且初始加权因子也是分配给当前CB中的左上样本的顶部(左侧或左上)加权,且在PDPC过程中相邻样本的加权因子应当等于或小于该初始加权因子。

对于平面模式wTL=0,而对于水平模式wTL=wT,以及对于垂直模式wTL=wL。PDPC权重只能通过相加(add)和移位(shift)来计算。pred(x,y)的值可以在单个步骤中使用等式1来计算。

图10和图11分别是根据实施例的简化框图1000和1100,并提供基于几何的点云压缩(G-PCC)编码器和解码器的不同概述。在编码器和解码器中,首先对点云位置进行编码。属性编码取决于解码的几何形状。在图10和图11中,区域自适应分层变换(RAHT,regionadaptive hierarchical transform)模块和表面近似模块是通常用于类别1数据的选项。生成细节层次(LOD,level of detail)模块和提升模块是通常用于类别3数据的选项。在类别1和3之间,所有其他模块都是共用的。

对于类别3数据,压缩的几何形状可表示为从根一直向下到各个体素(voxels)的叶级的八叉树。对于类别1数据,压缩的几何形状可由修剪的八叉树(即,从根向下到大于体素的块的叶级的八叉树)加上近似于修剪的八叉树的每个叶内的表面的模型来表示。以这种方式,类别1和类别3数据共享八叉树编码机制,而类别1数据另外还可使用表面模型来近似每个叶内的体素。所使用的表面模型是每块包含1-10个三角形的三角测量(triangulation),产生三角形集合(triangle soup)。因此,类别1几何编解码器被称为Trisoup几何编解码器,而类别3几何编解码器被称为八叉树几何编解码器。

在G-PCC中存在三种属性编码方法:RAHT编码,基于内插的分层最近邻预测(预测变换),以及具有更新/提升步骤的基于内插的分层最近邻预测(提升变换,LiftingTransform)。RAHT和提升通常用于类别1数据,而预测通常用于类别3数据。然而,任一种方法可用于任何数据,并且与G-PCC中的几何编解码器的情况一样,用户有权选择他们想要使用3个属性编解码器中的哪一个。

根据示例性实施例,首先可使用八叉树编码对几何形状进行无损编码,直到用户指定的级别。然后可使用一组(也称为集合,soup)三角形以有损方式近似更精细的几何细节。可在八叉树的每个叶节点处导出单独的一组三角形,这些三角形共同地近似穿过对应的立方体(cube)的表面(流形)。为了创建soup,可以为立方体的每条边导出单个顶点,这意味着在处理时具有至多12个顶点来近似表面。还可使用12个可用的自由参数来充分地模拟光滑表面;然而,可能发生流形太复杂以至于不能使用这种有限数量的自由参数来建模。因此,示例性实施例概括了在MPEG/G-PCC中采用的Trisoup技术来解决这个问题,且还预期率失真优化(RDO,rate-distortion optimization)方案用于所提出的概括的Trisoup。

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

图12是根据实施例的简化图示1200,并示出了在叶子处创建的Trisoup的示例1201。对于每条唯一边,例如相对于示例1201中所示的其它边而言的示例性边1202,可以对指示边是否具有顶点(例如相对于其它顶点而言的示例性顶点1203)的标志进行编码。如果边具有顶点,则还可对顶点沿着该边的位置进行编码。根据示例性实施例,可允许每条边具有至多一个顶点。

图13是根据实施例的简化流程图1300,应当理解,一个或多个特征可以与所示的一个或多个其它特征分开使用和/或以与所示的顺序不同的顺序使用。

根据示例性实施例,在S1301处,获得一个或多个叶节点,且在S1302处,在每个叶节点处创建两个或更多个三角形集合(triangle soup)。这将有助于更好地对太复杂以至于不能仅使用一个三角形集合来建模的流形(manifold)进行建模。为此,在S1302处,首先将每个叶节点拆分成两个或更多个更小的矩形/正方形长方体(cuboid)。然后,在S1303处,可以为每个生成的长方体导出单独的三角形集合。将叶节点拆分成更小的长方体引入了一组新的角点(corner point)以及一组新的边(edge)。例如,根据示例性实施例,叶节点的边可被折成两半,从而在该边的端点之间生成一个新的角点,且还利用两条更短的新的边代替该边,此外,还可以对所有的叶子使用固定的拆分模式,和/或,如下面进一步描述的,可以为每个叶节点自适应地导出拆分模式并相应地用信号通知。

根据示例性实施例,如图13所示,S1302可包括步骤S1304-S1310中的一个或多个。例如,在S1306处,可存在每个叶节点的拆分模式的信号,且根据实施例,策略可以是对于每个叶节点,仅通过2个比特的信号通知,来指示拆分模式:

可以对这种拆分模式进行熵编码,并在S1321处,将这种拆分模式写入最终比特流中。可设计和采用各种拆分模式。如果采用的拆分模式的数量是N,则需要[log2N]个比特来用信号通知每个叶节点的模式。

此外,根据一个或多个示例性实施例,在S1309处,可以在每个叶节点处递归地导出三角形集合。对于每个长方体,可以在每个拆分级别用信号通知由xyz表示的三个比特。例如,在拆分级别0,叶节点可以以八种方式进行拆分:

同样,在拆分级别1,可能需要三个附加比特来用信号通知在级别0生成的每个长方体处的拆分模式。在S1321处,这些比特可进行熵编码并写入比特流中。

此外,根据一个或多个示例性实施例,在实施例中关于S1306和S1309的拆分可在沿着特定轴的任意位置处进行。在这种情况下,对于每个长方体,还可存在用于每个轴上的拆分位置的信号。在任何拆分级别,如果沿着特定轴的体素的数量是L,则需要[log2L]个比特来用信号通知沿着该轴的拆分位置。在S1321处,这些比特进行熵编码并写入比特流中。

此外,根据一个或多个示例性实施例,在S1304处,可以用信号通知与一组唯一段相对应的一组拆分标志。例如,根据标志,可允许每个叶节点或一个或多个叶节点仅沿着一个方向(即x,y或z)进行拆分,或者根本不进行拆分。这样的示例可容易地以递归的方式概括到在任意位置处沿着任意数量的轴的任意拆分模式。例如,如果仅允许在段的中间进行拆分,则对每个唯一段用信号通知标志,以指示是否对该段进行拆分。如果标志为“假(off)”,则对该唯一段用信号通知至多一个顶点。如果标志为“真(on)”,则对该唯一段用信号通知两个顶点。知道叶节点的拆分段和非拆分段的集合,例如在S1331处,解码器就可容易地导出该叶节点的拆分所沿着的轴,并生成1个或2个或0个Trisoup。

此外,根据一个或多个示例性实施例,在S1321处,可在编码器处使用RDO(率失真优化)方案来确定最佳拆分模式。这种编码器可采取多种策略中的任一种策略来找到最佳拆分选择。例如,示例性实施例用Ω表示要由编码器检查的一组拆分选项。对于每个选项ω∈Ω,编码器导出一个表面(surface),该表面是由T(ω)表示的拆分选项生成的所有三角形Trisoup的并集。给定T(ω),则编码器可计算未编码点和重建点(使用T(ω)、三角测量步骤和随后的上采样步骤生成重建点)之间的失真D(ω)。然后如下计算最佳拆分选项:

其中R(ω)是编码率,λ是拉格朗日乘数。

此外,使用通用几何度量来计算(对每个拆分选项的)失真,在计算上可能较为昂贵。编码器可以以降低的编码增益为代价来使用较不复杂的方法。根据示例性实施例,示例可以是:将失真D(ω)计算为未编码点距表面T(ω)的平均距离,如果长方体中包括的点的数量下降到某个阈值以下,则使用早期终止(early termination)来停止拆分,和/或有利于生成具有较大点密度的长方体的拆分。

根据示例性实施例,可以对每个叶节点用信号通知一组可用拆分模式中的特定拆分模式(递归地或非递归地导出),其中,在下表4.3.1中,每个拆分始终将长方体的边分成两半(in half),然而,在下表4.3.2中,可以在任意位置进行拆分。

表4.3.1在叶节点级别的信令:始终将边分成两半

表4.3.2在叶节点级别的信令:在任意位置对边进行拆分

表4.3.3用于实施例e中提及的示例的在唯一段级别的信令

根据上面各表的示例性实施例,在语义上:generalized_trisoup_present_flag指示是否使用概括的Trisoup,split_pattem[i]指示确定叶节点i的拆分模式的位模式(bit pattern),如果递归地进行拆分,则split_pattern[i]是对应于x、y和z轴的3的倍数,和/或split_location[i]指示拆分位置。对应于split_pattern[i]中的每一个1,用信号通知大小为[log2L]个比特的拆分位置,其中L表示体素的数量。

此外,在S1331处,可存在包括在叶节点级别的信令的解码过程,其中该过程的输入可以是:对应于叶节点的拆分模式,和/或每个拆分模式的拆分位置(如果允许边在任意位置进行拆分)。

由此,如果仅允许将边分成两半,则解码器对每个叶节点的拆分模式进行解码,并使用解码的顶点为每个长方体创建单独的Trisoup,以及如果允许边在任意位置进行拆分,则对于每个叶节点解码拆分模式和拆分位置。给定拆分模式和拆分位置,则解码器由此创建一组三角形集合。

此外,根据示例性实施例,在S1331处,对于S1304中的唯一段标志特征,根据示例性实施例,可存在在一个或多个唯一段级别的信令的过程的输入,该输入为:每个唯一段的拆分标志流,和/或顶点流。

由此,对于每个唯一段,解码器可对拆分标志进行解码,如果拆分标志是1,则解码器可从顶点流中解码两个顶点,且对于叶节点,一旦确定一组拆分段和非拆分段,则解码器可导出叶节点的拆分所沿着的轴。然后,解码器可以为该节点创建1个或2个Trisoup,或者根本不生成Trisoup。

因此,通过本文描述的示例性实施例,可通过这些技术方案中的一个或多个有利地改善上述技术问题。

可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中,或者通过专门配置的一个或多个硬件处理器来实现。例如,图14示出了适合于实施所公开的主题的某些实施例的计算机系统1400。

可使用任何合适的机器代码或计算机语言来对计算机软件进行编码,任何合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码等执行。

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

图14所示的计算机系统1400的组件本质上是示例性的,并且不旨在对实施本申请的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统1400的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖性或要求。

计算机系统1400可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户例如通过下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘出)。人机接口装置还可用于捕获不一定与人的意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

输入人机接口装置可包括下述中的一项或多项(每种中仅示出一个):键盘1401、鼠标1402、触控板1403、触摸屏1410、操纵杆1405、麦克风1406、扫描仪1408、相机1407。

计算机系统1400还可包括某些人机接口输出装置。此类人机接口输出装置可例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可包括触觉输出装置(例如触摸屏1410的触觉反馈或操纵杆1405,但是还可以是不作为输入设备的触觉反馈装置)、音频输出装置(例如:扬声器1409、耳机(未描绘出))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕1410,每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘出)、全息显示器和烟箱(未描绘出)以及打印机(未描绘出)来输出二维视觉输出或超过三维输出。

计算机系统1400还可包括人类可访问存储装置及其关联介质:例如包括具有CD/DVD等介质1411的CD/DVD ROM/RW1420的光学介质、指状驱动器1422、可拆卸硬盘驱动器或固态驱动器1423、诸如磁带和软盘之类的传统磁性介质(未描绘出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未描绘出)等。

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

计算机系统1400还可包括通到一个或多个通信网络1498的接口1499。网络1498可以例如是无线网络、有线网络、光网络。网络1498可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、耐延迟网络等。网络1498的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络1498通常需要连接到某些通用数据端口或外围总线(1450和1451)的外部网络接口适配器(例如计算机系统1400的USB端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统1400的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统1400可使用这些网络1498中的任何一个与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口中的每一个上使用某些协议和协议栈。

上述人机接口装置、人机可访问的存储装置和网络接口可附接到计算机系统1400的内核1440。

内核1440可包括一个或多个中央处理单元(CPU)1441、图形处理单元(GPU)1442、图形适配器1417、现场可编程门区域(FPGA)1443形式的专用可编程处理单元、用于某些任务的硬件加速器1444等。这些装置以及只读存储器(ROM)1445、随机存取存储器1446、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器1447可通过系统总线1448连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线1448,以能够通过附加的CPU、GPU等进行扩展。外围装置可直接连接到内核的系统总线1448或通过外围总线1451)连接到内核的系统总线1448。外围总线的体系结构包括PCI、USB等。

CPU1441、GPU1442、FPGA1443和加速器1444可执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可存储在ROM1445或RAM1446中。过渡数据也可以存储在RAM1446中,而永久数据可例如存储在内部大容量存储器1447中。可通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU1441、GPU1442、大容量存储器1447、ROM1445、RAM1446等。

计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构1400,特别是内核1440的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质,以及某些非暂时性的内核1440的存储器,例如内核内部大容量存储器1447或ROM1445。可以将实施本申请的各种实施例的软件存储在此类装置中并由内核1440执行。根据特定需要,计算机可读介质可包括一个或多个存储装置或芯片。软件可引起内核1440,特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM1446中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器1444)中的逻辑而使得计算机系统提供功能,该电路可替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或两者都包括。本申请包括硬件和软件的任何合适的组合。

尽管本申请已经描述了多个示例性实施例,但是存在落入本申请的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多系统和方法,这些系统和方法虽然未在本文中明确示出或描述,但是其体现了本申请的原理,因此落入本申请的精神和范围内。

34页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于自主车辆的自适应移动电信的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类