网易云信4K 8K RTC助力远程医疗的技术实践

news2025/1/11 0:08:54

  //  

编者按:随着近年来国家关于缓解医疗资源分配不均的一系列政策出台,远程医疗作为平衡医疗资源分配的有力手段,目前正处于强劲发展阶段。网易云信运用超高清RTC视频技术助力医疗行业实现了远程高清视频病理分析和手术示教等能力。LiveVideoStackCon 2023 上海站邀请了来自网易云信的朱明亮,为大家分享网易云信关于4K、8K RTC助力远程医疗的技术实践 。

文/朱明亮

整理/LiveVideoStack

大家好,我本次分享的主题是云信8K RTC助力远程医疗的技术实践。

首先向大家做一个自我介绍,本人来自网易云信,负责RTC SDK端视频引擎工程团队,主攻的业务方向是视频管线的需求实现和性能优化。历经点播、直播到现在的RTC,我在音视频领域已有十余年工作经验,目前在云信致力于4K、8K RTC技术的研发。

bed4ac2d29fb6cd624b900d147bcba87.png

本次分享将分为以下四部分,一是介绍业务背景,二是我们的远程医疗方案,三是8K RTC实践,最后进行总结展望。

-01-

背景介绍

7113226681b515b1cdbc2552137c1fd5.png

下面将从三个方面介绍我们的业务背景。

首先是医疗资源现状,我国的医疗资源目前高度紧缺且分布极度不均,主要体现为:近85%的资源集中在大中城市的少数二、三甲医院;全国医疗结构的近95%为基层卫生机构,而基层高水平医疗人员数量较少,取得正高/副高资格的医生占比仅为 5.1%。

为了解决资源不均的问题,国家目前正大力推行建立分级医疗和远程医疗体系。

d67335dee6cc4dba51abdc71c6ab3679.png

提到远程医疗,可能大家首先想到的形式是医生通过网络远程操纵机器人完成手术,不过现状与之相比还有一定差距。当下远程医疗更多作为线下实体医院的功能延伸,如通过网络实现患者预约、就医挂号和病例查询等功能。至近期已逐步发展到“互联网+医疗”模式,患者可以利用网络进行图文、视频直播问诊并开单拿药。

我们认为远程医疗未来的发展趋势是实现高清视频问诊,包括多学科会诊(MDT)、手术高清视频示教和视频会议等。今天主要将介绍我们在这方面进行的实践。

a26572e09ce4ba4bb17905e1a7c60beb.png

我们再来了解8K的概念,与当前RTC常用的FHD 1080P和影院、音视频点播成熟化应用的4K分辨率相比,8K超高清分辨率达到了4K的4倍,1080P的16倍。它包括更丰富、更细腻的画面细节,传达的信息量是人眼可识别范围的4.3倍,即使对画面的个别位置进行放大也几乎不会出现细节损失,这更有利于远程医疗病理分析和远程传输等方面的应用。

-02-

远程医疗方案

81b09f3f0440be657fde8aac2d9a2ab8.png

接下来介绍我们现阶段在远程医疗方面应用的一些方案。上图为网易云信互联网医院的架构图,左侧为传统互联网医院就医的闭环流程。中间为本次主要介绍的基于云信RTC SDK打造的智慧协同医疗教学功能模块,它包含远程病理、远程SDT会诊、远程培训和会议等能力。

对于症状轻微的普通疾病通过左侧闭环流程即可完成就医,而对于在基层医疗机构难以决策的疑难杂症、危重疾病、手术等,则可通过智慧协同功能模块与其他医院、其他科室的专家进行会诊。

6260e51a2b71bef60e215e7aa913dcd6.png

云信RTC的SDK架构如上所示,它的分层较为清晰。首先最底层为基础层,在此之上为核心的媒体引擎层,包括视频引擎、音频引擎和传输引擎模块。接着是跨平台封装层,该层会抽象一些跨平台API,包括信令传输等模块,我们在该层还会构建一些通用的音视频逻辑,如视频主辅流双通道分流、主流Simulcast机制等。再上一层为SDK接口层,针对各个平台不同的Native language进行API封装,并提供给客户进行集成。顶层为我们推出的云信易用体系,可以提供 Sample Code、行业解决方案Demo和通用组件,便于客户进行集成。

2da5f3aa47dd050d81442f980befa1d2.png

云信RTC SDK的视频引擎Pipeline如上所示。顶部为网络传输模块,左侧为视频上行流程,历经视频源采集、前处理至编码、上传,支持主辅流双路通道。VQC模块会通过QoS评估网络带宽动态调整编码器参数。

右侧为视频下行流程,支持N路下行,可满足多人视频会议等场景的需求。

7d96df75775efe638dc454a48d302511.png

接下来具体介绍视频引擎的上行Pipeline,其中左侧的视频采集模块支持桌面采集、摄像头采集和第三方输入等方式,输入的视频经过前处理将分为两路,一路经过叠加水印、打码等额外处理后进行本地渲染以供预览。另一路将经过额外处理传输至编码器。VQC模块会根据网络条件动态调整视频分辨率、码率、帧率等编码参数,提高观看体验。

-03-

8K RTC实践

5a5a053cdc8b7ac8f0dca590168362db.png

下面将从以上几方面介绍我们关于8K RTC的技术实践。

4a5a44cda7c7ac23bdf0e73d031fd3ac.png

我们的8K RTC系统在选定的一般硬件平台落地。CPU是Intel 11 代i5,显卡是 集成显卡 iRIS Xe Graphics,系统是 Windows11,显示设备为8K显示屏,使用8K 摄像头进行采集。

2b6c592e01290b932505c2fa4b67fb9f.png

8K RTC 对视频引擎Pipeline的优化点主要集中在屏幕共享、摄像头采集、前处理、编码和VQC五大方面。

42a3606caabdf0b5c438ae289babea4d.png

首先介绍8K摄像头采集方案。由于USB3.0摄像头存在450 MB/s的传输速率上限,而8K原始YUV 420P码流每帧的数据量达到了47 M字节,照此估算视频帧率只能达到7~8fps,流畅度显然不能满足要求。目前我们采用的方案为从8K摄像头采集8K H.265或MJPEG压缩码流,视频规格为20Mbps@20fps。

从摄像头采集的数据在解码后将按照正常的上行Pipeline处理,下行端解码器会接收8K H.265码流进行解码。1V1 会议场景下,主播端会同时存在两路 8K 解码、一路 8K 编码,这对系统造成的压力较大。

eebdbcc8dc4954faf802e67928956c86.png

我们对上述问题进行了优化,改为向网络端直接发送摄像头采集的码流,此时摄像头既是视频源又是编码器,避免了反复编解码。但这对摄像头的硬件要求较高,需摄像头具备稳高质量的编码能力,并要保证摄像头编码器能够接收VQC模块的指令,调整编码参数。

因此我们使用Dshow在采集模块中加入了摄像头指令控制模块,基于Windows UVC Driver增加了可查询Control接口的Extension Unit,使采集模块能通过Extension Unit动态调整编码参数。同时我们还增加了IDR请求能力,使中途加入会议的用户能够快速接收I帧,显示画面。

86c3ac8c2858e5ea59e66690c51fc069.png

针对8K桌面采集我们目前采用高效率的DXGI方案,在指定硬件平台可实现8K 30fps视频采集,其他流程与基本的视频引擎Pipeline一致。

cfecbd4478f7ad5fc33a7e305f6dad14.png

接下来介绍我们针对8K桌面采集的优化。DXGI是微软推出的基于硬件驱动层的图形操作接口,可以支持不同图形库间的互操作。右侧为大致的采集流程,在创建D3DDevice后,利用IDXGIOutputDuplication接口的AcquireNextFrame函数获取屏幕画面,将Texture转为RGBA数据,再使用Libyuv 把 RGBA 转为 I420,并将其发送至编码器。

我们对红框圈出的两个环节进行了优化,第一是在调用AcquireNextFrame函数时注意延时参数控制,避免因时延过低导致出现大量重复帧,或是时延过高导致画面帧数不足。

第二是在RGBA数据转换时,由于8K RGBA数据量很大,直接将RGBA数据复制到前处理线程耗费的时间过长,因此我们进行了多线程优化,后续又发现使用Libyuv 直接将 RGBA 转到 I420 所需的时间更短,便改为采用这种方式。

c954211bacd37b30b647069790952824.png

接下来介绍视频编解码方面的优化,首先对于落地的硬件平台而言,8K软编软解是不可能的,需要考虑硬编硬解。其次在质量方面,H.264已经不能胜任4K/8K视频的编码,因此编码器改为使用H.265。最后是延时,由于8K编码对系统性能和延时的压力很大,因此要尽可能优化前处理流程,去掉不必要的环节,从而降低延时。

790042daef7fb0ce468a6b17235e6754.png

接下来介绍关于Windows端硬编硬解的优化,我们的SDK支持Nvidia、Intel和AMD三大厂商的硬件平台,最下层为基于不同平台抽象的硬编解码器,在此之上为BitrateAdjuster和BitstreamAdapter,用于动态平滑码率发送和过滤码率中额外的NALU。在引擎层会抽象不同的硬编解码器供SDK使用。

8b54b53a08c37a58a15073bd5bbdbc77.png

接下里介绍针对网络模块的优化。由于8K编解码的画质和码率都较高,很多传统针对1080P RTC码流的优化策略不再适用。

因此在拥塞控制方面我们采用自适应灵敏度来提升优质传输率;对于抗丢包优先使用ARQ,尽量减少使用FEC,防止恶性拥塞;在端到端时延的优化上采用高精度JitterBuffer控制,综合平衡抗性和时延。右图为优化效果的前后对比图,可以看到时延和卡顿率进一步降低,抗性和带宽利用率得到了提升。

f5e8f758fc9298199fbcd76d8d20c2ca.png

接下来介绍针对VQC模块的优化策略。VQC是视频引擎的质量控制模块,用于平衡RTC系统视频的清晰度、流畅度和延时三个质量指标,提升视频QoE。三个指标由上图中视频编码、QoS和VQS的互相作用决定。

QoS会依据网络状况动态评估适合的码率,将其分配至VQC。VQC 会依据QoS 的反馈动态调整视频模块的编码码率,同时也可依据编码器的QP反馈和系统负载率动态调整编码分辨率/帧率。其中分辨率最低可降至640x360,8K以上分辨率的帧率最低可降至20fps。

5709318c9aaeaba1c52b957aa7dd6123.png

接下来介绍关于Simulcast(大小流)的优化。考虑到网络状况和接收端的性能限制,服务端会同时发送一个大流和小流,接收端可以依据自身性能选择接收合适的视频流,服务端也可依据网络条件选择发送合适的流。我们针对小流的质量进行了优化,将小流分辨率从180p提升到360p,码率从120k提升到300k。

3b35f9b3a0e20fb3e43236d6455e16d2.png

接下来展示云信RTC方案在客户侧的落地效果。我们与浙江一家三甲医院达成了合作,上图为院方进行MDT会诊的实景照片。可以看到,院方借助超高清RTC系统可以实现细致的远程病理切片分析。

68e793303f3c3970b07f2fad31fa4147.png

上图展示了医院远程示教的实景效果,各地不同的医疗机构可以远程共同观看病理分析。除此之外还包括RTC方案还包括视频会议等应用场景。

155baaa1e9ba4cb6ad4b9416b74d6335.png

上图展示了 8K 摄像头的实测采集传输数据,其中编码器采用Intel集成显卡H.265硬编码器,上行分辨率为8K。可以看到,视频实际的上行帧率为20fps左右,这基本满足医院病理分析等相对静态场景的需求。视频实际上行码率为10Mbps左右。

d01b7644f761598b56843426d3521a3f.png

8K屏幕共享的实测结果与摄像头采集类似。

-04-

总结展望

c5f74c1956a0f75883683564c1006aca.png

接下来进行总结和展望。本次分享主要介绍了网易云信针对远程医疗提出的解决方案。8K RTC不仅是对分辨率的提升,也是对RTC视频管线的全面升级。我们在各方面进行了一些技术改进,介绍了落地过程中的技术挑战、解决方案以及最终实际的落地效果。

5b85e859456b7bfe6cd422751e322696.png

未来在技术优化方面,我们会进一步探索将摄像头/桌面采集的画面直接以Texture方式传输至硬编码器的方案。同时4K、8K RTC技术在云游戏、远程协作领域也有应用前景。

当前云信4K/8K RTC技术已成熟并在部分场景落地,我们将携手合作伙伴开拓更多极致高清的商业场景。我今天的分享就到这里,谢谢大家!


575a93efaf58d2aba81ee3dfe1f59b21.jpeg

扫描图中二维码或点击“阅读原文 

直通LiveVideoStackCon 2023深圳站 9折购票通道

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

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

相关文章

Beyond Compare 4对比工具注册

Beyond Compare是一款文件及文件夹(目录)的对比工具。 Beyond Compare不仅可以快速比较出两个目录的不同,还可以比较每个文件的内容,而且可以任意显示比较结果。 Beyond Compare程序内建了文件浏览器,方便您对文件、…

NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061

今天发现,有两个处理器,启动以后,数据流不过去,后来,锁定问题在,queue队列上面,因为别的队列都可以通过,右键,empty queue清空,就是 这个队列不行,这个队列无法被删除,至于为什么导致这样的, 猜测是因为之前,流程设计好以后,队列没有设置背压,也没有设置队列中的内容大小和fl…

基于人脸5个关键点的人脸对齐(人脸纠正)

摘要:人脸检测模型输出人脸目标框坐标和5个人脸关键点,在进行人脸比对前,需要对检测得到的人脸框进行对齐(纠正),本文将通过5个人脸关键点信息对人脸就行对齐(纠正)。 一、输入图像…

nginx实现反向代理实例

1 前言 1.1 演示内容 在服务器上访问nginx端口然后跳转到tomcat服务器 1.2 前提条件 前提条件:利用docker安装好nginx、tomcat、jdk8(tomcat运行需要jdk环境) 只演示docker安装tomcat: 默认拉取最新版tomcat docker pull t…

学习 OpenStack 的新指南和教程的六个建议

云基础设施是一个非常需要的技能。如果你正在为你的云基础架构需求寻找开源解决方案,那么 OpenStack 就是其中之一。OpenStack 是一个巨大的项目集合,为云服务的几乎每一个部分都提供了解决方案和集成。虽然这个巨大范围使得它成为一个强大的工具&#x…

若依前后端分离版搭建记录

一、如果是mysql8,得修改一下参数allowPublicKeyRetrieval为true,不然会报Public Key Retrieval is not allowed错误: 二、导入第二张表的数据库的时候,需要增加“--default-character-setutf8”参数才不会报错:

爱心助力口腔健康——三金西瓜霜全国“爱牙公益行”活动启动

在第35个“全国爱牙日”来临之际,三金西瓜霜牙膏联合中国善网公益平台共同发起的第四届三金西瓜霜“爱牙公益行”活动于近日启动。 今年“爱牙日”主题是“口腔健康 全身健康”,副主题是“关爱老年口腔乐享健康生活”。口腔健康是人体健康的重要组成部分…

两种常见矩形框旋转方法推导及其C++实现

在已知矩形中心点、长宽和旋转角度(定义为矩形最长边与X轴正方向的夹角),如何确定矩形四个顶点的坐标,通常有以下两种处理方法。 法一:直接对顶点进行旋转 比如下图虚线框矩形是实线框矩形绕矩形中心点旋转后得到。在…

贴片电容耐压值选取和特性(包含实际电路和PCB)

一、一般电容的特性 ①容值大的电容,一般通低频率;  ②容值小的电容,一般通高频率。   注:详细请看这位博主的篇文章: 大电容为什么虑低频小电容为什么又虑高频?(个人整理) 二、贴片电容的耐压选取 ①贴片电容有2…

“构建完善的用户认证与数据交互系统“

目录 引言1.ElementUI完成登录注册1. 登录页面设计与实现2. 注册页面设计与实现 2.axios之get请求3.axios之post请求4.跨域问题的解决方案5.总结 引言 在现代Web应用程序开发中,用户认证和数据交互是至关重要的功能。本文将介绍如何使用ElementUI、axios和解决跨域…

PyTorch 模型性能分析与优化--第1部分

一、说明 这篇文章的重点将是GPU上的PyTorch培训。更具体地说,我们将专注于 PyTorch 的内置性能分析器 PyTorch Profiler,以及查看其结果的方法之一,即 PyTorch Profiler TensorBoard 插件。 二、深度框架 训练深度学习模型,尤其是…

Understanding Host Network Stack Overheads论文阅读笔记

RFS (Receive Flow Steering) RFS(Receive flow steering)和 RPS 配合使用。RPS 试图在 CPU 之间平衡收包,但是没考虑 数据的本地性问题,如何最大化 CPU 缓存的命中率。RFS 将属于相同 flow 的包送到相同的 CPU 进行处理&#xf…

通用深度模型UniverSeg:分割医疗图像

医学图像分割是医学分析的中心问题。它很昂贵,需要大量数据,而且是特定于任务的。如果我们可以拥有一个可以应用于任何分割任务的模型怎么办? 医学图像分割:为什么我们需要以及为什么它很困难? 分割的例子。一般来说&…

2808. 使循环数组所有元素相等的最少秒数;1015. 可被 K 整除的最小整数;1001. 网格照明

2808. 使循环数组所有元素相等的最少秒数 核心思想:枚举每个元素作为相等元素最多需要多少秒,然后维护它的最小值。最多需要多少秒是怎么计算的,我们可以把相等值的下标拿出来,然后你会发现两个相邻下标(相邻下标只的…

three.js——宝马汽车产品展示

宝马汽车产品展示 前言效果图1、创建基本设置(场景和背景等)2、加载模型和展厅灯光3、添加点击事件 前言 宝马汽车产品展示和原理讲解 演示网址:http://f-h-y.gitee.io/bmw-car-display-project/#/ 效果图 1、创建基本设置(场景和背景等) …

ChatGPT详细搭建教程+支持AI绘画

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统?小编这里写一个详细图文教程吧&#x…

The 2023 ICPC Asia Regionals Online Contest (1) E. Magical Pair(数论 欧拉函数)

题目 T(T<10)组样例&#xff0c;每次给出一个n(2<n<1e18)&#xff0c; 询问多少对&#xff0c;满足 答案对998244353取模&#xff0c;保证n-1不是998244353倍数 思路来源 OEIS、SSerxhs、官方题解 2023 ICPC 网络赛 第一场简要题解 - 知乎 题解 官方题解还没有…

【Springboot】整合Xxl-job

目录 一&#xff0c;下载1.1 官方文档地址1.2 源码仓库地址 二&#xff0c; 配置部署 "调度中心"2.1 初始化 "调度数据库"2.2 修改配置文件2.3 启动调度中心 三&#xff0c;springboot项目整合3.1 添加依赖3.2 修改配置文件3.3 执行器组件配置4.4 编写测试…

雷达编程实战之静态杂波滤除与到达角估计

雷达中经过混频的中频信号常常混有直流分量等一系列硬件设计引入的固定频率杂波&#xff0c;我们称之位静态杂波&#xff0c;雷达信号处理需要把这些静态杂波滤除从而有效的提高信噪比&#xff0c;实现准确的目标检测功能。 目标的到达角估计作为常规车载雷达信号处理的末端&am…

【数据结构】什么是数据结构?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 数据结构的定义 数据结构(Data Structure)是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合. 这么讲可能有些抽象,放一张图大家可能好理解一点…