TITLE
DATA FILE RECOGNITION AND CONVERSION SYSTEM AND METHOD
Background of the Invention
The invention disclosed herein relates generally to systems for converting a data file from a first format to a second format. More particularly, the present invention relates to a system and method for recognizing the format in which a data file is stored, determining whether the data file should be converted into a different format and, if so, converting the file into the different format.
In general, computer systems store data in files. Such data stored in files may comprise graphics, sounds, and/or text. Such files are typically stored on nonvolatile media, such as floppy disks and/or hard disks. The format in which the data is stored in the files is dependent upon the type of data stored, the program that is storing the data, and the purpose for which the data is being stored. Often, data is stored in one format but is better used for a particular application if stored in another format. Thus, computer programs have been developed that allow a user to convert a data file from one format to another.
One particular area in which the format of data files is critical is the Internet. Because computers are typically connected to the Internet using communication links of limited bandwidth, the speed with which information may be transferred from site to site on the Internet often varies with the type of data being sent. For example, the JPEG format of graphics data is often used for graphics data on the Internet because the JPEG format allows for various degrees of compression of the data, thus reducing the time required to transfer a data file using the Internet. Because there is a large number of different file formats available to computer users and because a computer user may not always be aware of the particular strengths and weaknesses of each of the different file formats, a computer user is often not aware of the most efficient type of file for the storing
of particular data. This problem is particularly troublesome with respect to limited bandwidth connections to the Internet.
Given the rapid increase in the use of the Internet, and particularly of the World Wide Web, many computer users now develop their own web pages for access via the Internet. Typical web pages comprise multiple types of data, often including text, graphics, full-motion video, and sound. Such web pages are typically constructed by users using software tools, commonly referred to as web page design software. Examples of commercially available web page design software include Microsoft FrontPage 98, available from Microsoft Corporation, Redmond, WA; Macromedia Dreamweaver, available from Macromedia, Incorporated, San Francisco, CA; Adobe GoLive CyberStudio Pro, available from
Adobe Systems Incorporated, San Jose, CA; and NetObjects Fusion, available from NetObjects, Inc., Redwood City, CA.
Commercially available web page design software allows a user to design web pages, for the inclusion and placement of various types of data files, such as video, graphics, sound, and text on the web page being designed. Most web pages are programmed using the hyper text markup language (HTML) and web page design tools automate the process of generating HTML files for use as web pages. Once a user has constructed a web page (possibly including data files) and generated an HTML file, the file may be uploaded to a web server. It is on the web server that the HTML and data files reside for use by others via the World Wide
Web. That is, when a third-party user of a web site accesses a web site, the user is actually accessing the HTML and data files as they reside on a web server, having been placed there by the web site's designer.
When designing a web site with web page design software, a user will typically instruct the software to construct the web page using various data files that already exist. These data files may comprise video, graphic, sound, and text information and were either developed by the user or obtained by the user for inclusion in the web page. Whether the user produced the data file specifically for use on the web (such as by scanning a photograph to create a graphics file) or is
using a file produced for another reason, the user will typically insert the file into the web page in whatever format the file is already stored. For example, if the user is inserting a photograph into a web page, the user will typically scan the photograph using a computer scanner using whatever scanning software package was provided with the scanner or was purchased separately, such as Adobe Photoshop, available from Adobe Systems Incorporated, San Jose, CA. The software will create a file of the photograph's data which the user will then instruct the web page design software to use in constructing the web page. Often, this will be accomplished in HTML by inserting a tag which references the name of the file in which the photograph's data is stored. Depending upon the scanning software used and the default or user modified configuration of the scanning software, the format of the data file in which the photograph's data is stored may be any one of a number of different formats, such a JPEG, GIF, BMP, etc.
Different file formats are useful for different purposes. Given the limited bandwidth of most Internet connections, the time required to transmit a file from one location on the Internet to another is often dependent upon the amount and type of data to be transferred. Thus, careful selection of the type and size of data files to be used in designing a web site may have a beneficial impact on the time required to access that web site and transfer all of the associated data. It is known that various design characteristics of web sites benefit from the use of certain types of data files rather than other types of data files. However, when designing a web site, a designer would need to know all of the rules concerning what types of files are best and most efficiently used for each type of data to be presented on a web site and would need to know what conversion tools to use to generate the appropriate data files for use on such a web site. This is a difficult and time- consuming process, the success of which depends upon the designer's assumptions about how best to design the web site for efficient data transfer.
There is thus a need for a system and method that allow a web page designer to simply and easily indicate what data files the designer wishes to use in the design of a web site and then have the designer-selected data files automatically
converted, if necessary, to a more efficient or otherwise more appropriate format for use in the design of the web page.
Summary of the Invention: It is an object of the present invention to provide a system and method for converting data files from one format to another. It is another object of the present invention to provide a system and method for recognizing the format in which a data file is stored and converting the data file to another format.
It is another object of the present invention to provide a system and method for recognizing the format in which a data file is stored and converting the data file to another format based on a set of rules that indicate the most favored format for a data file based on the intended use of the data file.
It is another object of the present invention to provide a system and method for designing web pages that automatically convert data files to the most preferred format based on the type of data in the file and the use of the file on the web pages.
The above and other objects are achieved by a computerized system and method for designing web pages that automatically recognize the format in which a data file to be used on, a web page is stored, uses a rules-based technique for determining whether the data file should be converted to another format and, if so, to what format, converts the data file to the most preferred format, and generates
HTML text that references the converted data file, thus inserting the data into the web page.
Brief Description of the Drawings The invention is illustrated in the figures of the accompanying drawings which are meant to be exemplary and not limiting, in which like references refer to like or corresponding parts, and in which
Fig 1 is schematic system diagram of a preferred embodiment of the present invention, and
Figs 2 A, 2B, 2C, 2D, 2E, 2F, 2G, 2H, 21, and 2J are flowcharts showing the operation of a preferred embodiment of the present invention
Detailed Description With reference to Fig 1, one preferred embodiment of the present invention includes a user's computer 100 coupled via communications link 110 to server computer 120 User's computer 100 is preferably at the location of the user In a preferred embodiment of the present invention, user's computer 100 is an IBM-compatible personal computer running the Windows operating system, available from Microsoft Corporation, Redmond, WA, and the Internet
Explorer web browser, also available from Microsoft Corporation
Server computer 120 may be coupled to other computers C1; C2, Cx 130 via communications links 140, such as the Internet The communications links 110, 140 may be a dial-up connection, a DSL connection, an ISDN connection, a Tl connection, or any other type of communications link that can couple two or more computers Server computer 120 is a computer capable of hosting web pages, such as ones written in HTML
In a preferred embodiment of the present invention, each user of the system has a secure database stored on the server computer 120 Each user has a web page stored in the secure database in a parent-response document hierarchy, in which parent documents are skeletal pages representing web page templates, and the response documents represent the individual components,
such as data files, to be used in a given instance of a template. The data files may contain pre-written code and parameters as well as user-defined parameters. The web pages have two modes: a read mode and an edit mode. The read mode is the typically-used mode in which viewers of the web site will see the web page and will be unable to modify its characteristics. In edit mode, accessible only to the "owner" of that particular page and secured through the use of a password, the user may modify the page via pop-up windows.
Referring to Figs. 2A-2J, in a preferred embodiment of the present invention, the system is implemented in HTML code, residing on the server computer 120, and/or Java code, residing on the server computer 120 and on the user's computer 100 as a plug-in application for a web browser running on the user's computer 100. In a preferred embodiment of the system, when the system enters edit mode the system displays an introductory web page, step 200, to the user which includes a query for the web site location that the user wishes to edit and asks the user for the password to edit that location, step 210. The system then determines whether the user has entered the correct password for the specified web site location, step 220. If the user has not entered the correct password for the specified web site location, the system displays a message to this effect, step 230, and queries the user again for a password and for a web site location to edit, step 210. If the system determines that the user has entered the correct password for the specified web site location, the system enters the edit mode, step 240, and displays the specified web page to the user, step 250. While the specified web page is being displayed for the user, step 250, the system checks to determine whether the user's cursor is positioned on the display over editable content, step 270. If it is not, the system continues to check. If the system determines that the user's cursor is over editable content, the system will display a menu of options appropriate for the user to take for the web page field under the cursor, step 280. The user may select an option, in which case the system determines what option the user has selected, step 290. If the option selected
by the user is "Upload File", step 300, the system queries, step 310, the user for the name of the file to upload from the user's computer 100 to the server computer 120. Once a file name has been entered by the user, the system accesses the file, step 320, and determines the type of file that it is, step 330. This determination may be made with reference to the extension of the file's filename or by examining the contents, data structure, or header information of the named file, step 330, The system may then query the user for the intended use of the file, step 340, or may determine the intended use of the file based on the area of the web page that the user has selected for editing, step 340. The system then determines the size of the file and determines the total size of all of the files on the specified web page by adding the sizes of each of the individual files included on the specified web page, step 360.
Next, the system determines if the selected file is in JPEG format, step 370. If the file is in JPEG format and the file is larger in area than 60,000 pixels, then the system compresses the file to 75% of its original size, step 390. If the system determines that the selected file has an area of less than 60,000 pixels, the system compresses the file to 80% of its original size, step 400. The system then determines whether the total size of all of the files on the specified web page is greater than 100 kilobytes, step 410. If the total size is greater than 100 kilobytes, then the system compresses the selected file by an extra 5 percent, step 420. The system then displays the file and shows a clipping region, step 430, so as to allow the user to clip the image, step 440.
The system also allows the user to zoom in and out and pan across the image, step 440, to assist the user in clipping the image for eventual display on the specified web page. The system then clips the image as specified by the user, step 450.
The system then interlaces the image using three passes, step 460, and embeds the file into the proper position in the specified web page, step 470. The system stores the file at the server computer 120 in step 480 and queries the user whether a thumbnail image is required for display on the specified web
page, steps 490, 500. If a thumbnail image is required, the system creates the thumbnail image and inserts the proper link into the web page, step 5 10. The system then again determines the position of the user's cursor on the web page, step 260 (Fig. 213).
If the file was determined not to be a JPEG file, step 370, the system then determines whether the file is stored in the TIFF format, step 760. If the file is in the TIFF format, the system converts the file to JPEG format, step 820 and goes to step 380 (Fig. 2D) to handle the resulting JPEG file, as described above.
If the file was determined not to be a TIFF format file in step 760, the system next determines whether the file is in the BMP format, step 770. If the file is in the BMP format, the system converts the file to JPEG format, step 830, and goes to step 380 (Fig. 2D) to handle the resulting JPEG file, as described above.
If the file was determined not to be a BMP file in step 770, the system next determines whether the file is in the GIF format, step 780. If the file is in the GIF format, the system then determines whether the file contains more than 200 colors and whether the file contains no text, step 840. If the file contains more than 200 colors and contains no text, the system converts the file to the JPEG format with 85% compression, step 860, and goes to step 430 to handle the resulting JPEG file, as described above. If the system determines that the file does not contain more than 200 colors, or that the file contains text, the system next determines whether the file contains an area of more than 60,000 pixels, step 850. If the file does contain more than 60,000 pixels, the system converts the file to JPEG format with 80% compression, step 870. The system then goes to step 430 for handling the resulting JPEG file. If the file contains less than 200 colors or has text and contains fewer than 60,000 pixels, the system does not convert the file and goes to step 430 for handling the GIF file. If the file is determined not to be in GIF format in step 780, the system next determines whether the file is in MPEG or AVI format, step 790. If the file
is determined to be in MPEG or AVI format, the system then prompts the user for the intended use of the file, step 520. The user may indicate that the file is to be used as an audio file, and video file, or a still image file. If the user selects the file for use as audio, step 530, the system next determines whether the file will be able to be downloaded in less than 20 seconds in step, step 560. If the audio file will require greater than 20 seconds to be downloaded, the system converts the file to streaming audio format, in 8 bit monophonic mode, step 600. The system then stores the streaming audio data file on a server 130 running RealServer software, available from RealNetworks, Inc., Seattle, WA, and embeds the proper link to the audio data file in the specified web page, step 610. The system then goes to step 260 to determine the location of the user's cursor so as to be able to edit other content on the specified web page.
If the system determines that the file may be downloaded in less than 20 seconds, step 560, the system will then convert the file to the WAV and Quicktime formats, step 570, and store the resulting WAV and Quicktime format files on the server computer, step 580. The system will also embed in the specified web page the proper Java script to select the platform that a viewer of the web page is using and to send to the viewer the appropriate format file (i.e., WAV or Quicktime). The system then goes to step 260 to determine the location of the user's cursor so as to be able to edit other content on the specified web page.
If the user did not select audio as the destination format for the file, step S30, the system determines whether the user selected a still image as the destination format, step 540. If the user selected a still image as the destination format, step 540, the system allows the user to select the particular form of the MPEG or AVI format source file, step 550, for use in the specified web page and embeds a link to that file in the web page. The system then goes to step 260 to determine the location of the user's cursor so as to be able to edit other content on the specified web page.
If the user did not select a still image as the destination format in step 540, the system next determines whether the user selected video format as the destination format of the MPEG or AVI file, step 620. If the user selects video format, the system next determines whether the download time of the file is greater than or less than 20 seconds, step 630. If the download time of the file is estimated to be less than 20 seconds, the file is stored on the server computer
120 a an MPEG file, step 640, and a link to the MPEG file is embedded in the specified web page, step 650. If the download time of the file is estimated to be greater than 20 seconds, the file is converted to streaming video data at 160x120 pixels in size, at 28, 56, and.200 kilobits per second (kbps) streaming rates, step 660. The resulting streaming video data file is stored on a
RealServer streaming data server computer 130 and an appropriate link to the resulting file is embedded in the specified web page, step 670.
After either step 650 or step 670, the system determines whether the user wants to display a thumbnail of the file, step 680. If a thumbnail is required, the system defaults to using the first frame of the data file as the thumbnail and allows the user a choice of another frame as the thumbnail, step 690. Once the thumbnail is selected, if desired, the system returns to step 260 to determine the location of the user's cursor so as to be able to edit other content on the specified web page. If at step 790 the system determined that the file was not in MPEG or
AVI format, the system next determines whether the file is in streaming data format, step 800. If the file is in streaming data format, the system then notifies the user of potential problems, if they are applicable, step 700. Such problems may include the fact that the file is not in G2 gold stream format; that an r5 compatibility stream is not included; or that encoding for rates of 28, 56, and
200 are not included. The system will downsize the frame size to 160x120 pixels, if required.
The system then stores the streaming data file on a Real Network server, step 710, and embeds in the specified web page a link to the stored
streaming data file, step 720. The system then determines whether a thumbnail of the file is required, step 730. If a thumbnail is required, the system allows a user to select an image to be used as the thumbnail, with the system defaulting to the first frame of the file, step 740. The system then embeds a link to the thumbnail image in the specified web page, step 750. After step 750, or after step 730 if no thumbnail is required, the system returns to step 260 to determine the location of the user's cursor so as to be able to edit other content on the specified web page.
If at step 800 the system determines that the file is not in streaming data format, the system next determines whether the file is in AU, A-FF, WAV, or Quicktime formats, step 810. If the file is in any of these four formats, the system then goes to step 560 (Fig. 2G) and handles the file from there, as described above.
If at step 810 the system determines that the file is not in AU, AIFF, WAV, or Quicktime formats, the system stores the file as a generic document with a link, step 900. The system generates a document icon, step 910, which is used as a thumbnail for the file and which, when selected-or "clicked" -will activate the downloadable file. The system then returns to step 260 to determine the location of the user's cursor so as, to be able to edit other content on the specified web page. While the invention has been described and illustrated in connection with preferred embodiments, many variations and modifications as will be evident to those skilled in this art may be made without departing from the spirit and scope of the invention, and the invention is thus not to be limited to the precise details of methodology or construction set forth above as such variations and modification are intended to be included within the scope of the invention.