一种多信源合成视频的动态编码方法和装置转让专利
申请号 : CN201610417361.5
文献号 : CN106101704A
文献日 : 2016-11-09
发明人 : 陈胜 , 刘会彬
申请人 : 陈胜
摘要 :
权利要求 :
1.一种多信源合成视频的动态编码方法,其特征在于所述方法包括有如下步骤:步骤S1:合成视频定义,包括画面尺寸、画面分区、每个分区对应的信息源、每个分区信息源压缩比、信息源编码方式、视频画面切换指令;
步骤S2:获取各信息源,按预定义的画面尺寸、画面分区、每个分区对应的信息源,把每个分区信息源按压缩比转换至对应分区,把每个分区内的视频内容,视为一个单独的视频编码对象,根据预定义的信息源编码方式分别编码,并将第一帧和有视频切换指令的画面设为关键帧;
步骤S3:若有视频画面切换指令,判断指令是否改变视频画面布局;如果是,转步骤S1;
如果不是,判断指令对应的分区,执行该指令,并将该画面编码为关键帧;若没有视频画面切换指令,转步骤S4;
步骤S4:获取下一个合成视频画面,继续对每个分区的视频源编码。
2.根据权利要求1所述的多信源合成视频的动态编码方法,其特征在于:所述方法还包括把PC显示画面编码为连续视频的方法,并将该方法应用于所述的PC显示信息源独立编码,实现方法如下:步骤T1:获取PC信源的内容和画面切换指令,如果只获取PC信源,转步骤T2,如果获取画面切换指令,转步骤T4;
步骤T2:判断PC信源包含的活动对象及每个对象所占画面区域大小;活动对象分为两类:正在播放音视频内容的动态视频对象和只显示文档的静态对象,对这两类活动对象所在的图像区域分别编码,具体如下:如果动态视频对象提供接口,能够获取GOP包,则对该动态视频对象的编码优选所获取的GOP包,分析并插入当前编码帧;如果不能获得动态视频对象的原始码流,则对所占区域进行图像采样;如果静态对象提供接口,可以通过对应接口,把当前的页面直接转换为一幅图像,无需采样计算;如果没有接口,则对所占区域进行图像采样,上述产生的图像为A;
对这两类对象之外的PC桌面剩余区域部分,执行一次图像采样,产生图像B,将图像A与图像B合并,产生静态图像C,将图像C插入当前编码帧;
步骤T3:继续获取PC信源的内容和画面切换指令,若没有画面切换指令,继续对步骤T2所述的活动对象编码,对于静态对象和PC桌面显示部分,无需预测、估计和计算,按残差为0的添加到当前帧;
步骤T4:如果接收到PC画面指令,则将当前帧设为关键帧,并返回步骤T2。
3.根据权利要求1所述的多信源合成视频的动态编码方法,其特征在于:所述的合成视频定义,画面尺寸是指合成之后视频的帧幅,可以预设为1920X1280、
1280X720或任一帧幅;
所述的画面分区和每个分区对应的信息源,是把合成之后视频的帧,划分为由若干个大的宏块,每个大的宏块,一一对应唯一的信息源;
所述的信息源,包括各类视频采集设备和PC显示输出;
所述的每个分区信息源压缩比,是指每个信息源原始信号的采集帧幅与预定义分区尺寸之间的比例,这个比例不等于1,需要根据这个压缩比,将原始采集信号转换成预定义分区的尺寸大小;
所述的信息源编码方式,是为每个信息源预设一种优选的编码方式,使每个分区作为独立的编码对象,分别编码;
所述的视频画面切换指令,包括合成画面的切换、分区内画面的变化;其中,合成画面的切换是指把合成视频画面转为任一形式,包括以下类型:不分区只显示1个信息源、2个分区显示2个信息源、3个分区显示3个信息源;
分区内画面的变化,是指通过声控、红外、无线等形式发出指令,改变其中一个分区内信息源的画面内容。
4.实现权利要求1至3任一项所述的多信源合成视频的动态编码方法的装置,其特征在于所述装置包括:定义模块,用于定义合成视频画面帧幅、画面分区、每个分区对应的信息源、每个分区信息源压缩比、信息源编码方式、视频画面切换指令;
信源获取模块,用于接入和获得各信息源的原始采集信号;
转换模块,用于把每个信息源采集的原始信号,按所述定义模块的对应分区尺寸进行转换;
控制模块,用于执行所述视频画面切换指令,包括合成画面的切换、分区内画面的变化;
重组模块,用于执行所述控制模块的合成画面的重新分区指令,并把每个分区与信息源对应;
编码模块,用于对每个分区对象执行所述定义模块指定的编码方法;
保存和传输模块,用于将所述编码模块产生的GOP,打包保存在本地存储设备或传送至指定的网络播放主机。
说明书 :
一种多信源合成视频的动态编码方法和装置
技术领域
背景技术
发明内容
步骤S2:获取各信息源,按预定义的画面尺寸、画面分区、每个分区对应的信息源,把每个分区信息源按压缩比转换至对应分区,把每个分区内的视频内容,视为一个单独的视频编码对象,根据预定义的信息源编码方式分别编码,并将第一帧和有视频切换指令的画面设为关键帧;
步骤S3:若有视频画面切换指令,判断指令是否改变视频画面布局;如果是,转步骤S1;
如果不是,判断指令对应的分区,执行该指令,并将该画面编码为关键帧;若没有视频画面切换指令,转步骤S4;
步骤S4:获取下一个合成视频画面,继续对每个分区的视频源编码。
步骤T2:判断PC信源包含的活动对象及每个对象所占画面区域大小;活动对象分为两类:正在播放音视频内容的动态视频对象和只显示文档的静态对象,对这两类活动对象所在的图像区域分别编码,具体如下:如果动态视频对象提供接口,能够获取GOP包,则对该活动对象的编码优选所获取的GOP包,分析并插入当前编码帧;如果不能获得活动对象的原始码流,则对所占区域进行图像采样;如果静态对象提供接口,可以通过对应接口,把当前的页面直接转换为一幅图像,无需采样计算;如果没有接口,则对所占区域进行图像采样,上述产生的图像为A;
对这两类对象之外的PC桌面剩余区域部分,执行一次图像采样,产生图像B,将图像A与图像B合并,产生静态图像C,将图像C插入当前编码帧;
步骤T3:继续获取PC信源的内容和画面切换指令,若没有画面切换指令,继续对步骤T2所述的活动对象编码,对于静态对象和PC桌面显示部分,无需预测、估计和计算,按残差为0的添加到当前帧;
步骤T4:如果接收到PC画面指令,将当前帧设为关键帧,并返回步骤T2。
所述的画面分区和每个分区对应的信息源,是把合成之后视频的帧,划分为由若干个大的宏块,每个大的宏块,一一对应唯一的信息源;
所述的信息源,包括各类视频采集设备和PC显示输出;
所述的每个分区信息源压缩比,是指每个信息源原始信号的采集帧幅与预定义分区尺寸之间的比例,这个比例不等于1,需要根据这个压缩比,将原始采集信号转换成预定义分区的尺寸大小;
所述的信息源编码方式,是为每个信息源预设一种优选的编码方式,使每个分区作为独立的编码对象,分别编码;
所述的视频画面切换指令,包括合成画面的切换、分区内画面的变化;其中,合成画面的切换是指把合成视频画面转为任一形式,包括以下类型:不分区只显示1个信息源、2个分区显示2个信息源、3个分区显示3个信息源;
分区内画面的变化,是指通过声控、红外、无线等形式发出指令,改变其中一个分区内信息源的画面内容。
信源获取模块,用于接入和获得各信息源的原始采集信号;
转换模块,用于把每个信息源采集的原始信号,按所述定义模块的对应分区尺寸进行转换;
控制模块,用于执行所述视频画面切换指令,包括合成画面的切换、分区内画面的变化;
重组模块,用于执行所述控制模块的合成画面的重新分区指令,并把每个分区与信息源对应;
编码模块,用于对每个分区对象执行所述定义模块指定的编码方法;
保存和传输模块,用于将所述编码模块产生的GOP,打包保存在本地存储设备或传送至指定的网络播放主机。
2)对PC信息源进行内容分析,动态对象和静态对象分别编码,尤其是对静态对象编码,不仅提高压缩性能,还可以大幅减少编码运算;
3)据反复测试,本发明提供的一种多信源合成视频的方法和装置,能够在画面质量相似的情况下,将合成视频的压缩效率提高50%以上。
附图说明
图3为本发明提供一种一种多信源合成视频的装置结构图
图4为本发明所述由2个视频源合成视频画面的实例示意图
图5为本发明所述由3个视频源合成视频画面的实例示意图
图6为为本发明所述一个信息源压缩比的实例示意图
具体实施方式
合成视频的画面尺寸、画面分区、每个分区对应的信息源、每个分区信息源压缩比、信息源编码方式、视频画面切换指令。
1280X720等任一帧幅。
步骤S4:获取下一个合成视频画面,继续对每个分区的视频源独立编码。
步骤T2:判断PC信源包含的活动对象及每个对象所占画面区域大小;活动对象分为两类:正在播放音视频内容的动态视频对象和只显示文档的静态对象,对这两类活动对象所在的图像区域分别编码,具体如下:如果动态视频对象提供接口,能够获取GOP包,则对该活动对象的编码优选所获取的GOP包,分析并插入当前编码帧;如果不能获得活动对象的原始码流,则对所占区域进行图像采样;如果静态对象提供接口,如MS WORD、MS Powerpoint等常用编辑工具,可以通过COM接口,把当前的页面直接转换为一幅图像,无需采样计算;如果没有接口,则对所占区域进行图像采样,上述产生的图像为A;
对这两类对象之外的PC桌面剩余区域部分,执行一次图像采样,产生图像B,将图像A与图像B合并,产生静态图像C,将图像C插入当前编码帧;
步骤T3:继续获取PC信源的内容和画面切换指令,若没有画面切换指令,继续对步骤T2所述的活动对象编码,对于静态对象和PC桌面显示部分,无需预测、估计和计算,按残差为0的添加到当前帧;
步骤T4:如果接收到PC画面指令,则将当前帧设为关键帧,并返回步骤T2。
步骤22:判断PC信源包含的活动对象及每个对象所占画面区域大小。活动对象分为两类:正在播放音视频内容的动态对象和只显示文档的静态对象,对这两类活动对象所在的图像区域分别编码,具体如下:
如果活动对象提供接口,能够获取GOP包,则对该活动对象的编码优选所获取的GOP包,分析并插入当前编码帧。如果不能获得活动对象的原始码流,则对所占区域进行图像采样;
如果静态对象提供接口,如MS WORD、MS Powerpoint等常用编辑工具,可以通过COM接口,把当前的页面直接转换为一幅图像,无需采样计算;如果没有接口,则对所占区域进行图像采样,上述产生的图像为A;
对这两类对象之外的PC桌面剩余区域部分,执行一次图像采样,产生图像B,将A与B合并,产生静态图像C,将图像C插入当前编码帧;
步骤23:继续获取PC信源的内容和画面切换指令,若没有画面切换指令,继续对步骤22所述的活动对象编码,对于静态对象和PC桌面显示部分,无需预测、估计和计算,按残差为0的添加到当前帧;
步骤24:如果接收到PC画面指令,则将当前帧设为关键帧,并返回步骤T2。
定义模块,用于定义合成视频画面帧幅、画面分区、每个分区对应的信息源、每个分区信息源压缩比、信息源编码方式、视频画面切换指令;
信源获取模块,用于接入和获得各信息源的原始采集信号;
转换模块,用于把每个信息源采集的原始信号,按所述定义模块的对应分区尺寸进行转换;
控制模块,用于执行所述视频画面切换指令,包括合成画面的切换、分区内画面的变化;
重组模块,用于执行所述控制模块的合成画面的重新分区指令,并把每个分区与信息源对应;
编码模块,用于对每个分区对象执行所述定义模块指定的编码方法;
保存和传输模块,用于将所述编码模块产生的GOP,打包保存在本地存储设备或传送至指定的网络播放主机。