WO2026009477A1 - メッシュ復号装置、メッシュ復号方法及びプログラム - Google Patents
メッシュ復号装置、メッシュ復号方法及びプログラムInfo
- Publication number
- WO2026009477A1 WO2026009477A1 PCT/JP2025/002846 JP2025002846W WO2026009477A1 WO 2026009477 A1 WO2026009477 A1 WO 2026009477A1 JP 2025002846 W JP2025002846 W JP 2025002846W WO 2026009477 A1 WO2026009477 A1 WO 2026009477A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mesh
- control signal
- signal indicating
- bitstream
- basic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Definitions
- the present invention relates to a mesh decoding device, a mesh decoding method, and a program.
- Non-Patent Document 4 discloses a technology that utilizes the framework of Non-Patent Document 5 to decode a mesh by dividing it into a rough base mesh and a detailed displacement amount, decodes information such as vertex coordinates, connectivity, and UV coordinates (a type of attribute) for the base mesh using a base mesh decoding unit, and then adds the decoded atlas using an atlas data decoding unit to reconstruct a mesh from the base mesh and displacement amount.
- Non-Patent Document 4 discloses that in addition to meshes, video data called textures can also be decoded by the video decoder as a type of Attribute.
- Non-Patent Document 4 has the problem that if the maximum value of the control signal attribute count, which indicates the number of Attributes in the basic mesh, is large, it becomes difficult to create a corresponding product, and product costs increase.
- the present invention was made in consideration of the above-mentioned problems, and aims to provide a mesh decoding device, mesh decoding method, and program that can be used to manufacture products while significantly reducing product costs.
- the first feature of the present invention is a mesh decoding device comprising: an atlas data decoding unit configured to decode and output an atlas bitstream; a base mesh decoding unit configured to decode a base mesh bitstream and information including vertex coordinates, connectivity, and UV coordinates for the base mesh; and a video decoding unit configured to decode textures using a video codec, wherein the atlas bitstream includes a first control signal indicating the number of Attributes of the base mesh and a second control signal indicating the number of Attributes of each Attribute of the base mesh.
- the atlas bitstream includes a second control signal indicating the type of attribute
- the base mesh bitstream includes a third control signal indicating the number of attributes of the base mesh, a fourth control signal indicating the type of each attribute of the base mesh, and a fifth control signal indicating the index of each attribute of an I frame of the base mesh
- the first control signal indicating the number of attributes of the base mesh of the atlas bitstream is set to a value equal to or smaller than the third control signal indicating the number of attributes of the base mesh of the base mesh bitstream.
- a second feature of the present invention is a mesh decoding method comprising: a step A of decoding and outputting an atlas bitstream; a step B of decoding a base mesh bitstream and information including vertex coordinates, connectivity, and UV coordinates for the base mesh; and a step C of decoding textures using a video codec, wherein the atlas bitstream includes a first control signal indicating the number of Attributes of the base mesh and a second control signal indicating the type of each Attribute of the base mesh; the base mesh bitstream includes a third control signal indicating the number of Attributes of the base mesh, a fourth control signal indicating the type of each Attribute of the base mesh, and a fifth control signal indicating the index of each Attribute of an I-frame of the base mesh; and the first control signal indicating the number of Attributes of the base mesh of the atlas bitstream is set to a value equal to or smaller than the third control signal indicating the number of Attributes of the base mesh of the base mesh
- a third feature of the present invention is a program that causes a computer to function as a mesh decoding device, the mesh decoding device comprising: an atlas data decoding unit configured to decode and output an atlas bitstream; a base mesh decoding unit configured to decode a base mesh bitstream and information including vertex coordinates, connectivity, and UV coordinates for the base mesh; and a video decoding unit configured to decode textures using a video codec, wherein the atlas bitstream includes a first control signal indicating the number of Attributes of the base mesh, and The atlas bitstream includes a second control signal indicating the type of each Attribute of the base mesh, and the base mesh bitstream includes a third control signal indicating the number of Attributes of the base mesh, a fourth control signal indicating the type of each Attribute of the base mesh, and a fifth control signal indicating the index of each Attribute of an I frame of the base mesh, and the first control signal indicating the number of Attributes of the base mesh of the
- the present invention provides a mesh decoding device, mesh decoding method, and program that can produce products while significantly reducing product costs.
- FIG. 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to an embodiment.
- FIG. 2 is a diagram illustrating an example of functional blocks of a mesh decoding device 200 according to an embodiment.
- FIG. 3 is a diagram showing an example of a basic mesh and a subdivision mesh.
- FIG. 4 is a diagram showing an example of functional blocks of the basic mesh decoding unit 202 of the mesh decoding device 200 according to an embodiment.
- FIG. 5 is a diagram showing an example of functional blocks of the intra-decoding unit 202B of the basic mesh decoding unit 202 of the mesh decoding device 200 according to an embodiment.
- FIG. 6 is a diagram showing an example of the correspondence between the vertices of the basic mesh of a P frame and the vertices of the basic mesh of an I frame.
- FIG. 7 is a diagram showing an example of the configuration of a basic mesh bit stream.
- FIG. 8 is a diagram showing an example of a control signal that imposes a restriction on a profile toolset.
- FIG. 9 is a diagram illustrating an example of a BMSPS.
- FIG. 10 is a diagram illustrating an example of a BMFPS.
- FIG. 11 is a diagram illustrating an example of the BMSH.
- FIG. 12 is a diagram illustrating an example of a BMSPS.
- FIG. 13 is a diagram illustrating an example of the BMFPS.
- FIG. 14 is a diagram illustrating an example of the BMSH.
- FIG. 15 is a diagram showing an example of a control signal related to an attribute of a basic mesh.
- FIG. 16 is a diagram showing an example of functional blocks of the inter decoding unit 202E.
- FIG. 17 is a diagram illustrating an example of a method for calculating the MVP of a vertex to be decoded by the motion vector prediction unit 202E3 of the inter decoding unit 202E of the basic mesh decoding unit 202 of the mesh decoding device 200 according to one embodiment.
- FIG. 18 is a diagram illustrating the mesh buffer unit 202C of the basic mesh decoding unit 202 of the mesh decoding device 200 according to an embodiment.
- FIG. 19 is a diagram illustrating an example of a NAL header.
- FIG. 20 is a diagram illustrating an example of a BMSPS.
- FIG. 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to this embodiment.
- the mesh processing system 1 includes a mesh encoding device 100 and a mesh decoding device 200.
- Figure 2 is a diagram showing an example of functional blocks of a mesh decoding device 200 according to this embodiment.
- the mesh decoding device 200 includes a demultiplexing unit 201, a basic mesh decoding unit 202, a subdivision unit 203, a mesh decoding unit 204, a patch integration unit 205, a displacement amount decoding unit 206, a video decoding unit 207, and an atlas data decoding unit 208.
- the basic mesh decoding unit 202, subdivision unit 203, mesh decoding unit 204, and displacement amount decoding unit 206 are configured to perform processing in units of patches into which the mesh is divided, and the results of these processes may then be integrated by the patch integration unit 205.
- the mesh is divided into patch 1, which consists of base faces 1 and 2, and patch 2, which consists of base faces 3 and 4.
- the demultiplexing unit 201 is configured to separate the multiplexed bitstream into a base mesh bitstream, a displacement bitstream, a texture bitstream, and an atlas bitstream.
- the subdivision unit 203 is configured to generate and output subdivision vertices and their connection information from the basic mesh decoded by the basic mesh decoding unit 202, using the subdivision method indicated by the control information (first control information and second control information).
- the basic mesh is composed of one submesh or multiple submeshes.
- the base mesh, the added subdivision vertices, and their connection information are collectively referred to as the "subdivision mesh.”
- the submesh, the added subdivision vertices, and their connection information are collectively referred to as the “subdivision submesh.”
- the mesh decoding unit 204 is configured to generate and output a decoded mesh using the control information, the subdivision mesh, the subdivision vertex normals, and the displacement amounts.
- the displacement amount decoding unit 206 is configured to decode the displacement amount bit stream based on the control information to generate and output a displacement amount.
- the video decoding unit 207 is configured to decode and output the texture using a video codec.
- the atlas data decoding unit 208 is configured to decode the atlas bitstream and output control information.
- control signals may be used as metadata by the basic mesh decoding unit 202, subdivision unit 203, mesh decoding unit 204, displacement amount decoding unit 206, and video decoding unit 207.
- the base mesh decoder 202 is configured to decode the base mesh bitstream, generate and output a base mesh.
- the base mesh consists of multiple vertices in three-dimensional space and edges connecting these multiple vertices.
- the base mesh decoding unit 202 may be configured to decode the base mesh bitstream using, for example, Draco, which is shown in Non-Patent Document 2, or the technology described in Non-Patent Document 3.
- the basic mesh decoding unit 202 includes a separation unit 202A, an intra-decoding unit 202B, a mesh buffer unit 202C, a connection information decoding unit 202D, and an inter-decoding unit 202E.
- the separator 202A is configured to classify the basic mesh bitstream into a bitstream of I frames and a bitstream of P frames.
- the intra decoding unit 202B is configured to decode the coordinates and connection information of the vertices of the I frame from the bit stream of the I frame, for example, using the technology Draco shown in Non-Patent Document 2 or the technology described in Non-Patent Document 3.
- Figure 5 shows an example of the functional blocks of the intra decoder 202B.
- the intra decoding unit 202B has an arbitrary intra decoding unit 202B1 and an alignment unit 202B2.
- the optional intra decoder 202B1 is configured to decode the coordinates and connectivity information of unordered vertices of an I frame from the I frame bitstream using any method, including the Draco technique described in Non-Patent Document 2 or the technique described in Non-Patent Document 3.
- the sorting unit 202B2 is configured to output vertices by rearranging unordered vertices into a predetermined order.
- the predetermined order may be, for example, Morton code order or raster scan order.
- the alignment unit 202B2 may also combine overlapping vertices, which are multiple vertices with matching coordinates in the decoded base mesh, into a single vertex and then rearrange them in a predetermined order.
- the mesh buffer unit 202C is configured to store the coordinates and connection information of the vertices of the I frame decoded by the intra decoding unit 202B.
- a specific buffer may be provided to store pairs of vertex indices A(k) and B(k) of overlapping vertices in a predetermined order.
- connection information decoding unit 202D is configured to convert the connection information of the I frame or reference frame extracted from the mesh buffer unit 202C into connection information of the P frame.
- the inter-decoding unit 202E is configured to decode the coordinates of the vertices of the P frame by adding the coordinates of the vertices of the reference frame retrieved from the mesh buffer unit 202C and the motion vectors decoded from the bitstream of the P frame.
- the inter-decoding unit 202E can adjust the index of the vertex of the P frame using the pair of vertex indices A(k) and B(k) that exist as overlapping vertices stored in this specific buffer.
- the motion vector decoded by the inter decoding unit 202E is the difference vector between the coordinates of the vertices of the base mesh of the P frame and the coordinates of the vertices of the base mesh of the I frame.
- Figure 7 shows an example of the configuration of a basic mesh bitstream.
- u(n) means an n-bit code
- ue(v) means an unsigned variable-length zeroth-order exponential-Golomb code
- the base mesh bitstream may include BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit), which are collections of control information related to the decoding of the base mesh.
- BMSPS Basemesh Sequence Parameter Set
- BMFPS Basemesh Frame Parameter Set
- BMSH Basemesh Submesh Header
- BMSDU Basemesh Submesh Data Unit
- the BMSPS may include Profile-related syntax.
- the Profile-related syntax may include control signals that impose restrictions on the profile toolset, such as bmptc_one_mesh_frame_only_flag and bmptc_intra_frames_only_flag.
- bmptc_one_mesh_frame_only_flag is a flag (first control signal) that indicates that the number of frames in the basic mesh is 1.
- bmptc_intra_frames_only_flag is a flag (second control signal) indicating that the sub-meshes of the basic mesh are intra-frames (I-frames) only.
- the BMSPS may also include control signals used by the inter-decoding unit 202E and reference frame-related control signals, such as bmsps_inter_mesh_max_num_neighbors_minus1, which indicates the maximum number of adjacent vertices for which motion vectors are predicted, and bmesh_ref_list_struct(), the reference frame list Structure, as shown in FIG. 9.
- control signals used by the inter-decoding unit 202E and reference frame-related control signals, such as bmsps_inter_mesh_max_num_neighbors_minus1, which indicates the maximum number of adjacent vertices for which motion vectors are predicted, and bmesh_ref_list_struct(), the reference frame list Structure, as shown in FIG. 9.
- BMFPS may also include reference frame-related control signals, such as bmfps_num_ref_idx_default_active_minus1, which indicates the active reference frame list Structure.
- the BMSH may also include reference frame-related control signals in sub-meshes, such as bmsh_ref_mesh_frame_list_msps_flag and bmsh_ref_mesh_frame_list_idx.
- inter-prediction-related information For example, if bmtpc_one_mesh_frame_only_flag or bmtpc_intra_frames_only_flag is 1, there are no P frames, so there is no need to encode information related to motion vectors or reference frame-related information in BMSPS, BMFPS, BMSH, etc. In this embodiment, such information is called inter-prediction-related information.
- the basic mesh decoding unit 202 further includes a control signal acquisition unit 202F that acquires a control signal, and a determination unit 202G that determines whether to decode inter-prediction related information based on the control signal acquired by the control signal acquisition unit 202F.
- the control signal acquisition unit 202F may acquire the bmtpc_one_mesh_frame_only_flag or the bmtpc_intra_frames_only_flag.
- inter-prediction related information may not be signaled.
- the determination unit 202G determines not to decode inter prediction related information.
- the determination unit 202G may set the value of the inter-prediction related information to a predetermined value.
- control signal acquisition unit 202F may acquire bmsps_enable_prediction_flag (third control signal) indicating that inter prediction information is to be coded.
- inter-prediction related information may not be signaled.
- the determination unit 202G determines not to decode inter prediction related information.
- the determination unit 202G may set the value of the inter prediction related information to a predetermined value.
- the control signal acquisition unit 202F may calculate bmsps_enable_prediction_flag using (Equation 1). In such a case, bmsps_enable_prediction_flag is not signaled.
- bmsps_enable_prediction_flag Not(bmtpc_one_mesh_frame_only_flag Or bmtpc_intra_frames_only_flag)... (Formula 1) That is, when bmtpc_one_mesh_frame_only_flag is 1, the control signal acquisition unit 202F sets bmsps_enable_prediction_flag to 0.
- control signal acquisition unit 202F sets bmsps_enable_prediction_flag to 0.
- bmsps_enable_prediction_flag when bmsps_enable_prediction_flag is signaled, as shown in FIG. 12, bmsps_enable_prediction_flag may be included in the BMSPS syntax, and the control signal acquisition unit 202F may decode bmsps_enable_prediction_flag from BMSPS. In such a case, bmsps_enable_prediction_flag is signaled.
- control signal acquisition unit 202F sets bmsps_enable_prediction_flag to 1.
- control signal acquisition unit 202F sets bmsps_enable_prediction_flag to 0.
- control signal acquisition unit 202F sets bmsps_enable_prediction_flag to 0.
- inter-prediction related information is a control signal (e.g., BMSPS, BMFPS, or BMSH) such as those shown in Figures 12 to 14.
- a control signal e.g., BMSPS, BMFPS, or BMSH
- the determination unit 202G may also make a determination using the frame type.
- inter-prediction related information is coded only when necessary, which is expected to improve coding efficiency.
- This configuration is expected to avoid conflicts with the bmptc_one_mesh_frame_only_flag and ptc_one_v3c_frame_only_flag.
- Attribute count/index related information An example of control signals related to the Attributes of the basic mesh in the atlas bitstream and the basic mesh bitstream will be described below with reference to FIG.
- the atlas bitstream may include a first control signal vps_ext_bmesh_data_attribute_count indicating the number of Attributes in the base mesh, as shown in FIG. 15.
- the atlas bitstream may also include a second control signal vps_ext_bmesh_attribute_type that indicates the type of each Attribute of the base mesh.
- the BMSPS of the basic mesh bitstream may include a third control signal bmsps_mesh_attribute_count indicating the number of Attributes in the basic mesh, as shown in FIG. 15.
- the BMSPS of the basic mesh bitstream may include a fourth control signal bmsps_mesh_attribute_type_id indicating the type of each Attribute of the basic mesh.
- the BMSPS of the basic mesh bitstream may include a fifth control signal bmsps_mesh_attribute_index indicating the index of each Attribute of the I frame.
- control signal acquisition unit 202F may decode vps_ext_bmesh_data_attribute_count using u(8).
- vps_ext_bmesh_data_attribute_count has a range of 0 to 255. In other words, the maximum value of vps_ext_bmesh_data_attribute_count is 255.
- Non-Patent Document 4 is a 4096 x 4096 video
- 48MB would be required for just one frame of Attribute.
- the product's memory is required in proportion to the number of Attributes. If the maximum number of Attributes is 255, then even if you only save one frame per Attribute, a maximum of 12,240MB of memory may be required. Therefore, the product must have at least 12GB of memory.
- Non-Patent Document 5 requires a certain number. Its minimum value is equal to or greater than the control signal ai_attribute_count, which indicates the number of textures decoded by the video decoding unit 207.
- control signal acquisition unit 202F may decode ai_attribute_count using u(7).
- ai_attribute_count has a range of 0 to 127. In other words, the maximum value of ai_attribute_count is 127.
- the minimum value of vps_ext_bmesh_data_attribute_count is set to the maximum value of ai_attribute_count, making the range as small as possible.
- control signal acquisition unit 202F may decode vps_ext_bmesh_data_attribute_count using u(7).
- vps_ext_bmesh_data_attribute_count has a range of 0 to 127.
- the minimum value of vps_ext_bmesh_data_attribute_count may be set to the redefined maximum value, making the range as small as possible.
- the maximum value of ai_attribute_count for a certain profile or level is set to MAX_ATTRIBUTE_COUNT (a predetermined value, e.g., 15)
- the maximum value of vps_ext_bmesh_data_attribute_count may be set to MAX_ATTRIBUTE_COUNT (e.g., 15) or a value slightly larger than MAX_ATTRIBUTE_COUNT (e.g., 31).
- the fifth control signal bmsps_mesh_attribute_index which indicates the index of each Attribute in the I frame of the basic mesh, has a range of 0 to 127.
- the base mesh decoding unit 202 may decode the fifth control signal bmsps_mesh_attribute_index, which indicates the index of each Attribute of the I frame of the base mesh, using u(7).
- the possible values of the second control signal indicating the type of each Attribute of the base mesh in the atlas bitstream and the fourth control signal indicating the type of each Attribute of the base mesh in the base mesh bitstream may be the same.
- FIG. 16 is a diagram showing an example of functional blocks of the inter decoding unit 202E.
- the inter-decoding unit 202E has a motion vector residual decoding unit 202E1, a motion vector buffer unit 202E2, a motion vector prediction unit 202E3, a motion vector calculation unit 202E4, and an adder 202E5.
- the motion vector residual decoding unit 202E1 is configured to generate an MVR (Motion Vector Residual) from the P frame bitstream.
- MVR Motion Vector Residual
- MVR is the motion vector residual indicating the difference between MV (Motion Vector) and MVP (Motion Vector Prediction).
- MV is the difference vector (motion vector) between the coordinates of the corresponding vertex in the I frame and the coordinates of the vertex in the P frame.
- MVP is the predicted value of the MV of the target vertex using MV (motion vector prediction value).
- the motion vector buffer unit 202E2 is configured to sequentially store the MVs output by the motion vector calculation unit 202E4.
- the motion vector prediction unit 202E3 is configured to obtain decoded MVs from the motion vector buffer unit 202E2 for vertices connected to the vertex to be decoded, and output the MVP of the vertex to be decoded using all or part of the obtained decoded MVs, as shown in Figure 17.
- the motion vector calculation unit 202E4 is configured to add the MVR generated by the motion vector residual decoding unit 202E1 and the MVP output from the motion vector prediction unit 202E3, and output the MV of the vertex to be decoded.
- the adder 202E5 is configured to add the coordinates of the vertex corresponding to the vertex to be decoded, obtained from the decoded base mesh of the corresponding reference frame (I frame or P frame), to the motion vector MV output from the motion vector calculation unit 202E3, and output the coordinates of the vertex to be decoded.
- the mesh buffer unit 202C is configured to store one or more decoded reference basic meshes in a predetermined order.
- Such basic meshes contain metadata such as frame numbers and submesh numbers, as well as at least the coordinates of each vertex and the index of that vertex, and are stored in the mesh buffer unit 202C in a predetermined order determined by the reference frame list.
- this reference frame list (ref_list0) is a list of information that identifies all reference decoding base meshes stored in the mesh buffer unit 202C.
- the reference frame list may be determined by control signals decoded from the bitstream, as shown in Figure 18, or may be calculated naturally from the decoding order of the frames.
- control signal decoded from the bitstream may be represented by a relative distance from the frame to be decoded, or by an absolute frame index.
- control signal may use a short-term or long-term reference frame.
- the frames may be arranged in order of a certain number of frames starting from the most recently decoded frame. That is, the reference frame list may be ⁇ 0, ⁇ 1, ⁇ 2, ..., ⁇ (N ⁇ 1) ⁇ .
- the reference frame list does not change for each frame except under special circumstances (for example, when a re-ordering command is received).
- the mesh buffer unit 202C may be updated as follows:
- the mesh buffer unit 202C deletes one or more existing reference frames in a predetermined order determined by the reference frame list, and inserts one or more base meshes including the base mesh of the decoded frame, or creates and inserts one base mesh from multiple base meshes, thereby adjusting the order of the reference frames.
- Such deletion work may be performed only when the mesh buffer unit 202C is full.
- the number of basic meshes that can be stored in the mesh buffer unit 202C is determined in advance.
- the mesh buffer unit 202C is defined as being full when this number of basic meshes is reached.
- a single base mesh may be created by taking a weighted average of the vertex coordinates corresponding to the base mesh of the decoded frame and the existing base meshes stored in the mesh buffer unit 202C.
- the weights used in such a weighted average may be predetermined, calculated using a frame index, or decoded from the control signal.
- the mesh buffer unit 202C When the mesh buffer unit 202C receives a control signal indicating a re-ordering instruction from the control signal decoded from the bitstream, it updates the reference frame list as shown in Figure 14 and adjusts the order of the reference frames according to the predetermined order determined by the updated reference frame list (ref_list0).
- the value indicated by this control signal may be the difference from the display order of the frame to be decoded, or may be the order within a predetermined group of frames, MaxMeshFrmOrderCntLsb.
- the basic mesh decoding unit 202 may rearrange the decoded basic meshes in the display order (Display Order).
- control signals are defined for each frame to indicate whether to decode the base mesh, displacement, and texture, and each is decoded from the bitstream.
- the Temporal_ID of the atlas and the base mesh may be matched within the same frame. Further, the Temporal_ID of the atlas and the texture may be matched within the same frame. Further, the Temporal_ID of the atlas and the displacement amount may be matched within the same frame.
- This configuration is expected to have the effect of preventing frames from being undecoded and avoiding unnecessary data.
- Adjacent frames with the same Temporal_ID have the closest POC.
- the decoding order of atlases and base meshes that have the same display order may be matched. Furthermore, the decoding order of atlases and displacement amounts that have the same display order may be matched. Furthermore, the decoding order of atlases and textures that have the same display order may be matched.
- Random access points of an atlas and a base mesh that have the same display order may be matched.
- the random access points of an atlas and a displacement amount that have the same display order may be matched.
- the random access points of an atlas and a texture that have the same display order may be matched. Random access points are defined in Non-Patent Document 4 or Non-Patent Document 5.
- This configuration is expected to have the effect of allowing the mesh to be reproduced without waiting for the base mesh, displacement, and texture to be decoded separately.
- frames with a Temporal_ID higher than the control signal Temporal_ID of the frame to be decoded are not used as reference frames for that frame.
- NAL Network Abstraction Layer
- the TID defined as the last three bits in the NAL header, is Temporal_ID plus 1.
- the TID range is 1 to 7, with zero prohibited.
- LayerID/R6 defined as the 6 bits immediately preceding the TID in the NAL header, specifies the identifier of the layer to which the NAL unit belongs.
- the value of LayerID/R6 must be in the range of 0 to 62.
- the value 63 may be specified by ISO/IEC in the future.
- the mesh decoding device 200 ignores all data following the value 63 in a NAL unit, and a mesh decoding device 200 conforming to the specified profile ignores (i.e., removes from the bitstream and discards) all NAL units whose LayerID-R6 value is not 0.
- the value 63 of LayerID/R6 can be used to indicate an enhancement layer identifier in future enhancements.
- Non-Patent Document 5 can be used, and for the displacement and texture, the video coding methods HEVC and VVC can be used, so the following will explain the basic mesh.
- the BMSPS of the basic mesh bitstream may include a control signal bmsps_max_sub_layers_minus1 indicating the maximum number of temporal sublayers at u(3).
- It may also include a control signal bmsps_max_dec_mesh_frame_buffering_minus1 indicating the maximum basic mesh buffer size in each Temporal sublayer, and a control signal bmsps_max_num_reorder_frames indicating the difference from the display order of the maximum frame to be decoded.
- the LayerID/R6 values of all BMCL NAL units of an encoded basic mesh frame must be the same.
- the LayerID/R6 value of an encoded basic mesh frame is the LayerID/R6 value of the BMCL NAL units of the encoded basic mesh frame.
- NALType is in the range from NAL_BLA_W_LP to NAL_RSV_BMCL_29 defined in Non-Patent Document 4, i.e., if it belongs to an IRAP-coded basic mesh frame, Temporal_ID must be 0.
- NALType is equal to 0 and NALType is equal to NAL_STSA_R or NAL_STSA_N, Temporal_ID must not be equal to 0.
- Temporal_ID must be the same for all BMCL NAL units within an access unit.
- Temporal_ID of a coded basic mesh frame or access unit is the value of Temporal_ID of the BMCL NAL unit of the coded basic mesh frame or access unit.
- Temporal_ID for a sublayer representation is the maximum value of Temporal_ID for all BMCL NAL units within the sublayer representation.
- Temporal_ID for non-BMCL NAL units are restricted as follows: If NALType is equal to NAL_BMSPS, Temporal_ID shall be 0 and the Temporal_ID of the access unit containing the NAL unit shall be 0. Otherwise, if NALType is equal to NAL_EOS or NAL_EOB, Temporal_ID must be 0. Otherwise, if NALType is equal to NAL_AUD or NALLFDD, Temporal_ID must be equal to the Temporal_ID of the access unit containing the NALL unit. Otherwise, Temporal_ID must be greater than or equal to the Temporal_ID of the access unit containing the NAL unit.
- the value of Temporal_ID is equal to the minimum value of the Temporal_ID values of all access units to which the non-BMCL NAL unit applies.
- Temporal_ID can be greater than or equal to the Temporal_ID of the included access unit, since all basic mesh frame parameter sets (BMFPS) are included at the beginning of the bitstream, where the Temporal_ID of the first coded basic mesh frame is 0.
- the skip decoding unit 202F refers to the specified tIDTarget and discards NAL units whose Temporal_ID is higher than tIDTarget without decoding them.
- tIDTarget may be specified by a predetermined value, or may be specified based on the network conditions or the terminal capabilities of the mesh decoding device 200.
- a lower tIDTarget is specified in the wireless case than in the wired case. Also, a lower tIDTarget is specified when the network conditions are poor. Also, a lower tIDTarget is specified when decoding is performed by a mesh decoding device 200 with low specifications.
- bitstream conformance is that there must be at least one NAL unit in the bitstream whose Temporal_ID is not higher than tIDTarget.
- NAL Network Abstraction Layer
- the TID defined as the last three bits in the NAL header, is Temporal_ID plus 1.
- the TID range is 1 to 7, with zero prohibited.
- LayerID/R6 defined as the 6 bits immediately preceding the TID in the NAL header, specifies the identifier of the layer to which the NAL unit belongs.
- the value of LayerID/R6 must be in the range of 0 to 62.
- the value 63 may be specified by ISO/IEC in the future.
- the mesh decoding device 200 ignores all data following the value 63 in a NAL unit, and a mesh decoding device 200 conforming to the specified profile ignores (i.e., removes from the bitstream and discards) all NAL units whose LayerID-R6 value is not 0.
- the value 63 of LayerID/R6 can be used to indicate an enhancement layer identifier in future enhancements.
- the TID may be set independently for each bitstream of the atlas, base mesh, displacement, and texture.
- the TID is fixed to zero according to Annex A of Non-Patent Document 5. Therefore, the TID is set independently for each of the base mesh, displacement, and texture.
- At least one of the base mesh, displacement, and texture may have Temporal_ID fixed to zero.
- the LD setting can also be used. Table 3 shows an example.
- the displacement and texture will use the HEVC or VVC video coding format, and the base mesh will use the above-mentioned embodiment.
- the tIDTarget specified in each bitstream is referenced, and NAL units with a TID higher than tIDTarget are discarded without being decoded.
- tIDTarget may be specified by a predetermined value, or may be specified based on the network conditions or the terminal capabilities of the mesh decoding device 200.
- a lower tIDTarget is specified in the wireless case than in the wired case. Also, a lower tIDTarget is specified when the network conditions are poor. Also, a lower tIDTarget is specified when decoding is performed by a mesh decoding device 200 with low specifications.
- bitstream conformance is that there must be at least one NAL unit in the bitstream whose TID is not higher than tIDTarget.
- each bitstream is set independently, if any of the base mesh, displacement, or texture is discarded in a particular frame, the others will also be discarded.
- each bitstream is set independently, if the base mesh is discarded in a specific frame, the displacement and texture are also discarded, and the reconstruction process is not performed. However, if the displacement is discarded, all displacement values are set to zero, and the reconstruction process is performed. Also, if the texture is discarded, all texture values are set to zero, and the reconstruction process is performed.
- sub-meshes may differ for each frame (intraframe, interframe, and skip frame).
- the intra decoding unit 202B, inter decoding unit 202E, and skip decoding unit 202F assign unique submesh IDs to each submesh in each frame.
- the intra decoding unit 202B and the inter decoding unit 202E may assign different Submesh IDs to corresponding submeshes between frames.
- the inter-decoding unit 202E can only reference submeshes that have the same Submesh ID within the reference frame.
- the inter-decoding unit 202E can only reference sub-meshes that have the same number of vertices in the reference frame.
- the intra-decoding unit 202B and the inter-decoding unit 202E may refer to a sub-mesh specified in the reference frame.
- the inter-decoding unit 202E may decode a control signal specifying the Submesh ID of a referenceable submesh from the bitstream of the current submesh.
- the inter-decoding unit 202E may treat this submesh as a referenceable submesh.
- the inter decoding unit 202E or skip decoding unit 202F sets the submesh ID of the referenceable submesh to the same submesh ID as the submesh in the current frame.
- the inter-decoding unit 202E may also decode a control signal from the bitstream that indicates whether the above-mentioned control signal is present.
- the inter-decoding unit 202E may decode a control signal that selects the method for determining the above-mentioned referenceable sub-meshes.
- the subdivision unit 203 and the displacement amount decoding unit 206 may follow Non-Patent Document 4.
- encoding efficiency can be improved by not encoding and decoding unnecessary information.
- the amount of code can be reduced by not encoding and decoding unnecessary information such as inter-prediction and reference frame-related syntax.
- the mesh encoding device 100 and mesh decoding device 200 described above may be realized as a program that causes a computer to execute each function (each process).
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
製品コストを大幅に抑えながら、製品を作ること。本発明に係るメッシュ復号装置200において、基本ビットストリームは、基本メッシュのAttribute数を示す制御信号及び映像復号部で復号されるテクスチャ数を示す制御信号を含み、基本メッシュのAttribute数を示す制御信号の最小値は、テクスチャ数を示す制御信号の最大値に設定される。
Description
本発明は、メッシュ復号装置、メッシュ復号方法及びプログラムに関する。
非特許文献4には、非特許文献5のフレームワークを活用し、メッシュを大まかな基本メッシュと詳細な変位量とに分けて復号し、基本メッシュについて基本メッシュ復号部によって頂点座標やConnectivityやUV座標(Attributeの一種)等の情報を復号し、アトラスデータ復号部によって復号したアトラスを加えて基本メッシュ及び変位量からメッシュを再建する技術が開示されている。
また、上述の基本メッシュについての復号では、イントラフレームによる復号、インターフレームによる復号及びスキップフレームによる復号のいずれかを使う。
なお、非特許文献4には、メッシュ以外にテクスチャという映像データをAttributeの一種として映像復号部で復号することが開示されている。
Khaled Mammou, Jungsun Kim, Alexis M Tourapis, Dimitri Podborski, and Krasimir Kolarov, "[V-CG] Apple’s Dynamic Mesh Coding CfP Response," April 2022, ISO/IEC JTC 1/SC 29/WG 7 m59281.
Google Draco、2022年5月26日アクセス[Online]、https://google.github.io/draco
Jean-Eudes Marvie, Olivier Mocquard, "[V-DMC][EE4.4-related] An efficient EdgeBreaker implementation," April 2023, ISO/IEC JTC 1/SC 29/WG 7 m63344.
"Text of ISO/IEC CD 23090-29 Video-based mesh coding," ISO/IEC JTC 1/SC 29/WG7 N00885, April 2024.
"Information technology - Coded Representation of Immersive Media - Part 5: Visual Volumetric Video-based Coding (V3C) and Video-based Point Cloud Compression (V-PCC)," ISO/IEC JTC 1/SC 29/WG 7, ISO/IEC 23090-5:2021(2E).
しかしながら、非特許文献4は、基本メッシュのAttribute数を示す制御信号attribute countの最大値が大きい場合、それに対応する製品を作るのが困難になり、また、製品コストが増大してしまうという問題点があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、製品コストを大幅に抑えながら、製品を作ることができるメッシュ復号装置、メッシュ復号方法及びプログラムを提供することを目的とする。
本発明の第1の特徴は、メッシュ復号装置であって、アトラスビットストリームを復号して出力するように構成されているアトラスデータ復号部と、基本メッシュビットストリーム、及び、基本メッシュについて頂点座標とConnectivityとUV座標とを含む情報を復号するように構成されている基本メッシュ復号部と、映像コーデックによってテクスチャを復号するように構成されている映像復号部と、を備え、前記アトラスビットストリームは、前記基本メッシュのAttribute数を示す第1制御信号及び前記基本メッシュの各Attributeのタイプを示す第2制御信号を含み、前記基本メッシュビットストリームは、前記基本メッシュのAttribute数を示す第3制御信号、前記基本メッシュの各Attributeのタイプを示す第4制御信号、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号を含み、前記アトラスビットストリームの基本メッシュのAttribute数を示す第1制御信号は、前記基本メッシュビットストリームの基本メッシュのAttribute数を示す第3制御信号と同じ又は小さい値に設定されることを要旨とする。
本発明の第2の特徴は、メッシュ復号方法であって、アトラスビットストリームを復号して出力する工程Aと、基本メッシュビットストリーム、及び、基本メッシュについて頂点座標とConnectivityとUV座標とを含む情報を復号する工程Bと、映像コーデックによってテクスチャを復号する工程Cと、を有し、前記アトラスビットストリームは、前記基本メッシュのAttribute数を示す第1制御信号及び前記基本メッシュの各Attributeのタイプを示す第2制御信号を含み、前記基本メッシュビットストリームは、前記基本メッシュのAttribute数を示す第3制御信号、前記基本メッシュの各Attributeのタイプを示す第4制御信号、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号を含み、前記アトラスビットストリームの基本メッシュのAttribute数を示す第1制御信号は、前記基本メッシュビットストリームの基本メッシュのAttribute数を示す第3制御信号と同じ又は小さい値に設定されることを要旨とする。
本発明の第3の特徴は、コンピュータを、メッシュ復号装置として機能させるプログラムであって、前記メッシュ復号装置は、アトラスビットストリームを復号して出力するように構成されているアトラスデータ復号部と、基本メッシュビットストリーム、及び、基本メッシュについて頂点座標とConnectivityとUV座標とを含む情報を復号するように構成されている基本メッシュ復号部と、映像コーデックによってテクスチャを復号するように構成されている映像復号部と、を備え、前記アトラスビットストリームは、前記基本メッシュのAttribute数を示す第1制御信号及び前記基本メッシュの各Attributeのタイプを示す第2制御信号を含み、前記基本メッシュビットストリームは、前記基本メッシュのAttribute数を示す第3制御信号、前記基本メッシュの各Attributeのタイプを示す第4制御信号、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号を含み、前記アトラスビットストリームの基本メッシュのAttribute数を示す第1制御信号は、前記基本メッシュビットストリームの基本メッシュのAttribute数を示す第3制御信号と同じ又は小さい値に設定されることを要旨とする。
本発明によれば、製品コストを大幅に抑えながら、製品を作ることができるメッシュ復号装置、メッシュ復号方法及びプログラムを提供することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施形態における構成要素は、適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
<第1実施形態>
以下、図1~図20を参照して、本実施形態に係るメッシュ処理システムについて説明する。
以下、図1~図20を参照して、本実施形態に係るメッシュ処理システムについて説明する。
図1は、本実施形態に係るメッシュ処理システム1の構成の一例を示す図である。図1に示すように、メッシュ処理システム1は、メッシュ符号化装置100及びメッシュ復号装置200を備えている。
図2は、本実施形態に係るメッシュ復号装置200の機能ブロックの一例を示す図である。
図2に示すように、メッシュ復号装置200は、多重分離部201と、基本メッシュ復号部202と、細分割部203と、メッシュ復号部204と、パッチ統合部205と、変位量復号部206と、映像復号部207と、アトラスデータ復号部208とを有する。
ここで、基本メッシュ復号部202、細分割部203、メッシュ復号部204及び変位量復号部206は、メッシュを分割したパッチ単位で処理を行うように構成されており、その後、これらの処理結果についてパッチ統合部205で統合されるように構成されていてもよい。
図3の例では、メッシュが、基本面1及び2で構成されるパッチ1と、基本面3及び4で構成されるパッチ2とに分割されている。
多重分離部201は、多重化されたビットストリームを、基本メッシュビットストリームと変位量ビットストリームとテクスチャビットストリームとアトラス(atlas)ビットストリームとに分離するように構成されている。
細分割部203は、制御情報(第1制御情報及び第2制御情報)によって示された細分割手法により、基本メッシュ復号部202によって復号された基本メッシュから、細分割頂点及びそれらの接続情報を生成して出力するように構成されている。基本メッシュは、1つのサブメッシュ又は複数のサブメッシュから構成されている。
ここで、基本メッシュ、追加された細分割頂点、及び、それらの接続情報を、併せて「細分割メッシュ」と呼ぶ。また、サブメッシュ、追加された細分割頂点、及び、それらの接続情報を、併せて「細分割サブメッシュ」と呼ぶ。
メッシュ復号部204は、制御情報及び細分割メッシュ及び細分割頂点法線及び変位量を用いて、復号メッシュを生成して出力するように構成されている。
変位量復号部206は、制御情報に基づき変位量ビットストリームを復号して変位量を生成して出力するように構成されている。
映像復号部207は、映像コーデックによってテクスチャを復号して出力するように構成されている。
アトラスデータ復号部208は、アトラスビットストリームを復号して制御情報を出力するように構成されている。かかる制御信号は、メタデータとして基本メッシュ復号部202、細分割部203、メッシュ復号部204、変位量復号部206及び映像復号部207で利用されてもよい。
<基本メッシュ復号部202>
基本メッシュ復号部202は、基本メッシュビットストリームを復号し、基本メッシュを生成して出力するように構成されている。
基本メッシュ復号部202は、基本メッシュビットストリームを復号し、基本メッシュを生成して出力するように構成されている。
ここで、基本メッシュは、3次元空間における複数の頂点と、かかる複数の頂点を接続する辺とで構成される。
基本メッシュ復号部202は、例えば、非特許文献2に示すDraco又は非特許文献3に記載されている技術を用いて、基本メッシュビットストリームを復号するように構成されていてもよい。
図4に示すように、基本メッシュ復号部202は、分離部202Aと、イントラ復号部202Bと、メッシュバッファ部202Cと、接続情報復号部202Dと、インター復号部202Eとを備える。
(分離部202A)
分離部202Aは、基本メッシュビットストリームを、IフレームのビットストリームとPフレームのビットストリームとに分類するように構成されている。
分離部202Aは、基本メッシュビットストリームを、IフレームのビットストリームとPフレームのビットストリームとに分類するように構成されている。
(イントラ復号部202B)
イントラ復号部202Bは、例えば、非特許文献2に示すDraco又は非特許文献3に記載されている技術を用いて、Iフレームのビットストリームから、Iフレームの頂点の座標及び接続情報を復号するように構成されている。
イントラ復号部202Bは、例えば、非特許文献2に示すDraco又は非特許文献3に記載されている技術を用いて、Iフレームのビットストリームから、Iフレームの頂点の座標及び接続情報を復号するように構成されている。
図5は、イントラ復号部202Bの機能ブロックの一例を示す図である。
図5に示すように、イントラ復号部202Bは、任意イントラ復号部202B1と、整列部202B2とを有する。
任意イントラ復号部202B1は、非特許文献2に示すDraco又は非特許文献3に記載されている技術を含む任意の方式を用いて、Iフレームのビットストリームから、Iフレームの順序無し頂点の座標及び接続情報を復号するように構成されている。
整列部202B2は、順序無し頂点を所定の順序に並び替えることによって頂点を出力するように構成されている。
所定の順序として、例えば、モートンコード順を用いてもよく、ラスタスキャン順を用いてもよい。
また、整列部202B2は、復号された基本メッシュにおいて座標が一致する複数の頂点である重複頂点をまとめて、単一頂点としてから、所定の順序に並び替えてもよい。
(メッシュバッファ部202C)
メッシュバッファ部202Cは、イントラ復号部202Bによって復号されたIフレームの頂点の座標及び接続情報を蓄積するように構成されている。ここで、重複頂点として存在する頂点のインデックスA(k)及びB(k)のペアを所定順で保存する特定バッファが設けられていてもよい。
メッシュバッファ部202Cは、イントラ復号部202Bによって復号されたIフレームの頂点の座標及び接続情報を蓄積するように構成されている。ここで、重複頂点として存在する頂点のインデックスA(k)及びB(k)のペアを所定順で保存する特定バッファが設けられていてもよい。
(接続情報復号部202D)
接続情報復号部202Dは、メッシュバッファ部202Cから取り出したIフレーム又は参照フレームの接続情報をPフレームの接続情報にするように構成されている。
接続情報復号部202Dは、メッシュバッファ部202Cから取り出したIフレーム又は参照フレームの接続情報をPフレームの接続情報にするように構成されている。
(インター復号部202E)
インター復号部202Eは、メッシュバッファ部202Cから取り出した参照フレームの頂点の座標とPフレームのビットストリームから復号した動きベクトルとを加算することによって、Pフレームの頂点の座標を復号するように構成されている。
インター復号部202Eは、メッシュバッファ部202Cから取り出した参照フレームの頂点の座標とPフレームのビットストリームから復号した動きベクトルとを加算することによって、Pフレームの頂点の座標を復号するように構成されている。
更に、インター復号部202Eは、かかる特定バッファに保存されている重複頂点として存在する頂点のインデックスA(k)及びB(k)のペアにより、Pフレームの頂点のインデックスを調整することが可能である。
本実施形態では、図6に示すように、Pフレームの基本メッシュの頂点と参照フレーム(Iフレーム又はPフレーム)の基本メッシュの頂点との間で対応関係が存在する。ここで、インター復号部202Eによって復号される動きベクトルは、Pフレームの基本メッシュの頂点の座標とIフレームの基本メッシュの頂点の座標との差分ベクトルである。
(基本メッシュビットストリームの構成)
以下、図7~図14を参照して、基本メッシュビットストリームの構成の一例について説明する。
以下、図7~図14を参照して、基本メッシュビットストリームの構成の一例について説明する。
図7は、基本メッシュビットストリームの構成の一例について示す図である。
なお、図8~図13において、u(n)は、nビットの符号であることを意味し、ue(v)は、符号無し可変長0次指数ゴロム符号であることを意味する。
図7に示すように、基本メッシュビットストリームは、基本メッシュの復号に関する制御情報の集合であるBMSPS(Basemesh Sequence Parameter Set:基本メッシュシーケンスパラメータセット)やBMFPS(Basemesh Frame Parameter Set:基本メッシュフレームパラメータセット)、BMSH(Basemesh Submesh Header:基本メッシュサブメッシュヘーダ)、BMSDU(Basemesh Submesh Data Unit:基本メッシュサブメッシュデータユニット)を含んでいてもよい。
図7に示すように、BMSPSは、Profile関連のシンタックスを含んでもよい。
また、Profile関連のシンタックスは、図8に示すように、プロファイルツールセットに制限を掛ける制御信号、例えば、bmptc_one_mesh_frame_only_flagやbmptc_intra_frames_only_flagを含んでもよい。
bmptc_one_mesh_frame_only_flagは、基本メッシュにフレーム数が1であると示すフラグ(第1制御信号)である。
bmptc_intra_frames_only_flagは、基本メッシュのサブメッシュがイントラフレーム(Iフレーム)のみであると示すフラグ(第2制御信号)である。
なお、BMSPSは、Profile関連のシンタックス以外に、図9に示すように、インター復号部202Eで使われる制御信号や参照フレーム関連の制御信号、例えば、動きベクトルを予測する隣接頂点数の最大値を示すbmsps_inter_mesh_max_num_neighbours_minus1や参照フレームリストStructureのbmesh_ref_list_struct()を含んでもよい。
なお、BMFPSは、図10に示すように、参照フレーム関連の制御信号、例えば、アクティブな参照フレームリストStructureを示すbmfps_num_ref_idx_default_active_minus1を含んでもよい。
なお、BMSHは、図11に示すように、サブメッシュにおいて参照フレーム関連の制御信号、例えば、bmsh_ref_mesh_frame_list_msps_flagやbmsh_ref_mesh_frame_list_idxを含んでもよい。
(冗長の削除)
しかし、基本メッシュビットストリームは、プロファイルの制御信号によって、不要な情報が符号化されることで符号量が増大する。
しかし、基本メッシュビットストリームは、プロファイルの制御信号によって、不要な情報が符号化されることで符号量が増大する。
例えば、bmtpc_one_mesh_frame_only_flag又はbmtpc_intra_frames_only_flagが1である場合は、Pフレームが存在しないため、BMSPSやBMFPSやBMSH等で動きベクトルに関する情報や参照フレーム関連情報の符号化が不要である。本十形態では、かかる情報は、インター予測関連情報と呼ばれる。
そこで、bmtpc_one_mesh_frame_only_flag又はbmtpc_intra_frames_only_flagが1である時に、インター予測関連情報がシグナルされないように制御する必要がある。
本実施形態では、インター予測関連情報がシグナルされないように制御するため、図4に示すように、基本メッシュ復号部202は、制御信号を取得する制御信号取得部202Fと、制御信号取得部202Fで取得した制御信号によりインター予測関連情報を復号するかどうかについて判断する判断部202Gとを更に備える。
制御信号取得部202Fは、bmtpc_one_mesh_frame_only_flag又はbmtpc_intra_frames_only_flagを取得してもよい。
例えば、bmtpc_one_mesh_frame_only_flag又はbmtpc_intra_frames_only_flagが1である場合、インター予測関連情報がシグナルされないことにされてもよい。
したがって、判断部202Gは、bmtpc_one_mesh_frame_only_flag又はbmtpc_intra_frames_only_flagが1である時に、インター予測関連情報を復号しないと判断する。
ただし、判断部202Gは、インター予測関連情報がシグナルされない場合、インター予測関連情報の値を事前に決めた値にしてもよい。
或いは、制御信号取得部202Fは、インター予測情報を符号化することを示すbmsps_enable_prediction_flag(第3制御信号)を取得してもよい。
例えば、bmsps_enable_prediction_flagが0である場合、インター予測関連情報がシグナルされないことにしてもよい。
したがって、判断部202Gは、bmsps_enable_prediction_flagが0である場合、インター予測関連情報を復号しないと判断する。
ただし、判断部202Gは、インター予測関連情報を復号しない場合、インター予測関連情報の値を事前に決めた値にしてもよい。
なお、制御信号取得部202Fは、(式1)を用いて、bmsps_enable_prediction_flagを算出してもよい。かかる場合、bmsps_enable_prediction_flagは、シグナルされない。
bmsps_enable_prediction_flag=Not(bmtpc_one_mesh_frame_only_flag Or bmtpc_intra_frames_only_flag) … (式1)
つまり、制御信号取得部202Fは、bmtpc_one_mesh_frame_only_flagが1である場合、bmsps_enable_prediction_flagを0にする。
つまり、制御信号取得部202Fは、bmtpc_one_mesh_frame_only_flagが1である場合、bmsps_enable_prediction_flagを0にする。
また、制御信号取得部202Fは、bmtpc_intra_frames_only_flagが1である時に、bmsps_enable_prediction_flagを0にする。
或いは、bmsps_enable_prediction_flagがシグナリングされる場合、図12に示すように、BMSPSのシンタックスにbmsps_enable_prediction_flagを含め、制御信号取得部202Fは、BMSPSから bmsps_enable_prediction_flagから復号してもよい。かかる場合、bmsps_enable_prediction_flagは、シグナルされる。
なお、制御信号取得部202Fは、bmsps_enable_prediction_flagがビットストリームに存在しない場合、bmsps_enable_prediction_flagを1にする。
ただし、制御信号取得部202Fは、bmsps_enable_prediction_flagが1である場合、bmsps_enable_prediction_flagを0にする。
また、制御信号取得部202Fは、bmtpc_intra_frames_only_flagが1である場合、bmsps_enable_prediction_flagを0にする。
例えば、インター予測関連情報は、図12~図14に示すような制御信号(例えば、BMSPSやBMFPSやBMSH)である。
ただし、判断部202Gは、図14に示すBMSHにおいては、フレームタイプを用いて判断してもよい。
かかる構成によれば、必要な時のみにインター予測関連情報を符号化することにより、符号化効率を向上するという効果が期待できる。
なお、基本メッシュビットストリームにおいて1枚のフレームしかないフラグ(非特許文献4の制御信号bmptc_one_mesh_frame_only_flag)の値及びアトラスにおいて1枚のフレームしかないフラグ(非特許文献5の制御信号ptc_one_v3c_frame_only_flag)の値が同じであるというConformance requirementを設ける。
かかる構成によれば、bmptc_one_mesh_frame_only_flag及びptc_one_v3c_frame_only_flagのConflictを避けることという効果が期待できる。
(Attribute count/index関連情報)
以下、図15を参照して、アトラスビットストリーム及び基本メッシュビットストリームにおいて、基本メッシュのAttribute関連の制御信号の一例について説明する。
以下、図15を参照して、アトラスビットストリーム及び基本メッシュビットストリームにおいて、基本メッシュのAttribute関連の制御信号の一例について説明する。
アトラスビットストリームは、図15に示すように、基本メッシュのAttribute数を示す第1制御信号vps_ext_bmesh_data_attribute_countを含んでもよい。
また、アトラスビットストリームは、基本メッシュの各Attributeのタイプを示す第2制御信号vps_ext_bmesh_attribute_typeを含んでもよい。
基本メッシュビットストリームのBMSPSは、図15に示すように、基本メッシュのAttribute数を示す第3制御信号bmsps_mesh_attribute_countを含んでもよい。
また、基本メッシュビットストリームのBMSPSは、基本メッシュの各Attributeのタイプを示す第4制御信号bmsps_mesh_attribute_type_idを含んでもよい。
また、基本メッシュビットストリームのBMSPSは、Iフレームの各Attributeのインデックスを示す第5制御信号bmsps_mesh_attribute_indexを含んでもよい。
非特許文献4では、制御信号取得部202Fは、u(8)で、vps_ext_bmesh_data_attribute_countを復号してもよい。vps_ext_bmesh_data_attribute_countは、0~255のレンジを有する。すなわち、vps_ext_bmesh_data_attribute_countの最大値は255である。
そこで、非特許文献4のAttributeが4096×4096の映像である場合は、1フレームのAttributeだけで、48MBが必要になる。
ここで、Attribute数に比率して製品のメモリーが必要である。Attribute数の最大値が255であれば、各Attributeで1フレームしか保存しなくても、最大で12,240MBのメモリーが必要になる可能性がある。よって、12GB以上のメモリーを製品で用意しないといけない。
一方、Attribute数の最大値が127であれば、各Attributeで1フレームを保存する場合に、最大で6,096MBのメモリーを準備すれば大丈夫であるため、必要なメモリーの容量を半減させる効果が期待できる。
なお、非特許文献5で定義されるvps_ext_bmesh_data_attribute_countは、一定数が必要である。その最小値は、映像復号部207で復号されるテクスチャ数を示す制御信号ai_attribute_countと同じ又は多い数である。
一方、制御信号取得部202Fは、u(7)で、ai_attribute_countを復号してもよい。ai_attribute_countは、0~127のレンジを有する。すなわち、ai_attribute_countの最大値は、127である。
そこで、本実施形態では、vps_ext_bmesh_data_attribute_countの最小値を、ai_attribute_countの最大値に設定し、なるべく小さいレンジにする。
例えば、制御信号取得部202Fは、u(7)で、vps_ext_bmesh_data_attribute_countを復号してもよい。かかる場合、vps_ext_bmesh_data_attribute_countは、0~127のレンジを有する。
なお、ai_attribute_countの最大値が、プロファイルやレベル等の別場所で再定義されたら、vps_ext_bmesh_data_attribute_countの最小値を再定義された最大値とし、なるべく小さいレンジにしてもよい。
例えば、あるプロファイルやレベルでai_attribute_countの最大値をMAX_ATTRIBUTE_COUNT(所定値、例えば、15)にした場合、vps_ext_bmesh_data_attribute_countの最大値をMAX_ATTRIBUTE_COUNT(例えば、15)やMAX_ATTRIBUTE_COUNTより少し大きい値(例えば、31)にしてもよい。
なお、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号bmsps_mesh_attribute_indexは、0~127のレンジを有する。
よって、基本メッシュ復号部202は、u(7)で、基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号bmsps_mesh_attribute_indexを復号してもよい。
なお、アトラスビットストリームの基本メッシュの各Attributeのタイプを示す第2制御信号及び基本メッシュビットストリームの基本メッシュの各Attributeのタイプを示す第4制御信号の取り得る値を一致させてもよい。
例えば、アトラスビットストリーム及び前記基本メッシュビットストリームの一例について、表1又は表2に示す。
(インター復号部202E)
図16は、インター復号部202Eの機能ブロックの一例を示す図である。
図16は、インター復号部202Eの機能ブロックの一例を示す図である。
図16に示すように、インター復号部202Eは、動きベクトル残差復号部202E1と、動きベクトルバッファ部202E2と、動きベクトル予測部202E3と、動きベクトル算出部202E4と、加算器202E5とを有する。
動きベクトル残差復号部202E1は、PフレームのビットストリームからMVR(Motion Vector Residual)を生成するように構成されている。
ここで、MVRは、MV(Motion Vector)とMVP(Motion Vector Prediction)との差分を示す動きベクトル残差である。MVは、対応するIフレームの頂点の座標とPフレームの頂点の座標との間の差分ベクトル(動きベクトル)である。MVPは、MVを用いて対象の頂点のMVの予測した値(動きベクトルの予測値)である。
動きベクトルバッファ部202E2は、動きベクトル算出部202E4によって出力されたMVを順次に保存するように構成されている。
動きベクトル予測部202E3は、復号対象の頂点と接続している頂点について、動きベクトルバッファ部202E2から復号済みのMVを取得し、図17に示すように、取得された復号済みのMVの全部又は一部を用いて、復号対象の頂点のMVPを出力するように構成されている。
動きベクトル算出部202E4は、動きベクトル残差復号部202E1で生成されたMVRと動きベクトル予測部202E3から出力されたMVPとを加算し、復号対象の頂点のMVを出力するように構成されている。
加算器202E5は、対応関係を持つ参照フレーム(Iフレーム又はPフレーム)の復号済みの基本メッシュから得られた復号対象の頂点に対応する頂点の座標と、動きベクトル算出部202E3から出力された動きベクトルMVとを加算し、復号対象の頂点の座標を出力するように構成されている。
(メッシュバッファ部202C)
メッシュバッファ部202Cは、1枚又は複数枚の参照用の復号基本メッシュを、所定順番で保存するように構成されている。
メッシュバッファ部202Cは、1枚又は複数枚の参照用の復号基本メッシュを、所定順番で保存するように構成されている。
なお、かかる基本メッシュは、フレーム番号やサブメッシュ番号等のメタデータや少なくとも各頂点の座標及び当該頂点のインデックスを有しており、参照フレームリストで決められた所定順番でメッシュバッファ部202Cに保存される。
ここで、図18に示すように、かかる参照フレームリスト(ref_list0)は、メッシュバッファ部202Cに保存されている全ての参照用の復号基本メッシュを特定する情報のリストである。
参照フレームリストは、図18に示すように、ビットストリームから復号された制御信号によって決められてもよいし、自然にフレームの復号順から算出されてもよい。
なお、ビットストリームから復号された制御信号は、復号対象フレームとの相対的な距離で示されていてもいし、絶対値であるのフレームインデックスであってもよい。
さらに、制御信号により、短期的な参照フレーム又は長期的な参照フレームが使われてもよい。
例えば、短期的な参照フレームを使うと、当フレーム(cur)及び参照フレーム(ref)の表示順(Display Order)の差の絶対値(abs_delta_mfoc_st)及びその符号(sign_flag)をビットストリームから復号し、参照フレームの表示順(Display Order)を下式で指定してもよい。
If(sign_flag){
Display Order(ref)=Display Order(cur)+abs_delta_mfoc_st
}else{
Display Order(ref)=Display Order(cur)-abs_delta_mfoc_st
}
また、自然にフレームの復号順から算出する方法が用いられる場合、例えば、参照フレームリストにおいて、制御信号が存在していない時に、直前に復号済みのフレームから一定のフレーム数で順次に並べられてもよい。つまり、参照フレームリストは、{0, -1, -2,…, -(N―1)}とされてもよい。
If(sign_flag){
Display Order(ref)=Display Order(cur)+abs_delta_mfoc_st
}else{
Display Order(ref)=Display Order(cur)-abs_delta_mfoc_st
}
また、自然にフレームの復号順から算出する方法が用いられる場合、例えば、参照フレームリストにおいて、制御信号が存在していない時に、直前に復号済みのフレームから一定のフレーム数で順次に並べられてもよい。つまり、参照フレームリストは、{0, -1, -2,…, -(N―1)}とされてもよい。
基本的に、参照フレームリストは、特別な事情(例えば、Re-ordering指示を受ける時)以外に各フレームで変化しない。
メッシュバッファ部202Cは、以下のように更新されてもよい。
メッシュバッファ部202Cは、基本メッシュが復号された時に、Iフレーム及びPフレームの場合、参照フレームリストで決められた所定順番により1枚又は複数枚の既存の参照フレームを削除し、復号済みのフレームの基本メッシュを含めて1枚又は複数枚の基本メッシュを入れて、又は、複数枚の基本メッシュから1枚の基本メッシュを作成して入れて、参照フレームの順番を調整する。
かかる削除作業は、メッシュバッファ部202Cが満了する時のみに実施されてもよい。なお、メッシュバッファ部202Cで保存できる基本メッシュの数は、事前に決められている。ここで、本実施形態では、かかる基本メッシュの数に到達すると、メッシュバッファ部202Cが満了すると定義するものとする。
上述の作成作業では、復号済みのフレームの基本メッシュ及びメッシュバッファ部202Cに保存されている既存の基本メッシュに対応する頂点の座標について重み付け平均して1枚の基本メッシュにしてもよい。
かかる重み付け平均で用いられる重みは、事前に決められていてもよいし、フレームインデックスを用いて算出されてもよいし、制御信号から復号されてもよい。
なお、メッシュバッファ部202Cは、ビットストリームから復号された制御信号によりRe-orderingの指示を示す制御信号を受けた時に、図14に示すように、参照フレームリストを更新し、更新した参照フレームリスト(ref_list0)で決められた所定順番により参照フレームの順番を調整する。
なお、上述の非特許文献4で定義したサブメッシュが存在するときに、全てのサブメッシュを同じ制御信号(smh_mesh_frm_order_cnt_lsb)にすること又は制御信号(smh_mesh_frm_order_cnt_lsb)を全てのサブメッシュに適用させることにする。
かかる制御信号(smh_mesh_frm_order_cnt_lsb)によって示される値は、復号対象フレームの表示順との差分であってもよいし、事前に決めたフレーム集団MaxMeshFrmOrderCntLsbの中の順番であってもよい。
なお、復号順(Decode Order)と表示順(Display Order)とが異なる時に、復号済みの基本メッシュが復号順(Decode Order)で並んでいると、基本メッシュ復号部202は、復号済みの基本メッシュを表示順(Display Order)に並び替えてもよい。
なお、Temporal scalabilityを実現するため、各フレームにおいて基本メッシュと変位量とテクスチャとをそれぞれ復号するかどうかを示す制御信号をそれぞれ定義し、ビットストリームからそれぞれ復号する。
また、同じフレーム内において、アトラス及び基本メッシュのTemporal_IDを一致させてもよい。また、同じフレーム内において、アトラス及びテクスチャのTemporal_IDを一致させてもよい。また、同じフレーム内において、アトラス及び変位量のTemporal_IDを一致させてもよい。
かかる構成によれば、フレームが復号できないことや無駄なデータを回避することができるという効果が期待できる。
なお、同じTemporal_IDを持つ隣接するフレームの間隔が一定であることが望ましい。
同じTemporal_IDを持つ隣接するフレームは、POCが最も近い。
上述のようにフレームの間隔を一定にすることで、復号したフレームを表示する際に一定のフレームレートを保つ効果が期待できる。
さらに、同じ表示順を持つアトラス及び基本メッシュの復号順を一致させてもよい。また、同じ表示順を持つアトラス及び変位量の復号順を一致させてもよい。また、同じ表示順を持つアトラス及びテクスチャの復号順を一致させてもよい。
または、同じ表示順を持つアトラス及び基本メッシュのランダムアクセスポイントを一致させてもよい。また、同じ表示順を持つアトラス及び変位量のランダムアクセスポイントを一致させてもよい。また、同じ表示順を持つアトラス及びテクスチャのランダムアクセスポイントを一致させてもよい。なお、ランダムアクセスポイントは、非特許文献4又は非特許文献5で定義されている。
かかる構成によれば、基本メッシュ、変位量及びテクスチャをそれぞれ復号する際に、互いの復号を待つことなく、メッシュを再現できるという効果が期待できる。
さらに、復号対象フレームの制御信号Temporal_IDよりも高いTemporal_IDを持つフレームは、かかる復号対象フレームの参照フレームにしない。
これによって、参照フレームが捨てられる可能性が無くなるという効果が期待できる。
以下に、上述のTemporal_IDを用いてTemporal scalabilityを実現する一例について述べる。
アトラス、基本メッシュ、変位量及びテクスチャのビットストリームは、ネットワーク抽象レイヤ(NAL)ユニットによりカプセル化される。NALユニットは、図22のようなNALヘッダを持ってもよい。
NALヘッダ内の最後の3ビットとして定義したTIDは、Temporal_IDプラス1である。TIDの範囲は、1から7までとし、ゼロを禁止する。
NALヘッダ内のTIDの直前の6ビットとして定義されたLayerID/R6は、NALユニットが属するレイヤの識別子を指定する。
LayerID/R6の値は、0~62の範囲内でなければならない。値63は、将来的にISO/IECによって指定される可能性がある。
ビットストリームのデコードユニットのデータ量を決定する以外の目的で、メッシュ復号装置200は、NALユニット内の値63に続く全てのデータを無視し、指定されたプロファイルに準拠するメッシュ復号装置200は、LayerID-R6の値が0でない全てのNALユニットを無視する(つまり、ビットストリームから取り除き、破棄する)。
LayerID/R6の値63は、将来の拡張で拡張レイヤ識別子を示すために使用することができる。
なお、非特許文献4で定義されたサブメッシュが存在するときは、全てのサブメッシュを同じTIDにすること又はTIDを全てのサブメッシュに適用させることにする。
アトラスについては、非特許文献5を利用でき、変位量及びテクスチャについては、映像符号化方式のHEVCやVVCを利用できるため、以下は、基本メッシュについて説明する。
図20に示すように、基本メッシュビットストリームのBMSPSは、u(3)で、最大のTemporalサブレイヤ数を示す制御信号bmsps_max_sub_layers_minus1を含んでもよい。
また、各Temporalサブレイヤで最大の基本メッシュのバッファサイズを示す制御信号bmsps_max_dec_mesh_frame_buffering_minus1及び最大の復号対象フレームの表示順との差分を示す制御信号bmsps_max_num_reorder_framesを含んでもよい。
符号化された基本メッシュフレームの全ての BMCL NALユニットのLayerID/R6の値は、同じでなければならない。符号化された基本メッシュフレームのLayerID/R6の値は、符号化された基本メッシュフレームのBMCL NALユニットのLayerID/R6の値である。
NALTypeが、NAL_EOBと等しい場合、LayerID/R6の値は、0と等しくなければならない。
NALTypeが、非特許文献4で定義されたNAL_BLA_W_LPからNAL_RSV_BMCL_29までの範囲にある場合、つまり、IRAPコード化された基本メッシュフレームに属する場合、Temporal_IDは、0でなければならない。
NALTypeが、NAL_TSA_R又はNAL_TSA_Nに等しい場合、Temporal_IDは、0に等しくてはならない。
NALTypeが0に等しく、NALTypeがNAL_STSA_R又はNAL_STSA_Nに等しい場合、Temporal_IDは、0に等しくてはならない。
Temporal_IDの値は、アクセスユニット内の全てのBMCL NALユニットについて同じでなければならない。
コード化された基本メッシュフレーム又はアクセスユニットのTemporal_IDの値は、コード化された基本メッシュフレーム又はアクセスユニットのBMCL NALユニットのTemporal_IDの値である。
サブレイヤ表現のTemporal_IDの値は、サブレイヤ表現内の全てのBMCL NALユニットのTemporal_IDの最大値である。
非BMCL NALユニットのTemporal_IDの値は、以下のように制限される。
- NALTypeがNAL_BMSPSに等しい場合、Temporal_IDは0でなければならず、NALユニットを含むアクセスユニットのTemporal_IDは、0でなければならない。
- それ以外の場合で、NALTypeがNAL_EOS又はNAL_EOBに等しい場合、Temporal_IDは、0でなければならない。
- それ以外の場合で、NALTypeがNAL_AUD又はNALLFDDに等しい場合、Temporal_IDは、NALLユニットを含むアクセスユニットのTemporal_IDに等しくなければならない。
- それ以外の場合、Temporal_IDは、NALユニットを含むアクセスユニットのTemporal_ID以上でなければならない。
- NALTypeがNAL_BMSPSに等しい場合、Temporal_IDは0でなければならず、NALユニットを含むアクセスユニットのTemporal_IDは、0でなければならない。
- それ以外の場合で、NALTypeがNAL_EOS又はNAL_EOBに等しい場合、Temporal_IDは、0でなければならない。
- それ以外の場合で、NALTypeがNAL_AUD又はNALLFDDに等しい場合、Temporal_IDは、NALLユニットを含むアクセスユニットのTemporal_IDに等しくなければならない。
- それ以外の場合、Temporal_IDは、NALユニットを含むアクセスユニットのTemporal_ID以上でなければならない。
なお、NALユニットがBMCLでない場合、Temporal_IDの値は、非BMCL NALユニットが適用される全てのアクセスユニットのTemporal_ID値の最小値に等しくなる。
NALTypeがNAL_BMFPSに等しい場合、Temporal_IDは、最初の符号化基本メッシュフレームのTemporal_IDが0であるビットストリームの先頭に全ての基本メッシュフレームパラメータセット(BMFPS)が含まれるため、含まれるアクセスユニットのTemporal_ID以上であることができる。
なお、スキップ復号部202Fは、指定されたtIDTargetを参照して、Temporal_IDがtIDTargetより高いNALユニットを復号せずに捨てることにする。
ここで、tIDTargetは、事前に決めた値により指定されてもよいし、ネットワーク状況やメッシュ復号装置200の端末能力により指定されてもよい。
例えば、有線のケースよりも無線のケースの方が低いtIDTargetが指定される。また、ネットワーク状況が悪い場合に、低いtIDTargetが指定される。また、低スペックのメッシュ復号装置200で復号される場合、低いtIDTargetが指定される。
ただし、ビットストリームの適合性の要件としては、Temporal_IDがtIDTargetより高くないNALユニットが少なくとも1つはビットストリームに存在しなければならないということとする。
以下に 、上述のTemporal_IDを用いて、Temporal scalabilityを実現する変更例について述べる。
アトラス、基本メッシュ、変位量及びテクスチャのビットストリームは、ネットワーク抽象レイヤ(NAL)ユニットによりカプセル化される。NALユニットは、図19に示すようなNALヘッダを持ってもよい。
NALヘッダ内の最後の3ビットとして定義したTIDは、Temporal_IDプラス1である。TIDの範囲は、1から7までとし、ゼロを禁止する。
NALヘッダ内のTIDの直前の6ビットとして定義されたLayerID/R6は、NALユニットが属するレイヤの識別子を指定する。
LayerID/R6の値は、0~62の範囲内でなければならない。値63は、将来的にISO/IECによって指定される可能性がある。
ビットストリームのデコードユニットのデータ量を決定する以外の目的で、メッシュ復号装置200は、NALユニット内の値63に続く全てのデータを無視し、指定されたプロファイルに準拠するメッシュ復号装置200は、LayerID-R6の値が0でない全てのNALユニットを無視する(つまり、ビットストリームから取り除き、破棄する)。
LayerID/R6の値63は、将来の拡張で拡張レイヤ識別子を示すために使用することができる。
なお、非特許文献4で定義された基本メッシュのサブメッシュが存在するときは、全てのサブメッシュを同じTIDにすること又はTIDを全てのサブメッシュに適用させることにする。
アトラス、基本メッシュ、変位量及びテクスチャの各ビットストリームが独立してTIDを設定してもよい。例えば、アトラスについては、非特許文献5のAnnex AによりTIDをゼロに固定する。よって、基本メッシュ、変位量及びテクスチャが、それぞれTIDを独立に設定する。
つまり、コンテンツにより、基本メッシュ、変位量及びテクスチャの少なくとも1つが、Temporal_IDをゼロに固定してもよい。その場合は、LD設定も利用可能である。表3に、一例を示す。
各ビットストリームにおいて独立に設定しても、変位量及びテクスチャについては、映像符号化方式のHEVCやVVCを利用し、基本メッシュについては、上述の実施形態を利用する。
各ビットストリームにおいて独立に設定すると、それぞれのビットストリームで指定されたtIDTargetを参照して、TIDがtIDTargetより高いNALユニットを復号せずに捨てることにする。
ここで、tIDTargetは、事前に決めた値により指定されてもよいし、ネットワーク状況やメッシュ復号装置200の端末能力により指定されてもよい。
例えば、有線のケースよりも無線のケースの方が低いtIDTargetが指定される。また、ネットワーク状況が悪い場合に、低いtIDTargetが指定される。また、低スペックのメッシュ復号装置200で復号される場合、低いtIDTargetが指定される。
ただし、ビットストリームの適合性の要件としては、TIDがtIDTargetより高くないNALユニットが少なくとも1つはビットストリームに存在しなければならないということとする。
一方、各ビットストリームが独立に設定すると、特定のフレームで基本メッシュと変位量、テクスチャの中に一つでも捨てられたら、他も捨てることにする。
或いは、各ビットストリームが独立に設定すると、特定のフレームで基本メッシュが捨てられたら、変位量及びテクスチャも捨てて、Reconstruction processを実施しないことにする。ただし、変位量が捨てられたら、変位量の値を全てゼロにし、Reconstruction processを実施することにする。また、テクスチャが捨てられたら、テクスチャの値を全てゼロにし、Reconstruction processを実施することにする。
なお、各フレーム(イントラフレーム、インターフレーム及びスキップフレーム)でサブメッシュの数が異なってもよい。
かかる場合、イントラ復号部202B、インター復号部202E及びスキップ復号部202Fは、各フレームにおけるサブメッシュの各々に対して、重複しないサブメッシュIDを付与する。
また、イントラ復号部202B及びインター復号部202Eは、フレーム間で対応するサブメッシュに対して異なるSubmeshID(サブメッシュID)を付与してもよい。
ただし、インター復号部202Eは、参照フレームの中で同じSubmeshIDを持つサブメッシュのみを参照することができるものとする。
或いは、インター復号部202Eは、参照フレームの中で同じ頂点数を持つサブメッシュのみを参照することができるものとする。
或いは、イントラ復号部202B及びインター復号部202Eは、参照フレームの中で指定されたサブメッシュを参照することができるものとする。
かかる場合、インター復号部202Eは、参照フレーム内にサブメッシュが複数ある場合、現サブメッシュのビットストリームから、参照可能なサブメッシュのSubmeshIDを指定する制御信号を復号してもよい。
一方、インター復号部202Eは、参照フレーム内にサブメッシュが1つのみある場合、かかるサブメッシュを参照可能なサブメッシュとしてもよい。
ただし、上述の制御信号が存在しない場合、インター復号部202E又はスキップ復号部202Fは、参照可能なサブメッシュのSubmeshIDを、現フレーム内のサブメッシュと同じSubmeshIDとする。
また、インター復号部202Eは、ビットストリームから、上述の制御信号が存在するかどうかを示す制御信号を復号してもよい。
なお、インター復号部202Eは、上述の参照可能なサブメッシュを決める方法を選択する制御信号を復号してもよい。
細分割部203及び変位量復号部206は、非特許文献4に従ってもよい。
本実施形態によれば、不要な情報を符号化・復号しないことで、符号化効率を向上させることができる。
具体的には、本実施形態によれば、基本メッシュにおいて1枚のフレームしかない場合(非特許文献4のbmptc_one_mesh_frame_only_flagが1である場合)や全てのフレームがイントラフレームである場合(非特許文献4のbmptc_intra_frames_only_flagが1である場合)に、インター予測及び参照フレーム関連シンタックス等の不要な情報を符号化・復号しないことで、符号量を減らすことができる。
また、本実施形態によれば、基本メッシュの制御信号bmptc_one_mesh_frame_only_flag及びアトラスの制御信号ptc_one_v3c_frame_only_fragのConflictを避けることができる。
具体的には、本実施形態によれば、bmptc_one_mesh_frame_only_flag及びptc_one_v3c_frame_only_flagを調和するConformance requirementを設けることにより、両制御信号のConflictを避けることができる。
また、本実施形態によれば、attribute countの最大値を合理化する(最大値を抑える)ことにより、製品コストを大幅に抑えながら、製品を作るのが可能にすることができる。
具体的には、本実施形態によれば、attribute countの最大値を合理化する(すなわち、最大値を抑える)ことにより、製品コストを大幅に抑えながら製品を作ることを可能にする。
上述のメッシュ符号化装置100及びメッシュ復号装置200は、コンピュータに各機能(各工程)を実行させるプログラムであって実現されていてもよい。
なお、本実施形態によれば、例えば、動画像通信において総合的なサービス品質の向上を実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
1…メッシュ処理システム
100…メッシュ符号化装置
200…メッシュ復号装置
201…多重分離部
202…基本メッシュ復号部
202A…分離部
202B…イントラ復号部
202B1…任意イントラ復号部
202B2…整列部
202C…メッシュバッファ部
202D…接続情報復号部
202E…インター復号部
202E1…動きベクトル残差復号部
202E2…動きベクトルバッファ部
202E3…動きベクトル予測部
202E4…動きベクトル算出部
202E5…加算器
203…細分割部
204…メッシュ復号部
205…パッチ統合部
206…変位量復号部
207…映像復号部
208…アトラスデータ復号部
100…メッシュ符号化装置
200…メッシュ復号装置
201…多重分離部
202…基本メッシュ復号部
202A…分離部
202B…イントラ復号部
202B1…任意イントラ復号部
202B2…整列部
202C…メッシュバッファ部
202D…接続情報復号部
202E…インター復号部
202E1…動きベクトル残差復号部
202E2…動きベクトルバッファ部
202E3…動きベクトル予測部
202E4…動きベクトル算出部
202E5…加算器
203…細分割部
204…メッシュ復号部
205…パッチ統合部
206…変位量復号部
207…映像復号部
208…アトラスデータ復号部
Claims (8)
- メッシュ復号装置であって、
アトラスビットストリームを復号して出力するように構成されているアトラスデータ復号部と、
基本メッシュビットストリーム、及び、基本メッシュについて頂点座標とConnectivityとUV座標とを含む情報を復号するように構成されている基本メッシュ復号部と、
映像コーデックによってテクスチャを復号するように構成されている映像復号部と、を備え、
前記アトラスビットストリームは、前記基本メッシュのAttribute数を示す第1制御信号及び前記基本メッシュの各Attributeのタイプを示す第2制御信号を含み、
前記基本メッシュビットストリームは、前記基本メッシュのAttribute数を示す第3制御信号、前記基本メッシュの各Attributeのタイプを示す第4制御信号、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号を含み、
前記アトラスビットストリームの基本メッシュのAttribute数を示す第1制御信号は、前記基本メッシュビットストリームの基本メッシュのAttribute数を示す第3制御信号と同じ又は小さい値に設定されることを特徴とするメッシュ復号装置。 - 前記アトラスデータ復号部は、u(7)で、前記第1制御信号を復号することを特徴とする請求項1に記載のメッシュ復号装置。
- 前記基本メッシュ復号部は、u(7)で、前記第5制御信号を復号することを特徴とする請求項1に記載のメッシュ復号装置。
- 前記第2制御信号及び前記第4制御信号の取り得る値を一致させることを特徴とする請求項1に記載のメッシュ復号装置。
- 前記テクスチャ数を示す制御信号が再定義された場合、前記基本メッシュのAttribute数を示す制御信号の最小値は、前記再定義された前記テクスチャ数を示す制御信号の最大値に設定されることを特徴とする請求項1に記載のメッシュ復号装置。
- 前記テクスチャ数を示す制御信号の最大値が所定値に設定された場合、前記基本メッシュのAttribute数を示す制御信号の最大値は、前記所定値以上に設定されることを特徴とする請求項1に記載のメッシュ復号装置。
- メッシュ復号方法であって、
アトラスビットストリームを復号して出力する工程Aと、
基本メッシュビットストリーム、及び、基本メッシュについて頂点座標とConnectivityとUV座標とを含む情報を復号する工程Bと、
映像コーデックによってテクスチャを復号する工程Cと、を有し、
前記アトラスビットストリームは、前記基本メッシュのAttribute数を示す第1制御信号及び前記基本メッシュの各Attributeのタイプを示す第2制御信号を含み、
前記基本メッシュビットストリームは、前記基本メッシュのAttribute数を示す第3制御信号、前記基本メッシュの各Attributeのタイプを示す第4制御信号、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号を含み、
前記アトラスビットストリームの基本メッシュのAttribute数を示す第1制御信号は、前記基本メッシュビットストリームの基本メッシュのAttribute数を示す第3制御信号と同じ又は小さい値に設定されることを特徴とするメッシュ復号方法。 - コンピュータを、メッシュ復号装置として機能させるプログラムであって、
前記メッシュ復号装置は、
アトラスビットストリームを復号して出力するように構成されているアトラスデータ復号部と、
基本メッシュビットストリーム、及び、基本メッシュについて頂点座標とConnectivityとUV座標とを含む情報を復号するように構成されている基本メッシュ復号部と、
映像コーデックによってテクスチャを復号するように構成されている映像復号部と、を備え、
前記アトラスビットストリームは、前記基本メッシュのAttribute数を示す第1制御信号及び前記基本メッシュの各Attributeのタイプを示す第2制御信号を含み、
前記基本メッシュビットストリームは、前記基本メッシュのAttribute数を示す第3制御信号、前記基本メッシュの各Attributeのタイプを示す第4制御信号、前記基本メッシュのIフレームの各Attributeのインデックスを示す第5制御信号を含み、
前記アトラスビットストリームの基本メッシュのAttribute数を示す第1制御信号は、前記基本メッシュビットストリームの基本メッシュのAttribute数を示す第3制御信号と同じ又は小さい値に設定されることを特徴とするプログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024-109213 | 2024-07-05 | ||
| JP2024109213A JP2026008476A (ja) | 2024-07-05 | 2024-07-05 | メッシュ復号装置、メッシュ復号方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026009477A1 true WO2026009477A1 (ja) | 2026-01-08 |
Family
ID=98317819
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/002846 Pending WO2026009477A1 (ja) | 2024-07-05 | 2025-01-29 | メッシュ復号装置、メッシュ復号方法及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2026008476A (ja) |
| WO (1) | WO2026009477A1 (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021206291A1 (ko) * | 2020-04-08 | 2021-10-14 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법 |
| WO2023041838A1 (en) * | 2021-09-14 | 2023-03-23 | Nokia Technologies Oy | An apparatus, a method and a computer program for volumetric video |
| US20230290008A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Image/video-based mesh compression |
| WO2024084326A1 (en) * | 2022-10-17 | 2024-04-25 | Nokia Technologies Oy | Adaptive displacement packing for dynamic mesh coding |
-
2024
- 2024-07-05 JP JP2024109213A patent/JP2026008476A/ja active Pending
-
2025
- 2025-01-29 WO PCT/JP2025/002846 patent/WO2026009477A1/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021206291A1 (ko) * | 2020-04-08 | 2021-10-14 | 엘지전자 주식회사 | 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법 |
| WO2023041838A1 (en) * | 2021-09-14 | 2023-03-23 | Nokia Technologies Oy | An apparatus, a method and a computer program for volumetric video |
| US20230290008A1 (en) * | 2022-03-11 | 2023-09-14 | Apple Inc. | Image/video-based mesh compression |
| WO2024084326A1 (en) * | 2022-10-17 | 2024-04-25 | Nokia Technologies Oy | Adaptive displacement packing for dynamic mesh coding |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2026008476A (ja) | 2026-01-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114402597B (zh) | 应用自适应环路滤波器的视频或图像编码 | |
| CN114391252B (zh) | 基于自适应环路滤波器的视频或图像编码 | |
| CN114424531B (zh) | 基于环路内滤波的视频或图像编码 | |
| WO2025009221A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| CN111587575A (zh) | 基于高频归零确定变换系数扫描顺序的方法及其设备 | |
| WO2026009477A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2026009476A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025215917A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025215918A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025215921A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2026088614A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025215922A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2026088615A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2026088613A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025146751A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025146754A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025146749A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025146752A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025146753A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025146750A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025074664A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| JP2025009038A (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| JP2025064208A (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム | |
| WO2025074662A1 (ja) | メッシュ復号装置、メッシュ復号方法及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25832591 Country of ref document: EP Kind code of ref document: A1 |