US7631277B1 - System and method for integrating media objects - Google Patents

System and method for integrating media objects Download PDF

Info

Publication number
US7631277B1
US7631277B1 US10/022,151 US2215101A US7631277B1 US 7631277 B1 US7631277 B1 US 7631277B1 US 2215101 A US2215101 A US 2215101A US 7631277 B1 US7631277 B1 US 7631277B1
Authority
US
United States
Prior art keywords
request
virtual reality
reality scene
media object
scene
Prior art date
Legal status (The legal status 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 status listed.)
Active, expires
Application number
US10/022,151
Inventor
Xiaochun Nie
Christopher L. Flick
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Priority to US10/022,151 priority Critical patent/US7631277B1/en
Assigned to APPLE COMPUTER, INC. reassignment APPLE COMPUTER, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FLICK, CHRISTOPHER L., NIE, XIAOCHUN
Assigned to APPLE INC. reassignment APPLE INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: APPLE COMPUTER, INC.
Application granted granted Critical
Priority to US12/633,774 priority patent/US8434028B2/en
Publication of US7631277B1 publication Critical patent/US7631277B1/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Definitions

  • This invention relates to the field of application program interfaces for supporting media objects. More specifically, the invention relates to a system and method for integrating media objects for viewing on and manipulation via a computing device such as a personal computer.
  • Computers and other processor based devices handle many kinds of data.
  • Various kinds of data may be accessed by computers, including two-dimensional (2D) objects and 2D virtual reality enhanced images having three-dimensional (3D) properties.
  • Operating systems provide utilities which may be used by application programs for various purposes, including the low-level handling of media objects. Many operating systems do not provide more than rudimentary support for the handling of 2D media objects and do not generally support enhanced 2D media objects. Additional utilities may be provided via application program interfaces commonly referred to as APIs.
  • Some extensions to operating systems may provide the facility to separately view various kinds of 2D media objects.
  • One such operating system extension is the QuickTime® System from Apple Computer, Inc. of Cupertino, Calif.
  • the ability to integrate multiple 2D media objects and 3D enhanced 2D objects into a scene having 3D properties and to then manipulate the scene and the objects is not provided in current operating systems and operating systems extensions.
  • FIG. 1 illustrates a personal computing device and environment in which the embodiments of the method and system described herein may be implemented.
  • FIG. 2 illustrates the flow of actions taken according to an embodiment of a method to integrate media objects into a scene.
  • FIG. 3 illustrates a three-dimensional graph showing the effects of rotating an object or scene about each of three axes.
  • FIG. 4A illustrates a camera and its coordinate system in relation to a subject and its image frame.
  • FIG. 4B illustrates an object coordinate system superimposed in a scene coordinate system.
  • FIG. 5A illustrates a first object
  • FIG. 5B illustrates a second object
  • FIG. 5C illustrates an example viewable scene that includes a first object integrated with a second object.
  • FIG. 5D illustrates an example viewable scene that includes a first object integrated with a second object after the field of view of the scene has been by zooming in.
  • FIG. 5E illustrates an example viewable scene that includes a first object integrated with a second object after the scene has been panned to the left.
  • FIG. 5F illustrates an example viewable scene that includes a first object integrated with a second object after the scene has been panned to the right.
  • the invention described herein provides various embodiments of a method and system for integrating two-dimensional (2D) and three-dimensional (3D) media objects for viewing on and manipulation via a computing device such as a personal computer.
  • a computing device such as a personal computer.
  • the various embodiments of the system and method described herein may be implemented as an application program interface (API) which allows application programs to take advantage of the features of the method and system for integrating 2D and 3D media objects described herein.
  • API application program interface
  • the various embodiments of the system and method described herein may be incorporated as part of an operating system or provided as an extension of an operating system which exists between the operating system and application programs.
  • FIG. 1 illustrates a personal computing device and environment in which the embodiments of the method and system described herein may be implemented.
  • Computing device 100 may be any computing device that can execute software programs, including, but not limited to, personal computers, servers, cellular telephones, computer tablets, personal digital assistants, portable computers, computer workstations, etc.
  • Computing device 100 may comprise a processor 110 to execute software programs.
  • Processor 110 may be any computer processor known to those skilled in the art. Although only one processor is shown, two or more processors may be included in computing device 100 .
  • processor 100 utilizes memory 112 .
  • Memory 112 may be any form of random access memory (RAM) known to those skilled in the art.
  • Information is read from and written to storage device 120 .
  • RAM random access memory
  • Storage device 120 may be any kind of machine readable medium including, for example, magnetic media such as disk drives and magnetic tape; optical drives such as compact disk read only memory (CD-ROM) and readable and writeable compact disks (CD-RW); stick and card memory devices; ROM, RAM, flash memory devices and the like; whether internal, such as storage device 120 and, in other embodiments, directly coupled, accessible locally or remotely via network 170 , and accessible via electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.) via network access device 162 .
  • network access device 162 may be a modem, network interface unit, or other communications device that allows for communication with other computing devices, such as remote computing device 180 .
  • Personal computer 100 may include graphics controller 132 that allows for the display of information such as text and graphics on display monitor 134 .
  • Graphics controller 132 may be any graphics controller known to those skilled in the art
  • display 134 may be any display monitor known to those skilled in the art, including, for example, a cathode ray tube (CRT) display monitor and thin film transistor (TFT) display screen.
  • Personal computer 100 may also include audio controller 136 to which speakers 138 may be coupled.
  • Personal computer 100 may play audio including music, voice, and synthesized sound to a user of the personal computer via audio controller 136 and speakers 138 .
  • Audio controller 136 may be any audio controller that may be compatible with the Sound Blaster® de facto standard popularized by Creative Technology Ltd. of Singapore and that may support 3D audio.
  • a user may access computing device 100 via any input device known to those skilled in the art, such as, for example, keyboard 144 , mouse 146 , track ball (not shown), keypad (not shown), pen and tablet (not shown), etc.
  • I/O controller 142 may be a universal serial bus (USB) controller and the input devices may be USB enabled.
  • USB universal serial bus
  • Bus 150 may be any bus known to those skilled in the art. Although only one bus is depicted, multiple buses may be used in computing device 100 . In addition, other components and controllers known to those skilled in the art (not depicted) or multiple instances of depicted components and controllers may be included in computing device 100 .
  • the methods described herein may be implemented as software and stored for execution on storage device 120 of computing device 100 as media processing software (MPS) 124 .
  • the MPS may be a suite or group of software functions, programs, routines, etc. that provide data structure definitions and serve as an API to application programmers.
  • the MPS may rely on and utilize functions and features made available by operating system 122 .
  • Operating system 122 may be stored on storage device 120 or another local or remote storage device. Operating system 122 may be any well known or proprietary operating system, such as, for example, Mac OS X available from Apple Computer, Inc. of Cupertino, Calif.
  • the MPS may be incorporated as part of an operating system.
  • the MPS may exist as hardware or as a combination of hardware and software.
  • the system and method described herein rely on and have available to them an existing set of support tools in the form of a library of functions comprising an API that provides for the manipulating, rendering and display of various 2D and 3D objects and, in some embodiments, for the rendering of stereo and/or 3D audio.
  • An example of such a set of APIs and tools are those available in the QuickTime® 5 cross-platform multimedia software developer's toolkit available from Apple Computer, Inc. of Cupertino, Calif., such as API tool set may support the OpenGL graphics API. (See The OpenGL® Graphics System: A Specification , version 1.3, available from Silicon Graphics, Inc. of Mountain View, Calif.)
  • the system and method described herein allow for the integrating, compositing or combining of two or more kinds of 2D and 3D objects into a scene.
  • the scene is said to include various scene objects.
  • a soundtrack may be associated with a scene.
  • a soundtrack may be included with an object such that when an object is activated by a user such as by a mouse click, the soundtrack is played.
  • the location of the audio associated with the object may be changed to reflect the manipulation and position in the 3D scene. That is, for example, the audio may be rendered to be played from left to center to right as an object is dragged across a scene.
  • the soundtrack may be stored according to any well-known format such as, for example, the audio interchange file format (AIFF), Moving Picture Experts Group audio level 3 (MP3) format, and wave format (WAV).
  • AIFF audio interchange file format
  • MP3 Moving Picture Experts Group audio level 3
  • WAV wave format
  • the MPS may play the soundtrack by invoking a library function, an operating system utility, or a stand-alone audio application program.
  • the location and perspective from which a user may view the scene may be defined by what is referred to as a scene camera and may also be referred to as a camera view.
  • multiple scene cameras for a scene may be supported such that a user may switch back and forth between two, and in other embodiments, more, scene cameras.
  • multiple formats of 2D and 3D objects may be supported including, for example, OpenGL3D.
  • An example of a 2D media object is a bitmap image which, in one embodiment, may be known as a sprite.
  • the source for a sprite can be a single bitmap, a bitmap image sequence, a vector image, a video track, a live stream, or a source specified by a uniform resource locator (URL).
  • 3D media objects include object movies and OpenGL 3D objects.
  • Object movies are not truly movies and are not truly 3D, but they are an enhanced form of 2D having some 3D properties. Although not truly 3D entities, object movies and other similarly enhanced 2D objects will be referred to as 3D objects and as enhanced 2D objects herein.
  • Object movies are created by photographing or rendering a series of views of the subject at carefully spaced angles of tilt and rotation and assembling the images. In one embodiment, each view of the subject in an object movie is a still image.
  • one or more views of the subject of an object movie may be a video clip or animation.
  • an object movie may be created by photographing a series of images of an object as the object is rotated on a platter along different axes.
  • the series of images comprising an object movie may be captured when rotating a camera from around the object along different axes from a fixed distance.
  • FIG. 2 illustrates the flow of actions taken according to an embodiment of a method to integrate 2D and 3D objects.
  • the MPS may receive a request to create a new scene, as shown in block 210 .
  • This request is in the form of a function call from an application program written according to the MPS API.
  • the MPS then receives a request to add an object to the scene, as shown in block 212 .
  • the MPS processes the object to create a scene object, including adding 3D properties to the scene object and setting the orientation and translation of the scene object with respect to the scene, as shown in block 214 .
  • blocks 212 and 214 are repeated.
  • the MPS may receive a request to build a camera view of the scene and may build the requested camera view, as shown in block 218 . If more camera views are to be added for the scene, as shown in block 220 , block 218 is repeated until no further camera views are to be added and built.
  • the opening scene will then be rendered and displayed to a user by the MPS invoking an application supplied callback routine and/or calling one or more appropriate library functions, as shown in block 222 .
  • the opening scene may be set by a special API, may be set by a variable or argument passed with the create scene API, or may be system chosen according to default requirements.
  • the MPS invokes the callback routine which in turn calls one or more library functions. In another embodiment, the MPS may directly call the library functions, and may then invoke the callback routine.
  • the scene manager maintains pertinent data about each object, the relationship of each object to the other objects, and the relationship of each object to the scene, including layering data. It is the layering data which may be used to determine which objects are in front of other objects, and consequently, which objects are background and foreground.
  • each object may also include opacity data.
  • opacity data may be included in an alpha channel associated with the objects.
  • degrees of opacity may be supported, including, for example, fully transparent, half transparent, and varying degrees of transparency.
  • the MPS calls library functions to display each of the objects in the scene.
  • the MPS maintains the position of each object relative to the scene and maintains the camera view relative to the scene.
  • the camera view or scene camera is actually the point and perspective from which a user will view a display of the scene.
  • the user is provided the opportunity to control the view of the scene such as by panning to the left and right, tilting up and down, and zooming in and out.
  • the user may also, in some embodiments, be able to change the point of view, also referred to as the point of reference.
  • the MPS may receive user input, which may, in one embodiment, be in the form of mouse movement and mouse click as well as keyboard input, changing the camera view, changing the object selected, manipulating the object, manipulating the scene, and/or manipulating the scene camera, as shown in block 224 .
  • object selection in some embodiments, the user may be provided the ability to select which of the objects in the scene should be a current primary object or focal point.
  • the MPS Upon receiving user input, the MPS then invokes an application program supplied callback routine and/or calls one or more appropriate library functions to achieve the user requested change or manipulation and to render and display the resulting scene, as shown in block 226 .
  • calls to the library functions may be made by the callback routine, and, in other embodiments, may be made by the application program in response to the callback routine.
  • the MPS may call one or more appropriate library functions, and may then invoke the callback routine. The user may continually navigate within a scene to view as much as the scene as is desired. As such, flow then continues at block 224 , and may continue in a loop until the program is exited.
  • FIG. 3 illustrates a three-dimensional graph showing the effects of rotating an object or scene about each of three axes.
  • Each of the objects which may be combined into a scene has its own object coordinate system in 3D space which is translated into the scene coordinate system by a translation vector. Traversing a scene such as by panning, or changing a user's view of the scene to the left or the right, will result in corresponding panning of an object contained in the scene including changes to the position and orientation of the object with respect to the scene. Panning requires that the scene be rotated about the scene's y-axis, as shown by reference number 310 .
  • each object or the image frames representing each object are correspondingly panned by the MPS by calling a function or tool provided by a prior art library of APIs to rotate the appropriate image frame.
  • the input to the library function is based on the translation and orientation of the scene object with the scene according to the frame vector and the user input such that the scene is rotated along the scene's y-axis. If the object to be rotated is an object movie or other enhanced 2D object, the library function may retrieve the appropriate image frame of the object which was captured at a corresponding orientation that matches the orientation to where the user panned in relation to the scene.
  • tilting a scene or changing a user's view of a scene up or down requires that the scene be rotated about the scene's x-axis, as shown by reference number 320 .
  • a function or tool provided by a prior art library of APIs is called to rotate each of the objects based on the translation vector and the amount of the rotation along the scene's x-axis. In one embodiment, this may be accomplished by retrieving an appropriate image frame of the object at a corresponding orientation.
  • support for yaw may also be provided.
  • Changing the yaw of a scene, or changing a user's view in relation to a vertical axis, requires that the scene be rotated about the scene's z-axis, as shown by reference number 330 .
  • a function or tool provided by a prior art library of APIs is called to rotate each of the scene objects based on their translation vectors and the user requested rotation of the scene about the scene's z-axis.
  • the rotation may be achieved by application of a software algorithm or by retrieving an appropriate image frame captured corresponding to the desired orientation.
  • the appropriate library function is called regarding each of the objects in the scene such that each of the objects is zoomed according to the user input, the translation data for each object, and the scene data.
  • the zooming may be achieved wholly algorithmically. In another embodiment, the zooming may be achieved by retrieving an appropriate image frame at a desired orientation and field of view.
  • FIG. 4A illustrates a camera and its coordinate system in relation to a subject and its image frame.
  • some objects in a scene may initially be captured as a series or sequence of image frames taken by a real camera of the subject that is represented as an object. Either the real camera may be rotated about the subject, or the subject may be rotated in front of the real camera to obtain the sequence of images needed to comprise the object.
  • the definition of the image frame is a 3 ⁇ 3 rotation matrix and a 3D translation vector based on the relationship between the image frame of the subject and the camera.
  • the 3 ⁇ 3 rotation matrix defining subject 400 maps the orientation of image frame 401 as an object according to object x-axis 402 , object y-axis 403 , and object z-axis 404 , and the 3D translation vector defines the position of the object in the camera coordinate system.
  • the camera 406 obtains the image frame 401 of subject 400 from its own coordinate system having camera x-axis 407 , camera y-axis 408 and camera z-axis 409 .
  • FIG. 4B illustrates an object coordinate system superimposed on a scene coordinate system.
  • Each object in a scene is defined as a series or sequence of image frames and orientation data. These image frames may be retrieved, accessed and manipulated by available library functions accessing the media object.
  • Each object is initially defined in its own coordinate system. However, when creating a scene, a scene coordinate system is created. To exist in a scene, each object added to the scene must be placed at a location in the scene.
  • the definition of where each object is to exist in a scene is determined by a translation vector which is used in conjunction with the object's coordinate system. For example, each object's position and orientation may be defined by a 3 ⁇ 3 matrix representing object axes 410 , 412 and 414 , as shown in FIG.
  • the translation vector directs where to place the object in relation to scene axes 420 , 422 and 424 , as shown in FIG. 4B .
  • the 3 ⁇ 3 rotation matrix is combined with the translation vector to form a 4 ⁇ 4 matrix known as a scene object.
  • the 3D translation vector may be defined as
  • Transforming a scene object in the form of a 4 ⁇ 4 matrix may be viewed as:
  • FIG. 5A illustrates a first object, Roman bust 500 .
  • Roman bust 500 is an enhanced 2D image having 3D properties known, in one embodiment, as an object movie, a series of captured photographic images taken at various prescribed orientations.
  • FIG. 5B illustrates a second object, school room 510 .
  • School room 510 is also an object movie.
  • FIG. 5C illustrates an example viewable scene that includes a first object, Roman bust 500 , integrated with a second object, school room 510 .
  • An application program used to create the scene in FIG. 5C is an authoring tool.
  • the authoring tool is an application program which allows a user to acquire objects and place them into a scene.
  • Authoring tools may rely on the API provided by the MPS to allow a user to create a scene.
  • a user may provide input to manipulate the user's view of the scene. This may be referred to as manipulating the camera, such as by panning, tilting, translation, and zooming.
  • manipulating the camera such as by panning, tilting, translation, and zooming.
  • the MPS invokes the appropriate call-back routine of the application program that displayed the scene to handle the manipulation request.
  • the application program will then use the API of the MPS to manipulate the objects and the scene to display the manipulated scene according to the changed camera view.
  • the MPS processes the revised location of each of the objects in relation to the scene and the manipulation request and then uses existing library functions to manipulate each of the objects to an appropriate orientation scene and then to display the scene. For example, FIG.
  • FIG. 5D illustrates an example viewable scene that includes a first object, Roman bust 500 , integrated with a second object, school room 510 , after the field of view of the scene has been changed by zooming in.
  • FIG. 5E illustrates an example viewable scene that includes a first object, Roman bust 500 , integrated with a second object, school room 510 , after the scene has been panned to the left.
  • FIG. 5F illustrates an example viewable scene that includes a first object, Roman bust 500 , integrated with a second object, school room 510 , after the scene has been panned to the right.

Abstract

System and method for integrating media objects for viewing on and manipulation via a computing device such as a personal computer. The system and method may be provided via an application program interface (API) which provides functions that allow an application program to create a scene and add media objects to the scene. The method includes preparing a translation vector and a rotation matrix for each of the media objects to define an orientation and a location of each of the media objects in the scene. The scene including the media objects is displayed. An interface is provided so that a user may manipulate the scene and the objects therein. The system and method may be implemented on a personal computer or other computing device.

Description

BACKGROUND
1. Field of the Invention
This invention relates to the field of application program interfaces for supporting media objects. More specifically, the invention relates to a system and method for integrating media objects for viewing on and manipulation via a computing device such as a personal computer.
2. Background
Computers and other processor based devices handle many kinds of data. Various kinds of data may be accessed by computers, including two-dimensional (2D) objects and 2D virtual reality enhanced images having three-dimensional (3D) properties. Operating systems provide utilities which may be used by application programs for various purposes, including the low-level handling of media objects. Many operating systems do not provide more than rudimentary support for the handling of 2D media objects and do not generally support enhanced 2D media objects. Additional utilities may be provided via application program interfaces commonly referred to as APIs. Some extensions to operating systems may provide the facility to separately view various kinds of 2D media objects. One such operating system extension is the QuickTime® System from Apple Computer, Inc. of Cupertino, Calif. The ability to integrate multiple 2D media objects and 3D enhanced 2D objects into a scene having 3D properties and to then manipulate the scene and the objects is not provided in current operating systems and operating systems extensions.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention described herein is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
FIG. 1 illustrates a personal computing device and environment in which the embodiments of the method and system described herein may be implemented.
FIG. 2 illustrates the flow of actions taken according to an embodiment of a method to integrate media objects into a scene.
FIG. 3 illustrates a three-dimensional graph showing the effects of rotating an object or scene about each of three axes.
FIG. 4A illustrates a camera and its coordinate system in relation to a subject and its image frame.
FIG. 4B illustrates an object coordinate system superimposed in a scene coordinate system.
FIG. 5A illustrates a first object.
FIG. 5B illustrates a second object.
FIG. 5C illustrates an example viewable scene that includes a first object integrated with a second object.
FIG. 5D illustrates an example viewable scene that includes a first object integrated with a second object after the field of view of the scene has been by zooming in.
FIG. 5E illustrates an example viewable scene that includes a first object integrated with a second object after the scene has been panned to the left.
FIG. 5F illustrates an example viewable scene that includes a first object integrated with a second object after the scene has been panned to the right.
DETAILED DESCRIPTION
The invention described herein provides various embodiments of a method and system for integrating two-dimensional (2D) and three-dimensional (3D) media objects for viewing on and manipulation via a computing device such as a personal computer. As many operating systems provide only rudimentary support for handling 2D and 3D media, the various embodiments of the system and method described herein may be implemented as an application program interface (API) which allows application programs to take advantage of the features of the method and system for integrating 2D and 3D media objects described herein. The various embodiments of the system and method described herein may be incorporated as part of an operating system or provided as an extension of an operating system which exists between the operating system and application programs.
FIG. 1 illustrates a personal computing device and environment in which the embodiments of the method and system described herein may be implemented. Computing device 100 may be any computing device that can execute software programs, including, but not limited to, personal computers, servers, cellular telephones, computer tablets, personal digital assistants, portable computers, computer workstations, etc. Computing device 100 may comprise a processor 110 to execute software programs. Processor 110 may be any computer processor known to those skilled in the art. Although only one processor is shown, two or more processors may be included in computing device 100. When executing programs, processor 100 utilizes memory 112. Memory 112 may be any form of random access memory (RAM) known to those skilled in the art. Information is read from and written to storage device 120. Storage device 120 may be any kind of machine readable medium including, for example, magnetic media such as disk drives and magnetic tape; optical drives such as compact disk read only memory (CD-ROM) and readable and writeable compact disks (CD-RW); stick and card memory devices; ROM, RAM, flash memory devices and the like; whether internal, such as storage device 120 and, in other embodiments, directly coupled, accessible locally or remotely via network 170, and accessible via electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.) via network access device 162. In various embodiments, network access device 162 may be a modem, network interface unit, or other communications device that allows for communication with other computing devices, such as remote computing device 180.
Personal computer 100 may include graphics controller 132 that allows for the display of information such as text and graphics on display monitor 134. Graphics controller 132 may be any graphics controller known to those skilled in the art, and display 134 may be any display monitor known to those skilled in the art, including, for example, a cathode ray tube (CRT) display monitor and thin film transistor (TFT) display screen. Personal computer 100 may also include audio controller 136 to which speakers 138 may be coupled. Personal computer 100 may play audio including music, voice, and synthesized sound to a user of the personal computer via audio controller 136 and speakers 138. Audio controller 136 may be any audio controller that may be compatible with the Sound Blaster® de facto standard popularized by Creative Technology Ltd. of Singapore and that may support 3D audio. A user may access computing device 100 via any input device known to those skilled in the art, such as, for example, keyboard 144, mouse 146, track ball (not shown), keypad (not shown), pen and tablet (not shown), etc. These input devices may be coupled to computing device 100 by input/output (I/O) controller 142. In one embodiment, I/O controller 142 may be a universal serial bus (USB) controller and the input devices may be USB enabled.
Processor 110, memory 112, storage device 120, graphics controller 132, I/O controller 142 and network access device 162 may be coupled to one another via and communicate with one another over bus 150. Bus 150 may be any bus known to those skilled in the art. Although only one bus is depicted, multiple buses may be used in computing device 100. In addition, other components and controllers known to those skilled in the art (not depicted) or multiple instances of depicted components and controllers may be included in computing device 100.
The methods described herein may be implemented as software and stored for execution on storage device 120 of computing device 100 as media processing software (MPS) 124. In one embodiment, the MPS may be a suite or group of software functions, programs, routines, etc. that provide data structure definitions and serve as an API to application programmers. When executing, the MPS may rely on and utilize functions and features made available by operating system 122. Operating system 122 may be stored on storage device 120 or another local or remote storage device. Operating system 122 may be any well known or proprietary operating system, such as, for example, Mac OS X available from Apple Computer, Inc. of Cupertino, Calif. In another embodiment, the MPS may be incorporated as part of an operating system. In other embodiments, the MPS may exist as hardware or as a combination of hardware and software. In one embodiment, the system and method described herein rely on and have available to them an existing set of support tools in the form of a library of functions comprising an API that provides for the manipulating, rendering and display of various 2D and 3D objects and, in some embodiments, for the rendering of stereo and/or 3D audio. An example of such a set of APIs and tools are those available in the QuickTime® 5 cross-platform multimedia software developer's toolkit available from Apple Computer, Inc. of Cupertino, Calif., such as API tool set may support the OpenGL graphics API. (See The OpenGL® Graphics System: A Specification, version 1.3, available from Silicon Graphics, Inc. of Mountain View, Calif.)
In various embodiments, the system and method described herein allow for the integrating, compositing or combining of two or more kinds of 2D and 3D objects into a scene. The scene is said to include various scene objects. In one embodiment, a soundtrack may be associated with a scene. In another embodiment, a soundtrack may be included with an object such that when an object is activated by a user such as by a mouse click, the soundtrack is played. In one embodiment, when an object in a scene is manipulated by a user, such as by dragging the object via a mouse, the location of the audio associated with the object may be changed to reflect the manipulation and position in the 3D scene. That is, for example, the audio may be rendered to be played from left to center to right as an object is dragged across a scene. In these embodiments, the soundtrack may be stored according to any well-known format such as, for example, the audio interchange file format (AIFF), Moving Picture Experts Group audio level 3 (MP3) format, and wave format (WAV). In these embodiments, the MPS may play the soundtrack by invoking a library function, an operating system utility, or a stand-alone audio application program.
The location and perspective from which a user may view the scene may be defined by what is referred to as a scene camera and may also be referred to as a camera view. In one embodiment, multiple scene cameras for a scene may be supported such that a user may switch back and forth between two, and in other embodiments, more, scene cameras. In various embodiments, there may be multiple and varied supported 2D and 3D objects. In various embodiments, multiple formats of 2D and 3D objects may be supported including, for example, OpenGL3D. An example of a 2D media object is a bitmap image which, in one embodiment, may be known as a sprite. In one embodiment, the source for a sprite can be a single bitmap, a bitmap image sequence, a vector image, a video track, a live stream, or a source specified by a uniform resource locator (URL). Examples of 3D media objects include object movies and OpenGL 3D objects. Object movies are not truly movies and are not truly 3D, but they are an enhanced form of 2D having some 3D properties. Although not truly 3D entities, object movies and other similarly enhanced 2D objects will be referred to as 3D objects and as enhanced 2D objects herein. Object movies are created by photographing or rendering a series of views of the subject at carefully spaced angles of tilt and rotation and assembling the images. In one embodiment, each view of the subject in an object movie is a still image. In another embodiment, one or more views of the subject of an object movie may be a video clip or animation. In one embodiment, an object movie may be created by photographing a series of images of an object as the object is rotated on a platter along different axes. In another embodiment, the series of images comprising an object movie may be captured when rotating a camera from around the object along different axes from a fixed distance.
FIG. 2 illustrates the flow of actions taken according to an embodiment of a method to integrate 2D and 3D objects. In practice, after a computing device is up and running the MPS will register with the operating system according to well-known methods. The MPS may receive a request to create a new scene, as shown in block 210. This request is in the form of a function call from an application program written according to the MPS API. The MPS then receives a request to add an object to the scene, as shown in block 212. Upon receiving the request, depending on the type of object, the MPS processes the object to create a scene object, including adding 3D properties to the scene object and setting the orientation and translation of the scene object with respect to the scene, as shown in block 214. If there are more objects to be added to the scene, as shown in block 216, blocks 212 and 214 are repeated. After all objects to be included in the scene have been added to the scene, the MPS may receive a request to build a camera view of the scene and may build the requested camera view, as shown in block 218. If more camera views are to be added for the scene, as shown in block 220, block 218 is repeated until no further camera views are to be added and built. The opening scene will then be rendered and displayed to a user by the MPS invoking an application supplied callback routine and/or calling one or more appropriate library functions, as shown in block 222. In one embodiment, the opening scene may be set by a special API, may be set by a variable or argument passed with the create scene API, or may be system chosen according to default requirements. In one embodiment, the MPS invokes the callback routine which in turn calls one or more library functions. In another embodiment, the MPS may directly call the library functions, and may then invoke the callback routine.
To achieve the functionality described in the prior paragraph, the scene manager maintains pertinent data about each object, the relationship of each object to the other objects, and the relationship of each object to the scene, including layering data. It is the layering data which may be used to determine which objects are in front of other objects, and consequently, which objects are background and foreground. In various embodiments, each object may also include opacity data. In one embodiment, opacity data may be included in an alpha channel associated with the objects. Various degrees of opacity may be supported, including, for example, fully transparent, half transparent, and varying degrees of transparency. In one embodiment, the MPS calls library functions to display each of the objects in the scene. In doing so, the MPS maintains the position of each object relative to the scene and maintains the camera view relative to the scene. Although referred to as a camera view, the camera view or scene camera is actually the point and perspective from which a user will view a display of the scene.
In one embodiment, as part of displaying the scene, the user is provided the opportunity to control the view of the scene such as by panning to the left and right, tilting up and down, and zooming in and out. The user may also, in some embodiments, be able to change the point of view, also referred to as the point of reference. The MPS may receive user input, which may, in one embodiment, be in the form of mouse movement and mouse click as well as keyboard input, changing the camera view, changing the object selected, manipulating the object, manipulating the scene, and/or manipulating the scene camera, as shown in block 224. As to object selection, in some embodiments, the user may be provided the ability to select which of the objects in the scene should be a current primary object or focal point. Upon receiving user input, the MPS then invokes an application program supplied callback routine and/or calls one or more appropriate library functions to achieve the user requested change or manipulation and to render and display the resulting scene, as shown in block 226. In one embodiment, calls to the library functions may be made by the callback routine, and, in other embodiments, may be made by the application program in response to the callback routine. In another embodiment, the MPS may call one or more appropriate library functions, and may then invoke the callback routine. The user may continually navigate within a scene to view as much as the scene as is desired. As such, flow then continues at block 224, and may continue in a loop until the program is exited.
FIG. 3 illustrates a three-dimensional graph showing the effects of rotating an object or scene about each of three axes. Each of the objects which may be combined into a scene has its own object coordinate system in 3D space which is translated into the scene coordinate system by a translation vector. Traversing a scene such as by panning, or changing a user's view of the scene to the left or the right, will result in corresponding panning of an object contained in the scene including changes to the position and orientation of the object with respect to the scene. Panning requires that the scene be rotated about the scene's y-axis, as shown by reference number 310. When a user pans in a scene, each object or the image frames representing each object are correspondingly panned by the MPS by calling a function or tool provided by a prior art library of APIs to rotate the appropriate image frame. The input to the library function is based on the translation and orientation of the scene object with the scene according to the frame vector and the user input such that the scene is rotated along the scene's y-axis. If the object to be rotated is an object movie or other enhanced 2D object, the library function may retrieve the appropriate image frame of the object which was captured at a corresponding orientation that matches the orientation to where the user panned in relation to the scene.
Generally, tilting a scene or changing a user's view of a scene up or down, requires that the scene be rotated about the scene's x-axis, as shown by reference number 320. When a scene is to be tilted, a function or tool provided by a prior art library of APIs is called to rotate each of the objects based on the translation vector and the amount of the rotation along the scene's x-axis. In one embodiment, this may be accomplished by retrieving an appropriate image frame of the object at a corresponding orientation. Similarly, in some embodiments, support for yaw may also be provided. Changing the yaw of a scene, or changing a user's view in relation to a vertical axis, requires that the scene be rotated about the scene's z-axis, as shown by reference number 330. To rotate a scene, a function or tool provided by a prior art library of APIs is called to rotate each of the scene objects based on their translation vectors and the user requested rotation of the scene about the scene's z-axis. Depending on the object and the embodiment, the rotation may be achieved by application of a software algorithm or by retrieving an appropriate image frame captured corresponding to the desired orientation.
If the user requests that the field of view of the scene be changed by zooming in or out, the appropriate library function is called regarding each of the objects in the scene such that each of the objects is zoomed according to the user input, the translation data for each object, and the scene data. In one embodiment, the zooming may be achieved wholly algorithmically. In another embodiment, the zooming may be achieved by retrieving an appropriate image frame at a desired orientation and field of view.
FIG. 4A illustrates a camera and its coordinate system in relation to a subject and its image frame. In one embodiment, some objects in a scene may initially be captured as a series or sequence of image frames taken by a real camera of the subject that is represented as an object. Either the real camera may be rotated about the subject, or the subject may be rotated in front of the real camera to obtain the sequence of images needed to comprise the object. In this embodiment, when capturing the sequences of images of an object, the definition of the image frame is a 3×3 rotation matrix and a 3D translation vector based on the relationship between the image frame of the subject and the camera. The 3×3 rotation matrix defining subject 400 maps the orientation of image frame 401 as an object according to object x-axis 402, object y-axis 403, and object z-axis 404, and the 3D translation vector defines the position of the object in the camera coordinate system. The camera 406 obtains the image frame 401 of subject 400 from its own coordinate system having camera x-axis 407, camera y-axis 408 and camera z-axis 409.
FIG. 4B illustrates an object coordinate system superimposed on a scene coordinate system. Each object in a scene is defined as a series or sequence of image frames and orientation data. These image frames may be retrieved, accessed and manipulated by available library functions accessing the media object. Each object is initially defined in its own coordinate system. However, when creating a scene, a scene coordinate system is created. To exist in a scene, each object added to the scene must be placed at a location in the scene. The definition of where each object is to exist in a scene is determined by a translation vector which is used in conjunction with the object's coordinate system. For example, each object's position and orientation may be defined by a 3×3 matrix representing object axes 410, 412 and 414, as shown in FIG. 4B and a translation vector. The translation vector directs where to place the object in relation to scene axes 420, 422 and 424, as shown in FIG. 4B. The 3×3 rotation matrix is combined with the translation vector to form a 4×4 matrix known as a scene object.
More specifically, the 3D translation vector may be defined as
T=[x, y, z]. The rotation transformation of T through rotation matrix R is:
xx yy zz = R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 R 9 * x y x = R 1 * x + R 2 * y + R 3 * z R 4 * x + R 5 * y + R 6 * z R 7 * x + R 8 * y + R 9 * z
Transforming a scene object in the form of a 4×4 matrix may be viewed as:
xx yy zz 1 = R 1 R 2 R 3 T 1 R 4 R 5 R 6 T 2 R 7 R 8 R 9 T 3 0 0 0 1 * x y x 1 = R 1 * x + R 2 * y + R 3 * z + T 1 * x R 4 * x + R 5 * y + R 6 * z + T 2 * y R 7 * x + R 8 * y + R 9 * z + T 3 * z 1
This is mathematically a definition of the linear transformation. The geometrical meaning of a rotation matrix may be considered as representing three vectors such that:
R = R 1 R 4 R 7 R 2 R 5 R 8 R 3 R 6 R 9 = Vx Vy Vz
Transformation of the above rotation matrix results to a weighted sum of the three axes in 3D space. The three axes Vx, Vy, Vz can be of any length and orientation, and they do not have to be perpendicular to each other.
xx yy zz = R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 R 9 * x y x = Vx * x + Vy * y + Vz * z
FIG. 5A illustrates a first object, Roman bust 500. Roman bust 500 is an enhanced 2D image having 3D properties known, in one embodiment, as an object movie, a series of captured photographic images taken at various prescribed orientations. FIG. 5B illustrates a second object, school room 510. School room 510 is also an object movie. By using the MPS API described herein, a scene may be created by combining these objects. FIG. 5C illustrates an example viewable scene that includes a first object, Roman bust 500, integrated with a second object, school room 510. An application program used to create the scene in FIG. 5C is an authoring tool. The authoring tool is an application program which allows a user to acquire objects and place them into a scene. Authoring tools may rely on the API provided by the MPS to allow a user to create a scene.
After a scene created with an authoring tool is displayed, a user may provide input to manipulate the user's view of the scene. This may be referred to as manipulating the camera, such as by panning, tilting, translation, and zooming. As set forth above regarding FIG. 2, when user input is received, the MPS invokes the appropriate call-back routine of the application program that displayed the scene to handle the manipulation request. The application program will then use the API of the MPS to manipulate the objects and the scene to display the manipulated scene according to the changed camera view. The MPS processes the revised location of each of the objects in relation to the scene and the manipulation request and then uses existing library functions to manipulate each of the objects to an appropriate orientation scene and then to display the scene. For example, FIG. 5D illustrates an example viewable scene that includes a first object, Roman bust 500, integrated with a second object, school room 510, after the field of view of the scene has been changed by zooming in. FIG. 5E illustrates an example viewable scene that includes a first object, Roman bust 500, integrated with a second object, school room 510, after the scene has been panned to the left. FIG. 5F illustrates an example viewable scene that includes a first object, Roman bust 500, integrated with a second object, school room 510, after the scene has been panned to the right.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims (75)

1. A computer implemented method comprising:
receiving by the computer, a first request to create a three-dimensional virtual reality scene;
receiving a second request to add at least two media objects to the virtual reality scene, wherein each media object is two-dimensional;
associating each media object with a series of two-dimensional views of the media object from various orientations and locations in three dimensional space;
preparing a translation vector and a rotation matrix for each of the media objects, the rotation matrix and the translation matrix defining an orientation and a location of each of the media objects in the virtual reality scene, wherein each two-dimensional view of each media object defines a different orientation of each media object;
building the virtual reality scene for display, wherein
the virtual reality scene combines the at least two media objects and includes data about each media object and a relationship of each media object to the scene including layering data to be used to determine foreground and background relationships between the media objects, and
the virtual reality scene is translatable and rotatable, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the media objects, including the layering of the media objects within the scene, to give the appearance of the media objects having three dimensional qualities.
2. The computer implemented method of claim 1 further comprising:
receiving a third request to manipulate the virtual reality scene; and
manipulating the virtual reality scene.
3. The computer implemented method of claim 2 further comprising:
updating the translation vector and rotation matrix for each of the media objects responsive to receiving the third request to manipulate the scene.
4. The computer implemented method of claim 2 wherein the third request to manipulate is received from an application program.
5. The computer implemented method of claim 2 wherein the third request to manipulate originates from a user.
6. The computer implemented method of claim 2 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
7. The computer implemented method of claim 2 further comprising:
calling one or more library functions of a plurality of library functions to manipulate the media objects.
8. The computer implemented method of claim 7 wherein the library functions are included in an operating system enhancement application program interface.
9. The computer implemented method of claim 2 additionally comprising:
receiving a fourth request to build a camera view of the virtual reality scene, the camera view including the at least two media objects in the virtual reality scene; and
rendering the at least one camera view of the virtual reality scene.
10. The computer implemented method of claim 1 further comprising:
receiving a selection of a first media object of the media objects within the scene.
11. The computer implemented method of claim 10 further comprising:
receiving a third request to manipulate the first media object.
12. The computer implemented method of claim 11 further comprising:
updating the translation vector and rotation matrix for the first media object responsive to receiving the third request to manipulate the first media object.
13. The computer implemented method of claim 11 wherein the third request to manipulate originates from a user.
14. The computer implemented method of claim 11 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
15. The computer implemented method of claim 11 further comprising:
calling one or more library functions of a plurality of library functions to manipulate the media objects.
16. The computer implemented method of claim 15 wherein the library functions are included in an operating system enhancement application program interface.
17. The computer implemented method of claim 1 wherein each media object further comprises:
a soundtrack associated with each media object such that the soundtrack is to be played when the media object is selected by a user.
18. The computer implemented method of claim 17 wherein the soundtrack is to be played responsively to movement of the associated media object.
19. The computer implemented method of claim 1 further comprising:
receiving a designation of a soundtrack to be played in conjunction with the displaying of the scene.
20. The computer implemented method of claim 19 wherein the soundtrack is played by calling one or more library functions of a plurality of library functions.
21. The computer implemented method of claim 1 wherein displaying comprises:
calling one or more library functions of a plurality of library functions to display the media objects.
22. A computer implemented method comprising:
storing by the computer, a first function to allow an application program to create a three-dimensional virtual reality scene, wherein the scene is to be able to be translated and rotated;
receiving a request for execution of the first function;
storing a second function to allow the application program to add at least two media objects, wherein each media object is two-dimensional, to the virtual reality scene and to associate each media object with a series of two-dimensional views of the object from various orientations and locations in three dimensional space, responsive to the request to execute the first function, wherein the virtual reality scene combines the media objects and includes data about each object and a relationship of each media object to the scene including layering data to be used to determine foreground and background relationships between the media objects, wherein each two-dimensional view of each media object defines a different orientation of each media object; and
receiving a request for execution of the second function; and
preparing a translation vector and a rotation matrix for each of the media objects, the rotation matrix and the translation matrix defining an orientation and a location of each of the media objects in the virtual reality scene responsive to the request to execute the second function, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the media objects, including the layering of the media objects within the scene, to give the appearance of the media objects having three dimensional qualities.
23. The computer implemented method of claim 22 further comprising:
storing a third function to render the virtual reality scene and the media objects in the virtual reality scene;
receiving a request for execution of the third function; and
rendering the virtual reality scene responsive to receiving the request to execute the third function.
24. The computer implemented method of claim 23 further comprising:
receiving a request from a user to manipulate the virtual reality scene.
25. The computer implemented method of claim 24 further comprising:
updating the translation vector and rotation matrix for each of the media objects responsive to receiving the request to manipulate the virtual reality scene.
26. The computer implemented method of claim 24 wherein the request to manipulate is one of a pan request, a zoom request, and a tilt request.
27. The computer implemented method of claim 24 further comprising:
calling one or more library functions of a plurality of library functions to manipulate the media objects.
28. The computer implemented method of claim 27 wherein the library functions are included in an operating system enhancement application program interface.
29. A system comprising:
means for receiving a first request to create a three-dimensional virtual reality scene;
means for receiving a second request to add at least two media objects to the virtual reality scene, wherein each media object is two-dimensional;
means for associating each media object with a series of two-dimensional views of the object from various orientations and locations in three dimensional space;
means for preparing a translation vector and a rotation matrix for each of the media objects, the rotation matrix and the translation matrix defining an orientation and a location of each of the media objects in the virtual reality scene, wherein each two-dimensional view of each media object defines a different orientation of each media object; and
means for building the virtual reality scene for display, wherein
the at least two media objects are combined within the virtual reality scene, and the virtual reality scene is translatable and rotatable and includes data about each media object and a relationship of each media object to the scene including layering data to be used to determine foreground and background relationships between the media objects, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the media objects, including the layering of the media objects within the scene, to give the appearance of the media objects having three-dimensional qualities.
30. The system of claim 29 further comprising:
means for receiving from a user a third request to manipulate the virtual reality scene; and
means for manipulating the virtual reality scene.
31. The system of claim 30 further comprising:
means for updating the translation vector and rotation matrix for each of the media objects responsive to the means for receiving from the user the third request to manipulate the scene.
32. The system of claim 30 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request, and the system further comprises:
means for panning;
means for zooming; and
means for tilting.
33. The system of claim 30 further comprising:
means for calling one or more library functions of a plurality of library functions to manipulate the media objects.
34. The system of claim 33 wherein the library functions are included in an operating system enhancement application program interface.
35. The system of claim 29 wherein each media object further comprises:
a soundtrack associated with each media object such that the soundtrack is to be played when the media object is selected by a user.
36. The system of claim 35 further comprising:
means for playing the soundtrack responsively to movement of the associated media object.
37. The system of claim 29 further comprising:
means for receiving a designation of a soundtrack to be played in conjunction with the displaying of the scene.
38. The system of claim 37 further comprising:
means for calling one or more library functions of a plurality of library functions to play the soundtrack.
39. The system of claim 29 wherein displaying comprises:
means for calling one or more library functions of a plurality of library functions to display the media objects.
40. A machine readable storage medium storing executable instructions which cause a processor to perform operations comprising:
receiving a first request to create a three-dimensional virtual reality scene;
receiving a second request to add at least two media objects to the virtual reality scene, wherein each media object is two-dimensional;
associating each media object with a series of two-dimensional views of the media object from various orientations and locations in three dimensional space;
preparing a translation vector and a rotation matrix for each of the media objects, the rotation matrix and the translation matrix defining an orientation and a location of each of the media objects in the virtual reality scene, wherein each two-dimensional view of each media object defines a different orientation of each media object;
building the virtual reality scene for display, wherein
the virtual reality scene combines the at least two media objects and includes data about each media object and a relationship of each media object to the scene including layering data to be used to determine foreground and background relationships between the media objects, and
the virtual reality scene is translatable and rotatable, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the media objects, including the layering of the media objects within the scene to give the appearance of the media objects having three dimensional qualities.
41. The machine readable storage medium of claim 40 wherein the processor performs further operations comprising:
receiving from a user a third request to manipulate the virtual reality scene; and
manipulating the virtual reality scene, wherein manipulating is at least one of translating the virtual reality scene and rotating the virtual reality scene with respect to at least one camera view.
42. The machine readable storage medium of claim 41 wherein the processor performs further operations comprising:
updating the translation vector and rotation matrix for each of the media objects responsive to receiving the third request to manipulate the scene.
43. The machine readable storage medium of claim 41 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
44. The machine readable storage medium of claim 41 wherein the processor performs further operations comprising:
calling one or more library functions of a plurality of library functions to manipulate the media objects.
45. The machine readable storage medium of claim 44 wherein the library functions are included in an operating system enhancement application program interface.
46. The machine readable storage medium of claim 40 wherein each media object further comprises:
a soundtrack associated with each media object such that the soundtrack is to be played when the media object is selected by a user.
47. The machine readable storage medium of claim 46 wherein the soundtrack is to be played responsively to movement of the associated media object.
48. The machine readable storage medium of claim 40 wherein the processor performs further operations comprising:
receiving a designation of a soundtrack to be played in conjunction with the displaying of the scene.
49. The machine readable storage medium of claim 48 wherein the soundtrack is to be played by calling one or more library functions of a plurality of library functions.
50. The machine readable storage medium of claim 40 wherein the displaying comprises:
calling one or more library functions of a plurality of library functions to display the media objects.
51. The machine readable medium of claim 41 wherein the processor performs further operations comprising:
receiving a fourth request to build a camera view of the virtual reality scene, the camera view including the at least two media objects in the virtual reality scene; and
rendering the at least one camera view of the virtual reality scene.
52. A machine readable storage medium storing executable instructions which cause a processor to perform operations comprising:
storing a first function to allow an application program to create a three-dimensional virtual reality scene, wherein the scene is to be able to be translated and rotated;
receiving a request for execution of the first function;
storing a second function to allow the application program to add at least two media objects, wherein each media object is two-dimensional, to the virtual reality scene and to associate each media object with a series of two-dimensional views of the object from various orientations and locations in three dimensional space, responsive to the request to execute the first function, wherein the virtual reality scene combines the media objects and includes data about each object and a relationship of each media object to the scene including layering data to be used to determine foreground and background relationships between the media objects, wherein each two-dimensional view of each media object defines a different orientation of each media object;
receiving a request for execution of the second function; and
preparing a translation vector and a rotation matrix for each of the media objects, the rotation matrix and the translation matrix defining an orientation and a location of each of the media objects in the virtual reality scene responsive to the request to execute the second function, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the media objects, including the layering of the media objects within the scene, to give the appearance of the media objects having three dimensional qualities.
53. The machine readable storage medium of claim 52 wherein the processor performs further operations comprising:
providing a third function to render the virtual reality scene and the media objects in the virtual reality scene;
receiving a request for execution of the third function; and
rendering the virtual reality scene responsive to receiving the request to execute the third function.
54. The machine readable storage medium of claim 53 wherein the processor performs further operations comprising:
receiving a request from a user to manipulate the scene.
55. The machine readable storage medium of claim 54 wherein the processor performs further operations comprising:
updating the translation vector and rotation matrix for each of the media objects responsive to receiving the request to manipulate the scene.
56. The machine readable storage medium of claim 54 wherein the request to manipulate is one of a pan request, a zoom request, and a tilt request.
57. The machine readable storage medium of claim 54 wherein the processor performs further operations comprising:
calling one or more library functions of a plurality of library functions to manipulate the media objects.
58. The machine readable storage medium of claim 57 wherein the library functions are included in an operating system enhancement application program interface.
59. The machine readable storage medium of claim 54 wherein the operations further comprise, in response to a request to navigate within the virtual reality scene, replacing a displayed view of the media object in the scene with a different view in the series of views based on the translation vector and rotation matrix to reorient and relocate the object to match the navigation.
60. The machine readable storage medium of claim 52 wherein the series of views is captured by a camera rotated about a subject of the media object.
61. The machine readable storage medium of claim 52 wherein the series of views is captured by a camera directed at a rotated subject of the media object.
62. The machine readable storage medium of claim 52 wherein the series of views is determined algorithmically when the media object is added to the virtual reality scene.
63. A computer implemented method comprising:
receiving, by the computer, a first request to create a three-dimensional virtual reality scene, wherein the virtual reality scene is associated with a series of two-dimensional views of the scene from various orientations or locations in three-dimensional space;
receiving a second request to add at least one media object to the virtual reality scene, wherein the media object is two-dimensional;
associating the media object with a series of two-dimensional views of the media object from various orientations or locations in three dimensional space;
preparing a translation vector and a rotation matrix for the media object, the rotation matrix and the translation matrix defining an orientation and a location of the media object in the virtual reality scene, wherein each two-dimensional view of the media object defines a different orientation of the media object and corresponds to a two-dimensional view of the virtual reality scene;
building the virtual reality scene for display, wherein the media object is included within the virtual reality scene, and the virtual reality scene is translatable and rotatable, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the media object to give the appearance of the media object having three dimensional qualities.
64. The computer implemented method of claim 61 further comprising:
receiving a third request to manipulate the virtual reality scene; and updating the translation vector and rotation matrix for the media object responsive to receiving the third request to manipulate the scene.
65. The computer implemented method of claim 64 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
66. The computer implemented method of claim 63 further comprising:
receiving a third request to manipulate the media object and updating the translation vector and rotation matrix for the media object responsive to receiving the third request to manipulate the media object.
67. The computer implemented method of claim 66 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
68. The computer implemented method of claim 63, wherein the media object further comprises a soundtrack associated with the object such that the soundtrack is to be played when the media object is selected by a user, or in response to a movement of the media object.
69. A machine readable storage medium storing executable instructions which cause a processor to perform operations comprising:
receiving a first request to create a three-dimensional virtual reality scene, wherein the virtual reality scene is associated with a series of two-dimensional views of the scene from various orientations or locations in three-dimensional space;
receiving a second request to add at least one media object to the virtual reality scene, wherein the media object is two-dimensional;
associating the at least one media object with a series of two-dimensional views of the media object from various orientations or locations in three dimensional space;
preparing a translation vector and a rotation matrix for the media objects, the rotation matrix and the translation matrix defining an orientation and a location of the at least one media object in the virtual reality scene, wherein each two-dimensional view of the at least one media object defines a different orientation of the at least one media object and corresponds to a two-dimensional view of the virtual reality scene;
building the virtual reality scene for display, wherein the at least one media object is included within the virtual reality scene, and the virtual reality scene is translatable and rotatable, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the at least one media object to give the appearance of the at least one media object having three dimensional qualities.
70. The computer implemented method of claim 69 further comprising:
receiving a third request to manipulate the virtual reality scene; and updating the translation vector and rotation matrix for the media object responsive to receiving the third request to manipulate the scene.
71. The machine readable storage medium of claim 70 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
72. The machine readable storage medium of claim 69 further comprising:
receiving a third request to manipulate the media object and updating the translation vector and rotation matrix for the media object responsive to receiving the third request to manipulate the media object.
73. The machine readable storage medium of claim 72 wherein the third request to manipulate is one of a pan request, a zoom request, and a tilt request.
74. The machine readable storage medium of claim 69, wherein the media object further comprises a soundtrack associated with the object such that the soundtrack is to be played when the media object is selected by a user, or in response to a movement of the media object.
75. A system comprising:
means for receiving a first request to create a three-dimensional virtual reality scene wherein the virtual reality scene is associated with a series of two-dimensional views of the scene from various orientations or locations in three-dimensional space;
means for receiving a second request to add at least one media object to the virtual reality scene, wherein the at least one media object is two-dimensional;
means for associating the at least one media object with a series of two-dimensional views of the object from various orientations or locations in three dimensional space;
means for preparing a translation vector and a rotation matrix for the at least one media objects, the rotation matrix and the translation matrix defining an orientation and a location of each of the media objects in the virtual reality scene, wherein each two-dimensional view of each media object defines a different orientation of each media object and corresponds to a two dimensional view of the virtual reality scene; and
means for building the virtual reality scene for display, wherein the at least two media objects are included within the virtual reality scene, and the virtual reality scene is translatable and rotatable, and wherein translating and rotating the virtual reality scene results in changing the respective two-dimensional views of the objects to give the appearance of the media objects having three-dimensional qualities.
US10/022,151 2001-12-14 2001-12-14 System and method for integrating media objects Active 2024-11-03 US7631277B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/022,151 US7631277B1 (en) 2001-12-14 2001-12-14 System and method for integrating media objects
US12/633,774 US8434028B2 (en) 2001-12-14 2009-12-08 System and method for integrating media objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/022,151 US7631277B1 (en) 2001-12-14 2001-12-14 System and method for integrating media objects

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/633,774 Continuation US8434028B2 (en) 2001-12-14 2009-12-08 System and method for integrating media objects

Publications (1)

Publication Number Publication Date
US7631277B1 true US7631277B1 (en) 2009-12-08

Family

ID=41394379

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/022,151 Active 2024-11-03 US7631277B1 (en) 2001-12-14 2001-12-14 System and method for integrating media objects
US12/633,774 Expired - Lifetime US8434028B2 (en) 2001-12-14 2009-12-08 System and method for integrating media objects

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/633,774 Expired - Lifetime US8434028B2 (en) 2001-12-14 2009-12-08 System and method for integrating media objects

Country Status (1)

Country Link
US (2) US7631277B1 (en)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070256026A1 (en) * 2006-03-31 2007-11-01 Research In Motion Limited User interface methods and apparatus for controlling the visual display of maps having selectable map elements in mobile communication devices
US20080065992A1 (en) * 2006-09-11 2008-03-13 Apple Computer, Inc. Cascaded display of video media
US20090197525A1 (en) * 2005-09-14 2009-08-06 Streamezzo Transmission of multimedia content to a radiocommunication terminal
US20100131904A1 (en) * 2008-11-21 2010-05-27 Microsoft Corporation Tiltable user interface
US20110141113A1 (en) * 2006-03-07 2011-06-16 Graphics Properties Holdings, Inc. Integration of graphical application content into the graphical scene of another application
US8108577B1 (en) 2005-03-30 2012-01-31 Teradici Corporation Method and apparatus for providing a low-latency connection between a data processor and a remote graphical user interface over a network
CN103188545A (en) * 2011-12-30 2013-07-03 三星电子株式会社 Display apparatus and image displaying method thereof
US8560753B1 (en) * 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US20130271489A1 (en) * 2012-04-17 2013-10-17 Nvidia Corporation System, method, and computer program product for adding computer-generated scene elements into a representation of a real-world scene, using path tracing
US8570329B1 (en) * 2012-10-31 2013-10-29 Google Inc. Subtle camera motions to indicate imagery type in a mapping system
US20140369670A1 (en) * 2013-06-13 2014-12-18 Universitat Des Saarlandes Method and device for selectively combining heterogeneous digital media objects
US9219935B2 (en) 2011-12-30 2015-12-22 Samsung Electronics Co., Ltd. Display apparatus, external peripheral device connectable thereto and image displaying method
US9348495B2 (en) 2014-03-07 2016-05-24 Sony Corporation Control of large screen display using wireless portable computer and facilitating selection of audio on a headphone
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
US20170084293A1 (en) * 2015-09-22 2017-03-23 Fyusion, Inc. Integration of audio into a multi-view interactive digital media representation
US20180046357A1 (en) * 2015-07-15 2018-02-15 Fyusion, Inc. Virtual reality environment based manipulation of multi-layered multi-view interactive digital media representations
US20180113597A1 (en) * 2016-10-25 2018-04-26 Microsoft Technology Licensing, Llc Three-dimensional resource integration system
US10051298B2 (en) 1999-04-23 2018-08-14 Monkeymedia, Inc. Wireless seamless expansion and video advertising player
CN109348246A (en) * 2018-11-21 2019-02-15 北京未来媒体科技股份有限公司 A kind of super fusion net cast method and device of 4K panorama
CN109348245A (en) * 2018-11-21 2019-02-15 北京未来媒体科技股份有限公司 A kind of super fusion multi-channel testing method and device of 4K panorama
US10817153B2 (en) 2019-03-01 2020-10-27 Bose Corporation Augmented audio development
US10959036B2 (en) * 2019-08-13 2021-03-23 Bose Corporation Augmented audio development tool
US11195314B2 (en) 2015-07-15 2021-12-07 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
US11202017B2 (en) 2016-10-06 2021-12-14 Fyusion, Inc. Live style transfer on a mobile device
US11266919B2 (en) 2012-06-29 2022-03-08 Monkeymedia, Inc. Head-mounted display for navigating virtual and augmented reality
US11488380B2 (en) 2018-04-26 2022-11-01 Fyusion, Inc. Method and apparatus for 3-D auto tagging
US11632533B2 (en) 2015-07-15 2023-04-18 Fyusion, Inc. System and method for generating combined embedded multi-view interactive digital media representations
US11636637B2 (en) 2015-07-15 2023-04-25 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
US11776229B2 (en) 2017-06-26 2023-10-03 Fyusion, Inc. Modification of multi-view interactive digital media representation
US11876948B2 (en) 2017-05-22 2024-01-16 Fyusion, Inc. Snapshots at predefined intervals or angles
US11956412B2 (en) 2020-03-09 2024-04-09 Fyusion, Inc. Drone based capture of multi-view interactive digital media

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9017163B2 (en) 2010-11-24 2015-04-28 Aria Glassworks, Inc. System and method for acquiring virtual and augmented reality scenes by a user
EP2587456A3 (en) * 2011-10-23 2017-09-20 Technion Research & Development Foundation Ltd. Method and systems for generating a dynamic multimodal and multidimensional presentation
US10769852B2 (en) * 2013-03-14 2020-09-08 Aria Glassworks, Inc. Method for simulating natural perception in virtual and augmented reality scenes
US10977864B2 (en) 2014-02-21 2021-04-13 Dropbox, Inc. Techniques for capturing and displaying partial motion in virtual or augmented reality scenes
US9857939B2 (en) * 2015-02-27 2018-01-02 Accenture Global Services Limited Three-dimensional virtualization
US10930065B2 (en) * 2019-03-08 2021-02-23 X Development Llc Three-dimensional modeling with two dimensional data

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019809A (en) 1988-07-29 1991-05-28 University Of Toronto Innovations Foundation Two-dimensional emulation of three-dimensional trackball
US5396583A (en) 1992-10-13 1995-03-07 Apple Computer, Inc. Cylindrical to planar image mapping using scanline coherence
US5446833A (en) 1992-05-08 1995-08-29 Apple Computer, Inc. Textured sphere and spherical environment map rendering using texture map double indirection
US5588104A (en) * 1990-11-30 1996-12-24 Vpl Research, Inc. Method and apparatus for creating virtual worlds using a data flow network
US5724106A (en) * 1995-07-17 1998-03-03 Gateway 2000, Inc. Hand held remote control device with trigger button
WO1998015920A1 (en) * 1996-10-08 1998-04-16 Image Technology Laboratories, Inc. Method of displaying three-dimensional images
US5745665A (en) * 1994-07-20 1998-04-28 Douglas F. Winnek Method for processing a three-dimensional data set into a composite two-dimensional image viewable as a three-dimensional image
US5926190A (en) 1996-08-21 1999-07-20 Apple Computer, Inc. Method and system for simulating motion in a computer graphics application using image registration and view interpolation
US6072479A (en) * 1996-08-28 2000-06-06 Nec Corporation Multimedia scenario editor calculating estimated size and cost
US6081262A (en) * 1996-12-04 2000-06-27 Quark, Inc. Method and apparatus for generating multi-media presentations
US6275935B1 (en) * 1998-04-17 2001-08-14 Thingworld.Com, Llc Systems and methods for locking interactive objects
WO2002027659A2 (en) 2000-09-26 2002-04-04 Advantage 3D Llc Method and system for generation, storage and distribution of omni-directional object views
US6484189B1 (en) * 1991-04-26 2002-11-19 Amiga Development Llc Methods and apparatus for a multimedia authoring and presentation system
US20030011630A1 (en) * 2001-07-12 2003-01-16 Knowlton Ruth Helene Self instructional authoring software tool for the creation of a multi-media resume
US6525732B1 (en) * 2000-02-17 2003-02-25 Wisconsin Alumni Research Foundation Network-based viewing of images of three-dimensional objects
US6664986B1 (en) * 1997-05-20 2003-12-16 Cadent Ltd. Computer user interface for orthodontic use
US20040039934A1 (en) * 2000-12-19 2004-02-26 Land Michael Z. System and method for multimedia authoring and playback

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5969725A (en) * 1995-03-17 1999-10-19 Canon Kabushiki Kaisha Unification of three-dimensional image data having plural surface shapes
US6434265B1 (en) * 1998-09-25 2002-08-13 Apple Computers, Inc. Aligning rectilinear images in 3D through projective registration and calibration

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019809A (en) 1988-07-29 1991-05-28 University Of Toronto Innovations Foundation Two-dimensional emulation of three-dimensional trackball
US5588104A (en) * 1990-11-30 1996-12-24 Vpl Research, Inc. Method and apparatus for creating virtual worlds using a data flow network
US6484189B1 (en) * 1991-04-26 2002-11-19 Amiga Development Llc Methods and apparatus for a multimedia authoring and presentation system
US5446833A (en) 1992-05-08 1995-08-29 Apple Computer, Inc. Textured sphere and spherical environment map rendering using texture map double indirection
US5396583A (en) 1992-10-13 1995-03-07 Apple Computer, Inc. Cylindrical to planar image mapping using scanline coherence
US5745665A (en) * 1994-07-20 1998-04-28 Douglas F. Winnek Method for processing a three-dimensional data set into a composite two-dimensional image viewable as a three-dimensional image
US5724106A (en) * 1995-07-17 1998-03-03 Gateway 2000, Inc. Hand held remote control device with trigger button
US5926190A (en) 1996-08-21 1999-07-20 Apple Computer, Inc. Method and system for simulating motion in a computer graphics application using image registration and view interpolation
US6072479A (en) * 1996-08-28 2000-06-06 Nec Corporation Multimedia scenario editor calculating estimated size and cost
WO1998015920A1 (en) * 1996-10-08 1998-04-16 Image Technology Laboratories, Inc. Method of displaying three-dimensional images
US6081262A (en) * 1996-12-04 2000-06-27 Quark, Inc. Method and apparatus for generating multi-media presentations
US6664986B1 (en) * 1997-05-20 2003-12-16 Cadent Ltd. Computer user interface for orthodontic use
US6275935B1 (en) * 1998-04-17 2001-08-14 Thingworld.Com, Llc Systems and methods for locking interactive objects
US6525732B1 (en) * 2000-02-17 2003-02-25 Wisconsin Alumni Research Foundation Network-based viewing of images of three-dimensional objects
WO2002027659A2 (en) 2000-09-26 2002-04-04 Advantage 3D Llc Method and system for generation, storage and distribution of omni-directional object views
US20040039934A1 (en) * 2000-12-19 2004-02-26 Land Michael Z. System and method for multimedia authoring and playback
US20030011630A1 (en) * 2001-07-12 2003-01-16 Knowlton Ruth Helene Self instructional authoring software tool for the creation of a multi-media resume

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mark Segal and Kurt Akeley, "The OpenGL Graphics System: A Specification (Version 1.3)," Aug. 14, 2001.
Wang, Ru-Shang, et al., "Multiview Video Sequence Analysis, Compression, and Virtual Viewpoint Synthesis," IEEE Transactions on Circuits and Systems For Video Technology, vol. 10, No. 3, Apr. 3, 2000, pp. 397-410.

Cited By (60)

* 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
US8874812B1 (en) 2005-03-30 2014-10-28 Teradici Corporation Method and apparatus for remote input/output in a computer system
US8560753B1 (en) * 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US8108577B1 (en) 2005-03-30 2012-01-31 Teradici Corporation Method and apparatus for providing a low-latency connection between a data processor and a remote graphical user interface over a network
US8437690B2 (en) * 2005-09-14 2013-05-07 Streamezzo Transmission of a multimedia content to a radiocommunication terminal
US20090197525A1 (en) * 2005-09-14 2009-08-06 Streamezzo Transmission of multimedia content to a radiocommunication terminal
US8314804B2 (en) * 2006-03-07 2012-11-20 Graphics Properties Holdings, Inc. Integration of graphical application content into the graphical scene of another application
US8624892B2 (en) 2006-03-07 2014-01-07 Rpx Corporation Integration of graphical application content into the graphical scene of another application
US20110141113A1 (en) * 2006-03-07 2011-06-16 Graphics Properties Holdings, Inc. Integration of graphical application content into the graphical scene of another application
US20070256026A1 (en) * 2006-03-31 2007-11-01 Research In Motion Limited User interface methods and apparatus for controlling the visual display of maps having selectable map elements in mobile communication devices
US20130147713A1 (en) * 2006-03-31 2013-06-13 Research In Motion Limited User Interface Methods And Apparatus For Controlling The Visual Display Of Maps Having Selectable Map Elements In Mobile Communication Devices
US8397171B2 (en) * 2006-03-31 2013-03-12 Reaearch In Motion Limited User interface methods and apparatus for controlling the visual display of maps having selectable map elements in mobile communication devices
US8850343B2 (en) * 2006-03-31 2014-09-30 Blackberry Limited User interface methods and apparatus for controlling the visual display of maps having selectable map elements in mobile communication devices
US20080065992A1 (en) * 2006-09-11 2008-03-13 Apple Computer, Inc. Cascaded display of video media
US20100131904A1 (en) * 2008-11-21 2010-05-27 Microsoft Corporation Tiltable user interface
US10678423B2 (en) 2008-11-21 2020-06-09 Microsoft Technology Licensing, Llc Tiltable user interface
US8645871B2 (en) * 2008-11-21 2014-02-04 Microsoft Corporation Tiltable user interface
US9766798B2 (en) 2008-11-21 2017-09-19 Microsoft Technology Licensing, Llc Tiltable user interface
US8786783B2 (en) * 2011-12-30 2014-07-22 Samsung Electronics Co., Ltd. Video and graphic combination and display apparatus and image combining and displaying method thereof
US20130169871A1 (en) * 2011-12-30 2013-07-04 Samsung Electronics Co., Ltd. Display apparatus and image displaying method thereof
CN103188545B (en) * 2011-12-30 2019-01-18 三星电子株式会社 Show equipment and its image display method
US9219935B2 (en) 2011-12-30 2015-12-22 Samsung Electronics Co., Ltd. Display apparatus, external peripheral device connectable thereto and image displaying method
CN103188545A (en) * 2011-12-30 2013-07-03 三星电子株式会社 Display apparatus and image displaying method thereof
US20130271489A1 (en) * 2012-04-17 2013-10-17 Nvidia Corporation System, method, and computer program product for adding computer-generated scene elements into a representation of a real-world scene, using path tracing
US8970626B2 (en) * 2012-04-17 2015-03-03 Nvidia Corporation System, method, and computer program product for adding computer-generated scene elements into a representation of a real-world scene, using path tracing
US9656168B1 (en) 2012-06-29 2017-05-23 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
US9612627B2 (en) 2012-06-29 2017-04-04 Monkeymedia, Inc. Head-mounted display apparatus for navigating a virtual environment
US9658617B1 (en) 2012-06-29 2017-05-23 Monkeymedia, Inc. Remote controlled vehicle with a head-mounted display
US9579586B2 (en) 2012-06-29 2017-02-28 Monkeymedia, Inc. Remote controlled vehicle with a handheld display device
US9563202B1 (en) 2012-06-29 2017-02-07 Monkeymedia, Inc. Remote controlled vehicle with a head-mounted display apparatus
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
US10596478B2 (en) 2012-06-29 2020-03-24 Monkeymedia, Inc. Head-mounted display for navigating a virtual environment
US9919233B2 (en) 2012-06-29 2018-03-20 Monkeymedia, Inc. Remote controlled vehicle with augmented reality overlay
US8570329B1 (en) * 2012-10-31 2013-10-29 Google Inc. Subtle camera motions to indicate imagery type in a mapping system
US20140369670A1 (en) * 2013-06-13 2014-12-18 Universitat Des Saarlandes Method and device for selectively combining heterogeneous digital media objects
US9348495B2 (en) 2014-03-07 2016-05-24 Sony Corporation Control of large screen display using wireless portable computer and facilitating selection of audio on a headphone
US11102543B2 (en) 2014-03-07 2021-08-24 Sony Corporation Control of large screen display using wireless portable computer to pan and zoom on large screen display
US11632533B2 (en) 2015-07-15 2023-04-18 Fyusion, Inc. System and method for generating combined embedded multi-view interactive digital media representations
US10725609B2 (en) * 2015-07-15 2020-07-28 Fyusion, Inc. Virtual reality environment based manipulation of multi-layered multi-view interactive digital media representations
US11776199B2 (en) 2015-07-15 2023-10-03 Fyusion, Inc. Virtual reality environment based manipulation of multi-layered multi-view interactive digital media representations
US20180046357A1 (en) * 2015-07-15 2018-02-15 Fyusion, Inc. Virtual reality environment based manipulation of multi-layered multi-view interactive digital media representations
US11636637B2 (en) 2015-07-15 2023-04-25 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
US11195314B2 (en) 2015-07-15 2021-12-07 Fyusion, Inc. Artificially rendering images using viewpoint interpolation and extrapolation
US11435869B2 (en) 2015-07-15 2022-09-06 Fyusion, Inc. Virtual reality environment based manipulation of multi-layered multi-view interactive digital media representations
US11783864B2 (en) * 2015-09-22 2023-10-10 Fyusion, Inc. Integration of audio into a multi-view interactive digital media representation
US20170084293A1 (en) * 2015-09-22 2017-03-23 Fyusion, Inc. Integration of audio into a multi-view interactive digital media representation
US11202017B2 (en) 2016-10-06 2021-12-14 Fyusion, Inc. Live style transfer on a mobile device
US20180113597A1 (en) * 2016-10-25 2018-04-26 Microsoft Technology Licensing, Llc Three-dimensional resource integration system
US10824294B2 (en) * 2016-10-25 2020-11-03 Microsoft Technology Licensing, Llc Three-dimensional resource integration system
US11876948B2 (en) 2017-05-22 2024-01-16 Fyusion, Inc. Snapshots at predefined intervals or angles
US11776229B2 (en) 2017-06-26 2023-10-03 Fyusion, Inc. Modification of multi-view interactive digital media representation
US11488380B2 (en) 2018-04-26 2022-11-01 Fyusion, Inc. Method and apparatus for 3-D auto tagging
CN109348245B (en) * 2018-11-21 2021-10-22 北京未来媒体科技股份有限公司 4K panoramic super-fusion multi-channel monitoring method and device
CN109348246A (en) * 2018-11-21 2019-02-15 北京未来媒体科技股份有限公司 A kind of super fusion net cast method and device of 4K panorama
CN109348245A (en) * 2018-11-21 2019-02-15 北京未来媒体科技股份有限公司 A kind of super fusion multi-channel testing method and device of 4K panorama
US10817153B2 (en) 2019-03-01 2020-10-27 Bose Corporation Augmented audio development
US10959036B2 (en) * 2019-08-13 2021-03-23 Bose Corporation Augmented audio development tool
US11956412B2 (en) 2020-03-09 2024-04-09 Fyusion, Inc. Drone based capture of multi-view interactive digital media

Also Published As

Publication number Publication date
US8434028B2 (en) 2013-04-30
US20100085356A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
US8434028B2 (en) System and method for integrating media objects
Chen Quicktime VR: An image-based approach to virtual environment navigation
US7475356B2 (en) System utilizing mixed resolution displays
US7629945B2 (en) Mixed resolution displays
US7546540B2 (en) Methods of using mixed resolution displays
Li et al. Building and using a scalable display wall system
US6304271B1 (en) Apparatus and method for cropping an image in a zooming graphical user interface
US5442456A (en) Method and apparatus for multi-level navigable video environment
US7084875B2 (en) Processing scene objects
US7299417B1 (en) System or method for interacting with a representation of physical space
US7333071B2 (en) Methods of using mixed resolution displays
JP2002536676A (en) Video zooming system and method
CN112672185B (en) Augmented reality-based display method, device, equipment and storage medium
US20030095131A1 (en) Method and apparatus for processing photographic images
US11044398B2 (en) Panoramic light field capture, processing, and display
US20070052725A1 (en) User interface for simultaneous experiencing multiple application pages
US6714198B2 (en) Program and apparatus for displaying graphical objects
CN114363687B (en) Three-dimensional scene interactive video creation method and creation device
US5812125A (en) Method and apparatus for selectively generating display images
CN116271836A (en) Scene visual angle adjusting method, device, terminal and storage medium
US11775051B2 (en) Apparatus and associated methods for presentation of presentation data
TW200925975A (en) Media system for facilitating interaction with media data across a plurality of media devices
Sinthanayothin et al. Interactive virtual 3d gallery using motion detection of mobile device
Chiang et al. Panovr sdk—a software development kit for integrating photo-realistic panoramic images and 3-d graphical objects into virtual worlds
Watlington Synthetic movies

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC.,CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:APPLE COMPUTER, INC.;REEL/FRAME:019214/0039

Effective date: 20070109

Owner name: APPLE INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:APPLE COMPUTER, INC.;REEL/FRAME:019214/0039

Effective date: 20070109

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12