专利名称:一种基于合成视频的图像分割显示方法
技术领域:
本发明涉及图像显示领域,特别涉及一种基于合成视频的图像分割显示方法。
背景技术:
随着互联网技术的发展,在视频网络传输领域中,为了节省带宽和通信通道,通常 将各路不同的视频流进行合成压缩传输并向客户端发送视频流信息(所述视频流信息,包 括各路视频流以及所述各路视频流对应的坐标区域),客户端则根据该视频流信息从合成 压缩的视频流中提取视频对象,对合成视频进行分割显示。现有合成视频分割显示的方法,首先对接收到的合成压缩的视频流数据进行解 码,得到一帧一帧YUV420或RGB格式的合成图像,再根据接收到的视频流信息对所述合成 图像进行指定坐标区域分割并显示,其中“对所述合成图像进行指定坐标区域分割并显示” 的原理是根据所述视频流信息,读取所述合成图像的指定坐标区域的图像数据并储存到 临时内存;把所述指定坐标区域的图像数据从所述临时内存拷贝到DirectDraw开辟的内 存;使用DirectDraw将存储在其开辟的内存中的所述指定坐标区域的图像数据发到窗体 并显不。这种方法,如果只分割显示一小部分指定坐标区域的图像数据,显然能减少占用 的内存和CPU资源,但当将所述合成图像的各个坐标区域的图像都分割显示时,则显然由 于其中间过程分别使用了临时内存来分别保存分割出来的所述指定坐标区域的图像数据, 消耗额外的内存和CPU资源,降低了整个处理过程的效率。
发明内容
本发明提出一种基于合成视频的图像分割显示的方法,目的是,当将合成图像的 各个坐标区域都分割显示时,降低消耗的CPU和内存资源,提高处理效率。一种基于合成视频的图像分割显示方法,包括以下步骤
步骤1、读取解码得到的YUV420或RGB格式的合成图像数据,并存储到DirectDraw分 配的内存中;
步骤2、根据接收到的视频流信息,使用DirectDraw裁剪指定坐标区域的合成图像 数据并发送到窗体;所述视频流信息,包括各路视频流以及所述各路视频流对应的坐标区 域;
步骤3、所述窗体显示所述指定坐标区域的合成图像数据。与现有技术相比,由于是读取了整个合成图像数据,当只分割显示部分坐标区域 的图像时,相对现有技术占用的内存、CPU资源比较多,但当显示整个合成图像数据时,则由 于直接跳过使用临时内存,相对现有技术降低了内存、CPU资源的占用,提高了处理效率。 一种基于合成视频的图像分割显示方法,包括以下步骤
步骤1、根据视频流信息,读取指定坐标区域的YUV420或RGB格式的合成图像数据,并 存储到DirectDraw分配的内存中;所述视频流信息,包括各路视频流以及所述各路视频流对应的坐标区域;
步骤2、使用DirectDraw将所述指定坐标区域的合成图像数据发到窗体; 步骤3、所述窗体显示所述指定坐标区域的合成图像数据。与现有技术相比,本方法由于直接跳过使用临时内存,不管只是分割显示部分坐 标区域的图像,还是显示整个合成图像的不同坐标区域,都减少了图像处理步骤,减少内存 及CPU的开销,提高了处理效率。
图1是本发明一种基于合成视频的图像分割显示方法在实施例一的流程示意图; 图2是本发明一种基于合成视频的图像分割显示方法在实施例二的流程示意图。
具体实施例方式实施例一
一种基于合成视频的图像分割显示方法,包括以下步骤,如图1 步骤1、读取解码得到的YUV420或RGB格式的合成图像数据,并存储到DirectDraw分 配的内存中;
步骤2、根据接收到的视频流信息,使用DirectDraw裁剪指定坐标区域的合成图像数据并发送到窗体;所述视频流信息,包括各路视频流以及所述各路视频流对应的坐标区 域;
步骤3、所述窗体显示所述指定坐标区域的合成图像数据。具体实现步骤如下
步骤Si、初始化DirectDraw对象,具体包括以下用DirectDrawCreateEx接口 DirectDrawCreateEx创建对象m_dd ;用所述m_dd对象的接口 CreateSurface创建主表面 m_prisurf对象;用所述111_(1(1对象的接口 CreateClipper创建裁减器m_clipper对象;用 所述主表面m_prisurf对象的接口 SetClipper关联所述裁减器m_Clipper对象,用所述 m_dd对象的接口 CreateSurface创建后表面m_backsurf对象,并且根据图像的分辨率大 小分配内存给所述后表面m_backsurf对象,实现所述步骤1中提到的DirectDraw分配内 存;
步骤S2、以YUV420或RGB格式读取所述合成图像数据并存储到所述后表面m_ backsurf对象分配的内存中,对应实现所述步骤1 ;
步骤S3、传入窗体句柄,用所述裁减器m_cIipper对象的SetHWnd接口关联传入的窗 体句柄;
步骤S4、根据所述视频流信息,将所述指定坐标区域的合成图像数据对应的坐标值贴 到所述主表面m_prisurf对象(也即是使所述主表面m_prisurf对象指向所述指定坐标区 域的合成图像数据);
步骤S5、通过所述主表面m_prisurf对象的接口 Bit,把所述主表面m_prisurf对象指 向的所述指定坐标区域的合成图像数据发到所述窗体;
步骤S6、所述窗体显示所述指定坐标区域的合成图像数据。其中,所述步骤S3-S5对应实现所述步骤2,当要显示整个所述合成图像的各个坐标区域的图像数据时,只需要根据所述视频流信息,循环执行步骤S3-S6,使所述主表面m_ prisurf对象先后分别指向的不同坐标区域的合成图像数据并通过所述主表面m_priSUrf 对象的接口 Blt发送到对应的窗体,使窗体对应地显示不同坐标区域的合成图像数据,这 样实现了所述合成图像的不同坐标区域的同时分割显示。作为 种优选的实施例,读取所述合成图像数据时,还包括以下步骤根据所述视 频流信息,判断所述合成图像数据是否进行过图像合成,若是,则判定可以进行图像分割, 执行步骤2;若否,则判定不可以进行图像分割,停止图像分割并给出图像分割失败提示, 例如当所述合成视频只有一路视频流,则所述视频流信息包括该路视频流以及该路视频流 对应的坐标区域,则可以根据该视频流信息判定解码得到的图像数据肯定没有进行过图像 合成,而没有进行过图像合成的图像数据并不适合进行分割显示。实施例二
一种基于合成视频的图像分割显示方法,包括以下步骤,如图2 步骤1、根据视频流信息,读取指定坐标区域的YUV420或RGB格式的合成图像数据,并 存储到DirectDraw分配的内存中;所述视频流信息,包括各路视频流以及所述各路视频流 对应的坐标区域;
步骤2、使用DirectDraw将所述指定坐标区域的合成图像数据发到窗体; 步骤3、所述窗体显示所述指定坐标区域的合成图像数据。具体实现步骤如下
步骤Si、初始化DirectDraw对象,具体包括用DirectDrawCreateEx 接口 DirectDrawCreateEx创建对象m_dd ;用所述m_dd对象的接口 CreateSurface创建主表面 m_prisurf对象;用所述111_(1(1对象的接口 CreateClipper创建裁减器m_clipper对象,用 所述主表面m_prisurf对象接口 SetClipper关联所述裁减器m_Clipper对象;用所述111_ dd对象的接口 CreateSurface创建后表面m_backsurf对象,并且根据所述视频流信息,分 配与所述指定坐标区域的合成图像数据大小相等的内存给所述对象m_dd,实现所述步骤1 中提到的DirectDraw分配内存;
步骤S2、根据所述视频流信息,以YUV420或RGB格式读取所述指定坐标区域的合成图 像数据并存储到所述后表面m_baCkSUrf对象分配的内存中,对应实现所述步骤1 ;
步骤S3、传入窗体句柄,用所述裁减Iipper对象的SetHWnd接口关联传入的窗体 句柄;;
步骤S4、通过所述主表面m_prisurf对象的接口 Blt (主表面默认与后表面相关联), 把存储在所述后表面m_baCkSUrf对象分配的内存中的所述指定坐标区域的合成图像数据 发到所述窗体;
步骤S5、所述窗体显示所述指定坐标区域的合成图像数据。其中,所述步骤S3-S4对应实现所述步骤2,当要显示整个所述合成图像的各个 不同坐标区域的图像数据时,只需要根据所述视频流信息,循环执行步骤S1-S5,先后分 别以YUV420或RGB格式读取所述指定坐标区域的合成图像数据并存储到所述后表面m_ backsurf对象分配的内存中,并通过所述主表面m_prisurf对象的接口 Blt发送到对应的 窗体,使窗体对应地显示不同坐标区域的合成图像数据,这样实现了所述合成图像的不同 坐标区域的同时分割显示。
作为一种优选的实施例,在读取所述指定坐标区域的合成图像数据前,还包括以 下步骤根据所述视频流信息,判断所述合成图像数据是否进行过图像合成,若是,则判定 可以进行图像分割,执行步骤1 ;若否,则判定不可以进行图像分割,停止图像分割并给出 图像分割失败提示,例如当所述合成视频只有一路视频流,则所述视频流信息包括该路视 频流以及该路视频流对应的坐标区域,则可以根据该视频流信息判定解码得到的图像数据 肯定没有进行过图像合成,而没有进行过图像合成的图像数据并不适合进行分割显示。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明 的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范 围之内。
权利要求
1.一种基于合成视频的图像分割显示方法,其特征在于,包括以下步骤步骤1、读取解码得到的YUV420或RGB格式的合成图像数据,并存储到DirectDraw分 配的内存中;步骤2、根据接收到的视频流信息,使用DirectDraw裁剪指定坐标区域的合成图像 数据并发送到窗体;所述视频流信息,包括各路视频流以及所述各路视频流对应的坐标区 域;步骤3、所述窗体显示所述指定坐标区域的合成图像数据。
2.根据权利要求1所述的基于合成视频的图像分割显示方法,其特征在于,读取所述 合成图像数据时,还包括以下步骤根据所述视频流信息,判断所述合成图像数据是否进行 过图像合成,若是,则判定可以进行图像分割,执行步骤2;若否,则判定不可以进行图像分 害IJ,停止图像分割并给出分割失败提示。
3.一种基于合成视频的图像分割显示方法,其特征在于,包括以下步骤步骤1、根据视频流信息,读取指定坐标区域的YUV420或RGB格式的合成图像数据,并 存储到DirectDraw分配的内存中;所述视频流信息,包括各路视频流以及所述各路视频流 对应的坐标区域;步骤2、使用DirectDraw将所述指定坐标区域的合成图像数据发到窗体;步骤3、所述窗体显示所述指定坐标区域的合成图像数据。
4.根据权利要求3所述的基于合成视频的图像分割显示方法,其特征在于,在读取所 述指定坐标区域的合成图像数据前,还包括以下步骤根据所述视频流信息,判断所述合成 图像数据是否进行过图像合成,若是,则判定可以进行图像分割,执行步骤1 ;若否,则判定 不可以进行图像分割,停止图像分割并给出图像分割失败提示。
全文摘要
本发明提出一种基于合成视频的图像分割显示方法,包括以下步骤读取解码得到的YUV420或RGB格式的合成图像数据并存储到DirectDraw分配的内存中;根据接收到的视频流信息,使用DirectDraw裁剪指定坐标区域的合成图像数据并发送到窗体;所述窗体显示指定坐标区域的合成图像数据。当显示整个合成图像数据时,该方法由于直接跳过使用临时内存,相对现有技术降低了内存、CPU资源的占用,并且提高了处理效率。
文档编号H04N5/262GK102098451SQ20101058928
公开日2011年6月15日 申请日期2010年12月15日 优先权日2010年12月15日
发明者李小平, 谭小刚 申请人:广东威创视讯科技股份有限公司