相关专利申请的交叉引用
本申请要求于2015年8月6日递交的名称为“methodsandsystemsforvirtualconferencesystemusingpersonalcommunicationdevices”的美国非临时申请no.14/820,421的优先权。本申请涉及于2015年5月4日递交的名称为“audiosignaladjustmentformobilephonebasedpublicaddressingsystem”的美国临时申请no.62/156,841,通过引用的方式将上述申请的全部内容并入本文。本申请涉及于2015年8月6日递交的名称为methodsandsystemsforvirtualconferencesystemusingpersonalcommunicationdevices的美国非临时申请no.14/820,363,通过引用的方式将上述申请的全部内容并入本文。本申请还涉及于2015年8月6日递交的名称为methodsandsystemsforvirtualconferencesystemusingpersonalcommunicationdevices的美国非临时申请no.14/820,371,通过引用的方式将上述申请的全部内容并入本文。
本文描述的实施例总体上涉及虚拟会议系统(vcs)。具体地,本公开内容涉及使用个人通信设备(pcd)作为vcs的输入和输出设备。
背景技术:
给定地点处的传统会议系统可以包括至少一个显示屏、麦克风和扬声器。显示屏向该地点处的与会者显示视觉输出。麦克风捕获音频数据。扬声器向该地点处的与会者输出音频数据。传统会议系统面临各种问题。例如,取决于每个与会者在该地点处的位置,一些与会者可能由于距离或视野障碍而无法看见显示屏,访问麦克风或者听到扬声器。此外,传统会议系统的不可用性(例如,当传统会议系统无法正常工作时或者当在该地点处不存在传统会议系统时)可以使得无法在该地点处发生会议。因此,在各种情形中,传统会议系统可能产生负面的用户体验。
技术实现要素:
在一些实施例中,描述了用于管理具有连接到多个卫星设备的主设备的虚拟会议系统中的抖动的方法。所述方法包括:由所述主设备的处理器确定以下各项中的至少一项:(1)所述多个卫星设备中的至少一个卫星设备的设备能力,(2)所述主设备的设备能力,或者(3)信道状况。所述主设备的所述处理器基于以下各项中的至少一项来确定去抖动缓冲器大小:所述卫星设备的所述设备能力、所述主设备的所述设备能力、或所述信道状况。所述主设备的所述处理器应用具有所确定的去抖动缓冲器大小的去抖动缓冲器。
一些实施例涉及用于管理具有连接到多个卫星设备的主设备的虚拟会议系统中的抖动的系统。所述系统包括所述主设备的处理器,所述处理器被配置为进行以下操作:确定以下各项中的至少一项:(1)所述多个卫星设备中的至少一个卫星设备的设备能力,(2)所述主设备的设备能力,或者(3)信道状况;基于以下各项中的至少一项来确定去抖动缓冲器大小:所述卫星设备的所述设备能力、所述主设备的所述设备能力、或所述信道状况;以及确定具有所确定的去抖动缓冲器大小的去抖动缓冲器。
一些实施例涉及包含计算机指令的非暂时性计算机可读介质,使得当执行所述计算机指令时,使得主设备的处理器执行管理具有连接到多个卫星设备的所述主设备的虚拟会议系统中的抖动的过程。所述过程包括:确定以下各项中的至少一项:(1)所述多个卫星设备中的至少一个卫星设备的设备能力,(2)所述主设备的设备能力,或者(3)信道状况;基于以下各项中的至少一项来确定去抖动缓冲器大小:所述卫星设备的所述设备能力、所述主设备的所述设备能力、或所述信道状况;以及确定具有所确定的去抖动缓冲器大小的去抖动缓冲器。
一些实施例涉及用于具有连接到卫星设备的主设备的虚拟会议系统中的通信的方法。所述方法包括:由所述卫星设备的处理器基于与音频帧相关联的能量来确定与所述音频帧相关联的优先级;由所述卫星设备的所述处理器基于所述优先级来确定针对所述音频帧的重传计数或缓冲器分组丢弃中的至少一个;以及由如所述卫星设备的所述处理器所配置的所述卫星设备的网络设备基于所述重传计数或所述缓冲器分组丢弃中的所述至少一个,来向所述主设备发送所述音频帧。
附图说明
被并入本文并构成本说明书的一部分的附图示出了本公开内容的示例性实施例,并且连同上面所给出的总体描述和下面所给出的具体描述,用以解释各个实施例的特征。
图1是根据各个实施例,示出了虚拟会议系统(vcs)的示例的图。
图2是根据各个实施例,示出了用于在vcs内实现的个人通信设备(pcd)的示例的框图。
图3是根据各个实施例,示出了去抖动缓冲器大小与无线链路延迟变化之间的预定对应性的示例的映射表。
图4是根据各个实施例,示出了去抖动缓冲器大小选择方法的示例的过程流程图。
图5是根据各个实施例,示出了去抖动缓冲器大小选择方法的示例的过程流程图。
图6是根据各个实施例,示出了去抖动缓冲器大小选择方法的示例的过程流程图。
图7是根据各个实施例,示出了数据传输方法的示例的过程流程图。
图8是根据各个实施例,示出了多播-单播选择方法的示例的过程流程图。
具体实施方式
将参考附图详细描述各个实施例。只要有可能,贯穿附图将使用相同的附图标记来指代相同或相似的部件。可以使用不同的附图标记来指代不同、相同或相似的部件。对特定示例和实现方式的引用是出于说明性的目的,并非旨在限制本公开内容或本权利要求书的范围。
总体上参照附图,虚拟会议系统(vcs)可以是下一代会议系统。vcs可以包括卫星设备、远程设备和主设备。卫星设备、远程设备和主设备中的每一个可以利用个人通信设备(pcd)来实现,诸如但不限于移动设备、智能电话等。卫星设备可以用于与一地点(例如,会议室或开会场景)处的其它用户接收和/或发送数据。例如,为了实现这种目的,可以将卫星设备用作显示器、扬声器和麦克风。可以类似地使用远程设备,但是由该地点外部的用户使用。主设备可以从卫星设备和/或远程设备接收音频/视频数据。类似地,主设备可以利用其自己的麦克风和相机来捕获音频/视频数据。主设备还可以将(经处理的、经混合的、经滤波的等)音频/视频数据中继给卫星设备和/或远程设备,以用于输出给卫星设备和/或远程设备的用户。主设备可以中央地执行音频/视频数据处理功能,诸如混合、混响控制、信道选择、滤波、回声消除、缓冲器选择等。
因此,vcs可以比任何传统会议系统更有优势。具体地,考虑到pcd如此普遍,因此会议可以发生在任何地点,只要与会者/用户身上有其pcd。另外,与会者/用户可以密切地察觉到输出数据(例如,来自pcd的显示器的视觉数据和来自pcd的扬声器的音频数据)。因此,如本文描述的vcs可以解决因用户不能够访问音频视觉输出或输入而导致的传统会议系统的负面的用户体验。
虽然本文描述的各个实施例可以涉及音频数据,但是本领域的技术人员可以认识到的是,本文描述的系统和方法可以被类似地实现用于视频或其它类型的数据。
图1是根据各个实施例,示出了vcs100的示例的图。参照图1,vcs100可以包括至少一个卫星设备(例如,卫星设备120a-120c,共同地称为卫星设备120)、至少一个远程设备(例如,远程设备130a-130b,共同地称为远程设备130)和主设备110。主设备110和卫星设备120以及相关联的用户可以物理地位于地点190中(至少针对对等发现过程)。例如,主设备110和卫星设备120可以通过物理地位于地点190内的无线接入点来连接到网络150(针对对等发现过程)。在另外的实施例中,网络150可以是利用wifi直接网络实现的,如本文所描述的。主设备110可以耦合到桥路140或者以其它方式包括桥路140。在一些实施例中,桥路140物理地位于地点190中。在其它实施例中,桥路140不是物理地位于地点190中,但是可以与主设备110进行通信。
在一些实施例中,主设备110和卫星设备120可以被统称为“近端”设备。远程设备130可以被称为“远端”设备。在这样的实施例中,可以关于主设备110将近端设备集中化。主设备110可以通过桥路140连接到虚拟会议,其它方(远端设备)也可以连接到桥路140。另外,远端设备也可以实现近端设备的主-卫星配置。例如,两个或更多个主设备110可以连接到桥路140。主设备110中的每个主设备可以连接到单独的一组卫星设备120(即,在单独的地点190中)。在其它实施例中,主设备110还可以充当桥路140并且经由网络155直接连接到远程设备130。
卫星设备120和主设备110可以通过网络150连接到彼此。网络150可以是任何有线或无线网络,包括但不限于wifi网络、蓝牙网络、长期演进(lte)网络(或其它适当类型的移动数据网络)、或其组合等。远程设备130和桥路140可以通过网络155连接到彼此。网络155可以是任何有线或无线网络,包括但不限于wifi网络、lte网络(或其它适当类型的移动数据网络)、或其组合等。具体地,lte网络可以是lte小型小区。wifi网络可以是另外的wifi直接网络。在一些实施例中,网络150和网络155可以是不同的网络。在其它实施例中,网络150和网络155可以是相同的网络。在一些实施例中,主设备110和桥路140可以通过网络150连接到彼此。在其它实施例中,主设备110和桥路140可以通过网络155或另一个适当的网络连接到彼此。
地点190可以是能够发生会议的任何适当的位置。例如,地点190可以指代会议室、教室、会议厅、讲堂、以及可以在其中进行会议的任何适当的空间。另外,地点190可以是其中混响、啸叫、交错声等可以负面地影响主设备110和卫星设备120的空间。地点190可以被至少卫星设备110、主设备120和其各自的用户(如存在)占用。在另一方面,远程设备130(和其各自的用户)可以位于地点190的界限界限以外的任何地方。特别地,远程设备130的用户可能无法察觉来自卫星设备120的输出。
图2是根据各个实施例,示出了用于在vcs100内实现的pcd200的示例的框图。参照图1-2,可以利用pcd200来实现主设备110、卫星设备120和远程设备120中的一个或多个设备。在特定的实施例中,可以利用pcd200来实现主设备110、卫星设备120和远程设备120中的所有设备。pcd200可以是被配置为捕获和输出音频数据的电子移动设备。在另外的实施例中,pcd200可以被配置为捕获和输出视觉数据(例如,相片、视频等)。pcd200的示例可以包括但不限于智能电话(移动电话)、寻呼机、平板计算机、pda、任何移动计算系统等。pcd200可以是任何移动或非移动处理器设备,诸如但不限于桌上型计算机、大型计算机、膝上型计算机等。pcd200可以包括麦克风210、处理器220、存储器单元230、网络设备240和用户接口设备250。
在一些实施例中,麦克风210可以被配置为在pcd200的用户讲话时捕获来自该用户的声音。在一些实施例中,麦克风210可以与pcd200集成在一起或者以其它方式被装在pcd200的外壳里面。在其它实施例中,至少一个麦克风210可以是没有与pcd200集成在一起的辅助麦克风,但是可以以任何适当的方式可操作地耦合到pcd200。麦克风210可以捕获邮政编码调制(pcm)音频采样。可以通过在从卫星设备120到主设备110的上行链路处通过网络150来发送这些pcm音频采样。
处理器220可以可操作地耦合到存储器单元230,以执行本文描述的pcd200的功能。例如,处理器220和存储器单元230可以被配置为执行如本公开内容中描述的pcd200的功能。处理器220可以包括任何适当的数据处理设备,诸如通用处理器(例如,微处理器)。在替代方式中,处理器220可以是任何常规的处理器、控制器、微控制器或状态机。处理器220还可以实现为计算设备的组合,例如,数字信道处理器(dsp)和微处理器的组合、多个微处理器、至少一个微处理器与dsp内核的结合、或者任何其它此种配置。
存储器单元230可以可操作地耦合到处理器220,并且可以包括用于存储用于控制和被处理器20用来执行本文描述的操作和功能的软件和数据的任何适当的设备,包括但不限于随机存取存储器(ram)、只读存储器(rom)、软盘、硬盘、软件狗或其它连接再压缩传感器板(rsb)的存储器设备等。
网络设备240可以包括用于接入网络150和/或网络155的接口软件和硬件,使得可以经由接入网络150和/或网络155来发送和接收数据。网络设备240可以包括至少一个无线接收机、发射机、收发机等。网络设备240还可以包括用于提供与网络130的无线或无线通信链路的软件。
用户接口250可以包括显示设备和用户输入设备。显示设备可以包括提供人类察觉的视觉信号、听觉信号、触觉信号或其任何组合的任何适当的设备,包括但不限于触摸屏、lcd、led、crt、等离子体或其它适当的显示屏、音频扬声器或其它音频发生设备、其组合等。在特定的实施例中,用户接口250的显示设备可以包括用于输出声音的扬声器(例如,扬声器电话260)和用于输出视觉数据的显示屏。
用户输入设备可以包括可以从用户接收输入的任何适当的设备,包括但不限于一个或多个手动操作器(诸如但不限于开关、按钮、触摸屏、旋钮、滑块等)、相机、图像传感器、射频标识(rfid)标签阅读器等。在特定的实施例中,用户接口250的用户输入设备可以包括用于捕获视觉数据的相机。
pcd200可以具有用于电话和其它典型的无线电话操作的现有的硬件和软件,以及用于提供如本文描述的功能的另外的硬件和软件。这种现有的硬件和软件包括例如一个或多个输入设备(诸如但不限于键盘、按钮、触摸屏、相机、麦克风、环境参数或状况传感器)、显示设备(诸如但不限于电子显示屏、灯或其它发光设备、扬声器或其它音频输出设备)、电话和其它网络通信电子设备和软件、处理电子设备、电子存储设备和用于接收各种信号(例如,针对全球定位系统(gps)通信、wifi通信、码分多址(cdma)通信、时分多址(tdma)、时分多址(fdma)、lte通信、调频(fm)通信、bt通信、近场通信(nfc)等)的一个或多个天线或接收电子设备。在这些实施例中,该现有的电子硬件和软件中的一些也可以用在用于如本文描述的功能的系统和过程中。
因此,这些实施例可以利用最小的额外硬件成本来实现。然而,其它实施例涉及利用被特定地配置用于执行本文描述的操作的专用设备硬件来实现的系统和过程。用于功能的硬件和/或软件可以在制造期间并入到pcd200中,例如,作为pcd200的原始制造商的配置的一部分。在另外的实施例中,这些硬件和/或软件可以在原始制造之后添加到pcd200中,诸如但不限于通过在一个或多个pcd200上安装一个或多个软件应用。
关于卫星设备120的用户,音频可以在两个路径中到达卫星设备120的用户的耳朵:(1)从讲话者的嘴直接到用户的耳朵的第一路径,以及(2)从讲话者的嘴到卫星设备120a,随后通过网络150到另一个卫星设备120b(其可以通过扬声器来向用户输出音频数据)的第二路径。这可能导致负面地影响用户体验的混响或类回声现象。另外,两个不同的音频路径还可能导致啸叫。
主设备110可以被配置为从卫星设备120接收音频和/或视觉数据。主设备110可以选择卫星设备120中的一个卫星设备120用于输出。主设备110还可以对来自卫星设备120中的两个或更多个卫星设备120的输出进行混合以用于输出。主设备110可以将所选择的和/或所混合的信道输出给卫星设备120。在一些实施例中,从选择的卫星设备获得的信号可能不是在同一个选择的卫星设备处回放的。换句话说,当主设备110选择卫星设备时,该卫星设备不回放其捕获的信号。主设备110可以向始发卫星设备发送用于指示将不输出输出数据的指示。这可以抑制在所选择的卫星设备处的类回声输出和啸叫。
vcs100可以被配置用于(1)去抖动缓冲器大小选择,(2)mac层处的自适应传输,以及(3)wifi多播与单播之间的自适应切换。
给定pcd200与传统会议系统中的简易麦克风、扬声器和显示器相比的复杂度和处理能力,虚拟会议的各个方面可以受益于pcd200和主卫星配置的使用。例如,由于在地点190处可能存在多个卫星设备120,因此可以在上行链路处选择具有(例如,基于信噪比(snr)等测量的)最优音频质量的卫星设备。在一些实施例中,主设备110可以执行主设备110和卫星设备120的双功能。在其它实施例中,主设备110可以纯粹地执行信号处理功能,而不捕获/输出数据。
因此,主设备110可以是近端设备的数字信号处理中心。换句话说,主设备110可以为卫星设备120提供与桥路140(继而,与远程设备130)的接口。对于近端设备,桥路140可能仅需要与主设备110对接,而仍然受益于使用卫星设备120(pcd200)作为麦克风和/或显示器的优势。
如本文所引用的,下行链路数据分组可以指代从主设备110发送给卫星设备120(和远程设备130)的适当类型的数据、信号和/或信息。上行链路数据分组可以指代从卫星设备120(和远程设备130)发送给主设备110的适当类型的数据、信号和/或信息。虽然实施例可以是关于卫星设备120来描述的,但是本领域的技术人员可以认识到的是,可以同样关于远程设备130来应用类似的实施例。
可以在使用pcd200作为主设备110和卫星设备120的vcs100中实现去抖动缓冲器。抖动可以指代由于无线网络150(例如,wifi、wifi直接、长期演进(lte)、lte设备到设备(lted2d)等)中的信道误差、干扰、拥塞导致的在接收机处接收的(上行链路和/或下行链路)数据分组的延时的变化。可以实现去抖动缓冲器,以便通过提供在回放之前将缓冲器填满来使所接收的数据分组的播放平滑。这可以增加初始延时和当去抖动缓冲器腾空时任何后续的结余。而在其它时间,这确保连续的回放。可能有益的是,选择适当的去抖动缓冲器大小以紧密地匹配由于网络状况导致的实际抖动。这是因为,去抖动缓冲器大小大于适当大小将增加端到端延时。去抖动缓冲器大小小于适当大小可能不足以使延时变化平滑。
图3是根据各个实施例,示出了去抖动缓冲器大小与无线链路延迟变化之间的预定对应性的示例的映射表300。参照图1-3,映射表300可以包括去抖动缓冲器大小列350,去抖动缓冲器大小列350包含与各个无线链路延迟变化(如在列310-340中阐述的)相对应的预定的去抖动缓冲器大小。映射表300还可以包括被填有wifi操作信道类型的信道状况列310。映射表300可以另外地包括卫星qos列320和主qos列330,它们分别指示是否在卫星设备120a或主设备110上支持qos。此外,映射表300可以包括pcd蓝牙列340,pcd蓝牙列340指示是否在卫星设备120a上启用并激活了蓝牙。行360中的每一行给出了与预定的去抖动缓冲器大小相对应的唯一的一组无线链路延迟变化。
例如,与5ghz信道相比,2.4ghz信道可以与更多的信道重叠和更高的网络延迟相关联。所部署的接入点可以支持或者可以不支持针对网络150的qos。即使当网络150和接入点支持qos时,卫星设备120a(卫星设备120)或主设备110中的一个或多个可以不支持qos。设备上的经激活的蓝牙也可以生成与wifi上的2.4ghz信道的干扰。
例如,当使用2.4ghz信道时并且当在主设备110或卫星设备120a上不支持qos服务和蓝牙时,可以选择80ms的去抖动缓冲器大小。在另一个示例中,当使用2.4ghz信道时,并且当在主设备110上不支持qos但是在卫星设备120a上支持qos时,可以选择60ms的去抖动缓冲器大小。对于该情况,没有在卫星设备120a上激活蓝牙。在再一个示例中,当使用2.4ghz信道,在卫星设备120a上启用蓝牙,并且在主设备110或卫星设备120a上不支持qos时,可以选择100ms的去抖动缓冲器大小。在再一个示例中,当使用5ghz信道时并且当在主设备110或卫星设备120a上不支持qos和蓝牙时,可以选择60ms的去抖动缓冲器大小。其中主设备110和卫星设备120a都不支持qos的示例还可以与其中接入点不支持针对网络150的qos的情况相对应。
映射表300可以是预定的并且可以被存储在主设备110的存储器单元230中。替代地,主设备110可以从服务器请求或接收映射表300。本领域的技术人员将认识到的是,在图3中示出的示例是非限制性的。可以以诸如但不限于映射表300中示出的方式来将另外的信道状况、设备能力或无线链路延迟变化映射到去抖动缓冲器大小。
图4是根据各个实施例,示出了去抖动缓冲器大小选择方法400的示例的过程流程图。参照图1-4,方法400可以被实现用于vcs100,其中,至少主设备110和卫星设备120可以是利用pcd200实现的。方法400可以被实现用于主设备110。方法400可以由主设备110的处理器220(如耦合到网络设备240和存储器设备230)来执行。
在框b410处,主设备110的处理器220可以确定以下各项中的至少一项:卫星设备120a(即,多个卫星设备120中的每个卫星设备120)的设备能力、主设备110的设备能力或信道状况。在一些实施例中,卫星设备120a的设备能力可以包括在卫星设备120a上是否支持qos,在卫星设备120a上是否激活了蓝牙,等等。在一些实施例中,主设备110的设备能力可以包括在主设备110上是否支持qos。主设备110的设备能力可以是由主设备110的处理器220本地地确定的。可以将主设备110的设备能力存储在主设备110的存储器单元230中以用于重复使用。信道状况可以包括网络环境因子,诸如但不限于与网络150(例如,wifi)相关联的信道类型(例如,正在使用2.4ghz信道或5ghz中的哪一个)等等。
网络150可以包括从卫星设备120a到wifi接入点的第一信道和从wifi接入点到主设备110的第二信道。第一信道和第二信道可以是相同或不同的信道。信道类型可以指代第一信道或第二信道中的一个或两者。第一信道的信道类型可以是由卫星设备120a(或者卫星设备120中的每个卫星设备,这是因为一些卫星设备120可以连接到具有不同信道类型的不同接入点)确定的。卫星设备120a可以将第一信道的信道类型发送给主设备110。第二信道的信道类型可以是由主设备110确定的。相对于网络150是否可以支持qos,第一信道是否支持qos以及第二信道是否支持qos也可以是分别由卫星设备120a和主设备110确定的。例如,即使卫星设备120a可以支持qos,但是接入点针对第一信道可以不支持qos。
当建立活动会话时,卫星设备120a可以向主设备110发送卫星设备120a的设备能力和/或信道状况(由卫星设备120a针对卫星设备120a与接入点之间的第一信道来确定的)。卫星设备120a可以从相关联的接入点获得卫星设备120a的设备能力或信道状况中的一项或多项,并且将该信息中继给主设备110。在一些实施例中,卫星设备120a可以在每次正在建立新的活动会话时(换句话说,在不同的活动会话之间)将这些数据发送给主设备110。在另外的或替代的实施例中,卫星设备120a可以响应于卫星设备120a的设备能力或信道状况的变化(或者由该变化触发),在活动会话期间(在建立的活动参与者会话之后)将这些数据发送给主设备110。类似地,主设备110可以确定其自己的设备能力和/或信道状况(由主设备110针对接入点与主设备110之间的第二信道来确定的)。
接下来在框b420处,主设备110的处理器220可以基于以下各项中的至少一项来确定去抖动缓冲器大小:卫星设备120a的设备能力、主设备110的设备能力或信道状况。在一些实施例中,处理器220可以基于与卫星设备120a的设备能力、主设备110的设备能力或信道状况中的一项或多项相关联的预定的去抖动缓冲器大小之间的预定映射(例如,映射表300),来确定去抖动缓冲器大小。例如,可以输入如框b420中确定的变量(对应于列310-340),以及处理器220可以基于映射表300来确定相应的结果(列350)。
接下来在框b430处,主设备110的处理器220可以应用具有所确定的去抖动缓冲器大小的去抖动缓冲器。
图5是根据各个实施例,示出了去抖动缓冲器大小选择方法500的示例的过程流程图。参照图1-5,方法500可以被实现用于vcs100,其中,至少主设备110和卫星设备120可以是利用pcd200实现的。过程500可以被实现用于主设备110。方法400可以由主设备110的处理器220(如耦合到网络设备240和存储器设备230)来执行。方法500可以不考虑卫星设备120a的设备能力。
在框b510处,主设备110的处理器220可以基于预先配置的能力信息来确定主设备110的设备能力或信道状况中的至少一项。主设备110的设备能力可以包括在主设备110上是否支持qos。信道状况可以包括网络环境因子,诸如但不限于信道类型(例如,正在使用2.4ghz信道或5ghz中的哪一个)等等。例如,可以将具有关于主设备110的设备能力和信道状况的预先配置的能力信息的配置文件存储在存储器单元230中。预先配置的能力信息可以是由主设备110的处理器220自动地确定的。预先配置的能力信息可以是基于经由用户接口设备250接收的用户输入来确定的。替代地,预先配置的能力信息可以是从另一个服务器(例如,主机服务器或桥路140)接收的。
接下来在框b520处,主设备110的处理器220可以基于主设备110的设备能力或信道状况中的至少一项来确定去抖动缓冲器大小。换句话说,主设备110的处理器220可以基于预先配置的能力信息来确定去抖动缓冲器大小。在一些实施例中,处理器220可以基于与主设备110的设备能力或信道状况中的一项或多项相关联的预定的去抖动缓冲器大小之间的预定映射(例如,不具有列320、340的映射表300,这是由于在确定中可以不使用与卫星设备120相关的信息),来确定去抖动缓冲器大小。例如,可以输入如框b510中确定的变量,以及处理器220可以基于映射表来确定相应的结果。
接下来在框b530处,主设备110的处理器220可以应用具有所确定的去抖动缓冲器大小的去抖动缓冲器。
图6是根据各个实施例,示出了去抖动缓冲器大小选择方法600的示例的过程流程图。参照图1-6,方法600可以被实现用于vcs100,其中,至少主设备110和卫星设备120可以是利用pcd200实现的。方法600可以被实现用于主设备110。方法600可以由主设备110的处理器220(如耦合到网络设备240和存储器设备230)来执行。
在框b610处,主设备110的处理器220可以确定以下各项中的至少一项:多个卫星设备120中的每个卫星设备120的设备能力、主设备110的设备能力或信道状况。在一些实施例中,多个卫星设备120中的每个卫星设备120的设备能力可以包括在卫星设备120中的每个卫星设备120上是否支持qos,在卫星设备120中的每个卫星设备120上是否激活了蓝牙,等等。在一些实施例中,主设备110的设备能力可以包括在主设备110上是否支持qos。主设备110的设备能力可以是由主设备110的处理器220本地地确定的。可以将主设备110的设备能力存储在存储器单元230中以用于重复使用。信道状况可以包括网络环境因子,诸如但不限于信道类型(例如,正在使用2.4ghz信道或5ghz中的哪一个),网络150是否支持qos,等等。
网络150可以包括从卫星设备120中的一个卫星设备120到wifi接入点的第一信道和从wifi接入点到主设备110的第二信道。第一信道和第二信道可以是相同或不同的信道(或信道类型)。卫星设备120a的第一信道也可以是相同或不同的信道(或信道类型)。信道类型可以指代第一信道或第二信道中的一个或两者。第一信道的信道类型可以是由卫星设备120确定的。卫星设备120中的每个卫星设备120可以将第一信道的信道类型发送给主设备110。第二信道的信道类型可以是由主设备110确定的。相对于网络150是否可以支持qos,第一信道是否支持qos以及第二信道是否支持qos也可以是分别由卫星设备120和主设备110确定的。例如,即使卫星设备120中的至少一些卫星设备120可以支持qos,但是接入点针对第一信道中的一些信道可以不支持qos。
当建立活动会话时,多个卫星设备120中的每个卫星设备120可以经由控制信号来向主设备110发送其自己的设备能力和/或信道状况(由多个卫星设备120中的每个卫星设备120针对卫星设备120a与接入点之间的第一信道来确定的)。在一些实施例中,卫星设备120可以在每次正在建立新的活动会话时将这些数据发送给主设备110。卫星设备120可以从相关联的接入点获得卫星设备120的设备能力以及信道状况中的一项或多项,并且将该信息中继给主设备110。类似地,主设备110可以确定其自己的设备能力和/或信道状况(由主设备110针对接入点与主设备110之间的第二信道来确定的)。
接下来在框b620处,主设备110的处理器220可以基于以下各项中的至少一项来确定初始去抖动缓冲器大小:每个卫星设备120的设备能力、主设备110的设备能力或信道状况。在一些实施例中,主设备110的处理器220可以基于与卫星设备120中的每个卫星设备120的设备能力、主设备110的设备能力或信道状况中的一项或多项相关联的预定的去抖动缓冲器大小之间的预定映射(例如,映射表300),来确定初始去抖动缓冲器大小。例如,可以输入如框b610中确定的变量(例如,每个卫星设备120的设备能力、主设备110的设备能力或信道状况中的一项或多项或全部),以及处理器220可以基于映射表300来确定相应的结果。
给定在vcs100中存在多个卫星设备120,可以一起考虑卫星设备120中的每个卫星设备120的卫星设备能力和/或信道状况。在一些实施例中,在确定到初始去抖动缓冲器大小的映射时,可以使用最差的卫星设备能力和/或最差的信道状况(作为映射表300的输入参数)。例如,当卫星设备120中除了一个卫星设备120之外都被提供有qos时,用于映射的参数(例如,在卫星qos列320处)可以是“否”。在其它实施例中,在确定到初始去抖动缓冲器大小的映射时,可以使用比卫星设备120的预定百分比差(例如,75%、80%、90%、95%等)的卫星设备能力和/或信道状况。
接下来在框b630处,主设备110的处理器220可以应用具有所确定的去抖动缓冲器大小的初始去抖动缓冲器。接下来在框b640处,(如处理器220所配置的用于接收数据的)网络设备240可以被配置为从多个卫星设备120中的一个或多个卫星设备120接收更新。这些更新可以是来自卫星设备120中的每个卫星设备120的定期更新,并且包括卫星设备120中的每个卫星设备120的当前设备能力和/或卫星设备120中的每个卫星设备120当前测量的信道状况。接下来在框b650处,处理器220可以基于更新来确定是否存在设备能力或信道状况的变化。当处理器220确定没有发生改变时,在框b630(b650:否)处,处理器220可以继续应用初始去抖动缓冲器大小。当处理器220确定存在至少一个改变时,处理器220可以实现框b660(b650:是)。替代地,多个卫星设备120中的一个卫星设备120可以仅在卫星设备120a检测到设备能力和/或信道状况的变化时,在框b640(b650:总是是)处向主设备110发送更新。
例如,在同一个活动会话中,多个卫星设备120中的一个卫星设备120(其启用了qos)可以从第一接入点(不支持qos)移动到另一个接入点(支持qos)。因而,可以产生与卫星设备120a相关联的设备能力的变化。另外,更新和/或变化还可以包括至少一个额外的卫星设备加入活动会话。考虑到去抖动缓冲器大小可以是通过考虑同一个活动会话中的多个卫星设备120中的所有卫星设备120的卫星设备能力和/或信道状况来确定的,因此额外的设备可能导致卫星设备能力和/或信道状况的共同值的变化。接着,用于映射表300的参数值也可以改变。这在新加入的卫星设备具有最差的卫星设备能力和/或信道状况时是尤其重要的。
在框b660处,主设备110的处理器220可以基于卫星设备120中的一个卫星设备120的至少一个更新的设备能力或更新的信道状况,来确定中间去抖动缓冲器大小。主设备110的处理器220可以使用更新的值和不变的值,来以所描述的方式基于映射表(例如,映射表300)确定中间去抖动缓冲器大小。可以产生新的或不变的去抖动缓冲器大小。
接下来在框b670处,主设备110的处理器220可以应用具有所确定的中间去抖动缓冲器大小的去抖动缓冲器。在应用中间去抖动缓冲器大小之后,在框b640处,主设备110的处理器220可以继续监测(接收)来自多个卫星设备120中的一个或多个卫星设备120的更新。在各个实施例中,确定中间去抖动缓冲器大小和应用中间去抖动缓冲器大小可以是在与确定初始去抖动缓冲器大小和应用初始去抖动缓冲器大小相同的活动会话中执行的。在其它实施例中,确定中间去抖动缓冲器大小和应用中间去抖动缓冲器大小可以是在与确定初始去抖动缓冲器大小和应用初始去抖动缓冲器大小不同的活动会话中执行的。
关于重传计数和延时预算,卫星设备120中的每个卫星设备120可以使用具有脉冲编码调制(pcm)的基于能量的分类来确定音频帧是静默帧还是语音帧。静默帧可以与较低的重传优先级(较低的重传计数和/或较低的延时预算)相关联。mac层可以基于与数据分组相关联的接入类的类型(例如,背景、尽力而为、视频、音频等)来确定传输计数。卫星设备120中的每个卫星设备120的处理器220执行的应用可以用于对同一接入类(例如,音频)内的优先级进行进一步地区分。例如,与静默帧相比,语音帧可以与更高的重传计数(更大数量的重新尝试)和更高的延时预算(对网络150中的延时的更大抵抗)相关联。因而,当网络负担有相当多的未经递送的数据分组时,未经递送的静默帧将不会显著地负面地影响语音帧的传输/重传,其中语音帧携带来自卫星设备120a的用户的实际的语音数据。
pcd200(例如,卫星设备120)的媒体接入控制(mac)层可以确定给定的接入类的每个上行链路数据分组(例如,媒体接入控制协议数据单元(mpdu)、媒体分组等)的重传计数。mac层重传计数可以是基于数据分组的接入类来确定的。较上层可以将音频数据分组标记有优先级。较上层还可以被配置为为每个流和/或数据分组提供延迟界限。对于使用pcd实现的卫星设备120的vcs来说,适当地选择重传计数和延时预算可能是重要的问题。
图7是根据各个实施例,示出了数据传输方法700的示例的过程流程图。参照图1-7,数据传输方法700可以由实现mac层的卫星设备120的处理器220(如耦合到网络设备240和存储器设备230)来执行。mac层重传计数可以是基于音频分组是语音帧还是静默帧来确定的。mac层重传计数还可以是基于从vcs100的主设备110接收的反馈来确定的,其中在vcs100中,至少主设备110和卫星设备120可以是利用pcd200实现的。
在框b710处,卫星设备120a(卫星设备120中的一个卫星设备)的处理器220可以基于与音频帧相关联的能量来确定与音频帧相关联的优先级。优先级可以是传输优先级。传输优先级可以是基于与音频帧相关联的能量以及其它标准(诸如但不限于信噪比(snr)、背景噪声、干扰、其组合等)来确定的。卫星设备120a的处理器220可以在应用层处确定与音频帧相关联的能量(使用pcm)。当与音频帧相关联的能量越过一个或多个预定门限时,可以向音频帧分配相应的优先级。利用非限制性示例进行说明,当与音频帧相关联的能量超过预定门限时,可以将音频帧分类成与较高传输优先级相关联的语音帧。在另一方面,当与音频帧相关联的能量低于预定门限时,可以将音频帧分类成与较低传输优先级相关联的静默帧。应当理解的是,额外的门限可以基于能量水平来定义对音频帧的两个或更多个分类。较高传输优先级可以与较高能量水平相关联,反之亦然。在其它实施例中,传输优先级可以是利用声码器来确定的。
替代地或另外地,传输优先级可以与针对音频帧确定的延迟界限(延迟容忍上限)相对应。(实现较上层的)处理器220可以基于与音频帧相关联的能量来确定音频帧的延迟界限。利用非限制性示例进行说明,当与音频帧相关联的能量超过预定门限时,可以将较大的延迟界限指定给音频帧(给定音频帧是语音帧)。在另一方面,当与音频帧相关联的能量低于预定门限时,可以将较小的延迟界限指定给音频帧(给定音频帧是静默帧)。额外的门限可以定义延迟界限的三个或更多个区间。
接下来在框b720处,卫星设备120a的(实现mac层的)处理器220可以基于与音频帧相关联的优先级来确定针对音频帧的重传计数或缓冲器分组丢弃中的至少一个。具体地,mac层可以基于传输优先级来确定重传计数。较高的重传优先级可以对应于较高的重传计数。例如,语音帧可以受益于完全重传计数(例如,6、7等)。在另一方面,静默帧可以与较低的重传计数(例如,1或2)相关联。考虑到重传计数还可以依赖于因素(例如,snr、背景噪声、干扰等),因此只要其它因素不改变重传计数,就可以采用仅基于帧能量的重传计数。否则,可以基于其它因素来调整仅基于帧能量的重传计数。mac层还可以基于与音频帧相关联的延迟界限来确定针对音频帧的缓冲器分组丢弃。
mac层可以基于延迟界限来确定重传计数和mac缓冲器分组丢弃。例如,可以向静默帧分配较低的缓冲器分组丢弃(例如,当缓冲器已满或几乎已满时,首先丢弃静默帧)。在另一方面,可以向语音帧分配较高的缓冲器分组丢弃(例如,当缓冲器已满或几乎已满时,在已经丢弃了具有较低的缓冲器分组丢弃的音频帧之后,丢弃语音帧)。
接下来在框b730处,(由处理器220配置的)卫星设备120a的网络设备240可以在如上行链路数据分组的活动会话中,基于(利用)重传计数和/或缓冲器分组丢弃中的至少一个来将音频帧作为至少一个上行链路数据分组来发送。
卫星设备120和主设备110之间的数据通信可以是使用多播、单播或其组合来实现的。与单播相比,wifi多播可以是高效和可缩放的。然而,考虑到从接入点到接收站(例如,卫星设备120和主设备110中的一个或多个)的传输可能没有被确认(acked),因此wifi多播可能是不太可靠的。另外,当与给定的接入点相关联的接收站中的任何接收站进入节电模式(不接收多播业务)时,接入点可以对多播业务进行缓冲,并且将这些业务发送给每个递送业务指示消息(dtim)。因此,卫星设备120和主设备110之间的通信的方法可以以所描述的方式来动态地利用多播和单播两者。
图8是根据各个实施例,示出了多播-单播选择方法800的示例的过程流程图。参照图1-8,方法800可以被实现用于vcs100,其中,至少主设备110和卫星设备120可以是利用pcd200实现的。方法800可以被实现用于卫星设备120中的一个卫星设备120(例如,卫星设备120a)。方法800可以由卫星设备120a的处理器220(如耦合到网络设备240和存储器设备230)来执行。
在框b810处,(由卫星设备120a的处理器配置的)卫星设备120a的网络设备240可以经由多播来从主设备110接收下行链路数据分组。下行链路数据分组可以源自远程设备。换句话说,主设备110可以总是被配置为至少初始地使用多播来发送下行链路数据分组。
在框b820处,卫星设备120a的处理器220可以确定分组差错率(per)是否超过预定的per门限(门限_per)。per可以是经测量的从主设备110接收的下行链路数据分组的差错率。门限_per的示例可以例如是10%、20%、30%、45%等。
在框b830处,卫星设备120a的处理器220可以确定分组接收延迟(delay)是否超过预定的分组接收延迟门限(门限_delay)。例如,处理器220可以通过将与下行链路数据分组相关联的接收时间戳(由卫星设备120a的处理器220)和与相同的下行链路数据分组相关联的生成时间戳(由主设备110的处理器220确定并且与下行链路数据分组一起被发送给卫星设备120a)进行比较,来确定delay。门限_delay的示例可以包括例如2ms、5ms、10ms、20ms等。
当per超过门限_per(b820:是)时或者当delay超过门限_delay(b830:是)时,在框b840处,卫星设备120a的处理器220可以(经由卫星设备120a的网络设备240)来向主设备110发送请求,以请求经由单播来从主设备110接收(后续)下行链路数据分组。否则(例如,当per未超过门限_per(b820:否)时或者当delay未超过门限_delay(b830:否)时),在框b840处,卫星设备120a可以被配置为继续经由多播来从主设备110接收下行链路数据分组。
在框b850处,卫星设备120a可以经由单播来从主设备110接收下行链路数据分组。响应于从卫星设备120a接收到请求,主设备110可以经由单播来向请求卫星设备120a发送下行链路数据分组。因此,根据这样的请求,卫星设备120中的一些卫星设备120可以经由多播来进行接收,而卫星设备120中的一些其它卫星设备120(例如,卫星设备120a)可以经由单播来进行接收。在框b860处,卫星设备120a可以确定per和/或delay是否改善。具体地,卫星设备120a可以(定期地)确定per是否不再超过门限_per或者delay是否不再超过门限_delay。当检测到关于per或delay中的一个或两者的改善时,在框b810(b860:是)处,卫星设备120a可以请求暂停单播,而支持经由多播来进行接收。在另一方面,当没有检测到改善时,在框b850(b860:否)处,卫星设备120a可以继续经由单播来进行接收。
提供前述方法描述和过程流图仅仅作为说明性示例,并非旨在要求或暗示必须用所给出的顺序来执行各个方面的步骤。如本领域技术人员将意识到的,可以用任何次序来执行前述实施例中的步骤的次序。诸如“此后”、“然后”、“接下来”之类的词语并非旨在对步骤的次序进行限制;这些词语仅用于引导读者贯穿对方法的描述。此外,以单数形式对权利要求要素的任何引用,例如使用冠词“一”、“一个”或“所述”不应解释为将要素限制为单数。
结合本文公开的实施例所描述的各种说明性的逻辑框、模块、电路和算法步骤可以实现为电子硬件、计算机软件或者二者的组合。为了清楚地示出硬件和软件的这种可互换性,上面已经对各种说明性的组件、框、模块、电路和步骤围绕其功能进行了一般性描述。至于这种功能是实现为硬件还是软件,这取决于特定的应用和施加在整体系统上的设计约束。技术人员可以针对每个特定应用以不同的方式来实现所描述的功能,但是这种实现决策不应当解释为致使偏离本发明的范围。
利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行用于实现结合本文公开的实施例所描述的各种说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但在替代方案中,该处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、与dsp内核结合的一个或多个微处理器,或者任何其它此种配置。替代地,可以由特定于给定功能的电路来执行一些步骤或方法。
在一个或多个示例性实施例中,可以在硬件、软件、固件、或者其任意组合中实现所描述的功能。如果用软件实现,则可以将所述功能作为一个或多个指令或代码存储在非暂时性计算机可读存储介质或者非暂时性处理器可读存储介质上。本文所公开的方法或算法的操作可以体现在处理器可执行软件模块中,该处理器可执行软件模块可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性计算机可读或处理器可读存储介质可以是可以由计算机或处理器存取的任何存储介质。通过举例而非限制性的方式,这种非暂时性计算机可读或处理器可读存储介质可以包括ram、rom、eeprom、闪存、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构的形式存储期望的程序代码并可以由计算机存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也包括在非暂时性计算机可读和处理器可读介质的范围之内。此外,方法或算法的操作可以作为代码和/或指令中的一个或任何组合、或代码和/或指令集驻留在非暂时性处理器可读存储介质和/或计算机可读存储介质上,所述非暂时性处理器可读存储介质和/或计算机可读存储介质可以并入计算机程序产品。
对于本领域技术人员来说,对本文描述的实施例的各种修改将是显而易见的,并且在不脱离本公开内容的精神或范围的情况下,可以将本文定义的总体原理应用于一些实施例。因此,本公开内容并不旨在受限于本文示出的实施例,而是要符合与所附权利要求书和本文所描述的原理和新颖特征的相一致的最宽的范围。