CN108933969A - 一种实现数字电视视频动画的方法及系统 - Google Patents
一种实现数字电视视频动画的方法及系统 Download PDFInfo
- Publication number
- CN108933969A CN108933969A CN201810829439.3A CN201810829439A CN108933969A CN 108933969 A CN108933969 A CN 108933969A CN 201810829439 A CN201810829439 A CN 201810829439A CN 108933969 A CN108933969 A CN 108933969A
- Authority
- CN
- China
- Prior art keywords
- video
- cartoon
- engine
- animation
- lua
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种实现数字电视视频动画的方法及系统,用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,向C程序发送调用指令,调用C程序,同时将目标视频窗口参数发送给C程序中的视频动画引擎程序,使用Lua脚本发起执行视频动画指令,通过视频动画引擎程序接收频动画指令,当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像,根据目标视频窗口参数和初始动画图像,合成视频动画。本发明使用Lua脚本执行视频动画引擎逻辑,使用C程序执行视频动画引擎的解析操作,因Lua脚本不需要重新编译,因此,直接加载动态逻辑即可使用。
Description
技术领域
本发明涉及视频动画技术领域,更具体的说,涉及一种实现数字电视视频动画的方法及系统。
背景技术
数字电视又称为数位电视或数码电视,是指从演播室到发射、传输和接收的所有环节都使用数字电视信号,或对系统所有的信号传播都是通过由0、1数字串所构成的二进制数字流来传播的电视类型。
视频动画是将静止的画面变为动态的艺术,实现由静止到动态,主要是靠人眼的视觉残留效应,利用人的这种视觉生理特性可制作出具有高度想象力和表现力的动画影片。视频动画的实用场景主要包括:(1)视频动画的矩形大小及位置,比如,将视频从左上角平移到右下角,或是其他的移动轨迹;(2)多个视频画面,比如Z轴的变化,即上下顺序的切换;(3)透明度、亮度和灰度的调节等。对于这些功能,都是可以直接在程序中抽象出接口并实现,但是需要将这些融合到一起编写出一套动画逻辑效果。
现有技术主要使用C语言或IAVA语言编写动画逻辑效果,以实现数字电视的视频动画。而基本图形动画效果,需要实现平移、旋转、缩放、渐变和色彩调节等,但对于现有技术中的数字机顶盒上的视频动画而言,一般视频图层只有一个,任意两个视频无法做重叠效果,因此导致视频布局或移动过程中需要避免重叠行为的发生。再者,视频窗口播放实时视频时,将无法对局部的色彩进行改变,这种情况下就需要修改视频输出数据,不仅计算量大,而且影响播放效果;再者视频窗口时一个矩形,无法做曲线拉直,因此不具备渐变及旋转功能。所以当需要对视频动画进行调整时,即使是一个细微的操作调整,都需要重新编译动画逻辑,烧写数据到数字机顶盒,执行测试验证等步骤。若是不小心破坏了程序堆栈,会导致数字机顶盒不断重启,在这种情况下,还需要重新将数字机顶盒镜像全部烧写一遍。
发明内容
有鉴于此,本发明公开一种实现数字电视视频动画的方法及系统,以实现直接加载动态逻辑,省去重新编译、烧写数字机顶盒和执行测试验证等步骤。
一种实现数字电视视频动画的方法,包括:
使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数;
向C程序发送调用指令,调用所述C程序,同时将所述目标视频窗口参数发送给所述C程序中的视频动画引擎程序;
使用所述Lua脚本发起执行视频动画指令;
通过所述视频动画引擎程序接收频动画指令;
当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像;
根据所述目标视频窗口参数和所述初始动画图像,合成视频动画。
优选的,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:主动脚本加载执行模式时,所述使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,具体包括:
调用所述Lua脚,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
优选的,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:交互式操作执行模式时,所述使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,具体包括:
调用所述Lua脚,在接收到用户输入的控制指令后,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
优选的,所述视频动画引擎的设置过程包括:
初始化Lua语言的数据结构;
在所述视频动画引擎中注册视频动画的API接口函数;
设置所述视频动画引擎的API接口。
优选的,所述设置所述视频动画引擎的API接口包括:
设置每个视频窗口的参数,所述参数包括:顶点坐标、宽高值、视频层的透明度以及视频帧率,其中,每个视频窗口对应一个唯一的标号,不同标号的视频窗口设置的参数不同。
一种实现数字电视视频动画的系统,包括:
设置单元,用于使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数;
调用单元,用于向C程序发送调用指令,调用所述C程序,同时将所述目标视频窗口参数发送给所述C程序中的视频动画引擎程序;
指令发起单元,用于使用所述Lua脚本发起执行视频动画指令;
指令接收单元,用于通过所述视频动画引擎程序接收频动画指令;
生成单元,用于当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像;
合成单元,用于根据所述目标视频窗口参数和所述初始动画图像,合成视频动画。
优选的,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:主动脚本加载执行模式时,所述设置单元具体用于:
调用所述Lua脚,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
优选的,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:交互式操作执行模式时,所述设置单元具体用于:
调用所述Lua脚,在接收到用户输入的控制指令后,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
优选的,还包括:视频动画引擎设置单元,具体用于初始化Lua语言的数据结构;在所述视频动画引擎中注册视频动画的API接口函数;设置所述视频动画引擎的API接口。
优选的,所述设置所述视频动画引擎的API接口包括:
设置每个视频窗口的参数,所述参数包括:顶点坐标、宽高值、视频层的透明度以及视频帧率,其中,每个视频窗口对应一个唯一的标号,不同标号的视频窗口设置的参数不同。
从上述的技术方案可知,本发明公开了一种实现数字电视视频动画的方法及系统,用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,向C程序发送调用指令,调用C程序,同时将目标视频窗口参数发送给C程序中的视频动画引擎程序,使用Lua脚本发起执行视频动画指令,通过视频动画引擎程序接收频动画指令,当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像,根据目标视频窗口参数和初始动画图像,合成视频动画。使用Lua脚本执行视频动画引擎逻辑,使用C程序执行视频动画引擎的解析操作,因Lua脚本不需要重新编译,因此,在实际使用时,直接加载动态逻辑即可使用,从而省去了重新编译、烧写数字机顶盒和执行测试验证等步骤。并且,还可以针对每种动画场景编写一个脚本文件,并可复用原来的基础文件,从而提高了程序编写效率以及调试验证的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种实现数字电视视频动画的方法流程图;
图2为本发明实施例公开的一种实现数字电视视频动画的系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
脚本语言又被称为扩建的语言、动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本保存,只在被调用时进行解释或编译。脚本语言作为宿主语言的延伸和扩展,具有修改简单和调试方便的特点,主要针对易变业务。使用脚本语言可以将一些常用的功能做成模板,也可以将一些特殊的特效做成标准函数,只需要在不同的应用场景下做一些调整即可复用,从而有利于程序调试,提高工作效率。
Lua脚本是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本由标准C编写而成,几乎在所有操作系统和平台上都可以编译和运行。Lua脚本并没有提供强大的库,这是由它的定位决定的,所以Lua脚本不适合作为开发独立应用程序的语言。Lua脚本有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
Lua脚本可以很容易被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua脚本在应用程序中可以被广泛应用。
基于此,本发明实施例公开了一种实现数字电视视频动画的方法及系统,用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,向C程序发送调用指令,调用C程序,同时将目标视频窗口参数发送给C程序中的视频动画引擎程序,使用Lua脚本发起执行视频动画指令,通过视频动画引擎程序接收频动画指令,当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像,根据目标视频窗口参数和初始动画图像,合成视频动画。使用Lua脚本执行视频动画引擎逻辑,使用C程序执行所述视频动画引擎的解析操作,因Lua脚本不需要重新编译,因此,在实际使用时,直接加载动态逻辑即可使用,从而省去了重新编译、烧写数字机顶盒和执行测试验证等步骤。并且,还可以针对每种动画场景编写一个脚本文件,并可复用原来的基础文件,从而提高了程序编写效率以及调试验证的速度。
需要说明的是,在执行本发明公开的实现数字电视视频动画的方法之前,需要安装Lua语言的执行环境。
任何语言都需要有自已的运行环境,即语言的编译执行环境,比如C语言就需要gcc来编译执行,Lua同样如此。Lua是一门扩展式程序设计语言,整个Lua提供了开源代码,全部实现都是C语言,因此便于集成到当前环境中,只需要编译一个Makefile即可完成所有的操作。本发明是将Lua的源码编译成一个动态库,从而方便多处程序调试。
参见图1,本发明一实施例公开的一种实现数字电视视频动画的方法流程图,该方法包括步骤:
步骤S101、使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数;
其中,在脚本文件中,可以设置视频窗口参数,包括:(1)设置视频窗口顶点坐标,包括:视频窗口的原始位置;(2)设置视频窗口大小,包括:视频窗口的宽和高;(3)设置视频窗口边界区域,也即视频窗口的矩形范围;(4)设置视频窗口的透明度。
步骤S102、向C程序发送调用指令,调用C程序,同时将目标视频窗口参数发送给C程序中的视频动画引擎程序;
具体的,当视频窗口参数设置完成,得到目标视频窗口参数后,可以通过Lua脚本的栈空间将目标视频窗口参数传递给C程序中的视频动画引擎程序,视频动画引擎程序接收目标视频窗口参数,并执行视频动画操作。
需要特别说明的是,本发明利用Lua语言易于使用扩展接口和机制,使用C程序实现视频动画的核心功能,并利用Lua语言和C程序之间的栈空间交换数据,即传参及调用返回结果,从而将两者融合在一起。
步骤S103、使用Lua脚本发起执行视频动画指令;
步骤S104、通过视频动画引擎程序接收频动画指令;
步骤S105、当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像;
具体的,假设每帧动画移动前的初始时间记为TS,执行一次移动后的时间为TM,计算每帧动画执行一次移动操作的时间为TS-TM,当TS-TM大于等于FPS_TIME时,执行下一次移动操作,并生成初始动画图像,其中,FPS_TIME是每帧执行时间,假设1s执行为25帧,则每帧执行时间是1s除以25得到40ms。
当TS-TM大于等于FPS_TIME时,则延迟这个差值,以TS-TM的差值超时等待。
步骤S106、根据目标视频窗口参数和初始动画图像,合成视频动画。
具体的,由执行framer(框架)的硬件合成视频动画。
需要特别说明的是,本发明在使用Lua脚本执行视频动画引擎逻辑时采用的执行模式包括:主动脚本加载执行模式和交互式操作执行模式;
主动脚本加载执行模式为:将Lua脚本一次性加载到脚本执行引擎程序中,由所述引擎程序自动执行视频动画引擎逻辑,不需要用户干涉,比如,将一个小视频从左上角移动到右下角,则可以只设定起始位置和结束位置,并设定其每次移动的步长即可,视频动画引擎程序会自动完成并输出动画效果。
主动脚本加载执行模式通过Lua脚本和C程序相互调用,循环执行视频动画指令,根据数字机顶盒完成视频动画的合成,及并根据视频输出的总体耗时时间确定动画的最大帧率,根据测试统计,视频动画的帧率在10-12帧间效果较好。
交互式操作执行模式为:通过用户操作行为执行Lua脚本指令,在执行所述引擎程序的过程中,所述引擎程序根据用户输入的控制指令执行相对应的视频动画引擎逻辑。也就是说,交互式操作执行模式需要用户控制,是一种交互性的执行模式。比如,用户按向下键给定移动的距离,视频动画的方向和距离会传递到视频动画引擎程序并被执行,从而根据用户设置的参数被动完成动画效果。
本实施例中,当使用Lua脚本执行视频动画引擎逻辑时采用的执行模式为:主动脚本加载执行模式时,调用Lua脚本,使用Lua脚本主动执行视频动画引擎逻辑,对视频窗口参数进行设置。
当使用Lua脚本执行视频动画引擎逻辑时采用的执行模式为:交互式操作执行模式时,调用Lua脚本后,在接收到用户输入的控制指令后,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。其中,用户可以通过遥控器按键或鼠标等输入控制指令。
与此同时,步骤S103中,Lua脚本是在执行等待指令之后,才会发起执行视频动画指令。
交互式操作执行模式的优势是:可以按照用户当前输入情况调整动画效果。
在实际应用中,主动脚本加载执行模式和交互式操作执行模式可以只执行其中一个,或是两者相结合,具体依据实际需要而定。
综上可知,本发明公开的实现数字电视视频动画的方法,用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,向C程序发送调用指令,调用C程序,同时将目标视频窗口参数发送给C程序中的视频动画引擎程序,使用Lua脚本发起执行视频动画指令,通过视频动画引擎程序接收频动画指令,当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像,根据目标视频窗口参数和初始动画图像,合成视频动画。使用Lua脚本执行视频动画引擎逻辑,使用C程序执行所述视频动画引擎的解析操作,因Lua脚本不需要重新编译,因此,在实际使用时,直接加载动态逻辑即可使用,从而省去了重新编译、烧写数字机顶盒和执行测试验证等步骤。并且,还可以针对每种动画场景编写一个脚本文件,并可复用原来的基础文件,从而提高了程序编写效率以及调试验证的速度。
需要说明的是,上述实施例中,当动画没有移动,也即TM=TS时,返回执行步骤S104。
为进一步优化上述实施例,本发明还公开了视频动画引擎的设置过程,具体包括:
(1)初始化Lua语言的数据结构,比如装载脚本的缓冲区、行为回调函数、Lua的执行环境等。
(2)在视频动画引擎中注册视频动画的API接口函数,以基于该API接口函数对移动、缩放和透明度等功能进行控制。
API接口函数比如移动函数,移动函数用于将视频从某个坐标点移动到另一个坐标点,并将新的坐标点作为传入参数。
一个Lua脚本,如test.lua脚本文件,在调用动画移动函数之前,需要在视频动画引擎程序中注册视频动画的API接口函数,从而在脚本test.lua中被找到并调用。
(3)设置视频动画引擎的API接口。
为了实现视频的动画效果,必须实现特有的API接口函数。本发明设置视频动画引擎的API接口包括:设置每个视频窗口的参数,所述参数包括:顶点坐标、宽高值、视频层的透明度以及视频帧率,其中,每个视频窗口对应一个唯一的标号,不同标号的视频窗口设置的参数不同,最后根据参数遍历所有变化的视频窗口,将所有变化的视频窗口进行合成,即得到视频动画。
因动画有帧数概念,因此,本发明设置了视频帧率。对于视频帧率,由于改变视频窗口或大小等特性需要时间,因此,本发明通过试验发现,最高帧率为25帧,即每帧动画的时间是40ms/帧,在此帧率情况下,视频动画是比较流畅的。
需要特别说明的是,视频显示的图层在系统中,对应一个frame window(帧视频窗口)的概念。每个frame(框架)中对应有多个window(视频窗口),每个window不允许重叠,且都是矩形,同时都有唯一对应的标号。
与上述方法实施例相对应,本发明还公开了一种实现数字电视视频动画的系统。
参见图2,本发明一实施例公开的一种实现数字电视视频动画系统的结构示意图,该系统包括:
设置单元201,用于使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数;
其中,在脚本文件中,可以设置视频窗口参数,包括:(1)设置视频窗口顶点坐标,包括:视频窗口的原始位置;(2)设置视频窗口大小,包括:视频窗口的宽和高;(3)设置视频窗口边界区域,也即视频窗口的矩形范围;(4)设置视频窗口的透明度。
调用单元202,用于向C程序发送调用指令,调用所述C程序,同时将所述目标视频窗口参数发送给所述C程序中的视频动画引擎程序;
具体的,当视频窗口参数设置完成,得到目标视频窗口参数后,可以通过Lua脚本的栈空间将目标视频窗口参数传递给C程序中的视频动画引擎程序,视频动画引擎程序接收目标视频窗口参数,并执行视频动画操作。
需要特别说明的是,本发明利用Lua语言易于使用扩展接口和机制,使用C程序实现视频动画的核心功能,并利用Lua语言和C程序之间的栈空间交换数据,即传参及调用返回结果,从而将两者融合在一起。
指令发起单元203,用于使用所述Lua脚本发起执行视频动画指令;
指令接收单元204,用于通过所述视频动画引擎程序接收频动画指令;
生成单元205,用于当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像;
具体的,假设每帧动画移动前的初始时间记为TS,执行一次移动后的时间为TM,计算每帧动画执行一次移动操作的时间为TS-TM,当TS-TM大于等于FPS_TIME时,执行下一次移动操作,并生成初始动画图像,其中,FPS_TIME是每帧执行时间,假设1s执行为25帧,则每帧执行时间是1s除以25得到40ms。
当TS-TM大于等于FPS_TIME时,则延迟这个差值,以TS-TM的差值超时等待。
合成单元206,用于根据所述目标视频窗口参数和所述初始动画图像,合成视频动画。
具体的,由执行framer(框架)的硬件合成视频动画。
需要特别说明的是,本发明在使用Lua脚本执行视频动画引擎逻辑时采用的执行模式包括:主动脚本加载执行模式和交互式操作执行模式;
主动脚本加载执行模式为:将Lua脚本一次性加载到脚本执行引擎程序中,由所述引擎程序自动执行视频动画引擎逻辑,不需要用户干涉,比如,将一个小视频从左上角移动到右下角,则可以只设定起始位置和结束位置,并设定其每次移动的步长即可,视频动画引擎程序会自动完成并输出动画效果。
主动脚本加载执行模式通过Lua脚本和C程序相互调用,循环执行视频动画指令,根据数字机顶盒完成视频动画的合成,及并根据视频输出的总体耗时时间确定动画的最大帧率,根据测试统计,视频动画的帧率在10-12帧间效果较好。
交互式操作执行模式为:通过用户操作行为执行Lua脚本指令,在执行所述引擎程序的过程中,所述引擎程序根据用户输入的控制指令执行相对应的视频动画引擎逻辑。也就是说,交互式操作执行模式需要用户控制,是一种交互性的执行模式。比如,用户按向下键给定移动的距离,视频动画的方向和距离会传递到视频动画引擎程序并被执行,从而根据用户设置的参数被动完成动画效果。
本实施例中,当使用Lua脚本执行视频动画引擎逻辑时采用的执行模式为:主动脚本加载执行模式时,设置单元21具体用于:
调用所述Lua脚,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
当使用Lua脚本执行视频动画引擎逻辑时采用的执行模式为:交互式操作执行模式时,设置单元21具体用于:
调用所述Lua脚,在接收到用户输入的控制指令后,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
其中,用户可以通过遥控器按键或鼠标等输入控制指令。
与此同时,指令发起单元203中,Lua脚本是在执行等待指令之后,才会发起执行视频动画指令。
交互式操作执行模式的优势是:可以按照用户当前输入情况调整动画效果。
在实际应用中,主动脚本加载执行模式和交互式操作执行模式可以只执行其中一个,或是两者相结合,具体依据实际需要而定。
综上可知,本发明公开的实现数字电视视频动画的系统,用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,向C程序发送调用指令,调用C程序,同时将目标视频窗口参数发送给C程序中的视频动画引擎程序,使用Lua脚本发起执行视频动画指令,通过视频动画引擎程序接收频动画指令,当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像,根据目标视频窗口参数和初始动画图像,合成视频动画。使用Lua脚本执行视频动画引擎逻辑,使用C程序执行所述视频动画引擎的解析操作,因Lua脚本不需要重新编译,因此,在实际使用时,直接加载动态逻辑即可使用,从而省去了重新编译、烧写数字机顶盒和执行测试验证等步骤。并且,还可以针对每种动画场景编写一个脚本文件,并可复用原来的基础文件,从而提高了程序编写效率以及调试验证的速度。
为进一步优化上述实施例,本发明还公开了视频动画引擎的设置过程,因此,实现数字电视视频动画的系统还包括:视频动画引擎设置单元;
视频动画引擎设置单元具体用于:
(1)初始化Lua语言的数据结构,比如装载脚本的缓冲区、行为回调函数、Lua的执行环境等。
(2)在视频动画引擎中注册视频动画的API接口函数,以基于该API接口函数对移动、缩放和透明度等功能进行控制。
API接口函数比如移动函数,移动函数用于将视频从某个坐标点移动到另一个坐标点,并将新的坐标点作为传入参数。
一个Lua脚本,如test.lua脚本文件,在调用动画移动函数之前,需要在视频动画引擎程序中注册视频动画的API接口函数,从而在脚本test.lua中被找到并调用。
(3)设置视频动画引擎的API接口。
为了实现视频的动画效果,必须实现特有的API接口函数。本发明设置视频动画引擎的API接口包括:设置每个视频窗口的参数,所述参数包括:顶点坐标、宽高值、视频层的透明度以及视频帧率,其中,每个视频窗口对应一个唯一的标号,不同标号的视频窗口设置的参数不同,最后根据参数遍历所有变化的视频窗口,将所有变化的视频窗口进行合成,即得到视频动画。
因动画有帧数概念,因此,本发明设置了视频帧率。对于视频帧率,由于改变视频窗口或大小等特性需要时间,因此,本发明通过试验发现,最高帧率为25帧,即每帧动画的时间是40ms/帧,在此帧率情况下,视频动画是比较流畅的。
需要特别说明的是,视频显示的图层在系统中,对应一个frame window(帧视频窗口)的概念。每个frame(框架)中对应有多个window(视频窗口),每个window不允许重叠,且都是矩形,同时都有唯一对应的标号。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种实现数字电视视频动画的方法,其特征在于,包括:
使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数;
向C程序发送调用指令,调用所述C程序,同时将所述目标视频窗口参数发送给所述C程序中的视频动画引擎程序;
使用所述Lua脚本发起执行视频动画指令;
通过所述视频动画引擎程序接收频动画指令;
当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像;
根据所述目标视频窗口参数和所述初始动画图像,合成视频动画。
2.根据权利要求1所述的方法,其特征在于,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:主动脚本加载执行模式时,所述使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,具体包括:
调用所述Lua脚,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
3.根据权利要求1所述的方法,其特征在于,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:交互式操作执行模式时,所述使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数,具体包括:
调用所述Lua脚,在接收到用户输入的控制指令后,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
4.根据权利要求1所述的方法,其特征在于,所述视频动画引擎的设置过程包括:
初始化Lua语言的数据结构;
在所述视频动画引擎中注册视频动画的API接口函数;
设置所述视频动画引擎的API接口。
5.根据权利要求4所述的方法,其特征在于,所述设置所述视频动画引擎的API接口包括:
设置每个视频窗口的参数,所述参数包括:顶点坐标、宽高值、视频层的透明度以及视频帧率,其中,每个视频窗口对应一个唯一的标号,不同标号的视频窗口设置的参数不同。
6.一种实现数字电视视频动画的系统,其特征在于,包括:
设置单元,用于使用Lua脚本执行视频动画引擎逻辑,对视频窗口参数进行设置,得到目标视频窗口参数;
调用单元,用于向C程序发送调用指令,调用所述C程序,同时将所述目标视频窗口参数发送给所述C程序中的视频动画引擎程序;
指令发起单元,用于使用所述Lua脚本发起执行视频动画指令;
指令接收单元,用于通过所述视频动画引擎程序接收频动画指令;
生成单元,用于当每帧动画执行一次移动操作的时间不小于每帧动画的执行时间时,执行下一次移动操作,并生成初始动画图像;
合成单元,用于根据所述目标视频窗口参数和所述初始动画图像,合成视频动画。
7.根据权利要求6所述的系统,其特征在于,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:主动脚本加载执行模式时,所述设置单元具体用于:
调用所述Lua脚,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
8.根据权利要求6所述的系统,其特征在于,当使用所述Lua脚本执行所述视频动画引擎逻辑时采用的执行模式为:交互式操作执行模式时,所述设置单元具体用于:
调用所述Lua脚,在接收到用户输入的控制指令后,使用所述Lua脚主动执行所述视频动画引擎逻辑,对所述视频窗口参数进行设置,得到所述目标视频窗口参数。
9.根据权利要求6所述的系统,其特征在于,还包括:视频动画引擎设置单元,具体用于初始化Lua语言的数据结构;在所述视频动画引擎中注册视频动画的API接口函数;设置所述视频动画引擎的API接口。
10.根据权利要求9所述的系统,其特征在于,所述设置所述视频动画引擎的API接口包括:
设置每个视频窗口的参数,所述参数包括:顶点坐标、宽高值、视频层的透明度以及视频帧率,其中,每个视频窗口对应一个唯一的标号,不同标号的视频窗口设置的参数不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810829439.3A CN108933969B (zh) | 2018-07-25 | 2018-07-25 | 一种实现数字电视视频动画的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810829439.3A CN108933969B (zh) | 2018-07-25 | 2018-07-25 | 一种实现数字电视视频动画的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108933969A true CN108933969A (zh) | 2018-12-04 |
CN108933969B CN108933969B (zh) | 2021-02-09 |
Family
ID=64444769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810829439.3A Active CN108933969B (zh) | 2018-07-25 | 2018-07-25 | 一种实现数字电视视频动画的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108933969B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825383A (zh) * | 2019-10-14 | 2020-02-21 | 北京奇艺世纪科技有限公司 | 一种视频交互方法、装置及计算机可读存储介质 |
CN110879738A (zh) * | 2019-11-19 | 2020-03-13 | 北京云测信息技术有限公司 | 一种操作步骤的展示方法、装置及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071373A (zh) * | 2007-03-30 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 一种软件界面处理方法及装置 |
KR20080018407A (ko) * | 2006-08-24 | 2008-02-28 | 한국문화콘텐츠진흥원 | 3차원 캐릭터의 변형을 제공하는 캐릭터 변형 프로그램을기록한 컴퓨터 판독가능 기록매체 |
CN101408972A (zh) * | 2007-10-08 | 2009-04-15 | 陈伟明 | 一种利用电脑制作个性化立体图案的方法 |
CN101419550B (zh) * | 2008-11-21 | 2011-04-06 | 上海市信息投资股份有限公司 | 机顶盒多媒体接口的界面和行为的动态配置方法及装置 |
CN102567014A (zh) * | 2011-11-14 | 2012-07-11 | 南京天溯自动化控制系统有限公司 | 一种Lua脚本在SCADA系统中实现动画的方法 |
CN103246502A (zh) * | 2012-02-10 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种弹出式窗口的实现方法和系统 |
CN103955153A (zh) * | 2014-04-15 | 2014-07-30 | 深圳众为兴技术股份有限公司 | 一种运动控制系统及方法 |
CN105094523A (zh) * | 2015-06-17 | 2015-11-25 | 厦门幻世网络科技有限公司 | 一种3d动画的展现方法及装置 |
-
2018
- 2018-07-25 CN CN201810829439.3A patent/CN108933969B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080018407A (ko) * | 2006-08-24 | 2008-02-28 | 한국문화콘텐츠진흥원 | 3차원 캐릭터의 변형을 제공하는 캐릭터 변형 프로그램을기록한 컴퓨터 판독가능 기록매체 |
CN101071373A (zh) * | 2007-03-30 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 一种软件界面处理方法及装置 |
CN101408972A (zh) * | 2007-10-08 | 2009-04-15 | 陈伟明 | 一种利用电脑制作个性化立体图案的方法 |
CN101419550B (zh) * | 2008-11-21 | 2011-04-06 | 上海市信息投资股份有限公司 | 机顶盒多媒体接口的界面和行为的动态配置方法及装置 |
CN102567014A (zh) * | 2011-11-14 | 2012-07-11 | 南京天溯自动化控制系统有限公司 | 一种Lua脚本在SCADA系统中实现动画的方法 |
CN103246502A (zh) * | 2012-02-10 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种弹出式窗口的实现方法和系统 |
CN103955153A (zh) * | 2014-04-15 | 2014-07-30 | 深圳众为兴技术股份有限公司 | 一种运动控制系统及方法 |
CN105094523A (zh) * | 2015-06-17 | 2015-11-25 | 厦门幻世网络科技有限公司 | 一种3d动画的展现方法及装置 |
Non-Patent Citations (2)
Title |
---|
戴玺等: "一种可扩展3D游戏脚本系统的设计与实现", 《计算机与现代化》 * |
邓正阳等: "动态脚本语言Lua与C++交互方法的研究与实现", 《计算机系统应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825383A (zh) * | 2019-10-14 | 2020-02-21 | 北京奇艺世纪科技有限公司 | 一种视频交互方法、装置及计算机可读存储介质 |
CN110825383B (zh) * | 2019-10-14 | 2023-08-22 | 北京奇艺世纪科技有限公司 | 一种视频交互方法、装置及计算机可读存储介质 |
CN110879738A (zh) * | 2019-11-19 | 2020-03-13 | 北京云测信息技术有限公司 | 一种操作步骤的展示方法、装置及电子设备 |
CN110879738B (zh) * | 2019-11-19 | 2023-05-05 | 北京云测信息技术有限公司 | 一种操作步骤的展示方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108933969B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8125492B1 (en) | Parameter wiring | |
CN106230841B (zh) | 一种基于终端的网络直播中视频实时美颜及推流的方法 | |
US7336280B2 (en) | Coordinating animations and media in computer display output | |
CN102541515B (zh) | 一种实现切屏特效的方法及装置 | |
CN104517307B (zh) | 一种动画制作方法和装置 | |
CN102520951B (zh) | 基于Flash的三维游戏场景管理系统 | |
US20040036711A1 (en) | Force frames in animation | |
JP2006313536A (ja) | 高品質なユーザーインターフェイスによる効率的な遠隔表示を行なうシステム | |
CN103514620B (zh) | 3d立体动画全流程制作云计算平台 | |
WO2013086903A1 (zh) | Ui布局自适应方法、移动设备以及布局生成设备 | |
CN109240629A (zh) | 一种桌面投屏方法、装置、设备及存储介质 | |
CN108933969A (zh) | 一种实现数字电视视频动画的方法及系统 | |
CN102520864A (zh) | 一种播放连续图片的方法和装置 | |
CN103927779B (zh) | 一种基于配置的二维动画生成方法 | |
CN111756956A (zh) | 虚拟演播厅中虚拟灯光控制方法及装置、介质及设备 | |
CN105446593A (zh) | 一种游戏动态图标控制方法及装置 | |
CN102566983B (zh) | 基于Windows系统的对象拖拽实现方法及其系统 | |
CN103019725B (zh) | 基于3d模型的界面逻辑控制方法 | |
CN106528159A (zh) | 一种移动终端实现应用具有动态效果的方法及系统 | |
JP2013016045A (ja) | 画像表示システム、情報処理装置、サーバ、および画像処理方法 | |
CN108769815A (zh) | 视频处理方法及其装置 | |
CN102467746A (zh) | 在便携式设备上制作动画的方法 | |
CN109829205A (zh) | 一种场景创建方法、装置及计算机可读存储介质 | |
CN102467377A (zh) | 动画制作方法 | |
US20230020294A1 (en) | Screen size adjustment method for lcd projectors |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |