WO2011047388A2 - Dynamic rendering, position scaling and crop alert system and method - Google Patents

Dynamic rendering, position scaling and crop alert system and method

Info

Publication number
WO2011047388A2
WO2011047388A2 PCT/US2010/053078 US2010053078W WO2011047388A2 WO 2011047388 A2 WO2011047388 A2 WO 2011047388A2 US 2010053078 W US2010053078 W US 2010053078W WO 2011047388 A2 WO2011047388 A2 WO 2011047388A2
Authority
WO
WIPO (PCT)
Prior art keywords
content
piece
image
dynamic
container
Prior art date
Application number
PCT/US2010/053078
Other languages
French (fr)
Other versions
WO2011047388A3 (en
Inventor
Kevin Mccurdy
Christopher Granahan
Tracy Spiva
Dennis John
Original Assignee
Picaboo Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Picaboo Corporation filed Critical Picaboo Corporation
Publication of WO2011047388A2 publication Critical patent/WO2011047388A2/en
Publication of WO2011047388A3 publication Critical patent/WO2011047388A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text

Definitions

  • a system and method for determining an appropriate compression of a piece of content based on the layout of the content In addition, a system and method for alerting a user when a piece of content is near a crop line when laying out, organizing and assembling one or more pieces of content. Furthermore, a system and method for dynamic scaling of a piece of content.
  • the Picture Manager utility in Windows® allows a user to view a plurality of digital images, arrange the digital images and then view the plurality of digital images as a slide show.
  • Microsoft® Powerpoint® to generate and arrange a series of slides wherein each slide can contain one or more digital images so that a shdeshow with the slides containing the digital images is generated.
  • video editing system both high end movie studio type systems and consumer systems exist that allow a user to put together clips of video images into a movie or other video show.
  • the Picture Manager utility in Windows® allows a user to view a plurality of digital images, arrange the digital images and then view the plurality of digital images as a slide show.
  • Microsoft® Powerpoint® to generate and arrange a series of slides wherein each slide can contain one or more digital images so that a slideshow with the slides containing the digital images is generated.
  • video editing system both high end movie studio type systems and consumer systems exist that allow a user to put together clips of video images into a movie or other video show.
  • Figure 1 illustrates an example of a web-based system that includes a story flow system that can incorporate the dynamic rendering system, the dynamic crop alert system and the dynamic scaling system;
  • Figure 2 illustrates an example of an implementation of a dynamic rendering system
  • Figures 3 A and 3B illustrate a dynamic rendering method that can be implemented using the dynamic rendering system.
  • Figure 4 illustrates an example of an implementation of a dynamic crop alert system
  • Figure 5 illustrates a dynamic crop alert method that can be implemented using the dynamic crop alert system
  • Figures 6A and 6B are examples of an original piece of content and a cropped piece of content, respectively.
  • Figure 7 illustrates an example of a crop alert of the dynamic crop alert system.
  • Figure 8 illustrates an example of an implementation of a dynamic scaling system
  • Figures 9A-11 B illustrate examples of scaling of an image
  • Figure 12 illustrates a method for adding a new piece of content to a page
  • Figure 13 illustrates a first method for dynamic scaling
  • Figure 14 illustrates a second method for dynamic scaling.
  • the system may also include a known database server 31 that receives data requests, queries a storage unit 33 (that stores the various data and information associated with the photo system and the story flow system 20) and delivers the requested data to the appropriate system element and one or more rendering servers 32 that renders the bound image albums that are produced by the photo system.
  • the photo system 16 may be used to upload images and then generate a photo album based on the uploaded images of the user.
  • the story flow system 20 permits the user, once they have uploaded the images, to use a graphical user interface representing a number of page spreads to organize images of the user.
  • the images may be digital images, scanned photographs, line art and the like.
  • the story flow system may also group, images imported from a particular storage device of the user, images based on the amount of time that elapsed between those images and group the images based on a cascading window of time intervals as described below in more detail with reference to Figure 5.
  • the story flow system also allows the user to drag a graphical representation of a page spread divider to allow the user to easier change the groupings of images on each page spread.
  • the main client application (that interacts with Picaboo unit 12 in Figure 1) is the Picaboo application.
  • the web application is this implementation may include the private proxies, account verification, file transfers, order pages and/or preview.
  • the server application in the implementation may include album publishing, image extraction, data synchronization, rendering, user gateway, user registration and the session server.
  • the system can upload only enough resolution/size for the user's quality requirements to reduce network traffic between the client application and the server.
  • FIG. 2 illustrates an example of an implementation of a dynamic rendering system shown implemented as a dynamic rendering 40 that is part of each Picaboo client 12.
  • the dynamic rendering unit 40 may be implemented in hardware, a combination of hardware and software or in software as a plurality of lines of computer code that are part of the Picaboo client 12 and executed by the processor that executes the Picaboo client.
  • the dynamic rendering unit 40 may be a plurality of lines of computer code that can be separately executed by a processor of the computing device that is executing the Picaboo client
  • the dynamic rendering unit may be implemented using various coding languages.
  • the above dynamic rendering system/unit may implement a dynamic rendering method
  • the inputs for the dynamic rendering method are raw piece of image data, the horizontal resolution of the source image in pixels, the vertical resolution of the source image in pixels, the horizontal resolution of the visible portion of the source image in pixels accounting for the current zoom level of the image, the size of the source image file in MB (megabytes), the horizontal resolution at which the source image will be reproduced when the book/product is printed, the currently configured pixels per inch (PP1) breakpoints described below in more detail, the currently configured MB MP (megapixel) breakpoints described below in more detail, the currently configured minimum size difference in percent between the original image and the compressed image, the highest Quality Rating (QR) that has previously been uploaded successfully to the server for the particular image and the rendering settings for each Quality Rating.
  • PP1 pixels per inch
  • MB MP megapixel
  • the different rendering quality levels/ratings may include: 1) original image resolution for high quality, reduced resolution for low quality ; 2) minimal lossy compression level for high quality, more compression for low quality; 3) saving the image in the PNG file format for high quality, JPEG format for low quality, 4) no chroma subsampling for high quality, increased subsampling for low quality; and 5) slow rendering algorithms such as bi-cubic interpolation for high quality, faster algorithms such as linear interpolation for low quality.
  • 4:4:4 would represent not using any subsampling at all.
  • the image would retain all original color information and no space would be saved.
  • the 4:2:0 setting (the setting that the system uses at certain settings) quarters the amount of color information being stored, sacrificing some image quality to reduce file size.
  • 4: 1 :0 At the far end of the spectrum of what would be considered standard at all would be 4: 1 :0, which cuts the color information to one eighth the original.
  • the output of the dynamic rendering system is an image that can be uploaded from the client to the server.
  • the method accounts for how high quality the existing image appears to have been saved at, how much information is required for the specific size at which it will be printed, and how much there is to gain by downsizing the image.
  • the method shown in Figures 3 A and 3B would be applied to each image being uploaded.
  • the dynamic rendering unit/system determines an effective PPI of the image (52).
  • the system determines an effective PPI (Pixels Per Inch) at which the particular image would be printed.
  • the dynamic rendering system/unit can determine the megapixel (MP) count of the image (54).
  • the MP count of the image can be determined by multiplying the horizontal and vertical resolution of the source image (which are input into the method) and dividing by 1,000,000.
  • the dynamic rendering unit determines a megabyte to megapixel (MB/MP) ratio of the image (56) which is used as a measure of how efficiently the source image file is storing information. If the ratio is low, it may mean that the image has already been heavily compressed so the system must be careful about employing further compression. If the ratio is high, the system has more space and bandwidth savings to gain by compressing the image than we would if it were low.
  • the dynamic rendering system uses one or more PPI breakpoint values that are set by the system, compares the effective printing PPI of the image (determined above and also known as DPI) to a set of currently configured PPI breakpoints (58). In one implementation, this comparison can be made by assigning points. For example, if the DPI is below a first breakpoint, assign -0.5 points to the book Quality Rating (QR). If the DPI is past only the first breakpoint, assign 0 points. For each additional breakpoint the DPI is past, increase the QR by 0.5 points.
  • QR book Quality Rating
  • the Quality Rating is a discrete category assigned to an image and QR is intended as a general measure of how high quality an image appears to be. The reason that it is rounded to whole numbers rather than affecting rendering settings in a continuous fashion is so that if an image is used at a slightly larger size than it has been used previously, it will probably not need to be uploaded again.
  • the dynamic rendering system uses one or more MB/MP breakpoint values that are set by the system, compares the MB/MP of the image (determined above) to a set of currently configured MB/MP breakpoints (60). In one implementation, this comparison can be made by assigning points. For example, if the MB/MP is below the first breakpoint, assign -0.5 points to the book QR. If the MB/MP ratio is past only the first breakpoint, assign 0 points. For each additional breakpoint the MB/MP ratio is past, increase the QR by 0.5 points. Once the QR points based on the PPI and MB/ P ratio are determined, the dynamic rendering system/unit determines final QR for the image (62). The final QR of the image is the total QR determined above rounded down to the nearest whole number (minimum 1 ). A QR of 1 indicates that the source image file itself should be uploaded (without compression), with higher numbers indicating that progressively higher levels of compression can be employed.
  • the dynamic rendering system/unit determines how to handle the particular image. In particular, if the image has already been uploaded to the server with a QR at least as low as the final QR, the image will not be uploaded again and the server will use the copy that it already has (64). Otherwise, unless the QR is 1, the dynamic render will render a copy of the image at the rendering settings associated with the QR (66) by using a codec to compress the image, such as Quality 98 with no chroma subsampling that was identified above. If the rendered copy of the source image file is determined to be not smaller than the source image file by at least the currently configured Minimum Size Difference, then the dynamic Tenderer uploads the original instead of the copy and otherwise uploads the copy (68). In this way, the dynamic rendered uploads a piece of content with the appropriate compression to accommodate the content as it is going to be used in the product.
  • the rendering settings are as follows:
  • the image has been zoomed in to, so only 800 horizontal pixels of it will be visible.
  • the dynamic rendering method therefore determines the following.
  • the 1024 x 768 resolution makes the image 0.786 MP, so the image has a 0.89 MB/MP.
  • the image will also have 800 horizontal pixels of the image printed over a distance of 3" so the effective PPI is 267. This puts the image past three DPI breakpoints and three MB/MP breakpoints, so the effective QR is 2.
  • a copy of the image is rendered with a rendering quality of 90 using 4:2:2 chroma subsampling. If the rendered image is not smaller than the source image file by at least the currently configured Minimum size difference, the size reduction does not justify the possible loss in quality, and the original will be uploaded instead of the copy.
  • FIG. 4 illustrates an example of an implementation of a dynamic crop alert system shown implemented as a dynamic crop unit 140 that is part of each Picaboo client 12.
  • the dynamic crop unit 140 may be implemented in hardware, a combination of hardware and software or in software as a plurality of lines of computer code that are part of the Picaboo client 12 and executed by the processor that executes the Picaboo client.
  • the dynamic crop unit 140 may be a plurality of lines of computer code that can be separately executed by a processor of the computing device that is executing the Picaboo client.
  • the dynamic crop unit may be implemented using various coding languages. For example, it may be implemented using Adobe Flex and AetionScript for displaying the crop alert to the user.
  • the dynamic crop unit detects if the piece of content is in a crop area (described below in more detail) and alerts the user.
  • Figure 5 illustrates a dynamic crop alert method 150 that can be implemented using the dynamic crop alert system.
  • a user places a piece of content (e.g., a picture or text or the like) in the Picaboo client application, the user expects that the entire piece of content will be shown on the printed page such as shown in Figure 6 A. However, if they place the piece of content too close to the edge of a page, there is a possibility that part of it will be cropped off and not look as they expected as shown in Figure 6B.
  • a piece of content e.g., a picture or text or the like
  • the dynamic crop alert system alerts the user to this possibility and allows the user to fix the problem if the user want to fix the problem.
  • the dynamic crop alert system determines the crop area for the particular product (152). In particular, all cropping is determined on a per product basis as different book types (in the story system example above) may have different cropping tolerances. For example, the custom cover crop zone is very different from the crop zone of linen books and still different from the crop zone of cards.
  • the dynamic crop alert system may download the product information from the server including the crop zone information. It will use this crop zone information to display the crop zone to the user. All calculations for the percentage for the crop zone are used for the display in which the calculations are shown below.
  • the dynamic crop alert system may also generate a crop safety zone that is used to allow a user to position items for printing so that it will fill the entire printed material but will also display what portion of the material that may be cut off during the cropping process. This will allow for layout of items and the user will have a visual indication when they place something in an area that may be cropped when they get the final product
  • the dynamic crop alert system determines if the current content location is in the crop safety zone ( 154). If the piece of content is within the crop safety zone (an example of which is provided below), the dynamic crop alert system displays cropping information to the user using a visual indicator (156). For example, as shown in Figure 7, a piece of content may have an area highlighted which is in the potential crop zone and therefore the user can know where the possible cropping will occur and know not to place anything in that region.
  • the visual indicator may be a non-obtrusive visual indicator.
  • the visual indicator may only be visible when the user is working with pieces of content in the crop zone area.
  • the crop zone indicator since the crop zone indicator being visible maybe considered distracting, the crop zone only needs to be visible when something is placed in an area that may be cropped. For example, a user is arranging a picture o a page. If the user moves the picture into an area that has the potential of being cropped the crop zone will appear showing them the potential area where the image could be cropped. Since exactly where the image will be cropped cannot be determined, the user is alerted to the fact that the edge can be anywhere within the zone shown. Once the user moves the picture out of the area that can be potentially cropped, the crop zone will then disappear so as not to distract the user from layout process. Now, an example of the determination of the crop zone for a particular product will be described.
  • Cropped Width Percent 0.5 / 8.5 - 0.05882 or 5.882%
  • Similar calculations can be used to determine the cropped height amount is 4.3478%
  • the crop zones are determined to be 5.882% of the width and 4.3478% of the height
  • these percentages can be used to display the crop zone to the user. For example, if the user is working on a project to be printed using the above printing information for cropping and the user moves any portion of an object such as a picture or text into an area within 5.882% of the left or right edge or 4.3478% of the top or bottom, then the crop zone will be displayed to the user.
  • FIG 8 illustrates an example of an implementation of a dynamic scaling system shown implemented as a dynamic scaling unit 240 that is part of each Picaboo client 12.
  • the dynamic scaling unit 240 may be implemented in hardware, a combination of hardware and software or in software as a plurality of lines of computer code that are part of the Picaboo client 12 and executed by the processor that executes the Picaboo client.
  • the dynamic scaling unit 240 may be a plurality of lines of computer code that can be separately executed by a processor of the computing device that is executing the Picaboo client.
  • the dynamic scaling unit may be implemented using various coding languages. For example, it maybe implemented using Adobe Flex and ActionScriptS.
  • the dynamic resize code works in conjunction with the open source Object Handles code, which applies the resize handles to the image container.
  • the dynamic scaling unit ensures that the piece of content is resized to avoid distorting the piece of content.
  • the important part of a piece of content, such as an image, is usually at or near the center of the piece of content.
  • the typical method of resizing images is using handles, one on each corners and one on each side. When a handle is clicked and dragged, the image scales to the proportions defined by the handles.
  • the problem with this methodology is that the image container's aspect ratio can change, and when the aspect ratio changes, the interesting parts of the image are not longer kept in view. For example, as shown in Figures 9A and 9B, an image 250 is resized by dragging a right side handle of the container resulting in the scaled image 252 (shown in Figure 9B) in which the interesting parts of the image are lost which is undesirable.
  • the image 250 (shown in Figure 10A) in which the image dimensions of the image are changed to generate a scaled image 252 with a smaller width due to dynamic scaling so that the face stays at the center of the image which is desirable.
  • the width of a container of the image 250 (as shown in Figure 1 1 A) is increased but the dimensions do not change which results in the scaled image 252 (as shown in Figure 1 IB) in which the whole image grows, but the man's face stays vertically centered using dynamic scaling.
  • Figure 12 illustrates a method 260 for adding a new piece of content to a page.
  • the dynamic scaling system determines if the image is placed into an existing container (264). In most systems, an image on a page has a container that surrounds the image and the contained allows the image to be manipulated as described above. If the image i s placed into an existing container, then a dynamic resizing method is applied to the image as shown in Figure 13 (268). If the image is not placed into an existing container, then the content system/dynamic scaling unit creates a new container with the same dimensions as the image (269).
  • image width image height * image aspect ratio
  • the X and Y positions are the positions of the image within the container.
  • image Y position (container height - image width)/2
  • the dynamic scaling performs processes to fit the image into the container (279), including:
  • Figure 14 illustrates a second method 280 for dynamic scaling when the height or width of an existing image container is changed.
  • the dynamic scaling unit perform a process (282) when the container width has been changed.
  • the dynamic scaling unit determines if the new image X position or width goes beyond the bounds of the container (290). If the new image X position or width does not go beyond the bounds of the container, then the dynamic scaling unit sets the image X position and width to both be within the container (292) and the process is completed.
  • the dynamic scaling unit perform a process (298) when the container height has been changed.
  • the dynamic sealing unit does not change the image width or position (294). Similarly, if the image height is not centered in the container, then the dynamic scaling unit does not change the image width or position (294).
  • the dynamic scaling unit performs the processes shown in Figure 13 (296). Using the methods of Figures 13 and 14, content can be dynamically resealed without distorting the content.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Road Signs Or Road Markings (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A dynamic rendering system and method are provided that allows the system to appropriately upload content at the appropriate size to permit use of the content, In addition, a dynamic crop alert system and method are provided that alerts a user of a system when a picture may be too close to an area that might be cropped during production. Furthermore, a dynamic scaling system and method are provided that allows the user to scale up or down a piece of content without distorting the content.

Description

DYNAMIC RENDERING, POSITION SCALING AND CROP ALERT SYSTEM AND
METHOD
Kevin McCurdy, Menlo Park, CA
Christopher Granahan, Menlo Park, CA
Tracy Spiva, Menlo Park, CA
Dennis John, Menlo Park, CA
Field
A system and method for determining an appropriate compression of a piece of content based on the layout of the content. In addition, a system and method for alerting a user when a piece of content is near a crop line when laying out, organizing and assembling one or more pieces of content. Furthermore, a system and method for dynamic scaling of a piece of content.
Background
Systems and method that permit a user to organize a plurality of pieces of content are known. For example, the Picture Manager utility in Windows® allows a user to view a plurality of digital images, arrange the digital images and then view the plurality of digital images as a slide show. In addition, one can use Microsoft® Powerpoint® to generate and arrange a series of slides wherein each slide can contain one or more digital images so that a shdeshow with the slides containing the digital images is generated. In addition, video editing system (both high end movie studio type systems and consumer systems) exist that allow a user to put together clips of video images into a movie or other video show.
Systems and method that permit a user to organize a plurality of pieces of content are known. For example, the Picture Manager utility in Windows® allows a user to view a plurality of digital images, arrange the digital images and then view the plurality of digital images as a slide show. In addition, one can use Microsoft® Powerpoint® to generate and arrange a series of slides wherein each slide can contain one or more digital images so that a slideshow with the slides containing the digital images is generated. In addition, video editing system (both high end movie studio type systems and consumer systems) exist that allow a user to put together clips of video images into a movie or other video show.
Systems and method that permit a user to organize a plurality of pieces of content are known. For example, the Picture Manager utility in Windows® allows a user to view a plurality of digital images, arrange the digital images and then view the plurality of digital images as a slide show. In addition, one can use Microsoft® Powerpoint® to generate and arrange a series of slides wherein each slide can contain one or more digital images so that a slideshow with the slides containing the digital images is generated. In addition, video editing system (hoth high end movie studio type systems and consumer systems) exist that allow a user to put together clips of video images into a movie or other video show.
However, no existing system is capable of organizing a plurality of images wherein the system has the capability to perform dynamic position scaling of a piece of content, the capability to alert a user to crop areas in a layout and the capability to dymanically render a piece of content based on how the content is used in a printed product and it is to this end that the system and method are directed. Brief Description of the Drawings
Figure 1 illustrates an example of a web-based system that includes a story flow system that can incorporate the dynamic rendering system, the dynamic crop alert system and the dynamic scaling system;
Figure 2 illustrates an example of an implementation of a dynamic rendering system; and
Figures 3 A and 3B illustrate a dynamic rendering method that can be implemented using the dynamic rendering system.
Figure 4 illustrates an example of an implementation of a dynamic crop alert system;
Figure 5 illustrates a dynamic crop alert method that can be implemented using the dynamic crop alert system;
Figures 6A and 6B are examples of an original piece of content and a cropped piece of content, respectively; and
Figure 7 illustrates an example of a crop alert of the dynamic crop alert system.
Figure 8 illustrates an example of an implementation of a dynamic scaling system; Figures 9A-11 B illustrate examples of scaling of an image;
Figure 12 illustrates a method for adding a new piece of content to a page; Figure 13 illustrates a first method for dynamic scaling; and
Figure 14 illustrates a second method for dynamic scaling.
Detailed Description of One or More Embodiments
The system with dynamic rendering, dynamic crop alert and dynamic crop scaling are particularly applicable to a web-based story flow system that is incorporated into a web-based photo book system and it is in this context that the system and method will be described. It will be appreciated, however, that the system and method have greater utility since the system and method can be implemented in different manners than disclosed below and ma be used as a independent system (not part of the web-based photo book system), as part of a different content system, as a desktop application that is connected to the Internet and a web site (such as the photo book system, or with other systems in which it is desirable to be able to preview, assemble and generate a bound book of digital images. In an exemplary embodiment, the story flow system that is part of a web-based photo book system that is accessible on the web at www.picaboo.com. Now, an example of a story flow system and method that can utilize the dynamic rendering, dynamic crop alter and dynamic scaling system and method is described for illustration purposes.
Figure 1 illustrates an example of a web-based system 10 that includes a story flow system 20 that may be used with the dynamic rendering system and method. The web-based system, that may be a photo book system of Picaboo (www.picaboo.com) may include one or more computing devices 102 (such as the plurality of Picaboo clients as shown in Figure 1) that may each be a processing unit based device with sufficient memory, display capabilities, storage space, processing power and connectivity (wired or wireless) to access and interact with a photo system 16 over a communications link 14 (wired or wireless). For example, each computing device may be a personal computer, laptop computer, desktop computer, a wireless device, a wireless email device, an integrated device such as a RIM Blackberry or Palm Treo device, a mobile phone or a cellular phone. The link 14 is in turn connected to a firewall device 26 that protects the internal network from malicious activities by having all data into and out from the internal systems pass through the firewall. The internal systems (that are behind the firewall) may include one or more application web servers 28 (one or more of which may execute the story flow system 20 that may be implemented in software in one
embodiment) that receive requests and information from the computing devices and generate one or more web pages that contain information that can be displayed in a known browser application being executed by each computing device. The system may also include a known database server 31 that receives data requests, queries a storage unit 33 (that stores the various data and information associated with the photo system and the story flow system 20) and delivers the requested data to the appropriate system element and one or more rendering servers 32 that renders the bound image albums that are produced by the photo system. The photo system 16 may be used to upload images and then generate a photo album based on the uploaded images of the user.
The story flow system 20 permits the user, once they have uploaded the images, to use a graphical user interface representing a number of page spreads to organize images of the user. The images may be digital images, scanned photographs, line art and the like. The story flow system may also group, images imported from a particular storage device of the user, images based on the amount of time that elapsed between those images and group the images based on a cascading window of time intervals as described below in more detail with reference to Figure 5. The story flow system also allows the user to drag a graphical representation of a page spread divider to allow the user to easier change the groupings of images on each page spread. The story flow system also allows the user to move images between the graphical representations of the page spreads and thus to different pages of the bound book that is the end product of the photo system. The story flow system also allows the user to rearrange page spreads (two facing pages in the bound book) or the pages within a page spread to a different location or to a different page spread.
The main client application (that interacts with Picaboo unit 12 in Figure 1) is the Picaboo application. The web application is this implementation may include the private proxies, account verification, file transfers, order pages and/or preview. The server application in the implementation may include album publishing, image extraction, data synchronization, rendering, user gateway, user registration and the session server.
Each Picaboo client 12 may be implemented as a hardware unit, as a combination of hardware and software (such as a computing device with a plurality of lines of code being executed by the processor of the computing device) or a software which has a plurality of lines of code being executed by the processor of a computing device of the user who is executing the Picaboo client. The Picaboo client allows the user to interact with the story flow system. For example, the Picaboo client allows a user to layout one or more pieces of content onto a story flow so that the story, when completed, can be printed for the user. One challenge is when the client application uploads content to the server for printing production of the product, such as a book. In particular, it is desirable to determine upload content size/resolution for each piece of content so that the uploaded content has sufficient resolution for the quality of printing requested by the user. Optimally, the system can upload only enough resolution/size for the user's quality requirements to reduce network traffic between the client application and the server.
Figure 2 illustrates an example of an implementation of a dynamic rendering system shown implemented as a dynamic rendering 40 that is part of each Picaboo client 12. The dynamic rendering unit 40 may be implemented in hardware, a combination of hardware and software or in software as a plurality of lines of computer code that are part of the Picaboo client 12 and executed by the processor that executes the Picaboo client. Alternatively, the dynamic rendering unit 40 may be a plurality of lines of computer code that can be separately executed by a processor of the computing device that is executing the Picaboo client In the software implementation, the dynamic rendering unit may be implemented using various coding languages. In operation in the Picaboo client example, as each piece of content is being uploaded by the client to the server for printing, the dynamic rendering unit determines a resolution of the content to be uploaded to the server based on the printing quality desired by the user in order to reduce file size if possible and reduce upload time if possible.
The above dynamic rendering system/unit may implement a dynamic rendering method
50 as shown in Figures 3A and 3B. In the story flow system above, as the user has completed a book with content, such as images or text, on the Picaboo client, the user uploads the pieces of content to the server for printing. As each piece of content is going to be uploaded to the server (or at some time previously), the dynamic rendering method is executed for each piece of content. For purposes of illustration, the dynamic rendering method is described in the content of a piece of content that is an image. However, the dynamic rendering method can be used for various pieces of content such as videos, pictures and the like.
The inputs for the dynamic rendering method are raw piece of image data, the horizontal resolution of the source image in pixels, the vertical resolution of the source image in pixels, the horizontal resolution of the visible portion of the source image in pixels accounting for the current zoom level of the image, the size of the source image file in MB (megabytes), the horizontal resolution at which the source image will be reproduced when the book/product is printed, the currently configured pixels per inch (PP1) breakpoints described below in more detail, the currently configured MB MP (megapixel) breakpoints described below in more detail, the currently configured minimum size difference in percent between the original image and the compressed image, the highest Quality Rating (QR) that has previously been uploaded successfully to the server for the particular image and the rendering settings for each Quality Rating. In addition to the rendering settings set forth below in the example, the different rendering quality levels/ratings may include: 1) original image resolution for high quality, reduced resolution for low quality ; 2) minimal lossy compression level for high quality, more compression for low quality; 3) saving the image in the PNG file format for high quality, JPEG format for low quality, 4) no chroma subsampling for high quality, increased subsampling for low quality; and 5) slow rendering algorithms such as bi-cubic interpolation for high quality, faster algorithms such as linear interpolation for low quality.
The PPI breakpoints, the MB/MP breakpoints, the minimum size difference in percent between the original image and the compressed image and the rendering settings for each Quality Rating are all configured by the system. The reason that the specific Tenderer settings for each level are configurable is that there are many reasons that one might want to change them over time. Reducing the file size of an image may be desirable due to factors like bandwidth constraints and storage constraints, both on the client machine and for the server. As bandwidth and storage become less expensive, increasing the quality settings or altering the breakpoints will be a natural response, particularly if higher resolution digital cameras become more commonplace. Each of these configurable settings may have a range of values. Some of the ranges of values will depend on which image encoder is being used and some will not. For example, the "quality level" in most encoders is a measure of how little lossy compression is used. While most scale from 1-100, exactly how much compression "50" constitutes will depend on the particular encoder. If the original image was large enough relative to the size it will be printed, then depending on the encoder being used, values as low as 10 or so could conceivably be used, so a range of 10-100 on the quality level may be used.
For chroma subsampling, 4:4:4 would represent not using any subsampling at all. The image would retain all original color information and no space would be saved. The 4:2:0 setting (the setting that the system uses at certain settings) quarters the amount of color information being stored, sacrificing some image quality to reduce file size. At the far end of the spectrum of what would be considered standard at all would be 4: 1 :0, which cuts the color information to one eighth the original.
Once the dynamic rendering unit has completed its task, the output of the dynamic rendering system is an image that can be uploaded from the client to the server.
In one implementation, the dynamic rendering method may be used for source images saved in the JPEG format. If the source image was saved in the PNG format, it may mean that the user is particularly concerned with quality for the image in question and those source images will always be encoded as a JPEG image at a very high quality level (in the case of the encoder that we are using, Quality 98 with no chroma subsampling.)
As an alternative to the dynamic rendering method described below, it also possible to use a selective downsizing method that caps the resolution or file size of an image and compresses or downsizes the image if it exceeds the resolution limit and/or file size limit. However, these methods have a number of drawbacks, including the following: 1) the method might end up downsizing an image that is high resolution, but is already heavily compressed which could result in both poor quality printing and in uploading an image file that is actually larger than the original; and 2) the method might end up uploading an original image file that does not seem too large, but is only being represented at a small size on the page, so could be downsized without concern.
In one implementation of the dynamic rendering method, the method accounts for how high quality the existing image appears to have been saved at, how much information is required for the specific size at which it will be printed, and how much there is to gain by downsizing the image. The method shown in Figures 3 A and 3B would be applied to each image being uploaded. The dynamic rendering unit/system, in implementing the dynamic rendering method, determines an effective PPI of the image (52). In more detail, the system determines an effective PPI (Pixels Per Inch) at which the particular image would be printed. To determine the PPI, the system divides the horizontal resolution in pixels of the visible part of the image by the width in inches that the image will occupy on the printed page (which is known based on the layout of the image by the user.) If the PPI is high, the image has a lot of detail and can be compressed. If the PPI is low, the image should not be compressed. The PPI can have a wide range of values. For example, if a user mistakenly used a thumbnail version of an image for printing at a relatively large size, it could be in the single digits. Alternatively, a very high resolution image printed at the size of a postage stamp, on the other hand, could have a 3000 PPI or more. Generally speaking, anything around 300 or above would be considered high, while anything below 100 would have to be considered low.
Once the PPI is determined, the dynamic rendering system/unit can determine the megapixel (MP) count of the image (54). The MP count of the image can be determined by multiplying the horizontal and vertical resolution of the source image (which are input into the method) and dividing by 1,000,000. Once the MP count has been determined, the dynamic rendering unit determines a megabyte to megapixel (MB/MP) ratio of the image (56) which is used as a measure of how efficiently the source image file is storing information. If the ratio is low, it may mean that the image has already been heavily compressed so the system must be careful about employing further compression. If the ratio is high, the system has more space and bandwidth savings to gain by compressing the image than we would if it were low. In general, any normal image that is over 1.5 MB MP has probably not been compressed much. At the other end of the spectrum, any normal image that is less than 0.3 MB/MP has probably gone through at least a moderate amount of compression. For intermediate values, MB/MP will be correlated with relative image quality, but not perfectly.
Once the ratio is determined, the dynamic rendering system, using one or more PPI breakpoint values that are set by the system, compares the effective printing PPI of the image (determined above and also known as DPI) to a set of currently configured PPI breakpoints (58). In one implementation, this comparison can be made by assigning points. For example, if the DPI is below a first breakpoint, assign -0.5 points to the book Quality Rating (QR). If the DPI is past only the first breakpoint, assign 0 points. For each additional breakpoint the DPI is past, increase the QR by 0.5 points. The Quality Rating is a discrete category assigned to an image and QR is intended as a general measure of how high quality an image appears to be. The reason that it is rounded to whole numbers rather than affecting rendering settings in a continuous fashion is so that if an image is used at a slightly larger size than it has been used previously, it will probably not need to be uploaded again.
The dynamic rendering system, using one or more MB/MP breakpoint values that are set by the system, compares the MB/MP of the image (determined above) to a set of currently configured MB/MP breakpoints (60). In one implementation, this comparison can be made by assigning points. For example, if the MB/MP is below the first breakpoint, assign -0.5 points to the book QR. If the MB/MP ratio is past only the first breakpoint, assign 0 points. For each additional breakpoint the MB/MP ratio is past, increase the QR by 0.5 points. Once the QR points based on the PPI and MB/ P ratio are determined, the dynamic rendering system/unit determines final QR for the image (62). The final QR of the image is the total QR determined above rounded down to the nearest whole number (minimum 1 ). A QR of 1 indicates that the source image file itself should be uploaded (without compression), with higher numbers indicating that progressively higher levels of compression can be employed.
Once the final QR is determined, the dynamic rendering system/unit determines how to handle the particular image. In particular, if the image has already been uploaded to the server with a QR at least as low as the final QR, the image will not be uploaded again and the server will use the copy that it already has (64). Otherwise, unless the QR is 1, the dynamic render will render a copy of the image at the rendering settings associated with the QR (66) by using a codec to compress the image, such as Quality 98 with no chroma subsampling that was identified above. If the rendered copy of the source image file is determined to be not smaller than the source image file by at least the currently configured Minimum Size Difference, then the dynamic Tenderer uploads the original instead of the copy and otherwise uploads the copy (68). In this way, the dynamic rendered uploads a piece of content with the appropriate compression to accommodate the content as it is going to be used in the product.
As an example of how this method, assume that the PPI breakpoints are 100, 150, 225, 325, 450, and 600 and the MB/MP breakpoints are 0.1, 0.35, 0.75, 1.2, and 2. Based on these breakpoints, the required quality setting can be summarized by the following table
Effective Printing
PPI Values MB/MP Values
0- 0.1- 0.35- 0.75-
0.1 0.35 0.75 1.2 1.2-2 2+
0-100 1 1 1 1 1 1
100-150 1 1 1 1 1 2
150-225 1 1 1 1 2 2
225-325 1 1 1 2 2 3
325-450 1 1 2 2 3 3
450-600 1 2 2 3 3 4
600+ 2 2 3 3 4 4
In one implementation, the rendering settings are as follows:
1. Upload the source image itself.
2. Render the copy at a rendering quality of 90 with 4:2:0 chroma subsampling. 3. Render the copy at a rendering quality of 70 with 4:2:0 chroma subsampling.
4. Render the copy at a rendering quality of 30 with 4:2:0 chroma subsampling.
As a particular example, assume an image that has the following characteristics: 1. The source image file is 0.7 MB in size.
2. The source image has a resolution of 1024 x 768 pixels.
. The image has been zoomed in to, so only 800 horizontal pixels of it will be visible.
4. The image will be printed 3" wide on the page.
The dynamic rendering method therefore determines the following. The 1024 x 768 resolution makes the image 0.786 MP, so the image has a 0.89 MB/MP. The image will also have 800 horizontal pixels of the image printed over a distance of 3" so the effective PPI is 267. This puts the image past three DPI breakpoints and three MB/MP breakpoints, so the effective QR is 2. Given these determinations, a copy of the image is rendered with a rendering quality of 90 using 4:2:2 chroma subsampling. If the rendered image is not smaller than the source image file by at least the currently configured Minimum size difference, the size reduction does not justify the possible loss in quality, and the original will be uploaded instead of the copy.
Figure 4 illustrates an example of an implementation of a dynamic crop alert system shown implemented as a dynamic crop unit 140 that is part of each Picaboo client 12. The dynamic crop unit 140 may be implemented in hardware, a combination of hardware and software or in software as a plurality of lines of computer code that are part of the Picaboo client 12 and executed by the processor that executes the Picaboo client. Alternatively, the dynamic crop unit 140 may be a plurality of lines of computer code that can be separately executed by a processor of the computing device that is executing the Picaboo client. In the software implementation, the dynamic crop unit may be implemented using various coding languages. For example, it may be implemented using Adobe Flex and AetionScript for displaying the crop alert to the user. In operation in the Picaboo client example, as each piece of content is being located by the user, the dynamic crop unit detects if the piece of content is in a crop area (described below in more detail) and alerts the user. Figure 5 illustrates a dynamic crop alert method 150 that can be implemented using the dynamic crop alert system. In operation, when a user places a piece of content (e.g., a picture or text or the like) in the Picaboo client application, the user expects that the entire piece of content will be shown on the printed page such as shown in Figure 6 A. However, if they place the piece of content too close to the edge of a page, there is a possibility that part of it will be cropped off and not look as they expected as shown in Figure 6B. When printing anything that requires printing to the edge of the final product some "cropping" will occur due to the fact that some of the printed material will need to be trimmed in order to have the printing go to the edge of the material. The dynamic crop alert system alerts the user to this possibility and allows the user to fix the problem if the user want to fix the problem. For a particular user that is inserting pieces of content into a particular product, the dynamic crop alert system determines the crop area for the particular product (152). In particular, all cropping is determined on a per product basis as different book types (in the story system example above) may have different cropping tolerances. For example, the custom cover crop zone is very different from the crop zone of linen books and still different from the crop zone of cards. All crop zone information is gathered from the printing partners, calculated into percentages and is stored as part of the product information for each product type we offer and stored on the server when the dynamic crop alert system is implemented as a client that interacts with a remote server over a link, such as the Internet. The dynamic crop alert system may download the product information from the server including the crop zone information. It will use this crop zone information to display the crop zone to the user. All calculations for the percentage for the crop zone are used for the display in which the calculations are shown below. The dynamic crop alert system may also generate a crop safety zone that is used to allow a user to position items for printing so that it will fill the entire printed material but will also display what portion of the material that may be cut off during the cropping process. This will allow for layout of items and the user will have a visual indication when they place something in an area that may be cropped when they get the final product
When the user lays out a particular piece of content onto the product layout, the dynamic crop alert system determines if the current content location is in the crop safety zone ( 154). If the piece of content is within the crop safety zone (an example of which is provided below), the dynamic crop alert system displays cropping information to the user using a visual indicator (156). For example, as shown in Figure 7, a piece of content may have an area highlighted which is in the potential crop zone and therefore the user can know where the possible cropping will occur and know not to place anything in that region.
In one implementation, the visual indicator may be a non-obtrusive visual indicator. In addition, the visual indicator may only be visible when the user is working with pieces of content in the crop zone area. In particular, since the crop zone indicator being visible maybe considered distracting, the crop zone only needs to be visible when something is placed in an area that may be cropped. For example, a user is arranging a picture o a page. If the user moves the picture into an area that has the potential of being cropped the crop zone will appear showing them the potential area where the image could be cropped. Since exactly where the image will be cropped cannot be determined, the user is alerted to the fact that the edge can be anywhere within the zone shown. Once the user moves the picture out of the area that can be potentially cropped, the crop zone will then disappear so as not to distract the user from layout process. Now, an example of the determination of the crop zone for a particular product will be described.
Based on the product being printed, there is different crop tolerance for the cropping. For example, it may be determined that for printing a book page that is 8 inches by 11 inches as a final product the page needs to actually be printed at 8.5 inches by 11.5 inches and the edges of the printed page cut down to 8 inches by 11 inches. However, the exact line where the cut is to be made is not guaranteed to be at any one spot just that the final version will be 8x11 inches. Therefore, there a crop safety zone of 0.5 inches on the top, bottom and both sides will need to be used to show the user where the safety zone will be. Since a crop safety zone of 0.5 inches has been determined for a page that is printed as 8.5 by 1 1.5 inches (original printed size), the following information is used to display to the user.
Printed Width: 8.5 inches
Cropped Width: 8.0 inches
Cropped Width Amount: 0.5 inches
Cropped Width Percent: 0.5 / 8.5 - 0.05882 or 5.882%
Similar calculations can be used to determine the cropped height amount is 4.3478% Now that the crop zones are determined to be 5.882% of the width and 4.3478% of the height, these percentages can be used to display the crop zone to the user. For example, if the user is working on a project to be printed using the above printing information for cropping and the user moves any portion of an object such as a picture or text into an area within 5.882% of the left or right edge or 4.3478% of the top or bottom, then the crop zone will be displayed to the user.
Figure 8 illustrates an example of an implementation of a dynamic scaling system shown implemented as a dynamic scaling unit 240 that is part of each Picaboo client 12. The dynamic scaling unit 240 may be implemented in hardware, a combination of hardware and software or in software as a plurality of lines of computer code that are part of the Picaboo client 12 and executed by the processor that executes the Picaboo client. Alternatively, the dynamic scaling unit 240 may be a plurality of lines of computer code that can be separately executed by a processor of the computing device that is executing the Picaboo client. In the software implementation, the dynamic scaling unit may be implemented using various coding languages. For example, it maybe implemented using Adobe Flex and ActionScriptS. In more detail, the dynamic resize code works in conjunction with the open source Object Handles code, which applies the resize handles to the image container. In operation in the Picaboo client example, as each piece of content is being placed onto a page by the user, the dynamic scaling unit ensures that the piece of content is resized to avoid distorting the piece of content.
The important part of a piece of content, such as an image, is usually at or near the center of the piece of content. The typical method of resizing images is using handles, one on each corners and one on each side. When a handle is clicked and dragged, the image scales to the proportions defined by the handles. The problem with this methodology is that the image container's aspect ratio can change, and when the aspect ratio changes, the interesting parts of the image are not longer kept in view. For example, as shown in Figures 9A and 9B, an image 250 is resized by dragging a right side handle of the container resulting in the scaled image 252 (shown in Figure 9B) in which the interesting parts of the image are lost which is undesirable. As shown in Figures 10A and 10B, the image 250 (shown in Figure 10A) in which the image dimensions of the image are changed to generate a scaled image 252 with a smaller width due to dynamic scaling so that the face stays at the center of the image which is desirable. Finally, as shown in Figures 11 A and 1 IB, the width of a container of the image 250 (as shown in Figure 1 1 A) is increased but the dimensions do not change which results in the scaled image 252 (as shown in Figure 1 IB) in which the whole image grows, but the man's face stays vertically centered using dynamic scaling. Thus, as shown in Figures 10B and 1 IB, if one dimension of the image container is resized beyond the existing bounds of the image, dynamic resizing scales the image, and crops the opposite dimension to keep the center of the image in the center of the container at all times. In the dynamic scaling, the actions happen in real-time so that, as the user is dragging the handles, the dynamic position is applied so the user can instantly see the new placement of the image. Thus, using dynamic scaling, when the image container is resized, as long as the image has not been placed off-center in the container, the center of the image will always remain in the center of the container. Now, methods for content use using dynamic scaling are described in more detail.
Figure 12 illustrates a method 260 for adding a new piece of content to a page. When an image is placed on a page in a content systems(262), the dynamic scaling system determines if the image is placed into an existing container (264). In most systems, an image on a page has a container that surrounds the image and the contained allows the image to be manipulated as described above. If the image i s placed into an existing container, then a dynamic resizing method is applied to the image as shown in Figure 13 (268). If the image is not placed into an existing container, then the content system/dynamic scaling unit creates a new container with the same dimensions as the image (269).
Figure 13 illustrates a first method 270 for dynamic sealing. The dynamic scaling unit determines if the container aspect ratio is equal to the image aspect ratio (272). If container aspect ratio is not equal to the image aspect ratio, then the dynamic scaling unit if the container aspect ratio is greater than the image aspect ratio (274) so that the image can be scaled to fit the width of the container if needed. If the container aspect ratio is not greater than the image aspect ratio, then the dynamic scaling performs processes to fit the image into the container (276), including:
image height is set equal to (=) container height
image width = image height * image aspect ratio
image X position = (container width- image width)/2
image Y position = 0.
The X and Y positions are the positions of the image within the container.
If the container aspect ratio is greater than the image aspect ratio, then the dynamic scaling performs processes to fit the image into the container (278), including: image width is set equal to (=) container width
image height = image width * image aspect ratio
image X position = 0
image Y position = (container height - image width)/2
Returning to process 272, if the container aspect ratio is equal to the image aspect ratio, then the dynamic scaling performs processes to fit the image into the container (279), including:
image height is set equal to (=) container height
image width = container width
image X position = 0
image Y position = 0.
Figure 14 illustrates a second method 280 for dynamic scaling when the height or width of an existing image container is changed. The dynamic scaling unit perform a process (282) when the container width has been changed. The dynamic scaling unit determines if the image width is centered in the container (284). If the image width is centered in the container, the dynamic scaling unit determines if the image is zoomed (286). If the image is zoomed, the dynamic scaling unit sets (288) the image X position equal to (=) (container width - image width)/2. The dynamic scaling unit then determines if the new image X position or width goes beyond the bounds of the container (290). If the new image X position or width does not go beyond the bounds of the container, then the dynamic scaling unit sets the image X position and width to both be within the container (292) and the process is completed.
The dynamic scaling unit perform a process (298) when the container height has been changed. The dynamic scaling unit determines if the image height is centered in the container (300). If the image height is centered in the container, the dynamic scaling unit determines if the image is zoomed (302). If the image is zoomed, the dynamic scaling unit sets (304) the image Y position equal to (=) (container height - image height)/2. The dynamic scaling unit then determines if the new image Y position or height goes beyond the bounds of the container (306). If the new image Y position or height does not go beyond the bounds of the container, then the dynamic scaling unit sets the image Y position and height to both be within the container (308) and the process is completed. Returning to process 284, if the image width is not centered in the container, then the dynamic sealing unit does not change the image width or position (294). Similarly, if the image height is not centered in the container, then the dynamic scaling unit does not change the image width or position (294). Returning to processes 286, 302, if the image is not zoomed, the dynamic scaling unit performs the processes shown in Figure 13 (296). Using the methods of Figures 13 and 14, content can be dynamically resealed without distorting the content.
While the foregoing has been with reference to a particular embodiment of the invention, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from the principles and spirit of the invention , the scope of which is defined by the appended claims.

Claims

Claims:
1 , A dynamic rendering method implemented on a content system with a content unit that stores pieces of content and a dynamic rendering unit, the method comprising:
determining a ratio of an effective pixel per inch of a piece of content to a megapixel count of the piece of content;
comparing the effective pixel per inch of the piece of content to one or more pixel per inch breakpoints to adjust the quality rating of the piece of content;
comparing a megabyte per megapixel ratio of the piece of content to one or more megabyte per megapixel ratio breakpoints to adjust the quality rating of the piece of content and generate a final quality rating of the piece of content; and
determining whether to render the piece of content based on the final quality rating of the piece of content.
2. The method of claim 1 further comprising discarding the piece of content if the content store already has the piece of content with a quality rating at least as low as the final quality rating of the piece of content.
3. The method of claim 1 further comprising discarding the rendered piece of content if the rendered piece of content is not smaller that the piece of content.
4. A dynamic crop zone alert method implemented on a content system with a content unit that stores pieces of content and a dynamic rendering unit, the method comprising: automatically determining a cropping zone when a final product that contains one or more pieces of content is printed;
automatically determining if a particular piece o f content is in the cropping zone; and displaying a visual indicator to the user when the piece of content is in the cropping zone.
5. The method of claim 4, wherein displaying the visual indicator further comprises displaying a colored area around the piece of content.
6. A dynamic scaling method implemented on a content system with a content unit that stores pieces of content and a dynamic rendering unit, the method comprising:
comparing an aspect ratio of a container for a piece of content to an aspect ratio of the piece of content, wherein the container and the piece of content each have a height and a width; scaling the height of the piece of content and adjusting a vertical positioning of the piece of content in the container when the aspect ratio of the container is greater than the aspect ratio of the piece of content; and
scaling a width of the piece of content and adjusting the horizontal position of the piece of content in the container when the aspect ratio of the container is not greater than the aspect ration of the piece of content.
7. The method of claim 6 further comprising adjusting the horizontal position of the piece of content in the container when the width of the container is changed.
8. The method of claim 6 further comprising adjusting the vertical position of the piece of content in the container when the height of the container is changed.
9. A content system, comprising:
a content system;
a story flow unit that is part of the content system;
the story flow unit that allows a user to organize a set of content into an album having one or more pages with each page having one or more media wells for one or more pieces of content; and
the story flow unit further comprises a content unit that allows the user to place a piece of content into a media well on a page and a page unit that allows the user to place a manipulate a page in the album.
10. The system of claim 9, wherein the story flow unit further comprises a dynamic rendering unit that determines a resolution of a piece of content being uploaded to the content unit based on a printing quality desired for the album.
11. The system of claim 9, wherein the story flow unit further comprises a dynamic crop unit that visually indicates a crop zone for a piece of content to the user.
12. The system of claim 9, wherein the story flow unit further comprises a dynamic scaling unit that scales a piece of content to a media well based on an aspect ratio.
PCT/US2010/053078 2009-10-16 2010-10-18 Dynamic rendering, position scaling and crop alert system and method WO2011047388A2 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US25243209P 2009-10-16 2009-10-16
US25244009P 2009-10-16 2009-10-16
US25244609P 2009-10-16 2009-10-16
US61/252,446 2009-10-16
US61/252,432 2009-10-16
US61/252,440 2009-10-16

Publications (2)

Publication Number Publication Date
WO2011047388A2 true WO2011047388A2 (en) 2011-04-21
WO2011047388A3 WO2011047388A3 (en) 2011-09-15

Family

ID=43876932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2010/053078 WO2011047388A2 (en) 2009-10-16 2010-10-18 Dynamic rendering, position scaling and crop alert system and method

Country Status (1)

Country Link
WO (1) WO2011047388A2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050162670A1 (en) * 2004-01-27 2005-07-28 Shuler Robert L.Jr. Method for evaluating and recommending digital image print size with ordering and overlapped file upload
US20060181532A1 (en) * 2004-08-04 2006-08-17 Geneva Software Technologies Limited Method and system for pixel based rendering of multi-lingual characters from a combination of glyphs
US20060256214A1 (en) * 2001-02-08 2006-11-16 Maclean Steven D Improving the highlight reproduction of an imaging system
US20060290703A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Non-destructive processing of digital image data
US20080166071A1 (en) * 2007-01-10 2008-07-10 Alexandru Serbanescu Data processing method & device
US20080178109A1 (en) * 2007-01-24 2008-07-24 Chin-Chuan Liang Virtual dynamic pattern rendering system that changes its display status according to external information

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256214A1 (en) * 2001-02-08 2006-11-16 Maclean Steven D Improving the highlight reproduction of an imaging system
US20050162670A1 (en) * 2004-01-27 2005-07-28 Shuler Robert L.Jr. Method for evaluating and recommending digital image print size with ordering and overlapped file upload
US20060181532A1 (en) * 2004-08-04 2006-08-17 Geneva Software Technologies Limited Method and system for pixel based rendering of multi-lingual characters from a combination of glyphs
US20060290703A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Non-destructive processing of digital image data
US20080166071A1 (en) * 2007-01-10 2008-07-10 Alexandru Serbanescu Data processing method & device
US20080178109A1 (en) * 2007-01-24 2008-07-24 Chin-Chuan Liang Virtual dynamic pattern rendering system that changes its display status according to external information

Also Published As

Publication number Publication date
WO2011047388A3 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
EP2118847B1 (en) Method for processing a digital image
Castiglione et al. A forensic analysis of images on online social networks
US7792388B2 (en) Controlling format of a compound image
US6708309B1 (en) Method and system for viewing scalable documents
JP5290487B2 (en) System and method for digital document processing
KR100898096B1 (en) Method and system for viewing and enhancing images
US6874131B2 (en) Method and system for client-less viewing of scalable documents
US7721204B2 (en) Client dependent image processing for browser-based image document viewer for handheld client devices
US20030191756A1 (en) Thumbnail image browsing method in an embedded system
US20120134595A1 (en) Method and apparatus for providing an image for display
KR20050029311A (en) Imaging system providing dynamic viewport layering optimised for a specific client device type
US20170168997A1 (en) System and computer-implemented method for incorporating an image into a page of content for transmission from a web-site
JP5848538B2 (en) Information processing system, information processing device, output device, and information processing method
EP2177039A1 (en) Pixel aspect ratio correction using panchromatic pixels
US9361852B2 (en) Media reproduction device
WO2011047388A2 (en) Dynamic rendering, position scaling and crop alert system and method
JP2007201935A (en) Control method of image processing apparatus, and image processing apparatus
US8878902B2 (en) Stereoscopic image display control apparatus, and method and program for controlling operation of same
JP2008053813A (en) Image processor, image processing method, and image processing program
JP5614191B2 (en) Thumbnail image generation apparatus and program
JP4916587B1 (en) Providing electronic books
Solanki et al. Content aware image size reduction using low energy maps for reduced distortion
CN112005542B (en) Image layout size calculation device and method, and recording medium
Keshet et al. Automatic photo enhancement server (hipie 2)
GB2415519A (en) A scanning and indexing device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10824249

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10824249

Country of ref document: EP

Kind code of ref document: A2