System and process for viewing panoramic video
First Claim
1. A system for viewing a panoramic video, comprising:
- a decoder module that is in two-way communication with a source of encoded video data, and which inputs said encoded panoramic video data from the source and outputs a decoded version thereof;
a 3D rendering module which is capable of rendering displayable images of a scene captured by the panoramic video using the decoded panoramic video data output from the decoder module and a prescribed 3D environment model; and
a display module which is capable of displaying the displayable images rendered by the 3D rendering module on a display.
2 Assignments
0 Petitions
Accused Products
Abstract
The primary components of the panoramic video viewer include a decoder module. The purpose of the decoder module is to input incoming encoded panoramic video data and to output a decoded version thereof. The incoming data may be provided over a network and originate from a server, or it may simply be read from a storage media, such as a hard drive, CD or DVD. Once decoded, the data associated with each video frame is preferably stored in a storage module and made available to a 3D rendering module. The 3D rendering module is essentially a texture mapper that takes the frame data and maps the desired views onto a prescribed environment model. The output of the 3D rendering module is provided to a display module where the panoramic video is viewed by a user of the system. Typically, the user will be viewing just a portion of the scene depicted in the panoramic video at any one time, and will be able to control what portion is viewed. Preferably, the panoramic video viewer will allow the user to pan through the scene to the left, right, up or down. In addition, the user would preferably be able to zoom in or out within the portion of the scene being viewed. The user could also be allowed to select what video should be played, choose when to play or pause the video, and to specify what temporal part of the video should be played.
81 Citations
61 Claims
-
1. A system for viewing a panoramic video, comprising:
-
a decoder module that is in two-way communication with a source of encoded video data, and which inputs said encoded panoramic video data from the source and outputs a decoded version thereof;
a 3D rendering module which is capable of rendering displayable images of a scene captured by the panoramic video using the decoded panoramic video data output from the decoder module and a prescribed 3D environment model; and
a display module which is capable of displaying the displayable images rendered by the 3D rendering module on a display. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A process for viewing panoramic videos, comprising the process actions of:
-
maintaining two-way communications with a source of encoded video data, said encoded video data representing sequential frames of a panoramic video;
decoding said encoded panoramic video data;
producing displayable images from the decoded panoramic video data by mapping the data onto a prescribed 3D environment model; and
displaying each displayable image. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
storing the decoded panoramic video data each time sufficient data is decoded to represent a frame of the panoramic video; and
making said stored panoramic video data available for producing a displayable image.
-
-
25. The process of claim 24, wherein the process action of storing comprises an action of replacing previously stored panoramic video data with newly decoded panoramic video data.
-
26. The process of claim 22, further comprising performing, prior to performing the process action of decoding the encoded panoramic video data, a process action of inputting an initialization data file comprising the encoded panoramic video data associated with the frames of the panoramic video.
-
27. The process of claim 26, wherein the initialization data file further comprises an indication of the order in which the frames of the panoramic video are to be decoded and viewed.
-
28. The process of claim 22, further comprising performing, prior to performing the process action of decoding the encoded panoramic video data, the process actions of:
-
inputting an initialization data file comprising information on how to obtain encoded panoramic video data associated with the frames of the panoramic video; and
obtaining the encoded panoramic video data associated with the frames of the panoramic video using the information provided in the initialization data file.
-
-
29. The process of claim 28, wherein the encoded panoramic video data associated with the frames of the panoramic video is resident in a directly accessible storage medium and the information on how to obtain the encoded panoramic video data comprises the identity of locations in said storage medium associated with the data, and wherein the process action of obtaining the encoded video data comprises an action of reading the data from the identified locations in the storage medium.
-
30. The process of claim 29, wherein the initialization data file further comprises an indication of the order in which the frames of the panoramic video are to be decoded and viewed, and wherein the process action of obtaining the encoded panoramic video data comprises an action of reading the data from the identified locations in the storage medium in the order indicated in the initialization data file.
-
31. The process of claim 28, wherein the encoded panoramic video data associated with the frames of the panoramic video is provided via a server over a network connection and the information on how to obtain the encoded panoramic video data comprises identifiers for identifying the data, and wherein the process action of obtaining the encoded panoramic video data comprises an action of identifying the data received over the network using said identifiers.
-
32. The process of claim 31, wherein the initialization data file further comprises an indication of the order in which the frames of the panoramic video are to be decoded and viewed, and wherein the process action of obtaining the encoded panoramic video data comprises an action of identifying the data in the order indicated in the initialization data file.
-
33. The process of claim 22, further comprising a process action of providing static texture data representing one or more regions of said environment model not represented by the panoramic video data, and wherein the process action of producing displayable images comprises an action of using the static texture data as an addendum to the panoramic video data associated with each frame of the panoramic video to depict said one or more regions of the environment model not represented by the panoramic video data for that frame.
-
34. The process of claim 22, wherein the process action of producing displayable images comprises an action of inserting an image of an object into the scene represented by the panoramic video data associated with a frame of the panoramic video which was not in the scene before.
-
35. The process of claim 33, wherein the process action of producing displayable images comprises an action of inserting an image of an object into the scene represented by the static texture data associated with a frame of the panoramic video which was not in the scene before.
-
36. The process of claim 22, wherein the process action of producing displayable images comprises an action of producing displayable images that depict a prescribed portion of the scene available from the decoded panoramic video data.
-
37. The process of claim 22, further comprising the process actions of:
-
monitoring for inputted user commands; and
whereinwhenever a user command is received, determining if the received command is a video selection command specifying what panoramic video, among those available, the user wants displayed, whenever it is determined that the received command is a video selection command, communicating with the source and obtaining therefrom encoded panoramic video data associated with the user-specified panoramic video, whenever it is determined that the received command is not a video selection command, determining if the received command is a pause command, whenever it is determined that the received command is a pause command, temporarily suspending the transfer of the panoramic video data from the source and thereafter monitoring for a user-specified play command, and once a play command is received, communicating with the source to begin the inputting of the encoded panoramic video data once again, whenever it is determined that the received command is not a pause command, determining if the received command is a seek-in-time command specifying a place in time within the panoramic video that the user wants displayed, and whenever it is determined that the received command is a seek-in-time command, communicating with the source and obtaining therefrom encoded panoramic video data corresponding to particular frames or groups of consecutive frames of the panoramic video associated with the user-specified place in time within the panoramic video.
-
-
38. The process of claim 37, wherein the process action of producing displayable images comprises an action of producing displayable images that depict only a portion of the scene available from the decoded panoramic video data at any one time, and wherein whenever a user command is received,
determining if the received command is a panning command specifying a viewing direction defining a portion of the scene the user wants displayed, whenever it is determined that the received command is a panning command, the process action of producing displayable images comprises an action of providing displayable images that depict only that portion of the scene specified by the user panning command, whenever it is determined that the received command is not a panning command, determining if the received command is a zoom command specifying a scale defining a portion of the scene the user wants displayed, and whenever it is determined that the received command is a zoom command, the process action of producing displayable images comprises an action of providing displayable images that depict only that portion of the scene specified by the user zoom command.
-
39. A system for viewing a panoramic video, comprising:
-
a decoder module that is in two-way communication with a source of encoded video data, and which inputs encoded panoramic video data representing a portion of each frame of the panoramic video from the source and outputs a decoded version thereof;
a 3D rendering module capable of mapping texture data associated with the decoded panoramic video data onto a prescribed 3D environment model to render a displayable image of said portion of each frame of the panoramic video; and
a display module capable of displaying each displayable image rendered by the 3D rendering module. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
-
-
60. A system for viewing panoramic videos, comprising:
-
a general purpose computing device;
a computer program comprising program modules executable by the computing device, wherein the computing device is directed by the program modules of the computer program to, maintain two-way communications with a source of encoded video data, said encoded video data representing sequential frames of a panoramic video;
decode said encoded panoramic video data;
produce displayable images from the decoded panoramic video data by mapping the data onto a prescribed 3D environment model; and
display each displayable image.
-
-
61. A computer-readable medium having computer-executable instructions for enabling the viewing of panoramic videos, said computer-executable instructions comprising:
-
maintaining two-way communications with a source of encoded video data, said encoded video data representing a portion of each frame of the panoramic video;
decoding said inputted panoramic video data;
mapping texture data associated with the decoded panoramic video data onto a prescribed 3D environment model to render a displayable image of said portion of each frame of the panoramic video; and
displaying each displayable image.
-
Specification