EP3698332A1 - An apparatus, a method and a computer program for volumetric video - Google Patents

An apparatus, a method and a computer program for volumetric video

Info

Publication number
EP3698332A1
EP3698332A1 EP18867354.5A EP18867354A EP3698332A1 EP 3698332 A1 EP3698332 A1 EP 3698332A1 EP 18867354 A EP18867354 A EP 18867354A EP 3698332 A1 EP3698332 A1 EP 3698332A1
Authority
EP
European Patent Office
Prior art keywords
projection surface
projection
auxiliary
occluded
main
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.)
Pending
Application number
EP18867354.5A
Other languages
German (de)
French (fr)
Other versions
EP3698332A4 (en
Inventor
Vinod Kumar Malamal Vadakital
Sebastian Schwarz
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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 Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of EP3698332A1 publication Critical patent/EP3698332A1/en
Publication of EP3698332A4 publication Critical patent/EP3698332A4/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object

Definitions

  • the present invention relates to an apparatus, a method and a computer program for content dependent projection for volumetric video coding and decoding.
  • a video coding system may comprise an encoder that transforms an input video into a compressed representation suited for storage/transmission and a decoder that can uncompress the compressed video representation back into a viewable form.
  • the encoder may discard some information in the original video sequence in order to represent the video in a more compact form, for example, to enable the storage/transmission of the video information at a lower bitrate than otherwise might be needed.
  • Volumetric video data represents a three-dimensional scene or object and can be used as input for virtual reality (VR), augmented reality (AR) and mixed reality (MR) applications.
  • Such data describes the geometry, e.g. shape, size, position in three-dimensional (3D) space, and respective attributes, e.g. colour, opacity, reflectance and any possible temporal changes of the geometry and attributes at given time instances.
  • Volumetric video is either generated from 3D models through computer-generated imagery (CGI), or captured from real-world scenes using a variety of capture solutions, e.g. multi-camera, laser scan, combination of video and dedicated depth sensors, and more. Also, a combination of CGI and real-world data is possible.
  • CGI computer-generated imagery
  • Typical representation formats for such volumetric data are triangle meshes, point clouds (PCs), or voxel arrays.
  • Temporal information about the scene can be included in the form of individual capture instances, i.e. "frames" in 2D video, or other means, e.g. position of an object as a function of time.
  • 3D data acquisition devices has enabled reconstruction of highly detailed volumetric video representations of natural scenes.
  • Infrared, lasers, time-of- flight and structured light are all examples of devices that can be used to construct 3D video data.
  • Representation of the 3D data depends on how the 3D data is used.
  • Dense Voxel arrays have been used to represent volumetric medical data.
  • polygonal meshes are extensively used.
  • Point clouds on the other hand are well suited for applications such as capturing real world 3D scenes where the topology is not necessarily a 2D manifold.
  • Another way to represent 3D data is coding this 3D data as a set of texture and depth maps as is the case in the multi-view plus depth. Elevation maps and multilevel surface maps are other techniques to represent 3D data which are closely related to the multi-view plus depth technique
  • the reconstructed 3D scene may contain tens or even hundreds of millions of points.
  • One way to compress a time-varying volumetric scene/object is to project 3D surfaces on to some number of pre-defined 2D planes.
  • Regular 2D video compression algorithms can then be used to compress various aspects of the projected surfaces.
  • a time-varying 3D point cloud with spatial and texture coordinates, can be mapped into a sequence of at least two sets of planes, where one of the two sets carry the texture data and the other carries the distance of the mapped 3D surface points from the projection surfaces.
  • the 3D surface structure may be so complex that the projection process might not be able to map all the scene/object texture data on to the selected projection surfaces.
  • the primary reason for this is the occluding of parts of the 3D scene/object surfaces by other surfaces that are closer to the chosen projection surfaces.
  • a volumetric video for example dynamic point clouds, arrays of voxels or mesh models or a combination of such, may be projected onto a number of projection surfaces having simple geometries, for example sphere(s), cylinder(s), cube(s), polyhedron(s) and/or plane(s).
  • a projection surface may be a piece-wise continuous and smooth surface in three-dimensional space. Piece-wise smoothness may be understood so that there are regions of the surface where the direction of the surface normal does not change abruptly (i.e. the values of the coefficients of the surface normal's coordinate components are continuous).
  • a projection surface may comprise pieces of simple geometric surfaces.
  • a projection surface may also evolve (change) over time.
  • the texture and geometry of point clouds, voxel arrays or mesh models may form pixel images, e.g. texture images and depth images (indicative of distance of a point from the projection surface).
  • Such projection surfaces may be unfolded onto two-dimensional (2D) planes, e.g. resulting in a two-dimensional pixel image.
  • Standard 2D video coding may be applied for each projection to code the pixel information resulting from the texture data.
  • relevant projection geometry information comprising e.g. projection surface type, location and orientation of the projection surface in 3D space, and/or size of the projection surface, may be transmitted either in the same bitstream or separately along with the bitstream.
  • the bitstream may be decoded and volumetric video may be reconstructed from decoded 2D projections and projection geometry information.
  • each object in the 3D scene presentation is projected based on its skeleton where different parts of the skeleton are projected to different volumetric shapes e.g. cylinders.
  • Each cylinder has its own size and orientation.
  • criteria may be the amount of motion for the content presented by that cylinder, cylinders which include parts of the scene with high/low frequency components, cylinders which include parts of the scene which are closer/farther to the viewer, cylinders which include region(s) of interest (ROI) such as faces, written text, etc.
  • ROI region(s) of interest
  • a bitstream may be encoded or encapsulated, the bitstream comprising one or more coded texture pictures and one or more coded accompanying additional pictures per texture picture.
  • Each texture picture may represent a 2D projection of 3D data onto a given geometry. Alternatively or in addition, several projections may be frame-packed into a single picture.
  • An additional geometry picture may represent geometry data, e.g. depth.
  • Additional auxiliary pictures may represent further attributes, e.g. surface normal, reflectance and opacity, transmittance and/or refraction of the 3D data.
  • Relevant projection information may be indicated in or along with the bitstream.
  • general projection information may be given in or along the bitstream: number of coded texture pictures or frame-packing information.
  • Projection geometry information may be given for the projections: for example, comprising shape, size, location and orientation of the projection surfaces. Temporal changes in location, orientation and size of such geometries may be encoded, possibly as a function of time. Possible further sub-division of such geometries and resulting changes in geometry information may be given.
  • auxiliary geometry data may be given: bit depth, quantisation, value range and/or inverse values, that is, coding of negative radius or depth values of the geometry picture.
  • auxiliary data i.e. surface normal, reflectance and opacity, transmittance and/or refraction, etc. may be given.
  • a bitstream comprising one or more coded texture picture(s) and one or more coded accompanying geometry pictures and auxiliary pictures per texture picture may be received and decoded.
  • the texture picture represents a two-dimensional projection of three-dimensional data onto a projection surface with a given geometry.
  • a geometry picture may represent geometry data, e.g. depth from the projection surface.
  • Additional auxiliary pictures may represent further attributes, e.g. surface normal, reflectance, opacity, etc. as described earlier.
  • Relevant projection information may also be decoded from or along with a bitstream. From this decoded information, a 3D scene may be reconstructed accordingly.
  • Some embodiments provide a method for encoding and decoding volumetric video information.
  • a method, apparatus and computer program product for volumetric video coding as well as decoding is provided.
  • An apparatus comprises at least one processor and at least one memory, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:
  • a computer readable storage medium comprises code for use by an apparatus, which when executed by a processor, causes the apparatus to perform:
  • An apparatus comprises:
  • means for defining an auxiliary projection surface for the occluded part means for projecting the occluded part to the auxiliary projection surface; and means for providing an indication of a relationship of the auxiliary projection surface with the main projection surface.
  • An apparatus comprises at least one processor and at least one memory, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:
  • a computer readable storage medium comprises code for use by an apparatus, which when executed by a processor, causes the apparatus to perform:
  • An apparatus comprises:
  • Further aspects include at least apparatuses and computer program products/code stored on a non-transitory memory medium arranged to carry out the above methods.
  • Fig. 1 shows a system for capturing, encoding, decoding, reconstructing and viewing a three-dimensional scheme
  • FIGs. 2a and 2b show a capture device and a viewing device
  • Figs. 3a and 3b show an encoder and decoder for encoding and decoding texture pictures, geometry pictures and/or auxiliary pictures;
  • Figs. 4a, 4b, 4c and 4d show a setup for forming a stereo image of a scene to a user;
  • Figs. 5a illustrates projection of source volumes in a scene and parts of an object to projection surfaces, as well as determining depth information;
  • Fig. 5b shows an example of projecting an object using a cube map projection format
  • Fig. 6 shows a projection of a source volume to a projection surface, and inpainting of a sparse projection
  • Fig. 7 shows an examples of occlusion of surfaces
  • Fig. 8a shows an example of a cross section of a surface of a three-dimensional object enclosed in a bounding box as viewed from the top of the bounding box;
  • Fig. 8b shows new projection surfaces established to project the occluded surfaces of the three-dimensional object of Fig. 8a;
  • Fig. 8c illustrates calculation of the relative pose of one projection surface with respect to another projection surface, in accordance with an embodiment
  • Figs. 9a and 9b show an example of texture planes and depth planes projected on to seven projection surfaces
  • Fig. 9c illustrates an example of a coded bit stream after layering of respective attributes of the projection surfaces of Figs. 9a and 9b;
  • Figs. 10a and 10b show flow charts for compressing, encoding and decoding of a scene of a volumetric video
  • Fig. 11a illustrates an example of an encoding element
  • Fig. 1 lb illustrates an example of a decoding element.
  • a sparse voxel octree (SVO) describes a volume of a space containing a set of solid voxels of varying sizes. Empty areas within the volume are absent from the tree, which is why it is called "sparse”.
  • a three-dimensional volumetric representation of a scene is determined as a plurality of voxels on the basis of input streams of at least one multicamera device.
  • at least one but preferably a plurality (i.e. 2, 3, 4, 5 or more) of multicamera devices are used to capture 3D video representation of a scene.
  • the multicamera devices are distributed in different locations in respect to the scene, and therefore each multicamera device captures a different 3D video representation of the scene.
  • the 3D video representations captured by each multicamera device may be used as input streams for creating a 3D volumetric representation of the scene, said 3D volumetric representation comprising a plurality of voxels.
  • Voxels may be formed from the captured 3D points e.g.
  • Voxels may also be formed through the construction of the sparse voxel octree. Each leaf of such a tree represents a solid voxel in world space; the root node of the tree represents the bounds of the world.
  • the sparse voxel octree construction may have the following steps: 1) map each input depth map to a world space point cloud, where each pixel of the depth map is mapped to one or more 3D points; 2) determine voxel attributes such as colour and surface normal vector by examining the neighbourhood of the source pixel(s) in the camera images and the depth map; 3) determine the size of the voxel based on the depth value from the depth map and the resolution of the depth map; 4) determine the SVO level for the solid voxel as a function of its size relative to the world bounds; 5) determine the voxel coordinates on that level relative to the world bounds; 6) create new and/or traversing existing SVO nodes until arriving at the determined voxel coordinates; 7) insert the solid voxel as a leaf of the tree, possibly replacing or merging attributes from a previously existing voxel at those coordinates.
  • a volumetric video frame is a complete sparse voxel octree that models the world at a specific point in time in a video sequence.
  • Voxel attributes contain information like colour, opacity, surface normal vectors, and surface material properties. These are referenced in the sparse voxel octrees (e.g. colour of a solid voxel), but can also be stored separately.
  • Point clouds are commonly used data structures for storing volumetric content. Compared to point clouds, sparse voxel octrees describe a recursive subdivision of a finite volume with solid voxels of varying sizes, while point clouds describe an unorganized set of separate points limited only by the precision of the used coordinate values.
  • each frame may produce several hundred megabytes or several gigabytes of voxel data which needs to be converted to a format that can be streamed to the viewer, and rendered in real-time.
  • the amount of data depends on the world complexity and the number of cameras. The larger impact comes in a multi-device recording setup with a number of separate locations where the cameras are recording. Such a setup produces more information than a camera at a single location.
  • Fig. 1 shows a system for capturing, encoding, decoding, reconstructing and viewing a three-dimensional scheme, that is, for 3D video and 3D audio digital creation and playback.
  • the task of the system is that of capturing sufficient visual and auditory information from a specific scene to be able to create a scene model such that a convincing reproduction of the experience, or presence, of being in that location can be achieved by one or more viewers physically located in different locations and optionally at a time later in the future.
  • Such reproduction requires more information that can be captured by a single camera or microphone, in order that a viewer can determine the distance and location of objects within the scene using their eyes and their ears.
  • two camera sources are used.
  • the human auditory system can be able to sense the direction of sound, at least two microphones are used (the commonly known stereo sound is created by recording two audio channels).
  • the human auditory system can detect the cues, e.g. in timing difference of the audio signals to detect the direction of sound.
  • the system of Fig. 1 may consist of three main parts: image sources, a server and a rendering device.
  • a video source SRC1 may comprise multiple cameras CAM1, CAM2, ..., CAMN with overlapping field of view so that regions of the view around the video capture device is captured from at least two cameras.
  • the video source SRC1 may comprise multiple microphones to capture the timing and phase differences of audio originating from different directions.
  • the video source SRC1 may comprise a high-resolution orientation sensor so that the orientation (direction of view) of the plurality of cameras CAM1, CAM2, ..., CAMN can be detected and recorded.
  • the cameras or the computers may also comprise or be functionally connected to means for forming distance information corresponding to the captured images, for example so that the pixels have corresponding depth data.
  • Such depth data may be formed by scanning the depth or it may be computed from the different images captured by the cameras.
  • the video source SRCl comprises or is functionally connected to, or each of the plurality of cameras CAM1, CAM2, ..., CAMN comprises or is functionally connected to a computer processor and memory, the memory comprising computer program code for controlling the source and/or the plurality of cameras.
  • the image stream captured by the video source i.e. the plurality of the cameras, may be stored on a memory device for use in another device, e.g. a viewer, and/or transmitted to a server using a communication interface. It needs to be understood that although a video source comprising three cameras is described here as part of the system, another amount of camera devices may be used instead as part of the system.
  • one or more sources SRC2 of synthetic imagery may be present in the system, comprising a scene model. Such sources may be used to create and transmit the scene model and its development over time, e.g. instantaneous states of the model.
  • the model can be created or provided by the source SRCl and/or SRC2, or by the server SERVER. Such sources may also use the model of the scene to compute various video bitstreams for transmission.
  • One or more two-dimensional video bitstreams may be computed at the server SERVER or a device RENDERER used for rendering, or another device at the receiving end.
  • the viewer may see a three- dimensional virtual world as described in the context of Figs 4a— 4d.
  • the devices SRCl and SRC2 may comprise or be functionally connected to one or more computer processors
  • the image stream captured by the device and the scene model may be stored on a memory device for use in another device, e.g. a viewer, or transmitted to a server or the viewer using a communication interface COMM2.
  • a storage, processing and data stream serving network in addition to the capture device SRCl .
  • the device SERVER comprises or is functionally connected to a computer processor PROC3 and memory MEM3, the memory comprising computer program PROGR3 code for controlling the server.
  • the device SERVER may be connected by a wired or wireless network connection, or both, to sources SRC1 and/or SRC2, as well as the viewer devices VIEWER1 and VIEWER2 over the communication interface COMM3.
  • the creation of a three-dimensional scene model may take place at the server SERVER or another device by using the images captured by the devices SRC1.
  • the scene model may be a model created from captured image data (a real-world model), or a synthetic model such as on device SRC2, or a combination of such.
  • the scene model may be encoded to reduce its size and transmitted to a decoder, for example viewer devices.
  • the viewer devices may have a rendering module and a display module, or these functionalities may be combined in a single device.
  • the devices may comprise or be functionally connected to a computer processor PROC4 and memory MEM4, the memory comprising computer program PROG4 code for controlling the viewing devices.
  • the viewer (playback) devices may consist of a data stream receiver for receiving a video data stream and for decoding the video data stream.
  • the video data stream may be received from the server SERVER or from some other entity, such as a proxy server, an edge server of a content delivery network, or a file available locally in the viewer device.
  • the data stream may be received over a network connection through communications interface COMM4, or from a memory device MEM6 like a memory card CARD2.
  • the viewer devices may have a graphics processing unit for processing of the data to a suitable format for viewing.
  • the viewer VIEWER1 may comprise a high-resolution stereo-image head-mounted display for viewing the rendered stereo video sequence.
  • the head-mounted display may have an orientation sensor DETl and stereo audio headphones.
  • the viewer VIEWER2 may comprise a display (either two-dimensional or a display enabled with 3D technology for displaying stereo video), and the rendering device may have an orientation detector DET2 connected to it.
  • the viewer VIEWER2 may comprise a 2D display, since the volumetric video rendering can be done in 2D by rendering the viewpoint from a single eye instead of a stereo eye pair.
  • Fig. 1 depicts one SRC1 device and one SRC2 device, but generally the system may comprise more than one SRC1 device and/or SRC2 device.
  • any of the devices may be a computer or a portable computing device, or be connected to such or configured to be connected to such.
  • the devices SRCl, SRC2, SERVER, RENDERER, VIEWER1, VIEWER2
  • the devices may comprise multiple parts or may be comprised of multiple connected devices.
  • SERVER may comprise several devices, some of which may be used for editing the content produced by SRCl and/or SRC2 devices, some others for compressing the edited content, and a third set of devices may be used for transmitting the compressed content.
  • Such devices may have computer program code for carrying out methods according to various examples described in this text.
  • Figs. 2a and 2b show a capture device and a viewing device, respectively.
  • Fig. 2a illustrates a camera CAM1.
  • the camera has a camera detector CAMDET1, comprising a plurality of sensor elements for sensing intensity of the light hitting the sensor element.
  • the camera has a lens OBJ1 (or a lens arrangement of a plurality of lenses), the lens being positioned so that the light hitting the sensor elements travels through the lens to the sensor elements.
  • the camera detector CAMDET1 has a nominal centre point CP1 that is a middle point of the plurality of sensor elements, for example for a rectangular sensor the crossing point of diagonals of the rectangular sensor.
  • the lens has a nominal centre point PP1, as well, lying for example on the axis of symmetry of the lens.
  • the direction of orientation of the camera is defined by the line passing through the centre point CP1 of the camera sensor and the centre point PP1 of the lens.
  • the direction of the camera is a vector along this line pointing in the direction from the camera sensor to the lens.
  • the optical axis of the camera is understood to be this line CP1-PP1.
  • the optical path from the lens to the camera detector need not always be a straight line but there may be mirrors and/or some other elements which may affect the optical path between the lens and the camera detector.
  • Fig. 2b shows a head-mounted display (HMD) for stereo viewing.
  • the head- mounted display comprises two screen sections or two screens DISP1 and DISP2 for displaying the left and right eye images.
  • the displays are close to the eyes, and therefore lenses are used to make the images easily viewable and for spreading the images to cover as much as possible of the eyes' field of view.
  • the device When the device will be used by a user, the user may put the device on her/his head so that it will be attached to the head of the user so that it stays in place even when the user turns his head.
  • the device may have an orientation detecting module ORDETl for determining the head movements and direction of the head.
  • the head-mounted display gives a three-dimensional (3D) perception of the
  • Time-synchronized video and orientation data is first recorded with the capture devices. This can consist of multiple concurrent video streams as described above.
  • One or more time-synchronized audio streams may also be recorded with the capture devices.
  • the different capture devices may form image and geometry information of the scene from different directions. For example, there may be three, four, five, six or more cameras capturing the scene from different sides, like front, back, left and right, and/or at directions between these, as well as from the top or bottom, or any combination of these.
  • the cameras may be at different distances, for example some of the cameras may capture the whole scene and some of the cameras may be capturing one or more objects in the scene.
  • the cameras may be directed towards an object, looking onto the object from different directions, where the object is e.g. in the middle of the cameras. In this manner, the texture and geometry of the scene and the objects within the scene may be captured adequately.
  • the cameras or the system may comprise means for determining geometry
  • a computer model of a scene may be created.
  • a synthetic computer model of a virtual scene may be used.
  • the models (at successive time instances) are then transmitted immediately or later to the storage and processing network for processing and conversion into a format suitable for subsequent delivery to playback devices.
  • the conversion may involve processing and coding to improve the quality and/or reduce the quantity of the scene model data while preserving the quality at a desired level.
  • Each playback device receives a stream of the data (either computed video data or scene model data) from the network, and renders it into a viewing reproduction of the original location which can be experienced by a user.
  • the reproduction may be two- dimensional or three-dimensional (stereo image pairs).
  • Figs. 3a and 3b show an encoder and decoder for encoding and decoding texture pictures, geometry pictures and/or auxiliary pictures.
  • a video codec consists of an encoder that transforms an input video into a compressed representation suited for
  • Figure 3 a illustrates an image to be encoded (P); a predicted representation of an image block (P' n ); a prediction error signal (D n ); a reconstructed prediction error signal (D' n ); a preliminary reconstructed image (I' n ); a final reconstructed image (R' n ); a transform (T) and inverse transform (T 1 ); a quantization (Q) and inverse quantization (Q 1 ); entropy encoding (E); a reference frame memory (RFM); inter prediction (Pinter); intra prediction (Pmtra); mode selection (MS) and filtering (F).
  • Figure 3b illustrates a predicted representation of an image block (P' n ); a reconstructed prediction error signal (D' n ); a preliminary reconstructed image (I' n ); a final reconstructed image (R' n ); an inverse transform (T 1 ); an inverse quantization (Q 1 ); an entropy decoding (E 1 ); a reference frame memory (RFM); a prediction (either inter or intra) (P); and filtering (F).
  • Figs. 4a, 4b, 4c and 4d show a setup for forming a stereo image of a scene to a user, for example a video frame of a 3D video.
  • Fig. 4a a situation is shown where a human being is viewing two spheres Al and A2 using both eyes El and E2.
  • the sphere Al is closer to the viewer than the sphere A2, the respective distances to the first eye El being LEI,AI an d LEI,A2-
  • the different objects reside in space at their respective (x,y,z) coordinates, defined by the coordinate system SZ, SY and SZ.
  • the distance di 2 between the eyes of a human being may be approximately 62-64 mm on average, and varying from person to person between 55 and 74 mm. This distance is referred to as the parallax, on which stereoscopic view of the human vision is based on.
  • the viewing directions (optical axes) DIR1 and DIR2 are typically essentially parallel, possibly having a small deviation from being parallel, and define the field of view for the eyes.
  • the head of the user has an orientation (head orientation) in relation to the surroundings, most easily defined by the common direction of the eyes when the eyes are looking straight ahead. That is, the head orientation tells the yaw, pitch and roll of the head in respect of a coordinate system of the scene where the user is.
  • the spheres Al and A2 are in the field of view of both eyes.
  • the centre-point O12 between the eyes and the spheres are on the same line. That is, from the centre-point, the sphere A2 is behind the sphere Al .
  • each eye sees part of sphere A2 from behind Al, because the spheres are not on the same line of view from either of the eyes.
  • Fig. 4b there is a setup shown, where the eyes have been replaced by cameras CI and C2, positioned at the location where the eyes were in Fig. 4a.
  • the distances and directions of the setup are otherwise the same.
  • the purpose of the setup of Fig. 4b is to be able to take a stereo image of the spheres Al and A2.
  • the two images resulting from image capture are Fci and Fc2.
  • the "left eye” image Fci shows the image SA2 of the sphere A2 partly visible on the left side of the image SAI of the sphere Al .
  • the "right eye” image Fc2 shows the image SA2 of the sphere A2 partly visible on the right side of the image SAI of the sphere Al .
  • This difference between the right and left images is called disparity, and this disparity, being the basic mechanism with which the HVS determines depth information and creates a 3D view of the scene, can be used to create an illusion of a 3D image.
  • the camera pair CI and C2 has a natural parallax, that is, it has the property of creating natural disparity in the two images of the cameras. Natural disparity may be understood to be created even though the distance between the two cameras forming the stereo camera pair is somewhat smaller or larger than the normal distance (parallax) between the human eyes, e.g. essentially between 40 mm and 100 mm or even 30 mm and 120 mm.
  • the images Fci and Fc2 may be captured by cameras CI and C2, where the cameras CI and C2 may be real- world cameras or they may be virtual cameras. In the case of virtual cameras, the images Fci and Fc2 may be computed from a computer model of a scene by setting the direction, orientation and viewport of the cameras CI and C2 appropriately such that a stereo image pair suitable for viewing by the human visual system (HVS) is created.
  • HVS human visual system
  • Fig. 4c the creating of this 3D illusion is shown.
  • the images Fci and Fc2 captured or computed by the cameras CI and C2 are displayed to the eyes El and E2, using displays Dl and D2, respectively.
  • the disparity between the images is processed by the human visual system so that an understanding of depth is created. That is, when the left eye sees the image SA2 of the sphere A2 on the left side of the image SAI of sphere Al, and respectively the right eye sees the image SA2 of the sphere A2 on the right side, the human visual system creates an understanding that there is a sphere V2 behind the sphere VI in a three-dimensional world.
  • the images Fci and Fc2 can also be synthetic, that is, created by a computer. If they carry the disparity information, synthetic images will also be seen as three-dimensional by the human visual system. That is, a pair of computer-generated images can be formed so that they can be used as a stereo image.
  • Fig. 4d illustrates how the principle of displaying stereo images to the eyes can be used to create 3D movies or virtual reality scenes having an illusion of being three- dimensional.
  • the images Fxi and Fx2 are either captured with a stereo camera or computed from a model so that the images have the appropriate disparity.
  • a large number e.g. 30
  • the human visual system will create a cognition of a moving, three-dimensional image.
  • the field of view represented by the content may be greater than the displayed field of view e.g. in an arrangement depicted in Fig. 4d. Consequently, only a part of the content along the direction of view (a.k.a. viewing orientation) is displayed at a single time.
  • This direction of view that is, the head orientation
  • This direction of view may be determined as a real orientation of the head e.g. by an orientation detector mounted on the head, or as a virtual orientation determined by a control device such as a joystick or mouse that can be used to manipulate the direction of view without the user actually moving his head.
  • head orientation may be used to refer to the actual, physical orientation of the user's head and changes in the same, or it may be used to refer to the virtual direction of the user's view that is determined by a computer program or a computer input device.
  • the content may enable viewing from several viewing positions within the 3D space.
  • the texture picture(s), the geometry picture(s) and the geometry information may be used to synthesize the images Fxi and/or Fx 2 as if the displayed content was captured by camera(s) located at the viewing position.
  • volumetric video describes a 3D scene or object at different (successive) time instances, such data can be viewed from any viewpoint. Therefore, volumetric video is an important format for any augmented reality, virtual reality and mixed reality applications, especially for providing viewing capabilities having six degrees of freedom (so-called 6DOF viewing).
  • FIG. 5a illustrates projection of source volumes in a digital scene model SCE and parts of an object model OBJ1, OBJ2, OBJ3, BG4 to projection surfaces SI, S2, S3, S4, as well as determining depth information for the purpose of encoding volumetric video.
  • the projection of source volumes SV1, SV2, SV3, SV4 may result in texture pictures and geometry pictures, and there may be geometry information related to the projection source volumes and/or projection surfaces.
  • Texture pictures, geometry pictures and projection geometry information may be encoded into a bitstream.
  • a texture picture may comprise information on the colour data of the source of the projection. Through the projection, such colour data may result in pixel colour information in the texture picture. Pixels may be coded in groups, e.g. coding units of rectangular shape.
  • the projection geometry information may comprise but is not limited to one or more of the following: - projection type, such as planar projection or equirectangular projection
  • - projection surface type such as a cube, sphere, cylinder, polyhedron
  • a projection centre such as a projection centre point, axis, or plane, from which a geometry primitive is projected onto the projection surface
  • the projection may take place by projecting the geometry primitives (points of a point could, triangles of a triangle mesh or voxels of a voxel array) of a source volume SV1 , SV2, SV3, SV4 (or an object OBJ1, OBJ2, OBJ3, BG4) onto a projection surface SI, S2, S3, S4.
  • the geometry primitives may comprise information on the texture, for example a colour value or values of a point, a triangle or a voxel.
  • the projection surface may surround the source volume at least partially such that projection of the geometry primitives happens from the centre of the projection surface outwards to the surface.
  • a cylindrical surface has a projection centre axis and a spherical surface has a projection centre point.
  • a cubical or rectangular surface may have projection centre planes or a projection centre axis or point and the projection of the geometry primitives may take place either orthogonally to the sides of the surface or from the projection centre axis or point outwards to the surface.
  • the projection surfaces e.g. cylindrical and rectangular, may be open from the top and the bottom such that when the surface is cut and rolled out on a two-dimensional plane, it forms a rectangular shape.
  • Such rectangular shape with pixel data can be encoded and decoded with a video codec.
  • the projection surface such as a planar surface or a sphere may be inside group of geometry primitives, e.g. inside a point cloud that defines a surface.
  • the projection may take place from outside in towards the centre and may result in sub-sampling of the texture data of the source.
  • points may be represented with any floating point coordinates.
  • a quantized point cloud may be used to reduce the amount of data, whereby the coordinate values of the point cloud are represented e.g. with 10-bit, 12-bit or 16-bit integers. Integers may be used because hardware accelerators may be able to operate on integers more efficiently.
  • the points in the point cloud may have associated colour, reflectance, opacity etc. texture values.
  • the points in the point cloud may also have a size, or a size may be the same for all points. The size of the points may be understood as indicating how large an object the point appears to be in the model in the projection.
  • the point cloud is projected by ray casting from the projection surface to find out the pixel values of the projection surface. In such a manner, the topmost point remains visible in the projection, while points closer to the centre of the projection surface may be occluded.
  • the original point cloud, meshes, voxels, or any other model is projected outwards to a simple geometrical shape, this simple geometrical shape being the projection surface.
  • Different projection surfaces may have different characteristics in terms of projection and reconstruction.
  • a projection to a cubical surface may be the most efficient, and a cylindrical projection surface may provide accurate results efficiently.
  • cones, polyhedron-based parallelepipeds (hexagonal or octagonal, for example) and spheres or a simple plane may be used as projection surfaces.
  • the phrase along the bitstream may be defined to refer to out-of-band transmission, signalling, or storage in a manner that the out-of-band data is associated with the bitstream.
  • the phrase decoding along the bitstream or alike may refer to decoding the referred out-of-band data (which may be obtained from out-of-band transmission, signalling, or storage) that is associated with the bitstream.
  • an indication along the bitstream may refer to metadata in a container file that encapsulates the bitstream.
  • a first texture picture may be encoded into a bitstream, and the first texture picture may comprise a first projection of texture data of a first source volume SV1 of a scene model SCE onto a first projection surface SI .
  • the scene model SCE may comprise a number of further source volumes SV2, SV3, SV4.
  • data on the position of the originating geometry primitive may also be determined, and based on this determination, a geometry picture may be formed. This may happen for example so that depth data is determined for each or some of the texture pixels of the texture picture. Depth data is formed such that the distance from the originating geometry primitive such as a point to the projection surface is determined for the pixels. Such depth data may be represented as a depth picture, and similarly to the texture picture, such geometry picture (in this example, depth picture) may be encoded and decoded with a video codec.
  • This first geometry picture may be seen to represent a mapping of the first projection surface to the first source volume, and the decoder may use this information to determine the location of geometry primitives in the model to be reconstructed.
  • a picture may be defined to be either a frame or a field.
  • a frame may be defined to comprise a matrix of luma samples and possibly the corresponding chroma samples.
  • a field may be defined to be a set of alternate sample rows of a frame. Fields may be used as encoder input for example when the source signal is interlaced. Chroma sample arrays may be absent (and hence monochrome sampling may be in use) or may be subsampled when compared to luma sample arrays.
  • each of the two chroma arrays has half the height and half the width of the luma array.
  • each of the two chroma arrays has the same height and half the width of the luma array.
  • arrays has the same height and width as the luma array.
  • Texture picture(s) and the respective geometry picture(s) may have the same or different chroma format.
  • a pixel may be defined to a be a sample of one of the sample arrays of the picture or may be defined to comprise the collocated samples of all the sample arrays of the picture.
  • multiple source volumes may be encoded as texture pictures, geometry pictures and projection geometry information into the bitstream in a similar manner. That is, as in Fig. 5a, the scene model SCE may comprise multiple objects OBJ1, OBJ2, OBJ3, OBJ4, and these may be treated as source volumes SV1, SV2, SV3, SV4 and each object may be coded as a texture picture, geometry picture and projection geometry information.
  • the first texture picture of the first source volume SV1 and further texture pictures of the other source volumes SV2, SV3, SV4 may represent the same time instance. That is, there may be a plurality of texture and geometry pictures and projection geometry information for one time instance, and the other time instances may be coded in a similar manner. Since the various source volumes are in this way producing sequences of texture pictures and sequences of geometry pictures, as well as sequences of projection geometry information, the inter-picture redundancy in the picture sequences can be used to encode the texture and geometry data for the source volumes efficiently, compared to the presently known ways of encoding volume data.
  • An object OBJ3 (source volume SV3) may be projected onto a projection surface S3 and encoded into the bitstream as a texture picture, geometry picture and projection geometry information as described above. Furthermore, such source volume may be indicated to be static by encoding information into said bitstream on said fourth projection geometry being static.
  • a static source volume or object may be understood to be an object whose position with respect to the scene model remains the same over two or more or all time instances of the video sequence.
  • the geometry data may also stay the same, that is, the object's shape remains the same over two or more time instances.
  • some or all of the texture data may stay the same over two or more time instances.
  • the decoder By encoding information into the bitstream of the static nature of the source volume the encoding efficiency may further be improved, as the same information may not need to be coded multiple times. In this manner, the decoder will also be able to use the same reconstruction or partially same reconstruction of the source volume (object) over multiple time instances.
  • the different source volumes may be coded into the bitstream with different frame rates.
  • a slow-moving or relatively unchanging object may be encoded with a first frame rate
  • a fast-moving and/or changing object may be coded with a second frame rate.
  • the first frame rate may be slower than the second frame rate, for example one half or one quarter of the second frame rate, or even slower.
  • the second frame rate may be 15 frames per second, or 1 frame per second.
  • the first and second object (source volumes) may be "sampled" in synchrony such that some frames of the faster frame rate coincide with frames of the slower frame rate.
  • the scene model may have a coordinate system and one or more of the objects (source volumes) in the scene model may have their local coordinate systems.
  • the shape, size, location and orientation of one or more projection surfaces may be encoded into or along the bitstream with respect to the scene model coordinates.
  • the encoding may be done with respect to coordinates of the scene model or said first source volume. The choice of coordinate systems may improve the coding efficiency.
  • Information on temporal changes in location, orientation and size of one or more said projection surfaces may be encoded into or along the bitstream. For example, if one or more of the objects (source volumes) being encoded is moving or rotating with respect to the scene model, the projection surface moves or rotates with the object to preserve the projection as similar as possible.
  • the projection surfaces may be sub-divided respectively. Therefore, information on sub- division of one or more of the source volumes and respective changes in one or more of the projection surfaces may be encoded into or along the bitstream.
  • the resulting bitstream may then be output to be stored or transmitted for later decoding and reconstruction of the scene model.
  • a first texture picture may be decoded from a bitstream to obtain first decoded texture data, where the first texture picture comprises a first projection of texture data of a first source volume of the scene model to be reconstructed onto a first projection surface.
  • the scene model may comprise a number of further source volumes.
  • a first geometry picture may be decoded from the bitstream to obtain first decoded scene model geometry data.
  • the first geometry picture may represent a mapping of the first projection surface to the first source volume.
  • First projection geometry information of the first projection may be decoded from the bitstream, the first projection geometry information comprising information of position of the first projection surface in the scene model.
  • a reconstructed scene model may be formed by projecting the first decoded texture data to a first destination volume using the first decoded scene model geometry data and said first projection geometry information to determine where the decoded texture information is to be placed in the scene model.
  • a 3D scene model may be classified into two parts: first all dynamic parts, and second all static parts.
  • the dynamic part of the 3D scene model may further be sub-divided into separate parts, each representing objects (or parts of) an object in the scene model, that is, source volumes.
  • the static parts of the scene model may include e.g. static room geometry (walls, ceiling, fixed furniture) and may be compressed either by known volumetric data compression solutions, or, similar to the dynamic part, sub-divided into individual objects for projection-based compression as described earlier, to be encoded into the bitstream.
  • some objects may be a chair (static), a television screen (static geometry, dynamic texture), a moving person (dynamic).
  • a suitable projection geometry may be found, e.g. cube projection to represent the chair, another cube for the screen, a cylinder for the person's torso, a sphere for a detailed representation of the person's head, and so on.
  • the 3D data of each object may then be projected onto the respective projection surface and 2D planes are derived by "unfolding" the projections from three dimensions to two dimensions (plane).
  • the unfolded planes will have several channels, typically three for the colour representation of the texture, e.g. RGB, YUV, and one additional plane for the geometry (depth) of each projected point for later
  • Frame packing may be defined to comprise arranging more than one input picture, which may be referred to as (input) constituent frames, into an output picture.
  • frame packing is not limited to any particular type of constituent frames or the constituent frames need not have a particular relation with each other.
  • frame packing is used for arranging constituent frames of a stereoscopic video clip into a single picture sequence.
  • the arranging may include placing the input pictures in spatially non-overlapping areas within the output picture. For example, in a side-by-side arrangement, two input pictures are placed within an output picture horizontally adjacently to each other.
  • the arranging may also include partitioning of one or more input pictures into two or more constituent frame partitions and placing the constituent frame partitions in spatially non-overlapping areas within the output picture.
  • the output picture or a sequence of frame-packed output pictures may be encoded into a bitstream e.g. by a video encoder.
  • the bitstream may be decoded e.g. by a video decoder.
  • the decoder or a post-processing operation after decoding may extract the decoded constituent frames from the decoded picture(s) e.g. for displaying.
  • a standard 2D video encoder may then receive the planes as inputs, either as individual layers per object, or as a frame-packed representation of all objects.
  • the texture picture may thus comprise a plurality of projections of texture data from further source volumes and the geometry picture may represent a plurality of mappings of projection surfaces to the source volume.
  • separation boundaries may be signalled to recreate the individual planes for each object
  • separation boundaries may be signalled to recreate the individual planes for each object
  • classification of each object as static/dynamic may be signalled
  • - relevant data to create real- world geometry data from the decoded (quantised) geometry channel(s), e.g. quantisation method, depth ranges, bit depth, etc. may be signalled, - initial state of each object: geometry shape, location, orientation, size may be signalled,
  • signalling may, for example, be as follows:
  • NUM OBJECTS 4 // folding-chair, TV, person body, person head
  • PROJ CENTRE ⁇ 7 ⁇ // projection centre in real world coordinates
  • DEPTH QUANT // depth quantisation, i.e. 0 for linear, ...
  • the decoder may receive the static 3D scene model data together with the video bitstreams representing the dynamic parts of the scene model. Based on the signalled information on the projection geometries, each object may be reconstructed in 3D space and the decoded scene model is created by fusing all reconstructed parts (objects or source volumes) together.
  • Standard video encoding hardware may be utilized for real-time
  • FIG. 5b shows an example of projecting an object OBJ1 using a cube map projection format, wherein there are six projection surfaces PS 1 , ... ,PS6 of the projection cube PC 1.
  • the projection surfaces are one on the left side PS1, one in front PS2, one on the right side PS3, one in the back PS4, one in the bottom PS5, and one in the top PS6 of the cube PCI in the setup of Figure 5b.
  • Figure 8a shows a cross section of a 3D object's surface enclosed in a bounding box as viewed from the top of the bounding box (cube). This part of the figure shows how the un-occluded surfaces of the 3D object is mapped to the four sides of the bounding box, while the occluded surfaces are not.
  • new projection surface poses are established to project the previously occluded surfaces of the 3D object. It should be noted that in Figure 8b the pose of the chosen projection surfaces is independent of other chosen projection surfaces, and are chosen such that they are sufficient enough to cover the surface that is to be projected.
  • the depth map for each projection surface PS1— PS6 may be formed on the basis of the distances PD1, PD2 of points of the object OBJ1 to the projection surface PS1— PS6. This distance is typically the distance of the surface point normal towards the projection surface, in other words a line from the 3D point to the projection surface so that the line is perpendicular to the projection surface.
  • Fig. 6 shows a projection of a source volume to a projection surface, and inpainting of a sparse projection.
  • a three-dimensional (3D) scene model, represented as objects OBJ1 comprising geometry primitives such as mesh elements, points, and/or voxel, may be projected onto one, or more, projection surfaces, as described earlier.
  • these projection surface geometries may be "unfolded" onto 2D planes (two planes per projected source volume: one for texture TP1, one for depth GP1), which may then be encoded using standard 2D video compression technologies. Relevant projection geometry information may be transmitted alongside the encoded video files to the decoder. The decoder may then decode the video and performs the inverse projection to regenerate the 3D scene model object ROBJl in any desired representation format, which may be different from the starting format e.g. reconstructing a point cloud from original mesh model data.
  • auxiliary pictures related to one or more said texture pictures and the pixels thereof may be encoded into or along with the bitstream.
  • the auxiliary pictures may e.g. represent texture surface properties related to one or more of the source volumes. Such texture surface properties may be e.g. surface normal information (e.g. with respect to the projection direction), reflectance and opacity (e.g. an alpha channel value).
  • An encoder may encode, in or along with the bitstream, indication(s) of the type(s) of texture surface properties represented by the auxiliary pictures, and a decoder may decode, from or along the bitstream, indication(s) of the type(s) of texture surface properties represented by the auxiliary pictures.
  • Mechanisms to represent an auxiliary picture may include but are not limited to the following:
  • a colour component sample array such as a chroma sample array, of the geometry picture.
  • a constituent frame of a frame-packed picture that may also comprise texture picture(s) and/or geometry picture(s).
  • auxiliary picture included in specific data units in the bitstream.
  • H.264/AVC Advanced Video Coding
  • NAL NAL unit for a coded slice of an auxiliary coded picture without partitioning.
  • An auxiliary picture layer within a layered bitstream comprises the feature of including auxiliary picture layers in the bitstream.
  • An auxiliary picture layer comprises auxiliary pictures.
  • An auxiliary picture bitstream separate from the bitstream(s) for the texture picture(s) and geometry picture(s).
  • the auxiliary picture bitstream may be indicated, for example in a container file, to be associated with the bitstream(s) for the texture pictures(s) and geometry picture(s).
  • the mechanism(s) to be used for auxiliary pictures may be pre-defined e.g. in a coding standard, or the mechanism(s) may be selected e.g. by an encoder and indicated in or along the bitstream.
  • the decoder may decode the mechanism(s) used for auxiliary pictures from or along the bitstream.
  • the projection surface of a source volume may encompass the source volume, and there may be a model of an object in that source volume. Encompassing may be understood so that the object (model) is inside the surface such that when looking from the centre axis or centre point of the surface, the object's points are closer to the centre than the points of the projection surface are.
  • the model may be made of geometry primitives, as described.
  • the geometry primitives of the model may be projected onto the projection surface to obtain projected pixels of the texture picture. This projection may happen from inside-out.
  • the projection may happen from outside-in.
  • Projecting 3D data onto 2D planes is independent from the 3D scene model representation format.
  • FIG. 7 illustrates an example of this kind of situation.
  • the person's left hand occludes a part of the body of the person so that when viewed (projected) from the left hand's side the occluded part of the body would not be projected.
  • the planar object on the person's right hand occludes some parts of the person's stomach when viewed from the front of the person.
  • Figure 8a shows an example of projection occlusions in a simplified manner.
  • the arrows indicate projections of points of the object to projection surfaces PS1— PS6 (of which only four are shown for clarity, as was explained above).
  • the arrows marked with X indicate projections which are not performed due to occlusions i.e. those points belong to a part of the 3D object which is not fully visible from that particular viewing direction.
  • occlusion examination is performed to detect points, surfaces, other parts of the object which will not be projected onto the projection surface in question.
  • some occluded parts of the example of Figure 8a are depicted in Figure 8b as lines OP1, OP2.
  • the occlusion detection may be performed during the projection operation wherein when an occlusion is detected, that part will not be projected to the projection surface in question.
  • Information of the non-projected (occluded) parts may be temporally saved, if necessary, and used to form auxiliary projection surfaces. The above procedure may be repeated for each projection surface of the projection model so that all possible occlusions could be detected for each projection surface.
  • the initial projection surfaces of the embodiment may also be called as main projection surfaces in this specification.
  • the main projection surfaces are the left PS1, front of PS2, right PS3, back PS4, bottom PS5 and top PS6 of the cube map format.
  • the occlusion detection may be time dependent wherein one occlusion detection and succeeding operations induced by the occlusion detection (some of which will be described below) may be valid only for one time instance of a time-varying 3D visual scene/object and similar operations may need to be performed for other time instances of a time-varying 3D visual scene/object as well.
  • the occlusion detection is performed for all time instances of a time- varying 3D visual scene/object.
  • Information of the detected occlusions may be utilized to form auxiliary projection surfaces.
  • a sequence of unique pose (location, orientation and size) of auxiliary projection surfaces with respect to a 3D object/scene are identified. For example, occluded points are examined to determine which of them belong to the same surface of the object.
  • information regarding that auxiliary projection surface with respect to a main projection surface will be obtained.
  • the pose of the auxiliary projection surfaces can be arbitrary in terms of location, orientation and size. This information may comprise the direction of the auxiliary projection surface with respect to a main projection surface, the size of the auxiliary projection surface (e.g. width and height), and location (distance) of the auxiliary projection surface with respect to the main projection surface.
  • the lines OP1, OP2 are examples of a set of occluded points of the object OBJl .
  • all occluded points which belong to the same surface of the object need not be projected to the same auxiliary projection surface but they may be projected to different auxiliary projection surfaces.
  • one point of the 3D object/scene should only be projected to one auxiliary projection surface, in accordance with an embodiment.
  • each of the determined auxiliary projection surfaces maps only those 3D surface points that are un-occluded in its viewing direction.
  • a texture plane is computed for each of the chosen poses of the auxiliary projection surfaces by projecting the texture of the un-occluded 3D surface that intersects its viewing direction.
  • the texture of the 3D surface which is visible (un-occluded) from the selected auxiliary projection and pose is projected to the selected auxiliary projection to obtain the texture plane.
  • a representation of the distance of 3D surface points from the auxiliary projection surface is computed for each of the chosen poses of the auxiliary projection surfaces, to generate a related depth plane.
  • auxiliary projection surfaces For each of the chosen poses of the auxiliary projection surfaces, other 3D surface point related attributes, such as normals and bi-directional reflectance distribution functions (BRDF), may be projected to form their own individual, but related auxiliary projection surfaces.
  • BRDF bi-directional reflectance distribution functions
  • the computed texture, depth and auxiliary projection surfaces are collected and may either be frame-packed or layered before encoding using 2D video compression algorithms.
  • auxiliary projection surfaces with respect to another of the projection surfaces are computed and signalled either within the encoded stream or by other external means. Additional signalling may also be formed that relates the depth and other auxiliary projection surfaces to their respective texture planes are included either within the encoded stream or by other external means.
  • Information of the auxiliary projection surface may comprise none, one or more of the following and possibly some other information not listed here:
  • - projection surface type such as a cube, cylinder, sphere
  • a projection centre such as a projection centre point, axis, or plane
  • the relative pose of the projection surfaces is computed and signalled either within the encoded bit stream or by external means. For example, if the faces of a bounding box are used as the initial (main) projection surfaces of a 3D point cloud, then the pose of an auxiliary projection surface is signalled as a surface generated as a rotation of the normal of the main projection surface, a displacement vector of the central point of the auxiliary projection surface from the main projection surface, and if needed the horizontal and vertical dimensions of the surface. This process is illustrated in Figure 8c.
  • the width and height of the projection surface can either be signalled explicitly or inferred from the spatial dimension of the coded texture, depth or other auxiliary projection surfaces. This process is iterated for all the projected surfaces of a 3D point cloud for one time instant.
  • Figure 8c illustrates the calculation of the relative pose of the projection surface PI with respect to the projection surface P0.
  • the pose of the projection surface PI can be signalled as a combination of parameters (d, ⁇ ) where d is the distance vector from the centre of the projection surface P0 to the centre of the projection surface PI, and ⁇ is the rotation of the planar normal of the projection surface P0 toward the direction of the planar normal of the projection surface PI .
  • Encoding the projection information may be performed, for example, as follows.
  • the projected texture planes of a point cloud for one time instant can all be collected and frame-packed and similarly the depth and the possible auxiliary planes are frame-packed such that the frame packing is consistent across all the planes for one time instant.
  • Each of the planes are then coded using traditional 2D video coders using layered video coding or coded independently and related to each other using some form of higher level signalling (for e.g. using tracks and track references of ISO Base Media File Format).
  • each texture, depth and auxiliary planes of a single time instant of a point cloud could be considered independent of each other in that time instant and coded serially one after the other.
  • Figures 9a, 9b and 9c illustrate the encoding, in accordance with an embodiment.
  • Figure 9a shows the texture planes projected on to seven projection surfaces Tl— T7.
  • the hashed boxes Tl— T4 are the four sides of a bounding box of a 3D object (the top and bottom planes are omitted in this figure for clarity).
  • the three other hashed boxes T5, T6, T7 are the auxiliary projection surfaces computed to project occluded surfaces after the initial four projections.
  • the arrows illustrate the signalling of the poses of the auxiliary projection surfaces with respect to the main projection surfaces Tl— T4.
  • Figure 9b shows the same process for the computing of the depth planes Dl— D7
  • Figure 9c illustrates the coded bit stream after layering the projection surfaces of respective attributes, in accordance with an embodiment.
  • the hashings of the boxes of the coded bit stream and the labels Tl— T7, Dl— D7 above the boxes illustrate the source of information which is coded in the boxes.
  • an entity that maps 3D texture data on to projection surfaces can choose the six sides of an oriented or an axis aligned bounding box of a 3D point cloud as the initial set of projection surfaces.
  • the mapping of 3D surface parts on to the projection surfaces only maps the closest coherent surface onto the projections surfaces. For example, if there are two surfaces of the 3D object where one surface occludes the other surface in the direction of the 2D surfaces normal, then only the occluding surface is mapped on to the projection surface.
  • the occluded surface may require the generation of another projection surface for mapping.
  • the pose of the projections surfaces for the occluded points in the point cloud can be chosen such that it maximizes the rate-distortion performance for encoding the texture, depth and other auxiliary surfaces.
  • the size of the projection surface that maps a partial 3D surface can be chosen such that the area of the projection surface that does not map any surface points of the 3D texture is minimized. This is done by, for example, ensuring that there is at least one row and one column of the projection surface that is fully mapped to a 3D surface.
  • the three projections surface that maps previously occluded surface as illustrated in Figure 8b are just sufficient enough to map the surface in its view direction.
  • a plane with the projected texture, and a plane projected depth is generated.
  • other attributes of the mapped points such as surface normal and bi-directional reflectance distribution functions (BRDF), can also be coded as additional auxiliary surfaces. Therefore, for every chosen size, orientation and location of a projection surface there could be one or more surfaces generated that maps the different attributes of the projected points of a point cloud.
  • BRDF surface normal and bi-directional reflectance distribution functions
  • a number of n coherent surfaces is defined.
  • the surfaces may be derived, for example, by a set of geometry criteria, such as:
  • Top-down occlusion separation If parts of a coherent surface that would be occluded by another surface, these parts are separated into a new surface.
  • each 3D point is assigned with a specific surface ID so that there is only a single ID per point.
  • resulting set of surfaces is processed according to encoding parameters. For example, if the number of projections is limited, surfaces are removed in a bottom-up approach, i.e. only the most outward lying surfaces are kept. All points of the removed surfaces are assigned with a surface ID indicating to ignore this point. If the number of projections is larger than required to cover all surfaces (or a predefined threshold number of surfaces), the number of projections may be reduced in the encoding parameters to save bit rate.
  • Remaining surface IDs may be converted to projection IDs so that each point of a volumetric video object has one single ID indicating on which face of the projection geometry it will be mapped.
  • Several surfaces can be mapped onto same projection face if they don't occlude eachother, i.e. there are as many projection Ids as there are projection faces but there might be a larger number of surface IDs.
  • a bit stream comprising a sequence of one or more coded sets of pictures is received.
  • the coded set of pictures in each unit of the sequence after decoding and reconstruction is a representation of a 3D scene/object at a particular instant in time.
  • Each unit of the sequence may contain a combination of zero, one, or more texture, depth and other auxiliary surfaces coded as pictures.
  • Each texture picture, if available in a time-sequenced unit may be a frame-packed representation of all the projected textures of a 3D object/scene or a single layer related to a particular pose of a projection surface, wherein a corresponding de-packing operations may be performed to the received sequences of one or more coded sets of pictures.
  • Zero or more depth projected surfaces that are related to the pose of its projection surface are reconstructed using signalling that is either encoded within the bit stream or that can be obtained from signalling using external means.
  • Zero or more auxiliary surfaces that carry other surface data, such as surface normals and BRDFs, and can be related to its projection surfaces pose are reconstructed using signalling either within the coded bit stream or signalled externally.
  • the 3D surface is reconstructed using the required projection surfaces for any time unit using the texture, depth and auxiliary data encoded as pictures.
  • a receiver of the coded point cloud data receives the coded projection surfaces of the point cloud and additional signalling about the position, orientation and size of the projection surfaces. Using the coded data and the signalled information, a receiving entity can reconstruct a reasonably accurate representation of the original point cloud.
  • Some embodiments may be some advantages. For example, better handling of occluded surfaces in a 3D object/scenes may be obtained. Also, coding of projected surfaces may be efficient. Furthermore, some embodiments could enable new six degrees of freedom (6DOF) experiences such as zooming into internal objects.
  • 6DOF six degrees of freedom
  • Figs. 9a and 9b show flow charts for compressing encoding and decoding of a scene of a volumetric video.
  • phase 802 projection data is generated from the volumetric presentations by projecting the object onto one or more projection surfaces using a projection geometry.
  • phase 803 occluded parts which did not project on the projection surface are examined.
  • phase 804 an auxiliary projection surface is defined for the occluded parts
  • phase 805 wherein in phase 805 the occluded parts are projected to the auxiliary projection surface.
  • phase 806 the main and auxiliary projection surfaces are encoded into a bit stream, and in phase 807 information of the relationship between the main projection surface and the auxiliary projection surface into a bit stream, which may be the same bit stream than in phase 805 or a different bit stream.
  • phase 821 main and auxiliary projection surfaces are received and decoded from a bit stream to obtain decoded projection data.
  • phase 822 information of the relationship between the main projection surfaces and the auxiliary projection surfaces is received and decoded from the same or a different bit stream to obtain decoded relationship data.
  • phase 823 the 3D object surfaces are reconstructed by using the decoded projection data and the relationship data.
  • FIG 11a illustrates an example of an encoding device 1000 which may perform the above described compression operations.
  • Objects of a source volume of a digital scene model may be input 1001 to a projection element 1002 in which different objects may be projected to projection surfaces.
  • An occlusion detection element 1003 examines which parts of the object were occluded and provides this information to an auxiliary projection element 1004.
  • the auxiliary projection element 1004 generates projections of the occluded elements.
  • the projection data may be provided for subsequent encoding e.g. in an encoding element 1005 and transmission. It should be noted that operations of the projection element 1002 and the auxiliary projection element 1002 may also be performed by the same element.
  • Figure 1 lb illustrates an example of a decoding device 1010 which may perform the above described decoding operations.
  • Main and auxiliary projection surfaces and information of the relationship between the main projection surfaces and the auxiliary projection surfaces are received 1011 and decoded from a bit stream by a decoding element 1012.
  • a reconstruction element 1013 reconstructs 3D object surfaces by using the decoded projection data and the relationship data. Reconstructed 3D objects may be output 1014 for subsequent displaying and/or storage.
  • encoding may comprise one or more of the following:
  • MPD Physical Description
  • SDP IETF Session Description Protocol
  • decoding may comprise one or more of the following: decoding image data from a bitstream, decapsulating the bitstream from a container file and/or from packet(s) or stream(s) of a communication protocol, and parsing a content description of the bitstream,
  • Embodiments of the inventions may be practiced in various components such as integrated circuit modules.
  • the design of integrated circuits is by and large a highly automated process.
  • Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
  • Programs such as those provided by Synopsys, Inc. of Mountain View, California and Cadence Design, of San Jose, California automatically route conductors and locate components on a semiconductor chip using well established rules of design as well as libraries of pre stored design modules.
  • the resultant design in a standardized electronic format (e.g., Opus, GDSII, or the like) may be transmitted to a semiconductor fabrication facility or "fab" for fabrication.

Abstract

There are disclosed various methods, apparatuses and computer program products for volumetric video encoding and decoding. In some encoding embodiments,volumetric presentation of an object is obtaining. The object is projected to a main projection surface using a projection format. An occluded part of the object on the main projection surface is determined, wherein an auxiliary projection surface is defined for the occluded part. The occluded part is projected to the auxiliary projection surface; and an indication of a relationship of the auxiliary projection surface with the main projection surface is provided.In some decoding embodiments,projection information of a first part of an object of a volumetric presentation with reference to a main projection surface is received. Also projection information of a second part of the object with reference to an auxiliary projection surface is received. Said second part is occluded from a viewing direction of the main projection surface. Information of the relationship of the auxiliary projection surface with the main projection surface is further received. The information of the relationship is used to obtain the auxiliary projection surface. The first part of the object is back-projected from the main projection surface; and the second part of the object is back-projected from the auxiliary projection surface.

Description

AN APPARATUS, A METHOD AND A COMPUTER PROGRAM FOR
VOLUMETRIC VIDEO
TECHNICAL FIELD
[0001 ] The present invention relates to an apparatus, a method and a computer program for content dependent projection for volumetric video coding and decoding.
BACKGROUND
[0002] This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
[0003] A video coding system may comprise an encoder that transforms an input video into a compressed representation suited for storage/transmission and a decoder that can uncompress the compressed video representation back into a viewable form. The encoder may discard some information in the original video sequence in order to represent the video in a more compact form, for example, to enable the storage/transmission of the video information at a lower bitrate than otherwise might be needed.
[0004] Volumetric video data represents a three-dimensional scene or object and can be used as input for virtual reality (VR), augmented reality (AR) and mixed reality (MR) applications. Such data describes the geometry, e.g. shape, size, position in three-dimensional (3D) space, and respective attributes, e.g. colour, opacity, reflectance and any possible temporal changes of the geometry and attributes at given time instances. Volumetric video is either generated from 3D models through computer-generated imagery (CGI), or captured from real-world scenes using a variety of capture solutions, e.g. multi-camera, laser scan, combination of video and dedicated depth sensors, and more. Also, a combination of CGI and real-world data is possible.
[0005] Typical representation formats for such volumetric data are triangle meshes, point clouds (PCs), or voxel arrays. Temporal information about the scene can be included in the form of individual capture instances, i.e. "frames" in 2D video, or other means, e.g. position of an object as a function of time.
[0006] Increasing computational resources and advances in 3D data acquisition devices has enabled reconstruction of highly detailed volumetric video representations of natural scenes. Infrared, lasers, time-of- flight and structured light are all examples of devices that can be used to construct 3D video data. Representation of the 3D data depends on how the 3D data is used. Dense Voxel arrays have been used to represent volumetric medical data. In 3D graphics, polygonal meshes are extensively used. Point clouds on the other hand are well suited for applications such as capturing real world 3D scenes where the topology is not necessarily a 2D manifold. Another way to represent 3D data is coding this 3D data as a set of texture and depth maps as is the case in the multi-view plus depth. Elevation maps and multilevel surface maps are other techniques to represent 3D data which are closely related to the multi-view plus depth technique
[0007] In dense point clouds or voxel arrays, the reconstructed 3D scene may contain tens or even hundreds of millions of points.
[0008] One way to compress a time-varying volumetric scene/object, is to project 3D surfaces on to some number of pre-defined 2D planes. Regular 2D video compression algorithms can then be used to compress various aspects of the projected surfaces. For e.g. a time-varying 3D point cloud, with spatial and texture coordinates, can be mapped into a sequence of at least two sets of planes, where one of the two sets carry the texture data and the other carries the distance of the mapped 3D surface points from the projection surfaces.
However, in most volumetric scenes/object, the 3D surface structure may be so complex that the projection process might not be able to map all the scene/object texture data on to the selected projection surfaces. The primary reason for this is the occluding of parts of the 3D scene/object surfaces by other surfaces that are closer to the chosen projection surfaces.
[0009] Errors or inadequate mapping of the textures onto projection surfaces manifest as holes and falsely generated textures in the reconstruction of the 3D scene as shown in Figure 7.
[0010] There is, therefore, a need for solutions for improved coding of volumetric video. SUMMARY
[0011 ] Now, an improved method and technical equipment implementing the method has been invented, by which the above problems are alleviated. Various aspects of the invention include a method, an apparatus (an encoder and/or a decoder), a system and a computer readable medium comprising a computer program or a signal stored therein, which are characterized by what is stated in the independent claims. Various details of the invention are disclosed in the dependent claims and in the corresponding images and description. [0012] A volumetric video, for example dynamic point clouds, arrays of voxels or mesh models or a combination of such, may be projected onto a number of projection surfaces having simple geometries, for example sphere(s), cylinder(s), cube(s), polyhedron(s) and/or plane(s). In this context, a projection surface may be a piece-wise continuous and smooth surface in three-dimensional space. Piece-wise smoothness may be understood so that there are regions of the surface where the direction of the surface normal does not change abruptly (i.e. the values of the coefficients of the surface normal's coordinate components are continuous). A projection surface may comprise pieces of simple geometric surfaces. A projection surface may also evolve (change) over time. On such surfaces, the texture and geometry of point clouds, voxel arrays or mesh models may form pixel images, e.g. texture images and depth images (indicative of distance of a point from the projection surface). Such projection surfaces may be unfolded onto two-dimensional (2D) planes, e.g. resulting in a two-dimensional pixel image. Standard 2D video coding may be applied for each projection to code the pixel information resulting from the texture data. In connection with the texture information, relevant projection geometry information, comprising e.g. projection surface type, location and orientation of the projection surface in 3D space, and/or size of the projection surface, may be transmitted either in the same bitstream or separately along with the bitstream. At the receiver side, the bitstream may be decoded and volumetric video may be reconstructed from decoded 2D projections and projection geometry information.
[0013] In accordance with an embodiment, each object in the 3D scene presentation is projected based on its skeleton where different parts of the skeleton are projected to different volumetric shapes e.g. cylinders. Each cylinder has its own size and orientation. Considering different criterial on each cylinder, the compression of the content of that cylinder may differ from other cylinders. Such criteria may be the amount of motion for the content presented by that cylinder, cylinders which include parts of the scene with high/low frequency components, cylinders which include parts of the scene which are closer/farther to the viewer, cylinders which include region(s) of interest (ROI) such as faces, written text, etc. It may also be possible that the cylinders are manually selected and/or prioritized e.g. by a user or content provider. Furthermore, a combination of at least two of the above-mentioned methods may be used as the above mentioned criteria related to the cylinders. Hence, cylinders which are selected to have higher quality may be presented with a higher quality compared to the other cylinders. In general, there can be a series of different qualities assigned to each cylinder based on, for example, the aforementioned criteria [0014] In an encoding method, a bitstream may be encoded or encapsulated, the bitstream comprising one or more coded texture pictures and one or more coded accompanying additional pictures per texture picture. Each texture picture may represent a 2D projection of 3D data onto a given geometry. Alternatively or in addition, several projections may be frame-packed into a single picture. An additional geometry picture may represent geometry data, e.g. depth. Additional auxiliary pictures may represent further attributes, e.g. surface normal, reflectance and opacity, transmittance and/or refraction of the 3D data. Relevant projection information may be indicated in or along with the bitstream. For example, general projection information may be given in or along the bitstream: number of coded texture pictures or frame-packing information. Projection geometry information may be given for the projections: for example, comprising shape, size, location and orientation of the projection surfaces. Temporal changes in location, orientation and size of such geometries may be encoded, possibly as a function of time. Possible further sub-division of such geometries and resulting changes in geometry information may be given. Nature of auxiliary geometry data may be given: bit depth, quantisation, value range and/or inverse values, that is, coding of negative radius or depth values of the geometry picture. Nature of other auxiliary data, i.e. surface normal, reflectance and opacity, transmittance and/or refraction, etc. may be given.
[0015] In a decoding method, a bitstream comprising one or more coded texture picture(s) and one or more coded accompanying geometry pictures and auxiliary pictures per texture picture may be received and decoded. The texture picture represents a two-dimensional projection of three-dimensional data onto a projection surface with a given geometry. A geometry picture may represent geometry data, e.g. depth from the projection surface.
Additional auxiliary pictures may represent further attributes, e.g. surface normal, reflectance, opacity, etc. as described earlier. Relevant projection information may also be decoded from or along with a bitstream. From this decoded information, a 3D scene may be reconstructed accordingly.
[0016] Some embodiments provide a method for encoding and decoding volumetric video information. In some embodiments of the present invention there is provided a method, apparatus and computer program product for volumetric video coding as well as decoding.
[0017] Various aspects of examples of the invention are provided in the detailed description.
[0018] According to a first aspect, there is provided a method comprising:
obtaining volumetric presentation of an object;
projecting the object to a main projection surface using a projection format; determining an occluded part of the object on the main projection surface;
defining an auxiliary projection surface for the occluded part;
projecting the occluded part to the auxiliary projection surface; and
providing an indication of a relationship of the auxiliary projection surface with the main projection surface.
[0019] An apparatus according to a second aspect comprises at least one processor and at least one memory, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:
obtain volumetric presentation of an object;
project the object to a main projection surface using a projection format; determine an occluded part of the object on the main projection surface; define an auxiliary projection surface for the occluded part;
project the occluded part to the auxiliary projection surface; and
provide an indication of a relationship of the auxiliary projection surface with the main projection surface
[0020] A computer readable storage medium according to a third aspect comprises code for use by an apparatus, which when executed by a processor, causes the apparatus to perform:
obtain volumetric presentation of an object;
project the object to a main projection surface using a projection format; determine an occluded part of the object on the main projection surface; define an auxiliary projection surface for the occluded part;
project the occluded part to the auxiliary projection surface; and
provide an indication of a relationship of the auxiliary projection surface with the main projection surface.
[0021 ] An apparatus according to a fourth aspect comprises:
means for obtaining volumetric presentation of an object;
means for projecting the object to a main projection surface using a projection format;
means for determining an occluded part of the object on the main projection surface;
means for defining an auxiliary projection surface for the occluded part; means for projecting the occluded part to the auxiliary projection surface; and means for providing an indication of a relationship of the auxiliary projection surface with the main projection surface.
[0022] According to a fifth aspect, there is provided a method comprising:
receiving projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
receiving projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
receiving information of the relationship of the auxiliary projection surface with the main projection surface;
using the information of the relationship to obtain the auxiliary projection surface; back-projecting the first part of the object from the main projection surface; and back-projecting the second part of the object from the auxiliary projection surface.
[0023] An apparatus according to a sixth aspect comprises at least one processor and at least one memory, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:
receive projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
receive projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
receive information of the relationship of the auxiliary projection surface with the main projection surface;
use the information of the relationship to obtain the auxiliary projection surface; back-project the first part of the object from the main projection surface; and back-project the second part of the object from the auxiliary projection surface.
[0024] A computer readable storage medium according to a seventh aspect comprises code for use by an apparatus, which when executed by a processor, causes the apparatus to perform:
receive projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
receive projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface; receive information of the relationship of the auxiliary projection surface with the main projection surface;
use the information of the relationship to obtain the auxiliary projection surface; back-project the first part of the object from the main projection surface; and back-project the second part of the object from the auxiliary projection surface.
[0025] An apparatus according to an eighth aspect comprises:
means for receiving projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
means for receiving projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
means for receiving information of the relationship of the auxiliary projection surface with the main projection surface;
means for using the information of the relationship to obtain the auxiliary projection surface;
means for back-projecting the first part of the object from the main projection surface; and
means for back-projecting the second part of the object from the auxiliary projection surface.
[0026] Further aspects include at least apparatuses and computer program products/code stored on a non-transitory memory medium arranged to carry out the above methods.
BRIEF DESCRIPTION OF THE DRAWINGS
[0027] For a more complete understanding of example embodiments of the present invention, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
[0028] Fig. 1 shows a system for capturing, encoding, decoding, reconstructing and viewing a three-dimensional scheme;
[0029] Figs. 2a and 2b show a capture device and a viewing device;
[0030] Figs. 3a and 3b show an encoder and decoder for encoding and decoding texture pictures, geometry pictures and/or auxiliary pictures;
[0031] Figs. 4a, 4b, 4c and 4d show a setup for forming a stereo image of a scene to a user; [0032] Figs. 5a illustrates projection of source volumes in a scene and parts of an object to projection surfaces, as well as determining depth information;
[0033] Fig. 5b shows an example of projecting an object using a cube map projection format;
[0034] Fig. 6 shows a projection of a source volume to a projection surface, and inpainting of a sparse projection;
[0035] Fig. 7 shows an examples of occlusion of surfaces;
[0036] Fig. 8a shows an example of a cross section of a surface of a three-dimensional object enclosed in a bounding box as viewed from the top of the bounding box;
[0037] Fig. 8b shows new projection surfaces established to project the occluded surfaces of the three-dimensional object of Fig. 8a;
[0038] Fig. 8c illustrates calculation of the relative pose of one projection surface with respect to another projection surface, in accordance with an embodiment;
[0039] Figs. 9a and 9b show an example of texture planes and depth planes projected on to seven projection surfaces;
[0040] Fig. 9c illustrates an example of a coded bit stream after layering of respective attributes of the projection surfaces of Figs. 9a and 9b;
[0041] Figs. 10a and 10b show flow charts for compressing, encoding and decoding of a scene of a volumetric video;
[0042] Fig. 11a illustrates an example of an encoding element; and
[0043] Fig. 1 lb illustrates an example of a decoding element.
DETAILED DESCRIPTON OF SOME EXAMPLE EMBODIMENTS
[0044] In the following, several embodiments of the invention will be described in the context of point cloud, voxel or mesh scene models for three-dimensional volumetric video and pixel and picture based two-dimensional video coding. It is to be noted, however, that the invention is not limited to specific scene models or specific coding technologies. In fact, the different embodiments have applications in any environment where coding of volumetric scene data is required.
[0045] It has been noticed here that identifying correspondences for motion-compensation in three-dimensional space is an ill-defined problem, as both the geometry and the respective attributes of the objects to be coded may change. For example, temporal successive "frames" do not necessarily have the same number of meshes, points or voxel. Therefore, compression of dynamic 3D scenes is inefficient. [0046] "Voxel" of a three-dimensional world corresponds to a pixel of a two-dimensional world. Voxels exist in a three-dimensional grid layout. An octree is a tree data structure used to partition a three-dimensional space. Octrees are the three-dimensional analog of quadtrees. A sparse voxel octree (SVO) describes a volume of a space containing a set of solid voxels of varying sizes. Empty areas within the volume are absent from the tree, which is why it is called "sparse".
[0047] A three-dimensional volumetric representation of a scene is determined as a plurality of voxels on the basis of input streams of at least one multicamera device. Thus, at least one but preferably a plurality (i.e. 2, 3, 4, 5 or more) of multicamera devices are used to capture 3D video representation of a scene. The multicamera devices are distributed in different locations in respect to the scene, and therefore each multicamera device captures a different 3D video representation of the scene. The 3D video representations captured by each multicamera device may be used as input streams for creating a 3D volumetric representation of the scene, said 3D volumetric representation comprising a plurality of voxels. Voxels may be formed from the captured 3D points e.g. by merging the 3D points into voxels comprising a plurality of 3D points such that for a selected 3D point, all neighbouring 3D points within a predefined threshold from the selected 3D point are merged into a voxel without exceeding a maximum number of 3D points in a voxel.
[0048] Voxels may also be formed through the construction of the sparse voxel octree. Each leaf of such a tree represents a solid voxel in world space; the root node of the tree represents the bounds of the world. The sparse voxel octree construction may have the following steps: 1) map each input depth map to a world space point cloud, where each pixel of the depth map is mapped to one or more 3D points; 2) determine voxel attributes such as colour and surface normal vector by examining the neighbourhood of the source pixel(s) in the camera images and the depth map; 3) determine the size of the voxel based on the depth value from the depth map and the resolution of the depth map; 4) determine the SVO level for the solid voxel as a function of its size relative to the world bounds; 5) determine the voxel coordinates on that level relative to the world bounds; 6) create new and/or traversing existing SVO nodes until arriving at the determined voxel coordinates; 7) insert the solid voxel as a leaf of the tree, possibly replacing or merging attributes from a previously existing voxel at those coordinates. Nevertheless, the size of voxel within the 3D volumetric representation of the scene may differ from each other. The voxels of the 3D volumetric representation thus represent the spatial locations within the scene. [0049] A volumetric video frame is a complete sparse voxel octree that models the world at a specific point in time in a video sequence. Voxel attributes contain information like colour, opacity, surface normal vectors, and surface material properties. These are referenced in the sparse voxel octrees (e.g. colour of a solid voxel), but can also be stored separately.
[0050] Point clouds are commonly used data structures for storing volumetric content. Compared to point clouds, sparse voxel octrees describe a recursive subdivision of a finite volume with solid voxels of varying sizes, while point clouds describe an unorganized set of separate points limited only by the precision of the used coordinate values.
[0051] When encoding a volumetric video, each frame may produce several hundred megabytes or several gigabytes of voxel data which needs to be converted to a format that can be streamed to the viewer, and rendered in real-time. The amount of data depends on the world complexity and the number of cameras. The larger impact comes in a multi-device recording setup with a number of separate locations where the cameras are recording. Such a setup produces more information than a camera at a single location.
[0052] Fig. 1 shows a system for capturing, encoding, decoding, reconstructing and viewing a three-dimensional scheme, that is, for 3D video and 3D audio digital creation and playback. The task of the system is that of capturing sufficient visual and auditory information from a specific scene to be able to create a scene model such that a convincing reproduction of the experience, or presence, of being in that location can be achieved by one or more viewers physically located in different locations and optionally at a time later in the future. Such reproduction requires more information that can be captured by a single camera or microphone, in order that a viewer can determine the distance and location of objects within the scene using their eyes and their ears. To create a pair of images with disparity, two camera sources are used. In a similar manner, for the human auditory system to be able to sense the direction of sound, at least two microphones are used (the commonly known stereo sound is created by recording two audio channels). The human auditory system can detect the cues, e.g. in timing difference of the audio signals to detect the direction of sound.
[0053] The system of Fig. 1 may consist of three main parts: image sources, a server and a rendering device. A video source SRC1 may comprise multiple cameras CAM1, CAM2, ..., CAMN with overlapping field of view so that regions of the view around the video capture device is captured from at least two cameras. The video source SRC1 may comprise multiple microphones to capture the timing and phase differences of audio originating from different directions. The video source SRC1 may comprise a high-resolution orientation sensor so that the orientation (direction of view) of the plurality of cameras CAM1, CAM2, ..., CAMN can be detected and recorded. The cameras or the computers may also comprise or be functionally connected to means for forming distance information corresponding to the captured images, for example so that the pixels have corresponding depth data. Such depth data may be formed by scanning the depth or it may be computed from the different images captured by the cameras. The video source SRCl comprises or is functionally connected to, or each of the plurality of cameras CAM1, CAM2, ..., CAMN comprises or is functionally connected to a computer processor and memory, the memory comprising computer program code for controlling the source and/or the plurality of cameras. The image stream captured by the video source, i.e. the plurality of the cameras, may be stored on a memory device for use in another device, e.g. a viewer, and/or transmitted to a server using a communication interface. It needs to be understood that although a video source comprising three cameras is described here as part of the system, another amount of camera devices may be used instead as part of the system.
[0054] Alternatively or in addition to the source device SRCl creating information for forming a scene model, one or more sources SRC2 of synthetic imagery may be present in the system, comprising a scene model. Such sources may be used to create and transmit the scene model and its development over time, e.g. instantaneous states of the model. The model can be created or provided by the source SRCl and/or SRC2, or by the server SERVER. Such sources may also use the model of the scene to compute various video bitstreams for transmission.
[0055] One or more two-dimensional video bitstreams may be computed at the server SERVER or a device RENDERER used for rendering, or another device at the receiving end. When such computed video streams are used for viewing, the viewer may see a three- dimensional virtual world as described in the context of Figs 4a— 4d. The devices SRCl and SRC2 may comprise or be functionally connected to one or more computer processors
(PROC2 shown) and memory (MEM2 shown), the memory comprising computer program (PROGR2 shown) code for controlling the source device SRC1/SRC2. The image stream captured by the device and the scene model may be stored on a memory device for use in another device, e.g. a viewer, or transmitted to a server or the viewer using a communication interface COMM2. There may be a storage, processing and data stream serving network in addition to the capture device SRCl . For example, there may be a server SERVER or a plurality of servers storing the output from the capture device SRCl or device SRC2 and/or to form a scene model from the data from devices SRCl, SRC2. The device SERVER comprises or is functionally connected to a computer processor PROC3 and memory MEM3, the memory comprising computer program PROGR3 code for controlling the server. The device SERVER may be connected by a wired or wireless network connection, or both, to sources SRC1 and/or SRC2, as well as the viewer devices VIEWER1 and VIEWER2 over the communication interface COMM3.
[0056] The creation of a three-dimensional scene model may take place at the server SERVER or another device by using the images captured by the devices SRC1. The scene model may be a model created from captured image data (a real-world model), or a synthetic model such as on device SRC2, or a combination of such. As described later, the scene model may be encoded to reduce its size and transmitted to a decoder, for example viewer devices.
[0057] For viewing the captured or created video content, there may be one or more viewer devices VIEWER 1 and VIEWER2. These devices may have a rendering module and a display module, or these functionalities may be combined in a single device. The devices may comprise or be functionally connected to a computer processor PROC4 and memory MEM4, the memory comprising computer program PROG4 code for controlling the viewing devices. The viewer (playback) devices may consist of a data stream receiver for receiving a video data stream and for decoding the video data stream. The video data stream may be received from the server SERVER or from some other entity, such as a proxy server, an edge server of a content delivery network, or a file available locally in the viewer device. The data stream may be received over a network connection through communications interface COMM4, or from a memory device MEM6 like a memory card CARD2. The viewer devices may have a graphics processing unit for processing of the data to a suitable format for viewing. The viewer VIEWER1 may comprise a high-resolution stereo-image head-mounted display for viewing the rendered stereo video sequence. The head-mounted display may have an orientation sensor DETl and stereo audio headphones. The viewer VIEWER2 may comprise a display (either two-dimensional or a display enabled with 3D technology for displaying stereo video), and the rendering device may have an orientation detector DET2 connected to it. Alternatively, the viewer VIEWER2 may comprise a 2D display, since the volumetric video rendering can be done in 2D by rendering the viewpoint from a single eye instead of a stereo eye pair.
[0058] It needs to be understood that Fig. 1 depicts one SRC1 device and one SRC2 device, but generally the system may comprise more than one SRC1 device and/or SRC2 device.
[0059] Any of the devices (SRC 1 , SRC2, SERVER, RENDERER, VIEWER1 , VIEWER2) may be a computer or a portable computing device, or be connected to such or configured to be connected to such. Moreover, even if the devices (SRCl, SRC2, SERVER, RENDERER, VIEWER1, VIEWER2) are depicted as a single device in Fig. 1, they may comprise multiple parts or may be comprised of multiple connected devices. For example, it needs to be understood that SERVER may comprise several devices, some of which may be used for editing the content produced by SRCl and/or SRC2 devices, some others for compressing the edited content, and a third set of devices may be used for transmitting the compressed content. Such devices may have computer program code for carrying out methods according to various examples described in this text.
[0060] Figs. 2a and 2b show a capture device and a viewing device, respectively. Fig. 2a illustrates a camera CAM1. The camera has a camera detector CAMDET1, comprising a plurality of sensor elements for sensing intensity of the light hitting the sensor element. The camera has a lens OBJ1 (or a lens arrangement of a plurality of lenses), the lens being positioned so that the light hitting the sensor elements travels through the lens to the sensor elements. The camera detector CAMDET1 has a nominal centre point CP1 that is a middle point of the plurality of sensor elements, for example for a rectangular sensor the crossing point of diagonals of the rectangular sensor. The lens has a nominal centre point PP1, as well, lying for example on the axis of symmetry of the lens. The direction of orientation of the camera is defined by the line passing through the centre point CP1 of the camera sensor and the centre point PP1 of the lens. The direction of the camera is a vector along this line pointing in the direction from the camera sensor to the lens. The optical axis of the camera is understood to be this line CP1-PP1. However, the optical path from the lens to the camera detector need not always be a straight line but there may be mirrors and/or some other elements which may affect the optical path between the lens and the camera detector.
[0061] Fig. 2b shows a head-mounted display (HMD) for stereo viewing. The head- mounted display comprises two screen sections or two screens DISP1 and DISP2 for displaying the left and right eye images. The displays are close to the eyes, and therefore lenses are used to make the images easily viewable and for spreading the images to cover as much as possible of the eyes' field of view. When the device will be used by a user, the user may put the device on her/his head so that it will be attached to the head of the user so that it stays in place even when the user turns his head. The device may have an orientation detecting module ORDETl for determining the head movements and direction of the head. The head-mounted display gives a three-dimensional (3D) perception of the
recorded/streamed content to a user. [0062] The system described above may function as follows. Time-synchronized video and orientation data is first recorded with the capture devices. This can consist of multiple concurrent video streams as described above. One or more time-synchronized audio streams may also be recorded with the capture devices. The different capture devices may form image and geometry information of the scene from different directions. For example, there may be three, four, five, six or more cameras capturing the scene from different sides, like front, back, left and right, and/or at directions between these, as well as from the top or bottom, or any combination of these. The cameras may be at different distances, for example some of the cameras may capture the whole scene and some of the cameras may be capturing one or more objects in the scene. In an arrangement used for capturing volumetric video data, several cameras may be directed towards an object, looking onto the object from different directions, where the object is e.g. in the middle of the cameras. In this manner, the texture and geometry of the scene and the objects within the scene may be captured adequately. As mentioned earlier, the cameras or the system may comprise means for determining geometry
information, e.g. depth data, related to the captured video streams. From these concurrent video and audio streams, a computer model of a scene may be created. Alternatively or additionally, a synthetic computer model of a virtual scene may be used. The models (at successive time instances) are then transmitted immediately or later to the storage and processing network for processing and conversion into a format suitable for subsequent delivery to playback devices. The conversion may involve processing and coding to improve the quality and/or reduce the quantity of the scene model data while preserving the quality at a desired level. Each playback device receives a stream of the data (either computed video data or scene model data) from the network, and renders it into a viewing reproduction of the original location which can be experienced by a user. The reproduction may be two- dimensional or three-dimensional (stereo image pairs).
[0063] Figs. 3a and 3b show an encoder and decoder for encoding and decoding texture pictures, geometry pictures and/or auxiliary pictures. A video codec consists of an encoder that transforms an input video into a compressed representation suited for
storage/transmission and a decoder that can uncompress the compressed video representation back into a viewable form. Typically, the encoder discards and/or loses some information in the original video sequence in order to represent the video in a more compact form (that is, at lower bitrate). An example of an encoding process is illustrated in Figure 3 a. Figure 3 a illustrates an image to be encoded (P); a predicted representation of an image block (P'n); a prediction error signal (Dn); a reconstructed prediction error signal (D'n); a preliminary reconstructed image (I'n); a final reconstructed image (R'n); a transform (T) and inverse transform (T 1); a quantization (Q) and inverse quantization (Q 1); entropy encoding (E); a reference frame memory (RFM); inter prediction (Pinter); intra prediction (Pmtra); mode selection (MS) and filtering (F).
[0064] An example of a decoding process is illustrated in Figure 3b. Figure 3b illustrates a predicted representation of an image block (P'n); a reconstructed prediction error signal (D'n); a preliminary reconstructed image (I'n); a final reconstructed image (R'n); an inverse transform (T 1); an inverse quantization (Q 1); an entropy decoding (E 1); a reference frame memory (RFM); a prediction (either inter or intra) (P); and filtering (F).
[0065] Figs. 4a, 4b, 4c and 4d show a setup for forming a stereo image of a scene to a user, for example a video frame of a 3D video. In Fig. 4a, a situation is shown where a human being is viewing two spheres Al and A2 using both eyes El and E2. The sphere Al is closer to the viewer than the sphere A2, the respective distances to the first eye El being LEI,AI and LEI,A2- The different objects reside in space at their respective (x,y,z) coordinates, defined by the coordinate system SZ, SY and SZ. The distance di2 between the eyes of a human being may be approximately 62-64 mm on average, and varying from person to person between 55 and 74 mm. This distance is referred to as the parallax, on which stereoscopic view of the human vision is based on. The viewing directions (optical axes) DIR1 and DIR2 are typically essentially parallel, possibly having a small deviation from being parallel, and define the field of view for the eyes. The head of the user has an orientation (head orientation) in relation to the surroundings, most easily defined by the common direction of the eyes when the eyes are looking straight ahead. That is, the head orientation tells the yaw, pitch and roll of the head in respect of a coordinate system of the scene where the user is.
[0066] When the viewer's body (thorax) is not moving, the viewer's head orientation is restricted by the normal anatomical ranges of movement of the cervical spine.
[0067] In the setup of Fig. 4a, the spheres Al and A2 are in the field of view of both eyes. The centre-point O12 between the eyes and the spheres are on the same line. That is, from the centre-point, the sphere A2 is behind the sphere Al . However, each eye sees part of sphere A2 from behind Al, because the spheres are not on the same line of view from either of the eyes.
[0068] In Fig. 4b, there is a setup shown, where the eyes have been replaced by cameras CI and C2, positioned at the location where the eyes were in Fig. 4a. The distances and directions of the setup are otherwise the same. Naturally, the purpose of the setup of Fig. 4b is to be able to take a stereo image of the spheres Al and A2. The two images resulting from image capture are Fci and Fc2. The "left eye" image Fci shows the image SA2 of the sphere A2 partly visible on the left side of the image SAI of the sphere Al . The "right eye" image Fc2 shows the image SA2 of the sphere A2 partly visible on the right side of the image SAI of the sphere Al . This difference between the right and left images is called disparity, and this disparity, being the basic mechanism with which the HVS determines depth information and creates a 3D view of the scene, can be used to create an illusion of a 3D image.
[0069] In this setup of Fig. 4b, where the inter-eye distances correspond to those of the eyes in Fig. 4a, the camera pair CI and C2 has a natural parallax, that is, it has the property of creating natural disparity in the two images of the cameras. Natural disparity may be understood to be created even though the distance between the two cameras forming the stereo camera pair is somewhat smaller or larger than the normal distance (parallax) between the human eyes, e.g. essentially between 40 mm and 100 mm or even 30 mm and 120 mm.
[0070] It needs to be understood here that the images Fci and Fc2 may be captured by cameras CI and C2, where the cameras CI and C2 may be real- world cameras or they may be virtual cameras. In the case of virtual cameras, the images Fci and Fc2 may be computed from a computer model of a scene by setting the direction, orientation and viewport of the cameras CI and C2 appropriately such that a stereo image pair suitable for viewing by the human visual system (HVS) is created.
[0071] In Fig. 4c, the creating of this 3D illusion is shown. The images Fci and Fc2 captured or computed by the cameras CI and C2 are displayed to the eyes El and E2, using displays Dl and D2, respectively. The disparity between the images is processed by the human visual system so that an understanding of depth is created. That is, when the left eye sees the image SA2 of the sphere A2 on the left side of the image SAI of sphere Al, and respectively the right eye sees the image SA2 of the sphere A2 on the right side, the human visual system creates an understanding that there is a sphere V2 behind the sphere VI in a three-dimensional world. Here, it needs to be understood that the images Fci and Fc2 can also be synthetic, that is, created by a computer. If they carry the disparity information, synthetic images will also be seen as three-dimensional by the human visual system. That is, a pair of computer-generated images can be formed so that they can be used as a stereo image.
[0072] Fig. 4d illustrates how the principle of displaying stereo images to the eyes can be used to create 3D movies or virtual reality scenes having an illusion of being three- dimensional. The images Fxi and Fx2 are either captured with a stereo camera or computed from a model so that the images have the appropriate disparity. By displaying a large number (e.g. 30) frames per second to both eyes using display Dl and D2 so that the images between the left and the right eye have disparity, the human visual system will create a cognition of a moving, three-dimensional image.
[0073] The field of view represented by the content may be greater than the displayed field of view e.g. in an arrangement depicted in Fig. 4d. Consequently, only a part of the content along the direction of view (a.k.a. viewing orientation) is displayed at a single time. This direction of view, that is, the head orientation, may be determined as a real orientation of the head e.g. by an orientation detector mounted on the head, or as a virtual orientation determined by a control device such as a joystick or mouse that can be used to manipulate the direction of view without the user actually moving his head. That is, the term "head orientation" may be used to refer to the actual, physical orientation of the user's head and changes in the same, or it may be used to refer to the virtual direction of the user's view that is determined by a computer program or a computer input device.
[0074] The content may enable viewing from several viewing positions within the 3D space. The texture picture(s), the geometry picture(s) and the geometry information may be used to synthesize the images Fxi and/or Fx2 as if the displayed content was captured by camera(s) located at the viewing position.
[0075] The principle illustrated in Figs. 4a-4d may be used to create three-dimensional images to a viewer from a three-dimensional scene model (volumetric video) after the scene model has been encoded at the sender and decoded and reconstructed at the receiver. Because volumetric video describes a 3D scene or object at different (successive) time instances, such data can be viewed from any viewpoint. Therefore, volumetric video is an important format for any augmented reality, virtual reality and mixed reality applications, especially for providing viewing capabilities having six degrees of freedom (so-called 6DOF viewing).
[0076] Fig. 5a illustrates projection of source volumes in a digital scene model SCE and parts of an object model OBJ1, OBJ2, OBJ3, BG4 to projection surfaces SI, S2, S3, S4, as well as determining depth information for the purpose of encoding volumetric video.
[0077] The projection of source volumes SV1, SV2, SV3, SV4 may result in texture pictures and geometry pictures, and there may be geometry information related to the projection source volumes and/or projection surfaces. Texture pictures, geometry pictures and projection geometry information may be encoded into a bitstream. A texture picture may comprise information on the colour data of the source of the projection. Through the projection, such colour data may result in pixel colour information in the texture picture. Pixels may be coded in groups, e.g. coding units of rectangular shape. The projection geometry information may comprise but is not limited to one or more of the following: - projection type, such as planar projection or equirectangular projection
- projection surface type, such as a cube, sphere, cylinder, polyhedron
- location of the projection surface in 3D space
- orientation of the projection surface in 3D space
- size of the projection surface in 3D space
- type of a projection centre, such as a projection centre point, axis, or plane, from which a geometry primitive is projected onto the projection surface
- location and/or orientation of a projection centre.
[0078] The projection may take place by projecting the geometry primitives (points of a point could, triangles of a triangle mesh or voxels of a voxel array) of a source volume SV1 , SV2, SV3, SV4 (or an object OBJ1, OBJ2, OBJ3, BG4) onto a projection surface SI, S2, S3, S4. The geometry primitives may comprise information on the texture, for example a colour value or values of a point, a triangle or a voxel. The projection surface may surround the source volume at least partially such that projection of the geometry primitives happens from the centre of the projection surface outwards to the surface. For example, a cylindrical surface has a projection centre axis and a spherical surface has a projection centre point. A cubical or rectangular surface may have projection centre planes or a projection centre axis or point and the projection of the geometry primitives may take place either orthogonally to the sides of the surface or from the projection centre axis or point outwards to the surface. The projection surfaces, e.g. cylindrical and rectangular, may be open from the top and the bottom such that when the surface is cut and rolled out on a two-dimensional plane, it forms a rectangular shape. Such rectangular shape with pixel data can be encoded and decoded with a video codec.
[0079] Alternatively or in addition, the projection surface such as a planar surface or a sphere may be inside group of geometry primitives, e.g. inside a point cloud that defines a surface. In the case of an inside projection surface, the projection may take place from outside in towards the centre and may result in sub-sampling of the texture data of the source.
[0080] In a point cloud based scene model or object model, points may be represented with any floating point coordinates. A quantized point cloud may be used to reduce the amount of data, whereby the coordinate values of the point cloud are represented e.g. with 10-bit, 12-bit or 16-bit integers. Integers may be used because hardware accelerators may be able to operate on integers more efficiently. The points in the point cloud may have associated colour, reflectance, opacity etc. texture values. The points in the point cloud may also have a size, or a size may be the same for all points. The size of the points may be understood as indicating how large an object the point appears to be in the model in the projection. The point cloud is projected by ray casting from the projection surface to find out the pixel values of the projection surface. In such a manner, the topmost point remains visible in the projection, while points closer to the centre of the projection surface may be occluded. In other words, in general, the original point cloud, meshes, voxels, or any other model is projected outwards to a simple geometrical shape, this simple geometrical shape being the projection surface.
[0081 ] Different projection surfaces may have different characteristics in terms of projection and reconstruction. In the sense of computational complexity, a projection to a cubical surface may be the most efficient, and a cylindrical projection surface may provide accurate results efficiently. Also cones, polyhedron-based parallelepipeds (hexagonal or octagonal, for example) and spheres or a simple plane may be used as projection surfaces.
[0082] The phrase along the bitstream (e.g. indicating along the bitstream) may be defined to refer to out-of-band transmission, signalling, or storage in a manner that the out-of-band data is associated with the bitstream. The phrase decoding along the bitstream or alike may refer to decoding the referred out-of-band data (which may be obtained from out-of-band transmission, signalling, or storage) that is associated with the bitstream. For example, an indication along the bitstream may refer to metadata in a container file that encapsulates the bitstream.
[0083] As illustrated in Fig. 5a, a first texture picture may be encoded into a bitstream, and the first texture picture may comprise a first projection of texture data of a first source volume SV1 of a scene model SCE onto a first projection surface SI . The scene model SCE may comprise a number of further source volumes SV2, SV3, SV4.
[0084] In the projection, data on the position of the originating geometry primitive may also be determined, and based on this determination, a geometry picture may be formed. This may happen for example so that depth data is determined for each or some of the texture pixels of the texture picture. Depth data is formed such that the distance from the originating geometry primitive such as a point to the projection surface is determined for the pixels. Such depth data may be represented as a depth picture, and similarly to the texture picture, such geometry picture (in this example, depth picture) may be encoded and decoded with a video codec. This first geometry picture may be seen to represent a mapping of the first projection surface to the first source volume, and the decoder may use this information to determine the location of geometry primitives in the model to be reconstructed. In order to determine the position of the first source volume and/or the first projection surface and/or the first projection in the scene model, there may be first geometry information encoded into or along the bitstream.
[0085] A picture may be defined to be either a frame or a field. A frame may be defined to comprise a matrix of luma samples and possibly the corresponding chroma samples. A field may be defined to be a set of alternate sample rows of a frame. Fields may be used as encoder input for example when the source signal is interlaced. Chroma sample arrays may be absent (and hence monochrome sampling may be in use) or may be subsampled when compared to luma sample arrays. Some chroma formats may be summarized as follows:
- In monochrome sampling there is only one sample array, which may be nominally
considered the luma array.
- In 4:2:0 sampling, each of the two chroma arrays has half the height and half the width of the luma array.
- In 4:2:2 sampling, each of the two chroma arrays has the same height and half the width of the luma array.
- In 4:4:4 sampling when no separate colour planes are in use, each of the two chroma
arrays has the same height and width as the luma array.
[0086] It is possible to code sample arrays as separate colour planes into the bitstream and respectively decode separately coded colour planes from the bitstream. When separate colour planes are in use, each one of them is separately processed (by the encoder and/or the decoder) as a picture with monochrome sampling.
[0087] Texture picture(s) and the respective geometry picture(s) may have the same or different chroma format.
[0088] Depending on the context, a pixel may be defined to a be a sample of one of the sample arrays of the picture or may be defined to comprise the collocated samples of all the sample arrays of the picture.
[0089] Multiple source volumes (objects) may be encoded as texture pictures, geometry pictures and projection geometry information into the bitstream in a similar manner. That is, as in Fig. 5a, the scene model SCE may comprise multiple objects OBJ1, OBJ2, OBJ3, OBJ4, and these may be treated as source volumes SV1, SV2, SV3, SV4 and each object may be coded as a texture picture, geometry picture and projection geometry information.
[0090] In the above, the first texture picture of the first source volume SV1 and further texture pictures of the other source volumes SV2, SV3, SV4 may represent the same time instance. That is, there may be a plurality of texture and geometry pictures and projection geometry information for one time instance, and the other time instances may be coded in a similar manner. Since the various source volumes are in this way producing sequences of texture pictures and sequences of geometry pictures, as well as sequences of projection geometry information, the inter-picture redundancy in the picture sequences can be used to encode the texture and geometry data for the source volumes efficiently, compared to the presently known ways of encoding volume data.
[0091] An object OBJ3 (source volume SV3) may be projected onto a projection surface S3 and encoded into the bitstream as a texture picture, geometry picture and projection geometry information as described above. Furthermore, such source volume may be indicated to be static by encoding information into said bitstream on said fourth projection geometry being static. A static source volume or object may be understood to be an object whose position with respect to the scene model remains the same over two or more or all time instances of the video sequence. For such static source volume, the geometry data (geometry pictures) may also stay the same, that is, the object's shape remains the same over two or more time instances. For such static source volume, some or all of the texture data (texture pictures) may stay the same over two or more time instances. By encoding information into the bitstream of the static nature of the source volume the encoding efficiency may further be improved, as the same information may not need to be coded multiple times. In this manner, the decoder will also be able to use the same reconstruction or partially same reconstruction of the source volume (object) over multiple time instances.
[0092] In an analogous manner, the different source volumes may be coded into the bitstream with different frame rates. For example, a slow-moving or relatively unchanging object (source volume) may be encoded with a first frame rate, and a fast-moving and/or changing object (source volume) may be coded with a second frame rate. The first frame rate may be slower than the second frame rate, for example one half or one quarter of the second frame rate, or even slower. For example, if the second frame rate is 30 frames per second, the second frame rate may be 15 frames per second, or 1 frame per second. The first and second object (source volumes) may be "sampled" in synchrony such that some frames of the faster frame rate coincide with frames of the slower frame rate.
[0093] There may be one or more coordinate systems in the scene model. The scene model may have a coordinate system and one or more of the objects (source volumes) in the scene model may have their local coordinate systems. The shape, size, location and orientation of one or more projection surfaces may be encoded into or along the bitstream with respect to the scene model coordinates. Alternatively or in addition, the encoding may be done with respect to coordinates of the scene model or said first source volume. The choice of coordinate systems may improve the coding efficiency.
[0094] Information on temporal changes in location, orientation and size of one or more said projection surfaces may be encoded into or along the bitstream. For example, if one or more of the objects (source volumes) being encoded is moving or rotating with respect to the scene model, the projection surface moves or rotates with the object to preserve the projection as similar as possible.
[0095] If the projection volumes are changing, for example splitting or bending into two parts, the projection surfaces may be sub-divided respectively. Therefore, information on sub- division of one or more of the source volumes and respective changes in one or more of the projection surfaces may be encoded into or along the bitstream.
[0096] The resulting bitstream may then be output to be stored or transmitted for later decoding and reconstruction of the scene model.
[0097] Decoding of the information from the bitstream may happen in analogous manner. A first texture picture may be decoded from a bitstream to obtain first decoded texture data, where the first texture picture comprises a first projection of texture data of a first source volume of the scene model to be reconstructed onto a first projection surface. The scene model may comprise a number of further source volumes. Then, a first geometry picture may be decoded from the bitstream to obtain first decoded scene model geometry data. The first geometry picture may represent a mapping of the first projection surface to the first source volume. First projection geometry information of the first projection may be decoded from the bitstream, the first projection geometry information comprising information of position of the first projection surface in the scene model. Using this information, a reconstructed scene model may be formed by projecting the first decoded texture data to a first destination volume using the first decoded scene model geometry data and said first projection geometry information to determine where the decoded texture information is to be placed in the scene model.
[0098] A 3D scene model may be classified into two parts: first all dynamic parts, and second all static parts. The dynamic part of the 3D scene model may further be sub-divided into separate parts, each representing objects (or parts of) an object in the scene model, that is, source volumes. The static parts of the scene model may include e.g. static room geometry (walls, ceiling, fixed furniture) and may be compressed either by known volumetric data compression solutions, or, similar to the dynamic part, sub-divided into individual objects for projection-based compression as described earlier, to be encoded into the bitstream. [0099] In an example, some objects may be a chair (static), a television screen (static geometry, dynamic texture), a moving person (dynamic). For each object, a suitable projection geometry (surface) may be found, e.g. cube projection to represent the chair, another cube for the screen, a cylinder for the person's torso, a sphere for a detailed representation of the person's head, and so on. The 3D data of each object may then be projected onto the respective projection surface and 2D planes are derived by "unfolding" the projections from three dimensions to two dimensions (plane). The unfolded planes will have several channels, typically three for the colour representation of the texture, e.g. RGB, YUV, and one additional plane for the geometry (depth) of each projected point for later
reconstruction.
[0100] Frame packing may be defined to comprise arranging more than one input picture, which may be referred to as (input) constituent frames, into an output picture. In general, frame packing is not limited to any particular type of constituent frames or the constituent frames need not have a particular relation with each other. In many cases, frame packing is used for arranging constituent frames of a stereoscopic video clip into a single picture sequence. The arranging may include placing the input pictures in spatially non-overlapping areas within the output picture. For example, in a side-by-side arrangement, two input pictures are placed within an output picture horizontally adjacently to each other. The arranging may also include partitioning of one or more input pictures into two or more constituent frame partitions and placing the constituent frame partitions in spatially non-overlapping areas within the output picture. The output picture or a sequence of frame-packed output pictures may be encoded into a bitstream e.g. by a video encoder. The bitstream may be decoded e.g. by a video decoder. The decoder or a post-processing operation after decoding may extract the decoded constituent frames from the decoded picture(s) e.g. for displaying.
[0101] A standard 2D video encoder may then receive the planes as inputs, either as individual layers per object, or as a frame-packed representation of all objects. The texture picture may thus comprise a plurality of projections of texture data from further source volumes and the geometry picture may represent a plurality of mappings of projection surfaces to the source volume.
[ 102] For each object, additional information may be signalled to allow for reconstruction at the decoder side:
- in the case of a frame-packed representation: separation boundaries may be signalled to recreate the individual planes for each object, - in the case of projection-based compression of static content: classification of each object as static/dynamic may be signalled,
- relevant data to create real- world geometry data from the decoded (quantised) geometry channel(s), e.g. quantisation method, depth ranges, bit depth, etc. may be signalled, - initial state of each object: geometry shape, location, orientation, size may be signalled,
- temporal changes for each object, either as changes to the initial state on a per-picture level, or as a function of time may be signalled, and
- nature of any additional auxiliary data may be signalled.
[0103] For the described example above, signalling may, for example, be as follows:
NUM OBJECTS 4 // folding-chair, TV, person body, person head
FRAME PACKED 0 // individual inputs
for i=0:NUM_OBJECTS // initial states for each projection
PROJ GEO // geometry, e.g. 0: cube, 1 : cylinder, 2: sphere.
PROJ CENTRE ΧΛ7Ζ // projection centre in real world coordinates
PROJ SIZE ΧΛ7Ζ // projection dimensions in real world units
PROJ ROTATION ΧΛ7Ζ // projection orientation
PROJ STATUS // 0: dynamic 1 : static
DEPTH QUANT // depth quantisation, i.e. 0 for linear, ...
DEPTH MIN // minimum depth in real world units
DEPTH MAX // maximum depth in real world units
end for n=0 :NUM_FRAME S
for i=0:NUM_OBJECTS
CHANGE 1 // i.e. 0=static, 1 translation, 2=trans+rotation, ...
TRANS VEC // translation vector
// relevant data to represent change
end
end
[0104] The decoder may receive the static 3D scene model data together with the video bitstreams representing the dynamic parts of the scene model. Based on the signalled information on the projection geometries, each object may be reconstructed in 3D space and the decoded scene model is created by fusing all reconstructed parts (objects or source volumes) together.
[0105] Standard video encoding hardware may be utilized for real-time
compression/decompression of the projection surfaces that have been unfolded onto planes.
[0106] Single projection surfaces might suffice for the projection of very simple objects. Complex objects or larger scenes may require several (different) projections. The relative geometry of the object/scene may remain constant over a volumetric video sequence, but the location and orientation of the projection surfaces in space can change (and can be possibly predicted in the encoding, wherein the difference from the prediction is encoded).
[0107] Depth may be coded "outside-in" (indicating the distance from the projection surface to the 3D point), or "inside-out" (indicating the distance from the 3D point to the projection surface). In inside-out coding, depth of each projected point may be positive (with positive distance PD1) or negative (with negative distance). Fig. 5b shows an example of projecting an object OBJ1 using a cube map projection format, wherein there are six projection surfaces PS 1 , ... ,PS6 of the projection cube PC 1. In this example, the projection surfaces are one on the left side PS1, one in front PS2, one on the right side PS3, one in the back PS4, one in the bottom PS5, and one in the top PS6 of the cube PCI in the setup of Figure 5b. For clarity, only four of the projection surfaces will be shown and used in the rest of the specification. For example, in Figure 8a the projection surfaces on the left PS1, on the right PS3, in the front PS2 and at in the back PS4 are shown. It is, however, clear to a skilled person to utilize similar principles on all six projection surfaces when the cube map projection format is used.
[0108] Figure 8a shows a cross section of a 3D object's surface enclosed in a bounding box as viewed from the top of the bounding box (cube). This part of the figure shows how the un-occluded surfaces of the 3D object is mapped to the four sides of the bounding box, while the occluded surfaces are not. In Figure 8b new projection surface poses are established to project the previously occluded surfaces of the 3D object. It should be noted that in Figure 8b the pose of the chosen projection surfaces is independent of other chosen projection surfaces, and are chosen such that they are sufficient enough to cover the surface that is to be projected.
[0109] The depth map for each projection surface PS1— PS6 may be formed on the basis of the distances PD1, PD2 of points of the object OBJ1 to the projection surface PS1— PS6. This distance is typically the distance of the surface point normal towards the projection surface, in other words a line from the 3D point to the projection surface so that the line is perpendicular to the projection surface. [01 10] Fig. 6 shows a projection of a source volume to a projection surface, and inpainting of a sparse projection. A three-dimensional (3D) scene model, represented as objects OBJ1 comprising geometry primitives such as mesh elements, points, and/or voxel, may be projected onto one, or more, projection surfaces, as described earlier. As shown in Fig 6, these projection surface geometries may be "unfolded" onto 2D planes (two planes per projected source volume: one for texture TP1, one for depth GP1), which may then be encoded using standard 2D video compression technologies. Relevant projection geometry information may be transmitted alongside the encoded video files to the decoder. The decoder may then decode the video and performs the inverse projection to regenerate the 3D scene model object ROBJl in any desired representation format, which may be different from the starting format e.g. reconstructing a point cloud from original mesh model data.
[01 1 1] In addition to the texture picture and geometry picture shown in Fig. 6, one or more auxiliary pictures related to one or more said texture pictures and the pixels thereof may be encoded into or along with the bitstream. The auxiliary pictures may e.g. represent texture surface properties related to one or more of the source volumes. Such texture surface properties may be e.g. surface normal information (e.g. with respect to the projection direction), reflectance and opacity (e.g. an alpha channel value). An encoder may encode, in or along with the bitstream, indication(s) of the type(s) of texture surface properties represented by the auxiliary pictures, and a decoder may decode, from or along the bitstream, indication(s) of the type(s) of texture surface properties represented by the auxiliary pictures.
[01 12] Mechanisms to represent an auxiliary picture may include but are not limited to the following:
A colour component sample array, such as a chroma sample array, of the geometry picture.
- An additional sample array in addition to the conventional three colour component sample arrays of the texture picture or the geometry picture.
A constituent frame of a frame-packed picture that may also comprise texture picture(s) and/or geometry picture(s).
An auxiliary picture included in specific data units in the bitstream. For example, the Advanced Video Coding (H.264/AVC) standard specifies a network abstraction layer
(NAL) unit for a coded slice of an auxiliary coded picture without partitioning.
An auxiliary picture layer within a layered bitstream. For example, the High Efficiency Video Coding (HEVC) standard comprises the feature of including auxiliary picture layers in the bitstream. An auxiliary picture layer comprises auxiliary pictures. An auxiliary picture bitstream separate from the bitstream(s) for the texture picture(s) and geometry picture(s). The auxiliary picture bitstream may be indicated, for example in a container file, to be associated with the bitstream(s) for the texture pictures(s) and geometry picture(s).
[01 13] The mechanism(s) to be used for auxiliary pictures may be pre-defined e.g. in a coding standard, or the mechanism(s) may be selected e.g. by an encoder and indicated in or along the bitstream. The decoder may decode the mechanism(s) used for auxiliary pictures from or along the bitstream.
[01 14] The projection surface of a source volume may encompass the source volume, and there may be a model of an object in that source volume. Encompassing may be understood so that the object (model) is inside the surface such that when looking from the centre axis or centre point of the surface, the object's points are closer to the centre than the points of the projection surface are. The model may be made of geometry primitives, as described. The geometry primitives of the model may be projected onto the projection surface to obtain projected pixels of the texture picture. This projection may happen from inside-out.
Alternatively or in addition, the projection may happen from outside-in.
Projecting 3D data onto 2D planes is independent from the 3D scene model representation format. There exist several approaches for projecting 3D data onto 2D planes, with the respective signalling. For example, there exist several mappings from spherical coordinates to planar coordinates, known from map projections of the globe, and the type and parameters of such projection may be signalled. For cylindrical projections, the aspect ratio of height and width may be signalled.
[01 15] It may happen that when the projection of the object is performed on the projection surfaces PS1— PS6, some parts of the object OBJl or another object may occlude some other parts of the object OBJl which otherwise were visible from the projection surface in question. Hence, some parts of the object OBJl would not be projected to any of the surfaces of the projection format. Figure 7 illustrates an example of this kind of situation. In this example the person's left hand occludes a part of the body of the person so that when viewed (projected) from the left hand's side the occluded part of the body would not be projected. In the same way, the planar object on the person's right hand occludes some parts of the person's stomach when viewed from the front of the person. Also Figure 8a shows an example of projection occlusions in a simplified manner. In this Figure the arrows indicate projections of points of the object to projection surfaces PS1— PS6 (of which only four are shown for clarity, as was explained above). The arrows marked with X indicate projections which are not performed due to occlusions i.e. those points belong to a part of the 3D object which is not fully visible from that particular viewing direction.
[01 16] In the following, a method of projecting and encoding also occluded points will be described in more detail, in accordance with an embodiment.
[01 17] When a scene or an object of the scene is projected to a projection format, which in this example is the cube map format, occlusion examination is performed to detect points, surfaces, other parts of the object which will not be projected onto the projection surface in question. In the example of Figures 8a and 8b some occluded parts of the example of Figure 8a are depicted in Figure 8b as lines OP1, OP2. The occlusion detection may be performed during the projection operation wherein when an occlusion is detected, that part will not be projected to the projection surface in question. Information of the non-projected (occluded) parts may be temporally saved, if necessary, and used to form auxiliary projection surfaces. The above procedure may be repeated for each projection surface of the projection model so that all possible occlusions could be detected for each projection surface.
[01 18] The initial projection surfaces of the embodiment may also be called as main projection surfaces in this specification. Using the notations of Figure 5b, the main projection surfaces are the left PS1, front of PS2, right PS3, back PS4, bottom PS5 and top PS6 of the cube map format.
[01 19] It is noted here that the occlusion detection may be time dependent wherein one occlusion detection and succeeding operations induced by the occlusion detection (some of which will be described below) may be valid only for one time instance of a time-varying 3D visual scene/object and similar operations may need to be performed for other time instances of a time-varying 3D visual scene/object as well. In accordance with an embodiment, the occlusion detection is performed for all time instances of a time- varying 3D visual scene/object.
[0120] Information of the detected occlusions may be utilized to form auxiliary projection surfaces. In accordance with an embodiment, a sequence of unique pose (location, orientation and size) of auxiliary projection surfaces with respect to a 3D object/scene are identified. For example, occluded points are examined to determine which of them belong to the same surface of the object. When an appropriate auxiliary projection surface has been determined, information regarding that auxiliary projection surface with respect to a main projection surface will be obtained. The pose of the auxiliary projection surfaces can be arbitrary in terms of location, orientation and size. This information may comprise the direction of the auxiliary projection surface with respect to a main projection surface, the size of the auxiliary projection surface (e.g. width and height), and location (distance) of the auxiliary projection surface with respect to the main projection surface.
[0121] In the example of Figures 8a and 8b the lines OP1, OP2 are examples of a set of occluded points of the object OBJl . As can be seen from these examples, all occluded points which belong to the same surface of the object, need not be projected to the same auxiliary projection surface but they may be projected to different auxiliary projection surfaces.
However, one point of the 3D object/scene should only be projected to one auxiliary projection surface, in accordance with an embodiment. Furthermore, each of the determined auxiliary projection surfaces maps only those 3D surface points that are un-occluded in its viewing direction.
[0122] When auxiliary projection surfaces have been defined and selected for use, a texture plane is computed for each of the chosen poses of the auxiliary projection surfaces by projecting the texture of the un-occluded 3D surface that intersects its viewing direction. In other words, the texture of the 3D surface which is visible (un-occluded) from the selected auxiliary projection and pose is projected to the selected auxiliary projection to obtain the texture plane. Also, a representation of the distance of 3D surface points from the auxiliary projection surface is computed for each of the chosen poses of the auxiliary projection surfaces, to generate a related depth plane.
[0123] For each of the chosen poses of the auxiliary projection surfaces, other 3D surface point related attributes, such as normals and bi-directional reflectance distribution functions (BRDF), may be projected to form their own individual, but related auxiliary projection surfaces.
[0124] The computed texture, depth and auxiliary projection surfaces are collected and may either be frame-packed or layered before encoding using 2D video compression algorithms.
[0125] The relative poses of auxiliary projection surfaces with respect to another of the projection surfaces are computed and signalled either within the encoded stream or by other external means. Additional signalling may also be formed that relates the depth and other auxiliary projection surfaces to their respective texture planes are included either within the encoded stream or by other external means.
[0126] Information of the auxiliary projection surface may comprise none, one or more of the following and possibly some other information not listed here:
- projection surface type, such as a cube, cylinder, sphere
- location of the projection surface in 3D space - orientation of the projection surface in 3D space
- size of the projection surface in 3D space
- type of a projection centre, such as a projection centre point, axis, or plane
- location and/or orientation of a projection centre.
[0127] In an embodiment, the relative pose of the projection surfaces (main and auxiliary) is computed and signalled either within the encoded bit stream or by external means. For example, if the faces of a bounding box are used as the initial (main) projection surfaces of a 3D point cloud, then the pose of an auxiliary projection surface is signalled as a surface generated as a rotation of the normal of the main projection surface, a displacement vector of the central point of the auxiliary projection surface from the main projection surface, and if needed the horizontal and vertical dimensions of the surface. This process is illustrated in Figure 8c. The width and height of the projection surface can either be signalled explicitly or inferred from the spatial dimension of the coded texture, depth or other auxiliary projection surfaces. This process is iterated for all the projected surfaces of a 3D point cloud for one time instant.
[0128]
[0129] Figure 8c illustrates the calculation of the relative pose of the projection surface PI with respect to the projection surface P0. The pose of the projection surface PI can be signalled as a combination of parameters (d, Θ) where d is the distance vector from the centre of the projection surface P0 to the centre of the projection surface PI, and Θ is the rotation of the planar normal of the projection surface P0 toward the direction of the planar normal of the projection surface PI .
[0130] Encoding the projection information may be performed, for example, as follows.
[0131] In an embodiment, the projected texture planes of a point cloud for one time instant can all be collected and frame-packed and similarly the depth and the possible auxiliary planes are frame-packed such that the frame packing is consistent across all the planes for one time instant. Each of the planes are then coded using traditional 2D video coders using layered video coding or coded independently and related to each other using some form of higher level signalling (for e.g. using tracks and track references of ISO Base Media File Format). Alternatively, each texture, depth and auxiliary planes of a single time instant of a point cloud could be considered independent of each other in that time instant and coded serially one after the other. For example, if there are nine projection surfaces identified of a point cloud, then for that time instant, first the nine texture planes are coded, followed by nine depth planes and the followed by nine planes that carry surface normal and so on until all the auxiliary data planes are coded.
[0132] Figures 9a, 9b and 9c illustrate the encoding, in accordance with an embodiment. Figure 9a shows the texture planes projected on to seven projection surfaces Tl— T7. The hashed boxes Tl— T4 are the four sides of a bounding box of a 3D object (the top and bottom planes are omitted in this figure for clarity). The three other hashed boxes T5, T6, T7 are the auxiliary projection surfaces computed to project occluded surfaces after the initial four projections. The arrows illustrate the signalling of the poses of the auxiliary projection surfaces with respect to the main projection surfaces Tl— T4. Figure 9b shows the same process for the computing of the depth planes Dl— D7, and Figure 9c illustrates the coded bit stream after layering the projection surfaces of respective attributes, in accordance with an embodiment. The hashings of the boxes of the coded bit stream and the labels Tl— T7, Dl— D7 above the boxes illustrate the source of information which is coded in the boxes.
[0133] In the following, some other embodiments will be shortly described.
[0134] In an embodiment, an entity that maps 3D texture data on to projection surfaces can choose the six sides of an oriented or an axis aligned bounding box of a 3D point cloud as the initial set of projection surfaces. The mapping of 3D surface parts on to the projection surfaces only maps the closest coherent surface onto the projections surfaces. For example, if there are two surfaces of the 3D object where one surface occludes the other surface in the direction of the 2D surfaces normal, then only the occluding surface is mapped on to the projection surface. The occluded surface may require the generation of another projection surface for mapping. The pose of the projections surfaces for the occluded points in the point cloud can be chosen such that it maximizes the rate-distortion performance for encoding the texture, depth and other auxiliary surfaces.
[0135] In an embodiment, the size of the projection surface that maps a partial 3D surface can be chosen such that the area of the projection surface that does not map any surface points of the 3D texture is minimized. This is done by, for example, ensuring that there is at least one row and one column of the projection surface that is fully mapped to a 3D surface. The three projections surface that maps previously occluded surface as illustrated in Figure 8b are just sufficient enough to map the surface in its view direction.
[0136] In an embodiment, for each of the chosen projection surfaces that maps the points of a point cloud, a plane with the projected texture, and a plane projected depth is generated. Similarly, other attributes of the mapped points such as surface normal and bi-directional reflectance distribution functions (BRDF), can also be coded as additional auxiliary surfaces. Therefore, for every chosen size, orientation and location of a projection surface there could be one or more surfaces generated that maps the different attributes of the projected points of a point cloud.
[0137] In an embodiment, a number of n coherent surfaces is defined. The surfaces may be derived, for example, by a set of geometry criteria, such as:
- distance to most appropriate projection geometry plane, where the most appropriate plane is defined by the surface normals of the volumetric video object;
- Spatial coherence: All points of a surface are spatially coherent. When a cut in this smooth surface distribution is detected, a new surface is defined. Thus, occluded areas would form a new surface.
- Top-down occlusion separation: If parts of a coherent surface that would be occluded by another surface, these parts are separated into a new surface.
[0138] In an embodiment, each 3D point is assigned with a specific surface ID so that there is only a single ID per point.
[0139] In an embodiment, resulting set of surfaces is processed according to encoding parameters. For example, if the number of projections is limited, surfaces are removed in a bottom-up approach, i.e. only the most outward lying surfaces are kept. All points of the removed surfaces are assigned with a surface ID indicating to ignore this point. If the number of projections is larger than required to cover all surfaces (or a predefined threshold number of surfaces), the number of projections may be reduced in the encoding parameters to save bit rate.
[0140] Remaining surface IDs may be converted to projection IDs so that each point of a volumetric video object has one single ID indicating on which face of the projection geometry it will be mapped. Several surfaces can be mapped onto same projection face if they don't occlude eachother, i.e. there are as many projection Ids as there are projection faces but there might be a larger number of surface IDs.
[0141 ] Then, in accordance with an embodiment, from three-dimensional to two- dimensional projection may be performed according projection IDs.
[0142] As the projection IDs are unique in this embodiment, this approach enhances parallelization capabilities because projection and encoding each projection face may be performed independently.
[0143] For completeness, decoding operations will now be described in more detail.
[0144] A bit stream comprising a sequence of one or more coded sets of pictures is received. The coded set of pictures in each unit of the sequence after decoding and reconstruction is a representation of a 3D scene/object at a particular instant in time. Each unit of the sequence may contain a combination of zero, one, or more texture, depth and other auxiliary surfaces coded as pictures. Each texture picture, if available in a time-sequenced unit, may be a frame-packed representation of all the projected textures of a 3D object/scene or a single layer related to a particular pose of a projection surface, wherein a corresponding de-packing operations may be performed to the received sequences of one or more coded sets of pictures. Zero or more depth projected surfaces that are related to the pose of its projection surface are reconstructed using signalling that is either encoded within the bit stream or that can be obtained from signalling using external means.
[0145] Zero or more auxiliary surfaces that carry other surface data, such as surface normals and BRDFs, and can be related to its projection surfaces pose are reconstructed using signalling either within the coded bit stream or signalled externally.
[0146] The 3D surface is reconstructed using the required projection surfaces for any time unit using the texture, depth and auxiliary data encoded as pictures.
[0147] In an embodiment, a receiver of the coded point cloud data receives the coded projection surfaces of the point cloud and additional signalling about the position, orientation and size of the projection surfaces. Using the coded data and the signalled information, a receiving entity can reconstruct a reasonably accurate representation of the original point cloud.
[0148] Some embodiments may be some advantages. For example, better handling of occluded surfaces in a 3D object/scenes may be obtained. Also, coding of projected surfaces may be efficient. Furthermore, some embodiments could enable new six degrees of freedom (6DOF) experiences such as zooming into internal objects.
[0149] Figs. 9a and 9b show flow charts for compressing encoding and decoding of a scene of a volumetric video.
[0150] In the encoding, in phase 801 of the flow diagram of Fig. 8a, volumetric
presentation of an object or a scene is obtained.
[0151 ] In phase 802, projection data is generated from the volumetric presentations by projecting the object onto one or more projection surfaces using a projection geometry.
[0152] In phase 803 occluded parts which did not project on the projection surface are examined.
[0153] In phase 804 an auxiliary projection surface is defined for the occluded parts,
wherein in phase 805 the occluded parts are projected to the auxiliary projection surface. [0154] In phase 806 the main and auxiliary projection surfaces are encoded into a bit stream, and in phase 807 information of the relationship between the main projection surface and the auxiliary projection surface into a bit stream, which may be the same bit stream than in phase 805 or a different bit stream.
[0155] In the decoding, in phase 821 main and auxiliary projection surfaces are received and decoded from a bit stream to obtain decoded projection data.
[0156] In phase 822 information of the relationship between the main projection surfaces and the auxiliary projection surfaces is received and decoded from the same or a different bit stream to obtain decoded relationship data.
[0157] In phase 823, the 3D object surfaces are reconstructed by using the decoded projection data and the relationship data.
[0158] Figure 11a illustrates an example of an encoding device 1000 which may perform the above described compression operations. Objects of a source volume of a digital scene model may be input 1001 to a projection element 1002 in which different objects may be projected to projection surfaces. An occlusion detection element 1003 examines which parts of the object were occluded and provides this information to an auxiliary projection element 1004. The auxiliary projection element 1004 generates projections of the occluded elements. The projection data may be provided for subsequent encoding e.g. in an encoding element 1005 and transmission. It should be noted that operations of the projection element 1002 and the auxiliary projection element 1002 may also be performed by the same element.
[0159] Figure 1 lb illustrates an example of a decoding device 1010 which may perform the above described decoding operations. Main and auxiliary projection surfaces and information of the relationship between the main projection surfaces and the auxiliary projection surfaces are received 1011 and decoded from a bit stream by a decoding element 1012. A reconstruction element 1013 reconstructs 3D object surfaces by using the decoded projection data and the relationship data. Reconstructed 3D objects may be output 1014 for subsequent displaying and/or storage.
[0160] In the above, some embodiments have been described with reference to encoding. It needs to be understood that said encoding may comprise one or more of the following:
encoding source image data into a bitstream, encapsulating the encoded bitstream in a container file and/or in packet(s) or stream(s) of a communication protocol, and announcing or describing the bitstream in a content description, such as the Media Presentation
Description (MPD) of ISO/IEC 23009-1 (known as MPEG-DASH) or the IETF Session Description Protocol (SDP). Similarly, some embodiments have been described with reference to decoding. It needs to be understood that said decoding may comprise one or more of the following: decoding image data from a bitstream, decapsulating the bitstream from a container file and/or from packet(s) or stream(s) of a communication protocol, and parsing a content description of the bitstream,
[0161] In the above, some embodiments have been described with reference to encoding or decoding texture pictures, geometry pictures and projection geometry information into or from a single bitstream. It needs to be understood that embodiments can be similarly realized when encoding or decoding texture pictures, geometry pictures and projection geometry information into or from several bitstreams that are associated with each other, e.g. by metadata in a container file or media presentation description for streaming.
[0162] In general, the various embodiments of the invention may be implemented in hardware or special purpose circuits or any combination thereof. While various aspects of the invention may be illustrated and described as block diagrams or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
[0163] Embodiments of the inventions may be practiced in various components such as integrated circuit modules. The design of integrated circuits is by and large a highly automated process. Complex and powerful software tools are available for converting a logic level design into a semiconductor circuit design ready to be etched and formed on a semiconductor substrate.
[0164] Programs, such as those provided by Synopsys, Inc. of Mountain View, California and Cadence Design, of San Jose, California automatically route conductors and locate components on a semiconductor chip using well established rules of design as well as libraries of pre stored design modules. Once the design for a semiconductor circuit has been completed, the resultant design, in a standardized electronic format (e.g., Opus, GDSII, or the like) may be transmitted to a semiconductor fabrication facility or "fab" for fabrication.
[0165] The foregoing description has provided by way of exemplary and non-limiting examples a full and informative description of the exemplary embodiment of this invention. However, various modifications and adaptations may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings and the appended claims. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention.

Claims

1. A method comprising:
obtaining volumetric presentation of an object;
projecting the object to a main projection surface using a projection format; determining an occluded part of the object on the main projection surface; defining an auxiliary projection surface for the occluded part;
projecting the occluded part to the auxiliary projection surface; and
providing an indication of a relationship of the auxiliary projection surface with the main projection surface.
2. The method according to claim 1, said determining an occluded part comprising: examining which parts of the object are occluded when the object is viewed from the direction of the main projection surface.
3. The method according to claim 1 or 2, said determining an occluded part comprising:
projecting a point of the object to the main projection surface; and
examining whether another point closer to the main projection surface has been projected to the same point, and if so, determining that the point is occluded by the other point.
4. The method according to claim 1, 2 or 3 further comprising:
examining, which occluded points belong to a same surface of the object; and examining which main projection surface was used when detecting the occluded points; and
determining, which kind of auxiliary projection surface to use for the occluded points belonging to the same surface of the object.
5. The method according to any of the claims 1 to 4 further comprising: computing a texture plane for each of the auxiliary projection surfaces by projecting the texture of the auxiliary projection surface that intersects its viewing direction; and
computing a representation of a distance of surface points from the auxiliary projection surface to generate a related depth plane.
6. The method according to any of the claims 1 to 5 comprising providing at least one of the following information about the auxiliary projection surface:
projection type,
projection surface type,
location of the projection surface in three-dimensional space,
orientation of the projection surface in three-dimensional space,
size of the projection surface in three-dimensional space,
type of a projection centre.
7. An apparatus comprising at least one processor and at least one memory, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:
obtain volumetric presentation of an object;
project the object to a main projection surface using a projection format; determine an occluded part of the object on the main projection surface; define an auxiliary projection surface for the occluded part;
project the occluded part to the auxiliary projection surface; and
provide an indication of a relationship of the auxiliary projection surface with the main projection surface.
8. The apparatus according to claim 7, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to determine an occluded part by:
examining which parts of the object are occluded when the object is viewed from the direction of the main projection surface.
9. The method according to claim 7 or 8, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to determine an occluded part by:
projecting a point of the object to the main projection surface; and
examining whether another point closer to the main projection surface has been projected to the same point, and if so, determining that the point is occluded by the other point.
10. The method according to claim 7, 8 or 9, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to:
examine, which occluded points belong to a same surface of the object; and examine which main projection surface was used when detecting the occluded points; and
determine, which kind of auxiliary projection surface to use for the occluded points belonging to the same surface of the object.
11. The method according to any of the claims 7 to 10, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to:
compute a texture plane for each of the auxiliary projection surfaces by projecting the texture of the auxiliary projection surface that intersects its viewing direction; and
compute a representation of a distance of surface points from the auxiliary projection surface to generate a related depth plane.
12. The method according to any of the claims 7 to 11 comprising providing at least one of the following information about the auxiliary projection surface:
projection type,
projection surface type,
location of the projection surface in three-dimensional space,
orientation of the projection surface in three-dimensional space,
size of the projection surface in three-dimensional space,
type of a projection centre.
13. A computer readable storage medium comprising code for use by an apparatus, which when executed by a processor, causes the apparatus to perform at least:
obtain volumetric presentation of an object;
project the object to a main projection surface using a projection format; determine an occluded part of the object on the main projection surface; define an auxiliary projection surface for the occluded part;
project the occluded part to the auxiliary projection surface; and provide an indication of a relationship of the auxiliary projection surface with the main projection surface.
14. An apparatus comprising:
means for
obtaining volumetric presentation of an object;
means for projecting the object to a main projection surface using a projection format;
means for determining an occluded part of the object on the main projection surface;
means for defining an auxiliary projection surface for the occluded part; means for projecting the occluded part to the auxiliary projection surface; and means for providing an indication of a relationship of the auxiliary projection surface with the main projection surface.
15. A method comprising:
receiving projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
receiving projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
receiving information of the relationship of the auxiliary projection surface with the main projection surface;
using the information of the relationship to obtain the auxiliary projection surface; back-projecting the first part of the object from the main projection surface; and back-projecting the second part of the object from the auxiliary projection surface.
16. The method according to claim 15 further comprising:
receiving at least one of the following information about the auxiliary projection surface:
projection type,
projection surface type,
location of the projection surface in three-dimensional space,
orientation of the projection surface in three-dimensional space, size of the projection surface in three-dimensional space,
type of a projection centre.
17. An apparatus comprising at least one processor and at least one memory, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:
receive projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
receive projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
receive information of the relationship of the auxiliary projection surface with the main projection surface;
use the information of the relationship to obtain the auxiliary projection surface; back-project the first part of the object from the main projection surface; and back-project the second part of the object from the auxiliary projection surface.
18. The apparatus according to claim 17, said at least one memory stored with code thereon, which when executed by said at least one processor, causes the apparatus to:
receive at least one of the following information about the auxiliary projection surface:
projection type,
projection surface type,
location of the projection surface in three-dimensional space,
orientation of the projection surface in three-dimensional space,
size of the projection surface in three-dimensional space,
type of a projection centre.
19. A computer readable storage medium comprising code for use by an apparatus, which when executed by a processor, causes the apparatus to perform at least:
receive projection information of a first part of an object of a volumetric presentation with reference to a main projection surface; receive projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
receive information of the relationship of the auxiliary projection surface with the main projection surface;
use the information of the relationship to obtain the auxiliary projection surface; back-project the first part of the object from the main projection surface; and back-project the second part of the object from the auxiliary projection surface.
20. An apparatus comprising:
means for receiving projection information of a first part of an object of a volumetric presentation with reference to a main projection surface;
means for receiving projection information of a second part of the object with reference to an auxiliary projection surface, said second part being occluded from a viewing direction of the main projection surface;
means for receiving information of the relationship of the auxiliary projection surface with the main projection surface;
means for using the information of the relationship to obtain the auxiliary projection surface;
means for back-projecting the first part of the object from the main projection surface; and
means for back-projecting the second part of the object from the auxiliary projection surface.
EP18867354.5A 2017-10-18 2018-10-10 An apparatus, a method and a computer program for volumetric video Pending EP3698332A4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20175914 2017-10-18
PCT/FI2018/050730 WO2019077199A1 (en) 2017-10-18 2018-10-10 An apparatus, a method and a computer program for volumetric video

Publications (2)

Publication Number Publication Date
EP3698332A1 true EP3698332A1 (en) 2020-08-26
EP3698332A4 EP3698332A4 (en) 2021-06-30

Family

ID=66174327

Family Applications (1)

Application Number Title Priority Date Filing Date
EP18867354.5A Pending EP3698332A4 (en) 2017-10-18 2018-10-10 An apparatus, a method and a computer program for volumetric video

Country Status (2)

Country Link
EP (1) EP3698332A4 (en)
WO (1) WO2019077199A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210281880A1 (en) * 2018-07-11 2021-09-09 Telefonaktiebolaget Lm Ericsson (Publ) Video Based Point Cloud Codec Bitstream Specification
WO2023180843A1 (en) * 2022-03-25 2023-09-28 Sony Group Corporation Patch generation for dynamic mesh coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5243612B2 (en) * 2008-10-02 2013-07-24 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ Intermediate image synthesis and multi-view data signal extraction
EP2180449A1 (en) * 2008-10-21 2010-04-28 Koninklijke Philips Electronics N.V. Method and device for providing a layered depth model of a scene
WO2010049850A1 (en) * 2008-10-28 2010-05-06 Koninklijke Philips Electronics N.V. Generation of occlusion data for image properties
WO2012036902A1 (en) * 2010-09-14 2012-03-22 Thomson Licensing Compression methods and apparatus for occlusion data
EP2451164B1 (en) * 2010-11-08 2017-05-03 Telefonaktiebolaget LM Ericsson (publ) Improved view synthesis
US9460551B2 (en) 2011-08-10 2016-10-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for creating a disocclusion map used for coding a three-dimensional video
WO2013074153A1 (en) * 2011-11-17 2013-05-23 University Of Southern California Generating three dimensional models from range sensor data
KR20130074383A (en) * 2011-12-26 2013-07-04 삼성전자주식회사 Method and apparatus for view generation using multi-layer representation
WO2013162735A1 (en) * 2012-04-25 2013-10-31 University Of Southern California 3d body modeling from one or more depth cameras in the presence of articulated motion

Also Published As

Publication number Publication date
EP3698332A4 (en) 2021-06-30
WO2019077199A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
US11109066B2 (en) Encoding and decoding of volumetric video
US11599968B2 (en) Apparatus, a method and a computer program for volumetric video
EP3669333B1 (en) Sequential encoding and decoding of volymetric video
US11430156B2 (en) Apparatus, a method and a computer program for volumetric video
US11202086B2 (en) Apparatus, a method and a computer program for volumetric video
WO2019135024A1 (en) An apparatus, a method and a computer program for volumetric video
US10499033B2 (en) Apparatus, a method and a computer program for coding and rendering volumetric video
EP3614674A1 (en) An apparatus, a method and a computer program for volumetric video
US11659151B2 (en) Apparatus, a method and a computer program for volumetric video
WO2019158821A1 (en) An apparatus, a method and a computer program for volumetric video
US11463681B2 (en) Encoding and decoding of volumetric video
US11528509B2 (en) Video transmission method, video transmission device, video receiving method and video receiving device
WO2019229293A1 (en) An apparatus, a method and a computer program for volumetric video
WO2019115867A1 (en) An apparatus, a method and a computer program for volumetric video
WO2019115866A1 (en) An apparatus, a method and a computer program for volumetric video
JP7344988B2 (en) Methods, apparatus, and computer program products for volumetric video encoding and decoding
EP3729805A1 (en) Method for encoding and decoding volumetric video data
EP3698332A1 (en) An apparatus, a method and a computer program for volumetric video
WO2018109265A1 (en) A method and technical equipment for encoding media content
WO2020157376A1 (en) An apparatus, a method and a computer program for volumetric video
WO2019162564A1 (en) An apparatus, a method and a computer program for volumetric video
WO2019234290A1 (en) An apparatus, a method and a computer program for volumetric video
WO2022219230A1 (en) A method, an apparatus and a computer program product for video encoding and video decoding

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20200518

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
A4 Supplementary search report drawn up and despatched

Effective date: 20210531

RIC1 Information provided on ipc code assigned before grant

Ipc: G06T 9/00 20060101AFI20210525BHEP

Ipc: G06T 19/20 20110101ALI20210525BHEP

Ipc: G06T 15/20 20110101ALI20210525BHEP

Ipc: G06T 15/04 20110101ALI20210525BHEP

Ipc: G06T 7/50 20170101ALI20210525BHEP

Ipc: G06T 15/40 20110101ALI20210525BHEP

Ipc: G06K 9/00 20060101ALI20210525BHEP

Ipc: G06T 17/20 20060101ALI20210525BHEP