1、(10)申请公布号 (43)申请公布日 (21)申请号 201410660727.2 (22)申请日 2014.11.19 G06T 11/00(2006.01) G06T 1/00(2006.01) (71)申请人 江苏影速光电技术有限公司 地址 221399 江苏省徐州市邳州市经济开发 区华山路 (72)发明人 程珂 张伟 尤鑫 (74)专利代理机构 徐州支点知识产权代理事务 所 ( 普通合伙 ) 32244 代理人 刘新合 (54) 发明名称 一种用于数字微镜显示的矢量图形栅格化方 法 (57) 摘要 本发明公开了一种用于数字微镜显示的矢量 图形栅格化方法, 在对矢量图形栅格化的过程中,
2、 使用 GPU 通用并行计算技术, 具体的计算步骤如 下 : 1) 对矢量图形点的坐标单位缩放处理, 并根 据不同 LDI 机型网格精度的差异和实际的网格精 度动态的调整矢量点坐标单位 ; 2) 对矢量图形边 的栅格化处理 : 提取矢量图形每个边栅格化处理 后的像素坐标, 并将这些像素点填充, 并收集除上 顶点以外的所有点像素坐标 ; 3) 对步骤 2) 所得像 素点的重排序和配对填充。本发明将矢量图形栅 格化过程加速, 从而实现实时栅格化处理, 在保证 产能的同时允许对矢量图数据做临时改变, 具有 广泛的实用价值和市场情景, 有利于提高整体行 业的效率。 (51)Int.Cl. (19)中华
3、人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书3页 附图4页 (10)申请公布号 CN 104408759 A (43)申请公布日 2015.03.11 CN 104408759 A 1/1 页 2 1. 一种用于数字微镜显示的矢量图形栅格化方法, 具体的数据处理流程如下 : (1) 矢量图形数据首先在 CPU 程序上做预处理, 包括将未闭合多边形做闭合处理, 和将 所有多边形的边拷贝到一个数组内 ; (2) 将步骤 (1) 中的数组拷贝到 GPU 内存上, 运行 GPU 填充程序, 完成后再将结果拷贝 到 CPU 内存上 ; (3) 将所得的点阵图数据通过有线或无线传
4、输方式, 发送到 FPGA 芯片, 并由 FPGA 芯片 做进一步的处理 (如数据倾斜) , 来控制 DMD 镜片的翻转 ; 其特征在于, 在步骤 (2) 中, 在对矢量图形栅格化的过程中, 使用通用并行计算技术, 具 体的计算步骤如下 : 对矢量图形点的坐标单位缩放处理, 并根据不同 LDI 机型网格精度的差异和实际的网 格精度动态的调整矢量点坐标单位 ; 对矢量图形边的栅格化处理 : 提取矢量图形每个边栅格化处理后的像素坐标, 并将这 些像素点填充, 并收集除上顶点以外的所有点像素坐标 ; 对步骤 2) 所得像素点的重排序和配对填充。 2. 根据权利要求 1 所述的一种用于数字微镜显示的矢
5、量图形栅格化方法, 其特征在 于, 在步骤 (2) 中, 在对矢量进行栅格化处理之前, 对整张 GDSII 格式的矢量图按指定的横 竖间距切割, 再对切割后的每张小图做栅格化处理。 3. 根据权利要求 2 所述的一种用于数字微镜显示的矢量图形栅格化方法, 其特征在 于, 对整张 GDSII 格式的矢量图按指定的横竖间距切割的大小对应所用并行计算的硬件的 存储空间大小。 4. 根据权利要求 1 所述的一种用于数字微镜显示的矢量图形栅格化方法, 其特征在 于, 在步骤 (3) 中, 将所得的点阵图数据通过有线或无线的数据传输方式, 发送到 FPGA 芯 片, 并由 FPGA 芯片做进一步的处理,
6、来控制 DMD 镜片的翻转。 5. 根据权利要求 3 所述的一种用于数字微镜显示的矢量图形栅格化方法, 其特征在 于, 所述的数据传输方式使用 usb 或者 GigE 技术。 权 利 要 求 书 CN 104408759 A 2 1/3 页 3 一种用于数字微镜显示的矢量图形栅格化方法 技术领域 0001 本发明涉及一种用于数字微镜显示的矢量图形栅格化方法, 属于直写式光刻机数 字图像处理技术及 GPU 并行开发技术领域。 背景技术 0002 光刻技术是用于在基底表面上印刷具有特征的构图。 这样的基底可包括用于制造 半导体器件、 多种集成电路、 平面显示器 (例如液晶显示器) 、 电路板、 生
7、物芯片、 微机械电子 芯片、 光电子线路芯片等的芯片。 0003 DMD(Digital Micro mirror Device, 数字微镜元件) : 由美国德州仪器公司 (TI) 开发, 系一种极小的反射镜, 这些微镜皆悬浮着并可向两侧倾斜 10-12左右, 从而可构成 启通和断开两种工作状态。 为了获得不同的亮度, 微镜启通和断开的速率还可以改变, 工作 时得用成千上万个微镜器件, 并由DLP板进行控制。 基于GPU的通用计算 (General Purpose GPU, GPGPU) , 一直是高性能计算的重要方向。 其核心思想是在显卡芯片上, 增加用于计算的 晶体管数量, 降低用于寄存器
8、的晶体管数量, 使得同样工艺、 同样体积的芯片中, GPU 的计 算能力较 CPU 提高上百倍。 0004 通常用于生产制造的电路图文件存储的是矢量点图形, 要将其转化成图形发生器 可使用的点阵图形数据, 需要经过复杂的图形处理运算。通常实现的方法有两种 :(1) 将 矢量图形直接做栅格化填充处理 (2) 将矢量图形先分解为三角形, 再进行栅格化填充处理。 其中方法 (1) 由于比较耗时, 目前只适用于在编辑料号文件时进行, 将栅格化处理得到的 bitmap图保存起来, 在每次曝光之前读取保存的数据, 这样做不会影响到产能。 局限性在于 不能在曝光生产前临时对图形做任何更改。方法 (2) 将图
9、形分解后简化了图形填充过程, 但仍需要多步处理, 较繁琐。且为保证效率, 多边形分解得到的三角形非 Delaunay 三角形, 在对三角形做栅格化处理时可能会因计算误差, 导致图形变形。 发明内容 0005 针对上述现有技术存在的问题, 本发明提供一种用于数字微镜显示的矢量图形栅 格化方法, 将矢量图形栅格化过程加速, 从而实现实时栅格化处理, 在保证产能的同时允许 对矢量图数据做临时改变。 0006 为了实现上述目的, 本发明提供一种用于数字微镜显示的矢量图形栅格化方法, 具体的数据处理流程如下 : (1) 矢量数据首先由 CPU 程序做预处理, 包括将未闭合多边形做闭合处理, 和将所有多
10、边形的边拷贝到一个数组内 ; (2) 将步骤 (1) 中的数组拷贝到 GPU 内存上, 运行 GPU 填充程序, 完成后再将结果拷贝 到CPU内存上 ; 其中, 在对矢量图形栅格化的过程中, 使用GPU通用并行计算技术, 具体的计 算步骤如下 : 1) 对矢量图形点的坐标单位缩放处理, 并根据不同 LDI 机型网格精度的差异和实际的 说 明 书 CN 104408759 A 3 2/3 页 4 网格精度动态的调整矢量点坐标单位 ; 2) 对矢量图形边的栅格化处理 : 提取矢量图形每个边栅格化处理后的像素坐标, 并将 这些像素点填充, 并收集除上顶点以外的所有点像素坐标 ; 3) 对步骤 2)
11、所得像素点的重排序和配对填充 ; (3) 将所得的点阵图数据通过有线通信方式, 发送到 FPGA 芯片, 并由 FPGA 芯片做进一 步的处理 (如数据倾斜) , 来控制 DMD 镜片的翻转 ; 进一步, 在步骤 (2) 中, 在对矢量进行栅格化处理之前, 对整张 GDSII 格式的矢量图按 指定的横竖间距切割, 再对切割后的每张小图做栅格化处理。 0007 进一步, 对整张 GDSII 格式的矢量图按指定的横竖间距切割的大小对应所用并行 计算的硬件的存储空间大小。 0008 进一步, 在步骤 (3) 中, 将所得的点阵图数据通过有线或无线数据传输方式, 发送 到 FPGA 芯片, 并由 FP
12、GA 芯片做进一步的处理 (数据倾斜等) , 来控制 DMD 镜片的翻转。 0009 进一步, 数据传输方式使用 usb 或者 GigE 技术。 0010 对比现有技术, 本发明在对矢量图形栅格化的过程中, 使用 GPU 通用并行计算技 术, 在将像素点的重排序和配对填充时, 通过改变数据的排布, 将数据处理最大程度的并行 化 ; 同时, 通过优化传统的扫描线填充算法, 将线栅格化计算过程与按行填充过程分解为两 个步骤, 并通过 GPU 内多维线程和动态划分线程资源的功能, 将数据读写和计算完全并行 化, 解决了原有CPU扫描线填充算法效率低, 无法满足曝光前on-the-fly数据处理的要求
13、, 并在保证产能的同时允许对矢量图数据做临时改变, 具有广泛的实用价值和市场情景, 有 利于提高整体行业的效率。 附图说明 0011 图 1 为本发明中直写光刻机的数据处理系统流程示意图 ; 图 2 是一个矢量图形的示意图 ; 图 3 是 GPU 核函数对矢量图形所有 edge 进行多线程栅格化填充的过程示意图 ; 图 4 是同一函数提取离散像素点坐标过程的示意图 ; 图 5 是按行并行填充过程的示意图 ; 图 6 是最终填充结果示意图。 具体实施方式 0012 下面结合附图对本发明做进一步说明。 0013 如图 1 所示,(1) 矢量数据首先由 CPU 程序做预处理, 包括将未闭合多边形做闭
14、合 处理, 和将所有多边形的边拷贝到一个数组内 ; (2) 将步骤 (1) 中的数组拷贝到 GPU 内存上, 运行 GPU 填充程序, 完成后再将结果拷贝 到 CPU 内存上 ; 其中, 在对矢量图形栅格化的过程中, 使用 GPU 通用并行计算技术, 结合图 2 所示, 具体的计算步骤如下 : 1) 对矢量图形点的坐标单位缩放处理, 并根据不同 LDI 机型网格精度的差异和实际的 网格精度动态的调整矢量点坐标单位 ; 2) 对矢量图形边的栅格化处理 : 提取矢量图形每个边栅格化处理后的像素坐标, 并将 说 明 书 CN 104408759 A 4 3/3 页 5 这些像素点填充, 并收集除上顶
15、点以外的所有点像素坐标 ; 3) 对步骤 2) 所得像素点的重排序和配对填充 ; (3) 将所得的点阵图数据通过有线或无线传输方式, 发送到 FPGA 芯片, 并由 FPGA 芯片 做进一步的处理 (如数据倾斜) , 来控制 DMD 镜片的翻转 ; 进一步, 在步骤 (2) 中, 在对矢量进行栅格化处理之前, 对整张 GDSII 格式的矢量图按 指定的横竖间距切割, 再对切割后的每张小图做栅格化处理, 确保精度。 0014 进一步, 对整张 GDSII 格式的矢量图按指定的横竖间距切割的大小对应所用并行 计算的硬件的存储空间大小, 确保运算的准确性。 0015 进一步, 在步骤 (3) 中,
16、将所得的点阵图数据通过有线或无线传输方式, 发送到 FPGA芯片, 并由FPGA芯片做进一步的处理 (数据倾斜等) , 来控制DMD镜片的翻转, 提高网格 精度。 0016 如图 2 所示, 为一个未填充的四边形, 四个顶点的坐标分别为 p1(1,3),p2(4,5),p 3(6,4),p4(3,1)。 0017 如图 3 所示为 GPU 填充程序的第一步运算, 用 GPU 核函数将所有边做栅格化处理。 图中的 4 个 GPU 线程分别负责处理四条边, 即线程 1 : p1p2, 线程 2 : p2p3, 线程 3:p3p4, 线 程 4:p4p1。每个线程的栅格化处理过程由 Bresenha
17、m 算法实现, 栅格化计算确定的离散像 素点会被填充, 即被赋值 255(8 位 bitmap) , 每条边的首尾两个顶点会固定被填充。 0018 如图 4 所示, 在做边栅格化处理过程中, 需要将一些满足特定条件的像素 坐标点保存到一个顶点数组中。具体为, 在每次循环计算得到的像素点, 如满足 和便将其保存到顶点坐标数 组中。图中被圈出的点满足筛选条件, 即 P1P2: p1,p1a P2P3:p3 P3P4:p4,p3b,p3a P4P1:p4,p4a 下一步的操作为将这些顶点按顺序排列, 结果为 p4,p4,p4a,p3b,p1,p3a,p1a,p3 并做两两配对如下 , 如图 5 所示
18、为图形填充过程, 每一连续像素行对应一个填充线程, 具体为 线程 0 : p4-p4 线程 1 : p4a-p3b 线程 2 : p1-p3a 线程 3 : p1a-p3 如图 6 所示, 最终填充的图像为图 3 和图 5 的图像叠加的结果。填充计算完成后, 将得 到的点阵图数据拷贝到 cpu 内存, 便完成了整个从矢量图形到点阵图形的栅格化过程。 说 明 书 CN 104408759 A 5 1/4 页 6 图 1 图 2 说 明 书 附 图 CN 104408759 A 6 2/4 页 7 图 3 图 4 说 明 书 附 图 CN 104408759 A 7 3/4 页 8 图 5 说 明 书 附 图 CN 104408759 A 8 4/4 页 9 图 6 说 明 书 附 图 CN 104408759 A 9
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1