US4918624A - Vector generator scan converter - Google Patents

Vector generator scan converter Download PDF

Info

Publication number
US4918624A
US4918624A US07/152,900 US15290088A US4918624A US 4918624 A US4918624 A US 4918624A US 15290088 A US15290088 A US 15290088A US 4918624 A US4918624 A US 4918624A
Authority
US
United States
Prior art keywords
vector
microprocessor
vector generator
image
data
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.)
Expired - Fee Related
Application number
US07/152,900
Inventor
James M. Moore
James F. Leighton
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.)
US Department of Energy
Original Assignee
US Department of Energy
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 US Department of Energy filed Critical US Department of Energy
Priority to US07/152,900 priority Critical patent/US4918624A/en
Assigned to UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE UNITED STATES DEPARTMENT OF ENERGY reassignment UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE UNITED STATES DEPARTMENT OF ENERGY ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: MOORE, JAMES M., LEIGHTON, JAMES F.
Application granted granted Critical
Publication of US4918624A publication Critical patent/US4918624A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function

Definitions

  • the invention relates generally to computer printers and more particularly to high-speed laser printers.
  • a main frame computer e.g. a CRAY-2 or CRAY-XMP supercomputer
  • millions of calculations per second are performed.
  • the large amounts of data produced must be output in usable form.
  • the printer becomes an important component of the computer system.
  • Graphics data is often more difficult to print than text because of the much greater volume of data needed to form the graphic image. Printing of graphics can be a slow and expensive procedure.
  • a laser beam modulated by an acousto-optical modulator is scanned by means of scanning optics across a photoconductive surface on a rotating drum to produce an image on the drum.
  • the image on the drum is then transferred to paper by a xerographic process.
  • a laser printer is a serial writing device, i.e. one bit of data at a time. This serial data is sent to the acousto-optic modulator which modulates the laser beam.
  • a serializer is used to read out a bit image from memory in parallel mode, e.g. 16 bits at a time, and then serialize the image bits for transmission one bit at a time to the acousto-optic modulator.
  • the IBM model 3800-3 laser printer is a very high-speed laser printer which has an absolute speed of 3.7 pages per second. Text can be printed at about full printer speed, 3.6 pages per second. However, printing graphics is much slower, at best 7-10 seconds per page because the standard I/O channel is too slow for the voluminous graphics data required to print a page. Therefore it is highly desirable to speed up printing of graphics to approach full printer speed, particularly in a computing environment where large amounts of graphics data are produced.
  • U.S. Pat. No. 4,672,459, to Kudo shows a communication terminal apparatus with data format conversion capability for a facsimile machine.
  • U.S. Pat. No. 4,677,571, to Riseman discloses a printing system which converts data to index numbers for a matrix of points representing certain shapes as well as gray scale.
  • U.S. Pat. No. 4,367,533, to Wiener shows an image bit structure and method for increasing size of characters.
  • U.S. Pat. No. 4,635,212, to Hatazawa rotates a print pattern.
  • U.S. Pat. No. 4,527,918 to Yamamoto shows a dual head printer, one for characters and one for plotting graphics.
  • the prior art does not deal with the problem of reduced printer speed for graphics printing and methods for increasing printer speed to its inherent speed.
  • the invention is a vector generator scan converter, and method and apparatus for increasing printing speed of graphics data using the vector generator scan converter.
  • the vector generator scan converter (VGSC) is a microcoded device which receives vector end points, converts the end points to vectors in a bit mapped graphic image, and outputs the image to the printer.
  • the VGSC is connected from the I/O channel to a raster data input port on the printer which provides a data path to feed to the laser printer's serializer which drives the scanning beam.
  • the graphics data is transmitted from the main processor to the VGSC over the I/O channel in a compressed form in which each vector is represented just by end points to reduce the amount of data which must be transmitted over the data transfer rate limiting I/O channel.
  • the VGSC reconstructs a graphic image from the vector end points and sends the reconstructed graphic image to the raster data input port of the printer.
  • FIG. 1 is a block diagram of a computer system with printer and vector generator scan converter.
  • FIG. 2 is a block diagram of a laser printer with a raster data input port.
  • FIG. 3 is a block diagram of the vector generator scan converter.
  • FIG. 4 is a block diagram of the microprocessor in the vector generator scan converter.
  • FIG. 5 is a block diagram of the vector generator hardware in the vector generator scan converter.
  • FIG. 6 is an illustration of the reconstruction of a graphic image of a vector by the vector generator hardware.
  • FIG. 7 illustrates a long form and short form of compressed block (CB) data format.
  • a main processor (CPU) 10 is connected through a control processor (CPU) 12 to a laser printer 14 by means of a standard I/O channel 16.
  • I/O channel 16 is connected to laser printer 14 through I/O port 18.
  • main processor 10 is a large main frame computer, e.g. a CRAY-2 or CRAY-XMP
  • control processor 12 is an IBM 4381
  • I/O channel 16 is an IBM System 370 I/O channel
  • laser printer 14 is an IBM model 3800-3.
  • the IBM 3800 laser printer is a laser xerographic type printer with an absolute speed of 3.7 pages per second (8.5 inch long pages), and an average speed of 3.6 pages per second.
  • I/O channel 16 limits printing speed for graphics to a much slower rate because I/O channel 16 cannot transmit full graphics data at a rate sufficient to match the printer speed.
  • At least one vector generator scan converter VGSC 20 is connected from I/O channel 16 to a raster data input port (PRDI) 22 of the laser printer 14.
  • PRDI raster data input port
  • two VGSCs 20 are connected in parallel from I/O channel 16 to PRDI 22 to keep laser printer 14 running at or very near full speed as the two VGSCs alternate sending graphic pages to PRDI 22.
  • Main CPU 10 produces graphics data in a compressed format.
  • Control CPU 12 determines whether data from main CPU 10 is sent directly to I/O port 18 or to a VGSC 20.
  • the compressed graphics data is thereby sent over I/O channel 16 to a VGSC 20 without overloading the I/O channel 16.
  • the VGSC 20 reconstructs the full graphics data for input through PRDI 22 to laser printer 14 for plotting.
  • the VGSC 20 reconstructs the graphics data so rapidly that laser printer 14 can operate at or near full speed.
  • laser printer 14 has a laser 24 which produces a laser beam which passes through an acousto-optic (A/O) modulator 26 and is swept by scanning optics 28 over the photoconducting surface 30 of rotating drum 32.
  • a laser printer is a serial writing device, i.e. one bit of data at a time. This serial data is input into the A/0 modulator 26 to modulate the laser beam.
  • Serializer 34 provides the serialized bits to A/0 modulator 26.
  • Serializer 34 reads bit images in parallel, e.g.
  • Data from main processor 10 is normally input to serializer 34 by I/O port 18 from I/O channel 16.
  • PRDI 22 is an additional port provided in laser printer 14 so that reconstructed graphic image data from the VGSC's can be input into serializer 34. Graphic images sent to the PRDI 22 are OR'ed with text pages sent over the normal I/O channel to I/O port 18 in OR gate 35.
  • the VGSC connection, PRDI 22, is 16 data bits parallel with byte parity, the data transfer mode is double full handshake and the required rate is 500 ns/word.
  • FIG. 3 A block diagram of a VGSC 20 is shown in FIG. 3.
  • Compressed graphics data from the main processor is input into VGSC 20 from I/O channel 16 through channel interface 36.
  • Channel interface 36 provides the protocol for VGSC 20 to talk to the standard I/O channel 16, i.e. handshake signals are exchanged to establish that the main processor is ready to send data and the VGSC is ready to receive data.
  • Data passing through channel interface 36 is transmitted over microbus 38 to working memory 40.
  • Microbus 38 is typically a 16 bit tri-state device in which only one driver and one receiver operate at one time.
  • Working memory 40 is typically a 32 K ⁇ 16 bit static RAM (SRAM). The compressed data representing an entire page is typically stored in working memory 40.
  • SRAM static RAM
  • microprocessor 42 with microcode memory 44.
  • Microprocessor (microcomputer) 42 is connected to microbus 38 and operates to interpret the compressed data in working memory 40.
  • microprocessor 42 is an AMD 2901 based microcomputer as will be further described.
  • the compressed data provides the vector starting point and end point; microprocessor 42 calculates the slope and length of the vector.
  • microcode memory 44 operates the microprocessor 42.
  • microcode memory 44 is made of two 2 K ⁇ 64 b static RAMs; however, microcode memory 44 need only be ROM memory, e.g. a PROM or EPROM, since the microcode is only read during operation of the VGSC.
  • Microprocessor 42 provides the starting point, slope and length of each vector to vector generator hardware (VGH) 46 which is connected to microbus 38.
  • VGH 46 fully expands each vector into a bit mapped image which is drawn or stored in one of two image buffer memories 48, 50 which are connected to VGH 46.
  • Image buffers 48, 50 are typically 4 K ⁇ 256 ⁇ 16 dynamic RAMs (DRAM).
  • DRAM dynamic RAMs
  • a pair of parallel independent buffers 48, 50 are preferred so that alternate pages can be stored in separate buffers, although a single buffer could be used.
  • microprocessor 42 sends a page release signal to the printer and the printer sends back a signal when ready.
  • Output scanner 52 then reads out the entire image in either one of image buffers 48 or 50 and passes the image data through interface 54.
  • Interface 54 has a FIFO storage which stores sixteen 16 bit words and acts as a buffer to equalize the rates of the printer and the reading rate of output scanner 52 (which is somewhat faster). Thus the printer reads the graphics data in blocks.
  • the OS 52 includes means for obtaining data from an image buffer memory in a predetermined pattern.
  • the IBM 3800 printer actually uses a pair of rotating 18-sided mirrors to scan two laser beams over the drum, in order to limit the mechanical rotation rate of the mirrors. The second beam scans a line three lines below the first beam.
  • OS 52 reads a word for the first line, then a word for the fourth line, then back to the next word for the first line, etc.
  • VGSC 20 Additional components of VGSC 20 include barrel shifter 56 which provides multiple bit shift capability since microprocessor 42 is not efficient for multiple bit shifts. Also included are panel control 58 and panel display 60.
  • Microprocessor 42 is based on the AMD 2901 arithmetic logic unit (ALU) 62 which is connected to microbus 38.
  • the ALU 62 is connected to microcode memory 44 through pipeline register 64.
  • An AMD-2910 sequencer 66 is also connected from pipeline register 64 to microcode memory 44.
  • the function of pipeline register 64 is to speed up microprocessor operation and sequencer 66 keeps track of the next instruction.
  • Working memory address register (MAR) 68, index register 70, and base address register (BAR) 72, as well as pipeline register 64 are all connected between microbus 38 and working memory 40 to provide various addressing modes for microprocessor 42 to working memory 40.
  • MAR arithmetic logic unit
  • BAR base address register
  • VGH 46 Vector generator hardware 46 is illustrated schematically in FIG. 5.
  • VGH 46 has an X counter 74, Y counter 76 and slope register 78 which are connected to microbus 38 and receive the initial values of X, Y and the vector slope respectively, from microprocessor 42.
  • the slope register 78 is connected to one input of adder 80 whose output is connected to accumulator 82.
  • Accumulator 82 is also connected back to the second input of adder 80.
  • Accumulator 82 is also connected to X counter 74 and Y counter 76 and increments these counters in a manner to produce a series of points to reconstruct the vector, as will be further explained.
  • a point counter 84 is also connected to microbus 38 to indicate when the VGH 46 is busy and when it has finished a vector.
  • a vector is to be drawn from starting point (0,0) to end point (10,5).
  • This vector data could be supplied to microprocessor 42 either as start and end points, or as start point and values delta X, delta Y.
  • the laser printer prints 240 points/inch (the dots are actually large enough so they overlap to form a good quality line); the units in the example are chosen as 10 and 5 points respectively.
  • the microprocessor first determines which coordinate axis is the longest; here it is X.
  • the long coordinate provides the number of points used to construct the vector; thus the vector in FIG. 6 will be constructed of 10 points.
  • This number of points is set in point counter 84 which is a down counter; when counter 84 counts down to zero, all points in the vector have been drawn and VGH 46 has completed the particular vector and is ready to start on a new vector.
  • a PRESET input sets the accumulator to the initial value 0.5; this value is chosen so that the reconstructed vector better fits the desired vector by making steps at the midpoint rather than at the end of segments.
  • the accumulator overflows when a value equal to or greater than 1 is reached; i.e. the accumulator only stores fractional values. Because the vectors are reconstructed with reference to the long axis, the slope is always a fraction less than one.
  • the accumulator sends count signals to X counter 74 and Y counter 76 in the following manner. Every point sends a signal to increment the counter that corresponds to the long axis (here the X counter) while the other counter (here the Y counter) is only incremented when the accumulator overflows.
  • the first point is calculated as follows: the slope value of 0.5 is added to the initial accumulator value of 0.5 to produce the result 1.0 which overflows the accumulator. Thus, only the value 0 remains stored in the accumulator. Since the first step was an overflow, both the X and Y counters are incremented by 1 so the point (1,1) is produced.
  • the slope value is again added to the accumulator (now 0) to produce the value 0.5 which is then stored in the accumulator. Since 0.5 does not overflow, only the X counter is incremented, but the Y counter is not, so the point (2,1) is produced. Following in this manner, the X counter is incremented every step, while the Y counter is incremented only every other step until the final point (10,5) is reached. At this time, point counter 84 signals that the vector is complete.
  • VGH 46 is now ready for the next vector.
  • New initial values of X, Y, slope are stored, and the accumulator is reset to 0.5.
  • the process has been illustrated with respect to a vector whose long axis was the X-axis. However, a vector with its long axis in the Y-axis will be drawn in exactly the same way with X and Y being interchanged in the above description.
  • Each point of the vector in X and Y counters 74, 76 is written into one of the image buffer memories 48,50. Since only one bit at a time is being written, but an entire 16-bit word of the image buffer memory is addressed at one time, write enable decoder 86 is used to enable only the desired bit and mask out all the other bits.
  • VGH 46 Since the image memory cycle time is 277 ns, VGH 46 has an absolute point rate of 1 point every 277 ns, or 3.60 million points/sec; however, since dynamic RAM is used for image buffer memory to make the memory as compact as possible, and the DRAM must be refreshed periodically, every eighth cycle, the speed is reduced to 7/8 or 3.15 million points/sec.
  • the VGSC is housed in a 5.25 inch high Standard Logic drawer and requires two SLI planes, a lower plane 88 shown to the left of microbus 38 in FIG. 3 and an upper plane 90 shown to the right of microbus 38.
  • microcode memory 44 A key part of the vector generator scan converter is the microcode stored in microcode memory 44; this microcode is the instruction set which operates the microprocessor 42.
  • the microcode must perform the following major tasks:
  • VGH vector generator hardware
  • VGH 46 and OS 52 are direct memory access (DMA) devices with respect to image buffers 48, 50; therefore, microprocessor 42 need only periodically poll VGH 46 and OS 52 to determine when either is ready for a new operation.
  • DMA direct memory access
  • microcode is contained in the attached microfiche appendix which is herein incorporated by reference.
  • the preferred embodiment of the invention operates with compressed data; a compressed form of a graphic picture in which the picture is represented just by end points of a vector is produced by the application program in the main computer.
  • This compressed picture rather than the full picture is sent over the standard I/O channel to the VGSC's which recreate the image, thereby avoiding the transmission bottleneck that would occur in the I/O channel if full graphics data were transmitted.
  • a vector end point format referred to as compressed block (CB) format is a preferred form of representing the data; the VGSC microcode in the attached appendix has been written to process data in CB format.
  • CB format illustrated in FIG. 7 may be in either of two forms which can be selected by the application's programmer.
  • the long form utilizes two 16 bit words.
  • the first three bits of the first word are the digits 101 which identify the long form format.
  • the next two digits are the operation code designated PP which may take the three values 00, 01, and 11 (10 is excluded for reasons which will be apparent with reference to the short form).
  • the most useful code is 11 which indicates to draw a line from the old to the new position.
  • the last ten bits of the first word are the 10 most significant bits of X (if absolute mode) or Delta X (if relative mode).
  • the first three bits of the second word are the three least significant bits of X or Delta X and the last 13 bits of the second word are the value of Y or Delta Y.
  • the short form utilizies a single 16 bit word of which the first two bits are the same operational code PP.
  • the value 10 is not used so that the short form cannot be misinterpreted as the long form if the third bit is a 1.
  • the short form is used only in relative mode.
  • the next seven bits are the value of Delta X and the last seven bits are the value of Delta Y.
  • the alternate short form saves space for short vectors. Since in the long form X and Y are each 13 bits long, 2 13 points per axis are available. However, the printed pages are 81/2 ⁇ 11 (Y ⁇ X) and in the Y direction half inch margins are provided on each side so that only 71/2 inches are available. The printer prints 240 dots per inch, therefore, in the Y direction only 1800 points (71/2 ⁇ 240) and in the X direction 2640 points (11 ⁇ 240) are required.

Abstract

High printing speeds for graphics data are achieved with a laser printer by transmitting compressed graphics data from a main processor over an I/O (input/output) channel to a vector generator scan converter which reconstructs a full graphics image for input to the laser printer through a raster data input port. The vector generator scan converter includes a microprocessor with associated microcode memory containing a microcode instruction set, a working memory for storing compressed data, vector generator hardward for drawing a full graphic image from vector parameters calculated by the microprocessor, image buffer memory for storing the reconstructed graphics image and an output scanner for reading the graphics image data and inputting the data to the printer. The vector generator scan converter eliminates the bottleneck created by the I/O channel for transmitting graphics data from the main processor to the laser printer, and increases printer speed up to thirty fold.

Description

The United States Government has rights in this invention pursuant to Contract No. W-7405-ENG-48 between the U.S. Department of Energy and the University of California for the operation of the Lawrence Livermore National Laboratory.
BACKGROUND OF THE INVENTION
The invention relates generally to computer printers and more particularly to high-speed laser printers.
In a large main frame computer, e.g. a CRAY-2 or CRAY-XMP supercomputer, millions of calculations per second are performed. The large amounts of data produced must be output in usable form. Thus, the printer becomes an important component of the computer system. Graphics data is often more difficult to print than text because of the much greater volume of data needed to form the graphic image. Printing of graphics can be a slow and expensive procedure.
In a laser printer a laser beam modulated by an acousto-optical modulator is scanned by means of scanning optics across a photoconductive surface on a rotating drum to produce an image on the drum. The image on the drum is then transferred to paper by a xerographic process. A laser printer is a serial writing device, i.e. one bit of data at a time. This serial data is sent to the acousto-optic modulator which modulates the laser beam. A serializer is used to read out a bit image from memory in parallel mode, e.g. 16 bits at a time, and then serialize the image bits for transmission one bit at a time to the acousto-optic modulator.
The IBM model 3800-3 laser printer is a very high-speed laser printer which has an absolute speed of 3.7 pages per second. Text can be printed at about full printer speed, 3.6 pages per second. However, printing graphics is much slower, at best 7-10 seconds per page because the standard I/O channel is too slow for the voluminous graphics data required to print a page. Therefore it is highly desirable to speed up printing of graphics to approach full printer speed, particularly in a computing environment where large amounts of graphics data are produced.
A number of other printing systems have been developed. U.S. Pat. No. 4,672,459, to Kudo shows a communication terminal apparatus with data format conversion capability for a facsimile machine. U.S. Pat. No. 4,677,571, to Riseman discloses a printing system which converts data to index numbers for a matrix of points representing certain shapes as well as gray scale. U.S. Pat. No. 4,367,533, to Wiener shows an image bit structure and method for increasing size of characters. U.S. Pat. No. 4,635,212, to Hatazawa rotates a print pattern. U.S. Pat. No. 4,527,918 to Yamamoto shows a dual head printer, one for characters and one for plotting graphics. Thus, the prior art does not deal with the problem of reduced printer speed for graphics printing and methods for increasing printer speed to its inherent speed.
SUMMARY OF THE INVENTION
Accordingly, it is an object of the invention to provide method and apparatus to increase speed of printing graphics in a computer system.
It is also an object of the invention to provide method and apparatus to increase printer speed for to near the absolute printer speed.
It is another object of the invention to provide method and apparatus for overcoming limitations in speed of graphics printing caused by a standard I/O channel between a main processor and printer.
It is a further object of the invention to provide method and apparatus for increasing speed of printing graphics in a laser printer.
The invention is a vector generator scan converter, and method and apparatus for increasing printing speed of graphics data using the vector generator scan converter. The vector generator scan converter (VGSC) is a microcoded device which receives vector end points, converts the end points to vectors in a bit mapped graphic image, and outputs the image to the printer. The VGSC is connected from the I/O channel to a raster data input port on the printer which provides a data path to feed to the laser printer's serializer which drives the scanning beam. The graphics data is transmitted from the main processor to the VGSC over the I/O channel in a compressed form in which each vector is represented just by end points to reduce the amount of data which must be transmitted over the data transfer rate limiting I/O channel. The VGSC then reconstructs a graphic image from the vector end points and sends the reconstructed graphic image to the raster data input port of the printer.
BRIEF DESCRIPTION OF THE DRAWINGS
In the accompanying drawings:
FIG. 1 is a block diagram of a computer system with printer and vector generator scan converter.
FIG. 2 is a block diagram of a laser printer with a raster data input port.
FIG. 3 is a block diagram of the vector generator scan converter.
FIG. 4 is a block diagram of the microprocessor in the vector generator scan converter.
FIG. 5 is a block diagram of the vector generator hardware in the vector generator scan converter.
FIG. 6 is an illustration of the reconstruction of a graphic image of a vector by the vector generator hardware.
FIG. 7 illustrates a long form and short form of compressed block (CB) data format.
PREFERRED EMBODIMENT
As shown in FIG. 1 a main processor (CPU) 10 is connected through a control processor (CPU) 12 to a laser printer 14 by means of a standard I/O channel 16. I/O channel 16 is connected to laser printer 14 through I/O port 18. In a preferred embodiment main processor 10 is a large main frame computer, e.g. a CRAY-2 or CRAY-XMP, control processor 12 is an IBM 4381, I/O channel 16 is an IBM System 370 I/O channel and laser printer 14 is an IBM model 3800-3. The IBM 3800 laser printer is a laser xerographic type printer with an absolute speed of 3.7 pages per second (8.5 inch long pages), and an average speed of 3.6 pages per second. However, in operation, I/O channel 16 limits printing speed for graphics to a much slower rate because I/O channel 16 cannot transmit full graphics data at a rate sufficient to match the printer speed.
Therefore, in accordance with the invention, at least one vector generator scan converter VGSC 20 is connected from I/O channel 16 to a raster data input port (PRDI) 22 of the laser printer 14. Preferably, two VGSCs 20 are connected in parallel from I/O channel 16 to PRDI 22 to keep laser printer 14 running at or very near full speed as the two VGSCs alternate sending graphic pages to PRDI 22. Main CPU 10 produces graphics data in a compressed format. Control CPU 12 determines whether data from main CPU 10 is sent directly to I/O port 18 or to a VGSC 20. The compressed graphics data is thereby sent over I/O channel 16 to a VGSC 20 without overloading the I/O channel 16. The VGSC 20 then reconstructs the full graphics data for input through PRDI 22 to laser printer 14 for plotting. The VGSC 20 reconstructs the graphics data so rapidly that laser printer 14 can operate at or near full speed.
As illustrated in FIG. 2 laser printer 14 has a laser 24 which produces a laser beam which passes through an acousto-optic (A/O) modulator 26 and is swept by scanning optics 28 over the photoconducting surface 30 of rotating drum 32. Thus, a modulated laser beam is scanned across the drum to produce an image on the drum which is transferred to paper by xerographic processes. A laser printer is a serial writing device, i.e. one bit of data at a time. This serial data is input into the A/0 modulator 26 to modulate the laser beam. Serializer 34 provides the serialized bits to A/0 modulator 26. Serializer 34 reads bit images in parallel, e.g. 16 bits at a time and then serializes the data bits for transmission to A/0 modulator 26 one bit at a time. Data from main processor 10 is normally input to serializer 34 by I/O port 18 from I/O channel 16. PRDI 22 is an additional port provided in laser printer 14 so that reconstructed graphic image data from the VGSC's can be input into serializer 34. Graphic images sent to the PRDI 22 are OR'ed with text pages sent over the normal I/O channel to I/O port 18 in OR gate 35. In a preferred embodiment the VGSC connection, PRDI 22, is 16 data bits parallel with byte parity, the data transfer mode is double full handshake and the required rate is 500 ns/word.
A block diagram of a VGSC 20 is shown in FIG. 3. Compressed graphics data from the main processor is input into VGSC 20 from I/O channel 16 through channel interface 36. Channel interface 36 provides the protocol for VGSC 20 to talk to the standard I/O channel 16, i.e. handshake signals are exchanged to establish that the main processor is ready to send data and the VGSC is ready to receive data. Data passing through channel interface 36 is transmitted over microbus 38 to working memory 40. Microbus 38 is typically a 16 bit tri-state device in which only one driver and one receiver operate at one time. Working memory 40 is typically a 32 K×16 bit static RAM (SRAM). The compressed data representing an entire page is typically stored in working memory 40. However, if the compressed data is too large, control computer 12 will break it up into segments which do not exceed the working memory capacity. Once control computer 12 sends a signal that all the data has been transmitted, VGSC 20 then converts the compressed data to a full graphic image. The heart of VGSC 20 is microprocessor 42 with microcode memory 44. Microprocessor (microcomputer) 42 is connected to microbus 38 and operates to interpret the compressed data in working memory 40. In a preferred embodiment microprocessor 42 is an AMD 2901 based microcomputer as will be further described. The compressed data provides the vector starting point and end point; microprocessor 42 calculates the slope and length of the vector. Microcode which will be further described stored in microcode memory 44 operates the microprocessor 42. Typically, microcode memory 44 is made of two 2 K×64 b static RAMs; however, microcode memory 44 need only be ROM memory, e.g. a PROM or EPROM, since the microcode is only read during operation of the VGSC.
Microprocessor 42 provides the starting point, slope and length of each vector to vector generator hardware (VGH) 46 which is connected to microbus 38. VGH 46 fully expands each vector into a bit mapped image which is drawn or stored in one of two image buffer memories 48, 50 which are connected to VGH 46. Image buffers 48, 50 are typically 4 K×256×16 dynamic RAMs (DRAM). A pair of parallel independent buffers 48, 50 are preferred so that alternate pages can be stored in separate buffers, although a single buffer could be used. When the graphics data of a complete page has been fully reconstructed in a 4096×4096×1 bit map stored in one of image buffers 48, 50, the fully reconstructed graphics data is output through output scanner (OS) 52 and PRDI interface 54 to the laser printer. Once a page is complete in buffer 48 or 50 microprocessor 42 sends a page release signal to the printer and the printer sends back a signal when ready. Output scanner 52 then reads out the entire image in either one of image buffers 48 or 50 and passes the image data through interface 54. Interface 54 has a FIFO storage which stores sixteen 16 bit words and acts as a buffer to equalize the rates of the printer and the reading rate of output scanner 52 (which is somewhat faster). Thus the printer reads the graphics data in blocks.
The OS 52 includes means for obtaining data from an image buffer memory in a predetermined pattern. The IBM 3800 printer actually uses a pair of rotating 18-sided mirrors to scan two laser beams over the drum, in order to limit the mechanical rotation rate of the mirrors. The second beam scans a line three lines below the first beam. Thus OS 52 reads a word for the first line, then a word for the fourth line, then back to the next word for the first line, etc.
Additional components of VGSC 20 include barrel shifter 56 which provides multiple bit shift capability since microprocessor 42 is not efficient for multiple bit shifts. Also included are panel control 58 and panel display 60.
Microprocessor 42, as shown in FIG. 4, is based on the AMD 2901 arithmetic logic unit (ALU) 62 which is connected to microbus 38. The ALU 62 is connected to microcode memory 44 through pipeline register 64. An AMD-2910 sequencer 66 is also connected from pipeline register 64 to microcode memory 44. The function of pipeline register 64 is to speed up microprocessor operation and sequencer 66 keeps track of the next instruction. Working memory address register (MAR) 68, index register 70, and base address register (BAR) 72, as well as pipeline register 64 are all connected between microbus 38 and working memory 40 to provide various addressing modes for microprocessor 42 to working memory 40.
Vector generator hardware (VGH) 46 is illustrated schematically in FIG. 5. VGH 46 has an X counter 74, Y counter 76 and slope register 78 which are connected to microbus 38 and receive the initial values of X, Y and the vector slope respectively, from microprocessor 42. The slope register 78 is connected to one input of adder 80 whose output is connected to accumulator 82. Accumulator 82 is also connected back to the second input of adder 80. Accumulator 82 is also connected to X counter 74 and Y counter 76 and increments these counters in a manner to produce a series of points to reconstruct the vector, as will be further explained. A point counter 84 is also connected to microbus 38 to indicate when the VGH 46 is busy and when it has finished a vector.
For illustrative purposes of explaining the operation of VGH 46, a simple example will be utilized, with reference to FIG. 6. A vector is to be drawn from starting point (0,0) to end point (10,5). This vector data could be supplied to microprocessor 42 either as start and end points, or as start point and values delta X, delta Y. The laser printer prints 240 points/inch (the dots are actually large enough so they overlap to form a good quality line); the units in the example are chosen as 10 and 5 points respectively. The microprocessor first determines which coordinate axis is the longest; here it is X. The long coordinate provides the number of points used to construct the vector; thus the vector in FIG. 6 will be constructed of 10 points. This number of points is set in point counter 84 which is a down counter; when counter 84 counts down to zero, all points in the vector have been drawn and VGH 46 has completed the particular vector and is ready to start on a new vector.
Microprocessor 42 calculates the vector slope delta Y/delta X=5/10=0.5. The initial values X=0, Y=0, slope=0.5 are set in X counter 74, Y counter 76, and slope register 78, respectively. A PRESET input sets the accumulator to the initial value 0.5; this value is chosen so that the reconstructed vector better fits the desired vector by making steps at the midpoint rather than at the end of segments. The accumulator overflows when a value equal to or greater than 1 is reached; i.e. the accumulator only stores fractional values. Because the vectors are reconstructed with reference to the long axis, the slope is always a fraction less than one. The accumulator sends count signals to X counter 74 and Y counter 76 in the following manner. Every point sends a signal to increment the counter that corresponds to the long axis (here the X counter) while the other counter (here the Y counter) is only incremented when the accumulator overflows. With reference to FIG. 6, the first point is calculated as follows: the slope value of 0.5 is added to the initial accumulator value of 0.5 to produce the result 1.0 which overflows the accumulator. Thus, only the value 0 remains stored in the accumulator. Since the first step was an overflow, both the X and Y counters are incremented by 1 so the point (1,1) is produced. To get the second point, the slope value is again added to the accumulator (now 0) to produce the value 0.5 which is then stored in the accumulator. Since 0.5 does not overflow, only the X counter is incremented, but the Y counter is not, so the point (2,1) is produced. Following in this manner, the X counter is incremented every step, while the Y counter is incremented only every other step until the final point (10,5) is reached. At this time, point counter 84 signals that the vector is complete.
VGH 46 is now ready for the next vector. New initial values of X, Y, slope are stored, and the accumulator is reset to 0.5. The process has been illustrated with respect to a vector whose long axis was the X-axis. However, a vector with its long axis in the Y-axis will be drawn in exactly the same way with X and Y being interchanged in the above description. Each point of the vector in X and Y counters 74, 76 is written into one of the image buffer memories 48,50. Since only one bit at a time is being written, but an entire 16-bit word of the image buffer memory is addressed at one time, write enable decoder 86 is used to enable only the desired bit and mask out all the other bits. Since the image memory cycle time is 277 ns, VGH 46 has an absolute point rate of 1 point every 277 ns, or 3.60 million points/sec; however, since dynamic RAM is used for image buffer memory to make the memory as compact as possible, and the DRAM must be refreshed periodically, every eighth cycle, the speed is reduced to 7/8 or 3.15 million points/sec.
In a preferred embodiment the VGSC is housed in a 5.25 inch high Standard Logic drawer and requires two SLI planes, a lower plane 88 shown to the left of microbus 38 in FIG. 3 and an upper plane 90 shown to the right of microbus 38. Some operating characteristics of the VGSC and its components are the following:
Xtal clock frequency 36 Mhz
No. of clock phases 10
Major/minor cycle time 0.27777/.027777 us
Micro-bus width 16 bits
Micro-instruction width 64 bits
Micro-instruction cycle time
Step mode (No branch) 0.27777 us
All other modes 0.55555 us
Working memory access time 55 ns
Image memory access time 120 ns
Image memory cycle time 277 ns
Vector generator hardware
Avg point rate (w. refresh) 3.15 M pts/sec
Abs point rate 3.60 M pts/sec
A key part of the vector generator scan converter is the microcode stored in microcode memory 44; this microcode is the instruction set which operates the microprocessor 42. The microcode must perform the following major tasks:
1. Receive vector end points and store them in working memory 40.
2. Set up the vector generator hardware (VGH) 46 to draw the best straight line between the sets of end points in one of the two image buffers 48, 50.
3. Inform the control CPU via a channel "device end" signal and the printer via a "release" signal that a page is ready in an image buffer 48, 50 for printing.
4. Start up the output scanner 52 so that when the printer responds with a ready signal the output scanner reads out the image buffer contents in virtual lock step with the printer's serializer (and hence the laser beam).
Receiving vector end points and storing them in the working memory requires the full attention of the microcomputer 42, i.e. the 2901 based microprocessor must hand carry each 16 bit word from the I/O channel to the working memory. However, both the VGH 46 and OS 52 are direct memory access (DMA) devices with respect to image buffers 48, 50; therefore, microprocessor 42 need only periodically poll VGH 46 and OS 52 to determine when either is ready for a new operation.
A listing of the microcode is contained in the attached microfiche appendix which is herein incorporated by reference.
The preferred embodiment of the invention operates with compressed data; a compressed form of a graphic picture in which the picture is represented just by end points of a vector is produced by the application program in the main computer. This compressed picture rather than the full picture is sent over the standard I/O channel to the VGSC's which recreate the image, thereby avoiding the transmission bottleneck that would occur in the I/O channel if full graphics data were transmitted.
A vector end point format referred to as compressed block (CB) format is a preferred form of representing the data; the VGSC microcode in the attached appendix has been written to process data in CB format. However, other data formats could be utilized with appropriate changes in the microcode. The CB format, illustrated in FIG. 7 may be in either of two forms which can be selected by the application's programmer. The long form utilizes two 16 bit words. The first three bits of the first word are the digits 101 which identify the long form format. The next two digits are the operation code designated PP which may take the three values 00, 01, and 11 (10 is excluded for reasons which will be apparent with reference to the short form). The most useful code is 11 which indicates to draw a line from the old to the new position. The next bit designates the mode: M=0 specifies relative mode, i.e. the change from the previous position, and M=1 designates absolute mode, i.e. the actual coordinate. The last ten bits of the first word are the 10 most significant bits of X (if absolute mode) or Delta X (if relative mode). The first three bits of the second word are the three least significant bits of X or Delta X and the last 13 bits of the second word are the value of Y or Delta Y. The short form utilizies a single 16 bit word of which the first two bits are the same operational code PP. The value 10 is not used so that the short form cannot be misinterpreted as the long form if the third bit is a 1. The short form is used only in relative mode. The next seven bits are the value of Delta X and the last seven bits are the value of Delta Y. The alternate short form saves space for short vectors. Since in the long form X and Y are each 13 bits long, 213 points per axis are available. However, the printed pages are 81/2×11 (Y×X) and in the Y direction half inch margins are provided on each side so that only 71/2 inches are available. The printer prints 240 dots per inch, therefore, in the Y direction only 1800 points (71/2×240) and in the X direction 2640 points (11×240) are required.
Changes and modifications in the specifically described embodiments can be carried out without departing from the scope of the invention which is intended to be limited only by the scope of the appended claims.

Claims (12)

What is claimed is:
1. A vector generator scan converter, comprising:
input interface means for receiving compressed graphics data;
a microprocessor connected to the input interface means;
a working memory connected to the microprocessor;
a microcode memory connected to the microprocessor and containing a set of instructions for operating the microprocessor, including receiving and storing the compressed graphics data in the working memory, and calculating vector slopes and lengths from the compressed data;
a vector generator means connected to the microprocessor for constructing vectors from vector starting points, slopes and lengths received from the microprocessor to produce a full graphic image from the compressed graphics data;
at least one image buffer memory connected to the vector generator means for storing the full graphic image produced by the vector generator means;
output interface means responsive to the microprocessor for outputting the full graphic images from the image buffer memory;
wherein the vector generator means comprises:
an X counter for storing a value of an X-coordinate of a vector;
a Y counter for storing a value of a Y-coordinate of a vector;
a slope register for storing a value of a vector slope;
an adder having one input connected to the slope register;
an accumulator connected to the output of the adder and being connected to a second input of the adder, the accumulator being connected to the X and Y counters to increment the counters to reconstruct a vector image.
2. The converter of claim 1 comprising two image buffer memories connected in parallel to the vector generator means for storing alternate pages of graphic images.
3. The converter of claim 1 wherein the output interface means comprises an output scanner for reading an entire image from an image buffer memory in a predetermined pattern and interface means which stores portions of the image read by the output scanner until read by the laser printer.
4. The converter of claim 1 wherein each image buffer memory is a DRAM.
5. The converter of claim 1 wherein the working memory is a SRAM.
6. The converter of claim 1 wherein the microprocessor includes an AMD-2901 arithmetic logic unit.
7. The converter of claim 6 further comprising a pipeline register between the microcode memory and the arithmetic logic unit.
8. The converter of claim 7 further comprising an AMD-2901 sequencer connected from the pipeline register to the microcode memory.
9. A computer-printer system, comprising:
a main processor which produces graphics data in a compressed format as vector end points;
a control processor;
a high speed laser printer having an I/O port;
a standard I/O channel connecting the main processor and control processor to the laser printer I/O port;
a raster data input port in the laser printer;
at least one microcoded microprocessor based vector generator scan converter connected from the I/O channel to the raster data input port to receive vector end points over the I/O channel, convert the end points to vectors in a bit-mapped graphic image, and output the bit-mapped graphic image to the raster data input port of the laser printer;
wherein each vector generator scan converter comprises:
input means for receiving compressed graphics data from the main processor over the I/O channel;
a microprocessor connected to the input means;
a working memory connected to the microprocessor;
a microcode memory connected to the microprocessor and containing a set of instructions for operating the microprocessor, including receiving and storing the compressed graphics data in the working memory, and calculating vector slopes and lengths from the compressed data;
a vector generator means connected to the microprocessor for constructing vectors from vector starting points, slopes and lengths received from the microprocessor to produce a full graphic image from the compressed graphics data;
at least one image buffer memory connected to the vector generator means for storing the full graphic image produced by the vector generator means;
output means responsive to the microprocessor for outputting the graphic images from the image buffer memory to the laser printer through the raster data input port;
wherein the vector generator means comprises:
an X counter for storing a value of an X-coordinate of a vector;
a Y counter for storing a value of a Y-coordinate of a vector;
a slope register for storing the value of a vector slope;
an adder having one input connected to the slope register;
an accumulator connected to the output of the adder and being connected to a second input of the adder, the accumulator being connected to the X and Y counters to increment the counters to reconstruct a vector image.
10. The system of claim 9 comprising two vector generator scan converters connected in parallel from the I/O channel to the raster data input port for processing alternate pages of graphics data.
11. A vector generator scan converter, comprising:
input interface means for receiving compressed graphics data;
a microprocessor connected to the input interface means, the microprocessor including and AMD-2901 arithmetic logic unit;
a working memory connected to the microprocessor;
a microcode memory connected to the microprocessor and containing a set of instructions for operating the microprocessor, including receiving and storing the compressed graphics data in the working memory, and calculating vector slopes and lengths from the compressed data;
a pipeline register between the microcode memory and the arithmetic logic unit;
a vector generator means connected to the microprocessor for constructing vectors from vector starting points, slopes and lengths received from the microprocessor to produce a fully graphic image from the compressed graphics data;
at least one image buffer memory connected to the vector generator means for storing the full graphic image produced by the vector generator means;
output interface means responsive to the microprocessor for outputting the full graphic images from the image buffer memory.
12. The converter of claim 18 further comprising an AMD-2910 sequencer connected from the pipeline register to the microcode memory.
US07/152,900 1988-02-05 1988-02-05 Vector generator scan converter Expired - Fee Related US4918624A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US07/152,900 US4918624A (en) 1988-02-05 1988-02-05 Vector generator scan converter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/152,900 US4918624A (en) 1988-02-05 1988-02-05 Vector generator scan converter

Publications (1)

Publication Number Publication Date
US4918624A true US4918624A (en) 1990-04-17

Family

ID=22544933

Family Applications (1)

Application Number Title Priority Date Filing Date
US07/152,900 Expired - Fee Related US4918624A (en) 1988-02-05 1988-02-05 Vector generator scan converter

Country Status (1)

Country Link
US (1) US4918624A (en)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001653A (en) * 1989-09-08 1991-03-19 International Business Machines Corporation Merging plotter graphics within a text environment on a page printer
US5189522A (en) * 1991-09-06 1993-02-23 Eastman Kodak Company Synchronized thermal printing
US5199101A (en) * 1990-10-03 1993-03-30 Bell & Howell Publication Systems Company On the fly image rotation system for high-speed printers
US5252953A (en) * 1990-05-22 1993-10-12 American Film Technologies, Inc. Computergraphic animation system
US5347617A (en) * 1990-11-09 1994-09-13 Dataproducts Corporation Printer having a multiple scan line printhead controller
US5495560A (en) * 1988-08-31 1996-02-27 Canon Kabushiki Kaisha Output apparatus which temporarily stores pattern data for output
US5640607A (en) * 1992-04-21 1997-06-17 Microsoft Corporation Method for sending bit mapped image by appending special code to text string and transmitting the text string separately from compressed residual image
US5892890A (en) * 1997-06-17 1999-04-06 Hewlett-Packard Company Computer system with parallel processor for pixel arithmetic
US5948099A (en) * 1989-03-30 1999-09-07 Intel Corporation Apparatus and method for swapping the byte order of a data item to effectuate memory format conversion
US6055064A (en) * 1994-10-27 2000-04-25 Shira Computers Ltd. Method for conversion of a color electronic pre-press system data file to a page description language data file
US6126342A (en) * 1988-08-31 2000-10-03 Canon Kabushiki Kaisha Output device capable of high quality output of characters over a large range of sizes
US6288787B1 (en) 1997-11-06 2001-09-11 Samsung Electronics Co., Ltd. Method for processing graphic data in a laser printer
US6459498B2 (en) 1992-08-31 2002-10-01 Canon Kabushiki Kaisha Data transmission method and apparatus that discriminates whether data is to be developed into bitmap data
EP1394684A2 (en) * 2002-08-26 2004-03-03 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1394683A2 (en) * 2002-08-26 2004-03-03 Seiko Epson Corporation Data transferring apparatus and liquid ejection apparatus
US20040255060A1 (en) * 2003-06-16 2004-12-16 Yasunori Fukumitsu Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1494122A2 (en) * 2003-07-02 2005-01-05 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1507213A2 (en) * 2003-08-11 2005-02-16 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
US20060002614A1 (en) * 2004-06-30 2006-01-05 Alliances Artquest International Inc. Raster-to-vector conversion process and apparatus
US20090214175A1 (en) * 2003-07-03 2009-08-27 Mccrossan Joseph Recording medium, reproduction apparatus, recording method, integrated circuit, program, and reproduction method
US8730232B2 (en) 2011-02-01 2014-05-20 Legend3D, Inc. Director-style based 2D to 3D movie conversion system and method
US8897596B1 (en) 2001-05-04 2014-11-25 Legend3D, Inc. System and method for rapid image sequence depth enhancement with translucent elements
US8953905B2 (en) 2001-05-04 2015-02-10 Legend3D, Inc. Rapid workflow system and method for image sequence depth enhancement
US9007404B2 (en) 2013-03-15 2015-04-14 Legend3D, Inc. Tilt-based look around effect image enhancement method
US9007365B2 (en) 2012-11-27 2015-04-14 Legend3D, Inc. Line depth augmentation system and method for conversion of 2D images to 3D images
US9241147B2 (en) 2013-05-01 2016-01-19 Legend3D, Inc. External depth map transformation method for conversion of two-dimensional images to stereoscopic images
US9282321B2 (en) 2011-02-17 2016-03-08 Legend3D, Inc. 3D model multi-reviewer system
US9286941B2 (en) 2001-05-04 2016-03-15 Legend3D, Inc. Image sequence enhancement and motion picture project management system
US9288476B2 (en) 2011-02-17 2016-03-15 Legend3D, Inc. System and method for real-time depth modification of stereo images of a virtual reality environment
US9407904B2 (en) 2013-05-01 2016-08-02 Legend3D, Inc. Method for creating 3D virtual reality from 2D images
US9438878B2 (en) 2013-05-01 2016-09-06 Legend3D, Inc. Method of converting 2D video to 3D video using 3D object models
US9547937B2 (en) 2012-11-30 2017-01-17 Legend3D, Inc. Three-dimensional annotation system and method
US9609307B1 (en) 2015-09-17 2017-03-28 Legend3D, Inc. Method of converting 2D video to 3D video using machine learning

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4205389A (en) * 1976-09-24 1980-05-27 General Electric Company Apparatus for generating a raster image from line segments
US4367533A (en) * 1980-08-25 1983-01-04 Xerox Corporation Image bit structuring apparatus and method
US4458330A (en) * 1981-05-13 1984-07-03 Intergraph Corporation Banded vector to raster converter
US4527918A (en) * 1982-05-10 1985-07-09 Brother Kogyo Kabushiki Kaisha Apparatus for both printing characters and plotting graphs
US4635212A (en) * 1981-12-25 1987-01-06 Hitachi, Ltd. Method for generating a rotated print pattern
US4672459A (en) * 1983-11-18 1987-06-09 Ricoh Company, Ltd. Communication terminal apparatus with data format conversion capability
US4677571A (en) * 1985-02-08 1987-06-30 Rise Technology Inc. Electronic publishing
US4688181A (en) * 1982-12-22 1987-08-18 International Business Machines Corporation Image transformations on an interactive raster scan or matrix display
US4722064A (en) * 1984-11-27 1988-01-26 Fuji Xerox Co., Ltd. Drawing output unit
US4736330A (en) * 1984-09-04 1988-04-05 Capowski Joseph J Computer graphics display processor for generating dynamic refreshed vector images

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4205389A (en) * 1976-09-24 1980-05-27 General Electric Company Apparatus for generating a raster image from line segments
US4367533A (en) * 1980-08-25 1983-01-04 Xerox Corporation Image bit structuring apparatus and method
US4458330A (en) * 1981-05-13 1984-07-03 Intergraph Corporation Banded vector to raster converter
US4635212A (en) * 1981-12-25 1987-01-06 Hitachi, Ltd. Method for generating a rotated print pattern
US4527918A (en) * 1982-05-10 1985-07-09 Brother Kogyo Kabushiki Kaisha Apparatus for both printing characters and plotting graphs
US4688181A (en) * 1982-12-22 1987-08-18 International Business Machines Corporation Image transformations on an interactive raster scan or matrix display
US4672459A (en) * 1983-11-18 1987-06-09 Ricoh Company, Ltd. Communication terminal apparatus with data format conversion capability
US4736330A (en) * 1984-09-04 1988-04-05 Capowski Joseph J Computer graphics display processor for generating dynamic refreshed vector images
US4722064A (en) * 1984-11-27 1988-01-26 Fuji Xerox Co., Ltd. Drawing output unit
US4677571A (en) * 1985-02-08 1987-06-30 Rise Technology Inc. Electronic publishing

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6126342A (en) * 1988-08-31 2000-10-03 Canon Kabushiki Kaisha Output device capable of high quality output of characters over a large range of sizes
US5495560A (en) * 1988-08-31 1996-02-27 Canon Kabushiki Kaisha Output apparatus which temporarily stores pattern data for output
US5948099A (en) * 1989-03-30 1999-09-07 Intel Corporation Apparatus and method for swapping the byte order of a data item to effectuate memory format conversion
US5001653A (en) * 1989-09-08 1991-03-19 International Business Machines Corporation Merging plotter graphics within a text environment on a page printer
US5252953A (en) * 1990-05-22 1993-10-12 American Film Technologies, Inc. Computergraphic animation system
US5199101A (en) * 1990-10-03 1993-03-30 Bell & Howell Publication Systems Company On the fly image rotation system for high-speed printers
US5347617A (en) * 1990-11-09 1994-09-13 Dataproducts Corporation Printer having a multiple scan line printhead controller
US5189522A (en) * 1991-09-06 1993-02-23 Eastman Kodak Company Synchronized thermal printing
US5640607A (en) * 1992-04-21 1997-06-17 Microsoft Corporation Method for sending bit mapped image by appending special code to text string and transmitting the text string separately from compressed residual image
US6459498B2 (en) 1992-08-31 2002-10-01 Canon Kabushiki Kaisha Data transmission method and apparatus that discriminates whether data is to be developed into bitmap data
US6055064A (en) * 1994-10-27 2000-04-25 Shira Computers Ltd. Method for conversion of a color electronic pre-press system data file to a page description language data file
US5892890A (en) * 1997-06-17 1999-04-06 Hewlett-Packard Company Computer system with parallel processor for pixel arithmetic
US6288787B1 (en) 1997-11-06 2001-09-11 Samsung Electronics Co., Ltd. Method for processing graphic data in a laser printer
US9286941B2 (en) 2001-05-04 2016-03-15 Legend3D, Inc. Image sequence enhancement and motion picture project management system
US8953905B2 (en) 2001-05-04 2015-02-10 Legend3D, Inc. Rapid workflow system and method for image sequence depth enhancement
US8897596B1 (en) 2001-05-04 2014-11-25 Legend3D, Inc. System and method for rapid image sequence depth enhancement with translucent elements
EP1394684A3 (en) * 2002-08-26 2005-11-02 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1394684A2 (en) * 2002-08-26 2004-03-03 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1394683A3 (en) * 2002-08-26 2005-08-31 Seiko Epson Corporation Data transferring apparatus and liquid ejection apparatus
EP1394683A2 (en) * 2002-08-26 2004-03-03 Seiko Epson Corporation Data transferring apparatus and liquid ejection apparatus
EP1489554A2 (en) * 2003-06-16 2004-12-22 Seiko Epson Corporation Ink jet printing data transferring apparatus and inkjet printer
US20040255060A1 (en) * 2003-06-16 2004-12-16 Yasunori Fukumitsu Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
US7177955B2 (en) 2003-06-16 2007-02-13 Seiko Epson Corporation Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus including a header analyzing unit that analyzes a header of liquid ejection controlling data
EP1489554A3 (en) * 2003-06-16 2006-03-15 Seiko Epson Corporation Ink jet printing data transferring apparatus and inkjet printer
US7167933B2 (en) 2003-07-02 2007-01-23 Seiko Epson Corporation Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1494122A2 (en) * 2003-07-02 2005-01-05 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
US20050001862A1 (en) * 2003-07-02 2005-01-06 Masahiro Kimura Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1494122A3 (en) * 2003-07-02 2005-09-07 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
CN1297110C (en) * 2003-07-02 2007-01-24 精工爱普生株式会社 Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
US8369690B2 (en) * 2003-07-03 2013-02-05 Panasonic Corporation Recording medium, reproduction apparatus, recording method, integrated circuit, program, and reproduction method
US20090214175A1 (en) * 2003-07-03 2009-08-27 Mccrossan Joseph Recording medium, reproduction apparatus, recording method, integrated circuit, program, and reproduction method
US20090220211A1 (en) * 2003-07-03 2009-09-03 Mccrossan Joseph Recording medium, reproduction apparatus, recording method, integrated circuit, program, and reproduction method
US8682146B2 (en) 2003-07-03 2014-03-25 Panasonic Corporation Recording medium, reproduction apparatus, recording method, integrated circuit, program, and reproduction method
US7188197B2 (en) 2003-08-11 2007-03-06 Seiko Epson Corporation Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
CN1310158C (en) * 2003-08-11 2007-04-11 精工爱普生株式会社 A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
US20050038929A1 (en) * 2003-08-11 2005-02-17 Yasunori Fukumitsu Data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1507213A2 (en) * 2003-08-11 2005-02-16 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
EP1507213A3 (en) * 2003-08-11 2005-09-07 Seiko Epson Corporation A data transferring apparatus for transferring liquid ejection data and a liquid ejecting apparatus
US20060002614A1 (en) * 2004-06-30 2006-01-05 Alliances Artquest International Inc. Raster-to-vector conversion process and apparatus
US8730232B2 (en) 2011-02-01 2014-05-20 Legend3D, Inc. Director-style based 2D to 3D movie conversion system and method
US9282321B2 (en) 2011-02-17 2016-03-08 Legend3D, Inc. 3D model multi-reviewer system
US9288476B2 (en) 2011-02-17 2016-03-15 Legend3D, Inc. System and method for real-time depth modification of stereo images of a virtual reality environment
US9007365B2 (en) 2012-11-27 2015-04-14 Legend3D, Inc. Line depth augmentation system and method for conversion of 2D images to 3D images
US9547937B2 (en) 2012-11-30 2017-01-17 Legend3D, Inc. Three-dimensional annotation system and method
US9007404B2 (en) 2013-03-15 2015-04-14 Legend3D, Inc. Tilt-based look around effect image enhancement method
US9241147B2 (en) 2013-05-01 2016-01-19 Legend3D, Inc. External depth map transformation method for conversion of two-dimensional images to stereoscopic images
US9407904B2 (en) 2013-05-01 2016-08-02 Legend3D, Inc. Method for creating 3D virtual reality from 2D images
US9438878B2 (en) 2013-05-01 2016-09-06 Legend3D, Inc. Method of converting 2D video to 3D video using 3D object models
US9609307B1 (en) 2015-09-17 2017-03-28 Legend3D, Inc. Method of converting 2D video to 3D video using machine learning

Similar Documents

Publication Publication Date Title
US4918624A (en) Vector generator scan converter
US5796930A (en) System architecture for processing and transporting page-map or bit-map data to a raster print engine
CA1042354A (en) Printer
US4476542A (en) Printing system
JPH07105892B2 (en) Data communication device
GB1477428A (en) Printing system
EP0310712A1 (en) Front-end system for a raster output scanner
US4520455A (en) Printing system
Moore et al. Vector generator scan converter
JPH0535442A (en) Image data converting circuit
JP3203660B2 (en) Image recording device
JPH06111012A (en) Image processor
US6577313B1 (en) Image data control apparatus
JP3053196B2 (en) Image data raster converter
KR100200690B1 (en) Blank data processing method in printer
JP2598125B2 (en) Output control device
JPS59181387A (en) Graphic generator
JPH0118474B2 (en)
JPS59221069A (en) Memory control system
JPS61156448A (en) Processing device for compound function information
JP2908571B2 (en) Page printer
JPH0417460B2 (en)
JPH0344728A (en) Page printer controller
JPS63267556A (en) Printing control system of personal computer
JPS607265A (en) Image processor

Legal Events

Date Code Title Description
AS Assignment

Owner name: UNITED STATES OF AMERICA, THE, AS REPRESENTED BY T

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:MOORE, JAMES M.;LEIGHTON, JAMES F.;REEL/FRAME:004906/0465;SIGNING DATES FROM 19880415 TO 19880502

Owner name: UNITED STATES OF AMERICA, THE, AS REPRESENTED BY T

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MOORE, JAMES M.;LEIGHTON, JAMES F.;SIGNING DATES FROM 19880415 TO 19880502;REEL/FRAME:004906/0465

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
FP Lapsed due to failure to pay maintenance fee

Effective date: 19940628

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362