一种基于低功耗嵌入式系统实时抠像方法与流程

文档序号:12126403阅读:959来源:国知局
一种基于低功耗嵌入式系统实时抠像方法与流程

本发明涉及一种蓝、绿幕抠像的方法,尤其一种基于低功耗嵌入式系统实时抠像方法,属于图像处理技术领域。



背景技术:

在现代社会中,随着视频技术向数字化、多媒体方向发展,人们对视觉感观的需求不断提高,以虚拟演播室、校园电视台为代表的视频对象提取技术展现出了广阔的应用前景。虚拟演播室是将摄像机现场拍摄的人物活动图像进行数字化的实时合成,使人物与虚拟背景能够同步变化,从而实现两者天衣无缝的融合,以获得完美的合成画面。抠像技术也广泛应用于新闻联播,电影特技等场合。以应用系统对功能,可靠性等有专用定制的嵌入式系统上完成抠像功能在以现有的用通用计算机完成抠像融合技术中分得一杯羹。

传统上,实时抠像功能均使用x86中的高端处理器实现。市场上的实时抠像系统,无一例外都是这种方式。而在低功耗嵌入式系统中,还没有嵌入式系统实现的先例。而实时抠像单独使用FPGA且不使用常规处理器,则存在不够灵活的问题。例如,前景、背景显示中来自不同的源,既可能是本地输入的实时视频,本地硬盘实时解码的视频或图片,也可能是网络实时解码的远端视频。对应解码的视频,内嵌ARM的各种SoC均通过加速器可轻松应对,市面上可以实时解H.264/H.265的SoC是很常见的;而使用FPGA实现H.264/H.265解码是不现实的——现在市面上还找不到内置H.264/H.265硬核的FPGA。

要完成实时视频抠像功能,无论是串行处理的传统CPU还是并行处理的FPGA,都无法单独提供完美的结果。

典型的抠像算法背景:把每帧前景和背景数据,分别放入Memory Buffer;随后判断前景像素数据是否透明——判断原则是分别判断R、G、B是否属于“背景色”,如果是则对应像素取背景颜色输出,如果不是则去前景颜色输出。看上去很简单,但是现代处理器缺难以胜任这样巨量的“简单运算”。由于使用流水线方式,因此每像素多次的条件判断,令流水线优化完全失效;而反复读取前景buffer、背景buffer、写输出buffer,又令DDR2、DDR3、DDR4一类内存重新无法使用突发读、突发写等优化方式,因此整个系统效率很低。SMPTE定义的全高清视频,分辨率是1920*1080像素,即使在x86上,不使用asm和多媒体专用指令,也无法实现实时处理数据量这么大的高清视频抠像。

常见处理器,无论是x86,ARM,还是PowerPC,都是串行工作方式。高性能x86处理器虽然能够处理实时抠像,但是其功耗非常大,对应嵌入式系统常见的ARM、PowerPC处理器则基本无法实现。



技术实现要素:

因此,针对现有技术的上述不足,本发明皆在提供一种基于低功耗嵌入式系统实时抠像的方法,使用ARM一类串行通用处理器+FPGA并行处理的系统,以解决目前嵌入式系统中抠像性能不足的问题。

本发明提供的基于低功耗嵌入式系统实时抠像方法,所述方法为:

图像预处理单元对前景视频源进行预处理,图像预处理单元将前景视频源分解为内嵌同步方式的并行裸数据,将并行裸数据进行YCbCr转RGB颜色空间转换;

前景掩码提取单元将图像预处理单元生成RGB格式的前景视频信号,按照逐点对比的算法区分出是否为有效前景部分的掩码信息;

逐点对比算法具体为,SoC处理单元传输过来一个抠像的阀值,在蓝幕视频源情况下,将G通道数据加上阀值作为G分量,将R通道数据加上阀值作为R分量,当B通道数据小于G分量或者B通道数据小于R分量时,则该像素点作为有效前景点,否则该像素点为掩码前景点;

视频格式重封装单元接收前景掩码提取单元的区分结果,记录下每一有效行的第一个出现有效前景点和最后一个出现有效前景点的坐标,并将此坐标和掩码信息与前景视频信号重新格式封装;

图像预处理单元、前景掩码提取单元及视频格式重封装单元由FPGA处理器实现;

SoC处理单元将视频格式重封装单元传输过来的视频信号进行解码,并对提取到的每一有效行的前后标识坐标区间根据掩码信息,区分出每一像素点是要存储前景数据还是背景数据,而对区间外的有效像素点全部存储背景数据,最终将完成抠像的视频信号输出。

进一步的,所述视频格式重封装单元中将坐标点和掩码信息与前景视频信号重新格式封装具体为,缩小原本行消隐区长度,将坐标点和掩码信息嵌入到前景视频信号有效图像点的前端与开始标头的后端,封装后的行数据格式依次为结束标头(EAV)、消隐区、开始标头(SAV)、有效数据前后坐标、掩码信息区、有效图像。

本发明的有益效果在于:本发明提供一种基于低功耗嵌入式系统实时抠像的方法,采用FPGA+CPU的架构,在FPGA端完成前景掩码的提取功能,在ARM端根据掩码信息判断存储前景视频数据还是背景视频数据,对掩码提取时采用的逐点对比算法很好的利用了FPGA并行能力,而ARM只需要对掩码的坐标区间进行处理,很大程度降低了性能消耗,可以做到实时抠像。与现有技术相比,本发明提供的方法打破传统以串行处理方式为主的嵌入式处理芯片完成不了实时抠像的限制,本文方法弥补了现有嵌入式系统中,通过像ARM、PowerPC等以串行处理方式为主的SoC处理器,与并行运算FPGA共同工作,最终完成低功耗嵌入式系统实时抠像的技术空白,使系统的设计更加灵活多变。

附图说明

图1是本发明基于低功耗嵌入式系统实时抠像的方法的流程示意图;

图2是本发明视频格式重封装后的行数据格式示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行说明:

如图1所示,本发明提供一种基于低功耗嵌入式系统实时抠像方法,所述方法为:

图像预处理单元2对前景视频源1进行预处理,图像预处理单元2将前景视频源1分解为内嵌同步方式的并行裸数据,并将并行裸数据进行YCbCr转RGB颜色空间转换;

前景掩码提取单元3将图像预处理单元2生成RGB格式的前景视频信号按照逐点对比的算法区分出是否为有效前景部分的掩码信息;

视频格式重封装单元4将从前景掩码提取单元3中区分好是否为有效前景部分的掩码信息,记录下每一有效行的第一个出现有效前景点和最后一个出现有效前景点的坐标,并将此坐标和掩码信息与前景视频信号重新格式封装;

SoC处理单元5将视频格式重封装单元4传输过来的视频信号进行解码,并对提取到的每一有效行的前后标识坐标区间根据掩码信息,区分出每一像素点是要存储前景数据还是背景数据,而对区间外的有效像素点全部存储背景数据,最终将完成抠像的视频信号输出7。

前景掩码提取单元3中逐点对比算法是SoC处理单元传输过来一个抠像的阀值,在蓝幕视频源情况下,将G通道数据加上阀值作为G分量,将R通道数据加上阀值作为R分量,当B通道数据小于G分量或者B通道数据小于R分量时,则该像素点作为有效前景点,否则该像素点为掩码前景点。

作为优选的实施方式,视频格式重封装单元4中将坐标点和掩码信息与前景视频信号重新格式封装,缩小原本行消隐区长度,将坐标点和掩码信息嵌入到前景视频信号有效图像点的前端与开始标头的后端,封装后的行数据格式依次为结束标头(EAV)8、消隐区9、开始标头(SAV)10、坐标/掩码信息区11、有效图像12。

图像预处理单元2,前景掩码提取单元3,视频格式重封装单元4由FPGA实现,由于可以做到不用预存视频帧,而不用外挂RAM,资源消耗也不多,可以选用具有高性价比逻辑资源合适的FPGA,SoC处理单元5由ARM实现,添加了坐标区间对ARM要处理的运算量大大降低,而可以从本地视频输入,远端网络传输,内部静态图片等获得所需的背景视频源,做到了灵活的实时抠像。

如图2所示,在每一有效行格式中,按照内嵌同步视频信号的格式,将坐标点和掩码信息嵌入到前景视频信号有效图像点的前端与开始标头的后端,并相应缩小原本行消隐区长度,使原本行总节拍数不变。在有限数据位宽为16位的YCbCr数据格式中,将Y通道到的最高位的值为次高位取反,同理C通道也是将最高位的值为次高位取反,这样做可以避免出现传输的标志信息出现标头的情况,如此在消隐区一个时钟节点本可以传输14位的有效标志数据,为了方便后端SoC的处理,提高运算速度的需求,将Y与C通道高4位固定为1010,低四位传输有效标志数据,这样一个时钟节点将共传输8位的有效标志数据,在视频分辨率为SMPTE标准1080P的情况下,传输有效数据前后坐标需要两个像素点,传输一行的掩码信息需要242个像素点,由于原本消隐区共272个时钟节拍点可用,固将消隐区缩小为30个时钟节拍,多出来的242个时钟节拍用来传输一行中携带标志信息。

前景掩码提取单元3中所使用的逐点对比算法主要是应用了三原色中蓝色在RGB颜色标准中蓝通道数值大,而绿通道和红通道数据很小,这样形成较大的数值差,而人体的肤色红通道数值大,蓝通道和绿通道的数值小,这样在蓝幕的背景下人物有很大的反差,容易进行扣离,在实际的应用中当抠像阀值设为20到50的区间,抠像出来的效果都很不错。相对于对RGB三个通道的数据都进行对比,此算法实现的效果更佳,在对抠像效果不需要达到极致的情况下,采用逐点对比算法所扣出来的图像既可以满足绝大多数人的需求,又可以降低产品的成本。

由于数据的传输是复合BT1120标准的,所以在SoC处理单元只需要使用标准的数据采集方式加上采集消隐区的掩码操作便可完成前景数据的采集工作。

而抠像的操作是在SoC处理单元内部进行的,SoC处理单元可以从采集的另外一路视频输入信号、固定视频文件或者回放的视频文件当中自由选择,画面组织有了比较大的灵活性。

在SoC处理单元内的工作只剩下画面组合了,画面组合的工作对于每一个像素单元来说是对等的,步骤如下:

(1)将8个bit的掩码扩充到8个字节;

(2)前景数据与掩码进行与操作;

(3)背景数据与掩码的取反值进行与操作;

(4)将上两个运算的结果相加,取得抠好的图像值。

由于上面的运算长度是8字节对齐的,而且都是标准的逻辑运算值,十分适合SIMD类指令进行优化,例如ARM的NEON指令。

整个算法的处理过程当中没有任何分支,在ARM的指令流水线当中可以获得足够处理1080P30实时运算的性能。同时,结构上的对称性使得多核的ARM CPU也可以并行分多路同时对同一帧图像的数据进行分块处理。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1