Disk-based image storage system invention disclosure

A printer apparatus includes a marking engine subsystem that records information on an image recording member. An image storage subsystem buffers image data for output to the marking engine subsystem. The image storage subsystem includes an input for receiving rasterized image data. A data compressor operates on the rasterized image data to compress the rasterized image data to form compressed image data. A disk storage module receives, stores and outputs the compressed image data to a semiconductor RAM memory device that stores at least one page of the compressed data. A data decompressor operates on the compressed data output by the RAM memory device and decompresses the compressed data to rasterized data for output to the marking engine subsystem. A RAM controller controls the RAM memory device for outputting the compressed data from the RAM memory device to the decompressor. The disk storage module outputs compressed data to the RAM memory device at a data rate greater than the maximum sustainable data recording rate of the marking engine subsystem.

FIELD OF THE INVENTION
 The invention is directed to a method and apparatus for storing images
 (rasters) on one or more disk drives for subsequent printing on a
 high-speed copier or printer. Compressed images are stored in a disk
 storage module that minimizes the disk transfer bandwidth required while
 optimizing overall system throughput.
 BACKGROUND OF THE INVENTION
 High-speed digital copiers and printers require temporary storage for
 images prior to printing them. This image storage subsystem serves two
 important purposes. First, it decouples the speed at which input images
 are acquired (scanned or rasterized) from the speed at which they are
 printed. Second, the temporary storage allows multiple copies of a
 document to be produced without having to re-acquire the input images;
 i.e., rescan the document or in the case of an input from a computer
 rerasterize the data from a coded form or object form used in a page
 description language. For high-volume printing, where multiple sets of
 large documents need to be produced, the temporary storage is most
 economically implemented using disk drives. Compressing the images before
 they are stored on the disks can further increase the capacity of the
 temporary storage.
 A system using disk drives to store images prior to printing them is
 disclosed in U.S. Pat. No. 5,142,667 to Dimperio et al. The patent
 describes a system which uses several disk drives to implement a disk
 memory which is used to store images prior to subsequent processing or
 printing. Dimperio et al. describe various experiments and algorithms for
 determining the throughput of the system based on the disk bandwidth, but
 do not determine the minimum disk bandwidth required for full output
 productivity.
 U.S. Pat. No. 5,495,339 to Stegbauer et al. similarly discloses a disk
 memory for image storage. This patent also discloses the use of a resource
 manager to schedule the use of the disk drives. Since the disclosed system
 may not have sufficient disk bandwidth to read images in time to optimally
 print them, the resource manager determines when it is necessary to reduce
 output productivity by inserting a print pitch skip. A similar resource
 management approach is disclosed by May et al. in U.S. Pat. No. 5,375,202.
 Both of these resource managers require predicting when a series of disk
 access operations will be completed in the future. Such predictions are
 difficult to make given the variability of disk access times and the
 inability to predict when disk soft errors will occur.
 A system that uses image compression in conjunction with a disk memory is
 disclosed in U.S. Pat. No. 5,130,809 to Takayanagi. By using a compression
 algorithm that operates at a constant compression rate, the size of the
 image is reduced and the disk bandwidth required to store the image is
 similarly reduced. However, to achieve the constant compression rate
 disclosed by Takayanagi, a non-lossless compression algorithm, such as
 block approximation or adaptive prediction coding, must be used. This
 results in reduced image quality when the image is subsequently printed,
 since the decompressed image is not identical to the original input image.
 U.S. Pat. No. 5,611,024 to Campbell et al. discloses the use of a lossless
 image compression algorithm to reduce the amount of memory required to
 store an image. The compressed images are stored in solid-state memory
 that is intended to store only a small number of pages. The system
 disclosed by Campbell et al. does not use disk drives to achieve the
 capacity required for high-volume printing in which large numbers of
 images must be stored to maximize output productivity. Without using disk
 drives, the images would have to be stored in solid-state memory, which is
 considerably more expensive.
 SUMMARY OF THE INVENTION
 It is an object of the invention to optimize overall printing system
 performance by maximizing the output productivity of the marking engine.
 Therefore, the disk storage module is able to provide data at the rate
 required to keep the marking engine running at full capacity for any
 sequence of images printed on the printing system.
 Another object of the invention is to efficiently maximize the number of
 images that can be stored in the image storage subsystem. Therefore, the
 images are compressed before they are placed in the disk storage module,
 and decompressed before they are needed for further image processing or
 printing.
 Yet another object of the invention is to provide a means to load images
 into the image storage subsystem at substantially the same time images are
 being retrieved for processing or printing. Operation in this manner
 prevents the image storage subsystem from restricting the flow of images
 through the printing system and enables the overall performance of the
 printing system to be maximized.
 Briefly, the invention is directed to an electronic image storage subsystem
 that is part of a larger printing system. The image storage subsystem
 provides temporary storage for images prior to subsequent processing or
 printing. The subsystem is based on a disk storage module which stores
 compressed images until they are needed. The disk storage module has an
 aggregate bandwidth sufficient for printing worst-case compressed images
 at the full rated speed of the marking engine.
 In accordance with a first aspect of the invention there is provided a
 printer apparatus comprising a marking engine subsystem for recording
 information on an image recording member at a maximum sustainable data
 recording rate; and an image storage subsystem for buffering image data
 for output to the marking engine subsystem, the image storage subsystem
 including an input for receiving rasterized image data a data compressor
 that operates on the rasterized image data to compress the rasterized
 image data to form compressed image data a disk storage module that
 receives, stores and outputs the compressed image data a semiconductor RAM
 memory device that stores at least one page of the compressed data a data
 decompressor that operates on the compressed data output by the RAM memory
 device and decompresses the compressed data to decompressed rasterized
 image data for output to the marking engine subsystem; and a RAM
 controller that controls the RAM memory device for outputting the
 compressed data from the RAM memory device to the decompressor, the disk
 storage module outputting compressed data to the RAM memory device at a
 data rate fast enough so that when the data is decompressed the
 decompressed rasterized image data is available to the marking engine to
 operate at the maximum sustainable recording rate of the marking engine
 subsystem.
 In accordance with a second aspect of the invention there is provided a
 method of operating an image storage subsystem for output of image data to
 a marking engine subsystem for recording information on an image recording
 member at a maximum sustainable data recording rate, the method comprising
 inputting rasterized image data to a data compressor device, a compressing
 the rasterized image data to form compressed image data, a storing the
 compressed image data in a disk storage module, outputting the compressed
 image data from the disk storage module to a semiconductor RAM memory
 device that stores at least one page of the compressed image data and
 decompressing the compressed data to decompressed rasterized data for
 output to the marking engine subsystem. The disk storage module outputs
 compressed image data to the RAM memory device at a data rate fast enough
 so that when the data is decompressed the decompressed rasterized image
 data is available to the marking engine so as to allow the marking engine
 to operate at the maximum sustainable data recording rate of the marking
 engine subsystem.

DESCRIPTION OF THE PREFERRED EMBODIMENT
 General System Architecture
 Referring to FIG. 1, the printing system 10 contains three primary
 subsystems. The document input subsystem 12 provides one or more devices
 for submitting documents to the printing system 10. Documents can be input
 through mechanisms such as a document scanner for copier operation or a
 raster image processor (RIP) capable of converting page description
 language into rasters for networked printer operation. An example of an
 input system is described in commonly assigned U.S. application Ser. No.
 08/655,550 filed in the name of Telle. now U.S. Pat. No. 5,808,747, issued
 on Sep. 15, 1998. A scanner scans a document and converts the image
 information thereon to raster information or data that can be expressed as
 a digital signal. Once the raster image data has been acquired by the
 system, it is transferred to the image storage subsystem 14. When the
 document is ready to be printed, images are retrieved from the image
 storage subsystem 14 and sent to the marking engine subsystem 16. The
 marking engine subsystem 16 includes the mechanical and electrical
 components necessary to produce the physically marked pages of output.
 Examples of marking engines are electrophotographic devices,
 electrographic devices, thermal dye transfer devices, inkjet devices,
 photographic devices that record on a photographic member using an
 electro-optical exposure device or other spatial light modulator, magnetic
 recording devices, etc. Common to many of these various types of marking
 engine subsystems is the requirement that once a sheet of paper or film
 has been physically fed into the paper path or other path to be marked,
 the image data for that sheet must be delivered to the printhead at
 precisely the correct time. Otherwise, the sheet will be marked
 incorrectly. Consequently the image storage subsystem 14 and the marking
 engine subsystem 16 must be tightly coupled. In addition to the image data
 that is passed from the image storage subsystem 14 to the marking engine
 subsystem 16, timing and control information must also be communicated
 between the two subsystems.
 The internal image data path for the image storage subsystem 14 is shown in
 FIG. 2. Images are acquired by the document input subsystem 12 and then
 sent to the image storage subsystem 14 where they are compressed by the
 image compressor 20 using a lossless image compression algorithm. The
 particular compression algorithm used is not significant to the invention,
 and algorithms such as Lempel-Ziv, Group 4 FAX, or other lossless
 compression algorithm can be used. A lossless compression algorithm is
 used so that the original input image is exactly reproduced when the image
 is decompressed. The compressed image data is then transferred to the
 image memory 22 which is DRAM semiconductor memory, typically using direct
 memory access (DMA) transfers. Other semiconductor memory may also be used
 such as synchronous DRAM (SDRAM) or static random access memory (SRAM).
 The image memory 22 serves as a temporary storage location for the
 compressed image data before it is transferred to the disk storage module
 24. Storing the compressed data in the image memory 22 serves two
 purposes. First, it provides a location to place the compressed image data
 in the event that the disk storage module 24 is currently busy performing
 another data transfer. Second, it allows the complete image to be
 compressed before it is transferred to the disk storage module 24. This
 means that the size of the complete compressed image will be known before
 the compressed image data is written to the disk drives 28 in the disk
 storage module 24. This simplifies the allocation of storage space on the
 disk drives 28.
 Once the compressed image data is in the image memory 22, it can be
 transferred to the disk storage module 24. The disk storage module 24
 comprises of at least one disk controller 26 and at least one disk drive
 28. The disk controller 26 is typically an application specific integrated
 circuit that interfaces to one of the standard disk interfaces such as
 SCSI or IDE/ATA. The transfer from image memory 22 to the disk controller
 26 is typically accomplished by a DMA engine contained within the disk
 controller 26. The transfer rate between the disk storage module 26 and
 the image memory 22 is an important factor in the overall performance of
 the image storage subsystem 14. Consequently, it may be desirable to
 increase the bandwidth within the disk storage module 24 by using multiple
 disk drives. For example, FIG. 2 shows a disk storage module configuration
 that utilizes one disk controller 26 to interface to two disk drives 28-1
 and 28-2. However the invention contemplates that bandwidth can generally
 be improved by using multiple disk drives and multiple disk controllers.
 Once the compressed image data has been written into the disk storage
 module 24, the process of loading an image into the image storage
 subsystem 14 is complete. The compressed image data in the image memory 22
 is no longer needed and that area of the image memory 22 can be
 overwritten to store another image.
 When the marking engine subsystem 16 is ready to print an image, the image
 must first be retrieved from the disk storage module 24. As the compressed
 image data is read off of the disk drive(s) 28, the DMA engine in the disk
 controller 26 transfers the data to the image memory 22. Data coming off
 of the disk drives 28 does not necessarily flow continuously due to delays
 when the disk heads seek from one track to another. Once again the image
 memory 22 serves as a temporary buffer for the compressed image data. The
 advantage of this temporary buffer is that it decouples the disk storage
 module data transfers from the data transfers to the decompressor 30.
 Once the compressed image data is located in image memory 22 and the
 marking engine subsystem 16 is ready to print the image, the decompressor
 30 begins decompressing the image data. The compressed image data is
 typically transferred from the image memory 22 to the decompressor 30
 using DMA accesses. The decompressor 30 uses the corresponding algorithm
 to that used by the compressor 20 to restore the image to its original
 content as received from the document input subsystem 12.
 The decompressed image data is subsequently sent to the image processing
 block 32, where additional image processing operations can be performed.
 These operations include altering the image content, such as adding
 annotations. Other operations that may be performed here are the addition
 of white space for margins or shifting the image within the print frame.
 Additionally, resolution enhancement or printing process correction
 algorithms may be performed at this point. The resultant image is then
 transferred to the marking engine subsystem 16 where the data is used to
 appropriately mark the sheet being printed.
 DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
 FIG. 3 shows a preferred embodiment of the image storage subsystem 14. In
 the preferred embodiment, the interface between document input subsystem
 12 and the image storage subsystem 14 is a primary PCI bus 42. Input
 images, whether rasterized by a RIP or acquired from a scanner are
 transferred over the PCI bus 42 into the image storage subsystem 14.
 The Intel 80960RP microprocessor 40 plays a central role in the
 functionality of the image storage subsystem 14. However, other
 microprocessors or computers may also be used. FIG. 4 shows the internal
 architecture of the Intel 80960RP microprocessor 40 which contains an
 80960JF microprocessor core 80 integrated with a number of other
 peripheral devices. Chief among these are two PCI buses interfaces, the
 primary PCI bus interface 82 and the secondary PCI bus interface 84, which
 the core microprocessor 80 can access through the address translation
 units (ATUs) 86 and 88. Additionally, there are internal DMA controllers
 90 and 92 that can be used to move data between the PCI buses interfaces
 82 and 84 and the 80960 local bus interface 100. The device also includes
 a PCI-to-PCI bridge 94 for moving data between the two PCI bus interfaces
 82 and 84. Finally, the 80960RP microprocessor 40 includes a memory
 controller 96 which can be used through the memory controller interface 98
 and memory control signals 47 to provide appropriate control to directly
 connect external DRAM 48 and flash memory 50 to the 80960 local bus 46.
 In the preferred embodiment, the three external buses (42, 44, 46) of the
 80960RP microprocessor 40 are used as follows: the primary PCI bus 42
 interfaces to the document input subsystem, the secondary PCI bus 44 is
 used to move compressed image data within the image storage subsystem 14,
 and the 80960 local bus 46 is used for loading images, program execution,
 and interfacing to the communications interface 68 to the marking engine
 subsystem 16.
 The flash memory 50 stores the program code executed by the microprocessor
 core 80. The DRAM 48 holds temporary variables, stack data, and memory and
 disk allocation tables used by the program code in the operation of the
 image storage subsystem 14.
 The line buffers 52 hold lines of the image as it is transferred into the
 image storage subsystem 14 prior to being compressed. In the preferred
 embodiment, the image compressor 20 and image decompressor 30 are combined
 into a single device, the Advanced Hardware Architectures AHA3411
 compressor/decompressor 54. The compressor/decompressor 54 has video input
 and output ports over which the uncompressed data moves. Compressed data
 is transferred by the external DMA controller 56 through the DRAM
 controller 58 into the DRAM image memory 60 which in a preferred
 application is 64 megabytes (MB).
 In the preferred embodiment, the disk storage module 24 is implemented
 using two disk controllers 62-1, 62-2 each of which interfaces to a single
 disk drive 64-1, 64-2 respectively. The disk controllers 62-1, and 62-2
 and disk drives 64-1 and 64-2 may use the industry standard IDE/ATA
 interface or other known interface.
 Decompressed data moves from the compressor/decompressor 54 through the
 image processing block 66 to the marking engine subsystem 16. In the image
 processing block 66, the image is shifted to the proper location in the
 print frame, corrected to compensate for non-uniformities in the printing
 process, and formatted appropriately for transmission to the marking
 engine subsystem 16. An additional semiconductor memory for assembling
 complete pages such as signatures may be provided as part of the image
 processing block as taught in Telle, U.S. application Ser. No. 08/655,550
 or the assembled data for the signatures may be formed in the disk drives.
 The marking engine communications block 68 implements a communications
 interface through which the image storage subsystem 14 communicates timing
 and control information with the marking engine subsystem 16. In the
 preferred embodiment this comprises an ARCnet interface for passing
 control messages and a timing bus for communicating timing information.
 The operation of the image storage subsystem 14 is controlled by the
 microprocessor core 80. The microprocessor core 80 executes a program
 stored in the flash memory 50 which allows the image storage subsystem 14
 to load images over the primary PCI bus interface 42 from the document
 input subsystem 12 and to retrieve images to be sent to the marking engine
 subsystem 16.
 Images are loaded by programming the 80960RP DMA controller 90 to move the
 uncompressed image data from a location on the primary PCI bus 42 to the
 line buffers 52. The microprocessor core 80 also configures the
 compressor/decompressor 54 and the external DMA controller 56, as well as
 allocates space in the image memory 60 for the resultant compressed image
 data. As the 80960RP DMA controller 90 moves lines of the image into the
 line buffers 52, the data is transferred into the compressor/decompressor
 54 where it is compressed and subsequently transferred by DMA accesses to
 the image memory 60. When the image compression is complete, the
 microprocessor core 80 receives interrupts from the 80960RP DMA controller
 90, the compressor/decompressor 54 and the external DMA controller 56.
 To move the compressed image data onto the disks of the disk drives 64-1,
 64-2, the microprocessor core 80 first allocates storage space for the
 compressed image data. The microprocessor core 80 then programs DMA
 engines in the disk controllers 62-1, 62-2 to move the compressed image
 data from the image memory 60 to the disk drives 64-1, 64-2. When the
 transfer to the disks is complete, the microprocessor core 80 receives
 interrupts from the disk controllers 62-1, 62-2. The presence of multiple
 disk drives in the disk storage module 24 increases bandwidth of the disk
 storage module 24 because the bandwidth is limited by the time required to
 read and write information to a single disk. Where multiple disk drives
 are provided image data can be alternately read to the plural disks so
 that while data is stored in one disk controller and being written to one
 disk drive the next segment of data for the page can be stored in another
 disk controller for writing to its associated disk drive. The disk drive
 may be a mass storage device that records image data using magnetic
 recording or optical recording.
 When the marking engine subsystem 16 is ready to print an image, a message
 is received by the marking engine communications interface 68 which causes
 an interrupt to the microprocessor core 80. The microprocessor core 80
 determines the location on the disk drives 64 for the image requested,
 allocates space in the image memory 60 for the compressed image data, and
 programs the DMA engines in the disk controllers 62 to move the compressed
 image data from the disk drives 64-1, 64-2 to the image memory 60. When
 the transfer from the disk drives 64-1, 64-2 to the image memory 60 is
 complete, the microprocessor core 80 receives interrupts from the disk
 controllers 62-1, 62-2.
 When the appropriate timing signals are received from the marking engine
 subsystem 16 via the marking engine communications interface 68 indicating
 that the marking engine is ready to print the image, the microprocessor
 core 80 receives an interrupt and configures the DMA controller 56 and
 decompressor within the compressor/decompressor 54 to transfer the
 compressed image data from the image memory 60 to the
 compressor/decompressor 54, decompress it, and send it to the image
 processing block 66. The microprocessor core 80 also configures the image
 processing block 66 to perform any required image manipulations such as
 shifting the image and performing non-uniformity compensation. The
 resultant image is then transferred to the marking engine subsystem 16
 where it is printed. The microprocessor core 80 receives interrupts from
 the compressor/decompressor 54 and the image processing block 66 when the
 image transfer is complete.
 Disk Bandwidth and Image Compression
 To maintain maximum productivity of the marking engine subsystem 16, and
 hence the entire printing system 10, the image storage subsystem 14 must
 be able to transfer any image to the marking engine subsystem 16 whenever
 it is requested. To do this, the bandwidth of the disk storage module 24
 must be sufficient to retrieve any image from the disk drives 28 in the
 time that it takes to print that image. The image storage subsystem 14 can
 then operate in a pipelined mode in which one image is transferred from
 the semiconductor image memory 22 to the decompressor 30, decompressed,
 and sent to the marking engine subsystem 16 while the next image to be
 printed is being transferred from the disk storage module 24 to the image
 memory 22. This mode of operation allows the image storage subsystem 14 to
 continuously deliver any stream of images to the marking engine subsystem
 16, thereby allowing the marking engine subsystem 16 to run at full speed.
 The compression algorithm used in the compressor 20 impacts the bandwidth
 required for the disk storage module 24. Lossless compression algorithms
 typically compress images by a ratio of at least 2:1, and compression
 ratios of 10:1 are not uncommon. However, certain images (lacking any
 patterns distinguishable by the compression algorithm) will not compress
 well. The compressor 20 may recognize such images and pass them through
 unchanged, or may even expand the images in the process of trying to
 compress them. If the algorithm used by the compressor 20 can expand the
 images, then the bandwidth of disk storage module 24 must be provided to
 take into account the largest (worst-case) compressed image size.
 Bandwidth may be increased by providing modules with faster read, write or
 access times or by providing additional disk drives and drive controllers
 in the disk storage module.
 When worst-case compressed images are being retrieved from an image storage
 subsystem 14 containing a disk storage module 24 with this minimum data
 transfer bandwidth, the entire bandwidth of the disk storage module 24 is
 consumed with transferring data from the disk drives 28 to the image
 memory 22 in preparation for printing the images. In this case, there is
 no disk bandwidth available to place incoming images that have just been
 compressed on the disk drives 28. However, worst-case compressed images
 are the exception, rather than the norm. Generally, images will compress
 by at least 2:1, which means that less than half of the bandwidth of the
 disk storage module 24 will be used for retrieving images to be printed.
 The remaining disk bandwidth can then be made available to load incoming
 images into the disk storage module 24. Once again, since most images will
 compress by at least 2:1, the bandwidth needed for loading images into the
 disk storage module 24 will generally be less than the available
 bandwidth. Thus, in the typical case, the image storage subsystem 14 will
 be able to simultaneously load and retrieve images at the speed the
 marking engine subsystem 16 prints them. In the worst case, the image
 storage subsystem 14 will only retrieve images at the speed the marking
 engine subsystem 16 prints them.
 In the preferred embodiment, the marking engine subsystem 16 can print 600
 dots per inch (DPI) 8.5 inch by 14 inch images at 110 images per minute.
 Consequently, the maximum sustained speed at which decompressed images
 must be transferred to the marking engine subsystem 16 is 9.8 megabytes
 per second (MB/s). Since the compressor/decompressor 54 uses an algorithm
 that expands worst-case images by a ratio of 8:9, the disk storage module
 24 must be capable of sustaining a transfer rate of 11.0 MB/s. With a disk
 storage module 24 capable of sustained transfers at that rate, the image
 storage subsystem 14 will always be able to transfer images to the marking
 engine subsystem 16 when requested.
 In the preferred embodiment the image memory 60 of 64 MB is sufficient to
 store in compressed form (worst case) seven images of 11 inch.times.17
 inch size. The memory 60 may be operated so that up to three 11
 inch.times.17 inch pages are reserved for storing pages to be input to the
 disk storage module and up to four 11 inch.times.17 inch pages are
 reserved for storing output from the disk storage module.
 It will be noted that the secondary PCI bus 44 carries compressed image
 data only. The compressed image data is carried on this bus from the
 compressor 54 to the image memory 60, from the image memory 60 to the disk
 storage module 24, from the disk storage module 24 to the image memory 60
 and form the image memory 60 to the decompressor 54. Where bandwidth
 considerations permit the process of moving image data may be such that a
 segment of data is moved from disk storage module 24 to image memory 60
 and then is followed by a segment of data of a different page that is
 moved from image memory 60 to the compressor 54. Thus data of small
 segments of different pages are moved successively between the image
 memory, the disk storage module 24 and the compressor/decompressor 54.
 Expanded or uncompressed image data appears only on the primary PCI bus
 42, the local bus 46 and the video input and video output lines of
 compressor/decompressor 54. The presence of only compressed data on the
 secondary PCI bus 44 conserves bandwidth on the bus 44 since most pages
 will compress efficiently.
 In accordance with the invention the number of disk drives required in the
 disk storage module to always be able to transfer decompressed images to
 the printer when requested regardless of how well the images were
 compressed can be determined from the following formula:
EQU N=(S*R*C)/(D*60)
 wherein N is the number of disk drives rounded up to the next largest
 integer and typically for high speed, high resolution printers N will be
 two or more disk drives;
 S is the image size (uncompressed) in megabytes of a given page size; and
 R is the printing page rate in pages per minute for the page of the given
 page size.
 Because the printer may have different requirements for printing pages of
 different size papers and thus different products of S*R, the product S*R
 in the above formula is the worst-case product (resulting in the highest
 value of N).
 C is the worst case compression ratio of the compressor; and
 D is the sustained disk bandwidth (megabytes per second) of a disk drive in
 the disk storage module.
 The invention has been described in detail with particular reference to
 certain preferred embodiments thereof, but it will be understood that
 variations and modifications can be effected within the spirit and scope
 of the invention.