掌桥专利:专业的专利平台
掌桥专利
首页

注视点译码的切片大小地图控制

文献发布时间:2023-06-19 11:55:48


注视点译码的切片大小地图控制

背景技术

相关技术描述

无线通信链路可用于从计算机(或其他装置)向虚拟现实(VR)头戴式耳机(或头戴式显示器(HMD))发送视频流。无线地发射VR视频流消除了对计算机与佩戴HMD的用户之间的电缆连接的需求,从而允许用户不受限制地运动。计算机与HMD之间的传统电缆连接通常包括一根或多根数据电缆和一根或多根电力电缆。在没有电缆系绳的情况下且在不需要有意识地避让电缆的情况下允许用户四处走动产生了更加沉浸式的VR系统。无线地发送VR视频流还允许VR系统用于比先前可能应用更广范围的应用中。

无线VR视频流应用通常具有高分辨率和高帧速率(这相当于高数据速率)。然而,流式发射VR视频所用的无线链路的链路质量具有容量特性,所述容量特性可因系统而异,并且由于环境(例如,障碍物、其他发射器、射频(RF)噪声)的变化而波动。通常通过镜头观看VR视频内容以促进用户的高视野并产生沉浸式环境。压缩VR视频以通过低带宽无线链路进行发射,同时使终端用户所感知到的任何视频质量下降最小化,可能是具有挑战性的。

附图说明

通过参考以下结合附图进行的描述,可更好地理解本文描述的方法和机制的优点,在附图中:

图1是系统的一个实现方式的框图。

图2是无线虚拟现实(VR)系统的一个实现方式的框图。

图3是用于确定要对正在编码的帧的块施加多少压缩的控制逻辑的一个实现方式的框图。

图4是在半帧的聚焦区域之外的对应于不同压缩水平的同心区域的一个实现方式的图示。

图5是对缩放目标切片大小的裁剪的一个实现方式的图示。

图6是对缩放目标切片大小的裁剪的另一个实现方式的图示。

图7是示出用于基于与聚焦区域的距离调整压缩水平的方法的一个实现方式的一般化流程图。

图8是示出用于基于与聚焦区域的距离选择要对块施加的压缩量的方法的一个实现方式的一般化流程图。

图9是示出用于基于链路条件的改变调整聚焦区域的大小的方法的一个实现方式的一般化流程图。

具体实施方式

在以下描述中,阐述了众多具体细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域普通技术人员应认识到,可在没有这些具体细节的情况下实践各种实现方式。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免使本文描述的方法不清楚。将了解,为了图示的简单和清楚起见,附图中所示的元件未必按比例绘制。例如,一些元件的尺寸可相对于其他元件放大。

本文公开用于基于每个块到聚焦区域的距离调整用于对帧的块进行压缩的压缩水平的各种系统、设备、方法和计算机可读介质。在一个实现方式中,系统包括发射器,所述发射器通过无线链路向接收器发送视频流。发射器在向接收器发送视频流的帧发之前对帧进行压缩。针对给定帧的每个像素块,发射器基于给定帧内从块到聚焦区域的距离选择要对块施加的压缩水平,其中压缩水平随着与聚焦区域的距离的增加而增加。如本文所使用,术语“聚焦区域”被限定为在用户观看所述帧时每只眼睛预期聚焦到的半帧的部分。在一些情况下,“聚焦区域”至少部分地基于检测半帧内眼睛所指向的位置的眼睛跟踪传感器来确定。在一个实现方式中,聚焦区域的大小根据一个或多个因素(例如,链路质量)而变化。发射器利用所选择压缩水平对每个块进行编码,然后将所编码的块传送到接收器以便显示。

现在参考图1,示出系统100的一个实现方式的框图。系统100包括至少可操作来彼此无线地通信的第一通信装置(例如,发射器105)和第二通信装置(例如,接收器110)。应注意,发射器105和接收器110也可称为收发器。在一个实现方式中,发射器105和接收器110在非许可60千兆赫(GHz)频带上无线地通信。例如,在此实现方式中,发射器105和接收器110根据电气电子工程师学会(IEEE)802.11ad标准(即,WiGig)进行通信。在其他实现方式中,发射器105和接收器110可在其他频带上和/或通过遵守其他无线通信协议(无论是根据标准还是其他)无线地通信。例如,可使用的其他无线通信协议包括但不限于:

在极高频(EHF)带(诸如60GHz频带)内操作的无线通信装置能够使用相对小的天线发射和接收信号。然而,与在较低频带上的发射相比,此类信号经受高的大气衰减。为了降低这种衰减的影响并提高通信范围,EHF装置通常并入波束形成技术。例如,IEEE802.11ad规范详细说明波束形成训练程序(也称为扇区级扫描(SLS)),在此程序期间,无线站测试并与远程站协商最佳发射和/或接收天线组合。在各种实现方式中,发射器105和接收器110执行周期性波束形成训练程序,以确定用于无线数据发射的最优发射和接收天线组合。

在一个实现方式中,发射器105和接收器110具有定向发射和接收能力,并且通信在链路上的交换利用定向发射和接收。每个定向发射是被波束形成以便朝向天线140的所选择发射扇区定向的发射。类似地,定向接收使用优化用于从天线160的所选择接收扇区接收传入发射的天线设置来执行。链路质量可根据选择用于发射的发射扇区和选择用于接收的接收扇区而变化。所选择的发射扇区和接收扇区通过系统100执行波束形成训练程序来确定。

发射器105和接收器110表示任何类型的通信装置和/或计算装置。例如,在各种实现方式中,发射器105和/或接收器110可以是移动电话、平板电脑、计算机、服务器、头戴式显示器(HMD)、电视、另一种类型的显示器、路由器或其他类型的计算或通信装置。在一个实现方式中,系统100执行用于将所呈现的虚拟环境的帧从发射器105无线地发射到接收器110的虚拟现实(VR)应用。在其他实现方式中,可通过利用本文描述的方法和机制的系统100来实现其他类型的应用。

在一个实现方式中,发射器105包括至少射频(RF)收发器模块125、处理器130、存储器135和天线140。RF收发器模块125发射和接收RF信号。在一个实现方式中,RF收发器模块125是可操作来通过60GHz频带中的一个或多个信道无线地发射和接收信号的毫米波收发器模块。RF收发器模块125将基带信号转换成RF信号以用于无线发射,并且RF收发器模块125将RF信号转换成基带信号以用于由发射器105提取数据。应注意,出于说明性目的,将RF收发器模块125示出为单个单元。应理解,RF收发器模块125可根据实现方式利用任何数量的不同单元(例如,芯片)来实现。类似地,处理器130和存储器135分别表示实现为发射器105的部分的任何数量和类型的处理器和存储器装置。在一个实现方式中,处理器130包括编码器132,以在将视频流发射到接收器110之前对视频流进行编码(即,压缩)。在其他实现方式中,编码器132与处理器130分离地实现。在各种实现方式中,编码器132使用硬件和/或软件的任何合适的组合来实现。

发射器105还包括用于发射和接收RF信号的天线140。天线140表示可被配置来改变无线电信号的发射和接收的定向性的一根或多根天线,诸如相控阵列、单元天线(singleelement antenna)、一组切换波束天线等。作为一个实例,天线140包括一个或多个天线阵列,其中天线阵列内的每根天线的振幅或相位可独立于阵列内的其他天线进行配置。尽管天线140被示出为在发射器105外部,但应理解,在各种实现方式中,天线140可包括在发射器105内部。另外,应理解,发射器105还可包括任何数量的其他部件,所述其他部件未示出以避免使附图不清楚。类似于发射器105,在接收器110内实现的部件包括至少RF收发器模块145、处理器150、解码器152、存储器155和天线160,它们类同于以上针对发射器105所描述的部件。应理解,接收器110还可包括或耦接到其他部件(例如,显示器)。

现在转向图2,示出无线虚拟现实(VR)系统200的一个实现方式的框图。系统200包括至少计算机210和头戴式显示器(HMD)220。计算机210表示任何类型的计算装置,所述计算装置包括一个或多个处理器、存储器装置、输入/输出(I/O)装置、RF部件、天线以及指示个人计算机或其他计算装置的其他部件。在其他实现方式中,除个人计算机之外,还利用其他计算装置来将视频数据无线地发送到头戴式显示器(HMD)220。例如,计算机210可以是游戏控制台、智能电话、机顶盒、电视机、视频流装置、可佩戴装置、主题公园游乐设施的部件或其他计算机。另外,在其他实现方式中,HMD 220可以是计算机、台式电脑、电视或用作连接到HMD或其他类型的显示器的接收器的其他装置。

计算机210和HMD 220各自包括用于无线地通信的电和/或部件。应注意,虽然计算机210被示出为具有外部天线,但这仅仅被示出以说明视频数据是无线发送的。应理解,计算机210可具有在计算机210的外部壳体内部的天线。另外,虽然计算机210可使用有线电源连接来供电,但HMD 220通常是电池供电的。替代地,计算机210可以是由电池供电的膝上型计算机(或另一种类型的装置)。

在一个实现方式中,计算机210包括动态地呈现VR环境的表示以便呈现给佩戴HMD220的用户的电路。例如,在一个实现方式中,计算机210包括执行程序指令以便呈现VR环境的一个或多个图形处理单元(GPU)。在其他实现方式中,计算机210包括其他类型的处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其他处理器类型。HMD 220包括接收和解码由计算机210发送的压缩比特流以生成所呈现VR环境的帧的电路。然后,HMD 220将所生成的帧驱动到集成在HMD 220内的显示器。

在显示在HMD 220上的每个图像内,显示在HMD 220的右侧225R的场景225R包括聚焦区域230R,而显示在HMD 220的左侧的场景225L包括聚焦区域230L。这些聚焦区域230R和230L分别由HMD 220的扩展的右侧225R和左侧225L内的圆圈表示。在一个实现方式中,聚焦区域230R和230L对应地在右半帧和左半帧内的位置基于HMD 220内的眼睛跟踪传感器来确定。在此实现方式中,眼睛跟踪数据作为反馈被提供给编码器,并且可选地被提供给VR视频的呈现源。在一些情况下,眼睛跟踪数据反馈以高于VR视频帧速率的频率生成,并且编码器能够访问反馈并以每帧为基础更新编码的视频流。在一些情况下,不在HMD 220上执行眼睛跟踪,而是将面部视频发送回呈现源以进行进一步处理,从而确定眼睛的位置和移动。在另一个实现方式中,聚焦区域230R和230L的位置由VR应用程序基于预期用户正在看着的地方来指定。应注意,聚焦区域230R和230L的大小可根据实现方式而变化。另外,聚焦区域230R和230L的形状可根据实现方式而变化,且在另一个实现方式中,聚焦区域230R和230L被限定为椭圆形。在其他实现方式中,其他类型的形状也可用于聚焦区域230R和230L。

在一个实现方式中,如果HMD 220包括眼睛跟踪传感器以基于用户的眼睛所指向的地方来跟踪焦内区域,则聚焦区域230R和230L可相对较小。否则,如果HMD 220不包括眼睛跟踪传感器,并且聚焦区域230R和230L是基于预期用户正在看着的地方确定的,则聚焦区域230R和230L可相对较大。在其他实现方式中,其他因素可致使聚焦区域230R和230L的大小被调整。例如,在一个实现方式中,随着计算机210与HMD 220之间的链路质量的降低,聚焦区域230R和230L的大小减小。

在一个实现方式中,编码器针对聚焦区域230R和230L内的块使用最低的压缩量,以维持这些区域内的像素的最高质量和最高细节水平。应注意,“块”在本文中也可称为“切片”。如本文所使用,“块”被限定为一组相连像素。例如,在一个实现方式中,块是在所显示图像中形成正方形的一组8×8个相连像素。在其他实现方式中,使用块的其他形状和/或其他大小。在聚焦区域230R和230L之外,编码器使用较高的压缩量,从而导致在半帧的这些区域中呈现的像素的较低质量。这种方法利用人类视觉系统,其中每只眼睛具有大的视野,但眼睛仅聚焦在大视野内的小区域上。基于眼睛和大脑感知视觉数据的方式,人通常将不会注意到聚焦区域之外的区域中的较低质量。

在一个实现方式中,图像内的块离聚焦区域越远,编码器就越增加用于对块进行编码的压缩量。例如,如果第一块与聚焦区域相距第一距离并且第二块与聚焦区域相距第二距离,其中第二距离大于第一距离,则编码器将使用与第一块相比更高的压缩率对第二块进行编码。这将导致当将第二块解压缩并显示给用户时,第二块与第一块相比具有更少的细节。在一个实现方式中,编码器通过增加在对给定块进行编码时所使用的量化强度水平来增加所使用的压缩量。例如,在一个实现方式中,使用量化参数(QP)设置来指定量化强度水平。在其他实现方式中,编码器通过改变其他编码设置的值来增加用于对块进行编码的压缩量。

现在参考图3,示出用于确定要对帧的块施加多少压缩的控制逻辑300的一个实现方式的框图。在一个实现方式中,控制逻辑300包括眼距单元305、半径比较单元310、半径表315、查找表320和先进先出(FIFO)队列325。在其他实现方式中,控制逻辑300可包括其他部件和/或以其他合适的方式进行组织。

眼距单元305计算从特定半屏图像(右眼或左眼)的聚焦区域到给定块的距离。在一个实现方式中,眼距单元305使用给定块的坐标(Block_X,Block_Y)和聚焦区域的中心的坐标(Eye_X,Eye_Y)来计算距离。图4中示出用于计算从块到聚焦区域的距离的一个公式435的实例。在其他实现方式中,可利用用于计算从块到聚焦区域的距离的其他技术。

基于从聚焦区域的中心到给定块的距离(或基于从聚焦区域的中心到给定块的距离的平方),半径比较单元310基于由半径表315提供的半径R[0:N]确定给定块属于哪个压缩区域。任何数量“N”的半径存储在半径表315中,其中“N”是根据实现方式而变化的正整数。在一个实现方式中,将半径平方值存储在查找表中以消除对硬件乘法器的需要。在一个实现方式中,以单调递减次序在半径表315中编程半径平方值,使得条目零指定最大圆,条目一指定第二最大圆,依此类推。在一个实现方式中,将半径表315中的未使用条目编程为零。在一个实现方式中,一旦标识出块所属于的区域,就使用此区域的区域标识符(ID)索引到查找表320中,以提取对应于区域ID的完整目标块大小。应理解,在其他实现方式中,可用除了圆形之外的其他类型的形状(例如,椭圆形)来表示聚焦区域。聚焦区域之外的区域也可以与聚焦区域相同的方式设定形状。在这些实现方式中,可调整用于确定块所属于的区域的技术以将聚焦区域和外部区域的特定形状考虑在内。

来自查找表320的输出是块的完整目标压缩块大小。在一个实现方式中,在写入FIFO 325中以便之后在处理小波块时使用之前,利用压缩率(或c_ratio)值对目标块大小进行缩放。按c_ratio的函数进行缩放产生适于降低的射频(RF)链路容量的较小的目标块大小。在编码器处理块时的稍后时间点,编码器从FIFO 325检索缩放目标块大小。在一个实现方式中,针对正在处理的每个块,编码器选择用于对块进行压缩以满足缩放目标块大小的压缩水平。

现在转向图4,示出了在半帧的聚焦区域之外的对应于不同压缩水平的同心区域的一个实现方式的图示400。图示400中的每个方格表示半帧的切片,其中切片包括任何数量的像素,所述数量根据实现方式而变化。在屏的每一半中,使用图4底部的公式435来确定每个切片与(预测或确定的)眼注视点的距离。在公式435中,S

然后,在使用公式(诸如公式435)计算d

基于从聚焦区域405的中心到给定切片的距离(或基于从聚焦区域405的中心到给定切片的距离的平方),编码器确定给定切片属于哪个压缩区域。在一个实现方式中,一旦标识出切片所属于的区域,就使用区域标识符(ID)索引到查找表中以检索目标切片长度。查找表映射允许区域ID到切片大小的任意映射。

在一个实现方式中,来自查找表的输出是切片的完整目标压缩大小。“区域ID”在本文中也可称为“区ID”。在写入FIFO中以便之后在处理小波切片时使用之前,利用压缩率(或c_ratio)值对目标大小进行缩放。按c_ratio的某种函数进行缩放产生适于降低的射频(RF)链路容量的较小的目标切片大小。

现在参考图5,示出对缩放目标切片大小的裁剪的一个实现方式的图示500。在各种实现方式中,当压缩率(或c_ratio)变化时,编码器试图保持中心屏幕区域处于高质量。图示500示出针对一种特定压缩率设置对缩放目标切片大小的裁剪的一个实例。图示500中的虚线表示等于编程的切片长度乘以压缩率的目标切片长度。图示500中的实线表示裁剪的切片长度。

现在转向图6,示出对缩放目标切片大小的裁剪的另一个实现方式的图示600。与(图5的)图示500相比,图示600意图示出不同的压缩率。因此,图示600示出针对与在与图示500相关联的实现方式中使用的压缩率相比更高的压缩率对缩放目标切片大小的裁剪。类似于图示500,图示600中的虚线表示目标切片长度,而实线表示裁剪的切片长度。

图5的图示500和图6的图示600分别示出如何对目标切片大小进行编程,使得即使在压缩率增加时,每只眼睛的中心区域也保持在相对高的质量。从图示500到600的变化表明:缩放目标切片大小的裁剪在中心中产生具有高质量的区域,并且在周边区域被更多地压缩时依然如此。应注意,目标切片值可大于最大切片长度(或slice_len_max)(在一个实现方式中多达16,383),或者甚至可以是负数,因为裁剪将把它们带回到适当范围内。另外,应理解,图示500和600出于说明性目的而示出,并且图示500和600不必是直线。在典型的实现方式中,由于仅具有N个半径和N个相关联目标切片长度,所以图示500和600将是梯阶状的。图示500和600的整体形状可以是金字塔形(如图所示)、钟形或其他形状。

现在转向图7,示出用于基于与聚焦区域的距离来调整压缩水平的方法700的一个实现方式。出于论述目的,按顺序次序示出此实现方式中的步骤和图8至图9的那些步骤。然而,应注意,在所描述方法的各种实现方式中,可同时执行、可按与所示不同的次序、或者可完全省略所描述要素中的一个或多个。还根据需要执行其他另外的要素。本文描述的各种系统或设备中的任一者被配置来实现方法700。

编码器接收要编码的帧的多个像素块(框705)。在一个实现方式中,编码器是发射器的部分或耦接到发射器。发射器可以是任何类型的计算装置,其中计算装置的类型根据实现方式而变化。在一个实现方式中,发射器将视频流的帧呈现为虚拟现实(VR)环境的部分。在其他实现方式中,可针对其他环境生成视频流。在一个实现方式中,编码器和发射器是无线VR系统的部分。在其他实现方式中,编码器和发射器包括在其他类型的系统中。在一个实现方式中,编码器和发射器一起集成到单个装置中。在其他实现方式中,编码器和发射器位于分离的装置中。

编码器确定从每个块到帧的聚焦区域的距离(框710)。在另一个实现方式中,在框710中计算从每个块到聚焦区域的距离的平方。在一个实现方式中,通过跟踪用户的眼睛移动(基于眼睛跟踪)确定帧的聚焦区域。在这种实施方案中,可将眼睛所注视的位置嵌入视频序列中(例如,在不可见或非聚焦区域面积中)。在另一个实现方式中,聚焦区域由软件应用程序基于预期用户正在看着的地方(基于非眼睛跟踪)指定。在一些实施方案中,基于眼睛跟踪和基于非眼睛跟踪的两种方法均可用作操作模式。在一个实施方案中,给定模式是可编程的。在一些实施方案中,模式可基于各种检测到的条件(例如,可用带宽、感知到的图像质量的量度、可用硬件资源、功率管理方案或其他条件)而动态地改变。在其他实现方式中,聚焦区域以其他方式来确定。在一个实现方式中,聚焦区域的大小可基于一个或多个因素进行调整。例如,在一个实现方式中,随着链路条件的恶化,聚焦区域的大小减小。

接下来,编码器选择要对每个块施加的压缩水平,其中基于从块到聚焦区域的距离调整压缩水平(框715)。例如,在一个实现方式中,随着块与聚焦区域相距越远而增加压缩水平。然后,编码器利用所选择压缩水平对每个块进行编码(框720)。接下来,发射器将编码的块传送到接收器以便显示(框725)。接收器可以是任何类型的计算装置。在一个实现方式中,接收器包括或耦接到头戴式显示器(HMD)。在其他实现方式中,接收器可以是其他类型的计算装置。在框725之后,方法700结束。

现在转向图8,示出用于基于与聚焦区域的距离选择要向块施加的压缩量的方法800的一个实现方式。编码器接收与给定帧的聚焦区域相距第一距离的第一块(框805)。接下来,编码器基于第一距离选择要对第一块施加的第一压缩量(框810)。应注意,“压缩量”在本文中也可称为“压缩水平”。另外,编码器接收与距聚焦区域相距第二距离的第二块,并且出于本论述目的,假设第二距离大于第一距离(框815)。应理解,用于指代第一块和第二块的术语“第一”和“第二”并不指代两个块之间的任何特定次序,而是仅仅用作区别两个块的标签。半帧中存在随后的块比先前的块更靠近聚焦区域的地方,并且存在先前的块比随后的块更靠近聚焦区域的其他地方。也可能两个连续的块将与聚焦区域等距。接下来,编码器基于第二距离选择要对第二块施加的第二压缩量,其中第二压缩量大于第一压缩量(框820)。在框820之后,方法800结束。

应注意,编码器接收任何数量的块,并且基于每个块到聚焦区域的距离,使用要对块施加的任何数量的不同压缩量。例如,在一个实现方式中,编码器将图像划分为64个不同的同心区域,其中每个区域对区域内的块施加不同的压缩量。在其他实现方式中,出于确定要施加多少压缩的目的,编码器将图像划分为其他数量的不同区域。

现在参考图9,示出用于基于链路条件的改变来调整聚焦区域的大小的方法900的一个实现方式。编码器在正在编码的帧中使用聚焦区域的第一大小(框905)。接下来,编码器利用最低压缩水平对第一大小的聚焦区域进行编码,并且利用随着与聚焦区域的距离的增加而增加的压缩水平对帧的其他区域进行编码(框910)。在稍后的时间点,发射器检测到发射编码的帧所用的链路的恶化(框915)。在一个实现方式中,在实施一个或多个波束形成训练程序期间,发射器和/或接收器生成无线链路的链路条件(即,链路质量)的测量结果。在此实现方式中,在波束形成训练程序期间检测到链路状况的恶化。在其他实现方式中,使用其他合适的技术(即,基于丢失分组的数量)来确定链路条件的恶化。

响应于检测到链接条件的恶化,编码器在正在编码的帧中使用聚焦区域的第二大小,其中第二大小小于第一大小(框920)。接下来,编码器利用最低压缩水平对第二大小的聚焦区域进行编码,并且利用随着与聚焦区域的距离的增加而增加的压缩水平对帧的其他区域进行编码(框925)。在框925之后,方法900结束。应注意,方法900意图示出聚焦区域的大小基于链路条件的改变而改变时的情形。应理解,可周期性地执行方法900或方法900的合适变体,以基于链接条件的改变来改变聚焦区域的大小。一般而言,根据方法900的一个实现方式,随着链路条件的改进,聚焦区域的大小增大,而随着链路条件的恶化,聚焦区域的大小减小。

在各种实现方式中,使用软件应用程序的程序指令来实现本文描述的方法和/或机制。例如,设想到可由通用处理器或专用处理器执行的程序指令。在各种实现方式中,此类程序指令可由高级编程语言表示。在其他实现方式中,程序指令可从高级编程语言编译成二进制形式、中间形式或其他形式。替代地,可写入描述硬件的行为或设计的程序指令。此类程序指令可由高级编程语言(诸如C)表示。替代地,可使用硬件设计语言(HDL),诸如Verilog。

在各种实现方式中,程序指令存储在多种非暂时性计算机可读存储介质中的任一种上。存储介质可由计算系统在使用期间访问,以将程序指令提供到计算系统以用于程序执行。一般而言,这种计算系统包括至少一个或多个存储器和被配置来执行程序指令的一个或多个处理器。

应强调,上述实现方式仅是实现方式的非限制性实例。一旦充分了解以上公开内容,许多改动和修改对本领域技术人员将显而易见。以下权利要求意图解译为包含所有此类改动和修改。

相关技术
  • 注视点译码的切片大小地图控制
  • 基于并发控制和双缓存技术的移动GIS切片地图展现方法
技术分类

06120113104834