**5. Conclusion**

14 Lithography / Book 2

layout image, but *Block C4* [Liu et al. (2007)] has a memory shortage/failure. We therefore

Our code for *CornerGray* and *Block C4* is in C/C++ for the former and in C# for the latter. The experiments were conducted on a laptop computer having a 2GHz Intel Core i7 CPU and 4GB RAM. The decoder memory requirement of *CornerGray* (with parameters *M* = *N* = 64) was *width* × (2 + bits per pixel)/8 + 4(*M* + *N* + 1) + 2, 048 = 8, 514 bytes while that of *Block C4* was *width* × bits per pixel × 0.25 + 427 = 8, 927. We require 5% less decoder memory than *Block C4*. Tables 1 and 2 indicate that the compression performance of *CornerGray* is 6% better than *Block C4* and is 189 times faster in encoding and 24 times faster in decoding.

*CornerGray* Result Layer # File Size (bytes) Compression Ratio (x) Encoding Time (s) Decoding Time (s) Layer1 2,826 10,720 1.27 0.28 Layer2 570,855 53 1.47 0.48 Layer3 2,826 10,720 1.28 0.28 Layer4 805,477 38 1.49 0.54 Layer5 116,516 260 1.29 0.33 Layer6 116,516 260 1.29 0.33 Layer7 531,770 57 1.44 0.44 Layer8 1,730,054 18 1.84 0.80 Layer9 255,919 118 1.29 0.37 Layer10 1,233,137 25 1.68 0.66 Layer11 107,631 281 1.21 0.31 Layer12 22,092 1,371 1.22 0.29 Layer13 116,516 260 1.27 0.33 Total 5,612,135 70 18.04 5.45

*Block C4* Result Layer # File Size (bytes) Compression Ratio (x) Encoding Time (s) Decoding Time (s) Layer1 44,436 682 153.89 6.47 Layer2 356,424 85 170.48 7.14 Layer3 44,436 682 182.02 8.11 Layer4 595,116 51 181.68 7.32 Layer5 164,728 184 201.80 7.75 Layer6 164,728 184 300.37 11.21 Layer7 894,308 34 355.59 13.95 Layer8 1,426,824 21 356.40 11.47 Layer9 643,220 47 328.52 12.42 Layer10 1,021,240 30 302.27 9.70 Layer11 346,480 87 332.92 12.50 Layer12 115,040 263 311.24 10.70 Layer13 166,744 182 238.10 9.89 Total 5,983,724 66 3,415.28 128.63

divided the image in a way to enable the successful application of *Block C4*.

Table 1. Compression Result - *CornerGray*

Table 2. Compression Result - *Block C4*

In the previous section we saw that the algorithm *CornerGray* outperforms *Block C4* and is considerably faster. The improvement in *CornerGray* over *Block C4* is a result of different techniques. Our corner location approach is simpler than the context prediction used by *Block C4* to handle the irregular parts of layer images. However, *CornerGray* needs a better pattern handling scheme for circuits which contain massively repeated patterns. We are currently trying to generalize the frequent pattern replacement component of *Corner2* [Yang & Savari (2011)] in order to handle frequent patterns within binary layout images and expect similar compression improvements for gray level images. The decoding operations for *CornerGray* include common decompression schemes which are widely implemented in hardware as well as simple branches, compares, and memory copies for the corner transformation part. Therefore our decoder can be deployed using hardware and is an approach to the data delivery problem of maskless lithography systems.
