Apparatus for maximizing a rate of image data transfer in a printing system

Abstract: A printing system for processing one or more images of a job is provided. The printing system includes a video bus (Vbus) communicating with both a first transfer module (36c) and an image processing section (22). In operation, a first segment of the job is processed in the image processing section while a second segment of the job is buffered in the first transfer module. Subsequently, the first segment of the job is transferred away from the image processing section, with a second transfer module, coincidentally with the the second segment being transferred to the image processing section.

Description: The present invention relates generally to a technique for processing, storing and/or outputting image data, of a stored job, with an electronic printing machine. Electronic printing systems typically include an input section, sometimes referred to as an input image terminal ("IIT"), a controller, sometimes referred to as an electronic subsystem ("ESS") and an output section or print engine, sometimes referred to as an image output terminal ("IOT"). In one type of electronic printing system, manufactured by Xerox® Corporation, known as the DocuTech® electronic printing system, a job can be inputted to the IIT from, among other sources, a network or a scanner. An example of an IIT with both network and scanner inputs is found in US-A-5,170,340. US-A-5,016,114 discloses a printing system in which image processing is provided at a scanner. In response to scanning a document, image signals are transmitted to various image processing stations. As the signals are processed, they are stored in a main storage section for eventual output. A clear shortcoming of US-A-5,016,114 is that loopback of stored image data back, through the image processing stations of the scanner, is not contemplated. This capability is, under certain circumstances, necessary for image data received from a network. For example, it may become necessary to print image data from a network at a resolution that is higher or lower than the resolution at which it was received. US-A-4,947,345 and US-A-5,038,218 contemplate respective systems in which stored image data can be transferred, with DMA, from a page buffer to an image processing section. In particular, in the '345 system, a DMA interface can be used to transfer image data between a pair of page buffers and a reduction/enlargement processor, while, in the '218 system, a DMA controller can be used to move image data between a page memory and a resolution converter. Since the DMA in both the '218 and '345 systems is centralized, the data transfer capability of the system is reduced when the DMA is being used to service the image processing section. That is, the respective image processing sections of the '218 and '345 systems can monopolize the DMA, and the bus, while image data is being transferred from the page buffer(s) to the image processing section. US-A-5,113,494 contemplates a system in which loopback is achievable. More particularly, the '494 patent permits buffered image data to be moved to and from an image processing section, across a bus, with a DMA device disposed in either a SCSI interface or a printer interface. Additionally, the processed image data can then be transferred to a file server or a printer through use of a DMA device. US-A-5,113,494 does not contemplate an arrangement in which processed image data can be transferred from an image processing section, under the influence of a first DMA device, while unprocessed image data is being transferred to the image processing section under the influence of a second DMA device. That is, image data cannot, be "pushed" and "pulled", relative to the image processing section, simultaneously. This is because the DMA devices of the SCSI interface and the printer interface are coupled to the bus serially. It would be desirable to provide a printing system, with a processor, in which a first transfer module, functioning independently of the processor, transfers image data to an image processing section while a second transfer module, functioning independently of the processor, transfers processed image data away from the image processing module. In various ones of the above references in which DMA is used to transfer data, it is common for one bus master, such as a storage device, to access a main bus and transfer all of its image data, under the influence of DMA, to another bus master, such as a printer. An example of this sort of DMA transfer may be found in US-A-5,303,341. This approach to DMA transfer is less than desirable when many bus masters wish to access the bus at the same time. It should be further noted that US-A-5,307,458 is capable of transferring a first job, from a coprocessor to a storage or output device, under the influence of DMA, while a part of a second job is being buffered in a main video processor. After the first job has been stored in or outputted from the main video processor, the second job part can then be transferred to memory, under the influence of DMA. This approach still, however, does not address the problem that arises, in a printing system with one main video bus, when one bus master occupies the main video bus for any considerable amount of time. In computer applications, this problem is managed through "time-sharing". Indeed, it is believed that Xerox Corporation has used the concept of time-sharing in its network printing system that employs a "6085 workstation" with a network compatible printer. For example, over a given time interval, a job may be sent to the printer while data is being received at the workstation. It is believed, however, that Xerox' network printing system does not permit job segments of multiple jobs to be transmitted to multiple output devices in a time shared manner. It would be desirable to provide a printing system with such capability. It is an object of the present invention to provide such a printing system. In accordance with one aspect of the present invention there is provided a printing system, including a controller, for processing one or more images of a job with the job being stored in a job storage area and the images being represented by image signals, comprising: a video bus for transmitting image signals of the job, represented by one or more segments, from the job storage area to one of a plurality of destinations; an image processing section, communicating with the video bus, for performing one or more image processing operations on at least one image associated with the job; a first transfer module, communicating with the video bus, including: a first buffer for buffering a first set of image signals representing a first segment of the job, and a first programmable direct memory access apparatus, responsive to the controller, for transferring the first segment of the job from the first buffer to the image processing section, wherein, in response to transferring the first segment, a second set of image signals, representing a second segment of the job is buffered in the first buffer; and a second transfer module, communicating with both the video bus and the second output device, the second transfer module being disposed in parallel with the first transfer module and including a second programmable direct memory access apparatus, responsive to the controller, for transferring the first segment of the job from the image processing section, to a selected one of a storage area and an output device, while the second segment of the job is being transferred from the first buffer to said image processing section. In accordance with another aspect of the disclosed embodiment, there is provided a printing system, including a controller, for managing respective output operations of a first job and a second job with each of the first and second jobs having a dimension and being represented by image signals, comprising: a video bus for transmitting image signals of the first and second jobs thereacross; a first storage area, communicating with said video bus, for storing the second job; a first output device and a second output device, each of said first and second output devices communicating with said video bus; a first transfer module, communicating with both said video bus and said first output device, including: a first buffer for buffering a first set of image signals representing a first segment of the first job, the first segment including a packet dimension, the packet dimension of the first segment being less than the first job dimension, and a first programmable direct memory access apparatus, responsive to the controller, for transferring the first segment of the job from the first buffer to said first output device, and a second transfer module, communicating with both said video bus and said second output device, said second transfer module being disposed in parallel with said first transfer module, said second transfer module including a second programmable direct memory access apparatus, responsive to the controller, for transferring a second set of image signals representing a second segment of the second job from said first storage area to said second output device while the first job segment is being transferred, with said first transfer module, to said first output device, the second segment including a packet dimension with the packet dimension of the second segment being less than the second job dimension. The invention thus provides a printing system for performing one or more image processing operations on one segment of the job, the one segment being transferred to an image processing section of the printing machine while another segment of the job is being transferred to a storage or output location other than the image processing section. These and other aspects of the invention will become apparent from the following description, the description being used to illustrate a preferred embodiment of the invention when read in conjunction with the accompanying drawings, in which:- Figure 1 is a block diagram depicting a multifunctional, network adaptive printing machine; Figure 2 is a block diagram of a video control module for the printing machine of Figure 1; Figure 3 is a block diagram of a transfer module used in conjunction with the printing machine of Figure 2; Figure 4 is a block diagram of a facsimile card used in conjunction with the printing machine of Figure 2; Figure 5 is a block diagram of a network controller for the printing machine of Figure 1; Figures 6 and 7 represent a flow diagram for a loopback image processing method of the present invention; and Figure 8 is a timing diagram depicting a manner in which a plurality of bus masters can share a video bus, of the printing machine of Figure 1, in a time-shared manner. Referring to Figure 1, a multifunctional, network adaptive printing system is designated by the numeral 10. The printing system 10 includes a printing machine 12 operatively coupled with a network service module 14. The printing machine 12 includes an electronic subsystem 16, referred to as a video control module (VCM), communicating with a scanner 18 and a printer 20. In one example, the VCM 16, which will be described in further detail below, coordinates the operation of the scanner and printer in a digital copying arrangement. In a digital copying arrangement, the scanner 18 (also referred to as image input terminal (IIT)) reads an image on an original document by using a CCD full width array and converts analog video signals, as gathered, into digital signals. In turn, an image processing system 22 (Figure 2), associated with the scanner 18, executes signal correction and the like, converts the corrected signals into multi-level signals (e.g. binary signals), compresses the multi-level signals and preferably stores the same in electronic precollation (EPC) memory 24. Referring again to Figure 1, the printer 20 (also referred to as image output terminal (IOT)) preferably includes a xerographic print engine. In one example, the print engine has a multi-pitch belt (not shown) which is written on with an imaging source, such as a synchronous source (e.g. laser raster output scanning device) or an asynchronous source (e.g. LED print bar). In a printing context, the multi-level image data is read out of the EPC memory 24 (Figure 2) while the imaging source is turned on and off, in accordance with the image data, forming a latent image on the photoreceptor. In turn, the latent image is developed with, for example, a hybrid jumping development technique and transferred to a print media sheet. Upon fusing the resulting print, it may be inverted for duplexing or simply outputted. It will be appreciated by those skilled in the art that the printer can assume other forms besides a xerographic print engine without altering the concept upon which the disclosed embodiment is based. For example, the printing system 10 could be implemented with a thermal ink jet or ionographic printer. Referring specifically to Figure 2, the VCM 16 is discussed in further detail. The VCM 16 includes a video bus (VBus) 28 with which various I/O, data transfer and storage components communicate. Preferably, the VBus is a high speed, 32 bit data burst transfer bus which is expandable to 64 bit. The 32 bit implementation has a sustainable maximum bandwidth of approximately 60 MBytes/sec. In one example, the bandwidth of the VBus is as high as 100 MBytes/sec. The storage components of the VCM reside in the EPC memory section 30 and the mass memory section 32. The EPC memory section includes the EPC memory 24, the EPC memory being coupled with the VBus by way of a DRAM controller 33. The EPC memory, which is preferably DRAM, provides expansion of up to 64 MBytes, by way of two high density 32 bit SIMM modules. The mass memory section 32 includes a SCSI hard drive device 34 coupled to the VBus by way of a transfer module 36a. As will appear, other I/O and processing components are coupled respectively to the VBus by way of transfer modules 36. It will be appreciated that other devices (e.g. a workstation) could be coupled to the VBus by way of the transfer module 36a through use of a suitable interface and a SCSI line. Referring to Figure 3, the structure of one of the transfer modules 36 is discussed in further detail. The illustrated transfer module of Figure 3 includes a packet buffer 38, a VBus interface 40 and DMA transfer unit 42 . The transfer module 36, which was designed with "VHSIC" Hardware Description Language (VHDL), is a programmable arrangement permitting packets of image data to be transmitted along the VBus at a relatively high transfer rate. In particular, the packet buffer is programmable so that the segment or packet can be varied according to the available bandwidth of the VBus. In one example, the packet buffer can programmed to handle packets of up to 64 Bytes. Preferably, the packet size would be reduced for times when the VBus is relatively busy and increased for times when activity on the bus is relatively low. Adjustment of the packet size is achieved with the VBus interface 40 and a system controller 44 (Figure 5). Essentially, the VBus interface is an arrangement of logical components, including, among others, address counters, decoders and state machines, which provides the transfer module with a selected degree of intelligence. The interface 40 communicates with the system controller to keep track of desired packet size and, in turn, this knowledge is used to adjust the packet size of the packet buffer 38, in accordance with bus conditions. That is, the controller, in view of its knowledge regarding conditions on the VBus 28, passes directives to the interface 40 so that the interface can adjust packet size accordingly. Further discussion regarding operation of the transfer module 36 is provided below More particularly, each DMA transfer unit employs a conventional DMA transfer strategy to transfer the packets. In other words, the beginning and end addresses of the packet are used by the transfer unit in implementing a given transfer. When a transfer is complete, the interface 40 transmits a signal back to the system controller 44 so that further information, such as desired packet size and address designations, can be obtained. Referring to Figures 1 and 2, three I/O components are shown as being coupled operatively to the VBus 28, namely a FAX module 48, the scanner or IIT 18, and the printer or IOT 20; however, it should be recognized that a wide variety of components could be coupled to the VBus by way an expansion slot 50. Referring to Figure 4, an implementation for the FAX module, which is coupled to the VBus 28 by way of transfer module 36b, is discussed in further detail. In the preferred embodiment, a facsimile device (FAX) 51 includes a chain of components, namely a section 52 for performing Xerox adaptive compression/decompression, a section 54 for scaling compressed image data, a section 56 for converting compressed image data to or from CCITT format, and a modem 58, preferably manufactured by Rockwell Corporation, for transmitting CCITT formatted data from or to a telephone, by way of a conventional communication line. Referring still to Figure 4, each of the sections 52, 54 and 56 as well as modem 58 are coupled with the transfer module 36b by way of a control line 60. This permits transfers to be made to and from the FAX module 48 without involving a processor. As should be understood, the transfer module 36b can serve as a master or slave for the FAX module in that the transfer module can provide image data to the FAX for purposes of transmission or receive an incoming FAX. In operation, the transfer module 36b reacts to the FAX module in the same manner that it would react to any other I/O component. For example, to transmit a FAX job, the transfer module 36b feeds packets to the section 52 through use of the DMA transfer unit 42 and, once a packet is fed, the transfer module transmits an interrupt signal to the system processor 44 requesting another packet. In one embodiment, two packets are maintained in the packet buffer 38 so that "ping-ponging" can occur between the two packets. In this way, the transfer module 36b does not run out of image data even when the controller cannot get back to it immediately upon receiving an interrupt signal. Referring again to Figure 2, the IIT 18 and IOT 20 are operatively coupled to the VBus 28 by way of transfer modules 36c and 36d. Additionally, the IIT 18 and the IOT 20 are operatively coupled with a compressor 62 and a decompressor 64, respectively. The compressor and decompressor are preferably provided by way of a single module that employs Xerox adaptive compression devices. Xerox adaptive compression devices have been used for compression/decompression operations by Xerox Corporation in its DocuTech® printing system. In practice, at least some of the functionality of the transfer modules is provided by way of a 3 channel DVMA device, which device provides local arbitration for the compression/decompression module. As further illustrated by Figure 2, the scanner 18, which includes the image processing section 22, is coupled with an annotate/merge module 66. Preferably the image processing section includes one or more dedicated processors programmed to perform various desired functions, such as image enhancement, thresholding/screening, rotation, resolution conversion and TRC adjustment. The selective activation of each of these functions can be coordinated by a group of image processing control registers, the registers being programmed by the system controller 44. Preferably, the functions are arranged along a "pipeline" in which image data is inputted to one end of the pipe, and image processed image data is outputted at the other end of the pipe. To facilitate throughput, transfer module 36e is positioned at one end of the image processing section 22 and transfer module 36c is positioned at another end of the section 22. As will appear, positioning of transfer modules 36c and 36e in this manner greatly facilitates the concurrency of a loopback process. Referring still to Figure 2, arbitration of the various bus masters of the VCM 16 is implemented by way of a VBus arbiter 70 disposed in a VBus arbiter/bus gateway 71. The arbiter determines which bus master (e.g. FAX module, Scanner, Printer, SCSI Hard Drive, EPC Memory or Network Service Component) can access the VBus at one given time. The arbiter is made up of two main sections and a third control section. The first section, i.e., the "Hi-Pass" section, receives input bus requests and current priority selection, and outputs a grant corresponding to the highest priority request pending. The current priority selection input is the output from the second section of the arbiter and is referred to as "Priority Select". This section implements priority rotation and selection algorithm. At any given moment, the output of the logic for priority select determines the order in which pending requests will be serviced. The input to Priority Select is a register which holds an initial placement of devices on a priority chain. On servicing requests, this logic moves the devices up and down the priority chain thereby selecting the position of a device's next request. Control logic synchronizes the tasks of the Hi-Pass and the Priority Select by monitoring signals regarding request/grant activity. It also prevents the possibility of race conditions. Referring to Figure 5, the network service module 14 is discussed in further detail. As will be recognized by those skilled in the art, the architecture of the network service module is similar to that of a known "PC clone". More particularly, in the preferred embodiment, the controller 44, which preferably assumes the form of a SPARC processor, manufactured by Sun Microsystems, Inc., is coupled with a standard SBus 72. In the illustrated embodiment of Figure 5, a host memory 74, which preferably assumes the form of DRAM, and a SCSI disk drive device 76 are coupled operatively to the SBus 72. While not shown in Figure 5, a storage or I/O device could be coupled with the SBus with a suitable interface chip. As further shown in Figure 5, the SBus is coupled with a network 78 by way of an appropriate network interface 80. In one example, the network interface includes all of the hardware and software necessary to relate the hardware/software components of the controller 44 with the hardware/software components of the network 78. For instance, to interface various protocols between the network service module 14 and the network 78, the network interface could be provided with, among other software, Netware® from Novell Corp. In one example, the network 78 includes a client, such as a workstation 82 with an emitter or driver 84. In operation, a user may generate a job including a plurality of electronic pages and a set of processing instructions. In turn, the job is converted, with the emitter, into a representation written in a page description language, such as PostScript. The job is then transmitted to the controller 44 where it is interpreted with a decomposer, such as one provided by Adobe Corporation. Referring again to Figure 2, the network service module 14 is coupled with the VCM 16 via a bus gateway 88 of the VBus arbiter/bus gateway 71. In one example, the bus gateway comprises a field programmable gate array provided by XILINX corporation. The bus gateway device provides the interface between the host SBus and the VCM VBus. It provides VBus address translation for accesses to address spaces in the VBus real address range, and passes a virtual address to the host SBus for virtual addresses in the host address range. A DMA channel for memory to memory transfers is also implemented in the bus gateway. Among other things, the bus gateway provides seamless access between the VBus and SBus, and decodes virtual addresses from bus masters, such as one of the transfer modules 36, so that an identifier can be obtained from a corresponding slave component. It will be appreciated by those skilled in the art that many components of the printing system 10 are implemented in the form of a single ASIC. Referring to Figures 2, 3 and 5, further discussion regarding DMA transfer of each of the transfer modules 36 is provided. In particular, in one example, the images of a job are stored in the host memory 74 as a series of blocks which are stored in the EPC memory 24. Preferably, each block comprises a plurality of packets. In operation, one of the transfer modules 36 is provided, by the controller 44, with the beginning address of a block and the size of the block. In turn, for that block, the transfer module 36 effects a packet transfer and increments/decrements a counter. This procedure is repeated for each packet of the block until the interface 40 determines, by reference to the counter, that the last packet of the block has been transferred. Typically, for each stored image, several blocks are transferred, in a packet-by-packet manner, as described immediately above. Referring to Figures 2, and 5-7, one aspect of operation of the above described printing system is discussed. In particular, Figures 6 and 7 relate to an advantageous manner in which the transfer modules 36 are employed to facilitate a loopback approach for image processing of jobs which are captured at a location other than the scanner 18. In the illustrated embodiment of Figure 6, a job is captured in the network service module 14 (step 90). This is not to imply, however, that the loopback operation could not be performed, with equal facility, on a job captured at another location, such as the FAX module 48. Upon capturing the network job, it is either spooled in, for example, the SCSI disk 76 for eventual decomposition (steps 92, 94) or decomposed with the controller 44 for storage in the host memory 74 (steps 92, 96). If the process branches to step 94, a return is encountered. Accordingly, functions are performed, relative to other jobs, until the system is ready to decompose the spooled job. When it is time to decompose the spooled job, processing of the spooled job will resume at step 96. Assuming that the job is decomposed, and image processing is required by the job, one or more transfer modules 36 are programmed, via step 98, for transferring electronic pages of the job to one or more destinations. It should be appreciated that, in one example, it may be desirable to program transfer module 36e for transferring an electronic page to the image processing section 22 and to program transfer module 36c for transferring the resulting image processed electronic page to EPC memory 24. It will be appreciated that other ones of the transfer modules could be programmed in a manner that would enhance system concurrency. For example, in the case where the image processed electronic page is transferred to EPC memory, the transfer module 36a could be programmed to spool a copy of the image processed electronic page in the SCSI disk 34. At step 100, it is determined whether a current electronic page requires image processing. Initially, this determination would be made for a first page of the job. Assuming that the current electronic page does not require image processing, it is determined, at step 102, whether the current electronic page is to be transferred to a location other than the host memory 74. In one example, it may be desired to transfer the electronic page to the EPC memory 24 for eventual output (at, for example, the printer 20 or the facsimile device 51) or storage (in the SCSI disk 34). If the current page is to be transferred, then step 104 is executed, otherwise, the process proceeds to step 106 (Figure 7) so that further electronic pages can be, if necessary, image processed and/or transferred (step 107). Assuming that the current electronic page is to be image processed (Figure 6), the image processing section 22 is set up, via step 108, to perform one or more selected image processing operations on a selected electronic page. In response to setting up appropriate image processing control registers, at step 108, the current electronic page is transferred, with the transfer module 36e, to the image processing section 22 (step 110) and, at step 112, one or more programmed image processing operations are performed on the current electronic page. Upon completion of the image processing operations, it is determined, at step 114, whether the image processed electronic page should be transferred to storage (e.g. EPC memory 24 or host memory 74) or an output device (e.g. printer 20 or FAX module 48). If the current electronic page is to be stored, then a decision is made, at step 118 (Figure 7), as to whether the current electronic page is to be stored. For the most part, the printing system compresses the current electronic page, to promote efficient storage, unless a print of the current electronic page is to be produced. Indeed, even when printing a job, the corresponding electronic pages are often compressed and then stored in the EPC memory for "print readiness". With this approach a selected number of job copies can be printed without capturing/processing the job more than once. In some instances, however, it may be desirable to produce a single print from a current electronic job. For example, a single print may be produced for purposes of proofing. If compression is required, then the current electronic page is passed to the compressor 62, at step 120, otherwise, a storage destination of the current electronic page is determined directly, at step 122. If the decision at step 122 is in the positive, then the process proceeds to step 124, where the current electronic page is transferred to the EPC memory, and then to step 106, where a check is made to determine if any more electronic pages exist, for the job, in the host memory 74. If the decision at step 122 is in the negative, then the current electronic page is transferred to a designated storage location other than the EPC memory (step 126), such as the host memory 74, and the process proceeds to step 106. Assuming that the current electronic page is not going to be stored, it is determined, at step 130, whether the current electronic page is to be printed. If the current electronic page is to be printed, then the same is transferred to the printer 20 for marking (step 131), otherwise, it is determined, at step 132, whether the current electronic page is to be compressed. As mentioned above, if an electronic page is not printed, then, typically, it is compressed. Assuming compression is required, the process proceeds to step 134, otherwise a transfer of the current electronic page to another location is performed directly at step 136. In either case, the process proceeds eventually to step 106. If all of the electronic pages in the host memory have been read, then the routine of Figures 6 and 7 is ended through a return. If, on the other hand, more pages need be transferred, then the process proceeds to step 107 where a next current electronic page is either processed or, if necessary, transferred away from host memory to another storage location or an output device. Referring to Figure 8, another aspect of operation of the above described printing system is discussed. The illustrated timing diagram of Figure 8 shows how each bus master on the Vbus 28 shares the available bandwidth by time multiplexing the high speed bus and sending a fragment of a job or image file every time the bus master has access to the bus. Each time one of the bus masters receives a grant of the bus, via the arbiter 70, the bus master sends a packet of information on the bus while it continues to receive data from its respective interface. Packet sizes are programmable in sizes ranging from 4 bytes to 64 bytes per packet. In the example of Figure 8, each device requires approximately 10 Mbytes/sec of bandwidth from the Vbus. When bus masters, each having a bandwidth requirement of 10 Mbytes/sec, are concurrently using the bus, the total bandwidth used on the bus is 50 Mbytes/sec. This leaves approximately 50 Mbytes/sec available bandwidth left on the bus. The remaining bus bandwidth can be used by any other bus masters wishing to transfer data on the Vbus. The large amount of available bandwidth also eliminates any contention problems which can arise with an over-utilized bus. Referring to both Figures 2 and 8, it will be appreciated that the above-described multiplexing permits at least two jobs to be processed within a relatively brief time interval. For all intents and purposes, it would appear to a printing system user that the jobs were being operated on simultaneously. More specifically, a first job could be stored in the EPC memory 24 and a second job could be stored in the host memory 74. As soon as an image data packet of the second job is buffered in the packet buffer of transfer module 36e, a packet of image data from the first job can be delivered to the printer 20, by use of transfer module 36d, concurrently with image data being delivered to the image processing section 22. As will be further appreciated, by reference to Figure 8, copies of packets of the first job could be delivered to various other bus masters in a time-sharing or multi-plexed fashion. Numerous features of the disclosed embodiment will be appreciated by those skilled in the art: In one feature of the disclosed embodiment loopback image processing of a job is achieved with a high level of concurrency. In particular, an image processing section, which includes an input and an output, is flanked by a first transfer module and a second transfer module. Once a first job segment has been transmitted to the image processing section and image processed, the image processed first segment can be "pulled" out of the image processing section, with second transfer module, while a second job segment, buffered in the first transfer module, is being "pushed" into the image processing section with the first transfer module. In another feature of the disclosed embodiment, the size of each of the first segment and the second segment can be adjusted in accordance with the degree to which bus masters are seeking access to a video bus. That is, each of the transfer modules includes a programmable buffer so that each segment can be set to a given packet size. Accordingly, when a relatively large number of bus masters is seeking access to the bus, the packet size of each segment can be kept relatively low so that all of the bus masters can access the video bus within a relatively brief interval. On the other hand, when a relatively few bus masters are seeking access to the video bus, the packet size of each segment can be set relatively high so that higher levels of image data can be pushed through the transfer modules. In yet another feature of the disclosed embodiment, a printing machine with a network module and a video control module is provided. In one example, a controller, which services both of the modules, is provided in the network module. By placing the single controller in the network module, a desirable level of efficiency is obtained. For example, various functions can be performed in the video control module, on one or more jobs, while another function is being performed, with the controller, on yet another job. In yet another feature of the disclosed embodiment, a facsimile device is coupled with one of the transfer modules. In some known applications, a processor or controller is used to service a facsimile card. By combining the facsimile device with the transfer module, once the transfer module has been programmed suitably by the controller, transfers, to or from the facsimile device, can be performed independently of the controller. In another feature of the disclosed embodiment multiple segments of multiple jobs can be simultaneously outputted from multiple output devices. More particularly, once a segment of a first job is buffered in a first transfer module, a second segment can be transferred to a second output device while the first segment is being transferred to the first output device. This approach permits, in one example, a relatively slow device, such as a printer, to work on a part of a first job while another output device is servicing another part of another job. Indeed, when the bandwidth of a video bus is great enough, the buffers of the first and second transfer modules can be maintained at levels that permit simultaneous output from the first and second output devices.

Claims: A printing system (10), including a controller (16), for processing one or more images of a job with the job being stored in a job storage area and the images being represented by image signals, comprising: a video bus (28) for transmitting image signals of the job, represented by one or more segments, from the job storage area to one of a plurality of destinations; an image processing section (22), communicating with said video bus, for performing one or more image processing operations on at least one image associated with the job; a first transfer module (36A), communicating with said video bus, including: a first buffer (38) for buffering a first set of image signals representing a first segment of the job, and a first programmable direct memory access apparatus (42), responsive to the controller, for transferring the first segment of the job from said first buffer to said image processing section, wherein, in response to transferring the first segment, a second set of image signals, representing a second segment of the job is buffered in said first buffer; and a second transfer module (36D), communicating with both said video bus and said second output device, said second transfer module being disposed in parallel with said first transfer module and including a second programmable direct memory access apparatus, responsive to the controller, for transferring the first segment of the job from said image processing section, to a selected one of a storage area and an output device, while the second segment of the job is being transferred from said first buffer to said image processing section. The printing system of claim 1, in which said second transfer module includes a second buffer for buffering the image processed first segment, further comprising a bus master communicating with said video bus, wherein the image processed first segment is buffered in said second buffer concurrent with said bus master accessing said video bus. The printing system of claim 1, in which each of the first segment and the second segment includes a preselected size, wherein said controller programs the first programmable direct memory access apparatus so that the preselected size of each of the first segment and the second segment is maintained at or below a preselected level. The printing system of claim 1, wherein each of the first segment and the second segment includes a preselected size with the preselected size of each of the first segment and the second segment being equal. The printing system of claim 1, in which the printing system is partitioned into a video control module,and a network service module, the video control module including both said first transfer module and said second transfer module, and said network service module being adapted to receive image signals from a network connection, wherein said controller is disposed in said network service module and is used to process a third segment of the job while both the first and second segments are being processed in the video control module. The printing system of claim 1, in which the printing system is partitioned into a video control module, and a network service module, the video control module including both said first transfer module and said second transfer module, and said network service module being adapted to receive image signals from a network connection, wherein the job storage area is disposed in the network service module and a second job is received in the job storage area while a segment of the first job is being transferred to said image processing section. The printing system of claim 1, in which the printing system is partitioned into a video control module, and a network service module, the video control module including both said first transfer module and said second transfer module, and said network service module being adapted to receive image signals from a network connection, wherein said controller is disposed in said network service module and said image processing section includes a plurality of programmable registers for respectively controlling image processing operations to be performed on segments of the job, the plurality of programmable registers being programmed with the controller to perform the one or more image processing operations on the at least one image associated with the job. A printing system (10), including a controller (16), for managing respective output operations of a first job and a second job with each of the first and second jobs having a size and being represented by image signals, comprising: a video bus (VBus) for transmitting image signals of the first and second jobs thereacross; a first storage area (24), communicating with said video bus, for storing the second job; a first output device (51) and a second output device (IOT), each of said first and second output devices communicating with said video bus; a first transfer module (36B), communicating with both said video bus and said first output device, including: a first buffer for buffering a first set of image signals representing a first segment of the first job, the first segment including a packet, the packet size of the first segment being less than the first job size, and a first programmable direct memory access apparatus, responsive to the controller, for transferring the first segment of the job from the first buffer to said first output device, and a second transfer module (36D), communicating with both said video bus and said second output device, said second transfer module being disposed in parallel with said first transfer module, said second transfer module including a second programmable direct memory access apparatus, responsive to the controller, for transferring a second set of image signals representing a second segment of the second job from said first storage area to said second output device while the first job segment is being transferred, with said first transfer module, to said first output device, the second segment including a packet with the packet size of the second segment being less than the second job size. The printing system of claim 8, in which said second transfer module includes a second buffer for buffering the image processed first segment, further comprising a bus master communicating with said video bus, wherein the second segment is buffered in said second buffer concurrent with said bus master accessing said video bus. The printing system of claim 8, wherein said controller programs the first programmable direct memory apparatus in such a manner that the packet dimension of each of the first segment and the second segment is maintained at or below a preselected level. The printing system of claim 8, in which the printing system is partitioned into a video control module, and a network service module, the video control module including both said first transfer module and said second transfer module, and said network service module is adapted to receive image signals from a network connection, further comprising a second job storage for storing the first job with the first job storage area being disposed in the network service module and the second job storage area being disposed in the video control module. The printing system of claim 8, in which a selected one of said first output device and said second output device comprises a facsimile device, wherein an electronic representation of the first or second segment is transmitted from said facsimile device to a facsimile receiving device.

Inventors: AMBALAVANAR SAMUEL D, CHAPIN ROBERT M, FRUMUSA ANTHONY M, MANSOORI MEHDI, MOHABIR DANIEL A, ROMANO KENNETH D, AMBALAVANAR, SAMUEL D., CHAPIN, ROBERT M., FRUMUSA, ANTHONY M., MANSOORI, MEHDI, MOHABIR, DANIEL A., ROMANO, KENNETH D.
Applicants: XEROX CORP, XEROX CORPORATION
Application year: 1995
Main classification: H04N1
IPC codes: G06F3, H04N1