CN115529492A - 一种图像渲染方法、装置和电子设备 - Google Patents

一种图像渲染方法、装置和电子设备 Download PDF

Info

Publication number
CN115529492A
CN115529492A CN202211007931.5A CN202211007931A CN115529492A CN 115529492 A CN115529492 A CN 115529492A CN 202211007931 A CN202211007931 A CN 202211007931A CN 115529492 A CN115529492 A CN 115529492A
Authority
CN
China
Prior art keywords
frame
data
slave
media asset
player
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.)
Pending
Application number
CN202211007931.5A
Other languages
English (en)
Inventor
朱宗花
李斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Visual Technology Co Ltd
Original Assignee
Hisense Visual Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hisense Visual Technology Co Ltd filed Critical Hisense Visual Technology Co Ltd
Priority to CN202211007931.5A priority Critical patent/CN115529492A/zh
Publication of CN115529492A publication Critical patent/CN115529492A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供一种图像渲染方法、装置和电子设备,涉及视频编辑技术领域,用于解决如何降低终端设备在单个窗口中对多个媒资数据进行渲染时所占用的计算资源的问题。该方法包括:响应于对目标应用中目标功能的选择操作,获取一个主媒资数据、至少一个从媒资数据,以及主媒资数据的第一帧率信息;创建一个用于渲染主媒资数据的主播放器,以及至少一个用于渲染从媒资数据的从播放器;在主播放器预加载完主媒资数据,且从播放器预加载完从媒资数据的情况下,起播主播放器和从播放器;对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像;对目标纹理图像进行渲染,得到当前帧的显示图像。

Description

一种图像渲染方法、装置和电子设备
技术领域
本公开涉及视频编辑技术领域,尤其涉及一种图像渲染方法、装置和电子设备。
背景技术
目前,在视频编辑技术领域,终端设备在单个窗口中对一个媒资数据(如:视频)进行渲染时,终端设备可以很好地对该视频进行渲染。当终端设备在单个窗口中对多个媒资数据进行渲染时,此时会占用大量的计算资源,当终端设备的配置参数(如:内存、处理器等)较低时,容易出现闪频的问题,导致用户的体验较低。
因此,如何降低终端设备在单个窗口中对多个媒资数据进行渲染时所占用的计算资源,成为了一个亟待解决的问题。
发明内容
为了解决上述技术问题,本公开提供了一种图像渲染方法、装置和电子设备。
本公开的技术方案如下:
第一方面,本公开提供一种图像渲染方法,包括:响应于对目标应用中目标功能的选择操作,获取一个主媒资数据、至少一个从媒资数据,以及主媒资数据的第一帧率信息;创建一个用于渲染主媒资数据的主播放器,以及至少一个用于渲染从媒资数据的从播放器;其中,一个从播放器渲染一个从媒资数据,从播放器不对从媒资数据中的音频数据进行解析;在主播放器预加载完主媒资数据,且从播放器预加载完从媒资数据的情况下,起播主播放器和从播放器;对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像;其中,目标帧数据包括主播放器在当前帧的帧数据,或者目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;对目标纹理图像进行渲染,得到当前帧的显示图像。
在一些可实施的示例中,对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像前,本公开提供的图像渲染方法还包括:根据第一帧率信息,确定第一帧率信息为固定帧率的情况下,按照主媒资数据的媒资时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步;对于每个从播放器执行如下操作:对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据;对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像,包括:在从播放器在当前帧不存在帧数据的情况下,对从播放器在前一帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像,包括:在从播放器在当前帧存在帧数据的情况下,对从播放器在当前帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些可实施的示例中,本公开提供的图像渲染方法还包括:对剔除后的从媒资数据抓取帧图像时,若当前帧无帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧不存在帧数据;对剔除后的从媒资数据抓取帧图像时,若当前帧存在帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧存在帧数据。
在一些可实施的示例中,对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据,包括:获取主媒资数据在当前帧前的每一帧对应的渲染时长的第一总时长,以及从媒资数据在当前帧前的每一帧对应的渲染时长的第二总时长;根据第一总时长和第二总时长,对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,根据第一总时长和第二总时长,对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据,包括:
在第一总时长与第二总时长之差的绝对值大于或等于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,丢弃从媒资数据中当前帧对应的帧数据;在第一总时长与第二总时长之差的绝对值小于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,保留从媒资数据中当前帧对应的帧数据。
在一些可实施的示例中,本公开提供的图像渲染方法还包括:根据第一帧率信息,确定第一帧率信息不是固定帧率的情况下,按照***时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步。
第二方面,本公开提供一种图像渲染装置,包括:处理单元,用于响应于对目标应用中目标功能的选择操作,控制获取单元获取一个主媒资数据、至少一个从媒资数据,以及主媒资数据的第一帧率信息;处理单元,还用于创建一个用于渲染获取单元获取的主媒资数据的主播放器,以及至少一个用于渲染获取单元获取的从媒资数据的从播放器;其中,一个从播放器渲染一个从媒资数据,从播放器不对从媒资数据中的音频数据进行解析;处理单元,还用于在主播放器预加载完获取单元获取的主媒资数据,且从播放器预加载完获取单元获取的从媒资数据的情况下,起播主播放器和从播放器;处理单元,还用于对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像;其中,目标帧数据包括主播放器在当前帧的帧数据,或者目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;处理单元,还用于对目标纹理图像进行渲染,控制显示单元显示得到当前帧的显示图像。
在一些可实施的示例中,处理单元,还用于根据获取单元获取的第一帧率信息,确定第一帧率信息为固定帧率的情况下,按照主媒资数据的媒资时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步;处理单元,还用于对于每个从播放器执行如下操作:对获取单元获取的从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据;处理单元,具体用于在从播放器在当前帧不存在帧数据的情况下,对从播放器在前一帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;处理单元,具体用于在从播放器在当前帧存在帧数据的情况下,对从播放器在当前帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些可实施的示例中,处理单元,还用于对剔除后的从媒资数据抓取帧图像时,若当前帧无帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧不存在帧数据;处理单元,还用于对剔除后的从媒资数据抓取帧图像时,若当前帧存在帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧存在帧数据。
在一些可实施的示例中,获取单元,具体用于获取主媒资数据在当前帧前的每一帧对应的渲染时长的第一总时长,以及从媒资数据在当前帧前的每一帧对应的渲染时长的第二总时长;处理单元,具体用于根据获取单元获取的第一总时长和获取单元获取的第二总时长,对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,处理单元,具体用于在获取单元获取的第一总时长与获取单元获取的第二总时长之差的绝对值大于或等于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,丢弃获取单元获取的从媒资数据中当前帧对应的帧数据;处理单元,具体用于在获取单元获取的第一总时长与获取单元获取的第二总时长之差的绝对值小于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,保留获取单元获取的从媒资数据中当前帧对应的帧数据。
在一些可实施的示例中,处理单元,还用于根据获取单元获取的第一帧率信息,确定第一帧率信息不是固定帧率的情况下,按照***时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步。
第三方面,本公开提供一种电子设备,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在执行计算机程序时,使得电子设备实现如第一方面提供的任一项的图像渲染方法。
第四方面,本发明提供一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行如第一方面提供的任一项的图像渲染方法。
第五方面,本发明提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面提供的任一项的图像渲染方法。
需要说明的是,上述计算机指令可以全部或者部分存储在第一计算机可读存储介质上。其中,第一计算机可读存储介质可以与图像渲染装置的处理器封装在一起的,也可以与图像渲染装置的处理器单独封装,本公开对此不作限定。
本公开中第二方面、第三方面、第四方面以及第五方面的描述,可以参考第一方面的详细描述;并且,第二方面、第三方面、第四方面以及第五方面的描述的有益效果,可以参考第一方面的有益效果分析,此处不再赘述。
在本公开中,上述图像渲染装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本公开类似,属于本公开权利要求及其等同技术的范围之内。
本公开的这些方面或其他方面在以下的描述中会更加简明易懂。
本公开提供的技术方案与现有技术相比具有如下优点:
用户需要对多个媒资数据进行渲染时,可以对目标应用的目标功能进行选择操作,目标用于在接收到对目标功能的选择操作后,创建主播放器和至少一个从播放器。当从播放器有多个时,此时由于从播放器不对从媒资数据中的音频数据进行解析,从而可以降低对计算资源的占用。进一步地,在主播放器和从播放器加载完媒资数据后,起播主播放器和从播放器。进而对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像。之后,对目标纹理图像进行渲染,得到当前帧的显示图像。
此外,本公开提供的图像渲染方法应用在单个窗口中对多个媒资数据进行渲染的场景时,此时目标用于在创建从播放器时,由于从播放器中不存在对应音频数据进行解析的处理单元,如此可以降低多个从播放器在解析音频数据时所占用的计算资源。由于,目标应用在单个窗口中对多个媒资数据进行渲染时,从播放器所占用的计算资源减小了,因此可以降低目标应用在单个窗口中对多个媒资数据进行渲染时所占用的计算资源,解决了现有技术中如何降低终端设备在单个窗口中对多个媒资数据进行渲染时所占用的计算资源的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的图像渲染方法的流程示意图之一;
图2为本申请实施例提供的图像渲染方法中显示设备的结构示意图之一;
图3为本申请实施例提供的图像渲染方法中显示设备的结构示意图之二;
图4为本申请实施例提供的图像渲染方法的流程示意图之一;
图5为本申请实施例提供的图像渲染方法的流程示意图之二;
图6为本申请实施例提供的图像渲染方法的流程示意图之三;
图7为本申请实施例提供的图像渲染方法的流程示意图之四;
图8为本申请实施例提供的图像渲染方法的流程示意图之五;
图9为本申请实施例提供的图像渲染方法的流程示意图之六;
图10为本申请实施例提供的显示设备200的结构示意图;
图11为本申请实施例提供的一种芯片***的示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本公开实施例中的Surface Texture是指是从安卓Android3.0(应用程序界面(Application Program Interface,API)11)加入的一个新类。Surface Texture用来捕获视频流(stream)中的图像帧(image frame)的,视频流可以是相机预览或者视频解码数据。
本公开实施例中的Surface表示表层,指在Android***中,屏幕显示主要用到的。
本公开实施例中的OpenGL ES(OpenGL for Embedded Systems)是开放图形库(Open Graphics Library,OpenGL)三维图形API的子集,针对手机、掌上电脑(PersonalDigital Assistant,PDA)和游戏主机等嵌入式设备而设计。
本公开实施例中的EGL是指渲染平面和opengles之间第一层,它负责联系渲染平面和管理opengl es上下文。
本公开实施例中的YUV,是一种颜色编码方法。“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
本公开实施例中的BufferQueue是Android中所有图形处理操作的核心。它的作用很简单:将生成图形数据缓冲区的一方(生产方)连接到接受数据以进行显示或进一步处理的一方(消耗方)。
图1为根据本申请一个或多个实施例的显示设备与控制装置之间操作场景的示意图,如图1所示,用户可通过移动终端300和控制装置100操作显示设备200。控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信、蓝牙协议通信,无线或其他有线方式来控制显示设备200。用户可以通过遥控器上按键,语音输入、控制面板输入等输入用户指令,来控制显示设备200。在一些实施例中,也可以使用移动终端、平板电脑、计算机、笔记本电脑、和其他智能设备以控制显示设备200。
在一些实施例中,移动终端300可与显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。也可以将移动终端300上显示音视频内容传输到显示设备200上,实现同步显示功能显示设备200还与显示设备200通过多种通信方式进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。显示设备200可以向显示设备200提供各种内容和互动。显示设备200,可以液晶显示器、OLED显示器、投影显示设备。显示设备200除了提供广播接收电视功能之外,还可以附加提供计算机支持功能的智能网络电视功能。
在一些实施例中,本申请实施例提供电子设备可以为上述显示设备200。其中,显示设备200响应于对目标应用中目标功能的选择操作(如:目标应用为用于进行视频编辑的应用,目标功能为画中画功能或者多宫格功能),获取一个主媒资数据、至少一个从媒资数据,以及主媒资数据的第一帧率信息,如:用户在选择了画中画功能后,可以在显示设备200中存储的媒资数据中寻找需要的至少两个视频,并确定选定的视频中的主媒资数据和从媒资数据。这样,显示设备200就可以对主媒资数据和从媒资数据进行画中画渲染,如:创建一个用于渲染主媒资数据的主播放器,以及至少一个用于渲染从媒资数据的从播放器。由于从播放器不对从媒资数据中的音频数据进行解析,从而可以降低对显示设备200的计算资源的占用。同时,在主播放器预加载完主媒资数据,且从播放器预加载完从媒资数据的情况下,起播主播放器和从播放器。之后,对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像。最后,通过对目标纹理图像进行渲染,得到当前帧的显示图像,这样用户可以就可以查阅到当前帧对应的显示图像,从而可以提高用户的使用体验。
图2示出了根据示例性实施例中显示设备200的硬件配置框图。如图2所示显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口280中的至少一种。控制器包括中央处理器,视频处理器,音频处理器,图形处理器,RAM,ROM,用于输入/输出的第一接口至第n接口。显示器260可为具有触控功能的显示器,如触控显示器。调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及EPG数据信号。检测器230用于采集外部环境或与外部交互的信号。控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。
在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。
在一些示例中,以申请一个或多个实施例的显示设备200为电视机1,并且电视机1的操作***为Android***为例,如图3所示,电视机1从逻辑上可以分为应用程序(Applications)层(简称“应用层”)21,应用程序框架(Application Framework)层(简称“框架层”)22,安卓运行时(Android runtime)和***库层(简称“***运行库层”)23,以及内核层24。
其中,应用层21包括一个或多个应用。应用可以为***应用,也可以为第三方应用。如,应用层21包括目标应用,目标应用可以提供视频编辑功能。框架层22为应用层21的应用程序提供应用编程接口(application programming interface,API)和编程框架。***运行库层23为上层即框架层22提供支撑,当框架层22被使用时,安卓操作***会运行***运行库层23中包含的C/C++库以实现框架层22要实现的功能。内核层24作为硬件层和应用层21之间的软件中间件,用于管理和控制硬件与软件资源。
在一些示例中,内核层24包括第一驱动和第二驱动,第一驱动用于将检测器230采集的用户操作发送至目标应用,第二驱动用于控制显示器260显示显示单元212发送的显示图像。
电视机1中的目标应用启动。之后,第一驱动用于将检测器230采集的用户操作发送至目标应用进行识别。之后,目标应用的处理单元211响应于获取单元210接收的目标操作(如:对目标应用中的画中画功能进行了选择操作),此时处理单元211创建一个用于渲染主媒资数据的主播放器,以及N个用于渲染从媒资数据的从播放器。N为大于或等于1的常数。
其中,主播放器至少包括:文件下载模块、解封装模块、视频解码模块、音频解码模块、音视频同步模块、视频渲染模块和音频渲染模块;从播放器至少包括:文件下载模块、解封装模块、视频解码模块、多视频同步模块、视频渲染模块;其中,
文件下载模块用于从显示设备200的存储器中读取用户选中的主媒资数据,或者从媒资数据。解封装模块用于对文件下载模块读取的主媒资数据或者从媒资数据按照预设协议进行解封装,从而得到视频数据和音频数据。视频解码模块用于对解封装模块生成的视频数据进行解析,得到视频解析数据。音频解码模块用于对解封装模块生成的音频数据进行解析,得到音频解析数据。音视频同步模块用于对视频解码模块生成的视频解析数据和音频解码模块生成的音频解析数据进行同步,从而保证显示的一致性。视频渲染模块用于对音视频同步模块同步后的视频数据进行渲染,得到显示图像的视频数据(如:YUV格式的数据,或者红(RED,R)绿(GREEN,G)蓝(BLUE,B)格式的数据)。音频渲染模块用于对音视频同步模块同步后的音频数据进行渲染,得到显示图像的音频数据。多视频同步模块用于将从播放器中视频解码模块解析的视频解析数据与主播器中视频解码模块解析的视频解析数据进行同步,从而保证显示的一致性。
其中,在对主播放器和从播放器的帧数据进行渲染时,仅当主播放器的帧数据到达时,才请求对主播放器和从播放器的帧数据进行渲染。
之后,处理单元211在主播放器预加载完获取单元210获取的主媒资数据,且从播放器预加载完获取单元210获取的从媒资数据的情况下,起播主播放器和从播放器。处理单元211根据获取单元210获取的主媒资数据的第一帧率信息,确定第一帧率信息为固定帧率的情况下,按照主媒资数据的媒资时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步;处理单元211对于每个从播放器执行如下操作:对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。或者,根据第一帧率信息,确定所述第一帧率信息不是固定帧率的情况下,按照***时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步。处理单元211对于每个从播放器执行如下操作:保留从媒资数据中的帧数据。之后,处理单元211中OpenGL ES确定主播放器的帧数据到达时,控制数据获取单元每个从播放器获取当前帧的帧数据(如:剔除后的从媒资数据中的帧数据,或者从媒资数据中的帧数据)。之后,处理单元211中OpenGL ES的视屏编辑单元对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像;处理单元211中OpenGL ES的视屏编辑单元对目标纹理图像进行渲染,控制显示单元212显示得到当前帧的显示图像,如:处理单元211中的视屏编辑模块对目标纹理图像进行渲染后,将渲染后的纹理图像存储至帧缓冲对象(frame buffer object,FBO)中,之后EGL从FBO中读取当前帧对应的渲染后的纹理图像,并控制显示单元212显示当前帧对应的渲染后的纹理图像。
具体的,目标应用的存储单元213可以用于存储该电视机1的程序代码,还可以用于存储电视机1在运行过程中生成的数据,如写请求中的数据,用户保存的媒资数据等。
在一些示例中,电视机1中的存储器存储有媒资数据,用户在电视机1上开启目标应用后,在选择了目标应用的目标功能后,目标应用显示电视机1中当前存储的媒资数据,之后用户可以对需要的媒资数据进行选择,从而目标应用可以获取到一个主媒资数据和至少一个从媒资数据。
在其他的一些示例中,电视机1中的存储器中未存储有媒资数据,用户在电视机1上开启目标应用后,在选择了目标应用的目标功能后,目标应用向服务器400请求媒资数据(如:根据电视机1当前登陆的用户账号所对应的用户画像,确定媒资数据),之后目标应用显示服务器400发送的媒资数据,用户可以对需要的媒资数据进行选择,从而目标应用可以获取到一个主媒资数据和至少一个从媒资数据。
在另一些示例中,电视机1中的存储器中未存储有媒资数据,电视机1与用户设备建立了通信连接后,用户在电视机1上开启目标应用后,在选择了目标应用的目标功能后,此时电视机1向用户设备请求读取媒资数据。用户设备在接收到电视机1发送的读取媒资数据的请求后,将用户设备中存储器存储的媒资数据发送至电视机1。电视机1在接收到用户设备发送的媒资数据后,目标应用显示用户设备发送的媒资数据,用户可以对需要的媒资数据进行选择,从而目标应用可以获取到一个主媒资数据和至少一个从媒资数据。
在一些示例中,可以根据用户选择媒资数据的先后顺序,确定主媒资数据和从媒资数据,如:确定第一个选择的媒资数据为主媒资数据,之后选择的媒资数据为从媒资数据。或者,可以根据用户对媒资数据的设置,确定主媒资数据和从媒资数据,如:用户在选择媒资数据时,可以提示当前媒资数据是否设置为主媒资数据或者从媒资数据。当用户选择设置为主媒资数据后,后续在选择媒资数据的过程中则无需提示当前媒资数据是否设置为主媒资数据或者从媒资数据。如此,便可以确定主媒资数据和从媒资数据。
具体的,本公开实施例提供的电子设备可以是上述显示设备200,此处不做限定。
本申请所涉及的主媒资数据和从媒资数据均可以为经用户授权或者经过各方充分授权的数据。
以下实施例中以执行本公开实施例提供的图像渲染方法的执行主体为上述显示设备200为例,对本申请实施例的方法进行说明。
本申请实施例提供一种图像渲染方法,如图4所示,该图像渲染方法可以包括S11-S15。
S11、响应于对目标应用中目标功能的选择操作,获取一个主媒资数据、至少一个从媒资数据,以及主媒资数据的第一帧率信息。
S12、创建一个用于渲染主媒资数据的主播放器,以及至少一个用于渲染从媒资数据的从播放器。其中,一个从播放器渲染一个从媒资数据,从播放器不对从媒资数据中的音频数据进行解析。
具体的,从播放器不对从媒资数据中的音频数据进行解析时,这样不会使从播放器的视频渲染受原有音视频同步模块的影响,在降低对计算资源占用的同时,可以保证用户的体验。
S13、在主播放器预加载完主媒资数据,且从播放器预加载完从媒资数据的情况下,起播主播放器和从播放器。
S14、对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像。其中,目标帧数据包括主播放器在当前帧的帧数据,或者目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据。
在一些示例中,目标功能可能是画中画功能,此时目标操作为进行画中画渲染。此处是以目标功能可能是画中画功能为例进行说明的,在其他的一些示例中,目标功能可以是其他滤镜功能,目标操作为进行其他滤镜渲染,此处不做限定。
S15、对目标纹理图像进行渲染,得到当前帧的显示图像。
在一些示例中,在创建主播放器和从播放器时,目标应用中的处理模块还需要通过OpenGL动态生成每个播放器对应的纹理id,并基于每个播放器的纹理id生成每个播放器对应的Surface Texture,再基于Surface Texture生成Surface(表层)传递给播放器。其中,SurfaceTexture包含一个BufferQueue,当播放器将新的数据入队时,会提供“onFrameAvailable”(即“帧数据可用”)的回调通知给目标应用。此时应用可以请求渲染,调用“updateTexImage”(即“更新纹理图像”)时,会释放先前占用的缓冲区,并从BufferQueue中获取新缓冲区进行EGL调用进行编辑渲染。图3中的数据获取单元采用updateTexImage获取帧数据。
如此,目标应用可以通过“onFrameAvailable”(即“帧数据可用”)的回调的个数,确定每一个从播放器的帧数据可用个数,该值初始化为0。
其次,循环对主播放器和从播放器的每一帧数据做编辑处理。仅当收到主播放器“帧数据可用事件”时,做编辑处理,而当收到从播放器“帧数据可用”事件时,仅将从播放器的“帧数据可用个数”值加1。在做编辑处理时,先将主媒资数据的外部纹理数据输出到FBO中。再依次对每个从媒资数据的从播放器的“帧数据可用个数”进行判断,若其值大于0,将主媒资数据对应的主媒资数据的渲染管线输出的FBO中的数据作为当前从媒资数据对应的从媒资数据的渲染管线的输入,并做视频编辑处理。例如:画中画叠加合成处理,并将该从媒资数据对应的从播放器管线合成的纹理输出到FBO中,同时将该从播放器的帧数据可用个数减1。若“帧数据可用个数”小于1,则当前从播放器渲染管线的纹理采用上一帧保留的外部从播放器帧数据纹理,而无需更新外部纹理对象。之后,对剩余的从播放器“帧数据可用个数”进行判断,直到所有从播放器处理完毕。之后将最后一个从播放器管线FBO中的数据输出到屏幕渲染管线中,最后将编辑处理的该帧数据渲染到屏幕或虚拟屏幕中。最后,当所有视频全部处理完毕后,结束整个单窗口多路视频的同步渲染。
可以看出,针对多视频需要在同一窗口中渲染的场景,仅在主媒资数据的帧数据到达时请求渲染。而对于从媒资数据,则基于是否有可用的从媒资数据的帧数据按需选择是否需要从媒资数据的渲染管线去更新外部纹理对象,避免从媒资数据的显示区域闪频问题。
由上述可知,本公开提供的图像渲染方法应用在单个窗口中对多个媒资数据进行渲染的场景时,此时目标用于在创建从播放器时,由于从播放器中不存在对应音频数据进行解析的处理单元,如此可以降低多个从播放器在解析音频数据时所占用的计算资源。由于,目标应用在单个窗口中对多个媒资数据进行渲染时,从播放器所占用的计算资源减小了,因此可以降低目标应用在单个窗口中对多个媒资数据进行渲染时所占用的计算资源,解决了现有技术中如何降低终端设备在单个窗口中对多个媒资数据进行渲染时所占用的计算资源的问题。
在一些可实施的示例中,结合图4,如图5所示,本公开实施例提供的图像渲染方法还包括:S16和S17。
S16、根据第一帧率信息,确定第一帧率信息为固定帧率的情况下,按照主媒资数据的媒资时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步。
在一些示例中,第一帧率信息对应一个或者多个帧率,当该第一帧率信息仅对应一个帧率时,此时说明该第一帧率信息为固定帧率。当该第一帧率信息包含多个帧率时,此时说明该第一帧率信息不是固定帧率。
具体的,***时钟是真正的时钟(如电子设备所使用的时钟),媒资时钟算是一个概念,只是用于同步给从播放器当前主播放器的播放进度,例如可以通过:主播放器做内部音画同步时,同时主播放器将当前的播放进度回传给目标应用,目标应用再设给从播放器主播放器的播放进度,即媒资时钟。
S17、对于每个从播放器执行如下操作:对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些示例中,从媒资数据的第二帧率信息与主媒资数据的第一帧率信息可能存在差异,如:第二帧率信息对应的帧率与第一帧率信息对应的帧率不同,一种情况下,第二帧率信息对应的帧率小于或等于第一帧率信息对应的帧率,此时无需丢弃从媒资数据中的帧数据。另一种情况下,第二帧率信息对应的帧率大于第一帧率信息对应的帧率,此时相同时间内,由于从媒资数据中的帧数据(如帧图像)的总数多于主媒资数据中的帧数据的总数,因此需要对从媒资数据中的帧数据进行剔除,从而使得相同时间内从媒资数据中的帧数据的总数小于或等于主媒资数据中的帧数据的总数,保证不会出现闪频的现象。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据;结合图5,如图6所示,上述S14具体可以通过下述S140实现。
S140、在从播放器在当前帧不存在帧数据的情况下,对从播放器在前一帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些实施例中,从播放器在当前帧不存在帧数据的情况包括如下场景:
一、从播放器在当前帧发生了丢帧,导致从播放器在当前帧不存在帧数据。
二、结合上述S17给出的示例,由于从媒资数据中的帧数据(如帧图像)的总数多于主媒资数据中的帧数据的总数,因此需要对从媒资数据中的帧数据进行剔除,从而使得相同时间内从媒资数据中的帧数据的总数小于或等于主媒资数据中的帧数据的总数。此时,可能会出现由于剔除了当前帧的帧数据,导致从播放器在当前帧不存在帧数据。
在一些示例中,由于从播放器在当前帧不存在帧数据,此时可以先将主播器在当前帧的帧数据(如帧图像)转换为第一纹理图像,之后对第一纹理图像执行目标功能对应的目标操作,确定目标纹理图像。如:目标功能为画中画功能,目标操作为画中画渲染,此时目标纹理图像为对第一纹理图像执行画中画渲染后,得到的第二纹理图像。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;结合图5,如图6所示,上述S14具体可以通过下述S141实现。
S141、在从播放器在当前帧存在帧数据的情况下,对从播放器在当前帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些示例中,在从播放器在当前帧存在帧数据的情况下,需要对从播放器在当前帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作。在此之前,可以先将从播放器在当前帧的帧数据(如帧图像)转换为第三纹理图像,将主播放器在当前帧的帧数据转换为第四纹理图像。之后,对第三纹理图像和第四纹理图像进行叠加,得到第五纹理图像。对第五纹理图像执行目标功能对应的目标操作,得到第六纹理图像,确定目标纹理图像为该第六纹理图像。
在一些可实施的示例中,结合图6,如图7所示,本公开实施例提供的图像渲染方法,还包括:S18和S19。
S18、对剔除后的从媒资数据抓取帧图像时,若当前帧无帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧不存在帧数据。
在一些示例中,可通过Surface Texture对剔除后的从媒资数据抓取帧图像。结合上述S140给出的示例,Surface Texture在抓取剔除后的从媒资数据中的帧图像时,由于从播放器发生丢帧,或者剔除了当前帧的帧数据,导致无法抓取到帧图像的情况,此时可以确定剔除后的从媒资数据对应的从播放器在当前帧不存在帧数据。
S19、对剔除后的从媒资数据抓取帧图像时,若当前帧存在帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧存在帧数据。
在一些可实施的示例中,结合图5,如图8所示,上述S17具体可以通过下述S170实现。
S170、对于每个从播放器执行如下操作:获取主媒资数据在当前帧前的每一帧对应的渲染时长的第一总时长,以及从媒资数据在当前帧前的每一帧对应的渲染时长的第二总时长;根据第一总时长和第二总时长,对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,结合图8,如图9所示,上述S170具体可以通过下述S1700实现。
S1700、对于每个从播放器执行如下操作:获取主媒资数据在当前帧前的每一帧对应的渲染时长的第一总时长,以及从媒资数据在当前帧前的每一帧对应的渲染时长的第二总时长;在第一总时长与第二总时长之差的绝对值大于或等于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,丢弃从媒资数据中当前帧对应的帧数据;在第一总时长与第二总时长之差的绝对值小于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,保留从媒资数据中当前帧对应的帧数据。
在一些示例中,在起播主播放器后,还需要监听主播放器丢帧、缓冲、错误上报等事件。当主播放器发生丢帧、缓冲、错误上报等事件时,需要记录发生该事件的帧数,从而可以根据该帧数,确定第一总时长。如:在将主媒资数据和从媒资数据进行同步后,累加主媒资数据的每一帧的时长,得到第一总时长,如:主媒资数据对应的视频的帧率为25fps,则主媒资数据的每一帧的渲染时长为1000/25=40ms。累加从媒资数据的每一帧的时长,得到第二总时长,如:从媒资数据对应的视频的帧率为50fps,则主媒资数据的每一帧的渲染时长为1000/50=20ms。
假设预设阈值为
Figure BDA0003809754120000121
将主媒资数据和从媒资数据进行同步后,当前帧为第一帧,此时第一总时长为40ms,第二总时长等于20ms,由于|40ms-20ms|=20ms,20ms等于20ms
Figure BDA0003809754120000131
所以从媒资数据的第一帧的帧数据丢弃,继续取从媒资数据的第二帧,此时第二总时长为20ms+20ms=40ms,由于|40ms-40ms|=0ms,0ms小于20ms
Figure BDA0003809754120000132
则保留从媒资数据的第二帧的帧数据。
当前主媒资数据为第二帧,继续取从媒资数据的第三帧,此时第一总时长为40ms+40ms=80ms,第二总时长为40ms+20ms=60ms,由于|80ms-60ms|=20ms,20ms等于20ms
Figure BDA0003809754120000133
所以将从媒资数据的第三帧的帧数据丢弃,继续取从媒资数据的第四帧,此时第二总时长为60ms+20ms=80ms,由于|80ms-80ms|=0ms,0ms小于20ms
Figure BDA0003809754120000134
则保留从媒资数据的第四帧。如此,对每个从播放器执行上述操作,便得到了每个从播放器对应的剔除后的从媒资数据。具体的,第一总时长和第二总时长的初始值均为0。
需要时的说明的是,为了保证从媒资数据和主媒资数据能够在每一帧都有帧数据,在对主媒资数据和从媒资数据进行同步时,对于主媒资数据中的同一帧,从媒资数据中选取的帧数据的总数满足如下条件:第一总时长与第二总时长之差的绝对值小于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积之和(不为整数时向下取整),如:主媒资数据的每一帧的渲染时长为40ms,从媒资数据的每一帧的渲染时长为30ms,假设预设阈值为
Figure BDA0003809754120000135
将主媒资数据和从媒资数据进行同步后,当前帧为第一帧,此时第一总时长为40ms,第二总时长等于30ms,由于|40ms-30ms|=10ms,10ms小于20ms
Figure BDA0003809754120000136
保留从媒资数据的第一帧的帧数据。
当前主媒资数据为第二帧,继续取从媒资数据的第二帧,此时第一总时长为40ms+40ms=80ms,第二总时长为30ms+30ms=60ms,由于|40ms-60ms|=20ms,20ms等于20ms
Figure BDA0003809754120000137
所以从媒资数据的第二帧的帧数据丢弃,继续取从媒资数据的第三帧。此时,若从媒资数据的第三帧不存在帧数据(如:发生丢帧等),此时第二总时长等于30ms+30ms+30ms=90ms,由于|80ms-90ms|小于
Figure BDA0003809754120000138
因此继续取从媒资数据的第四帧。此时,第二总时长等于30ms+30ms+30ms+30ms=120ms,由于|80ms-120ms|大于
Figure BDA0003809754120000139
因此不对从媒资数据的第四帧做任何处理,确定主媒资数据为第二帧对应的从媒资数据的不存在数据帧。
之后,当前主媒资数据为第三帧,继续取从媒资数据的第四帧。如此,对每个从播放器执行上述操作,便得到了每个从播放器对应的剔除后的从媒资数据。
可以看出,针对主媒资数据为固定帧率的片源,从播放器基于第一帧率信息推算主媒资数据的每一帧的渲染时长进行从媒资数据的丢帧或等待处理,如:从播放器按比例在多视频同步模块进行丢帧处理或采用倍速播放逻辑,或者从播放器基于当前帧是否存在帧数据,选择是否调用从媒资数据的渲染管线去释放从媒资数据的帧缓冲区,避免小窗口闪屏问题。针对非固定帧率片源,从播放器基于***时钟做同步渲染。
在一些可实施的示例中,结合图4,如图5所示,本公开实施例提供的图像渲染方法还包括:S20。
S20、根据第一帧率信息,确定第一帧率信息不是固定帧率的情况下,按照***时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步。
在一些示例中,根据第一帧率信息,确定第一帧率信息不是固定帧率的情况下,则将从播放器设置为采用***时钟做同步。采用***时钟做同步时,若从播放器的帧数据长时间未被取走,新生成的帧数据会被从播放器丢弃。
当用户在主播放器或者从播放器上执行暂停、跳转等操作时,从播放器的目标渲染累加时长与当前渲染累加时长执行复位操作。如此可以通过监听主播放器的状态,当主播放器的状态发生变化时,目标应用同步调整从播放器状态。例如主播放器出现缓冲暂停播放时,应用暂停从播放器的播放。
当目标应用接收到主播放器丢帧事件时,第一总时长还需增加主媒资数据的每一帧的时长乘以丢帧的数量。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对图像渲染装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图10所示,本申请的实施例提供一种显示设备200的结构示意图。包括处理器101、通信器102和显示器103。
处理器101,用于响应于对目标应用中目标功能的选择操作,控制通信器102获取一个主媒资数据、至少一个从媒资数据,以及主媒资数据的第一帧率信息;处理器101,还用于创建一个用于渲染通信器102获取的主媒资数据的主播放器,以及至少一个用于渲染通信器102获取的从媒资数据的从播放器;其中,一个从播放器渲染一个从媒资数据,从播放器不对从媒资数据中的音频数据进行解析;处理器101,还用于在主播放器预加载完通信器102获取的主媒资数据,且从播放器预加载完通信器102获取的从媒资数据的情况下,起播主播放器和从播放器;处理器101,还用于对目标帧数据执行目标功能对应的目标操作,确定目标纹理图像;其中,目标帧数据包括主播放器在当前帧的帧数据,或者目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;处理器101,还用于对目标纹理图像进行渲染,控制显示器103显示得到当前帧的显示图像。
在一些可实施的示例中,处理器101,还用于根据通信器102获取的第一帧率信息,确定第一帧率信息为固定帧率的情况下,按照主媒资数据的媒资时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步;处理器101,还用于对于每个从播放器执行如下操作:对通信器102获取的从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据;处理器101,具体用于在从播放器在当前帧不存在帧数据的情况下,对从播放器在前一帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些可实施的示例中,目标帧数据包括主播放器在当前帧的帧数据和从播放器在当前帧的帧数据;处理器101,具体用于在从播放器在当前帧存在帧数据的情况下,对从播放器在当前帧的帧数据和主播放器在当前帧的帧数据二者执行目标功能对应的目标操作,确定目标纹理图像。
在一些可实施的示例中,处理器101,还用于对剔除后的从媒资数据抓取帧图像时,若当前帧无帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧不存在帧数据;处理器101,还用于对剔除后的从媒资数据抓取帧图像时,若当前帧存在帧图像,则确定剔除后的从媒资数据对应的从播放器在当前帧存在帧数据。
在一些可实施的示例中,通信器102,具体用于获取主媒资数据在当前帧前的每一帧对应的渲染时长的第一总时长,以及从媒资数据在当前帧前的每一帧对应的渲染时长的第二总时长;处理器101,具体用于根据通信器102获取的第一总时长和通信器102获取的第二总时长,对从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
在一些可实施的示例中,处理器101,具体用于在通信器102获取的第一总时长与通信器102获取第二总时长之差的绝对值大于或等于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,丢弃通信器102获取的从媒资数据中当前帧对应的帧数据;处理器101,具体用于在通信器102获取的第一总时长与通信器102获取第二总时长之差的绝对值小于预设阈值与主媒资数据在当前帧前的每一帧对应的渲染时长的乘积的情况下,保留通信器102获取的从媒资数据中当前帧对应的帧数据。
在一些可实施的示例中,处理器101,还用于根据通信器102获取的第一帧率信息,确定第一帧率信息不是固定帧率的情况下,按照***时钟对从播放器的从媒资数据和主播放器的主媒资数据进行帧同步。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,其作用在此不再赘述。
当然,本申请实施例提供的显示设备200包括但不限于上述模块,例如显示设备200还可以包括存储器104。存储器104可以用于存储该显示设备200的程序代码,还可以用于存储显示设备200在运行过程中生成的数据,如写请求中的数据等。
作为一个示例,结合图3,显示设备200中的获取单元210实现的功能通信器101的功能相同,处理单元211实现的功能与处理器102的功能相同,显示单元212实现的功能与显示器103的功能相同,存储模块213实现的功能与存储器104的功能相同。
如图11所示,本申请实施例还提供一种芯片***,该芯片***可以应用于前述实施例中的显示设备200。该芯片***包括至少一个处理器1501和至少一个接口电路1502。该处理器1501可以是上述显示设备200中的处理器。处理器1501和接口电路1502可通过线路互联。该处理器1501可以通过接口电路1502从上述显示设备200的存储器接收并执行计算机指令。当计算机指令被处理器1501执行时,可使得显示设备200执行上述实施例中显示设备200执行的各个步骤。当然,该芯片***还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,用于存储上述显示设备200运行的计算机指令。
本申请实施例还提供一种计算机程序产品,包括上述显示设备200运行的计算机指令。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种图像渲染方法,其特征在于,包括:
响应于对目标应用中目标功能的选择操作,获取一个主媒资数据、至少一个从媒资数据,以及所述主媒资数据的第一帧率信息;
创建一个用于渲染所述主媒资数据的主播放器,以及至少一个用于渲染所述从媒资数据的从播放器;其中,一个从播放器渲染一个从媒资数据,所述从播放器不对所述从媒资数据中的音频数据进行解析;
在所述主播放器预加载完所述主媒资数据,且所述从播放器预加载完所述从媒资数据的情况下,起播所述主播放器和所述从播放器;
对目标帧数据执行所述目标功能对应的目标操作,确定目标纹理图像;其中,所述目标帧数据包括所述主播放器在当前帧的帧数据,或者所述目标帧数据包括所述主播放器在当前帧的帧数据和所述从播放器在所述当前帧的帧数据;
对所述目标纹理图像进行渲染,得到所述当前帧的显示图像。
2.根据权利要求1所述的图像渲染方法,其特征在于,对目标帧数据执行所述目标功能对应的目标操作,确定目标纹理图像前,所述方法还包括:
根据所述第一帧率信息,确定所述第一帧率信息为固定帧率的情况下,按照所述主媒资数据的媒资时钟对所述从播放器的从媒资数据和所述主播放器的主媒资数据进行帧同步;
对于每个所述从播放器执行如下操作:对所述从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
3.根据权利要求2所述的图像渲染方法,其特征在于,所述目标帧数据包括所述主播放器在当前帧的帧数据;
对目标帧数据执行所述目标功能对应的目标操作,确定目标纹理图像,包括:
在所述从播放器在当前帧不存在帧数据的情况下,对所述从播放器在前一帧的帧数据和所述主播放器在当前帧的帧数据二者执行所述目标功能对应的目标操作,确定目标纹理图像。
4.根据权利要求2所述的图像渲染方法,其特征在于,所述目标帧数据包括所述主播放器在当前帧的帧数据和所述从播放器在当前帧的帧数据;
对目标帧数据执行所述目标功能对应的目标操作,确定目标纹理图像,包括:
在所述从播放器在当前帧存在帧数据的情况下,对所述从播放器在当前帧的帧数据和所述主播放器在当前帧的帧数据二者执行所述目标功能对应的目标操作,确定目标纹理图像。
5.根据权利要求2所述的图像渲染方法,其特征在于,所述对所述从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据,包括:
获取所述主媒资数据在所述当前帧前的每一帧对应的渲染时长的第一总时长,以及所述从媒资数据在所述当前帧前的每一帧对应的渲染时长的第二总时长;
根据所述第一总时长和所述第二总时长,对所述从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据。
6.根据权利要求5所述的图像渲染方法,其特征在于,所述根据所述第一总时长和所述第二总时长,对所述从媒资数据中的帧数据进行剔除,得到剔除后的从媒资数据,包括:
在所述第一总时长与所述第二总时长之差的绝对值大于或等于预设阈值与所述主媒资数据在所述当前帧前的每一帧对应的渲染时长的乘积的情况下,丢弃所述从媒资数据中所述当前帧对应的帧数据;
在所述第一总时长与所述第二总时长之差的绝对值小于预设阈值与所述主媒资数据在所述当前帧前的每一帧对应的渲染时长的乘积的情况下,保留所述从媒资数据中所述当前帧对应的帧数据。
7.根据权利要求2所述的图像渲染方法,其特征在于,所述方法还包括:
根据所述第一帧率信息,确定所述第一帧率信息不是固定帧率的情况下,按照***时钟对所述从播放器的从媒资数据和所述主播放器的主媒资数据进行帧同步。
8.一种图像渲染装置,其特征在于,包括:
处理单元,用于响应于对目标应用中目标功能的选择操作,控制获取单元获取一个主媒资数据、至少一个从媒资数据,以及所述主媒资数据的第一帧率信息;
所述处理单元,还用于创建一个用于渲染所述获取单元获取的所述主媒资数据的主播放器,以及至少一个用于渲染所述获取单元获取的所述从媒资数据的从播放器;其中,一个从播放器渲染一个从媒资数据,所述从播放器不对所述从媒资数据中的音频数据进行解析;
所述处理单元,还用于在所述主播放器预加载完所述获取单元获取的所述主媒资数据,且所述从播放器预加载完所述获取单元获取的所述从媒资数据的情况下,起播所述主播放器和所述从播放器;
所述处理单元,还用于对目标帧数据执行所述目标功能对应的目标操作,确定目标纹理图像;其中,所述目标帧数据包括所述主播放器在当前帧的帧数据,或者所述目标帧数据包括所述主播放器在当前帧的帧数据和所述从播放器在所述当前帧的帧数据;
所述处理单元,还用于对所述目标纹理图像进行渲染,得到所述当前帧的显示图像。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在执行计算机程序时,使得所述电子设备实现权利要求1-7任一项所述的图像渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现权利要求1-7任一项所述的图像渲染方法。
CN202211007931.5A 2022-08-22 2022-08-22 一种图像渲染方法、装置和电子设备 Pending CN115529492A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211007931.5A CN115529492A (zh) 2022-08-22 2022-08-22 一种图像渲染方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211007931.5A CN115529492A (zh) 2022-08-22 2022-08-22 一种图像渲染方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN115529492A true CN115529492A (zh) 2022-12-27

Family

ID=84697494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211007931.5A Pending CN115529492A (zh) 2022-08-22 2022-08-22 一种图像渲染方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN115529492A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413375A (zh) * 2011-11-29 2012-04-11 康佳集团股份有限公司 一种利用gpu实现视频播放的方法及***
CN104125494A (zh) * 2014-07-07 2014-10-29 四川中电启明星信息技术有限公司 一种大屏幕分布式播放场景画面拼接方法
CN109164997A (zh) * 2018-08-22 2019-01-08 南京南瑞信息通信科技有限公司 分布式画面渲染和画面播放控制方法、装置及设备
CN112040312A (zh) * 2020-07-24 2020-12-04 北京飞讯数码科技有限公司 一种分屏渲染方法、装置、设备和存储介质
CN112235626A (zh) * 2020-10-15 2021-01-15 Oppo广东移动通信有限公司 视频渲染方法、装置、电子设备及存储介质
CN112911343A (zh) * 2021-01-18 2021-06-04 北京奇艺世纪科技有限公司 一种多路视频的播放方法、装置、电子设备及存储介质
CN113457160A (zh) * 2021-07-15 2021-10-01 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN113709556A (zh) * 2020-05-20 2021-11-26 中兴通讯股份有限公司 频道切换方法、装置、设备、***和存储介质
CN114513692A (zh) * 2021-12-29 2022-05-17 影石创新科技股份有限公司 一种视频预览方法、终端及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413375A (zh) * 2011-11-29 2012-04-11 康佳集团股份有限公司 一种利用gpu实现视频播放的方法及***
CN104125494A (zh) * 2014-07-07 2014-10-29 四川中电启明星信息技术有限公司 一种大屏幕分布式播放场景画面拼接方法
CN109164997A (zh) * 2018-08-22 2019-01-08 南京南瑞信息通信科技有限公司 分布式画面渲染和画面播放控制方法、装置及设备
CN113709556A (zh) * 2020-05-20 2021-11-26 中兴通讯股份有限公司 频道切换方法、装置、设备、***和存储介质
CN112040312A (zh) * 2020-07-24 2020-12-04 北京飞讯数码科技有限公司 一种分屏渲染方法、装置、设备和存储介质
CN112235626A (zh) * 2020-10-15 2021-01-15 Oppo广东移动通信有限公司 视频渲染方法、装置、电子设备及存储介质
CN112911343A (zh) * 2021-01-18 2021-06-04 北京奇艺世纪科技有限公司 一种多路视频的播放方法、装置、电子设备及存储介质
CN113457160A (zh) * 2021-07-15 2021-10-01 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN114513692A (zh) * 2021-12-29 2022-05-17 影石创新科技股份有限公司 一种视频预览方法、终端及存储介质

Similar Documents

Publication Publication Date Title
CN109510990B (zh) 图像处理方法及装置、计算机可读存储介质、电子设备
CN107483812B (zh) 一种多平台并行直播的方法及装置
EP3503570A1 (en) Method of transmitting video frames from a video stream to a display and corresponding apparatus
CN109379619B (zh) 音画同步方法及装置
WO2022022019A1 (zh) 投屏数据处理方法和装置
CN114302190A (zh) 一种显示设备及画质调整方法
CN112367543A (zh) 显示设备、移动终端、投屏方法及投屏***
WO2023035882A9 (zh) 视频处理方法、设备、存储介质和程序产品
CN112153446A (zh) 一种显示设备及流媒体视频音画同步方法
CN104080006A (zh) 一种视频处理装置及方法
CN114554277B (zh) 多媒体的处理方法、装置、服务器及计算机可读存储介质
CN114095769B (zh) 一种应用级播放器的直播低延迟处理方法及显示设备
CN113473194B (zh) 一种智能设备及响应方法
CN103974062B (zh) 图像显示装置、图像显示***和图像显示方法
CN115529492A (zh) 一种图像渲染方法、装置和电子设备
EP3661216A1 (en) A method and apparatus for loop-playing video content
CN113596546B (zh) 一种多流节目的播放方法及显示设备
CN114268830A (zh) 云导播同步方法、装置、设备及存储介质
CN115209208A (zh) 一种视频循环播放的处理方法及装置
CN113709574A (zh) 视频截图方法、装置、电子设备及计算机可读存储介质
CN112019858A (zh) 一种视频播放方法、装置、计算机设备和存储介质
CN114979736B (zh) 显示设备和音画同步方法
CN115499673B (zh) 一种直播方法及装置
CN113099308B (zh) 一种内容显示方法、显示设备及图像采集器
US20240073415A1 (en) Encoding Method, Electronic Device, Communication System, Storage Medium, and Program Product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination