CN113407325A - 视频渲染方法、装置、计算机设备及存储介质 - Google Patents

视频渲染方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113407325A
CN113407325A CN202110732319.3A CN202110732319A CN113407325A CN 113407325 A CN113407325 A CN 113407325A CN 202110732319 A CN202110732319 A CN 202110732319A CN 113407325 A CN113407325 A CN 113407325A
Authority
CN
China
Prior art keywords
rendering
preset
current
video
frame
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
CN202110732319.3A
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.)
Shenzhen Wondershare Software Co Ltd
Original Assignee
Shenzhen Sibo 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 Shenzhen Sibo Technology Co ltd filed Critical Shenzhen Sibo Technology Co ltd
Priority to CN202110732319.3A priority Critical patent/CN113407325A/zh
Publication of CN113407325A publication Critical patent/CN113407325A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本发明实施例公开了一种视频渲染方法、装置、计算机设备及存储介质。本申请应用于视频播放的技术领域,其包括:若接收到预设视频渲染指令,则根据预设视频渲染指令生成渲染列表;若接收到预设输出队列发送的预设分配空闲槽指令,则获取与渲染列表相对应的当前帧索引;若当前帧索引满足预设检测条件,则根据当前帧索引构建当前渲染任务,并将当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;将渲染后的视频帧保存至输出队列中预设分配空闲槽指令对应的空闲槽;将当前帧索引对应的索引值加1,并返回执行若接收到预设输出队列发送的预设分配空闲槽指令的步骤直至接收到预设停止渲染指令为止。本申请实施例可提高视频渲染的效率。

Description

视频渲染方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及视频播放技术领域,尤其涉及一种视频渲染方法、装置、计算机设备及存储介质。
背景技术
目前视频编辑不管是在PC端还是移动端都非常普及,例如PC端的Premiere软件,移动端的抖音等视频剪辑软件。一般用户都会对拍摄后的视频进行画面的调色、小物件的修饰以及文字的添加等,即均会对视频进行渲染,之后再将渲染后的视频分享给他人或者存储到本地。因视频渲染本身需要较高的处理负荷,视频渲染的效率一般较低。
发明内容
本发明实施例提供了一种视频渲染方法、装置、计算机设备及存储介质,旨在解决现有视频渲染效率较低的问题。
第一方面,本发明实施例提供了一种视频渲染方法,其包括:
若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;
若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;
若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;
将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;
将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
进一步地,通过轮询机制向预设输出队列发送分配空闲槽请求。
进一步地,检测预设顺序锁中的当前帧计数是否为所述当前帧索引;若所述预设顺序锁中的当前帧计数为所述当前帧索引,则判定所述当前帧索引满足预设检测条件。
进一步地,根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志;若所述预设丢帧标志不为预设丢帧值,则根据所述渲染线程数构建与所述当前视频帧相关的当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。
进一步地,若所述预设丢帧标志为预设丢帧值,则将预设丢帧标志保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽。
进一步地,若接收到预设帧获取指令,则从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号;根据所述视频帧及所述帧号播放或导出视频。
进一步地,检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧;若所述当前空闲槽中存在所述视频帧,则从所述当前空闲槽中获取所述视频帧,并将所述视频帧对应的帧号加1;若所述空闲槽中不存在所述视频帧,则跳过所述当前空闲槽,并将下一所述空闲槽作为所述当前空闲槽,并返回执行所述检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧的步骤直至接收到预设完成指令为止。
第二方面,本发明实施例还提供了一种视频渲染装置,其包括:
生成单元,用于若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;
第一获取单元,用于若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;
渲染单元,用于若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;
保存单元,用于将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;
计算单元,用于将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现上述方法。
本发明实施例提供了一种视频渲染方法、装置、计算机设备及存储介质。其中,所述方法包括:若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。本发明实施例的技术方案,通过将设置的预设输出队列与工作线程池相配合使用,不仅可以对视频帧对应的渲染任务进行多线程渲染,而且还可以对渲染后的视频帧进行有序存储,从而方便视频帧的获取及播放,以提高视频渲染的效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频渲染方法的流程示意图;
图2为本发明实施例提供的一种视频渲染方法的子流程示意图;
图3为本发明另一实施例提供的一种视频渲染方法的流程示意图;
图4为本发明又一实施例提供的一种视频渲染方法的流程示意图;
图5为本发明实施例提供的一种视频渲染装置的示意性框图;
图6为本发明实施例提供的视频渲染装置的渲染单元的示意性框图;
图7为本发明另一实施例提供的视频渲染装置的示意性框图;
图8为本发明又一实施例提供的视频渲染装置的示意性框图;
图9为本发明又一实施例提供的视频渲染装置的第二获取单元的示意性框图;以及
图10为本发明实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
请参阅图1,图1是本发明实施例提供的视频渲染方法的流程示意图。本发明实施例的视频渲染方法可应用于终端上,例如智能手机、手提电脑、台式电脑、笔记本电脑等智能终端设备,通过安装于所述终端上的软件例如命名为音视频编辑软件的应用程序来实现所述视频渲染方法,以提高视频渲染的效率。下面对所述视频渲染方法进行详细说明。如图1所示,该方法包括以下步骤S100-S140。
S100、若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表。
在本发明实施例中,用户在音视频编辑软件中输入渲染需求并点击音视频编辑软件的播放按钮,则会触发预设视频渲染指令的发送,即若所述音视频编辑软件接收到预设视频渲染指令之后,则会根据所述预设视频渲染指令生成渲染列表。在实际应用中,例如需要播放一个视频并对该视频进行美颜同时贴上一个兔耳朵,那么就需要把具体的功能实现(人、美颜、兔子等)拆解成各个渲染节点,并把它们连起来得到一个渲染列表。可理解地,渲染列表中的节点即为处理视频画面的各种过程,其本质上为一系列待渲染的帧数据。
需要说明的是,在本发明实施例中,为实现视频渲染方法,在音视频编辑软件中包括预设输出队列、工作线程池以及性能监控模块等。
S110、若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引。
在本发明实施例中,生成渲染列表之后,若接收到预设输出队列发送的预设分配空闲槽指令,表明所述预设输出队列中有空闲槽,可存储渲染后的视频帧,则获取与所述渲染列表相对应的当前帧索引。需要说明的是,在本发明实施例中,生成所述渲染列表之后,会生成与所述渲染列表相对应的起始帧号及总帧数,其中,起始帧号为当前帧索引。
S120、若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。
在本发明实施例中,获取与所述渲染列表相对应的当前帧索引之后,会检测所述当前帧索引是否满足预设检测条件。具体地,是检测预设顺序锁中的当前帧计数是否为所述当前帧索引;若所述预设顺序锁中的当前帧计数为所述当前帧索引,表明当前视频帧的前一视频帧已处理完成,则判定所述当前帧索引满足预设检测条件;反之,若所述预设顺序锁中的当前帧计数不为所述当前帧索引,表明当前视频帧的前一视频帧未处理完成,需要阻塞当前视频帧的处理,则判定所述当前帧索引不满足预设检测条件。在实际应用中,是通过互斥锁mutex来实现视频帧按帧索引号依次进行渲染。
请参阅图2,在一实施例中,例如,在本发明实施例中,所述步骤S120包括如下步骤S121-S122。
S121、根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志;
S122、若所述预设丢帧标志不为预设丢帧值,则根据所述渲染线程数构建与所述当前视频帧相关的当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。
在本发明实施例中,若所述当前帧索引满足预设检测条件,则首先根据所述当前帧索引从性能监控模块获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志;然后判断所述预设丢帧标志是否为预设丢帧值,若所述预设丢帧标志不为预设丢帧值,表明当前视频帧无需丢弃,需要进行渲染,则根据所述渲染线程数构建与所述当前视频帧相关的当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。可理解地,当前渲染任务的构建为本领域人员所熟知的技术,在此不再赘述。在实际应用中,若所述预设丢帧标志为预设丢帧值,表明所述当前视频帧满足丢帧策略,需要将所述当前视频帧丢弃,则将预设丢帧标志保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽。
需要说明的是,在本发明实施例中,通过将设置的预设输出队列与工作线程池相配合使用,不仅可以对视频帧对应的渲染任务进行多线程渲染,而且还可以对渲染后的视频帧进行有序存储,从而方便视频帧的获取及播放,以提高视频渲染的效率。
S130、将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽。
在本发明实施例中,得到渲染后的视频帧之后,会将所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽,以方便对视频帧的获取,进而提高播放效率。
S140、将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
在本发明实施例中,将渲染后的所述视频帧储存至空闲槽之后,将所述当前帧索引对应的索引值加1,可理解地,若所述当前帧索引对应的索引值为1,加1之后,所述当前帧索引对应的索引值为2,当所述当前帧索引对应的索引值在总的帧数内且未收到预设的终端指令,即音视频编辑软件未收到预设停止渲染指令,则返回执行若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤。
图3为本发明另一实施例提供的磁盘数据读取方法的流程示意图,如图3所示,在本发明实施例中,本实施例的磁盘数据读取方法包括步骤S200-S250。其中步骤S200-S240与上述实施例中的步骤S100-S140类似,在此不再赘述。下面详细说明本实施例中所增加的步骤S250。
S250、通过轮询机制向预设输出队列发送分配空闲槽请求。
在本发明实施例中,生成渲染列表之后,会通过轮询机制向预设输出队列发送分配空闲槽请求,具体地,通过间隔1ms向预设输出队列发送分配空闲槽请求。在实际应用中,若接收到预设输出队列发送的预设分配空闲槽指令,则停止向预设输出队列发送分配空闲槽请求;若未接收到预设输出队列发送的预设分配空闲槽指令,则在等待1ms之后,再向预设输出队列发送分配空闲槽请求。
图4为本发明又一实施例提供的磁盘数据读取方法的流程示意图,如图4所示,在本发明实施例中,本实施例的磁盘数据读取方法包括步骤S300-S370。其中步骤S300-S350与上述实施例中的步骤S200-S250类似,在此不再赘述。下面详细说明本实施例中所增加的步骤S360和S370。
S360、若接收到预设帧获取指令,则从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号;
S370、根据所述视频帧及所述帧号播放或导出视频。
在本发明实施例中,当所述视频帧渲染完成之后,若接收到预设帧获取指令,则从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号;具体地,检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧;若所述当前空闲槽中存在所述视频帧,则从所述当前空闲槽中获取所述视频帧,并将所述视频帧对应的帧号加1;若所述空闲槽中不存在所述视频帧,则跳过所述当前空闲槽,并将下一所述空闲槽作为所述当前空闲槽,并返回执行所述检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧的步骤直至接收到预设完成指令为止。根据所述视频帧及所述帧号播放或导出视频。需要说明的是,在本发明实施例中,从预设输出队列中获取渲染后的视频帧时,不指定帧号,即将所述当前空闲槽中所述视频帧对应的帧号赋值为1,后续的所述视频帧对应的帧号依次加1即可。
图5是本发明实施例提供的一种视频渲染装置200的示意性框图。如图5所示,对应于以上视频渲染方法,本发明还提供一种视频渲染装置200。该视频渲染装置200包括用于执行上述视频渲染方法的单元,该装置可以被配置于终端中。具体地,请参阅图5,该视频渲染装置200生成单元201、第一获取单元202、渲染单元203、保存单元204以及计算单元205。
其中,所述生成单元201用于若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;所述第一获取单元202用于若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;所述渲染单元203用于若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;所述保存单元204用于将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;所述计算单元205用于将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
在某些实施例,例如本实施例中,如图6所示,所述渲染单元203包括第一获取子单元2031及渲染子单元2032。
其中,所述第一获取子单元2031用于根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志;所述渲染子单元2032用于若所述预设丢帧标志不为预设丢帧值,则根据所述渲染线程数构建与所述当前视频帧相关的当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。
在某些实施例,例如本实施例中,如图7所示,所述视频渲染装置200还包括发送单元206。
其中,所述发送单元206用于通过轮询机制向预设输出队列发送分配空闲槽请求。
在某些实施例,例如本实施例中,如图8所示,所述视频渲染装置200还包括第二获取单元207及播放单元208。
其中,所述第二获取单元207用于若接收到预设帧获取指令,则从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号;所述播放单元208用于根据所述视频帧及所述帧号播放或导出视频。
在某些实施例,例如本实施例中,如图9所示,所述第二获取单元207还包括检测单元2071、第二获取子单元2072以及执行单元2073。
其中,所述检测单元2071用于检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧;所述第二获取子单元2072用于若所述当前空闲槽中存在所述视频帧,则从所述当前空闲槽中获取所述视频帧,并将所述视频帧对应的帧号加1;所述执行单元2073用于若所述空闲槽中不存在所述视频帧,则跳过所述当前空闲槽,并将下一所述空闲槽作为所述当前空闲槽,并返回执行所述检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧的步骤直至接收到预设完成指令为止。
本发明实施例的视频渲染装置200的具体实现方式与上述流程验证方法相对应,在此不再赘述。
上述视频渲染装置可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备300为终端,终端可以是智能手机、台式电脑、手提电脑、平板电脑等具有通信功能的电子设备。
参阅图10,该计算机设备300包括通过***总线301连接的处理器302、存储器和网络接口305,其中,存储器可以包括存储介质303和内存储器304。
该存储介质303可存储操作***3031和计算机程序3032。该计算机程序3032被执行时,可使得处理器302执行一种视频渲染方法。
该处理器302用于提供计算和控制能力,以支撑整个计算机设备300的运行。
该内存储器304为存储介质303中的计算机程序3032的运行提供环境,该计算机程序3032被处理器302执行时,可使得处理器302执行一种视频渲染方法。
该网络接口305用于与其它设备进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备300的限定,具体的计算机设备300可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器302用于运行存储在存储器中的计算机程序3032,以实现如下步骤:若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
在某些实施例,例如本实施例中,处理器302在实现所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤之前,具体实现还包括如下步骤:通过轮询机制向预设输出队列发送分配空闲槽请求。
在某些实施例,例如本实施例中,处理器302在实现所述若所述当前帧索引满足预设检测条件步骤时,具体实现如下步骤:检测预设顺序锁中的当前帧计数是否为所述当前帧索引;若所述预设顺序锁中的当前帧计数为所述当前帧索引,则判定所述当前帧索引满足预设检测条件。
在某些实施例,例如本实施例中,处理器302在实现所述根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧步骤时,具体实现如下步骤:根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志;若所述预设丢帧标志不为预设丢帧值,则根据所述渲染线程数构建与所述当前视频帧相关的当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。
在某些实施例,例如本实施例中,处理器302在实现所述根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志的步骤之后,具体实现还包括如下步骤:若所述预设丢帧标志为预设丢帧值,则将预设丢帧标志保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽。
在某些实施例,例如本实施例中,处理器302在实现所述将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止的步骤之后,具体实现还包括如下步骤:若接收到预设帧获取指令,则从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号;根据所述视频帧及所述帧号播放或导出视频。
在某些实施例,例如本实施例中,处理器302在实现所述从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号步骤时,具体实现如下步骤:检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧;若所述当前空闲槽中存在所述视频帧,则从所述当前空闲槽中获取所述视频帧,并将所述视频帧对应的帧号加1;若所述空闲槽中不存在所述视频帧,则跳过所述当前空闲槽,并将下一所述空闲槽作为所述当前空闲槽,并返回执行所述检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧的步骤直至接收到预设完成指令为止。
应当理解,在本申请实施例中,处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器302还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该计算机程序被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序。该计算机程序被该计算机***中的至少一个处理器执行,以实现上述视频渲染方法的实施例的流程步骤。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,尚且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种视频渲染方法,其特征在于,包括:
若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;
若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;
若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;
将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;
将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
2.根据权利要求1所述的视频渲染方法,其特征在于,所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引之前,还包括:
通过轮询机制向预设输出队列发送分配空闲槽请求。
3.根据权利要求1所述的视频渲染方法,其特征在于,所述若所述当前帧索引满足预设检测条件,包括:
检测预设顺序锁中的当前帧计数是否为所述当前帧索引;
若所述预设顺序锁中的当前帧计数为所述当前帧索引,则判定所述当前帧索引满足预设检测条件。
4.根据权利要求1所述的视频渲染方法,其特征在于,所述根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧,包括:
根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志;
若所述预设丢帧标志不为预设丢帧值,则根据所述渲染线程数构建与所述当前视频帧相关的当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧。
5.根据权利要求4所述的视频渲染方法,其特征在于,所述根据所述当前帧索引获取与当前视频帧相关的执行参数,其中,所述执行参数包括允许同时使用的渲染线程数及预设丢帧标志之后,还包括:
若所述预设丢帧标志为预设丢帧值,则将预设丢帧标志保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽。
6.根据权利要求1所述的视频渲染方法,其特征在于,所述将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止之后,还包括:
若接收到预设帧获取指令,则从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号;
根据所述视频帧及所述帧号播放或导出视频。
7.根据权利要求6所述的视频渲染方法,其特征在于,所述从所述预设输出队列中获取渲染后的所述视频帧及所述视频帧对应的帧号,包括:
检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧;
若所述当前空闲槽中存在所述视频帧,则从所述当前空闲槽中获取所述视频帧,并将所述视频帧对应的帧号加1;
若所述空闲槽中不存在所述视频帧,则跳过所述当前空闲槽,并将下一所述空闲槽作为所述当前空闲槽,并返回执行所述检测所述预设输出队列的所述当前空闲槽中是否存在所述视频帧的步骤直至接收到预设完成指令为止。
8.一种视频渲染装置,其特征在于,包括:
生成单元,用于若接收到预设视频渲染指令,则根据所述预设视频渲染指令生成渲染列表;
第一获取单元,用于若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引;
渲染单元,用于若所述当前帧索引满足预设检测条件,则根据所述当前帧索引构建当前渲染任务,并将所述当前渲染任务放入渲染工作线程池进行渲染以得到渲染后的视频帧;
保存单元,用于将渲染后的所述视频帧保存至所述输出队列中所述预设分配空闲槽指令对应的空闲槽;
计算单元,用于将所述当前帧索引对应的索引值加1,并返回执行所述若接收到预设输出队列发送的预设分配空闲槽指令,则获取与所述渲染列表相对应的当前帧索引的步骤直至接收到预设停止渲染指令为止。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的视频渲染方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现如权利要求1-7中任一项所述的视频渲染方法。
CN202110732319.3A 2021-06-30 2021-06-30 视频渲染方法、装置、计算机设备及存储介质 Pending CN113407325A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110732319.3A CN113407325A (zh) 2021-06-30 2021-06-30 视频渲染方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110732319.3A CN113407325A (zh) 2021-06-30 2021-06-30 视频渲染方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN113407325A true CN113407325A (zh) 2021-09-17

Family

ID=77680384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110732319.3A Pending CN113407325A (zh) 2021-06-30 2021-06-30 视频渲染方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113407325A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923519A (zh) * 2021-11-11 2022-01-11 深圳万兴软件有限公司 视频渲染方法、装置、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010053275A1 (en) * 2000-04-07 2001-12-20 Hiroaki Adachi Device, method, and system for video editing, and computer readable recording medium having video editing program recorded threon
US6763176B1 (en) * 2000-09-01 2004-07-13 Matrox Electronic Systems Ltd. Method and apparatus for real-time video editing using a graphics processor
US20070230584A1 (en) * 2006-03-31 2007-10-04 Yi-Jen Chiu Image buffering techniques
CN101512656A (zh) * 2005-06-30 2009-08-19 微软公司 具有提前渲染队列的gpu时间线
CN102254297A (zh) * 2010-10-15 2011-11-23 威盛电子股份有限公司 多着色器***及其处理方法
CN106331696A (zh) * 2016-08-29 2017-01-11 苏州蓝海彤翔***科技有限公司 丢帧检测方法和装置
CN108093293A (zh) * 2018-01-15 2018-05-29 北京奇艺世纪科技有限公司 一种视频渲染方法及***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010053275A1 (en) * 2000-04-07 2001-12-20 Hiroaki Adachi Device, method, and system for video editing, and computer readable recording medium having video editing program recorded threon
US6763176B1 (en) * 2000-09-01 2004-07-13 Matrox Electronic Systems Ltd. Method and apparatus for real-time video editing using a graphics processor
CN101512656A (zh) * 2005-06-30 2009-08-19 微软公司 具有提前渲染队列的gpu时间线
US20070230584A1 (en) * 2006-03-31 2007-10-04 Yi-Jen Chiu Image buffering techniques
CN102254297A (zh) * 2010-10-15 2011-11-23 威盛电子股份有限公司 多着色器***及其处理方法
CN106331696A (zh) * 2016-08-29 2017-01-11 苏州蓝海彤翔***科技有限公司 丢帧检测方法和装置
CN108093293A (zh) * 2018-01-15 2018-05-29 北京奇艺世纪科技有限公司 一种视频渲染方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李涛 等: "基于线程池的GPU任务并行计算模式研究", 《计算机学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923519A (zh) * 2021-11-11 2022-01-11 深圳万兴软件有限公司 视频渲染方法、装置、计算机设备及存储介质
CN113923519B (zh) * 2021-11-11 2024-02-13 深圳万兴软件有限公司 视频渲染方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US10783364B2 (en) Method, apparatus and device for waking up voice interaction function based on gesture, and computer readable medium
US9201693B2 (en) Quota-based resource management
CN113923519A (zh) 视频渲染方法、装置、计算机设备及存储介质
EP3576036A1 (en) Service execution method and device
CN108566634B (zh) 降低蓝牙音箱连续唤醒延时的方法、装置及蓝牙音箱
US20210208935A1 (en) Method for Scheduling Multi-Core Processor, Terminal, and Storage Medium
US8782674B2 (en) Wait on address synchronization interface
CN109783028A (zh) I/o调度的优化方法、装置、存储介质及智能终端
JP2015513735A (ja) ポータブルコンピューティングデバイスにおいて要求をスケジューリングするための方法およびシステム
CN109492024A (zh) 数据处理方法、装置、计算机设备以及存储介质
CN108293197B (zh) 一种资源统计方法、装置及终端
US7444449B2 (en) Method, computer program product and computer system for controlling execution of an interruption routine
CN113407325A (zh) 视频渲染方法、装置、计算机设备及存储介质
CN113360263B (zh) 一种任务处理方法、***及相关设备
CN111597009B (zh) 应用程序显示的方法、装置及终端设备
US8832700B2 (en) Subscriber-based ticking model for platforms
CN116302558A (zh) 线程调度方法、装置及电子设备
KR102423768B1 (ko) 복수의 스레드들에 포함된 복수의 명령어들을 처리하기 위한 방법 및 그 전자 장치
WO2020082354A1 (zh) 一种***状态检测方法、***状态装置及终端设备
US11347544B1 (en) Scheduling work items based on declarative constraints
CN113742096B (zh) 一种事件队列的实现方法及***
US20230185574A1 (en) Instruction Scheduling Method, Device, And Storage Medium
CN110418245B (zh) 一种降低蓝牙音箱反应延迟的方法、装置及终端设备
CN115509620A (zh) 待更新模块确定方法和装置
CN115794324A (zh) 任务处理方法、装置及存储介质

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
TA01 Transfer of patent application right

Effective date of registration: 20211119

Address after: 518000 1001, block D, building 5, software industry base, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Wanxing Software Co.,Ltd.

Address before: 518000 1002, block D, building 5, software industry base, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN SIBO TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20210917

RJ01 Rejection of invention patent application after publication