发明内容
针对上述的缺陷,本发明目的在于提供一种视频算法开发平台及其开发方法,其可以实现视频算法的动态调试,从而可以通过设定不同的视频播放帧率以检验不同情况下视频算法对CPU等资源的占用率,并且可以实时观测到视频算法的最终效果。
为了实现上述目的,本发明提供一种视频算法开发平台,其特点在于,包括:视频源模块,用于从数据源中读取数据,并根据所述数据产生视频流数据;图像算法数据库,用于动态存储和提供图像算法;视频处理模块,包括有一个或多个公用图像处理接口,用于通过所述公用图像处理接口加载所述图像算法,并根据所述图像算法对所述视频流数据进行编/解码和压缩/解压缩处理;视频显示模块,用于显示所述经过编/解码和压缩/解压缩处理后的视频流数据;其中,所述视频源模块进一步包括:数据源读取子模块,用于从数据源中读取数据;参数设置子模块,用于设置若干视频参数,所述视频参数包括:视频流输出格式,视频流播放帧率和视频流尺寸大小;视频生成子模块,用于根据所述数据和设置的视频参数产生视频流数据;视频协商子模块,用于与所述视频处理模块进行协商以建立视频链路供所述视频处理模块接收所述视频生成子模块产生的视频流数据。优选地,所述图像算法根据所述公用图像处理接口进行开发并存储在所述图像算法数据库中。
优选地,所述视频显示模块进一步用于统计并显示与所述视频流数据相关的信息,所述信息包括:包括视频流播放帧率和系统资源使用率。
为了实现上述目的,本发明还提供了一种使用上述的视频算法开发平台的视频算法开发方法,其特点在于,所述方法包括:
A、根据公用图像处理接口进行开发图像算法并将所述图像算法存储在图像算法数据库中;
B、从数据源中读取数据;
C、设置若干视频参数,所述视频参数包括:视频流输出格式,视频流播放帧率和视频流尺寸大小;
D、根据所述数据和设置的视频参数产生视频流数据;
E、通过协商以建立视频链路供所述视频处理模块接收所述视频生成子模块所产生的视频流数据;
F、通过一个或多个公用图像处理接口加载所述存储在图像算法数据库中的图像算法,并根据所述图像算法对所述视频流数据进行编/解码和压缩/解压缩处理;
G、显示所述经过编/解码和压缩/解压缩处理后的视频流数据。
优选地,所述步骤G中进一步包括:统计并显示与所述视频流数据相关的信息,所述信息包括:包括帧率和系统资源使用率。
本发明视频源模块从数据源中读取数据,并根据所述数据产生视频流数据;然后由包括有一个或多个公用图像处理接口的视频处理模块通过所述公用图像处理接口对所述视频流数据进行编/解码和压缩/解压缩处理,再由视频显示模块显示所述经过编/解码和压缩/解压缩处理后的视频流数据。借此,本发明可以实现视频算法的动态调试,从而可以通过设定不同的视频播放帧率以检验不同情况下视频算法对CPU等资源的占用率,并且可以实时观测到视频算法的最终效果,进而可以更好对视频算法进行优化。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的基本思想是:视频源模块从数据源中读取数据,并根据所述数据产生视频流数据;然后由包括有一个或多个公用图像处理接口的视频处理模块通过所述公用图像处理接口对所述视频流数据进行编/解码和压缩/解压缩处理,再由视频显示模块显示所述经过编/解码和压缩/解压缩处理后的视频流数据。借此,实现视频算法的动态调试。
参见图1,本发明提供的视频算法开发平台10包括:视频源模块11、视频处理模块12、视频显示模块13和图像算法数据库14,其中,
视频源模块11,用于从数据源中读取数据,并根据所述数据产生视频流数据。具体而言,该视频源模块11的主要作用是模拟视频采集设备产生视频数据。数据可以根据录制的视频播放文件,也可以制定特定格式的静态图片,在该模块11内会将指定的静态图片或视频播放文件按照视频参数产生视频流数据。视频源模块11包括有:数据源读取子模块111、参数设置子模块112、视频生成子模块113和视频协商子模块114,其中:
数据源读取子模块111,用于从数据源中读取数据。
参数设置子模块112,用于设置若干视频参数,所述视频参数包括:视频流输出格式,视频流播放帧率和视频流尺寸大小。该参数设置子模块112通过如图2所示的GUI(Graphical User Interface,图形界面)显示视频参数,然后用户通过操作参数设置子模块112设置视频参数值。
视频生成子模块113,与数据源读取子模块111和参数设置子模块112相连,用于根据数据源读取子模块111生成的所述数据和参数设置子模块112设置的视频参数产生视频流数据。
视频协商子模块114,用于与所述视频处理模块12进行协商以建立视频链路供所述视频处理模块12接收所述视频生成子模块113产生的视频流数据。
协商指的是上一个模块的输出端声明新数据格式,下一个模块的输入端在检查输入数据格式时接受该格式即可。由此,通过视频协商子模块114在视频源模块11和视频处理模块12之间建立了如Direct X等视频链路。
视频处理模块12,包括有一个或多个公用图像处理接口,用于通过所述公用图像处理接口对所述视频流数据进行解码和解压缩处理。
该视频处理模块12与视频协商子模块114进行协商后,接收视频生成子模块113产生的视频流数据,然后通过公用图像处理接口对视频流数据进行解码和解压缩处理。
公用图像处理接口是指一组通用的图像编码/解码的调用方法,视频处理模块12通过调用这些公用的接口可以处理不同的数据格式。
在做图像处理开发时,可以根据公用图像处理接口开发相应的图像算法并存储在图像算法数据库14库中以在链入工程后,即可使用,极大的方便了图像处理开发。根据公用图像处理接口开发的图像算法库也可方便的直接加入其他工程中使用,减少再次开发的环节。
图像算法数据库14,用于动态存储和提供图像算法。所述视频处理模块13通过所述公用图像处理接口加载所述图像算法数据库14存储的图像算法,并根据所述图像算法对所述视频流数据进行编/解码和压缩/解压缩处理。
视频显示模块13,用于显示所述经过编/解码和压缩/解压缩处理后的视频流数据。该视频显示模块13还进一步用于统计并显示与所述视频流数据相关的信息,所述信息包括:包括视频流播放帧率和系统资源使用率。由此,可以方便直观的看到图像算法的性能、效果,并根据性能、效果优化图像算法或调整视频参数。
图3是本发明提供的视频算法开发方法流程图,结合图1所示的视频算法开发平台10进行描述,该方法包括:
步骤S301,视频源模块11从数据源中读取数据,并根据所述数据产生视频流数据。
步骤S302,视频处理模块12通过一个或多个公用图像处理接口对所述视频流数据进行编/解码和压缩/解压缩处理。
步骤S303,视频显示模块13显示所述经过编/解码和压缩/解压缩处理后的视频流数据。
为了更好的描述本发明,本发明优选实施例提供了一种视频算法开发方法如图4所示,结合图1所示的视频算法开发平台10进行描述,该方法具体包括:
步骤S400,根据公用图像处理接口进行开发图像算法并存储在图像算法数据库14中。
步骤S401,视频源模块11的数据源读取子模块111从数据源中读取数据。
步骤S402,参数设置子模块112设置若干视频参数,所述视频参数包括:视频流输出格式,视频流播放帧率和视频流尺寸大小。
步骤S403,视频生成子模块113根据所述数据源读取子模块111获取的数据和参数设置子模块112设置的视频参数产生视频流数据。
步骤S404,视频协商子模块114对所述视频流数据进行协商以建立视频链路。
步骤S405,视频处理模块12与视频协商子模块114协商后,接收视频生成子模块113产生的视频流数据,并通过所述公用图像处理接口加载存储在图像算法数据库中14的图像算法,和根据所述图像算法对所述视频流数据进行编/解码和压缩/解压缩处理。
步骤S406,视频显示模块13显示所述经过编/解码和压缩/解压缩处理后的视频流数据和统计并显示与所述视频流数据相关的信息,所述信息包括:包括帧率和系统资源使用率
综上可知,本发明视频源模块从数据源中读取数据,并根据所述数据产生视频流数据;然后由包括有多个公用图像处理接口的视频处理模块通过所述公用图像处理接口对所述视频流数据进行解码和解压缩处理,再由视频显示模块显示所述经过解码和解压缩处理后的视频流数据。借此,本发明可以实现视频算法的动态调试,从而可以通过设定不同的视频播放帧率以检验不同情况下视频算法对CPU等资源的占用率,并且可以实时观测到视频算法的最终效果,进而可以更好对视频算法进行优化。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。