一种在视频帧上叠加无闪烁图形的方法与流程

文档序号:16130927发布日期:2018-12-01 00:18阅读:238来源:国知局

本发明涉及视频码流领域,尤其涉及一种在视频帧上叠加无闪烁图形的方法。

背景技术

随着社会治安体系的不断完善,数字化、智能化、网络化已源源不断的渗透到我们的生活中。平安城市,智能交通,甚至到近几年的智能家居,机器人,无人机等在一定程度上很好的诠释了这些技术。

通常经前端设备或者下级平台推送的视频码流在用户指定窗体上显示,如果窗体过小,会导致视频画面某一部分的信息不能清晰的展现给客户。此时就需要对客户感兴趣的区域进行放大播放,用户在视频码流上通过鼠标画矩形区域,然后对此区域内的码流进行独立窗体播放。一般情况下用户通过鼠标在画面上画的矩形框会随着码流的更新而被覆盖导致画框过程闪烁。

因此,本领域的技术人员致力于开发一种针对画框闪烁的处理方法,有效的解决用户在播放的画面上对自己感兴趣的区域进行图形标注后直观感觉标注图形不断闪烁的问题。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是叠加图形后视频界面闪烁问题、叠加图形后图形模糊不清的问题以及叠加图形颜色依赖问题。

为实现上述目的,本发明提供了一种在视频帧上叠加无闪烁图形的方法包括以下步骤:

步骤1、初始化;

步骤2、码流接收;

步骤3、解码、画框、显示;

步骤4、销毁。

进一步地,所述步骤1还包括:

步骤1.1、初始化画框是否开启标志、起始坐标、终止坐标、解码参数、显示参数;

步骤1.2、创建码流接收线程,解码显示线程;

步骤1.3、初始化矩形框颜色的亮度及色度分量值;

步骤1.4、初始化矩形框队列。

进一步地,所述步骤2还包括:

步骤2.1、创建码流接收端口;

步骤2.2、开启码流接收线程并在指定端口上接收码流;

步骤2.3、将接收的码流发送到解码显示线程。

进一步地,所述步骤3还包括:

步骤3.1、解码显示线程接收从收流线程中发送的数据后进行解码;

步骤3.2、根据码流尺寸信息将解码后数据的亮度分量及色度分量分别存储并实时更新;

步骤3.3、画框标志有效则执行此步骤进行画框操作,否则转入步骤4;

步骤3.4、在鼠标左键释放事件中记录当前鼠标坐标值;并执行步骤3.3.3的画框操作;

步骤3.5、对新修改的码流数据进行显示。

进一步地,所述步骤4还包括:

步骤4.1、销毁码流接收线程;

步骤4.2、销毁解码显示线程,内存释放。

进一步地,所述步骤3.3还包括:

步骤3.3.1、在鼠标左键按下事件中记录当前鼠标坐标值;

步骤3.3.2、在鼠标移动事件中记录鼠标移动过程中的坐标值,此坐标值是相对桌面坐标系;

步骤3.3.3、矩形窗体边框像素值修改;

步骤3.3.4、跳转至步骤3.3,循环上述操作画队列中的下一个矩形窗体。

进一步地,所述步骤3.3.3还包括:

步骤3.3.3.1、坐标纠正,确保画框的区域就在视频画面播放的有效区域内;

步骤3.3.3.2、坐标转换,将要画框的区域转换成相对图像的区域;

步骤3.3.3.3、获取码流分辨率;

步骤3.3.3.4、提升精准度,将要画框的坐标点根据视频显示区域及码流分辨率按比例放大或者缩小2的n次幂;

步骤3.3.3.5、校验矩形框尺寸,因解码后的数据是yuv420格式的,所以矩形框尺寸必须是2个像素及以上;

步骤3.3.3.6、将画框的矩形区域保存在队列中;

步骤3.3.3.7、将矩形区域的起始坐标和宽度、高度取偶数;

步骤3.3.3.8、分别计算矩形区域的亮度和色度分量;

步骤3.3.3.9、像素点查询;查找画框起始坐标点像素点,相对于视频的偏移量,视频的亮度分量开始位置加上矩形窗体的开始纵坐标分量乘以视频的宽度再加上矩形窗体的横坐标分量;同理查找到uv分量的偏移位置像素点;此时的色度分量的偏移量分别是亮度分量的一半;

步骤3.3.3.10、画上横线,确保亮度分量是画两行,色度分量画一行;此处画线时要用框颜色的亮度和色度的分量;

步骤3.3.3.11、画左右两条竖线,此时要循环涂色,循环的范围是矩形窗体的高度,同样亮度画两个像素点值,此时色度像素位置需要有奇数和偶数区别,如果是奇数点像素,需要将次像素移位到下一行的色度像素点;

步骤3.3.3.12、画下横线。

进一步地,所述步骤3.3.3.10还包括:

步骤3.3.3.10.1、计算矩形框相对于视频画面亮度起始像素;

步骤3.3.3.10.2、ydata+框高度*视频宽度+矩形窗体相对画面的x偏移;

步骤3.3.3.10.3、计算矩形框相对于视频画面色度u分量起始像素;

步骤3.3.3.10.4、udata+框高度*视频宽度/4+矩形窗体相对画面的x偏移/2;

步骤3.3.3.10.5、计算矩形框相对于视频画面色度v分量起始像素;

步骤3.3.3.10.6、vdata+框高度*视频宽度/4+矩形窗体相对画面的x偏移/2;

步骤3.3.3.10.7、用框颜色的亮度分量置位ydata,用框颜色的亮度分量置位ydata的下一行;

步骤3.3.3.10.8、用框颜色的亮度分量置位ydata,用框颜色的亮度分量置位ydata的下一行;

步骤3.3.3.10.9、用框颜色的u分量置位udata;

步骤3.3.3.10.10、用框颜色的v分量置位vdata。

进一步地,所述步骤3.3.3.11还包括:

步骤3.3.3.11.1、遍历矩形框高度大小;

步骤3.3.3.11.2、修改ydata和ydata+1为矩形框色彩亮度分量;

步骤3.3.3.11.3、判读要修改的像素点是否为奇数,如果是奇数则进入步骤步骤3.3.3.11.4,否则进入步骤步骤3.3.3.11.5;

步骤3.3.3.11.4、像素点向下整体偏移一行,偏移宽度为1/2视频宽度,跳转至步骤3.3.3.11.6;

步骤3.3.3.11.5、用框颜色的亮度分量置位udata和vdata及位移为框宽度的像素点;

步骤3.3.3.11.6、修改下一行像素点。

进一步地,其特征在于,所述步骤3.3.3.12还包括:

步骤3.3.3.12.1、计算矩形框相对于视频画面亮度起始像素;

步骤3.3.3.12.2、ydata+框高度*视频宽度+矩形窗体相对画面的x偏移;

步骤3.3.3.12.3、计算矩形框相对于视频画面色度u分量起始像素;

步骤3.3.3.12.4、udata+框高度*视频宽度/4+矩形窗体相对画面的x偏移/2;

步骤3.3.3.12.5、计算矩形框相对于视频画面色度v分量起始像素;

步骤3.3.312.6、vdata+框高度*视频宽度/4+矩形窗体相对画面的x偏移/2;

步骤3.3.312.7、用框颜色的亮度分量置位ydata,用框颜色的亮度分量置位ydata的下一行;

步骤3.3.312.8、用框颜色的亮度分量置位ydata,用框颜色的亮度分量置位ydata的下一行;

步骤3.3.3.12.9、用框颜色的u分量置位udata;

步骤3.3.3.12.10、用框颜色的v分量置位vdata。

在本发明的较佳实施方式中,对解码后的数据进行修改,将视频的亮度及色度分量分别进行涂色后再在指定窗体上显示。解决了叠加图形后视频界面闪烁问题,解决了叠加图形后图形模糊不清的问题,也解决了叠加图形颜色依赖问题。直观改善了因视频和矩形窗体不断刷新导致的闪烁问题。完善了界面的显示效果。深入理解视频画面的亮度和色度分量及yuv色彩空间分布。很好的提升了画面显示的效果及控制码流的实时性。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的画框整体数据流程图;

图2是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的解码显示流程图;

图3是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的画框整体流程图;

图4是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的画框上下横线流程图;

图5是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的画框左右竖线流程图;

图6是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的解码后数据结构示意图;

图7是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的解码后数据空间分布示意图;

图8是本发明的一个较佳实施例的一种在视频帧上叠加无闪烁图形的方法的画框后效果图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

如图1所示,为整体的数据流程图。包括以下步骤:

步骤1:初始化,包括以下内容:

1.1)初始化画框标志、起始坐标、终止坐标、解码参数、显示参数、线程参数等。

1.2)初始化矩形框颜色的亮度及色度分量值、队列。

步骤2:创建并开启解码显示进程;

步骤3:创建并开启接收码流进程;

步骤4:判断是否开启画框标志,如开启转入步骤5,否则转入步骤8;

步骤5:鼠标左键按下事件监听并记录起始点坐标;

步骤6:鼠标移动事件监听并将移动过程中的矩形框保存在队列中;

步骤7:码流接收并发送至解码线程解码、画框、显示,转入步骤9;

步骤8:码流接收并发送至解码线程解码显示;

步骤9:资源释放。

如图2所示,为解码显示流程图。包括以下步骤:

步骤1:接收从收流线程发送给的码流;

步骤2、解码后数据结构化;

步骤3、画框后数据结构化;

步骤4、显示。

如图3所示,为画框整体流程图。包括以下步骤:

步骤1、遍历矩形框队列;

步骤2、校验矩形框坐标并修正;

步骤3、获取视频尺寸、矩形框起始点坐标及尺寸取偶数;

步骤4、矩形框颜色转换成独立的y、u、v色彩值;

步骤5、画上横线;

步骤6、画左右两条竖线;

步骤7、画下横线。

在码流上叠加图形本质就是修改码流,在码流的相应位置修改像素值。在码流上画矩形窗体,先画上下两条横线,再依次找到对应的竖线像素点修改像素值。

如图4所示,为画框上下横线流程图。包括以下步骤:

步骤1、计算矩形框相对于视频画面亮度起始像素;

步骤2、ydata+框高度*视频宽度+矩形窗体相对画面的x偏移;

步骤3、计算矩形框相对于视频画面色度u分量起始像素;

步骤4、udata+框高度*视频宽度/4+矩形窗体相对画面的x偏移/2;

步骤5、计算矩形框相对于视频画面色度v分量起始像素;

步骤6、vdata+框高度*视频宽度/4+矩形窗体相对画面的x偏移/2;

步骤7、用框颜色的亮度分量置位ydata,用框颜色的亮度分量置位ydata的下一行;

步骤8、用框颜色的亮度分量置位ydata,用框颜色的亮度分量置位ydata的下一行;

步骤9、用框颜色的u分量置位udata;

步骤10、用框颜色的v分量置位vdata。

如图5所示,为画框左右竖线流程图。包括以下步骤:

步骤1、遍历矩形框高度大小;

步骤2、修改ydata和ydata+1为矩形框色彩亮度分量;

步骤3、判读要修改的像素点是否为奇数,如果是奇数则进入步骤步骤4,否则进入步骤步骤5;

步骤4、像素点向下整体偏移一行,偏移宽度为1/2视频宽度,跳转至步骤6;

步骤5、用框颜色的亮度分量置位udata和vdata及位移为框宽度的像素点;

步骤6、修改下一行像素点。

如图6所示,为解码后数据结构示意图,包括:y数据指针、u数据指针、v数据指针、视频宽度和视频高度。

如图7所示,解码后数据空间分布示意图。解码后亮度分量是色度分量的像素值的两倍,所以在画线的过程中亮度分量画两行,色度分量画一行。要确保亮度和色度分量都能画成功,色度分量在修改像素时要保证所修改的像素索引是偶数。

如图8所示,为画框后效果图。本发明提供了一种在视频帧上叠加无闪烁图形的方法,解决了叠加图形后视频界面闪烁问题;解决了叠加图形后图形模糊不清的问题;解决了叠加图形颜色依赖问题。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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