CN101894360A - 一种多CPU渲染garbage mask的方法 - Google Patents

一种多CPU渲染garbage mask的方法 Download PDF

Info

Publication number
CN101894360A
CN101894360A CN2009100847341A CN200910084734A CN101894360A CN 101894360 A CN101894360 A CN 101894360A CN 2009100847341 A CN2009100847341 A CN 2009100847341A CN 200910084734 A CN200910084734 A CN 200910084734A CN 101894360 A CN101894360 A CN 101894360A
Authority
CN
China
Prior art keywords
bounding box
cpu
garbage mask
mask
garbage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009100847341A
Other languages
English (en)
Other versions
CN101894360B (zh
Inventor
见良
刘铁华
郑鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing culture science and technology finance leasing Limited by Share Ltd
Original Assignee
China Digital Video Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Digital Video Beijing Ltd filed Critical China Digital Video Beijing Ltd
Priority to CN2009100847341A priority Critical patent/CN101894360B/zh
Publication of CN101894360A publication Critical patent/CN101894360A/zh
Application granted granted Critical
Publication of CN101894360B publication Critical patent/CN101894360B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明属于图像/视频处理技术,具体涉及一种多CPU渲染garbage mask的方法。该方法首先确定一个garbage mask中的所有Bezier曲线的包围盒以及garbage mask的包围盒;然后得到garbage mask的加边包围盒;将整个缓冲区域按garbage mask的加边包围盒划分为上中下三个子区域;每个CPU分别负责处理上述三个子区域中的一个子区域,计算出每个CPU在其子区域中处理的扫描线范围;最后每个CPU分别渲染自己要处理的扫描线的内容。本发明适于在多核处理器中进行应用,能够明显提高garbage mask的渲染效率。

Description

一种多CPU渲染garbage mask的方法
技术领域
本发明属于图像/视频处理技术,具体涉及一种多CPU渲染garbage mask的方法。
背景技术
在图像/视频处理软件中,对图像/视频进行合成或者特效处理时进行掩模处理是一种很广泛的需求。通常这种掩模可以通过键特技生成出来或者是从一张专用的掩模图像获取出来,但是在很多情况下这样的掩模是不够的,还需要用于通过手工绘制的方法创建出一个掩模,这种掩模一般称之为garbage mask。
一个garbage mask由若干有序的端点(end point)构成,每两个连续的端点构成一条曲线,每个端点有两个控制点(control point),因此每一条曲线的形状由两个端点和两个控制点决定,它们实际上是一条三次Beizer曲线,一个garbage mask就是由若干条三次Beizer曲线构成的一个闭合曲线所描述出来的。用参数方程来描述三次Beizer曲线如下:
x(t)=ax·t3+bx·t2+cx·t+dx
y(t)=ay·t3+by·t2+cy·t+dy
上式中t为参数方程的参数,它的范围是[0,1],ax,bx…一系列系数是由这条曲线的端点与控制点的坐标决定出来的。
除了有描述一个garbage mask的基本元素:端点和其所规定的Bezier曲线外,还要有控制garbage mask边界形状的元素,这个元素称之为边界点(edgepoint),边界点有两个属性:位置(position)与距离(distance),位置决定这个边界点在garbage mask上的参数位置;距离决定了这个边界点沿曲线上面的点的法线方向远离曲线的距离,距离为正数表示这是一个外部边界点,用来确定garbage mask的外边界形状;为负数则表示这是一个内部边界点,用来确定garbage mask的内边界形状。整个garbage mask的边界就是由内外边界点所包络出来的形状来决定的。
创建这种garbage mask一般是通过用户绘制一个闭合的曲线,然后填充这个闭合曲线得到的灰度图就是一个garbage mask。填充一个闭合曲线之后的灰度图边界过于生硬,所以需要对garbage mask生成边界,并对边界进行渲染使得它看起来更平滑更自然。这样的话,渲染一个garbage mask需要进行大量的计算,往往一个比较复杂的garbage mask在渲染过程中需要耗费大量时间,这会降低软件的实时性。
发明内容
本发明的目的在于针对复杂的garbage mask在渲染过程中需要耗费大量时间的缺陷,提供一种多CPU渲染garbage mask的方法,以提高garbage mask的渲染效率。
本发明的技术方案如下:一种多CPU渲染garbage mask的方法,包括如下步骤:
(1)确定一个garbage mask中的所有Bezier曲线的包围盒以及garbagemask的包围盒;
(2)找到所有边界点距离属性绝对值的最大值dist_max,得到garbagemask的加边包围盒;
(3)将整个缓冲区域按garbage mask的加边包围盒划分为上中下三个子区域;
(4)每个CPU分别负责处理上述三个子区域中的一个子区域,计算出每个CPU在其子区域中处理的扫描线范围;
(5)每个CPU分别渲染自己要处理的扫描线的内容。
进一步,如上所述的多CPU渲染garbage mask的方法,其中,步骤(1)中确定garbage mask中的每条Bezier曲线的包围盒的方法如下:针对三次Beizer曲线参数方程,计算x(t)在t∈[0,1]区间的最大值与最小值,得到该Bezier曲线包围盒的左边界与右边界;计算y(t)在t∈[0,1]区间的最大值与最小值,得到该Bezier曲线包围盒的上边界与下边界。
更进一步,如上所述的多CPU渲染garbage mask的方法,其中,步骤(1)中确定garbage mask的包围盒的方法是根据garbage mask中的所有Bezier曲线的包围盒的边界值,得到最左/最右/最上/最下的边界值,从而确定garbagemask的包围盒的边界值。
进一步,如上所述的多CPU渲染garbage mask的方法,其中,步骤(2)中得到garbage mask的加边包围盒的方法是将garbage mask的包围盒边界向四边延展dist_max长度。
进一步,如上所述的多CPU渲染garbage mask的方法,其中,步骤(4)中计算每个CPU在其子区域中处理的扫描线范围的方法如下:设整个区域的扫描线范围为[ls,le),CPU的数量为c,那么编号为n的CPU所需要处理的子区域的扫描线范围是[ls′,le′),ls′=ls+n·(le-ls)/c,le′=ls+(n+1)·(le-ls)/c,其中,n从0开始编号,公式中的除法均为整除运算。
进一步,如上所述的多CPU渲染garbage mask的方法,其中,步骤(5)中对于最上面和最下面的子区域,相应的CPU在处理其子区域时将所有的扫描线都填充为灰度0;对于中间的子区域,相应的CPU在处理其子区域时,首先把扫描线内位于加边包围盒最左边界左边以及最右边界右边的部分填充为灰度值0,然后再填充garbage mask闭合曲线。
本发明的有益效果如下:本发明按garbage mask的加边包围盒边界将整个缓冲区域分为多个子区域,每个CPU分别负责一个子区域的扫描线渲染处理,从而提高了garbage mask的渲染效率。该方法适于在多核处理器中进行应用,在具体的渲染测试试验中,一台四核的Intel Core 2处理器在多CPU渲染中比单CPU渲染的速度快2.6倍。
附图说明
图1为本发明的方法流程图;
图2为对缓冲区域进行划分的示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细的描述。
如图1所示,本发明提供的一种多CPU渲染garbage mask的方法,包括如下步骤:
(1)确定一个garbage mask中的所有Bezier曲线的包围盒以及garbagemask的包围盒;
(2)找到所有边界点距离属性绝对值的最大值dist_max,得到garbagemask的加边包围盒;
(3)将整个缓冲区域按garbage mask的加边包围盒划分为上中下三个子区域;
(4)每个CPU分别负责处理上述三个子区域中的一个子区域,计算出每个CPU在其子区域中处理的扫描线范围;
(5)每个CPU分别渲染自己要处理的扫描线的内容。
正如背景技术中所介绍的,一个garbage mask由若干有序的端点(end point)构成,每两个连续的端点构成一条曲线,每个端点有两个控制点(controlpoint),因此每一条曲线的形状由两个端点和两个控制点决定,它们实际上是一条三次Beizer曲线,一个garbage mask就是由若干条三次Beizer曲线构成的一个闭合曲线所描述出来的。用参数方程来描述三次Beizer曲线如下:
x(t)=ax·t3+bx·t2+cx·t+dx
y(t)=ay·t3+by·t2+cy·t+dy
上式中t为参数方程的参数,它的范围是[0,1],ax,bx…一系列系数是由这条曲线的端点与控制点的坐标决定出来的。
本发明首先要求出一个garbage mask的包围盒(bounding box),为了求这个garbage mask的包围盒,则要求出garbage mask中每一条Bezier曲线的包围盒。具体的求解过程如下:对于水平方向的最大/最小值,首先计算出x(0)与x(1),然后对x(t)求一阶导函数,x′(t)=3·ax·t2+2·bx·t+cx,求解x′(t)=0在t∈[0,1]内的实根,然后再将这些实根对应的函数值与x(0)和x(1)的值进行比较,就可以得到x(t)在t∈[0,1]区间的最大值与最小值,这就是该Bezier曲线包围盒的左边界与右边界。同理,计算y(t)在t∈[0,1]区间的最大值与最小值,可以求出包围盒的上边界与下边界。那么再求解出garbage mask中左右曲线的包围盒之后,我们就可能根据这些包围盒的最左/最右/最上/最下的边界值得到整个garbage mask的包围盒边界值。
在得到了garbage mask的包围盒之后,就可以在渲染的时候知道这个garbage mask在目标缓冲区最多占多大区域。当然,为了知道这一点还需要一个值dist_max,由于每个边界点具有一个距离属性,它决定了边界点远离边界的距离,这个值可以是正的也可以是负的,dist_max就是是当前所有边界点距离属性绝对值的最大值,只要将garbage mask的包围盒边界向四边再延展dist_max这么长就可以知道garbage mask在目标缓冲区最多占多大区域,这个延展了的区域也叫加边包围盒。
如图2所示,在图2中加边包围盒就是真正要进行渲染的部分,它外面的部分都是要渲染成灰度值为0的部分。图2中有两条虚线将整个缓冲区划分为三部分,最上面和最下面的部分都是灰度值为0的区域,中间是需要渲染的区域。多CPU处理时,每个CPU都要分别处理这三个区域中的一个子区域。对于每个子区域,我们按扫描线来划分每个CPU要处理的子区域。假设某个区域的扫描线范围为[ls,le),CPU的数量为c,那么编号为n(从0开始编号)的CPU所需要处理的子区域的扫描线范围是[ls′,le′),ls′=ls+n·(le-ls)/c,le′=ls+(n+1)·(le-ls)/c,注意上式的除法均为整除运算。
对于最上面和最下面的子区域,相应的CPU在处理其子区域时将所有的扫描线都填充为灰度0即可。
对于中间的子区域,相应的CPU在处理其子区域时首先要把扫描线内位于图2中加边包围盒最左边界左边以及最右边界右边的那部分填充为灰度值0。然后,利用扫描线算法填充garbage mask闭合曲线,扫描线算法为本领域的公知技术,当然每个CPU只处理自己相关的那些扫描线,在填充过程中对于那些加边包围盒完全与当前CPU要处理的扫描线不相交的Bezier曲线则完全忽略过去。渲染边界也是类似,将边界划分为许多的三角面片,在渲染三角面片时则只渲染当前CPU要处理的扫描线即可。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的创新范围。

Claims (6)

1.一种多CPU渲染garbage mask的方法,包括如下步骤:
(1)确定一个garbage mask中的所有Bezier曲线的包围盒以及garbagemask的包围盒;
(2)找到所有边界点距离属性绝对值的最大值dist_max,得到garbagemask的加边包围盒;
(3)将整个缓冲区域按garbage mask的加边包围盒划分为上中下三个子区域;
(4)每个CPU分别负责处理上述三个子区域中的一个子区域,计算出每个CPU在其子区域中处理的扫描线范围;
(5)每个CPU分别渲染自己要处理的扫描线的内容。
2.如权利要求1所述的多CPU渲染garbage mask的方法,其特征在于:步骤(1)中确定garbage mask中的每条Bezier曲线的包围盒的方法如下:针对三次Beizer曲线参数方程,计算x(t)在t∈[0,1]区间的最大值与最小值,得到该Bezier曲线包围盒的左边界与右边界;计算y(t)在t∈[0,1]区间的最大值与最小值,得到该Bezier曲线包围盒的上边界与下边界。
3.如权利要求2所述的多CPU渲染garbage mask的方法,其特征在于:步骤(1)中确定garbage mask的包围盒的方法是根据garbage mask中的所有Bezier曲线的包围盒的边界值,得到最左/最右/最上/最下的边界值,从而确定garbage mask的包围盒的边界值。
4.如权利要求3所述的多CPU渲染garbage mask的方法,其特征在于:步骤(2)中得到garbage mask的加边包围盒的方法是将garbage mask的包围盒边界向四边延展dist_max长度。
5.如权利要求1或2或3或4所述的多CPU渲染garbage mask的方法,其特征在于:步骤(4)中计算每个CPU在其子区域中处理的扫描线范围的方法如下:设整个区域的扫描线范围为[ls,le),CPU的数量为c,那么编号为n的CPU所需要处理的子区域的扫描线范围是[ls′,le′),ls′=ls+n·(le-ls)/c,le′=ls+(n+1)·(le-ls)/c,其中,n从0开始编号,公式中的除法均为整除运算。
6.如权利要求5所述的多CPU渲染garbage mask的方法,其特征在于:步骤(5)中对于最上面和最下面的子区域,相应的CPU在处理其子区域时将所有的扫描线都填充为灰度0;对于中间的子区域,相应的CPU在处理其子区域时,首先把扫描线内位于加边包围盒最左边界左边以及最右边界右边的部分填充为灰度值0,然后再填充garbage mask闭合曲线。
CN2009100847341A 2009-05-20 2009-05-20 一种多CPU渲染garbage mask的方法 Expired - Fee Related CN101894360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100847341A CN101894360B (zh) 2009-05-20 2009-05-20 一种多CPU渲染garbage mask的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100847341A CN101894360B (zh) 2009-05-20 2009-05-20 一种多CPU渲染garbage mask的方法

Publications (2)

Publication Number Publication Date
CN101894360A true CN101894360A (zh) 2010-11-24
CN101894360B CN101894360B (zh) 2012-05-23

Family

ID=43103543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100847341A Expired - Fee Related CN101894360B (zh) 2009-05-20 2009-05-20 一种多CPU渲染garbage mask的方法

Country Status (1)

Country Link
CN (1) CN101894360B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106780313A (zh) * 2016-12-28 2017-05-31 网易(杭州)网络有限公司 图像处理方法及装置
CN116029257A (zh) * 2023-02-14 2023-04-28 弈芯科技(杭州)有限公司 版图验证中识别图形的连接关系的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106780313A (zh) * 2016-12-28 2017-05-31 网易(杭州)网络有限公司 图像处理方法及装置
CN116029257A (zh) * 2023-02-14 2023-04-28 弈芯科技(杭州)有限公司 版图验证中识别图形的连接关系的方法及装置

Also Published As

Publication number Publication date
CN101894360B (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
CN106127859B (zh) 一种移动增强现实型涂鸦绘本的真实感生成方法
CN102236789B (zh) 对表格图像进行校正的方法以及装置
CN105761252A (zh) 图像分割的方法及装置
CN102750725A (zh) 基于图形处理器加速的地形渲染方法
CN102272798A (zh) 曲面细分时间随曲面细分量线性增长的镶嵌器
CN106600665A (zh) 一种相机动画路径生成方法和装置
KR102132369B1 (ko) 치아 분할 시스템 및 방법
CN104063888B (zh) 一种基于非真实感的波谱艺术风格绘制方法
CN101493952A (zh) 一种3d地形渲染方法和渲染装置
CN101599181A (zh) 一种代数b样条曲面的实时绘制方法
CN108280836A (zh) 一种图像处理方法及装置
CN101894363B (zh) 一种面片化的garbage mask边界渲染方法
CN101894360B (zh) 一种多CPU渲染garbage mask的方法
JP2010282611A (ja) 情報処理装置、情報処理方法及びプログラム
CN102279981A (zh) 一种三维图像网格化方法
CN103823649A (zh) 一种基于切片文件的三维打印均匀壁厚抽壳方法
CN101984465B (zh) 一种图像无缝复制的方法
CN102306388B (zh) 一种反笔形走样的方法和装置
CN109712225A (zh) 一种面对象的渲染方法、装置、设备及存储介质
CN110377865A (zh) 一种融合贝塞尔曲线的球幕融合边缘加权计算方法
CN106875377A (zh) 一种基于高斯曲率流的脊椎特征点自动识别方法
CN105023288A (zh) 二维矢量实线在三维场景中的视觉误差消除方法
CN103543974B (zh) 一种提高字体清晰度的方法及系统
CN101764940A (zh) 一种基于像素空间掩码矩阵模型的字幕渲染方法
CN104239874B (zh) 一种器官血管识别方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING CULTURAL AND SCIENTIFIC FINANCING LEASE CO

Free format text: FORMER OWNER: XIN'AOTE(BEIJING) VIDEO TECHNOLOGY CO., LTD.

Effective date: 20150210

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 100044 SHUNYI, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20150210

Address after: 100044, room 2, building 1, No. 401, Golden Sail Road, Beijing, Shunyi District

Patentee after: Beijing culture science and technology finance leasing Limited by Share Ltd

Address before: 100080 Beijing city Haidian District xicaochang No. 1 Beijing Silicon Valley computer city 15 1501-1506 room

Patentee before: China Digital Video (Beijing) Limited

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20170520

CF01 Termination of patent right due to non-payment of annual fee