US2013321413A1PendingUtilityA1

Video generation using convict hulls

57
Assignee: MICROSOFT CORPPriority: May 31, 2012Filed: Mar 8, 2013Published: Dec 5, 2013
Est. expiryMay 31, 2032(~5.9 yrs left)· nominal 20-yr term from priority
H04N 13/257H04N 13/117H04R 2227/005H04N 7/15G06T 15/08G06T 17/00G06T 2210/56H04N 13/194G06T 15/04H04N 7/157H04N 13/246H04N 13/239H04S 2400/15H04N 7/142G06T 15/205H04N 13/243
57
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Video of a scene is generated and presented to a user. A stream of mesh models of the scene is generated from one or more streams of sensor data that represent the scene. Each of the mesh models is sliced using a series of planes that are parallel to each other, where each of the planes in the series defines one or more contours each of which defines a specific region on the plane where the mesh model intersects the plane. A texture map is generated for each of the mesh models which defines texture data corresponding to each of the contours that is defined by the series of planes. Images of the scene are rendered from scene proxies that include a stream of mathematical equations describing the contours, and a stream of the texture maps. The images are displayed.

Claims

exact text as granted — not AI-modified
Wherefore, what is claimed is: 
     
         1 . A computer-implemented process for generating a video of a scene, comprising:
 using a computing device to perform the following process actions:   receiving one or more streams of sensor data that represent the scene; and   generating scene proxies from said streams of sensor data, said generation comprising the actions of:
 generating a stream of mesh models of the scene from said streams of sensor data, and 
 for each of the mesh models,
 slicing the mesh model using a series of planes that are parallel to each other, each of the planes in the series defining one or more contours each of which defines a specific region on the plane where the mesh model intersects the plane, and 
 generating a texture map for the mesh model which defines texture data corresponding to each of the contours that is defined by the series of planes. 
 
   
     
     
         2 . The process of  claim 1 , wherein the texture map for the mesh model comprises a series of scanlines each of which corresponds to a different one of the planes in the series of planes, each of the scanlines comprises a series of texels, and the process action of generating a texture map for the mesh model which defines texture data corresponding to each of the contours that is defined by the series of planes comprises the actions of:
 for each of the planes in the series of planes,
 analyzing each of the contours that is defined by the plane in a prescribed order across the plane to identify a series of point locations along the contour, said analysis being performed starting from a prescribed zero position on the contour, said zero position being the same for each of the contours that is defined by the plane, 
 for each of the contours that is defined by the plane, using the series of point locations to determine a mathematical equation describing the contour, 
 assigning the texels in the scanline corresponding to the plane to the contours that are defined by the plane, said texel assignment being performed in the prescribed order across the plane, and 
 entering information specifying said texel assignment into the texture map for the mesh model; and 
   using the one or more streams of sensor data that represent the scene to compute texture data for each of the texels that is in the texture map for the mesh model; and   entering said computed texture data into the texture map for the mesh model.   
     
     
         3 . The process of  claim 2 , wherein the process action of using the one or more streams of sensor data that represent the scene to compute texture data for each of the texels that is in the texture map for the mesh model comprises an action of, for each of said texels, using a projective texture mapping method to sample each of said streams of sensor data and combine texture information from each of said samples to generate texture data for the texel. 
     
     
         4 . The process of  claim 2 , wherein the process action of assigning the texels in the scanline corresponding to the plane to the contours that are defined by the plane comprises the actions of:
 for each of the contours that is defined by the plane,
 calculating the length of the contour, 
 calculating the normalized length of the contour by dividing the length of the contour by the sum of the lengths of all of the contours that are defined by the plane, 
 calculating the number of texels in said scanline that are to be assigned to the contour by multiplying the normalized length of the contour and the total number of texels that is in said scanline, and 
 assigning said calculated number of texels to the contour. 
   
     
     
         5 . The process of  claim 1 , wherein the texture data comprises one or more of: color data; or specular highlight data; or transparency data; or reflection data; or shadowing data. 
     
     
         6 . The process of  claim 1 , wherein each of the mesh models comprises a collection of vertices, a prescribed spacing is used between successive planes in the series of planes, and said spacing is selected such that the series of planes intersects a maximum number of vertices in each of the mesh models. 
     
     
         7 . The process of  claim 1 , wherein either,
 the one or more streams of sensor data comprise a single stream of sensor data which represents the scene from a single geometric perspective, and the video being generated is a single viewpoint video, or   the one or more streams of sensor data comprise a plurality of streams of sensor data each of which represents the scene from a different geometric perspective, and the video being generated is a free viewpoint video.   
     
     
         8 . The process of  claim 1 , further comprising an action of storing the scene proxies, said storing comprising the actions of:
 for each of the mesh models,
 storing a mathematical equation describing each of the contours that is defined by the series of planes, 
 storing data specifying which contours on neighboring planes in the series of planes correspond to each other, and 
 storing the texture map for the mesh model. 
   
     
     
         9 . The process of  claim 8 , wherein the mathematical equation describing a given contour specifies either a polygon approximation of the contour, or a non-uniform rational basis spline curve approximation of the contour. 
     
     
         10 . The process of  claim 8  wherein,
 whenever the spatial orientation of the series of planes is not pre-determined, the process action of storing the scene proxies further comprises an action of storing data specifying said spatial orientation, and 
 whenever the geometry of the series of planes is not pre-determined, the process action of storing the scene proxies further comprises an action of storing data specifying said geometry, said data comprising one or more of:
 data specifying the number of planes in the series of planes; or 
 data specifying a prescribed spacing that is used between successive planes in the series of planes; or 
 data specifying the shape and dimensions of each of the planes in the series of planes. 
 
 
     
     
         11 . The process of  claim 8  wherein,
 whenever the prescribed order across the plane is not pre-determined, the process action of storing the scene proxies further comprises an action of storing data specifying said order, 
 whenever the number of texels in each of the scanlines is not pre-determined, the process action of storing the scene proxies further comprises an action of storing data specifying said number, and 
 whenever the prescribed zero position on the contour is not pre-determined, the process action of storing the scene proxies further comprises an action of storing data specifying said zero position. 
 
     
     
         12 . The process of  claim 1 , further comprising an action of distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network, said distribution comprising the actions of:
 for each of the mesh models,
 transmitting a mathematical equation describing each of the contours that is defined by the series of planes over the network to said other computing device, 
 transmitting data specifying which contours on neighboring planes in the series of planes correspond to each other over the network to said other computing device, and 
 transmitting the texture map for the mesh model over the network to said other computing device. 
   
     
     
         13 . The process of  claim 12 , wherein whenever the spatial orientation of the series of planes is not pre-determined, the process action of distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network further comprises an action of transmitting data specifying said spatial orientation over the network to said other computing device. 
     
     
         14 . The process of  claim 12 , wherein whenever the geometry of the series of planes is not pre-determined, the process action of distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network further comprises an action of transmitting data specifying said geometry over the network to said other computing device, said data comprising one or more of:
 data specifying the number of planes in the series of planes; or   data specifying a prescribed spacing that is used between successive planes in the series of planes; or   data specifying the shape and dimensions of each of the planes in the series of planes.   
     
     
         15 . The process of  claim 12 , wherein,
 whenever the prescribed order across the plane is not pre-determined, the process action of distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network further comprises an action of transmitting data specifying said order over the network to said other computing device,   whenever the number of texels in each of the scanlines is not pre-determined, the process action of distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network further comprises an action of transmitting data specifying said number over the network to said other computing device, and   whenever the prescribed zero position on the contour is not pre-determined, the process action of distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network further comprises an action of transmitting data specifying said zero position over the network to said other computing device.   
     
     
         16 . The process of  claim 1 , wherein the series of planes comprises either a horizontal spatial orientation or a vertical spatial orientation. 
     
     
         17 . A computer-implemented process for presenting a video of a scene to a user, comprising:
 using a computing device to perform the following process actions:   receiving scene proxies, said scene proxies comprising:
 a stream of mathematical equations describing contours that are defined by a series of planes that are parallel to each other, and 
 a stream of texture maps defining texture data corresponding to each of the contours that is defined by the series of planes; 
   rendering images of the scene from the scene proxies, said rendering comprising the actions of:
 constructing the series of planes using data specifying the spatial orientation and geometry of the series of planes, 
 constructing the contours that are defined by the series of planes using the stream of mathematical equations, 
 constructing a series of point locations along each of said contours, said construction being performed in a prescribed order across each of the planes in the series of planes, said construction also being performed starting from a prescribed zero position on each of said contours, 
 tessellating the point locations that are defined by the series of planes, said tessellation generating a stream of polygonal models, each polygonal model comprising a collection of polygonal faces that are formed by neighboring point locations on corresponding contours on neighboring planes in the series of planes, 
 sampling the stream of texture maps to identify the texture data that corresponds to each of the polygonal faces in the stream of polygonal models, and 
 using said identified texture data to add texture to each of the polygonal faces in the stream of polygonal models; and 
   displaying the images of the scene.   
     
     
         18 . The process of  claim 17 , wherein each of the texture maps in the stream of texture maps comprises a series of scanlines each of which corresponds to a different one of the planes in the series of planes, each of the scanlines comprises a series of texels that are assigned to each of the contours that is defined by the plane corresponding to the scanline, and the process action of sampling the stream of texture maps to identify the texture data that corresponds to each of the polygonal faces in the stream of polygonal models comprises the actions of:
 for each of the scanlines in each of the texture maps, adapting the number of texels in the scanline that are assigned to each one of the contours that is defined by the plane corresponding to the scanline to be the average of the number of texels in the scanline that are assigned to said one of the contours and the number of texels in the next scanline in the series of scanlines that are assigned to a contour that corresponds to said one of the contours, said adaption resulting in a modified version of each of the texture maps; and   sampling the modified version of each of the texture maps to identify the texture data that corresponds to each of the polygonal faces in the stream of polygonal models.   
     
     
         19 . The process of  claim 17 , wherein the video being presented comprises one of:
 asynchronous single viewpoint video; or   asynchronous free viewpoint video; or   unidirectional live single viewpoint video; or   unidirectional live free viewpoint video; or   bidirectional live single viewpoint video; or   bidirectional live free viewpoint video.   
     
     
         20 . A computer-implemented process for generating a video of a scene, comprising:
 using a computing device to perform the following process actions:   receiving one or more streams of sensor data that represent the scene;   generating scene proxies from said streams of sensor data, said scene proxies generation comprising the actions of:
 generating a stream of mesh models of the scene from said streams of sensor data, and 
 for each of the mesh models,
 slicing the mesh model using a series of planes that are parallel to each other, each of the planes in the series defining one or more contours each of which defines a specific region on the plane where the mesh model intersects the plane, and 
 generating a texture map for the mesh model which defines texture data corresponding to each of the contours that is defined by the series of planes, said texture map comprising a series of scanlines each of which corresponds to a different one of the planes in the series of planes, each of the scanlines comprising a series of texels, said texture map generation comprising the actions of,
 for each of the planes in the series of planes, 
  analyzing each of the contours that is defined by the plane in a prescribed order across the plane to identify a series of point locations along the contour, 
  for each of the contours that is defined by the plane, using the series of point locations to determine a mathematical equation describing the contour, 
  assigning the texels in the scanline corresponding to the plane to the contours that are defined by the plane, said texel assignment being performed in the prescribed order across the plane, and 
  entering information specifying said texel assignment into the texture map for the mesh model, 
 using the one or more streams of sensor data that represent the scene to compute texture data for each of the texels that is in the texture map for the mesh model, and 
 entering said computed texture data into the texture map for the mesh model; and 
 
 
   distributing the scene proxies to an end user who either is, or will be, viewing the video on another computing device which is connected to a data communication network, said distribution comprising the actions of:
 for each of the mesh models,
 transmitting a mathematical equation describing each of the contours that is defined by the series of planes over the network to said other computing device, 
 transmitting data specifying which contours on neighboring planes in the series of planes correspond to each other over the network to said other computing device, and 
 transmitting the texture map for the mesh model over the network to said other computing device.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.