一种高效率打开多个视频对象的方法

文档序号:7717946阅读:196来源:国知局
专利名称:一种高效率打开多个视频对象的方法
技术领域
本发明涉及视频处理技术领域,具体涉及到加载视频对象的相关技术。
背景技术
假设一个容器需要重复加载多个视频对象,其中视频对象的显示方式为利用视 频的第一帧画面来标识自己。传统的实现方法为当某容器需要加载一个视频对象时,需要 对此视频对象进行解码操作,然后播放该视频的第一帧,接着暂停播放,从而使视频显示在 第一帧的画面上。以此类推,使该容器成功创建多个视频对象。当该容器需要再次加载视 频对象时,就得使用前述方法重新加载。上述传统的实现方法,其缺陷在于打开视频的效率低下。因为该方法每一次加载 视频对象都需要临时进行解码操作,而每一次视频解码的时间都是不确定的。一般而言,容 量越大、压缩率越高的视频对象所需的解码时间越长。例如,在目前普通的个人计算机上, 尺寸大小为720*480、文件大小为55. 7MB的视频对象的解码时间约为400ms。因此,如果一 次性加载100个这样的视频对象,那么仅仅视频解码花费的时间就要40秒左右。

发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种高效率打开多个视频对 象的方法,该方法有且只有一次视频解码过程,因而大大地提高了视频加载的效率。本发明的目的通过以下技术方案实现,一种高效率打开多个视频对象的方法,包 括以下步骤步骤1、从加载容器里选取一个未打开过的视频对象作为操作对象;步骤2、在外部存储器中,搜索步骤1所选取的视频对象对应的图片;步骤3、判断外部存储器中是否存在步骤1所选取视频对象对应的图片;若存在则 执行步骤41,否则执行步骤421-423 ;步骤41、读取外部存储器中的步骤1所选取视频对象对应的图片作为视频对象的 显示图像,然后执行步骤5;步骤421、对步骤1所选取视频对象进行解码操作;步骤422、抓取步骤1所选取视频对象的第一帧图像作为其显示图像;步骤423、对步骤422所抓取的第一帧图像进行唯一性的命名后,将其保存到外部 存储器中,然后执行步骤5;步骤5、判断是否打开了加载容器中的所有视频对象;如果是,则结束操作,否则 返回步骤1。在上述高效率打开多个视频对象的方法中,所述步骤41具体为渲染外部存储器 中的步骤1所选取视频对象对应的图片,将其作为视频对象的显示图像,然后执行步骤5。在上述高效率打开多个视频对象的方法中,所述步骤422包括以下步骤a、获取 视频对象的第一帧数据的字节流;b、将字节流数据转换为位图对象;C、渲染位图对象。
在上述高效率打开多个视频对象的方法中,所述步骤423包括以下步骤d、获取 图片保存类型的编码方式;e、将步骤b所获取的位图对象保存到外部存储器中,形成一张 图片。优选地,所述图片类型为bmp、jpg、jpeg、gif、tiff或png。在上述高效率打开多个视频对象的方法中,执行步骤1之前,还执行步骤6、卸载 所有不属于加载容器的视频对象。本发明相对于现有技术具有如下的优点及效果在打开多个视频对象时只需进行 一次视频解码过程当容器第一次加载一个视频对象时,需要对此视频对象进行解码操作, 然后抓取视频的第一帧图像作为显示图像,并将此图像保存到外存(如硬盘)中;以此类 推,使该容器成功创建多个视频对象。当该容器需要再次加载该视频对象时,只需将其保存 在外存中的图片提取出来作为视频对象的显示图像即可,无需再次对此视频对象进行解码 或其他操作(如播放、暂停等)。由于本发明有且只有一次视频解码过程,因而大大地提高 了视频加载的效率。


图1是本发明的一个实施例中加载视频对象的流程图。
具体实施例方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。实施例本实施中,设置了二个需要重复加载多个视频对象的容器,分别是容器A和容器 B。且在同一时间内只允许存在一个容器作为加载容器,即当容器A存在时,只需加载A的 视频对象,而所有非容器A里的视频对象都要被卸载掉;同理,当切换到容器B作为加载容 器时,只需加载容器B的视频对象,而所有非容器B的视频对象都要被卸载掉。其中视频对 象的显示方式为利用视频的第一帧图像来标识。如图1所示,本实施例在具体实施过程中主要包括以下几个步骤步骤Si、卸载所有不属于加载容器的视频对象。步骤S2、从加载容器里选取一个未打开过的视频对象作为操作对象。步骤S3、在外部存储器中,搜索步骤S2所选取的视频对象对应的图片。例如可根据视频名称搜索特定位置中的图片,即遍历特定位置的所有图片,如果图片名称与视频名称匹配(匹配名称不包括文件扩展名),那么表示搜索成功。步骤S4、判断外部存储器中是否存在步骤S2所选取视频对象对应的图片;若存在 则执行步骤S51,否则执行步骤S521-S523。步骤S51、读取外部存储器中的步骤S2所选取视频对象对应的图片作为视频对象 的显示图像,然后执行步骤S6。本步骤在实际应用时,可这样实现渲染外部存储器中的步 骤S2所选取视频对象对应的图片,将其作为视频对象的显示图像。例如可使用GDIPlus的 Graphics对象渲染搜索成功的图片。步骤S521、对步骤S2所选取视频对象进行解码操作。实际应用时,使用标准的视 频解码方法来对视频对象进行解码。
步骤S522、抓取步骤S2所选取视频对象的第一帧图像作为其显示图像。本步骤具 体为a、获取视频对象的第一帧数据的字节流;b、将字节流数据转换为位图对象,例如将 字节流数据转换为⑶IPlus的Bitmap对象,其中Bitmap对象就是视频对象的第一帧图像; c、渲染位图对象,例如使用⑶IPlus的Graphics对象渲染Bitmap对象,从而将第一帧图像 显示出来。步骤S523、对步骤S522所抓取的第一帧图像进行唯一性的命名后,将其保存到外部存储器中,然后执行步骤S6。本步骤具体为d、获取图片保存类型的编码方式,所述图片 类型可以为bmp、jpg、jpeg、gif、tiff或png等;e、将步骤b所获取的位图对象保存到外部 存储器中,形成一张图片。例如可以将步骤b所获取的Bitmap对象保存到外部存储器中的 一个特定位置(如新建文件夹),图片命名方式为“视频名称.图片类型”。步骤S6、判断是否打开了加载容器中的所有视频对象;如果是,则结束操作,否则 返回步骤S2。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。
权利要求
一种高效率打开多个视频对象的方法,其特征在于包括以下步骤步骤1、从加载容器里选取一个未打开过的视频对象作为操作对象;步骤2、在外部存储器中,搜索步骤1所选取的视频对象对应的图片;步骤3、判断外部存储器中是否存在步骤1所选取视频对象对应的图片;若存在则执行步骤41,否则执行步骤421-423;步骤41、读取外部存储器中的步骤1所选取视频对象对应的图片作为视频对象的显示图像,然后执行步骤5;步骤421、对步骤1所选取视频对象进行解码操作;步骤422、抓取步骤1所选取视频对象的第一帧图像作为其显示图像;步骤423、对步骤422所抓取的第一帧图像进行唯一性的命名后,将其保存到外部存储器中,然后执行步骤5;步骤5、判断是否打开了加载容器中的所有视频对象;如果是,则结束操作,否则返回步骤1。
2.根据权利要求1所述的高效率打开多个视频对象的方法,其特征在于所述步骤41具 体为渲染外部存储器中的步骤1所选取视频对象对应的图片,将其作为视频对象的显示 图像,然后执行步骤5。
3.根据权利要求1所述的高效率打开多个视频对象的方法,其特征在于所述步骤422 包括以下步骤a、获取视频对象的第一帧数据的字节流;b、将字节流数据转换为位图对 象;C、渲染位图对象。
4.根据权利要求3所述的高效率打开多个视频对象的方法,其特征在于所述步骤423 包括以下步骤d、获取图片保存类型的编码方式;e、将步骤b所获取的位图对象保存到外 部存储器中,形成一张图片。
5.根据权利要求4所述的高效率打开多个视频对象的方法,其特征在于所述图片类 型为 bmp、jpg、jpeg、gif> tiff 或 pngD
6.根据权利要求1-5中任一项所述的高效率打开多个视频对象的方法,其特征在于执 行步骤1之前,还执行步骤6、卸载所有不属于加载容器的视频对象。
全文摘要
本发明涉及打开多个视频对象的方法,包括以下步骤从加载容器里选取一个未打开过的视频对象作为操作对象;在外部存储器中搜索所选取的视频对象对应的图片;判断外部存储器中是否存在所选取视频对象对应的图片,若存在则读取该图片作为视频对象对应的显示图像,否则对所选取视频对象进行解码操作,然后抓取所选取视频对象的第一帧图像作为其显示图像并对其进行唯一性的命名后保存到外部存储器中;判断是否打开了加载容器中的所有视频对象,如果是则结束操作,否则返回第一步继续操作。本发明有且只有一次视频解码过程,大大地提高了视频加载的效率,解决了现有方法效率低的问题。
文档编号H04N5/00GK101800839SQ20091021413
公开日2010年8月11日 申请日期2009年12月24日 优先权日2009年12月24日
发明者尹显用, 胡建华, 黄宝华 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1