Word processing and graphical element editor programs are frequently utilized with a computer within a network to provide various document creation and editing features to a user. Imaging devices, such as printers, are utilized to render and print images created with graphical element editor programs to tangible media such as paper stock. A printer typically uses a compression engine in order to process images prior to printing. Compression engines reduce the amount of data from an image file that is sent to a rendering engine or a page buffer memory. Present standardized compression schemes, such as, for example, the JPEG standard (Joint Photographic/Picture Expert Group, ISO/IEC IS 10918-1|ITU-T Recommendation T.81) and the JPEG 2000 standard (ISO/IEC 15444 and ITU-T T.8000) specify various types of lossy and lossless data compression algorithms. Specifically, JPEG 2000 allows specified regions of a page to be compressed using a lower loss rate algorithm. A region of a page selected for compression is typically known as a “region of interest.” A “region of interest” on a page typically contains one or more graphical elements, such as text blocks or images. However, a text block usually requires much less imaging resolution than a JPEG image, for example, in order to realize a quality printed image. Therefore a region of interest containing only text could employ a lower resolution compression algorithm without sacrificing printed image quality. Generally, imaging devices such as printers incorporate a page frame buffer memory into which a page is compressed prior to rendering and printing an image. Typically, when a page is too large to compress into the available buffer memory, lossy compression is applied over the entire page. It would be desirable therefore, to provide advancements to the art that overcome these and other disadvantages.
According to an embodiment of the present invention, a method is directed to graphical element selection for region of interest compression. The method includes determining a region of interest on a page and identifying a graphical element on the page. The method further includes associating the identified graphical element with the region of interest based on the position of the graphical element on the page relative to the region of interest, and then generating a graphical element tag based on the association. According to the method, the graphical element tag is included in a region of interest enhanced page description. Finally the method includes compressing the page based on the region of interest enhanced page description using a regionally variable compression algorithm.
According to another embodiment, a method is directed to selecting graphical elements on a page for variable region compression. The method includes identifying a region of interest on a page based on a graphical element type and selectively mapping one or more graphical elements on the page to the identified region of interest. The method further includes generating a page description that describes the region of interest portion of the page. According to the method, the page description relates the one or more selectively mapped graphical elements to the region of interest. The method also describes providing the page description to a compression engine. According to the method, the page description invokes high resolution compression for the region of interest portion of the page. Finally, the method provides for rendering the page based on the page description.
According to still another embodiment, a system for implementing graphical element selection for region of interest compression is described. The system includes imaging means, the imaging means including compression means, the compression means operable to provide variable resolution compression to selected regions of a page and computing means. The computing means includes user interface means, communication interface means, processing means, and computer readable memory means which are readable by the processing means. The computer readable memory means includes a graphical element editor program, a driver program and a series of computer executable steps configured to cause the processing means to execute steps. When executed by the processing means, the computer executable steps operate to determine a region of interest on the page and identify a graphical element on the page. The computer executable steps further operate when executed to associate the identified graphical element with the region of interest based on a position of the graphical element on the page relative to the region of interest and generate a graphical element tag based on the association, wherein the graphical element tag is included in a region of interest enhanced page description. Finally, the computer executable steps operate when executed to compress the page based on the region of interest enhanced page description using a regionally variable compression algorithm.
The foregoing, and other features and advantages of the invention, will become further apparent from the following detailed description of the presently preferred embodiments read in conjunction with the accompanying drawings.
Non-limiting embodiments of the present invention provide for methods and systems for selecting graphical elements on a page for variable region compression. According to an embodiment of the present invention, a system provides graphical element selection for region of interest compression.
Computing device 110 is any device configurable for providing an interface to various functions and services provided by computing device 110 and other devices of system 100. In an embodiment, computing device 110 is a personal computer (PC) that includes various capabilities provided by one or more programs 123 that may be loaded into memory 115 for execution. The skilled practitioner will recognize that in some implementations computing device 110 includes additional components not relevant to the present discussion.
Processor 111 of computing device 110 is any microprocessor, microcontroller, application-specific integrated circuit (ASIC), or combination of the recited components, configured to execute computer instructions. In an embodiment, processor 111 includes memory for caching data. Memory device 115 includes volatile and/or non-volatile computer readable memory, such as, for example, random access memory (RAM), flash memory and the like. In an embodiment, processor 111 is configured to execute instructions from one or more programs and services, such as program 123 and driver 125 stored in memory 115, and to manipulate digital data, such as image data 127.
Program 123 includes one or more computer executable instruction sets, such as device drivers and programs that perform various functions, such as, for example, controlling peripheral devices, providing capabilities to a user, and managing communications with other devices. In another embodiment, program 123 is a graphical element editor program that provides image editing services to generate, manipulate and select one or graphical elements on a page that can be used with region of interest compression. In yet another embodiment, program 123 is configured to generate a page description, in a page description language, that includes one or more layers describing elements and properties of a page. In still another embodiment, program 123 is configured for one or more functions such as, for example, determining a region of interest on a page, identifying a graphical element on the page, associating the identified graphical element with the region of interest based on the position of the graphical element on the page relative to the region of interest and generating a graphical element tag based on the association. In some implementations, a page description is generated in a language such as, for example, PostScript, printer control language (PCL) and portable document format (pdf). In one embodiment, program 123 is configured for mapping a graphical element on a page to a region of interest in a graphical element layer of a page description. In a further embodiment, program 123 is configured as a graphical element-type recognition system. Graphical elements include glyphs, vectors, and raster images such as, for example a text block, an image (e.g., tif, .bmp, etc.) borders, outlines, shading and any other page elements that compose a page. In order to keep track of what types of graphical elements compose a page, all graphical elements are grouped into one of several “graphical element types.” Each graphical element is characterized by categorical properties, and graphical elements with similar properties are of a similar graphical element-type, and can be identified based on one or more predetermined graphical element-type properties. In one embodiment, a “graphical element map” is a mapping of the types of graphical elements on a page that can be compressed differently based on the graphical elements that are deemed most important, either by a user or by a program. In another embodiment, the “graphical element map,” is a pixel-by-pixel representation of a page based on “graphical element types” that is rendered along with the page to improve page quality during printing. A “graphical element tag” marks a graphical element and, in some implementations, can describe graphical element properties within a structured language description of a page.
In one embodiment, program 123 is configured for automatic selection of regions of interest based on graphical element type.
Driver 125 includes one or more programs and/or instruction sets for controlling a hardware device. In one embodiment, driver 125 includes a region reader program 126 for identifying graphical elements within a defined spatial region of a page or page description language file. In another embodiment, driver 125, or a component of driver 125, is configured for identifying a region of interest on a page based on a graphical element-type.
In another embodiment, driver 125 is configured to perform one or more functions, such as for example, selectively mapping one or more graphical elements on a page to an identified region of interest. In yet another embodiment, driver 125 is configured to generate a page description that describes the region of interest portion of the page. In the present embodiment, the page description relates one or more selectively mapped graphical elements to the region of interest. In still another embodiment, the driver 125 provides the page description to a compression engine. In one embodiment, a graphical element map is a rendered representation of the final placement of graphical elements on a page.
User interface 112 is any arrangement of data-entry and display devices configured to display information to a user and to receive user input to computing device 110. In an embodiment, user interface 112 includes components such as, for example, a keyboard, a pointing device, and/or a visual display device suitable for displaying images and/or receiving user input from a user. In another embodiment, user interface 112 is configured to receive user instructions indicating a region-of-interest. In yet another embodiment, user interface 112 is configured to receive user instructions selecting one or more graphical elements on a page that define a region-of-interest.
Input/output interface 133 includes one or more communication interfaces configured to provide signal and data input and output to computing device 110. In an embodiment, input/output interface 113 includes interfaces such as, for example, a telephone modem, a wireless access point adhering to one or more protocols, such as IEEE 802.11 and the so-called “Bluetooth” protocols, a network interface card, a direct cable interface such as PCI or EIO, a Universal Serial Bus card (USB), an optical port operating in the ultra-violet or infra-red range, and the like. In another embodiment, input/output interface 113 is a gateway for a local area network (LAN) or a wide area network (WAN) that couples many devices within a geographic zone, such as for example, a distributed enterprise computer network operating within one or more buildings. A communication-enabled device is a device that incorporates a communication gateway, such as input/output interface 113, having one or more communication interfaces, as described above.
Imaging device 130 is any communication-enabled device configured for rendering images and document data files onto tangible media, such as, for example, paper sheet stock.
Processor 131 of imaging device 110 is any microprocessor, microcontroller, application-specific integrated circuit (ASIC), or combination of the recited components, configured to execute computer instructions. In an embodiment, processor 131 includes memory for caching data. Memory device 135 includes volatile and/or non-volatile computer readable memory, such as random access memory (RAM), flash memory, and the like. In an embodiment, processor 131 is configured to execute instructions from one or more programs and services, such as program 136 stored in memory 135, and to manipulate digital data, such as image data 137.
Program 136 includes one or more computer executable instruction sets, such as device drivers and programs that perform various functions, such as managing image data and image compression functions, and directing rendering and printing functions, and generating graphical element tags. In another embodiment, program 136 is a region of interest detection program that facilitates region of interest compression for graphical elements within selected regions of a page. In still another embodiment, program 136 is an image file reading program that receives page metadata and reads various layers and region codes within a page description file to provide variable region of interest compression within selected regions of a page.
Compression engine 140 is any combination of hardware devices and software configured to provide image data compression processes within imaging device 130. In one embodiment, compression engine 140 includes a compression algorithm adhering to a standard such as, for example, the JPEG and/or JPEG 2000 standards. In other embodiments, compression engine 140 includes lossless (i.e. linear data packing) and lossy (i.e., non-linear) compression algorithms useful for implementing a variable resolution compression of a page prior to providing a page description file 139 to a page frame buffer memory 138. In one embodiment, compression ratio “A” 141 offers a highest resolution lossless predictive coding compression algorithm. In another embodiment, compression ratio B 142 is a high-resolution lossy compression algorithm, offering a higher compression ratio than compression ratio “A” 141, but at a reduced resolution. In yet another embodiment, compression ration “C” 143 is a low-resolution lossy compression algorithm, offering a very high compression ratio, but at a much lower resolution than compression ratio “A” 141 and compression ratio “B” 142. In one embodiment, compression engine 140 is configured to compress regions of a page with different compression algorithms defending on region of interest graphical element tags included in an image file 137 composed in a page description language. In another embodiment, image file 137 is provided by a computing device 110 after a region of interest is identified and graphical element tags are included in an image description.
Page frame buffer memory 138 is any hardware and/or software device for storing and/or caching image data to be printed to a tangible medium. In one embodiment, page frame buffer memory 138 includes a page data 139 representing a page. In another embodiment, the page data 139 represents a page having one or more compressed regions, where the compression resolution of each region of the page is based on one or more graphical element tags that define regions of interest. Other page frame buffer memory configurations will be recognized by the skilled practitioner to provide equivalent function and operation.
Input/output interface 133 is a communication gateway, such as input/output interface 113, as described above.
In a further embodiment, imaging device 130 is a multi-function printer-scanner device enabled to operate as a document copying and printing device. In other implementations, imaging device 130 is configured for stand-alone functionality to provide one or more embodiments of the present invention, such as for example, generating graphical element tags. The configuration and operation of printing devices will be known to the skilled practitioner, and therefore will not be discussed in further detail.
In step 310, a region of interest on a page 200 is determined. The region of interest is determined at any time that a computing device 110 (
In step 320 (
In step 330 (
In step 340, a graphical element tag is generated based on the association with the region of interest. In one embodiment, the graphical element tag is included in a region of interest enhanced page description. In another embodiment, the graphical element tag is generated by a graphical element program 123 (
In still another embodiment, the graphical element tag includes a weighting factor that indicates a relative importance of a selected graphical element based on a location of the graphical element relative to a region of interest. In one embodiment, the weighting factor can be applied to define a tapering resolution compression zone surrounding a region of interest (e.g., 210). Applying a weighting factor in the foregoing manner provides images (e.g., picture contents of region 210) near an inner or outer boundary of a region of interest to be resolved.
In step 350 (
A further embodiment includes printing the page 200 compressed in step 350 (
In step 410, a region of interest (e.g., region 210) on a page is identified based on a graphical element type (e.g., text, picture, and graphic content). The region of interest is identified at any time that a computing device 110 (
In step 420 (
In step 430, a page description is generated that describes a region of interest (e.g., region 210) portion of a page 200. In one embodiment, the page description relates one or more selectively mapped graphical elements (e.g., picture contents of region 210) to the region of interest. In another embodiment, the page description comprises metadata in a page description language such as, for example, PostScript, PCL and pdf.
In step 440, a page description is provided to a compression engine 140. The page description is provided at any time after the description is generated. In one embodiment, the provided page description invokes a high resolution compression process for the region of interest portion of the page (e.g., region 210). Another embodiment includes providing the page description to a compression engine such that the page description invokes a low resolution compression process for a region of the page 200 that is not a part of a region of interest (e.g., region 220).
In step 450, the page is rendered based on the page description. In one embodiment, the page is rendered at any time after the page is compressed, as in step 440.
Another embodiment further includes printing the rendered page to a media. The page is printed at any time after the page is rendered. In some embodiments, the media is a material such as, for example, paper sheet stock, transparency material, photographic paper stock and the like.
The following scenario provides an example of graphical element selection for region of interest compression. In an exemplary operating environment, a computing device 110 and a printer 160 are components of a system 100 (
In another example, the exemplary system above (100) includes a printer 160 configured for automatic variable region of interest compression. A user composes a page with two paragraphs of text in text blocks (220, 230), a scenic picture 210, and a border. The user next invokes a print-job with a request though the user-interface 112 of the computer 110 to send the page to the printer 160 for printing. A program 136 loaded to the memory 135 of printer 160 is configured to perform steps as in method 400 in order to implement region of interest selection and variable region of interest compression on the page. The print job is received at the printer 160 as a page description in a page description language. First, the program 136 executes steps to identify the text and picture elements in the page description to select one or more regions of interest based on the graphical element type that is identified. In one example, program 136 is configured to process the received page description to identify the graphical element type and location of each element on the page and to then group elements types in close proximity into a region of interest. Next, the program 136 maps the paragraphs of text and the image in the page description to regions of interest for each element, with the picture tagged as a high priority region of interest and the text blocks tagged as lower priority regions. A modified page description is generated that includes a region of interest layer that describes the priority of each identified region of interest and the new page description is provided to a compression engine. The new page description is variably compressed with the region containing the picture retaining the greatest resolution in the compression process. The page is then rendered and printed to paper stock. The above described automated region of interest selection process reduces memory overhead in printer 160, yet provides the variable compression function transparently to a user.
Frequently, large portions of a page composed with a word processing program contain blank areas or textual blocks that do not require as much compression resolution as a picture. In another example, a boundary region around a clip art image on a page is tagged in a region of interest plane with a weighting factor so that the region is compressed with a tapering resolution expanding out from an absolute boundary edge of the image. In the above manner, the image integrity of a picture and the also the bordering region of the picture are preserved during compression, which benefits images having special effects such as edge feathering and the like. After compression, a page is provided to a page frame buffer and then the page is printed to a tangible medium such as printer paper stock.
In yet another scenario utilizing the same exemplary operating environment, a program such as a graphical element editor program/word processor (123) or region reader (126) is applied to a page to identify regions of interest (e.g., region 210) on the page 200 based on various graphical element types. A program (e.g., 123) then maps one or more graphical elements on the page to the identified regions of interest. The same program or a different program, such as a driver 125, then generates a page description for the page that describes the regions of interest and which includes in the page description various mapping data that relates the graphical elements to the regions of interest. For example, in a default mode of a graphical element editor program, a picture and a text block having a dropped capital are both identified as graphical element-types that should receive high resolution compression. The graphical element editor program identifies a first region 210 of a page 200 (
It is understood that the invention can be embodied in other specific forms not described that do not depart from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive, the scope of the invention being defined by the appended claims and equivalents thereof.