优化进程间图像渲染的方法

文档序号:6439677阅读:293来源:国知局
专利名称:优化进程间图像渲染的方法
技术领域
本发明涉及计算机图像处理技术领域,特别涉及一种优化进程间图像渲染的方法。
背景技术
现有技术一般在解码渲染图像时,采用2种方法一种是在一个进程内完成解码和渲染,此种方法创建的窗口不能被其他进程作为渲染目标,缺少灵活性,这就造成每切换一次信号类型,就必须开关窗一次;另一种方法是使用2个进程,一个为解码/预渲染进程, 用来将图像数据解码和预渲染,并获取预渲染后的图像数据;另一个为显示进程,用来接收预渲染的图像数据并显示。在这种方法中,要显示一幅图像,实际进行了两次渲染,造成显示迟缓和系统资源浪费。。发明内容
本发明提出了一种优化进程间图像渲染的方法,针对现有技术的不足,通过使用跨进程渲染的方法,达到减少渲染次数、提升系统效率的目的。
本发明优化进程间图像渲染的方法,包括窗口进程和解码进程
所述窗口进程响应用户的开窗、开始显示特定类型图像、停止显示特定类型图像、 移动窗口、改变窗口大小和关窗操作,
所述开窗操作,包括步骤
创建窗口,获取所创建窗口的id ;
将所述id赋值给WinID,
所述停止显示特定类型图像操作,包括步骤
触发当前显示图像类型对应的解码进程停止工作;
将WinIDEo,
所述开始显示特定类型图像操作,包括步骤
执行上述操作“停止显示特定类型图像”;
将所述id赋值给WinID ;
获取待显示的图像类型;
触发待显示图像类型对应的解码进程开始工作,
所述关窗操作,包括步骤
执行上述操作“停止显示特定类型图像”;
关闭窗口,
每种图像类型对应一个所述解码进程,每个所述解码进程包括解码线程和渲染线程,
所述解码进程按照以下步骤开始工作
SO 所述渲染线程获取WinID的绘图上下文WinContext ;
Sl 所述渲染线程绑定WinContext ;
S2:所述渲染线程获取窗口的宽和高,根据获取到的宽、高,更新所述渲染线程中的绘图环境;
S3:所述解码线程解码待显示图像类型的图像数据,将解码后的所述图像数据交给渲染线程;
S4 所述渲染线程将所述图像数据渲染到窗口 ;
S5 重复执行上述步骤S2、S3、S4,
所述解码进程按照以下步骤停止工作
所述解码线程停止解码;
所述渲染线程停止渲染;
所述渲染线程与WinContext脱离。
优选地,所述图像类型包括IP图像、本地图像、RGB图像和叠加显示图像。
本发明优化进程间图像渲染的方法,包括窗口进程和解码进程,解码进程又包括解码线程和渲染线程,窗口操作和图像的解码与渲染分开来执行。这样,图像从数据到在窗口显示出来,只需渲染一次,相比现有技术,至少少执行一次后台渲染和一次读缓冲区。且解码线程与渲染线程同一个进程中,不再跨进程,便于进行解码和渲染两个操作之间的同步,降低了系统的复杂度。


图1是本发明优化进程间图像渲染方法的开窗操作过程中,窗口进程与解码进程所执行步骤的示意图2是本发明优化进程间图像渲染方法的开始显示IP图像操作过程中,窗口进程与解码进程所执行步骤的示意图3是本发明优化进程间图像渲染方法的关窗操作过程中,窗口进程与解码进程所执行步骤的示意图。
具体实施方式
本发明的目的在于克服现有技术的缺点和不足,通过使用跨进程渲染的方式,达到减少渲染次数、提升系统效率的目的。下面结合附图与实施例详细将诶是本发明。
本发明优化进程间图像渲染的方法包括窗口进程和解码进程,窗口进程和解码进程之间共享一个数据窗口 ID,即WinID。
窗口进程用于响应用户的开窗、开始显示特定类型图像、停止显示特定类型图像、 移动窗口、改变窗口大小、关窗、等操作。其在响应“开窗”时,创建窗口 ;在“显示特定类型图像”时,通知与该类型图像对应的解码进程开始工作;在响应“移动窗口、改变窗口大小” 时,改变窗口的位置、窗口宽高等属性;在响应“关窗”时,销毁窗口,并通知与当前显示图像类型对应的解码进程停止工作。
1、开窗
SO 创建窗口,获取到该窗口的id;
Sl 将 id 赋值给 WinID。
2、停止显示特定类型图像
SO 触发与当前显示图像数据类型对应的解码进程停止工作;
Si:将 WinID 归 0。
3、开始显示特定类型图像
SO 执行上述操作“停止显示特定类型图像”,停止显示当前类型的图像;
Sl 将 id 赋值给 WinID ;
S2 获取用户要显示的图像类型;
S3 触发与该图像数据类型对应的解码进程开始工作。
作为一个优选的实施例,所述图像类型包括IP图像、本地图像、RGB图像和叠加显示图像等。显示下一类型图像前,要先将当前类型图像的解码进程结束掉。
4、移动窗口、改变窗口大小
不影响WinID和相应的解码进程。
此操作随时可能发生,与停止显示特定类型图像和开始显示特定类型图像的操作没有先后关系。
5、关窗
SO 执行上述操作“停止显示特定类型图像”,停止显示当前类型的图像;
S2:关闭窗口。
解码进程有2个功能解码与该插件对应类型的图像数据、将解码后的图像渲染到WinID窗口,相应地,其内部有2个基本线程解码线程、渲染线程。解码线程用于解码图像数据;渲染线程用于将图像数据渲染到指定窗口。
解码进程有2个接口 开始、停止。
1、开始
SO 获取 WinID 的绘图上下文 WinContext ;
Sl 将WinContext绑定到渲染线程中,使渲染线程能够绘图到WinID窗口 ;
S2:获取该窗口的宽和高,根据获取到的宽、高,更新渲染线程中的绘图环境;此步骤决定了待渲染的图像数据要绘制到多宽、多高的一个窗口区域中,从而决定了待渲染图像数据的宽、高缩放比例;当窗口大小改变时,该步骤也使渲染线程尽快调整渲染图像的缩放比例,防止图像显示花屏错乱。
S3 解码图像数据,将图像数据交给渲染线程;
S4 渲染线程将图像数据渲染到WinID窗口
S5 重复执行上述步骤S2、S3、S4,直至收到“停止”命令。
步骤S2决定了待渲染的图像数据要绘制到多宽、多高的一个窗口区域中,从而决定了待渲染图像数据的宽、高缩放比例;当窗口大小改变时,该步骤也使渲染线程尽快调整渲染图像的缩放比例,防止图像显示花屏错乱。
2、停止
SO 停止解码图像数据;
Sl 停止渲染图像;
S2 将渲染线程与WinContext脱离。
为便于描述,假设目前系统有IP图像解码插件、图片叠加显示插件和RGB解码插件。下面通过模拟实际操作步骤进行详细说明。
(—)、如图1所示是开窗操作过程中,窗口进程和解码进程所执行步骤的示意图。
A.窗口进程
SO 创建窗口,获取到该窗口的id ;
Sl 将 id 赋值给 WinID ;
B.解码进程
无操作。
(二)、图2所示是开始显示特定类型图像-IP图像的操作过程中,窗口进程与解码进程所执行步骤的示意图。
A.窗口进程
SO 触发IP图像解码插件开始工作;
B.解码进程
SO 获取 WinID 的绘图上下文 WinContext ;
Sl 将WinContext绑定到渲染线程中,使渲染线程能够绘图到WinID窗口 ;
S2 获取该窗口的宽和高,根据获取到的宽、高,更新渲染线程中的绘图环境;
S3 解码图像数据,将图像数据交给渲染线程;
S4渲染线程将图像数据渲染到WinID窗口
S5 重复执行上述步骤S2、S3、S4,直至收到“停止”命令。
(三)、开始显示特定类型图像-图片叠加显示。
A.窗口进程
SO 使当前的IP图像解码进程停止工作;
Sl 触发图片叠加显示插件开始工作;
B.解码进程
SO :IP图像插件停止解码图像数据;
Sl :IP图像插件停止渲染图像;
S2 将IP图像插件的渲染线程与WinContext脱离;
S3 图片叠加显示插件获取WinID的绘图上下文WinContext ;
S4 将WinContext绑定到图片叠加显示插件的渲染线程中,使图片叠加显示插件的渲染线程能够绘图到WinID窗口 ;
S5:获取该窗口的宽和高,根据获取到的宽、高,更新图片叠加显示插件渲染线程中的绘图环境;
S6:图片叠加显示插件解码图像数据,将图像数据交给图片叠加显示插件渲染线程;
S7图片叠加显示插件渲染线程将图像数据渲染到WinID窗口
S8 重复执行上述步骤S5、S6、S7,直至收到“停止”命令。
上述步骤SO S2实际执行了停止IP图像插件的操作,上述步骤S3 S8实际执行了 “开始图片叠加显示插件”的操作。
(四)图3所示是关窗操作过程中,窗口进程与解码进程所执行步骤的示意图。
A.窗口进程
SO 停止图片叠加显示插件;
Si:关闭窗口;
B.解码进程
SO 图片叠加显示插件停止解码图像数据;
Sl 图片叠加显示插件停止渲染图像;
S2 将图片叠加显示插件的渲染线程与WinContext脱离。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
权利要求
1.一种优化进程间图像渲染的方法,其特征在于,包括窗口进程和解码进程所述窗口进程响应用户的开窗、开始显示特定类型图像、停止显示特定类型图像、移动窗口、改变窗口大小和关窗操作, 所述开窗操作,包括步骤 创建窗口,获取所创建窗口的id ; 将所述id赋值给WinID, 所述停止显示特定类型图像操作,包括步骤 触发当前显示图像类型对应的解码进程停止工作; 将 WinID 归 0,所述开始显示特定类型图像操作,包括步骤执行上述操作“停止显示特定类型图像”;将所述id赋值给WinID ;获取待显示的图像类型;触发待显示图像类型对应的解码进程开始工作,所述关窗操作,包括步骤执行上述操作“停止显示特定类型图像”;关闭窗口,每种图像类型对应一个所述解码进程,每个所述解码进程包括解码线程和渲染线程, 所述解码进程按照以下步骤开始工作50所述渲染线程获取WinID的绘图上下文WinContext ;51所述渲染线程绑定WinContext ;52所述渲染线程获取窗口的宽和高,根据获取到的宽、高,更新所述渲染线程中的绘图环境;S3:所述解码线程解码待显示图像类型的图像数据,将解码后的所述图像数据交给渲染线程;S4:所述渲染线程将所述图像数据渲染到窗口 ; S5 重复执行上述步骤S2、S3、S4, 所述解码进程按照以下步骤停止工作 所述解码线程停止解码; 所述渲染线程停止渲染; 所述渲染线程与WinContext脱离。
2.根据权利要求1所述的优化进程间图像渲染的方法,其特征在于,所述图像类型包括IP图像、本地图像、RGB图像和叠加显示图像。
全文摘要
本发明公开了一种优化进程间图像渲染的方法,包括窗口进程和解码进程,解码进程又包括解码线程和渲染线程,窗口操作和图像的解码与渲染分开来执行。这样,图像从数据到在窗口显示出来,只需渲染一次,相比现有技术,至少少执行一次后台渲染和一次读缓冲区。且解码线程与渲染线程同一个进程中,不再跨进程,便于进行解码和渲染两个操作之间的同步,降低了系统的复杂度。
文档编号G06F9/44GK102520937SQ20111038920
公开日2012年6月27日 申请日期2011年11月29日 优先权日2011年11月29日
发明者荆建营 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1