一种跨平台视频通信方法技术

技术编号:33968484 阅读:17 留言:0更新日期:2022-06-30 01:55
本发明专利技术涉及视频通信技术领域,涉及一种跨平台视频通信方法,包括以下步骤:S1、图像采集;S2、图像校准,包括S21、校准像素比例和S22、校准偏移位置;S3、图像合成,定义2D纹理t4用来接收合成后的全息图像;S4、图像压缩;S5、图像传输,将S4中压缩的图像信息发送给服务器,再由服务器发送给指定的客户端;S6、图像解压和显示。该视频通信方法利用Compute Shader技术使用GPU执行,用大量运算单元进行并行计算,在引擎中将源端视频数据流化,并将源端数据流传输到终端,在终端解码还原源端视频画面,支持将AR/MR技术中的多个画面内容进行高性能融合,为网络传输减轻负担,同时提供了可扩展空间。间。间。

【技术实现步骤摘要】
一种跨平台视频通信方法


[0001]本专利技术涉及视频通信
,尤其涉及一种跨平台视频通信方法。

技术介绍

[0002]当前视频通信已经成为了人们工作、生活中必不可少的交流方式。随着科技的发展,产生出了大量不同类型的智能硬件,包括但不限于电脑、手机、智能眼镜。由于功能、安全等方面的需求又衍生出不同平台,包括但不限于Windows,UWP,安卓,iOS,鸿蒙等。如何进行跨平台的视频通信是一个重要问题。
[0003]现有技术中,跨平台的视频通信通常有两种方式:一、分别处理在每种参与视频通信的源端设备中都基于自身的硬件和平台开发一套采集视频数据的程序然后将视频数据进行发送,终端根据源端的数据标准进行解压。这种方式虽然能够解决硬件性能压力问题,但是有重大缺陷:(1)开发周期极其漫长:每个参与的平台都要独立开发一套采集视频数据的系统,相互协调对方的数据标准,可能在解码时还需要集成发送方的插件,无论技术对接还是商务协调都很漫长;(2)维护困难:参与其中的一个平台技术更新时,其它平台都要重新对接新的技术标准;(3)埋藏隐患:不同的接口及数据格式在压缩、传输、接收、解压环节都可能因为技术方案不统一而导致的兼容性问题,很难排查修复;(4)开发成本高:开发周期、技术沟通、商务沟通都会产生很高的成本;(5)不利于扩展:当视频通信中需要加入新的平台时,需要再次开发并协调每个参与方的技术标准;(6)AR/MR智能眼镜中要发送的全息图像无法灵活调整:从硬件和系统层面采集全息图像的方式每个厂家各有不同,如果想要调整全息图像中现实图像与实际图像的偏差值或者颜色等非常困难。
[0004]二、通过引擎内置接口处理通过引擎(例如虚幻、Unity)的内置截图方法将图像处理后传输,让连续的图像接替显示成为视频。这种方式虽然能快速跨平台开发,但问题同样明显:(1)性能很差:跨平台引擎的内置截图方法是通过CPU进行实现的,由于本身的目的并非为视频通信开发,所以高频率的截图硬件性能会大幅下降。会导致主线程卡顿,整体软件图像卡顿,影响同程序中其他功能的运行;(2)维护困难:引擎中提供的内置截图方法是固定的,仅具备少量可配置参数,无法灵活的调整其中的算法和流程;(3)AR/MR智能眼镜中要发送的全息图像无法灵活调整:这种方法中目前基本都是直接将截取后的现实图像与虚拟图形叠加,偏差较大,不易调整。
[0005]综上所述,传统的跨平台的视频通信方式存在三种问题:(1)跨平台开发效率低,给开发者造成了极大困难。(2)造成极大的性能压力,导致卡顿或死机。(3)AR/MR智能眼镜传输时采集合成的全息图像偏差大。
[0006]尤其是当需要参与视频通信的设备中有AR/MR
中的智能眼镜时,这些问题尤其突出。其中包含两个重要因素:(1)智能眼镜设备需要佩戴在用户头上,体积必须小,导致其所搭载的CPU 及GPU等运算单元体积也很小,运算性能低;(2)佩戴智能眼镜的用户视野中看到的图像包括两部分,一部分是通过透明镜片看到的现实图像,另一部分是由智能眼镜呈现叠加入视野的虚拟图像。在视屏传输时就需要同时采集现实图像和虚拟图像进行校准、合成,流程更加复杂,运算量更大。
[0007]因此,如何避免对每种不同的平台都进行一次独立的开发;减轻对硬件设备的性能压力,避免设备卡顿、死机等严重问题的发生;可以根据不同设备技术特性及功能动态切换所传输的图像;提高图像合成时虚拟图像与现实图像的匹配准确度;提高图像数据在网络传输中的效率,开发一款跨平台视频通信方法是领域技术人员急需解决的技术问题。

技术实现思路

[0008]本专利技术拟解决的技术问题是,提供一种跨平台视频通信方法,该视频通信方法利用Compute Shader技术使用GPU执行,使用大量运算单元进行并行计算,大幅提高整体运算速度与性能,在引擎中将源端视频数据流化,并将源端数据流通过网络传输到终端,最后在终端解码还原源端视频画面,支持将AR/MR等技术中的多个画面内容进行高性能融合,为网络传输减轻了带宽方面的负担,同时提供了可扩展空间。
[0009]一种跨平台视频通信方法,包括以下步骤:S1、图像采集;S2、图像校准,包括S21、校准像素比例和S22、校准偏移位置;S3、图像合成;S4、图像压缩;S5、图像传输,将S4中压缩的图像信息发送给服务器,再由服务器发送给指定的客户端;S6、图像解压和显示。
[0010]优选的,所述S1包括;S11、采集现实图像,利用摄像头获取图像,在引擎中创建一个纹理T1,用纹理T1接受摄像头获取的图像信息;S12、采集虚拟图像,在引擎中创建虚拟摄像机和纹理T2,虚拟摄像机的视角方向及位置与摄像头的空间映射位置一致、同步;用纹理T2接受虚拟摄像机获取的虚拟图像信息。
[0011]优选的,所述S21中设置一个缩放系数Scale,在T1图像内容不变的情况下将T1图像原始像素数量乘以Scale得到T1a。
[0012]优选的,所述S22包括以下步骤:S221、创建一个Compute Shader A;
S222、在A中定义内核函数C;S223、设置C中每个线程组中的线程为(8,8,1);这个设置方法在进行逐像素操作校准和后续JPEG算法压缩时都能极大的提高效率。
[0013]S224、在用CPU代码调用C的时候,设置C中线程组,结合S223中设置的线程数量,确保每个像素都有一个线程去进行处理;该步骤能最大化利用GPU多线程优势。
[0014]定义C在x位置上线程组的数量为Cx;定义C在y位置上线程组的数量为Cy;定义C在z位置上线程组的数量为1;Cx=(T2横坐标上像素数量+7)/8;Cy=(T2 纵坐标上像素数量+7)/8;上述公式中“+7”是因为要让一个方向上的像素必定有一个线程可以与之对应,大于7浪费,小于7则可能会少设置一个线程组导致有像素纹理无法被调用。
[0015]以(Cx,Cy,1)来对C中线程组进行设置;将T1a传递给A,在A中以2D纹理t1进行接收;将T2传递给A,在A中以2D纹理t2进行接收;在C中定义获取线程唯一标识符DTid为二维数组,DTid可以直接通过Compute Shader的自身机制获取到;以t2为基准对t1的像素进行横向和纵向的移动进行校准;t1需要在横向移动的值定义为t1x;t1需要在纵向移动的值定义为t1y;定义2D纹理t3用来接收校准后的t1;t3= t1 [ DTid.x + t1x,DTid.y + t1y ]。
[0016]优选的,所述S3中定义2D纹理t4用来接收合成后的全息图像;t4=t2[DTid].rgb*t2[DTid].a+ t3.rgb*(1

t2[DTid].a)。
[0017]优选的,所述S4中将t4的RGB颜色形式转换为YUV的颜色形式;在A中创建三个可共享内存的数组:D1、D2、D3;每个数组的容量为64;将YUV数据中的三个分量分别保存到D1、D2、D3中;在C中定义获取线程标识符为Tid为二维数组,Tid可以直接通过Comput本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨平台视频通信方法,其特征在于,包括以下步骤:S1、图像采集;S2、图像校准,包括S21、校准像素比例和S22、校准偏移位置;S3、图像合成,定义2D纹理t4用来接收合成后的全息图像;S4、图像压缩;S5、图像传输,将S4中压缩的图像信息发送给服务器,再由服务器发送给指定的客户端;S6、图像解压和显示。2.如权利要求1所述的跨平台视频通信方法,其特征在于,所述S1包括;S11、采集现实图像,利用摄像头获取图像,在引擎中创建一个纹理T1,用纹理T1接受摄像头获取的图像信息;S12、采集虚拟图像,在引擎中创建虚拟摄像机和纹理T2,虚拟摄像机的视角方向及位置与摄像头的空间映射位置一致、同步;用纹理T2接受虚拟摄像机获取的虚拟图像信息。3.如权利要求2所述的跨平台视频通信方法,其特征在于:所述S21中设置一个缩放系数Scale,在T1图像内容不变的情况下将T1图像原始像素数量乘以Scale得到T1a。4.如权利要求3所述的跨平台视频通信方法,其特征在于:所述S22包括以下步骤:S221、创建一个Compute Shader A;S222、在A中定义内核函数C;S223、设置C中每个线程组中的线程为(8,8,1);S224、在用CPU代码调用C的时候,设置C中线程组,结合S223中设置的线程数量,确保每个像素都有一个线程去进行处理;定义C在x位置上线程组的数量为Cx;定义C在y位置上线程组的数量为Cy;定义C在z位置上线程组的数量为1;Cx=(T2横坐标上像素数量+7)/8;Cy=(T2 纵坐标上像素数量+7)/8;以(Cx,Cy,1)来对C中线程组进行设置;将T1a传递给A,在A中以2D纹理t1进行接收;将T2传递给A,在A中以2D纹理t2进行接收;在C中定义获取线程唯一标识符DTid为二维数组,DTid可以直接通过Compute Shader的自身机制获取到;以t2为基准对t1的像素进行横向和纵向的移动校准;t1需要在横向移动的值定义为t1x;t1需要在纵向移动的值定义为t1y;定义2D纹理t3用来接收校准后的t1;t3= t1 [ DTid.x + t1x , DTid.y + t1y ]。5.如权利要求4所述的跨平台视频通信方法,其特征在于,所述S3中,定义2D纹理t4用来接收合成后的全息图像;t4=t2[DTid].rgb*t2[DTid].a+ t3.rgb*(1

t2[DTid].a)。
6.如权利要求5所述的跨平台视频通信方法,其特征在于,所述S4中,将t4的RGB颜色形式转换为YUV的颜色形式;在A中创建三个可共享内存的数组:D1、D2、D3;每个数组的容量为64;将YUV数据中的三个分量分别保存到D1、D2、D3中;在C中定义获取线程标识符为Tid为二维数组;在C中定义获取线程组标识符为Gid为二维数组;因为不同平台GPU对数据分组顺序不同,需要把一个8*8的二维数组校准为按照从左往右,从上到下的顺序展开的一维数组;定义当前像素位置对应与这个一维数组中的序号为ix1;则ix1=(校准后的Tid.y)*8+Tid.x;定义2D纹理t5用来接收转化为YUV颜色形式的数据;t5=t4[Tid+Gid*8].rgb*255用D1,D2,D3分别储存t5对应序号像素的YUV值D1[ix1]=t5.yD2[ix1]=t5.uD3[ix1]=t5.v等待线程组任务完成后,以组为单位完成FDCT计算与量化;对D1,D2,D3进行离散余弦变换(FDCT)操作,变换公式如下:等待线程组任务完成后,定义D1,D2,D3中数据位置的序号为ix2;...

【专利技术属性】
技术研发人员:李清凯李淑英李晔
申请(专利权)人:潍坊幻视软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1