Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AN APPARATUS, A METHOD AND A COMPUTER PROGRAM FOR VOLUMETRIC VIDEO
Document Type and Number:
WIPO Patent Application WO/2020/254719
Kind Code:
A1
Abstract:
A method comprising: projecting a 3D representation of at least one object onto at least one 2D patch; generating a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and encoding the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

Inventors:
SCHWARZ SEBASTIAN (DE)
ROIMELA KIMMO (FI)
PESONEN MIKA (FI)
Application Number:
PCT/FI2020/050331
Publication Date:
December 24, 2020
Filing Date:
May 18, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOKIA TECHNOLOGIES OY (FI)
International Classes:
G06T9/00; H04N13/161; G06T15/04; G06T15/50; H04N13/178; H04N13/268; H04N19/597
Other References:
"V-PCC Codec description. MPEG document MPEG2019/N18190", MPEG DOCUMENT MANAGEMENT SYSTEM, 125TH MPEG MEETING, MARRAKECH: ISO/IEC JTC1/SC29/WG11, 13 March 2019 (2019-03-13), pages 1 - 38, XP030212735, Retrieved from the Internet [retrieved on 20200821]
NOLL, T. ET AL.: "High Quality and Memory Efficient Representation for Image Based 3D Reconstructions", 2012 INTERNATIONAL CONFERENCE ON DIGITAL IMAGE COMPUTING TECHNIQUES AND APPLICATIONS (DICTA). IEEE XPLORE DIGITAL LIBRARY, 17 January 2013 (2013-01-17), pages 1 - 8, XP032310803, Retrieved from the Internet [retrieved on 20200214], DOI: 10.1109/DICTA.2012.6411688
"Study Text of ISO/IEC CD 23090 5: Video-based Point Cloud Compression, ISO/IEC JTC1/SC29/WG11 N18180", 125TH MPEG MEETING, 23 February 2019 (2019-02-23), Marrakech, XP030212724, Retrieved from the Internet [retrieved on 20200213]
MUNKBERG, J. ET AL.: "High Quality Normal Map Compression", PROCEEDINGS OF THE 21ST ACM SIGGRAPH/EUROGRAPHICS SYMPOSIUM ON GRAPHICS HARDWARE (2006), 4 September 2006 (2006-09-04), pages 95 - 102, XP007908685, Retrieved from the Internet [retrieved on 20200217]
CHUANG, J.-C. ET AL.: "Improved Mean-Removed Vector Quantization Scheme for Grayscale Image Coding", INTERNATIONAL JOURNAL OF SIGNAL PROCESSING, IMAGE PROCESSING AND PATTERN RECOGNITION, vol. 6, no. 5, 31 October 2013 (2013-10-31), pages 315 - 332, XP055773732, Retrieved from the Internet [retrieved on 20200206], DOI: 10.14257/ijsip.2013.6.5.28
PESONEN, M. ET AL.: "PCC] On Attiribute Coding (CE2.15). MPEG document MPEG2018/m44735 version 1", MPEG DOCUMENT MANAGEMENT SYSTEM, 124TH MPEG MEETING, MACAO: ISO/IEC JTC1/ SC29/WG11, 3 October 2018 (2018-10-03), pages 1 - 10, XP030192047, Retrieved from the Internet [retrieved on 20200820]
See also references of EP 3987774A4
Attorney, Agent or Firm:
NOKIA TECHNOLOGIES OY et al. (FI)
Download PDF:
Claims:
CLAIMS

1. A method comprising:

projecting a 3D representation of at least one object onto at least one 2D patch; generating a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and

encoding the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

2. An apparatus comprising at least one processor and at least one memory, said at least one memory stored with computer program code thereon, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:

project a 3D representation of at least one object onto at least one 2D patch; generate a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and

encode the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

3. An apparatus comprising:

means for projecting a 3D representation of at least one object onto at least one

2D patch;

means for generating a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and

means for encoding the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

4. The apparatus according to claim 2 or 3, wherein the surface normal of the patch is configured to be indicated as a residual between a clustered projection plane surface normal of the patch and an actual value of the surface normal of the patch.

5. The apparatus according to claim 2 or 3, wherein the surface normal of the patch is configured to be indicated as a residual between an averaged surface normal of each pixel of the patch and an actual value of the surface normal of the patch.

6. The apparatus according to claim 5, wherein the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by three syntax elements indicating tangent, bitangent and normal components of the surface normal relative to the projection plane of the patch in question.

7. The apparatus according to claim 5, wherein the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by three syntax elements indicating the normal direction in three dimensions.

8. The apparatus according to claim 5, wherein the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by two syntax elements indicating tangent and bitangent components of the surface normal relative to the projection plane of the patch in question, with a third normal component derived so that the resulting vector has unit length.

9. The apparatus according to any of claims 4 - 8, wherein the resulting maximum quantization range is configured to be signalled.

10. The apparatus according to claim 2 or 3, wherein the surface normal of the patch is configured to be indicated as a residual between a vector pointing towards a focus point of the normal of each pixel of the patch and an actual value of the surface normal of the patch.

11. The apparatus according to claim 10, wherein the signalling of the vector pointing towards the focus point of the normal of each pixel of the patch is configured to be carried out by three syntax elements indicating the focus point in three dimensions.

12. The apparatus according to claim 2 or 3, wherein the apparatus further comprises

means for obtaining a surface normal identifiable by three orthogonal surface normal vector components;

means for identifying, per a spatial and a temporal unit, most significant surface normal vector component;

means for assigning the most significant surface normal vector component to a luminance component for surface normal generation; and

means for assigning at least one of the two remaining surface normal vector components to chrominance components to be subsampled for surface normal image generation.

13. The apparatus according to claim 12, further comprising

means for assigning the second most significant surface normal vector component to both chrominance components.

14. A method comprising:

receiving a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object; decoding the geometry image, the texture image, the occupancy map and the auxiliary patch information; and

reconstructing a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

15. An apparatus comprising at least one processor and at least one memory, said at least one memory stored with computer program code thereon, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:

receive a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object;

decode the geometry image, the texture image, the occupancy map and the auxiliary patch information; and

reconstruct a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

16. An apparatus comprising:

means for receiving a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object;

means for decoding the geometry image, the texture image, the occupancy map and the auxiliary patch information; and

means for reconstructing a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

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 volumetric video coding.

BACKGROUND

[0002] 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.

[0003] Typical representation formats for such volumetric data are triangle meshes, point clouds (PCs), or voxel arrays. In dense point clouds or voxel arrays, 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 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 example, 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 planes. After decoding, a 3D representation is reconstructed by projecting the 2D pixels back into 3D space.

[0004] Surface normals are utilized for many aspects of volumetric video rendering (reflections, lighting, interaction, etc.). They describe the orientation of a surface point in 3D space, typically in the form of a 3D unit vector (a,b,c) in floating point precision, i.e. representing normalised angles in the range of [0; 180] degrees. [0005] However, contemporary volumetric video approaches, such as MPEG Video- Based Point Cloud Coding (V-PCC), Test Model a.k.a. TMC2vO (MPEG N18017), support signalling of surface normal information as an independent video stream. Therein, for achieving sufficient precision in the surface normal signalling, three individual video streams would be required, which naturally causes significant overhead in the signalling

SUMMARY

[0006] Now, an improved method and technical equipment implementing the method has been invented, by which the above problems are alleviated. Various aspects include a method, an apparatus 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 embodiments are disclosed in the dependent claims and in the corresponding images and description.

[0007] According to a first aspect, there is provided a method comprising projecting a 3D representation of at least one object onto at least one 2D patch; generating a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and encoding the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

[0008] An apparatus according a second aspect comprises at least one processor and at least one memory, said at least one memory stored with computer program code thereon, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: project a 3D representation of at least one object onto at least one 2D patch; generate a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and encode the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream. [0009] An apparatus according a second aspect comprises means for projecting a 3D representation of at least one object onto at least one 2D patch; means for generating a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and means for encoding the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

[0010] According to an embodiment, the surface normal of the patch is configured to be indicated as a residual between a clustered projection plane surface normal of the patch and an actual value of the surface normal of the patch.

[0011] According to an embodiment, the surface normal of the patch is configured to be indicated as a residual between an averaged surface normal of each pixel of the patch and an actual value of the surface normal of the patch.

[0012] According to an embodiment, the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by three syntax elements indicating tangent, bitangent and normal components of the surface normal relative to the projection plane of the patch in question.

[0013] According to an embodiment, the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by three syntax elements indicating the normal direction in three dimensions.

[0014] According to an embodiment, the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by two syntax elements indicating tangent and bitangent components of the surface normal relative to the projection plane of the patch in question, with a third normal component derived so that the resulting vector has unit length.

[0015] According to an embodiment, the resulting maximum quantization range is configured to be signalled.

[0016] According to an embodiment, the surface normal of the patch is configured to be indicated as a residual between a vector pointing towards a focus point of the normal of each pixel of the patch and an actual value of the surface normal of the patch. [0017] According to an embodiment, the signalling of the vector pointing towards the focus point of the normal of each pixel of the patch is configured to be carried out by three syntax elements indicating the focus point in three dimensions.

[0018] According to an embodiment, the apparatus further comprises means for obtaining a surface normal identifiable by three orthogonal surface normal vector components; means for identifying, per a spatial and a temporal unit, most significant surface normal vector component; means for assigning the most significant surface normal vector component to a luminance component for surface normal generation; and means for assigning at least one of the two remaining surface normal vector components to chrominance components to be subsampled for surface normal image generation.

[0019] According to an embodiment, the apparatus further comprises means for assigning the second most significant surface normal vector component to both

chrominance components.

[0020] A method according to a fourth aspect comprises: receiving a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object; decoding the geometry image, the texture image, the occupancy map and the auxiliary patch information; and reconstructing a 3D

representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

[0021] An apparatus according to a fifth aspect comprises at least one processor and at least one memory, said at least one memory stored with computer program code thereon, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: receive a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object; decode the geometry image, the texture image, the occupancy map and the auxiliary patch information; and reconstruct a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

[0022] An apparatus according to a sixth aspect comprises: means for receiving a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring

reconstruction of a 3D representation of at least one object; means for decoding the geometry image, the texture image, the occupancy map and the auxiliary patch

information; and means for reconstructing a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

[0023] Computer readable storage media according to further aspects comprise code for use by an apparatus, which when executed by a processor, causes the apparatus to perform the above methods.

BRIEF DESCRIPTION OF THE DRAWINGS

[0024] For a more complete understanding of the example embodiments, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:

[0025] Figs la and lb show an encoder and decoder for encoding and decoding 2D pictures;

[0026] Figs. 2a and 2b show a compression and a decompression process for 3D volumetric video;

[0027] Figs. 3a and 3b show an example of a point cloud frame and a projection of points to a corresponding plane of a point cloud bounding box; [0028] Fig. 4 shows a flow chart for auxiliary patch information signaling according to an embodiment;

[0029] Fig. 5 shows an example of an example of packing surface vector components into YUV components using diagonal subsampling according to an embodiment; and

[0030] Fig. 6 shows a flow chart for reconstructing patches based on the auxiliary patch information signaling according to an embodiment.

DETAILED DESCRIPTON OF SOME EXAMPLE EMBODIMENTS

[0031] In the following, several embodiments of the invention will be described in the context of point cloud models for volumetric 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.

[0032] A video codec comprises an encoder that transforms the input video into a compressed representation suited for storage/transmission, and a decoder that can un compress the compressed video representation back into a viewable form. An encoder may discard some information in the original video sequence in order to represent the video in a more compact form (i.e. at lower bitrate).

[0033] Volumetric video may be captured using one or more three-dimensional (3D) cameras. When multiple cameras are in use, the captured footage is synchronized so that the cameras provide different viewpoints to the same world. In contrast to traditional 2D/3D video, volumetric video describes a 3D model of the world where the viewer is free to move and observer different parts of the world.

[0034] Volumetric video enables the viewer to move in six degrees of freedom (6DOF): in contrast to common 360° video, where the user has from 2 to 3 degrees of freedom (yaw, pitch, and possibly roll), a volumetric video represents a 3D volume of space rather than a flat image plane. Volumetric video frames contain a large amount of data because they model the contents of a 3D volume instead of just a two-dimensional (2D) plane. However, only a relatively small part of the volume changes over time. Therefore, it may be possible to reduce the total amount of data by only coding information about an initial state and changes which may occur between frames. Volumetric video can be rendered from synthetic 3D animations, reconstructed from multi-view video using 3D

reconstruction techniques such as structure from motion, or captured with a combination of cameras and depth sensors such as LiDAR (Light Detection and Ranging), for example.

[0035] Volumetric video data represents a three-dimensional scene or object, and thus such data can be viewed from any viewpoint. Volumetric video data can be used as an input for augmented reality (AR), virtual reality (VR) and mixed reality (MR) applications. Such data describes geometry (shape, size, position in 3D-space) and respective attributes (e.g. color, opacity, reflectance, ...), together with any possible temporal changes of the geometry and attributes at given time instances (e.g. frames in 2D video). Volumetric video is either generated from 3D models, i.e. computer-generated imagery (CGI), or captured from real-world scenes using a variety of capture solutions, e.g. a multi-camera, a laser scan, a combination of video and dedicated depths sensors, etc. Also, a combination of CGI and real-world data is possible. Examples of representation formats for such volumetric data are triangle meshes, point clouds, or voxel. 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.

[0036] 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 map as is the case in the multi-view plus depth. Closely related to the techniques used in multi-view plus depth is the use of elevation maps, and multi-level surface maps.

[0037] In 3D point clouds, each point of each 3D surface is described as a 3D point with color and/or other attribute information such as surface normal or material reflectance. Point cloud is a set of data points in a coordinate system, for example in a three- dimensional coordinate system being defined by X, Y, and Z coordinates. The points may represent an external surface of an object in the screen space, e.g. in a three-dimensional space.

[0038] In dense point clouds or voxel arrays, the reconstructed 3D scene may contain tens or even hundreds of millions of points. If such representations are to be stored or interchanged between entities, then efficient compression of the presentations becomes fundamental. Standard volumetric video representation formats, such as point clouds, meshes, voxel, suffer from poor temporal compression performance. Identifying correspondences for motion-compensation in 3D-space is an ill-defined problem, as both, geometry and respective attributes 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. 2D-video based approaches for compressing volumetric data, i.e. multiview with depth, have much better compression efficiency, but rarely cover the full scene. Therefore, they provide only limited 6DOF capabilities.

[0039] Instead of the above-mentioned approach, a 3D scene, represented as meshes, points, and/or voxel, can be projected onto one, or more, geometries. These geometries may be“unfolded” or packed onto 2D planes (two planes per geometry: one for texture, one for depth), which are then encoded using standard 2D video compression technologies. Relevant projection geometry information may be transmitted alongside the encoded video files to the decoder. The decoder decodes the video and performs the inverse projection to regenerate the 3D scene in any desired representation format (not necessarily the starting format).

[0040] Projecting volumetric models onto 2D planes allows for using standard 2D video coding tools with highly efficient temporal compression. Thus, coding efficiency can be increased greatly. Using geometry-projections instead of 2D-video based approaches based on multiview and depth, provides a better coverage of the scene (or object). Thus, 6DOF capabilities are improved. Using several geometries for individual objects improves the coverage of the scene further. Furthermore, standard video encoding hardware can be utilized for real-time compression/decompression of the projected planes. The projection and the reverse projection steps are of low complexity. [0041] Figs la and lb show an encoder and decoder for encoding and decoding the 2D 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 la. Figure la illustrates an image to be encoded (F); 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 (Pi nter ); intra prediction (Pi ntra ); mode selection (MS) and filtering (F).

[0042] An example of a decoding process is illustrated in Figure lb. Figure lb 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).

[0043] Many hybrid video encoders encode the video information in two phases. Firstly pixel values in a certain picture area (or“block”) are predicted for example by motion compensation means (finding and indicating an area in one of the previously coded video frames that corresponds closely to the block being coded) or by spatial means (using the pixel values around the block to be coded in a specified manner). Secondly the prediction error, i.e. the difference between the predicted block of pixels and the original block of pixels, is coded. This is typically done by transforming the difference in pixel values using a specified transform (e.g. Discrete Cosine Transform (DCT) or a variant of it), quantizing the coefficients and entropy coding the quantized coefficients. By varying the fidelity of the quantization process, encoder can control the balance between the accuracy of the pixel representation (picture quality) and size of the resulting coded video representation (file size or transmission bitrate). Video codecs may also provide a transform skip mode, which the encoders may choose to use. In the transform skip mode, the prediction error is coded in a sample domain, for example by deriving a sample-wise difference value relative to certain adjacent samples and coding the sample-wise difference value with an entropy coder.

[0044] Many video encoders partition a picture into blocks along a block grid. For example, in the High Efficiency Video Coding (HEVC) standard, the following

partitioning and definitions are used. 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 (CTB) 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 (CTU) 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 (CU) 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.

[0045] In HEVC, a picture can be partitioned in tiles, which are rectangular and contain an integer number of LCUs. In HEVC, the partitioning to tiles forms a regular grid, where heights and widths of tiles differ from each other by one LCU at the maximum. In HEVC, a slice is defined to be an integer number of coding tree units contained in one independent slice segment and all subsequent dependent slice segments (if any) that precede the next independent slice segment (if any) within the same access unit. In HEVC, a slice segment is defined to be an integer number of coding tree units ordered consecutively in the tile scan and contained in a single NAL unit. The division of each picture into slice segments is a partitioning. In HEVC, an independent slice segment is defined to be a slice segment for which the values of the syntax elements of the slice segment header are not inferred from the values for a preceding slice segment, and a dependent slice segment is defined to be a slice segment for which the values of some syntax elements of the slice segment header are inferred from the values for the preceding independent slice segment in decoding order. In HEVC, a slice header is defined to be the slice segment header of the independent slice segment that is a current slice segment or is the independent slice segment that precedes a current dependent slice segment, and a slice segment header is defined to be a part of a coded slice segment containing the data elements pertaining to the first or all coding tree units represented in the slice segment. The CUs are scanned in the raster scan order of LCUs within tiles or within a picture, if tiles are not in use. Within an LCU, the CUs have a specific scan order.

[0046] Entropy coding/decoding may be performed in many ways. For example, context-based coding/decoding may be applied, where in both the encoder and the decoder modify the context state of a coding parameter based on previously coded/decoded coding parameters. Context-based coding may for example be context adaptive binary arithmetic coding (CABAC) or context-based variable length coding (CAVLC) or any similar entropy coding. Entropy coding/decoding may alternatively or additionally be performed using a variable length coding scheme, such as Huffman coding/decoding or Exp-Go lomb coding/decoding. Decoding of coding parameters from an entropy-coded bitstream or codewords may be referred to as parsing.

[0047] 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.

[0048] 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 of a scene model onto a first projection surface. The scene model may comprise a number of further source volumes.

[0049] 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 (such as a 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.

[0050] 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.

[0051] Texture picture(s) and the respective geometry picture(s), if any, and the respective attribute picture(s) may have the same or different chroma format.

[0052] 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.

[0053] Figures 2a and 2b illustrate an overview of exemplified compression/ decompression processes. The processes may be applied, for example, in Point Cloud Coding (PCC) according to MPEG standard. MPEG Video-Based Point Cloud Coding (V- PCC), Test Model a.k.a. TMC2vO (MPEG N18017) discloses a projection-based approach for dynamic point cloud compression. For the sake of illustration, some of the processes related to video-based point cloud compression (V-PCC) compression/decompression are described briefly herein. For a comprehensive description of the model, a reference is made to MPEG N 18017.

[0054] Each point cloud frame represents a dataset of points within a 3D volumetric space that has unique coordinates and attributes. An example of a point cloud frame is shown on Figure 3 a.

[0055] The patch generation process decomposes the point cloud frame by converting 3d samples to 2d samples on a given projection plane using a strategy that provides the best compression. The patch generation process aims at decomposing the point cloud into a minimum number of patches with smooth boundaries, while also minimizing the reconstruction error. In the V-PCC test model TMC2vO, the following approach is implemented.

[0056] First, the normal per each point is estimated and the tangent plane and its corresponding normal are defined per each point, based on the point’s nearest neighbours m within a predefined search distance. A K-D tree is used to separate the data and find neighbours in a vicinity of a point p t and a barycenter c = p of that set of points is used to define the normal. The barycenter c is computed as follows:

[0057] The normal is estimated from eigen decomposition for the defined point cloud as:

[0058] Based on this information each point is associated with a corresponding plane of a point cloud bounding box. Each plane is defined by a corresponding normal n p .dx with values:

- (1.0, 0.0, 0.0),

- (0.0, 1.0, 0.0),

- (0.0, 0.0, 1.0),

- (-1.0, 0.0, 0.0),

- (0.0, -1.0, 0.0), - (0.0, 0.0, -1.0).

[0059] More precisely, each point is associated with the plane that has the closest normal (i.e., maximizes the dot product of the point normal n p . and the plane normal n Pidx

[0060] The sign of the normal is defined depending on the point’s position in relationship to the“center”. The projection estimation description is shown in Figure 3b.

[0061] The initial clustering is then refined by iteratively updating the cluster index associated with each point based on its normal and the cluster indices of its nearest neighbors. The next step consists of extracting patches by applying a connected component extraction procedure.

[0062] The packing process aims at mapping the extracted patches onto a 2D grid while trying to minimize the unused space, and guaranteeing that every TxT (e.g., 16x16) block of the grid is associated with a unique patch. Herein, T is a user-defined parameter that is encoded in the bitstream and sent to the decoder.

[0063] TMC2vO uses a simple packing strategy that iteratively tries to insert patches into a WxH grid. W and H are user defined parameters, which correspond to the resolution of the geometry/texture images that will be encoded. The patch location is determined through an exhaustive search that is performed in raster scan order. The first location that can guarantee an overlapping-free insertion of the patch is selected and the grid cells covered by the patch are marked as used. If no empty space in the current resolution image can fit a patch, then the height H of the grid is temporarily doubled and search is applied again. At the end of the process, H is clipped so as to fit the used grid cells.

[0064] The image generation process exploits the 3D to 2D mapping computed during the packing process to store the geometry and texture of the point cloud as images. In order to better handle the case of multiple points being projected to the same pixel, each patch is projected onto two images, referred to as layers. More precisely, let H(u,v) be the set of points of the current patch that get projected to the same pixel (u, v). The first layer, also called the near layer, stores the point of H(u,v) with the lowest depth DO. The second layer, referred to as the far layer, captures the point of H(u,v) with the highest depth within the interval [DO, DO+D], where D is a user-defined parameter that describes the surface thickness.

[0065] The generated videos have the following characteristics: geometry: WxH YUV420-8bit, where the geometry video is monochromatic, and texture: WxH YUV420- 8bit, where the texture generation procedure exploits the reconstructed/smoothed geometry in order to compute the colors to be associated with the re-sampled points.

[0066] The padding process aims at filling the empty space between patches in order to generate a piecewise smooth image suited for video compression. TMC2vO uses a simple padding strategy, which proceeds as follows:

Each block of TxT (e.g., 16x16) pixels is processed independently.

If the block is empty (i.e., all its pixels belong to empty space), then the pixels of the block are filled by copying either the last row or column of the previous TxT block in raster order.

If the block is full (i.e., no empty pixels), nothing is done.

If the block has both empty and filled pixels (i.e. a so-called edge block), then the empty pixels are iteratively filled with the average value of their non-empty neighbors.

[0067] The generated images/layers are stored as video frames and compressed using a video codec.

[0068] In the auxiliary patch information compression, the following meta data is encoded/decoded for every patch:

Index of the projection plane

o Index 0 for the normal planes (1.0, 0.0, 0.0) and (-1.0, 0.0, 0.0) o Index 1 for the normal planes (0.0, 1.0, 0.0) and (0.0, -1.0, 0.0) o Index 2 for the normal planes (0.0, 0.0, 1.0) and (0.0, 0.0, -1.0).

2D bounding box (uO, vO, ul, vl)

3D location (xO, yO, zO) of the patch represented in terms of depth 50, tangential shift sO and bi-tangential shift rO. According to the chosen projection planes, (dq, sO, rO) are computed as follows:

o Index 0, d0= xO, s0=z0 and rO = yO

o Index 1, d0= yO, s0=z0 and rO = xO o Index 2, 50= zO, sO=xO and rO = yO

[0069] Also, mapping information providing for each TxT block its associated patch index is encoded as follows:

For each TxT block, let L be the ordered list of the indexes of the patches such that their 2D bounding box contains that block. The order in the list is the same as the order used to encode the 2D bounding boxes. L is called the list of candidate patches.

The empty space between patches is considered as a patch and is assigned the special index 0, which is added to the candidate patches list of all the blocks.

Let I be index of the patch to which belongs the current TxT block and let J be the position of I in L. Instead of explicitly encoding the index I, its position J is arithmetically encoded instead, which leads to better compression efficiency.

[0070] The occupancy map consists of a binary map that indicates for each cell of the grid whether it belongs to the empty space or to the point cloud. Herein, one cell of the 2D grid produces a pixel during the image generation process. When considering an occupancy map as an image, it may be considered to comprise occupancy patches.

Occupancy patches may be considered to have block-aligned edges according to the auxiliary information described in the previous section. An occupancy patch hence comprises occupancy information for a corresponding texture and geometry patches.

[0071] The occupancy map compression leverages the auxiliary information described in previous section, in order to detect the empty TxT blocks (i.e., blocks with patch index 0). The remaining blocks are encoded as follows.

[0072] The occupancy map could be encoded with a precision of a BOxBO blocks. B0 is a user-defined parameter. In order to achieve lossless encoding, B0 should be set to 1. In practice B0=2 or B0=4 result in visually acceptable results, while significantly reducing the number of bits required to encode the occupancy map. The generated binary image covers only a single colour plane. However, given the prevalence of 4:2:0 codecs, it may be desirable to extend the image with“neutral” or fixed value chroma planes (e.g. adding chroma planes with all sample values equal to 0 or 128, assuming the use of an 8-bit codec). [0073] The obtained video frame is compressed by using a video codec with lossless coding tool support (e.g., AVC, HEVC RExt, HEVC-SCC).

[0074] Occupancy map is simplified by detecting empty and non-empty blocks of resolution TxT in the occupancy map and only for the non-empty blocks we encode their patch index as follows:

A list of candidate patches is created for each TxT block by considering all the patches that contain that block.

The list of candidates is sorted in the reverse order of the patches.

For each block,

o If the list of candidates has one index, then nothing is encoded o Otherwise, the index of the patch in this list is arithmetically

encoded.

[0075] The point cloud geometry reconstruction process exploits the occupancy map information in order to detect the non-empty pixels in the geometry/texture images/layers. The 3D positions of the points associated with those pixels are computed by levering the auxiliary patch information and the geometry images. More precisely, let P be the point associated with the pixel (u, v) and let (50, sO, rO) be the 3D location of the patch to which it belongs and (uO, vO, ul, vl) its 2D bounding box. P could be expressed in terms of depth d (u, v), tangential shift s(u, v) and bi-tangential shift r(u, v) as follows:

8(u, v) = 50 + g(u, v)

s(u, v) = sO - uO + u

r(u, v) = rO - vO + v

where g(u, v) is the luma component of the geometry image.

[0076] The smoothing procedure aims at alleviating potential discontinuities that may arise at the patch boundaries due to compression artifacts. The implemented approach moves boundary points to the centroid of their nearest neighbors.

[0077] In the texture reconstruction process, the texture values are directly read from the texture images.

[0078] Surface normals are utilized for many aspects of volumetric video rendering (reflections, lighting, interaction, etc.). They describe the orientation of a surface point in 3D space, typically in the form of a 3D unit vector (a,b,c) in floating point precision, i.e. representing normalised angles in the range of [0; 180] degrees. Currently V-PCC supports signalling of surface normal information as an independent video stream according to Table 7.3 in MPEG N18180:

[0079] However, signalling surface normals in additional video streams suffers from at least two major restrictions. First, the required precision to reflect the [0; 180] floating point range is not supported, but only 0.35 degree precision for lObit video signals. Further, the required dimensionality is not given, i.e. YUV420 chroma sub-sampling allows for only one full resolution plane and leads to lower precision in the surface normal signalling. Consequently, to avoid any sub-sampling problems, three individual video streams would be required, which naturally causes significant overhead in the signalling.

[0080] In the following, an enhanced method for providing surface normal signalling in volumetric 3D data will be described in more detail, in accordance with various embodiments.

[0081] A starting point for the method may be considered, for example, that a 3D representation of at least one object, such as a point cloud frame or a 3D mesh, is input in an encoder. The method, which is disclosed in Figure 4, comprises projecting (400) the 3D representation of the object (represented e.g. by a point cloud frame or a 3D mesh) onto at least one 2D patch; generating (402) a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and encoding (404) the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

[0082] Thus, instead of signalling the surface normals in additional video streams, the fact that V-PCC already packs patches with related surface information, as described above, is utilised by introducing a per-patch surface normal signalling into the auxiliary patch information to increase the precision of video-based surface normal vector signalling in V-PCC.

[0083] According to an embodiment, the surface normal of the patch is indicated as a residual between a clustered projection plane surface normal of the patch and an actual value of the surface normal of the patch. As described above relating to patch generation, each patch is clustered based on its dominant projection plane surface vector. Thus, the surface normals signalled in an independent video track can be calculated as residual between the projection plane surface normal and their actual value.

[0084] The auxiliary information bit stream syntax of V-PCC is disclosed in the document MPEG N18180, also referred to as ISO/IEC 23090-5:2018(E)“Study of CD”. According to an embodiment, said one or more indicators are introduced in

pdu normal axis syntax element of MPEG N18180.

[0085] According to an embodiment, a syntax element, which may be referred to as pdu SNV residual flag is added to a pdu normal axis or any other suitable syntax structure for ISO/IEC 23090-5 (or similar volumetric video coding technology). A syntax element, which may be referred to as pdu SNV residual quantization max, may also be added to a pdu normal axis in order to signal the resulting maximum quantization range. Such signalling is a simple but effective way of introducing a per-patch surface normal signalling into the auxiliary patch information, which increases the precision by reducing quantization range. This process may be a preferred operation mode for surface normal signaling, or the process can be switched on or off, e.g. with using said syntax elements as per-patch flags, as shown in Table 1.

Table 1 : (ISO/IEC 23090-5 example)

[0086] In the above embodiment, the clustered projection plane surface normal of the patch is used as a basis for calculating the residual. According to an embodiment, the surface normal of the patch is indicated as a residual between an averaged surface normal of each pixel of the patch and an actual value of the surface normal of the patch. Such signalling provides a more precise value for the surface normal of the patch, from which the residual value may also be calculated more precisely.

[0087] According to an embodiment, the signalling of the averaged surface normal of each pixel of the patch is carried out by three elements indicating tangent, bitangent and normal component of the surface normal relative to the projection plane of the patch in question. Thus, compared to the above embodiment, the syntax element

pdu_SNV_residual_flag may be replaced by three syntax elements, such as

pdu SNV tangcnt pdu_SNV_bitangent and pdu_SNV_normal, a shown in Table 2.

Table 2: (ISO/IEC 23090-5 example)

[0088] According to an embodiment, the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by three syntax elements indicating the normal direction in three dimensions.

[0089] According to an embodiment, the signalling of the averaged surface normal of each pixel of the patch is configured to be carried out by two syntax elements indicating tangent and bitangent components of the surface normal relative to the projection plane of the patch in question, with a third normal component derived so that the resulting vector has unit length.

[0090] In the above embodiments, the resulting maximum quantization range shall be signalled. The signalling may be carried out either on a sequence level, or on a per-patch level, e.g. as shown in the examples of Tables 1 and 2. [0091] According to an embodiment, the surface normal of the patch is indicated as a residual between a vector pointing toward a focus point of the normal of each pixel of the patch and an actual value of the surface normal of the patch. Thus, a more precise value for the surface normal of the patch may be calculated as patch normal focus point NFP, which represents the point towards all normals per point of a patch are pointing towards (or away from). Then, the following process can be used to generate normal vectors with reduced range, i.e. lower residual:

1) per point P of a patch, compute a predicted normal vector Np from patch NFP and P:

* if P is in front of NFP, Np points away from NFP

* if P is behind NFP, Np points toward NFP

2) encode the residual between Np and actual surface normal in video channel.

[0092] The benefit of this embodiment is a reduced residual from the surface normal predictor, thus reducing the quantisation range and improving coding efficiency.

[0093] According to an embodiment, the signalling of the vector pointing towards the focus point of the normal of each pixel of the patch is carried out by three syntax elements indicating the focus point in three dimensions. Thus, compared to the first embodiment above, the syntax element pdu_SNV_residual_flag may be replaced by three syntax elements, such as pdu SN V focus point X _ pdu_SNV_ focus_point_Y and pdu_SNV_ focus_point_Z, a shown in Table 3.

Table 3: (ISO/IEC 23090-5 example)

[0094] It is noted that similarly to the average normal embodiments described above, the vector pointing towards the focus point of the normal of each pixel of the patch could also be coded as a 3D residual, or a 2D residual followed by computing the third component via the unit-length rule in the decoder.

[0095] As described above, chroma-subsampling leads to lower precision when signalling the three elements of a surface normal vector.

[0096] According to an embodiment, the method further comprises obtaining a surface normal identifiable by three orthogonal surface normal vector components; identifying, per a spatial and a temporal unit, most significant surface normal vector component; assigning the most significant surface normal vector component to a luminance component for surface normal generation; and assigning the two remaining surface normal vector components to chrominance components to be subsampled for surface normal image generation.

[0097] Thus, the lower precision caused by the chroma-subsampling may be addressed by adaptive normal vector component selection, wherein the encoder identifies the most significant surface normal vector component (dx, dy, or dz) per a spatial unit and a temporal unit and assigns it to the luma component of the surface normal. The other two surface normal vector components are assigned to the chroma components.

[0098] The identification of the most significant surface normal vector component may be performed with rate-distortion optimization, which includes or estimates: downsampling of the motion fields of the other two motion vector components prior to encoding,

encoding and decoding/reconstruction of the three surface normals, and

- upsampling of the decoded/reconstructed surface normals to their original

resolution.

[0099] Different spatial units may be pre-determined (e.g. in a coding standard) or selected by the encoder, such as an entire picture, a slice, a tile, a set of slices or tiles, a patch, a block (such as a CTU in HE VC).

[0100] Different temporal units may be pre-determined (e.g. in a coding standard) or selected by the encoder, such as a single picture, a group of pictures, or a coded video sequence.

[0101] Component selection data is encoded into or along the bitstream, for example as an SEI message. The component selection data may for example indicate which surface normal vector component is selected as the most significant (i.e., conveyed in the luma component) per an indicated spatial unit within the persistence scope (e.g., until the next SEI message of the same type). The mapping of the other two surface normal vector components to the particular chroma components may follow a pre-defined algorithm.

[0102] The component selection data may then be encoded in the V-PCC bitstream, for example, using a syntax element pdu_SNV_element, which indicates the surface normal vector element (a, b or c) that is represented in the full resolution Y plane of a video stream. The other two remaining elements may be packed in the U and V plane in a predefined order, e.g. alphabetically.

[0103] Tables 4 and 5 show two examples of using the syntax element

pdu_SNV_element by including said syntax element in the example of the first embodiment of indicating the residuals against projection plane and the second embodiment of indicating the residual against per patch signalled normal vector, respectively.

Table 4: (ISO/IEC 23090-5 example)

Table 5: (ISO/IEC 23090-5 example)

[0104] According to an embodiment, the method further comprises assigning the second most significant surface normal vector component to both chrominance components. Thus, the most significant surface normal vector component is signalled in the full resolution using the luminance component, as described above, and the second most significant surface normal vector component is signalled at half resolution, either in x- or y direction or diagonal, utilising both chroma components. Figure 5 shows an example of YUV packing using diagonal subsampling according to the embodiment, where the component a is the most significant surface normal vector component and the component b the second most significant surface normal vector component.

[0105] The least significant surface normal vector component can be derived from any of the above mentioned per-patch surface normal vector signalling, i.e. patch signalled surface normal vector or patch signalled normal vector focus point.

[0106] The benefit of this approach is the increased precision for the second most significant normal vector, while the precision for the least significant vector signalled as per-patch data is still sufficient for reconstruction.

[0107] According to an embodiment, the signalling for the second most significant surface normal vector component may be introduced as syntax element

pdu SNV element sec, extending the syntax structure of the above embodiment for pdu_SNV_element, as illustrated in Tables 6 and 7.

[0108] It shall be noted that pdu SNV element sec requires only a signal bit for signalling, as only two components are left to choose from. The remaining, i.e. the least significant, surface normal vector component is derived by exclusion.

Table 6: (ISO/IEC 23090-5 example)

Table 7: (ISO/IEC 23090-5 example)

[0109] According to an embodiment, intra prediction between patches is used for newly introduced syntax elements, e.g. pdu_SNV_tangent [ 0 ][ 1 ] = actual_SNV_tangent [ 0 ][ 1 ] - pdu SNV tangent [ 0 ][ 0 ].

[0110] According to an embodiment, inter prediction between frames is used for newly introduced syntax elements, e.g. pdu_SNV_tangent [ 1 ][ 0 ] = actual_SNV_tangent [ 1 ][ 0 ] - pdu SNV tangent [ 0 ][ 0 ].

[0111] According to an embodiment, signalling of surface normal residuals against projection plane or surface normal residual against a per patch signalled normal vector is decided at the encoder based on RDO.

[01 12] According to an embodiment, surface normal signalling is combined with a visibility cone signalling to limit the angular extent of normal to the cone opening angle and use only two components to indicate its value. This embodiment can be combined with the embodiment, where the most significant surface normal vector component is signalled by using the Y plane with the higher precision requirement.

[01 13] According to an embodiment, the patch surface normal or normal vector focus point is derived by averaging the normal vectors of at least two per-point surface normal vectors.

[0114] According to an embodiment, the patch surface normal or normal vector focus point is derived by taking the surface normal vector of a central point of the patch, e.g. geometric center.

[0115] Two or more of the embodiments as described above may be combined, and they may be introduced as one or more indicators in any suitable syntax structure for ISO/IEC 23090-5 (or similar volumetric video coding technology). [0116] Consequently, the embodiments as described herein enable to increase the precision of video-based surface normal vector signalling in V-PCC through various embodiments for per-patch surface normal signalling. The embodiment provide savings in the amount of required bit rate or the number of required video streams. Moreover, the embodiments enable to use a single YUV420 8-bit video stream to transmit surface normals that would otherwise require three YUV444 16-bit video streams.

[0117] Further aspects relate to the operation of a decoder. Figure 6 shows an example of a decoding method comprising receiving (600) a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object; decoding (602) the geometry image, the texture image, the occupancy map and the auxiliary patch information; and reconstructing (604) a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

[01 18] Thus, the decoder receives and decodes the geometry image, texture image, occupancy map and auxiliary patch information at least one 2D patch. From the auxiliary patch information, the decoder decodes, besides the metadata relating to surface properties of the patch, also one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object. The 3D representation of one or more objects is then reconstructed based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

[0119] An apparatus according to an aspect comprises at least one processor and at least one memory, said at least one memory stored with computer program code thereon, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: project a 3D representation of at least one object onto at least one 2D patch; generate a geometry image, a texture image, an occupancy map and auxiliary patch information from the 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of the 3D representation of said at least one object; and encode the geometry image, the texture image, the occupancy map and the auxiliary patch information in or along a bitstream.

[0120] An apparatus according to a further aspect comprises at least one processor and at least one memory, said at least one memory stored with computer program code thereon, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform: receive a bitstream in a decoder, said bitstream comprising an encoded geometry image, texture image, occupancy map and auxiliary patch information from a 2D patch, wherein the auxiliary patch information comprises metadata relating to surface properties of the patch and one or more indicators of the surface normal of the patch for configuring reconstruction of a 3D representation of at least one object; decode the geometry image, the texture image, the occupancy map and the auxiliary patch information; and reconstruct a 3D representation of said at least one object based on the decoded geometry image, texture image, occupancy map and at least one indicator of the surface normal of the patch for configuring reconstruction of the 3D representation of the object.

[0121 ] 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,

[0122] In the above, where the example embodiments have been described with reference to an encoder or an encoding method, it needs to be understood that the resulting bitstream and the decoder or the decoding method may have corresponding elements in them. Likewise, where the example embodiments have been described with reference to a decoder, it needs to be understood that the encoder may have structure and/or computer program for generating the bitstream to be decoded by the decoder.

[0123] In the above, some embodiments have been described with reference to encoding or decoding texture pictures, geometry pictures, (optionally) attribute pictures and auxiliary patch 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, (optionally) attribute pictures and auxiliary patch 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.

[0124] 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.

[0125] 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.

[0126] 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.

[0127] 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 examples. However, all such and similar modifications of the teachings of this invention will still fall within the scope of this invention.