一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

几何点云压缩中的运动估计的制作方法

2023-08-30 06:09:47 来源:中国专利 TAG:

几何点云压缩中的运动估计
1.本技术要求于2021年10月6日提交的美国专利申请第17/495,428号、2020年10月7日提交的美国临时专利申请第63/088,936号、2020年10月12日提交的美国临时专利申请第63/090,627号以及2020年10月12日提交的美国临时专利申请第63/090,657号的优先权,它们中的每一个的全部内容以引用方式并入本文。2021年10月6日提交的美国专利申请第17/495,428号要求于2020年10月7日提交的美国临时专利申请第63/088,936号、2020年10月12日提交的美国临时专利申请第63/090,627号以及2020年10月12日提交的美国临时专利申请第63/090,657号的权益。
技术领域
2.本公开涉及点云编码和解码。


背景技术:

3.点云是三维空间中的点的集合。这些点可以对应于三维空间内的对象上的点。因此,可以使用点云来表示三维空间的物理内容。点云可以在各种情况下具有实用性。例如,可以在自主车辆的上下文中使用点云以用于表示道路上的对象的定位。在另一示例中,为了在增强现实(ar)或混合现实(mr)应用中定位虚拟对象的目的,可以在表示环境的物理内容的上下文中使用点云。点云压缩是用于对点云进行编码和解码的过程。对点云进行编码可以减少存储和传输点云所需的数据量。


技术实现要素:

4.总的来说,本公开描述了用于改进点云帧的可视化的技术,该技术可以使用基于几何的点云压缩(g-pcc)编解码器,该编解码器由3d图形译码(3dg)组在mpeg内开发。g-pcc译码器(例如,g-pcc编码器或g-pcc解码器)可以被配置为对参考帧应用运动补偿以生成运动补偿帧。例如,g-pcc编码器可以对参考帧(例如,预测帧)应用“全局”运动补偿,以考虑整个参考帧的旋转和/或整个参考帧的平移。在该示例中,g-pcc编码器可以应用“局部”运动估计,以在比全局运动补偿更精细的尺度下考虑旋转和/或平移。例如,g-pcc编码器可以应用全局运动补偿帧的一个或多个节点(例如,帧的一部分)的局部节点运动估计。
5.根据本公开的技术,g-pcc译码器(例如,g-pcc编码器或g-pcc解码器)可以被配置为基于全球定位系统信息(例如,来自任何卫星系统的信息,诸如例如,在美国实施的全球定位系统(gps))来应用全局运动补偿。例如,g-pcc编码器可以从全球定位系统信息中识别第一组全局运动参数。第一组全局运动参数可以包括定向参数(例如,滚转、俯仰、偏航或角速度)和/或定位参数(例如,沿x、y或z维度的位移或速度)。在该示例中,g-pcc编码器可以基于第一组全局运动参数来确定第二组全局运动参数。例如,g-pcc编码器可以将定向参数和/或定位参数转换为当前帧的旋转矩阵和平移矢量。以此方式,g-pcc译码器(例如,g-pcc编码器或g-pcc解码器)可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。增加运动
补偿的准确度可以增加运动补偿预测帧的准确度,这可以减少为当前帧编码的残差从而提高译码效率。
6.在一个示例中,本公开描述了一种用于对点云数据进行编码的设备,该设备包括用于存储点云数据的存储器和耦合到存储器并在电路中实现的一个或多个处理器。一个或多个处理器被配置为从全球定位系统信息中识别第一组全局运动参数。一个或多个处理器还被配置为基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数,以及基于第二组全局运动参数来对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
7.在另一示例中,本公开描述了一种用于对点云数据进行编码的方法,包括用一个或多个处理器从全球定位系统信息中识别第一组全局运动参数,以及用一个或多个处理器基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数。该方法还包括用一个或多个处理器基于第二组全局运动参数来对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
8.在另一示例中,本公开描述了一种存储指令的计算机可读存储介质,该指令在由一个或多个处理器执行时使一个或多个处理器从全球定位系统信息中识别第一组全局运动参数,以及基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数。该指令还使一个或多个处理器基于第二组全局运动参数来对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
9.在另一示例中,本公开描述了一种用于处理点云数据的设备,该设备包括用于从全球定位系统信息中识别第一组全局运动参数的至少一个部件,以及用于基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数的部件。该设备还包括用于基于第二组全局运动参数来对参考帧应用运动补偿以生成当前帧的全局运动补偿帧的部件。
10.在附图和以下说明书中阐述了一个或多个示例的细节。根据说明书、附图以及权利要求,其他特征、目的以及优点将是显而易见的。
附图说明
11.图1是示出可以执行本公开的技术的示例编码和解码系统的框图。
12.图2是示出根据本公开的技术的示例几何点云压缩(g-pcc)编码器的框图。
13.图3是示出根据本公开的技术的示例g-pcc解码器的框图。
14.图4是示出根据本公开的技术的示例运动估计流程图的框图。
15.图5是示出根据本公开的技术的用于估计全局运动的示例算法的框图。
16.图6是示出根据本公开的技术的用于估计局部节点运动矢量的示例算法的框图。
17.图7是示出在地球的椭球近似体上测量的点的大地纬度和经度的概念图。
18.图8是示出相对于赤道和本初子午线(0度纬度和经度)的ecef(地心地固)坐标系(x、y、z轴)的概念图。
19.图9是示出根据本公开的技术的示例编码过程的流程图。
20.图10是示出根据本公开的技术的示例解码过程的流程图。
具体实施方式
21.基于几何的点云压缩(g-pcc)译码器(例如,g-pcc编码器或g-pcc解码器)可以被配置为对参考帧应用运动补偿以生成运动补偿帧。例如,g-pcc编码器可以对参考帧应用“全局”运动补偿,以考虑整个参考帧的旋转和/或整个参考帧的平移。在该示例中,g-pcc编码器可以应用“局部”运动估计,以在比全局运动补偿更精细的尺度下考虑旋转和/或平移。例如,g-pcc编码器可以应用全局运动补偿帧的一个或多个节点(例如,帧的一部分)的局部节点运动估计。
22.一些系统可以基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量。例如,g-pcc编码器可以估计运动矩阵和平移矢量,以在参考帧和当前帧的相应特征点之间强制“匹配”。然而,检测到的特征点可能不是可靠的,这可能导致对旋转矩阵和/或平移矢量的错误估计,这可能增加失真而不是补偿全局运动。这种额外的失真可能降低使用旋转矩阵和平移矢量的g-pcc编码器和g-pcc解码器的译码效率。
23.根据本公开的技术,g-pcc编码器可以被配置为基于全球定位系统信息来应用全局运动补偿。例如,g-pcc编码器可以识别第一组全局运动参数。第一组全局运动参数可以包括定向参数(例如,滚转、俯仰、偏航或角速度)和/或定位参数(例如,沿x、y或z维度的位移或速度)。在该示例中,g-pcc编码器可以基于第一组全局运动参数来确定第二组全局运动参数。例如,g-pcc编码器可以将定向参数和/或定位参数转换为当前帧的旋转矩阵和平移矢量。以此方式,g-pcc译码器(例如,g-pcc编码器或g-pcc解码器)可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。增加运动补偿的准确度可以增加运动补偿预测帧的准确度,这可以减少为当前帧编码的残差从而提高译码效率。
24.图1是示出可以执行本公开的技术的示例编码和解码系统100的框图。本公开的技术整体上涉及对点云数据进行译码(编码和/或解码),即支持点云压缩。一般而言,点云数据包括用于处理点云的任何数据。译码可以有效地压缩和/或解压缩点云数据。
25.如图1所示,系统100包括源设备102和目的地设备116。源设备102提供要由目的地设备116进行解码的编码点云数据。具体地,在图1的示例中,源设备102经由计算机可读介质110向目的地设备116提供点云数据。源设备102和目的地设备116可以包括多种设备中的任一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、诸如智能电话的电话手持机、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、地面或海上载具、航天器、航空器、机器人、激光雷达(lidar)设备、卫星等。在一些情况下,源设备102和目的地设备116可以被装备用于无线通信。
26.在图1的示例中,源设备102包括数据源104、存储器106、g-pcc编码器200和输出接口108。目的地设备116包括输入接口122、g-pcc解码器300、存储器120和数据消费者118。根据本公开,源设备102的g-pcc编码器200和目的地设备116的g-pcc解码器300可以被配置为应用与用于改进点云帧的可视化的技术相关的本公开的技术。因此,源设备102表示编码设备的示例,而目的地设备116表示解码设备的示例。在其他示例中,源设备102和目的地设备116可以包括其他组件或布置。例如,源设备102可以从内部或外部源接收数据(例如,点云数据)。同样,目的地设备116可以与外部数据消费者对接,而不是在同一设备中包括数据消费者。
27.如图1所示的系统100仅仅是一个示例。一般而言,其他数字编码和/或解码设备可以执行用于改进点云帧的可视化的技术。源设备102和目的地设备116仅仅是这样的设备的示例,其中源设备102生成编码数据用于传输到目的地设备116。本公开将“译码”设备称为执行数据译码(编码和/或解码)的设备。因此,g-pcc编码器200和g-pcc解码器300分别表示译码设备具体是编码器和解码器的示例。在一些示例中,源设备102和目的地设备116可以以基本对称的方式操作,使得源设备102和目的地设备116中的每一个都包括编码和解码组件。因此,系统100可以支持源设备102与目的地设备116之间的单向或双向传输,例如,用于流式传输、回放、广播、电话、导航和其他应用。
28.一般而言,数据源104表示数据的源(即,原始的、未编码的点云数据),并且可以向g-pcc编码器200提供数据的一系列“帧”,该g-pcc编码器200为帧的数据进行编码。源设备102的数据源104可以包括点云捕获设备,诸如各种相机或传感器中的任何一个,例如,3d扫描仪或光检测和测距(lidar)设备、一个或多个相机、包含先前捕获的数据的存档和/或用来从数据内容提供者接收数据的数据馈送接口。替代地或附加地,点云数据可以从扫描仪、相机、传感器或其他数据计算机生成。例如,数据源104可以生成基于计算机图形的数据作为源数据,或者产生实况数据、存档数据和计算机生成的数据的组合。也就是说,数据源104可以生成点云数据。在每种情况下,g-pcc编码器200对捕获的、预捕获的或计算机生成的数据进行编码。g-pcc编码器200可将帧由接收顺序(有时称为“显示顺序”)重新排列成用于译码的译码顺序。g-pcc编码器200可以生成包括编码数据的一个或多个比特流。源设备102然后可以经由输出接口108将编码数据输出到计算机可读介质110上以供例如目的地设备116的输入接口122接收和/或检索。
29.源设备102的存储器106和目的地设备116的存储器120可以表示通用存储器。在一些示例中,存储器106和存储器120可以存储原始数据,例如,来自数据源104的原始数据和来自g-pcc解码器300的原始解码数据。附加地或替代地,存储器106和存储器120可以分别存储可由例如g-pcc编码器200和g-pcc解码器300执行的软件指令。尽管在该示例中存储器106和存储器120被示出为与g-pcc编码器200和g-pcc解码器300分开,但是应当理解,g-pcc编码器200和g-pcc解码器300还可以包括用于功能类似或等效目的的内部存储器。此外,存储器106和存储器120可以存储编码数据,例如,从g-pcc编码器200输出并输入到g-pcc解码器300。在一些示例中,存储器106和存储器120的各部分可以被分配为一个或多个缓冲器,例如,以存储原始、解码和/或编码数据。例如,存储器106和存储器120可以存储表示点云的数据。
30.计算机可读介质110可以表示能够将编码数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络实时地将编码数据直接发送到目的地设备116的通信介质。输出接口108可以根据通信标准(诸如无线通信协议)调制包括编码数据的传输信号,并且输入接口122可以解调接收到的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如因特网之类的全球网络。通信介质可以包括路由器、交换机、基站或可用于促进从源设备102到目的地设备116的通信的任何其他装备。
31.在一些示例中,源设备102可以将编码数据从输出接口108输出到存储设备112。类
似地,目的地设备116可以经由输入接口122访问来自存储设备112的编码数据。存储设备112可以包括多种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光碟、dvd、cd-rom、闪存存储器、易失性或非易失性存储器,或用于存储编码数据的任何其他合适的数字存储介质。
32.在一些示例中,源设备102可以将编码数据输出到文件服务器114或可以存储由源设备102生成的编码数据的另一中间存储设备。目的地设备116可以经由流式传输或下载从文件服务器114访问存储的数据。文件服务器114可以是能够存储编码数据并将该编码数据发送到目的地设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如,用于网站)、文件传输协议(ftp)服务器、内容递送网络设备或网络附属存储(nas)设备。目的地设备116可以通过任何标准数据连接(包括因特网连接)访问来自文件服务器114的编码数据。这可以包括适合于访问存储在文件服务器114上的编码数据的无线信道(例如,wi-fi连接)、有线连接(例如,数字订户线(dsl)、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输协议、下载传输协议或其组合进行操作。
33.输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线联网组件(例如,以太网卡)、根据各种ieee 802.11标准中的任何标准操作的无线通信组件或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4g、4g-lte(长期演进)、高级lte、5g等)来传递数据,诸如编码数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准(诸如ieee 802.11规范、ieee 802.15规范(例如,zigbee
tm
)、蓝牙
tm
标准等)来传递数据,诸如编码数据。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(soc)设备。例如,源设备102可以包括用于执行被认为是g-pcc编码器200和/或输出接口108的功能的soc设备,并且目的地设备116可以包括用于执行被认为是g-pcc解码器300和/或输入接口122的功能的soc设备。
34.本公开的技术可以应用于编码和解码,以支持各种应用中的任何一种,诸如自主车辆之间的通信,扫描仪、相机、传感器和处理设备(诸如本地或远程服务器)之间的通信,地理测绘,或其他应用。
35.目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收编码比特流。编码比特流可以包括由g-pcc编码器200定义的信令信息,其也由g-pcc解码器300使用,诸如具有描述译码单元(例如,切片、图片、图片组、序列等)的特性和/或处理的值的语法元素。数据消费者118使用解码数据。例如,数据消费者118可以使用解码数据来确定物理对象的位置。在一些示例中,数据消费者118可以包括基于点云呈现图像的显示器。
36.g-pcc编码器200和g-pcc解码器300各自可以被实现为各种合适的编码器和/或解码器电路中的任何一个,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。当这些技术部分地以软件实现时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以执行本公开的技术。g-pcc编码器200和g-pcc解码器300中的每一个可以被包括在一个或多个编码器或解码器中,其中的任一个可
以被集成为相应设备中的组合编码器/解码器(codec)的一部分。包括g-pcc编码器200和/或g-pcc解码器300的设备可以包括一个或多个集成电路、微处理器和/或其他类型的设备。
37.g-pcc编码器200和g-pcc解码器300可以根据诸如视频点云压缩(v-pcc)标准或几何点云压缩(g-pcc)标准的译码标准来操作。本公开一般可以涉及图片的译码(例如,编码和解码)以包括对数据进行编码或解码的过程。编码比特流通常包括表示译码决策(例如,译码模式)的语法元素的一系列值。
38.本公开总体上可以指“用信号发送”某些信息,诸如语法元素。术语“用信号发送”通常可以指对用于对编码数据进行解码的语法元素和/或其他数据的值的传送。也就是说,g-pcc编码器200可以在比特流中用信号发送语法元素的值。通常,用信号发送是指在比特流中生成值。如上所述,源设备102可以基本上实时地或非实时地将比特流传输到目的地设备116,诸如可能在将语法元素存储到存储设备112以供目的地设备116稍后检索时发生。
39.iso/iec mpeg(jtc 1/sc 29/wg 11)正在研究点云译码技术标准化的潜在需求,其压缩能力大大超过当前方法,并将以创建标准为目标。该小组正在合作开展这项探索活动,被称为三维图形团队(3dg),以评估该领域专家提出的压缩技术设计。
40.点云压缩活动分类为两种不同的方法。第一种方法是“视频点云压缩”(v-pcc),它分割3d对象,并在多个2d平面中投影片段(在2d帧中表示为“贴片”),这些片段由传统2d视频编解码器(诸如高效视频译码(hevc)(itu-t h.265)编解码器)进一步译码。第二种方法是“基于几何的点云压缩”(g-pcc),它直接压缩3d几何,即3d空间中一组点的定位和相关联的属性值(针对与3d几何相关联的每个点)。g-pcc解决了类别1(静态点云)和类别3(动态获取的点云)中点云的压缩。g-pcc标准的最新草案可在g-pcc dis(iso/iec jtc1/sc29/wg11 w19088,比利时布鲁塞尔,2020年1月)中获得,编解码器的描述可在g-pcc编解码器说明书v6(iso/iec jtc1/sc29/wg11 w19091,比利时布鲁塞尔,2020年1月)中获得。
41.点云包含3d空间中的一组点,并且可以具有与该点相关联的属性。属性可以是颜色信息,诸如r、g、b或y、cb、cr或反射率信息或其他属性。点云可以由诸如lidar传感器和3d扫描仪的各种相机或传感器捕获,并且也可以由计算机生成。也就是说,源设备102可以基于来自lidar装置(例如,lidar传感器和/或lidar设备)的信号来生成点云数据。点云数据用于各种应用,包括但不限于建筑(建模)、图形(用于可视化和动画的3d模型)和汽车行业(用于帮助导航的lidar传感器)。
42.由点云数据占据的3d空间可以由虚拟边界框包围。边界框中的点的位置可以用一定的精度表示;因此,可以基于精度来量化一个或多个点的定位。在最小级别,边界框被分割为体素,体素是由单位立方体表示的最小空间单位。边界框中的体素可以与零个、一个或多个点相关联。边界框可以分割为多个立方体/立方体形区域,这些区域可以称为拼贴(tile)。每个拼贴可以被译码成一个或多个切片。将边界框划分为切片和拼贴可以基于每个分区中的点的数量,或者基于其他考虑因素(例如,特定区域可以被译码为拼贴)。可以使用类似于视频编解码器中的分割判决来进一步划分切片区域。
43.根据本公开的技术,g-pcc编码器200可以被配置为基于全球定位系统信息来应用全局运动补偿。例如,g-pcc编码器200可以识别第一组全局运动参数。第一组全局运动参数可以包括定向参数(例如,滚转、俯仰、偏航或角速度)和/或定位参数(例如,沿x、y或z维度的位移或速度)。在该示例中,g-pcc编码器200可以基于第一组全局运动参数来确定第二组
全局运动参数。例如,g-pcc编码器200可以将定向参数和/或定位参数转换为当前帧的旋转矩阵和平移矢量。以此方式,g-pcc编码器200可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更精确。
44.g-pcc编码器200可以用信号发送第一组全局运动参数(例如,定向参数和/或定位参数)。在一些示例中,g-pcc编码器200可以用信号发送第二组全局运动参数(例如,当前帧的旋转矩阵和平移矢量)。虽然示例描述了用信号发送当前帧的旋转矩阵和平移矢量以用信号发送第二组全局运动参数,但在一些示例中,g-pcc编码器200可以用信号发送当前帧的旋转矩阵和平移矢量的一部分和/或估计。例如,g-pcc编码器200可以用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。在一些示例中,g-pcc编码器200可以用信号发送第二组全局运动参数,以包括仅指示当前帧的平均速度的平移矢量。在一些示例中,g-pcc编码器200可以仅用信号发送第二组全局运动参数,以仅包括指示当前帧的平均速度的平移矢量的幅度。以此方式,g-pcc编码器200可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更精确。增加运动补偿的准确度可以增加运动补偿预测帧的准确度,这可以减少为当前帧编码的残差从而提高译码效率。
45.类似地,g-pcc解码器300可以基于全球定位系统信息来应用全局运动补偿。例如,g-pcc解码器300可以从比特流中解码全局运动信息(例如,第一组全局运动参数和/或第二组全局运动参数)。在该示例中,g-pcc解码器300可以基于全局运动信息来确定当前帧的全局运动。例如,g-pcc解码器300可以基于当前帧的旋转矩阵和平移矢量来应用全局运动补偿。
46.g-pcc解码器300可以直接从比特流中解码旋转矩阵和平移矢量,或者可以从在比特流中用信号发送的全局运动信息中估计和/或导出旋转矩阵和平移矢量。例如,g-pcc解码器300可以从比特流中解码当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。在该示例中,g-pcc解码器300可以基于滚转差、俯仰差、偏航差和平移矢量来确定旋转矩阵和平移矢量。在一些示例中,g-pcc解码器300可以从比特流中解码平移矢量,并将旋转矩阵近似为单位矩阵。在一些示例中,g-pcc解码器300可以从比特流中解码指示当前帧的平均速度的平移矢量的幅度,并基于所接收的幅度来近似平移矢量,并将旋转矩阵近似为旋转矩阵的单位矩阵。以此方式,g-pcc解码器300可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更精确。增加运动补偿的精度可以增加运动补偿预测帧的精度,这可以减少为当前帧编码的残差从而提高译码效率。
47.图2提供了g-pcc编码器200的概述。图3提供了g-pcc解码器300的概述。所示模块是逻辑模块,不一定与g-pcc编解码器的参考实现方式中的实现代码一一对应,即iso/iec mpeg(jtc 1/sc 29/wg 11)研究的tmc13测试模型软件。
48.在g-pcc编码器200和g-pcc解码器300两者中,首先对点云定位进行译码。属性译码取决于解码的几何。在图2和图3中,灰色阴影模块是通常用于类别1数据的选项。对角线
交叉阴影模块是通常用于类别3数据的选项。所有其他模块在类别1和类别3之间是通用的。
49.对于类别3数据,压缩几何通常表示为从根一直到各个体素的叶级的八叉树。对于类别1数据,压缩几何通常由修剪八叉树(即,从根向下到大于体素的块的叶级的八叉树)加上模型来表示,该模型近似于修剪八叉树中每个叶内的表面。以此方式,类别1和类别3数据共享八叉树译码机制,而类别1数据可以另外用表面模型来近似每个叶内的体素。所使用的表面模型是每块包括1-10个三角形的三角形划分,从而形成三角形汤(soup)。因此,类别1几何编解码器被称为三汤(trisoup)几何编解码器,而类别3几何编解码器被称为八叉树几何编解码器。
50.在八叉树的每个节点上,占用率被用信号发送(当未推断时)用于一个或多个其子节点(最多八个节点)。指定多个邻域,包括(a)与当前八叉树节点共享面的节点,(b)与当前八叉树节点共享面、边或顶点的节点等。在每个邻域内,节点和/或其子节点的占用率可用于预测当前节点或其子节点的占用率。对于在八叉树的某些节点中稀疏分布的点,编解码器还支持直接译码模式,在该模式下点的3d定位被直接编码。可以用信号发送标志以指示直接模式被用信号发送。在最低级别,还可以对与八叉树节点/叶节点相关联的点的数量进行译码。
51.一旦对几何进行了译码,将对与几何点对应的属性进行译码。当存在与一个重构/解码的几何点相对应的多个属性点时,可以导出表示重构点的属性值。
52.g-pcc中有三种属性译码方法:区域自适应分层变换(raht)译码、基于插值的分层最近邻预测(预测变换)和基于插值的具有更新/提升步骤的分层最近邻预测(提升变换)。raht和提升通常用于类别1数据,而预测通常用于类别3数据。然而,任何一种方法都可以用于任何数据,就像g-pcc中的几何编解码器一样,用于对点云译码的属性译码方法在比特流中指定。
53.对属性的译码可以在细节级别(lod)中进行,其中可以通过每个细节级别获得点云属性的更精细表示。可以基于与相邻节点的距离度量或基于采样距离来指定每个细节级别。
54.在g-pcc编码器200处,量化作为针对属性的译码方法的输出而获得的残差。残差可以通过从基于当前点的邻域中的点并且基于先前编码的点的属性值导出的预测中减去属性值来获得。可以使用上下文自适应算术译码对量化残差进行译码。
55.在图2的示例中,g-pcc编码器200可以包括坐标变换单元202、颜色变换单元204、体素化单元206、属性传送单元208、八叉树分析单元210、表面近似分析单元212、算术编码单元214、几何重构单元216、raht单元218、lod生成单元220、提升单元222、系数量化单元224和算术编码单元226。
56.如图2的示例所示,g-pcc编码器200可以获得点云中的点的一组定位和一组属性。g-pcc编码器200可以从数据源104(图1)获得点云中的点的一组位置和一组属性。定位可以包括点云中的点的坐标。属性可以包括关于点云中的点的信息,诸如与点云中的点相关联的颜色。g-pcc编码器200可以生成几何比特流203,其包括点云中的点的定位的编码表示。g-pcc编码器200还可以生成包括一组属性的编码表示的属性比特流205。
57.坐标变换单元202可以对点的坐标应用变换,以将坐标从初始域变换到变换域。本公开可以将变换后的坐标称为变换坐标。颜色变换单元204可以应用将属性的变换到变换
颜色信息应用到不同的域。例如,颜色变换单元204可以将颜色信息从rgb颜色空间变换到ycbcr颜色空间。
58.此外,在图2的示例中,体素化单元206可以将变换坐标体素化。变换坐标的体素化可以包括量化和去除点云的一些点。换言之,点云的多个点可以包含在单个“体素”中,然后可以在某些方面将其视为一个点。
59.八叉树分析单元210可以基于体素化变换坐标生成八叉树。根据本公开的技术,八叉树分析单元210可以被配置为基于全球定位系统信息应用全局运动补偿。例如,八叉树分析单元210可以识别第一组全局运动参数。第一组全局运动参数可以包括定向参数(例如,滚转、俯仰、偏航或角速度)和/或定位参数(例如沿x、y或z维度的位移或速度)。在该示例中,八叉树分析单元210可以基于第一组全局运动参数来确定第二组全局运动参数。例如,八叉树分析单元210可以将定向参数和/或定位参数转换为当前帧的旋转矩阵和平移矢量。以此方式,八叉树分析单元210可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。
60.此外,在图2的示例中,表面近似分析单元212可以分析点以潜在地确定多组点的表面表示。算术编码单元214可以对表示由表面近似分析单元212确定的八叉树和/或表面的信息的语法元素进行熵编码。g-pcc编码器200可以在几何比特流203中输出这些语法元素。几何比特流203还可以包括其他语法元素,包括未经算术编码的语法元素。
61.几何重构单元216可以基于八叉树、指示由表面近似分析单元212确定的表面的数据和/或其他信息来重构点云中的点的变换坐标。由于体素化和表面近似,由几何重构单元216重构的变换坐标的数量可以不同于点云的原始点数。本公开可以将所得到的点称为重构点。属性传送单元208可以将点云的原始点的属性传送到点云的重构点。
62.此外,raht单元218可以对重构点的属性应用raht译码。在一些示例中,在raht下,获取2
×2×
2点定位的块的属性,并沿一个方向进行变换,以获得四个低(l)频率节点和四个高(h)频率节点。随后,在第二方向上变换四个低频率节点(l)以获得两个低(ll)频率节点和两个高(lh)频率节点。沿着第三方向变换两个低频率节点(ll)以获得一个低(lll)频率节点和一个高(llh)频率节点。低频率节点lll对应于dc系数,而高频率节点h、lh和llh对应于ac系数。每个方向上的变换可以是具有两个系数权重的一维(1d)变换。低频率系数可以被视为用于下一个更高级别的raht变换的2
×2×
2块的系数,并且ac系数被编码而不改变;这样的变换一直持续到顶部根节点。用于编码的树遍历从顶部到底部用于计算用于系数的权重;变换顺序是从底部到顶部。然后可以对系数进行量化和译码。
63.替代地或附加地,lod生成单元220和提升单元222可以分别对重构点的属性应用lod处理和提升。提升单元222可以被配置为用更新/提升步骤(提升变换)执行基于内插的分层最近邻预测。在一些示例中,提升单元222可以被配置为执行全局运动补偿。
64.lod生成单元220可用于将属性分割成不同的细化级别。每个细化级别都对点云的属性进行细化。第一细化级别提供粗略的近似,并且包含很少的点;后续的细化级别通常包含更多的点,依此类推。可以使用基于距离的度量来构造细化级别,或者还可以使用一个或多个其他分类标准(例如,从特定顺序进行子采样)。因此,所有重构点都可以包括在细化级别中。通过取所有点的并集来产生每个细节级别,直到特定的细化级别:例如,lod1基于细化级别rl1获得,lod2基于rl1和rl2获得,
……
lodn通过rl1、rl2、
……
rln的并集获得。在一
些情况下,lod生成之后可以是预测方案(例如,预测变换),其中根据先前点的加权平均来预测与lod中的每个点相关联的属性,并且对残差进行量化和熵编码。提升方案建立在预测变换机制之上,其中使用更新算子来更新系数并执行系数的自适应量化。
65.raht单元218和提升单元222可以基于属性来生成系数。系数量化单元224可以量化由raht单元218或提升单元222生成的系数。算术编码单元226可以对表示量化系数的语法元素应用算术译码。g-pcc编码器200可以在属性比特流205中输出这些语法元素。属性比特流205还可以包括其他语法元素,包括非算术编码的语法元素。
66.算术编码单元214可以用信号发送第一组全局运动参数(例如,定向参数和/或定位参数)。在一些示例中,算术编码单元214可以在几何比特流203中用信号发送第二组全局运动参数(例如,当前帧的旋转矩阵和平移矢量)。虽然示例描述了用信号发送当前帧的旋转矩阵和平移矢量以用信号发送第二组全局运动参数,但在一些示例中,算术编码单元214可以在几何比特流203中用信号发送当前帧的旋转矩阵和平移矢量的一部分和/或估计。例如,算术编码单元214可以用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。在一些示例中,算术编码单元214可以用信号发送第二组全局运动参数,以包括仅指示当前帧的平均速度的平移矢量。在一些示例中,算术编码单元214可以仅用信号发送第二组全局运动参数,以仅包括指示当前帧的平均速度的平移矢量的幅度。以此方式,算术编码单元214可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。
67.在图3的示例中,g-pcc解码器300可以包括几何算术解码单元302、属性算术解码单元304、八叉树合成单元306、逆量化单元308、表面近似合成单元310、几何重构单元312、raht单元314、lod生成单元316、逆提升单元318、逆变换坐标单元320以及逆变换颜色单元322。
68.g-pcc解码器300可以获得几何比特流203和属性比特流205。解码器300的几何算术解码单元302可以对几何比特流203中的语法元素应用算术解码(例如,上下文自适应二进制算术译码(cabac)或其他类型的算术解码)。类似地,属性算术解码单元304可以对属性比特流205中的语法元素应用算术解码。
69.例如,几何算术解码单元302可以从几何比特流203接收全局运动信息(例如,第一组全局运动参数和/或第二组全局运动参数)。例如,几何算术解码单元302可以接收第二组全局运动参数(例如,当前帧的旋转矩阵和平移矢量)。虽然示例描述了接收当前帧的旋转矩阵和平移矢量以用信号发送第二组全局运动参数,但在一些示例中,几何算术解码单元302可以接收当前帧的旋转矩阵和旋转矢量的一部分和/或估计。例如,几何算术解码单元302可以接收当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。在一些示例中,几何算术解码单元302可以接收仅包括指示当前帧的平均速度的平移矢量的第二组全局运动参数。在一些示例中,几何算术解码单元302可以接收第二组全局运动参数,以仅包括指示当前帧的平均速度的平移矢量的幅度。
70.八叉树合成单元306可以基于从几何比特流203中解析的语法元素来合成八叉树。从八叉树的根节点开始,在比特流中用信号发送每个八叉树级别的八个子节点中的每一个
子节点的占用率。当信令指示特定八叉树级别的子节点被占用时,用信号发送该子节点的孩子的占用率。在进行到后续八叉树级别之前,用信号发送每个八叉树级别的节点的信令。在八叉树的最后一级,每个节点对应于体素定位;当叶节点被占用时,可以指定一个或多个点在体素定位处被占用。在一些情况下,由于量化,八叉树的某些分支可能比最终级别更早终止。在这种情况下,叶节点被视为没有子节点的已占用节点。在几何比特流203中使用表面近似的情况下,表面近似合成单元310可以基于从几何比特流203中解析的语法元素并基于八叉树来确定表面模型。
71.八叉树合成单元306可以基于全局运动信息来确定当前帧的全局运动。例如,八叉树合成单元306可以基于当前帧的旋转矩阵和平移矢量来应用全局运动补偿。同样,几何算术解码单元302可以从几何比特流203接收旋转矩阵和平移矢量。八叉树合成单元306可以基于第一组全局运动参数和/或一部分第二全局运动参数来确定或估计第二组全局运动参数(例如,旋转矩阵和平移矢量)。
72.例如,八叉树合成单元306可以从几何比特流203中解码当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。在该示例中,八叉树合成单元306可以基于滚转差、俯仰差、偏航差和平移矢量来确定旋转和平移矢量。
73.在一些示例中,八叉树合成单元306可以从几何比特流203中解码平移矢量,并将旋转矩阵近似为单位矩阵。在一些示例中,八叉树合成单元306可以从几何比特流203中解码指示当前帧的平均速度的平移矢量的幅度,并基于所接收的幅度来近似平移矢量,并将旋转矩阵近似为旋转矩阵的单位矩阵。以此方式,八叉树合成单元306可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。
74.八叉树合成单元306可以将定向参数和/或定位参数转换为当前帧的旋转矩阵和平移矢量。以此方式,八叉树合成单元306可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。
75.此外,几何重构单元312可以执行重构以确定点云中的点的坐标。对于八叉树的叶节点处的每个定位,几何重构单元312可以通过使用八叉树中的叶节点的二进制表示来重构节点定位。在每个相应的叶节点处,用信号发送相应叶节点处的点数;这指示相同体素定位处的重复点的数量。当使用几何量化时,缩放点定位以确定重构的点定位值。
76.逆变换坐标单元320可以对重构坐标应用逆变换,以将点云中的点的重构坐标(定位)从变换域转换回初始域。点云中的点的定位可以在浮点域中,但g-pcc编解码器中的点定位在整数域中译码。逆变换可用于将定位转换回原始域。
77.另外,在图3的示例中,逆量化单元308可以对属性值进行逆量化。属性值可以基于从属性比特流205获得的语法元素(例如,包括由属性算术解码单元304解码的语法元素)。
78.取决于属性值如何被编码,raht单元314可以执行raht译码,以基于逆量化属性值确定点云的点的颜色值。raht解码是从树的顶部到底部进行的。在每一级,使用从逆量化过程导出的低频率系数和高频率系数来导出组成值。在叶节点处,导出的值对应于系数的属性值。点的权重推导过程类似于在g-pcc编码器200处使用的过程。替代地,lod生成单元316
和逆提升单元318可以使用基于细节级别的技术来确定点云的点的颜色值。lod生成单元316对每个lod进行解码,从而给出点的属性的逐渐更精细的表示。利用预测变换,lod生成单元316可以从处于先前lod中或先前在相同lod中重构的点的加权和导出点的预测。lod生成单元316可以将预测添加到残差(其在逆量化之后获得)以获得属性的重构值。当使用提升方案时,lod生成单元316还可以包括更新算子以更新用于导出属性值的系数。在这种情况下,lod生成单元316还可以应用逆自适应量化。
79.此外,在图3的示例中,逆变换颜色单元322可以对颜色值应用逆颜色变换。逆颜色变换可以是由g-pcc编码器200的颜色变换单元204应用的颜色变换的逆。例如,颜色变换单元204可以将颜色信息从rgb颜色空间变换到ycbcr颜色空间。因此,逆颜色变换单元322可以将颜色信息从ycbcr颜色空间变换到rgb颜色空间。
80.图2和图3的各个单元被示出以帮助理解由g-pcc编码器200和g-pcc解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能的电路,并根据可以执行的操作进行了预先设置。可编程电路是指可以被编程来执行各种任务的电路,并在可以执行的操作中提供灵活的功能。例如,可编程电路可以执行使可编程电路以软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但固定功能电路执行的操作类型通常是不可变的。在一些示例中,单元中的一个或多个可以是不同的电路块(固定功能或可编程),并且在一些示例中,单元中的一个或多个可以是集成电路。
81.根据本公开的技术,g-pcc编码器200可以表示包括用于存储点云数据的存储器和耦合到存储器并在电路中实现的一个或多个处理器的设备的示例。一个或多个处理器被配置为从全球定位系统信息中识别第一组全局运动参数,基于第一组全局运动参数来确定用于当前帧的全局运动估计的第二组全局运动参数。一个或多个处理器还被配置为使用第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
82.g-pcc解码器300可以表示包括用于存储点云数据的存储器和耦合到存储器并在电路中实现的一个或多个处理器的设备的示例。一个或多个处理器可以被配置为对指示全局运动信息的比特流的符号进行解码,基于全局运动信息确定要用于当前帧的全局运动估计的一组全局运动参数。一个或多个处理器还被配置为使用一组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
83.g-pcc技术涉及两种运动,全局运动矩阵和局部节点运动矢量。全局运动参数可以包括旋转矩阵和平移矢量。g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以对参考帧(例如,预测帧)中的所有点应用全局运动补偿。八叉树的节点的局部节点运动矢量是仅应用于预测(参考)帧中的节点内的点的运动矢量。例如,g-pcc译码器可以仅在参考帧的一部分(例如,一组节点)上应用局部节点运动补偿。
84.图4是示出根据本公开的技术的示例运动估计流程图的框图。给定预测帧402和当前帧410,g-pcc编码器200可以首先在全局尺度上估计全局运动(404)。例如,g-pcc编码器200可以根据本文描述的技术生成旋转矩阵和平移矢量。在对预测帧402应用全局运动(406)之后,g-pcc编码器200可以应用局部节点运动估计(408)以在八叉树中以更精细的尺度和节点级别来估计局部运动。g-pcc编码器200可以在运动补偿中应用所估计的局部节点运动。例如,g-pcc编码器200可以应用运动估计并对运动矢量信息和点信息进行编码
(412)。
85.图5是示出用于估计全局运动的示例算法的框图。图5所示的过程可以是图4的步骤404的示例。g-pcc编码器200可以被配置为定义全局运动矩阵以匹配预测帧(参考)与当前帧之间的特征点。整个全局运动估计算法可分为三个步骤:查找特征点(502)、对特征点对进行采样(504)和使用最小均方(lms)算法进行运动估计(506)。
86.g-pcc编码器200可以执行lms算法(506)以将预测帧与当前帧之间具有大定位变化的点定义为特征点。对于当前帧中的每个点,g-pcc编码器200可以找到预测帧中的最近点,并且可以在当前帧与预测帧之间建立点对(502)。如果成对点之间的距离大于阈值,则g-pcc编码器200可以将成对点视为特征点。
87.在找到特征点之后,g-pcc译码器可以对特征点执行采样以降低问题的尺度(例如,通过选择特征点的子集以降低运动估计的复杂性)(504)。然后,g-pcc编码器200可以通过尝试减少预测帧和当前帧中的相应特征点之间的误差来应用最小均方(lms)算法来导出运动参数(506)。该过程可以针对步骤502的每个特征点对循环。
88.图6是示出用于估计局部节点运动矢量的示例算法的框图。图6所示的过程可以是图4的步骤408的示例。在图6的示例中,g-pcc编码器200可以以递归方式估计运动矢量。g-pcc编码器200可以使用成本函数来选择基于速率失真成本的最合适的运动矢量。
89.如果当前节点未被分成8个子节点,则g-pcc编码器200可以确定可能导致当前节点602与预测节点之间的最低成本的运动矢量。如果当前节点被划分为8个子节点(610),则g-pcc编码器200可以应用运动估计算法来找到每个子节点的运动(612),并且可以通过添加每个子节点的估计成本值来获得分割条件下的总成本(614)。g-pcc编码器200可以通过在分割和不分割之间比较成本来决定是否要分割(606)。如果当前节点被分割,则g-pcc编码器200可以向每个子节点分配相应的运动矢量(或者可以进一步分割到其子节点)。如果当前节点未被分割,则g-pcc编码器200可以找到实现最低成本的运动矢量(604),并且可以向当前节点分配该运动矢量。
90.影响运动矢量估计性能的两个参数是块大小(blocksize)和最小预测单元大小(minpusize)。blocksize定义应用运动矢量估计的节点大小上限,minpusize定义下限。
91.g-pcc编码器200可以生成运动矩阵和平移矢量,该运动矩阵和平移矢量迫使g-pcc编码器200分别“匹配”预测(参考)帧与当前帧之间的特征点。检测到的特征点可能不可靠,这可能导致不正确的全局运动参数估计,从而引入额外的失真而不是补偿全局运动。这种额外的失真反过来可能导致比适当补偿全局运动时更低的译码效率。
92.在一些系统中,连续帧中检测到的特征点可能不匹配。例如,连续帧中的各个特征点之间的相对旋转和/或平移可以不同。如果g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)迫使连续帧中的各个特征点彼此匹配,则可能发生失真。
93.当前运动估计结构的问题是运行效率。总运行时间可能是用作参考的锚版本的25倍。在额外的总运行时间中,接近一半的时间通常耗于全局运动估计,接近一半通常耗于局部节点运动估计。这样的高运行时间对于某些应用(例如,点云压缩的实时译码)可能是不实际的,并由此阻碍了此类应用中的运动估计。
94.根据本公开的技术,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以被配置为基于全球定位系统信息应用全局运动补偿。根据本公开的技术,g-pcc译码器可以
被配置为使用以下技术中的一种或多种来应用运动补偿。
95.1)g-pcc编码器200可以从gps(全球定位系统)信息中识别第一组全局运动参数。如本文所使用的,全球定位系统(本文中也简称为“gps”)可以指任何卫星系统,诸如例如,在美国实施的全球定位系统(gps)、全球导航卫星系统(glonass)、北斗导航卫星系统(bds)、伽利略、准天顶卫星系统(qzss)、区域导航卫星系统(irnss)或其他卫星系统。
96.a.第一组全局运动参数可以包括一组定向参数,例如,滚转、俯仰、偏航、角速度等。也就是说,g-pcc编码器200可以识别第一组全局运动参数以包括一组定向参数。在一些示例中,一组定向参数可以包括当前帧的滚转、俯仰、偏航或角速度中的一个或多个。
97.b.在一些示例中,可以基于参考帧来指定定向的三个参数。任何这样的三个参数可以包括在第一组全局运动参数中。例如,给定最后一帧的滚转、俯仰和偏航,定向参数可以包括当前帧与最后一帧之间的滚转差、俯仰差和偏航差。也就是说,g-pcc编码器200可以识别一组定向参数,以包括当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与帧之间的偏航差、或者当前帧与参考帧之间的角速度差中的一个或多个。
98.c.第一组全局运动参数可以包括一组定位参数,例如,x、y、z维度的位移或速度(例如,速度-x、速度-y、速度-z)。也就是说,g-pcc编码器200可以识别一组定向参数以包括一组定位参数。在一些示例中,一组定位参数可以包括当前帧的位移或当前帧的平均速度中的一个或多个。
99.d.在一些示例中,可以基于参考帧来指定定位的三个参数。也就是说,g-pcc编码器200可以基于参考帧识别一组定向参数以包括定位的三个参数。任何这样的三个参数可以包括在第一组全局运动参数中。例如,可以使用东-北-上坐标系来计算定位参数。也就是说,一组定位参数可以包括东-北-上坐标系的东速度、北速度或上速度中的一个或多个。
100.2)g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以从第一组全局运动参数中导出第二组全局运动参数,以用于全局运动估计。也就是说,g-pcc译码器可以基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数。
101.a.第二组全局运动参数可以包括全局运动矩阵的元素,其可以表示(例如,描述)旋转矩阵和平移矢量。也就是说,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以从第一组全局运动参数中导出第二组全局运动参数,以包括指示当前帧的偏航、俯仰和滚转的旋转矩阵和指示当前帧的平均速度的平移矢量。
102.b.第二组全局运动参数可以从第一组全局运动参数精确地计算或近似。
103.3)g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以使用第二组全局运动参数来对参考帧应用运动补偿,从而得到补偿帧。也就是说,g-pcc译码器可以使用第二组全局运动参数对参考帧应用运动补偿,以生成当前帧的全局运动补偿帧。
104.a.g-pcc译码器可以使用补偿帧作为用于当前帧的运动估计的参考。
105.b.在一些示例中,g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以通过首先应用旋转然后平移来应用补偿。
106.c.在一些示例中,g-pcc译码器可以通过首先应用平移然后旋转来应用补偿。
107.4)g-pcc编码器200可以在比特流中用信号发送第二组全局运动参数。g-pcc编码器200可以使用第二组全局运动参数来使得g-pcc解码器300能够估计全局运动并应用预测或运动补偿。也就是说,g-pcc编码器200可以在比特流中用信号发送第二组全局运动参数。
例如,g-pcc编码器200可以用信号发送指示当前帧的偏航、俯仰和滚转的旋转矩阵和指示当前帧的平均速度的平移矢量。类似地,g-pcc解码器300可以从比特流中解码指示当前帧的偏航、俯仰和滚转的旋转矩阵以及指示当前帧的平均速度的平移矢量。
108.a.在一些示例中,g-pcc编码器200可以在比特流中用信号发送第一组全局运动参数。在该示例中,g-pcc解码器300可以导出第二组全局运动参数。也就是说,g-pcc编码器200可以在比特流中用信号发送第一组全局运动参数。例如,g-pcc编码器200可以用信号发送从全球定位系统信息中识别的一组定向参数或一组平移参数中的一个或多个。类似地,g-pcc解码器300可以从比特流中解码从全球定位系统信息中识别的一组定向参数或一组平移参数中的一个或多个。如下所述,g-pcc编码器200可以对第一组全局运动参数和/或第二组全局运动参数的一部分和/或估计进行编码。
109.5)g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以找到用于局部节点运动矢量估计的全局运动参数的适当组合,以尝试找到运行时间和性能之间的平衡取舍。也就是说,g-pcc译码器可以将局部运动的块大小限制为等于最小预测单元大小。
110.a.g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以将局部运动的blocksize限制为等于minpusize。这可以帮助确保局部运动矢量估计的运行时间最小化,同时对译码效率的影响有限。
111.6)g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以通过以下步骤中的一个或多个来改进全局运动估计算法:
112.a.首先,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以通过最小化当前帧与参考帧之间的均方误差来估计初始平移矢量。也就是说,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以通过最小化当前帧与参考帧之间的均方误差来估计初始平移矢量。当估计初始平移矢量时,g-pcc译码器可以考虑点是否是地面的的标签。也就是说,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以确定点是否是地面的。在该示例中,g-pcc译码器可以基于该点是否是地面的来估计第二当前帧的旋转矩阵。
113.b.g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以将初始平移矢量与单位矩阵组合,并且可以将组合的初始平移矢量和单位矩阵馈送到迭代最近点方案或类似方案中以估计旋转矩阵和平移矢量。
114.c.在一些示例中,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以首先基于点是否是地面的的标签来估计旋转矩阵。也就是说,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以确定点是否是地面的。在该示例中,g-pcc译码器可以基于该点是否是地面的来估计第二当前帧的旋转矩阵。例如,g-pcc编码器200可以导出该标签并将该标签用信号发送给g-pcc解码器300。也就是说,g-pcc编码器200可以用信号发送一组标签,其指示该点是否是地面的。在一些示例中,g-pcc编码器200和g-pcc解码器300可以各自导出标签。g-pcc译码器可以基于地面估计算法导出标签;这样的算法可以基于点的高度、点附近的点云的密度、点与lidar原点/固定点的相对距离等。
115.d.g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以将具有零平移矢量的初始旋转矩阵馈送到迭代最近点方案或类似方案中,以估计旋转矩阵和平移矢量。
116.在该示例中,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以从gps信息中导出全局运动参数。gps信息可以包括可以用于导出每个时间戳(或获取的点,或每个
获取的点的估计)在东-北-上坐标系下的滚转-俯仰-偏航信息和速度的值/参数。例如,g-pcc译码器可以从这些提供的信息项直接计算全局运动矩阵和平移矢量。
117.旋转矩阵可以定义从参考帧到当前帧的轴的变化。给定参考帧(roll
ref
,pitch
ref
,yaw
ref
)和当前帧(roll
cur
,pitch
cur
,yaw
cur
)的滚转、俯仰和偏航,g-pcc译码器(例如,g-pcc编码器200或g-pcc解码器300)可以使用滚转、俯仰和偏航的差来进行推导。g-pcc译码器可以将差计算为δ
roll
=roll
cur-roll
ref
、δ
pitch
=pitch
cur-pitch
ref
、δ
yaw
=yaw
cur-yaw
ref

118.滚转的旋转矩阵为
[0119][0120]
俯仰的旋转矩阵为
[0121][0122]
偏航的旋转矩阵为
[0123][0124]
最终旋转矩阵为
[0125]
r=r
yawrpitchrroll
[0126]
在一些示例中,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以被配置为确定是否已经出现滚转、俯仰和偏航中的一个或多个的正方向。g-pcc译码器可以相应地改变角度的符号,因为正方向可以被不同地定义。
[0127]
对于平移矢量,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以使用东-北-上(enu)的速度,因为enu坐标系与点云帧的坐标系很好地对齐。g-pcc译码器可计算参考帧和当前帧的平均速度为v=(v
east
,v
north
,v
up
)。g-pcc译码器可以将速度矢量分解为参考帧的坐标系下的坐标。
[0128]
g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以将速度的新旋转矩阵计算为:
[0129]
滚转速度的旋转矩阵为
[0130][0131]
俯仰速度的旋转矩阵为
[0132]
[0133]
偏航速度的旋转矩阵为
[0134][0135]
速度的最终旋转矩阵为
[0136][0137]
g-pccc可将平移矢量计算为:
[0138]
t=tr
vv[0139]
此处t为一帧的时间。此外,应考虑正方向以导出正确的平移矢量。
[0140]
在该示例中,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以仅用信号发送滚转-俯仰-偏航和平移矢量,而不是用于全局运动的所有12个元素。这将使全局运动参数的数量从12个减少到6个。也就是说,g-pcc编码器200可以用信号发送旋转矩阵和平移矢量,该旋转矩阵指示当前帧的偏航、俯仰和滚转,其包括9个元素,该平移矢量包括3个元素,指示当前帧的平均速度(例如,总共12个元素)。在一些示例中,g-pcc编码器200可以用信号发送当前帧的滚转、当前帧的俯仰、当前帧的偏航以及指示当前帧的平均速度的平移矢量(例如,总共6个元素),而无需用信号发送完整的全局旋转矩阵。
[0141]
g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以确定旋转矩阵和平移矢量。g-pcc译码器可以使用滚转、俯仰、偏航(δ
roll

pitch

yaw
)和平移矢量的差的主要参数。代替压缩/用信号发送整个旋转矩阵,g-pcc编码器200可以只用信号发送增量和平移矢量,这将使用信号发送的参数数量从12个(旋转矩阵9个,平移矢量3个)减少到6个(增量值3个,平移矢量3个)。也就是说,g-pcc编码器200可以用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量(例如,6个元素)。类似地,g-pcc解码器300可以解码当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量(例如,6个元素)。
[0142]
此外,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以通过近似来减少全局运动参数的数量。旋转矩阵中的元素接近于1和0,因此g-pcc译码器可以将旋转矩阵近似为单位矩阵。这样,对于平移矢量,6个参数可以进一步减少到仅3个。也就是说,g-pcc编码器200可以用信号发送指示当前帧的平均速度的平移矢量(例如,3个元素),并且避免用信号发送指示当前帧的偏航、俯仰和滚转的旋转矩阵。类似地,g-pcc解码器300可以解码指示当前帧的平均速度的平移矢量(例如,3个元素),并且避免解码指示当前帧的偏航、俯仰和滚转的旋转矩阵。
[0143]
假设车辆(例如,装备有lidar)将在大部分时间向前移动,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以将平移矢量近似为t
appr
=[0,abs(t),0],其中abs()是计算平移矢量t的幅度的绝对函数。然后,全局运动参数的总数可以减少到只有1个。在此示例中,系统被定义为使得车辆沿正y方向移动,但类似的推导也适用于其他系统。也就是说,g-pcc编码器200可以用信号发送指示当前帧的平均速度的平移矢量的幅度。类似地,g-pcc解码器300可以解码指示当前帧的平均速度的平移矢量的幅度的平移矢量。
[0144]
尝试输入参数blocksize和minpusize的不同组合以在运行时间和性能之间找到平衡的取舍点。
[0145]
g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以确定两倍的blocksize和两倍的minpusize,以实现性能增益和运行时间之间的平衡的取舍。
[0146]
在一些示例中,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以将blocksize设置为等于minpusize,以实现性能增益和运行时间之间的平衡的取舍。也就是说,g-pcc译码器可以基于全局运动补偿帧对当前帧执行运动矢量估计,其中,为了执行运动矢量估计,g-pcc译码器被配置为将局部运动的块大小限制为等于最小预测单元大小。
[0147]
可以通过配置g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)以通过最小化当前帧与预测(参考)帧之间的均方误差(mse)来首先估计平移矢量来改进全局运动估计算法。也就是说,g-pcc译码器可以通过最小化第二当前帧与第二参考帧之间的均方误差来估计初始平移矢量。然后,在应用估计的平移矢量之后,g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可以确定旋转矩阵。
[0148]
新的全局运动估计算法可以有两个步骤。第一步骤是配置g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)以计算初始平移矢量t’。第二步骤是使g-pcc译码器将t’和单位矩阵馈送到(例如,由open3d库提供的)迭代最近点算法或类似的替代方案中。
[0149]
一个步骤是配置g-pcc译码器来估计t’。假设t’=[a,b,c]。平移矢量被假设为最小化当前帧和预测帧之间的mse。此处,g-pcc可以通过以下损失函数表示mse:
[0150][0151]
此处,点是来自参考帧的点,点来自当前帧。wi是权重函数,其被定义为到中心的距离:变量n表示点的总数量。
[0152]
为了最小化l,我们使
[0153][0154]
计算的a将为:
[0155][0156]
也可以导出b和c:
[0157][0158][0159]
然而,仅计算a、b和c一次可能不够准确,因为帧之间的运动总是大的。g-pcc译码
器(例如g-pcc编码器200或g-pcc解码器300)可以定义循环数l。对于第一次迭代,给定参考帧f0和当前帧,g-pcc译码器可以计算to′
。然后,g-pcc译码器可以对f0应用to′
以获得新的参考帧f1。g-pcc译码器可以计算f1与当前帧之间的t1′
。g-pcc可以执行此循环l次以获得我们的最终平移矢量
[0160]
另一个修改针对权重函数。地面点可以“混淆”由g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)执行的用于估计全局运动的算法,因此g-pcc译码器可以“关闭”地面点。可以通过以下方式修改权重函数:
[0161][0162]
g-pcc译码器(例如g-pcc编码器200或g-pcc解码器300)可基于点的一个或多个特性(诸如高度、距点云帧中心的距离、距帧中的点沿某一平面(例如,x-y平面)的距离等)来确定点是地面点或以其他方式。
[0163]
除了对象/场景/点云的点相对于本地参考的位置之外,一些应用还使用相对于地球上固定定位的位置。有几种坐标系用于描述点的地理定位。以下简要介绍了几种应用中使用的一些坐标系。
[0164]
一个这样的系统是大地测量系统。附加讨论可见于https://en.wikipedia.org/wiki/geodetic_datum。大地测量系统使用一组三个值——纬度、经度和海拔。
[0165]
图7是示出基于地球的椭球近似测量的点的大地纬度和经度的概念图。图7示出了如何获得点的大地纬度,作为该点在地球表面(椭球近似)上的法线与赤道平面形成的角度。角度φ表示该点相对于地球的南北定位。经度测量为本初子午线(被选为英国格林威治的一个点)与本初子午线向东测量的正角度和向西的负角度之间的角度λ(以度为单位)。海拔被定义为在椭球表面上方垂直于椭球体的方向上以单位测量的距离。附加讨论可见于https://en.wikipedia.org/wiki/geodetic_datum。
[0166]
另一个坐标系是现在讨论的地球中心-地球固定(ecef)坐标系。在这个系统中,地球的中心被选为参考点,并且该点在地球上(或空间中的任何地方,通常靠近地球表面)的定位相对于该原点在x、y和z维度上的位移来描述。正z轴被选为从原点到北极的直线。正x轴被选为连接中心与地球表面上纬度0度、经度0度的点的直线。
[0167]
图8是示出相对于赤道和本初子午线(0度纬度和经度)的ecef(地心地固)坐标系(x、y、z轴)的概念图。图8中示出了ecef系统相对于纬度和经度的图示。附加讨论可见于https://en.wikipedia.org/wiki/ecef。
[0168]
现在讨论局部切线系统(enu,ned)。局部切线系统指定地球表面上的局部切线平面,并用东、北和上(enu)位移描述该平面中的点定位。可以使用北、东和下(ned)位移来描述等效系统。不同的系统可以用于不同的应用中。在一些示例中,位移可以以米为单位进行描述。
[0169]
除了enu/ned位移外,该系统还使用参考,通过该参考来测量位移。enu/ned参考可由ecef或大地测量系统或另一坐标系描述。enu/ned系统的一个优点可以是相比于按照ecef坐标的绝对定位,相对位移值通常更小。
[0170]
现在讨论点云的定向。场景中的对象的定向对于可能希望使用来自周围场景的信
息可视化点云的应用也可能很重要。为此,必须知道点云帧的x、y和z轴中的一个或多个相对于固定参考的定向。这可以被描述为固定参考xyz轴相对于点云帧使用的轴的旋转。旋转可以被描述为矩阵,也可以被描述为滚转-俯仰-偏航角的三元组。
[0171]
在g-pcc的一些示例中,g-pcc编码器200和g-pcc解码器300可以对点云中的点相对于切片原点的x、y、z定位进行译码,并且切片原点可以依次相对于序列参数集(sps)中指定的原点进行译码,该序列参数集可以由g-pcc编码器200用信号发送;这(称为sps原点)是点云帧的实际原点。当前信令还包括标度(scale)标志,该标度标志指示在解码器侧应用非标准标度操作之后获得的坐标值是否具有米单位。
[0172]
然而,当前的g-pcc示例中未指定sps原点的绝对定位。在一些应用中(例如,地理空间数据可视化),传达帧原点的实际定位以指示在何处获取点云或点云与地理空间对象的关系可能是有用的。例如,除了在特定位置同时获取的其他属性之外,应用可能希望呈现点云信息。在没有sps原点的定位的情况下,g-pcc解码器300或应用可能必须执行昂贵的注册和分类算法来识别sps原点的位置。
[0173]
在一些系统中,除了点云原点的定位之外,定向信息也可能是重要的。为了使g-pcc解码器300正确地呈现点云,g-pcc编码器200将x、y、z轴的定向通知给g-pcc解码器300。g-pcc当前不支持x、y、z轴的定向的通知。在更具体的示例中,汽车上的lidar系统捕获关于汽车运动方向的点云(例如,车辆可以假设车辆的运动方向是正y方向),该点云可以在每一帧改变。定向信息(还有sps原点)可以是帧特定的。
[0174]
以下技术中的一种或多种可以独立地或组合地应用。
[0175]
现在讨论地理位置/gis投影。在一些示例中,g-pcc编码器200可以用信号发送sps原点相对于固定参考的定位。g-pcc解码器300可以解析用信号发送的定位。更一般地,可以用信号发送与点云帧相关联的原点的定位。
[0176]
在一些示例中,g-pcc编码器200可以使用各个维度中的偏移来指定sps原点相对于固定原点和坐标轴的定位。g-pcc解码器300可以解析指定的定位。在一个示例中,ecef系统可用于描述sps原点。在一个示例中,enu系统可用于描述sps原点。在一个示例中,大地测量系统可用于描述sps原点。更一般地,可以使用任何定位系统。
[0177]
在一些示例中,g-pcc编码器200可以用信号发送语法元素,该语法元素用于指示用于描述sps原点的定位的坐标系。g-pcc解码器300可以解析语法元素以确定坐标系。
[0178]
在一些示例中,g-pcc编码器200可以用信号发送一个或多个语法元素,该一个或多个语法元素指示用于在所指示的坐标系中对sps原点的定位进行译码的比特数。g-pcc解码器300可以解析语法元素以确定比特数。
[0179]
现在讨论定向。在一些示例中,g-pcc编码器200可以使用描述x、y、z轴定向的参数。例如,参数可以描述来自固定轴系统(例如,ecef xyz轴)的旋转。在一些示例中,参数可以描述旋转矩阵。在一些示例中,参数可以描述滚转、俯仰和偏航。
[0180]
在一些示例中,g-pcc编码器200可以用信号发送语法元素,该语法元素用于指示用于描述点云帧轴的定向的坐标系。g-pcc解码器300可以解析语法元素以确定坐标系。
[0181]
在一些示例中,g-pcc编码器200可以用信号发送一个或多个语法元素,该一个或多个语法元素指示用于对参数进行译码以描述点云帧的定向的比特数。g-pcc解码器300可以解析语法元素以确定比特数。
[0182]
现在讨论对定位和定向的限制。g-pcc编码器200可以基于由于所使用的应用系统的性质而适用的某些约束来应用某些限制。例如,对于由汽车捕获的lidar数据,g-pcc编码器200可以通过仅提供纬度和经度而不指定海拔来限制定位信息。在其他示例中,对于lidar捕获的数据,g-pcc编码器200可以仅提供车辆在enu方向上的速度,以使g-pcc解码器300能够导出定位,并且类似地提供角速度以指定在多个帧上的定向。
[0183]
在一些示例中,还可以用信号发送与点云相关联的其他参数,诸如角速度、角加速度、线速度、线加速度、与点云帧的捕获相关联的时间等。
[0184]
现在讨论基于帧的信令vs基于序列的信令。在一些示例中,点云原点的定位和/或定向以及轴定向对于整个序列或比特流是固定的。在这种情况下,例如,g-pcc编码器200可以每序列(例如,在诸如sps的参数集中)仅用信号发送一次点云原点的定位和轴定向。g-pcc解码器300可以解析参数集中的语法元素以确定定位和定向。
[0185]
在一些示例中,点云原点的定位和/或定向可以随帧而变化,并且g-pcc编码器200可以用信号发送一个或多个帧的值。g-pcc解码器300可以解析用信号发送的值以确定定位和定向。
[0186]
以下示例显示了如何在每帧的基础上描述点云原点的定位和坐标。
[0187][0188]
pcoo_update_flag等于0指定语法结构包含sps原点的定位和当前帧的轴相对于
一些固定系统的定向中的至少一个,如分别由pcoo_origin_coordinate_system_id和pcoo_origin_orientation_system_id所指示的。pcoo_update_flag等于1指定语法结构包含sps原点的定位和当前帧的轴相对于一些固定系统的定向,如分别由pcoo_origin_coordinate_system_id和pcoo_origin_orientation_system_id所指示的,其中pcoo_origin_coordinate_val[]和pcoo_origin_orientation_val[]指示来自先前帧的pcoo_update_flag等于0的增量译码值。
[0189]
在一些示例中,可以添加限制,使得仅对于不可能从比特流中移除的图片(例如,与最低帧速率相关联的帧或序列的第一帧),pcoo_update_flag可以为0。
[0190]
在一个示例中,为每个语法结构指定id,并且当pcoo_update_flag等于1时,用信号发送参考定位和定向的参考id。
[0191]
在一些示例中,参考定位和定向被选择为具有与当前帧相同或更低的时间id的先前点云帧。
[0192]
替代地,当pcoo_update_flag等于1时,用信号发送帧索引,并相对于该帧的定位和定向测量增量译码的定位和定向。
[0193]
在一个示例中,增量译码仅应用于定位值而不应用于定向值。
[0194]
pcoo_origin_info_present_flag等于1指定用信号发送sps原点的绝对定位信息。pcoo_origin_info_present_flag等于0指定未用信号发送点云帧的绝对定位信息。
[0195]
在这种情况下,可以选择或通过外部方式发送默认绝对。
[0196]
pcoo_origin_coordinate_system_id指定用于描述当前帧的sps原点的绝对定位的坐标系。对于符合本规范版本的比特流,pcoo_origin_coordinate_system_id的值应在0到2的范围内。其他值被保留供iso/iec将来使用。
[0197]
pcoo_origin_coordinate_num_params指定为所指示坐标系中的定位用信号发送的参数的数量。
[0198]
在一些替代方案中,pcoo_origin_coordinate_num_params的值可以是固定的,并且可以基于pcoo_origin_coordinate_system_id的值来预先确定。在一些替代方案中,该语法元素可以被译码为a_minusn,其中不允许用信号发送小于n的值。
[0199]
pcoo_origin_coordinate_num_bits用于指定用于用信号发送pcoo_origin_coordinate_val[i]的比特的数量。
[0200]
对于i=0,pcoo_origin_coordinate_val[i]。pcoo_origin_coordinate_num_params-1用于导出当前帧的sps原点的定位。
[0201]
pcoo_origin_coordinate_val[]的解释由下表给出:
[0202]
[0203][0204]
需注意,上述精度和本公开其余部分中的精度只是示例,本公开的技术适用于米、度或其他单位的任何精度。
[0205]
在一个示例中,对于一些系统,同一系统的参数数量可以基于update_flag的值而变化。例如,当update_flag等于0时,enu系统可以具有六个点,而当update_fag等于1时,enu系统可以仅具有对应于局部位移的三个点。
[0206]
在另一示例中,可以允许用来用信号发送局部参考的选项。当用信号发送指示存在局部参考的语法元素时(例如,local reference_present_flag),可以用信号发送局部参考。
[0207]
pcoo_orientation_info_present_flag等于1指定用信号发送点云帧的xyz轴的定向。pcoo_orientation_info_present_flag等于0指定不用信号发送点云帧的xyz轴的定向。
[0208]
pcoo_orientation_system_id指定用于描述点云帧的xyz轴的定向的定向系统。对于符合本规范版本的比特流,pcoo_orientation_system_id的值应在0到1的范围内。其他值保留供iso/iec将来使用。
[0209]
pcoo_orientation_coordinate_num_params指定为所指示坐标系中的定向用信号发送的参数的数量。
[0210]
在一些示例中,pcoo_orientation_coordinate_num_params的值可以是固定的并且基于pcoo_orientation_coordinate_system_id的值来预先确定。在一些示例中,该语法元素可以被译码为a_minusn,其中不允许用信号发送小于n的值。
[0211]
pcoo_orientation_coordinate_num_bits用于指定用于用信号发送pcoo_orientation_coordinate_val[i]的比特的数量。
[0212]
对于i=1,pcoo_orientation_coordinate_val[i]。pcoo_orientation_coordinate_num_params用于确定点云帧的xyz轴的定向。
[0213]
pcoo_orientation_coordinate_val的解释可从下表获得:
[0214][0215]
在一个示例中,在语法结构中,pcoo_orientation_info_present_flag和pcoo_origin_info_present_flag中的至少一个被限制为等于1。
[0216]
在一些示例中,索引0到8的参数对应于旋转矩阵的按行扫描元素(即,第i个索引对应于第(i/3)行和第(i%2)列)。更一般地,可以选择旋转矩阵元素的任何扫描模式以获得pcoo_orientation_coordinate_val[i]参数。
[0217]
图9是示出根据本公开的技术的示例编码过程的流程图。g-pcc编码器200(例如八叉树分析单元210)可以从全球定位系统信息中识别第一组全局运动参数(902)。例如,g-pcc编码器200可以从全球定位系统信息中识别当前帧的一组定向参数和/或一组定位参数。
[0218]
g-pcc编码器200(例如,八叉树分析单元210)可以基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数(904)。例如,g-pcc编码器200可以确定指示当前帧的偏航、俯仰和滚转的旋转矩阵以及指示当前帧平均速度的平移矢量。
[0219]
g-pcc编码器200(例如,八叉树分析单元210)可以基于第二组全局运动参数对参
考帧应用运动补偿,以生成当前帧的全局运动补偿帧(906)。例如,g-pcc编码器200(例如,八叉树分析单元210)可以基于第二组全局运动参数(例如,旋转矩阵和平移矢量)对参考帧(例如,预测帧)中的所有点应用全局运动补偿。以此方式,g-pcc编码器200可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更精确。
[0220]
g-pcc编码器200(例如八叉树分析单元210)可以基于全局运动补偿帧应用局部节点运动估计以生成当前帧的运动矢量信息和点信息(908)。例如,g-pcc编码器200(例如,八叉树分析单元210)可以应用局部节点运动估计。例如,g-pcc编码器200(例如,八叉树分析单元210)可以在当前节点内应用暴力搜索。在该示例中,g-pcc编码器200(例如,八叉树分析单元210)可以对当前节点中的一部分点进行采样。g-pcc编码器200(例如,八叉树分析单元210)可以在给定初始运动矢量的情况下生成补偿点,并计算参考节点中这些点及其配对之间的成本。g-pcc编码器200(例如八叉树分析单元210)可以选择使成本最小化的运动矢量作为最终估计的局部节点运动矢量。
[0221]
g-pcc编码器200(例如,算术编码单元214)可以用信号发送当前帧的全局运动信息、运动矢量信息和点信息(910)。例如,g-pcc编码器200(例如,算术编码单元214)可以用信号发送第一组全局运动参数(例如,一组定向参数和/或一组定位参数)。在一些示例中,g-pcc编码器200(例如,算术编码单元214)可以用信号发送第二组全局运动参数(例如,旋转矩阵和平移矢量)。g-pcc编码器200(例如,算术编码单元214)可以用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量(例如,6个元素)。在一些示例中,g-pcc编码器200(例如,算术编码单元214)可以用信号发送指示当前帧的平均速度的平移矢量(例如,3个元素)。g-pcc编码器200(例如算术编码单元214)可以用信号发送平移矢量的近似值为t
appr
=[0,abs(t),0],其中abs()是计算平移矢量t的幅度的绝对函数。
[0222]
图10是示出根据本公开的技术的示例解码过程的流程图。g-pcc编码器200(例如,几何算术解码单元302)可以解码指示当前帧的全局运动信息、运动矢量信息和点信息的比特流的符号(1002)。
[0223]
例如,g-pcc解码器300(例如,几何算术解码单元302)可以从几何比特流203中解码第一组全局运动参数和/或第二组全局运动参数。g-pcc解码器300(例如,几何算术解码单元302)可以解码当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。在一些示例中,g-pcc解码器300(例如,几何算术解码单元302)可以解码指示当前帧的平均速度的平移矢量。在一些示例中,g-pcc解码器300(例如,几何算术解码单元302)可以解码指示当前帧的平均速度的平移矢量的幅度。
[0224]
g-pcc解码器300(例如,八叉树合成单元306)可以基于全局运动信息来确定要用于当前帧的全局运动估计的一组全局运动参数(1004)。例如,g-pcc解码器300(例如,八叉树合成单元306)可以基于滚转差、俯仰差、偏航差和平移矢量来确定旋转矩阵和平移矢量。g-pcc解码器300(例如,八叉树合成单元306)可以从几何比特流203解码平移矢量,并将旋转矩阵近似为单位矩阵。在一些示例中,g-pcc解码器300(例如,八叉树合成单元306)可以从几何比特流203解码指示当前帧的平均速度的平移矢量的幅度。在该示例中,g-pcc解码
器300(例如,八叉树合成单元306)可以基于接收的幅度来近似平移矢量,并将旋转矩阵近似为单位矩阵。
[0225]
g-pcc解码器300(例如,八叉树合成单元306)可以基于一组组全局运动参数对参考帧应用全局运动补偿,以生成当前帧的全局运动补偿帧(1006)。以此方式,g-pcc解码器300(例如,八叉树合成单元306)可以使用卫星信息来应用全局运动补偿,这可以比基于参考帧(例如,预测帧)与当前帧之间的特征点来估计当前帧的旋转矩阵和平移矢量更准确。
[0226]
g-pcc解码器300(例如八叉树合成单元306)可以基于全局运动补偿帧应用局部节点运动估计以生成当前帧(1008)。g-pcc解码器300可以输出当前帧(1012)。例如,g-pcc解码器300可以使显示器输出当前帧。
[0227]
本公开的各个方面中的示例可以单独使用或以任何组合使用。
[0228]
条款a1.一种用于对点云数据进行编码的设备,该设备包括:用于存储点云数据的存储器;以及耦合到存储器并在电路中实现的一个或多个处理器,一个或多个处理器被配置为:从全球定位系统信息中识别第一组全局运动参数;基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数;以及基于第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
[0229]
条款a2.根据条款a1所述的设备,其中一个或多个处理器被配置为在比特流中用信号发送第二组全局运动参数。
[0230]
条款a3.根据条款a1所述的设备,其中一个或多个处理器被配置为在比特流中用信号发送第一组全局运动参数。
[0231]
条款a4.根据条款a1所述的设备,其中第一组全局运动参数包括一组定向参数。
[0232]
条款a5.根据条款a4所述的设备,其中一组定向参数包括当前帧的滚转、俯仰、偏航或角速度中的一个或多个。
[0233]
条款a6.根据条款a4所述的设备,其中一组定向参数包括当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差、或当前帧与参考帧之间的角速度差中的一个或多个。
[0234]
条款a7.根据条款a1所述的设备,其中第一组全局运动参数包括一组定位参数。
[0235]
条款a8.根据条款a7所述的设备,其中一组定位参数包括当前帧的位移或当前帧的平均速度中的一个或多个。
[0236]
条款a9.根据条款a7所述的设备,其中一组定位参数包括东-北-上坐标系的东速度、北速度或上速度中的一个或多个。
[0237]
条款a10.根据条款a1所述的设备,其中第二组全局运动参数包括指示当前帧的偏航、俯仰和滚转的旋转矩阵和指示当前帧的平均速度的平移矢量。
[0238]
条款a11.根据条款a1所述的设备,其中一个或多个处理器被配置为用信号发送当前帧的滚转、当前帧的俯仰、当前帧的偏航以及指示当前帧的平均速度的平移矢量。
[0239]
条款a12.根据条款a1所述的设备,其中一个或多个处理器被配置为用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。
[0240]
条款a13.根据条款a1所述的设备,其中一个或多个处理器被配置为用信号发送指示当前帧的平均速度的平移矢量,并且避免用信号发送指示当前帧的偏航、俯仰和滚转的
旋转矩阵。
[0241]
条款a14.根据条款a1所述的设备,其中一个或多个处理器被配置为用信号发送指示当前帧的平均速度的平移矢量的幅度。
[0242]
条款a15.根据条款a1所述的设备,其中一个或多个处理器被配置为基于全局运动补偿帧针对当前帧执行运动矢量估计,并且其中,为了执行运动矢量估计,一个或多个处理器被配置为将局部运动的块大小限制为等于最小预测单元大小。
[0243]
条款a16.根据条款a1所述的设备,其中参考帧是第一参考帧,并且当前帧是第一当前帧,并且其中一个或多个处理器被配置为通过最小化第二当前帧与第二参考帧之间的均方误差来估计初始平移矢量。
[0244]
条款a17.根据条款a1所述的设备,其中当前帧是第一当前帧,并且其中一个或多个处理器被配置为:确定点是否是地面的;以及基于该点是否是地面的来估计第二当前帧的旋转矩阵。
[0245]
条款a18.根据条款a17所述的设备,其中一个或多个处理器被配置为用信号发送指示该点是否是地面的的一组标签。
[0246]
条款a19.根据条款a1所述的设备,其中一个或多个处理器还被配置为生成点云数据。
[0247]
条款a20.根据条款a19所述的设备,其中一个或多个处理器被配置为,作为生成点云数据的一部分,基于来自lidar装置的信号生成点云数据。
[0248]
条款a21.根据条款a1所述的设备,其中该设备是移动电话、平板电脑、车辆或扩展现实设备中的一个。
[0249]
条款a22.根据条款a1所述的设备,其中该设备包括被配置为传输编码点云数据的接口。
[0250]
条款a23.一种用于对点云数据进行编码的方法,该方法包括:利用一个或多个处理器,从全球定位系统信息中识别第一组全局运动参数;利用一个或多个处理器,基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数;以及利用一个或多个处理器,基于第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
[0251]
条款a24.根据条款a23所述的方法,还包括利用一个或多个处理器在比特流中用信号发送第二组全局运动参数。
[0252]
条款a25.根据条款a23所述的方法,还包括利用一个或多个处理器在比特流中用信号发送第一组全局运动参数。
[0253]
条款a26.根据条款a23所述的方法,其中第一组全局运动参数包括一组定向参数。
[0254]
条款a27.根据条款a26所述的方法,其中一组定向参数包括当前帧的滚转、俯仰、偏航或角速度中的一个或多个。
[0255]
条款a28.根据条款a26所述的方法,其中一组定向参数包括当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差、或当前帧与参考帧之间的角速度差中的一个或多个。
[0256]
条款a29.根据条款a23所述的方法,其中第一组全局运动参数包括一组定位参数。
[0257]
条款a30.根据条款a29所述的方法,其中一组定位参数包括当前帧的位移或当前
帧的平均速度中的一个或多个。
[0258]
条款a31.根据条款a29所述的方法,其中一组定位参数包括东-北-上坐标系的东速度、北速度或上速度中的一个或多个。
[0259]
条款a32.根据条款a23所述的方法,其中第二组全局运动参数包括指示当前帧的偏航、俯仰和滚转的旋转矩阵和指示当前帧的平均速度的平移矢量。
[0260]
条款a33.根据条款a23所述的方法,还包括用信号发送当前帧的滚转、当前帧的俯仰、当前帧的偏航以及指示当前帧的平均速度的平移矢量。
[0261]
条款a34.根据条款a23所述的方法,还包括用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。
[0262]
条款a35.根据条款a23所述的方法,还包括利用一个或多个处理器用信号发送指示当前帧的平均速度的平移矢量,并且避免用信号发送指示当前帧的偏航、俯仰和滚转的旋转矩阵。
[0263]
条款a36.根据条款a23所述的方法,还包括利用一个或多个处理器用信号发送指示当前帧的平均速度的平移矢量的幅度。
[0264]
条款a37.根据条款a23所述的方法,还包括利用一个或多个处理器基于全局运动补偿帧来针对当前帧执行运动矢量估计,并且其中执行运动矢量估计包括将局部运动的块大小限制为等于最小预测单元大小。
[0265]
条款a38.根据条款a23所述的方法,其中参考帧是第一参考帧,并且当前帧是第一当前帧,该方法还包括通过最小化第二当前帧与第二参考帧之间的均方误差来估计初始平移矢量。
[0266]
条款a39.根据条款a23所述的方法,其中当前帧是第一当前帧,该方法还包括:利用一个或多个处理器,确定点是否是地面的;以及利用一个或多个处理器,基于该点是否是地面的来估计第二当前帧的旋转矩阵。
[0267]
条款a40.根据条款a39所述的方法,还包括利用一个或多个处理器用信号发送指示该点是否是地面的的一组标签。
[0268]
条款a41.根据条款a23所述的方法,还包括利用一个或多个处理器生成点云数据。
[0269]
条款a42.根据条款a41所述的方法,还包括利用一个或多个处理器基于来自lidar装置的信号生成点云数据。
[0270]
条款a43.一种其上存储有指令的计算机可读存储介质,当被执行时指令使一个或多个处理器:从全球定位系统信息中识别第一组全局运动参数;基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数;以及基于第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
[0271]
条款b1.一种用于对点云数据进行编码的设备,该设备包括:用于存储点云数据的存储器;以及耦合到存储器并在电路中实现的一个或多个处理器,一个或多个处理器被配置为:从全球定位系统信息中识别第一组全局运动参数;基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数;以及基于第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
[0272]
条款b2.根据条款b1所述的设备,其中一个或多个处理器被配置为在比特流中用
信号发送第二组全局运动参数。
[0273]
条款b3.根据条款b1所述的设备,其中一个或多个处理器被配置为在比特流中用信号发送第一组全局运动参数。
[0274]
条款b4.根据条款b1至b3中任一项所述的设备,其中第一组全局运动参数包括一组定向参数。
[0275]
条款b5.根据条款b4所述的设备,其中一组定向参数包括当前帧的滚转、俯仰、偏航或角速度中的一个或多个。
[0276]
条款b6.根据条款b4所述的设备,其中一组定向参数包括当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差、或当前帧与参考帧之间的角速度差中的一个或多个。
[0277]
条款b7.根据条款b1至b6中任一项所述的设备,其中第一组全局运动参数包括一组定位参数。
[0278]
条款b8.根据条款b7所述的设备,其中一组定位参数包括当前帧的位移或当前帧的平均速度中的一个或多个。
[0279]
条款b9.根据条款b7所述的设备,其中一组定位参数包括东-北-上坐标系的东速度、北速度或上速度中的一个或多个。
[0280]
条款b10.根据条款b1至b9中任一项所述的设备,其中第二组全局运动参数包括指示当前帧的偏航、俯仰和滚转的旋转矩阵和指示当前帧的平均速度的平移矢量。
[0281]
条款b11.根据条款b1、b4至b10中任一项所述的设备,其中一个或多个处理器被配置为用信号发送当前帧的滚转、当前帧的俯仰、当前帧的偏航以及指示当前帧的平均速度的平移矢量。
[0282]
条款b12.根据条款b1、b4至b10中任一项所述的设备,其中一个或多个处理器被配置为用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。
[0283]
条款b13.根据条款b1、b4至b10中任一项所述的设备,其中一个或多个处理器被配置为用信号发送指示当前帧的平均速度的平移矢量,并且避免用信号发送指示当前帧的偏航、俯仰和滚转的旋转矩阵。
[0284]
条款b14.根据条款b1、b4至b10中任一项所述的设备,其中一个或多个处理器被配置为用信号发送指示当前帧的平均速度的平移矢量的幅度。
[0285]
条款b15.根据条款b1至b14中任一项所述的设备,其中一个或多个处理器被配置为基于全局运动补偿帧针对当前帧执行运动矢量估计,并且其中,为了执行运动矢量估计,一个或多个处理器被配置为将局部运动的块大小限制为等于最小预测单元大小。
[0286]
条款b16.根据条款b1至b15中任一项所述的设备,其中参考帧是第一参考帧,并且当前帧是第一当前帧,并且其中一个或多个处理器被配置为通过最小化第二当前帧与第二参考帧之间的均方误差来估计初始平移矢量。
[0287]
条款b17.根据条款b1至b15中任一项所述的设备,其中当前帧是第一当前帧,并且其中一个或多个处理器被配置为:确定点是否是地面的;以及基于该点是否是地面的来估计第二当前帧的旋转矩阵。
[0288]
条款b18.根据条款b17所述的设备,其中一个或多个处理器被配置为用信号发送
指示该点是否是地面的的一组标签。
[0289]
条款b19.根据条款b1至b18中任一项所述的设备,其中一个或多个处理器还被配置为生成点云数据。
[0290]
条款b20.根据条款b19所述的设备,其中一个或多个处理器被配置为,作为生成点云数据的一部分,基于来自lidar装置的信号生成点云数据。
[0291]
条款b21.根据条款b1至b20中任一项所述的设备,其中该设备是移动电话、平板电脑、车辆或扩展现实设备中的一个。
[0292]
条款b22.根据条款b1至b21中任一项所述的设备,其中该设备包括被配置为传输编码点云数据的接口。
[0293]
条款b23.一种用于对点云数据进行编码的方法,该方法包括:利用一个或多个处理器,从全球定位系统信息中识别第一组全局运动参数;利用一个或多个处理器,基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数;以及利用一个或多个处理器,基于第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
[0294]
条款b24.根据条款b23所述的方法,还包括利用一个或多个处理器在比特流中用信号发送第二组全局运动参数。
[0295]
条款b25.根据条款b23所述的方法,还包括利用一个或多个处理器在比特流中用信号发送第一组全局运动参数。
[0296]
条款b26.根据条款b23至b25中任一项所述的方法,其中第一组全局运动参数包括一组定向参数。
[0297]
条款b27.根据条款b26所述的方法,其中一组定向参数包括当前帧的滚转、俯仰、偏航或角速度中的一个或多个。
[0298]
条款b28.根据条款b26所述的方法,其中一组定向参数包括当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差、或当前帧与参考帧之间的角速度差中的一个或多个。
[0299]
条款b29.根据条款b23至28中任一项所述的方法,其中第一组全局运动参数包括一组定位参数。
[0300]
条款b30.根据条款b29所述的方法,其中一组定位参数包括当前帧的位移或当前帧的平均速度中的一个或多个。
[0301]
条款b31.根据条款b29所述的方法,其中一组定位参数包括东-北-上坐标系的东速度、北速度或上速度中的一个或多个。
[0302]
条款b32.根据条款b23至b31中任一项所述的方法,其中第二组全局运动参数包括指示当前帧的偏航、俯仰和滚转的旋转矩阵和指示当前帧的平均速度的平移矢量。
[0303]
条款b33.根据条款b23所述的方法,还包括用信号发送当前帧的滚转、当前帧的俯仰、当前帧的偏航以及指示当前帧的平均速度的平移矢量。
[0304]
条款b34.根据条款b23、b26至b33中任一项所述的方法,还包括用信号发送当前帧与参考帧之间的滚转差、当前帧与参考帧之间的俯仰差、当前帧与参考帧之间的偏航差以及指示当前帧的平均速度的平移矢量。
[0305]
条款b35.根据条款b23、b26至b33中任一项所述的方法,还包括利用一个或多个处
理器用信号发送指示当前帧的平均速度的平移矢量,并且避免用信号发送指示当前帧的偏航、俯仰和滚转的旋转矩阵。
[0306]
条款b36.根据条款b23、b26至b33中任一项所述的方法,还包括利用一个或多个处理器用信号发送指示当前帧的平均速度的平移矢量的幅度。
[0307]
条款b37.根据条款b23至b36中任一项所述的方法,还包括利用一个或多个处理器基于全局运动补偿帧来针对当前帧执行运动矢量估计,并且其中执行运动矢量估计包括将局部运动的块大小限制为等于最小预测单元大小。
[0308]
条款b38.根据条款b23至b37中任一项所述的方法,其中参考帧是第一参考帧,并且当前帧是第一当前帧,该方法还包括通过最小化第二当前帧与第二参考帧之间的均方误差来估计初始平移矢量。
[0309]
条款b39.根据条款b23至b37中任一项所述的方法,其中当前帧是第一当前帧,该方法还包括:利用一个或多个处理器,确定点是否是地面的;以及利用一个或多个处理器,基于该点是否是地面的来估计第二当前帧的旋转矩阵。
[0310]
条款b40.根据条款b39所述的方法,还包括利用一个或多个处理器用信号发送指示该点是否是地面的的一组标签。
[0311]
条款b41.根据条款b23至b40中任一项所述的方法,还包括使用一个或多个处理器生成点云数据。
[0312]
条款b42.根据条款b41所述的方法,还包括利用一个或多个处理器基于来自lidar装置的信号生成点云数据。
[0313]
条款b43.一种其上存储有指令的计算机可读存储介质,当被执行时指令使一个或多个处理器:从全球定位系统信息中识别第一组全局运动参数;基于第一组全局运动参数来确定要用于当前帧的全局运动估计的第二组全局运动参数;以及基于第二组全局运动参数对参考帧应用运动补偿以生成当前帧的全局运动补偿帧。
[0314]
应当认识到,根据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以添加、合并或完全省略(例如,并非所有描述的动作或事件是技术实践所必需的)。此外,在某些示例中,动作或事件可以并发地执行,例如通过多线程处理、中断处理或多个处理器,而不是顺序地执行。
[0315]
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或它们的任何组合实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质或通过计算机可读介质发送并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者通信介质,包括有利于将计算机程序从一个地方转移到另一个地方的任何介质,例如,根据通信协议。以这种方式,计算机可读介质通常可以对应于(1)有形的计算机可读存储介质(其为非暂时性的)或(2)通信介质(诸如信号或载波)。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0316]
以举例的方式而非限制,此类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他的光盘存储装置、磁盘存储装置或其他磁性存储设备、闪存存储器,或者可以用于存储采用指令或数据结构形式的所需程序代码并且可以通过计算机访问的任何其他介
质。另外,任何连接都适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或诸如红外、无线电和微波之类的无线技术从网站、服务器或其他远程源发送的,则可以将同轴电缆、光纤电缆、双绞线、dsl或诸如红外、无线电和微波之类的无线技术包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是涉及非暂时性、有形存储介质。如本文所使用的,磁盘和光盘包括光碟(cd)、激光光盘、光学光盘、数字化通用光盘(dvd)、软盘以及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘利用激光光学地复制数据。上述的组合也应包含在计算机可读介质的范围内。
[0317]
指令可由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指代任何前述结构或适合于实现本文所描述的技术的任何其他结构。此外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者结合到组合编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
[0318]
本公开的技术可以在各种各样的设备或装置中实现,包括无线手持机、集成电路(ic)或一组ic(例如芯片组)。本公开中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以结合在编解码硬件单元中或由包括如上所述的一个或多个处理器在内的互操作硬件单元的集合结合合适的软件和/或固件来提供。
[0319]
已经描述了各种示例。这些示例以及其他示例在以下权利要求的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表