CROSS REFERENCE TO RELATED CASEThis is a continuation-in-part of, and claims priority to and the benefit of, U.S. patent application Ser. No. 09/258,663, filed Feb. 26, 1999, the entirety of which is hereby incorporated herein by reference.[0001]
TECHNICAL FIELDThe present invention relates generally to obtaining a benefit for sending digital information over a communication network.[0002]
BACKGROUND INFORMATIONU.S. Pat. No. 4,940,972, describes displaying to a pilot of an aircraft a synthetic image of the ground terrain over which the pilot is flying. U.S. Pat. No. 5,566,073 describes allowing a pilot to preview a route either in flight or on the ground. The '073 patent also describes allowing the pilot to take over and try out different flight strategies. The data volume required to display flight routes in accordance with the above-mentioned patents is very large. The '073 patent describes representing the terrain as polygons in order to save computer storage space, but even so, the amount of storage on most home computers allows only a limited area and/or resolution level to be displayed. The '073 patent describes using a CD-ROM to store the required data, but the delivery of the CD-ROM to home users requires time and changes in the terrain (such as seasonal changes) can require frequent updates of the data on the CD-ROM.[0003]
SUMMARY OF THE INVENTIONIt is an object of some aspects of the present invention to provide methods and apparatus for displaying on a remote computer actual images of an area as seen from a viewpoint which is chosen interactively.[0004]
It is still another object of some aspects of the present invention to provide methods and apparatus for displaying on a client computer three-dimensional images stored in a remote server, which are conveyed to the client via a network, preferably the Internet.[0005]
It is still another object of some aspects of the present invention to provide methods and apparatus for streaming data required for rendering three-dimensional images on a remote computer.[0006]
In some embodiments of the present invention, a processor simulates traveling along a selected route. At substantially any viewpoint along the route, the processor displays the view seen from the viewpoint in three-dimensional real-life images. A user may select at substantially each point along the route the direction of view and may change the direction dynamically. Preferably, the user controls the speed of progress along the route and may stop the progress and/or reverse direction along the course.[0007]
Preferably, the user views the three-dimensional images without having to store a large database of images on the user's processor, and without requiring that the processor have an unusually large memory capacity. Rather, the user connects to a server, which stores all the required data, and the user's processor downloads the data dynamically according to the data required to display each specific scene. Preferably, the processor connects to the server via a communication link, such as the Internet. Preferably, the data is conveyed by a standard modem at sufficient speed for relatively smooth display of the images.[0008]
Alternatively or additionally, the required data is downloaded prior to the displaying of the scene, or the data is retrieved from a CD or other memory or storage apparatus associated with the processor.[0009]
U.S. patent application Ser. No. 08/939,948, which is assigned to the assignee of the present application and is incorporated herein by reference, describes a method of rendering three-dimensional terrain images. The method allows fast rendering of images by comparison with other methods known in the art. The method of U.S. patent application Ser. No. 08/939,948 uses a hierarchical database in which substantially each image is described in a plurality of blocks at different resolution levels. The blocks at lower resolution levels include less detail per unit area, while the blocks of higher resolution levels include more detail per unit area. The additional storage space required in order to store the additional data required due to the hierarchical structure is “paid back” in improved time performance of the rendering.[0010]
There is further provided in accordance with an embodiment of the present invention, a method of displaying three dimensional images, including establishing a communication link between a local processor and a server, transferring data blocks describing three-dimensional images over the communication link from the server to the local processor; and rendering a three-dimensional image at the local processor responsive to the data blocks.[0011]
There is further provided in accordance with an embodiment of the present invention, an apparatus for displaying three dimensional images, including a processor, a communication link between the processor and a server over which data blocks describing terrain are transferred, and a display on which the processor renders three-dimensional terrain images responsive to the data blocks.[0012]
In general, the invention relates to obtaining a benefit for sending digital information over a network. The digital information is representative of three-dimensional images which include photographic images. The receiving computer renders the images from the received digital information, and a viewer at the receiving computer can interactively choose a viewpoint or perspective to view the images on a display of the receiving computer. The benefit to the sender can be monetary compensation or increased recognition of the sender, for example.[0013]
In one aspect, the invention relates to a method of obtaining a benefit for sending digital information over a communication network. The steps of this method comprise: (A) providing at least one first database that includes digital information representative of three-dimensional images including photographic images, (B) receiving requests over the communication network for at least some of the digital information in the database, (C) sending the requested digital information over the communication network, and (D) receiving a benefit for sending the requested digital information.[0014]
In one embodiment, step (C) further comprises providing the digital information which is associated with at least one of a plurality of travel courses stored in a second database.[0015]
In some embodiments, the benefit includes monetary compensation (possibly derived from advertising) and/or increased recognition of an entity that performs steps (A), (B), and /or (C).[0016]
In some embodiments, the method further comprises providing at least one second database that includes digital information representative of a plurality of travel courses and each travel course is associated with at least some of the digital information stored in the first databases.[0017]
In one embodiment, step (C) further includes sending software to convert the requested digital information into the images.[0018]
In another aspect, the invention features a system for providing three-dimensional images. The system comprises at least one first database comprising digital information representing three-dimensional images including photographic images, an input module configured to receive requests over a communication network for at least some of the digital information in the first database, and an output module configured to send the requested digital information over the communication network. A benefit is received for using the system to send the requested digital information over the communication network using the system.[0019]
The system can further comprise at least one second database that includes digital information representative of a plurality of travel courses where each travel course is associated with at least some of the digital information stored in the first database. The output module can be configured to send software to convert the requested digital information into the three-dimensional images. The digital information included in the first database can be associated with at least one of a plurality of travel courses stored in a second database. The input module can comprise a software program running on a computer server, and the output module can comprise a software program running on a computer server.[0020]
In still another aspect, the invention relates to a system for sending digital information over a communication network. The system comprises a first database including digital information representative of three-dimensional images including photographs. The system also comprises a computer server in communication with the first and with the communication network and a client computer for allowing an end user to send requests over the communication network for at least some of the three-dimensional images and for allowing the end user to receive the digital information representing the requested three-dimensional images. The system also comprises an e-commerce business for receiving the end user's requests over the communication network and redirecting the end user's requests to the computer server so the computer server can send the digital information representing the requested three-dimensional images to the end user's client computer. The computer server comprises an input module configured to receive requests over the communication network for at least some of the digital information in the first database, and an output module configured to send the requested digital information over the communication network. An operator of the system receives a benefit for sending the requested digital information.[0021]
In all aspects and embodiments of the invention the benefit that is received for sending the requested digital information can include monetary compensation and/or increased recognition of the operator or other entity involved with sending the requested digital information over the communication network.[0022]
The present invention will be more fully understood from the following detailed description, including[0023]
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a schematic illustration of a system for obtaining compensation for sending information over a communication network in accordance with the present invention;[0024]
FIG. 2 is a schematic block diagram illustrating the data structure of images stored in a database on a pilot training server, in accordance with a preferred embodiment of the present invention;[0025]
FIG. 3 is a flow chart illustrating a method for preparation of a pilot training database, in accordance with a preferred embodiment of the present invention;[0026]
FIG. 4 is a schematic block diagram illustrating a flight course database on a pilot training server, in accordance with a preferred embodiment of the present invention;[0027]
FIG. 5 is a schematic block diagram illustrating a processor for viewing three-dimensional real-life terrain images, in accordance with a preferred embodiment of the present invention;[0028]
FIG. 6 is a schematic view of a viewpoint and a scene viewed therefrom, useful in understanding a method of displaying the selected route, in accordance with a preferred embodiment of the present invention;[0029]
FIG. 7 is a flow chart illustrating the actions of a cache manager while the processor of FIG. 4 displays a selected route, in accordance with a preferred embodiment of the present invention;[0030]
FIG. 8 is a schematic illustration of an image block from the data structure of FIG. 2, along with its ancestors, useful in understanding the flow chart of FIG. 8; and[0031]
FIGS. 9[0032]aand9bare flow diagrams illustrating obtaining a benefit for sending digital information over a communication network, in accordance with the present invention.
DESCRIPTIONFIG. 1 is a schematic illustration of a[0033]system300 for obtaining compensation for sending information over a communication network in accordance with the present invention. In FIG. 1, the disclosed embodiment of thesystem300 includes one or more computer servers26 (oneserver26 is shown), acommunication network306 such as the Internet or other computer network, at least oneimage database40, at least onecourse database60, at least one third-party electronic-commerce business or entity (e-commerce business)304, and at least oneclient computer310. Eachclient computer310 typically will include at least aprocessor20, avisual display22, and acommunication network interface24. Thee-commerce business304 includes one or more server computers for communication with the server(s)26 and the client computer(s)310, generally via thenetwork306. Thenetwork306 can include a variety of different and/or similar links including wireless links.
Digital information representing real-life three-dimensional images is stored in at least one of the[0034]image databases40, and digital information representing a travel course or route is stored in at least one of thecourse databases60. Real-life three-dimensional images are created by taking two-dimensional photographic images and, through the use of the rendering method described in U.S. patent application Ser. No. 08/939,948 or other software and/or rendering schemes/devices, rendering three-dimensional images such that the images include the photographic images. Thecomputer server26 is in communication with the image database(s)40, the course database(s)60, and thecommunication network306. Theclient computer310 is also in communication with thecommunication network306 via thecommunication network interface24. In one embodiment, thecommunication network interface24 is a standard 33,600 kilobyte per second modem. Other modems, faster or slower, may also be used. Additionally, other connections may be used for thecommunication interface24, such as ISDN connections or direct routers.
An end user uses the[0035]client computer310 to request real-life three-dimensional images which depict views of a user defined virtual travel course or which depict views of preset guided tour. The request is made by contacting ane-commerce business304 that is in communication with thecommunication network306. Thee-commerce business304 redirects the end user's request to thecomputer server26, typically in a way that is transparent to the end user. In response to the end user's request, thecomputer server26 retrieves the digital information representing the requested real-life three-dimensional images from theimage database40 that depict views of the user defined virtual travel course or which depict views of a preset guided tour. Thecomputer server26 transmits the requested digital information to thecomputer client310 via thecommunication network306. Theprocessor20 in thecomputer client310 receives the requested digital information and reconstructs the real-life three-dimensional images and displays them on thevisual display22.
Alternatively or additionally, the[0036]processor20 communicates with thecomputer server26 through a direct communication line. Further alternatively or additionally, theprocessor20 receives astorage disk28, such as a CD, from those who supply the real-life three-dimensional images or from any other distribution source.
The[0037]e-commerce business304 is also in communication with thecomputer server26, either directly or via thecommunication network306. In response to thecomputer server26 transmitting the user requested digital information to the end user, the entity that controls, operates, and/or owns thecomputer server26 and/or the data in thedatabases40,60 receives some benefit. The benefit may include, but is not limited to, monetary compensation, and/or increased recognition of the entity by the public or some group (including increased traffic to the entity's website).
FIG. 2 is a schematic illustration of the data structure of images stored in an[0038]image database40 residing on, or in communication with thecomputer server26, in accordance with a preferred embodiment of the present invention.Image database40 comprises a plurality of image blocks42, labeled42A,42B, etc., which contain data representing terrain in various areas as would be perceived from different heights. Preferably, substantially all of blocks42 are of the same data size. Preferably, the size of the blocks is determined according to the expected rate of transmission of data viamodem24, so that a block42 may be transmitted on the average within a predetermined amount of time, for example, half a second. In a preferred embodiment of the present invention, the blocks comprise 256×256 pixels, although the blocks may be of any other suitable size. Preferably, the blocks are divided intosub-blocks43 of smaller sizes, such that processors which work with slow modems may download small sub-blocks in case the entire block is not required. In a preferred embodiment of the present invention, each block42 is divided into sixteensub-blocks43 of 64×64 pixels. Each pixel is preferably represented by a color and an elevation attribute, as is known in the art. Blocks42 are preferably real-life images of terrain areas received from airborne or satellite cameras.
Preferably, each sub-block[0039]43 includes an attachment field in which additional optional data objects associated with the area covered by the sub-block are described. These objects preferably include, but are not limited to, labels, annotations, lines and 3D objects. Each object is preferably accompanied by coordinates which state the position of the object withinsub-block43. Preferably, the labels are stored in text format, the lines are stored as vectors, and the 3D objects are stored as polygons, although any suitable storage format may be used.
The objects may be used to represent existing structures which are not viewed sufficiently well when shown as part of the image. Alternatively or additionally, the structures may be used to overlay virtual structures on the terrain. For example, it is possible to add planned buildings to the terrain and thus see the effect of the buildings on the view. Further alternatively or additionally, the objects may be used to overlay map symbols and other markings on the terrain. The markings are preferably overlaid on the view at a constant size regardless of the resolution level of the terrain displayed.[0040]
Blocks[0041]42 are preferably stored in theimage database40 in a compressed form using any suitable compression method, such as JPEG. Blocks42 are classified in successive resolution levels44 labeled44A,44B, etc., according to the height from which they view the terrain and, therefore, the level of detail which they include. A plurality ofblocks42A which belong to thelowest resolution level44A, labeled “level 1,” cover the largest area per block and therefore have the least detail per area unit. It is noted that the size of the geographical area covered byblocks42A of “level 1” is dependent on the specific application of theimage database40 and may be very diverse. For example, in some flight applications, asingle block42A includes an image of the entire Planet Earth, while in an atom-simulation application, which shows the terrain of an atom, block42A shows the entire atom.Blocks42B of thenext level44B, labeled “level 2,” preferably cover a quarter of the area ofblocks42A of “level 1”. Thus, for substantially eachblock42A, there exist fourblocks42B which cover the same area. In a similar manner, each successive level44 comprises blocks42 which cover a quarter of the area of the blocks42 of the lower resolution level.
Four[0042]blocks55 of acertain level44C, which cover the same area as ablock57 of the precedinglevel44B, are referred to as descendants ofblock57. Conversely, block57 is referred to herein as the parent of blocks55. Theparent block59 ofblock57 is referred to herein as an “ancestor” ofblocks55, and is said to be of a lower resolution level than its descendants. It is noted that in FIG. 2, the lower resolution levels appear higher on the page.
Preferably, each block[0043]42 in theimage database40 includespointers52 to the four descendants of the block. If one or more of the descendants does not exist, a null pointer56 is preferably used. Preferably, aheader record54 comprises an index toblocks42A of “level 1” such that theprocessor20 can easily find theblock42A which covers a desired area.
The number of levels[0044]44 is dependent on the images input to thecomputer server26 and may differ for different areas of terrain. Thus, oneblock42A may have descendants up tolevel12, for example, while anotherblock42A may have no descendants. It is also noted that the number of descendants of each block42 may have a value different from four, for example nine, and may differ for different levels44.
Preferably, each block[0045]42 is referenced using longitudinal and latitudinal (x,y) coordinates of one of the points in the block, such as the top right corner pixel, together with the resolution level44 of the block.
FIG. 3 is a flow chart illustrating a method for preparation of the[0046]image database40, in accordance with a preferred embodiment of the present invention. Preferably, all the steps described in FIG. 3 are performed automatically by a processor (referred to herein as a Terra builder). The Terra Builder may prepare the images online provided the images are supplied at a sufficient rate. Alternatively or additionally, the Terra Builder operates together with a human operator to achieve better accuracy in the preparation of theimage database40.
Preferably, the Terra builder receives one or more images of a terrain area covered by the database[0047]40 (step200). The images are preferably received in a standard format, such as TIFF or bitmap. The images preferably cover adjacent areas or are partially overlapping. Some of the images may cover the same area at different levels of resolution.
The processor cuts the image up into blocks[0048]42 and assigns these blocks temporarily to the highest resolution level (step202). Blocks of lower levels of resolution are prepared by eliminating data from the original blocks (step204). Preferably, the blocks of lower resolution levels are prepared by decimation, for example, by eliminating odd (or even) rows and columns from the higher level blocks. Further preferably, the blocks are filtered using a low pass filter, most preferably before the decimation.
Thereafter, the blocks from different images are aligned relative to each other, based on the coordinates of the images and the meter-per-pixel resolution values of the images (step[0049]206). Preferably, the coordinates and meter-per-pixel values are received together with the images. Alternatively, an operator determines and inputs the coordinate correspondences and meter-per-pixel values by viewing the images. Further alternatively or additionally, the operator inputs the heights of the terrain for some or all of the pixels.
Blocks[0050]42 are then compressed, for example, using the JPEG compression method (step208). The operator may add labels, lines, virtual structures and other objects, before or after the compression (step210). Alternatively or additionally, the processor automatically derives such objects from the images. For example, the processor may identify roads and/or runways in the images and represent them as objects so that they appear more clearly in substantially any resolution of display.
It is noted that although the hierarchical structure of the[0051]image database40 requires extra storage space, relative to a non-hierarchical record of the terrain, the advantages of the hierarchical structure justify the extra storage space required. The use of the hierarchical structure allows faster rendering of the images on thevisual display22 and allows fast download of required images at low resolution levels. Optionally, in order to reduce storage requirements, some of blocks42 are stored only in some of resolution levels44, and when non-existent resolution levels are required,computer server26 generates the required block from a descendant block of a higher resolution level.
Preferably, the user of the[0052]processor20 on theclient computer310 is able to add virtual structures and/or other objects to the terrain described bydatabase40, while viewing the terrain. Preferably, a file stored locally on theprocessor20 stores descriptions of the virtual structures added by the user of theprocessor20.
FIG. 4 is a schematic block diagram illustrating an example of a course stored on a[0053]course database60 residing on or in communication with thecomputer server26, in accordance with a preferred embodiment of the present invention. Preferably, thecourse database60 includes acatalog file62, which lists all the available routes stored in thecourse database60. For each route, thecourse database60 preferably includes alist64 of three-coordinatepoints66 which describe the route. The three coordinates preferably represent longitudinal, latitudinal, and height coordinates of the points along the course, as are known in the art of terrain mapping. Preferably,list64 also includesspeed settings68, and/or other flight-relevant data.
The routes in the[0054]course database60 preferably include routes terminating in landings at various airports. Using these routes, pilots may become familiar with airports to which they are scheduled to fly. Alternatively or additionally, thecourse database60 includes routes of flight through difficult access areas, such as deep canyons in which helicopters need to fly. Further alternatively or additionally, thecourse database60 may include routes for training military pilots in approaching a required target. Further alternatively or additionally, thecourse database60 may include land routes through buildings, town, cities, and/or countries
It is noted that other scenarios may be included in the[0055]course database60, such as online images from an area of interest. For example, a route may be used to display a car race, and thepoints66 describing the route may be received online using a GPS from one of the cars in the race. The cars are preferably superimposed on the images, using methods known in the art. A user watching the race on a home computer may select any viewpoint of interest and is not limited to pre-chosen viewpoints selected by others. The user requested real-life three-dimensional images received by theclient computer310 arrive in the form of a stream of digital data. In order for the images to be viewable on thevisual display22, they must be reconstructed from the stream of digital data by theprocessor20 on theclient computer310.
FIG. 5 is a schematic block diagram of the[0056]processor20 on theclient computer310, in accordance with a preferred embodiment of the present invention. The blocks are preferably realized as software processes running on a general-purpose microcomputer, although dedicated hardware realizations are also possible. Preferably, theprocessor20 comprises anavigator70, which keeps track of a viewpoint of a virtual viewer. The viewpoint preferably follows a predetermined course which a user ofprocessor20 is supposed to follow. Preferably, the course is received fromcourse database60.
Preferably, the[0057]navigator70 sets a default view direction of the viewpoint in the direction of movement along the course. Alternatively, the default view direction is set directly down towards the terrain. The user may change the view direction of the viewpoint without moving out of the course. Therefore, there is no compulsory correlation between the flight direction and the view direction. Preferably, the user may change the speed of motion along the course. Further preferably, the user may move the viewpoint out of the course in order to view the area around the predetermined course, or to try to find a better course. Preferably, the user controls the direction, speed, altitude and/or any other parameter of the viewpoint. Specifically, the user may freeze the viewpoint in order to have a better look at the view from a certain point or angle.
The[0058]processor20 preferably further comprises arenderer72, which calculates the view from the viewpoint and continuously renders the view on thevisual display22. Therenderer72 determines the coordinates of the pixels it needs in order to render the view and requests the descriptions of these pixels from acache manager74. Preferably, therenderer72 determines which blocks42 and/orsub-blocks43 include the required pixels. Alternatively, thecache manager74 determines the identity of the required blocks42 and/orsub-blocks43. Along with each required pixel, block42, orsub-block43,renderer72 preferably states the resolution level44 at which the block is required. The resolution level is preferably determined based on the distance between the viewpoint and the desired pixel or block42. Further preferably, the resolution level is also dependent on the number of pixels in the image displayed on thevisual display22. Preferably, the resolution levels are chosen so that an approximate 1:1 ratio is achieved between the number of displayed pixels and the number of data pixels. Preferably, therenderer72 also overlays the objects associated with the renderedsub-blocks43.
Preferably,[0059]cache manager74 manages a group of blocks42 and/orsub-blocks43 in acache memory32 of theprocessor20, for example in the main memory of theprocessor20, in accordance with a method described hereinbelow. Alternatively or additionally, thecache memory32 is defined in a local hard disk associated with theprocessor20. Thus, even if theprocessor20 is shut down, the renderer can immediately resume operation when theprocessor20 is turned on again, at the point it left off, without downloading the data again from thecomputer server26. Further alternatively or additionally, theprocessor20 determines areas which are most commonly visited by the user of theprocessor20, and blocks42 from these areas are permanently stored in the local hard disk of theclient computer310. One such preferred application involves positioning theprocessor20 within a ground vehicle in order to view the surroundings of the vehicle. Since the vehicle is usually located in the same area, the required download time may be reduced substantially.
It is noted that the term cache memory is used herein generally to refer to any relatively small memory which can be accessed rapidly by the[0060]processor20 and is used to save data which is most likely to be used by theprocessor20.
The[0061]cache manager74 downloads from thecomputer server26 the blocks42 and/orsub-blocks43 required byrenderer72, if they are not already stored incache memory32, and meanwhile provides replacement blocks from the cache memory. Preferably, thecache manager74 references blocks42 on thecomputer server26 by providing pointers to the required blocks. Thecache manager74 has the pointers for the lowest resolution level blocks42A fromheader record54. The pointer to a desired block42 of any other level44 is preferably taken from the parent block of the desired block, as described above. Therefore, as described hereinbelow, thecache manager74 preferably always requests that thecomputer server26 send a block42 after the cache manager has received its parent block.
As previously stated, after the end user requests a real-life three-dimensional image from an[0062]e-commerce business304 via theclient computer310, the request is redirected by thee-commerce business304 to thecomputer server26. Preferably, theprocessor20 on theclient computer310 establishes one ormore communication connections76 with thecomputer server26 through which blocks42 are sent to theprocessor20.Connections76 are preferably standard TCP connections as are known in the art, although any other protocol may be used to form the connection. Preferably, whenconnections76 are not in use bringing blocks42 required by therenderer72, thecache manager74 downloads blocks in the area of the viewpoint to fillcache memory32. Preferably, thecache manager74 attempts to fillcache memory32 with a sufficient number of blocks, such that for any view direction of the current viewpoint, all blocks42 required by therenderer72 are stored incache memory32. Preferably, thecache manager74 stores incache memory32 the same number of blocks42 in each resolution level44. Preferably,cache memory32 stores, for each resolution level44, between9 and36 blocks, which are most preferably organized in a square centered directly below the location of the viewpoint. In a preferred embodiment of the present invention,cache memory32 stores sixteen blocks42 organized in a square for each resolution level44. Blocks42 are preferably chosen such that the viewpoint is closest to the center of the square, most preferably, as described in the above-mentioned U.S. patent application Ser. No. 08/939,948.
Preferably, blocks[0063]42 are stored incache memory32 in the compressed form in which they are received from thecomputer server26. Further preferably, thecache manager74 decompresses the blocks before they are provided to therenderer72. Preferably, thecache manager74 manages, in addition tocache memory32, anopen cache memory34 in which blocks42 and/orsub-blocks43 which were decompressed are stored. Preferably,open cache memory34 is of a size determined according to the amount of available empty storage space on the memory associated with theprocessor20 and/or the size of the image rendered on thevisual display22. Preferably, the user of theprocessor20 may adjust the size ofopen cache memory34 in order to achieve maximal rendering speed by saving the time required for decompression. In a preferred embodiment of the present invention,open cache memory34 has a default size sufficient to store a few hundred decompressedsub-blocks43.
Preferably, when[0064]open cache memory34 is full, a least recently used (LRU) method is used to determine which sub-block43 is to be discarded to make room for a new sub-block. A preferred LRU method is described in the above-mentioned 08/939,948 patent application. Alternatively or additionally, any other suitable method of memory management may be used to managecache memory32 and/oropen cache memory34.
The[0065]renderer72 uses blocks42 fromcache manager74 to render the required view ondisplay22. Preferably, when thecache manager74 provides a block42 of a lower resolution level than that requested by therenderer72, therenderer72 uses the provided block to interpolate a higher resolution-level block. Preferably, the higher resolution-level block is interpolated using any method known in the art, such as bilinear, fractal, or texture blending.
When the[0066]cache manager74 finishes downloading an additional block of a higher resolution level from thecomputer server26, the block is provided to therenderer72, which updates the rendered view accordingly. Preferably, when the viewpoint is in motion, therenderer72 updates the view at least ten times per second so that the user has a perception of constant movement, although other rates of update may also be used. Preferably, therenderer72 renders the view each time from scratch without using previously-rendered views.
Preferably, the[0067]renderer72 is as described in the above mentioned U.S. patent application Ser. No. 08/939,948. Alternatively or additionally, therenderer72 may operate in accordance with any other method known in the art. Therenderer72 is preferably implemented entirely in software. Alternatively, therenderer72 includes a dedicated hardware processor, such as a 3D graphic accelerator, along with a software package running ongeneral purpose processor20 which provides blocks42 to the dedicated hardware processor.
FIG. 6 is a schematic view of a[0068]viewpoint80 and ascene82 viewed therefrom, used to explain the operation of therenderer72, in accordance with a preferred embodiment of the present invention.Scene82 includesareas84 close toviewpoint80, for example 1 kilometer from the viewpoint.Other areas86 ofscene82 are far away fromviewpoint80, for example, 50-100 kilometers away. Stillother areas85 ofscene82 may be at other distances fromviewpoint80. In order to build a real life image of the view fromviewpoint80, therenderer72 needs blocks42 from a high resolution level44 ofarea84, such that a group ofbuildings88 inarea84 are seen in the image as they would be seen from 1 kilometer away. However, forarea86, therenderer72 needs only a low resolution level block42 since a group ofbuildings90 inarea86 would not be seen fromviewpoint80.
Preferably, the[0069]renderer72 determines the exact blocks needed and calls for them using their (x,y) coordinates and their resolution level44. Alternatively or additionally, therenderer72 specifies, for each resolution level44, the coordinates of the boundaries of the necessary areas, and thecache manager74 determines the identities of the required blocks42. Preferably, when only a small part of a block42 is required, thecache manager74 orders only the requiredsub-blocks43 in order to save transmission time. On the average, rendering a view image requires between about20 and200sub-blocks43 of various resolution levels44.
FIG. 7 is a flow chart illustrating the actions of the[0070]cache manager74 in displaying a selected route by theprocessor20, in accordance with a preferred embodiment of the present invention. After downloading the first batch oflevel1 blocks, as indicated inblock102, thecache manager74 moves into a wait state, as indicated byblock100.
Reference is also made to FIG. 8, which is a schematic illustration of a block[0071]150 (corresponding either to one of blocks42 or one of sub-blocks43) requested by therenderer72, andancestors152,154 and158 of the requested block. When a request forblock150, identified as “x,” and having resolution level N. is received from therenderer72, thecache manager74 determines, as indicated in block104 (FIG. 7), the level j of the highest resolution-level ancestor of block x stored incache memory32. If the block42 itself is stored in cache memory32 (i.e., j=N), the block is provided torenderer72. Otherwise, the highestresolution level ancestor152 of block x which is stored incache memory32 is provided to therenderer72, as indicated inblock106. As described hereinbelow, thecache manager74 downloads the rest of theancestors158 of block x from thecomputer server26 in order of increasing resolution levels, as indicated by anarrow156 in FIG. 8. As the blocks are received from thecomputer server26, they are supplied to therenderer72 so that the user sees an image whose resolution increases with time.
Thus, if[0072]viewpoint80 is not changed, or is changed relatively slowly, the resolution level of the images displayed by therenderer72 is slowly increased until the maximal desired resolution is reached. Naturally, if theimage database40 does not include blocks at a desired level of resolution for a certain area, the last block supplied is of the highest existing level of resolution for that certain area.
If no ancestor of block x is found in memory[0073]32 (an eventuality not shown in the figure), thelevel1ancestor154 of the block is ordered from thecomputer server26, based on the pointer to thelevel1 ancestor block inheader record54. While waiting for the ordered block,renderer72 preferably renders a blank block to the display. Alternatively,renderer72 waits untillevel1ancestor154 is received. However, it is noted that such cases are very rare, sinceblocks42A oflevel1 cover very large areas, and usually, blocks42A adjacent to the block in use are also downloaded and stored incache memory32.
If block x itself was not found in[0074]memory32, thecache manager74 adds to a download queue the block x and all itsancestors158 of resolution levels higher than level j, as indicated byblock108. If allTCP connections76 available toprocessor20 are in use, thecache manager74 returns to waitstate100 until one ofconnections76 is available. If one ofconnections76 is available the newly added blocks to the queue are immediately ordered. Preferably, thecache manager74 proceeds to send a download order to thecomputer server26 for the lowest resolution-level block in the download queue, as indicated byblocks112,114,116 and118. Alternatively or additionally, the download queue is managed by thecomputer server26.
Preferably, if more than one block of the lowest resolution level is in the queue, the last entered block is downloaded (so long as the block is still within range, as described hereinbelow). The downloaded block is thereafter removed from the queue, either when the download order is sent as indicated in[0075]block120, or when the block has been completely received. Thecache manager74 preferably moves back towait state100 to wait for the completion of the downloading of the block.
Preferably, before a download order for block x is sent to the[0076]computer server26, thecache manager74 checks whether the block is still needed, as indicated byblock116. Most preferably, thecache manager74 checks whether the block is within a range of the current viewpoint such that it would meet the criteria for thecache manager74 to order it for download tocache memory32. If block x is not within the range of the current viewpoint, the block is not useful for therenderer72 and is therefore not downloaded. This situation may occur when the viewpoint has changed substantially since block x was put into the download queue. Alternatively or additionally, thecache manager74 scans the download queue periodically for block orders which are not currently useful and must be erased from the queue.
When one of[0077]TCP connections76 notifies thecache manager74 that the transfer of a block Y has been completed, thecache manager74 checks whether the block is currently needed by therenderer72, as indicated byblock122. Preferably, thecache manager74 queries therenderer72 regarding each received block as to whether therenderer72 currently needs the block. Alternatively or additionally, thecache manager74 maintains a list of blocks for which download orders were sent, and therefore are needed by therenderer72. Preferably, therenderer72 notifies thecache manager74 of blocks it requested and did not receive and which it does not need any more. Alternatively, each order from therenderer72 to thecache manager74 includes all the blocks it needs, and any blocks not in the order are not needed.
If[0078]renderer72 needs the downloaded block (i.e., it was not ordered solely to fillcache memory32, as described hereinbelow), it is passed to therenderer72, as indicated byblock124. Preferably, all the received blocks are stored incache memory32 for later use, as indicated byblock126. Ifcache memory32 is full, a block beyond the predetermined range from the current viewpoint is discarded, as indicated byblock128. Preferably, the discarded block is the least recently used block which is beyond the predetermined range. Alternatively, the discarded block is chosen from the highest resolution level for which there are blocks beyond the predetermined range.
After downloading of a block has been completed, one of[0079]connections76 is necessarily not in use. If the download queue is not empty, a block from the queue is downloaded as described hereinabove and indicated inblocks112,114,116 and118. However, if the queue is empty, thecache manager74 fillscache memory32 with the blocks within the range of the current viewpoint, so that, for any direction of view from the current viewpoint, there is no need to download further blocks from thecomputer server26.
Preferably, the next block downloaded for filling[0080]cache memory32 is from the lowest resolution level for which all the blocks in the range of the viewpoint are not already in the cache memory, as indicated inblock130. Further preferably, thecache manager74 first downloads the eight blocks surrounding the block which is directly below the current viewpoint. Alternatively or additionally, the blocks are ordered according to the current view direction of the viewpoint.
FIGS. 9[0081]aand9bare flow diagrams illustrating a method for obtaining a benefit for sending information over a communication network, in accordance with an embodiment of the invention. Referring to FIGS. 9aand9b, the end user first uses theclient computer310 containing theprocessor20 to connect to thecommunication network306 via the communication network interface24 (step400). After this connection is established, the end user establishes communication with ane-commerce business304 that is also in communication with the communication network306 (step402). The connection with thee-commerce business304 can be established through the use of a communication network browser program that is executed by theprocessor20 on theclient computer310. Examples of satisfactory communication network browser programs include, but are not limited to, Netscape Navigator and Internet Explorer.
After the connection with an[0082]e-commerce business304 is established, the end user either makes a request for real-life three-dimensional images that depict views of a user defined virtual travel course (step404) or the user makes a request for real-life three-dimensional images that depict views of a preset guided tour (step420). If the end user's request is for the real-life three-dimensional images that depict views of a user defined travel course, the request is redirected by thee-commerce business304 to the computer server26 (step406). When thee-commerce business304 redirects the user's request, it sends digital information representing the user defined travel course and overlay data to thecomputer server26. The overlay data can include, but is not limited to, digital information representing things such as labels, three-dimensional objects, and billboards. This overlay data can be inserted into the views along the user defined travel course. The user defined travel course information and the overlay data, once received by thecomputer server26, are converted by thecomputer server26 into a format that is compatible with thenavigator70 running on theclient computer310.
Upon redirection, the[0083]processor20 on theclient computer310 established communication with the computer server26 (step408). Preferably, if theprocessor20 is accessing thecomputer server26 for the first time, thecomputer server26 sends the processor20 a software package which includes thenavigator70, therenderer72 and the cache manager74 (step410). The software package can be in the form of an ActiveX plug-in sent to the communication network browser running on theprocessor20. Alternatively or additionally, the user of theprocessor20 may receive the software package on a compact disk (CD) or on any other storage media. Preferably, the software package is stored on theclient computer310 so that the package need be sent only once.
Thereafter, the[0084]computer server26 sends the user defined virtual travel course information and overlay data to thenavigator70, preferably using one or more of TCP connections76 (step412).
Alternatively, if the end user's request is for a preset virtual guided tour from the e-commerce business[0085]304 (step420), the e-commerce business determines if the proper software (navigator70,renderer72 and cache manager74) is running on the processor20 (step422). If this software is not present onprocessor20 thee-commerce business304 redirects theclient computer310 to theserver26 to download the software (step424). If the software is already present onprocessor20 or after the software is downloaded toprocessor20, the e-commerce business sends the properly formatted preset virtual guided tour course information and overlay data directly to the client computer310 (step426). In a preset virtual guided tour, the user has the option of following the downloaded preset tour course or navigating freely along any alternate user defined travel course.
After the user defined travel course information or the virtual guided tour information is received by the[0086]processor20, thenavigator70 begins to run on the downloaded course. Concurrently, thecache manager74 is ordered to download one or more, preferably four,level1blocks42A surrounding the starting point of the route from theimage database40 that is in communication with the computer server26 (step414). Thus, thecache manager74 will have inlocal cache memory32 images of a very large area surrounding the starting point. Thecache manager74 can therefore provide to therenderer72 images which cover substantially any area, even if only at a low resolution level initially. Therenderer72 then reconstructs the images and sends them to the visual display22 (step416). Alternatively or additionally, the user may choose to begin a tour at a specific location, without referring to a specific route.
The user is able to decide whether to display some or all of the objects associated with the database. Thus, the user may request to view only the images without any of the objects, or to see only objects which represent existing structures. The user is able to request to view the images with or without labels. Thus, on a first visit to a new area, the user may view the area with labels which allow easy acquaintance with the area, while at a second visit, the user may omit the labels in order to test whether he/she has properly memorized the important labeled landmarks. Preferably, the user is able to switch between viewing the terrain with and without the objects, so that, for example, the user may easily compare the view of a desired area with and without a group of planned structures.[0087]
In response to the[0088]computer server26 transmitting the digital information representing real-life three-dimensional images to an end user, the entity that controls, operates, and/or owns theserver26 and/or the data in thedatabases40,60 receives some benefit (step418). The benefit can include, but is not limited to, monetary compensation and/or increased recognition of the entity by the public or some group (including increased “traffic” or “hits” to the entity's web site). The monetary compensation can be provided to the entity by thee-commerce business304 or by some other company such as an advertiser associated with the entity, in that the entity includes the advertiser's advertisements within the images sent by the entity to the end user.
Alternatively, an end user can connect to the[0089]computer server26 to request real-life three-dimensional image depicting views of preset virtual guided tours. The end user uses theclient computer310 to establish a connection with thecomputer server26. Thecomputer server26 sends thecatalog62 and/or theheader record54 to theprocessor20. The end user of theprocessor20 chooses a desired route from thecatalog62, and thenavigator70 downloads the route from thecourse database60 that is in communication with thecomputer server26. Thenavigator70 then begins to run on the downloaded course as describe hereinabove.
It will be appreciated that the above-described embodiments relate to displaying three dimensional real-life images. A variety of embodiments and uses are within the scope of the invention including, but are not limited to, displaying of terrain for purposes of real estate trading, travel, education and amusement uses, in which the terrain may be shown at various levels of detail. Furthermore, the terrain is not limited to the Earth or parts thereof, and may cover other planets (real or virtual) and/or 3D views of surfaces of real or imaginary objects, such as views showing the atomic structure of a material, and the like. In addition, the data streaming methods of the present invention may be used to convey large databases of data which are to be displayed graphically, such as in graphic displays of stock values. It also will be appreciated that the embodiments described above are cited by way of example, and the full scope of the invention is limited only by the claims.[0090]