Not applicable.
Not applicable.
The invention relates to the field of electronic printing, and more particularly to a platform in which color image printing or other output activity may be managed end-to-end over the output path, automatically detecting output capabilities and negotiating output settings while preserving an image file context.
The proliferation of imaging devices such as digital still cameras, digital video cameras and other image capture hardware has led to an increase in the photo printing and other printing and output markets. Home, business and professional users increasingly make use of a wide array of output devices such as inkjet printers, color laser printers, dye sublimation and other output technology to print their digital photographs and other image files.
However, while output hardware has advanced in many respects, the necessary software and platform resources needed for quality color print output has not correspondingly advanced in all respects. In the case of a desktop computer user who wishes, for instance, to print one or a group of digital photographs, the act of printing those objects still requires some degree of technical knowledge and participation by the user, even under comparatively modern operating systems and other platforms. For instance, a camera manufacturer's photo viewing or browsing program may permit the selection of image files to print, and permit certain color correction functions to be performed, such as white balance corrections, contrast adjustments, adjusting gamma functions or others.
However, when photo viewing, image processing or other applications send an image file to the printing system of an operating system or other platform to print, according to current technology that file is communicated in one direction only to print spoolers and other resources, to be printed without maintaining the context of that object or print job. Moreover, the necessary print parameters needed to produce accurate color printing may not be automatically set or optimally defaulted, nor may those parameters be easily discovered by the user to even manually set or select. Moreover, those print variables may remain hidden from applications, operating system resources and participants in the printing workflow, which participants may similarly not be able to identify what print processing has been done at other stages in the output chain. In general the workflow associated with the initiation, configuration and execution of color printing tasks is fraught with user challenges and inefficiencies, and moreover offers no guarantee of optical or satisfactory results. In the context of an application printing to multiple printers or other output devices, there is likewise no guarantee of consistent output results. Other problems in printing and other output technology exist.
The invention overcoming these and other problems in the art relates in one regard to a system and method for managing a computer or other print path with context preservation, in which applications may communicate with an integrated print subsystem, for instance embedded in an operating system or other platform, which may receive, analyze and automatically condition the digital photographs or other image files or objects for optimized or high-quality output, given the user's available or attached printing equipment and hardware. According to embodiments of the invention, contextual workflow and data associated with a printing job or other output event may be preserved in an end-to-end fashion so that, for example, an image may be selected for printing in an application, transmitted to a color management engine or other rendering resource for optimization and returned to the print subsystem for delivery to printer drivers and printed. The intelligence in the output path may moreover provide a transparent mechanism for applications and other resources to probe and discover the capabilities of the printing system as a whole. Those discovered settings may be interpreted by the application or other initiator according to an understood schema, as well as interpreted and honored by the application, output device or other consumer. Those discovered settings or capabilities may likewise be used by an application or other resource to generate optimized settings for color printing or other output, based on printer hardware capabilities or other factors. Upon the completion of output processing stages, according to embodiments of the invention the image file or associated data may be updated and returned to the calling application to indicate print job status, color correction factors, number of pages outputted, date or time information, and other contextual data or metadata associated with the file, including cached transforms that may be used for later print jobs. Applications may thereby retain more extensive or complete control over the printing process, and the state of image files being sent to output. Image metadata may according to embodiments be made available to resources in the print chain down to the level of print drivers, and other levels, at each of which the metadata and contextual workflow may be preserved. According to embodiments of the invention in a further regard, intelligent or optimizing choices may automatically be made for print output parameters. In embodiments those intelligent choices may be made by both the application that initiates the print job based on the discovered capabilities reported by the print system, and/or the participants in the output workflow which honor the output objectives or intent specified by the initiator. In another regard, according to embodiments of the invention and due in one respect to the context preservation and automatically negotiated settings, the consumer of image files or content may be effectively decoupled or made less dependent on the producer of that content, since a consumer or other user need not be extensively familiar with all data and settings of subject files, to generate satisfactory output from that content.
According to embodiments of the invention in a further regard, the print subsystem 104 may communicate with a color management engine 106 and/or a non-color image management engine 122, each of which may likewise be hosted or execute in an operating system or other platform or resource. The color management engine 106 may in one regard receive image files or other image-related data, and perform color adjustment or correction actions of that content. For example, the color management engine 106 may be configured to automatically perform, negotiate or initiate white balance adjustment or correction, gamma adjustment or correction, exposure adjustment or correction, contrast adjustment or correction, or other color-related adjustment, correction or image processing. In embodiments, the non-color image management engine 122 may likewise perform, negotiate or initiate non color-based image manipulation tasks, such as image rotation, scaling, alignment or other adjustment or correction. Color management engine 106 and non-color image management engine 122 may for instance access operating system or other resources to be aware of video display adapter characteristics, display screen characteristics, printer capability or characteristics as well as other output parameters in order to compensate, adjust or negotiate image quality settings.
Print subsystem 104 may likewise communicate via a graphics subsystem 124 with a print driver 108, which driver or set of drivers may for example be incorporated in, stored by or registered to an operating system or other platform or resource. The print driver 108 may be, include or incorporate information related to printing or output operations on specific printer hardware, such as font information, memory configuration, communications protocols, media types or capacity, or other data or information used by a printer or other output device to generate output. The print driver 108 may therefore in one regard expose the set of color printing or other output capabilities of output device 110. The print driver 108 may be extensible and updateable, for instance by loading updated or additional drivers via optical media, Internet download or other sources. The graphics subsystem 124 which may mediate between the print subsystem 104 and the print driver 108 may in embodiments be hosted in an operating system or other platform, and may for example in embodiments be, include, interface to or be implemented with versions of the graphics device interface (GDI) incorporated in the Microsoft Windows™ family of operating systems, the OpenGL™ platform, the DX™ graphic platform, or other graphics platforms or resources.
According to embodiments of the invention in a further regard, and as for example illustrated in
According to embodiments of the invention in one regard, the application within the set of applications 102, operating system or other program or resource which invokes the print subsystem 104 to transmit the output file 112 to the output device 110 may maintain control of and be advised of status regarding the output file 112 and the generation of output from that file. The calling application, operating system or other program, utility or resource which invokes the print subsystem 104 to perform that task may preserve control and feedback in the output path, in one regard via access to the image context 114 which is communicated with and characterizes the state of the output file 112. That is, the metadata associated with the output file 112 which is encoded in image context 114 may be accessed, monitored, updated by and/or reported to the print subsystem 104, color management engine 106, non-color image management engine 122, the print driver 108 and other resources in the output path, including the set of applications 102, at all levels of the output rendering process. Likewise, each of the resources in the output path may likewise have access to the set of discovered output capabilities 126 returned by or associated with the output device 110 and other resources, so that the set of applications 102 and other consumers of and participants in the print or other output services may adjust options and parameters taking those capabilities into account.
According to embodiments of the invention in one regard, the image context 114 and/or the set of discovered output capabilities 126 may be bidirectionally communicated to each of those levels, so that the calling application may be aware of the state of the output file 112 and its print or other output job, continuously during the output cycle. The print subsystem 104, color management engine 106, non-color image management engine 122 and other resources may likewise automatically negotiate or adjust color quality or other image or print settings for the output file 112 or other image object using image context 114 and the set of discovered output capabilities 126, in a further regard.. Thus according to the invention in one regard, the consumer or user of the digital content of output file 112 may be decoupled or made less dependent on the producer of output file 112, since the consumer or user of that content need not be exhaustively familiar with the content or format of that file, nor the hardware details of output device 110, to usefully access, manipulate and print that content. Moreover, every participant in the output path may retain access to the original output intent or objective specified by the calling application or other initiator, and may similarly have access to the adjustments and manipulations made by other participants in the output path while output activity is in process.
Thus according to embodiments of the invention, and as for instance shown in
Alternatively, the output tasks and/or user intention may likewise involve a set of hardware-specific tasks, options or selections which may not be presented to the user unless the specific output hardware supports those tasks or options, such as printing on special media types. However, due to the integrated print architecture of the invention including print subsystem 104, color management engine 106 and non-color image management engine 122 capable of generating default or independent optimizations on the printing of output file 112, the user may in general avoid hardware and other configuration tasks, and simply address their desired output goals. The set of applications 102 or other tools, programs or resources may report the higher-level initiation, progress and completion of a color printing or other output task, again based in part on the preservation of image context 114 and sharing of the set of discovered output capabilities 126 within the printing or other output path, transparently to the user.
Overall print or other color output processing is illustrated in
In step 412, a print or other output command may be received via an application within set of applications 102, or other utility, program, operating system or other resource. In step 414, one or more output file 112 may be transmitted to the print subsystem 104, for instance a print subsystem 104 embedded in an operating system of client 116, or other platform. In step 416, the print subsystem 104 may transmit the one or more output file 112 to color management engine 106 and/or non-color image management engine 122, for instance to automatically negotiate or adjust image print settings. In step 418, print settings such as such as white balance, gamma correction, contrast adjustment, media selection, ink or dye parameters, or other settings, functions or processes related to the outputting of output file 112 may be detected, identified and automatically negotiated, optimized or adjusted by color management engine 106 and/or non-color image management engine 122. In step 420, the one or more output file 112 may be returned to, accessed again by or placed under control of the print subsystem 104.
In step 422, the output file 112 may be transmitted to the print driver 108, preserving in one regard the image context 114 including data such as image size, type, date and time, edit, version information, print job status, digital rights management information, color context data such as for example color space or color profile data, and other image-related, image-derived or other associated output data or metadata. Color context data may for further example contain or include metadata necessary to unambiguously describe image content in terms which are independent of the output device and/or viewing conditions or perceptual factors. Color context data may in a further regard contain or include optional metadata to specify or control output device-specific data or options such as ink type, paper or other media type, halftone methods or other information. Color context data may for further instance contain, include or refer to standard or defined color spaces such as sRGB (standardized Red Blue Green) defined or stated by the IEC (International Electrotechnical Commission) 61966-2-1 standard (incorporated by reference), an ICC (International Color Consortium) profile, a PostScript™ Level 2 Color Rendering Dictionary or Color Space Array, or other context, reference, standard or data.
In step 424, the output file 112 may be spooled, printed or otherwise outputted via output device 110, such as printing on a color laser, inkjet or other printer. In step 426, the outputting of output file 112 may be confirmed or messaged to the print subsystem 104 or other resources, while the image context 114 and related data may be returned or transmitted to the print subsystem 104, to the calling application in the set of applications 102, or to other operating system or other resources. In step 428, processing may repeat, return to a prior processing point, jump to a further processing point or end.
The foregoing description of the invention is illustrative, and modifications in configuration and implementation will occur to persons skilled in the art. For instance, while the invention has generally been described in terms of an output device 110 which may be or include a printer of various types, in embodiments other types of output devices, such as copy machines, facsimile machines, multifunction machines or others may be used to generate print or other output.
Similarly, while the invention has in embodiments been described as involving the management and printing of an output file 112 which may be or include an RGB or other color-encoded file or object, in embodiments output file 112 may be or include an image encoded or represented in grayscale, sepia or other color spaces or formats. Further, while the invention has generally been described as operating in an environment where a single client 116 may transmit output file 112 or other object to a single output device 110, in embodiments multiple clients, machines or sources may transmit one or more output file 112 to output device. Similarly, in embodiments one or more client 116 or other machine or source may transmit one or more than one output file 112 to multiple output devices 110, such as a grouping of local or remote printers connected on a area network, for instance via the Internet or a local area network. Other hardware, software or other resources described as singular may in embodiments be distributed, and similarly in embodiments resources described as distributed may be combined. The scope of the invention is accordingly intended to be limited only by the following claims.