CN103338340A - 实现多视频流帧画面自定义组合的画中画模块和方法 - Google Patents
实现多视频流帧画面自定义组合的画中画模块和方法 Download PDFInfo
- Publication number
- CN103338340A CN103338340A CN2013102404062A CN201310240406A CN103338340A CN 103338340 A CN103338340 A CN 103338340A CN 2013102404062 A CN2013102404062 A CN 2013102404062A CN 201310240406 A CN201310240406 A CN 201310240406A CN 103338340 A CN103338340 A CN 103338340A
- Authority
- CN
- China
- Prior art keywords
- picture
- frame
- screen
- video
- function interface
- 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
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供的一种实现多视频流帧画面自定义组合的画中画模块和方法,满足了多视频画面在同一屏幕上同步、实时、动态显示的目的。本发明的画中画方法包括以下步骤:1)配置画中画屏幕显示策略配置文件;2)进行初始化,读取屏幕显示策略配置文件;3)设置画中画屏幕显示的相关参数,包括设定当前画中画屏幕显示策略;4)调用用来组合画中画画面的多个视频流,传入视频流信息;对于需要在画中画画面中显示的视频流,处理输入的帧信息并保存处理后的帧信息;5)按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。
Description
技术领域
本发明涉及视频处理技术领域,特别是涉及一种实现多视频流帧画面自定义组合的画中画模块和方法。
背景技术
画中画技术最早产生于上世纪80年代,最初主要是在模拟电视系统中应用,即在同一屏幕上同时显示不同通道的两个或多个画面,并能实现画面的调整和切割。随着多媒体数据压缩技术的不断成熟,信息数字化技术的不断发展,数字电视逐渐取代模拟电视,此时画中画技术更多的是基于数字电视的应用。目前,由于互联网技术的迅猛发展,通过互联网实现的远程数字视频的画中画技术也将在许多行业得到广泛应用,例如在网络远程教学中,在远程医疗会诊场景中,时常会需要将两个或更多的视频画面同时在一个页面上进行同步、实时的展示,并且在将主画面播出的同时,经常还需要将关注的某一画面进行放大,重点展示。网络视音频画中画应用是指在页面大画面视频播放时,画中画小画面视频固定在大画面的某个位置播放,两个或多个视频场景通过一个视频窗口进行网络收看,并根据需要可以事先设置画中画小画面视频窗口的大小,以及小画面视频在画中画中的上下左右位置,给用户一个实时流畅的网络收看效果。
现有的画中画技术的实现方法是将大画面和小画面进行合成,合成前的处理需要自己完成,合成的方法也是简单的内存拷贝,如果分辨率不正规,易出现不稳定性问题;合成的布局大多是通过函数接口传递一些需要经常修改的参数或者代码中写死,灵活性差,更改不便;合成前需要自己将图片进行处理,传参检查、多个流的同步等异常问题保障机制不完善,系统性不佳;所支持的视频流格式也为一种,如果不匹配,需要用户事先进行转换,易用性不强;
发明内容
本发明根据现有技术存在的缺陷,提供一种实现多视频流帧画面自定义组合的画中画模块和方法,满足多视频画面在同一屏幕上同步、实时、动态显示的目的。
本发明的技术方案是:
一种实现多视频流帧画面自定义组合的画中画方法,其特征在于,包括以下步骤:
步骤一,配置画中画屏幕显示策略配置文件,所述配置文件中包括多个视频流在同一屏幕上显示的不同的显示策略;
步骤二,进行初始化,读取屏幕显示策略配置文件;
步骤三,设置画中画屏幕显示的相关参数,包括设定当前画中画屏幕显示策略;
步骤四,调用用来组合画中画画面的多个视频流,传入视频流信息;对于需要在画中画画面中显示的视频流,处理输入的帧信息并保存处理后的帧信息;
步骤五,按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。
所述步骤一中,所述配置文件中包括标识不同显示策略信息的策略ID以及对应的画中画屏幕显示信息,一个完整的策略ID节点表示一个完整的画中画屏幕显示信息,其中包含若干个子屏幕以及每个子屏幕所处的位置和大小,每个子屏幕分别用唯一的屏幕ID标识,子屏幕的位置和大小通过子屏幕左上角坐标节点(x,y)和子屏幕大小节点(w,h)标识,采用占输出分辨率长和宽的比例来描述。
所述步骤三中,设置的相关参数包括:首先设置画中画中的每个画面的输出分辨率的大小和视频格式类型并构造与视频格式相关的中间变量;然后设定当前画中画屏幕显示策略ID,根据策略ID,开辟帧队列空间并保存所述策略ID对应的屏幕显示信息;再设置用来组合画中画画面的每个视频流的流号与所述策略ID中的标识每个子屏幕的屏幕ID的对应关系;最后设置主流ID,即设定用来组合画中画画面的多个视频流中的某个视频流为主画面视频流,则其余的视频流为子画面视频流,在进行多视频流画中画组合时,子画面视频流以主画面视频流为基础在时间上同步。
所述步骤四中,传入的视频流信息包括输入和输出的帧信息、输入流所属的流号、输入帧的分辨率、帧个数、时间戳;对于传入的视频流,首先检查当前输入帧所属流是否在步骤三设定的屏幕显示信息中,就是指该流是否需要被显示在屏幕上,如果是,则将当前输入的帧信息保存在对应的帧队列空间中。
所述步骤四中,在保存的过程中会检查分辨率是否匹配,如果匹配则直接保存,如果不匹配,先转换再保存,所述的匹配是指输入的帧画面的宽和高和该流对应的子屏幕的宽和高是否匹配,如果不匹配,就在保存前将帧画面缩放成对应的子屏幕的大小再保存。
所述步骤四中,在给帧队列空间存放帧画面信息前,包括判断当前帧队列剩余空间是否满足待存放的数据帧的个数的步骤;如果满足,则正常存放,如果不满足,则根据差值个数,将已保存的最旧的若干帧数据删掉后再存入待存放的数据帧。
所述步骤五中,在取出帧信息进行组合前,包括根据设定的主流ID,先检查主画面的帧队列空间是否为空的步骤,如果主画面的帧队列空间不为空,就依次将当前所有子画面对应的帧队列空间中存放的最旧的帧画面取出拷贝到对应的屏幕区域内,输出组合后的帧画面;组合过程中,包括检查子画面的帧队列空间是否为空的步骤,如果当前子画面对应的帧队列空间中存放的帧画面取空,就依次将当前子画面对应的帧队列空间中存放的最新的备份帧取出拷贝到对应的屏幕区域内,输出组合后的帧画面。
所述步骤三中,包括修改策略ID的步骤,修改策略ID需要清空开辟的帧队列空间,并根据修改的新的策略ID开辟新的帧队列空间;包括关闭视频流信息传入入口的步骤,在修改策略ID时就会关闭视频流信息传入入口,如果当前视频流信息正在传入,则会等待本次传入完成,然后才开始修改策略ID,修改完成后再打开视频流信息传入入口。
一种实现多视频流帧画面自定义组合的画中画模块,其特征在于,包括业务功能层单元、数据管理层单元、数据保存层单元以及为业务功能层单元提供加载画中画屏幕显示策略配置文件的画中画屏幕信息配置单元;所述业务功能层单元用于对外提供操作接口,管理数据管理层单元,实现画中画的业务功能;所述数据管理层单元用于为业务功能层单元提供从数据保存层单元存取视频数据的操作接口,管理数据保存层单元;所述数据保存层单元用于保存组合画中画画面的多个视频流的视频数据,为数据管理层单元提供存取视频数据操作接口;所述画中画屏幕信息配置单元用于配置画中画屏幕显示策略,生成画中画屏幕显示策略配置文件提供给业务功能层单元。
所述业务功能层单元的对外接口包括初始化函数接口、设置输出分辨率函数接口、设置策略ID函数接口、设置主流ID函数接口、修改屏幕显示对应信息函数接口、画中画工作函数接口;所述初始化函数接口用于读取画中画屏幕显示策略配置文件;所述设置输出分辨率函数接口用于在初始化函数接口初始化成功后设置画中画中的每个画面的输出分辨率大小和视频格式类型并构造与视频格式相关的中间变量;所述设置策略ID函数接口用于设置和修改当前画中画屏幕显示策略的策略ID;所述修改屏幕显示对应信息函数接口用于在设定了策略ID后,再设置用来组合画中画画面的每个视频流的流号与所述策略ID中的标识每个子屏幕的屏幕ID的对应关系;所述设置主流ID函数接口用于设定用来组合画中画画面的多个视频流中的某个视频流为主视频流;所述画中画工作函数接口用于传入用来组合画中画画面的多个视频流,对输入帧进行处理和保存,并按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。
所述数据管理层单元的接口包括初始化函数接口、存放帧信息函数接口、取出帧信息函数接口、取出最新备份帧函数接口、队列判空函数接口、资源释放函数接口;所述初始化函数接口用于将不同的帧格式数据保存在不同的视频数据保存层;所述存放帧信息函数接口用于将输入的帧信息存放到数据保存层;所述取出帧信息函数接口用于取出存放在数据保存层的帧信息,取出的原则是先进先出;所述取出最新备份帧信息函数接口用于在当前要取出的帧信息不是主流信息,并且数据保存层已经没有该视频流的信息时,取出该流的最新备份帧信息;所述队列判空函数接口用于在业务功能层调取帧画面前先检查被取得的帧队列是否有画面;所述资源释放函数接口用于在业务层修改策略ID时,在保存层需要重新构建循环队列空间之前,释放原有的资源。
所述数据保存层单元的接口包括初始化函数接口、检查帧队列函数接口、判空函数接口、存放计数函数接口、取出计数函数接口、处理分辨率并存放函数接口、资源释放函数接口。取出并填充帧函数接口、取出并填充备份帧函数接口;所述初始化函数接口用于初始化帧队列空间,给每个子屏幕开辟一个帧队列空间,设置相关参数,所述相关参数包括最终输出的分辨率宽和高、视频格式RGB24或YUV420、当前数据保存层对应的子屏幕大小,即左上角坐标以及宽和高的比例系数;所述检查帧队列函数接口用于在给帧队列空间存放帧前检查当前帧队列的剩余空间是否满足存放个数,如果满足则正常存放,如果不满足则返回差值个数给数据管理层,由数据管理层处理后再存放;所述判空函数接口是用于给数据管理层提供检查当前帧队列空间是否为空的接口;所述存放计数函数接口用于存放传入的帧画面信息成功后修改帧队列空间中存放帧的个数;所述取出计数函数接口用于取出帧画面信息成功后修改帧队列空间中存放帧的个数;所述处理分辨率并存放函数接口用于将输入的帧信息做分辨率检查,如果和输出的分辨率一致则直接保存,如果不一致则将分辨率转换一致再保存;所述释放资源函数接口是给数据管理层提供释放资源的接口;所述取出并填充帧函数接口为视频数据管理层提供取出帧信息并拷贝到目标区域的接口;所述取出并填充备份帧函数接口为视频数据管理层提供取出备份帧信息并填充到目标区域的接口;
所述画中画业务功能层单元的对外接口还包括对外提供的业务信息获取接口,包括获取当前策略ID接口、获取主流ID接口、获取输出分辨率接口、获取屏幕显示对应信息接口,用于获取当前的策略ID、当前的主流ID、当前的视频分辨率信息以及当前视频流的流号与每个子屏幕的屏幕ID的对应关系。
所述画中画模块还包含日志模块和数据文件模块,所述日志模块负责记录系统运行异常信息,数据文件模块用于定义数据结构以及包含的开源库的头文件。
本发明的技术效果:
本发明提供的画中画模块是基于开源库opencv和poco开发出的多视频流帧画面自定义组合模块,该模块可跨平台使用,模块接口使用便捷、易于扩展、性能稳定可靠,可根据用户对画中画屏幕显示的样式需求进行配置,无需改动源代码即可满足需求。该模块根据功能细分为多个小单元进行各种功能管理应用,以满足多视频流在同一个屏幕中显示的需求为目的,并且自身带有视频数据保存功能,视频数据传入工作接口后即可销毁,之后处理不依赖外部内存空间,用以承载返回的视频流合成后的数据由外部开辟内存空间,可应用于视频处理领域任何需要此项功能的场景。
本发明的画中画模块的技术特点:1)易维护:采用功能模块细分的设计思想,整个模块由若干个小功能单元组成,其核心结构主要包括业务功能层单元、数据管理层单元、数据保存层单元以及为业务功能层单元提供加载画中画屏幕显示策略配置文件的画中画屏幕信息配置单元,代码的维护只是在局部单元中,维护起来非常方便;2)效率高:借用成熟稳定的开源库项目为基础,大大提高模块的稳定性和效率;3)易扩展:由于面向对象的特点,设计出高内聚、低耦合的模块结构,使得系统更灵活、更容易扩展。
附图说明
图1是本发明实现多视频流帧画面自定义组合的画中画方法的流程示意图。
图2是本发明实现多视频流帧画面自定义组合的画中画模块的结构示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
如图1所示,是本发明实现多视频流帧画面自定义组合的画中画方法的流程示意图。
一种实现多视频流帧画面自定义组合的画中画方法,包括以下步骤:
步骤一,配置画中画屏幕显示策略配置文件,所述配置文件中包括多个视频流在同一屏幕上显示的不同的显示策略;步骤一中,配置文件中包括标识不同显示策略信息的策略ID以及对应的画中画屏幕显示信息,如果需要修改或者添加屏幕显示信息,只需要修改配置文件即可;一个完整的策略ID节点表示一个完整的画中画屏幕显示信息,其中包含若干个子屏幕以及每个子屏幕所处的位置和大小,每个子屏幕分别用唯一的屏幕ID标识,子屏幕的位置和大小通过子屏幕左上角坐标节点(x,y)和子屏幕大小节点(w,h)标识,采用占输出分辨率长和宽的比例来描述;
步骤二,进行初始化,读取屏幕显示策略配置文件,即读取配置文件中的屏幕显示信息;如果配置文件中重新修改或者添加了屏幕显示信息,只需要在修改或者添加后重新初始化即可;读取后,配置文件中的参数会被检查,如果有错误会打印错误日志并返回,初始化失败。
步骤三,设置画中画屏幕显示的相关参数,包括设定当前画中画屏幕显示策略;
(1)首先设置画中画中的每个画面的输出分辨率的大小和视频格式类型并构造与视频格式相关的中间变量,本发明实施例的视频格式类型包括RGB24或YUV420;所述相关中间变量包括每帧画面一横行的像素在内存中占用的字节长度、每帧画面在内存中占用的字节总长度以及用来装载输入和输出画面数据的图像对象;其中每帧画面一横行像素的字节长度:RGB24格式为宽乘以三,YUV420格式为宽乘以一点五,每帧画面占用的字节总长度是横行长度乘以高(一个图像是由很多个像素点组成,像素点的排列成矩形,比如宽W,高H,就是说这个图像每行有W个像素,每列有H个像素,每个像素所占的内存字节数是固定的,比如是len,那每行像素占的总字节数就是len*W,一副图像占用的总长度就是len*W*H,也等于一行的总长度*H),这些变量在正常流程中经常使用,所以初始设置时一次性计算好以后直接使用,另外还包括两个用来装载输入和输出画面数据的图像对象,此对象在opencv中所定义,传入的视频数据用该对象装载图像信息后才能使用opencv的图像处理方法。
(2)然后设定当前画中画屏幕显示策略ID,根据策略ID,开辟帧队列空间并保存所述策略ID对应的屏幕显示信息;修改策略ID需要清空开辟的帧队列空间,并根据修改的新的策略ID开辟新的帧队列空间;因此此处使用了开关机制,包括关闭视频流信息传入入口的步骤,在修改策略ID时就会关闭视频流信息传入入口,如果当前视频流信息正在传入,则会等待本次传入完成,然后才开始修改策略ID,修改完成后再打开视频流信息传入入口。
(3)再设置用来组合画中画画面的每个视频流的流号与所述策略ID中的标识每个子屏幕的屏幕ID的对应关系;配置文件中每个屏幕显示信息配置了将屏幕分为几个屏幕和每个屏幕的大小,并且给每个屏幕标识了唯一的ID,在设定了策略ID后,需要再设置具体的视频流号对应显示到某个屏幕ID所标识的屏幕,比如当前有用来组合画中画画面的三个视频流1、2、3,当前策略ID的显示策略为三个屏幕1、2、3,可以设置1号流在1号屏幕中显示,2号流在2号屏幕中显示,3号流在三号屏幕中显示(对应关系可以自己定义,此处只是举例说明),这样显示对应信息和策略信息共同确定了多画面最终的显示效果。
(4)最后设置主流ID,即设定用来组合画中画画面的多个视频流中的某个视频流为主视频流,则其余的视频流为子画面视频流,在进行画中画组合时,子画面视频流以主画面视频流为基础在时间上同步。
步骤四,调用用来组合画中画画面的多个视频流,传入视频流信息;对于需要在画中画画面中显示的视频流,处理输入的帧信息并保存处理后的帧信息;步骤四中,传入的视频流信息包括输入和输出的帧信息、输入流所属的流号、输入帧的分辨率、帧个数、时间戳;对于传入的视频流,首先检查当前输入帧所属流是否在步骤三设定的屏幕显示信息中,就是指该流是否需要被显示在屏幕上,如果是,则将当前输入的帧信息保存在帧队列空间中;在保存的过程中会检查分辨率是否匹配,如果匹配则直接保存,如果不匹配,先转换再保存,所述的匹配是指输入的帧画面的宽和高和该流对应的子屏幕的宽和高是否匹配,如果不匹配,就在保存前将帧画面缩放成对应的子屏幕的大小再保存;输入的画面一般都是大画面,例如720p或者1080p,子屏幕一般均较小,因此在保存前需将其缩放成子屏幕的大小并保存;在给帧队列空间存放帧画面信息前,包括判断当前帧队列剩余空间是否满足待存放的数据帧的个数的步骤;如果满足,则正常存放,如果不满足,则根据差值个数,将已保存的最旧的若干帧数据删掉后再存入待存放的数据帧。
步骤五,按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。步骤五中,在取出帧信息进行组合前,根据设定的主流ID,先检查主画面的帧队列空间是否为空,如果为空,就不进行组合;如果不为空,就进行组合,依次将当前所有子画面对应的帧队列空间中存放的最旧的帧画面取出拷贝填充到对应的屏幕区域内,输出组合后的帧画面;组合过程中,如果当前子画面对应的帧队列空间中存放的帧画面取空,就检查是否有备份帧,如果有备份帧,就依次将当前子画面对应的最新备份帧取出拷贝填充到对应的屏幕区域内,输出组合后的帧画面。如果备份帧也没有(系统运行初期有可能只保存了主画面而没有子画面),那就不进行填充处理。填充的过程实际上就是子屏幕与视频流流号关系对的遍历;比如当前1号子屏幕显示1号流,2号子屏幕显示2号流,3号子屏幕显示3号流;填充的顺序按照子屏幕ID的顺序进行,先填充1号屏,再填充2号屏,以此类推;假定1号流是主画面并且当前不为空,就先将1号流填充到1号屏,2号流和3号流是子画面,填充完1号屏,就将2号流和3号流依次填充到2号屏和3号屏;若2号流队列为空,并且也没有备份帧,3号流队列不为空,那就先填充1号屏,然后检测到2号流队列为空且没有备份帧,那就跳过2号屏的处理,继续填充3号屏。
如图2所示,是本发明实现多视频流帧画面自定义组合的画中画模块的结构示意图。
一种实现多视频流帧画面自定义组合的画中画模块,包括业务功能层单元、数据管理层单元、数据保存层单元以及为业务功能层单元提供加载画中画屏幕显示策略配置文件的画中画屏幕信息配置单元;业务功能层单元用于对外提供操作接口,管理数据管理层单元,实现画中画的业务功能;数据管理层单元用于为业务功能层单元提供从数据保存层单元存取视频数据的操作接口,管理数据保存层单元;数据保存层单元用于保存组合画中画画面的多个视频流的视频数据,为数据管理层单元提供存取视频数据操作接口;所述画中画屏幕信息配置单元用于配置画中画屏幕显示策略,生成画中画屏幕显示策略配置文件提供给业务功能层单元。
业务功能层单元的对外接口包括初始化函数接口、设置输出分辨率函数接口、设置策略ID函数接口、设置主流ID函数接口、修改屏幕显示对应信息函数接口、画中画工作函数接口;初始化函数接口用于读取画中画屏幕显示策略配置文件;设置输出分辨率函数接口用于在初始化函数接口初始化成功后设置画中画中的每个画面的输出分辨率大小和视频格式类型并构造与视频格式相关的中间变量;设置策略ID函数接口用于设置和修改当前画中画屏幕显示策略的策略ID;修改屏幕显示对应信息函数接口用于在设定了策略ID后,再设置用来组合画中画画面的每个视频流的流号与所述策略ID中的标识每个子屏幕的屏幕ID的对应关系;设置主流ID函数接口用于设定用来组合画中画画面的多个视频流中的某个视频流为主视频流;所述画中画工作函数接口用于传入用来组合画中画画面的多个视频流,对输入帧进行处理和保存,并按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。本实施例中,业务功能层单元的对外接口还包括对外提供的业务信息获取接口,包括获取当前策略ID接口、获取主流ID接口、获取输出分辨率接口、获取屏幕显示对应信息接口,用于获取当前的策略ID、当前的主流ID、当前的视频分辨率信息以及当前视频流的流号与每个子屏幕的屏幕ID的对应关系。
数据管理层单元的接口包括初始化函数接口、存放帧信息函数接口、取出帧信息函数接口、取出最新备份帧函数接口、队列判空函数接口、资源释放函数接口;初始化函数接口用于将不同的帧格式数据保存在不同的视频数据保存层;存放帧信息函数接口用于将输入的帧信息存放到数据保存层;取出帧信息函数接口用于取出存放在数据保存层的帧信息,取出的原则是先进先出;取出最新备份帧信息函数接口用于在当前要取出的帧信息不是主流信息,并且数据保存层已经没有该视频流的信息时,调用此接口,取出该流的最新备份帧信息;队列判空函数接口用于在业务功能层调取帧画面前先检查被取得的帧队列是否有画面,有画面进行取帧,如果没有画面,则根据被取帧的流是否为主流进行相应操作;资源释放函数接口用于在业务层修改策略ID时,在保存层需要重新构建循环队列空间之前,释放原有的资源。
数据保存层单元的接口包括初始化函数接口、检查帧队列函数接口、判空函数接口、存放计数函数接口、取出计数函数接口、处理分辨率并存放函数接口、资源释放函数接口。取出并填充帧函数接口、取出并填充备份帧函数接口;初始化函数接口用于初始化循环队列空间,给每个子屏幕开辟一个帧队列空间,设置相关参数,相关参数有最终输出的分辨率宽和高、视频格式RGB24或YUV420、当前数据保存层对应的子屏幕大小(即左上角坐标,宽和高的比例系数),每个子屏幕都有一个与之相对应的数据保存层,各不相干;检查帧队列函数接口用于在给帧队列空间存放帧前检查当前帧队列的剩余空间是否满足存放个数,如果满足则正常存放,如果不满足则返回差值个数给数据管理层,由数据管理层处理后再存放;判空函数接口是用于给数据管理层提供检查当前帧队列空间是否为空的接口;存放计数函数接口用于存放传入的帧画面信息成功后修改帧队列空间中存放帧的个数;所述取出计数函数接口用于取出帧画面信息成功后修改帧队列空间中存放帧的个数;处理分辨率并存放函数接口用于将输入的帧信息做分辨率检查,如果和输出的分辨率一致则直接保存,如果不一致则将分辨率转换一致再行保存;释放资源函数接口是给数据管理层提供释放资源的接口;取出并填充帧函数接口为视频数据管理层提供取出帧信息并拷贝到目标区域的接口;取出并填充备份帧函数接口为视频数据管理层提供取出备份帧信息并填充到目标区域的接口;
另外,画中画模块还包含日志模块和数据文件模块,日志模块负责记录系统运行异常信息,数据文件模块用于定义数据结构以及包含的开源库的头文件。
应当指出,以上所述具体实施方式可以使本领域的技术人员更全面地理解本发明创造,但不以任何方式限制本发明创造。因此,尽管本说明书和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。
Claims (14)
1.一种实现多视频流帧画面自定义组合的画中画方法,其特征在于,包括以下步骤:
步骤一,配置画中画屏幕显示策略配置文件,所述配置文件中包括多个视频流在同一屏幕上显示的不同的显示策略;
步骤二,进行初始化,读取屏幕显示策略配置文件;
步骤三,设置画中画屏幕显示的相关参数,包括设定当前画中画屏幕显示策略;
步骤四,调用用来组合画中画画面的多个视频流,传入视频流信息;对于需要在画中画画面中显示的视频流,处理输入的帧信息并保存处理后的帧信息;
步骤五,按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。
2.根据权利要求1所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤一中,所述配置文件中包括标识不同显示策略信息的策略ID以及对应的画中画屏幕显示信息,一个完整的策略ID节点表示一个完整的画中画屏幕显示信息,其中包含若干个子屏幕以及每个子屏幕所处的位置和大小,每个子屏幕分别用唯一的屏幕ID标识,子屏幕的位置和大小通过子屏幕左上角坐标节点(x,y)和子屏幕大小节点(w,h)标识,采用占输出分辨率长和宽的比例来描述。
3.根据权利要求1所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤三中,设置的相关参数包括:首先设置画中画中的每个画面的输出分辨率的大小和视频格式类型并构造与视频格式相关的中间变量;然后设定当前画中画屏幕显示策略ID,根据策略ID,开辟帧队列空间并保存所述策略ID对应的屏幕显示信息;再设置用来组合画中画画面的每个视频流的流号与所述策略ID中的标识每个子屏幕的屏幕ID的对应关系;最后设置主流ID,即设定用来组合画中画画面的多个视频流中的某个视频流为主画面视频流,则其余的视频流为子画面视频流,在进行画中画组合时,子画面视频流以主画面视频流为基础在时间上同步。
4.根据权利要求3所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤四中,传入的视频流信息包括输入和输出的帧信息、输入流所属的流号、输入帧的分辨率、帧个数、时间戳;对于传入的视频流,首先检查当前输入帧所属流是否在步骤三设定的屏幕显示信息中,就是指该流是否需要被显示在屏幕上,如果是,则将当前输入的帧信息保存在帧队列空间中。
5.根据权利要求4所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤四中,在保存的过程中会检查分辨率是否匹配,如果匹配则直接保存,如果不匹配,先转换再保存,所述的匹配是指输入的帧画面的宽和高和该流对应的子屏幕的宽和高是否匹配,如果不匹配,就在保存前将帧画面缩放成对应的子屏幕的大小再保存。
6.根据权利要求5所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤四中,在给帧队列空间存放帧画面信息前,包括判断当前帧队列剩余空间是否满足待存放的数据帧的个数的步骤;如果满足,则正常存放,如果不满足,则根据差值个数,将已保存的最旧的若干帧数据删掉后再存入待存放的数据帧。
7.根据权利要求6所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤五中,在取出帧信息进行组合前,根据设定的主流ID,先检查主画面的帧队列空间是否为空,如果主画面的帧队列空间不为空,就依次将当前所有子画面对应的帧队列空间中存放的最旧的帧画面取出拷贝到对应的屏幕区域内,输出组合后的帧画面;组合过程中,如果当前子画面对应的帧队列空间中存放的帧画面取空,就依次将当前子画面对应的最新的备份帧取出拷贝到对应的屏幕区域内,输出组合后的帧画面。
8.根据权利要求3所述的实现多视频流帧画面自定义组合的画中画方法,其特征在于,所述步骤三中,包括修改策略ID的步骤,修改策略ID需要清空开辟的帧队列空间,并根据修改的新的策略ID开辟新的帧队列空间;包括关闭视频流信息传入入口的步骤,在修改策略ID时就会关闭视频流信息传入入口,如果当前视频流信息正在传入,则会等待本次传入完成,然后才开始修改策略ID,修改完成后再打开视频流信息传入入口。
9.一种实现多视频流帧画面自定义组合的画中画模块,其特征在于,包括业务功能层单元、数据管理层单元、数据保存层单元以及为业务功能层单元提供加载画中画屏幕显示策略配置文件的画中画屏幕信息配置单元;所述业务功能层单元用于对外提供操作接口,管理数据管理层单元,实现画中画的业务功能;所述数据管理层单元用于为业务功能层单元提供从数据保存层单元存取视频数据的操作接口,管理数据保存层单元;所述数据保存层单元用于保存组合画中画画面的多个视频流的视频数据,为数据管理层单元提供存取视频数据操作接口;所述画中画屏幕信息配置单元用于配置画中画屏幕显示策略,生成画中画屏幕显示策略配置文件提供给业务功能层单元。
10.根据权利要求9所述的实现多视频流帧画面自定义组合的画中画模块,其特征在于,所述业务功能层单元的对外接口包括初始化函数接口、设置输出分辨率函数接口、设置策略ID函数接口、设置主流ID函数接口、修改屏幕显示对应信息函数接口、画中画工作函数接口;所述初始化函数接口用于读取画中画屏幕显示策略配置文件;所述设置输出分辨率函数接口用于在初始化函数接口初始化成功后设置画中画中的每个画面的输出分辨率大小和视频格式类型并构造与视频格式相关的中间变量;所述设置策略ID函数接口用于设置和修改当前画中画屏幕显示策略的策略ID;所述修改屏幕显示对应信息函数接口用于在设定了策略ID后,再设置用来组合画中画画面的每个视频流的流号与所述策略ID中的标识每个子屏幕的屏幕ID的对应关系;所述设置主流ID函数接口用于设定用来组合画中画画面的多个视频流中的某个视频流为主视频流;所述画中画工作函数接口用于传入用来组合画中画画面的多个视频流,对输入帧进行处理和保存,并按照当前设定的画中画屏幕显示策略,将保存的帧信息取出进行组合并输出。
11.根据权利要求10所述的实现多视频流帧画面自定义组合的画中画模块,其特征在于,所述数据管理层单元的接口包括初始化函数接口、存放帧信息函数接口、取出帧信息函数接口、取出最新备份帧函数接口、队列判空函数接口、资源释放函数接口;所述初始化函数接口用于将不同的帧格式数据保存在不同的视频数据保存层;所述存放帧信息函数接口用于将输入的帧信息存放到数据保存层;所述取出帧信息函数接口用于取出存放在数据保存层的帧信息,取出的原则是先进先出;所述取出最新备份帧信息函数接口用于在当前要取出的帧信息不是主流信息,并且数据保存层已经没有该视频流的信息时,取出该流的最新备份帧信息;所述队列判空函数接口用于在业务功能层调取帧画面前先检查被取得的帧队列是否有画面;所述资源释放函数接口用于在业务层修改策略ID时,在保存层需要重新构建循环队列空间之前,释放原有的资源。
12.根据权利要求11所述的实现多视频流帧画面自定义组合的画中画模块,其特征在于,所述数据保存层单元的接口包括初始化函数接口、检查帧队列函数接口、判空函数接口、存放计数函数接口、取出计数函数接口、处理分辨率并存放函数接口、资源释放函数接口。取出并填充帧函数接口、取出并填充备份帧函数接口;所述初始化函数接口用于初始化循环队列空间,给每个子屏幕开辟一个帧队列空间,设置相关参数,所述相关参数包括最终输出的分辨率宽和高、视频格式RGB24或YUV420、当前数据保存层对应的子屏幕大小,即左上角坐标以及宽和高的比例系数;所述检查帧队列函数接口用于在给帧队列空间存放帧前检查当前帧队列的剩余空间是否满足存放个数,如果满足则正常存放,如果不满足则返回差值个数给数据管理层,由数据管理层处理后再存放;所述判空函数接口是用于给数据管理层提供检查当前帧队列空间是否为空的接口;所述存放计数函数接口用于存放传入的帧画面信息成功后修改帧队列空间中存放帧的个数;所述取出计数函数接口用于取出帧画面信息成功后修改帧队列空间中存放帧的个数;所述处理分辨率并存放函数接口用于将输入的帧信息做分辨率检查,如果和输出的分辨率一致则直接保存,如果不一致则将分辨率转换一致再保存;所述释放资源函数接口是给数据管理层提供释放资源的接口;所述取出并填充帧函数接口为视频数据管理层提供取出帧信息并拷贝到目标区域的接口;所述取出并填充备份帧函数接口为视频数据管理层提供取出备份帧信息并填充到目标区域的接口。
13.根据权利要求10所述的实现多视频流帧画面自定义组合的画中画模块,其特征在于,所述画中画业务功能层单元的对外接口还包括对外提供的业务信息获取接口,包括获取当前策略ID接口、获取主流ID接口、获取输出分辨率接口、获取屏幕显示对应信息接口,用于获取当前的策略ID、当前的主流ID、当前的视频分辨率信息以及当前视频流的流号与每个子屏幕的屏幕ID的对应关系。
14.根据权利要求9至13之一所述的实现多视频流帧画面自定义组合的画中画模块,其特征在于,所述画中画模块还包含日志模块和数据文件模块,所述日志模块负责记录系统运行异常信息,数据文件模块用于定义数据结构以及包含的开源库的头文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310240406.2A CN103338340B (zh) | 2013-06-18 | 2013-06-18 | 实现多视频流帧画面自定义组合的画中画模块和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310240406.2A CN103338340B (zh) | 2013-06-18 | 2013-06-18 | 实现多视频流帧画面自定义组合的画中画模块和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103338340A true CN103338340A (zh) | 2013-10-02 |
CN103338340B CN103338340B (zh) | 2016-06-22 |
Family
ID=49246430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310240406.2A Active CN103338340B (zh) | 2013-06-18 | 2013-06-18 | 实现多视频流帧画面自定义组合的画中画模块和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103338340B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537595A (zh) * | 2015-01-08 | 2015-04-22 | 广州列丰信息科技有限公司 | 一种基于智慧社区的智慧医疗系统及实现方法 |
WO2015074469A1 (zh) * | 2013-11-20 | 2015-05-28 | 乐视网信息技术(北京)股份有限公司 | 一种实现画中画播放的方法及画中画播放装置 |
CN105100865A (zh) * | 2014-05-12 | 2015-11-25 | 深圳Tcl新技术有限公司 | 多画面显示的控制方法及装置 |
CN105139792A (zh) * | 2015-08-18 | 2015-12-09 | 京东方科技集团股份有限公司 | 显示方法和显示装置 |
WO2016058302A1 (zh) * | 2014-10-14 | 2016-04-21 | 青岛海信电器股份有限公司 | 一种多视频数据显示的方法及装置 |
CN106060610A (zh) * | 2016-06-07 | 2016-10-26 | 微鲸科技有限公司 | 播放器同步系统和同步方法 |
CN106537902A (zh) * | 2014-06-30 | 2017-03-22 | 微软技术许可有限责任公司 | 在音频或视频通话期间对上下文信息进行合成和传送 |
CN106658114A (zh) * | 2016-11-30 | 2017-05-10 | 乐视控股(北京)有限公司 | 一种视频展示方法及装置 |
CN106658030A (zh) * | 2016-12-30 | 2017-05-10 | 上海寰视网络科技有限公司 | 一种包含单路音频多路视频的复合视频的播放方法及设备 |
CN107211186A (zh) * | 2015-02-13 | 2017-09-26 | Sk电信有限公司 | 多视图流媒体服务支持方法以及用于支持该方法的装置 |
CN109416638A (zh) * | 2016-06-30 | 2019-03-01 | 微软技术许可有限责任公司 | 可定制的紧凑叠加窗口 |
CN109756768A (zh) * | 2017-11-08 | 2019-05-14 | 中国电信股份有限公司 | 视频流处理方法、装置和视频流显示方法、装置 |
CN109819180A (zh) * | 2019-01-18 | 2019-05-28 | 上海皓空数码科技有限公司 | 一种超宽画面融合显示方法及系统 |
CN110007818A (zh) * | 2019-03-04 | 2019-07-12 | 深圳威尔视觉传媒有限公司 | 一种单机屏幕资源布局方法和相关装置 |
CN110278481A (zh) * | 2019-06-25 | 2019-09-24 | 努比亚技术有限公司 | 画中画实现方法、终端及计算机可读存储介质 |
CN110519530A (zh) * | 2019-06-13 | 2019-11-29 | 眸芯科技(上海)有限公司 | 基于硬件的画中画显示方法及装置 |
CN110677392A (zh) * | 2019-09-12 | 2020-01-10 | 视联动力信息技术股份有限公司 | 一种视频数据传输方法和装置 |
CN111726687A (zh) * | 2020-06-30 | 2020-09-29 | 北京百度网讯科技有限公司 | 用于生成显示数据的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123702A (zh) * | 2006-08-10 | 2008-02-13 | 三星电子株式会社 | 图像显示设备及其控制方法 |
CN101539845A (zh) * | 2009-04-24 | 2009-09-23 | 无锡天脉聚源传媒科技有限公司 | 用于富媒体交互展示的软件视频墙方法 |
US20100201879A1 (en) * | 2009-02-12 | 2010-08-12 | Echostar Technologies L.L.C. | Customizable Picture-in-Picture |
-
2013
- 2013-06-18 CN CN201310240406.2A patent/CN103338340B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123702A (zh) * | 2006-08-10 | 2008-02-13 | 三星电子株式会社 | 图像显示设备及其控制方法 |
US20100201879A1 (en) * | 2009-02-12 | 2010-08-12 | Echostar Technologies L.L.C. | Customizable Picture-in-Picture |
CN101539845A (zh) * | 2009-04-24 | 2009-09-23 | 无锡天脉聚源传媒科技有限公司 | 用于富媒体交互展示的软件视频墙方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015074469A1 (zh) * | 2013-11-20 | 2015-05-28 | 乐视网信息技术(北京)股份有限公司 | 一种实现画中画播放的方法及画中画播放装置 |
CN105100865B (zh) * | 2014-05-12 | 2018-04-13 | 深圳Tcl新技术有限公司 | 多画面显示的控制方法及装置 |
CN105100865A (zh) * | 2014-05-12 | 2015-11-25 | 深圳Tcl新技术有限公司 | 多画面显示的控制方法及装置 |
US10771736B2 (en) | 2014-06-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Compositing and transmitting contextual information during an audio or video call |
CN106537902A (zh) * | 2014-06-30 | 2017-03-22 | 微软技术许可有限责任公司 | 在音频或视频通话期间对上下文信息进行合成和传送 |
CN105578204B (zh) * | 2014-10-14 | 2020-10-30 | 海信视像科技股份有限公司 | 一种多视频数据显示的方法及装置 |
WO2016058302A1 (zh) * | 2014-10-14 | 2016-04-21 | 青岛海信电器股份有限公司 | 一种多视频数据显示的方法及装置 |
CN105578204A (zh) * | 2014-10-14 | 2016-05-11 | 青岛海信电器股份有限公司 | 一种多视频数据显示的方法及装置 |
CN104537595A (zh) * | 2015-01-08 | 2015-04-22 | 广州列丰信息科技有限公司 | 一种基于智慧社区的智慧医疗系统及实现方法 |
CN107211186B (zh) * | 2015-02-13 | 2020-03-03 | Sk电信有限公司 | 用于提供多视图流媒体服务的方法和设备 |
US11228801B2 (en) | 2015-02-13 | 2022-01-18 | Sk Telecom Co., Ltd. | Method and apparatus for providing multi-view streaming service |
CN107211186A (zh) * | 2015-02-13 | 2017-09-26 | Sk电信有限公司 | 多视图流媒体服务支持方法以及用于支持该方法的装置 |
CN105139792B (zh) * | 2015-08-18 | 2018-04-20 | 京东方科技集团股份有限公司 | 显示方法和显示装置 |
CN105139792A (zh) * | 2015-08-18 | 2015-12-09 | 京东方科技集团股份有限公司 | 显示方法和显示装置 |
CN106060610A (zh) * | 2016-06-07 | 2016-10-26 | 微鲸科技有限公司 | 播放器同步系统和同步方法 |
CN109416638A (zh) * | 2016-06-30 | 2019-03-01 | 微软技术许可有限责任公司 | 可定制的紧凑叠加窗口 |
US11295706B2 (en) | 2016-06-30 | 2022-04-05 | Microsoft Technology Licensing, Llc | Customizable compact overlay window |
CN106658114A (zh) * | 2016-11-30 | 2017-05-10 | 乐视控股(北京)有限公司 | 一种视频展示方法及装置 |
CN106658030B (zh) * | 2016-12-30 | 2019-07-30 | 上海寰视网络科技有限公司 | 一种包含单路音频多路视频的复合视频的播放方法及设备 |
CN106658030A (zh) * | 2016-12-30 | 2017-05-10 | 上海寰视网络科技有限公司 | 一种包含单路音频多路视频的复合视频的播放方法及设备 |
CN109756768A (zh) * | 2017-11-08 | 2019-05-14 | 中国电信股份有限公司 | 视频流处理方法、装置和视频流显示方法、装置 |
CN109819180A (zh) * | 2019-01-18 | 2019-05-28 | 上海皓空数码科技有限公司 | 一种超宽画面融合显示方法及系统 |
CN110007818A (zh) * | 2019-03-04 | 2019-07-12 | 深圳威尔视觉传媒有限公司 | 一种单机屏幕资源布局方法和相关装置 |
CN110519530B (zh) * | 2019-06-13 | 2021-07-16 | 眸芯科技(上海)有限公司 | 基于硬件的画中画显示方法及装置 |
CN110519530A (zh) * | 2019-06-13 | 2019-11-29 | 眸芯科技(上海)有限公司 | 基于硬件的画中画显示方法及装置 |
CN110278481A (zh) * | 2019-06-25 | 2019-09-24 | 努比亚技术有限公司 | 画中画实现方法、终端及计算机可读存储介质 |
CN110677392A (zh) * | 2019-09-12 | 2020-01-10 | 视联动力信息技术股份有限公司 | 一种视频数据传输方法和装置 |
CN110677392B (zh) * | 2019-09-12 | 2022-03-15 | 视联动力信息技术股份有限公司 | 一种视频数据传输方法和装置 |
CN111726687A (zh) * | 2020-06-30 | 2020-09-29 | 北京百度网讯科技有限公司 | 用于生成显示数据的方法和装置 |
CN111726687B (zh) * | 2020-06-30 | 2022-12-27 | 北京百度网讯科技有限公司 | 用于生成显示数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103338340B (zh) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103338340A (zh) | 实现多视频流帧画面自定义组合的画中画模块和方法 | |
CN103310820B (zh) | 一种对多媒体播放器进行优化的方法 | |
CN101072333B (zh) | 胶片颗粒的产生和添加 | |
CN106611435A (zh) | 动画处理方法和装置 | |
WO2001054400A1 (en) | Image synthesizing device, recorded medium, and program | |
CN207399423U (zh) | 一种分布式网络视频处理装置 | |
CN101461250A (zh) | 将色度变换从输入色彩空间转换到输出色彩空间 | |
CN106797495A (zh) | 视频合成 | |
CN101707677B (zh) | Osd控制器 | |
CN108235055A (zh) | Ar场景中透明视频实现方法及设备 | |
CN108804694A (zh) | 一种影片自动排期方法、设备和系统 | |
CN110428382A (zh) | 一种用于移动终端的高效视频增强方法、装置和存储介质 | |
Yamaoka et al. | Visualization of high-resolution image collections on large tiled display walls | |
CN109389558A (zh) | 一种消除图像边缘锯齿的方法及装置 | |
US20090244079A1 (en) | Optimizing the Execution of Media Processing Routines Using a List of Routine Identifiers | |
CN105100870A (zh) | 一种截屏方法及终端设备 | |
CN113316018B (zh) | 时间信息在视频画面显示的叠加方法、设备及存储介质 | |
CN105450945A (zh) | 一种视频全景生成方法及并行计算系统 | |
KR100882250B1 (ko) | 동적인 가상 이미지를 합성하기 위한 방법 | |
CN108174119A (zh) | 摄像装置的控制方法、多光谱摄像设备、无人机及介质 | |
CN110493661A (zh) | 一种视频文件的处理方法以及服务器 | |
CN105808184A (zh) | 显示安卓2d应用图像的方法、装置及一种头戴设备 | |
CN107885570A (zh) | 复用视图组件的方法及装置 | |
CN110364127A (zh) | 智能大屏幕系统的自适应显示方法及装置 | |
CN106898351A (zh) | 一种大屏幕的控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |