WO2019115866A1 - Appareil, procédé, et programme d'ordinateur pour vidéo volumétrique - Google Patents

Appareil, procédé, et programme d'ordinateur pour vidéo volumétrique Download PDF

Info

Publication number
WO2019115866A1
WO2019115866A1 PCT/FI2018/050876 FI2018050876W WO2019115866A1 WO 2019115866 A1 WO2019115866 A1 WO 2019115866A1 FI 2018050876 W FI2018050876 W FI 2018050876W WO 2019115866 A1 WO2019115866 A1 WO 2019115866A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
images
motion vector
bitstream
image generation
Prior art date
Application number
PCT/FI2018/050876
Other languages
English (en)
Inventor
Miska Hannuksela
Sebastian Schwarz
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 WO2019115866A1 publication Critical patent/WO2019115866A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Definitions

  • the present invention relates to an apparatus, a method and a computer program for dynamic point cloud compression and decompression in video coding and decoding.
  • 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. 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.
  • 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 three sets of planes, where a first set carries the temporal motion image data, a second set carries the texture data and a third set carries the depth data, i.e. the distance of the mapped 3D surface points from the projection surfaces.
  • MPEG W17248 discloses a test model for MPEG point cloud coding to provide a standardized way of dynamic point cloud compression.
  • MPEG W17248 specifies an image generation process, which exploits a 3D to 2D mapping and outputs motion, texture and depth data of the point cloud as images.
  • the depth and the texture image frames are output in the chroma sampling format 4:2:0, while the motion image uses chroma sampling format 4:4:4.
  • a method comprising: inputting a point cloud frame in an encoder; obtaining, based on the input point cloud frame, a motion field comprising motion vectors identifiable by three orthogonal motion vector components; using said three orthogonal motion vector components as luminance and chrominance components for texture image generation and depth image generation; identifying, per a spatial and a temporal unit, most significant motion vector component; assigning the most significant motion vector component to a luminance component for motion image generation; assigning the two remaining motion vector components to chrominance components to be subsampled for motion image generation; encoding the motion images, texture images and depth images into a bitstream of encoding video frames; and encoding, into or along the bitstream, information identifying the motion vector components assigned to the luminance and chrominance components for the motion image generation.
  • identifying the most significant motion vector component is performed with rate-distortion optimization comprising: downsampling of the motion fields of the two remaining motion vector components prior to encoding, and encoding the motion fields for the three motion vector components.
  • said spatial units are predetermined or selected by the encoder, said spatial units comprising one or more of the following: an entire picture, a slice, a tile, a set of slices or tiles, a patch, a block.
  • said temporal units are predetermined or selected by the encoder, said temporal units comprising one or more of the following: a single picture, a group of pictures, or a coded video sequence.
  • the method further comprises encoding the information identifying the motion vector components assigned to the luminance and chrominance components for the motion image generation as an SEI message.
  • the method further comprises selecting a filter and filter taps for a downsampling filter for a 3D motion field downsampling and/or for a upsampling filter for deriving a full-resolution 3D motion field such that only samples belonging to an object are used in filtering.
  • the method further comprises obtaining the motion field by deforming the input point cloud frame.
  • the method further comprises deforming the input point cloud frame by reshaping patches in a respective texture image into the same or similar shape as in a reconstructed reference texture image; and performing a 3D-to-2D conversion for the deformed input point cloud frame to generate a texture image to be encoded.
  • the method further comprises computing a difference between positions of the input point cloud frame and the deformed input point cloud frame; and obtaining the motion field comprising motion vectors identifiable by three orthogonal motion vector components from said difference.
  • 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 the above method.
  • a computer readable storage medium comprises code for use by an apparatus, which when executed by a processor, causes the apparatus to perform at least the above method.
  • a method comprises receiving a bitstream in a decoder; decoding, from or along the bitstream, information identifying motion vector components assigned to luminance and chrominance components for a motion image generation, said chrominance components being subsampled compared to the luminance component; decoding motion images, texture images and depth images from the bitstream, wherein said motion images are decoded with the luminance component and the subsampled chrominance components; and upsampling the chrominance components of the decoded motion images, per a spatial and a temporal unit, to their original resolution.
  • 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 a known test model for standardized validating of an inter point cloud frame encoding
  • FIG. 8 shows a flow chart for the inter point cloud frame coding according to an embodiment
  • FIG. 9 shows an encoder for the inter point cloud frame coding according to an embodiment
  • Fig. 10 shows an encoder for the inter point cloud frame coding according to another embodiment.
  • 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”.
  • 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. Nevertheless, the size of voxel within the 3D volumetric
  • 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 volume. 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
  • the system of Fig. 1 may consist of three main parts: image sources, a server and a rendering device.
  • a video source SRC 1 may comprise multiple cameras CAM 1 , 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 SRC1 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 SRC1 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 devices SRC1 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.
  • PROC2 computer processors
  • MEM2 memory
  • PROGR2 shown computer program 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.
  • a server SERVER or a plurality of servers storing the output from the capture device SRC1 or device SRC2 and/or to form a scene model from the data from devices SRC1, 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.
  • 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 DET1 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 SRC1, 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 SRC1 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 CAMl.
  • 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 ORDET1 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.
  • 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 3a 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 (Pintra); 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 EEI,AI and FEI,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 viewer's body 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.
  • 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 Cl 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 S A 2 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 Cl 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 Cl and C2, where the cameras Cl and C2 may be real-world cameras or they may be 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 Cl 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 Cl 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 S A 2 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 Fx 2 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.
  • 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). [0065] Fig.
  • 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 Sl, S2, S3, S4, as well as determining depth information for the purpose of encoding volumetric video.
  • the projection of source volumes SV 1 , 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 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 Sl, 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 lO-bit, l2-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.
  • H.264/AVC Advanced Video Coding standard
  • HE VC High Efficiency Video Coding standard
  • Some of the key definitions, bitstream and coding structures, and concepts of H.264/AVC are the same as in HEVC - hence, they are described below jointly.
  • the aspects of the invention are not limited to H.264/AVC or HEVC, but rather the description is given for one possible basis on top of which the invention may be partly or fully realized.
  • a coding block may be defined as an NxN block of samples for some value of N such that the division of a coding tree block into coding blocks is a partitioning.
  • a coding tree block may be defined as an NxN block of samples for some value of N such that the division of a component into coding tree blocks is a partitioning.
  • a coding tree unit may be defined as a coding tree block of luma samples, two corresponding coding tree blocks of chroma samples of a picture that has three sample arrays, or a coding tree block of samples of a monochrome picture or a picture that is coded using three separate color planes and syntax structures used to code the samples.
  • a coding unit may be defined as a coding block of luma samples, two corresponding coding blocks of chroma samples of a picture that has three sample arrays, or a coding block of samples of a monochrome picture or a picture that is coded using three separate color planes and syntax structures used to code the samples.
  • a CU with the maximum allowed size may be named as LCU (largest coding unit) or coding tree unit (CTU) and the video picture is divided into non-overlapping LCUs.
  • a CU consists of one or more prediction units (PU) defining the prediction process for the samples within the CU and one or more transform units (TU) defining the prediction error coding process for the samples in the said CU.
  • PU prediction units
  • TU transform units
  • a CU consists of a square block of samples with a size selectable from a predefined set of possible CU sizes.
  • Each PU and TU can be further split into smaller PUs and TUs in order to increase granularity of the prediction and prediction error coding processes, respectively.
  • Each PU has prediction information associated with it defining what kind of a prediction is to be applied for the pixels within that PU (e.g. motion vector information for inter predicted PUs and intra prediction directionality information for intra predicted PUs).
  • Each TU can be associated with information describing the prediction error decoding process for the samples within the said TU (including e.g. DCT coefficient information). It is typically signalled at CU level whether prediction error coding is applied or not for each CU. In the case there is no prediction error residual associated with the CU, it can be considered there are no TUs for the said CU.
  • the division of the image into CUs, and division of CUs into PUs and TUs is typically signalled in the bitstream allowing the decoder to reproduce the intended structure of these units.
  • NAL Network Abstraction Layer
  • H.264/AVC and HEVC For transport over packet-oriented networks or storage into structured files, NAL units may be encapsulated into packets or similar structures.
  • a bytestream format has been specified in H.264/AVC and HEVC for transmission or storage environments that do not provide framing structures. The bytestream format separates NAL units from each other by attaching a start code in front of each NAL unit.
  • a NAL unit may be defined as a syntax structure containing an indication of the type of data to follow and bytes containing that data in the form of an RBSP interspersed as necessary with emulation prevention bytes.
  • a raw byte sequence payload (RBSP) may be defined as a syntax structure containing an integer number of bytes that is encapsulated in a NAL unit.
  • An RBSP is either empty or has the form of a string of data bits containing syntax elements followed by an RBSP stop bit and followed by zero or more subsequent bits equal to 0.
  • NAL units consist of a header and payload.
  • the NAL unit header indicates the type of the NAL unit.
  • NAL units can be categorized into Video Coding Layer (VCL) NAL units and non- VCL NAL units.
  • VCL NAL units are typically coded slice NAL units.
  • VCL NAL units contain syntax elements representing one or more CU.
  • a non- VCL NAL unit may be for example one of the following types: a sequence parameter set, a picture parameter set, a supplemental enhancement information (SEI) NAL unit, an access unit delimiter, an end of sequence NAL unit, an end of bitstream NAL unit, or a filler data NAL unit.
  • SEI Supplemental Enhancement Information
  • Parameter sets may be needed for the reconstruction of decoded pictures, whereas many of the other non-VCL NAL units are not necessary for the
  • a SEI NAL unit may contain one or more SEI messages, which are not required for the decoding of output pictures but may assist in related processes, such as picture output timing, rendering, error detection, error concealment, and resource reservation.
  • SEI messages are specified in H.264/AVC and HEVC, and the user data SEI messages enable organizations and companies to specify SEI messages for their own use.
  • H.264/AVC and HE VC contain the syntax and semantics for the specified SEI messages but no process for handling the messages in the recipient is defined.
  • encoders are required to follow the H.264/AVC standard or the HEVC standard when they create SEI messages, and decoders conforming to the H.264/AVC standard or the HEVC standard, respectively, are not required to process SEI messages for output order conformance.
  • One of the reasons to include the syntax and semantics of SEI messages in H.264/AVC and HEVC is to allow different system specifications to interpret the supplemental information identically and hence interoperate. It is intended that system specifications can require the use of particular SEI messages both in the encoding end and in the decoding end, and additionally the process for handling particular SEI messages in the recipient can be specified.
  • SEI NAL units there are two types, namely the suffix SEI NAL unit and the prefix SEI NAL unit, having a different nal unit type value from each other.
  • the SEI message(s) contained in a suffix SEI NAL unit are associated with the VCL NAL unit preceding, in decoding order, the suffix SEI NAL unit.
  • the SEI message(s) contained in a prefix SEI NAL unit are associated with the VCL NAL unit following, in decoding order, the prefix SEI NAL unit.
  • 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 Sl.
  • 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.
  • each of the two chroma arrays has the same height and width as the luma array.
  • An attribute picture may be defined as a picture that comprises additional information related to an associated texture picture.
  • An attribute picture may for example comprise surface normal, opacity, or reflectance information for a texture picture.
  • a geometry picture may be regarded as one type of an attribute picture, although a geometry picture may be treated as its own picture type, separate from an attribute picture.
  • Texture picture(s) and the respective geometry picture(s) , if any, and the respective attribute picture(s), if any, may have the same or different chroma format.
  • Terms texture image and texture picture may be used interchangeably.
  • Terms geometry image and geometry picture may be used interchangeably.
  • a specific type of a geometry image is a depth image. Embodiments described in relation to a geometry image equally apply to a depth image, and embodiments described in relation to a depth image equally apply to a geometry image.
  • Terms attribute image and attribute picture may be used interchangeably.
  • a geometry picture and/or an attribute picture may be treated as an auxiliary picture in video/image encoding and/or decoding.
  • a pixel may be defined to 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 surface
  • 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
  • classification of each object as static/dynamic may be signalled
  • 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
  • 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).
  • 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 proj ection cube PC 1.
  • the proj ection 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 PC1 in the setup of Figure 5b.
  • the projection surfaces will be shown and used in the rest of the specification.
  • 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 ROBJ1 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.
  • 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).
  • auxiliary picture included in specific data units in the bitstream.
  • H.264/AVC Advanced Video Coding
  • NAL network abstraction layer
  • 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.
  • 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.
  • MPEG W17248 discloses a test model for MPEG point cloud coding to provide a standardized way of dynamic point cloud compression.
  • the 2D-projected 3D volume surfaces are determined in terms of three image data: motion images, texture images and depth/attribute images.
  • Figure 7 shows a block chart of MPEG W17248 test model for the compression of inter point cloud frames.
  • the input 3D point cloud frame is resampled on the basis of a reference point cloud frame.
  • the 3D motion compensation block is used during the inter-frame encoding/decoding processes. It computes the difference between the positions of the reference point cloud and its deformed version.
  • the obtained motion fields consists of 3D motion vectors (MV_i(dx, dy, dz) ⁇ _i, associated with the point of the reference frame.
  • the 3D to 2D mapping of the reference frame is used to convert the motion field into a 2D image by storing dx as Y, dy as U and dz as V, where this 2D image may be referred to as a motion image.
  • a scale map providing the scaling factor for each block of the motion image is also encoded.
  • the image generation process exploits the 3D to 2D mapping computed during the packing process to store the geometry/texture/motion of the point cloud as images. These images are stored as video frames and compressed with a video encoder, such as an HE VC encoder.
  • the generated videos have the following characteristics:
  • the method comprises inputting (800) a point cloud frame in an encoder; obtaining (802), based on the input point cloud frame, a motion field comprising motion vectors identifiable by three orthogonal motion vector components; using (804) said three orthogonal motion vector components as luminance and chrominance components for texture image generation and depth image generation; identifying (806), per a spatial and a temporal unit, most significant motion vector component; assigning (808) the most significant motion vector component to a luminance component for motion image generation; assigning (810) the two remaining motion vector components to chrominance components to be subsampled for motion image generation; encoding (812) the motion images, texture images and depth images into a bitstream of encoding video frames; and encoding (814), into or along the bitstream, information identifying the motion vector components assigned to the luminance and chrominance components for the motion image generation.
  • adaptive component selection refers to a function, where the encoder identifies the most significant motion vector component (dx, dy, or dz) per a spatial unit and a temporal unit and assigns it to the luma component of the motion image.
  • the other two motion vector components are assigned to the chroma components.
  • subsampling of chroma components preferably the 4:2:0 chroma sampling, is used.
  • This component selection data is encoded into or along the bitstream of encoding video frames for enabling the decoder to revert the motion images back to their original resolution.
  • the identification of the most significant motion vector component may be performed with rate-distortion optimization, which may include or estimate:
  • said spatial units may be predetermined (e.g. in a coding standard) or selected by the encoder, and they may comprise one or more of the following: an entire picture, a slice, a tile, a set of slices or tiles, a patch, a block (such as a CTU, CU and/or PU in HE VC).
  • said temporal units may be predetermined (e.g. in a coding standard) or selected by the encoder, and they may comprise one or more of the following: a single picture, a group of pictures, or a coded video sequence.
  • the information identifying the motion vector components assigned to the luminance and chrominance components for the motion image generation may be encoded as an SEI message.
  • the component selection data may, for example, indicate which motion vector component is selected as the most significant (i.e., conveyed in the luma component) per an indicated spatial unit within the persistence scope. A change in which motion vector component is selected as the most significant may be indicated in the next SEI message of the same type.
  • the mapping of the other two motion vector components to the particular chroma components may follow a predefined algorithm.
  • Figure 9 shows an encoder for the inter point cloud frame coding according to an embodiment. As compared to the test model of MPEG W17248, an adaptive component selection function has been added, as well as including the component selection data to be encoded in or along the bitstream of encoded video frames.
  • Either the adaptive component selection block, or the motion image generation block may include or be operationally connected with downsampling of the other two motion vector component fields, i.e. the motion vector components conveyed in the chroma components.
  • the downsampling is adaptively performed on the basis of the spatial unit and the temporal unit.
  • the video compression block for motion images may include an upsampling block that upsamples the other two motion vector component fields, i.e. the motion vector components conveyed in the chroma components, to their original resolution.
  • the upsampling is adaptively performed on the basis of the spatial unit and the temporal unit. Otherwise, the blocks of Figure 9 may operate as described in MPEG W17248.
  • the decoding method may comprise, for example, receiving a bitstream in a decoder; decoding, from or along the bitstream, information identifying motion vector components assigned to luminance and chrominance components for a motion image generation, said chrominance components being subsampled compared to the luminance component; decoding motion images, texture images and depth images from the bitstream, wherein said motion images are decoded with the luminance component and the subsampled chrominance components; and upsampling the chrominance components of the decoded motion images, per a spatial and a temporal unit, to their original resolution.
  • the decoder is arranged to decode the component selection data from or along the bitstream, for example from an SEI message.
  • the component selection data may be applied on spatial unit and temporal unit basis.
  • the spatial units and/or temporal units may be predetermined e.g. in a coding standard or selected by the encoder, and thus decoded from or along the bitstream by the decoder.
  • the 3D motion field images with subsampled chroma format are decoded from the bitstream.
  • the decoded 3D motion field images with subsampled chroma format are upsampled to the 4:4:4 chroma format, i.e., to their original resolution.
  • the upsampling may be performed on the spatial unit and/or temporal unit basis.
  • the decoding may be operated as described in MPEG W17248.
  • the decoded 3D motion field images having the 4:4:4 chroma format is used as described in MPEG W17248.
  • the encoder selects the filter and filter taps for the downsampling filter for the 3D motion field downsampling in a manner that only the samples that belong to the object are used in filtering.
  • only samples that do belong to the point cloud and not an empty space are used for filtering.
  • an average of up to four occupied chroma samples of a 4:4:4 chroma sample array can be used for deriving one chroma sample of a 4:2:0 chroma sample array.
  • the encoder and/or the decoder selects the filter and filter taps for the upsampling filter in a manner that only the samples that belong to the object are used in filtering.
  • the upsampling filter may take the reconstructed/decoded occupancy map as an input.
  • the 3D motion field may be obtained in various ways, which do not limit the implementation of selecting the motion vector components adaptively to luma and chroma components, as described above.
  • the 3D motion field may be obtained similarly to MPEG W17248, where the point cloud re-sampling block deforms the reference frame so it has the same shape as the target frame to be encoded, while making sure the deformation field is as smooth as possible.
  • the deformed reference frame is finally recolored and considered as a resampled version of the target frame.
  • the 3D motion compensation block derives the difference between the positions of the reference point cloud and its deformed version, which are then converted to motion images and coded.
  • the 3D motion field may be obtained by deforming the input frame.
  • the point cloud resampling and 3D motion compensation processes are changed to operate on input point cloud frames, instead of reference point cloud frames, as follows:
  • the point cloud resampling block deforms the input point cloud frame so that patches in the respective texture and depth images have the same or similar shape as in the reconstructed reference texture/depth image, while making sure the deformation field is as smooth as possible.
  • the deformed input point cloud frame undergoes 3D-to-2D conversion to generate the texture and depth images to be encoded.
  • the 3D motion compensation block computes the difference between the positions of the input point cloud frame and its deformed version.
  • the obtained motion fields consists of 3D motion vectors (MV_i(dx, dy, dz) ⁇ _i, associated with the point of the current frame.
  • the 3D to 2D mapping of the current frame is used to convert the motion field into a 2D image as described in other embodiments, and this 2D image may be regarded as a motion image in embodiments.
  • a scale map providing the scaling factor for each block of the motion image may also be encoded.
  • a motion image may be generally defined as 2D image that represents 3D motion between two point clouds.
  • the projection to convert a 3D motion field for a point cloud may be performed identically or similarly to converting the point cloud to a texture image and/or a geometry image.
  • Figure 10 shows an encoder for the inter point cloud frame coding according to the above embodiment. Since the 3D motion field is obtained by deforming the input point cloud frame, no reference point cloud frame needs to be input in the point cloud resampling block.
  • a point cloud reconstruction block may be added and used for inter-coded frames. It is noted that while Figure 10 illustrates the point cloud reconstruction block implemented in an encoder, the point cloud reconstruction block may also be added in a decoder or as post-processing of a decoder in a similar manner.
  • the point cloud reconstruction block may operate as follows: 2D-to-3D conversion is carried out for reconstructed/decoded texture images to obtain a reconstructed/decoded deformed point cloud. Therein, the respective reconstructed/decoded depth images are also used as input. A respective motion image is reconstructed/decoded.
  • reconstructed/decoded motion image is used to inverse-deform the reconstructed/decoded deformed point cloud to the reconstructed/decoded point cloud that is output by the encoder/decoder.
  • 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,
  • texture images geometry images, attribute images and/or motion images. It needs to be understood that these images are not necessarily separate images in encoding and/or decoding.
  • a geometry image and/or one or more attribute images and/or a motion image may be represented as a constituent frame of a frame-packed picture that may also comprise texture picture(s).
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention porte sur un procédé comprenant : l'introduction d'une image de nuage de points dans un codeur ; l'obtention, sur la base de l'image de nuage de points introduite, d'un champ de mouvement comprenant des vecteurs de mouvement identifiables par trois composantes de vecteur de mouvement orthogonales ; l'utilisation desdites trois composantes de vecteur de mouvement orthogonales comme composantes de luminance et de chrominance pour la génération d'image de texture et la génération d'image de profondeur ; l'identification, par unité spatiale et temporelle, d'une composante de vecteur de mouvement la plus significative ; l'attribution de la composante de vecteur de mouvement la plus significative à une composante de luminance pour la génération d'image de mouvement ; l'attribution des deux composantes de vecteur de mouvement restantes à des composantes de chrominance devant être sous-échantillonnées pour la génération d'image de mouvement ; le codage des images de mouvement, des images de texture et des images de profondeur en un train de bits d'images vidéo codées ; et le codage, dans ou le long du train de bits, d'informations identifiant les composantes de vecteur de mouvement attribuées aux composantes de luminance et de chrominance pour la génération d'image de mouvement.
PCT/FI2018/050876 2017-12-13 2018-12-04 Appareil, procédé, et programme d'ordinateur pour vidéo volumétrique WO2019115866A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20176116 2017-12-13
FI20176116 2017-12-13

Publications (1)

Publication Number Publication Date
WO2019115866A1 true WO2019115866A1 (fr) 2019-06-20

Family

ID=66819580

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FI2018/050876 WO2019115866A1 (fr) 2017-12-13 2018-12-04 Appareil, procédé, et programme d'ordinateur pour vidéo volumétrique

Country Status (1)

Country Link
WO (1) WO2019115866A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021067503A1 (fr) * 2019-10-01 2021-04-08 Intel Corporation Codage vidéo immersif utilisant des métadonnées d'objet
WO2021067501A1 (fr) * 2019-10-01 2021-04-08 Intel Corporation Codage vidéo volumétrique basé sur un objet
WO2021187840A1 (fr) * 2020-03-16 2021-09-23 Samsung Electronics Co., Ltd. Dispositif de décodage, procédé, et support lisible par ordinateur pour métadonnées d'accès partiel pour des données de compression de nuage de points à base de vidéo
WO2023202897A1 (fr) * 2022-04-21 2023-10-26 Interdigital Ce Patent Holdings, Sas Procédé et appareil de codage/décodage d'une scène 3d

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172227A1 (fr) * 2014-05-13 2015-11-19 Pcp Vr Inc. Procédé, système et appareil de production et lecture de contenu multimédia à réalité virtuelle
US20170347120A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172227A1 (fr) * 2014-05-13 2015-11-19 Pcp Vr Inc. Procédé, système et appareil de production et lecture de contenu multimédia à réalité virtuelle
US20170347120A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KHALED, M. ET AL., POINT CLOUD COMPRESSION: TEST MODEL CATEGORY 2 VERSION 0.0., 27 October 2017 (2017-10-27), pages 1, 4 - 5, 7, Retrieved from the Internet <URL:http://phenix.int-evry.fr/mpeg> [retrieved on 20190212] *
THANOU, D. ET AL.: "Graph-Based Compression of Dynamic 3D Point Cloud Sequences", IEEE TRANSACTIONS ON IMAGE PROCESSING APRIL 2016, vol. 25, no. 4, 11 February 2016 (2016-02-11), pages 1765 - 1778, XP011602605, ISSN: 1941-0042 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021067503A1 (fr) * 2019-10-01 2021-04-08 Intel Corporation Codage vidéo immersif utilisant des métadonnées d'objet
WO2021067501A1 (fr) * 2019-10-01 2021-04-08 Intel Corporation Codage vidéo volumétrique basé sur un objet
US20220262041A1 (en) * 2019-10-01 2022-08-18 Intel Corporation Object-based volumetric video coding
US11902540B2 (en) 2019-10-01 2024-02-13 Intel Corporation Immersive video coding using object metadata
WO2021187840A1 (fr) * 2020-03-16 2021-09-23 Samsung Electronics Co., Ltd. Dispositif de décodage, procédé, et support lisible par ordinateur pour métadonnées d'accès partiel pour des données de compression de nuage de points à base de vidéo
US11875539B2 (en) 2020-03-16 2024-01-16 Samsung Electronics Co., Ltd. Partial access metadata for video-based point cloud compression data
WO2023202897A1 (fr) * 2022-04-21 2023-10-26 Interdigital Ce Patent Holdings, Sas Procédé et appareil de codage/décodage d'une scène 3d

Similar Documents

Publication Publication Date Title
EP3669333B1 (fr) Codage et décodage séquentiels de vidéo volumétrique
US11109066B2 (en) Encoding and decoding of volumetric video
US11599968B2 (en) Apparatus, a method and a computer program for volumetric video
US11523135B2 (en) Apparatus, a method and a computer program for volumetric video
WO2019135024A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique
EP3614674A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique
US11202086B2 (en) Apparatus, a method and a computer program for volumetric video
US11430156B2 (en) Apparatus, a method and a computer program for volumetric video
US11659151B2 (en) Apparatus, a method and a computer program for volumetric video
WO2019158821A1 (fr) Appareil, procédé et programme informatique de vidéo volumétrique
WO2019243663A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique
US20200327703A1 (en) An apparatus, a method and a computer program for volumetric video
WO2019229293A1 (fr) Appareil, procédé et programme d&#39;ordinateur pour vidéo volumétrique
WO2019115866A1 (fr) Appareil, procédé, et programme d&#39;ordinateur pour vidéo volumétrique
WO2019162567A1 (fr) Codage et décodage de vidéo volumétrique
WO2019115867A1 (fr) Appareil, procédé, et programme d&#39;ordinateur pour vidéo volumétrique
WO2019185985A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique
WO2020070378A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique
WO2019077199A1 (fr) Appareil, procédé, et programme d&#39;ordinateur pour vidéo volumétrique
WO2020157376A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique
WO2019162564A1 (fr) Appareil, procédé et programme d&#39;ordinateur pour vidéo volumétrique
WO2019234290A1 (fr) Appareil, procédé et programme d&#39;ordinateur pour vidéo volumétrique
EP3680859A1 (fr) Appareil, procédé et programme informatique pour vidéo volumétrique

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18888863

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18888863

Country of ref document: EP

Kind code of ref document: A1