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

基于优先级的视频编码和传输

文献发布时间:2023-06-19 19:30:30


基于优先级的视频编码和传输

本申请是国际申请号为PCT/US2019/039591、国际申请日为2019年06月27日、于2020年12月14日进入中国国家阶段、中国国家申请号为201980040136.6、发明名称为“基于优先级的视频编码和传输”的发明专利申请的分案申请。

背景技术

虚拟现实(VR)允许用户体验和/或与沉浸式人工环境进行交互,使得用户感觉他们好像身处于该环境中。例如,虚拟现实系统可向用户显示立体场景以产生深度错觉,并且计算机可实时调整场景内容以提供用户在场景内移动的错觉。当用户通过虚拟现实系统观看图像时,用户可因此感觉他们好像正从第一人称视角在场景内移动。类似地,混合现实(MR)将计算机生成的信息(称为虚拟内容)与真实世界图像或真实世界视图组合,以增强用户的世界视图或向用户的世界视图添加内容,或者另选地将真实世界对象的虚拟表示与三维(3D)虚拟世界的视图组合。因此,虚拟现实的模拟环境和/或混合现实的混合环境可用于为多种应用提供交互式用户体验。

发明内容

描述了视频编码系统的各种实施方案,该视频编码系统可以以低延迟来编码高分辨率视频源以通过通信链路(例如,无线链路)传输到设备以用于解码和显示。该视频编码系统的实施方案还可提供被传输到设备的编码视频的适度降级,以在变化条件(诸如通信链路的信道容量的变化)下维持期望的帧速率。该视频编码系统的示例性应用是在虚拟或混合现实系统中,其中包含虚拟内容的视频帧由基站渲染、编码并传输到设备(例如,笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话或头戴式显示器(HMD),诸如可由用户佩戴的头戴式耳机、头盔、护目镜或眼镜)以用于解码和显示。该视频编码系统可实现各种方法和装置,以维持通过无线链路的目标帧速率,并使帧渲染、传输和显示的延迟最小化,并且提供被传输到设备的编码视频的适度降级,以在变化条件(诸如无线连接的信道容量的变化)下维持期望的帧速率。

该视频编码系统可将像素数据分解成频带。在一些实施方案中,该视频编码系统可以在编码之前对像素数据执行小波变换,以将像素数据分解成频带。在一些实施方案中,视频编码可以执行傅里叶变换,该傅里叶变换将像素数据分解成频带。然后将频带组织成块,该块提供给基于块的编码器以用于编码/压缩。然后将编码的频率数据发送至无线接口,该无线接口对编码的频率数据进行分组并将分组传输至接收设备。在接收设备上,该编码数据被解分组并传递通过基于块的解码器以恢复频带。在一些实施方案中,然后对所恢复的频带执行小波合成以重建像素数据以用于显示。在一些实施方案中,该视频编码系统的编码器和无线接口部件可利用数据向频带的分解来优化数据的压缩和传输,以例如通过无线连接提供适度降级。

将像素数据分解成频带允许由编码器和无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器和无线接口可利用该优先级排序。

例如,可以利用频带的优先级排序来提供系统中无线连接的适度降级。可监测无线连接的性能,并且可考虑来自设备(例如,来自HMD或来自手持式设备)的反馈,以跟踪无线连接的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器和无线接口可将较低频带中的一个或多个较低频带的编码和/或传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。

在一些实施方案中,首先通过预过滤器(例如,N信道过滤器组)发送像素数据。在一些实施方案中,该预过滤器可减少图像的不在中心凹形区域中的区域中的高频内容,使得可在中心凹形区域中维持高保真度,并且在非中心凹形(外围)区域中应用人类视觉系统不能检测到的较低保真度。然后通过两级小波分解发送预过滤器的输出,以产生组织成频率块的多个频带。然后由编码器压缩频带的频率块。该编码器可将编码的频带分类为多个优先级级别或层级。该编码器可用指示频率块的帧/切片/图块/块、块中表示的频带、频带的优先级和定时信息的元数据来标记每个频率块。定时信息可例如包括编码器生成频率块的时间,以及应当在设备处接收频率块的时间(称为“截止期限”)。

无线接口可对编码的频率块进行分组以用于通过无线连接进行传输。一个或多个编码的频率块可被包括在每个分组中。在一些实施方案中,根据优先级级别或层级对编码的频率块进行分组。然后,基站的无线接口可根据分组中的编码频率块的优先级级别和/或根据分组中的频率块的截止期限来传输或丢弃分组。

在一些实施方案中,为了实现硬延迟要求,每个分组的定时信息可包括指示分组中的频率块何时由编码器编码的时间戳和/或该分组必须在设备处被接收的截止时间。如果在从基站的无线接口到设备的无线接口的传输中错过了截止期限,则该分组可在基站处或在设备处被丢弃。

在一些实施方案中,无线接口可基于优先级和/或截止期限来实现用于丢弃分组的不同策略。作为示例,在一些实施方案中,无线接口可严格地基于优先级丢弃分组。作为另一个示例,在一些实施方案中,无线接口可检查每个分组的截止期限,并根据截止期限和优先级两者丢弃分组。作为又一个示例,在一些实施方案中,一旦具有特定优先级的切片的分组被丢弃,无线接口就可决定丢弃所有较低优先级分组,因为具有较低优先级的其他分组可能不会被成功地传输,从而释放资源以用于传输。

在一些实施方案中,除了将频带分成优先级级别之外,还可基于对应像素是在帧的中心凹形区域中还是在外围区域中来以不同优先级标记频带。

在一些实施方案中,基站的无线接口可通过使成功传输的优先级级别的最小数量最大化来优化分组的传输。这可通过根据信道带宽可用性将不同的调制编码方案分配给不同优先级级别中的每个优先级级别来实现。在一些实施方案中,编码器可向无线接口发送对应于特定调制编码方案的优选分组错误率的信号以使质量最大化。

在一些实施方案中,如果分组的截止期限比属于下一个图块或切片的较高优先级分组更接近到期,则基站的无线接口可通过从图块或切片的末端传输较低优先级的分组来优化分组的传输。

附图说明

图1是示出根据至少一些实施方案的在编码之前使用小波变换将像素数据分解成频带的视频编码系统的框图。

图2示出了根据至少一些实施方案的包括并行处理来自帧的图块的多个编码器的视频编码系统。

图3A示出了根据至少一些实施方案的被分成切片和图块的示例性帧。

图3B示出了根据至少一些实施方案的被分成块的示例性图块。

图3C示出了根据至少一些实施方案的对存储像素数据的像素块执行小波变换以在编码之前生成频带数据。

图4是根据至少一些实施方案的用于如图1和图2所示的包括视频编码系统的VR/MR系统的操作的方法的高级流程图。

图5是根据至少一些实施方案的用于如图1所示的视频编码系统的操作的方法的流程图。

图6是根据至少一些实施方案的用于如图2所示的视频编码系统的操作的方法的流程图。

图7是根据至少一些实施方案的示出如图1或图2中所示的视频编码系统的框图,其中对频带进行经优先化以用于通过无线连接进行传输。

图8A示出了根据至少一些实施方案的示例性压缩块。

图8B示出了根据至少一些实施方案的示例性分组。

图9是根据至少一些实施方案的用于如图7所示的视频编码系统的操作的方法的流程图。

图10示出了根据至少一些实施方案的可实现视频编码系统的示例性VR/MR系统。

图11是根据至少一些实施方案的示出如图10所示的VR/MR系统的部件的框图。

本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。

“包括”,该术语是开放式的。如在权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元…的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。

“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35U.S.C.§112的第六段。此外,“被配置为”可包括由软件或固件(例如,FPGA或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。

“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。

“基于”或“取决于”,如本文所用,这些术语用于描述影响确定的一个或多个因素。这些术语不排除可影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于B来确定A”。在这种情况下,B为影响A的确定的因素,此类短语不排除A的确定也可基于C。在其他实例中,可仅基于B来确定A。

“或”,在权利要求书中使用时,术语“或”被用作包含性的或,而不是排他性的或。例如,短语“x、y或z中的至少一个”表示x、y和z中的任何一个以及它们的任何组合。

具体实施方式

描述了视频编码系统的各种实施方案。该视频编码系统的实施方案可以以低延迟来编码高分辨率视频源以通过通信链路(例如,无线链路)传输到设备以用于解码和显示。该视频编码系统的实施方案还可提供被传输到设备的编码视频的适度降级,以在变化条件(诸如通信链路的信道容量的变化)下维持期望的帧速率。

该视频编码系统的示例性应用是在虚拟或混合现实系统中,其中包含虚拟内容的视频帧被渲染、编码并传输到设备以用于解码和显示。描述了虚拟或混合现实系统(本文称为VR/MR系统)的实施方案,其中可以实现视频编码系统的实施方案。在一些实施方案中,VR/MR系统可包括设备(例如,平板电脑或平板设备、智能电话、或由用户佩戴的头戴式耳机、头盔、护目镜或眼镜,在本文中称为头戴式显示器(HMD)),以及单独的计算设备,在本文中称为基站。在一些实施方案中,设备和基站可各自包括无线通信技术,该无线通信技术允许设备和基站经由无线连接来通信和交换数据。在一些实施方案中,设备可包括收集关于用户的环境的信息(例如,视频、深度信息、照明信息等)和关于用户的信息(例如,用户的表情、眼睛移动、手势等)的传感器。由传感器收集的信息可经由无线连接传输至基站。基站可包括软件和硬件(例如,处理器(片上系统(SOC)、CPU、图像信号处理器(ISP)、图形处理单元(GPU)、编码器/解码器(编解码器)等)、存储器等),该软件和硬件被配置为至少部分地基于经由无线连接从设备接收的传感器信息来生成和渲染包括虚拟内容的帧。基站还可包括如本文所述的视频编码系统的实施方案,该视频编码系统可预过滤、压缩所渲染的帧并将其传输到设备以用于经由无线连接进行显示。

在一些实施方案中,VR/MR系统可实现在设备和基站之间提供高度定向无线链路的专有无线通信技术。在一些实施方案中,无线通信技术的定向性和带宽可支持同时与基站通信的多个设备,从而使得多个用户能够同时在协同定位的环境中使用该系统。然而,在一些实施方案中,可支持其它商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。

在无线链路上要考虑的主要约束包括带宽和延迟。VR/MR系统的目标是提供高分辨率,宽视场(FOV)虚拟显示(以帧速率向用户提供高质量VR/MR视图)。另一个目标是使基站渲染帧的时间与设备显示帧的时间之间的延迟最小化。然而,无线链路的信道容量可随时间而变化,并且因此无线链路可仅支持在任何给定时间传输的特定量的信息。

本文描述了各种方法和装置,这些方法和装置可由视频编码系统实现以维持通过无线链路的目标帧率并且最小化帧渲染、传输和显示中的延迟。此外,该方法和装置可提供传输到设备的编码视频的适度降级,以在变化条件(诸如通信链路的信道容量的变化)下维持期望的帧速率。

在一些实施方案中,视频编码系统可以在编码之前对像素数据执行小波变换,以将像素数据分解成频带。然后将频带组织成块,该块提供给基于块的编码器以用于编码/压缩。作为示例,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,然后可以将该频率数据块发送到编码器(例如,高效视频编码(HEVC)编码器)以进行编码。然后将编码的频率数据发送至无线接口,该无线接口对编码的频率数据进行分组并将该分组传输至接收设备(例如,HMD、平板电脑或平板设备、智能电话等)。在接收设备上,编码数据被解分组并传递通过基于块的解码器以恢复频带。然后对所恢复的频带执行小波合成以重建像素数据以用于显示。

虽然总体上描述了其中小波变换是应用于来自视频帧的每个像素块的两级小波分解的实施方案,但是在各种实施方案中,小波分解可以是任意数量的级别(例如,一个级别、两个级别、三个级别、四个级别等),并且可以进行调整以权衡编码图像的质量与要编码的块的复杂性。

在一些实施方案中,视频编码系统可以执行基于切片的渲染、编码和传输。渲染、编码和传输整个帧可具有延迟和存储器影响,因为每个帧需要被完成、存储,然后被传输至VR/MR系统的下一阶段。在基于切片的渲染中,基站可渲染并编码帧的部分(称为切片)并且在编码的切片准备好时将该编码的切片传输至设备,而不是在基站中渲染和编码整个帧并将渲染的帧传输至设备。切片可以例如是一行128×128块,或者是两行或更多行块。基于切片的渲染和编码可有助于减少延迟,并且还可减少缓冲所需的内存量,这可减少芯片或处理器上的内存占用量以及功率需求。

在一些实施方案中,视频编码系统可以执行基于图块的渲染、编码和传输。在基于图块的渲染、编码和传输中,每个切片可被分成多个图块(例如,四个图块),并且基站可渲染和编码图块并在编码的图块准备好时将其传输到设备。

在一些实施方案中,视频编码系统可以使用单个编码器执行基于图块的编码以处理来自每个切片的图块。然而,在一些实施方案中,视频编码系统可使用多个编码器来执行基于图块的编码以处理来自每个切片的相应图块。例如,在一些实施方案中,每个切片可被分成四个图块,每个图块包括多个128×128块,并且两个编码器(e0和e1)可对来自每个切片的两个图块进行操作(例如,e0对t0和t1进行操作;e1对t2和t3进行操作)。每个编码器可在其两个图块之间多路复用来自不同频带的块的处理,以允许来自相同频带的块的处理之间的16个时间单位。通过多路复用两个图块之间的块的处理,可以适当地处理频带中的块之间的依赖性。虽然描述了其中每个切片被分成四个图块并且两个编码器对来自每个切片的相应图块进行操作的实施方案,但是在一些实施方案中,切片可被分成更多图块(例如,六个或八个图块),并且在一些实施方案中可使用更多编码器(例如,三个或四个编码器)。

在一些实施方案中,视频编码系统可以在小波变换之前对帧中的像素数据执行预过滤。例如,预过滤可在执行小波变换、编码以及通过无线链路到设备的帧传输之前减小由基站渲染的帧的分辨率,这可帮助改善压缩,并且可减少无线链路上的延迟和带宽使用。

在设备是HMD的一些实施方案中,预过滤可以包括在小波变换之前对基站上的帧执行透镜翘曲。执行该透镜翘曲以校正由透镜在HMD上引入的图像的失真(通过该HMD观察图像),从而改善图像的质量。在一些实施方案中,HMD可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接将透镜翘曲数据提供给基站。然后,基站可基于该HMD的透镜翘曲数据对帧执行透镜翘曲。在常规VR/MR系统中,在解码之后和显示之前,对HMD执行透镜翘曲。在预过滤器阶段中对基站执行透镜翘曲可在执行小波变换和编码之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线链路上的延迟和带宽使用。此外,通过在预过滤器阶段中对基站执行透镜翘曲而不是在解码之后对HMD执行透镜翘曲,图像数据的过滤可能仅需要执行一次,这与在编码之前对基站执行过滤以降低分辨率以及然后对HMD执行透镜翘曲过滤相反。

在一些实施方案中,预过滤可包括过滤以降低外围区域中的分辨率,同时维持中心凹形区域中的较高分辨率。在该方法中,从设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。人眼在中心凹区域中可感知到比在外围区域中高的分辨率。因此,帧的对应于中心凹的区域(称为中心凹形区域)可至少部分地基于所确定的注视方向来识别。在一些实施方案中,可基于对人类视觉系统的了解来预过滤外围区域(即,帧的在中心凹形区域之外的部分)以减少信息,例如通过过滤高频信息和/或增加色彩压缩。在一些实施方案中,应用于外围区域的过滤的量可增加朝向帧的周边延伸。外围区域的预过滤可有助于提供改进的帧压缩。

图1是示出根据至少一些实施方案的在编码之前使用小波变换将像素数据分解成频带的视频编码系统120的框图。VR/MR系统10可包括至少一个设备150(例如,平板电脑或平板设备、智能电话、或HMD,诸如可由用户佩戴的头戴式耳机、头盔、护目镜或眼镜)和计算设备100(本文称为基站)。基站100渲染包括虚拟内容的VR帧或MR帧,对帧进行编码,并且通过无线连接180将编码的帧传输到设备150以供设备150解码和显示。

在一些实施方案中,设备150可包括收集关于用户190的环境的信息(例如,视频、深度信息、照明信息等)和关于用户190的信息(例如,用户的表情、眼睛移动、注视方向、手势等)的传感器160。设备150可经由无线连接180将由传感器160收集的信息中的至少一些信息传输到基站100。该基站100可至少部分地基于从传感器160获得的各种信息来渲染包括虚拟内容的供设备150显示的帧,编码该帧,并且经由无线连接180将编码的帧传输至设备150以供解码和向用户显示。

基站100和设备150可实现允许基站100和设备150经由无线连接180通信并交换数据的无线通信技术。在一些实施方案中,可根据在设备150和基站100之间提供高度定向无线链路的专有无线通信技术来实现无线连接180。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。

VR/MR系统10中的设备150和基站100之间的无线连接180上要考虑的主要约束包括带宽和延迟。例如,在一些实施方案中,目标是以为用户提供高质量VR/MR视图的帧速率来向用户提供高分辨率、宽视场(FOV)虚拟显示。另一个目标是使设备150捕获视频帧的时间与设备150显示基于视频帧的渲染VR/MR帧的时间之间的延迟最小化。

基站100可包括如本文所述的用于渲染、过滤、编码和传输视频和/或图像的各种硬件部件,例如各种类型的处理器、集成电路(IC)、中央处理单元(CPU)、图形处理单元(GPU)、图像信号处理器(ISP)、编码器/解码器(编解码器)等。基站100可包括但不限于GPU渲染110部件、无线接口130部件、以及视频编码系统120,该视频编码系统可包括实现各种方法的一个或多个硬件部件,这些方法可有助于维持通过无线连接180的目标帧速率并使帧渲染、编码、传输和显示的延迟最小化。视频编码系统120可包括但不限于预过滤器122部件(例如,N信道过滤器组)、小波变换124部件和编码器126部件。

GPU渲染110可包括可渲染帧以供设备150显示的一个或多个硬件部件,该硬件部件包括至少部分地基于从传感器160获得的各种信息的虚拟内容。

在一些实施方案中,视频编码系统120可以包括在执行小波变换124之前预过滤122渲染帧中的像素数据的一个或多个硬件部件。预过滤器122可例如在执行小波变换124、编码126以及通过无线连接180到设备150的传输之前减小在基站100上渲染的帧的分辨率,这可帮助改善压缩,并且可减少无线连接180上的延迟和带宽使用。

在一些实施方案中,预过滤器122可在小波变换124之前对基站100上的帧执行透镜翘曲。执行透镜翘曲以校正由透镜在设备150上引入的图像的失真(通过该设备观察图像),从而改善图像的质量。在一些实施方案中,设备150可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接180将透镜翘曲数据提供给基站100。然后,视频编码系统120的预过滤器122部件可以基于该设备150的透镜翘曲数据对帧执行透镜翘曲。在常规VR/MR系统中,在解码之后和显示之前,对设备150执行透镜翘曲。在预过滤器122阶段中对基站100执行透镜翘曲可在执行小波变换124和编码126之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线连接180上的延迟和带宽使用。此外,通过在预过滤器122阶段中对基站100执行透镜翘曲而不是在解码之后对设备150执行透镜翘曲,图像数据的过滤可能仅需要执行一次,这与在编码126之前对基站100执行过滤以降低分辨率以及然后对设备150执行透镜翘曲过滤相反。

在一些实施方案中,预过滤器122还可以应用一个或多个过滤器以降低外围区域中的分辨率,同时维持中心凹形区域中的较高分辨率。在该方法中,从设备150获得的注视跟踪信息可用于识别用户当前正在查看的方向。人眼在中心凹区域中可感知到比在外围区域中高的分辨率。因此,帧的对应于中心凹的区域(称为中心凹形区域)可至少部分地基于所确定的注视方向来识别。在一些实施方案中,可基于对人类视觉系统的了解预过滤外围区域(即,帧的在中心凹形区域之外的部分)来减少信息,例如通过过滤高频信息和/或增加色彩压缩。在一些实施方案中,应用于外围区域的过滤的量可增加朝向帧的周边延伸。外围区域的预过滤可有助于提供改进的帧压缩。

在一些实施方案中,视频编码系统120的小波变换124部件可包括一个或多个硬件部件(例如,N信道过滤器组),该一个或多个硬件部件在编码之前对像素数据执行小波变换以将像素数据分解成频带。然后将频带组织成块,该块提供给基于块的编码器126以用于编码/压缩。作为示例,如图3A至图3C所示,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,然后可以将该频率数据块发送到基于块的编码器(例如,高效视频编码(HEVC)编码器)126以进行编码。然后将编码的频率数据发送至由一个或多个硬件部件实现的无线接口130,该无线接口对数据进行分组并通过无线连接180将分组传输到设备150。

设备150可包括如本文所述的用于解码和显示视频和/或图像的各种硬件部件,例如各种类型的处理器、集成电路(IC)、中央处理单元(CPU)、图形处理单元(GPU)、图像信号处理器(ISP)、编码器/解码器(编解码器)等。设备150可以包括但不限于无线接口152、解码器154部件(例如,高效视频编码(HEVC)解码器)、小波合成156部件和显示器158部件。在设备150上,无线接口152接收由基站100通过无线连接180传输的分组。编码数据被解分组并传递通过基于块的解码器154(例如,高效视频编码(HEVC)解码器)以恢复频带。然后对所恢复的频率数据执行小波合成156以重建像素数据以用于显示158。

在一些实施方案中,视频编码系统120可以执行基于切片的渲染、编码和传输。渲染、编码和传输整个帧可具有延迟和存储器影响,因为每个帧需要被完成、存储,然后被传输至VR/MR系统10的下一阶段。在基于切片的渲染中,基站100可渲染并编码帧的部分(称为切片)并且在编码的切片准备好时将该编码的切片传输至设备150,而不是在基站100中渲染和编码整个帧并将渲染的帧传输至设备150。切片可以例如是一行128×128块。基于切片的渲染和编码可有助于减少延迟,并且还可减少缓冲所需的内存量,这减少芯片或处理器上的内存占用量以及功率需求。

在一些实施方案中,视频编码系统120可以执行基于图块的渲染、编码和传输。在基于图块的渲染、编码和传输中,每个切片可被分成多个图块(例如,四个图块),并且基站100可渲染和编码图块并在编码的图块准备好时将其传输到设备150。

在一些实施方案中,视频编码系统120可以使用单个编码器126执行基于图块的渲染、编码和传输,以处理来自每个切片的图块。然而,在一些实施方案中,视频编码系统120可使用多个编码器126来执行基于图块的编码以处理来自每个切片的相应图块。图2示出了根据至少一些实施方案的包括并行处理来自渲染帧的图块的多个编码器(在该示例中为两个编码器226A和226B)的视频编码系统220。

基站200的GPU渲染210部件可包括一个或多个GPU和/或渲染帧(或帧切片)以用于显示的其他部件。帧可被分成切片,例如如图3A所示。如图3A所示,每个切片可被分成多个图块(在该示例中为四个),每个图块包括多个块。图3B示出了包括四个128×128块的示例性图块。然而,在一些实施方案中可使用其他尺寸(例如,64×64、32×32等)的块,并且图块可包括更多或更少的块。

然后,视频编码系统220的预过滤器222和小波变换224部件可以在编码226之前处理每个图块。在一些实施方案中,视频编码系统220可以包括用于处理每个图块的单独的预过滤器222部件和小波变换224部件。在该示例中,预过滤器222A部件和小波变换224A部件处理图块0,预过滤器222B部件和小波变换224B部件处理图块1,预过滤器222C部件和小波变换224C部件处理图块2,并且预过滤器222D部件和小波变换224D部件处理图块3。预过滤器222部件执行如本文所述的图块的预过滤,并且小波变换224部件将图块分解成如本文所述的频带。然而,在一些实施方案中,视频编码系统220可包括处理图块的单个预过滤器222部件和单个小波变换224部件。在一些实施方案中,视频编码系统220可包括多个(例如,2个)预过滤器222部件和多个(例如,2个)小波变换224部件,每个小波变换部件处理多个(例如,2个)图块。

两个编码器226A和226B可对来自每个切片的两个图块进行操作(例如,编码器226A对图块0和图块1进行操作;编码器226B对图块2和图块3进行操作)。每个编码器226可在其两个图块之间多路复用来自不同频带的块(即,在图3C中示出的16个32×32块)的处理,以允许来自相同频带的块的处理之间的16个时间单位。通过多路复用两个图块之间的块的处理,可以适当地处理相同频带中的块之间的依赖性。

虽然描述了其中每个切片被分成四个图块并且两个编码器对来自每个切片的相应图块进行操作的实施方案,但是在一些实施方案中,切片可被分成更多图块(例如,六个或八个图块),并且在一些实施方案中可使用更多编码器(例如,三个、四个或更多个编码器)。

图3C示出了根据至少一些实施方案的对存储像素数据的像素块执行小波变换以在编码之前生成频带数据。在该示例中,通过小波变换324部件对128×128像素块300应用两级小波分解,以生成表示七个频带的十六个32×32频率数据块302。然后将频率块302提供给编码器326以用于编码。例如,频率块302可以由小波变换324部件写入缓冲器,并由编码器326部件从缓冲器读取。

在频率块302的标签中,字母L表示低通过滤器,并且字母H表示高通过滤器。标有两个字母的块302表示一级(2D)小波变换或分解。在标记有两个字母(表示七个频带LH、HL和HH中的三个频带)的块302中,第一字母表示首先执行的竖直过滤器(高或低),并且第二字母表示其次执行的水平过滤器(高或低)。标有四个字母的块302表示二级小波变换或分解。在标记有四个字母的块302中,前两个字母(LL)指示首先存在竖直低通过滤器,然后是水平低通过滤器;后两个字母指示然后对所得LL块进行四路过滤,LL、LH、HL和HH(从而示出七个频带中的四个频带(LLLL、LLLH、LLHL和LLHH)。

将像素数据分解成如图3C所示的频带允许编码器326将频带作为单独的流进行缓冲和处理。将频带作为单独的流处理允许编码器326部件多路复用独立流的处理。在基于块的编码方法诸如HEVC编码中,在多个阶段处在块处理流水线中处理块(称为编码树单元(CTU));两个或更多个块可在给定时钟周期处处于流水线的不同阶段,并且该块随着该时钟周期移动通过流水线。给定块的处理可依赖于一个或多个先前处理的相邻块,例如给定块上方的行中的一个或多个块和/或给定块左侧的块。通过多路复用频带数据流的处理,编码器326将给定流中的块的处理间隔开,从而提供附加时钟周期以处理给定块所依赖的相邻块。例如,当给定块到达依赖于先前处理的相邻块的阶段时,给定块左侧的块可在流水线中的给定块之前若干阶段。这允许编码器326更好地处理对先前处理的块的依赖性,并且减少或消除在依赖于相邻块的阶段处处理给定块之前等待流水线中的相邻块的处理完成的需要。

此外,如图3C所示,将像素数据分解成频带允许由编码器326和无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器326和无线接口可利用该优先级排序。例如,在一些实施方案中,可在不同频带上使用不同的压缩技术,其中更积极的压缩应用于较低优先级带,并且更保守的压缩应用于较高优先级带。作为另一个示例,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备(例如,来自HMD)的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器326和无线接口可将较低频带中的一个或多个较低频带的编码和传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。

如上所述,小波变换将图像分解成频带。在一些实施方案中,这可用于将相同的信号发送到具有不同分辨率的显示器。作为示例,假设应用二级小波分解将信号分解成七个频带。如果发送了频带中的四个频带(LLLL、LLLH、LLHL和LLHH),则频带可按较小的视觉质量被重建至初始预期分辨率。作为另外一种选择,频带也可以以1/4分辨率(每个维度1/2)重建,这可适用于具有较小显示分辨率的显示面板。

图4是根据至少一些实施方案的用于如图1和图2所示的包括视频编码系统的VR/MR系统的操作的方法的高级流程图。如400处所指示,设备通过无线连接将数据发送至基站。如410处所指示,基站至少部分地基于从设备接收的数据来渲染包括虚拟内容的帧。如420处所指示,基站压缩渲染的数据并通过无线连接将压缩的数据发送至设备。如430处所指示,设备解压缩并显示虚拟内容以生成3D虚拟视图以供用户查看。如从430返回到400的箭头所指示,只要用户正在使用VR/MR系统,该方法就继续。

在一些实施方案中,基站可渲染并编码帧的部分(称为切片)并且在编码的切片准备好时将该编码的切片传输至设备,而不是在基站中渲染和编码整个帧并将渲染的帧传输至设备。切片可以例如是一行128×128块。在一些实施方案中,视频编码系统可以执行基于图块的渲染、编码和传输。在基于图块的渲染、编码和传输中,每个切片可被分成多个图块,每个图块包括一个或多个块(例如,四个图块,每个图块包括四个块),并且基站可渲染和编码图块并在编码的图块准备好时将其传输到设备。

图5是根据至少一些实施方案的用于如图1所示的视频编码系统的操作的方法的流程图。图5的方法可例如在图4的420处执行。图5的方法假定正在执行基于切片的编码和传输。然而,在一些实施方案中,可执行基于图块的编码和传输。

如510处所指示,预过滤器部件将透镜翘曲和/或中心凹过滤器应用于帧的切片中的像素块。在一些实施方案中,预过滤可以包括在小波变换之前对基站上的帧执行透镜翘曲。执行透镜翘曲以校正由透镜在设备上引入的图像的失真(通过该设备观察图像),从而改善图像的质量。在一些实施方案中,设备可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接将透镜翘曲数据提供给基站。然后,基站可基于该设备的透镜翘曲数据对帧执行透镜翘曲。在预过滤器阶段中对基站执行透镜翘曲可在执行小波变换和编码之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线链路上的延迟和带宽使用。此外,通过在预过滤器阶段中对基站执行透镜翘曲而不是在解码之后对设备执行透镜翘曲,图像数据的过滤可能仅需要执行一次,这与在编码之前对基站执行过滤以降低分辨率以及然后对设备执行透镜翘曲过滤相反。

在一些实施方案中,510处的预过滤还可包括过滤以降低外围区域中的分辨率,同时维持中心凹形区域中的较高分辨率。在一些实施方案中,从设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。帧的对应于中心凹的区域(称为中心凹形区域)可至少部分地基于所确定的注视方向来识别。可基于对人类视觉系统的了解预过滤外围区域(即,帧的在中心凹形区域之外的部分)来减少信息,例如通过过滤高频信息和/或增加色彩压缩。外围区域的预过滤可有助于提供改进的帧压缩。

如520处所指示,小波变换部件将小波变换技术应用于像素块以将像素数据分解成N个(例如,7个)频带。然后将频带组织成块,该块提供给基于块的编码器以用于编码/压缩。作为示例,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,例如如图3C所示。

如530处所指示,编码器将编码技术应用于块中的频带以压缩数据。编码器可例如为高效视频编码(HEVC)编码器。然而,在一些实施方案中,可使用其他编码技术。如元素520处所指示,将像素数据分解成频带允许编码器将频带作为单独的流进行缓冲和处理。将频带作为单独的流处理允许编码器部件多路复用独立流的处理。在基于块的编码方法诸如HEVC编码中,在多个阶段处在流水线中处理块(称为编码树单元(CTU));两个或更多个块可在给定时钟周期处处于流水线的不同阶段,并且该块随着该时钟周期移动通过流水线。给定块的处理可依赖于一个或多个先前处理的相邻块,例如给定块上方的行中的一个或多个块和/或给定块左侧的块。通过多路复用流的处理,编码器将给定流中的块的处理间隔开,从而提供附加时钟周期以处理给定块所依赖的相邻块。例如,当给定块到达依赖于先前处理的相邻块的阶段时,给定块左侧的块可在流水线中的给定块之前若干阶段。这允许编码器更好地处理对先前处理的块的依赖性,并且减少或消除在依赖于相邻块的阶段处处理给定块之前等待流水线中的相邻块的处理完成的需要。

如540处所指示,无线接口对压缩数据进行分组,并通过无线连接将分组发送至设备。

如元素520处所指示,将像素数据分解成频带允许在元素530处由编码器对频带进行优先化,并且在元素540处由无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器和无线接口可利用该优先级排序。例如,在一些实施方案中,可在不同频带上使用不同的压缩技术,其中更积极的压缩应用于较低优先级带,并且更保守的压缩应用于较高优先级带。作为另一个示例,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备(例如,来自HMD)的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器和无线接口可将较低频带中的一个或多个较低频带的编码和传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。

在550处,如果存在待编码和传输的更多切片,则该方法返回到元素510以处理下一个切片。否则,在560处,如果存在要编码和传输的更多帧,则该方法返回到元素510以开始处理下一个帧。

图6是根据至少一些实施方案的用于如图2所示的视频编码系统的操作的方法的流程图。图6的方法可例如在图4的420处执行。在图6的方法中,视频编码系统可使用多个编码器来执行基于图块的编码以处理来自每个切片的相应图块。

如600处所指示,渲染引擎渲染包括多个图块(在该示例中为四个图块)的切片,每个图块包括多个像素块(在该示例中为四个128×128像素块)。

如610处所指示,预过滤器部件将透镜翘曲和/或中心凹过滤器应用于切片。在一些实施方案中,预过滤可以包括在小波变换之前对基站上的帧执行透镜翘曲。执行透镜翘曲以校正由透镜在设备上引入的图像的失真(通过该设备观察图像),从而改善图像的质量。在一些实施方案中,设备可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接将透镜翘曲数据提供给基站。然后,基站可基于该设备的透镜翘曲数据对帧执行透镜翘曲。在预过滤器阶段中对基站执行透镜翘曲可在执行小波变换和编码之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线链路上的延迟和带宽使用。此外,通过在预过滤器阶段中对基站执行透镜翘曲而不是在解码之后对设备执行透镜翘曲,图像数据的过滤可能仅需要执行一次,这与在编码之前对基站执行过滤以降低分辨率以及然后对设备执行透镜翘曲过滤相反。

在一些实施方案中,610处的预过滤还可包括过滤以降低外围区域中的分辨率,同时维持中心凹形区域中的较高分辨率。在一些实施方案中,由设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。帧的对应于中心凹的区域(称为中心凹形区域)可至少部分地基于所确定的注视方向来识别。可基于对人类视觉系统的了解预过滤外围区域(即,帧的在中心凹形区域之外的部分)来减少信息,例如通过过滤高频信息和/或增加色彩压缩。外围区域的预过滤可有助于提供改进的帧压缩。

在一些实施方案中,视频编码系统可包括处理图块的单个预过滤器部件。在一些实施方案中,视频编码系统可包括用于处理每个图块的单独预过滤器部件。在一些实施方案中,视频编码系统可包括各自处理多个(例如,2个)图块的多个(例如,2个)预过滤器部件。

如620处所指示,小波变换部件将小波变换技术应用于切片中的像素块以将像素数据分解成N个(例如,7个)频带。然后将频带组织成块(例如,CTU),该块可提供给基于块的编码器以用于编码/压缩。作为示例,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,例如如图3C所示。

在一些实施方案中,视频编码系统可以包括处理图块的单个小波变换部件。在一些实施方案中,视频编码系统可以包括用于处理每个图块的单独小波变换部件。在一些实施方案中,视频编码系统可包括各自处理多个(例如,2个)图块的多个(例如,2个)小波变换部件。

在图6的方法中,示例性视频编码系统包括两个编码器,这两个编码器被配置为对来自并行在元素620处生成的切片中的不同切片的频率数据块进行编码。例如,第一编码器可被配置为对来自切片0和切片1的块进行编码,并且第二编码器可被配置为对来自切片2和切片3的块进行编码。如630A处所指示,第一编码器将编码技术应用于图块0和图块1的块中的频带,从而多路复用来自两个不同图块之间的不同频带的块的处理。如630B处所指示,第二编码器将编码技术应用于图块2和图块3的块中的频带,从而多路复用来自两个不同图块之间的不同频带的块的处理。

编码器可例如为高效视频编码(HEVC)编码器。然而,在一些实施方案中,可使用其他编码技术。如元素620处所指示,将像素数据分解成频带允许编码器在元素630A和630B处将频带作为单独的流进行缓冲和处理。将频带作为单独的流处理允许编码器多路复用独立流的处理。在基于块的编码方法诸如HEVC编码中,在多个阶段处在流水线中处理块(称为编码树单元(CTU));两个或更多个块可在给定时钟周期处处于流水线的不同阶段,并且该块随着该时钟周期移动通过流水线。给定块的处理可依赖于一个或多个先前处理的相邻块,例如给定块上方的行中的一个或多个块和/或给定块左侧的块。通过多路复用流的处理,编码器将给定流中的块的处理间隔开,从而提供附加时钟周期以处理给定块所依赖的相邻块。例如,当给定块到达依赖于先前处理的相邻块的阶段时,给定块左侧的块可在流水线中的给定块之前若干阶段。这允许编码器更好地处理对先前处理的块的依赖性,并且减少或消除在依赖于相邻块的阶段处处理给定块之前等待流水线中的相邻块的处理完成的需要。

如640处所指示,无线接口对在元素530处由编码器所生成的压缩数据进行分组,并通过无线连接将分组发送至设备。如从650返回到600的箭头所指示,只要用户正在使用VR/MR系统,该方法就继续。

如元素620处所指示,将像素数据分解成频带允许在元素630A和630B处由编码器对频带进行优先化,并且在元素640处由无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器和无线接口可利用该优先级排序。例如,在一些实施方案中,可在不同频带上使用不同的压缩技术,其中更积极的压缩应用于较低优先级带,并且更保守的压缩应用于较高优先级带。作为另一个示例,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备(例如,来自HMD)的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器和无线接口可将较低频带中的一个或多个较低频带的编码和传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。

虽然描述了其中每个切片被分成四个图块并且两个编码器对来自每个切片的相应图块进行操作的实施方案,但是在一些实施方案中,切片可被分成更多图块(例如,六个或八个图块),并且在一些实施方案中可使用更多编码器(例如,三个或四个编码器)。

优先化频带传输

图1至图6示出了视频编码系统,其中对像素数据执行预过滤,然后进行小波变换以将预过滤的像素数据分解成频带,之后由基于块的编码器进行编码,该基于块的编码器与通过低延迟无线连接将编码的频率数据传输到接收设备(例如,HMD)的无线接口交接。在一些实施方案中,视频编码系统的编码器和无线接口部件可利用数据向频带的分解来优化数据的压缩和传输,以例如通过无线连接提供适度降级。

如图3C所示,将像素数据分解成频带允许由编码器和无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器和无线接口可利用该优先级排序。

例如,可以利用频带的优先级排序来提供VR/MR系统中无线连接的适度降级。可监测无线连接的性能,并且可考虑来自设备(例如,HMD)的反馈,以跟踪无线连接的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器和无线接口可将较低频带中的一个或多个较低频带的编码和/或传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。

在一些实施方案中,首先通过预过滤器(例如,N信道过滤器组)发送像素数据。在一些实施方案中,预过滤器可减少图像的不在中心凹形区域中的区域中的高频内容,使得可在中心凹形区域中维持高保真度,并且在非中心凹形(外围)区域中应用人类视觉系统不能检测到的较低保真度。然后通过两级小波分解发送预过滤器的输出,以产生多个(例如,七个)频带,例如作为如图3C所示的频率块。

然后由编码器压缩频带的频率块。编码器可将编码频带分类为多个(例如,五个)优先级级别。编码器可用指示频率块的帧/切片/图块/块、块中表示的频带、频带的优先级和定时信息的元数据来标记每个频率块。定时信息可例如包括编码器生成频率块的时间,以及应当在设备(例如,HMD)处接收频率块的时间(称为“截止期限”)。

无线接口可对编码的频率块进行分组以用于通过无线连接进行传输。一个或多个编码的频率块可被包括在每个分组中。在一些实施方案中,根据优先级级别对编码的频率块进行分组。然后,基站的无线接口可根据分组中的编码频率块的优先级级别和/或根据分组中的频率块的截止期限来传输或丢弃分组。

在一些实施方案中,无线接口可基于优先级和/或截止期限来实现用于丢弃分组的不同策略。作为示例,在一些实施方案中,无线接口可严格地基于优先级丢弃分组。作为另一个示例,在一些实施方案中,无线接口可检查每个分组的截止期限,并根据截止期限和优先级两者丢弃分组。作为又一个示例,在一些实施方案中,一旦具有特定优先级的切片的分组被丢弃,无线接口就可决定丢弃所有较低优先级分组,因为具有较低优先级的其他分组可能不会被成功地传输,从而释放资源以用于传输。

在一些实施方案中,为了实现硬延迟要求,每个分组的定时信息可包括指示分组中的频率块何时由编码器编码的时间戳和/或分组必须在设备处被接收的截止时间。如果在从基站的无线接口到设备的无线接口的传输中错过了截止期限,则分组可在基站处或在设备处被丢弃。

在一些实施方案中,除了将频带分成优先级级别之外,还可基于对应像素是在帧的中心凹形区域中还是在外围区域中来以不同优先级标记频带。例如,参见图3C,LLLL频带通常可被标记为优先级1,但是在外围区域中,LLLL频带可替代地用优先级2或3来标记。作为另一个示例,参见图3C,HH频带通常可被标记为优先级5,但在中心凹形区域中,HH频带可用优先级4或3来标记。

在一些实施方案中,基站的无线接口可通过使成功传输的优先级级别的最小数量最大化来优化分组的传输。这可通过根据信道带宽可用性将不同的调制编码方案分配给不同优先级级别中的每个优先级级别来实现。在一些实施方案中,编码器可向无线接口发送对应于特定调制编码方案的优选分组错误率的信号以使质量最大化。

在一些实施方案中,如果分组的截止期限比属于下一个图块或切片的较高优先级分组更接近到期,则基站的无线接口可通过从图块或切片的末端传输较低优先级的分组来优化分组的传输。

实施方案通常被描述为应用小波变换以将图像分成随后可被优先化的不同频带。然而,在一些实施方案中,可使用其他方法将图像分成频带。例如,在一些实施方案中,可应用傅里叶变换,该傅里叶变换将图像分解成不同的频带。可在傅里叶变换之后将频带分成不同优先级,并且可将基于优先级的视频编码方法应用于如本文所述的优先化频带。

图7是根据至少一些实施方案的示出如图1或图2中所示的视频编码系统的框图,其中对频带进行经优先化以用于通过无线连接进行传输。小波变换706部件对预过滤的像素块(例如,来自图块或切片的128×128块)执行两级小波分解,以将每个像素块分解成表示频带的频率块(在该示例中,十六个32×32个频率块表示七个频带B0-B6)。然后,基于块的编码器708部件可多路复用对应于七个频带的频率块(例如,32×32CTU)的编码。编码器708可输出被分类为从最高优先级到最低优先级的五个优先级级别P1-P5的压缩块。在该示例中,带0(LLLL)被输出为P1(最高优先级),带1(LLLH)和带2(LLHL)被输出为P2,带3(LLHH)被输出为P3,带4(LH)和带5(HL)被输出为P4,并且带6(HH)被输出为P5(最低优先级)。

图8A示出了根据至少一些实施方案的示例性压缩块。在一些实施方案中,编码器708可用指示块的帧/切片/图块/块、块中的压缩数据的频带(例如,B0-B6)、频带的优先级(例如,P1-P5)和定时信息的元数据来标记每个压缩块。定时信息可例如包括编码器708生成压缩块的时间,以及应当在设备处接收压缩块的时间(称为“截止期限”)。

无线接口710可对编码的频率块进行分组以用于通过无线连接传输到设备。图8B示出了根据至少一些实施方案的示例性分组。该分组可包括分组标头,该分组标头可例如包括关于分组数据有效载荷的信息。一个或多个压缩块可被包括在每个分组中。在一些实施方案中,可根据从最高优先级(P1)到最低优先级(P5)的优先级级别对压缩块进行分组。然后,基站的无线接口710可根据分组中的编码频率块的优先级级别和/或根据分组中的编码频率块的截止期限来传输或丢弃分组。在一些实施方案中,无线接口可基于优先级和/或截止期限来实现用于丢弃分组的不同策略。作为示例,在一些实施方案中,无线接口可严格地基于优先级丢弃分组。作为另一个示例,在一些实施方案中,无线接口可检查每个分组的截止期限,并根据截止期限和优先级两者丢弃分组。作为又一个示例,在一些实施方案中,一旦具有特定优先级的切片的分组被丢弃,无线接口就可决定丢弃所有较低优先级分组,因为具有较低优先级的其他分组可能不会被成功地传输,从而释放资源以用于传输。

在一些实施方案中,为了实现硬延迟要求,每个分组的定时信息可包括指示分组中的频率块何时由编码器708编码的时间戳和/或分组必须在设备处被接收的截止时间。如果在从基站的无线接口710到设备的无线接口的传输中错过了截止期限,则分组可在基站的无线接口处或在设备处被丢弃。

在一些实施方案中,除了如图7所示将频带分类为优先级级别之外,还可基于对应像素是在帧的中心凹形区域中还是在外围区域中来将频带分类为不同的优先级级别。例如,LLLL频带(频带0)通常可被标记为优先级1(P1),但是在外围区域中,LLLL频带可替代地被分类为P2或P3。作为另一个示例,HH频带(频带6)通常可被标记为优先级5(P5),但在中心凹形区域中,HH频带可替代地被分类为P4或P3。

图9是根据至少一些实施方案的用于如图7所示的视频编码系统的操作的方法的流程图。如900处所指示,视频编码系统的小波变换部件将像素数据分解成N个(例如,7个)频带。例如,在一些实施方案中,可以通过如图3C所示的两级小波分解将像素数据分解成七个频带。

如910处所指示,视频编码系统的编码器部件将编码技术应用于频带以压缩数据。如920处所指示,编码器用优先级和定时信息标记压缩频带数据,并将标记的数据提供给基站的无线接口。在一些实施方案中,编码器可将编码频带分类为从最高优先级到最低优先级的多个(例如,五个)优先级级别P1-P5,如图7所示。在一些实施方案中,除了如图7所示将频带分类为优先级级别之外,还可基于对应像素是在帧的中心凹形区域中还是在外围区域中来将频带分类为不同的优先级级别。在一些实施方案中,编码器可用指示块的帧/切片/图块/块、块中的压缩数据的频带(例如,B0-B6)、频带的优先级(例如,P1-P5)和定时信息的元数据来标记每个压缩块,如图8A所示。定时信息可例如包括编码器生成压缩块的时间,以及应当在设备处接收压缩块的时间(称为“截止期限”)。

如930处所指示,基站的无线接口对压缩数据进行分组并且基于优先级和定时信息通过无线连接将压缩数据发送至设备。在一些实施方案中,可根据从最高优先级(例如,P1)到最低优先级(例如,P5)的优先级级别对压缩块进行分组。然后,基站的无线接口可根据分组中的编码频率块的优先级级别来传输或丢弃分组。在一些实施方案中,无线接口可基于优先级和/或截止期限来实现用于丢弃分组的不同策略。作为示例,在一些实施方案中,无线接口可严格地基于优先级丢弃分组。作为另一个示例,在一些实施方案中,无线接口可检查每个分组的截止期限,并根据截止期限和优先级两者丢弃分组。作为又一个示例,在一些实施方案中,一旦具有特定优先级的切片的分组被丢弃,无线接口就可决定丢弃所有较低优先级分组,因为具有较低优先级的其他分组可能不会被成功地传输,从而释放资源以用于传输。

在一些实施方案中,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则无线接口可将较低频率、较高优先级频带(例如,P1至P3,如图7所示)中的一者或多者的传输优先化,并且减少、延迟或丢弃较高频率、较低优先级频带(例如,P4和P5,如图7所示)中的一者或多者的传输。在一些实施方案中,无线接口可基于优先级和/或截止期限来实现用于丢弃分组的不同策略。作为示例,在一些实施方案中,无线接口可严格地基于优先级丢弃分组。作为另一个示例,在一些实施方案中,无线接口可检查每个分组的截止期限,并根据截止期限和优先级两者丢弃分组。作为又一个示例,在一些实施方案中,一旦具有特定优先级的切片的分组被丢弃,无线接口就可决定丢弃所有较低优先级分组,因为具有较低优先级的其他分组可能不会被成功地传输,从而释放资源以用于传输。

在一些实施方案中,为了实现硬延迟要求,每个分组的定时信息可包括指示分组中的频率块何时由编码器编码的时间戳和/或分组必须在设备处被接收的截止时间。如果在从基站的无线接口到设备的无线接口的传输中错过了截止期限,则分组可在基站的无线接口处或在设备处被丢弃。

如通过从元素940返回到元素900的箭头所指示的,只要有数据要传输到设备,该方法就可以继续。

示例性VR/MR系统

图10示出了根据至少一些实施方案的可实现视频编码系统的示例性VR/MR系统2000。VR/MR系统2000可包括至少一个设备2150(例如,笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话、手持式计算设备或HMD,诸如可由用户佩戴的头戴式耳机、头盔、护目镜或眼镜)和计算设备2100(本文称为基站)。基站2100渲染包括虚拟内容的VR帧或MR帧,对该帧进行编码,并且通过无线连接2180将编码的帧传输到设备2150以用于由设备2150解码和显示。

基站2100和设备2150可各自包括允许基站2100和设备2150经由无线连接2180通信并交换数据的无线通信技术。在一些实施方案中,可根据在设备2150和基站2100之间提供高度定向无线链路的专有无线通信技术来实现无线连接2180。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。

在一些实施方案中,设备2150可包括收集关于用户的环境的信息(例如,视频、深度信息、照明信息等)和/或关于用户的信息(例如,用户的表情、眼睛移动、注视方向、手势等)的传感器。设备2150可经由无线连接2180将由传感器收集的信息中的至少一些信息传输到基站2100。基站2100可至少部分地基于从传感器获得的各种信息来渲染包括虚拟内容的供设备2150显示的帧,编码该帧,并且经由无线连接2180将编码的帧传输至设备2150以供解码和向用户显示。为了对帧进行编码和传输,基站2100可实现如图1至图9所示的视频编码系统。

图11是示出根据一些实施方案的如图10所示的示例性VR/MR系统中的功能部件和处理的框图。设备2150可以是但不限于笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话、手持计算设备或HMD,诸如头戴式耳机、头盔、护目镜或可由用户佩戴的眼镜。设备2150可包括可实现各种类型的虚拟或增强现实显示技术中的任一者的显示器2156部件或子系统。例如,HMD设备2150可包括近眼系统,该近眼系统在用户的眼睛前面的屏幕上显示左图像和右图像(该左图像和右图像由受试者查看),诸如DLP(数字光处理)、LCD(液晶显示器)和LCoS(硅上液晶)技术VR系统。作为另一个示例,HMD设备2150可包括直接视网膜投影仪系统,该直接视网膜投影仪系统逐像素地将左图像和右图像扫描到受试者的眼睛。为扫描图像,左投影仪和右投影仪生成光束,该光束被引导到位于用户的眼睛的前面的左反射部件和右反射部件(例如,椭球反射镜);反射部件将光束反射到用户的眼睛。为了创建三维(3D)效果,3D虚拟视图中的不同深度或距离处的虚拟内容在两个图像中作为距离的三角测量的函数向左或向右移位,其中较近的对象比较远的对象移位得更多。

设备2150还可包括控制器2154,该控制器被配置为实现如本文所述的VR/MR系统2000的设备侧功能。在一些实施方案中,设备2150还可包括存储器2170,该存储器被配置为存储可由控制器2154执行的VR/MR系统2000的设备2150部件的软件(代码2172),以及当在控制器2154上执行时可以由该软件使用的数据2174。在各种实施方案中,控制器2154可为包括一个处理器的单处理器系统、或包括若干个处理器(例如,两个、四个、八个或另一合适数量)的多处理器系统。控制器2154可包括被配置为实现任何合适的指令集架构的中央处理单元(CPU),并且可被配置为执行在该指令集架构中定义的指令。例如,在各种实施方案中,控制器2154可包括实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC、RISC或MIPSISA、或任何其他合适的ISA)中的任何指令集架构的通用处理器或嵌入式处理器。在多处理器系统中,每个处理器可共同实现相同的ISA,但不是必需的。控制器2154可采用任何微架构,包括标量、超标量、流水线、超流水线、无序、有序、推测性、非推测性等,或它们的组合。控制器2154可包括实现微码技术的电路。控制器2154可包括各自被配置为执行指令的一个或多个处理核心。控制器2154可包括一个或多个级别的高速缓存,该高速缓存可采用任何大小和任何配置(集合关联、直接映射等)。在一些实施方案中,控制器2154可包括至少一个图形处理单元(GPU),该至少一个图形处理单元可包括任何合适的图形处理电路。通常,GPU可被配置为将待显示对象渲染到帧缓冲区中(例如,包括整个帧的像素数据的帧缓冲区)。GPU可包括一个或多个图形处理器,该图形处理器可执行图形软件以进行部分或全部的图形操作或某些图形操作的硬件加速。在一些实施方案中,控制器2154可包括用于处理和渲染视频和/或图像的一个或多个其他部件,例如图像信号处理器(ISP)、编码器/解码器(编解码器)等。在一些实施方案中,控制器2154可包括至少一个片上系统(SOC)。

存储器2170可包括任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如mDDR3等,或SDRAM的低功率版本,诸如LPDDR2等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。在一些实施方案中,一个或多个存储器设备可以耦合到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,存储器设备可以与实现系统的集成电路在芯片堆叠配置、封装堆叠配置或者多芯片模块配置中安装。

在一些实施方案中,传感器2160可包括但不限于可用于跟踪用户的眼睛的位置和移动的一个或多个注视跟踪传感器(例如,具有IR照明源的IR相机)。在一些实施方案中,可存在两个注视跟踪传感器,其中每个注视跟踪传感器跟踪相应的眼睛。在一些实施方案中,由注视跟踪传感器收集的信息可用于由基站2100调整图像的渲染,和/或基于用户眼睛查看的方向和角度来调整通过设备2150的投影系统进行的图像的投影。例如,在一些实施方案中,在用户的眼睛当前查看的位置周围的区域中的图像的内容可用更多细节进行渲染,并且可处于比用户未查看的区域中的内容更高的分辨率,这允许可用的图像数据处理时间花费在由眼睛的中心凹区域查看的内容,而不是花费在由眼睛的外围区域查看的内容。同样地,用户未注视的区域中的图像的内容可比用户当前查看的点周围的区域的内容压缩得更多。在一些实施方案中,可存在两个注视跟踪传感器,其位于设备2150的内表面上,在使得传感器具有用户的眼睛中的相应眼睛的视图的位置处。然而,在各种实施方案中,可使用更多或更少的注视跟踪传感器,并且注视跟踪传感器可被定位在其他位置处。在示例性非限制性实施方案中,每个注视跟踪传感器可包括IR光源和IR相机,例如具有120FPS或更大的帧速率、70度的HFOV并且具有10毫米(mm)至80mm的工作距离400×400像素数相机。

在一些实施方案中,设备2150可包括至少一个惯性测量单元(IMU)2162,该惯性测量单元被配置为检测设备2150的位置、取向和/或运动并向设备2150的控制器2154和/或向基站2100提供检测到的位置、取向和/或运动数据。

设备2150还可包括无线接口2152,该无线接口被配置为经由无线连接2180与外部基站2100通信,以将传感器输入发送到基站2100,并且从基站2100接收压缩的渲染帧、切片或图块。在一些实施方案中,无线接口2152可实现在设备2150和基站2100之间提供高度定向无线链路的专有无线通信技术。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。

基站2100可以是经由无线接口2180通信地耦接到设备2150的外部设备(例如,计算系统、游戏控制台等)。基站2100可包括用于渲染、过滤、编码和传输视频和/或图像的各种类型的处理器(例如,SOC、CPU、ISP、GPU、编解码器和/或其他部件)中的一个或多个处理器。基站2100可至少部分地基于经由无线连接2180从传感器2160获得的各种输入来渲染包括虚拟内容的帧(每个帧包括左图像和右图像),使用如本文所述的视频编码系统过滤和压缩渲染的帧(或帧的切片),并且将压缩的帧或切片传输到设备2150以用于显示。

基站2100可为或可包括任何类型的计算系统或计算设备,诸如台式计算机、笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话、手持式计算设备、游戏控制器、游戏系统等。基站2100可包括控制器2110,该控制器包括实现VR/MR系统2000(包括如本文所述的视频编码系统)的基座侧功能的一个或多个处理器。基站2100还可包括存储器2120,该存储器被配置为存储可由基站控制器2110执行的VR/MR系统2000的基站部件的软件(代码2122),以及当在控制器2110上执行时可以由该软件使用的数据2124。

在各种实施方案中,基站控制器2110可为包括一个处理器的单处理器系统、或包括若干个处理器(例如,两个、四个、八个或另一合适数量)的多处理器系统。控制器2110可包括被配置为实现任何合适的指令集架构的中央处理单元(CPU),并且可被配置为执行在该指令集架构中定义的指令。例如,在各种实施方案中,控制器2110可包括实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC、RISC或MIPS ISA、或任何其他合适的ISA)中的任何指令集架构的通用处理器或嵌入式处理器。在多处理器系统中,每个处理器可共同实现相同的ISA,但不是必需的。控制器2110可采用任何微架构,包括标量、超标量、流水线、超流水线、无序、有序、推测性、非推测性等,或它们的组合。控制器2110可包括实现微码技术的电路。控制器2110可包括各自被配置为执行指令的一个或多个处理核心。控制器2110可包括一个或多个级别的高速缓存,该高速缓存可采用任何大小和任何配置(集合关联、直接映射等)。在一些实施方案中,控制器2110可包括至少一个图形处理单元(GPU),该至少一个图形处理单元可包括任何合适的图形处理电路。通常,GPU可被配置为将待显示对象渲染到帧缓冲区中(例如,包括整个帧的像素数据的帧缓冲区)。GPU可包括一个或多个图形处理器,该图形处理器可执行图形软件以进行部分或全部的图形操作或某些图形操作的硬件加速。在一些实施方案中,控制器2110可包括如本文所述的用于处理、渲染、过滤和编码视频和/或图像的一个或多个其他部件,例如各种类型的集成电路(IC)、图像信号处理器(ISP)、编码器/解码器(编解码器)等中的一者或多者。在一些实施方案中,控制器2110可包括至少一个片上系统(SOC)。

基站存储器2120可包括任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如mDDR3等,或SDRAM的低功率版本,诸如LPDDR2等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。在一些实施方案中,一个或多个存储器设备可以耦合到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,设备可以与实现系统的集成电路在芯片堆叠配置、封装堆叠配置或者多芯片模块配置中安装。

基站2100还可以包括一个或多个无线技术接口2130,其被配置为经由无线连接2180与设备2150通信,以从设备2150接收传感器输入,并且从基站2100向设备2150发送压缩的帧,切片或图块。在一些实施方案中,无线技术接口2130可实现在设备2150和基站2100之间提供高度定向无线链路的专有无线通信技术。在一些实施方案中,无线通信技术的定向性和带宽可支持同时与基站2100通信的多个设备2150,从而使得多个用户能够同时在协同定位的环境中使用系统2000。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。

在一些实施方案中,基站2100可被配置为至少部分地基于从设备2150接收的传感器2160输入来渲染帧并将帧传输到设备2150以向用户提供3D虚拟视图。在一些实施方案中,虚拟视图可包括渲染用户的环境,包括基于由一个或多个场景相机(例如,RGB(可见光)摄像机)捕获的视频来渲染用户的环境中的现实对象,该一个或多个场景相机实时捕获用户的环境的高质量、高分辨率视频以用于显示。在一些实施方案中,虚拟视图还可包括由基站2100渲染并与用户的现实环境的投影3D视图复合的虚拟内容(例如,虚拟对象、用于现实对象的虚拟标签、用户的化身等)。

虽然未在图10和图11中示出,但是,在一些实施方案中,VR/MR系统2000可包括一个或多个其他部件。例如,系统可包括光标控制设备(例如,鼠标),以用于在3D虚拟视图中移动虚拟光标以与虚拟内容进行交互。虽然图10和图11示出了单个设备2150,但在一些实施方案中,VR/MR系统2000可支持同时与基站2100通信的多个设备2150,从而使得多个用户能够同时在协同定位的环境中使用该系统。

在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。

相关技术
  • 基于优先级的视频编码和传输
  • 基于优先级的视频编码和传输
技术分类

06120115938401