[发明专利]一种全景直播的渲染实现方法有效
申请号: | 201611146565.6 | 申请日: | 2016-12-13 |
公开(公告)号: | CN106604087B | 公开(公告)日: | 2019-09-10 |
发明(设计)人: | 陈立勇;陈爱青;黄立瑶 | 申请(专利权)人: | 杭州映墨科技有限公司 |
主分类号: | H04N21/414 | 分类号: | H04N21/414;H04N21/44;G06T15/00 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 林超 |
地址: | 310000 浙江省杭州市余杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 全景 直播 渲染 实现 方法 | ||
技术领域
本发明涉及了视频播放渲染方法,尤其是涉及一种全景直播的渲染实现方法。
背景技术
随着手机直播的火爆和全景技术的火爆,现在市面上出现了大量的直播APP和全景视频播放器。直播APP的出现,让大家可以实时分享自己周围的新鲜事物,可以使人们更加近距离的聊天互动。而随着VR技术的发展,全景播放器也层出不穷。全景播放的沉浸式体验让用户可以在观看视频时更加真切地体会到虚拟现实的感觉。虽然两个技术在当下都很火爆,但少有交集,现有技术中缺少了针对全景直播的渲染实现方式。
发明内容
为了解决背景技术中存在的问题,本发明提供了一种全景直播的渲染实现方法。本发明是将全景播放和直播技术手段融合起来,实现全景直播来满足用户更多的需求,并给用户带来更好地体验。
方法首先需要遵循相关的通信协议实现对直播流的接收;再对接收到的数据进行解复用,解码;最后通过OpenGL ES进行渲染,将纹理贴到一个生成的球体模型上,来实现全景的效果,最终实现全景直播。
本发明采用的具体技术方案,包括以下步骤对全景拍摄视频数据进行处理:
1)通过调用相关的接口获取当前手机屏幕的渲染像素,并进一步控制手机屏幕显示的渲染区域大小和位置;
2)创建一个球体模型,球体模型用于后续步骤的纹理贴图;
创建一个球体模型后,将球体模型的上的每个顶点进行绑定,在贴图时将纹理贴到球体模型对应的每个顶点上,这样就将纹理都贴到了球体模型上。
3)实时获取手机内部陀螺仪的旋转矩阵数据,因为手机在播放时需要将手机横置,所以要用旋转矩阵数据转换生成一个4×4的新矩阵,以新矩阵作为OpenGL中的ModelView矩阵,以使得手机上渲染的图像能实时响应手机位置状态的变化;
4)对全景拍摄视频数据中的YUV数据通过计算转换成RGB数据,将RGB数据传到手机的GPU中,由GPU进行渲染,将RGB数据作为纹理贴到球体模型上,虚拟摄像机置于在球体的中心,从虚拟摄像机视角进行全景播放,从而实现全景直播。
本发明是在针对已获得的全景直播的视频数据基础上,采用本方法进行渲染,获得优化的屏幕呈现方法。
所述步骤1)具体为通过手机中软件系统的API获得原始数据,计算后获得屏幕的渲染像素。并利用渲染像素设定在手机屏幕界面上的渲染区域的位置和大小,既能单屏显示,也能实现视频播放的分屏功能,将画面分成左右双屏显示出来。
所述步骤3)具体在进行全景直播时,屏幕显示的画面要根据人的移动做出响应的改变,也就是根据手机的位置状态进行改变,因此需要获取能表示手机位置状态的旋转矩阵CMRotationMatrix,CMRotationMatrix中存放了表达一个三维坐标系的数据。用CMRotationMatrix的数据生成一个新的矩阵b,矩阵b用以下形式表示:
m11,m21,m31,0,
m12,m22,m32,0,
m13,m23,m33,0,
0,0,0,1
其中,m11,m12,m13表示旋转矩阵CMRotationMatrix中X轴的三个数据,m21,m22,m23表示旋转矩阵CMRotationMatrix中Y轴的三个数据;m31,m32,m33表示旋转矩阵CMRotationMatrix中Z轴的三个数据;
XYZ三维坐标系中,X轴是沿平行于屏幕的水平方向,Y轴是沿平行于屏幕的竖直方向,Z轴是沿人眼视线方向,屏幕垂直于人眼视线方向;因为手机已经横置,所以要重新调整手机的三维坐标系,所以对生成的矩阵b按照以下方式进行处理:先将矩阵b绕x轴根据右手定则旋转负90度得到矩阵B,接着将矩阵b绕z轴根据右手定则旋转正90度的矩阵A;
然后将矩阵A和矩阵B相乘得到矩阵modelViewMatrix,计算如下:
modelViewMatrix=A×B
以得到的矩阵modelViewMatrix作为OpenGL中的ModelView矩阵,利用ModelView矩阵和Projection Matrix矩阵相乘得到全新矩阵,将全新矩阵传到Vertex Shader中,并将全新矩阵数据与顶点数据相乘后最后传到GPU中,以使得手机上渲染的图像能实时响应手机位置状态的变化。
所述步骤4)中是将全景拍摄视频数据中的YUV数据通过OpenGL中的Shading Language传到GPU中计算转换为RGB数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州映墨科技有限公司,未经杭州映墨科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611146565.6/2.html,转载请声明来源钻瓜专利网。