Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
RADIATIVE TRANSFER SIGNALLING FOR IMMERSIVE VIDEO
Document Type and Number:
WIPO Patent Application WO/2022/129683
Kind Code:
A1
Abstract:
An encoder may segment volumetric video data into one or more regions (1310); determine a radiative transfer property of a region (1320); indicate the radiative transfer property in a sub-stream (1330); and include the sub-stream in a bitstream (1340). An encoder may determine that volumetric video data comprises a time period during which a computational requirement for rendering/decoding changes at least a threshold amount (1510); and include, in a bitstream, an indication of the change (1520). A decoder may receive viewing space creation information related to volumetric video data (1710); receive a related viewing space handling method (1720); determine that a parameter of the viewing space creation information is incompatible with a parameter of a rendering device (1730); alter the viewing space handling method accordingly (1740); recreate the volumetric video data based, at least partially, on the altered viewing space handling method (1750); and transmit the recreated volumetric video data to the rendering device (1760).

Inventors:
SCHWARZ SEBASTIAN (DE)
AFLAKI BENI PAYMAN (FI)
Application Number:
PCT/FI2021/050850
Publication Date:
June 23, 2022
Filing Date:
December 08, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NOKIA TECHNOLOGIES OY (FI)
International Classes:
H04N19/597; G06T15/50; G06T15/55; H04N13/122; H04N19/127; H04N19/14; H04N19/142; H04N19/156; H04N19/167; H04N19/46; H04N19/70; H04N19/85; H04N19/87; H04N21/2343; H04N21/431
Domestic Patent References:
WO2020012071A12020-01-16
Foreign References:
US20200351484A12020-11-05
Other References:
ANONYMOUS: "Text of ISO/IEC CD 23090-5 Visual Volumetric Video-based Coding and Video-based Point Cloud Compression 2nd Edition", 132. MPEG MEETING; 20201012 - 20201016; ONLINE; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), 9 November 2020 (2020-11-09), pages 1 - 2, XP030291407
Attorney, Agent or Firm:
NOKIA TECHNOLOGIES OY et al. (FI)
Download PDF:
Claims:
CLAIMS

What is claimed is :

1 . An apparatus comprising means for performing : segmenting volumetric video data into one or more regions ; determining at least one radiative transfer property of the one or more regions ; indicating the at least one radiative trans fer property of the one or more regions in a sub-stream; and including the sub-stream in a bitstream configured to describe the volumetric video data .

2 . The apparatus of claim 1 , wherein the means are further configured to perform : determining whether to include an indication of the at least one radiative transfer property of the one or more regions based, at least partially, on the determined at least one radiative transfer property of the one or more regions , wherein the indicating of the at least one radiative transfer property of the one or more regions in the sub-stream is based on a determination to include the indication of the at least one radiative transfer property of the one or more regions .

3 . The apparatus of claim 1 or 2 , wherein the means are further configured to perform : including a flag in the sub-stream indicating whether the at least one radiative transfer property of the one or more regions is indicated in the substream .

4 . The apparatus of any of claims 1 through 3 , wherein the at least one radiative trans fer property of the one or more regions comprises at least one of : opacity information of the one or more regions ; reflectance information of the one or more regions ; or scattering information of the one or more regions .

5 . The apparatus of any of claims 1 through 4 , wherein the means are further configured to perform : indicating an identifier of the one or more regions in the sub-stream; and indicating an identifier of an atlas tile of the one or more regions in the sub-stream .

6 . The apparatus of any of claims 1 through 5 , wherein the means configure to perform indicating of the at least one radiative transfer property of the one or more regions in the sub-stream comprises means configured to perform indicating a value of the at least one radiative transfer property, wherein the value is in a range of zero to a maximum defined by the allocated bits for signalling .

7 . The apparatus of any of claims 1 through 6 , wherein the sub-stream comprises one of : an attribute sub-stream, or a patch sub-stream .

8 . The apparatus of any of claims 1 through 7 , wherein the means configured to perform including of the substream in the bitstream describing the volumetric video data comprises means configured to perform multiplexing the sub-stream with at least one other sub-stream associated with the volumetric video data .

9 . An apparatus comprising : at least one processor ; and at least one non-transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : segment volumetric video data into one or more regions ; determine at least one radiative trans fer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a substream; and include the sub-stream in a bitstream configured to describe the volumetric video data .

10 . A method comprising : segmenting volumetric video data into one or more regions ; determining at least one radiative transfer property of the one or more regions ; indicating the at least one radiative trans fer property of the one or more regions in a sub-stream; and including the sub-stream in a bitstream configured to describe the volumetric video data .

11 . A non-transitory computer-readable medium compri sing program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative trans fer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream conf igured to describe the volumetric video data .

12 . An apparatus comprising means for performing : receiving a bitstream describing volumetric video data ; extracting a sub-stream from the received bitstream; determining whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted substream comprises the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region ; and rendering the region based on the determined value for the at least one radiative transfer property .

13 . The apparatus of claim 12 , wherein the means configured to perform determining of whether the extracted sub-stream comprises the at least one radiative transfer property for the region of the volumetric video data comprises means configured to perform detecting a flag in the extracted sub-stream, wherein the flag i s configured to indicate that the at least one radiative transfer property is included in the extracted substream .

14 . The apparatus of claim 12 or 13 , wherein the at least one radiative transfer property of the region comprises at least one of : opacity information of the region ; reflectance information of the region ; or scattering information of the region .

15 . The apparatus of any of claims 12 through 14 , wherein the means are further configured to perform : determining an identifier of the region ; and determining an identifier of an atlas tile associated with the region, wherein the rendering of the region is based, at least partially, on the identifier of the region and the identifier of the atlas tile .

16 . The apparatus of any of claims 12 through 15 , wherein the value for the at least one radiative transfer property for the region comprises a value in a range of zero to a maximum defined by the allocated bits for signalling .

17 . The apparatus of any of claims 12 through 16 , wherein the sub-stream comprises one of : an attribute sub-stream, or a patch sub-stream .

18 . The apparatus of any of claims 12 through 17 , wherein the means configured to perform extracting of the substream from the received bitstream comprises means configured to perform demultiplexing the bitstream .

19 . The apparatus of any of claims 12 through 18 , wherein the means configured to perform rendering of the region based on the determined value for the at least one radiative transfer property comprises means configured to perform rendering a plurality of points associated with the region based on the determined value for the at least one radiative transfer property .

20 . An apparatus comprising : at least one processor ; and at least one non-transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : receive a bitstream describing volumetric video data ; extract a sub-stream from the received bit stream; determine whether the extracted sub-stream comprises at least one radiative trans fer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determine a value for the at least one radiative trans fer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

21 . A method comprising : receiving a bitstream describing volumetric video data ; extracting a sub-stream from the received bitstream; determining whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted substream comprises the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region ; and rendering the region based on the determined value for the at least one radiative transfer property .

22 . A non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive a bitstream describing volumetric video data ; extract a sub-stream from the received bitstream; determine whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted substream comprises the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

23 . An apparatus comprising means for performing : determining that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

24 . The apparatus of claim 23 , wherein the means configured to perform determining that the volumetric video data comprises the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount comprises means configured to perform determining that the volumetric video data comprises at least one of : a first obj ect entering a scene ; a second obj ect leaving the scene ; a visual effect ; a three-dimensional deformation ; a texture change ; or a combination of two or more of : the first obj ect , the second obj ect , the visual effect , the three dimensional deformation, or the texture change .

25 . The apparatus of claim 23 or 24 , wherein the means configured to perform determining that the volumetric video data comprises the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount comprises means configured to perform : receiving a manual input indicating that the computational requirement for rendering or decoding changes during the at least one time period .

26 . The apparatus of any of claims 23 through 25 , wherein the means configured to perform determining that the volumetric video data comprises the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount comprises means configured to perform : content analysis of the volumetric video data during encoding or as a pre-encoding step .

27 . The apparatus of any of claims 23 through 26 , wherein the indication of the change in the computational requirement for rendering or decoding comprises a flag, wherein the flag is configured to indicate that at least one syntax element related to the change in the computational requirement for rendering or decoding is included in the bitstream .

28 . The apparatus of any of claims 23 through 27 , wherein the indication of the change in the computational requirement for rendering or decoding comprises an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

29 . The apparatus of any of claims 23 through 28 , wherein the indication of the change in the computational requirement for rendering or decoding comprises an indication of a lead time for the change in the computational requirement for rendering or decoding .

30 . The apparatus of any of claims 23 through 29 , wherein the indication of the change in the computational requirement for rendering or decoding comprises an indication of a duration for the change in the computational requirement for rendering or decoding .

31 . An apparatus comprising : at least one processor ; and at least one non-transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : determine that volumetric video data compri ses at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

32 . A method comprising : determining that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

33 . A non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : determine that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

34 . An apparatus comprising means for performing : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocating at least one computational resource based on the received indication .

35 . The apparatus of claim 34 , wherein the means configured to perform receiving of the indication comprises means configured to perform detecting a flag in a stream associated with the volumetric video data, wherein the flag is configured to indicate that at least one syntax element related to the change in the at least one computational requirement for rendering or decoding is included in the stream .

36 . The apparatus of claim 34 or 35 , wherein the indication of the change in the at least one computational requirement for rendering or decoding comprises an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

37 . The apparatus of any of claims 34 through 36 wherein the indication of the change in at least one the computational requirement for rendering or decoding comprises an indication of a lead time for the change in one or more of the at least one computational requirement .

38 . The apparatus of any of claims 34 through 37 , wherein the indication of the change in the at least one computational requirement for rendering or decoding comprises an indication of a duration for the change in one or more of the at least one computational requirement for rendering or decoding .

39 . The apparatus of any of claims 34 through 38 , wherein the at least one computational resource comprises at least one of : at least one memory buffer, at least one processor, or at least one power source .

40 . The apparatus of any of claims 34 through 39 , wherein the means configured to perform reallocating of the at least one computational resource based on the received indication comprises means configured to perform one of : increasing the at least one computational resource for rendering or decoding of the volumetric video data, or decreasing the at least one computational resource for rendering or decoding of the volumetric video data .

41 . An apparatus comprising : at least one processor ; and at least one non-transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

42 . A method comprising : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocating at least one computational resource based on the received indication .

43 . A non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

44 . An apparatus comprising means for performing : receiving viewing space creation information related to volumetric video data ; receiving a viewing space handling method related to the volumetric video data ; determining that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device coupled to the apparatus ; altering the viewing space handling method based on the determining that the at least one parameter of the viewing space creation information is incompatible ; recreating the volumetric video data based, at least partially, on the altered viewing space handl ing method; and transmitting the recreated volumetric video data to the rendering device .

45 . The apparatus of claim 44 , wherein the means configured to perform determining that the at least one parameter of the viewing space creation information is incompatible with the at least one parameter of the rendering device comprises means configured to perform determining that a device class indicated with the viewing space creation information is different than a device class of the rendering device , and wherein the means configured to perform altering of the viewing space handling method comprises means conf igured to perform changing the viewing space handl ing method to a viewing space handling method compatible with the device class of the rendering device .

46 . The apparatus of claim 44 or 45 , wherein the means configured to perform determining that the at least one parameter of the viewing space creation information is incompatible with the at least one parameter of the rendering device comprises means configured to perform determining that a graphical processing unit class indicated with the viewing space creation information is different than a graphical processing unit class of the rendering device , and wherein the means configured to perform altering of the viewing space handling method comprises means conf igured to perform changing the viewing space handl ing method to a viewing space handling method requiring graphical processing unit capabilities the rendering device supports .

47 . The apparatus of claim 46 , wherein the graphical processing unit class indicated with the viewing space creation information is a higher graphical proces sing unit class than the graphical processing unit class of the rendering device .

48 . The apparatus of claim 46 , wherein the graphical processing unit class indicated with the viewing space creation information is a lower graphical processing unit class than the graphical proces sing unit class of the rendering device .

49 . The apparatus of any of claims 44 through 48 , wherein the means configured to perform determining that the at least one parameter of the viewing space creation information is incompatible with the at least one parameter of the rendering device comprises means configured to perform determining that a central processing unit class indicated with the viewing space creation information is different than a central processing unit class of the rendering device , and wherein the means configured to perform altering of the viewing space handling method comprises means conf igured to perform changing the viewing space handl ing method to a viewing space handling method requiring central processing unit capabilities the rendering device supports .

50 . The apparatus of claim 49 , wherein the central processing unit class indicated with the viewing space creation information is a lower central processing unit class than the central processing unit class of the rendering device .

51 . The apparatus of claim 49 , wherein the central processing unit class indicated with the viewing space creation information is a higher central processing unit class than the central processing unit class of the rendering device .

52 . An apparatus comprising : at least one processor ; and at least one non-transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : receive viewing space creation information related to volumetric video data ; receive a viewing space handling method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device coupled to the apparatus ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information is incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device .

53 . A method comprising : receiving, with a decoder, viewing space creation information related to volumetric video data ; receiving, with the decoder, a viewing space handling method related to the volumetric video data ; determining, with the decoder, that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device coupled to the decoder ; altering, with the decoder, the viewing space handling method based on the determining that the at least one parameter of the viewing space creation information is incompatible ; recreating, with the decoder, the volumetric video data based, at least partially, on the altered viewing space handling method; and transmitting the recreated volumetric video data to the rendering device .

54 . A non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive viewing space creation information related to volumetric video data ; receive a viewing space handl ing method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information is incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handl ing method; and transmit the recreated volumetric video data to the rendering device . n apparatus comprising means for performing : transmitting viewing space handling supplemental enhancement information related to volumetric video data ; and transmitting viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical proces sing unit class related to the volumetric video data, or an indication of a central proces sing unit class related to the volumetric video data . n apparatus comprising : at least one processor ; and at least one non-transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical proces sing unit class related to the volumetric video data, or an indication of a central proces sing unit class related to the volumetric video data .

57 . A method comprising : transmitting, with an encoding device , viewing space handling supplemental enhancement information related to volumetric video data ; and transmitting, with the encoding device , viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical proces sing unit class related to the volumetric video data, or an indication of a central proces sing unit class related to the volumetric video data .

58 . A non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical proces sing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data.

Description:
RADIATIVE TRANSFER SIGNALLING FOR IMMERSIVE VIDEO

TECHNICAL FIELD

[0001] The example and non-limiting embodiments relate generally to immersive video and specifically to signaling characteristics of immersive video for recreation of immersive video at a decoder side .

BACKGROUND

[0002] It is known, in video encoding, to proj ect volumetric video data onto geometries and use 2D compression techniques to compress unfolded 2D planes of the geometries . It is known to signal radiative transfer attributes on a per-point basis . It is known to choose a method for viewing space handling based on the content of a viewing space handling SEI payload .

SUMMARY

[0003] The following summary is merely intended to be illustrative . The summary is not intended to limit the scope of the claims .

[0004] In accordance with one aspect , a method comprising : segmenting volumetric video data into one or more regions ; determining at least one radiative transfer property of the one or more regions ; indicating the at least one radiative transfer property of the one or more regions in a sub-stream; and including the sub-stream in a bitstream configured to describe the volumetric video data .

[0005] In accordance with one aspect , an apparatus comprising : at least one processor ; and at least one memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data .

[0006] In accordance with one aspect , an apparatus comprising means for performing : segmenting volumetric video data into one or more regions ; determining at least one radiative transfer property of the one or more regions ; indicating the at least one radiative transfer property of the one or more regions in a sub-stream; and including the sub-stream in a bitstream configured to describe the volumetric video data .

[0007 ] In accordance with one aspect , a non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data .

[0008] In accordance with one aspect , a method comprising : receiving a bitstream describing volumetric video data ; extracting a sub-stream from the received bitstream; determining whether the extracted sub-stream comprises at least one radiative trans fer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region ; and rendering the region based on the determined value for the at least one radiative transfer property .

[0009] In accordance with one aspect , an apparatus comprising : at least one processor ; and at least one memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : receive a bitstream describing volumetric video data ; extract a sub-stream from the received bitstream; determine whether the extracted substream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

[0010] In accordance with one aspect , an apparatus comprising means for performing : receiving a bitstream describing volumetric video data ; extracting a sub-stream from the received bitstream; determining whether the extracted substream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region ; and rendering the region based on the determined value for the at least one radiative transfer property .

[0011] In accordance with one aspect , a non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive a bitstream describing volumetric video data ; extract a substream from the received bitstream; determine whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

[0012] In accordance with one aspect , a method comprising : determining that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[0013] In accordance with one aspect , an apparatus comprising : at least one processor ; and at least one non- transitory memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : determine that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[0014 ] In accordance with one aspect , an apparatus comprising means for performing : determining that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[0015] In accordance with one aspect , a non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : determine that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[0016] In accordance with one aspect , a method comprising : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocating at least one computational resource based on the received indication .

[0017 ] In accordance with one aspect , an apparatus comprising : at least one processor ; and at least one memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

[0018] In accordance with one aspect , an apparatus comprising means for performing : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocating at least one computational resource based on the received indication .

[0019] In accordance with one aspect , a non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

[0020] In accordance with one aspect , a method comprising : receiving, with a decoder, viewing space creation information related to volumetric video data ; receiving, with the decoder, a viewing space handl ing method related to the volumetric video data ; determining, with the decoder, that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device coupled to the decoder ; altering, with the decoder, the viewing space handling method based on the determining that the at least one parameter of the viewing space creation information is incompatible ; recreating, with the decoder, the volumetric video data based, at least partially, on the altered viewing space handling method; and transmitting the recreated volumetric video data to the rendering device .

[0021] In accordance with one aspect , an apparatus comprising : at least one processor ; and at least one memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : receive viewing space creation information related to volumetric video data ; receive a viewing space handl ing method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device coupled to the apparatus ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information is incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device .

[0022] In accordance with one aspect , an apparatus comprising means for performing : receiving viewing space creation information related to volumetric video data ; receiving a viewing space handling method related to the volumetric video data ; determining that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device coupled to the apparatus ; altering the viewing space handling method based on the determining that the at least one parameter of the viewing space creation information is incompatible ; recreating the volumetric video data based, at least partially, on the altered viewing space handling method; and transmitting the recreated volumetric video data to the rendering device .

[0023] In accordance with one aspect , a non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive viewing space creation information related to volumetric video data ; receive a viewing space handl ing method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information is incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device .

[0024 ] In accordance with one aspect , a method comprising : transmitting, with an encoding device , viewing space handling supplemental enhancement information related to volumetric video data ; and transmitting, with the encoding device , viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit clas s related to the volumetric video data . [0025] In accordance with one aspect , an apparatus comprising : at least one processor ; and at least one memory and computer program code , wherein the at least one memory and the computer program code are configured to , with the at least one processor, cause the apparatus to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data .

[0026] In accordance with one aspect , an apparatus comprising means for performing : transmitting viewing space handl ing supplemental enhancement information related to volumetric video data ; and transmitting viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data .

[0027 ] In accordance with one aspect , a non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit clas s related to the volumetric video data .

BRIEF DESCRI PTION OF THE DRAWINGS

[0028] The foregoing aspects and other features are explained in the following description, taken in connection with the accompanying drawings , wherein :

[0029] FIG . 1 is a block diagram of one possible and nonlimiting exemplary system in which the exemplary embodiments may be practiced;

[0030] FIG . 2 is a block diagram of one possible and nonlimiting exemplary system in which the exemplary embodiments may be practiced;

[0031] FIG . 3 is a diagram illustrating features of an example compression process as described herein ;

[0032] FIG . 4 is a diagram illustrating features of an example decompression process as described herein ;

[0033] FIG . 5 is a diagram illustrating features of an example point cloud frame as described herein ; [0034] FIG . 6A is a diagram illustrating features of an example reconstruction process a described herein ;

[0035] FIG . 6B is a diagram illustrating features of an example reconstruction process a described herein ;

[0036] FIG . 6C is a diagram illustrating features of an example reconstruction process a described herein ;

[0037] FIG . 6D is a diagram illustrating features of an example reconstruction process a described herein ;

[0038] FIG . 7A is a diagram illustrating features of an example point cloud bounding box as described herein ;

[0039] FIG . 7B is a diagram illustrating features of an example patch as described here!

[0040] FIG . 8 is a diagram illustrating features of an example patch segmentation proce ss as described herein ;

[0041] FIG . 9 is a diagram illustrating features of an example proj ection as described herein ;

[0042] FIG . 10 is a diagram illustrating features of an example bitstream as described h erein ;

[0043] FIGs . 11A and 11B are a diagram illustrating features of an example bitstream as described herein ;

[0044] FIGs . 12A, 12B, and 12C are a flowchart illustrating steps of an example decoding process as described herein ;

[0045] FIG . 13 is a flowchart illustrating steps of an example encoding process as described herein ; [0046] FIG . 14 is a flowchart illustrating steps of an example decoding process as described herein ;

[0047] FIG . 15 is a flowchart illustrating steps of an example encoding process as described herein ;

[0048] FIG . 16 is a flowchart illustrating steps of an example decoding process as described herein ;

[0049] FIG . 17 is a flowchart illustrating steps of an example decoding process as described herein ; and

[0050] FIG . 18 is a flowchart illustrating steps of an example encoding process as described herein .

DETAILED DESCRI PTION OF EMBODIMENTS

[0051] The following abbreviations that may be found in the specification and/or the drawing figures are defined as follows :

3 GPP third generation partnership project

4G fourth generation

5G fifth generation

5GC 5G core network

6D0F six degrees of freedom

AFOC atlas frame order count

ALU arithmetic logic unit

AR augmented reality

ASPS atlas sequence parameter set

BDTF bidirectional optical transfer function

CDMA code division multiple access

CGI computer-generated imagery

CPU central processing unit CSG constructive solid geometry

DSP digital signal processor eNB (or eNodeB) evolved Node B (e.g., an LTE base station)

E-UTRA evolved universal terrestrial radio access, i.e., the LTE radio access technology

FDMA frequency division multiple access

FLOPS floating point operations per second gNB (or gNodeB) base station for 5G/NR, i.e., a node providing NR user plane and control plane protocol terminations towards the UE, and connected via the NG interface to the 5GC

GPU graphical processing unit

GSM global system for mobile communication

HMD head mounted display

IEEE Institute of Electrical and Electronics Engineers

IMD integrated messaging device

IMS instant messaging service loT Intemet-of-Things

IRAP intra random access point

LTE long term evolution

LUT look-up table

MIV MPEG immersive video

MMS multimedia messaging service

MPEG Moving Picture Experts Group

MPEG-I Moving Picture Experts Group - immersive codec family

MR mixed reality

NAL network abstraction layer

NR new radio

PDA personal digital assistant pcc point cloud compression

POC picture order count

RBSP raw byte sequence payload SEI supplemental enhancement information

SMS short message service

SPS sequence parameter set

TCP-IP transmission control protocol-internet protocol

TDMA time division multiple access

TDP thermal design power

TM test model

TMC2 test model category 2

UE user equipment (e.g., a wireless, typically mobile device)

UICC universal integrated circuit card

UMTS universal mobile telecommunications service

V3C visual volumetric video-based coding

VCCC viewing space creation CPU class

VCDC viewing space creation device class

VCGC viewing space creation GPU class

VHM viewing space handing method

V-PCC video-based point cloud compression

VPS V3C parameter set

VR virtual reality

WLAN wireless local area network

[0052] The following describes suitable apparatus and possible mechanisms for practicing example embodiments of the present disclosure . Accordingly, reference is first made to FIG . 1 , which shows an example block diagram of an apparatus 50 . The apparatus may be configured to perform various functions such as , for example , gathering information by one or more sensors , encoding and/or decoding information, receiving and/or transmitting information, analyzing information gathered or received by the apparatus , or the like . A device configured to encode a video scene may ( optionally) comprise one or more microphones for capturing the scene and/or one or more sensors , such as cameras , for capturing information about the physical environment in which the scene is captured . Alternatively, a device configured to encode a video scene may be configured to receive information about an environment in which a scene is captured and/or a simulated environment . A device configured to decode and/or render the video scene may be configured to receive a Moving Picture Experts Group immersive codec family (MPEG- I ) bitstream comprising the encoded video scene . A device configured to decode and/or render the video scene may comprise one or more speakers /audio transducers and/or displays , and/or may be configured to transmit a decoded scene or signals to a device comprising one or more speakers /audio transducers and/or displays . A device configured to decode and/or render the video scene may comprise a user equipment , a head/mounted display, or another device capable of rendering to a user an AR, VR and/or MR experience .

[0053] The electronic device 50 may for example be a mobile terminal or user equipment of a wireless communication system . Alternatively, the electronic device may be a computer or part of a computer that is not mobile . It should be appreciated that embodiments of the invention may be implemented within any electronic device or apparatus which may process data . The electronic device 50 may comprise a device that can access a network and/or cloud through a wired or wireless connection . The electronic device 50 may comprise one or more processors or controllers 56 , one or more memories 58 , and one or more transceivers 52 interconnected through one or more buses . The one or more processors 56 may comprise a central processing unit (CPU) and/or a graphical processing unit (GPU) . Each of the one or more transceivers 52 includes a receiver and a transmitter . The one or more buses may be address , data, or control buses , and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit , fiber optics or other optical communication equipment , and the like . The one or more transceivers may be connected to one or more antennas 44 . The one or more memories 58 may include computer program code . The one or more memories 58 and the computer program code may be configured to , with the one or more processors 56 , cause the electronic device 50 to perform one or more of the operations as described herein .

[0054 ] The electronic device 50 may connect to a node of a network . The network node may comprise one or more processors , one or more memories , and one or more transceivers interconnected through one or more buses . Each of the one or more transceivers includes a receiver and a transmitter . The one or more buses may be address , data, or control buses , and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit , fiber optics or other optical communication equipment , and the like . The one or more transceivers may be connected to one or more antennas . The one or more memories may include computer program code . The one or more memories and the computer program code may be configured to , with the one or more processors , cause the network node to perform one or more of the operations as described herein .

[0055] The electronic device 50 may comprise a microphone 36 or any suitable audio input which may be a digital or analogue signal input . The electronic device 50 may further comprise an audio output device which in embodiments of the invention may be any one of : an earpiece 38 , speaker, or an analogue audio or digital audio output connection . The electronic device 50 may also comprise a battery ( or in other embodiments of the invention the device may be powered by any suitable mobile energy device such as solar cell , fuel cell or clockwork generator) . The electronic device 50 may further comprise a camera 42 capable of recording or capturing images and/or video . The electronic device 50 may further comprise a display 32 . The electronic device 50 may further comprise an infrared port for short range line of sight communication to other devices . In other embodiments the apparatus 50 may further comprise any suitable short-range communication solution such as for example a Bluetoothâ„¢ wireless connection or a USB/firewire wired connection .

[0056] It should be understood that an electronic device 50 configured to perform example embodiments of the present disclosure may have fewer and/or additional components , which may correspond to the processes the electronic device 50 is configured to perform . For example , an apparatus configured to encode a video might not comprise a speaker or audio transducer and may comprise a microphone , while an apparatus configured to render the decoded video might not comprise a microphone and may comprise a speaker or audio transducer .

[0057 ] Referring now to FIG . 1 , the electronic device 50 may comprise a controller 56 , processor or processor circuitry for controlling the apparatus 50 . The controller 56 may be connected to memory 58 , which in embodiments of the invention may store both data in the form of image and audio data and/or may also store instructions for implementation on the controller 56 . The controller 56 may further be connected to codec circuitry 54 suitable for carrying out coding and/or decoding of audio and/or video/image data or assisting in coding and/or decoding carried out by the controller .

[0058] The electronic device 50 may further compri se a card reader 48 and a smart card 46 , for example a UICC and UICC reader for providing user information and being suitable for providing authentication information for authentication and authori zation of the user at a network . The electronic device 50 may further comprise an input device 34 , such as a keypad, one or more input buttons , or a touch screen input device , for providing information to the controller 56 .

[0059] The electronic device 50 may comprise radio interface circuitry 52 connected to the controller and suitable for generating wireless communication signals for example for communication with a cellular communications network, a wireless communications system or a wireless local area network . The apparatus 50 may further comprise an antenna 44 connected to the radio interface circuitry 52 for transmitting radio frequency signals generated at the radio interface circuitry 52 to other apparatus (es ) and/or for receiving radio frequency signals from other apparatus (es ) .

[0060] The electronic device 50 may comprise a microphone 38 , camera 42 , and/or other sensors capable of recording or detecting audio signals , image/video signals , and/or other information about the local /virtual environment , which are then passed to the codec 54 and/or the controller 56 for processing . The electronic device 50 may receive the audio/image/video signals and/or information about the local /virtual environment for processing from another device prior to transmission and/or storage . The electronic device 50 may also receive either wirelessly or by a wired connection the audio/image/video signals and/or information about the local /virtual environment for encoding/decoding . The structural elements of electronic device 50 described above represent examples of means for performing a corresponding function .

[0061] The memory 58 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices , flash memory, magnetic memory devices and systems , optical memory devices and systems , fixed memory and removable memory . The memory 58 may be a non-transitory memory . The memory 58 may be means for performing storage functions . The controller 56 may be or comprise one or more processors , which may be of any type suitable to the local technical environment , and may include one or more of general-purpose computers , special purpose computers , microprocessors , digital signal processors ( DSPs ) and processors based on a multi-core processor architecture , as non-limiting examples . The controller 56 may be means for performing functions .

[0062] With respect to FIG . 2 , an example of a system within which embodiments of the present invention can be utili zed is shown . The system 10 comprises multiple communication devices which can communicate through one or more networks . The system 10 may comprise any combination of wired or wireless networks including, but not limited to a wireless cellular telephone network ( such as a GSM, UMTS , E-UTRA, LTE , CDMA, 4G, 5G network etc . ) , a wireless local area network (WLAN) such as defined by any of the IEEE 802 . x standards , a Bluetooth personal area network, an Ethernet local area network, a token ring local area network, a wide area network, and/or the Internet . [0063] The system 10 may include both wired and wireless communication devices and/or electronic devices suitable for implementing embodiments of the invention.

[0064] For example, the non-limiting example system shown in FIG. 2 shows a mobile telephone network 11 and a representation of the internet 28. Connectivity to the internet 28 may include, but is not limited to, long range wireless connections, short range wireless connections, and various wired connections including, but not limited to, telephone lines, cable lines, power lines, and similar communication pathways .

[0065] The example communication devices shown in the system 10 may include, but are not limited to, an apparatus 15, a combination of a personal digital assistant (PDA) and a mobile telephone 14, a PDA 16, an integrated messaging device (IMD) 18, a desktop computer 20, a notebook computer 22, and a headmounted display (HMD) 17. The electronic device 50 may comprise any of those example communication devices. In an example embodiment of the present disclosure, more than one of these devices, or a plurality of one or more of these devices, may perform the disclosed process (es) . These devices may connect to the internet 28 through a wireless connection 2.

[0066] The embodiments may also be implemented in a set-top box; i.e. a digital TV receiver, which may or may not have a display or wireless capabilities, in tablets or (laptop) personal computers (PC) , which have hardware and/or software to process neural network data, in various operating systems, and in chipsets, processors, DSPs and/or embedded systems offering hardware/sof tware based coding. The embodiments may also be implemented in cellular telephones such as smart phones , tablets , personal digital assistants ( PDAs ) having wireless communication capabilities , portable computers having wireless communication capabilities , image capture devices such as digital cameras having wireless communication capabilities , gaming devices having wireless communication capabilities , music storage and playback appliances having wireless communication capabilities , Internet appliances permitting wireless Internet access and browsing, tablets with wireless communication capabilities , as well as portable units or terminals that incorporate combinations of such functions .

[0067 ] Some or further apparatus may send and receive call s and messages and communicate with service providers through a wireless connection 25 to a base station 24 , which may be , for example , an eNB, gNB, etc . The base station 24 may be connected to a network server 26 that allows communication between the mobile telephone network 11 and the internet 28 . The system may include additional communication devices and communication devices of various types .

[0068] The communication devices may communicate using various transmission technologies including, but not limited to , code division multiple access (CDMA) , global systems for mobile communications (GSM) , universal mobi le telecommunications system (UMTS ) , time divisional multiple access ( TDMA) , frequency division multiple access ( FDMA) , transmission control protocol-internet protocol ( TCP- I P) , short messaging service ( SMS ) , multimedia messaging service (MMS ) , email , instant messaging service ( IMS ) , Bluetooth, IEEE 802 . 11 , 3GPP Narrowband loT and any similar wireless communication technology . A communications device involved in implementing various embodiments of the present invention may communicate using various media including, but not limited to , radio , infrared, laser, cable connections , and any suitable connection .

[0069] In telecommunications and data networks , a channel may refer either to a physical channel or to a logical channel . A physical channel may refer to a physical transmission medium such as a wire , whereas a logical channel may refer to a logical connection over a multiplexed medium, capable of conveying several logical channels . A channel may be used for conveying an information signal , for example a bitstream, which may be a MPEG- I bitstream, from one or several senders ( or transmitters ) to one or several receivers .

[0070] Features as described herein generally relate to enablement of virtual reality (VR) , augmented reality (AR) , and/or mixed reality (MR) . It should be understood that example embodiments described with regard to one of VR, AR, or MR may be implemented with respect to any of these technology areas . Virtual reality (VR) is an area of technology in which video content may be provided, e . g . streamed, to a VR di splay system . The VR display system may be provided with a live or stored feed from a video content source , the feed representing a VR space or world for immersive output through the display system . A virtual space or virtual world is any computergenerated version of a space , including but not limited to a captured real-world space , in which a user can be immersed through a display system such as a VR headset . A VR headset may be configured to provide VR video and audio content to the user, e . g . through the use of a pair of video screens and headphones incorporated within the headset . Augmented reality (AR) is similar to VR in that video content may be provided, as above , which may be overlaid over or combined with aspects of a real-world environment in which the AR content is being consumed . A user of AR content may therefore experience a version of the real-world environment that is "augmented" with additional virtual features , such as virtual visual and/or audio obj ects . A device may provide AR video and audio content overlaid over a visible or recorded version of the real-world visual and audio elements .

[0071] Features as described herein may relate to methods of encoding, decoding, and/or rendering AR/VR/MR content , including but not limited to volumetric/immersive video data . The encoding, decoding, and/or rendering of the content may take place at a single device or at two or more separate devices . For example , the encoding of the content may take place at a user equipment , a server, or another electronic device capable of performing the processes herein described . The encoded content may then be transmitted to another device , which may then store , decode , and/or render the content . Transmission of the encoded content may, for example , occur over a network connection, such as an LTE , 5G, and/or NR network . As another example , the encoding of the content may take place at a server . The encoded content may then be stored on a suitable file server, which may then be transmitted to another device , which may then store , decode , and/or render the content .

[0072] Features as described herein may relate to volumetric video data . Volumetric video data may represent a three- dimensional scene or obj ect and may be used as input for AR, VR, and MR applications . Because volumetric video describes a 3D scene ( or obj ect ) , such data can be viewed from any viewpoint. Therefore, volumetric video is an important format for AR, VR, or MR applications, especially for providing six degrees of freedom (6D0F) viewing capabilities. Such data may describe geometry (shape, size, position in 3D-space, etc.) and respective attributes (e.g. color, opacity, reflectance, etc.) , plus any possible temporal changes of the geometry and attributes at given time instances. Temporal information about the scene may 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.

[0073] Volumetric video may be generated from 3D models, i.e. computer-generated imagery (CGI) ; captured from real-world scenes using a variety of capture solutions, e.g. multi-camera, laser scan, combination of video and dedicated depth sensors, etc.; or generated from a combination of generated data and real-world data. Increasing computational resources and advances in 3D data acquisition devices has enabled reconstruction of highly detailed volumetric video representations of natural scenes. Representation of the 3D data depends on how the 3D data is used. Infrared, lasers, time-of-f light , and structured light are all examples of devices that can be used to construct 3D video data. Typical representation formats for such volumetric data are triangle meshes, point clouds, voxels, etc. Dense voxel arrays have been used to represent volumetric medical data. In 3D graphics, polygonal meshes are extensively used. Point clouds are well suited for applications such as capturing real world 3D scenes where the topology is not necessarily a 2D manifold. Another way to represent 3D data is coding this 3D data as a set of texture and depth maps, as is the case in the multiview plus depth. Closely related to the techniques used in multi-view plus depth is the use of elevation maps, and multilevel surface maps.

[0074] 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 becomes essential. Standard volumetric video representation formats, such as point clouds, meshes, voxels, etc. 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, successive temporal "frames" do not necessarily have the same number of meshes, points, or voxels. Therefore, compression of dynamic 3D scenes may be inefficient. 2D-video based approaches for compressing volumetric data, i.e. multiview+depth, have much better compression efficiency, but rarely cover the full scene. Therefore, they may provide only limited 6DoF capabilities.

[0075] Instead of the above-mentioned 2D approach, a 3D scene, represented as meshes, points, and/or voxels, may be projected onto one or more geometries. These geometries may be "unfolded" into 2D planes (i.e. two planes per geometry: one for texture, one for depth) , which are then encoded using standard 2D video compression technologies. Relevant projection geometry information is 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 (which might not necessarily be the starting format) . [0076] Projecting volumetric models onto 2D planes allows for using standard 2D video coding tools with highly efficient temporal compression. Thus, coding efficiency may be greatly increased. Using geometry-pro ections instead of prior-art 2D-video based approaches, i.e. multiview+depth, may provide better coverage of a 3D scene or object. Thus, 6DoF capabilities may be improved. Using several geometries for individual objects may further improve the coverage of a scene. Furthermore, standard video encoding hardware may be utilized for real-time compression/decompression of the projected planes. The projection and reverse projection steps are of low complexity.

[0077] Referring now to FIG. 3, illustrated is an overview of the video-based point cloud compression (V-PCC) process implemented in V-PCC TMC2. V-PCC compression and decompression are further described in MPEG N19092. V-PCC compression may take place during the encoding stage. In the example of FIG. 3, a point cloud frame may be processed. The volumetric data may be represented as a set of 3D projections in different components; in other words, the input point cloud data/frame may be projected onto one or more geometries. At 305, the input point cloud frame may be used to generate one or more 3D patches. For example, the 3D image may be decomposed into far and near components for geometry and corresponding attribute components. The 2D projection may be composed of independent patches based on geometry characteristics of the input point cloud frame. The patch information and the input point cloud frame may be used to generate one or more attribute images describing the attributes associated with the patches, at 320. The patch information may be used to perform patch packing, at 310. For example, an occupancy map 2D image may be created to indicate parts of an image that may be used . The input point cloud frame , the patch information, and the occupancy map produced via the patch packing process may be used to generate one or more geometry images describing the patches , at 330 .

[0078] The packed patches /occupancy map may be compressed at 335 , resulting in an occupancy sub-stream sent to the multiplexer 360 . Image padding may be applied to the one or more geometry images at 345 , and the padded geometry images may be compressed at 355 , resulting in a geometry sub-stream sent to the multiplexer 360 . The image padding may be based on an occupancy map reconstructed from the compressed patches , at 345 . Smoothing of the attribute image may be based on a geometry image reconstructed from the compressed geometry image and an occupancy map reconstructed from the compressed patches /occupancy map, at 325 . In an example , the reconstructed geometry information may be smoothed outside the encoding loop as a post processing step . Additional smoothing parameters that were used for the smoothing process may be transferred as a supplemental information for the decoding process . The generation of the attribute image may be based on the smoothed geometry and an occupancy map reconstructed from the compressed patches /occupancy map, at 320 . Image padding may be applied to the one or more attribute images at 340 , and the padded attribute images may be compressed at 350 , resulting in an attribute sub-stream sent to the multiplexer 360 . The image padding may be based on an occupancy map reconstructed from the compressed patches /occupancy map, at 340 . The sequence of the generated patches may be compressed at 315 , resulting in a patch sub-stream sent to the multiplexer 360 . This patch sub-stream may be considered as comprising compressed auxiliary information . [0079] The multiplexer 360 may multiplex the patch substream, the attribute sub-stream, the geometry sub-stream, and the occupancy sub-stream to produce a compressed bitstream that may be transmitted to a decoder, for example a decoder implementing the decompression process illustrated at FIG . 4 .

[0080] Referring now to FIG . 4 , illustrated is an overview of the V-PCC decompression process . A compressed bitstream may be received by the demultiplexer 410 . The demultiplexer 410 may demultiplex the compressed bitstream into a sequence parameter set ( SPS ) sub-stream, a patch sub-stream, an occupancy sub-stream, a geometry sub-stream, and an attribute sub-stream . The SPS sub-stream may be parsed at 420 . The SPS sub-stream may be considered auxiliary information, which may have been entropy coded . The patch sequence sub-stream may be decompressed at 430 , resulting in patch information . The decompression of the patch sequence sub-stream may be based, at least partially, on auxiliary information, e . g . from 420 . The occupancy sub-stream may be decompressed at 440 , resulting in an occupancy map . The occupancy map may have been compressed using video compres sion, and may have to be upscaled to the nominal resolution . The nearest neighbor method may be applied for upscaling . The decompression of the occupancy sub-stream may be based, at least partially, on auxil iary information, e . g . from 420 . The geometry sub-stream may be decompressed at 450 , resulting in one or more geometry images . The decompression of the geometry sub-stream may be based, at least partially, on auxiliary information, e . g . from 420 . The attribute sub-stream may be decompressed at 460 , resulting in one or more attribute images . The decompression of the attribute sub-stream may be based, at least partially, on auxiliary information, e . g . from 420 . Based on the auxiliary information, patch information, occupancy map, geometry images, and attribute images, the geometry and attributes may be reconstructed, at 470. Geometry post-processing, such as smoothing, may be applied to reconstruct point cloud geometry information, at 480. The geometry post-processing may be based, at least partially, on auxiliary information, e.g. from 420.

[0081] The attributes of the point cloud may be reconstructed, at 470, based on the decoded attribute video stream and reconstructed information for smoothed geometry and, if present, occupancy map and auxiliary information. After the attribute reconstruction stage, an additional attribute smoothing method may be used for point cloud refinement, at 490. The attribute transfer and smoothing may be based, at least partially, on auxiliary information and/or reconstructed geometry/attributes .

[0082] Referring now to FIG. 5, illustrated is an example of a point cloud frame that may be used in V-PCC. A point cloud frame may represent a dataset of points within a 3D volumetric space that have unique coordinates and attributes, at a point in time or as a function of time. Referring now to FIGs. 6A- D, illustrated is a reconstruction process for the point cloud frame, which may have been compressed using, for example, the process of FIG. 3 and decompressed using, for example, the process of FIG. 4. FIG. 6A illustrates a reconstruction of FIG. 5 using atlas information. FIG. 6B illustrates a reconstruction of FIG. 5 using atlas information and an occupancy map. FIG. 6C illustrates a reconstruction of FIG. 5 using atlas information, an occupancy map, and geometries. FIG. 6D illustrates a reconstruction of FIG. 5 using atlas information, an occupancy map, geometries, and attributes. It may be understood that each of the sub-streams included in the compressed bitstream includes information that may be used to reconstruct a point cloud frame.

[0083] Referring now to FIGs. 7A-B, illustrated is a patch description and associated patch information for atlas data. In V-PCC notation, a patch is a collection of information that represents a 3D bounding box of a point cloud, and associated geometry and attribute description, along with the atlas information that is required to reconstruct the 3D point positions and their corresponding attributes from the 2D projections. In FIG. 7A, point cloud bounding box 700 may contain a patch 3D bounding box 710 surrounding/encasing a 3D object, A. The patch axis orientation (tangent axis (715) , bitangent axis (725) , normal axis (720) ) may depend on the projection plane index ( PduPro j ectionPlane (730) ) , and a patch projection mode. It should be noted that any side of the bounding box and additional 45 degree diagonal projections may be a projection plane. The origin of the patch bounding box may be the nearest vertex to the point cloud coordinates, origin point 0[0;0;0] (740) . The projection image may be divided into tile groups. The origin point of the patch projection may be the nearest point to the patch tile group origin point 0[0;0;0] (740) , i.e. O' (750) .

[0084] The patch information may be generated per each point cloud frame unless the information is considered static. In the example of FIGs. 7A-B, the atlas information may only be generated for the key (e.g. intra random reference point (TRAP) ) point cloud compression (pcc) frames. [0085] Referring now to FIG. 7B, illustrated is an example of a patch generated from the 3D point cloud frame illustrated in FIG. 7A. The patch may comprise a Patch 2D bounding box (760) that may be described by Patch2dSizeX (780) and Patch2dSizeY (785) . The origin of the Patch 2D bounding box may be the origin point of the patch projection in FIG. 7A, O' [0;0] (750) . This origin may be described with reference to the patch tile group origin point 0[0;0] (740) with Patch2dPosX (770) and Patch2dPosY (775) . The patch tile group origin may be described by patch_tile_group_width and patch_tile_group_height .

[0086] Referring now to FIG. 8, illustrated is a patch segmentation process 800. This, or a similar process, may be used during 3D patch generation at, for example, 305 of FIG. 3. In the example of FIG. 8, a single point cloud frame may be used as input, 810. The patch segmentation/generation process 800 may comprise decomposing the point cloud frame 810 by converting 3D samples to 2D samples on a given projection plane using a strategy that provides the best compression. In TMC2v0, the patch generation process aims at decomposing the point cloud into a minimum number of patches with smooth boundaries, while also minimizing reconstruction error.

[0087] At 820, a normal may be estimated for each point. The tangent plane and its corresponding normal may be defined for each point based on the point' s nearest neighbours m within a predefined search distance. At 830, initial segmentation, a K-D tree may be used to separate the data and find neighbours in the vicinity of a point Pt, and a barycenter c = p of that set of points may be used to define the normal. The barycenter c may be computed as follows:

[0088] The normal may be estimated from eigen decomposition for the defined point cloud as:

[0089] Based on this information, each point may be associated with a corresponding plane of a point cloud bounding box. Each plane may be defined by a corresponding normal with values:

(1.0, 0.0, 0.0) ,

(0.0, 1.0, 0.0) ,

(0.0, 0.0, 1.0) ,

(-1. o, 0.0, 0.0) ,

(0.0, -1.0, 0.0) ,

(0.0, 0.0, -1.0) .

[0090] More precisely, each point may be 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 p.dx ) :

[0091] The sign of the normal may be defined depending on the point's position in relation to the "center".

[0092] The initial clustering may then be refined by iteratively updating the clustered index associated with each point based on the point's normal and the cluster indices of the point's nearest neighbors, at 840 (i.e. refine segmentation) . [0093] At the following step, segment patches 850, the points may be clustered based on the closeness of the normals and the distance between points in Euclidian space. Final patches, 860, may be created from the clusters by grouping similar clusters. By adding the weight to each plane, the patches may be refined when the Initial Segmentation process, 830, decides the projection plane, in order to increase the size of the patch in the front or back. The weight values may be calculated in the first frame per GOF. The weight may be determined according to the ratio of projected points when projecting all points to the three planes (XY, YZ, ZX) .

[0094] The refine segmentation process, 840, may provide a minimum number of connected components (patches) for a given number of points in the point cloud frame 810.

[0095] Referring now to FIG. 9, illustrated is a point cloud frame projected onto "bounded-box" planes. FIG. 9 may be considered the result of applying the patch segmentation process 800 of FIG. 8 to the example point cloud frame of FIG. 5, where segmented patches of the point cloud have been projected onto projection planes.

[0096] Referring now to FIG. 10, illustrated is an example network abstraction layer (NAL) sample bitstream. The NAL sample stream may be used for coded representation of dynamic point clouds. One of the advantages of the NAL concept is the use of different prediction structures and many other advanced techniques introduced in video encoding. The flexible coding structure may be implemented by using the picture order count (POC) concept, as well as a class to manage the list of parameters in the NAL sample stream and V-PCC sample stream. [0097] FIG. 10 illustrates an example of a NAL bitstream with other types of NAL units. Generation of the V-PCC or NAL unit sample stream format may start with a sample stream header, 1000, followed by a sequence of sample stream V-PCC unit or NAL unit syntax structures. The sample stream V-PCC or NAL header 1000 may contain a syntax element, "ssvh_unit_size_precision_bytes_minusl" or "ssnh_unit_size_precision_bytes_minusl", which may be used to specify the precision (e.g. NAL SampleStreamPrecision) , in bytes, of the "ssvu vpcc unit size" or "ssnu nal unit size" syntax element (e.g. NAL SampleStreamSize) , 1010, in each sample stream V-PCC or NAL units. The "ssvu_vpcc_unit_size" or "ssnu_nal_unit_size" syntax element may be used to specify the size of each V-PCC or NAL unit syntax structure that follows. In the current test model (TM) implementation of the sample stream format for V-PCC and NAL units, a two-path approach is taken; the first path may find the maximum size of sample stream V-PCC/NAL unit structures, while the second path may form the sample stream header by setting its unit size precision based on this max value. The NAL sample bitstream may then create a sequence of sample stream units.

[0098] The V-PCC and NAL unit sample stream format classes may be redesigned to avoid this two-path approach by calculating the size precision at each instance of sample stream unit syntax structure. Referring now to FIG. 11, including FIGs. 11A and 11B, illustrated is an example of a compressed dynamic point cloud content bitstream (e.g. V-PCC bitstream) using multiple atlases. In the example, Atlas 0 (1100) and Atlas 1 (1120) may each be associated with a NAL bitstream having its own sample stream header specifying a precision. In the example of FIG. 11B, Atlas 1 (1120) is illustrated as being associated with a NAL Bitstream (1130) , which is associated with an atlas tile group layer (1140) . However, in the example of FIG. 11B, the implementation number of tile groups may be limited to a single tile group (i.e. 1140) for an atlas frame (i.e. 1120) . Moreover, in its present implementation there may be a lack of support for atlas frame order count (AFOC) -based NAL unit type identification, as well as a lack of support for cases where reordering of atlas frame inputs may become necessary i.e. hierarchical P- and B- prediction .

[0099] An atlas may be considered auxiliary patch information. For each patch, some or all of the following metadata may be encoded/decoded : Index of the projection plane (Index 0 for the plane (1.0, 0.0, 0.0) ; Index 1 for the plane (0.0, 1.0, 0.0) ; Index 2 for the plane (0.0, 0.0, 1.0) ; Index 3 for the plane (-1.0, 0.0, 0.0) ; Index 4 for the plane (0.0, -1.0, 0.0) ; Index 5 for the plane (0.0, 0.0, -1.0) ) ; 2D bounding box (uO, vO, ul, vl) ; and/or 3D location (xO, yO, zO) of the patch represented in terms of depth 50, tangential shift sO, and/or bi-tangential shift rO .

[00100] According to the chosen projection planes, (50, sO, rO) may be computed as follows: Index 0, 50 = xO, sO = zO and rO = yO; Index 3, 50 = xO, sO = zO and rO = yO; Index 1, 50 = yO, sO = zO and rO = xO; Index 4, 50 = yO, sO = zO and rO = xO; Index 2, 50= zO, sO = xO and rO = yO ; Index 5, 50 = zO, sO = xO and rO = yO . An addition to the index list to define the normal axis may be used for the additional 45-degree projection planes: Index 6 for the plane Index 7 for the plane ; Index 8 for the plane ; Index 9 for the plane

[00101] The mapping information providing, for each TxT block, its associated patch index may be represented 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 may be the same as the order used to encode the 2D bounding boxes . L may be the list of candidate patches . The empty space between patches may be considered as a patch and assigned the special index 0 , which may be added to the candidate patches list of all the blocks . I may be an index of the patch to which belongs the current TxT block .

[00102] Table 1 gives an example of patch data unit syntax : Table 1

[00103] Referring now to FIG. 12, including FIGs. 12A, 12B, and 12C, illustrated is an example flowchart for use by a patch data unit to decode decompressed volumetric video data. For example, geometry/attribute reconstruction 470 of FIG. 4 may conduct decoding of decompressed information according to the flowchart of FIG. 12.

[00104] At 1200, patch information data may be read. In an example, the input from the patch information data may be patch_mode, p, frmldx, and/or refFrmldx, 1210. At 1220, if patch_mode is SKIP, the arithmetic, spud_patch_index, may be decoded (1222) , the refldx may equal the value of [refFrmldx] [ spud_patch_index] (1224) , and the patch may be reconstructed (1270) according to one or more of the illustrated parameters (1226) (e.g.

Patch2dShif tU [p] =pdu_2d_shif t_u [refldx] ;

Patch2dShif tV [p] =pdu_2d_shif t_v [refldx] ;

Patch2dSizeU [p] =Patch2dSizeU [refldx] ; Patch2dSizeV [p] =Patch2dSizeV [refldx] ; Patch3dShif tT [p] =Patch3dShif tT [refldx] ; Patch3dShif tBT [p] =Patch3dShif tBT [refldx] ; Patch3dShif tN [p] =Patch3dShif tN [refldx] ; PatchNormalAxis [p] =PatchNormalAxis [refldx] ; Orientation [p] =Orientation [refldx] ;

PatchLoD [p] =PatchLod [refldx] ) .

[00105] Else, at 1230, if patch_mode is INTRA, refldx = [frmldx] [p-1] (1232) , one or more of the illustrated arithmetic (e.g. uO (pdu_2d_shift_u) ; ul (pdu_2d_shift_v) ; size_u0 (pdu_2d_size_u) ; size_v0 (pdu_2d_size_v) ; ul (pdu_3d_shif t_tangent_axis ) ; vl (pdu_3d_shif t_bitangent_axis ) ; dl (pdu_3d_shif t_normal_axis ) ; n (pdu_normal_axis ) ; swap (pdu_orientation_swap_f lag) ; LoD (pdu_lod) ) may be decoded (1234) , and the patch may be reconstructed (1270) according to one or more of the illustrated parameters (1236) (e.g.

Patch2dShif tU [p] =pdu_2d_shif t_u [p] ; Patch2dShif tV [p] =pdu_2d_shif t_v [p] ; Patch2dSizeU [p] =pdu_2d_size_u [p] ; Patch2dSizeV [p] =pdu_2d_size_v [p] ;

Patch3dShif tT [p] =pdu_3d_shif t_tan [p] ;

Patch3dShif tBT [p] =pdu_3d_shif t_bitan [p] ;

Patch3dShif tN [p] =pdu_shif t_norm [p] ; PatchNormalAxis [p] =pdu_norm_axis [p] ; Orientation [p] =pdu_orientation_swap_f lag [p] ; PatchLoD [p] =pdu_lod [p] .

[00106] Else, at 1240, if patch_mode is INTER, the arithmetic, dpdu_patch_index, may be decoded (1242) , the refldx may be equal to [refFrmldx] [dpdu_patch_index] (1244) , one or more of the illustrated arithmetic (e.g. d_uO (pdu_2d_shif t_u) ; d_ul (pdu_2d_shif t_v) ; d_size_uO (pdu_2d_delta_size_u) ; d_size_vO (pdu_2d_delta_size_v) ; d_ul (pdu_3d_shif t_tangent_axis ) ; d_vl (pdu_3d_shif t_bitangent_axis ) ; d_dl (pdu_3d_shif t_normal_axis ) ; d_dl (pdu_3d_shift_normal_axis) ) may be decoded (1246) , and the patch may be reconstructed (1270) according to one or more of the illustrated parameters (1248) (e.g.

Patch2dShif tU [p] =pdu_2d_shif t_u [p] ++Patch2dShif tU [refldx] ; Patch2dShif tV [p] =pdu_2d_shif t_v [p] ++Patch2dShif tV [refldx] ; Patch2dSixeU [p] =pdu_2d_delta_size_u [p] ++Patch2dSizeU [refldx] ; Patch2dSixeV [ p ] =pdu_2d_delta_size_v [ p ] ++Patch2dSizeV [ref Idx] ; Patch3dShif tT [p ] =pdu_3d_shif t_tan [p ] ++Patch3dShif tT [ref Idx] ; Patch3dShif tBT [p] =pdu_3d_shif t_bitan [p] ++Patch3dShif tBT [refid x] ;

Patch3dShif tN [p] =pdu_shif t_norm [p] ++Patch3dShiftN [ref Idx] ; PatchNormalAxis [p] =PatchnormalAxis [refidx] ;

Orientation [p] =Orientation [refidx] ; PatchLod [p] =PatchLod [refidx] ) .

[00107] Else, at 1250, if patch_mode is FCM, refidx may be equal to [frmldx] [p-1] (1252) , one or more of the illustrated arithmetic (e.g. separate_video_f lag (ppdu_patch...) ; uO (ppdu_2d_shif t_u) ; ul (ppdu_2d) shift_v) ; d_size_uO (ppdu_2d_delta_size_u) ; d_size_vO (ppdu_2d_delta_size_v) ; PCM points

(ppdu_pcm_points) ) may be decoded (1254) , and the patch may be reconstructed (1270) according to the illustrated parameters (1256) (e.g. Patch2dShif tU [p] =pdu_2d_shif t_u [p] ;

Patch2dShif tV [p] =pdu_2d_shif t_v [p] ; Patch2dSizeU [p] =pdu_2d_delta_size_u [p] ++Patch2dSizeU [refidx] ; Patch2dSizeV [p] =pdu_2d_delta_size_v [p] ++Patch2dSizeV [refidx] ; PatchPomPoints [p] =ppdu_pcm_points [p] ) .

[00108] Else, at 1260, if patch_mode is LAST, the reconstruction process for patch_f rame_data_unit may be finished, 1280.

[00109] The decoding of a bitstream, which may be according to FIG. 4 and/or FIG. 12, may take place at a decoder having a specific profile. Profiles, tiers, and levels may specify restrictions on the bitstreams, and hence limits on the capabilities needed to decode the bitstreams. Profiles, tiers, and levels may also be used to indicate interoperability points between individual decoder implementations . Each profile may specify a subset of algorithmic features and limits that may be supported by all decoders conforming to that profile .

[00110] Each level of a tier may specify a set of limits on the values that may be taken by syntax elements . The same set of tier and level definitions may be used with all profi les , but individual implementations may support different tier ( s ) and, within a given tier, different level ( s ) for each supported profile . For any given profile , a level of a tier may generally correspond to a particular decoder processing load and/or memory capability .

[00111] Table 2 gives an example of profile , tier, and level syntax :

Table 2 [00112] Table 3 gives an example of general V3C parameter set syntax, which may be part of V3C unit header syntax :

Table 3

[00113] Table 4 gives an example of a general frame parameter set raw byte sequence payload (RBSP) syntax :

Table 4 [00114 ] V3C bitstream profiles may be determined based on the maximum required profile , level , and tier limits indicated for the whole sequence , as discussed above . Table 5 gives examples of general V3C or VPS related level limits :

Max EOM patch rate MaxEOMPatchRate

Max # o Max

M Max L

Max # M

Max # Ma

Max # of M

Max # of MaxN

Max # of MaxN

<D W

Max # of 5-1 <D MaxN <D S cd 5-1 cd 024 024 048 048

Table 6

[00116] Table 7 gives examples of general video bitstream level limits :

Table 7 [00117 ] Based on an indicated level , the decoder may allocate the required resource ( s ) needed to decode the bitstream correctly . The decoder may also indicate the required resources to a playback/rendering unit to ensure correct playback . This resource allocation might only be performed at the beginning of the decoding process and might not be updated to match any changes in the received content . [00118] As noted above, volumetric video data may allow for a user to view a 3D scene or obj ect with 6DoF, meaning that a user may navigate around the 3D scene or obj ect and view it from any/all direction ( s ) . Because volumetric video data may require a large amount of data in order to make this navigation possible , the concepts of a viewing space and a viewport may be useful . A "viewing space" may be defined as the portion of the 3D space , possibly completed by viewing direction constraints , where the "viewport" can be rendered with sufficient quality during a VR/AR/MR experience . A "viewport" may be defined as a region of an omnidirectional /volumetric image or video suitable for display and viewing by the user, e . g . based on the viewing location/orientation of the user with reference to the 3D scene or obj ect . Regions outside the "viewport" may have a different or lower quality . The viewing space may be configured to give the end device (e . g . HMD) the opportunity to handle viewing space exceedance . In other words , the viewing space may be configured to be large enough that suf ficient /high -quality video may be rendered to the user even as the viewport moves within the viewing space . A viewing space inclusiveness factor may be computed where " 0" indicates fully inside and " 1" indicates fully outside . These values are non-limiting; other values or additional values may be used . The end device application may use this factor to take a viewers ' transience , from inside the viewing space to outside , into account . This information may be included in viewing space supplemental enhancement information ( SEI ) .

[00119] The construction of the viewing space may be based on a list of elementary shapes which may themselves be based on a list of primitive shapes . The primitive shapes may be built into elementary shapes through a CSG (Constructive Solid Geometry) operation or through an interpolation operation, and these elementary shapes may be combined via CSG addition, subtraction, or intersection as defined by elementary_shape_operation, for example in the strict order of the list of elementary shapes . This information may be included in a viewing space SEI .

[00120] When viewing space handling methods are present in a viewing space SEI payload, the target device may select a first matching handling method . Matching may be performed based on a device and application class of the target device . When none of the viewing space handl ing methods match with the target device , no viewing space handling is provided . In that case , the target device may choose an appropriate handl ing based on the viewing space information alone .

[00121] Parameters that may be included in a viewing space (handling) SEI payload will now be discussed .

[00122] vs_handling_options_count may specify a number of viewing space handling options . When vs_handling_options_count is zero , it may indicate that no viewing space handling method is provided . In that case , the target device may choose an appropriate handling method based on the viewing space information alone .

[00123] vs_handling_device_class [ h ] may specify the allowed values of vs_handling_device_class [ h ] , examples of which are specified in Table 8 below . In an example , in all cases , it may be assumed that the target device is capable ( to some degree ) of 6DoF viewer position tracking . In some cases , the user/viewer may move in respect to the display of the target device . A conformant bitstream might not have duplicate values for vs_handling_device_class [ h ] within the same viewing_space ( ) structure . When vs_handling_device_class [ h ] == VHDC_ALL, then h + 1 == vs_handling_options_count . Table 8 gives examples of viewing space handling device classes : Table 8

[00124] vs_handling_application_class [ h ] may specify allowed values of vs_handling_application_class [ h ] , examples of which are specified in Table 9 below . A conformant bitstream might not have duplicate values for vs_handling_application_class [ h ] within the same viewing_space ( ) structure . When vs_handling_application_class [ h ] == VHAC_ALL, then h + 1 == vs_handling_options_count . Table 9 gives examples of viewing space handling application classes : Table 9 [00125] vs_handling_method [ h ] may specify the allowed values of vs_handling_application_class [ h ] , examples of which are specified in Table 10 below . A conformant bitstream might not have duplicate values for vs_handling_application_class [ h ] within the same viewing_space ( ) structure . When vs_handling_application_class [ h ] == VHAC_ALL, then h + 1 == vs_handling_options_count . Table 10 gives examples of viewing space handling methods :

Table 10 [00126] Features as described herein may relate to radiative transfer . Radiative transfer is the transfer of energy as electromagnetic radiation . The propagation of radiation through a medium may be affected by absorption, emiss ion, and/or scattering process (es ) . Radiative transfer may be described mathematically . In an example , such as FIG . 5 , the illustrated 3D obj ect within the bounding boxes may be described with one or more radiative transfer functions . The visual effect of radiative transfer may be described as transparency, reflectiveness , refraction, etc . In the example of FIG . 3 , radiative transfer may be considered an attribute of an image (e . g . at 320 ) . Radiative transfer may also be described as a texture of a 3D obj ect or scene , or may be described with a texture map associated with a 3D obj ect or scene .

[00127 ] In proj ection-based 3D data compression, such as MPEG Visual Volumetric Video-based Coding (V3C) , 3D data is proj ected on 2D patches , video encoded, and reconstructed into 3D space at the decoder side . This may be similar to V-PCC, as illustrated in FIG . 3 at 305 , described above . The V3C standard currently only supports per-point radiative transfer signaling, such as opacity, reflection, and/or refraction coefficients , as additional attribute channels . In a 3D model use case , per-point radiative transfer signaling may be sufficient . However, with V3C metadata for immersive video (MIV) , such attributes may be associated to all points of a certain patch ( for example , all points of a patch representing a mirror or windowpane having radiative transfer visual properties ) . There currently exists no method to carry such information pertaining to all points of a patch efficiently, i . e . without a significant increase to required bit rate , decoder instances , buffer memory, and/or decoding pixel rate .

[00128] In an example embodiment , a set of new syntax elements to carry radiative transfer information on a per-patch level in V3C, to represent non-lambertian surface characteristics , may be introduced .

[00129] Example embodiments of the present disclosure may relate to immersive video scenarios where an immersive volumetric scene is represented by a Visual Volumetric Videobased Coding (V3C) bitstream or similar representation. While V3C bitstreams are discussed herein, this should not be considered as limiting the scope of example embodiments; it should be understood that example embodiments of the present disclosure may be applicable to other representations of volumetric video data, including but not limited to representations in which original 3D data is represented as video-coded 2D projections with accompanying metadata. In an example, a decoder may decode the 2D video stream (s) and recreate the 3D scenery by remapping the 2D video information into 3D space.

[00130] In an example, certain parts of 3D scenery (or a 3D model) may have non-lambertian characteristics, such as certain levels of opacity, reflection, refraction, etc. Such characteristics may be used on the rendering/displaying device to recreate a more immersive viewing experience.

[00131] Use cases for example embodiments of the present disclosure may include, but are not limited to: transparent objects, e.g. a windowpane, with respective levels of absorption opacity; reflective surfaces, e.g. a mirror, with respective level of reflectance; refractive materials, e.g. tinted glass, with respective levels of scattering opacity; diffuse reflection ("albedo") , e.g. skin reflection; bidirectional optical transfer function (BDTF) ; and/or a combination of the foregoing.

[00132] For the current level of content targeted in V3C MIV & V-PCC, absorption opacity and reflectance may be the two most important use cases. Therefore, in the present disclosure, these use cases are presented in more detail. However, the example embodiments may be extended to cover any other radiative transfer use case or form of radiative trans fer signaling .

[00133] In an example embodiment , a model or scenery may include distinct areas with some sort of non-Lambertian reflection, e . g . a windowpane or a mirror . In an example embodiment , information required for adequately rendering thi s distinct area may be carried in the Patch data unit of all patches representing the area . Table 11 gives an example of patch data unit syntax according to an example embodiment of the present disclosure :

Table 11

[00134 ] In the example of Table 11 , pdu_rts_enabled_f lag [ tilelD ] [ patchldx ] may indicate whether radiative transfer signaling parameters are present for a given patch, patchldx, of a ti le , ti le lD . A flag value of " 1" may speci fy that the radiative transfer signaling parameters are present for the current patch patchldx of the current atlas tile , with tile ID equal to tilelD . A flag value of " 0" may indicate that no radiative transfer signaling parameters are present for the current patch . These values are non-limiting; other values or additional values may be used . I f pdu_rts_enabled_f lag [ tilelD ] [ patchldx ] is not present in the patch data unit syntax, the value of the f lag may be inferred to be equal to 0 , i . e . no radiative transfer signaling parameters are present for the current patch . Where no radiative transfer signaling parameters are present for a patch, the patch may be rendered according to auxiliary information without radiative transfer rendering applied .

[00135] I f the flag indicates that radiative transfer signaling parameters are present , the radiative trans fer signaling parameters may include one or more of a transparency/opacity parameter, a reflectance parameter, and/or an absorption/scattering parameter .

[00136] In the example of Table 11 , pdu_rts_opc [ tilelD ] [ patchldx ] may specify a value for the opacity for the patch with index patchldx of the current atlas tile , with tile ID equal to tilelD . The value of pdu_rts_opc [ tilelD ] [ patchldx ] may be in a range of 0 to 255 , inclusive , where " 0" may indicate a fully transparent patch, and "255" may indicate a fully opaque patch . These values are non-limiting; other values or additional /fewer values may be used .

[00137 ] In the example of Table 11 , pdu_rts_ref [ tilelD ] [ patchlDx ] may specify a value for the reflectance for the patch with index patchldx of the current atlas tile , with tile ID equal to tilelD . The value of pdu_rts_ref [ tilelD ] [ patchldx ] may be in a range of 0 to 255 , inclusive , where " 0" may indicate a ful ly absorbing patch, and "255" may indicate a fully reflective patch . These values are non-limiting; other values or additional /fewer values may be used . The upper limit of the range may be defined by a maximum defined by the allocated bits for signall ing, for example 255 for 8 bits signalling .

[00138] In the example of Table 11 , pdu_rts_sca [ tilelD ] [ patchldx ] may specify a value for the scattering for the patch with index patchldx of the current atlas tile , with tile ID equal to tilelD . The value of pdu_rts_sca [ tilelD ] [ patchlDx ] may be in a range of 0 to 255 , inclusive , where " 0" may indicate a fully absorbing patch, and "255" may indicate a fully scattering patch . These values are non-limiting; other values or additional /fewer values may be used .

[00139] In an example embodiment , a decoder linked to a rendering/playback device may, upon receiving the radiative transfer information, decide on how to render the respective 3D reconstruction .

[00140] In an example embodiment , the decoder may receive opacity information for a patch ( i . e . pdu_rts_opc) . The decoder may inform the rendering unit to display the respective 3D reconstruction with the indicated level of opacity .

[00141] In an example embodiment , the decoder may receive reflectance information for a patch ( i . e . pdu_rts_ref ) . The decoder may inform the rendering unit to display the respective 3D reconstruction with the indicated level of surface reflectance .

[00142] In an example embodiment , the decoder may receive scattering information for a patch ( i . e . pdu_rts_sca) . The decoder may inform the rendering unit to display the respective 3D reconstruction with the indicated level of light scattering . [00143] It should be noted that the variable names used for opacity information, reflectance information, and scattering information are not intended to be limiting; other variable names may be used for example embodiments of the present disclosure .

[00144 ] A technical effect of example embodiments of the present disclosure may be to provide efficient radiative transfer signaling . Another technical effect of example embodiments of the present disclosure may be to enable a more realistic/immersive viewing experience .

[00145] FIG . 13 illustrates the potential steps of an example method 1300 . The example method 1300 may include : segmenting volumetric video data into one or more regions , 1310 ; determining at least one radiative transfer property of the one or more regions , 1320 ; indicating the at least one radiative transfer property of the one or more regions in a sub-stream, 1330 ; and including the sub-stream in a bitstream describing configured to describe the volumetric video data , 1340 .

[00146] FIG . 14 illustrates the potential steps of an example method 1400 . The example method 1400 may include : receiving a bitstream describing volumetric video data, 1410 ; extracting a sub-stream from the received bitstream, 1420 ; determining whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data, 1430 ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region, 1440 ; and rendering the region based on the determined value for the at least one radiative transfer property, 1450 .

[00147 ] Features as described herein may generally relate to allocation of decoder resources . In proj ection-based 3D data compression, such as MPEG Visual Volumetric Video-based Coding (V3C) , 3D data is proj ected on 2D patches , video encoded, and reconstructed into 3D space at the decoder side . Decoder requirements to ensure accurate decoding and rendering of such data may be carried at the sequence level in the form of profile , tier, and level indicators . This approach to indicating decoder requirements may be sufficient for 2D video and for model-based volumetric video , as the chance of the decoded data becoming suddenly significantly more or les s complex is low . Accordingly, for 2D video and for model-based volumetric video , profile , tier, and level indicators might not need to be refreshed regularly .

[00148] However, in scenery-based immersive video (MIV) , it is more likely that decoded data will suddenly become significantly more or less complex (e . g . the complexity may change by at least a threshold amount ) . Accordingly, it may be sub-optimal to limit indication of profile , tier, and level information at the sequence level . With a finer granulation, a decoder may be able to free available resources if not needed, or prepare necessary resources for upcoming heavier decoding/rendering tasks . In an example embodiment , adding a "pre-emptive" nature to this signaling (e . g . "in 50 frames the rendering complexity will increase two-fold" ) may ensure that a decoder has time to free up the required resources to ensure smooth and real-time decoding & playback of heterogenous immersive video content (i.e. content with varying levels of rendering or decoding complexity) .

[00149] In an example embodiment, a set of new syntax elements may be configured to allow decoders and their linked rendering units to allocate computing resources accurately for upcoming increases or decreases of computational load when decoding/rendering a V3C bitstream may be introduced.

[00150] Example embodiments of the present disclosure may relate to immersive video scenarios in which an immersive volumetric scene is represented by a Visual Volumetric Videobased Coding (V3C) bitstream or similar representation. For example, the original 3D data may be represented as videocoded 2D projections with accompanying metadata. A decoder may decode the 2D video stream (s) and recreate the 3D scenery by remapping the 2D video information into 3D space. Certain time instances of the 3D scenery (or model) may have a higher (or lower) complexity than other time instances associated with the scene, and therefore higher (or lower) computational requirements for decoding and playback. Examples of such variations in complexity may include, but are not limited to: objects or people entering the scene (higher complexity) ; objects or people leaving the scene (lower complexity) ; visual effects, e.g. explosions, fireworks ( increasing/decreasing 3D detail) ; 3D deformations (increasing/decreasing 3D detail) ; texture changes (increasing/decreasing texture detail) ; or a combination of the above.

[00151] Performing resource allocation only at the beginning of the decoding process might not be optimal; more frequent resource allocation may ensure that required resources are available when needed and can be distributed to other processes when not needed . In an example embodiment , profile , level , and tier exemption signaling in the V3C bitstream, rather than at the sequence level , may be introduced .

[00152] In an example embodiment , an encoder may be given/receive/determine certain bitstream constraints such as profile , toolset , level , and tier, e . g . indicated by syntax elements ptl_prof ile_toolset_idc, ptl_prof ile_reconstruction_idc, ptl_level_idc or ptl_tier_idc for V3C bitstreams ( see Table 2 ) . In an example embodiment , the encoder may gain/receive information on periods of unusually high or unusually low complexity for the content that is to be encoded . For example , unusually high complexity may be complexity above a prof ile restriction indicated by pty_level_idc or ptl tier_idc, while unusually low complexity may be complexity below a prof ile restriction indicated by pty_level_idc or ptl tier_idc . Such information may be manually input by a user or derived from automatic content analysis in a pre-encoding step . The encoder may then signal these exemptions /changes in complexity as part of the atlas frame parameter set . Table 12 gives an example of the general atlas frame parameter set raw byte sequence payload (RBS P) syntax including such exemptions :

Table 12 [00153] In the example of Table 12 , the atlas frame parameter set RBSP syntax includes an afps_level_exemption_f lag . An afps_level_exemption_f lag value equal to " 1" may specify that the syntax element afps_level_change is present in the atlas_f rame_parameter_set_rbsp syntax structure . The syntax element afps_level_change may indicate a new value to be used for ptl_level_idc for the current atlas frame . An afps_level_exemption_f lag value equal to " 0" may specify that the syntax element afps_level_change is not present in the syntax structure . These values are non-limiting; other values or additional values may be used .

[00154 ] A technical effect of example embodiments of the present disclosure may be to allow for frame-accurate changes in resource allocation . However, typically resource allocation cannot be done instantaneously . In an example embodiment , the encoder may signal exemptions and the necessary/associated lead times as part of the atlas frame parameter set . Table 13 gives an example of the general atlas frame parameter set RBSP syntax including exemptions as well as lead times :

Table 13 [00155] In the example of Table 13 , syntax elements afps_level_change_lead and afps_level_change_duration are included . The value of afps_level_change_lead may indicate the lead time (e . g . in frames ) until the level change indicated by afps_level_change occurs . The value of afps_level_change_duration may indicate how long (e . g . in frames ) the level change indicated by afps_level_change may last .

[00156] It should be noted that it is possible to j ust indicate the lead time (e . g . afps_level_change_lead) or j ust the duration (e . g . afps_level_change_duration) . However, indicating both values may be efficient /useful .

[00157] It should also be noted that other profile or tier restrictions may be updated in a similar manner . In other words , syntax elements may be included that specifically relate to profile or tier, rather than level , as in the examples of Tables 9 and 10 . However, some updates may require new decoder instances to be initiali zed . Including syntax elements that relate to level may be more efficient and practicable .

[00158] In an example embodiment , a decoder linked to a rendering/playback device may, upon receiving, for example , radiative transfer information, decide how to allocate computational resources accordingly . For example , the received radiative transfer signaling may indicate that one or more patches should be rendered with radiative transfer properties , and such rendering may require reallocation of computational resources . Based on received profile , level , or tier change information, computational resources may be allocated to flexibly enable rendering of the one or more patches according to the radiative transfer properties . [00159] In an example, the decoder may receive, at a certain time, a bitstream at level 2.0 as indicated by ptl_level_idc in the V3C parameter set syntax. With the current decoded frame, the decoder may receive afps_level_change information indicating level 3.0 in 100 frames' time for the following 50 frames. The decoder may use the 100 frames lead time to increase memory buffers, increase computational performance (e.g. boost clock speed) , and inform the linked rendering unit to prepare additional resources, e.g. reallocate resources from lower priority processes. After 150 frames in total the resource level may be dropped to normal again. Alternatively, if there are no further computing resources available or no computing resources that can be reallocated according to the received signaling indicating a change in complexity, the decoder may ignore such signaling.

[00160] In another example, the decoder may receive, at a certain time, a bitstream at level 2.0 as indicated by ptl_level_idc in the V3C parameter set syntax. With the current decoded frame, the decoder may receive afps_level_change information indicating level 1.0 in 50 frames' time for the following 200 frames. The decoder may use the 50 frames lead time to reduce memory buffers, reduce computational performance (e.g. reduce clock speed to save power) , and inform the linked rendering unit to reduce computational load, e.g. power saving, or reallocate resources, e.g. allocate resources to other processes. After 250 frames in total, the resource level may be raised to normal again. Alternatively, the decoder may ignore signaling indicating a change in complexity. For example, the decoder: may not be able to reallocate resources quickly enough to make reallocation of resources worthwhile, may consider the duration of low complexity too short to make reallocation of resources worthwhile , may anticipate an increase in complexity soon after the upcoming decrease in complexity, etc .

[00161] A technical effect of example embodiments of the present disclosure may be to enable flexible and content- adaptive resource allocation for V3C decoding and playback . A technical effect of example embodiments of the present disclosure may be to enable resource-efficient decoding and playback of V3C content , e . g . reduced power consumption on V3C decoding & playback devices .

[00162] FIG . 15 illustrates the potential steps of an example method 1500 . The example method 1500 may include : determining that volumetric video data comprises at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount , 1510 ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period, 1520 .

[00163] FIG . 16 illustrates the potential steps of an example method 1600 . The example method 1600 may include : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data, 1610 ; and reallocating at least one computational resource based on the received indication, 1620 .

[00164 ] Features as described herein may relate to signaling of viewing space handling so as to clarify GPU and CPU capabilities of a device . The device may be capable of decoding, rendering, displaying, and/or playing volumetric video content . One way to compress a time-varying volumetric scene/obj ect is to proj ect 3D surfaces on to some number of pre-defined 2D planes . Regular 2D video compression algorithms may then be used to compress various aspects of the proj ected surfaces . When viewing space handl ing methods are present with the compressed 2D video , such as those included in Tables 8 - 10 above , the target device may select the first matching handling method . "Matching" may be performed based on a device class and an application class .

[00165] Features as described herein may relate to scenarios where viewing space handling methods are present in (viewing space ) SEI . These viewing space handling methods may be methods such as those included in Tables 8 - 10 above . In example embodiments of the present disclosure , a new set of parameters may be introduced, including the respective semantics to be added as a viewing space creation SEI payload . These parameters may specify CPU and GPU classes for playback devices enabling matching of viewing space creation/handling to the rendering/displaying device capabilities .

[00166] Features as described herein may relate to immersive video scenarios where an immersive volumetric scene is represented by a Visual Volumetric Video-based Coding (V3C) bitstream or other immersive/volumetric representation . For example , original 3D data may be represented as video-coded 2D proj ections with accompanying metadata . A decoder may decode the 2D video stream ( s ) and recreate the 3D scenery by remapping the 2D video information into 3D space . Recreating and/or displaying this 3D data may put a heavy computational load on the playback device . [00167] Features as described herein may relate to scenarios in which the 2D video stream ( s ) decoded by the decoder also include viewing space supplemental enhancement information ( SEI ) . Such viewing space SEI , and its accompanying viewing space handling SEI information, may indicate the portion of the 3D space , possibly completed by viewing direction constraints , where the viewport may be rendered with high quality .

[00168] Example embodiments of the present disclosure may provide signaling that clarifies the capabilities of the ( target ) device from graphical processing unit (GPU) and central processing unit (CPU) points of view . In other words , the signaling may allow matching between the available GPU/CPU capabilities of the device and a viewing space creation method .

[00169] In an example embodiment , a set of parameters may be introduced to ensure matching of the reconstructed viewing space to the available hardware resources of the playback device . These parameters may be carried as a viewing space creation SEI . Table 14 provides an example of syntax for a viewing space creation SEI payload :

Table 14 [00170] It should be noted that the syntax provided by Table 14 is a non-limiting example . The exact number of syntax elements may be different , as may their names and descriptors . For example , several syntax elements for the GPU capabilities may be used . Additionally or alternatively, the viewing space creation SEI may contain only two or one of the above syntax elements .

[00171] The value of vs_creation_device_class [ h ] may specify a value as specified in Table 15 below . It may be assumed that the ( target ) device is capable ( to some degree ) of immersive video rendering . A conformant bitstream may not have duplicate values for vs_creation_device_class [ h ] within the same viewing_space ( ) structure . When vs_creation_device_class [ h ] == VCDC_ALL, then h + 1 == vs_creation_options_count . Table 15 provides possible viewing space creation device classes (VCDC) :

[00172] The value of vs_creation_GPU_class [ h ] may specify a value as specified in Table 16 below . It may be assumed that the ( target ) device is capable ( to some degree ) of immersive video rendering . A conformant bitstream may not have duplicate values for vs_creation_GPU_class [ h ] within the same viewing_space ( ) structure . When vs_creation_GPU_class [ h ] == VCGC_ALL, then h + 1 == vs_creation_options_count . Table 16 provides potential viewing space creation GPU classes (VCGC) :

Table 16

[00173] In an example embodiment , various tiers may be based on typical GPU capabilities , such as , but not limited to : Vulkan support; OpenGL ES support; OpenGL support; Direct3D support; floating point operations per second (FLOPS) ; Triangle fillrate (Triangles/s) ; Pixel fillrate (Pixel/s) ; Texture Fillrate (Texel/s) ; Memory bandwidth (GB/s) ; Graphics memory (GB) ; ALUs (cores) ; or any combination of the criteria above .

[00174] In an example embodiment, the VCGC tiers may comprise stand-alone definitions, i.e. no information from other sources is used. For example, a tier may include all GPUs capable of at least the specifications listed in Table 17. Table 17 provides potential viewing space creation GPU class tier requirements:

Table 17

[00175] It should be noted that Table 17 includes GPU class tiers 1-5, which may correspond to values 1-5 of Table 16.

[00176] In an example embodiment, the VCGC tiers, such as those listed in Table 17 above, may be linked with other information, such as, but not limited to, vs_creation_device_class , such as those listed in Table 15 above. Such linking may take into account that different device classes may have different GPU capabilities. For example, the GPU on a modern workstation may be several times more powerful than that in a modern smartphone or tablet . The respective GPU requirements may be derived from a tier matrix . Table 18 provides an example viewing space creation GPU class tier matrix :

Table 18

[00177 ] As an example , a target device may be a stationary workstation device . Such a device may have a VCDC of VCDC_WS , which has a value of 1 , see Table 15 . More specifically, the GPU of the device may be capable of a pixel fillrate of 40 GP/S , a texture fillrate of 100 GT/S , and have 4GB of memory, such that the tier of the device is 2 , see Table 17 . According to Table 18 , this device may have a GPU class tier of WS2 . I f the viewing space creation SEI indicates a different GPU class tier, for example WS3 , the viewing space creation GPU class tier may be considered incompatible with the capabilities of the target device . Alternatively, the viewing space creation SEI may indicate a GPU class tier that requires lower capabilities than the capabilities of the target device ; such viewing space creation information may also be considered incompatible with the capabilities of the target device , but the target device may still be able to perform viewing space creation according to parameters indicated in the SEI .

[00178] Referring to the example syntax provided by Table 14 , the value of vs_creation_CPU_class [ h ] may specify a value allowed for vs_creation_CPU_class [ h ] as specified in Table 19. It may be assumed that the (target) device is capable (to some degree) of immersive video rendering. A conformant bitstream may not have duplicate values for vs_creation_CPU_class [ h ] within the same viewing_space ( ) structure. When vs_creation_CPU_class [ h ] == VCCC_ALL, then h + 1 == vs_creation_options_count . Table 19 provides example viewing space creation CPU classes (VCCC) :

Table 19

[00179] In an example embodiment, the various tiers may be based on typical CPU capabilities, such as, but not limited to: base speed; boost speed; number of cores; number of threads; memory cache; thermal design power (TDP) ; brand; or any combination of the criteria above.

[00180] In an example embodiment, the VCCC tiers may comprise stand-alone definitions, i.e. no information from other sources is used . For example , a tier may include all CPUs capable of at least the specifications listed in Table 20 . Table 20 provides an example of viewing space creation CPU class tier requirements :

Table 20

[00181] It should be noted that Table 20 includes CPU class tiers 1 -5 , which may correspond to values 1 -5 of Table 19 .

[00182] In an example embodiment , the VCCC tiers may be linked with other information, such as , but not limited to , vs_creation_device_class . This linking of VCCC tiers to device classes may take into account that different device classes may have different CPU capabilities . For example , the CPU on a modern workstation may be several times more powerful than that in a modern smartphone or tablet . The respective CPU requirements may be derived from a tier matrix . Table 21 provides a viewing space creation CPU class tier matrix :

Table 21

[00183] As an example , a device may be a stationary workstation device . Such a device may have a VCDC of VCDC_WS , which has a value of 1 , see Table 15 . The CPU of the device may have a Tier 2 CPU, and so have a VCCC of VCCC_TIER2 with a value of 2 , see Table 19 . According to the CPU class tier matrix of Table 21 , this device may have a CPU class tier of WS2 . I f the viewing space creation SEI indicates a different CPU class tier, for example WS3 , the viewing space creation CPU class tier may be considered incompatible with the capabilities of the target device . Alternatively, the viewing space creation SEI may indicate a CPU class tier that requires lower capabilities than the capabil ities of the target device ; such viewing space creation information may also be considered incompatible with the capabilities of the target device , but the target device may still be able to perform viewing space creation according to parameters indicated in the SEI .

[00184 ] It should be noted that similar syntax elements and semantics may be introduced for other parameters to signal any other requirements for viewing space creation .

[00185] In an example embodiment , a decoder linked to a rendering/playback device may, upon receiving the viewing space creation SEI , decide how to handle the viewing space creation .

[00186] In an example embodiment , the decoder may identify viewing space creation SEI indicating a different device clas s ( vs_creation_device_class ) than its linked playback device , which may be considered incompatible with the target device ( i . e . linked playback device ) . In this case , the decoder may adapt parts of the viewing space handling SEI payload to match its linked playback device . For example , the decoder may change vs_handling_method [ h ] to an appropriate method for the linked playback device , see Table 10 . [00187] In an example embodiment, the decoder may identify viewing space creation SEI indicating a higher GPU class ( vs_creation_GPU_class ) than its linked rendering device, which may be considered incompatible with the target device (i.e. linked playback device) . In this case, the decoder may adapt parts of the viewing space handling SEI payload to match the GPU capabilities of its linked playback device. For example, the decoder may adapt vs_handling_method [ h ] to a less GPU- heavy method (e.g. using VHM_STRETCH, VHM_ROTATE, VHM_RESET, etc.) , see Table 10.

[00188] In an example embodiment, the decoder may identify viewing space creation SEI indicating a higher CPU class ( vs_creation_CPU_class ) than its linked rendering device, which may be considered incompatible with the target device (i.e. linked playback device) . In this case, the decoder may adapt parts of the viewing space handling SEI payload to match the CPU capabilities of its linked playback device. For example, the decoder may adapt vs_handling_method [ h ] to a less CPU- heavy method (e.g. using VHM_FADE, etc.) , see Table 10.

[00189] In an example embodiment, the decoder may identify viewing space creation SEI indicating a lower GPU class ( vs_creation_GPU_class ) than its linked rendering device, which may be considered incompatible with the target device (i.e. linked playback device) . In this case, the decoder may adapt parts of the viewing space handling SEI payload to match the GPU capabilities of its linked playback device. For example, the decoder may adapt vs_handling_method [ h ] to a more GPU- heavy method (e.g. using VHM_RENDER, VHM_EXTRAP, etc.) , see Table 10. [00190] In an example embodiment , the decoder may identify viewing space creation SEI indicating a lower CPU class ( vs_creation_CPU_class ) than its linked rendering device , which may be considered incompatible with the target device ( i . e . linked playback device ) . In this case , the decoder may adapt parts of the viewing space handling SEI payload to match the CPU capabilities of its linked playback device . For example , the decoder may adapt vs_handling_method [ h ] to a more CPU- heavy method (e . g . using VHM_STRETCH, VHM_ROTATE , VHM_RESET , etc . ) , see Table 10 .

[00191] A technical effect of example embodiments of the present disclosure may be to enable matching of viewing space creation to the rendering/di splaying device capabilities . A technical effect of example embodiments of the present disclosure may be to enable matching of viewing space handling to the displaying device capabilities .

[00192] FIG . 17 illustrates the potential steps of an example method 1700 . The example method 1700 may include : receiving viewing space creation information related to volumetric video data, 1710 ; receiving a viewing space handling method related to the volumetric video data, 1720 ; determining that at least one parameter of the viewing space creation information is incompatible with at least one parameter of a rendering device , 1730 ; altering the viewing space handling method based on the determining that the at least one parameter of the viewing space creation information is incompatible , 1740 ; recreating the volumetric video data based, at least partially, on the altered viewing space handling method, 1750 ; and transmitting the recreated volumetric video data to the rendering device , 1760 . The example method 1700 may be performed, for example , with a decoder, which may or may not be coupled to a rendering device .

[00193] FIG . 18 illustrates the potential steps of an example method 1800 . The example method 1800 may include : transmitting viewing space handling supplemental enhancement information related to volumetric video data, 1810 ; and transmitting viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information comprises at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data, 1820 . The example method may be performed, for example , with an encoding device .

[00194 ] In accordance with one aspect , an example method may be provided comprising : segmenting volumetric video data into one or more regions ; determining at least one radiative transfer property of the one or more regions ; indicating the at least one radiative transfer property of the one or more regions in a sub-stream; and including the sub-stream in a bitstream configured to describe the volumetric video data .

[00195] The example method may further comprise : determining whether to include an indication of the at least one radiative transfer property of the one or more regions based, at least partially, on the determined at least one radiative transfer property of the one or more regions , wherein the indicating of the at least one radiative transfer property of the one or more regions in the sub-stream may be based on a determination to include the indication of the at least one radiative transfer property of the one or more regions .

[00196] The example method may further comprise : including a flag in the sub-stream indicating whether the at least one radiative transfer property of the one or more regions may be indicated in the sub-stream .

[00197] The at least one radiative transfer property of the one or more regions may comprise at least one of : opacity information of the one or more regions ; reflectance information of the one or more regions ; or scattering information of the one or more regions .

[00198] The example method may further comprise : indicating an identifier of the one or more regions in the sub-stream; and indicating an identifier of an atlas tile of the one or more regions in the sub-stream .

[00199] The indicating of the at least one radiative transfer property of the one or more regions in the sub-stream may comprise indicating a value of the at least one radiative transfer property, wherein the value is in a range of zero to a maximum defined by the allocated bits for signalling .

[00200] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream .

[00201] The including of the sub-stream in the bitstream describing the volumetric video data may comprise multiplexing the sub-stream with at least one other sub-stream associated with the volumetric video data .

[00202] In accordance with one example embodiment , an apparatus may comprise : at least one processor ; and at least one memory including computer program code ; the at least one memory and the computer program code configured to , with the at least one processor, cause the apparatus to : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data .

[00203] The example apparatus may be further configured to : determine whether to include an indication of the at least one radiative transfer property of the one or more regions based, at least partially, on the determined at least one radiative transfer property of the one or more regions , wherein indicating the at least one radiative transfer property of the one or more regions in the sub-stream may be based on a determination to include the indication of the at least one radiative transfer property of the one or more regions .

[00204 ] The example apparatus may be further configured to : include a flag in the sub-stream indicating whether the at least one radiative transfer property of the one or more regions may be indicated in the sub-stream .

[00205] The at least one radiative transfer property of the one or more regions may comprise at least one of : opacity information of the one or more regions ; reflectance information of the one or more regions ; or scattering information of the region .

[00206] The example apparatus may be further configured to : indicate an identifier of the one or more regions in the sub- stream; and indicate an identi fier of an atlas tile of the one or more regions in the sub-stream .

[00207 ] Indicating the at least one radiative transfer property of the one or more regions in the sub-stream may comprise indicating a value of the at least one radiative transfer property, wherein the value is in a range of zero to a maximum defined by the allocated bits for signalling .

[00208] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream .

[00209] Including the sub-stream in the bitstream describing the volumetric video data may comprise multiplexing the substream with at least one other sub-stream associated with the volumetric video data .

[00210] In accordance with one example embodiment , an apparatus may comprise : processing circuitry; memory circuitry including computer program code , the memory circuitry and the computer program code configured to , with the processing circuitry, enable the apparatus to : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data .

[00211] In accordance with one example embodiment , an apparatus may comprise : circuitry configured to perform : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data.

[00212] As used in this application, the term "circuitry" may refer to one or more or all of the following: (a) hardware- only circuit implementations (such as implementations in only analog and/or digital circuitry) and (b) combinations of hardware circuits and software, such as (as applicable) : (i) a combination of analog and/or digital hardware circuit (s) with sof tware/f irmware and (ii) any portions of hardware processor (s) with software (including digital signal processor ( s ) ) , software, and memory (ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions) and (c) hardware circuit (s) and or processor ( s ) , such as a microprocessor ( s ) or a portion of a microprocessor ( s ) , that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation." This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.

[00213] The example apparatus may be further configured to: determine whether to include an indication of the at least one radiative transfer property of the one or more regions based, at least partially, on the determined at least one radiative transfer property of the one or more regions , wherein indicating the at least one radiative transfer property of the one or more regions in the sub-stream may be based on a determination to include the indication of the at least one radiative transfer property of the one or more regions .

[00214 ] The example apparatus may be further configured to : include a flag in the sub-stream indicating whether the at least one radiative transfer property of the one or more regions may be indicated in the sub-stream .

[00215] The at least one radiative transfer property of the one or more regions may comprise at least one of : opacity information of the one or more regions ; reflectance information of the one or more regions ; or scattering information of the one or more regions .

[00216] The example apparatus may be further configured to : indicate an identifier of the one or more regions in the substream; and indicate an identi fier of an atlas tile of the one or more regions in the sub-stream .

[00217 ] Indicating the at least one radiative transfer property of the one or more regions in the sub-stream may comprise indicating a value of the at least one radiative transfer property, wherein the value is in a range of zero to a maximum defined by the allocated bits for signalling .

[00218] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream . [00219] Including the sub-stream in the bitstream describing the volumetric video data may comprise multiplexing the substream with at least one other sub-stream associated with the volumetric video data .

[00220] In accordance with one example embodiment , an apparatus may comprise means for performing : segmenting volumetric video data into one or more regions ; determining at least one radiative transfer property of the one or more regions ; indicating the at least one radiative transfer property of the one or more regions in a sub-stream; and including the sub-stream in a bitstream configured to describe the volumetric video data .

[00221] The means may be further configured to perform : determining whether to include an indication of the at least one radiative transfer property of the one or more regions based, at least partially, on the determined at least one radiative transfer property of the one or more regions , wherein the indicating of the at least one radiative transfer property of the one or more regions in the sub-stream may be based on a determination to include the indication of the at least one radiative transfer property of the one or more regions .

[00222] The means may be further configured to perform : including a flag in the sub-stream indicating whether the at least one radiative transfer property of the one or more regions is indicated in the sub-stream .

[00223] The at least one radiative transfer property of the one or more regions may comprise at least one of : opacity information of the one or more regions ; reflectance information of the one or more regions ; or scattering information of the one or more regions .

[00224 ] The means may be further configured to perform : indicating an identifier of the one or more regions in the sub-stream; and indicating an identi fier of an atlas tile of the one or more regions in the sub-stream .

[00225] The means configured to perform indicating of the at least one radiative transfer property of the one or more regions in the sub-stream may comprise means configured to perform indicating a value of the at least one radiative transfer property, wherein the value may be in a range of zero to a maximum defined by the allocated bits for signalling .

[00226] The sub-stream may comprises one of : an attribute substream, or a patch sub-stream .

[00227 ] The means configured to perform including of the substream in the bitstream describing the volumetric video data may comprise means configured to perform multiplexing the substream with at least one other sub-stream associated with the volumetric video data .

[00228] In accordance with one example embodiment , a non- transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : segment volumetric video data into one or more regions ; determine at least one radiative transfer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data . [00229] In accordance with another example embodiment , a non- transitory program storage device readable by a machine may be provided, tangibly embodying a program of instructions executable by the machine for performing operations , the operations comprising : segment volumetric video data into one or more regions ; determine at least one radiative trans fer property of the one or more regions ; indicate the at least one radiative transfer property of the one or more regions in a sub-stream; and include the sub-stream in a bitstream configured to describe the volumetric video data .

[00230] In accordance with one aspect , an example method may be provided comprising : receiving a bitstream describing volumetric video data ; extracting a sub-stream from the received bitstream; determining whether the extracted substream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream may comprise the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region ; and rendering the region based on the determined value for the at least one radiative transfer property .

[00231] The determining of whether the extracted sub-stream comprises the at least one radiative transfer property for the region of the volumetric video data may comprise detecting a flag in the extracted sub-stream, wherein the flag may be configured to indicate that the at least one radiative transfer property may be included in the extracted sub-stream .

[00232] The at least one radiative transfer property of the region may comprise at least one of : opacity information of the region ; reflectance information of the region ; or scattering information of the region .

[00233] The example method may further comprise : determining an identifier of the region ; and determining an identifier of an atlas tile associated with the region, wherein the rendering of the region may be based, at least partially, on the identifier of the region and the identifier of the atlas tile .

[00234 ] The value for the at least one radiative trans fer property for the region may comprise a value in a range of zero to a maximum defined by the allocated bits for signalling .

[00235] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream .

[00236] The extracting of the sub-stream from the received bitstream may comprise demultiplexing the bitstream .

[00237 ] The rendering of the region based on the determined value for the at least one radiative transfer property may comprise rendering a plurality of points associated with the region based on the determined value for the at least one radiative transfer property .

[00238] In accordance with one example embodiment , an apparatus may comprise : at least one processor ; and at least one memory including computer program code ; the at least one memory and the computer program code configured to , with the at least one proces sor, cause the apparatus to : receive a bitstream describing volumetric video data ; extract a substream from the received bitstream; determine whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream may comprise the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

[00239] Determining whether the extracted sub-stream comprises the at least one radiative transfer property for the region of the volumetric video data may comprise detecting a flag in the extracted sub-stream, wherein the flag may be configured to indicate that the at least one radiative transfer property is included in the extracted sub-stream .

[00240] The at least one radiative transfer property of the region may comprise at least one of : opacity information of the region ; reflectance information of the region ; or scattering information of the region .

[00241] The example apparatus may be further configured to : determine an identifier of the region ; and determine an identifier of an atlas tile associated with the region, wherein rendering the region may be based, at least partially, on the identifier of the region and the identifier of the atlas tile .

[00242] The value for the at least one radiative trans fer property for the region may comprise a value in a range of zero to a maximum defined by the allocated bits for signalling .

[00243] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream .

[00244 ] Extracting the sub-stream from the received bitstream may comprise demultiplexing the bitstream . [00245] Rendering the region based on the determined value for the at least one radiative transfer property may comprise rendering a plurality of points associated with the region based on the determined value for the at least one radiative transfer property .

[00246] In accordance with one example embodiment , an apparatus may comprise : processing circuitry; memory circuitry including computer program code , the memory circuitry and the computer program code configured to , with the processing circuitry, enable the apparatus to : receive a bitstream describing volumetric video data ; extract a sub-stream from the received bitstream; determine whether the extracted substream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream may comprise the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

[00247 ] In accordance with one example embodiment , an apparatus may comprise : circuitry configured to perform : receive a bitstream describing volumetric video data ; extract a sub-stream from the received bitstream; determine whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream may comprise the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative trans fer property .

[00248] Determining whether the extracted sub-stream comprises the at least one radiative transfer property for the region of the volumetric video data may comprise detecting a flag in the extracted sub-stream, wherein the flag may be configured to indicate that the at least one radiative transfer property is included in the extracted sub-stream .

[00249] The at least one radiative transfer property of the region may comprise at least one of : opacity information of the region ; reflectance information of the region ; or scattering information of the region .

[00250] The example apparatus may be further configured to : determine an identifier of the region ; and determine an identifier of an atlas tile associated with the region, wherein rendering the region may be based, at least partially, on the identifier of the region and the identifier of the atlas tile .

[00251] The value for the at least one radiative trans fer property for the region may comprise a value in a range of zero to a maximum defined by the allocated bits for signalling .

[00252] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream .

[00253] Extracting the sub-stream from the received bitstream may comprise demultiplexing the bitstream .

[00254] Rendering the region based on the determined value for the at least one radiative transfer property may comprise rendering a plurality of points associated with the region based on the determined value for the at least one radiative transfer property .

[00255] In accordance with one example embodiment , an apparatus may comprise means for performing : receiving a bitstream describing volumetric video data ; extracting a substream from the received bitstream; determining whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream may comprise the at least one radiative transfer property for the region, determining a value for the at least one radiative transfer property for the region ; and rendering the region based on the determined value for the at least one radiative transfer property .

[00256] The means configured to perform determining of whether the extracted sub-stream comprises the at least one radiative transfer property for the region of the volumetric video data may comprise means configured to perform detecting a flag in the extracted sub-stream, wherein the flag may be configured to indicate that the at least one radiative transfer property is included in the extracted sub-stream .

[00257 ] The at least one radiative transfer property of the region may comprise at least one of : opacity information of the region ; reflectance information of the region ; or scattering information of the region .

[00258] The means may be further configured to perform : determining an identifier of the region ; and determining an identifier of an atlas tile associated with the region, wherein the rendering of the region may be based, at least partially, on the identifier of the region and the identifier of the atlas tile .

[00259] The value for the at least one radiative trans fer property for the region may comprise a value in a range of zero to a maximum defined by the allocated bits for signalling .

[00260] The sub-stream may comprise one of : an attribute substream, or a patch sub-stream .

[00261] The means configured to perform extracting of the substream from the received bitstream may comprise means configured to perform demultiplexing the bitstream .

[00262] The means configured to perform rendering of the region based on the determined value for the at least one radiative transfer property may comprise means configured to perform rendering a plurality of points associated with the region based on the determined value for the at least one radiative transfer property .

[00263] In accordance with one example embodiment , a non- transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive a bitstream describing volumetric video data ; extract a substream from the received bitstream; determine whether the extracted sub-stream comprises at least one radiative transfer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property . [00264 ] In accordance with another example embodiment , a non- transitory program storage device readable by a machine may be provided, tangibly embodying a program of instructions executable by the machine for performing operations , the operations comprising : receive a bitstream describing volumetric video data ; extract a sub-stream from the received bitstream; determine whether the extracted sub-stream comprises at least one radiative trans fer property for a region of the volumetric video data ; based on a determination that the extracted sub-stream comprises the at least one radiative transfer property for the region, determine a value for the at least one radiative transfer property for the region ; and render the region based on the determined value for the at least one radiative transfer property .

[00265] In accordance with one aspect , an example method may be provided comprising : determining that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[00266] The computational requirement for rendering or decoding may be signaled in or along a the bitstream as at least one of : a profile indicator, or a level indicator .

[00267 ] The determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise determining that the volumetric video data may comprise at least one of : a first obj ect entering a scene ; a second obj ect leaving the scene ; a visual effect ; a three-dimensional deformation ; a texture change ; or a combination of two or more of : the f irst obj ect , the second obj ect , the visual effect , the three dimensional deformation, or the texture change .

[00268] The determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise : receiving a manual input indicating that the computational requirement for rendering or decoding changes during the at least one time period .

[00269] The determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise : performing content analysis of the volumetric video data during encoding or as a pre-encoding step .

[00270] The indication of the change in the computational requirement for rendering or decoding may comprise a flag, wherein the flag may be configured to indicate that at least one syntax element related to the change in the computational requirement for rendering or decoding is included in the bitstream .

[00271] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder . [00272] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a lead time for the change in the computational requirement for rendering or decoding .

[00273] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a duration for the change in the computational requirement for rendering or decoding .

[00274 ] In accordance with one example embodiment , an apparatus may comprise : at least one processor ; and at least one memory including computer program code ; the at least one memory and the computer program code configured to , with the at least one processor, cause the apparatus to : determine that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[00275] The computational requirement for rendering or decoding may be signaled in or along a the bitstream as at least one of : a profile indicator, or a level indicator .

[00276] Determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise determining that the volumetric video data may comprise at least one of : a first obj ect entering a scene ; a second obj ect leaving the scene ; a visual effect ; a three-dimensional deformation ; a texture change ; or a combination of two or more of : the first obj ect , the second obj ect , the visual effect , the three dimensional deformation, or the texture change .

[00277 ] Determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise : receiving a manual input indicating that the computational requirement for rendering or decoding changes during the at least one time period .

[00278] Determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise : performing content analysis of the volumetric video data during encoding or as a pre-encoding step .

[00279] The indication of the change in the computational requirement for rendering or decoding may comprise a flag, wherein the flag may be configured to indicate that at least one syntax element related to the change in the computational requirement for rendering or decoding may be included in the bitstream .

[00280] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

[00281] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a lead time for the change in the computational requirement for rendering or decoding .

[00282] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a duration for the change in the computational requirement for rendering or decoding .

[00283] In accordance with one example embodiment , an apparatus may comprise : processing circuitry; memory circuitry including computer program code , the memory circuitry and the computer program code configured to , with the processing circuitry, enable the apparatus to : determine that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[00284 ] In accordance with one example embodiment , an apparatus may comprise : circuitry configured to perform : determine that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[00285] The computational requirement for rendering or decoding may be signaled in or along a the bitstream as at least one of : a profile indicator, or a level indicator . [00286] Determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise determining that the volumetric video data may comprise at least one of : a first obj ect entering a scene ; a second obj ect leaving the scene ; a visual effect ; a three-dimensional deformation ; a texture change ; or a combination of two or more of : the f irst obj ect , the second obj ect , the visual effect , the three dimensional deformation, or the texture change .

[00287 ] Determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise : receiving a manual input indicating that the computational requirement for rendering or decoding changes during the at least one time period .

[00288] Determining that the volumetric video data may comprise the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise : performing content analysis of the volumetric video data during encoding or as a pre-encoding step .

[00289] The indication of the change in the computational requirement for rendering or decoding may comprise a flag, wherein the flag may be configured to indicate that at least one syntax element related to the change in the computational requirement for rendering or decoding may be included in the bitstream . [00290] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

[00291] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a lead time for the change in the computational requirement for rendering or decoding .

[00292] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a duration for the change in the computational requirement for rendering or decoding .

[00293] In accordance with one example embodiment , an apparatus may comprise means for performing : determining that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and including, in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[00294 ] The computational requirement for rendering or decoding may be signaled in or along a the bitstream as at least one of : a profile indicator, or a level indicator .

[00295] The means may be configured to perform determining that the volumetric video data comprises the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise means configured to perform determining that the volumetric video data comprises at least one of : a first obj ect entering a scene ; a second obj ect leaving the scene ; a visual effect ; a three-dimensional deformation ; a texture change ; or a combination of two or more of : the first obj ect , the second obj ect , the visual effect , the three dimensional deformation, or the texture change .

[00296] The means configured to perform determining that the volumetric video data comprises the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise means configured to perform : receiving a manual input indicating that the computational requirement for rendering or decoding changes during the at least one time period .

[00297 ] The means configured to perform determining that the volumetric video data comprises the at least one time period during which the computational requirement for rendering or decoding changes at least the threshold amount may comprise means configured to perform : content analysis of the volumetric video data during encoding or as a pre-encoding step .

[00298] The indication of the change in the computational requirement for rendering or decoding may comprise a flag, wherein the flag may be configured to indicate that at least one syntax element related to the change in the computational requirement for rendering or decoding is included in the bitstream .

[00299] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder . [00300] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a lead time for the change in the computational requirement for rendering or decoding .

[00301] The indication of the change in the computational requirement for rendering or decoding may comprise an indication of a duration for the change in the computational requirement for rendering or decoding .

[00302] In accordance with one example embodiment , a non- transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : determine that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period .

[00303] In accordance with another example embodiment , a non- transitory program storage device readable by a machine may be provided, tangibly embodying a program of instructions executable by the machine for performing operations , the operations comprising : determine that volumetric video data may comprise at least one time period during which a computational requirement for rendering or decoding changes at least a threshold amount ; and include , in a bitstream, an indication of the change in the computational requirement for rendering or decoding of the volumetric video data during the at least one time period . [00304 ] In accordance with one aspect , an example method may be provided comprising : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocating at least one computational resource based on the received indication .

[00305] The receiving of the indication may comprise detecting a flag in a stream associated with the volumetric video data, wherein the flag is configured to indicate that at least one syntax element related to the change in the at least one computational requirement for rendering or decoding may be included in the stream .

[00306] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

[00307 ] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of a lead time for the change in one or more of the at least one computational requirement .

[00308] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of a duration for the change in one or more of the at least one computational requirements for rendering or decoding .

[00309] The at least one computational resource may comprise at least one of : at least one memory buffer, at least one processor, or at least one power source . [00310] The reallocating of the at least one computational resource based on the received indication may comprise one of : increasing the at least one computational resource for rendering or decoding of the volumetric video data, or decreasing the at least one computational resource for rendering or decoding of the volumetric video data .

[00311] In accordance with one example embodiment , an apparatus may comprise : at least one processor ; and at least one memory including computer program code ; the at least one memory and the computer program code configured to , with the at least one processor, cause the apparatus to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

[00312] Receiving the indication may comprise detecting a flag in a stream associated with the volumetric video data, wherein the flag may be configured to indicate that at least one syntax element related to the change in the at least one computational requirement for rendering or decoding may be included in the stream .

[00313] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

[00314 ] The indication of the change in the computational requirements for rendering or decoding may comprise an indication of a lead time for the change in one or more of the at least one computational requirement . [00315] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of a duration for the change in one or more of the at least one computational requirement for rendering or decoding .

[00316] The at least one computational resource may compri se at least one of : at least one memory buffer, at least one processor, or at least one power source .

[00317 ] The reallocating of the at least one computational resource based on the received indication may comprise one of : increasing the at least one computational resource for rendering or decoding of the volumetric video data, or decreasing the at least one computational resource for rendering or decoding of the volumetric video data .

[00318] In accordance with one example embodiment , an apparatus may comprise : processing circuitry; memory circuitry including computer program code , the memory circuitry and the computer program code configured to , with the processing circuitry, enable the apparatus to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

[00319] In accordance with one example embodiment , an apparatus may comprise : circuitry configured to perform : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication . [00320] Receiving the indication may comprise detecting a flag in a stream associated with the volumetric video data, wherein the flag may be configured to indicate that at least one syntax element related to the change in the at least one computational requirement for rendering or decoding may be included in the stream .

[00321] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

[00322] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of a lead time for the change in one or more of the at least one computational requirement .

[00323] The indication of the change in the at least one computational requirement for rendering or decoding may comprise an indication of a duration for the change in one or more of the at least one computational requirement for rendering or decoding .

[00324 ] The at least one computational resource may comprise at least one of : at least one memory buffer, at least one processor, or at least one power source .

[00325] The reallocating of the at least one computational resource based on the received indication may comprise one of : increasing the at least one computational resource for rendering or decoding of the volumetric video data, or decreasing the at least one computational resource for rendering or decoding of the volumetric video data . [00326] In accordance with one example embodiment , an apparatus may comprise means for performing : receiving an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocating at least one computational resource based on the received indication .

[00327 ] The means configured to perform receiving of the indication may comprise means configured to perform detecting a flag in a stream associated with the volumetric video data, wherein the flag may be configured to indicate that at least one syntax element related to the change in the at least one computational requirements for rendering or decoding is included in the stream .

[00328] The indication of the change in the at least one computational requirements for rendering or decoding may comprise an indication of at least one of : a level change , a tier change , or a profile change for an associated decoder .

[00329] The indication of the change in at least one the computational requirements for rendering or decoding may comprise an indication of a lead time for the change in one or more of the at least one computational requirements .

[00330] The indication of the change in the at least one computational requirements for rendering or decoding may comprise an indication of a duration for the change in one or more of the at least one computational requirements for rendering or decoding .

[00331] The at least one computational resource may comprise at least one of : at least one memory buffer, at least one processor, or at least one power source . [00332] The means configured to perform reallocating of the at least one computational resource based on the received indication may comprise means configured to perform one of : increasing the at least one computational resource for rendering or decoding of the volumetric video data, or decreasing the at least one computational resource for rendering or decoding of the volumetric video data .

[00333] In accordance with one example embodiment , a non- transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

[00334 ] In accordance with another example embodiment, a non- transitory program storage device readable by a machine may be provided, tangibly embodying a program of instructions executable by the machine for performing operations , the operations comprising : receive an indication of a change in at least one computational requirement for rendering or decoding of volumetric video data ; and reallocate at least one computational resource based on the received indication .

[00335] In accordance with one aspect , an example method may be provided comprising : receiving, with a decoder, viewing space creation information related to volumetric video data ; receiving, with the decoder, a viewing space handling method related to the volumetric video data ; determining, with the decoder, that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device coupled to the decoder ; altering, with the decoder, the viewing space handl ing method based on the determining that the at least one parameter of the viewing space creation information may be incompatible ; recreating, with the decoder, the volumetric video data based, at least partially, on the altered viewing space handl ing method; and transmitting the recreated volumetric video data to the rendering device .

[00336] The determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a device class indicated with the viewing space creation information may be different than a device class of the rendering device , and wherein the altering of the viewing space handling method may comprise changing the viewing space handling method to a viewing space handl ing method compatible with the device class of the rendering device .

[00337 ] The determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a graphical processing unit class indicated with the viewing space creation information may be different than a graphical processing unit class of the rendering device , and wherein the altering of the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method requiring graphical processing unit capabilities the rendering device supports . [00338] The graphical processing unit class indicated with the viewing space creation information may be a higher graphical processing unit class than the graphical processing unit class of the rendering device .

[00339] The graphical processing unit class indicated with the viewing space creation information may be a lower graphical processing unit class than the graphical processing unit class of the rendering device .

[00340] The determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a central processing unit class indicated with the viewing space creation information may be different than a central proces sing unit class of the rendering device , and wherein the altering of the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method requiring central processing unit capabilities the rendering device supports .

[00341] The central processing unit class indicated with the viewing space creation information may be a lower central processing unit class than the central processing unit class of the rendering device .

[00342] the central processing unit class indicated with the viewing space creation information may be a higher central processing unit class than the central processing unit class of the rendering device .

[00343] In accordance with one example embodiment , an apparatus may comprise : at least one processor ; and at least one memory including computer program code ; the at least one memory and the computer program code configured to , with the at least one proces sor, cause the apparatus to : receive viewing space creation information related to volumetric video data ; receive a viewing space handl ing method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device coupled to the apparatus ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information may be incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device .

[00344 ] Determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a device class indicated with the viewing space creation information may be different than a device class of the rendering device , and wherein altering the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method compatible with the device class of the rendering device .

[00345] Determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a graphical proces sing unit class indicated with the viewing space creation information may be different than a graphical proces sing unit class of the rendering device , and wherein altering the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method requiring graphical proces sing unit capabilities the rendering device supports .

[00346] The graphical processing unit class indicated with the viewing space creation information may be a higher graphical processing unit class than the graphical proces sing unit class of the rendering device .

[00347 ] The graphical processing unit class indicated with the viewing space creation information may be a lower graphical processing unit class than the graphical processing unit class of the rendering device .

[00348] Determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a central processing unit class indicated with the viewing space creation information may be different than a central processing unit class of the rendering device , and wherein altering the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method requiring central proces sing unit capabilities the rendering device supports .

[00349] The central processing unit class indicated with the viewing space creation information may be a lower central processing unit class than the central processing unit class of the rendering device .

[00350] The central processing unit class indicated with the viewing space creation information may be a higher central processing unit class than the central processing unit class of the rendering device . [00351] In accordance with one example embodiment , an apparatus may comprise : processing circuitry; memory circuitry including computer program code , the memory circuitry and the computer program code configured to , with the processing circuitry, enable the apparatus to : receive viewing space creation information related to volumetric video data ; receive a viewing space handl ing method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device coupled to the apparatus ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information may be incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device .

[00352] In accordance with one example embodiment , an apparatus may comprise : circuitry configured to perform : receive viewing space creation information related to volumetric video data ; receive a viewing space handling method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device coupled to the apparatus ; alter the viewing space handl ing method based on determining that the at least one parameter of the viewing space creation information may be incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device . [00353] Determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a device class indicated with the viewing space creation information may be different than a device class of the rendering device , and wherein altering the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method compatible with the device class of the rendering device .

[00354 ] Determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a graphical proces sing unit class indicated with the viewing space creation information may be different than a graphical proces sing unit class of the rendering device , and wherein altering the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method requiring graphical processing unit capabilities the rendering device supports .

[00355] The graphical processing unit class indicated with the viewing space creation information may be a higher graphical processing unit class than the graphical processing unit class of the rendering device .

[00356] The graphical processing unit class indicated with the viewing space creation information may be a lower graphical processing unit class than the graphical processing unit class of the rendering device .

[00357 ] Determining that the at least one parameter of the viewing space creation information may be incompatible with the at least one parameter of the rendering device may comprise determining that a central processing unit class indicated with the viewing space creation information may be different than a central processing unit class of the rendering device , and wherein altering the viewing space handling method may comprise changing the viewing space handling method to a viewing space handling method requiring central proces sing unit capabilities the rendering device supports .

[00358] The central processing unit class indicated with the viewing space creation information may be a lower central processing unit class than the central processing unit class of the rendering device .

[00359] The central process ing unit class indicated with the viewing space creation information may be a higher central processing unit class than the central processing unit class of the rendering device .

[00360] In accordance with one example embodiment , an apparatus may comprise means for performing : receiving viewing space creation information related to volumetric video data ; receiving a viewing space handling method related to the volumetric video data ; determining that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device coupled to the apparatus ; altering the viewing space handling method based on the determining that the at least one parameter of the viewing space creation information may be incompatible ; recreating the volumetric video data based, at least partially, on the altered viewing space handl ing method; and transmitting the recreated volumetric video data to the rendering device . [00361] The means configured to perform determining that the at least one parameter of the viewing space creation information is incompatible with the at least one parameter of the rendering device may comprise means configured to perform determining that a device class indicated with the viewing space creation information is different than a device class of the rendering device , and the means configured to perform altering of the viewing space handl ing method may comprise means configured to perform changing the viewing space handling method to a viewing space handling method compatible with the device class of the rendering device .

[00362] The means configured to perform determining that the at least one parameter of the viewing space creation information is incompatible with the at least one parameter of the rendering device may comprise means configured to perform determining that a graphical proces sing unit class indicated with the viewing space creation information is different than a graphical processing unit class of the rendering device , and the means configured to perform altering of the viewing space handling method may comprise means configured to perform changing the viewing space handling method to a viewing space handling method requiring graphical processing unit capabilities the rendering device supports .

[00363] The graphical processing unit class indicated with the viewing space creation information may be a higher graphical processing unit class than the graphical processing unit class of the rendering device .

[00364 ] The graphical processing unit class indicated with the viewing space creation information may be a lower graphical processing unit class than the graphical processing unit class of the rendering device .

[00365] The means configured to perform determining that the at least one parameter of the viewing space creation information is incompatible with the at least one parameter of the rendering device may comprise means configured to perform determining that a central processing unit class indicated with the viewing space creation information is different than a central processing unit class of the rendering device , and the means configured to perform altering of the viewing space handling method may comprise means configured to perform changing the viewing space handling method to a viewing space handling method requiring central processing unit capabilities the rendering device supports .

[00366] The central processing unit class indicated with the viewing space creation information may be a lower central processing unit class than the central processing unit class of the rendering device .

[00367 ] The central processing unit clas s indicated with the viewing space creation information may be a higher central processing unit class than the central processing unit class of the rendering device .

[00368] In accordance with one example embodiment , a non- transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : receive viewing space creation information related to volumetric video data ; receive a viewing space handl ing method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information may be incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handl ing method; and transmit the recreated volumetric video data to the rendering device .

[00369] In accordance with another example embodiment , a non- transitory program storage device readable by a machine may be provided, tangibly embodying a program of instructions executable by the machine for performing operations , the operations comprising : receive viewing space creation information related to volumetric video data ; receive a viewing space handling method related to the volumetric video data ; determine that at least one parameter of the viewing space creation information may be incompatible with at least one parameter of a rendering device ; alter the viewing space handling method based on determining that the at least one parameter of the viewing space creation information may be incompatible ; recreate the volumetric video data based, at least partially, on the altered viewing space handling method; and transmit the recreated volumetric video data to the rendering device .

[00370] In accordance with one aspect , an example method may be provided comprising : transmitting, with an encoding device , viewing space handling supplemental enhancement information related to volumetric video data ; and transmitting, with the encoding device , viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data .

[00371] In accordance with one example embodiment , an apparatus may comprise : at least one processor ; and at least one memory including computer program code ; the at least one memory and the computer program code configured to , with the at least one processor, cause the apparatus to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device clas s related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit clas s related to the volumetric video data .

[00372] In accordance with one example embodiment , an apparatus may comprise : processing circuitry; memory circuitry including computer program code , the memory circuitry and the computer program code configured to , with the processing circuitry, enable the apparatus to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data .

[00373] In accordance with one example embodiment , an apparatus may comprise : circuitry configured to perform : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data .

[00374 ] In accordance with one example embodiment , an apparatus may comprise means for performing : transmitting viewing space handling supplemental enhancement information related to volumetric video data ; and transmitting viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit clas s related to the volumetric video data .

[00375] In accordance with one example embodiment , a non- transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to : transmit viewing space handling supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit clas s related to the volumetric video data .

[00376] In accordance with another example embodiment , a non- transitory program storage device readable by a machine may be provided, tangibly embodying a program of instructions executable by the machine for performing operations , the operations comprising : transmit viewing space handl ing supplemental enhancement information related to volumetric video data ; and transmit viewing space creation supplemental enhancement information related to the volumetric video data, wherein the viewing space creation supplemental enhancement information may comprise at least one of : an indication of a viewing space creation device class related to the volumetric video data, an indication of a graphical processing unit class related to the volumetric video data, or an indication of a central processing unit class related to the volumetric video data .

[00377] It should be understood that the foregoing description is only illustrative . Various alternatives and modifications can be devised by those skilled in the art . For example , features recited in the various dependent claims could be combined with each other in any suitable combination ( s ) . In addition, features from different embodiments described above could be selectively combined into a new embodiment . Accordingly, the description is intended to embrace all such alternatives , modification and variances which fall within the scope of the appended claims .