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搜索打开的文件夹下的文件

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

探索WebKit的Web Serial API:开启串行通信的新纪元

探索WebKit的Web Serial API:开启串行通信的新纪元 在现代Web开发中,与硬件设备的交互变得越来越普遍。WebKit的Web Serial API为Web应用提供了一种直接与串行设备通信的能力,使得开发者能够通过浏览器与外部设备进行数据交换。这项技术的应…

python实现责任链模式

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

【Unity】RPG2D龙城纷争(十七)敌方常规AI(Normal)的实现

更新日期:2024年7月24日。 项目源码:第五章发布(正式开始游戏逻辑的章节) 索引 简介一、AI_Normal类二、AI调遣策略第一阶段:收集1.提供战场数据收集方法2.收集战场数据三、AI调遣策略第二阶段:评估四、AI调遣策略第三阶段:行动简介 AI_Normal定位为框架自带的最基础的…

Vue3升级了哪些重要的功能

createApp // vue2.x const app new Vue({ .... });//vue3.x const app Vue.createApp({ ... });emits属性 // 父组件 <HelloWorld :msg"msg" sayHello"onSayHello" />export default {name: HelloWorld,props: {msg: String},emits: [onSayHell…

汽车充电桩投资盈利方案

说明&#xff1a;系统支持SASS运营商多开&#xff0c;每个月运营商都有独立小程序、独立收款。支持各种引流平台的互联互通充电&#xff0c;如星星充电、特来电、快电等等&#xff0c;实现地图软件如高德地图上充电导航。后台有每日统计、单枪运能、大数据面板。独立的移动端管…

STL标准模板库---容器篇(一)

STL(Standard Template Library)是C的一套功能强大的 C 模板类和函数的集合&#xff0c;它提供了一系列通用的、可复用的算法和数据结构。 STL 的设计基于泛型编程&#xff0c;这意味着使用模板可以编写出独立于任何特定数据类型的代码。 STL 分为多个组件&#xff0c;包括容…

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

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

electron-builder打包vue2项目不显示element-ui图标

1、使用版本 vue ^2.6.14element-ui ^2.15.14vue-cli-plugin-electron-builder 2.1.1 2、解决办法 1&#xff09; 如果是简单的图标可以使用图片代替&#xff08;这种对于elementui组件的图标还是不会显示&#xff09; 2&#xff09;在vue.config.js配置 const { defineCon…

C# 冒泡排序

栏目总目录 概念 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它通过重复遍历待排序的数列&#xff0c;比较每对相邻的项&#xff0c;并在顺序错误时交换它们的位置&#xff0c;直到没有需要交换的项为止。由于排序过程中小数逐渐“浮”到前…

代码随想录day20 669. 修剪二叉搜索树 、108.将有序数组转换为二叉搜索树 、538.把二叉搜索树转换为累加树

代码随想录day20 669. 修剪二叉搜索树 、108.将有序数组转换为二叉搜索树 、538.把二叉搜索树转换为累加树 669. 修剪二叉搜索树 我自己的思路是和前一道题一样&#xff0c;遇见一个不符合的就调用一次删掉该结点的函数&#xff0c;这样明显就麻烦了&#xff0c;其实只要小于…

BUUCTF [MRCTF2020]Ezpop

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

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

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

C++要点总结_02_表达式与语句

表达式与语句 2 表达式与语句2.1 算术运算符 2 表达式与语句 运算符就是具有运算功能的符号。“::” &#xff1a;作用域运算符。->&#xff1a;成员指针运算符。运算符种类&#xff1a;算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、移位运算符、sizeof运算…

持续更新-各种趁手的开源工具

开源工具名称用途参考及备注 zcurd zcurd是一个通用的后台管理系统&#xff0c;有完善的用户、菜单权限管理及表单管理的开发方案。 https://www.oschina.net/p/zcurd?hmsraladdin1e1 简单业务可以通过[表单配置]快速生成&#xff0c;特定业务通过代码生成&#xff0c;完成…

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;需要提供生命周期方法供…