一种图像帧渲染方法、装置及电子设备制造方法及图纸

技术编号:20081849 阅读:24 留言:0更新日期:2019-01-15 02:53
本发明专利技术实施例提供了一种图像帧渲染方法,可以确定对视频文件解码得到的图像帧的大小,且按照图像帧的大小,在显存中创建纹理缓存,以及将图像帧备份至纹理缓存中,以及对纹理缓存中存储的图像帧进行渲染,由于纹理缓存的存在,使解码端得到的图像帧可以备份至纹理缓存中,从而使渲染端对纹理缓存中备份的图像帧进行渲染的同时,解码端可以进行下一图像帧的解码,从而使解码端不必等到渲染结束再去解码下一图像帧,且对于软解码得到的图像帧而言,不需要在内存中进行备份操作,实现了在不增加内存消耗的情况下,解码与渲染的解耦。

A Method, Device and Electronic Equipment for Image Frame Rendering

The embodiment of the present invention provides an image frame rendering method, which can determine the size of the image frame decoded from the video file, create a texture buffer in the display memory according to the size of the image frame, backup the image frame to the texture buffer, and render the image frame stored in the texture buffer. Because of the existence of the texture buffer, the image frame obtained by the decoder can be obtained. By backing up to the texture buffer, the decoder can decode the next image frame while rendering the backup image frame in the texture buffer, so that the decoder does not have to wait until the end of the rendering to decode the next image frame, and for the soft decoded image frame, backup operation is not needed in memory, so that the memory consumption is not increased. In this case, decoding and rendering are decoupled.

【技术实现步骤摘要】
一种图像帧渲染方法、装置及电子设备
本专利技术涉及视频播放
,特别是涉及一种图像帧渲染方法、装置及电子设备。
技术介绍
现有的视频播放技术,一般可以先对视频文件进行硬解码,然后进行渲染操作,也可以先对视频文件进行软解码,再进行渲染操作。其中,通过硬解码得到的图像帧保存显存中,但是为了避免覆盖之前解码得到的还未进行渲染的图像帧,会解码一帧,渲染一帧,再解码下一帧,渲染下一帧;而通过软解码得到的图像帧保存在内存中,同时会对解码得到的图像帧进行数据备份,得到备份图像帧,当需要进行渲染操作时,会将备份图像帧加载到显存中进行渲染。专利技术人在实现本专利技术的过程中发现,现有技术至少存在如下问题:现有的硬解码-渲染无法做到解码与渲染的解耦,即解码一帧后,在对该帧渲染完成之前,无法解码下一帧,也就是说,无法实现解码与渲染的分离,而现有的软解码-渲染虽然实现了解码与渲染的解耦,但是同时也增加了内存的消耗。
技术实现思路
本专利技术实施例的目的在于提供一种图像帧渲染方法,以实现在不增加内存消耗的情况下,实现视频解码与渲染的解耦。具体技术方案如下:本专利技术实施提供了一种图像帧渲染方法,所述方法包括:确定对视频文件解码得到的图像帧的大小;按照所述图像帧的大小,在显存中创建纹理缓存;将所述图像帧备份至所述纹理缓存中;对所述纹理缓存中存储的所述图像帧进行渲染。进一步的,所述确定对视频文件解码得到的图像帧的大小,包括:获取对视频文件解码得到的图像帧的宽度、高度及格式类型;基于所述图像帧的宽度、高度及格式类型,计算出所述图像帧的大小。进一步的,所述对所述纹理缓存中存储的所述图像帧进行渲染,包括:基于所述图像帧的格式类型,确定对应所述图像帧的格式类型的着色器;将所述纹理缓存中的所述图像帧绑定到纹理单元;调用所述着色器,通过对绑定到纹理单元的所述图像帧进行采样,获取所述图像帧的图像值;调用所述着色器对获取到的所述图像帧的所述图像值进行计算并渲染输出。进一步的,所述图像帧为采用硬解码方式对所述视频文件解码得到的;所述将所述图像帧备份至所述纹理缓存中,包括:将硬解码得到的存储于显存中的所述图像帧通过离屏渲染的方式备份至所述纹理缓存中;或着,将硬解码得到的存储于显存中的所述图像帧通过显存拷贝的方式备份至所述纹理缓存中。进一步的,所述图像帧为采用软解码方式对所述视频文件解码得到的;所述将所述图像帧存储至所述纹理缓存中,包括:调取纹理加载函数;利用所述纹理加载函数,将软解码得到的存储于内存中的所述图像帧加载至所述纹理缓存中。本专利技术实施还提供了一种图像帧渲染装置,所述装置包括:大小确定模块,用于确定对视频文件解码得到的图像帧的大小;缓存创建模块,用于按照所述图像帧的大小,在显存中创建纹理缓存;图像帧备份模块,用于将所述图像帧备份至所述纹理缓存中;图像帧渲染模块,用于对所述纹理缓存中存储的所述图像帧进行渲染。进一步的,所述大小确定模块,具体用于获取对视频文件解码得到的图像帧的宽度、高度及格式类型,并基于所述图像帧的宽度、高度及格式类型,计算出所述图像帧的大小。进一步的,所述图像帧渲染模块,具体用于基于所述图像帧的格式类型,确定对应所述图像帧的格式类型的着色器,并将所述纹理缓存中的所述图像帧绑定到纹理单元,并调用所述着色器,通过对绑定到纹理单元的所述图像帧进行采样,获取所述图像帧的图像值,以及调用所述着色器对获取到的所述图像帧的所述图像值进行计算并渲染输出。进一步的,当所述图像帧为采用硬解码方式对所述视频文件解码得到的时,所述图像帧备份模块,具体用于将硬解码得到的存储于显存中的所述图像帧通过离屏渲染的方式备份至所述纹理缓存中;或者,将硬解码得到的存储于显存中的所述图像帧通过显存拷贝的方式备份至所述纹理缓存中。进一步的,当所述图像帧为采用软解码方式对所述视频文件解码得到的时,所述图像帧备份模块,具体调取纹理加载函数,并利用所述纹理加载函数,将软解码得到的存储于内存中的所述图像帧加载至所述纹理缓存中。本专利技术实施还提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求上述任一图像帧渲染方法的步骤。本专利技术实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一图像帧渲染方法的步骤。本专利技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一图像帧渲染方法。本专利技术实施例提供的一种图像帧渲染方法,可以确定对视频文件解码得到的图像帧的大小,并按照图像帧的大小,在显存中创建纹理缓存,以及将图像帧备份至纹理缓存中,以及对纹理缓存中存储的图像帧进行渲染,由于纹理缓存的存在,使解码端得到的图像帧可以备份至纹理缓存中,从而使渲染端对纹理缓存中备份的图像帧进行渲染的同时,解码端可以进行下一图像帧的解码,从而使解码端不必等到渲染结束再去解码下一图像帧,且对于软解码得到的图像帧而言,不需要在内存中进行备份操作,实现了在不增加内存消耗的情况下,解码与渲染的解耦。当然,实施本专利技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为本专利技术一个实施例提供的图像帧渲染方法的流程图;图2为本专利技术一个实施例提供的图像帧渲染装置的结构示意图;图3为本专利技术一个实施例提供的电子设备的结构示意图。具体实施方式为了给出实现在不增加内存消耗的情况下,解码与渲染的解耦的实现方案,本专利技术实施例提供了一种图像帧渲染方法、装置及电子设备,以下结合说明书附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。在本专利技术的一个实施例中,提供一种图像帧渲染方法,如图1所示,该方法包括:S101:确定对视频文件解码得到的图像帧的大小。本步骤中,可以通过获取对视频文件解码得到的图像帧的宽度、高度及格式类型,并基于图像帧的宽度、高度及格式类型,计算出图像帧的大小,对于格式类型为RGB24的图像帧,其图像帧大小计算公式为size=width×heigth×3Byte,其中width代表图像帧的宽度,heigth代表图像帧的高度,对于格式类型为RGB32的图像帧,其图像帧的大小计算公式为size=width×heigth×4Byte,而对于图像格式为YUV420的图像帧,其图像帧的大小计算公式为size=width×heigth×1.5Byte,优选的,可以通过解码器从解码之后的编码参数中解析获得图像帧的宽度和高度。S102:按照图像帧的大小,在显存中创建纹理缓存。本步骤中,可以通过调用OpenGL(开放图形库,OpenGraphicsLibrary)中glgentextures()函数在按照图像帧的大小在显存中创建纹理缓存,优先的,在创建纹理缓存的同时会生本文档来自技高网...

【技术保护点】
1.一种图像帧渲染方法,其特征在于,所述方法包括:确定对视频文件解码得到的图像帧的大小;按照所述图像帧的大小,在显存中创建纹理缓存;将所述图像帧备份至所述纹理缓存中;对所述纹理缓存中存储的所述图像帧进行渲染。

【技术特征摘要】
1.一种图像帧渲染方法,其特征在于,所述方法包括:确定对视频文件解码得到的图像帧的大小;按照所述图像帧的大小,在显存中创建纹理缓存;将所述图像帧备份至所述纹理缓存中;对所述纹理缓存中存储的所述图像帧进行渲染。2.根据权利要求1所述的方法,其特征在于,所述确定对视频文件解码得到的图像帧的大小,包括:获取对视频文件解码得到的图像帧的宽度、高度及格式类型;基于所述图像帧的宽度、高度及格式类型,计算出所述图像帧的大小。3.根据权利要求2所述的方法,其特征在于,所述对所述纹理缓存中存储的所述图像帧进行渲染,包括:基于所述图像帧的格式类型,确定对应所述图像帧的格式类型的着色器;将所述纹理缓存中的所述图像帧绑定到纹理单元;调用所述着色器,通过对绑定到纹理单元的所述图像帧进行采样,获取所述图像帧的图像值;调用所述着色器对获取到的所述图像帧的所述图像值进行计算并渲染输出。4.根据权利要求1所述的方法,其特征在于,所述图像帧为采用硬解码方式对所述视频文件解码得到的;所述将所述图像帧备份至所述纹理缓存中,包括:将硬解码得到的存储于显存中的所述图像帧通过离屏渲染的方式备份至所述纹理缓存中;或着,将硬解码得到的存储于显存中的所述图像帧通过显存拷贝的方式备份至所述纹理缓存中。5.根据权利要求1所述的方法,其特征在于,所述图像帧为采用软解码方式对所述视频文件解码得到的;所述将所述图像帧存储至所述纹理缓存中,包括:调取纹理加载函数;利用所述纹理加载函数,将软解码得到的存储于内存中的所述图像帧加载至所述纹理缓存中。6.一种图像帧渲染装置,其特征在于,所述装置包括:大小确定模块,用于确定对视频文件解码得到的图像帧的大小;缓存创建模块,用于按照...

【专利技术属性】
技术研发人员:刘小辉陈建生
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

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

1