|
|
|
Coherency (e.g., same view to multiple users) |
Printing images in an optimized manner7016059
Abstract
A method and system of producing image prints and other physical manifestations of images from an order specifying one or more recipients and, for each specified recipient, a set of one or more images associated with that recipient. For each recipient specified by the order, the images associated with the recipient are separated into at least one printable unit of images. Each printable unit of images can be scheduled for image processing and/or printing in an optimized manner (e.g., according to a global scheduling algorithm and/or a "just-in-time" scheduling algorithm). Also, for each recipient, the images associated with the recipient may be separated into one or more sub-orders, and each sub-order may be separated into one or more sub-batches.
Claims
What is claimed is:
1. A method of distributing image prints printed on a plurality of printers to a plurality of recipients, the method comprising:
receiving an order specifying a plurality of recipients and, for each specified recipient, a set of one or more images associated with that recipient; and
for each recipient specified by the order, separating the images associated with the recipient into at least one printable unit of images to generate a contiguous run of prints for the recipient.
2. The method of claim 1 further comprising, for each printable unit, selecting a printer on which to print the printable unit.
3. The method of claim 2 further comprising, for each printable unit, printing at least one copy of each image in the printable unit on the selected printer.
4. The method of claim 1 wherein each image has associated print parameters.
5. The method of claim 4 wherein the images in a printable unit of images have print parameters that allow the printable unit to be continuously printed.
6. The method of claim 1 wherein images in a first recipient's image set differ from images in a second recipient's image set.
7. The method of claim 4 wherein print parameters of a first recipient's image set differ from print parameters of a second recipient's image set.
8. The method of claim 7 wherein print parameters include one or more of print size, number of copies, and/or print finish.
9. The method of claim 1 wherein print parameters differ among images within an image set.
10. The method of claim 9 wherein print parameters include one or more of print size, number of copies, and/or print finish.
11. The method of claim 1 wherein each image set comprises an arbitrary grouping of images designated by a user.
12. The method of claim 1 further comprising, for each recipient, separating the images associated with the recipient into one or more sub-orders.
13. The method of claim 12 wherein separating the images associated with the recipient into at least one printable unit of images includes, for each sub-order, separating the images associated with the sub-order into one or more sub-batches, each sub-batch representing a printable unit.
14. The method of claim 13 wherein the images in a sub-batch have print parameters that allow the sub-batch to be continuously printed.
15. The method of claim 13 wherein a plurality of orders is received, the images associated with each recipient specified in each order are divided into at least one sub-order, and each sub-order is divided into at least one sub-batch.
16. The method of claim 15 further comprising assembling at least one batch including one or more sub-batches, wherein each sub-batch can be continuously printed on the same type of printer.
17. The method of claim 16 wherein the images in a batch have print parameters that allow the batch to be continuously printed.
18. The method of claim 16 wherein the at least one batch includes sub-batches from two or more different sub-orders.
19. The method of claim 16 further comprising scheduling the batches to be printed in a predetermined ordering.
20. The method of claim 19 wherein each order includes image data and control data.
21. The method of claim 20 wherein the control data includes at least one of print parameters, user contact information, recipient information, payment information, and message information.
22. The method of claim 21 wherein the image data includes pixel data for the images in the order.
23. The method of claim 22 wherein the control data is used to control the printing of the images.
24. The method of claim 20 further comprising, before printing each image:
correcting the image data for that image using information including the control data; and
calibrating the image data using information including the control data and at least one characteristic of the printer on which the image is to be printed.
25. The method of claim 20 further comprising, for each batch, storing the image data for the batch in a cache that is local to the selected printer for that batch.
26. The method of claim 25 further comprising, for each batch, placing the control data for the batch in a queue associated with the selected printer for that batch.
27. The method of claim 26 further comprising, for each batch that is placed in a queue, sending the image data associated with the images included in that batch to an image processor associated with the selected printer for that batch.
28. The method of claim 27 wherein, for each batch that is placed in a queue, sending the image data for that batch to the image processor associated with that queue before the batch reaches the front of the queue.
29. The method of claim 1 further comprising verifying that an image print was printed with the correct image.
30. The method of claim 1 further comprising checking the quality of the image print.
31. The method of claim 13 further comprising:
combining the image prints from at least two sub-batches from the same sub-order; and
distributing the combined image prints to the recipient associated with the at least two sub-orders.
32. The method of claim 1 further comprising printing a destination identifier print that identifies the specified recipient for a corresponding sub-batch of image prints.
33. The method of claim 32 wherein the destination identifier print delimits the corresponding sub-batch.
34. The method of claim 32 wherein printing the destination identifier print comprises printing one or more of the following items: a shipping address, a recipient's name, a print index, a bar code, a textual message and/or print re-ordering information.
35. A method of generating physical manifestations of digital content on a plurality of output devices, the method comprising:
receiving an order specifying a plurality of recipients and, for each specified recipient, a set of digital content associated with that recipient;
for each recipient specified by the order, separating the digital content associated with the recipient into at least one generatable unit of digital content having a contiguous run of prints for the recipient; and
for each generatable unit of digital content, generating a physical manifestation of the unit of digital content.
36. The method of claim 35 further comprising, for each generatable unit of digital content, selecting an output device on which to generate a physical manifestation of the unit of digital content.
37. The method of claim 36 wherein each generatable unit of digital content is generated on the output device selected for that generatable unit.
38. The method of claim 35 further comprising distributing the physical manifestations to their respective recipients.
39. The method of claim 35 wherein a set of digital content comprises one or more digital images.
40. The method of claim 39 wherein the physical manifestation of the set of digital content comprises photographic prints of the one or more digital images.
41. The method of claim 40 wherein the images in a generatable unit of images have generation parameters that allow the generatable unit to be continuously generated.
42. The method of claim 41 wherein the print parameters include one or more of print size, number of copies, and/or print finish.
43. A print distribution system comprising:
a plurality of printers;
a front-end computer sub-system for receiving an order specifying a plurality of recipients and, for each specified recipient, a set of one or more images associated with that recipient; and
a scheduler, connected to the front-end computer sub-system and the plurality of printers, that for each recipient specified by the order (a) separates the images associated with the recipient into at least one printable unit of images to generate a contiguous run of prints for the recipient, and (b) designates a printer on which each printable unit is to be printed.
44. The system of claim 43 wherein each image has associated print parameters.
45. The system of claim 44 wherein the images in a printable unit of images have print parameters that allow the printable unit to be continuously printed.
46. The system of claim 43 wherein images in a first recipient's image set differ from images in a second recipient's image set.
47. The system of claim 43 wherein print parameters of a first recipient's image set differ from print parameters of a second recipient's image set.
48. The system of claim 47 wherein print parameters include one or more of print size, number of copies, and/or print finish.
49. The system of claim 47 wherein print parameters differ among images within an image set.
50. The system of claim 49 wherein print parameters include one or more of print size, number of copies, and/or print finish.
51. The system of claim 43 wherein each image set comprises an arbitrary grouping of images designated by a user.
52. The system of claim 43 wherein the scheduler:
for each recipient, separates the images associated with the recipient into one or more sub-orders; and
for each sub-order, separates the images associated with the suborder into one or more sub-batches, each sub-batch representing a printable unit.
53. The system of claim 52 wherein:
the front-end computer subsystem receives a plurality of orders; and
the scheduler, for each recipient, separates each order into one or more sub-orders and, for each sub-order, separates each sub-order into one or more sub-batches.
54. The system of claim 53 wherein the scheduler assembles at least one batch including one or more sub-batches, wherein each sub-batch can be continuously printed on the same type of printer.
55. The system of claim 54 wherein the scheduler schedules the batches to be printed in a predetermined ordering.
56. The system of clam 55 wherein the scheduler uses a global scheduling algorithm.
57. The system of claim 55 wherein the scheduler uses a just-in-time scheduling algorithm.
58. The system of claim 55 further comprising a plurality of line controllers, each line controller being associated with a printer and having a queue for storing the batches until they are printed by the printer.
59. The system of claim 58 wherein each order includes image data and control data.
60. The system of claim 59 wherein the control data includes at least one of print parameters, user contact information, recipient information, payment information, and message information.
61. The system of claim 60 wherein the image data includes pixel data for the images in the order.
62. The system of claim 61 further comprising an image cache local to the scheduler for caching the image data.
63. The system of claim 58 further comprising an image processor associated with at least one of the line controllers for processing the image data and at least a portion of the control data prior to printing the image.
64. The system of claim 63 wherein the image processor further comprises image processor software in a computer-readable medium comprising instructions for causing the image processor to perform the following operations:
correct the image data using information including the control data; and
calibrate the image data using information including the control data and at least one characteristic of the designated printer.
65. The system of claim 64 wherein the image processor software further comprises instructions for causing the image processor to generate a destination identifier image, wherein the destination identifier image can be used to print a destination identifier print that identifies the specified recipient for a corresponding sub-batch of image prints and is generated from at least the sub-batch's control data.
66. The system of claim 65 wherein the destination identifier image for each sub-batch is generated from the sub-batch's control data and image data.
67. The system of claim 64 wherein the image cache includes software in a computer-readable medium comprising instructions for causing the image cache to perform the following operation:
in response to a message from the scheduler indicating that the scheduler has sent control data for a batch to the line controller, send the image data for that batch to the image processor associated with that queue.
68. The system of claim 43 further comprising a backprinter for backprinting at least one image print.
69. The system of claim 68 wherein the backprinter backprints non-image information on each image print.
70. The system of claim 69 wherein the non-image information includes at least one of an image number associated with the image, a printable unit number associated with the printable unit from which the image print was printed, reorder information, a bar code, and a message.
71. The system of claim 70 wherein the message is an advertisement.
72. The system of claim 71 wherein the bar code encodes at least one of an audio message, the image number associated with the image, and the printable unit number associated with the printable unit from which the image print was printed.
73. The system of claim 59 further comprising a digital camera for capturing data about at least one of the image prints.
74. The system of claim 73 wherein the camera is a low-resolution camera.
75. The system of claim 73 wherein the captured data is used to verify that the an image print was printed with the correct image data.
76. The system of claim 73 wherein the captured data is used to check the quality of the image print.
77. The system of claim 43 further comprising an inverter that inverts each image print prior to backprinting.
78. The system of claim 77 further comprising a curl reduction equipment that reduces curling of the image print prior to backprinting.
79. The system of claim 78 wherein the curl-reduction equipment uses suction to reduce curling of the image print.
80. The system of claim 79 wherein the curling-reduction equipment device includes a vacuum table.
81. The system of claim 77 further comprising an alignment device that aligns each image print prior to backprinting.
82. The system of claim 81 wherein the alignment device includes:
an alignment wall against which each image print is to be aligned prior to backprinting; and
a skew conveyor that receives each image print after the image print has been printed and moves the image print towards the alignment wall as the skew conveyor conveys the image print to the backprinter.
83. The system of claim 82 further comprising an alignment sensor positioned laterally inward from the alignment wall that detects whether a portion of the image print is positioned immediately beneath the alignment sensor.
84. The system of claim 83 wherein the alignment sensor is a photosensor that optically senses the presence of the image print.
85. The system of claim 43 further comprising a conveyor on which image prints are stacked after printing.
86. The system of claim 85 further comprising a controller, connected to the conveyor, that advances the conveyor so that a new stack can be stacked after all the image prints in a printable unit have been stacked on the conveyor.
87. The system of claim 86 further comprising a plurality of bins, positioned on the conveyor, so that the image prints for a printable unit are stacked in a bin.
88. The system of claim 87 wherein the bin comprises:
a base for supporting the bin when the bin is placed on a surface of the conveyor;
a first bottom wall connected to the base so that the first wall has a pitch incline with respect to the surface of the conveyor; and
a second bottom wall connected to a first end of the first wall at one end, the second wall and first wall forming an angle so that image prints received in the bin tend to stack on the first bottom wall with an edge of each image print registering with the second bottom wall.
89. The system of claim 52 further comprising a storage device in which one or more sub-batches can be stored for later combination with other sub-batches.
Description
TECHNICAL FIELD
This application relates to printing images, for example, digital and/or physical copies of images.
BACKGROUND
Traditionally, conventional photo-finishing processes operate in a "linear" manner in which an ordered set of prints are produced from a linear, ordered set of negative images (i.e., a strip of exposed and developed film). For example, in a conventional photo-finishing process, a set of negative images are developed from an exposed film. Typically, the negative images are arranged on the developed film (referred to as a "negative") in an ordered, linear set. For example, a negative 130 is shown in FIG. 1 with a set of negative images 132 arranged sequentially on the film. After the negative has been produced in the developing step, prints are printed using the negative.
Modern film-processing laboratories are designed to process large reels of film. Each large reel of film is constructed by splicing together several (e.g., around 100 or more) units of film that are received from several customers. Conventional automated printing equipment, however, typically can only associate one set of processing parameters (such as finish, size, and number of copies) with each reel of film that is being processed. As a result, each print produced from the same reel of film is produced with the same processing parameters. For example, as shown in FIG. 1, such conventional automated printing equipment can produce a set 134 of prints in which each print in the set 134 is intended for the same recipient 136 and is printed once as a 4"×6" print with a glossy finish. In a separate processing run in which different processing parameters are entered (e.g., in a subsequent pass of the same reel of film through the automated printing equipment), a second set 138 of prints can be produced from the negative 130 in which each print in the set 138 is intended for the same recipient 140 and is printed three times as a 4"×6" print with a matte finish. In yet another separate processing run in which different processing parameters are entered, a third set 142 of prints can be produced from the negative 130 in which each print in the set 142 is intended for the same recipient 144 and is printed once as a 5"×7" print with a glossy finish.
Because conventional automated photo-finishing equipment and techniques typically require that each print produced from the same film be produced with the same processing parameters, conventional film-processing labs typically require their customers to choose a single set of processing parameters that will be applied to all the prints to be generated from a given unit of film. In other words, although conventional photo-processing labs allow customers to order "double prints" (i.e., two copies of each image on a unit of film), the customers typically are not able to specify separate processing parameters for the two sets of prints. For example, the customer is not able to specify that one of the sets of prints is to be printed as 4"×6", glossy prints for the customer's parents and that the other set of prints is to be printed as 5"×7", matte prints for the customer. Instead, the customer typically only can specify one set of processing parameters for both sets of prints (e.g., 4"×6", glossy prints for the customer). Also, customers typically are not allowed to specify processing parameters on a per-image basis (e.g., customers cannot select certain images to be printed twice while the rest of the images in the unit of film are to be printed once or not all). Therefore, if a customer would like to get two prints of certain images within a unit of film, the customer typically has to order two prints of every image in the unit of film. Likewise, the customer typically is unable to specify that only certain images in the unit of film are to be printed; instead, the customer will have to order, and pay for, prints of all the images in a given unit of film.
Moreover, information about the images in a given reel of film (e.g., processing parameters, which customer is associated with a particular group of images, etc.) typically is not indicated on the negative film itself. Thus, a technician in the lab cannot detect errors (e.g., the use of incorrect processing parameters, the association of an incorrect customer with a group of images, etc.) using only the film; instead, other ways of keeping track of such information must be used. Typically, bar codes or other records are kept with each reel of film during processing to indicate which customer's order is associated with that reel. For example, the tape that is used to splice a unit of film onto the reel of film typically includes a bar code that is used to associate a customer with the unit of film. Also, typically these bar codes or other records must be maintained in a precise order so that the prints produced from the reel of film can be associated with the proper customer. If the bar codes or other records are misplaced or somehow get out of order, the prints produced from the reel of film may be associated with the incorrect customer.
After the film has been developed and the prints have been printed, the negatives are cut into strips, typically from about 5 to 7 inches in length, and are returned to the customer along with the prints. If the user wishes to have additional prints (often referred to as "reprints") made, the customer can take the strips of negatives to a photo-finishing lab and request that particular reprints be made from the negative strips. Typically, when ordering reprints, the customer can specify some of the processing parameters (e.g., finish, number of copies, and size) on a per-image basis. However, typically all reprints ordered from a single set of negative strips must be intended for the same recipient (i.e., the customer ordering the reprints). Also, many customers find it inconvenient to keep track of all of their negatives; indeed, customers often lose the negative strips.
Typically, after receiving negative strips from a customer, a lab technician tapes the negative strips to a punch tape, which acts as a carrier for the negative strips. The technician must manually identify each negative image in the negative strip from which a reprint is to be created and punch a set of punches in the punch tape next to each of the identified negative images specifying the particular processing parameters designated by the customer. The punch tape (with the negative strips taped to it) then is run through reprint equipment, which produces the specified prints based on the punches. Such conventional processes used by labs to create reprints from negative strips, however, are labor intensive and prone to error.
One increasingly popular alternative to conventional, film-based photography is digital photography. A digital camera 108, shown in FIG. 2, enables users to take pictures (i.e., images), which are saved in memory (not shown) within the digital camera 108 in a digital (electronic) format. After taking and storing the images, the user can connect the digital camera 108 to a computer system 100 in order to upload the digital images to the computer's disk drive or other non-volatile memory 110. Once the digital images are uploaded to the computer system 100, the user can erase the digital images from the memory of the digital camera 108 so that the user can take and store additional images using the digital camera 108.
The computer system 100 typically includes a hardware setup for executing software that allows a user to perform tasks such as communicating with other computer users, accessing various computer resources, and viewing, creating, or otherwise manipulating electronic content—that is, any combination of text, images, movies, music or other sounds, animations, 3D virtual worlds, and links to other objects. The system includes various input/output (I/O) devices (mouse 103, keyboard 105, display 107) in addition to the digital camera 108 and a general purpose computer 100 having a central processor unit (CPU) 121, an I/O unit 117 and a memory 109 that stores data and various programs such as an operating system 111, and one or more application programs 113. The computer system 100 also typically includes non-volatile memory 110 (e.g., flash RAM, a hard disk drive, and/or a floppy disk or other removable storage media) and a communications card or device 123 (e.g., a modem or network adapter) for exchanging data with a network 127 via a communications link 125 (e.g., a telephone line).
In addition to taking digital pictures with a digital camera 108, users can obtain digital images, for example, of film-based prints from a traditional camera, by sending an exposed film into a photo-finishing service, which develops the film to make prints and then scans the prints or negatives to generate digital image files. The digital image files then can be transmitted back to the user by e-mail or on a CD-ROM, diskette, or other removable storage medium.
In any event, once the digital images are stored on the computer 100, a user can perform various operations on them. For example, an image viewer application can be used to view the images or a photo editor application can be used to touch-up or otherwise modify the images. In addition, an electronic messaging (e.g., e-mail) application can be used to transmit the digital images to other users.
In addition to viewing the digital images on the computer display 107, users often desire to have hard copies (physical prints) made of digital images. Such hard copies can be generated locally by the user using output devices such an inkjet printer or a dye sublimation printer. In addition, users can transmit digital images (e.g., either over a computer network or by using a physical storage medium such as a floppy disk) to a photo-finishing service, which can make hard copies of the digital images and send them (e.g., by U.S. Mail or courier service) back to the user.
FIGS. 3A-3F show a sequence of screen shots that a user might encounter when transmitting digital images to a photo-finishing service to have hard copies (prints) made of the images. In FIG. 3A, the user first encounters a contact information window 200 in which the user must enter several items of contact information such as first and last names 202, 204, address 206, city 208, state 210, country 210, phone 214, fax 216, and e-mail address 218. This information typically is required by the photo-finishing service for purposes of billing and shipping.
After the user has entered the required information, the user presses the "Next" button 220 to arrive at the next screen—an image selection window 222 as shown in FIGS. 3B and 3C. In the image selection window 222, the user designates the specific images of which hard copies are to be made. The digital images either can be selected from among the images stored on the user's computer by clicking the "Select Image . . . " button 230 or they can be acquired from a digital camera or scanner attached to the user's computer by clicking the "Acquire Image . . . " button 232. Once selected, the images can be viewed and/or cropped by clicking on the "View/Crop" button 234.
The user can designate the hard copy format and other parameters (e.g., size, number of copies, paper type) on a per-image basis. That is, for each selected image, the user must specify the hard copy format and other parameters by selecting or entering the desired options using drop-down list 224 and text box 226. This approach requires the user to go through the option selection process multiples times in order to order multiple images. The selected images and their associated parameters are shown in display area 228. Typically, each order for prints must meet a minimum order amount 223 (e.g., five dollars).
After the images and their respective hard copy parameters have been selected, the user clicks the Next button 236 and a shipping and payment information window 238 is presented. In this window 238, the user selects a desired shipping method from drop-down list 240 and specifies a method of payment and associated verification information in text boxes 242, 244, 246 and 248.
After this information has been provided, the user clicks the Next button 250 and is presented with an order confirmation window as shown in FIG. 3E. The order verification window 250 allows the user to view and confirm the order including the images selected and their respective parameters in display area 252, as well as the price of the order 254. If the user is satisfied with the order, the user clicks the Finish button 256 to complete the order.
Upon completing the order, the images are uploaded to the photo-finishing service as indicated by the upload window 258 in FIG. 3F. Once the images are uploaded, the photo-finishing service arranges to have prints made of the selected images and to have the prints mailed to the recipient and address specified in the contact information window 200. If the user desires to have prints of the same (or different) images sent to another person (e.g., a family member or friend), the user typically must repeat the entire order generating process represented by FIGS. 3A-3F. Generally, repeating the ordering process to send prints to another person involves entering a considerable amount of redundant information, meeting the minimum order amount for each order, and incurring separate charges on the user's credit card (or other financial instrument).
The present inventors recognized that it would be advantageous to take a single multiple-recipient order for image prints, break it down into sub-orders corresponding to a single recipient, break down each sub-order into printable units (referred to as "sub-batches") having matching processing parameters, and scheduling and printing the sub-batches on automated printing equipment in an optimized manner.
SUMMARY
Implementations may include various combinations of the following features.
In one aspect, a method of distributing image prints printed on a plurality of printers to a plurality of recipients may include receiving an order specifying one or more recipients and, for each specified recipient, a set of one or more images associated with that recipient. The method also may include, for each recipient specified by the order, separating the images associated with the recipient into at least one printable unit of images.
The images may have associated print parameters (e.g., print size, number of copies, and/or print finish), which may be set so as to allow the printable unit to be continuously printed and may differ among images within an image set. Moreover, each image set may include an arbitrary grouping of images designated by a user. Also, images in a first recipient's image set may differ from images in a second recipient's image set and print parameters of a first recipient's image set may differ from print parameters of a second recipient's image set.
The method may also include, for each printable unit, selecting a printer on which to print the printable unit and printing at least one copy of each image in the printable unit on the selected printer. Also, for each recipient, the images associated with the recipient may be separated into one or more sub-orders. Optionally, for each sub-order, the images associated with the sub-order may be separated into one or more sub-batches (e.g., sub-batches having print parameters that allow the sub-batches to be continuously printed) with each sub-batch representing a printable unit. Moreover, a plurality of orders may be received, and the images associated with each recipient specified in each order may be divided into at least one sub-order and each sub-order may be divided into at least one sub-batch.
At least one batch (e.g., including sub-batches from two or more different sub-orders) that includes one or more sub-batches (e.g., where each sub-batch can be continuously printed on the same type of printer) may be assembled. Moreover, the method may include scheduling the batches to be printed in a predetermined ordering. Also, the method may include combining the image prints from at least two sub-batches from the same sub-order and distributing the combined image prints to the recipient associated with the at least two sub-orders.
Each order may include image data (e.g., pixel data for the images in the order) and control data (e.g., print parameters, user contact information, recipient information, payment information, and message information). The control data can be used to control the printing of the images. The method may further include, before printing each image, correcting the image data for that image using information including the control data, and calibrating the image data using information including the control data and at least one characteristic of the printer on which the image is to be printed. For each batch, the image data for the batch may be stored in a cache that is local to the selected printer for that batch and the control data for the batch may be placed in a queue associated with the selected printer for that batch. Moreover, for each batch that is placed in a queue, the image data associated with the images included in that batch may be sent to an image processor associated with the selected printer for that batch (e.g., before the batch reaches the front of the queue). The method may also include verifying that an image print was printed with the correct image and checking the quality of the image print.
A destination identifier print that identifies the specified recipient for a corresponding sub-batch of image prints (e.g., including a shipping address, a recipient's name, a print index, a bar code, a textual message and/or print re-ordering information) may be printed. The destination identifier print may delimit the corresponding sub-batch.
In another aspect, a method of generating physical manifestations (e.g., photographic prints of one or more digital images) of digital content (e.g., including one or more digital images) on a plurality of output devices may include receiving an order specifying one or more recipients and, for each specified recipient, a set of digital content associated with that recipient. The method also may include, for each recipient specified by the order, separating the digital content associated with the recipient into at least one generatable unit of digital content and, for each generatable unit of digital content, generating a physical manifestation of the unit of digital content. Optionally, the method may further include, for each generatable unit of digital content, selecting an output device on which to generate a physical manifestation of the unit of digital content. Also, the method may include distributing the physical manifestations to their respective recipients. Moreover, the images in a generatable unit of images may have generation parameters that allow the generatable unit to be continuously generated. The generation parameters may include, for example, print size, number of copies, and/or print finish.
In another aspect, a print distribution system may include a plurality of printers and a front-end computer sub-system for receiving an order specifying one or more recipients and, for each specified recipient, a set of one or more images associated with that recipient. The system may also include a scheduler, connected to the front-end computer sub-system and the plurality of printers, that for each recipient specified by the order (a) separates the images associated with the recipient into at least one printable unit of images and (b) designates a printer on which each printable unit is to be printed.
Each image may have associated print parameters (e.g., print size, number of copies, and/or print finish), and the images in a printable unit of images may have print parameters that allow the printable unit to be continuously printed. Print parameters may differ among images within an image set, and each image set may include an arbitrary grouping of images designated by a user. Also, the images in a first recipient's image set may differ from images in a second recipient's image set, and the print parameters of a first recipient's image set may differ from print parameters of a second recipient's image set. The scheduler may, for each recipient, separate the images associated with the recipient into one or more sub-orders and, for each sub-order, separate the images associated with the sub-order into one or more sub-batches, each sub-batch representing a printable unit.
Optionally, the front-end computer sub-system may receive a plurality of orders, and the scheduler, for each recipient, may separate each order into one or more sub-orders and, for each sub-order, separate each sub-order into one or more sub-batches. The scheduler in addition may assemble at least one batch including one or more sub-batches (e.g., wherein each sub-batch can be continuously printed on the same type of printer) and may schedule the batches to be printed in a predetermined ordering. The scheduler may use a global scheduling algorithm and/or may use a just-in-time scheduling algorithm. Moreover, the system may also include a plurality of line controllers. Each line controller may be associated with a printer and may have a queue for storing the batches until they are printed by the printer.
Each order may include image data (e.g., pixel data for the images in the order) and control data (e.g., print parameters, user contact information, recipient information, payment information, and message information). The system may also include an image cache local to the scheduler for caching the image data and an image processor (e.g., associated with at least one of the line controllers) for processing the image data and at least a portion of the control data prior to printing the image. The image processor may include image processor software in a computer-readable medium comprising instructions for causing the image processor to perform the following operations: (i) correct the image data using information including the control data, and (ii) calibrate the image data using information including the control data and at least one characteristic of the designated printer. The image processor software may further include instructions for causing the image processor to generate a destination identifier image (e.g., a destination identifier image that can be used to print a destination identifier print that identifies the specified recipient for a corresponding sub-batch of image prints and that is generated from at least the sub-batch's control data). The destination identifier image for each sub-batch may be generated from the sub-batch's control data and image data.
The image cache may includes software in a computer-readable medium comprising instructions for causing the image cache to, in response to a message from the scheduler indicating that the scheduler has sent control data for a batch to the line controller, send the image data for that batch to the image processor associated with that queue. The system may also include a backprinter for backprinting at least one image print. The backprinter may backprint non-image information (e.g., an image number associated with the image, a printable unit number associated with the printable unit from which the image print was printed, reorder information, a bar code, and a message) on each image print. The message may be an advertisement, and the bar code may encode, for example, an audio message, the image number associated with the image, and/or the printable unit number associated with the printable unit from which the image print was printed.
The system may also include a digital camera (e.g., a low-resolution camera) for capturing data about at least one of the image prints. The captured data may be used to verify that the an image print was printed with the correct image data and may be used to check the quality of the image print.
The system may also include an inverter that inverts each image print prior to backprinting and a curl reduction equipment that reduces curling of the image print prior to backprinting. The curl-reduction equipment may use suction to reduce curling of the image print (e.g., by using a vacuum table). The system may also include an alignment device that aligns each image print prior to backprinting. The alignment device may include an alignment wall against which each image print is to be aligned prior to backprinting, and a skew conveyor that receives each image print after the image print has been printed and moves the image print towards the alignment wall as the skew conveyor conveys the image print to the backprinter. An alignment sensor (e.g., a photosensor that optically senses the presence of the image print) may be positioned laterally inward from the alignment wall to detect whether a portion of the image print is positioned immediately beneath the alignment sensor.
The system may further include a conveyor on which image prints are stacked after printing and a controller, connected to the conveyor, that advances the conveyor so that a new stack can be stacked after all the image prints in a printable unit have been stacked on the conveyor. The system may also include a plurality of bins positioned on the conveyor so that the image prints for a printable unit are stacked in a bin. The bin may include a base for supporting the bin when the bin is placed on a surface of the conveyor, a first bottom wall connected to the base so that the first wall has a pitch incline with respect to the surface of the conveyor, and a second bottom wall connected to a first end of the first wall at one end. The second wall and first wall form an angle so that image prints received in the bin tend to stack on the first bottom wall with an edge of each image print registering with the second bottom wall. The system may also include a storage device in which one or more sub-batches can be stored for later combination with other sub-batches.
In another aspect, an alignment device used for aligning image prints may include an alignment wall against which each image print is to be aligned, and a skew conveyor that receives each image print after the image print has been printed and moves the image print towards the alignment wall as the image print is conveyed along the skew conveyor. The alignment device may also include an alignment sensor (e.g., a photosensor that optically senses the presence of the image print) positioned laterally inward from the alignment wall that detects whether a portion of the image print is positioned immediately beneath the alignment sensor.
In another aspect, a bin for collecting image prints may include a base for supporting the bin when the bin is placed on a surface, a first bottom wall connected to the base so that the first wall has a pitch incline with respect to the surface, and a second bottom wall connected to a first end of the first wall at one end. The second wall and first wall form an angle so that image prints received in the bin tend to stack on the first bottom wall with an edge of each image print registering with the second bottom wall. The first bottom wall may have an access notch formed therein that provides access to any image prints stacked in the bin. The bin may also include a side wall mounted to a side edge of the first and second bottoms walls. The first bottom wall may have a roll incline with respect to the surface so that image prints received in the bin tend to stack on the first bottom wall with an edge of each image print registering with the second bottom wall.
In another aspect, a method may be provided for tracking an order specifying a plurality of recipients and, for each specified recipient, a sub-order of one or more images associated with that recipient. Each image is to be printed, packaged, and shipped. The method may include indicating that the image is in a first state (e.g., an entered state) when the order with which the image is associated has been received from a user, indicating that the image is in a second state (e.g., a processed state) when the image is being processed, indicating that the image is in a third state (e.g., a packaged state) when an image print created from the image has been packaged, and indicating that the image is in a fourth state (e.g., a shipped state) when the image print has been shipped. The method may also including indicating that the image is in a fifth state (e.g., a stored state) if the image is stored. The method may also include, if an error is detected while the image is in the second state and before the image is in the third state, reprinting the image.
In another aspect, a method of checking an image print that was printed from an image stored in an electronic file may include generating a first image signature based on the electronic file and generating a second image signature based on the image print. The method may include signaling an error if a predetermined criterion that is a function of the first and second signatures (e.g., that the first and second signatures do not correlate within a predetermined tolerance) is met. Generating the first image signature may include sampling the electronic file to create a lower-resolution image based on the image, and generating the second image signature may include taking a picture of the printed image. The Haar feature-recognition algorithm may be used to determine if the predetermined criterion is met, and the pictures may be taken at substantially the same resolution as the lower-resolution image. The lower-resolution image and the picture may each comprise a plurality of pixels. The method may also include signaling a second error if a predetermined number of pixels in the lower-resolution image do not match corresponding pixels in the picture. Optionally, checking may include confirming that the image prints are printed in the correct order and examining the quality of the image prints.
In another aspect, a method of generating an image print from an image may include receiving an image, printing the image to generate an image print (e.g., on a printer), reducing curling of the image print, and backprinting information on the back of the image print. The image may include image data and control data. The method may also include, before printing the image, correcting the image data for the image using information including the control data and calibrating the image data using information including the control data and at least one characteristic of the printer. The information backprinted on to the image may include non-image information such as an image number associated with the image, reorder information, a bar code (e.g., encoding an audio message and an image number associated with the image), and a message (e.g., an advertisement).
The method may also include, prior to backprinting, inverting the image print and aligning the inverted image print. Optionally, curling of the image print may be reduced using suction, for example, with a vacuum table. The method may also include verifying that an image print was printed with the correct image and checking the quality of the image print.
In another aspect, a print system for printing images may include a front-end computer sub-system that receives an order specifying one or more images and one or more recipients and a printer sub-system connected to the front-end computer sub-system that prints image prints from the images in the order. The system may also include a packaging sub-system that receives image prints from the printer sub-system and packages the image prints for shipment to the order's recipient. The system may further include a shipping sub-system that receives the packaged image prints from the packaging sub-system and ships the packaged image prints to the order's recipient. The images may be processed automatically by the front-end sub-system, the printer sub-system, the packaging sub-system, and the shipping sub-system.
In another aspect, a method of distributing image prints may include receiving a set of one or more image prints where the set has one or more associated recipients. The method may also include indicating which type of packaging material is to be used to package the set of image prints based on information printed on at least one of the image prints in the set of image prints and indicating which method of shipping is to be used to ship the set of image prints based on information printed on at least one of the image prints in the set of image prints. The method may further include packaging the set of image prints using the indicated type of packaging material and shipping the set of image prints using the indicated shipping method.
A light associated with the indicated type of packaging material may be illuminated to indicate which type of packaging material is to be used, and a light associated with the indicated shipping method may be illuminated to indicate which shipping method is to be used. The information printed on at least one image print may include a bar code, and the method may also include reading the bar code printed on the at least one image print. The type of packaging material to be used to package the set of image prints and/or the method of shipping to be used to ship the image prints may be indicated based on the bar code.
In another aspect, a packaging system may include a plurality of packaging bins for storing image print packaging material and a plurality of visual indicators. Each packaging bin may be associated with at least one visual indicator (e.g., a plurality of lights and/or a display monitor for displaying the visual indictors) and the visual indicators associated with the packaging bins may be used to indicate in which packaging bin the packaging material for a set of image prints is to be stored.
The system may also include a plurality of shipping bins for storing packaged image prints so that each shipping bin may be associated with at least one visual indicator and at least one shipping method and so that the visual indicators may indicate in which shipping bin a packaged set of image prints should be stored for subsequent shipping by the shipping method associated with the indicated shipping bin. Optionally, the visual indictors may be used to sort the packaged image prints by method of shipping. For example, each shipping bin may be associated with a range of weights (e.g., for sorting the packaged image prints by weight and method of shipping) and/or one or more ZIP codes (e.g., for sorting the packaged image prints by ZIP code and method of shipping).
The system may also include a storage rack for storing image prints for subsequent combination with other image prints. The storage rack may include several of cubby-holes that each have an associated visual indicator. The visual indicators may be used to indicate in which cubby-hole a given image print is to be stored for subsequent combination with other image prints and to indicate from which cubby-hole a given image print is to be removed for combination with other image prints.
One or more of the following advantages may be provided. The systems and techniques described here provide an efficient mechanism for printing images in an optimized manner. An order of images to be printed can be divided into one or more printable units of images that can be separately scheduled for printing. By dividing an order into printable units of images, the separate printable units can be printed in a non-linear manner in order to use more efficiently available printing resources. For example, a single multiple-recipient order can be divided into sub-orders corresponding to a single recipient; then, each sub-order can be divided into sub-batches, which correspond to separate printable units. Sub-batches from different sub-orders and different orders can be sorted and combined into a batch for printing on the available printing resources.
In addition, such sub-batches or other printable units can be scheduled for printing according to a global scheduling algorithm in which orders to be printed during a given unit of time (e.g., a work shift) are divided into sub-orders and sub-batches at the beginning of the shift. Then, batches are assembled from the sub-batches and scheduled for printing during the shift so as to optimize the use of printing resources over the course of the shift. Also, an immediate or just-in-time scheduling algorithm can be used in which orders are received and divided into sub-orders and sub-batches periodically over the course of a shift; batches are assembled and assigned to printers periodically during the shift based on the sub-batches and printers that are currently available when the batch is assembled.
Also, the systems and techniques described here provide mechanisms for providing improved control and tracking of the image printing process. For example, a low resolution camera can be used to capture low-resolution data that can be used to perform image print verification checks (i.e., checks of the ordering of the image prints) and quality checks (i.e., checks of the image quality of the image prints). Moreover, bar code readers can be used to read bar codes printed on destination identifier prints and/or the backs of image prints in order to identify when sub-batches and image prints have been printed, backprinted, binned, and/or shipped.
Moreover, photo-sensors positioned along a print line can be used to develop timing data that can be used for the detection of error conditions in the print line. For example, timing data can be used to develop a line profile that identifies how long it should take a given image print to pass the various photo sensors and a batch profile that identifies how long it should take successive image prints to pass a given photo sensor. The timing data can be used to detect conditions such as paper jams and for process control.
Additionally, a print line can be provided that is fully automated (i.e., does not require an operator to perform any of the line processing functions) from the point the images are uploaded by a user until the packaged image prints are placed in a shipping bin for shipping to the specified recipients. For example, an automated insertion system can be used to automatically insert fully processed image prints into packaging material, seal the packaging material, and/or sort the packaged image prints into appropriate shipping bins.
Furthermore, the state of each image print that is to be generated from an order can also be tracked so as to provide more precise tracking and error recovery. For example, the states that are tracked for each image print to be generated from an order can include an "Entered" state indicating that the image from which the image print is to be generated has been included in an order but has not yet been sent to a print lab or print line for printing, a "Processing" state indicating that the image from which the image print is to be generated has been sent to a print lab or print line for printing, a "Binned" state indicating that the image print has been printed and binned, and a "Shipped" state indicating that the image print has been shipped. The states also can include a "Stored" state indicating that the image print has been stored, e.g., for consolidation with other image prints. The multiple states can be used to track the image prints as they are being printed and to recover from errors in the printing process. For example, if an error occurs during the processing of a given batch, image prints from the batch that are in the Processing state when the error occurred still need to be printed after the error has been removed while any image prints from the batch that are in the Binned state or Shipped state when the error occurred need not be printed again once the error is removed from the print line. As a result, the amount of rework required to recover from errors can be reduced.
The details of one or more embodiments are set forth in the accompanying drawings and in the description below. Other features, objects, and advantages of the invention will become apparent from the description and drawings, and from the claims.
DRAWING DESCRIPTIONS
FIG. 1 is diagram illustrating a linear process of printing images.
FIG. 2 is a block diagram showing a typical computer architecture.
FIGS. 3A-3F show a series of typical display windows that a user might encounter when ordering image prints online.
FIG. 4A is a block diagram of a system for making and distributing image prints.
FIG. 4B is a diagram illustrating a non-linear workflow for instantiating multiple instances of images and re-arranging them into sub-orders.
FIG. 5 is a flowchart of distributing image prints to multiple destinations.
FIG. 6 is a flowchart of a process of fulfilling customer orders using a non-linear workflow model.
FIG. 7 is an example of a destination identifier print
FIG. 8 is an example backprinted image print.
FIG. 9 is a block diagram of a print lab system.
FIG. 10 is block diagram of lab equipment and personnel that can be used in the print lab system of FIG. 9.
FIG. 11 is a block diagram of a print verification and quality control equipment that can be used in the print lab system of FIG. 9.
FIG. 12 is a block diagram of a roll-to-roll type printer system that can be used in the print lab system of FIG. 9.
FIGS. 13A-B are schematic diagrams of a chute inverter that can be used in the print lab system of FIG. 9.
FIG. 14 is schematic diagram of a skew conveyor that can be used in the print lab system of FIG. 9.
FIG. 15A is a schematic diagram of a properly aligned image print as it passes the sensor of FIG. 14.
FIG. 15B is an example of a signal that is produced as result of the image print of FIG. 15A.
FIG. 15C is a schematic diagram of a misaligned image print as it passes the sensor of FIG. 14.
FIG. 15D is an example of a signal that is produced as a result of the image print of FIG. 15C.
FIG. 16 is a schematic diagram of binning equipment that can be used in the print lab system of FIG. 9.
FIG. 17 is a perspective diagram of the bin shown in FIG. 16.
FIG. 18 is a block diagram of packaging, shipping, and storage equipment that can be used in the print lab system of FIG. 9.
FIG. 19 is perspective diagram of a storage rack that can be used in the print lab system of FIG. 9.
FIG. 20 is block diagram of an automated insertion system that can be used in the print lab system of FIG. 9.
FIG. 21 is state diagram showing of states that are tracked in the print lab system of FIG. 9.
FIG. 22 is a perspective diagram of an inverter that can be used in the print lab system of FIG. 9.
FIG. 23 is a side view of the inverter of FIG. 22.
FIG. 24 is a perspective view of an inverter that can be used in the print lab system of FIG. 9.
FIG. 25 is a side view of the inverter of FIG. 24.
FIG. 26 is a schematic diagram illustrating the operation of the inverter of FIG. 24.
Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
FIG. 4A is a block diagram of one deployment of a print generation and distribution system 300. In general, the system of FIG. 4A enables users to transmit images to a photo-finisher and then order prints of those images to be sent to one or more recipients. In FIG. 4A, one or more customers 302-304 communicate with the system 300 over a wide area network 310 such as the Internet. In one embodiment, the system 300 stores digital images that have been submitted by the customers 302-304 over the Internet for subsequent printing and delivery to designated recipients.
The system 300 has a web front-end computer system 320 that is connected to the network 310. The web front-end computer system 320 receives customer input or requests from the network 310 and communicates the received information to an image archive database 330. The image archive database 330 captures images submitted by the customers 302-304 and archives these images for rapid retrieval when needed. The information stored in the image archive database 330 in turn is provided to a print laboratory system 340 for generating high resolution, high quality photographic prints. The output from the print lab system 340 in turn is provided to a distribution system 350 that delivers the physical prints to the customers 302-304 and/or to their respective designated recipients. Further details on the print generation and distribution system are provided in U.S. patent application Ser. No. 09/428,871, filed Oct. 27, 1999, and entitled "Multi-Tier Data Storage System," which is incorporated by reference.
Although the print lab system 340 and the distribution system 350 are represented as separate boxes in FIG. 4A, in various implementations they can be integrated in whole or in part. For example, the print lab system 340 can be designed to generate prints in a manner and/or in an order that readily facilitates physical shipment of the prints to their respective ultimate destinations. (As used herein, "destination" is used to include a shipping address, for example, a post office address for an enterprise or an individual, and/or a name of a specific individual or group of individuals residing at a given shipping address.) In one implementation, a single print order received at the web front-end 320 could be divided into sub-orders, each of which corresponds to a set of prints to be generated and delivered to a separate destination address and/or intended recipient. Then, for each order, the print lab system 340 could create multiple instances of images and rearrange them as needed to build the constituent sub-orders. Each sub-order then is sent to the printing system to generate a separate run of prints for the recipient associated with the sub-order under consideration.
In general, this process of instantiating multiple image instances and re-ordering those instances as appropriate to build sub-orders represents a non-linear workflow model which, among other advantages, enables a user, through a single print order (delimited, for example, by a single transaction sequence and/or a single credit or debit card charge), to specify multiple different recipients, each of whom can receive his or her own personalized set of prints in which each can be generated according to customizable parameters (e.g., size, number of copies, finish, personal message, etc.). In addition, the non-linear workflow can cause a dramatic increase in the efficiency and/or speed with which prints can be generated and distributed to one or more recipients.
FIG. 4B illustrates an example of a non-linear workflow in which sub-orders are generated from a print order specifying multiple recipients. In this example, assume that a user places an order 352 for prints (for example, by creating associations between images and recipients) identifying three different recipients A, B, and C, each of whom is to receive a set of prints selected from images 1-10. In this example, assume that Recipient A is to receive prints of Images 1, 2, 4 and 8 (Recipient A's image associations are indicated by solid lines), Recipient B is to receive prints of images 1, 7 and 9 (Recipient B's image associations are indicated by dashed lines) and Recipient C is to receive prints of Images 1, 2 and 7 (Recipient C's image associations are indicated by dotted lines). The images 1, 2, 4, 7, 8, and 9 in print order 352 are then instantiated and re-organized as appropriate to generate, or build, three separate sub-orders 354, 356, 358—one for each of the three different recipients A, B, C, respectively. Each of these sub-orders in turn is sent to the printing system to generate a contiguous run of prints for the associated recipient.
According to this example, Image 1 would be instantiated three times, once for each of the three different print sub-orders 354, 356, and 358 in which it is included (that is, each of Recipients A, B, and C is to receive a print of Image 1). Similarly, Image 2 would be instantiated twice (one instance for Recipient A's sub-order 354 and another instance for Recipient C's sub-order 358), as would Image 7 (one instance for Recipient B's sub-order 356 and another instance for Recipient C's sub-order 358). Each of the remaining images (4, 8 and 9) would be instantiated only once because in each case the image is being printed for, and sent to, only a single recipient (equivalently, is part of a single sub-order). As the images are instantiated according to the various sub-orders for which they are required, the image instances are inserted into a sub-order sequence, which when completely built, can be sent to the printer to generate a corresponding run of prints.
In one implementation, a sub-order requires only a single instance of each image to be sent to the printer even if multiple copies (and/or prints of varying sizes and/or finishes) of the image are to be printed. This is because the printer can be instructed by a control system to print multiple copies of a single image on an individual image basis. Alternatively, if the system designer found it desirable to do so, a sub-order could include multiple instances of an image, one instance for each different copy of that image to be printed. Although this generally would result in larger sub-orders that required more memory and/or storage space, it could potentially simplify the print generation control process. However, if a sub-order requests that a given image be image processed in two or more different ways before printing (e.g., specifying that one copy of the image be processed by applying a soft-focus filter to the image and that another copy of the same image be processed without applying the soft-focus filter), then the sub-order should include multiple, different instances of the image.
Typically each run of prints (corresponding to a separate sub-order) is preceded (or followed) by a destination identifier, for example, a print that includes the name and address of the intended recipient for the run under consideration. This destination identifier separates adjacent runs and provides a convenient delimiter and/or address label to allow the distribution system 350 to package up runs of prints quickly and efficiently and to initiate delivery of them to their respective intended recipients.
FIG. 5 is a flowchart of a process that allows a user to transmit images to a photo-finisher and then order prints of those images to be sent to one or more recipients. In general, the print generation and multi-recipient distribution process of FIG. 5 is oriented to an image, or set of images, of which a user desires to distribute prints to a group of one or more recipients. That is, a user's print order is delimited by a set of images selected by the user and not by the number or location of recipients to receive the prints.
Before the user can order prints, the user's images first are transmitted to the photo-finisher (step 400). Such transmission of images can be accomplished in any of several different manners. For example, if the images have been generated with a digital camera or any of various computer software (e.g., a graphics program such as Adobe Photoshop) or hardware devices (e.g., scanner), then the user has the option of transmitting the digital image files to the photo-finisher's host computer, for example, over a computer network such as the Internet. Any available protocol (FTP, HTTP, etc.) or electronic communication application (e.g., e-mail, special-purpose software provided by the photo-finisher) could be used for this purpose.
Alternatively, the digital images first could be stored on a physical storage medium (a floppy disk, a read/write CD-ROM, a Flash memory card, etc.) and then sent to the photo-finisher's place of business by U.S. mail or overnight courier. The photo-finisher then could read the images from the storage medium and return it to the user, potentially in the same package as the user's print order. In addition, the photo-finisher could load data or programs for the user's benefit onto the storage medium before returning it to the user. For example, the photo-finisher could load the storage medium with image viewing or editing software to allow the user to better manage images. The photo-finisher also could load calibration or control data onto the storage medium, which the user could load onto his or her computer to be able to view the images, or print them on a local printer, with improved color accuracy. Alternatively, or in addition, if the storage medium was, for example, a FLASH memory card of the type used in certain models of digital cameras card (e.g., SmartMedia™ or CompactFlash™), then the photo-finisher could load control data or driver programs on to the FLASH memory card that, when loaded into the digital camera, would modify its behavior, for example, to enhance color accuracy or other performance characteristics. Typically, storing data on a FLASH memory card in this manner to modify digital camera behavior would require cooperation from, and/or a business arrangement with, one or more digital camera manufacturers.
If the images originate from physical photographic media (e.g., exposed film, previously processed negatives, prints), then the user could send the desired items to the photo-finisher, which would, for example, develop the exposed film and scan the resulting prints or negatives to produce corresponding digital image files. The capability to handle physical photographic media enables, for example, a user to send a collection of old prints and/or negatives to the photo-finisher, which could then scan the photographic media to generate digital images.
Another alternative for transmitting a user's images to the photo-finisher involves the use of a public entry terminal (also referred to variously as a "digital drop-box," a "point-of-sale (POS) station" and/or a "kiosk"). A public entry terminal essentially is a special-purpose computer system that is made publicly available (e.g., in a shopping mall, video arcade, supermarket, drug store, post office, etc.) and which is designed to capture users' image data. The public entry terminal typically would be in communication with the photofinisher's host system, for example, over the Internet, a virtual private network or dedicated telephone line, and could transmit images captured from users to the photo-finisher's facility to have prints made.
For example, a public entry terminal placed at a drug store could have a slot that accepts removable storage media, such as a FLASH memory card. On insertion, the public entry terminal could read image files from the inserted storage medium. Alternatively, or in addition, the public terminal could include one or more data ports (e.g., a USB or SCSI port) through which users could upload images to the public terminal directly from their digital cameras. The uploaded image files could be displayed on a monitor to the user, who could then select images of which prints are desired, specify print parameters, and designate recipients for the prints. In addition, the public entry terminal could include application software or utilities that allow users to edit images as desired, for example, to resize or crop images, to change an image's orientation, to remove redeye, to modify the color characteristics, etc. In any event, after the user had uploaded his or her images and has specified the images to be printed and their respective intended recipients, the public entry terminal could formulate a corresponding order and forward it on the photo-finisher's host system to initiate fulfillment.
Such a public terminal also could include a scanner for creating digital image files by scanning a user's prints or negatives. After the digital image files had been generated, the user could proceed to view, manipulate and/or order prints in the manners described above. The public entry terminal potentially also could support various electronic payment and authorization mechanisms, for example, a credit or debit card reader in communication with a payment authorization center, to enable users to pay for their prints at the time of ordering.
However they are transmitted, after the photo-finisher is in possession of the user's digital images, the photo-finisher can make them available to the user online, for example, by hosting the images on a webpage at which the user can view and access the images using a browser application (step 402). The user accesses the photo-finisher's website to designate which of the images should be printed, parameters relating to printing (e.g., finish, size, number of copies), and one or more recipients to whom the prints are to be sent.
In addition to hosting the user's images on a webpage, the photo-finisher also can store the images in an archive (e.g., a database management system (DBMS)) so that the user, and/or others given authorization by the user, can access them at any time in the future. Such access might be desired to order additional prints or simply to be able to share an online photo album among specified users. With regard to the former (ordering additional prints), each print could be encoded on its back or front with a print re-order number that uniquely identifies the print and/or the particular recipient of the print. Such a print re-order number could be used by a print recipient to order additional copies of the print. For example, by maintaining an automatic telephone response system at the photofinisher's facility, a print recipient could call a toll-free telephone number (also potentially printed on the print) associated with the automatic response system and punch in the unique re-order number for the print of which an additional copy is desired. Optionally, the user also could key in appropriate information using the telephone keypad to specify parameters for the re-ordered print (e.g., size, number of copies, finish). If no such optional print parameters were entered by the recipient, a default condition could be to use the parameters of the original print copy received by that recipient. In any event, the automatic response system could use the entered unique re-order number to generate an order for the particular print identified by the re-order number and then have the print delivered to the recipient identified by the re-order number.
With regard to access to an online photo album, such a historical image archive would provide a valuable asset to users because, unlike some other data types, the value of image data generally increases with time. In addition, maintaining an online archive of a user's images allows the user to access the images regardless of the user's location, and frees the user from having to use lots of disk space or other storage capacity to store the images locally.
After the user's images have reached the photo-finisher and have been made available online, the user can place an order with the photo-finisher (step 404). One way to place an order is by having the user view the images online, for example, with a browser and selectively designate which images should be printed. The user also will specify one or more recipients to whom prints should be distributed and, further, print parameters for each of the individual recipients, for example, not only parameters such as the size, number of copies and print finish, but potentially also custom messages to be printed on the back or front of a print. As used herein, the term "print" refers to any physical manifestation, or process for generating a physical manifestation, of graphical information. This includes of course photographic prints, but also any other item to which graphical information can be imparted, for example, greeting or holiday cards, books, calendars, playing cards, T-shirts, coffee mugs, mouse pads, key-chains, or any other type of gift or novelty item. Further details on how to allow a user to place an order are provided in U.S. patent application Ser. No. 09/436,704, filed Nov. 9, 1999, and entitled "Distributing Images to Multiple Recipients," which is incorporated by reference and from which priority is claimed.
After the prints, recipients and respective parameters have been specified, the user's order is fulfilled by making prints of the designated images and distributing them to the specified recipients (step 406). In general, fulfillment can be accomplished either by the photo-finisher itself or by another entity or company in cooperation with the photo-finisher. Potentially, the photo-finisher could have business arrangements with two or more different fulfillment companies, which could be dispersed geographically (at various locations around the country or world) to minimize shipping costs, labor costs and/or delivery time. Alternatively, or in addition, different fulfillment companies could be used which have different areas of expertise or production capability. For example, one fulfillment company could specialize in making standard photographic prints, another fulfillment company could specialize in printing greeting cards, yet another fulfillment company could specialize in generating T-shirts, and so on.
Distribution and delivery of the prints to recipients could be accomplished by any of various techniques. For example, standard U.S. Mail or courier services (e.g., Federal Express or UPS) could be employed. Alternatively, the photo-finisher could have a business arrangement with various other service or delivery companies to deliver print orders along with other regularly scheduled deliveries. For example, the photo-finisher could have a business arrangement with a delivery or service company (e.g., Webvan, an online grocer in the San Francisco Bay area, or Streamline, Inc., a goods/services/convenience portal head-quartered in the Boston area) in which the prints for a particular recipient would be generated on the delivery/service company's premises and then delivered either alone or along with that recipient's order of other goods/services.
FIG. 6 is a flowchart of a process 500 of fulfilling customer orders using a non-linear workflow model. The orders are received in step 502. For example, orders that have been input by users (e.g., via the web front-end computer system 320) can be stored in a database (e.g., an orders database 602 shown in FIG. 9). When the photo-finisher (also referred to herein as a "print lab") is available to make prints, the photo-finisher can request that one or more user orders be transmitted to the photo-finisher (e.g., from the orders database 602), which then receives the transmitted orders.
In step 504, an ordering or sequence of the images for printing (referred to as a "print ordering") is generated. In other words, the images received from the user as a part of the order are rearranged (and later printed) in an order that is suitable and/or optimized for printing the images on a particular print line at a particular print lab. Thus, the images are not necessarily printed in the same order in which they were captured and/or supplied to the system by the user.
For example, the received orders can be separated (either physically or logically) into sub-orders, each of which corresponds to a set of prints (or other physical manifestation) to be generated and delivered to a separate destination address and/or intended recipient. The sub-orders can then be separated (either physically or logically) into printable units (also referred to as "sub-batches"). Each sub-batch corresponds to a set of prints that can be generated on the same printer (or other device for preparing a physical manifestation of a particular image) without having to manually reconfigure the printer (e.g., to produce prints of a different size) while the sub-batch is printing. Separating an order into sub-orders and sub-batches results in a print ordering in which each image for a given sub-batch is arranged (either physically or logically) together so that the images in a given sub-batch can be printed successively on the same printer without having to manually reconfigure the print while the sub-batch is printing. In other words, each image in a given printable unit (or sub-batch) has print parameters (e.g., size, finish, etc.) that are similar enough to the print parameters specified for the other images in the same printable unit so that the entire printable unit can be printed without having to manually reconfigure the printer while the printable unit is printing (referred to herein as "continuously printing" the printable unit). For example, one image from a given printable unit can specify that one copy of the image should be printed, while another copy from the same printable can specify that two copies of that image should be printed; however, because printers typically do not need to be manually reconfigured to print differing numbers of copies of an image, the fact that these two images specify that different number of copies of the respective images should be printed would not prevent these two images from being included in the same printable unit.
Moreover, batches (also referred to as "runs") can be assembled (either physically or logically) from the sub-batches. A batch can contain sub-batches from different orders, all of the sub-batches in a given batch being able to be printed on the same printer without having to manually reconfigure the printer while the batch is printing. The batches are assembled and a printer is designated for the batch based on, for example, the availability and capabilities (e.g., print size, finish, capacity, etc.) of the printers. Also, the assembly of batches and designation of printers for each batch can be done using a "global" scheduling algorithm in which a group of orders that are to be printed in a given period of time (e.g., in a particular work shift) are received and separated into sub-orders and sub-batches at the beginning of the shift; then, the batches are assembled and the printers are designated for each batch so that the batches are printed efficiently (or according to some criterion other than efficiency) using the available printers.
Alternatively, or in addition, an "immediate" scheduling algorithm can be used to assemble batches and select printers. In an immediate scheduling algorithm, orders are received at the print lab and separated into sub-orders and sub-batches periodically throughout a given shift. Batches are assembled and assigned to printers periodically during the shift based on the sub-batches and printers that are currently available when the batch is assembled. In any event, after a printer has been designated for a batch, the batch can be queued for printing (e.g., in a queue maintained by a line controller associated with the designated printer).
In step 506, each image in the order is image processed. Image processing may include correcting any errors or other undesirable artifacts resulting from the capture of the image or performing other image processing based on information related to the input device used to capture the image. Also, image processing may include calibrating and/or optimizing the image for printing on a particular printer or other output device that will be used to create a print and/or may include performing other image processing based on information related to the printer or other output device.
Image processing that does not depend on which type of printer or other output device will ultimately be used need only be performed once for each image in the order regardless of the number of times that the image ultimately will be printed. For example, if an image is to be printed for more than one recipient (e.g., if an image is included in more than one sub-order), such printer-independent processing activities need only be performed once for that image. Also, if a given image is to be printed multiple times on the same type of printer with the same print parameters, those image processing activities that are dependent on which type of printer and/or printer parameters ultimately will be used need only be performed once for that image and need not be performed for each of the multiple times that the image is to be printed on the same type of printer with the same print parameters.
Moreover, if the orders are separated into sub-orders and sub-batches as described above, then during image processing a destination identifier image can be created for each sub-batch based on information contained in the sub-batch. The destination identifier image is included in each sub-batch so that a destination identifier print will be printed when the images in that sub-batch are printed. Preferably, the destination identifier image is inserted into the sub-batch so that a destination identifier print will be printed before and/or after the other prints in the sub-batch are printed. By printing the destination identifier print before and/or after the other prints in the sub-batch, the destination identifier print can be used to delimit the various sub-batches within a batch.
An example of a destination identifier print 900 (which is printed from a destination identifier image that is created and inserted into a sub-batch) is shown in FIG. 7. A destination identifier image from which the destination identifier print 900 can be printed can include data for generating one or more of the following: a message 902 (e.g., a user-specified message or advertisement), thumbnail index 903 including thumbnail images 509, 511, 513, and 516-518 of the images included in the sub-batch, reordering information 908, bar code 910 (encoding, for example, shipping or billing information and/or manufacturing process information used to maintain quality control during print generation), and an address field 906 displaying the recipient's address. In one embodiment, the address field 906 is printed in a specified size and at a specified location so that it will be visible through a windowed envelope. Accordingly, the address field 906 not only serves as an identifier that can be used by the fulfillment enterprise for processing and handling this recipient's prints, but it also serves as the address label used by the shipper or courier for delivering the prints. In other embodiments, the destination identifier 900 can include virtually any other items of information that might prove useful to the recipient, the fulfillment enterprise, and/or the delivery service. Although the foregoing describes the destination identifier image as being created after the batches have been assembled, it is to be understood that the destination identifier images can be created any time prior to printing. For example, the destination identifier images can be created after the sub-orders are sub-divided into sub-batches.
In step 508, each image is instantiated (e.g., by creating a separate copy of data such as control and/or image data for that image) as needed for printing. For example, if desirable, a given image that is to be printed for multiple recipients can be instantiated at least once for each of the multiple recipients (e.g., for each sub-order and/or for each sub-batch). In addition, or alternatively, if the printer on which a given image is to be printed can operate in a more efficient manner (or if it is otherwise desirable to do so), an image that is to be printed multiple times on given printer can be instantiated once for each time that the image is to be printed.
In step 510, each image is printed (or a physical manifestation of each image is otherwise created) in accordance with the print ordering. The printing operation includes printing or otherwise generating a physical representation of the image (e.g., printing the image on the front side of an image print). Printing can also include printing or otherwise including non-image information (e.g., bar codes, identification numbers, messages, advertisements, reorder information, etc.) on one or more of the prints or other physical manifestations of the image. The non-image information can be used for controlling and monitoring the printing, packaging, and/or shipping of the image and/or can be used to impart predetermined information to the recipient of the image. For example, as shown in FIG. 8, non-image information may be printed on the back (i.e., non-image side) of an image print 920 and may include a unique identification number 922 for the image from which the print was made (i.e., an "image ID" number), a unique order identification number 924 (which may encode recipient information), reorder information 926 such as a phone number 928 and/or a URL 930 for a website from which prints can be reordered, a bar code 932 (encoding, for example, an audio message or processing data), and/or a user specified message 934. Also, a different user specified message 934 can be printed for different recipients (e.g., one message can be printed for the person who took the image and other messages can be specified for the other recipients). In addition, the non-image information may include the name of the photographer who took the image, the date the image was taken, the date the image was printed, a copyright notice, and language describing any legal restrictions on using the image.
In one potential implementation, audio samples from a user who is uploading images could be captured, digitized and encoded on the back of one or more image prints. For example, an audio encoder utility on the user's computer could record a voice message from the user (e.g., "Look at what your grandson is doing now"), associate the captured message with one or more images specified by the user, and then encode the message (e.g., in bar code form) and print it on the back of the corresponding image print. The print recipient could play back the message, and actually hear the image originator's voice, by using a bar code reader and voice message decoding software. Such a device could be sent to the print recipient along with the print order.
In step 512, the prints or other physical manifestations of the images are then packaged and shipped to their intended recipients. For example, if the orders are separated into sub-orders and sub-batches from which batches are assembled, each sub-batch of prints is packaged and shipped to the recipients associated with that sub-batch. Multiple sub-batches from a given sub-order, which by definition have the same recipient, can be packaged and shipped together (e.g., to save on packing and shipping costs) and/or a sub-order's sub-batches can be packaged and shipped individually to the sub-batches' respective recipients (e.g., to simplify the packaging and shipping process).
One embodiment of a system 600 in which the process 500 can be implemented is shown in FIG. 9. In the print lab system 600 shown in FIG. 9, each order includes control data and image data. The control data contains information such as print parameters (including print size, number of copies and print finish), user contact information, recipient information (including the shipping address of each recipient and the image IDs of each image associated with that recipient), payment information, and any special messages that are to be printed or encoded on any of the image prints included in the order. The image data includes the pixel data used to generate the image (e.g., JPEG data). In the embodiment shown in FIG. 9, the control data and the image data for each order are stored separately after originally being received from the user. The control data for each order is stored in an orders database 602, while the image data for each order is stored in an image archive database 604. It is to be understood, however, that at least some, if not all, of the control data can be stored with the image data (e.g., in the image archive database 604 or elsewhere) in either the orders database 602, the image archive database 604, or elsewhere, if the system designer found it desirable to do so.
The system 600 includes one or more print labs 606 (only one of which is shown in FIG. 9). Each print lab is connected to the orders database 602 and the image archive database 604. One or more print labs 606 can be physically located with or near the orders database 602 and the image archive database 604 so that the orders database 602 and the image archive database 604 can be connected over a relatively high-speed connection such as a local area network. In addition, or alternatively, one or more of the print labs 606 can be physically located apart from the orders database 602 and the image archive database 604 and/or apart from the other print labs 606. In such a case, the print labs 606 can be connected to the orders database 602 and the image archive database 604 via a wide area computer network such as the Internet.
Each print lab 606 includes a scheduler 608, an image cache 610 and one or more print lines 612 (only one print line 612 is shown in FIG. 9). The scheduler 608 is connected to the orders database 606 (e.g., over the Internet) and is connected to the image cache 610 and to one or more line controllers 614 that are included in each of the print lines 612. Each print line 612 also includes a queue 616 for storing batches or other printable units while they are waiting to be printed and line equipment 618 for image processing, printing, packaging and shipping images and the resulting image prints. The scheduler 608 is connected to the image cache 610 and the line controllers 614, and the line controller 614 is connected to the queue 616 and the line equipment 618 using relatively high-speed, local connections (e.g., over a local area network).
The scheduler 608 request orders from the orders database 602. In response, the orders database 602 sends orders to the scheduler 608 that can be printed on one or more of the print lines 612 included in the print lab 606, if any such orders are available when the request is received by the orders database 602. The scheduler 608 can employ, for example, a global scheduling algorithm in which a group of orders to be printed during a given period (e.g., a work shift) are scheduled at the beginning of the shift according to some scheduling criterion (e.g., to print the jobs in an efficient manner). When using such a global scheduling approach, the scheduler 608 polls each of the line controllers 614 in the print lab 606 to identify the capabilities and availability of each print line 612 in the print lab 606. For example, the line controllers 614 can provide the scheduler 608 with such information as what types of prints the respective print lines 612 can produce (e.g., by specifying print sizes, finishes, etc.) in their current configurations, how many prints the respective print lines 612 can print during the shift (e.g., by specifying how much paper each print line 612 has and the rate at which the print line 612 can produce prints), and how many batches the respective print lines 612 currently have queued for printing. The scheduler 608 uses such information from the line controllers 614 to determine the print lab's capacity and capabilities during the shift. Such information is conveyed to the orders database 602, which in response sends orders to the scheduler 608 for printing during that shift.
After receiving the orders from the orders database 602, the scheduler 608 separates the orders into sub-orders and sub-batches. Then, the scheduler 608 assembles batches from the available sub-batches, assigns each batch to a print line 612 that has the capability, and is configured to, print the images in that batch, and arranges the batches for queuing based on the information supplied by the line controller 614. For example, the scheduler 608 can assemble, assign, and queue the batches in order to enhance the efficiency with which the available print lines 612 are used. Then, each of the batches are queued with the designated print line 612 in the selected order for printing during the shift.
Alternatively, or in addition, the scheduler 608 can schedule print jobs using an immediate or "just-in-time" scheduling approach in which orders are requested from the orders database 602 and scheduled for printing as space becomes available on the print lines 612. When operating in such a just-in-time mode, each line controller 614 sends capability and availability information for that line controller's print line 612 to the scheduler 608 when the line controller 614 determines that the print line 612 has space available in its queue 616. The scheduler 608 checks if it can assemble an appropriate batch from any sub-batches currently stored in scheduler's pool of sub-batches. If it can, an appropriate batch is assembled from the sub-batches currently stored in the scheduler's pool and sent to the line controller 614, which stores the batch in its queue 616. If the scheduler 608 is unable to assemble an appropriate batch that can be printed on the available print line 612, the scheduler 608 sends a message to the orders database 602 conveying the current capabilities and availability of all the print lines 612 in that scheduler's print lab 606. The orders database 602 then sends orders that can be printed on the print lines 612 (preferably orders having at least one or more sub-batches that can be printed immediately on an available print line 612) to the scheduler 608. After receiving any orders from the orders database 602, the scheduler 608 separates the orders into sub-orders and sub-batches and stores the sub-batches in the scheduler's pool. Then, the scheduler 608 assembles batches that can be printed on the available print lines 612 from the pooled sub-batches and assigns each batch to a print line 612 that is available and capable of printing the images in that batch. Then, the batch is sent to the assigned print line 612 and stored in that print line's queue 616. Any sub-batches that cannot be immediately printed on an available printer line 612 remain in the pool until they can be printed at a later time when a print line 612 capable of printing the sub-batches becomes available.
The image cache 610 is connected to the scheduler 608 and includes internal storage (e.g., a hard disk) for storing the image data of images that are queued in the print lines 612. When the scheduler 608 receives an order from the orders database 602, the scheduler 608 sends a message to the image cache 610 requesting that the image cache 610 cache the image data for the images included in that order. The image cache 610 checks its internal storage for the image data for the requested images. If the image data is not in its internal storage, the image cache 610 sends a message to the image archive database 604 requesting the image data for those images. In response, the image archive 604 sends the image data for the requested images to the image cache 610, which stores the image data in its internal storage. When the image cache 610 has stored the image data for an image requested by the scheduler 608, the image cache 610 sends a message to the scheduler 608 indicating that the image data for the requested image is stored in the image cache 610.
Then, after the scheduler 608 queues a batch of images with a print line 612, the scheduler 608 sends a message to the image cache 610 requesting that the image cache 610 send the image data for the images in the queued batch to the print line 612. The image cache 610 sends the image data to the line equipment 618 (specifically, to an image processor 620 shown in FIG. 10), which stores the image data in internal storage (e.g., on a hard disk drive) contained within the image processor 620. The image processor 620 is connected to the image cache 610 and the components of the line equipment 618 shown in FIG. 10 are connected to the line controller 614 although these connections are not illustrated in FIG. 10. The image data sent to the image processor 620 can be image processed immediately (i.e., before the batch with which the images are associated reaches the front of the queue 616) and/or the image data can be image processed just prior to sending the image data to a printer 622 (shown in FIG. 10) for printing. For example, the line controller 614 can send the image processor 620 a message that includes the batch's control data and that requests that the images in the batch be image processed and sent to the printer 622. Upon receiving such a message, the image processor 620 image processes the images in the batch (using the batch's control data) and then sends the images to the printer 622. After sending each image to the printer 622, the image processor 620 sends a message to the line controller 614 indicating that the image has been image processed and sent to the printer 622. Alternatively, or in addition, the image processor 620 can send a message to the line controller 614 indicating that all the images in the batch have been image processed and sent to the printer 622.
Alternatively, or in addition, the print lab 606 can be configured to operate without using an image cache 610. For example, the image processor 620 can be connected to the image archive database 604 and the scheduler 608, the line controller 614, and/or the image processor 620 can be configured to send a message to the image archive database 604 requesting image data for the images that are to be printed. In response, the image archive database 604 would send the image data for the requested images to the image processor 620.
The printer 622 prints the images, and the image prints are conveyed to the other line equipment 618 using any suitable conveyor mechanism (e.g., conveyor belts and rollers). A suitable printer 622 for use in the embodiment shown in FIGS. 10-11 is a "digital minilab" that performs all the exposing, developing, and cutting operations necessary to print and cut image prints. One such suitable digital minilab printer is a Konica Digital Minilab Model No. QD-21 printer, commercially available from Konica Corporation of Tokyo, Japan. It is to be understood, however, that the system 600 can be modified to work with other type of printers. For example, as shown in FIG. 12, the system 600 can be modified to work with a roll-to-roll type printer system 800 that includes a roll-to-roll printer 802 that exposes successive images onto successive portions of a roll of print paper. The roll of exposed paper is fed into a paper processor 804 that develops the exposed portions of the roll of print paper. The exposed and processed portions of the roll of print paper are then cut by a cutter 806 (e.g., a multi-cutter) into separate image prints having the desired dimensions. In addition, the roll-to-roll type printer system 800 can include a backprinter (not shown in FIG. 12), for example, as an integral part of the roll-to-roll printer 802 or as a separate piece of equipment (e.g., positioned between the paper processor 804 and the cutter 806).
Referring again to FIG. 10, the line equipment 618 also includes print verification and quality control equipment 624 for checking that the proper sub-batch and images are being printed in the proper order and that the images have the desired print quality. One example of a print verification and quality control equipment 624 that can be used with the system 600 is shown schematically in FIG. 11. (Each component shown in FIG. 11 is connected to the line controller 614 in a conventional manner although no such connections are shown.) A barcode reader 626 is connected to the line controller 614 and receives prints that have been printed by the printer 622. The bar code reader 626 reads a bar code printed on each destination identifier print that encodes a sub-batch identification number. For example, the sub-batch identification number can be a temporarily unique number. In other words, the sub-batch identification number can be a number that is unique over a given range of sub-batches, for example, a number produced by a six-digit counter that rolls over to 000000 after 999999 sub-batches have been processed. Use of a temporarily unique sub-batch identification numbers avoids the processing overhead that can be associated with the use of a permanently unique identification numbers (e.g., a shorter sub-batch identification number can be used). Preferably, the scheduler 608 generates the temporarily unique sub-batch number and includes it in the control data that is sent with each sub-batch to the line controller 614. If a print other than a destination identifier print is received by the bar code reader 626, the bar code reader 626 will not be able to read a bar code. Whether or not the bar code reader 626 is able to read a bar code and any sub-batch number read by the bar code reader 626 can be used to determine whether the proper sub-batch is being printed on the correct print line 612, whether the sub-batches are being printed in the correct order, and whether the images prints and the destination identifier prints are being printed in the correct order. This determination can be made by the line controller 614 (e.g., by having the bar code reader 626 send the bar code information back to the line controller 614) or can be made by the bar code reader 626 and/or a micro controller connected to the bar code reader 626. If an error is detected, error recovery processing can be initiated. For example, the print line 612 can be shut down and an operator alerted, or the errant sub-batch can be reprinted.
The print verification and quality control equipment 624 shown in FIG. 11 also includes a low-resolution camera 628 that captures low-resolution image data of the printed image. The low-resolution image data captured from the image print can be used to determine if the image prints are being printed in the correct order and if the image prints have the desired print quality. For example, the image data from which an image print was printed can be downsampled or otherwise decimated to produce low resolution image data (i.e., the "expected" low-resolution data) that should correlate to the low resolution data captured by the low resolution camera 628 (i.e., the "actual low-resolution image data) after correcting (or otherwise accounting) for the type of printer that was used, and any shifting, skewing, and/or magnification or reduction of the image print during capture of the actual low resolution image data. Whether or not the actual low resolution image data correlates with the expected low-resolution image data can be determined in any number of conventional ways. For example, respective signatures for the actual low-resolution image data and the expected low-resolution data can be calculated (e.g., using the Haar and Daubechies D4 and D6 feature-recognition algorithms described in the book "Discovering Wavelets," by Aboufadel and Schickler, published by Wiley-Interscience, which is hereby incorporated by reference) and compared. If the signatures match within a specified tolerance, the actual low-resolution image data is considered to be correlated with the expected low-resolution image data and the image print is considered to have been printed in the proper order.
In addition to verifying that the print images are being printed in the correct order (i.e., the "verification" check), the actual and expected low-resolution image data can be used to check the quality of the images being printed (i.e., the "quality" check). For example, after correcting or other accounting for the type of printer being used and any skewing, shifting, or scaling of the actual low-resolution image data, a pixel-by-pixel comparison of corresponding pixels in the actual and expected low-resolution image data can be performed. If a predetermined percentage of the pixels match (within a predetermined tolerance), than the image print is considered to have the desired image quality; if a predetermined percentage of the pixels do not match, then the image print is not considered to have the desired image quality and a error signal can be produced and sent to the line controller 614 and other line equipment 618 for initiating error recovery processing.
The downsampling of the original image data and/or the verification and quality comparisons can be performed by a processor associated with the low resolution camera 628 and/or can be performed by the line controller 614. Also, it is to be understood that other image tests and comparisons can be performed on the actual and/or expected low-resolution data. Moreover, the verification and/or quality checks can occur later in the print generation process (e.g., the bar code reader 626 can be positioned downstream from an inverter 630).
Referring again to FIG. 10, after the quality and verification checks have been performed by the print verification and quality control equipment 624, the image prints are inverted (i.e., are flipped over so that the non-image side of the image print is exposed) using an inverter 630. FIGS. 13A-B show a chute inverter 700 that can be used in the system 600. The chute inverter 700 has a C-shaped passageway 702 through which image prints travel and are flipped. As shown in FIG. 13B, an image print 704 is printed by the printer 622 and is conveyed to the chute inverter 700 on a belt conveyor 701 with the image side of the image print 704 facing away from the belt conveyor 701. When the image print reaches the end of the belt conveyor 701, the image print 704 is rotated (e.g., by an arm 709 extending partially into the path of the image print 704) 110 and falls off the end of the belt conveyor 701 into a slide 703. The image print 704 slides down the slide 703 and enters the C-shaped passageway 702 at position 706. A guide housing 705 is positioned near the opening of the C-shaped passageway 702 to help guide the image print 704 into the C-shaped passageway 702. The image print 704 travels along the C-shaped passageway 702 so that the image print 704 exits the C-shaped passageway 702 at position 708 with its non-image side facing away from a belt conveyor 711, which receives, orients, and conveys the image print 704 to a skew conveyor 710 (described below in connection with FIG. 14). Preferably the outer surface of the slide 703 on which the image print 704 slides and the surfaces in the C-shaped passageway 702 are constructed from and/or covered with a material (e.g., paper or stainless steel) that reduces or inhibits the build up of a static charge that would cause the image print 704 to stick to the slide 703 or the C-shaped passageway 702.
FIGS. 22-23 shows an alternative embodiment of an inverter 1000 that can be used in place of the chute inverter 700 and the slide 703 to receive an image print 704 from the belt conveyor 701, invert the image print 704, and deliver the image print 704 to the belt conveyor 711. The inverter 1000 has a Y-shaped design that includes a back slide 1002 that is positioned at an oblique angle with respect to the belt conveyor 711. The inverter 1000 also includes a front slide 1004 that is separated from the back slide 1002 by a passage 1006 through which an image print 704 can pass. The front slide 1004 is held in place by a pair of brackets 1008 (which are connected to side walls 1010) at an acute angle with respect to the belt conveyor 711. When an image print 704 reaches the end of the belt conveyor 701 (not shown in FIGS. 22-23), the image print 704 is rotated (e.g., by the arm 709 shown in FIG. 13B) and falls off the end of the belt conveyor 701 and onto front slide 1004 of the inverter 1000. The image print 704 slides though the passage 1006 and into the back slide 1002. The image print 704 slides down the back slide 1002 until the bottom edge of the image print 704 contacts the belt conveyor 711. The belt conveyor 711 pulls the bottom edge of the image print 704 in the direction that the belt conveyor 711 moves, which causes the image print 704 to lay on the belt conveyor face down. As with the inverter 700, it is preferable that the outer surfaces of the back slide 1002 and the front slide 1004 on which image prints slide are constructed from and/or covered with a material (e.g., paper or stainless steel) that reduces or inhibits the build up of a static charge that would cause the image print 704 to stick to the back slide 1002 or the front slide 1004.
Again referring to FIG. 10, after the image prints have been inverted by the inverter 630, the image prints are aligned by alignment equipment 632. As shown in FIG. 14, a skew conveyor 710 can be used to align the image prints 704 after they have been inverted. The skew conveyor 710 includes an alignment wall 712 against which the image prints 704 are aligned. The image prints 704 are moved into alignment with the alignment wall 712 by multiple alignment rollers 714 that have their axes arranged at an oblique angle with respect to the alignment wall 712. The angled orientation of the alignment rollers 714 causes the image prints 704 to move towards, and come into alignment with, the alignment wall 712. The oblique angle is set so that an image print 704 can come into alignment with the alignment wall 712 before the image print 704 leaves the multiple alignment rollers 714 and passes onto the first of multiple perpendicular rollers 716. An alignment sensor 718 is positioned beyond the perpendicular rollers 716 of the skew conveyor 710 (e.g., above a vacuum table 719 that is used as a part of the curl reduction equipment 635 described below). The alignment sensor 718 can be any sensor (e.g., an optical sensor) that detects the presence of an image print 704 under the sensor 718. As shown in FIG. 14, the alignment sensor 718 is positioned near the alignment wall 712 (which can extend beyond the end of the skew conveyor 710 and over at least a portion of the vacuum table 719) so that the sensor 718 can detect when image prints 704 pass underneath it.
FIG. 15A shows an image print 704 that is properly aligned with the alignment wall 712 as the image print 704 passes the sensor 718. An example of a signal that is produced by the sensor 718 as the properly aligned image print 704 passes the sensor 718 is shown in FIG. 15B. The sensor 718 produces a generally bi-level signal 720 in which the signal is at first signal level 722 (e.g., a low signal level) when the sensor 718 does not sense an image print 704 directly underneath the sensor 718 and is at second signal level 724 (e.g., a high signal level) when the sensor 718 senses that an image print 704 is directly beneath the sensor 718. Therefore, when an image print 704 first passes underneath the sensor 718, the signal 720 transitions from a low signal level to high signal level and when the image print 704 has moved along the conveyor 710 so that no part of the image print 704 is beneath the sensor 718, the signal 720 transitions from a high level to a low signal level.
FIG. 15C depicts an image print 704 that is misaligned with the alignment wall 712 as the image print 704 passes the sensor 718. An example of a signal that is produced by the sensor 718 as the misaligned image print 704 passes the sensor 718 is shown in FIG. 15D. As shown in FIGS. 15C-D, when the image print 704 is misaligned with the alignment wall 712, the resulting pulse 726 will not be as long as the pulse that otherwise would be produced if the image print was properly aligned with the alignment wall 712 (which is shown in FIG. 15B). Therefore, if the generated pulse width for a given image print 704 is not as long as the pulse width of a properly aligned image print 704, the image print 704 is considered to be misaligned with the alignment wall 712. The line controller 614 and/or a micro-controller associated with the alignment sensor 718 can store how long the pulse width (the "target" pulse width) of a properly aligned image print (for a given image print size) should be and compare the measured pulse width to the target pulse width and send an error message to line controller 614 and/or the other line equipment 618 if the measured pulse width is not (within a specified tolerance) as long as the target pulse width. The difference between the width of a pulse generated for a misaligned image print and the width of a pulse generated for a properly aligned image print is greater (i.e., such an alignment sensing approach is more sensitive to misalignment) the closer the alignment sensor 718 is positioned to the alignment wall 712. Therefore, the sensitivity of such an approach can be increased by moving the sensor 718 closer to the alignment wall and decreased by moving the sensor 718 away from the alignment wall 712.
Another inverter that can be used in the print lab 606 is shown in FIGS. 24-26. Inverter 950 includes a J-shaped arm having first and second walls 954 and 956. First and second walls 954 and 956 are arranged parallel to one another with a gap 958 (shown in FIG. 25) formed therebetween in which an image print can be received. Both the first and second walls 954 and 956 are joined at their respective proximal ends to opposing sides 962 and 964 of a bottom wall 960. A guide 970 (shown in FIGS. 24-25) is positioned at the bottom of the gap 958 adjacent the base wall 960 and has a groove 972 formed therein to receive the end of an image print inserted into the inverter 950. Thus, an image print that is received by the inverter 950 will be aligned by the guide 970. The guide 970 can also include one or more sensors 974 for sensing when the edge of an image print has been received and aligned by the guide 970. Preferably, the bottom wall 960 is curved so as to match the image print's natural curvature (which tends to develop as the print dries) and to enhance the rigidity of the image print (e.g., as shown in FIG. 24 side 962 of the bottom wall 960 can include a convex curvature and side 964 of the bottom wall 960 can include a concave curvature). Also, the first and second walls 954 and 956 preferably are formed so that their respective distal ends bow out in the longitudinal direction and are substantially non-curved (i.e., the respective distal edges of the first and second opposing side walls are substantially straight) in the transverse direction.
As shown in FIG. 26, an image print 704 is conveyed to the inverter 950 by a conveyor 976 (e.g., a belt conveyor on which image prints are placed immediately after printing) with the image print 704 face-up (i.e., with the image side of the image print 704 facing away from the belt conveyor 976). The inverter 950 is initially in position 978 with the distal end of the J-shaped arm near the end of the conveyor 976. As the image print 704 is conveyed off of the conveyor 976, the image print 704 enters the inverter 950 and is aligned by the guide 970. Once the sensors 974 sense that the image print 704 has been fully received and aligned, a rotation arm 980 (powered, e.g., by a conventional servo-motor, not shown, that is controlled using pulse-width modulation) rotates the inverter 950 to the position 982 (represented by dashed lines in FIG. 26). The inverter 950 includes a rubber grip 984 (shown in FIGS. 24-25) located on the inside surface of the first wall 954 that grips the image print 704 during rotation of the inverter 950 and that helps to prevent the image print 704 from backsliding when the image print 704 is being inserted into the inverter 950. After rotating to position 982, the distal portion of the image print 704 comes into contact with a vacuum table 986, which pulls the image print 704 out of the inverter 950 and onto the vacuum table 986 with the image print 704 face down (i.e., with the image side of the image print 704 facing towards the vacuum table 986). Preferably the first wall 954 is longer than the second wall 956 so that the portion of the first wall 954 that extends past the second wall 956 can hold the image print 704 down while it is being removed from the inverter 950. By using the inverter 950, the image print 704 is both inverted and aligned for subsequent backprinting. Therefore, if the inverter 950 is used, separate alignment equipment need not be used.
Referring again to FIG. 10, after the image prints have been aligned by the alignment equipment 632, the bar code printed on the face side (which faces down) of destination identifier prints is then read by a bar code reader 633. For example, one of the perpendicular rollers 716 of the skew conveyor 710 (shown in FIG. 14) can be removed so that the bar code reader 633 can be placed underneath the skew conveyor 710. By placing the bar code reader 633 underneath the gap left by the removed perpendicular roller 716, the bar code reader 633 can read the bar codes printed on the destination identifier prints through the gap as the destination identifier prints move off of the skew conveyor 710.
After the prints pass by the bar code reader 633, any curling in the image prints is reduced using curl-reduction equipment 635 (shown in FIG. 10). The curl-reduction equipment 635 inhibits the natural curling of the image prints due to drying so that the image prints are flat during backprinting (described below). Preferably, the curl-reduction equipment 635 includes a vacuum table that flattens the image prints using suction as the image prints are conveyed to a backprinter 634 and during backprinting. During backprinting, the backprinter 634 prints non-image information onto the exposed back |