CN102917237B - 一种3d视频播放方法、装置和系统 - Google Patents
一种3d视频播放方法、装置和系统 Download PDFInfo
- Publication number
- CN102917237B CN102917237B CN201210207036.8A CN201210207036A CN102917237B CN 102917237 B CN102917237 B CN 102917237B CN 201210207036 A CN201210207036 A CN 201210207036A CN 102917237 B CN102917237 B CN 102917237B
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- texture
- buffer zone
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明涉及图像处理技术领域,特别是涉及一种3D视频播放方法、装置和系统,所述方法包括:将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中;获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体;在所述3D物体上播放所述视频帧。本发明实施例提供的方法,可以实现视频在3D环境下的播放,从而可以满足视频播放多样性、动态化的需求。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种3D视频播放方法、装置和系统。
背景技术
目前的视频播放大多是基于二维平面来展示的,例如通过视频播放窗口播放视频。视频播放窗口要么是一个全屏的窗口,要么是一个小窗口,展现方式非常单一。现有技术存在一种视频叠加显示的方式,上层视频层对应一个小视频窗口,下层视频层对应一个大视频窗口,可以实现在一个平面中展示两个视频窗口,从一定程度上丰富了视频播放的展现方式。然而,这些方法均是基于二维平面进行展示的,视频播放的形式单一,不能满足多样化的应用需求。随着3D技术的发展,亟需一种基于3D的视频播放方法以满足多样化的应用需求,但现有技术并不存在成熟的解决方案。
发明内容
为解决上述技术问题,本发明实施例提供了一种3D视频播放方法和装置,可以实现3D视频的播放,满足了视频播放的多样化需求。
一方面,本发明实施例提供了一种3D视频播放方法,所述方法包括:
将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中;
获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体;
在所述3D物体上播放所述视频帧。
优选地,当所述视频来自一个视频源时,所述将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中包括:
创建一个视频通道以及与所述视频通道对应的视频后帧缓冲区,将解码后的视频通过所述视频通道保存至所述视频后帧缓冲区中。
优选地,当所述视频来自多个视频源时,所述将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中包括:
创建多个视频通道以及与各视频通道对应的视频后帧缓冲区,将解码后的多个视频分别通过对应的视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
优选地,所述获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体包括:
获取所述视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中;
设置所述3D物体的顶点坐标和纹理坐标;
获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上,绘制所述3D物体。
优选地,当所述视频来自多个视频源时,所述设置所述3D物体的顶点坐标和纹理坐标为:
分别设置所述3D物体每一个面上的顶点坐标和纹理坐标;
所述获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上,绘制所述3D物体为:
获取纹理缓冲区中的一个视频帧作为当前纹理,将当前纹理按照所述3D物体其中一个表面的纹理坐标设定的方式映射到所述表面上,重复上述处理过程,直至绘制完所有的视频帧。
优选地,所述方法还包括:
对所述3D物体进行移动、旋转、变形处理,以实现所述视频的多样化播放。
另一方面,本发明实施例还公开了一种3D视频播放装置,所述装置包括:
存储单元,用于将解码后的视频通过至少一个视频通道保存至与所述视频通道对应的视频后帧缓冲区中;
绘制单元,用于获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体;
播放单元,用于在所述3D物体上播放所述视频帧。
优选地,当所述视频来自一个视频源时,所述存储单元包括:
第一创建子单元,用于创建一个视频通道以及与所述视频通道对应的视频后帧缓冲区;
第一存储子单元,用于将解码后的视频通过所述视频通道保存至所述视频后帧缓冲区中。
优选地,当所述视频来自多个视频源时,所述存储单元包括:
第二创建子单元,用于创建多个视频通道以及与各视频通道对应的视频后帧缓冲区;
第二存储子单元,用于将解码后的多个视频分别通过对应的视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
优选地,所述映射单元包括:
获取子单元,用于获取所述视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中;
设置子单元,用于设置所述3D物体的顶点坐标和纹理坐标;
映射子单元,用于获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上。
优选地,当所述视频来自多个视频源时,所述设置子单元还用于分别设置所述3D物体每一个面上的顶点坐标和纹理坐标;
所述映射子单元还用于获取纹理缓冲区中的一个视频帧作为当前纹理,将当前纹理按照所述3D物体其中一个表面的纹理坐标设定的方式映射到所述表面上,重复上述处理过程,直至绘制完所有的视频帧。
优选地,所述装置还包括:
处理单元,用于对所述3D物体进行移动、旋转、变形处理,以实现所述视频的多样化播放。
再一方面,本发明实施例还公开了一种3D视频播放系统,所述系统包括视频解码器、视频控制器、视频播放器,其中:
所述视频解码器用于对来自一个或多个视频源的视频进行解码处理;
所述视频控制器用于控制将所述视频解码器解码后的视频通过一个或多个视频通道保存至所述视频播放器的视频后帧缓冲区中;
所述视频播放器,用于将来自于一个或多个视频通道的解码后的视频保存至与所述视频通道对应的视频后帧缓冲区中;获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体;在所述3D物体上播放视频帧。
本发明实施例能够达到的有益效果为:本发明实施例提供了一种3D视频播放方法,通过将解码后的视频通过至少一个视频通道保存至与所述视频通道对应的视频后帧缓冲区中,获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体,在所述3D物体上播放视频帧。本发明实施例提供的方法,可以实现视频在3D环境下的播放,从而可以满足视频播放多样性、动态化的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的3D视频播放第一实施例流程图;
图2为本发明实施例提供的3D视频播放第二实施例流程图;
图3A为本发明实施例提供的顶点坐标示意图;
图3B为本发明实施例提供的视频帧对应的纹理坐标示意图;
图4为本发明实施例提供的3D视频播放第三实施例流程图;
图5为本发明实施例提供的3D视频播放系统示意图;
图6为本发明实施例提供的视频控制器示意图;
图7为本发明实施例提供的3D视频播放装置示意图。
具体实施方式
在现有技术中,视频播放大多是基于二维平面来展示的,视频解码器在对视频进行解码处理后直接输出到视频层,只能实现视频的缩放、剪裁等处理,不能实现多样化的应用。本发明实施例提供了一种3D视频播放方法和装置,可以实现3D视频的播放,满足了视频播放的多样化需求。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明实施例提供的方法可以应用于嵌入式设备环境中。
参见图1,为本发明提供的3D视频播放方法第一实施例流程图,所述方法包括:
S101,将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
在本发明实施例中,视频后帧缓冲区是视频解码器解码视频后用于存放视频帧的缓冲区,该视频后帧缓冲区中的视频帧是用来作为3D视频纹理的基础。
S102,获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体。
S103,在所述3D物体上播放所述视频帧。
在本发明第一实施例中,提供了一种3D视频播放方法,通过将解码后的视频通过至少一个视频通道保存至与所述视频通道对应的视频后帧缓冲区中,获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体,在所述3D物体上播放视频帧。本发明实施例提供的方法,可以实现视频在3D环境下的播放,从而可以满足视频播放多样性、动态化的需求。
下面结合几个具体实施例对本发明提供的方法进行详细的介绍,所述实施例均是对图1所示实施例的改进。
在本发明第二实施例中,在3D物体上播放的视频来自同一个视频源。在这一实施例中,本发明将以六面体为例进行说明,当然本发明不限定3D物体的具体形状,本领域技术人员可以理解的是,在不付出创造性劳动下获取的其他实施方式均属于本发明的保护范围。
参见图2,为本发明实施例提供的3D视频播放方法第二实施例流程图。
S201,构建3D物体。
构建3D物体空间模型,可以根据实际需求场景构建3D物体模型。3D物体模型可以是四面体、六面体、八面体、锥形、半球形,也可以是一个不规则物体模型。在本发明第二实施例中,是以六面体为例进行说明的。可选的,还可以设置3D物体的特效或属性,例如可以设置六面体的属性从全透明逐步渐变到不透明;例如可以设置3D物体的动态效果,例如可以设置六面体从屏幕的上方下落到屏幕中间。举例进行说明,可以这样设置:当六面体在屏幕上方的时候处于完全透明的状态,在六面体下落过程中逐步变化成不透明,当六面体处于屏幕正中间时,处于完全不透明的状态。当然,也可以根据需要,由用户或者系统设定其他特效和属性。
S202,设置3D物体的顶点坐标。
3D物体模型是由多个顶点构成的,至少相邻的3个顶点在3D环境中可以构成一个面。3D物体模型是由众多面构成的。以六面体为例,六面体有8个顶点,每四个顶点构成六面体的一个表面。在本发明这一实施例中,可以创建物体顶点缓冲区,并将物体顶点数据存储至顶点缓冲区中。可选地,可以创建物体顶点数据的索引缓冲区,将绘制物体的顶点位于顶点缓冲区的索引位置存储在索引缓冲区中,以节省存储空间。
S203,设置3D物体的纹理坐标。
为了将视频映射到3D物体上,需要构建纹理坐标,并建立纹理坐标和物体的顶点坐标之间的对应关系。简单地说,纹理坐标是为了将视频帧图形以什么样的方式映射到物体表面的一种方法。为了将视频帧映射到3D建模的表面上,需要使用建模物体对应的纹理坐标来划分,且纹理坐标和物体的顶点是一一对应的。假如物体由4个顶点构成的一个面,那么可以将视频帧的左下角、右下角、左上角、右上角作为纹理的坐标点和物体的坐标点对应起来;如果一个物体是一个六面体(如图3A所示),这个物体有8个顶点;假设有一个视频帧(如图3B所示),将视频帧划分成6个等份,可以建立如表1所示的映射关系。
表1
六面体 | 物体顶点坐标 | 视频帧纹理坐标 |
正前面 | va,vb,vd,vc | ta,tb,te,tf |
右侧面 | vb,vg,vc,vh | tb,tc,tf,tg |
正后面 | vg,vf,vh,ve | tc,td,tg,th |
上面 | vf,vg,va,vb | tg,th,tk,tl |
右侧面 | ve,vf,vd,va | tf,tg,tj,tk |
底面 | vh,ve,vc,vd | te,tf,ti,tj |
这样,将一个视频帧分成了六个部分,每一个部分的顶点与六面体的每一个顶点构成一一对应关系。
在本发明第二实施例中,纹理坐标的范围为[0.0,1.0],设定的纹理坐标与实际的纹理的大小没有关系,即与视频帧的大小没有关系。一般地,纹理映射到物体表面上,是这个物体表面对应的纹理坐标值的大小(例如百分比)来确定的。在不同物体模型中,对应不同的纹理坐标。由于物体的形状、物体的精细程度不一样,其纹理坐标也是不一样的。
前面提到,纹理坐标是为了将视频帧图形以什么样的方式映射到物体表面的一种方法。具体的,在本发明第二实施例中,是将视频帧分成六等分,分别映射到六面体的六个表面上。本领域技术人员可以理解的是,也可以选择其他映射方式,例如将视频的全部、一半或者是视频的某一个区域映射到3D物体表面。本发明对此不进行限定。
S204,将解码后的视频通过一个视频通道保存至视频后帧缓冲区中。
在本发明第二实施例中,在3D物体上播放的视频来自同一个视频源,由视频解码器对视频进行解码。视频控制器负责控制将解码后的视频通过视频通道缓存至视频后帧缓冲区中。在本发明实施例中,视频后帧缓冲区是视频解码器解码处理的视频帧存放的临时缓冲区,用于存放视频帧。S205,获取视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中。
当将视频保存到视频后帧缓冲区中,会通知3D上下文环境视频帧纹理改变,由3D上下文环境集合纹理缓冲区,将视频帧写入到纹理缓冲区中。具体的,在本发明第二实施例中,创建了纹理缓冲区,用于存储视频纹理对象。预先创建纹理对象,并建立视频控制对象与纹理对象的对应关系。具体的,可以使用标准的WebGL语句createTexture()创建纹理对象,并为其分配纹理存储空间。设置滤波方式,设置滤波方式是为了以哪种合理的方式采样视频帧纹理映射到物体表面上。可以根据物体的大小、远近、视频帧的大小确定是否需要设定mipmap形式,通过mipmap可以更快质量更好地将纹理映射到物体表面上。其中,视频控制对象可以是纯Javascript对象,也可以是HTML元素对象。激活纹理对象,将视频帧复制到纹理缓冲区中。如果首次激活,则会为纹理对象分配纹理存储空间。
S206,获取纹理缓冲区中的视频帧作为当前纹理。
S207,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上。
按照纹理坐标与顶点坐标的对应关系,采样纹理,将视频帧作为纹理映射到3D物体表面上。
S208,绘制所述3D物体。
把视频帧作为纹理映射到物体的各个表面,绘制3D物体。
S209,在3D物体上播放所述视频。
将绘制好的3D物体输出到3D帧缓冲区中,再将帧缓冲区中的图像输入到canvas画布中进行显示播放。在本发明实施例中,使用canvas标签创建画布,该画布是用来展示3D视频最终结果的区域。画布的大小一般不小于一个像素,不大于屏幕的最大尺寸。如设置canvas的宽为500,高位400,那么设置的这个画布的大小为500×400,所展示的3D的最大区域为该画布的区域。
通过以上步骤,可以实现一帧视频的播放。重复步骤S205至S209,可以将视频不断的绘制到3D物体上。
在本发明另一实施例中,进一步地,在绘制完3D物体后,可以对所述3D物体进行旋转、移动、变形等操作,以实现视频的多样化播放。具体地,对所述3D物体围绕自身进行翻转,可以看到每一个面上播放的视频图像;将物体从3维空间中进行移动,可以调整视频位置或大小;将物体进行变形处理,如将立方体的六个面逐步展开到一个平面视频播放,再由这个平面视频还原成六个面视频播放。这样可以实现视频的多样化播放。
在本发明第二实施例中,通过视频解码器对视频进行解码处理,视频控制器控制将解码后视频通过视频通道存储至相应的视频后帧缓冲区中,并从视频后帧缓冲区中获取视频帧保存至纹理缓冲区中。从纹理缓冲区中获取一个视频帧作为当前纹理,根据预设的纹理坐标与顶点坐标的对应关系将视频帧作为当前纹理映射到3D物体表面上,并输出显示所述3D物体。由此可以实现视频在3D物体上的播放显示。进一步地,可以对所述3D物体进行旋转、移动、变形等操作,以实现视频的多样化播放。
参见图4,为本发明实施例提供的3D视频播放方法第三实施例流程图。
在本发明第三实施例中,与第二实施例不同的是,可以实现来自多个视频源的多个视频在3D物体表面上进行播放。仍以六面体为例,本发明第三实施例可以实现六面体的六个表面均可以作为一个单独的视频播放窗口,分别播放来自不同视频源的视频,每一面播放的视频来源不同。
S401,构建3D物体。
构建多个视频作为纹理映射的3D物体,例如六面体,可以构建6个视频播放面,每一面都可以作为单独的视频播放窗口。
S402,设置3D物体的每一个面的顶点坐标。
3D物体模型是由多个顶点构成的,至少相邻的3个顶点在3D环境中可以构成一个面。3D物体模型是由众多面构成的。以六面体为例,六面体有8个顶点,每四个顶点构成六面体的一个表面。在本发明这一实施例中,可以创建物体顶点缓冲区,并将物体顶点数据存储至顶点缓冲区中。可选地,可以创建物体顶点数据的索引缓冲区,将绘制物体的顶点位于顶点缓冲区的索引位置存储在索引缓冲区中,以节省存储空间。
S403,设置3D物体每一个面的纹理坐标。
为了将视频映射到3D物体上,需要构建纹理坐标,并建立纹理坐标和物体的顶点坐标之间的对应关系。在本发明第三实施例中,依照第二实施例提供的方法,分别为每一个视频播放面设定纹理坐标。每一个视频播放面对应来自一个视频通道的视频。每一个播放面映射的方式可以相同,也可以不同。
S404,将解码后的多个视频分别通过对应的视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
在本发明第三实施例中,与第二实施例不同的是,视频来自多个视频源。可以建立多个视频通道,并建立与各视频通道对应的多个视频后帧缓冲区。视频控制器可以设定某一路视频通过对应的视频通道保存至对应的视频后帧缓冲区中。来自不同视频源的视频数据保存至不同的视频后帧缓冲区中。进一步地,可以建立视频后帧缓冲区与视频播放面的对应关系,以实现同一视频源的视频在同一个视频播放面的对应播放。
S405,获取视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中。
在本发明第三实施例中,创建了多个纹理缓冲区,用于存放不同的视频纹理对象。一般的,每一个纹理缓冲区中存放一帧视频图像。
S406,获取其中一个纹理缓冲区中的视频帧作为当前纹理。
S407,将当前纹理按照所述纹理坐标设定的方式映射到3D物体的其中一个表面上。
在本发明第三实施例中,通过建立的纹理坐标,将来自一个视频源的一帧视频映射到3D物体的一个播放表面上,这样可以实现3D物体的不同表面同时播放不同的视频。用户可以对3D物体进行旋转、移动操作,以选择想要观看的视频。
S408,绘制所述3D物体的其中一个表面。
S409,重复步骤S406至S408,直至绘制完所有的视频帧。
S410,在3D物体上播放所述视频。
通过以上步骤,可以实现每一个视频播放面播放一帧视频。重复步骤S405至S409,可以将视频不断的绘制到3D物体上。
在本发明第三实施例中,可以将来自多个视频源的不同视频分别映射在3D物体的一个表面上,这样不同的播放窗口即可播放不同的视频。具体应用时,用户可以对3D物体进行旋转操作,选取其中一面视频窗口播放的视频进行观看。用户还可以对3D物体进行变形操作,展开3D物体,实现多个视频同时播放等效果。以上只是列举本发明实施例几种实现方式,本领域技术人员还可以在不付出创造性劳动下获取其他多样化的播放方式,均属于本发明的保护范围。
在本发明第三实施例中,通过视频解码器对视频进行解码处理,视频控制器控制将解码后的多个视频通过不同的视频通道存储至与所述视频通道对应的视频后帧缓冲区中,并从视频后帧缓冲区中获取视频帧保存至纹理缓冲区中。从纹理缓冲区中获取一个视频帧作为当前纹理,根据预设的纹理坐标与顶点坐标的对应关系将视频帧作为当前纹理映射到3D物体的一个表面上,直至绘制完所有的视频帧,并输出显示所述3D物体。由此可以实现不同的视频在3D物体上不同表面的播放显示。进一步地,可以对所述3D物体进行旋转、移动、变形等操作,以实现视频的多样化播放。
参见图5,为本发明实施例提供的3D视频播放系统示意图。
所述系统包括视频解码器501、视频控制器502、视频播放器503,其中:
所述视频解码器501用于对来自一个或多个视频源的视频进行解码处理。
具体地,视频解码器是电视终端的视频解码器,可以是硬件解码器,也可以是软件解码器。
所述视频控制器502用于控制将所述视频解码器解码后的视频通过一个或多个视频通道保存至所述视频播放器的视频后帧缓冲区中。
在本发明一个具体实施例中,视频控制器有播放、暂停、继续、停止等状态控制,在这几种情况下会产生的视频帧分别为:
(1)播放:产生连续的视频帧;
(2)暂停:产生一个静帧;
(3)继续:和播放一致,产生连续的视频帧;
(4)停止:会出现两种情况,静帧或黑屏。
在3D设备环境中,视频控制器还用于控制视频的输出为视频后帧缓冲区,作为3D的纹理的基础。视频控制器的流程如图6所示。其中,视频控制器可以设置视频的来源,视频来源可以是DVBcable、satellite、terrestrial、rtsp、http、vod等。视频控制器主要用于将视频解码器解码出来的视频帧缓存到视频后帧缓冲区中。
所述视频播放器503,用于将来自于一个或多个视频通道的解码后的视频保存至与所述视频通道对应的视频后帧缓冲区中;获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体;在所述3D物体上播放视频帧。
参见图7,为本发明实施例提供的3D视频播放装置示意图。
所述装置包括:
存储单元701,用于将解码后的视频通过至少一个视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
绘制单元702,用于获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体。
播放单元703,用于在所述3D物体上播放所述视频帧。
优选地,当所述视频来自一个视频源时,所述存储单元包括:
第一创建子单元,用于创建一个视频通道以及与所述视频通道对应的视频后帧缓冲区;
第一存储子单元,用于将解码后的视频通过所述视频通道保存至所述视频后帧缓冲区中。
优选地,当所述视频来自多个视频源时,所述存储单元包括:
第二创建子单元,用于创建多个视频通道以及与各视频通道对应的视频后帧缓冲区;
第二存储子单元,用于将解码后的多个视频分别通过对应的视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
优选地,所述映射单元包括:
获取子单元,用于获取所述视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中;
设置子单元,用于设置所述3D物体的顶点坐标和纹理坐标;
映射子单元,用于获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上。
优选地,当所述视频来自多个视频源时,所述设置子单元还用于分别设置所述3D物体每一个面上的顶点坐标和纹理坐标;
所述映射子单元还用于获取纹理缓冲区中的一个视频帧作为当前纹理,将当前纹理按照所述3D物体其中一个表面的纹理坐标设定的方式映射到所述表面上,重复上述处理过程,直至绘制完所有视频帧。
优选地,所述装置还包括:
处理单元,用于对所述3D物体进行移动、旋转、变形处理,以实现所述视频的多样化播放。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种3D视频播放方法,其特征在于,所述方法包括:
将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中;当所述视频通道为多个时,所述视频后帧缓冲区为多个;
获取所述视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中;设置3D物体的顶点坐标和纹理坐标;获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上,绘制所述3D物体;
根据建立的视频后帧缓冲区与视频播放面的对应关系在所述3D物体上播放所述视频帧。
2.根据权利要求1所述的方法,其特征在于,当所述视频来自一个视频源时,所述将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中包括:
创建一个视频通道以及与所述视频通道对应的视频后帧缓冲区,将解码后的视频通过所述视频通道保存至所述视频后帧缓冲区中。
3.根据权利要求1所述的方法,其特征在于,当所述视频来自多个视频源时,所述将解码后的视频通过一个或多个视频通道保存至与所述视频通道对应的视频后帧缓冲区中包括:
创建多个视频通道以及与各视频通道对应的视频后帧缓冲区,将解码后的多个视频分别通过对应的视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
4.根据权利要求1所述的方法,其特征在于,当所述视频来自多个视频源时,所述设置所述3D物体的顶点坐标和纹理坐标为:
分别设置所述3D物体每一个面上的顶点坐标和纹理坐标;
所述获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上,绘制所述3D物体为:
获取纹理缓冲区中的一个视频帧作为当前纹理,将当前纹理按照所述3D物体其中一个表面的纹理坐标设定的方式映射到所述表面上,重复上述处理过程,直至绘制完所有的视频帧。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述3D物体进行移动、旋转、变形处理,以实现所述视频的多样化播放。
6.一种3D视频播放装置,其特征在于,所述装置包括:
存储单元,用于将解码后的视频通过至少一个视频通道保存至与所述视频通道对应的视频后帧缓冲区中;当所述视频通道为多个时,所述视频后帧缓冲区为多个;
绘制单元,用于获取所述视频后帧缓冲区中的视频帧,将所述视频帧作为纹理映射到预设的3D物体上,绘制所述3D物体;
播放单元,用于在所述3D物体上播放所述视频帧;
其中,所述绘制单元包括:
获取子单元,用于获取所述视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中;
设置子单元,用于设置所述3D物体的顶点坐标和纹理坐标;
映射子单元,用于获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上。
7.根据权利要求6所述的装置,其特征在于,当所述视频来自一个视频源时,所述存储单元包括:
第一创建子单元,用于创建一个视频通道以及与所述视频通道对应的视频后帧缓冲区;
第一存储子单元,用于将解码后的视频通过所述视频通道保存至所述视频后帧缓冲区中。
8.根据权利要求6所述的装置,其特征在于,当所述视频来自多个视频源时,所述存储单元包括:
第二创建子单元,用于创建多个视频通道以及与各视频通道对应的视频后帧缓冲区;
第二存储子单元,用于将解码后的多个视频分别通过对应的视频通道保存至与所述视频通道对应的视频后帧缓冲区中。
9.根据权利要求6所述的装置,其特征在于,当所述视频来自多个视频源时,所述设置子单元还用于分别设置所述3D物体每一个面上的顶点坐标和纹理坐标;
所述映射子单元还用于获取纹理缓冲区中的一个视频帧作为当前纹理,将当前纹理按照所述3D物体其中一个表面的纹理坐标设定的方式映射到所述表面上,重复上述处理过程,直至绘制完所有的视频帧。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
处理单元,用于对所述3D物体进行移动、旋转、变形处理,以实现所述视频的多样化播放。
11.一种3D视频播放系统,其特征在于,所述系统包括视频解码器、视频控制器、视频播放器,其中:
所述视频解码器用于对来自一个或多个视频源的视频进行解码处理;
所述视频控制器用于控制将所述视频解码器解码后的视频通过一个或多个视频通道保存至所述视频播放器的视频后帧缓冲区中;当所述视频通道为多个时,所述视频后帧缓冲区为多个;
所述视频播放器,用于将来自于一个或多个视频通道的解码后的视频保存至与所述视频通道对应的视频后帧缓冲区中;获取所述视频后帧缓冲区中的视频帧,将所述视频帧存放到纹理缓冲区中;设置3D物体的顶点坐标和纹理坐标;获取纹理缓冲区中的视频帧作为当前纹理,将当前纹理按照所述纹理坐标设定的方式映射到所述3D物体表面上,绘制所述3D物体;在所述3D物体上播放视频帧。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210207036.8A CN102917237B (zh) | 2012-06-21 | 2012-06-21 | 一种3d视频播放方法、装置和系统 |
HK13107806.4A HK1180857A1 (zh) | 2012-06-21 | 2013-07-04 | 種 視頻播放方法、裝置和系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210207036.8A CN102917237B (zh) | 2012-06-21 | 2012-06-21 | 一种3d视频播放方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102917237A CN102917237A (zh) | 2013-02-06 |
CN102917237B true CN102917237B (zh) | 2015-11-11 |
Family
ID=47615446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210207036.8A Active CN102917237B (zh) | 2012-06-21 | 2012-06-21 | 一种3d视频播放方法、装置和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102917237B (zh) |
HK (1) | HK1180857A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105898344A (zh) * | 2016-04-12 | 2016-08-24 | 乐视控股(北京)有限公司 | 一种全景视频的播放方法和装置 |
CN107197341B (zh) * | 2017-06-02 | 2020-12-25 | 福建星网视易信息系统有限公司 | 一种基于gpu的炫屏显示方法、装置及一种存储设备 |
CN113079408B (zh) * | 2019-12-17 | 2022-11-18 | 北京嗨动视觉科技有限公司 | 视频播放方法、装置和系统 |
CN116778062A (zh) * | 2022-03-10 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340598A (zh) * | 2008-08-07 | 2009-01-07 | 北京衡准科技有限公司 | 一种实现媒体三维播放的方法及装置 |
CN202102716U (zh) * | 2011-05-12 | 2012-01-04 | 福州瑞芯微电子有限公司 | 一种实现三维场景视频播放器 |
-
2012
- 2012-06-21 CN CN201210207036.8A patent/CN102917237B/zh active Active
-
2013
- 2013-07-04 HK HK13107806.4A patent/HK1180857A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340598A (zh) * | 2008-08-07 | 2009-01-07 | 北京衡准科技有限公司 | 一种实现媒体三维播放的方法及装置 |
CN202102716U (zh) * | 2011-05-12 | 2012-01-04 | 福州瑞芯微电子有限公司 | 一种实现三维场景视频播放器 |
Also Published As
Publication number | Publication date |
---|---|
CN102917237A (zh) | 2013-02-06 |
HK1180857A1 (zh) | 2013-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102917237B (zh) | 一种3d视频播放方法、装置和系统 | |
CN101388157B (zh) | 一种电子地图显示方法、装置及设备 | |
CN107423445A (zh) | 一种地图数据处理方法、装置及存储介质 | |
CN102566952B (zh) | 应用于嵌入式数字娱乐点播系统的显示系统和方法 | |
CN106028115A (zh) | 视频播放方法和装置 | |
CN102800119A (zh) | 一种三维曲线的动画展示方法和装置 | |
CN104281426A (zh) | 一种图像显示方法及装置 | |
CN103870256A (zh) | 信息处理的方法及电子设备 | |
CN107533752A (zh) | 用于图形处理的基于表面格式的自适应存储器地址扫描 | |
CN102411791A (zh) | 一种静止图像动态化的方法和设备 | |
CN103020888A (zh) | 图像平移更新显示方法和系统 | |
CN104504085A (zh) | 一种显示统计数据的方法及装置 | |
CN103413353A (zh) | 一种资源展示方法、装置和终端 | |
CN102610142A (zh) | 交互式智能变电站三维漫游和知识点学习展示方法 | |
CN106792093B (zh) | 视频分屏播放方法、装置及播放终端 | |
CN106933454B (zh) | 显示方法和系统 | |
CN111583373A (zh) | 一种模型渲染方法、装置、设备及存储介质 | |
CN111445563A (zh) | 一种图像生成的方法以及相关装置 | |
CN107436765A (zh) | 视图控件的处理方法和装置 | |
CN107679150A (zh) | 海量三维数据快速调度方法 | |
CN204559792U (zh) | 用于显示屏显示立体图像或视频的装置及显示设备 | |
KR101747768B1 (ko) | 디지털 사이니지 출력 방법 | |
CN102654830A (zh) | 利用纹理排料方式优化显存空间的方法 | |
CN103345565A (zh) | 一种用于数据展示基于Flash技术的仪表盘构建方法 | |
CN102364522A (zh) | 一种基于全球划分的大规模气象体数据绘制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1180857 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1180857 Country of ref document: HK |