raster web page

Comparing Large Bitmaps

Designers and Engineers working in mask or direct-write lithography often need to compare two large bitmaps to determine if changes to the software or flow have produced small but critical differences. For smaller bitmaps this is straightforward to do using tools such as Adobe Photoshop or various open source programs.

However once the size of our bitmaps increases (for example a bitmap of 100,000 by 100,000 pixels) these tools either take too long or are completely unable to process the data.

Artwork created this comparison software for our own use during development of high resolution rasterizers for lithography applications. Our customers have indicated that they also would like such a tool, so we have released it as a commercially available package.

 

rstrcmp does a bit by bit XOR on each pixel

rstrcmp does a bit by bit XOR to produce a 3rd image.



Inputs

The inputs to rstrcmp are two bitmaps. The program supports:

Outputs

A number of different outputs are available. These include bitmaps, vector data and a list of difference coordinates.

Unionizing Bitmaps

For use cases where one wants a vector output such as GDSII or Gerber, rstrcmp can unionize adjacent pixels into polygons. This results in a much smaller vector file than if each pixel were converted by itself into a tiny square.



Command Line Syntax

rstrcmp is controlled via the command line. The syntax is shown below:

rstrcmp.exe   input_1   input_2   output   [options]

where

rstrcmp
full path and name of the executable
input_1
name/path of the first bitmap file
input_2
the name/path of the second bitmap file
[options]
Control and Configuration options
 
Logical Operations
 
-and
 
-or
 
-diff
 
-xor
 
 
Output Format
 
 
-tiff
output compressed (packbits)tiff
-bmp
output -bmp (uncompressed)
-lgraw
output lgraw format
-raw
output raw bitmap format
-gds["units[,grid]]
output GDSII stream; user may specify units and grid. If not specified units defaults to UM and grid to 0.001. (programmer please provide an example)
-gbr[:units]
output RS274X Gerber; user may specify units of inch or mm.
-list
 
 
Other Program Controls
 
 
-nopost
suppresses union operation; use this option when output is bitmap only.
-inverse
after computing the bitmap output, reverse the pixels from 0->1 and 1-->0 (programmer - does this work with vector output?)
-edge:
SET/CLR,
left_margin
[,bot_margin,
right_margin,
top_margin]
sets pixels within the marging area to either 1 or 0. (programmer - need an example of this)
-smartalign
["size
[,cnt
[,depth]]]
auto-find the best alignment value;(programmer this needs further explanation of what the parameters mean and do)
-maxdiff:percent_val
specify maximum difference allowed (% value); (programmer - please explain, I have no idea what this does)
-dpix_dip[,y_dpi]
specify output dpi
-width:w_val
specify output width in pixels
-offset1:off_x[,off_y]
specify a offset for input_1
-offset2:off_x[,off_y]
specify a offset for input_2
-sliver:val
specify sliver value for filtering out small differences.
-thrnum:val
specify number of threads to use for the comparison
-log:[filename]
enable logging and send results to the specified file name
-silent
run in silent mode