通过多次测量进行的估计的制作方法

文档序号:32340188发布日期:2022-11-26 09:30阅读:40来源:国知局
通过多次测量进行的估计的制作方法
通过多次测量进行的估计
1.交叉引用
2.本技术要求申请号为第17/488,419号、申请日为2021年9月29日的美国专利申请“estimation through multiple measurements(通过多次测量进行的估计)”的优先权的权益,该美国专利申请要求申请号为第63/178,660号、申请日为2021年4月23日美国临时申请“estimation through multiple measurements(通过多次测量进行的估计)”的优先权。在先申请的公开内容通过引用整体并入本文。
技术领域
3.本公开描述了通常与噪声环境中的估计有关的实施例。


背景技术:

4.在此提供的背景技术描述用于总体上介绍本公开的背景。目前署名的发明人的工作就其在该背景部分中描述的程度以及在其描述在提交时不会以其他方式被认为现有技术的方面,既不明确也不隐含地认为是破坏本公开的现有技术。
5.噪声环境中的量估计是一项具有挑战性的任务,因为测量常常被噪声污染。在一些相关的例子中,已经提出了一种用于沉浸式音频渲染器的复杂度估计的自我比较方法。在该自我比较方法中,通过将中央处理单元(cpu)的使用情况与一个应用程序的1个实例和n个实例进行比较,来测量复杂度。


技术实现要素:

6.本公开的各方面提供了用于估计音频渲染程序的复杂度的装置。一种装置包括处理电路,处理电路通过在音频评估平台上运行音频渲染程序的第一多个实例,对资源的消耗进行第一测量。处理电路通过在音频评估平台上运行音频渲染程序的第二多个实例,对资源的消耗进行第二测量。第一多个实例的第一数量与第二多个实例的第二数量不同。处理电路基于第一测量、第二测量、第一多个实例的第一数量和第二多个实例的第二数量,估计音频渲染程序的复杂度。
7.在一个实施例中,第一多个实例的第一数量等于第二多个实例的第二数量减1。
8.在一个实施例中,处理电路确定第一测量和第二测量之间的消耗差值。处理电路确定第一多个实例的第一数量和第二多个实例的第二数量之间的实例数量差值。处理电路基于消耗差值和实例数量差值,估计音频渲染程序的复杂度。
9.在一个实施例中,处理电路通过在音频评估平台上运行音频渲染程序的第三多个实例,对资源的消耗进行第三测量。处理电路基于应用于第一测量、第二测量和第三测量的线性回归模型,估计音频渲染程序的复杂度。
10.在一个实施例中,资源包括中央处理单元cpu运行时间、图形处理单元gpu运行时间、cpu占用率或gpu占用率之一。
11.在一个实施例中,资源的消耗为资源的运行时间或资源的占用百分比之一。
12.在一个实施例中,音频评估平台为基于cpu的平台或基于gpu的平台之一。
13.本公开的各方面提供了用于估计音频渲染程序的复杂度的方法。在一个方法中,通过在音频评估平台上运行音频渲染程序的第一多个实例,对资源的消耗进行第一测量。通过在音频评估平台上运行音频渲染程序的第二多个实例,对资源的消耗进行第二测量。第一多个实例的第一数量与第二多个实例的第二数量不同。基于第一测量、第二测量、第一多个实例的第一数量和第二多个实例的第二数量,估计程序的复杂度。
14.本公开的各方面还提供了存储指令的非暂时性计算机可读介质,当指令由至少一个处理器执行时,使至少一个处理器执行用于估计音频渲染程序的复杂度的方法中的任何一个或组合。
附图说明
15.以下具体实施方式和附图中,更清楚地示出了所公开的主题的更多特征、性质和各种优点,在附图中:
16.图1示出了根据本公开的实施例的6个自由度的示例;
17.图2示出了根据本公开的实施例的示例流程图;
18.图3为根据本公开的实施例的计算机系统的示意图。
具体实施方式
19.i.复杂度估计
20.动态图像专家组(mpeg)已经提出了一套标准,包括沉浸式音频、沉浸式视频和系统支持。这套标准可以支持虚拟现实(vr)或增强现实(ar)呈现,其中用户可以使用6个自由度(6dof)导航并与环境互动。图1示出了根据本公开的实施例的6个自由度的示例。在图1中,6个自由度可以由空间导航(x、y、z)和用户头部方位(偏航角、俯仰角、横滚角)表示。
21.在沉浸式音频或视频环境中,由于噪声的存在,准确估计在设备(例如,vr或ar设备)上运行的程序的复杂度是具有挑战性的。
22.在一些相关的例子中,可以使用自我比较的方法来估计程序的复杂度。例如,在音频场景中,当音频渲染程序在中央处理单元(cpu)上运行时,可以通过cpu的使用(例如,运行时间)来估计音频渲染程序的复杂度。音频渲染程序可以是max/msp,它是一种用于音乐和多媒体的可视化编程语言。
23.在例子中,音频渲染程序可以在mpeg标准的标准测试台上运行,例如音频评估平台(aep)。音频渲染程序可以作为插件软件在aep上运行。在第一测量中,音频渲染程序可以在aep上以插件软件的一个实例运行,测得的cpu工作量为a1。在第二测量中,音频渲染程序可以在aep上以多个(n个)插件软件实例运行,测得的cpu工作量为an。因此,音频渲染程序的复杂度可以估计为a
plugin
=(a
n-a1)/(n-1)。a
plugin
可用于比较复杂度的估计。
24.自我比较方法假设是测量an中的噪声等于测量a1中的噪声。尽管在一种情况下an和a1中的噪声可能很接近,但在另一种情况下它们可能差别很大。基于这种考虑,本公开包括通过多个测量来估计复杂度的方法,以便在噪声环境中获得更好的估计。
25.所公开的估计方法不限于复杂度测量。这些估计方法也可以应用于在噪声环境中的各种变量的估计。
26.需要注意的是,本公开中包括的方法可以单独或组合使用。这些方法可以部分地或整体地使用。
27.在本公开中,复杂度测量可以是在某个平台(例如,基于cpu的平台、基于图形处理单元(gpu)的平台或类似平台)上运行音频渲染程序的实例时的资源消耗。可以用资源运行时间、资源占用百分比或类似的方式衡量资源消耗。
28.在一个实施例中,第一测量可以通过在aep上运行插件软件的第一多个(m1个)实例来执行,资源消耗为a
m1
。第二测量可以通过在aep上运行插件软件的第二多个(m2个)实例来执行,同一资源的消耗为a
m2
。音频渲染程序的复杂度可以估计为a=(a
m1-a
m2
)/(m1-m2)(假设m1大于m2)。在本实施例中,m1和m2都是正整数,且m1不等于m2。
29.在一个实施例中,m1和m2都大于1。
30.在一个实施例中,m2=m1-1。因此,第一测量可以通过在aep上运行插件软件的m1个实例来执行,资源消耗为a
m1
。第二测量可以通过在aep上运行插件软件的m1-1个实例来执行,同一资源的消耗为a
m1-1
。在本实施例中,m1是一个大于等于2的正整数。那么,音频渲染程序的复杂度可以估计为a=a
m1-a
m1-1

31.在一个实施例中,第一测量可以通过在aep上运行插件软件的m1个实例来执行,资源消耗为a
m1
。第二测量可以通过在aep上运行插件软件的m2个实例来执行,同一资源的消耗为a
m2
。第三测量可以通过在aep上运行插件软件的m3个实例来执行,同一资源的消耗为a
m3
。在本实施例中,m1、m2和m3是不相等的正整数。假设测得的消耗ai(i=m1、m2或m3)和估计的复杂度a可拟合一个线性回归模型,即ai=i*a+b。那么,估计的复杂度a可以通过如下的线性回归求解。
[0032][0033]
在一个实施例中,可以执行多次测量a1、a2......ak,其中,ai是插件软件的li个实例对同一资源测得的消耗,li是一个正整数,i=1,2......k,k是一个大于等于2的正整数。假设测得的消耗ai和估计的复杂度a可拟合一个线性回归模型,即ai=li*a+b。那么,估计的复杂度a可以通过如下的线性回归求解。
[0034][0035]
ii.流程图
[0036]
图2示出了根据本公开的实施例的示例流程图,该流程图概述了一个示例过程(200)。在各实施例中,该过程(200)由处理电路执行,例如图3所示的处理电路。在一些实施例中,该过程(200)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行该过程(200)。
[0037]
过程(200)通常可以以步骤(s210)开始,其中过程(200)通过在音频评估平台上运行音频渲染程序的第一多个实例来执行对资源消耗的第一测量。然后,该过程(200)进行到步骤(s220)。
[0038]
在步骤(s220)中,过程(200)通过在音频评估平台上运行音频渲染程序的第二多
个实例来执行对资源消耗的第二测量。第一多个实例的第一数量与第二多个实例的第二数量不同。然后,该过程(200)进行到步骤(s230)。
[0039]
在步骤(s230)中,过程(200)基于第一测量、第二测量、第一多个实例的第一数量以及第二多个实例的第二数量估计音频渲染程序的复杂度。然后,该过程(200)结束。
[0040]
在一个实施例中,第一多个实例的第一数量等于第二多个实例的第二数量减1。
[0041]
在一个实施例中,过程(200)确定第一测量和第二测量之间的消耗差值。过程(200)确定第一多个实例的第一数量和第二多个实例的第二数量之间的实例数量差值。过程(200)基于消耗差值和实例数量差值来估计程序的复杂度。
[0042]
在一个实施例中,过程(200)通过在音频评估平台上运行音频渲染程序的第三多个实例来执行对资源消耗的第三测量。过程(200)基于应用于第一测量、第二测量和第三测量的线性回归模型来估计音频渲染程序的复杂度。
[0043]
在一个实施例中,资源包括中央处理单元(cpu)运行时间、图形处理单元(gpu)运行时间、cpu占用率或gpu占用率之一。
[0044]
在一个实施例中,资源的消耗为资源的运行时间或资源的占用百分比之一。
[0045]
在一个实施例中,该平台为基于cpu的平台或基于gpu的平台之一。
[0046]
iii.计算机系统
[0047]
上述技术,可以作为使用计算机可读指令的计算机软件来实现,并物理存储在一个或多个计算机可读介质中。例如,图3示出了适合实现所公开的主题的某些实施例的计算机系统(300)。
[0048]
上述计算机软件可以使用任何合适的机器码或计算机语言进行编码,该机器码或计算机语言可以经过汇编、编译、链接或类似机制,以创建包括可由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过解释、微代码等方式执行的指令的代码。
[0049]
上述指令可以在各种类型的计算机(包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等)或其组件上执行。
[0050]
图3中示出的用于计算机系统(300)的组件具有示范性,并且不旨在暗示对用于实现本技术实施例的计算机软件的使用范围或功能的任何限制。组件的配置也不应被解释为具有与计算机系统(300)的示例性实施例中说明的任何一个或组合的组件有关的任何依赖性或要求。
[0051]
计算机系统(300)可以包括某些人机界面输入设备。这样的人机界面输入设备可以对一个或多个人类用户通过例如触觉输入(例如:按键、刷卡、数据手套动作)、音频输入(例如:声音、拍手)、视觉输入(例如:手势)、嗅觉输入(未画出)的输入作出响应。人机界面设备也可用于捕捉某些不一定与人的有意识输入直接相关的媒体,如音频(如:语音、音乐、环境声)、图像(如:扫描的图像、从静止图像相机获得的摄影图像)、视频(如二维视频、包括立体视频的三维视频)。
[0052]
输入人机界面设备可以包括以下一项或多项(每项只画出一个):键盘(301)、鼠标(302)、触控板(303)、触摸屏(310)、数据手套(未示出)、操纵杆(305)、麦克风(306)、扫描仪(307)和摄像头(308)。
[0053]
计算机系统(300)还可以包括某些人机界面输出设备。这样的人机界面输出设备
可以通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。这样的人机界面输出设备可以包括触觉输出设备(例如由触摸屏(310)、数据手套(未示出)或操纵杆(305)提供的触觉反馈,但也可以有不作为输入设备的触觉反馈设备),音频输出设备(如。扬声器(309)、耳机(未画出))、视觉输出设备(如屏幕(310),包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕,每个屏幕都具有或不具有触摸屏输入功能,每个屏幕都具有或不具有触觉反馈功能——其中一些能够通过立体输出等手段,输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未画出)、全息显示器和烟雾罐(未画出)),以及打印机(未画出)。这些视觉输出设备(如屏幕(310))可以通过图形适配器(350)连接到系统总线(348)。
[0054]
计算机系统(300)还可以包括人类可访问的存储设备及其相关介质,例如包括cd/dvd rom/rw(320)(带有cd/dvd或类似介质(321))的光学介质、拇指驱动器(322)、可移动硬盘或固态驱动器(323)、传统的磁介质,例如磁带和软盘(未画出)、基于rom/asic/pld的专用设备,例如安全加密狗(未示出)等。
[0055]
本领域的技术人员还应该理解,与本公开的主题相关的术语“计算机可读介质”不包括传输介质、载波或其他瞬态信号。
[0056]
计算机系统(300)还可以包括连接到一个或多个通信网络(355)的网络接口(354)。该一个或多个通信网络(355)例如可以是无线的、有线的、光学的。进一步地,该一个或多个通信网络(355)可以是本地的、广域的、都市的、车辆和工业的、实时的、容延的,等等。一个或多个通信网络(355)的例子包括局域网络,如以太网、无线局域网,蜂窝网络(包括gsm、3g、4g、5g、lte等),电视有线或无线广域数字网络(包括有线电视、卫星电视和地面广播电视),车辆和工业(包括canbus),等等。某些网络通常需要连接到某些通用数据端口或外围总线(349)的外部网络接口适配器(例如,计算机系统(300)的usb端口);其他网络通常通过连接到下文所述的系统总线而集成到计算机系统(300)的核心中(例如,连接到pc计算机系统的以太网接口或连接到智能电话计算机系统的蜂窝网络接口)。使用这些网络中的任何一种,计算机系统(300)可以与其他实体通信。这种通信可以是单向的,只接收(例如广播电视),只发送(例如canbus到某些canbus设备),或双向的,例如使用本地或广域数字网络与其他计算机系统通信。某些协议和协议栈可以在上述的每个网络和网络接口上使用。
[0057]
前述的人机接口设备、人类可访问的存储设备和网络接口可以连接到计算机系统(300)的核心(340)。
[0058]
核心(340)可以包括一个或多个中央处理单元(cpu)(341)、图形处理单元(gpu)(342)、现场可编程门区(fpga)(343)形式的专用可编程处理单元、用于某些任务的硬件加速器(344)等等。这些设备以及只读存储器(rom)(345)、随机存取存储器(346)、内部大容量存储,如内部非用户可访问的硬盘、ssd等(347),可以通过系统总线(348)连接。在一些计算机系统中,系统总线(348)可以以一个或多个物理插头的形式访问,以便通过额外的cpu、gpu等实现扩展。外围设备可以直接连接到核心的系统总线(348),或通过外围总线(349)连接。外围总线的架构包括pci、usb等。
[0059]
cpu(341)、gpu(342)、fpga(343)和加速器(344)可以执行某些指令,这些指令的组合可以构成上述的计算机代码。该计算机代码可以存储在rom(345)或ram(346)中。过渡性数据也可以存储在ram(346)中,而永久性数据可以存储在例如内部大容量存储(347)中。可
以通过使用缓存存储器来实现对任何存储设备的快速存储和检索,该缓存存储器可以与一个或多个cpu(341)、gpu(342)、大容量存储(347)、rom(345)、ram(346)等紧密关联。
[0060]
计算机可读介质可以在其上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为本技术的目的而特别设计和创建的,或者可以是计算机软件领域的技术人员所熟知和可用的。
[0061]
作为例子而不是限制,具有架构(300)和具体的核心(340)的计算机系统可以提供功能,以作为处理器(包括cpu、gpu、fpga、加速器等)执行包含在一个或多个有形、计算机可读介质中的软件的结果。这种计算机可读介质可以是与上面介绍的用户可访问的大容量存储相关的介质,以及核心(340)的某些非临时性的存储,如核心内部大容量存储(347)或rom(345)。实现本技术的各实施例的软件可以存储在这种设备中,并由核心(340)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器设备或芯片。软件可以使核心(340)和具体的其中的处理器(包括cpu、gpu、fpga等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在ram(346)中的数据结构并根据软件所定义的过程修改该数据结构。此外或作为一种选择,计算机系统可以提供功能,以作为逻辑硬线或其他方式体现在电路中的结果(例如:加速器(344)),它可以代替软件或与软件一起运行,以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的提及可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的提及可以包括存储用于执行的软件的电路(如集成电路(ic))、体现用于执行的逻辑的电路或两者皆有。本技术内容包括硬件和软件的任何适当组合。
[0062]
虽然本公开已经描述了几个示范性的实施例,但还有一些改变、排列组合和各种替代的等价物,它们都属于本公开的范围。因此,可以理解的是,本领域的技术人员能够设计出许多系统和方法,虽然在此没有明确显示或描述,但它们体现了本公开的原则,因此涵盖在其精神和范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1