The present invention relates generally to electronic mail and websites and, more specifically, to techniques for embedding images in email and websites.
For the past couple of decades, the amount of electronic communication has grown exponentially every year. Information content associated with the Internet, or websites, now number in the millions and, as the Internet has become increasingly accessible to millions of people, the number of email messages exchanged has also increased. Websites and email are now a common medium for the communication of both personal and business information.
People who market products or services over electronic communication channels often desire to include graphics into their presentations. Although graphics are very effective at capturing the attention of the person receiving the communication, they also require large files that must be stored and transmitted. Over a slow connection, a large file typically takes a proportionally longer time to transmit than a small file. If the transmission time is too long the person receiving the transmission may choose to abort the message.
Currently, there are several techniques for avoiding long transmission times associated with the sending of graphic information. One technique is to send static pictures, i.e. pictures that do not change. However, multiple images composed into “movies” or “animations” are better at attracting a recipient's attention. Of course, multiple images take considerably longer to transmit than a single image.
Movies are typically transmitted as a series of frames, with each frame a picture of the entire shot at successive intervals of time. Of course, each picture in a succession of shots takes time to download. Another technique for generating movies in electronic communication is the use of flash graphics, or flash. Flash images include an image file and programming code to animate the file. In other words, rather than sending multiple images to achieve a movie affect, flash transmits one image and computer instructions on how to manipulate the image. The computer that receives the flash content then displays the image and executes the instructions to display a dynamic image. Although, this technique saves transmission bandwidth, the programming of the instructions is difficult and the results are limited to that which can be expressed in the transmitted code. In addition, the receiving computer must include a specific program, or plug-in, for executing the flash code.
Increasingly, electronic communication is performed over wireless communication channels. On wireless communication channels, the amount of information able to be transmitted in a short period of time is even more limited than on wired connections.
What is needed is an efficient technique for transmitting dynamic images over wireless, and wired, connections using a minimum of bandwidth. In other words, a new technique should be able to transmit dynamic images in small files such as email messages so that download times are minimized. What is also needed is a technique for electronically transmitting dynamic images, which is simpler in construction, more universally usable and more versatile than current techniques.
Provided is a technique for embedding animation in electronic communications that is not apparent, obvious or suggested either directly or indirectly by the prior art. The claimed subject matter provides an efficient technique for transmitting dynamic images, or “movies,” over both wired and wireless electronic communication media.
An image is generated by capturing multiple photographs from a camera or video camera, typically fixed at one position and focal length or held by hand or tripod with slight or large motion of the camera while filming. The first photograph is called the “naked photo.” Using a graphics program such as, but not limited to, Adobe Photoshop, published by Adobe Systems Incorporated of San Jose, Calif., photos subsequent to the naked photo are edited to select an element that is in motion. Typically, the moving element is not included in the naked photo but may be. For example, the subsequent photos, but not the naked photo, may include an automobile that is moving across the field of vision. If subsequent action is limited to a particular area of the photo, the object performing the action may be included in the naked photo without distracting from the desired effects. Subsequent photos are edited to save the moving vehicle and, if necessary, a small area around the moving vehicle. In addition, depending upon a defined sensitivity level, other moving portions of the photos are edited. The edited images are stored in conjunction with the naked photos as layers in a graphic file that is then web-enabled, with each layer placed in a position corresponding to the clipped image's location in the corresponding subsequent photo.
The modified naked photo is then transmitted in conjunction with a web-enabled electronic communication such as an email, text message or website. When received, i.e. the email or text message is opened or the website is downloaded, the naked photo is displayed. Each of the subsequent added layers is then displayed and removed in the order that each was pasted and flattened into and onto the naked photo to create multiple frames of display. The layers are displayed and flattened on the naked photo with a short delay in between and at a location corresponding to the location from which the layer was clipped from each photo after the naked photo or the entire photo/video clip until completed or until a new naked photo is detected. In this manner, a movie is generated with much smaller files than is currently possible in the prior art.
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
A better understanding of the present invention can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following figures, in which:
Although described with particular reference to electronic email and websites, the claimed subject matter can be implemented in any information technology (IT) system in which the efficient transmission of dynamic images is desirable. Those with skill in the computing arts will recognize that the disclosed embodiments have relevance to a wide variety of computing environments in addition to those described below. In addition, the techniques of the disclosed invention can be implemented in software, hardware, or a combination of software and hardware. The hardware portion can be implemented using specialized logic; the software portion can be stored in a memory and executed by a suitable instruction execution system such as a microprocessor, personal computer (PC) or mainframe.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Turning now to the figures,
A computing system, or computer, 102 includes a central processing unit (CPU) 104, coupled to a monitor 106, a keyboard 108 and a mouse 110, which together facilitate human interaction with computer 102. Also included in computer 102 and attached to CPU 104 is a data storage component 112, which may either be incorporated into CPU 104 i.e. an internal device, or attached externally to CPU 104 by means of various, commonly available connection devices such as but not limited to, a universal serial bus (USB) port (not shown).
A computer readable storage medium, or data storage, 112 is illustrated storing an exemplary photography file, or photo folder, 114. Photo folder 114, which includes captured images 151-158 (see
Computer 102 is connected to the Internet 120 via a wired connection 118. Although in this example, computer 102 is communicatively coupled to the Internet 120 via wired connection 118, it could also be coupled through any number of communication mediums such as, but not limited to, a local area network (LAN) (not shown) and a wireless connection.
Also attached to Internet 120 is a second computing system, or computer, 122, which like computer 102 includes a CPU 124, a monitor 126, a keyboard 128, a mouse 130 and data storage 132. Data storage 132 is illustrated storing an exemplary modified (mod.) image file 134 and an executable module, or plug-in, 136. Modified image 134 is a copy of modified image 116, which has been transmitted from computer 102 to computer 122. The transmission of file 116 may be in conjunction with, for example but not limited to, an email message or the downloading of a web page. Plug-in module 136 is a piece of computer logic that might execute typical animations. In contrast, the claimed subject matter, as illustrated in a Display Animation process 330, described below in conjunction with
Computer 122 is coupled to the Internet 120 via a wireless connection 138. Although in this example, computer 122 is communicatively coupled to the Internet 120 via wireless connection 138, it could also be coupled through any number of communication mediums such as, but not limited to, a local area network (LAN) (not shown) and a wired connection such as connection 118. Connections 118 and 138 via Internet 120 enable computer 102 and computer 122 to communicate. In the following example, the claimed subject matter is described with respect to an electronic mail message, or email, (not shown), text messages or a web page (not shown) transmitted from computer 102 to computer 122 via Internet 120.
The disclosed technology is also applicable to other types of computing devices, both wired and wireless, that may send and receive email, text messages, web pages or images such as, but not limited to, a mobile telephone 103, a tablet computer 133 and a pad computer (not shown). In mobile text messaging, such as multimedia service (MMS), the claimed technology may display one or more movie-like images when a text message is opened on a first mobile device without requiring a “play” command to be executed. For example, images produced by a second mobile device may be processed in accordance with the claimed subject matter by an application on the second mobile device, transmitted to the first mobile device and displayed on the first mobile device in an “auto-play” mode. In addition, images may be captured in a typical movie fashion and automatically processed by an embedded application on the mobile device that captures the images to produce a file in accordance with the claimed subject matter.
A first image 151 includes two exemplary elements, an automobile 162 and a tree 164. A second image 152 is captured a short time after first image 151 and also includes automobile 162 and tree 164. Image 152 also includes a partial shot of a second automobile 172 that is in motion and beginning to enter frame 152. Automobile 172 is illustrated at a position 182 within image 152. Although displayed from different perspectives and at different locations within images 152-158, the second automobile is referred to throughout the Specification as automobile 172. It should be noted that automobile 172 is only one example of the type of image that may be animated according to the claimed subject matter. Another example includes, but is not limited to, text images.
In a similar fashion, each of third, fourth, fifth, sixth, seventh and eighth images 153-158 include exemplary automobile 162 and tree 164. Each of images 153-158 also shows images of automobile 172 from slightly different perspectives 173-178 and positions 183-188, respectively, within frames 153-158. Different positions 183-188 result from a short delay in time between the capture of images 152-158 such that automobile 172, which is in motion, has changed perspective and moved between capture of images 152-158.
As mentioned above, image 151 is the first image captured in the series of images 151-158 and is referred to as the “naked image.” Images 192-198 include frames the size of naked image 151 and a selected element, which in this example is automobile 172 (
Process 300 starts in a “Begin Animation Setup” block 302 and proceeds immediately to a “Set Parameters” block 303. During processing associated with block 303, process 300 incorporates various setup parameters that control image processing. One example of a setup parameter is a value that adjusts the sensitivity of the processing of photos. For example, at a low sensitivity setting, only large blocks of pixels that change from frame to frame, such as the pixels corresponding to automobile 172 (
In addition, a second sensitivity parameter may be set to control a transition to a new animation. In other words, depending upon differences between two images, either between a received image and an immediately previous image or between the received image and a corresponding key frame, the claimed subject matter enables a series of images to be saved as one movie or animation and a second or more series of images, including one or more new key frames, to be initiated as a second or more movie or animation. All animations may be saved as a single image file. Examples of the types of differences that may be detected between images include, but are not limited to, the amount or percent of changed pixel, color or a combination. Use of the second sensitivity parameter is described in more detail below in conjunction with
During processing associated with a “Receive Images” block 304, a number of images taken by a camera, mobile computing device or video camera are received for processing. In some embodiments, frame stabilization techniques may be applied to images as they are captured. Further, frames may be processed by reducing the number of colors, such as reducing an image with 256 colors to 128, 64, and so on colors. One with skill in the relevant arts should be familiar with both stabilization and color reducing techniques. In the following example, mobile telephone 103 (
Any number of images may be captured, but typically the number is between two (2) and five hundred (500) with a delay between images of 0.01 to 1.0 seconds. It should also be noted that the time interval between the capture of images and the “playback” of the images may be different. For example, if images are captured every 0.05 seconds, or 20 fps, the payback may be adjusted so that the playback may be lengthened, e.g. 10 fps, or shortened, e.g 30 fps, to take place in a defined time period. During processing associated with a “Select Images” block 306, particular images of images 151-158, captured during processing associated with block 304, are selected for further processing. Although in the following example all of images 151-158 are selected, a subset of the total number of images may be selected for further processing, e.g. every second or third image.
During processing associated with a “Get Next Image” block 308, process 300 retrieves from photo folder 114 (
If the image retrieved during block 308 is not the first image in the series of images 151-158, process 300 proceeds to an “Edit Image” block 314. During processing associated with block 314, process 300 as directed by the user, selects an element of the image retrieved during block 308, e.g. image 152. In this example, the targeted element is automobile 172 and the portion of image 152 associated with automobile 172 is clipped from image 151. In an alternative embodiment associated with
During processing associated with a “Drag & Layer” block 316, process 300 places the image clipped during block 314 into frame 192 (
During processing associated with a “More Images?” block 318, process 300 determines whether or not there are additional unprocessed images in image file 114. If so, process 300 returns to Get Next image block 308 and processing continues as described above. If not, process 300 proceeds to a “Save Mod. Image” block 320 during processing associated with which the naked photo, along with the layers generated during iterations through blocks 308, 310, 314, 316 and 318, arc stored as mod. image file 116 in a web-compatible graphic format such as, but not limited to, a graphic interchange format (gif), a joint photographic experts group (jpg) format, a portable network Graphics (PNG) format and an animated portable network graphics (APNG) format. When the image is received as part of an electronic communication, a web browser application automatically knows how to display the image to reveal the claimed subject matter but, when a user attempts to save the image, the web browser typically only offers to save as a file that captures a snapshot rather than the animated aspects of the image. In other words, the web browser save option captures a snapshot of image 116 at a particular point in time but does not preserve the disclosed animation qualities of the image.
The graphic file is then embedded in a web-based format, such as but not limited to, hypertext markup language (html) file, to make the file web-enabled. Those with skill in the computing arts should be familiar with various graphic and web-enabling formats for images such as gif, jpeg and html. It should be noted that a web-enabled file generated in accordance with the disclosed techniques would be particularly useful in conjunction with online stores, internet auction sites and e-commerce sites such as, but not limited to, Craig's List and Ebay. Finally, process 300 proceeds to an “End Animation Setup” block 319 in which process 300 is complete.
During processing associated with a “Parse File” block 336, process 330 separates modified image 134 into component parts, or images 151 and frames, or layers, 192-198, for display on monitor 126 (
During processing associated with a “Display Subsequent (Sub.) Image” block 340, process 330 selects an image of images 192-198 that is the first image in chronological order among the images of images 192-198 that have not yet been processed. The selected image 192-198 is then superimposed upon naked image 151.
During processing associated with a “More Images?” block 342, process 330 determines whether or not all the images 192-198 have been displayed. If not, process 330 proceeds to a “Wait” block 344 during processing associated with which a small interval of time is allowed to pass. The amount of elapsed time is typically equivalent to the period of time between two successive image captures performed during Capture Images block 304 (
If during processing associated with block 342 process 330 determines that all of images 192-198 have been displayed, control proceeds to an “End Display Animation” block 349 in which process 330 is complete. It should be noted that following the display of the last of images 192-198 control does not in this example return to block 346, during processing associated with which the displayed image is removed from naked photo 151, thereby leaving the last photo superimposed naked photo 151 on monitor 126. Of course, process 330 may also be configured to remove the last superimposed image.
During processing associated with a “Note Changes” block 366, process 300 the differences between the current photo and the naked photo, as determined during block 346, based upon the defined sensitivity level, are noted so that during a “Save Changes” block 368 the changes can be incorporated into a composite image as described above in conjunction with Drag & Layer block 316 (
Process 400 starts in a “Begin Detect Changes” block 402 and proceeds immediately to a “Receive Frame” block 404. During processing associated with block 404, a frame in a series of frames is received. During processing associated with a “Compare With Previous Frame” block 406, the difference between the frame received during processing associated with block 404 and either the previous frame or the key frame, depending upon the configuration, is calculated. As explained above, types of differences that may be detected between images include, but are not limited to, the amount or percent of changed pixel, color or a combination. During processing associated with a “Change Exceed Threshold?” block 408, a determination is made as to whether or not, as a result of the comparison calculated during processing associated with block 406, the difference in frames exceeds a defined parameter. If not, control returns to block 404, a next frame is received and processing continues as described above.
If, during processing associated with block 408, a determination that the change in frames exceeds the threshold, control proceeds to a “Save Image” block 410. During processing associated with block 410, the key frame and the frames between the key frame and the frame received during processing associated with block 404 are saved as one animation in accordance with the disclosed technology. During processing associated with an “Initiate New Image” block 412, a new key frame is selected and the processes continues as described above in conjunction with
While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention, including but not limited to additional, less or modified elements and/or additional, less or modified blocks performed in the same or a different order.
The present application is a Continuation-in-Part and claims the benefit of the filing date of the following U.S. patent with a common inventor: U.S. patent application Ser. No. 12/140,060, filed Jun. 16, 2008, entitled “Method for Embedding Animation in Electronic Mail and Websites;” which is a Continuation-in-Part and claims the benefit of the filing date of the following application with a common inventor: U.S. patent application Ser. No. 11/586,016, now U.S. Pat. No. 7,388,587, filed Nov. 25, 2006, entitled “Method for Embedding Animation in Electronic Mail and Websites;” which is a Continuation-in-Part and claims the benefit of the filing date of the following application with a common inventor: U.S. patent application Ser. No. 11/403,374, now U.S. Pat. No. 7,629,977, filed Apr. 12, 2006, entitled “Method for Embedding Animation in Electronic Mail and Websites;” which is related to and claims the claims the benefit of the filing date of the following provisional application with a common inventor, which is hereby incorporated by reference: U.S. Provisional Patent Application Ser. No. 60/670,402, filed Apr. 12, 2005, titled “Email/Electronic Mail Embedded With Animation.”
Number | Name | Date | Kind |
---|---|---|---|
4602286 | Kellar et al. | Jul 1986 | A |
5459529 | Searby et al. | Oct 1995 | A |
5982350 | Hekmatpour et al. | Nov 1999 | A |
6366316 | Parulski et al. | Apr 2002 | B1 |
6466210 | Carlsen et al. | Oct 2002 | B1 |
6636220 | Szeliski et al. | Oct 2003 | B1 |
6721952 | Guedalia et al. | Apr 2004 | B1 |
6956573 | Bergen et al. | Oct 2005 | B1 |
6977664 | Jinzenji et al. | Dec 2005 | B1 |
7030902 | Jacobs | Apr 2006 | B2 |
7034833 | Epshteyn | Apr 2006 | B2 |
7265762 | Purdy | Sep 2007 | B2 |
7388587 | Richardson | Jun 2008 | B1 |
7629977 | Richardson | Dec 2009 | B1 |
20050058318 | Rhoads | Mar 2005 | A1 |
20050231513 | LeBarton | Oct 2005 | A1 |
Entry |
---|
Pappas; “Notice of Allowance”; U.S. Appl No. 11/586,016; now U.S. Pat. No. 7,388,587; issued Jun. 17, 2008. |
Shade et al; “Layered Depth Images”; Siggraph 98, Orlando Florida, Jul. 19-24, 1998; Computer Graphics Proceedings, Annual Conference, 1998, pp. 231-242. |
Freeman et al.; “Motion Without Movement”; Computer Graphics, V. 25, No. 4, Jul. 1991; pp. 27-30. |
Schodl et al.; “Video Textures”; Siggraph 2000, New Orleans, LA; pp. 489-498. |
Chuang et al.; “Animnating pictures with Stochastic Motion Textures”; ,http://grail.cs.washington.edu/projects/StochasticMotionTextures/; Jul. 2005; pp. 1-8. |
Sun et al.; “Video Input Driven Animation (VIDA)”; Proceedings of Ninth IEEE International Conferences on Computer Vision (ICCV'03); 2003; pp. 1-8. |
Wallace; “Merging and Transformation of Raster Images for Cartoon Animation”; Program of Computer Graphics, Cornell University; V. 15, No. 3; Aug. 1981; pp. 253-262. |
Bhat et al.; “flow-Based Video Synthesis and Editing”; ACM; 2004; pp. 360-363. |
Number | Date | Country | |
---|---|---|---|
20120001924 A1 | Jan 2012 | US |
Number | Date | Country | |
---|---|---|---|
60670402 | Apr 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12140060 | Jun 2008 | US |
Child | 13232306 | US | |
Parent | 11586016 | Oct 2006 | US |
Child | 12140060 | US | |
Parent | 11403374 | Apr 2006 | US |
Child | 11586016 | US |