CN115297220B - Image data compression protocol, method and storage medium in direct writing lithography system - Google Patents

Image data compression protocol, method and storage medium in direct writing lithography system Download PDF

Info

Publication number
CN115297220B
CN115297220B CN202210896862.1A CN202210896862A CN115297220B CN 115297220 B CN115297220 B CN 115297220B CN 202210896862 A CN202210896862 A CN 202210896862A CN 115297220 B CN115297220 B CN 115297220B
Authority
CN
China
Prior art keywords
byte
bit
length
string
current
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.)
Active
Application number
CN202210896862.1A
Other languages
Chinese (zh)
Other versions
CN115297220A (en
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.)
Anhui Disking Opto Electrics Technology Co ltd
Original Assignee
Anhui Disking Opto Electrics Technology Co 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 Anhui Disking Opto Electrics Technology Co ltd filed Critical Anhui Disking Opto Electrics Technology Co ltd
Priority to CN202210896862.1A priority Critical patent/CN115297220B/en
Publication of CN115297220A publication Critical patent/CN115297220A/en
Application granted granted Critical
Publication of CN115297220B publication Critical patent/CN115297220B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention relates to an image data compression protocol, a method and a storage medium in a direct-writing photoetching system, in particular to a data compression method used in the image data transmission process in the direct-writing photoetching system. The invention can use single byte or double byte to represent longer image data with or without image, and uses less memory space, which is very beneficial to the data transmission of direct writing lithography system. Has very important significance for reducing cost and enhancing efficiency of a direct-writing lithography system.

Description

Image data compression protocol, method and storage medium in direct writing lithography system
Technical Field
The invention relates to the technical field of direct-write lithography, in particular to an image data compression protocol and an image data compression method in a direct-write lithography system.
Background
The method commonly used in the direct-writing exposure system is an inclined scanning method, and the direct-writing lithography system scanned according to the method requires a host computer (PC) to grid a graph into a plurality of single-color images (MBMP) of strips according to the subdivision precision requirement and the width of the DMD, and then the host computer (PC) transmits the single-color image (MBMP) data to an FPGA responsible for specifically putting frame images (FBMP) into the DMD for processing through a data transmission interface. The data transmission interface used in the present invention is a gigabit or tera network interface.
For simplicity of description, it is assumed that in a single-ray machine system, a 1000mmX1000mm image MBMP is required to meet 12700DPI (DPI, pixels per inch) with a subdivision accuracy (PW) of pw=2um, that is, the subdivision accuracy (PW) may meet a machining accuracy of cd=50 micrometers (CD, minimum line width), with a stripe image width of between about 16000 and 30000 pixels (the specific number depends on the technical implementation), and the total data size of the sum of all stripe images MBMP is about 29GB. If full load transmission is performed for about 238 seconds through a general gigabit network, 23.8 seconds are also required for using a tera-mega network. In the actual exposure process, the direct exposure time of such a pattern is not more than 30 seconds, and obviously, the original image is not enough to be transmitted whether the giga-net or the tera-net is adopted.
When the graphics data is converted into an image, the minimum number of pixels with or without (1) or (0) in each line of data is=cd/PW, in the example, cd=50 micrometers, pw=2 um, so that the calculation result is that the continuous strings with or without the graphics are 25 pixels at least. In fact, the continuity characteristic of an image is a fundamental characteristic of direct-write lithography, with a large number (several times the supercod) of areas of continuity, so that the rasterized image presents a succession of 1 (with a diagram) or 0 (without a diagram). It is very common that tens of thousands of pixels in succession are either pictured or non-pictured.
Based on the above features, in order to transmit an original image faster and restore data by an FPGA at a high speed, a compression protocol of image data and a compression method of compressing image data using the same are specifically proposed.
Disclosure of Invention
The compression protocol and the compression method for the image data in the direct-writing lithography system can solve the technical problems.
In order to achieve the above purpose, the present invention adopts the following technical scheme:
a compression protocol for image data in a direct write lithography system, comprising:
the image data refers to a compressed monochromatic bitmap, and the data stream is stored according to rows;
Each line of data is represented by a plurality of compression groups, 0x00 represents a line ending symbol, each compression group consists of one byte or two bytes, byte streams of all compression groups in a line are continuous, and the byte streams are sequentially stored from low level to high level to represent line images which are arranged from left to right;
each compression group is composed of an expansion bit, an image bit and a length bit, wherein the expansion bit and the image bit only occupy one bit, the length bit occupies 6 bits in a single byte compression group, 14 bits in a double byte compression group, a unique byte in the single byte compression group is called a definition byte, a low byte in the double byte compression group is called a definition byte, a high byte is called an extension byte, and the extension byte is a supplement of the definition byte and can not be used as the definition byte any more;
the extension bit is used for indicating whether the current byte needs to use extension bytes, 1b indicates that extension bytes are used, and 0b indicates that extension bytes are not used; when the high-order expansion bit of the low-order byte is 0b, the compressed data is single byte, when the low-order expansion bit is 1b, the compressed data is double byte, and the adjacent high-order byte is the expansion byte of the byte, and forms an integer of 14 bits together with the low 6 bits of the low-order byte for expressing the length;
The image bit is used for indicating that the compressed data group represents a 0b string or a continuous no-image or a 1b string or a continuous image;
the length bit is used for indicating the length of a 0b string or a 1b string represented by the compressed data set, 6 bits are used in the single byte compressed set, the representation range is 0-63, 63 is 26-1, and the representation range is 0-16383 and 16383 is 214-1 in the double byte compressed set;
a single byte compression set, having only low order bytes a, without extended bytes, the low order bytes a being defined as follows:
the highest bit of the low byte, namely the 7 th bit is an expansion bit, and in a single byte compression group, the expansion bit is 0b;
the lower byte is next higher, i.e. the 6 th bit is the image bit, 0b represents no picture, 1b represents a picture;
the total of 6 bits from the 5 th bit to the 0 th bit is the length bit of the image, and the range is 0 to 63, wherein 63=26-1;
in a single byte compression set, the extension bit must be 0b;
the compression group of double bytes consists of a low-order definition byte and a high-order extension byte, and the bit definition of the definition byte is the same as that of a single byte;
the highest bit of the low byte, namely the 7 th bit is an expansion bit, and in a single byte compression group, the expansion bit is 1b;
the lower byte is next higher, i.e. 6 bits are image bits, 0b represents no map, 1b represents a map;
From bit 5 to bit 0, 6 bits and 8 bits of extension bytes, 14 bits are the length bits of the image, the representation range is 0-16383, wherein 16383 is 214-1; in a compression group of double bytes, there are two methods for length bits to represent length:
length bit rule a: extending bytes to store high order bits of the integer segment, defining low order bits of the integer segment to store low order bits of the integer segment, and the total length of unsigned integers is 14 bits;
length bit rule B: the extended byte stores the lower bits of the integer segment, the lower 6 bits of the defined byte stores the upper bits of the integer segment, and the total length of the unsigned integer is 14 bits.
Further, if the extension bit of the definition byte is 0b, which indicates that the compression group is single byte, such an indication method that the length bit is 6 bits, the length bit indicates a length ranging from 1 to 63, wherein 63 is 2, except 0x00 is used to indicate the end mark of the data line in the compression result 6 -1;
Further, if the definition byte extension bit is 1b, which indicates that the compression group is double byte, then the adjacent one of the upper bytes is an extension byte of the length bit of the definition byte, and the length bit is 14 bits, and the length bit indicates a length ranging from 1 to 16383 except 0x00 is used for indicating the end mark of the data line in the compression result, wherein 16383 is 2 14 -1。
On the other hand, the invention discloses a method for compressing image data in a direct-write lithography system, which adopts the image data compression protocol in the direct-write lithography system and comprises the following steps,
STEP00: pre-compression conventions
Contract 1: the tail 0b number lookup table is a lookup table with a byte value as a key (index), and the tail 0b length of the byte is a value, and the value of the tail 0b length of the byte can be directly obtained by using the byte value as the index. Since the byte has a range of [0,255], the tail 0b number lookup table has 256 elements in total. The tail 0b length of a byte refers to the number of 0b continuous low bits counted from the low bits of binary numbers of a certain byte, and is also simply referred to as 0b tail length. The tail 0b count lookup table is shown in the following table:
single byte hexadecimal system Binary system Tail string length: low-order continuous 0b number
0xFF 1111 1111 0
0xFE 1111 1110 1
0xFD 1111 1101 0
0xFC 1111 1100 2
0xFB 1111 1001 0
0xFA 1111 1000 3
…… …… ……
0x04 0000 0100 2
0x03 0000 0011 0
0x02 0000 0010 1
0x01 0000 0001 0
0x00 0000 0000 8
Contract 2: the number of the tail 1b lookup table is a lookup table taking a byte value as a key (index), the tail 1b length of the byte as a value, and the byte value as the index can be directly used for obtaining the value of the tail 1b length of the byte. Since the byte has a value range of 0,255, the tail 1b number lookup table has 256 elements in total. The tail 1b length of a byte refers to the number of consecutive low-order 1b of binary digits of a certain byte counted from the low order, and is also simply referred to as 1b tail length. The tail 1b count lookup table is shown in the following table:
Hexadecimal system Binary system Tail length: number of low-order continuous 1b
0xFF 1111 1111 8
0xFE 1111 1110 0
0xFD 1111 1101 1
0xFC 1111 1100 0
0xFB 1111 1001 1
0xFA 1111 1000 0
…… …… ……
0x04 0000 0100 0
0x03 0000 0011 2
0x02 0000 0010 0
0x01 0000 0001 1
0x00 0000 0000 0
Contract 3: the monochrome bitmap data of the complete line before compression, referred to as line data, is specifically agreed as follows:
sub-contract 31: the line width of the data line is LineWidth, the span is lineside, the byte arrangement sequence of the data line is from low order to high order to represent the left-to-right arrangement of the image, and each byte in the data line is from low order to high order to represent the left-to-right arrangement of the partial image;
sub-contract 32: lineWidth is how many bits of valid images are in the memory line, lineside is the number of bytes in the data line, and when the number of up-line widths is smaller than 8 times of the span, i.e. LineWidth < lineside x 8;
sub-contract 33: when the line width and the span of the data line do not meet the 8-time relation, redundant data bits exist, the redundant data bits do not represent images, and 0b or 1b can be stored. Preferably, all are stored as 0b;
STEP10: defining mantissa look-up tables
Two mantissa lookup TABLEs TABLE0 and TABLE1 are defined, where TABLE0 is a tail 0b number lookup TABLE and TABLE1 is a tail 1b number lookup TABLE.
STEP20: loading data lines
Loading single-color bitmap data of complete LINEs, namely a data LINE LINE, counting the read byte number RBC=0, and counting the length of a bit string to be compressed to obtain a value BCC=0, wherein a current string mark MFLAG= -1, -1 represents that the processing mark is not started;
STEP30: reading bytes to be pressed
If the read byte count RBC > =lineside, indicating that the compression processing of the data line has ended, the STEP70 is shifted;
obtaining bytes at the RBC position of a data LINE LINE, storing the bytes into a CURRENT to-be-pressed byte, and counting the read byte number RBC=RBC+1;
STEP35: processing special bytes 0x00 or 0xFF
STEP351: if the CURRENT of the byte to be compressed is 0x00, indicating that there are 8 consecutive 0b,
s3511: if the current string flag MFLAG is-1, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and executing STEP 30;
s3512: if the current string flag MFLAG is 1, indicating that a jump from 1b string to 0b string occurs, after STEP50 is executed, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution;
s3513: if the current string flag MFLAG is 0, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP352: if the CURRENT of the byte to be compressed is 0xFF, indicating that there are 8 consecutive 1b of data,
s3521: if the current string flag MFLAG is-1, setting the current string flag mflag=1, and performing STEP 30;
s3522: if the current string flag MFLAG is 0, indicating that a jump from 0b string to 1b string occurs, if BCC is not equal to 0, after STEP50 is executed, setting the current string flag MFLAG to 1, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution; if the current string flag MFLAG is 1, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP353: if the CURRENT to be compressed is a normal byte, i.e. not 0x00 and not 0xFF, setting a CURRENT string flag mflag=current% 2, wherein the% represents a remainder, and the CURRENT byte to be processed bit length tpbc=8, and turning to STEP40 for execution;
STEP40: processing normal bytes non-0 x00 and 0xFF
If the number of bits to be processed TPBC is equal to 0, turning to STEP30 for processing;
judging that the value of the current string flag MFLAG is not 0, namely 1:
s400: if the current string flag MFLAG is 0;
s4001: searching for the tail 0b length LC of the CURRENT using TABLE 0;
s4002: taking LC=MIN (LC, TPBC), namely taking the minimum value between the LC and the TPBC as LC reassignment;
s4003: set string length count bcc=lc+bcc;
s4004: setting the bit number to be processed tpbc=tpbc-LC;
s4005: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4006: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that 1b bit exists in the CURRENT of the byte to be compressed, turning to STEP50 to compress the detected 0b bit string, then setting the CURRENT map flag mflag=1, turning to STEP40 to execute;
s401: if the current string flag MFLAG is 1,
S4011: searching the tail 1b length LC of the CURRENT by using TABLE 1;
s4012: set string length count bcc=lc+bcc;
s4013: setting the bit number to be processed tpbc=tpbc-LC;
s4014: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4015: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that the bit data in the CURRENT of the byte to be compressed is not processed, turning to STEP50 to compress the detected 1b bit string, then setting the CURRENT icon mflag=0, turning to STEP40 to execute;
STEP50: compressing the detected bit string
STEP50 is entered to indicate that there is an MFLAG bit string with a length of BCC to be compressed; the method specifically comprises the following steps:
STEP501: if the bit string length count BCC > = 16383, BCC = BCC-16383, two-byte compression is used;
s5011: if MFLAG is 0, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B are both 0XBFFF, and the binary representation is: 1011111111111111b. If MLAG is 1, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B is 0XBF FF, and the binary representation is: 1111111111111111b;
S5012: if bit string length count BCC > =16383, go to STEP501 to start processing; if the bit string length count BCC <16383, performing a subsequent STEP502 or STEP503 procedure according to the condition;
STEP502: if the bit string length count BCC > = 64 and BCC <16383, two bytes of compressed data are used;
s5021: the most significant bit of the low byte, namely 7 th position 1, stores the value of the bit string length count BCC in the high byte and the low 6 bits of the low byte according to the length bit rule a or the length bit rule B;
s5022: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5023: storing the obtained two bytes in the compressed stream, and returning to the original request step for execution;
STEP503: if the bit string length counts BCC <64 and BCC >0, the data is compressed using one byte;
s5031: the most significant bit of the byte, position 7, 0, stores the value of CC in the lower 6 bits;
s5032: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5033: storing the obtained one byte into a compressed stream, and returning to the original request step for execution;
STEP70: data line end-of-line compression
STEP50 is executed to compress the detected bit string;
storing end-of-line symbols 0x00 into the compressed stream to complete the data line compression process;
judging whether a new data line still exists, if so, turning to STEP20 for execution; otherwise, the data compression task is completed.
The invention also discloses a computer readable storage medium storing a computer program which, when executed by a processor, causes the processor to perform the steps of the method as described above.
According to the technical scheme, the image data compression protocol and the compression method in the direct-writing photoetching system relate to a data compression method used in the image data transmission process in the direct-writing photoetching system, in particular to a compression method used in the data transmission of the direct-writing photoetching system based on a Digital Micromirror (DMD).
The invention can use single byte or double byte to represent longer image data with or without image, and uses less memory space, which is very beneficial to the data transmission of direct writing lithography system. Has very important significance for reducing cost and enhancing efficiency of a direct-writing lithography system.
Drawings
Fig. 1 is a schematic diagram of the method of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention.
The embodiment discloses an image data compression protocol in a direct-writing photoetching system, which comprises the steps that an image is a compressed monochromatic bitmap, and a data stream is stored according to rows;
each line of data is represented by a plurality of compression groups, 0x00 represents a line ending symbol, each compression group consists of one byte or two bytes, byte streams of all compression groups in a line are continuous, and the byte streams are sequentially stored from low level to high level to represent line images which are arranged from left to right;
each compression group is composed of an expansion bit, an image bit and a length bit, wherein the expansion bit and the image bit only occupy one bit, the length bit occupies 6 bits in a single byte compression group, 14 bits in a double byte compression group, a unique byte in the single byte compression group is called a definition byte, a low byte in the double byte compression group is called a definition byte, a high byte is called an extension byte, and the extension byte is a supplement of the definition byte and can not be used as the definition byte any more;
The extension bit is used for indicating whether the current byte needs to use extension bytes, 1b indicates that extension bytes are used, and 0b indicates that extension bytes are not used; when the high-order expansion bit of the low-order byte is 0b, the compressed data is single byte, when the low-order expansion bit is 1b, the compressed data is double byte, and the adjacent high-order byte is the expansion byte of the byte, and forms an integer of 14 bits together with the low 6 bits of the low-order byte for expressing the length;
the image bit is used for indicating that the compressed data group represents a 0b string or a continuous no-image or a 1b string or a continuous image;
the length bit is used for indicating the length of the 0b string or the 1b string represented by the compressed data group, and in the single byte compressed group, 6 bits are used, the representation range is 0-63, and 63 is 2 6 -1, in the double byte compression group, the representation range is 0-16383, 16383 is 2 14 -1;
A single byte compression set, having only low order bytes a, without extended bytes, the low order bytes a being defined as follows:
the highest bit of the low byte, namely the 7 th bit is an expansion bit, and in a single byte compression group, the expansion bit is 0b;
the lower byte is next higher, i.e. the 6 th bit is the image bit, 0b represents no picture, 1b represents a picture;
the total of 6 bits from the 5 th bit to the 0 th bit is the length bit of the image, and the range is 0 to 63, wherein 63=2 6 -1;
In a single byte compression set, the extension bit must be 0b;
the compression group of double bytes consists of a low-order definition byte and a high-order extension byte, and the bit definition of the definition byte is the same as that of a single byte;
the highest bit of the low byte, namely the 7 th bit is an expansion bit, and in a single byte compression group, the expansion bit is 1b;
the lower byte is next higher, i.e. 6 bits are image bits, 0b represents no map, 1b represents a map;
the total of 6 bits from the 5 th bit to the 0 th bit and 8 bits of the extension byte, the total of 14 bits is the length bit of the image, the representation range is 0-16383, wherein 16383 is 2 14 -1; in a compression group of double bytes, there are two rules for length bits to represent length:
length bit rule a: namely, extending bytes to store the high order bits of the integer section, defining the low order bits of the integer section to store the low order bits of the integer section, and the total length of unsigned integers is 14 bits;
length bit rule B: the extended byte stores the lower bits of the integer segment, the lower 6 bits of the defined byte stores the upper bits of the integer segment, and the total length of the unsigned integer is 14 bits.
Specifically, if the extension bit defining the byte is 0b, which indicates that the compression group is single byte, such an indication method is that the length bit is 6 bits, and the length represented by the length bit is in the range of 1 to 63 except 0x00 is used to represent the end mark of the data line in the compression result, wherein 63 is 2 6 -1;
Specifically, if the definition byte extension bit is 1b, which indicates that the compression group is double byte, then the adjacent one of the upper bytes is an extension byte of the length bit of the definition byte, and this compression indicating method, the length bit is 14 bits, and the length of the length bit indicates a length range of 1 to 16383, where 16383 is 2, except 0x00 is used to indicate the end mark of the data line in the compression result 14 -1。
As shown in fig. 1, the embodiment of the invention also discloses a method for compressing image data in a direct-write lithography system, which adopts the image data compression protocol in the direct-write lithography system, and comprises the following steps,
STEP00: pre-compression conventions
Contract 1: the tail 0b number lookup table is a lookup table with a byte value as a key (index), and the tail 0b length of the byte is a value, and the value of the tail 0b length of the byte can be directly obtained by using the byte value as the index. Since the byte has a range of [0,255], the tail 0b number lookup table has 256 elements in total. The tail 0b length of a byte refers to the number of 0b continuous low bits counted from the low bits of binary numbers of a certain byte, and is also simply referred to as 0b tail length. The tail 0b count lookup table is shown in the following table:
single byte hexadecimal system Binary system Tail string length: low-order continuous 0b number
0xFF 1111 1111 0
0xFE 1111 1110 1
0xFD 1111 1101 0
0xFC 1111 1100 2
0xFB 1111 1001 0
0xFA 1111 1000 3
…… …… ……
0x04 0000 0100 2
0x03 0000 0011 0
0x02 0000 0010 1
0x01 0000 0001 0
0x00 0000 0000 8
Contract 2: the number of the tail 1b lookup table is a lookup table taking a byte value as a key (index), the tail 1b length of the byte as a value, and the byte value as the index can be directly used for obtaining the value of the tail 1b length of the byte. Since the byte has a value range of 0,255, the tail 1b number lookup table has 256 elements in total. The tail 1b length of a byte refers to the number of consecutive low-order 1b of binary digits of a certain byte counted from the low order, and is also simply referred to as 1b tail length. The tail 1b count lookup table is shown in the following table:
Figure BDA0003769224800000091
Figure BDA0003769224800000101
contract 3: the monochrome bitmap data of the complete line before compression, referred to as line data, is specifically agreed as follows:
sub-contract 31: the line width of the data line is LineWidth, the span is lineside, the byte arrangement sequence of the data line is from low order to high order to represent the left-to-right arrangement of the image, and each byte in the data line is from low order to high order to represent the left-to-right arrangement of the partial image;
sub-contract 32: lineWidth is how many bits of valid images are in the memory line, lineside is the number of bytes in the data line, and when the number of up-line widths is smaller than 8 times of the span, i.e. LineWidth < lineside x 8;
sub-contract 33: when the line width and the span of the data line do not meet the 8-time relation, redundant data bits exist, the redundant data bits do not represent images, and 0b or 1b can be stored. Preferably, all are stored as 0b;
STEP10: defining mantissa look-up tables
Two mantissa lookup TABLEs TABLE0 and TABLE1 are defined, where TABLE0 is a tail 0b number lookup TABLE and TABLE1 is a tail 1b number lookup TABLE.
STEP20: loading data lines
Loading single-color bitmap data of complete LINEs, namely a data LINE LINE, counting the read byte number RBC=0, and counting the length of a bit string to be compressed to obtain a value BCC=0, wherein a current string mark MFLAG= -1, -1 represents that the processing mark is not started;
STEP30: reading bytes to be pressed
If the read byte count RBC > =lineside, indicating that the compression processing of the data line has ended, the STEP70 is shifted;
obtaining bytes at the RBC position of a data LINE LINE, storing the bytes into a CURRENT to-be-pressed byte, and counting the read byte number RBC=RBC+1;
STEP35: processing special bytes 0x00 or 0xFF
STEP351: if the CURRENT of the byte to be compressed is 0x00, indicating that there are 8 consecutive 0b,
s3511: if the current string flag MFLAG is-1, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and executing STEP 30;
s3512: if the current string flag MFLAG is 1, indicating that a jump from 1b string to 0b string occurs, after STEP50 is executed, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution;
S3513: if the current string flag MFLAG is 0, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP352: if the CURRENT of the byte to be compressed is 0xFF, indicating that there are 8 consecutive 1b of data,
s3521: if the current string flag MFLAG is-1, setting the current string flag mflag=1, and performing STEP 30;
s3522: if the current string flag MFLAG is 0, indicating that a jump from 0b string to 1b string occurs, if BCC is not equal to 0, after STEP50 is executed, setting the current string flag MFLAG to 1, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution; if the current string flag MFLAG is 1, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP353: if the CURRENT to be compressed is a normal byte, i.e. not 0x00 and not 0xFF, setting a CURRENT string flag mflag=current% 2, wherein the% represents a remainder, and the CURRENT byte to be processed bit length tpbc=8, and turning to STEP40 for execution;
STEP40: processing normal bytes non-0 x00 and 0xFF
If the number of bits to be processed TPBC is equal to 0, turning to STEP30 for processing;
judging that the value of the current string flag MFLAG is not 0, namely 1:
s400: if the current string flag MFLAG is 0;
S4001: searching for the tail 0b length LC of the CURRENT using TABLE 0;
s4002: taking LC=MIN (LC, TPBC), namely taking the minimum value between the LC and the TPBC as LC reassignment;
s4003: set string length count bcc=lc+bcc;
s4004: setting the bit number to be processed tpbc=tpbc-LC;
s4005: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4006: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that 1b bit exists in the CURRENT of the byte to be compressed, turning to STEP50 to compress the detected 0b bit string, then setting the CURRENT map flag mflag=1, turning to STEP40 to execute;
s401: if the current string flag MFLAG is 1,
s4011: searching the tail 1b length LC of the CURRENT by using TABLE 1;
s4012: set string length count bcc=lc+bcc;
s4013: setting the bit number to be processed tpbc=tpbc-LC;
s4014: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4015: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that the bit data in the CURRENT of the byte to be compressed is not processed, turning to STEP50 to compress the detected 1b bit string, then setting the CURRENT icon mflag=0, turning to STEP40 to execute;
STEP50: compressing the detected bit string
STEP50 is entered to indicate that there is an MFLAG bit string with a length of BCC to be compressed; the method specifically comprises the following steps:
STEP501: if the bit string length count BCC > = 16383, BCC = BCC-16383, two-byte compression is used;
s5011: if MFLAG is 0, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B are both 0XBFFF, and the binary representation is: 1011111111111111b. If MLAG is 1, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B is 0XBF FF, and the binary representation is: 1111111111111111b;
s5012: if bit string length count BCC > =16383, go to STEP501 to start processing; if the bit string length count BCC <16383, performing a subsequent STEP502 or STEP503 procedure according to the condition;
STEP502: if the bit string length count BCC > = 64 and BCC <16383, two bytes of compressed data are used;
s5021: the most significant bit of the low byte, namely 7 th position 1, stores the value of the bit string length count BCC in the high byte and the low 6 bits of the low byte according to the length bit rule a or the length bit rule B;
s5022: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
S5023: storing the obtained two bytes in the compressed stream, and returning to the original request step for execution;
STEP503: if the bit string length counts BCC <64 and BCC >0, the data is compressed using one byte;
s5031: the most significant bit of the byte, position 7, 0, stores the value of CC in the lower 6 bits;
s5032: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5033: storing the obtained one byte into a compressed stream, and returning to the original request step for execution;
STEP70: data line end-of-line compression
STEP50 is executed to compress the detected bit string;
storing end-of-line symbols 0x00 into the compressed stream to complete the data line compression process;
judging whether a new data line still exists, if so, turning to STEP20 for execution; otherwise, the data compression task is completed
The following examples are given:
compression results example a:
one line of compressed data represented by length bit rule a is: 0xc0 FA B0 DA 00.
The definition byte is 0xC0 and the most significant bit (extension bit) is 1b, so 0xFA is the extension byte.
The next highest order (image bit) of the definition byte is 1b, indicating that the compression set is a 1b string.
Endian (byte order) Low order byte High-order byte
Binary system 1100 0000b 1111 1010b
Hexadecimal system 0XC0 0XFA
According to the length bit rule a, the length bit data is: 0011111010000000b, decimal 16000.
The next defined byte is 0xB0, the most significant bit (extension bit) is 1b, so 0xDA is the extension byte.
The next highest order (image bit) of the definition byte is 0b, indicating that the compression set is a 0b string.
Endian (byte order) Low order byte High-order byte
Binary system 10110000 1101 1010
Hexadecimal system 0XB0 0XDA
According to the length bit rule a, the length bit data is: 1101 1010 11 0000b, decimal 14000.
By analysis, the compressed data line is a single color bitmap of 30000 pixels in a row, with the first 16000 pixels being in fig. 1b and the last 14000 images being in fig. 0 b.
Compression results example B:
the line of compressed data represented by length bit rule B is: 0xc0 FA B0 DA 00.
The definition byte is 0xC0 and the most significant bit (extension bit) is 1b, so 0xFA is the extension byte.
The next highest order (image bit) of the definition byte is 1b, indicating that the compression set is a 1b string.
Endian (byte order) Low order byte High-order byte
Binary system 1100 0000b 1111 1010b
Hexadecimal system 0XC0 0XFA
According to the length bit rule a, the length bit data is: 000000 1111, 1010b, decimal 250.
The next defined byte is 0xB0, the most significant bit (extension bit) is 1b, so 0xDA is the extension byte.
The next highest order (image bit) of the definition byte is 0b, indicating that the compression set is a 0b string.
Endian (byte order) Low order byte High-order byte
Binary system 10110000 1101 1010
Hexadecimal system 0XB0 0XDA
According to the length bit rule a, the length bit data is: 11 0000 1101 1010b, decimal 12506.
By way of analysis, the compressed data line described above is a single color bitmap of 12756 pixels in a row, with the first 250 pixels being in fig. 1b and the last 12506 images being in no fig. 0 b.
As shown by the above analysis, since the two data results representing the rule are identical, the decompression results are very different. For ease of discussion, length bit rules require advance commitment in the implementation.
Compression process example a:
taking two lines of image data as an example, each line of image of 30000 pixels, wherein the first 16000 pixels are of the graph (1 b), and the last 14000 images are of the non-graph (0 b), the compressing step is implemented according to the length bit rule A.
The final output result of the compression result is as follows: 0xC0 FA B0 DA 00 C0 FA B0 DA 00.
STEP10: defining mantissa look-up tables
Two mantissa lookup TABLEs TABLE0 and TABLE1 are defined, where TABLE0 is a tail 0b number lookup TABLE and TABLE1 is a tail 1b number lookup TABLE.
STEP20: loading data lines
Loading single-color bitmap data of complete LINEs, namely a data LINE LINE, counting the read byte number RBC=0, and counting the length of a bit string to be compressed to obtain a value BCC=0, wherein a current string mark MFLAG= -1, -1 represents that the processing mark is not started;
STEP30: reading bytes to be pressed
If the read byte count RBC > =lineside, indicating that the compression processing of the data line has ended, the STEP70 is shifted;
obtaining bytes at the RBC position of a data LINE LINE, storing the bytes into a CURRENT to-be-pressed byte, and counting the read byte number RBC=RBC+1;
STEP35: processing special bytes 0x00 or 0xFF
STEP351: if the CURRENT of the byte to be compressed is 0x00, indicating that there are 8 consecutive 0b,
s3511: if the current string flag MFLAG is-1, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and executing STEP 30;
s3512: if the current string flag MFLAG is 1, indicating that a jump from 1b string to 0b string occurs, after STEP50 is executed, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution;
s3513: if the current string flag MFLAG is 0, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP352: if the CURRENT of the byte to be compressed is 0xFF, indicating that there are 8 consecutive 1b of data,
S3521: if the current string flag MFLAG is-1, setting the current string flag mflag=1, and performing STEP 30;
s3522: if the current string flag MFLAG is 0, indicating that a jump from 0b string to 1b string occurs, if BCC is not equal to 0, after STEP50 is executed, setting the current string flag MFLAG to 1, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution; if the current string flag MFLAG is 1, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP353: if the CURRENT to be compressed is a normal byte, i.e. not 0x00 and not 0xFF, setting a CURRENT string flag mflag=current% 2, wherein the% represents a remainder, and the CURRENT byte to be processed bit length tpbc=8, and turning to STEP40 for execution;
STEP40: processing normal bytes non-0 x00 and 0xFF
If the number of bits to be processed TPBC is equal to 0, turning to STEP30 for processing;
judging that the value of the current string flag MFLAG is not 0, namely 1:
s400: if the current string flag MFLAG is 0;
s4001: searching for the tail 0b length LC of the CURRENT using TABLE 0;
s4002: taking LC=MIN (LC, TPBC), namely taking the minimum value between the LC and the TPBC as LC reassignment;
s4003: set string length count bcc=lc+bcc;
S4004: setting the bit number to be processed tpbc=tpbc-LC;
s4005: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4006: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that 1b bit exists in the CURRENT of the byte to be compressed, turning to STEP50 to compress the detected 0b bit string, then setting the CURRENT map flag mflag=1, turning to STEP40 to execute;
s401: if the current string flag MFLAG is 1,
s4011: searching the tail 1b length LC of the CURRENT by using TABLE 1;
s4012: set string length count bcc=lc+bcc;
s4013: setting the bit number to be processed tpbc=tpbc-LC;
s4014: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4015: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that the bit data in the CURRENT of the byte to be compressed is not processed, turning to STEP50 to compress the detected 1b bit string, then setting the CURRENT icon mflag=0, turning to STEP40 to execute;
STEP50: compressing the detected bit string
STEP50 is entered to indicate that there is an MFLAG bit string with a length of BCC to be compressed; the method specifically comprises the following steps:
STEP501: if the bit string length count BCC > = 16383, BCC = BCC-16383, two-byte compression is used;
s5011: if MFLAG is 0, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B are both 0XBFFF, and the binary representation is: 1011111111111111b. If MLAG is 1, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B is 0XBF FF, and the binary representation is: 1111111111111111b;
s5012: if bit string length count BCC > =16383, go to STEP501 to start processing; if the bit string length count BCC <16383, performing a subsequent STEP502 or STEP503 procedure according to the condition;
STEP502: if the bit string length count BCC > = 64 and BCC <16383, two bytes of compressed data are used;
s5021: the most significant bit of the low byte, namely 7 th position 1, stores the value of the bit string length count BCC in the high byte and the low 6 bits of the low byte according to the length bit rule a or the length bit rule B;
s5022: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5023: storing the obtained two bytes in the compressed stream, and returning to the original request step for execution;
STEP503: if the bit string length counts BCC <64 and BCC >0, the data is compressed using one byte;
s5031: the most significant bit of the byte, position 7, 0, stores the value of CC in the lower 6 bits;
s5032: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5033: storing the obtained one byte into a compressed stream, and returning to the original request step for execution;
STEP70: data line end-of-line compression
STEP50 is executed to compress the detected bit string;
storing end-of-line symbols 0x00 into the compressed stream to complete the data line compression process;
judging whether a new data line still exists, if so, turning to STEP20 for execution; otherwise, the data compression task is completed.
Through the above analysis, the compression method can compress 60000 valid data bits into 10 bytes.
In summary, the invention can use single byte or double byte to represent longer image data with or without image, and simultaneously uses less storage space, which is very beneficial to the data transmission of the direct writing lithography system. Has very important significance for reducing cost and enhancing efficiency of terminal clients of the direct-writing lithography system.
In yet another embodiment provided herein, there is also provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the steps of any of the methods of the above embodiments.
It may be understood that the system provided by the embodiment of the present invention corresponds to the method provided by the embodiment of the present invention, and explanation, examples and beneficial effects of the related content may refer to corresponding parts in the above method.
Those skilled in the art will appreciate that all or part of the procedures in the methods of the above embodiments may be implemented by a program of a computer CPU, FPGA, or single-chip microcomputer. The program, when executed, may include the flow of embodiments of the methods described above. The technical features of the above embodiments may be arbitrarily combined, and all possible combinations of the technical features in the above embodiments are not described for brevity of description, however, as long as there is no contradiction between the combinations of the technical features, they should be considered as the scope of the description.
The above embodiments are only for illustrating the technical solution of the present invention, and are not limiting; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims (4)

1. A compression method of image data in a direct writing lithography system is characterized by comprising the following steps,
STEP00: pre-compression conventions
Contract 1: the number lookup table of the tail 0b is a lookup table taking a byte value as a key, namely an index, and the length of the tail 0b of the byte is taken as a value, and the value of the length of the tail 0b of the byte can be directly obtained by taking the byte value as the index; since the byte has a value range of [0,255], the tail 0b number lookup table has 256 elements in total; wherein, the tail 0b length of a byte refers to the number of low-order continuous 0b counted from the low-order of binary numbers of a certain byte, and is also called as 0b tail length for short;
contract 2: the number lookup table of the tail 1b is a lookup table taking a byte value as a key, namely an index, and the length of the tail 1b of the byte is taken as a value, and the byte value is taken as the index to directly obtain the length of the tail 1b of the byte; since the byte has a value range of [0,255], the tail 1b number lookup table has 256 elements in total; the tail 1b length of a byte refers to the number of low-order continuous 1b of binary numbers of a certain byte counted from the low order, and is also called 1b tail length for short;
contract 3: the monochrome bitmap data of the complete line before compression, referred to as line data, is specifically agreed as follows:
Sub-contract 3.1: the line width of the data line is LineWidth, the span is lineside, the byte arrangement sequence of the data line is from low order to high order to represent the left-to-right arrangement of the image, and each byte in the data line is from low order to high order to represent the left-to-right arrangement of the partial image;
sub-contract 3.2: lineWidth is how many bits of valid images are in the memory line, lineside is the number of bytes in the data line, and when the number of up-line widths is smaller than 8 times of the span, i.e. LineWidth < lineside x 8;
sub-contract 3.3: when the line width and the span of the data line do not meet the 8-time relation, redundant data bits exist, the redundant data bits do not represent images, and 0b or 1b is stored;
STEP10: defining mantissa look-up tables
Defining two mantissa lookup TABLEs TABLE0 and TABLE1, wherein TABLE0 is a tail 0b number lookup TABLE and TABLE1 is a tail 1b number lookup TABLE;
STEP20: loading data lines
Loading single-color bitmap data of complete LINEs, namely a data LINE LINE, counting the read byte number RBC=0, and counting the length of a bit string to be compressed to obtain a value BCC=0, wherein a current string mark MFLAG= -1, -1 represents that the processing mark is not started;
STEP30: reading bytes to be pressed
If the read byte count RBC > =lineside, indicating that the compression processing of the data line has ended, the STEP70 is shifted;
Obtaining bytes at the RBC position of a data LINE LINE, storing the bytes into a CURRENT to-be-pressed byte, and counting the read byte number RBC=RBC+1;
STEP35: processing special bytes 0x00 or 0xFF
STEP351: if the CURRENT of the byte to be compressed is 0x00, indicating that there are 8 consecutive 0b,
s3511: if the current string flag MFLAG is-1, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and executing STEP 30;
s3512: if the current string flag MFLAG is 1, indicating that a jump from 1b string to 0b string occurs, after STEP50 is executed, setting the current string flag mflag=0, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution;
s3513: if the current string flag MFLAG is 0, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP352: if the CURRENT of the byte to be compressed is 0xFF, indicating that there are 8 consecutive 1b of data,
s3521: if the current string flag MFLAG is-1, setting the current string flag mflag=1, and performing STEP 30;
s3522: if the current string flag MFLAG is 0, indicating that a jump from 0b string to 1b string occurs, if BCC is not equal to 0, after STEP50 is executed, setting the current string flag MFLAG to 1, setting the compressed bit string length count bcc=8, and turning to STEP30 to start execution; if the current string flag MFLAG is 1, indicating that there is no jump, the bit string length to be compressed count bcc=bcc+8, and go to STEP30 to start execution;
STEP353: if the CURRENT to be compressed is a normal byte, i.e. not 0x00 and not 0xFF, setting a CURRENT string flag mflag=current% 2, wherein the% represents a remainder, and the CURRENT byte to be processed bit length tpbc=8, and turning to STEP40 for execution;
STEP40: processing normal bytes non-0 x00 and 0xFF
If the number of bits to be processed TPBC is equal to 0, turning to STEP30 for processing;
judging that the value of the current string flag MFLAG is not 0, namely 1:
s400: if the current string flag MFLAG is 0;
s4001: searching for the tail 0b length LC of the CURRENT using TABLE 0;
s4002: taking LC=MIN (LC, TPBC), namely taking the minimum value between the LC and the TPBC as LC reassignment;
s4003: set string length count bcc=lc+bcc;
s4004: setting the bit number to be processed tpbc=tpbc-LC;
s4005: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4006: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that 1b bit exists in the CURRENT of the byte to be compressed, turning to STEP50 to compress the detected 0b bit string, then setting the CURRENT map flag mflag=1, turning to STEP40 to execute;
s401: if the current string flag MFLAG is 1,
s4011: searching the tail 1b length of the CURRENT by using TABLE1 to obtain the number LC of low-order continuous 1 b;
S4012: set string length count bcc=lc+bcc;
s4013: setting the bit number to be processed tpbc=tpbc-LC;
s4014: a right shift LC bit operation of the byte CURRENT to be pressed, i.e., current=current > > LC, where > > is a right shift operation;
s4015: if the processing bit TPBC is 0, the byte to be pressed is processed, and the STEP30 is executed; otherwise, indicating that the bit data in the CURRENT of the byte to be compressed is not processed, turning to STEP50 to compress the detected 1b bit string, then setting the CURRENT icon mflag=0, turning to STEP40 to execute;
STEP50: compressing the detected bit string
STEP50 is entered to indicate that there is an MFLAG bit string with a length of BCC to be compressed; the method specifically comprises the following steps:
STEP501: if the bit string length count BCC > = 16383, BCC = BCC-16383, two-byte compression is used;
s5011: if MFLAG is 0, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B are both 0XBFFF, and the binary representation is: 1011111111111111b; if MLAG is 1, two compressed bytes are stored in the compressed stream, namely, the length bit rule a or the length bit rule B is 0XBF FF, and the binary representation is: 1111111111111111b;
s5012: if bit string length count BCC > =16383, go to STEP501 to start processing; if the bit string length count BCC < 16383, performing a subsequent STEP502 or STEP503 procedure according to the condition;
STEP502: if the bit string length count BCC > = 64 and BCC < 16383, two bytes of compressed data are used;
s5021: the most significant bit of the low byte, namely 7 th position 1, stores the value of the bit string length count BCC in the high byte and the low 6 bits of the low byte according to the length bit rule a or the length bit rule B;
s5022: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5023: storing the obtained two bytes in the compressed stream, and returning to the original request step for execution;
STEP503: if the bit string length counts BCC <64 and BCC >0, the data is compressed using one byte;
s5031: the most significant bit of the byte, position 7, 0, stores the value of CC in the lower 6 bits;
s5032: if the current string flag MFLAG is equal to 1, the low-byte next highest order is 6 th position 1, otherwise the low-byte next highest order is 6 th position 0; set string length count bcc=0;
s5033: storing the obtained one byte into a compressed stream, and returning to the original request step for execution;
STEP70: data line end-of-line compression
STEP50 is executed to compress the detected bit string;
storing end-of-line symbols 0x00 into the compressed stream to complete the data line compression process;
it is determined whether a new line of data is still present,
If so, go to STEP20 for execution;
otherwise, the data compression task is completed;
wherein, the image data refers to a compressed monochromatic bitmap, and the data stream is stored according to rows;
each line of data is represented by a plurality of compression groups, 0x00 represents a line ending symbol, each compression group consists of one byte or two bytes, byte streams of all compression groups in a line are continuous, and the byte streams are sequentially stored from low level to high level to represent line images which are arranged from left to right;
each compression group is composed of an expansion bit, an image bit and a length bit, wherein the expansion bit and the image bit only occupy one bit, the length bit occupies 6 bits in a single byte compression group, 14 bits in a double byte compression group, a unique byte in the single byte compression group is called a definition byte, a low byte in the double byte compression group is called a definition byte, a high byte is called an extension byte, and the extension byte is a supplement of the definition byte and can not be used as the definition byte any more;
the extension bit is used for indicating whether the current byte needs to use extension bytes, 1b indicates that extension bytes are used, and 0b indicates that extension bytes are not used; when the high-order expansion bit of the low-order byte is 0b, the compressed data is single byte, when the low-order expansion bit is 1b, the compressed data is double byte, and the adjacent high-order byte is the expansion byte of the byte, and forms an integer of 14 bits together with the low 6 bits of the low-order byte for expressing the length;
The image bit is used for indicating that the compressed data group represents a 0b string or a continuous no-image or a 1b string or a continuous image;
the length bit is used for indicating the length of a 0b string or a 1b string represented by the compressed data set, and in the single byte compressed set, 6 bits are used, the representation range is 0-63, and 63 is 2 6 -1, in the double-byte compression set, the representation range is 0-16383, 16383 is 2 14 -1;
A single byte compression set, having only low order bytes a, without extended bytes, the low order bytes a being defined as follows:
the highest bit of the low byte, namely the 7 th bit is an expansion bit, and in a single byte compression group, the expansion bit is 0b;
the lower byte is next higher, i.e. the 6 th bit is the image bit, 0b represents no picture, 1b represents a picture;
from the 5 th positionThe total of 6 bits from the 0 th bit is the length bit of the image, and the representation range is 0-63, wherein 63=2 6 -1;
In a single byte compression set, the extension bit must be 0b;
the compression group of double bytes consists of a low-order definition byte and a high-order extension byte, and the bit definition of the definition byte is the same as that of a single byte;
the highest bit of the low byte, namely the 7 th bit is an expansion bit, and in a single byte compression group, the expansion bit is 1b;
the lower byte is next higher, i.e. 6 bits are image bits, 0b represents no map, 1b represents a map;
The total of 6 bits from the 5 th bit to the 0 th bit and 8 bits of the extension byte, the total of 14 bits is the length bit of the image, the representation range is 0-16383, wherein 16383 is 2 14 -1; in a compression group of double bytes, there are two rules for length bits to represent length:
length bit rule a: namely, extending bytes to store the high order bits of the integer section, defining the low order bits of the integer section to store the low order bits of the integer section, and the total length of unsigned integers is 14 bits;
length bit rule B: the extended byte stores the lower bits of the integer segment, the lower 6 bits of the defined byte stores the upper bits of the integer segment, and the total length of the unsigned integer is 14 bits.
2. The method of compressing image data in a direct write lithography system as recited in claim 1, wherein: if the extension bit of the definition byte is 0b, it indicates that the compression group is single byte, the indication method is that the length bit is 6 bits, the length range of the length bit indication is 1-63, wherein 63=2 6 -1,0x00 is used to represent the end marker of a data line.
3. The method of compressing image data in a direct write lithography system as recited in claim 1, wherein: if the defined byte extension bit is 1b, indicating that the compression group is double-byte, then the adjacent one of the upper bytes is an extension byte of the length bit of the defined byte, such a compressed representation method, the length bit is 14 bits, except 0x00 is used in the compression result to represent the end of data line Note that the length range represented by the length bits is 1 to 16383, where 16383=2 14 -1,0x00 is used to represent the end marker of a data line.
4. A computer readable storage medium storing a computer program which, when executed by a processor, causes the processor to perform the steps of the method of any one of claims 1-3.
CN202210896862.1A 2022-07-28 2022-07-28 Image data compression protocol, method and storage medium in direct writing lithography system Active CN115297220B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210896862.1A CN115297220B (en) 2022-07-28 2022-07-28 Image data compression protocol, method and storage medium in direct writing lithography system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210896862.1A CN115297220B (en) 2022-07-28 2022-07-28 Image data compression protocol, method and storage medium in direct writing lithography system

Publications (2)

Publication Number Publication Date
CN115297220A CN115297220A (en) 2022-11-04
CN115297220B true CN115297220B (en) 2023-06-30

Family

ID=83824738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210896862.1A Active CN115297220B (en) 2022-07-28 2022-07-28 Image data compression protocol, method and storage medium in direct writing lithography system

Country Status (1)

Country Link
CN (1) CN115297220B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736448A (en) * 2012-06-08 2012-10-17 合肥芯硕半导体有限公司 Compression method for image gradation data in direct writing lithography system
CN102736449A (en) * 2012-06-08 2012-10-17 合肥芯硕半导体有限公司 Tilt-scanned image data compression method in direct-write lithography system
CN102736447A (en) * 2012-06-08 2012-10-17 合肥芯硕半导体有限公司 Compression method for image data string in direct writing lithography system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7477772B2 (en) * 2005-05-31 2009-01-13 Asml Netherlands B.V. Lithographic apparatus and device manufacturing method utilizing 2D run length encoding for image data compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736448A (en) * 2012-06-08 2012-10-17 合肥芯硕半导体有限公司 Compression method for image gradation data in direct writing lithography system
CN102736449A (en) * 2012-06-08 2012-10-17 合肥芯硕半导体有限公司 Tilt-scanned image data compression method in direct-write lithography system
CN102736447A (en) * 2012-06-08 2012-10-17 合肥芯硕半导体有限公司 Compression method for image data string in direct writing lithography system

Also Published As

Publication number Publication date
CN115297220A (en) 2022-11-04

Similar Documents

Publication Publication Date Title
US5990899A (en) Method for compressing journal streams
US7539685B2 (en) Index key normalization
JP3009727B2 (en) Improved data compression device
US7663511B2 (en) Dynamic character encoding
US20070050436A1 (en) Order-preserving encoding formats of floating-point decimal numbers for efficient value comparison
EP3120266B1 (en) Ozip compression and decompression
US8239421B1 (en) Techniques for compression and processing optimizations by using data transformations
US10516803B2 (en) Information processing apparatus, and storage medium
JPH0473667B2 (en)
CN111510718B (en) Method and system for improving compression ratio through inter-block difference of image file
US7647291B2 (en) B-tree compression using normalized index keys
US9467166B2 (en) Enhanced compression, encoding, and naming for resource strings
US10467001B2 (en) Enhanced compression, encoding, and naming for resource strings
CN115630343B (en) Electronic document information processing method, device and equipment
CA2168284C (en) Apparatus and associated method for compressing and decompressing digital data
CN113760839A (en) Log data compression processing method and device, electronic equipment and storage medium
CN115297220B (en) Image data compression protocol, method and storage medium in direct writing lithography system
JP5549177B2 (en) Compression program, method and apparatus, and decompression program, method and apparatus
EP2264904B9 (en) Methods and device of binary coding and decoding for structured document comprising a plurality of data
US20200272784A1 (en) A method and system for compressing data
US20160203151A1 (en) Enhanced compression, encoding, and naming for resource strings
KR20160113167A (en) Optimized data condenser and method
CN115438114B (en) Storage format conversion method, system, device, electronic equipment and storage medium
US9412187B2 (en) Delayed rendering of content
GB2412978A (en) Method and system for compressing and decompressing hierarchical data structures

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant