WO1998015920A1 - Method of displaying three-dimensional images - Google Patents

Method of displaying three-dimensional images Download PDF

Info

Publication number
WO1998015920A1
WO1998015920A1 PCT/US1997/018141 US9718141W WO9815920A1 WO 1998015920 A1 WO1998015920 A1 WO 1998015920A1 US 9718141 W US9718141 W US 9718141W WO 9815920 A1 WO9815920 A1 WO 9815920A1
Authority
WO
WIPO (PCT)
Prior art keywords
dimensional image
digital data
dimensional
image
data representing
Prior art date
Application number
PCT/US1997/018141
Other languages
French (fr)
Inventor
David Kelly Austreng
Original Assignee
Image Technology Laboratories, Inc.
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 Image Technology Laboratories, Inc. filed Critical Image Technology Laboratories, Inc.
Priority to AU48115/97A priority Critical patent/AU4811597A/en
Publication of WO1998015920A1 publication Critical patent/WO1998015920A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to the presentation of digital information on a client computer, and in particular, the visual display that allows three-dimensional viewing of an object on a client computer connected to a network.
  • Wired Web (WEB). Combined with the recent commercialization of the WEB, this has created a need to efficiently present digital information on client computers connected to the Internet. Digital information includes visual information as well as sound.
  • Visual information includes varying formats for displaying two-dimensional still graphics, animated graphics, and three-dimensional graphics.
  • a computer can download digital information from a WEB server, and execute a WEB browser program to translate the digital information into a visual or audio form perceptible by the user.
  • a client computer downloads WEB pages in a format known as "Hypertext Markup Language” (HTML) for viewing with a WEB browser running on the client computer.
  • HTML includes commands for formatting text, linking to digital data, and receiving input from a user at a client computer.
  • HTML is designed to be platform independent, so a WEB page can be displayed on any computer with a compatible browser program.
  • a WEB browser interprets the content and commands within an HTML file in order to properly display the content within the file.
  • a WEB browser is not able to properly interpret all formats of digital data.
  • One such technique is to utilize a supplementary program, called a "helper application,” which is installed on the client computer, typically by downloading the program over the Internet.
  • helper application a supplementary program
  • the WEB browser is able to associate specific file formats with specific helper applications, and invokes the proper helper application when the WEB browser is called upon to interpret and display the foreign digital data.
  • Another method of interpreting and displaying digital data utilizes small programs, or applets, that are downloaded each time they are needed.
  • An applet may, for example, present animation in the middle of a displayed WEB page on the client computer.
  • An applet running on a client computer may request that digital data be downloaded from a WEB server to be used, i.e., displayed, on the client computer.
  • JAVA is a programming language used to create applets.
  • JAVA is an object- oriented language, and applets written in JAVA are objected oriented.
  • JAVA code is organized into classes.
  • a class includes a set of methods that define the behavior of a class object.
  • a JAVA program is compiled into byte-codes. Byte-codes are low-level instructions that are not specific to a particular machine, thereby allowing a JAVA program to be executed on different types of computers.
  • a JAVA program, in the form of byte-codes is downloaded to a client computer along with an associated HTML file.
  • Run Length Encoding is a well-known computer technique for compression digital data.
  • Run Length Encoding a repetition of a particular sequence of digital data is replaced with a single occurrence of the repeated data and an indication of the number of times that the sequence is repeated.
  • LZW compression which is the subject of U.S. Patent No. 4,558,302, is one well-known method of Run Length Encoding.
  • the "Graphics Interchange Format®" (GIF) is a well-known file specification employing LZW compression.
  • JPEG compression is another well-known method of Run Length Encoding.
  • JPEG compression scheme is used to create a file interchange format known as JPEG file interchange format (JFJJF).
  • JFJJF JPEG file interchange format
  • a method of displaying a three-dimensional image represented by digital data on a client computer connected to a communication medium, such as the Internet is provided.
  • the three-dimensional image is made up of multiple two-dimensional images, each two-dimensional image being referred to as a frame and being a visual image of the object along a different line of sight (i.e., taken at a different viewing angle).
  • a three-dimensional image of the object is observed in which the object appears to rotate about a predefined axis that extends through the object.
  • Rotation can be "automatic” (i.e., achieved without user input) or can be controlled by user activation of an input device such as a mouse or selected keys of the computer keyboard.
  • a three-dimensional object is represented by three rows of frames (two-dimensional images), with each row of frames including 18 two-dimensional images.
  • the lines of sight associated with the 18 frame elements of each row of frames are angularly spaced apart from one another and pass through the center of the three- dimensional object to be displayed.
  • the lines of sight associated with the three frames in each column of frames are angularly spaced apart from one another and lie in an imaginary plane that passes through the center of the three-dimensional object and is perpendicular to an imaginary horizontal plane.
  • a computer program is received by the client computer through the communication medium and is executed on the client computer. More specifically, the client computer executes a command, and receives, in response, a portion of the digital data representing the first two-dimensional image (i.e., the first frame). The first two-dimensional image is displayed on the client computer display. The client computer then receives additional portions of the digital data through the communication medium. The additional portions include digital data representing two-dimensional images (frames) to the left and the right of the first frame.
  • a directional input device such as a mouse
  • the client computer displays either the left frame or the right frame. If the directional input represents the left direction, the left frame is displayed, and if the directional input represents the right direction, the right frame is displayed, thereby providing the appearance of left or right rotation of a three-dimensional image.
  • the additional portions of digital data include fourth and fifth frames of data, which represent the two-dimensional images above and below the two-dimensional image being displayed. If directional input representing the upward direction is received, the frame above the first image is displayed and the displayed image appears to rotate downwardly about an axis through the center of the image. If the directional input represents the downward direction, the frame below the first frame is displayed, thereby providing the appearance of three-dimensional upward rotation of the displayed image.
  • the first two-dimensional image is displayed prior to receiving the second two-dimensional image at the client computer, thereby reducing the time delay before the first image is displayed.
  • the computer program running on the client computer is multithreaded, and one thread of execution displays the first two-dimensional image while a second thread downloads the remaining two-dimensional images.
  • the digital data representing each two- dimensional image is compressed prior to transmitting the data (i.e., data frames) to the client computer.
  • Compressing the two-dimensional images in accordance with the invention includes creating a mask to encompass the background of the two- dimensional image, modifying the background of the two-dimensional image to be a repetition of a sequence of bits, preferably all zeros, and compressing the modified two-dimensional image in accordance with the methods of Run Length Encoding.
  • compression of the digital data representing a two-dimensional image includes loading the image into an image editing computer program, creating a mask to encompass the image background, modifying the image background to be a repetition of a sequence of bits, and compressing the image in accordance with the methods of Run Length Encoding.
  • the background is made up of multiple pixels, and the modification of the background includes modifying sequential pixels to have the same digital value.
  • a preferable digital value is (0,0,0,) which indicates pure black in the RGB color system.
  • the particular Run Length Encoding method may be either LZW compression, resulting in a GIF file, or JPEG compression, resulting in a JFIF file.
  • FIGURE 1 is a block diagram illustrating an Internet architecture having a server and a client computer
  • FIGURES 2A and 2B illustrate a net browser application window displaying a WEB page with a three-dimensional graphic contained therein;
  • FIGURES 3A and 3B are diagrams that indicate an object to be displayed and depict the relationship between two-dimensional images that are used in the invention;
  • FIGURE 4 is a block diagram illustrating the class structure of the invention;
  • FIGURE 5 is a flow diagram illustrating the process of downloading to a client computer a three-dimensional graphic object and the execution of the object;
  • FIGURE 6 is a flow diagram illustrating the processing within a three- dimensional graphic object in accordance with the invention;
  • FIGURE 7 is a block diagram illustrating a system for creating a compressed digital two-dimensional image in accordance with the invention.
  • FIGURE 8 is a flow diagram illustrating the process of compressing a two- dimensional image in accordance with the invention.
  • the present invention is directed to a method for transmitting digital data to a client computer and presenting the digital data to an operator. While the following description explains the invention in connection with digital data representing three-dimensional graphics, it is to be understood that the invention can be used with other digital data, such as digitized video.
  • the invention employs a client computer connected to a network, such as the Internet, a server computer connected to the network, computer software controlling the operation of the server computer, and computer software controlling the operation of the client computer. While the preferred network is the Internet, other types of networks, including local area networks can be employed in actual embodiments of the invention.
  • the invention utilizes an object-oriented programming paradigm.
  • Objects represent computer system elements, and contain program code, in the form of "methods," and data. Objects can be organized into classes in a hierarchical fashion and are interoperable. Classes are abstract generic descriptions of objects and their behaviors. A class defines a certain category or grouping of methods and data within an object. The methods of a class define the object's behavior. Methods manipulate the data contained within the object or passed to the object. A class serves as a template to define the behavior of an object that is created or "instantiated" from the class. An object, or instance of a class is a specific individual entity, with its behaviors defined by its class.
  • a "subclass” can be created from a class by adding methods or overriding one or more of the class's methods.
  • a subclass inherits the behaviors of its "superclass” with the modifications added to the subclass.
  • JAVA is an object-oriented language having the features described above.
  • JAVA also supports multiple threads.
  • a single-threaded program follows a sequential order of execution that can be easily represented by a flow diagram.
  • more than one thread of execution exists, and each thread follows a sequential order of execution.
  • different activities of a program may occur in parallel. This can greatly reduce the amount of time that a user must wait for certain operations to occur. For example, one thread may be displaying an image in a WEB page while a second thread is downloading other images to display.
  • FIGURE 1 illustrates an exemplary client server architecture 102, having a server computer 104 and a client computer 116 linked by their common connection to the Internet 114. Connection to, and communication over, the Internet 114 is well understood in the art, and is provided by numerous commercial services, and need not be explained further.
  • the server 104 includes a server application 106 operational for transmitting computer programs, documents, and digital data onto the Internet, in response to received requests.
  • a form of nonvolatile storage such as a disk 108, contains files to be downloaded by the server application 106. Residing on the disk 108 are one or more hypertext markup language (HTML) documents 110, one or more files containing program code 112 implementing a class that defines the present invention, and one or more files containing digital data.
  • HTML document 110 and the program code 112 are described in further detail below.
  • the client computer 116 connected to the Internet 114 receives, or downloads, the document, program code, or digital data from the Internet.
  • the client computer 116 includes a browser application 118, operative for displaying HTML documents and executing the program code 112 received from the server computer 104.
  • the browser application 118 may comprise a single application, or multiple applications working together to implement the functionality of the browser 118.
  • Netscape NavigatorTM 3.0 by Netscape Communications Corporation, of Mountain View, California
  • Internet ExplorerTM by Microsoft Corporation, of Redmond, Washington, are two examples of browser applications 118 that can be used with the present invention, when running on the Windows 95 or Windows NT operating systems.
  • the client computer 116 further includes computer memory 120, which can be a random-access memory (RAM) or other storage device.
  • the depicted client computer 116 also includes a processor 121, a keyboard 122, and a directional input device 124, such as a mouse.
  • a number of different directional input devices exist that are functional for allowing a user to provide directional input to a computer. The most popular devices are mice, trackballs, touch pads, and joysticks. Keys on a keyboard may also be used to provide directional input. Reference to the use of a mouse hereinafter should be considered exemplary, and not limiting.
  • the client computer further includes a display device 126, such as a cathode ray tube (CRT) or liquid crystal display (LCD).
  • CTR cathode ray tube
  • LCD liquid crystal display
  • FIGURES 2 A and 2B The following is a portion of an exemplary HTML file in accordance with the present invention.
  • the text and commands within the HTML file are used to create the WEB page illustrated in FIGURES 2 A and 2B.
  • the lines are numbered for purposes of this discussion only.
  • Line 1 specifies the location of a file containing the JAVA code that implements the ThreeDObject class, further described below. It also specifies the width and height (in display units or pixels) of the rectangular area that will contain the three-dimensional image.
  • Lines 2 and 3 specify parameter values used by the ThreeDObject class.
  • the parameter "imgDirectory” specifies the directory where digital data representing a plurality of two-dimensional images reside.
  • the parameter "filebase” specifies the base file name of the files containing the three-dimensional image digital data representing the two-dimensional images. Each file contains one two-dimensional image. The name of each file is formed by appending a number and a suffix to the name specified by the filebase parameter.
  • Line 4 is interpreted only by browsers that do not support JAVA.
  • this line indicates the location of a file containing a two-dimensional image that is to be displayed within the image window. This two-dimensional image is displayed in place of the three- dimensional image.
  • Line 5 indicates the end of the applet declaration.
  • Line 6 indicates that the rectangular window is to be horizontally centered within the WEB page.
  • FIGURES 2A and 2B illustrate a net browser application window displaying a WEB page with a three-dimensional graphic contained therein.
  • the browser window 202 includes a display area 204 within which the HTML document is displayed.
  • a scrollbar 206 is operational for scrolling through the entire HTML document, when only a portion of it can be visible in the display portion 204 of the browser window 202.
  • Text 208 within the HTML document is displayed in the display window 204, according to specified formatting.
  • a rectangular image window 210 displays a three-dimensional object 212.
  • a border of the image window 210 is included for illustrative purposes only. In the preferred functioning of the invention, at any point in time, exactly one two-dimensional view of the three-dimensional object is visible.
  • the depicted image window 210 includes a background 214, which does not change as different views of the three- dimensional graphic 212 are displayed.
  • the background 214 is of a single color, to avoid visual interference with the displayed rotating object.
  • the use of a background 214 that is constant reduces the memory requirement for displaying an object 212, thereby reducing downloading time and display time.
  • a three-dimensional depiction of an object is achieved with a plurality of two-dimensional images, referred to as frames.
  • Each frame corresponds to a two-dimensional image (e.g., a photograph) of the three- dimensional object from a different viewing angle.
  • the frames are organized into rows and columns.
  • Each row includes a plurality of frames corresponding to two- dimensional images of the displayed object in which the lines of sight associated with the two-dimensional images intersect at a point about which the object appears to rotate.
  • a three- dimensional object 212 can be considered as being associated with a coordinate system consisting of three mutually orthogonal axes 218, 219, and 220 where the origin 222 of the coordinate system corresponds to a point in space about which the object 212 will be rotated for viewing.
  • An imaginary horizontal plane 240 depicted in FIGURE 3 A by the intersection of a plane with an imaginary reference sphere 241, contains the horizontal axes 219 and 220.
  • each frame in a row of frames is a two-dimensional image of the object to be displayed (e.g., object 212) that is taken at different viewing angles, with the line of sight for each viewing angle intersecting the origin 222 and forming a constant angle with the horizontal plane 240.
  • the invention employs a row of frames that corresponds to an ordered sequence of two-dimensional images of object 212 that are taken along angularly spaced-apart sight lines indicated as 224, 226, 228, 230, 232, 234, and 238.
  • the depiction in FIGURE 3A shows eight frames in one row for illustrative purposes. As discussed below, preferably 18 frames are included in each row.
  • Each sight line 224-238 lies in horizontal plane 240, thereby forming an angle of 0 degrees with the plane 240, which is perpendicular to the axis of rotation (axis 218 in FIGURE 3 A).
  • each row includes 18 frames having angularly spaced apart sight lines as described above.
  • FIGURE 3B illustrates three rows of sight lines. Eight sight lines 242, 260, 262, 264, 246, 266, 268, and 270, corresponding to eight frames, are shown in the uppermost row for illustrative purposes, though 18 frames are preferred.
  • each sight line for the frames in the uppermost row intersect the origin 222 and form a constant angle, preferably 45° with the horizontal plane 240.
  • the sight lines for the frames in the bottommost row intersect the origin 222 and form a constant angle, preferably 45°, with the horizontal plane 240.
  • Sequential viewing of frames in a row of frames creates the appearance of three-dimensional rotation of the displayed object about axis 218.
  • object 212 will appear to rotate to the right (counterclockwise as viewed from above) about axis 218, if the frames corresponding to sight lines 224-238 are sequentially displayed in ascending order of the numeric identifiers.
  • Rotation to the left (clockwise) about axis 218 results if the frames corresponding to sight lines 224-238 are displayed sequentially in decreasing order or in descending order relative to the numeric identifiers used in FIGURE 3A.
  • FIGURE 2B illustrates three-dimensional object 212 rotated by one frame along a row having sight lines parallel to horizontal plane 240, the rotation being about vertical axis 218.
  • each frame in a column of frames is a two-dimensional image of the object with the sight lines associated with the images intersecting the origin 222.
  • the sight lines associated with the images of a column lie in an imaginary plane that includes the axis 218, the imaginary plane being perpendicular to a line about which rotation will be viewed. This line intersects the origin 222 and is in the plane 240.
  • the sight lines for the two-dimensional images in a column of images would all lie in an imaginary plane that is perpendicular to axis 220 and includes the origin 222 and axis 219.
  • FIGURE 3B illustrates a vertical imaginary plane 250, depicted by the intersection of a vertical plane with reference sphere 241 , that includes axis 218.
  • Two columns of frames are associated with the depicted imaginary plane.
  • a column preferably includes only frames spanning a one-half rotation (180°) of the object 212. This avoids viewing the object upside-down by rotating the object vertically.
  • One column depicted in FIGURE 3B consists of a frame associated with line of sight 238, a frame associated with a downwardly directed line of sight 242, and a frame associated with an upwardly directed line of sight 244.
  • the second column of frames shown in FIGURE 3B consists of the frame associated with line of sight 230, a frame associated with a downwardly directed line of sight 246 and a frame associated with an upwardly directed line of sight 248.
  • the angle formed between adjacent lines of sight within a column must be the same as the corresponding angle in all other columns. That is, if L r c represents the line of sight for the frame at row r and column c, the angle between sight lines Lj j and Lj+i ; is equal to the angle between sight lines and Lj+i j ⁇ .
  • the preferred angle between sight lines is 45°.
  • lines of sight 238 and 230 are at 90° relative to axis 218; lines of sight 242 and 246 are at an angle of 45°; and lines of sight 244 and 248 are at an angle of 135° (i.e., 45° below the horizontal imaginary plane 240 of FIGURE 3A.
  • the angle 252 between adjacent sight lines 242 and 238 is equal to the corresponding angle 254 between adjacent lines 246 and 230, 45° in the depicted embodiment.
  • sequential ordered display of the frames in a column of frames results in perceived rotation about an axis that extends through the origin 222 and is perpendicular to the imaginary plane 250 containing the sight lines.
  • the imaginary plane 250 is perpendicular to line 256 in FIGURE 3B
  • sequential display of the frames within one of the two columns (the column including sight lines 246, 230, and 248, and the column including sight lines 242, 238, and 244) of frames associated with the imaginary plane creates the appearance of object 212 rotating upward or downward about line 256.
  • rotation about the vertical axis 218 can be achieved in the manner described above.
  • the granularity, or the number of frames used in a column or row, is important in providing the proper aesthetic effect to a viewer. If the granularity is too low, such that too few frames are used, the rotation of the three-dimensional image will appear jerky, and will not present a proper appearance of three-dimensional rotation. If the granularity is too high, the excess of frames will increase the processing time to download the images and store them in memory on the client computer 116.
  • the granularity can vary, in accordance with the complexity of the object being displayed, available computer memory, and data transmission rates of the client computer 116.
  • One inventive aspect of this invention is the determination that a granularity of 18 columns is sufficient to present the appearance of 360° three- dimensional rotation to a viewer, without jerky motion and without creating an unnecessary demand on processing and data transfer.
  • the currently preferred embodiments of the invention utilize 18 frames in each row of frames, if 360° rotation is to be available (i.e., the sight lines for any particular row of frames are spaced apart by 20°).
  • the three-dimensional object 212 can be manipulated to display the graphic from different viewing angles.
  • FIGURE 2B illustrates the browser window and WEB page of FIGURE 2 A, when the image window 210 displays a different frame of the three- dimensional object 212.
  • the view in FIGURE 2A displays a frame of the three-dimensional graphic that can be considered to be at column 1, row 1, of the rows and columns of frames.
  • FIGURE 2A displays a frame at column 2, row 1 (i.e., the object 212 is rotated to the right about a vertical axis, relative to the image of object 212 that is shown in FIGURE 2A).
  • FIGURE 4 is a block diagram illustrating the class and important methods of the invention.
  • the class "applet” 302 is part of the JAVA language and is the superclass for JAVA applets.
  • the applet class itself is a subclass of a long chain of classes.
  • the applet class 302 defines a number of methods that are inherited by its subclasses. These methods are documented in many books on JAVA, such as SPECIAL EDITION USING JAVA, referenced above.
  • the class "ThreeDObject” 304 is a subclass of the applet class.
  • the ThreeDObject class 304 defines methods that comprise the present invention.
  • the initlmages method 308 performs initialization related to images, then downloads and displays the first two-dimensional image, as further described below.
  • the method validateData 310 downloads, saves, and validates the remaining two-dimensional images.
  • the method doAutoTurn 312 implements automatic rotating of the three- dimensional image, as further described below.
  • Mouse event methods are inherited by ThreeDObject 304 from the applet class 302, which in turn inherits them from its ancestors.
  • the ThreeDObject class 304 redefines some of these mouse methods as follows.
  • the MouseEnter method 314 is invoked when the cursor enters the image window 210.
  • the MouseExit method 316 is invoked when the cursor exits the image window 210.
  • the cursor is visually modified to indicate a change in function. For example, the cursor, which normally appears as an arrow, may be changed to the shape of a hand when it moves within the image window 210 and MouseEnter 314 is invoked.
  • MouseExit 316 is invoked, the cursor is visually changed back to an arrow.
  • the method MouseDrag 318 is invoked when the cursor is moved while within the image window 210.
  • movement of the mouse 124, and associated movement of the cursor results in a manipulation of the images displayed in the image window 210.
  • the MouseDrag method 318 creates the appearance of the displayed object rotating toward the left. Frames are displayed sequentially to display a virtual rotation of the object. Movement of the mouse toward the right has an analogous effect in the opposite direction. It should be apparent to one skilled in this art that manipulation of the mouse can control the image display in various ways. Alternatively, signals received as a result of keyboard input could also produce the desired effect.
  • a ThreeDObject instance 322 is created as an instance of the ThreeDObject class 304. When the ThreeDObject instance 322 is created, it is associated with an image window 210 within a browser window 202. A plurality of ThreeDObject instances 322 can exist at any time. Each ThreeDObject instance is associated with exactly one image window 210, as illustrated in FIGURE 4. Therefore, a plurality of three-dimensional images can be simultaneously viewed within a WEB page.
  • FIGURE 5 is a flow diagram illustrating the process 402 of downloading to a client computer a three-dimensional graphic image.
  • an instance of the class ThreeDObject retrieves a first two-dimensional image from the Internet.
  • Retrieval of digital data includes sending a command from the client computer 116 to the server computer 104, and transmitting the digital data from the server computer to the client computer.
  • the ThreeDObject instance 322 displays the first image within the image window 210.
  • the first two-dimensional image is added to a block of memory reserved for images of the object being displayed (i.e., frames). Steps 404, 406, and 408 occur within the initlmages method 308 (FIGURE 4). Processing then enters a loop, wherein the remaining two-dimensional images are retrieved. At step 410, the next two-dimensional image is retrieved from the Internet. At step 412, the newly retrieved image is added to the block of memory reserved for the image frames. At step 414, a determination is made of whether the newly received image is the last two-dimensional image comprising the three- dimensional image. If not, processing returns to step 410 to retrieve the next two- dimensional image.
  • Step 414 After retrieving all two-dimensional images that comprise the three-dimensional image, at step 414 a determination is made that the last image has been retrieved. When this occurs, the image retrieval processing 402 is complete. Steps 410, 412, and 414 occur within the validateData method 310 (FIGURE 4). Preferably, the above-described steps within the initlmages method 308 occur within one thread of execution, and the steps within the validateData method 310 occur within a second thread of execution, allowing the first image to be displayed while the remaining images are retrieved.
  • FIGURE 6 is a flow diagram illustrating the process 502 of handling input commands from a directional device, such as a mouse.
  • the ThreeDObject instance (322 in FIGURE 4) keeps track of the current frame being displayed in the image window 210, by maintaining two variables to represent the current row and the current column, respectively.
  • the client computer 116 receives input from the mouse, the input being indicative of mouse movement.
  • a determination is made of the direction of movement of the mouse.
  • a decision is made of whether the direction of movement is upward, downward, toward the left, or toward the right.
  • the current column is decremented. If, at step 508, it is determined that the mouse movement is toward the right, at step 512, the current column is incremented. If, at step 508, it is determined that the direction of movement is upward, at step 514, the current row is incremented. If, at step 508, it is determined that the direction of movement is downward, at step 516, the current row is decremented.
  • the values for the current row and current column must be maintained between 1 and the granularity for rows and columns, respectively. If the current row or current column is decremented to 0, it is reset to the maximum row or column, respectively. If the current row or column is incremented beyond the maximum, it is set to 1.
  • the current row and current column therefore wrap around, so that the displayed object is shown at its original viewing angle. With respect to rotation of an object about a vertical axis, the above-described embodiment thus allows full and continued 360° rotational viewing of the object being displayed.
  • the frame (two-dimensional image) corresponding to the "new" current row and column is displayed to show the object being displayed at a different viewing angle and to present the viewer the perception of movement of a three-dimensional object 6.
  • the step of displaying the "new" frame includes removing the previous frame from the display. Steps 504 through 518 occur within the MouseDrag method 318 (FIGURE 4).
  • each row represents a fixed angle between the sight lines of each frame and the horizontal plane, or alternatively, a fixed angle between the sight lines and the vertical axis (218 in FIGURE 3 A). Movement to the left in a row results in movement to the next column within the same row, at the same angle. For example, in the preferable configuration having three rows spaced at 45°, 90°, and 135° from the vertical axis, movement to the left, when in the uppermost (45°) row, maintains the view at 45° from the vertical axis.
  • a ThreeDObject instance 322 (FIGURE 4) further includes the ability to automatically rotate a three-dimensional image in a specified direction.
  • the ThreeDObject instance 322 automatically determines the next frame to be displayed in the specified direction, displays the next two- dimensional image, and waits for a predetermined amount of time.
  • the ThreeDObject instance 322 then repeats the sequence of determining the frame, displaying the next two-dimensional image, and waiting the predetermined amount of time, continuously until all images in a plane have been displayed, and the appearance of a 360-degree rotation is presented to the viewer.
  • the specified direction for an AutoTurn object may be left, right, up, or down.
  • a three-dimensional image can include one or more rows of two-dimensional images.
  • the three-dimensional object may be viewed rotating toward the left or the right, but not upward or downward.
  • a three-dimensional image having exactly one column of two- dimensional images allows the appearance of rotation upward or downward, but not toward the left or right.
  • a row includes 18 two-dimensional images if full 360° horizontal rotation is to be attained.
  • a three-dimensional image having three rows and 18 columns, as described above, allows a smooth rotation of the display left or right, while allowing upward or downward rotation in 45° increments.
  • any combination of rows and columns can comprise a three-dimensional image.
  • an image preferably includes 18 columns and three rows to allow the appearance of a smooth, horizontal rotation and adequate viewing above and below the horizontal axis.
  • FIGURE 7 illustrates a computer system 602 and associated camera 620 for creating a compressed digital two-dimensional images of a three-dimensional object.
  • the computer system 602 includes a computer mainframe 604, preferably a personal computer, having a monitor 606, a processor 607, a keyboard 608, and a directional input device 610 connected to the computer 604 via cables 605 A, 605B, and 605C, respectively.
  • a mouse is one such directional input device 610.
  • a scanner 612 capable of scanning a visual image, such as a photograph, is connected to the computer 604 by a cable 605D. The scanner 612 converts visual images to digital data in the computer's memory 614 so that the digital data can be stored in nonvolatile storage 616, such as a computer disk.
  • a number of scanners such as the studio scan II SI, by AGFA of West Germany, are commercially available with associated software for converting images to digital data.
  • a camera 620 is utilized for taking photographs of a three-dimensional object, the resultant photograph capable of being scanned by the scanner 612.
  • a slide scanner can convert 35 mm slides to digital data.
  • Digitizing boards can create digital data from images displayed on a monitor.
  • a digital camera such as the QuickTake 150, by Apple Computer, may be used to create a file containing digital data representative of a two-dimensional photograph of a three- dimensional object.
  • Reference to the use of a scanner and camera should be considered exemplary, not limiting.
  • FIGURE 7 is a flow diagram illustrating the process 702 of compressing two- dimensional images in accordance with the invention.
  • an image-editing computer program running on a computer is utilized.
  • image editors that can be used to practice the invention are commercially available. These image editors include “PhotoShop,” by Adobe Systems of San Jose, California and “Photo-Paint 5," by Corel Corporation of Ottawa, Canada.
  • a preferred image editor is "PhotoPress,” commercially distributed in 1989 by Blue Solutions, and currently owned by Asuka Technologies of Japan.
  • “PhotoPress” is used as the exemplary image editor to describe the compression process.
  • One skilled in this art, and others, will recognize the similarity of functionality with the above-named image editors.
  • Image-editing programs typically use a plurality of bits to represent each pixel of a two-dimensional image.
  • a monochromatic, or grayscale, image has a single numeric value representing the scale of gray for each pixel.
  • An image editing program uses a color management system to represent the colors of each pixel in an image.
  • a commonly used system is known as RGB.
  • RGB utilizes three components to represent the values of red, green, and blue, for each pixel of an image.
  • the range of colors that can be expressed depends upon the number of bits in the digital signal that controls the color displayed by a pixel. For example, when 24 bits are used to represent a pixel, each component can have 256 values, ranging from 0 to 255. Pure black is represented by the RGB values 0,0,0, and pure white is represented by 255,255,255.
  • the bits representing an image are organized sequentially and contiguously, by rows from top to bottom.
  • a scanner When converting a photograph, which is an analog form of an image, to a digitized form of the image, slight variations in the digitized data often appear due to noise. For example, scanning a photograph that contains a black background, typically results in many bits represented by digital data that are near, but not exactly, 0,0,0.
  • a scanner includes a charge-coupled device (CCD).
  • CCD charge-coupled device
  • light focuses on a two-dimensional surface of the device, similarly to light focusing on photographic film within a camera.
  • the CCD produces electric charges based upon the light focused at each "photosite.”
  • the electronic charge at the photosite is translated into digital data, or a sequence of bits representing the entire image. The result is an analog-to-digital conversion.
  • the A-to-D conversion process includes random anomalies as a result of noise in the CCD and associated circuitry. When viewed through an oscilloscope, the noise and resultant anomalies can be seen. The noise and resultant anomalies manifest themselves as variant pixel representations within the digital data representing the image.
  • One inventive aspect of the present invention is the determination that numerous such variations exist, and that the anomalies and resultant variations significantly reduce the amount ofcompression achieved with conventional techniques. Therefore, one aspect of the present invention is the minimization of the variation in the digital data representing the background of an image.
  • a photograph is taken of the three-dimensional object from which a three-dimensional image is to be created.
  • the photograph is then developed using conventional photographic means to produce a conventional photograph.
  • the photograph is scanned by a scanner 612 to create a digital computer file containing digital data representing the two-dimensional image.
  • the two-dimensional image is stored on the computer disk 616.
  • the stored two-dimensional image is loaded into the image- editing program.
  • an operator using the tools of the image-editing program, creates a mask to encompass the background of the image.
  • the mask includes only the background, and none of the foreground image, and thereby serves to delineate the background from the foreground.
  • all color within the mask is deleted. Deleting the color within a mask results in the portion of the digital data that corresponds to the area within the mask being changed to all zeros to represent the individual pixels of the image.
  • the revised image is saved to a computer disk or other storage mechanism.
  • the same modified representation of background color is used in each of the two-dimensional images that comprise a three-dimensional image.
  • Run Length Encoding is a well known computer technique for compressing digital data. It includes replacing a repetition of a particular sequence of digital data with a single occurrence of the repeated data and an indication of the number of times that the sequence is repeated. After first editing the background of the image to be all zeros, subsequent Run Length Encoding replaces a lengthy sequence of digital data containing zeros with a single zero and an indication of the number of times the zero is repeated. The resultant compressed image thereby requires much less compressed data than if the digital variation within the background had been included in the image. Two types of well known Run Length Encoding are used in the final compression step 716.
  • GIF The "Graphics Interchange Format®” (GIF), copyrighted by CompuServe, Incorporated, of Columbus, OH, is one well known specification.
  • the GIF specification is described in detail in GRAPHICS FILE FORMATS: REFERENCE AND GUIDE, by C. Wayne Brown and Barry J. Shepherd (Manning Publications, Greenwich, CT, 1995), at pages 335-339.
  • the GIF specification is based on LZW compression, which is the subject of U.S. Patent No. 4,558,302, owned by UniSys Corporation, of Blue Bell, PA.
  • JPEG file interchange format utilizes a compression scheme known as Joint Photographic Experts Group (JPEG) compression.
  • JPEG compression scheme was originated by, and is copyrighted by, the International Standards Organization/International Engineering Consortium (ISO/TEC) committee.
  • JPEG compression is described in GRAPHICS FILE FORMATS: REFERENCE AND GUIDE, at pages 381-386, and is specified in detail in ISO/TEC 10918, Digital Compression and Coding of Continuous-Tone Still Images, available from the American National Standards Institute, of New York, NY. Adobe PhotoShop allows the saving of images in either GIF or JFIF formats.

Abstract

A method of transferring digital data from a server computer (104) to a client computer (116) for three-dimensional viewing of an object is disclosed. The method includes downloading a first portion of the digital data and displaying the downloaded portion, while the remaining portions are downloaded and encapsulated with program code to produce a display object. When the digital data represents three-dimensional graphics, the digital data represents a series of two-dimensional images of a three-dimensional object that are taken along different viewing angles. Each input received as a result of manipulation of a directional input device (124) results in a change in the two-dimensional image being displayed, thereby creating the appearance of three-dimensional rotation of the displayed object. Prior to downloading, the two-dimensional images that provide the three-dimensional viewing are compressed by creating a mask (710) encompassing the background of the image (214), deleting the color within the mask (712), and compressing (716) the resultant data using Run Length Encoding.

Description

METHOD OF DISPLAYING THREE-DIMENSIONAL IMAGES
Field of the Invention The present invention relates to the presentation of digital information on a client computer, and in particular, the visual display that allows three-dimensional viewing of an object on a client computer connected to a network.
Background of the Invention
In recent years, there has been a tremendous proliferation of computers connected to the Internet. Many of the computers are used to access the Worldwide
Web (WEB). Combined with the recent commercialization of the WEB, this has created a need to efficiently present digital information on client computers connected to the Internet. Digital information includes visual information as well as sound.
Visual information includes varying formats for displaying two-dimensional still graphics, animated graphics, and three-dimensional graphics. A computer can download digital information from a WEB server, and execute a WEB browser program to translate the digital information into a visual or audio form perceptible by the user.
A client computer downloads WEB pages in a format known as "Hypertext Markup Language" (HTML) for viewing with a WEB browser running on the client computer. HTML includes commands for formatting text, linking to digital data, and receiving input from a user at a client computer. HTML is designed to be platform independent, so a WEB page can be displayed on any computer with a compatible browser program.
A WEB browser interprets the content and commands within an HTML file in order to properly display the content within the file. However, a WEB browser is not able to properly interpret all formats of digital data. In order to provide the flexibility to download and display digital data in formats "foreign" to a WEB browser, several techniques have been developed. One such technique is to utilize a supplementary program, called a "helper application," which is installed on the client computer, typically by downloading the program over the Internet. The WEB browser is able to associate specific file formats with specific helper applications, and invokes the proper helper application when the WEB browser is called upon to interpret and display the foreign digital data.
Another method of interpreting and displaying digital data utilizes small programs, or applets, that are downloaded each time they are needed. An applet may, for example, present animation in the middle of a displayed WEB page on the client computer. An applet running on a client computer may request that digital data be downloaded from a WEB server to be used, i.e., displayed, on the client computer.
JAVA is a programming language used to create applets. JAVA is an object- oriented language, and applets written in JAVA are objected oriented. JAVA code is organized into classes. A class includes a set of methods that define the behavior of a class object. A JAVA program is compiled into byte-codes. Byte-codes are low-level instructions that are not specific to a particular machine, thereby allowing a JAVA program to be executed on different types of computers. A JAVA program, in the form of byte-codes, is downloaded to a client computer along with an associated HTML file.
File compression techniques are commonly used to reduce the size of files prior to transmission over the Internet. Run Length Encoding is a well-known computer technique for compression digital data. In Run Length Encoding, a repetition of a particular sequence of digital data is replaced with a single occurrence of the repeated data and an indication of the number of times that the sequence is repeated. LZW compression, which is the subject of U.S. Patent No. 4,558,302, is one well-known method of Run Length Encoding. The "Graphics Interchange Format®" (GIF) is a well-known file specification employing LZW compression. JPEG compression is another well-known method of Run Length Encoding.
The JPEG compression scheme is used to create a file interchange format known as JPEG file interchange format (JFJJF).
Despite the rapid technological advances relating to the provision and downloading of digital data for displaying visual information, a need exists for improved methods and techniques. This is especially true relative to providing images for three-dimensional viewing.
Summary of the Invention In accordance with this invention, a method of displaying a three-dimensional image represented by digital data on a client computer connected to a communication medium, such as the Internet, is provided. The three-dimensional image is made up of multiple two-dimensional images, each two-dimensional image being referred to as a frame and being a visual image of the object along a different line of sight (i.e., taken at a different viewing angle). By selectively and sequentially displaying the two- dimensional images, a three-dimensional image of the object is observed in which the object appears to rotate about a predefined axis that extends through the object. Rotation can be "automatic" (i.e., achieved without user input) or can be controlled by user activation of an input device such as a mouse or selected keys of the computer keyboard. In the currently preferred arrangement of the invention, a three-dimensional object is represented by three rows of frames (two-dimensional images), with each row of frames including 18 two-dimensional images. In this preferred arrangement, the lines of sight associated with the 18 frame elements of each row of frames are angularly spaced apart from one another and pass through the center of the three- dimensional object to be displayed. The lines of sight associated with the three frames in each column of frames are angularly spaced apart from one another and lie in an imaginary plane that passes through the center of the three-dimensional object and is perpendicular to an imaginary horizontal plane.
In the operation of the invention, a computer program is received by the client computer through the communication medium and is executed on the client computer. More specifically, the client computer executes a command, and receives, in response, a portion of the digital data representing the first two-dimensional image (i.e., the first frame). The first two-dimensional image is displayed on the client computer display. The client computer then receives additional portions of the digital data through the communication medium. The additional portions include digital data representing two-dimensional images (frames) to the left and the right of the first frame. In response to directional input from a directional input device, such as a mouse, the client computer displays either the left frame or the right frame. If the directional input represents the left direction, the left frame is displayed, and if the directional input represents the right direction, the right frame is displayed, thereby providing the appearance of left or right rotation of a three-dimensional image.
In accordance with the invention, the additional portions of digital data include fourth and fifth frames of data, which represent the two-dimensional images above and below the two-dimensional image being displayed. If directional input representing the upward direction is received, the frame above the first image is displayed and the displayed image appears to rotate downwardly about an axis through the center of the image. If the directional input represents the downward direction, the frame below the first frame is displayed, thereby providing the appearance of three-dimensional upward rotation of the displayed image.
In the currently preferred embodiments, the first two-dimensional image is displayed prior to receiving the second two-dimensional image at the client computer, thereby reducing the time delay before the first image is displayed. Preferably, the computer program running on the client computer is multithreaded, and one thread of execution displays the first two-dimensional image while a second thread downloads the remaining two-dimensional images.
In accordance with the invention, the digital data representing each two- dimensional image is compressed prior to transmitting the data (i.e., data frames) to the client computer. Compressing the two-dimensional images in accordance with the invention includes creating a mask to encompass the background of the two- dimensional image, modifying the background of the two-dimensional image to be a repetition of a sequence of bits, preferably all zeros, and compressing the modified two-dimensional image in accordance with the methods of Run Length Encoding.
In the currently preferred embodiments of the invention, compression of the digital data representing a two-dimensional image includes loading the image into an image editing computer program, creating a mask to encompass the image background, modifying the image background to be a repetition of a sequence of bits, and compressing the image in accordance with the methods of Run Length Encoding. In the method of compressing digital data, the background is made up of multiple pixels, and the modification of the background includes modifying sequential pixels to have the same digital value. A preferable digital value is (0,0,0,) which indicates pure black in the RGB color system. The particular Run Length Encoding method may be either LZW compression, resulting in a GIF file, or JPEG compression, resulting in a JFIF file. Brief Description of the Drawings The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same becomes better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
FIGURE 1 is a block diagram illustrating an Internet architecture having a server and a client computer;
FIGURES 2A and 2B illustrate a net browser application window displaying a WEB page with a three-dimensional graphic contained therein; FIGURES 3A and 3B are diagrams that indicate an object to be displayed and depict the relationship between two-dimensional images that are used in the invention; FIGURE 4 is a block diagram illustrating the class structure of the invention; FIGURE 5 is a flow diagram illustrating the process of downloading to a client computer a three-dimensional graphic object and the execution of the object; FIGURE 6 is a flow diagram illustrating the processing within a three- dimensional graphic object in accordance with the invention;
FIGURE 7 is a block diagram illustrating a system for creating a compressed digital two-dimensional image in accordance with the invention; and
FIGURE 8 is a flow diagram illustrating the process of compressing a two- dimensional image in accordance with the invention.
Detailed Description of the Preferred Embodiment
As will be better understood from the following description, the present invention is directed to a method for transmitting digital data to a client computer and presenting the digital data to an operator. While the following description explains the invention in connection with digital data representing three-dimensional graphics, it is to be understood that the invention can be used with other digital data, such as digitized video. The invention employs a client computer connected to a network, such as the Internet, a server computer connected to the network, computer software controlling the operation of the server computer, and computer software controlling the operation of the client computer. While the preferred network is the Internet, other types of networks, including local area networks can be employed in actual embodiments of the invention. The invention utilizes an object-oriented programming paradigm. In order to better understand the invention described below, certain aspects of object-oriented programming paradigms that are relevant to the following discussion are first described. "Objects" represent computer system elements, and contain program code, in the form of "methods," and data. Objects can be organized into classes in a hierarchical fashion and are interoperable. Classes are abstract generic descriptions of objects and their behaviors. A class defines a certain category or grouping of methods and data within an object. The methods of a class define the object's behavior. Methods manipulate the data contained within the object or passed to the object. A class serves as a template to define the behavior of an object that is created or "instantiated" from the class. An object, or instance of a class is a specific individual entity, with its behaviors defined by its class. Many objects can be instantiated from a single class. A "subclass" can be created from a class by adding methods or overriding one or more of the class's methods. A subclass inherits the behaviors of its "superclass" with the modifications added to the subclass.
The preferred embodiment of the invention is created using the JAVA programming language. JAVA is an object-oriented language having the features described above. JAVA also supports multiple threads. A single-threaded program follows a sequential order of execution that can be easily represented by a flow diagram. In a multithreaded program, more than one thread of execution exists, and each thread follows a sequential order of execution. Using multiple threads of execution, different activities of a program may occur in parallel. This can greatly reduce the amount of time that a user must wait for certain operations to occur. For example, one thread may be displaying an image in a WEB page while a second thread is downloading other images to display.
FIGURE 1 illustrates an exemplary client server architecture 102, having a server computer 104 and a client computer 116 linked by their common connection to the Internet 114. Connection to, and communication over, the Internet 114 is well understood in the art, and is provided by numerous commercial services, and need not be explained further.
The server 104 includes a server application 106 operational for transmitting computer programs, documents, and digital data onto the Internet, in response to received requests. A form of nonvolatile storage, such as a disk 108, contains files to be downloaded by the server application 106. Residing on the disk 108 are one or more hypertext markup language (HTML) documents 110, one or more files containing program code 112 implementing a class that defines the present invention, and one or more files containing digital data. The HTML document 110 and the program code 112 are described in further detail below. Upon request from a client computer 116, the server application 106 transmits, or downloads, an HTML document, program code, or digital data onto the Internet 114. The client computer 116, connected to the Internet 114 receives, or downloads, the document, program code, or digital data from the Internet. The client computer 116 includes a browser application 118, operative for displaying HTML documents and executing the program code 112 received from the server computer 104. The browser application 118 may comprise a single application, or multiple applications working together to implement the functionality of the browser 118. Netscape Navigator™ 3.0, by Netscape Communications Corporation, of Mountain View, California, and Internet Explorer™, by Microsoft Corporation, of Redmond, Washington, are two examples of browser applications 118 that can be used with the present invention, when running on the Windows 95 or Windows NT operating systems.
The client computer 116 further includes computer memory 120, which can be a random-access memory (RAM) or other storage device. The depicted client computer 116 also includes a processor 121, a keyboard 122, and a directional input device 124, such as a mouse. As will be readily understood by one skilled in this art, and others, a number of different directional input devices exist that are functional for allowing a user to provide directional input to a computer. The most popular devices are mice, trackballs, touch pads, and joysticks. Keys on a keyboard may also be used to provide directional input. Reference to the use of a mouse hereinafter should be considered exemplary, and not limiting. The client computer further includes a display device 126, such as a cathode ray tube (CRT) or liquid crystal display (LCD).
The following is a portion of an exemplary HTML file in accordance with the present invention. The text and commands within the HTML file are used to create the WEB page illustrated in FIGURES 2 A and 2B. The lines are numbered for purposes of this discussion only.
1 <applet code="ThreeDObject.class" width=320 height=240>
2 <param name=imgDirectory value="mwtch">
3 <param name=filebase value="mwtch">
4 <img src="mwtch/mwtch.gif ' >
5 </applet><ρ>
6 >/center> Line 1 specifies the location of a file containing the JAVA code that implements the ThreeDObject class, further described below. It also specifies the width and height (in display units or pixels) of the rectangular area that will contain the three-dimensional image. Lines 2 and 3 specify parameter values used by the ThreeDObject class. The parameter "imgDirectory" specifies the directory where digital data representing a plurality of two-dimensional images reside. The parameter "filebase" specifies the base file name of the files containing the three-dimensional image digital data representing the two-dimensional images. Each file contains one two-dimensional image. The name of each file is formed by appending a number and a suffix to the name specified by the filebase parameter. Line 4 is interpreted only by browsers that do not support JAVA. For non-JAVA browsers, this line indicates the location of a file containing a two-dimensional image that is to be displayed within the image window. This two-dimensional image is displayed in place of the three- dimensional image. Line 5 indicates the end of the applet declaration. Line 6 indicates that the rectangular window is to be horizontally centered within the WEB page. A more detailed explanation of the above-described JAVA and HTML commands is given in SPECIAL EDITION USING JAVA, by Alexander Newman, et al. (Que Corporation 1996) at Chapter 19.
FIGURES 2A and 2B illustrate a net browser application window displaying a WEB page with a three-dimensional graphic contained therein. The browser window 202 includes a display area 204 within which the HTML document is displayed. A scrollbar 206 is operational for scrolling through the entire HTML document, when only a portion of it can be visible in the display portion 204 of the browser window 202. Text 208 within the HTML document is displayed in the display window 204, according to specified formatting. Within the HTML document, a rectangular image window 210 displays a three-dimensional object 212. In FIGURE 2 A, a border of the image window 210 is included for illustrative purposes only. In the preferred functioning of the invention, at any point in time, exactly one two-dimensional view of the three-dimensional object is visible.
As indicated in FIGURES 2A and 2B, the depicted image window 210 includes a background 214, which does not change as different views of the three- dimensional graphic 212 are displayed. Preferably, the background 214 is of a single color, to avoid visual interference with the displayed rotating object. As discussed further below, the use of a background 214 that is constant reduces the memory requirement for displaying an object 212, thereby reducing downloading time and display time.
In accordance with the invention, a three-dimensional depiction of an object is achieved with a plurality of two-dimensional images, referred to as frames. Each frame corresponds to a two-dimensional image (e.g., a photograph) of the three- dimensional object from a different viewing angle. The frames are organized into rows and columns. Each row includes a plurality of frames corresponding to two- dimensional images of the displayed object in which the lines of sight associated with the two-dimensional images intersect at a point about which the object appears to rotate. More specifically, as is diagrammatically depicted in FIGURE 3A, a three- dimensional object 212 can be considered as being associated with a coordinate system consisting of three mutually orthogonal axes 218, 219, and 220 where the origin 222 of the coordinate system corresponds to a point in space about which the object 212 will be rotated for viewing. An imaginary horizontal plane 240, depicted in FIGURE 3 A by the intersection of a plane with an imaginary reference sphere 241, contains the horizontal axes 219 and 220. In accordance with the invention, each frame in a row of frames is a two-dimensional image of the object to be displayed (e.g., object 212) that is taken at different viewing angles, with the line of sight for each viewing angle intersecting the origin 222 and forming a constant angle with the horizontal plane 240. For example, in FIGURE 3 A, the invention employs a row of frames that corresponds to an ordered sequence of two-dimensional images of object 212 that are taken along angularly spaced-apart sight lines indicated as 224, 226, 228, 230, 232, 234, and 238. The depiction in FIGURE 3A shows eight frames in one row for illustrative purposes. As discussed below, preferably 18 frames are included in each row. Each sight line 224-238 lies in horizontal plane 240, thereby forming an angle of 0 degrees with the plane 240, which is perpendicular to the axis of rotation (axis 218 in FIGURE 3 A).
In a preferred configuration of a three-dimensional image having three rows of frames, each row includes 18 frames having angularly spaced apart sight lines as described above. FIGURE 3B illustrates three rows of sight lines. Eight sight lines 242, 260, 262, 264, 246, 266, 268, and 270, corresponding to eight frames, are shown in the uppermost row for illustrative purposes, though 18 frames are preferred. In such a configuration, each sight line for the frames in the uppermost row intersect the origin 222 and form a constant angle, preferably 45° with the horizontal plane 240. Similarly, the sight lines for the frames in the bottommost row, intersect the origin 222 and form a constant angle, preferably 45°, with the horizontal plane 240.
Sequential viewing of frames in a row of frames creates the appearance of three-dimensional rotation of the displayed object about axis 218. For example, with reference to FIGURE 3A, object 212 will appear to rotate to the right (counterclockwise as viewed from above) about axis 218, if the frames corresponding to sight lines 224-238 are sequentially displayed in ascending order of the numeric identifiers. Rotation to the left (clockwise) about axis 218 results if the frames corresponding to sight lines 224-238 are displayed sequentially in decreasing order or in descending order relative to the numeric identifiers used in FIGURE 3A. In this regard FIGURE 2B illustrates three-dimensional object 212 rotated by one frame along a row having sight lines parallel to horizontal plane 240, the rotation being about vertical axis 218.
As previously mentioned, the frames of the currently preferred arrangements are arranged in rows and columns. In the practice of the invention, each frame in a column of frames is a two-dimensional image of the object with the sight lines associated with the images intersecting the origin 222. The sight lines associated with the images of a column lie in an imaginary plane that includes the axis 218, the imaginary plane being perpendicular to a line about which rotation will be viewed. This line intersects the origin 222 and is in the plane 240. For example, with respect to FIGURE 3 A, to achieve perceived rotation about axis 220 the sight lines for the two-dimensional images in a column of images would all lie in an imaginary plane that is perpendicular to axis 220 and includes the origin 222 and axis 219.
FIGURE 3B illustrates a vertical imaginary plane 250, depicted by the intersection of a vertical plane with reference sphere 241 , that includes axis 218. Two columns of frames are associated with the depicted imaginary plane. Unlike a row, which includes frames spanning a complete rotation (360°) of the viewing object 212, a column preferably includes only frames spanning a one-half rotation (180°) of the object 212. This avoids viewing the object upside-down by rotating the object vertically. One column depicted in FIGURE 3B consists of a frame associated with line of sight 238, a frame associated with a downwardly directed line of sight 242, and a frame associated with an upwardly directed line of sight 244. The second column of frames shown in FIGURE 3B consists of the frame associated with line of sight 230, a frame associated with a downwardly directed line of sight 246 and a frame associated with an upwardly directed line of sight 248. To achieve the necessary column/row relationship and three-dimensional display, the angle formed between adjacent lines of sight within a column must be the same as the corresponding angle in all other columns. That is, if Lr c represents the line of sight for the frame at row r and column c, the angle between sight lines Lj j and Lj+i ; is equal to the angle between sight lines
Figure imgf000013_0001
and Lj+i jς. For example, in embodiments using three rows of frames, the preferred angle between sight lines is 45°. In terms of FIGURE 3B, in such an embodiment, lines of sight 238 and 230 are at 90° relative to axis 218; lines of sight 242 and 246 are at an angle of 45°; and lines of sight 244 and 248 are at an angle of 135° (i.e., 45° below the horizontal imaginary plane 240 of FIGURE 3A. In accordance with the above description, the angle 252 between adjacent sight lines 242 and 238 is equal to the corresponding angle 254 between adjacent lines 246 and 230, 45° in the depicted embodiment.
It should be recognized that the above description regarding the intersection of sight lines and the angles formed with sight lines are the preferred configuration of the invention. The invention may be practiced whereby the angles of the sight lines are approximately, but not precisely, those described. As will be apparent to one skilled in this art, and others, variations on the position and orientation of the sight lines can be utilized in accordance with the invention.
Regardless of the angular position of the sight lines associated with the frames in a column of frames, or the number of column elements (and, hence, the number of rows), sequential ordered display of the frames in a column of frames results in perceived rotation about an axis that extends through the origin 222 and is perpendicular to the imaginary plane 250 containing the sight lines. For example, when the imaginary plane 250 is perpendicular to line 256 in FIGURE 3B, sequential display of the frames within one of the two columns (the column including sight lines 246, 230, and 248, and the column including sight lines 242, 238, and 244) of frames associated with the imaginary plane creates the appearance of object 212 rotating upward or downward about line 256. Upon rotating the object upwardly or downwardly, rotation about the vertical axis 218 can be achieved in the manner described above.
The granularity, or the number of frames used in a column or row, is important in providing the proper aesthetic effect to a viewer. If the granularity is too low, such that too few frames are used, the rotation of the three-dimensional image will appear jerky, and will not present a proper appearance of three-dimensional rotation. If the granularity is too high, the excess of frames will increase the processing time to download the images and store them in memory on the client computer 116. The granularity can vary, in accordance with the complexity of the object being displayed, available computer memory, and data transmission rates of the client computer 116. One inventive aspect of this invention is the determination that a granularity of 18 columns is sufficient to present the appearance of 360° three- dimensional rotation to a viewer, without jerky motion and without creating an unnecessary demand on processing and data transfer. Thus, the currently preferred embodiments of the invention utilize 18 frames in each row of frames, if 360° rotation is to be available (i.e., the sight lines for any particular row of frames are spaced apart by 20°).
As can be recognized in view of the above description, the three-dimensional object 212 can be manipulated to display the graphic from different viewing angles. For example, FIGURE 2B illustrates the browser window and WEB page of FIGURE 2 A, when the image window 210 displays a different frame of the three- dimensional object 212. In particular, the view in FIGURE 2A displays a frame of the three-dimensional graphic that can be considered to be at column 1, row 1, of the rows and columns of frames. In such a case, FIGURE 2A displays a frame at column 2, row 1 (i.e., the object 212 is rotated to the right about a vertical axis, relative to the image of object 212 that is shown in FIGURE 2A). The number of rows of frames used for three-dimensional depiction is established based upon the previously discussed granularity considerations and the desired degree to which the depicted object is to be rotated about the axis associated with any given column of frames. Since horizontal rotation of the three-dimensional graphic is more typically desired than vertical rotation, in many cases, not as many rows as columns are needed to provide proper viewing. In practice, three rows and 18 columns are usually sufficient for most three-dimensional images. In an image having three rows, the rows are preferably separated by an angle of 45°, i.e., the sight lines associated with the frames are spaced apart by 45°, as described relative to FIGURE 3B. FIGURE 4 is a block diagram illustrating the class and important methods of the invention. The class "applet" 302 is part of the JAVA language and is the superclass for JAVA applets. The applet class itself is a subclass of a long chain of classes. The applet class 302 defines a number of methods that are inherited by its subclasses. These methods are documented in many books on JAVA, such as SPECIAL EDITION USING JAVA, referenced above.
The class "ThreeDObject" 304 is a subclass of the applet class. The ThreeDObject class 304 defines methods that comprise the present invention. The initlmages method 308 performs initialization related to images, then downloads and displays the first two-dimensional image, as further described below. The method validateData 310 downloads, saves, and validates the remaining two-dimensional images. The method doAutoTurn 312 implements automatic rotating of the three- dimensional image, as further described below.
Mouse event methods are inherited by ThreeDObject 304 from the applet class 302, which in turn inherits them from its ancestors. The ThreeDObject class 304 redefines some of these mouse methods as follows. The MouseEnter method 314 is invoked when the cursor enters the image window 210. The MouseExit method 316 is invoked when the cursor exits the image window 210. When MouseEnter 314 is invoked, the cursor is visually modified to indicate a change in function. For example, the cursor, which normally appears as an arrow, may be changed to the shape of a hand when it moves within the image window 210 and MouseEnter 314 is invoked. When the cursor leaves the image window 210 and MouseExit 316 is invoked, the cursor is visually changed back to an arrow.
The method MouseDrag 318 is invoked when the cursor is moved while within the image window 210. As discussed in detail below, movement of the mouse 124, and associated movement of the cursor, results in a manipulation of the images displayed in the image window 210. When the mouse is moved toward the left while the cursor is within the image window 210, the MouseDrag method 318 creates the appearance of the displayed object rotating toward the left. Frames are displayed sequentially to display a virtual rotation of the object. Movement of the mouse toward the right has an analogous effect in the opposite direction. It should be apparent to one skilled in this art that manipulation of the mouse can control the image display in various ways. Alternatively, signals received as a result of keyboard input could also produce the desired effect. For example, use of the cursor buttons on a keyboard can be used to signal manipulation of the displayed image. A ThreeDObject instance 322 is created as an instance of the ThreeDObject class 304. When the ThreeDObject instance 322 is created, it is associated with an image window 210 within a browser window 202. A plurality of ThreeDObject instances 322 can exist at any time. Each ThreeDObject instance is associated with exactly one image window 210, as illustrated in FIGURE 4. Therefore, a plurality of three-dimensional images can be simultaneously viewed within a WEB page.
It should be appreciated by one skilled in this art, and others, that the invention described herein can be implemented, and the software organized, in a variety of ways. The class structure and method organization described above should be considered as exemplary, and not as limiting. FIGURE 5 is a flow diagram illustrating the process 402 of downloading to a client computer a three-dimensional graphic image. At step 404, an instance of the class ThreeDObject retrieves a first two-dimensional image from the Internet. Retrieval of digital data, such as two-dimensional images, includes sending a command from the client computer 116 to the server computer 104, and transmitting the digital data from the server computer to the client computer. At step 406, the ThreeDObject instance 322 displays the first image within the image window 210. At step 408, the first two-dimensional image is added to a block of memory reserved for images of the object being displayed (i.e., frames). Steps 404, 406, and 408 occur within the initlmages method 308 (FIGURE 4). Processing then enters a loop, wherein the remaining two-dimensional images are retrieved. At step 410, the next two-dimensional image is retrieved from the Internet. At step 412, the newly retrieved image is added to the block of memory reserved for the image frames. At step 414, a determination is made of whether the newly received image is the last two-dimensional image comprising the three- dimensional image. If not, processing returns to step 410 to retrieve the next two- dimensional image. After retrieving all two-dimensional images that comprise the three-dimensional image, at step 414 a determination is made that the last image has been retrieved. When this occurs, the image retrieval processing 402 is complete. Steps 410, 412, and 414 occur within the validateData method 310 (FIGURE 4). Preferably, the above-described steps within the initlmages method 308 occur within one thread of execution, and the steps within the validateData method 310 occur within a second thread of execution, allowing the first image to be displayed while the remaining images are retrieved.
FIGURE 6 is a flow diagram illustrating the process 502 of handling input commands from a directional device, such as a mouse. The ThreeDObject instance (322 in FIGURE 4) keeps track of the current frame being displayed in the image window 210, by maintaining two variables to represent the current row and the current column, respectively. When a new three-dimensional image is downloaded, and the first image is displayed (step 406 of FIGURE 5), the current row and current column are initialized to 1,1. At step 504, the client computer 116 receives input from the mouse, the input being indicative of mouse movement. At step 506, a determination is made of the direction of movement of the mouse. At step 508, a decision is made of whether the direction of movement is upward, downward, toward the left, or toward the right. If it is toward the left, at step 510, the current column is decremented. If, at step 508, it is determined that the mouse movement is toward the right, at step 512, the current column is incremented. If, at step 508, it is determined that the direction of movement is upward, at step 514, the current row is incremented. If, at step 508, it is determined that the direction of movement is downward, at step 516, the current row is decremented. The values for the current row and current column must be maintained between 1 and the granularity for rows and columns, respectively. If the current row or current column is decremented to 0, it is reset to the maximum row or column, respectively. If the current row or column is incremented beyond the maximum, it is set to 1. The current row and current column therefore wrap around, so that the displayed object is shown at its original viewing angle. With respect to rotation of an object about a vertical axis, the above-described embodiment thus allows full and continued 360° rotational viewing of the object being displayed.
After decrementing the current column (step 510), incrementing the current column (step 512), decrementing the current row (step 514), or incrementing the current row (step 516), at step 518, the frame (two-dimensional image) corresponding to the "new" current row and column is displayed to show the object being displayed at a different viewing angle and to present the viewer the perception of movement of a three-dimensional object 6. Preferably, the step of displaying the "new" frame includes removing the previous frame from the display. Steps 504 through 518 occur within the MouseDrag method 318 (FIGURE 4). As discussed above, in embodiments of the invention having more than one row of frames, each row represents a fixed angle between the sight lines of each frame and the horizontal plane, or alternatively, a fixed angle between the sight lines and the vertical axis (218 in FIGURE 3 A). Movement to the left in a row results in movement to the next column within the same row, at the same angle. For example, in the preferable configuration having three rows spaced at 45°, 90°, and 135° from the vertical axis, movement to the left, when in the uppermost (45°) row, maintains the view at 45° from the vertical axis.
A ThreeDObject instance 322 (FIGURE 4) further includes the ability to automatically rotate a three-dimensional image in a specified direction. When "AutoTurn" is indicated, the ThreeDObject instance 322 automatically determines the next frame to be displayed in the specified direction, displays the next two- dimensional image, and waits for a predetermined amount of time. The ThreeDObject instance 322 then repeats the sequence of determining the frame, displaying the next two-dimensional image, and waiting the predetermined amount of time, continuously until all images in a plane have been displayed, and the appearance of a 360-degree rotation is presented to the viewer. The specified direction for an AutoTurn object may be left, right, up, or down. As discussed above, automatic rotation of the three- dimensional image occurs within the doAutoTurn method 312 (FIGURE 3). A three-dimensional image can include one or more rows of two-dimensional images. In a three-dimensional image having exactly one row, the three-dimensional object may be viewed rotating toward the left or the right, but not upward or downward. Similarly, a three-dimensional image having exactly one column of two- dimensional images allows the appearance of rotation upward or downward, but not toward the left or right. Preferably, a row includes 18 two-dimensional images if full 360° horizontal rotation is to be attained. A three-dimensional image having three rows and 18 columns, as described above, allows a smooth rotation of the display left or right, while allowing upward or downward rotation in 45° increments. As will be apparent to one skilled in this art, and others, any combination of rows and columns can comprise a three-dimensional image. As discussed above, an image preferably includes 18 columns and three rows to allow the appearance of a smooth, horizontal rotation and adequate viewing above and below the horizontal axis.
FIGURE 7 illustrates a computer system 602 and associated camera 620 for creating a compressed digital two-dimensional images of a three-dimensional object. The computer system 602 includes a computer mainframe 604, preferably a personal computer, having a monitor 606, a processor 607, a keyboard 608, and a directional input device 610 connected to the computer 604 via cables 605 A, 605B, and 605C, respectively. A mouse is one such directional input device 610. A scanner 612 capable of scanning a visual image, such as a photograph, is connected to the computer 604 by a cable 605D. The scanner 612 converts visual images to digital data in the computer's memory 614 so that the digital data can be stored in nonvolatile storage 616, such as a computer disk. A number of scanners, such as the studio scan II SI, by AGFA of West Germany, are commercially available with associated software for converting images to digital data. A camera 620 is utilized for taking photographs of a three-dimensional object, the resultant photograph capable of being scanned by the scanner 612.
Alternative devices are available for converting a visual image to digital data. For example, a slide scanner can convert 35 mm slides to digital data. Digitizing boards can create digital data from images displayed on a monitor. A digital camera, such as the QuickTake 150, by Apple Computer, may be used to create a file containing digital data representative of a two-dimensional photograph of a three- dimensional object. Reference to the use of a scanner and camera should be considered exemplary, not limiting.
FIGURE 7 is a flow diagram illustrating the process 702 of compressing two- dimensional images in accordance with the invention. In order to compress a two- dimensional image, an image-editing computer program running on a computer is utilized. A number of image editors that can be used to practice the invention are commercially available. These image editors include "PhotoShop," by Adobe Systems of San Jose, California and "Photo-Paint 5," by Corel Corporation of Ottawa, Canada. A preferred image editor is "PhotoPress," commercially distributed in 1989 by Blue Solutions, and currently owned by Asuka Technologies of Japan. In the following discussion, "PhotoPress" is used as the exemplary image editor to describe the compression process. One skilled in this art, and others, will recognize the similarity of functionality with the above-named image editors. Image-editing programs typically use a plurality of bits to represent each pixel of a two-dimensional image. A monochromatic, or grayscale, image has a single numeric value representing the scale of gray for each pixel. An image editing program uses a color management system to represent the colors of each pixel in an image. A commonly used system is known as RGB. RGB utilizes three components to represent the values of red, green, and blue, for each pixel of an image. The range of colors that can be expressed depends upon the number of bits in the digital signal that controls the color displayed by a pixel. For example, when 24 bits are used to represent a pixel, each component can have 256 values, ranging from 0 to 255. Pure black is represented by the RGB values 0,0,0, and pure white is represented by 255,255,255. The bits representing an image are organized sequentially and contiguously, by rows from top to bottom.
When converting a photograph, which is an analog form of an image, to a digitized form of the image, slight variations in the digitized data often appear due to noise. For example, scanning a photograph that contains a black background, typically results in many bits represented by digital data that are near, but not exactly, 0,0,0. A scanner includes a charge-coupled device (CCD). In a CCD, light focuses on a two-dimensional surface of the device, similarly to light focusing on photographic film within a camera. The CCD produces electric charges based upon the light focused at each "photosite." The electronic charge at the photosite is translated into digital data, or a sequence of bits representing the entire image. The result is an analog-to-digital conversion. The A-to-D conversion process includes random anomalies as a result of noise in the CCD and associated circuitry. When viewed through an oscilloscope, the noise and resultant anomalies can be seen. The noise and resultant anomalies manifest themselves as variant pixel representations within the digital data representing the image.
The existence of these variant pixel representations reduces the amount of compression that can be achieved using Run Length Encoding, as described below. One inventive aspect of the present invention is the determination that numerous such variations exist, and that the anomalies and resultant variations significantly reduce the amount ofcompression achieved with conventional techniques. Therefore, one aspect of the present invention is the minimization of the variation in the digital data representing the background of an image.
At step 704, a photograph is taken of the three-dimensional object from which a three-dimensional image is to be created. The photograph is then developed using conventional photographic means to produce a conventional photograph. At step 706, the photograph is scanned by a scanner 612 to create a digital computer file containing digital data representing the two-dimensional image. The two-dimensional image is stored on the computer disk 616.
At step 708, the stored two-dimensional image is loaded into the image- editing program. At step 710, an operator, using the tools of the image-editing program, creates a mask to encompass the background of the image. The mask includes only the background, and none of the foreground image, and thereby serves to delineate the background from the foreground. At step 712, all color within the mask is deleted. Deleting the color within a mask results in the portion of the digital data that corresponds to the area within the mask being changed to all zeros to represent the individual pixels of the image. In step 714, the revised image is saved to a computer disk or other storage mechanism. Preferably, the same modified representation of background color is used in each of the two-dimensional images that comprise a three-dimensional image. After editing the two-dimensional image, the image is compressed using "Run
Length Encoding." Run Length Encoding is a well known computer technique for compressing digital data. It includes replacing a repetition of a particular sequence of digital data with a single occurrence of the repeated data and an indication of the number of times that the sequence is repeated. After first editing the background of the image to be all zeros, subsequent Run Length Encoding replaces a lengthy sequence of digital data containing zeros with a single zero and an indication of the number of times the zero is repeated. The resultant compressed image thereby requires much less compressed data than if the digital variation within the background had been included in the image. Two types of well known Run Length Encoding are used in the final compression step 716. The "Graphics Interchange Format®" (GIF), copyrighted by CompuServe, Incorporated, of Columbus, OH, is one well known specification. The GIF specification is described in detail in GRAPHICS FILE FORMATS: REFERENCE AND GUIDE, by C. Wayne Brown and Barry J. Shepherd (Manning Publications, Greenwich, CT, 1995), at pages 335-339. The GIF specification is based on LZW compression, which is the subject of U.S. Patent No. 4,558,302, owned by UniSys Corporation, of Blue Bell, PA.
The JPEG file interchange format (JFIF) utilizes a compression scheme known as Joint Photographic Experts Group (JPEG) compression. The JPEG compression scheme was originated by, and is copyrighted by, the International Standards Organization/International Engineering Consortium (ISO/TEC) committee. JPEG compression is described in GRAPHICS FILE FORMATS: REFERENCE AND GUIDE, at pages 381-386, and is specified in detail in ISO/TEC 10918, Digital Compression and Coding of Continuous-Tone Still Images, available from the American National Standards Institute, of New York, NY. Adobe PhotoShop allows the saving of images in either GIF or JFIF formats.
While the preferred embodiment of the invention has been illustrated and described, it will be apparent that various changes can be made therein without departing from the spirit and scope of the invention.

Claims

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follow:
1. A computer-implemented method of displaying a three-dimensional image represented by digital data on a client computer having a display device and connected to a communication medium, wherein the three-dimensional image comprises at least three two-dimensional images, including a first two-dimensional image, a second two-dimensional image, and a third two-dimensional image, said method comprising: receiving a computer program through the communication medium; executing the computer program on the client computer; receiving a first portion of the digital data through the communication medium, wherein said first portion of the digital data represents said first two- dimensional image; displaying said first two-dimensional image on the display device; receiving a second portion of the digital data through the communication medium wherein said second portion of the digital data includes data representing said second two-dimensional image; receiving a third portion of the digital data through the communication medium wherein said third portion of the digital data includes data representing said third two-dimensional image; receiving directional input from a directional input device; if said directional input represents the left direction, displaying on the display device said second two-dimensional image; and if said directional input represents the right direction, displaying on the display device said third two-dimensional image.
2. The method of Claim 1, wherein the three-dimensional image comprises at least four two-dimensional images, including a fourth two-dimensional image, said method further comprising: if said directional input represents the upward direction, displaying on the display device said fourth two-dimensional image.
3. The method of Claim 2, wherein the three-dimensional image comprises at least five two-dimensional images, including a fifth two-dimensional image, said method further comprising: if said directional input represents the downward direction, displaying on the display device said fifth two-dimensional image.
4. The method of Claim 1, further comprising removing said first two- dimensional image from the display device.
5. The method of Claim 1, wherein the displaying of said first two- dimensional image is performed prior to receiving said second image of the digital data at the client computer.
6. The method of Claim 1, wherein the computer program comprises at least two threads of execution, and said displaying of said first two-dimensional image is performed by a first thread of execution of the computer program, said receiving said second two-dimensional image is performed by a second thread of execution of the computer program, and said first thread and said second thread exist concurrently.
7. The method of Claim 1, wherein said displaying of said first two- dimensional image occurs within an image portion of said display device less than the entire display area of said display device, said method further includes displaying a cursor on said display device responsive to said directional input, and said displaying of said second two-dimensional image and said third two-dimensional image are not performed in response to directional input corresponding to positions of the cursor outside of said image portion.
8. The method of Claim 1, wherein each of said first two-dimensional image, said second two-dimensional image, and said third two-dimensional image have corresponding sight lines, each of said sight lines forms an angle with a plane, and all of said angles are substantially identical.
9. The method of Claim 8, wherein said three-dimensional image comprises at least one row of two-dimensional images, said row comprising between twelve and twenty four two-dimensional images.
10. The method of Claim 8, wherein said three-dimensional image comprises at least one row of two-dimensional images, said row comprising approximately eighteen two-dimensional images.
11. The method of Claim 1, wherein said three-dimensional image comprises at least three rows of two-dimensional images, including a first row and a second row, wherein each two-dimensional image within said first row has a sight line forming approximately a first angle with a horizontal plane, and each two-dimensional image within said second row has a sight line forming approximately a second angle with said horizontal plane, said first angle being different from said second angle.
12. The method of Claim 1, wherein said computer program comprises at least one instance of a class, and said instance includes encapsulated data, said encapsulated data including said first two-dimensional image, said second two- dimensional image, and said third two-dimensional image.
13. The method of Claim 1, further comprising compressing said first portion of the digital data prior to receiving the first portion of the digital data, said compressing comprising: creating a mask to encompass the background of said first two-dimensional image; modifying the digital data representing the two-dimensional image background to be a repetition of a sequence of bits; and compressing the digital data representing the two-dimensional image background in accordance with the methods of Run Length Encoding.
14. The method of Claim 13, wherein the digital data representing the two- dimensional image background comprises digital data representative of a plurality of pixels, including a first pixel and a second pixel, and said modification of the digital data representing the two-dimensional image background includes modifying the digital data representing the second pixel to be the same as the digital data representing the first pixel.
15. The method of Claim 1, wherein: the displaying of said first two-dimensional image is performed prior to receiving said second image of the digital data at the client computer; and said three-dimensional image comprises at least three rows of two-dimensional images, wherein the two-dimensional images within each row have corresponding sight lines forming an angle with a horizontal plane, and wherein all of the angles corresponding to two-dimensional images within the same row are substantially equal; said method further compressing said first portion of the digital data prior to receiving the first portion of the digital data, said compressing comprising: creating a mask to encompass the background of said two-dimensional image; modifying the digital data representing the two-dimensional image background to be a repetition of a sequence of bits; and compressing said modified first portion of the digital data in accordance with the methods of Run Length Encoding.
16. A method of compressing digital data representing a two-dimensional image having a background and a foreground, comprising: loading the image into an image-editing computer program; creating a mask to encompass the image background; modifying the digital data representing the image background to be a repetition of a sequence of bits; and compressing the image in accordance with the methods of Run Length Encoding.
17. The method of compressing digital data of Claim 16, wherein the digital data representing the background comprises digital data representative of a plurality of pixels, including a first pixel and a second pixel, and said modification of digital data representing the background includes modifying the digital data representing the second pixel to be the same as the digital data representing the first pixel.
18. The method of Claim 17, wherein the second pixel is adjacent the first pixel, and the digital data representing the second pixel sequentially follows the data representing the first pixel.
19. The method of Claim 18, wherein compressing the modified image with the methods of Run Length Encoding includes producing a file compatible with the GIF standard.
20. The method of Claim 18, wherein compressing the modified image with the methods of Run Length Encoding includes producing a file compatible with the JFIF standard.
21. A method of compressing digital data representing a three-dimensional image, wherein said three-dimensional image is comprised of a plurality of two- dimensional images having a background and a foreground, comprising compressing the digital data representing each two-dimensional image according to the method of Claim 18.
22. The method of Claim 21, wherein said sequence of bits corresponding to the compression of each of said two-dimensional images is substantially identical.
PCT/US1997/018141 1996-10-08 1997-10-08 Method of displaying three-dimensional images WO1998015920A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU48115/97A AU4811597A (en) 1996-10-08 1997-10-08 Method of displaying three-dimensional images

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72980696A 1996-10-08 1996-10-08
US08/729,806 1996-10-08

Publications (1)

Publication Number Publication Date
WO1998015920A1 true WO1998015920A1 (en) 1998-04-16

Family

ID=24932702

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/018141 WO1998015920A1 (en) 1996-10-08 1997-10-08 Method of displaying three-dimensional images

Country Status (2)

Country Link
AU (1) AU4811597A (en)
WO (1) WO1998015920A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631277B1 (en) * 2001-12-14 2009-12-08 Apple Inc. System and method for integrating media objects
WO2016189368A1 (en) * 2015-05-25 2016-12-01 Yandex Europe Ag Method of and system for restoring of logical hierarchy of at least two two-dimensional objects
US9563202B1 (en) 2012-06-29 2017-02-07 Monkeymedia, Inc. Remote controlled vehicle with a head-mounted display apparatus
US9579586B2 (en) 2012-06-29 2017-02-28 Monkeymedia, Inc. Remote controlled vehicle with a handheld display device
US9641644B2 (en) 2000-12-27 2017-05-02 Bradium Technologies Llc Optimized image delivery over limited bandwidth communication channels
US10051298B2 (en) 1999-04-23 2018-08-14 Monkeymedia, Inc. Wireless seamless expansion and video advertising player
US11266919B2 (en) 2012-06-29 2022-03-08 Monkeymedia, Inc. Head-mounted display for navigating virtual and augmented reality

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4045789A (en) * 1975-10-29 1977-08-30 Atari, Inc. Animated video image display system and method
US4580782A (en) * 1982-10-29 1986-04-08 Sega Enterprises, Ltd. Memory mapping scheme for one-dimensional memory storage system
US4600200A (en) * 1982-01-14 1986-07-15 Ikegami Tsushinki Co., Ltd. Three-dimensional image display system
US4873585A (en) * 1984-09-07 1989-10-10 Ivex Corporation Method of selectively retrieving video images from a video reproducer for simulating movement
US5561746A (en) * 1992-08-26 1996-10-01 Namco Ltd. Image synthesizing system with surface data perspective transformation
US5649080A (en) * 1992-06-05 1997-07-15 International Business Machines Corporation Apparatus and method for converting line segment data to three-dimensional data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4045789A (en) * 1975-10-29 1977-08-30 Atari, Inc. Animated video image display system and method
US4600200A (en) * 1982-01-14 1986-07-15 Ikegami Tsushinki Co., Ltd. Three-dimensional image display system
US4580782A (en) * 1982-10-29 1986-04-08 Sega Enterprises, Ltd. Memory mapping scheme for one-dimensional memory storage system
US4873585A (en) * 1984-09-07 1989-10-10 Ivex Corporation Method of selectively retrieving video images from a video reproducer for simulating movement
US5649080A (en) * 1992-06-05 1997-07-15 International Business Machines Corporation Apparatus and method for converting line segment data to three-dimensional data
US5561746A (en) * 1992-08-26 1996-10-01 Namco Ltd. Image synthesizing system with surface data perspective transformation

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10051298B2 (en) 1999-04-23 2018-08-14 Monkeymedia, Inc. Wireless seamless expansion and video advertising player
US9641644B2 (en) 2000-12-27 2017-05-02 Bradium Technologies Llc Optimized image delivery over limited bandwidth communication channels
US8434028B2 (en) 2001-12-14 2013-04-30 Apple Inc. System and method for integrating media objects
US7631277B1 (en) * 2001-12-14 2009-12-08 Apple Inc. System and method for integrating media objects
US9563202B1 (en) 2012-06-29 2017-02-07 Monkeymedia, Inc. Remote controlled vehicle with a head-mounted display apparatus
US9612627B2 (en) 2012-06-29 2017-04-04 Monkeymedia, Inc. Head-mounted display apparatus for navigating a virtual environment
US9579586B2 (en) 2012-06-29 2017-02-28 Monkeymedia, Inc. Remote controlled vehicle with a handheld display device
US9658617B1 (en) 2012-06-29 2017-05-23 Monkeymedia, Inc. Remote controlled vehicle with a head-mounted display
US9656168B1 (en) 2012-06-29 2017-05-23 Monkeymedia, Inc. Head-mounted display for navigating a virtual environment
US9782684B2 (en) 2012-06-29 2017-10-10 Monkeymedia, Inc. Remote controlled vehicle with a handheld display device
US9791897B2 (en) 2012-06-29 2017-10-17 Monkeymedia, Inc. Handheld display device for navigating a virtual environment
US9919233B2 (en) 2012-06-29 2018-03-20 Monkeymedia, Inc. Remote controlled vehicle with augmented reality overlay
US10596478B2 (en) 2012-06-29 2020-03-24 Monkeymedia, Inc. Head-mounted display for navigating a virtual environment
US11266919B2 (en) 2012-06-29 2022-03-08 Monkeymedia, Inc. Head-mounted display for navigating virtual and augmented reality
WO2016189368A1 (en) * 2015-05-25 2016-12-01 Yandex Europe Ag Method of and system for restoring of logical hierarchy of at least two two-dimensional objects

Also Published As

Publication number Publication date
AU4811597A (en) 1998-05-05

Similar Documents

Publication Publication Date Title
KR100727195B1 (en) Systems and methods for digital document processing
US20070229496A1 (en) Three-dimensional imaging system and methods
US6121970A (en) Method and system for HTML-driven interactive image client
US5515081A (en) System and methods for improved storage and processing of BITMAP images
JP4700423B2 (en) Common charting using shapes
US6177945B1 (en) Advanced graphics controls
US6348936B1 (en) Method and apparatus for graphical selection of data
US6911975B2 (en) Stereo image display apparatus and method, and storage medium
US20040250205A1 (en) On-line photo album with customizable pages
US5781189A (en) Embedding internet browser/buttons within components of a network component system
EP2464093B1 (en) Image file generation device, image processing device, image file generation method, and image processing method
US20060253796A1 (en) Size to content windows for computer graphics
US20010042078A1 (en) Systems and methods for digital document processing
CN101421761A (en) Visual and scene graph interfaces
US20100060652A1 (en) Graphics rendering system
GB2359469A (en) Efficient capture of computer screens
EP0972273A1 (en) Apparatus and method for applying effects to graphical images
JP2003521764A (en) Display graphic objects
KR20080042835A (en) Extensible visual effects on active content in user interfaces
US7460140B2 (en) Method and apparatus for displaying information and program and medium used therefor
US7954057B2 (en) Object movie exporter
WO1998015920A1 (en) Method of displaying three-dimensional images
Clark et al. Hypertext and multimedia enhancements to the TEX system
Yee et al. RadGSP: a medical image display and user interface for UWGSP3
Fahy et al. X window image extension standard: what it means to medical imaging

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH HU IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH KE LS MW SD SZ UG ZW AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA