3GPP眼中的XR及其技术特点

3GPP R18 支持了XR Services。XR需要高数据速率和低延迟通信,这也真是5G可以大展身手的地方。这篇就从3GPP的角度看下XR是什么以及XR有哪些技术特点。

Extended Reality (XR) 是指由计算机技术和可穿戴设备生成的所有现实与虚拟相结合的环境和人机交互技术。

实际上XR是不同类型现实的总称:

(1)虚拟现实 (VR) 是交付的视听场景的渲染版本。渲染旨在尽可能自然地模仿现实世界的视听感官刺激,让观察者或用户在应用程序定义的限制内移动。虚拟现实通常(但不一定)要求用户佩戴头戴式显示器 (HMD),用模拟的视觉组件完全替换用户的视野,除此之外还有戴上耳机以便为用户提供伴奏音频。通常还需要在 VR 中对用户进行某种形式的头部和运动跟踪,以允许更新模拟的视听组件,从而确保从用户的角度来看,VR场景及声源是与用户的运动保持一致,尽可能的保持真实。近几年来VR在游戏、影视、专业学习与训练、旅游、制造、军事等各个方面极大地影响了人类。实际产品如头戴式VR设备,手持式VR设备,体感式VR设备等等。VR主要体现的是虚拟,用户无法看到现实世界的物体和环境,通过VR设备让人置身于一个虚拟的环境中,得到不同的视觉体验。

例如商城中的VR游戏设备。

(2)增强现实 (AR) 是指向用户提供附加信息或人工生成的场景或内容,将其叠加在当前环境中而形成。此类附加信息或内容通常是实现在视觉或听觉上。用户对当前环境的观察可能是直接的,没有中间的感知、处理和渲染,也可能是间接的,用户对环境的感知通过传感器传递,并可能得到增强或处理。AR是在现实世界中叠加虚拟内容,用户可以看到现实世界和虚拟内容的结合。最常见的比如在服饰行业中,AR技术可以提供了虚拟试穿,消费者可以在虚拟环境中实时观察服装的效果,从而更准确地选择符合个人的产品。

(3) 混合现实 (MR) 是 AR 的一种高级形式,其中将一些虚拟元素插入物理场景中,进一步提升用户体验。MR可以把真实世界和虚拟世界合成在一起,产生一个新的环境,在真实世界中,通过虚拟世界进一步形象化,从而产生物理和数字对象共存,实时的交互,这就是所谓的混合现实。

最近很火的apple vision pro就是MR的一种实现。就像广告语所说“Apple Vision Pro 将数字化内容无缝融入现实空间。从工作、娱乐、沟通到重温回忆,都有不可思议的新方式。空间计算的时代,从此解锁”。MR更能凸显那种沉浸感(被虚拟环境包围的感觉)以及在虚拟环境中身临其境的感觉。而这种身临其境的感觉就对跟踪、延迟、持久性、分辨率和光学等提出了最低性能要求。

常沉浸感分为认知沉浸感和感知沉浸感。相对来说,认知沉浸感很容易实现,人类通过通过观看引人入胜的电影或书就可以达到,它是思想层面的沉浸感,如果一种技术连认知沉浸感都达不到,就无从可谈了。感知沉浸感是人感官上的沉浸,要实现这种沉浸感,就必须欺骗人的感官、视觉、听觉、触觉和嗅觉等。因而要创造感知沉浸感,XR 设备必须欺骗用户的感官,首当其冲的就是人的视听系统,因而感知沉浸感就是XR应用要实现的目标。具体到XR设备,就是通过基于运动的位置跟踪来实现感知上的沉浸。

这里就不得不提 Human filed of view(FoV),也就是人类视野的概念。FoV的定义是头部固定时特定时刻的视野区域,其代表的是从焦点测量的可见视野角度,以degrees表示。那单眼视野就是一只眼睛的可见视野角度,而双眼视野是两只眼睛视野的组合。双眼水平视野约为 200-220°,而垂直视野约为 135°。中央视觉约为 60°,这也被称为舒适区,这时候就对细节有非常高的敏感度。

在 XR 中,动作和交互涉及运动和手势。因此就牵连到自由度 (DoF),而DoF就描述了用于定义3D 空间中的运动的独立参数的数量。这里我们就看下3DoF和6DoF是什么。

3DoF就围绕 X、Y 和 Z 轴的三个旋转无限制运动,这里可以分别认为是俯仰、偏航和滚动。最典型的用例就是用户坐在椅子上观看头戴式显示器 (HMD)上的 3D 360 VR内容。

而6DoF就是3DoF可沿 X、Y 和 Z 轴进行完全平移的运动。除了3DoF体验之外,6DoF还增加了上下移动(升降/起伏), 左右移动(扫射/摇摆)以及前后移动(行走/波动)。典型用例是用户自由地在 HMD上显示的 3D 360 VR内容中行走。

到这里就不得不提3个XR概念。

XR view描述给定时间内 XR 场景中的单个视图。每个视图对应于 XR设备用来向用户呈现场景部分的显示器或显示器的一部分。

XR viewport描述的是图形表面的viewport或矩形区域。XR viewport对应于 XR view在目标显示器上的投影。XR viewport主要由viewport矩形尺寸的宽度和高度定义。

XR Pose描述的是相对于XR空间的空间位置和方向。XR的一个基本要素就是要实现viewer pose的空间跟踪。

XR内容可以用不同的形式表示,它可以是全景图或球体图,这具体取决于捕获系统。

事实上现代视频编码标准在设计之初,并不能用于处理球形内容。在编码之前,可以通过投影技术将球形(360度)视频转换为二维矩形视频。而投影后,就可以将得到的二维矩形图像划分为不同的区域(例如前、右、左、后、上、下),稍后就可以将这些区域重新排列以生成“packed"帧,进而达到提高编码效率或viewport相关的stream arrangement。

那360度视频传输方式有哪些?这里主要有三种方法:

(1)single stream:这种方法会提供完整的360度视频并但是仅显示用户感兴趣的部分。那这一类的解决方案的缺点就是可能无法扩展或可能在所需的网络资源(高分辨率视频的高比特率)和客户端所需的处理(解码非常高分辨率的视频)方面带来巨大挑战。

(2)multi-stream:这种方法会对多个stream进行编码,每个stream都会给到某个特定的viewport,然后让接收器使用,这样接收器就可以决定在某个时间实例中传输哪个流。

(3)Tiled stream:这种方法会通过传输分辨率降低的non-viewport样本给到当前用户的view port的方式实现。然后这些tiles 可以作为一个公共比特流(使用motion-constrained HEVC tiles)或单独的video stream使用。

video和audio都要基于RTP进行传输,在XR上就有了一些具体的特点和要求。

相比于增加的延迟以满足按序交付的方式来说,RTP层通常可以处理RTP数据包的无序接收,这样一些编解码器需要具有无序接收能力才能很好地运行。因此,这里首选模式就是接收方的lower layer并不总是按序向上层交付,而是可以无序传输。

除此之外,不同XR应用程序的共同特征是很难确定的,因为它们在很大程度上取决于应用程序的选择,例如应用程序本身、使用的编解码器、数据格式和编码操作等等。特别是,低延迟 XR 和云游戏视频服务(例如 Split-Rendering 或 Cloud Gaming)通常不会使用固定图像组 (GOP) 的传统编码结构。此外,低延迟视频传输领域正在经历重大创新,可能会频繁建立新的编码方法。因此,接下来列出的traffic特性和要求,只能在需要XR流量特性的具体示例时用作基准 ,并不普遍适用于所有 XR 应用。

XR video的frame rate从每秒15帧到每秒90帧甚至120 帧不等,VR 的典型最低值为60帧每秒。

XR系统的性能目标是已知的角或旋转前庭眼反射的作用延迟约为 10ms或者范围为7-15ms,这种设定会导致motion-to-photon的延迟小于20ms,而通常设定的目标是10ms。对于大家关心的bit rates,根据帧速率、分辨率和编解码器效率,XR的bit rates预计在10~200Mbps之间。

XR audio可以区分为基于声道和基于对象两种表示方式。基于声道的方式会使用多个麦克风从不同方向捕捉声音;而基于对象的方式将复杂的听觉场景表示为单个audio元素的集合,每个元素都包含音频波形和一组相关参数或metadata。然后metadata进行指定每个音频元素的转换通过最终再现出来。

声音对象通常使用通过声音设计过程录制或合成的单声道音轨。最后使用位置元数据将这些声音元素定位在听众周围的水平面上或定位在完整的三维空间中。

由于声速比光速慢,用户通常能够接受声音相对视频的延迟,但是不能接受声音相对视频提前。最近的研究建议同步精度在15ms(音频延迟)和 5ms(音频提前)之间,而广播视频的绝对限值建议为 60 ms(音频延迟)和 40 ms(音频提前)。

为了保持虚拟世界与现实世界的可靠注册以及确保准确跟踪 XR Viewer Pose,XR App需要以大约 1kHz 的采样频率对设备进行高精度、低延迟跟踪。与时间相关的 XR Viewer Pose 的大小通常会产生大小在 30-100 字节范围内的数据包,因此如果通过网络传输生成的数据大约为几百 kbit/s,那延迟要求在 10-20ms 范围内。

在相同的显示时间内重复提供XR Viewer Pose不一定会产生相同的结果(信息越接近预测时间,预测就越准确),并且在为一个显示时间提供多个XR Viewer Pose和在连续的几个显示时间内使用相同的XR Viewer Pose之间存在权衡。但是可以假设发送一个与渲染视频的帧速率一致的 XR Viewer Pose 就足够了,例如 60fps。如果Pose用于网络(边缘/云)中的预渲染,则最好使用准确且最新的Pose信息。Pose信息必须以超高可靠性传递,因此,预期性能与 URLLC 类似,即上行传感器数据的数据包丢失率应低于10E-3。

最后不得不提到XR引擎,XR引擎为XR应用程序的开发人员提供了抽象硬件和软件功能的中间组件。和游戏开发引擎类似,典型组件包括用于图形的渲染引擎、用于声音的音频引擎和用于模拟物理定律的物理引擎。XR引擎的处理并非仅在设备 GPU 中执行。在功率和资源受限的设备中,可以通过边缘计算来协助或跨网络分割:UE 以实时方式将传感器数据沿上行链路方向发送到云端,当云端接收到传感器数据时,它再执行渲染计算并生成多媒体数据,然后发送回用户设备进行显示。而这正是NR可以发挥重要作用的地方。

下篇我们继续看下为了支持XR,3GPP R18做了哪些增强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用vscode搜索打开的文件夹下的文件

右键空白处打开命令面板 摁一次删除键,删除掉图中的大于号 这样就能够找到例化的模块,文件具体在哪个位置,然后打开了

python实现责任链模式

把多个处理方法串成一个list。下一个list的节点是上一个list的属性。 每个节点都有判断是否能处理当前数据的方法。能处理,则直接处理,不能处理则调用下一个节点(也就是当前节点的属性)来进行处理。 Python 实现责任链模式&#…

常用的自动化测试工具有哪些?

什么是自动化测试?简单来说,自动化测试就是通过重复执行预定义的动作来执行测试用例的系统来代替人工操作。为了充分利用自动化,必须选择正确的自动化测试工具。 一、自动化测试工具有哪些 1、Selenium WEB自动化测试 Selenium是网页应用中最…

BUUCTF [MRCTF2020]Ezpop

这道题对于刚接触到pop链的我直接把我整懵了,一边看着魔术方法一边分析 魔术方法可以看这里PHP 魔术方法 - 简介 - PHP 魔术方法 - 简单教程,简单编程 (twle.cn) 代码解析 经过以上的分析我们可以理一下解题思路:接收参数反序列化之前先触发…

03 capture软件操作界面和常用设置介绍04 capture软件自带元件库设置

03 capture软件操作界面和常用设置介绍&&04 capture软件自带元件库设置 第一部分 03 capture软件操作界面和常用设置介绍一、分辨率二、产品选择三、颜色设置四、格点设置 第二部分 04 capture软件自带元件库设置 第一部分 03 capture软件操作界面和常用设置介绍 一、…

Python | Leetcode Python题解之第278题第一个错误的版本

题目&#xff1a; 题解&#xff1a; # The isBadVersion API is already defined for you. # def isBadVersion(version: int) -> bool:class Solution:def firstBadVersion(self, n: int) -> int:left, right 1, nwhile left < right:mid left (right - left) //…

uboot的mmc partconf命令

文章目录 命令格式参数解释具体命令解释总结 mmc partconf 是一个用于配置 MMC (MultiMediaCard) 分区的 U-Boot 命令。具体来说&#xff0c;这个命令允许你设置或读取 MMC 卡的分区配置参数。让我们详细解释一下 mmc partconf 0 0 1 0 命令的含义。 命令格式 mmc partconf &…

力扣高频SQL 50题(基础版)第七题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第七题1068. 产品销售分析 I题目说明思路分析实现过程准备数据&#xff1a;实现方式&#xff1a;结果截图:总结&#xff1a; 力扣高频SQL 50题&#xff08;基础版&#xff09;第七题 1068. 产品销售分析 I 题目说明 …

大模型额外篇章三:vercel搭建openai中转服务器

文章目录 一、起因和注意1)起因2)注意二、实现方法(原理:透传)1)nginx方案2)node服务3)纯 js 方案4)选择国外的域名服务商(DNS 解析路径缩短,建议方案国外提供 CDN 云服务商结合自建云服务业务做负载均衡)三、实践(vercel部署OpenAI代理服务器)四、测试搭建的Ope…

微前端--qiankun

qiankun qiankun分为accpication和parcel模式。 aplication模式基于路由工作&#xff0c;将应用分为两类&#xff0c;基座应用和子应用&#xff0c;基座应用维护路由注册表&#xff0c;根据路由的变化来切换子应用。子应用是一个独立的应用&#xff0c;需要提供生命周期方法供…

【中项】系统集成项目管理工程师-第5章 软件工程-5.4软件实现

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

51单片机嵌入式开发:14、STC89C52RC 之HX1838红外解码NEC+数码管+串口打印+LED显示

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 STC89C52RC 之HX1838红外解码NEC数码管串口打印LED显示 STC89C52RC 之HX1838红外解码NEC数码管串口打印LED显示1 概述2 硬件电路2.1 遥控器2.2 红外接收器电路2.3 STC89C52单…

【JAVA开发笔记】Reids下载、安装、配置-Windows篇(超详细,含Redis可视化管理工具!!!)

目录 1. Redis 简介 2. 下载 Redis 安装包 3. 开启 Redis 服务 4. 配置环境变量 5. Redis 服务注册为系统服务 6. Redis 服务测试和简单使用 7. 下载安装 Redis 管理工具 8. 管理工具连接 Redis 服务器 1. Redis 简介 Redis&#xff08;Remote Dictionary Server&…

Pytorch transforms 的研究

绝对路径与相对路径差别 transforms的使用 from torchvision import transforms from PIL import Imageimg_path "dataset/train/bees/16838648_415acd9e3f.jpg" img Image.open(img_path) tensor_trans transforms.ToTensor() tensor_img tensor_trans(img) prin…

PostgreSQL 中如何实现数据的批量插入和更新?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何实现数据的批量插入和更新&#xff1f;一、批量插入数据1. 使用 INSERT INTO 语句结…

redis的持久化机制以及集群模式

1.redis的持久化机制 内存数据库具有高速读写的优势&#xff0c;但由于数据存储在内存中&#xff0c;一旦服务器停止或崩溃&#xff0c;所有数据将会丢失。持久化机制的引入旨在将内存中的数据持久化到磁盘上&#xff0c;从而在服务器重启后能够恢复数据&#xff0c;提供更好的…

初阶数据结构——二叉树大汇总

这篇博客将会讲到二叉树的部分内容及堆的相关知识~ 这里将会涉及到大量的递归&#xff08;头大&#xff09; 目录 1.树 1.1树的概念 1.2树的相关概念 1.3树的表示 1.4树的实际应用 2.二叉树 2.1二叉树的概念 2.2特殊的二叉树 2.2.1 满二叉树 2.2.2 完全二叉树 2.2…

如何用python在大麦网抢票?新手也能学会!

使用Python如何在大麦网抢票 背景介绍 大麦网是一个知名的演出票务平台&#xff0c;很多演唱会、体育赛事等热门活动的门票都可以在这里购买。由于热门场次的门票往往会在开售时秒光&#xff0c;因此抢票成为了很多人的一项技术活。本文将介绍如何使用Python编写程序来自动在大…

基于STM32的逻辑分析仪

文章目录 一、逻辑分析仪体验1、使用示例1.1 逻辑分析仪1.2 开源软件PulseView 2、核心技术2.1 技术方案2.2 信号采集与存储2.3 数据上传 3、使用逻辑分析仪4、 SourceInsight 使用技巧4.1新建工程4.2 设置工程名及工程数据目录4.3 指定源码目录4.4 添加源码4.5 同步文件4.6 操…

在windows上使用Docker部署一个简易的web程序

使用Docker部署一个python的web服务&#x1f680; 由于是从事算法相关工作&#xff0c;之前在项目中&#xff0c;需要将写完的代码服务&#xff0c;部署在docker上&#xff0c;以此是开始接触了Docker这个工具&#xff0c;由于之前也没系统学习过&#xff0c;之后应该可能还会用…