WO2021201386A1 - 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 - Google Patents

포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 Download PDF

Info

Publication number
WO2021201386A1
WO2021201386A1 PCT/KR2021/000083 KR2021000083W WO2021201386A1 WO 2021201386 A1 WO2021201386 A1 WO 2021201386A1 KR 2021000083 W KR2021000083 W KR 2021000083W WO 2021201386 A1 WO2021201386 A1 WO 2021201386A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
video
image
geometry
cloud data
Prior art date
Application number
PCT/KR2021/000083
Other languages
English (en)
French (fr)
Inventor
윤여진
오세진
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of WO2021201386A1 publication Critical patent/WO2021201386A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • Embodiments provide point cloud content to provide users with various services such as VR (Virtual Reality), AR (Augmented Reality, Augmented Reality), MR (Mixed Reality), and autonomous driving service. provide a way
  • a point cloud is a set of points in 3D space. There is a problem in that it is difficult to generate point cloud data because the amount of points in 3D space is large.
  • a technical problem according to the embodiments is to provide a point cloud data transmission apparatus, a transmission method, a point cloud data reception apparatus, and a reception method for efficiently transmitting and receiving a point cloud in order to solve the above-described problems.
  • An object of the present invention is to provide a point cloud data transmission apparatus, a transmission method, a point cloud data reception apparatus and a reception method for solving latency and encoding/decoding complexity.
  • a method for transmitting point cloud data includes encoding point cloud data; and transmitting the point cloud data; may include.
  • the point cloud data may include one or more geometry images carrying geometry data and/or one or more occupancy images carrying occupancy data.
  • the method for transmitting point cloud data may further include combining the one or more geometry images and/or the one or more accumulatory images.
  • the combining according to embodiments may generate a combined stream based on one channel.
  • the combined stream according to the embodiments may include a first accumulative image and at least one geometry image having the same frame index as the first accumulative image.
  • Metadata according to embodiments may include information indicating a combination order of the first accumulator image and the at least one geometry image.
  • the combining may generate a combined stream based on three channels, and the combined stream may include a first accumancy image and/or the first accumancy image. It may include a combined frame including two geometry images having the same frame index as the image. Metadata according to embodiments may include information indicating an order of the first accumulator image and/or the two geometry images in the combined frame.
  • a method for receiving point cloud data may include receiving point cloud data; decoding the point cloud data; and rendering the point cloud data; may include.
  • Point cloud data according to embodiments may include a combined stream that transmits geometry data and occupancy data.
  • the method for receiving point cloud data divides the combined stream into one or more geometry images and/or the one or more accumulative images included in the point cloud data. It may further include the step of
  • the combined stream according to embodiments may be a data stream in which the one or more geometry images and the one or more accumulative images are combined based on one channel.
  • the combined stream according to the embodiments may include a first accumulative image and at least one geometry image having the same frame index as the first accumulative image.
  • Metadata according to embodiments may include information indicating a combination order of the first accumulator image and the at least one geometry image.
  • the combined stream according to the embodiments may be a data stream in which the one or more geometry images and the one or more accumulative images are combined based on three channels.
  • the combined stream according to embodiments may include a first accumulative image and two geometry images having the same frame index as the first accumulative image.
  • the point cloud data transmission method, the transmission device, the point cloud data reception method, and the reception device may provide a quality point cloud service.
  • the point cloud data transmission method, the transmission device, the point cloud data reception method, and the reception device may achieve various video codec schemes.
  • the point cloud data transmission method, the transmission device, the point cloud data reception method, and the reception device may provide universal point cloud content such as an autonomous driving service.
  • FIG. 1 shows an example of the structure of a transmission/reception system for providing Point Cloud content according to embodiments.
  • FIG. 2 shows an example of a point cloud data capturer according to embodiments.
  • FIG. 3 shows an example of a point cloud, a geometry, and a texture image according to embodiments.
  • FIG. 4 shows an example of V-PCC encoding processing according to the embodiments.
  • FIG. 5 shows an example of a tangent plane and a normal vector of a surface according to embodiments.
  • FIG. 6 shows an example of a bounding box of a point cloud according to embodiments.
  • FIG 7 shows an example of individual patch location determination of an occupancy map according to embodiments.
  • FIG. 8 shows an example of the relationship between normal, tangent, and bitangent axes according to embodiments.
  • FIG. 9 shows an example of a configuration of a minimum mode and a maximum mode of a projection mode according to embodiments.
  • FIG 10 shows an example of an EDD code according to embodiments.
  • FIG. 11 shows an example of recoloring using color values of adjacent points according to embodiments.
  • FIG. 13 shows an example of a possible traversal order for a block of 4*4 size according to embodiments.
  • FIG. 15 shows an example of a 2D video/image encoder according to embodiments.
  • V-PCC decoding process shows an example of a V-PCC decoding process according to embodiments.
  • FIG. 17 shows an example of a 2D Video/Image Decoder according to embodiments.
  • FIG. 18 shows an example of an operation flowchart of a transmitting apparatus according to the embodiments.
  • FIG. 19 shows an example of an operation flowchart of a receiving apparatus according to the embodiments.
  • FIG. 20 shows an example of a structure capable of interworking with a method/device for transmitting and receiving point cloud data according to embodiments.
  • FIG. 21 illustrates an encoding process of an apparatus for transmitting point cloud data according to embodiments.
  • FIG. 22 illustrates a decoding process of an apparatus for receiving point cloud data according to embodiments.
  • 23 is a block diagram of an apparatus for transmitting point cloud data according to embodiments.
  • 24 is a block diagram of an apparatus for receiving point cloud data according to embodiments.
  • 25 illustrates an operation of a video combiner according to embodiments.
  • 26 illustrates an operation of a video splitter according to example embodiments.
  • FIG. 27 shows a V3C bitstream according to embodiments.
  • FIG. 29 shows the structure of a V3C bitstream according to embodiments.
  • V-PCC parameter set shows an example of a V-PCC parameter set according to embodiments.
  • 31 shows information for a combined video stream according to embodiments.
  • FIG. 32 illustrates an operation of a video combiner according to embodiments.
  • 33 illustrates an operation of a video splitter according to example embodiments.
  • FIG. 34 shows a data stream and related signaling information combined by a video combiner according to embodiments.
  • 35 illustrates operations of a video combiner and a video splitter according to embodiments.
  • 38 is a flowchart illustrating operations of a video combiner and a video splitter according to embodiments.
  • 39 is a flowchart illustrating operations of a video combiner and a video splitter according to embodiments.
  • 40 is a flowchart of a method for transmitting point cloud data according to embodiments.
  • 41 is a flowchart of a method for receiving point cloud data according to embodiments.
  • FIG. 1 shows an example of the structure of a transmission/reception system for providing Point Cloud content according to embodiments.
  • Point cloud content may represent data representing an object as points, and may be referred to as point cloud, point cloud data, point cloud video data, point cloud image data, and the like.
  • Point cloud data transmission device is a point cloud video acquisition unit (Point Cloud Video Acquisition, 10001), a point cloud video encoder (Point Cloud Video Encoder, 10002), file / segment encapsulation a unit 10003 and/or a transmitter (or Communication module) 10004 .
  • the transmission device may secure, process, and transmit a point cloud video (or point cloud content).
  • the transmission device includes a fixed station, a base transceiver system (BTS), a network, an Ariticial Intelligence (AI) device and/or system, a robot, an AR/VR/XR device and/or a server, and the like. can do.
  • the transmission device 10000 uses a radio access technology (eg, 5G NR (New RAT), LTE (Long Term Evolution)) to perform communication with a base station and/or other wireless devices; It may include robots, vehicles, AR/VR/XR devices, mobile devices, home appliances, Internet of Things (IoT) devices, AI devices/servers, and the like.
  • a radio access technology eg, 5G NR (New RAT), LTE (Long Term Evolution)
  • 5G NR New RAT
  • LTE Long Term Evolution
  • IoT Internet of Things
  • a point cloud video acquisition unit (Point Cloud Video Acquisition, 10001) according to embodiments acquires a Point Cloud video through a process of capturing, synthesizing, or generating a Point Cloud video.
  • a Point Cloud Video Encoder 10002 encodes point cloud video data.
  • the point cloud video encoder 10002 may be referred to as a point cloud encoder, a point cloud data encoder, an encoder, or the like.
  • point cloud compression coding (encoding) according to the embodiments is not limited to the above-described embodiments.
  • the point cloud video encoder may output a bitstream including encoded point cloud video data.
  • the bitstream may include not only the encoded point cloud video data, but also signaling information related to encoding of the point cloud video data.
  • the encoder may support both a Geometry-based Point Cloud Compression (G-PCC) encoding method and/or a Video-based Point Cloud Compression (V-PCC) encoding method.
  • the encoder may encode a point cloud (referring to point cloud data or both points) and/or signaling data related to the point cloud. Specific operations of encoding according to embodiments will be described below.
  • V-PCC Video-based Point Cloud Compression
  • V-PCC Visual Volumetric Video- based Coding
  • the file/segment encapsulation module 10003 encapsulates point cloud data in a file and/or segment form.
  • the method/apparatus for transmitting point cloud data may transmit the point cloud data in the form of a file and/or a segment.
  • a transmitter (or Communication module) 10004 transmits encoded point cloud video data in the form of a bitstream.
  • the file or segment may be transmitted to a receiving device through a network or stored in a digital storage medium (eg, USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.).
  • the transmitter according to the embodiments may communicate with a receiving device (or a receiver) through wired/wireless communication through a network such as 4G, 5G, 6G, etc.
  • the transmitter may communicate with a network system (eg, 4G, 5G, 6G, etc.) a data processing operation required according to the network system)
  • the transmission device may transmit encapsulated data according to an on demand method.
  • Point cloud data receiving device (Reception device, 10005) is a receiver (Receiver, 10006), a file / segment decapsulation unit (10007), a point cloud video decoder (Point Cloud Decoder, 10008), and / or Contains Renderer (10009).
  • the receiving device uses a radio access technology (eg, 5G NR (New RAT), LTE (Long Term Evolution)) to communicate with a base station and/or other wireless devices, such as devices, robots, vehicles, AR/VR/XR devices, portable devices, home appliances, Internet of Things (IoT) devices, AI devices/servers, and the like may be included.
  • 5G NR New RAT
  • LTE Long Term Evolution
  • a receiver 10006 receives a bitstream including point cloud video data. According to embodiments, the receiver 10006 may transmit feedback information to the point cloud data transmission device 10000 .
  • the file/segment decapsulation module 10007 decapsulates a file and/or a segment including point cloud data.
  • the decapsulation unit according to the embodiments may perform a reverse process of the encapsulation process according to the embodiments.
  • the point cloud video decoder (Point Cloud Decoder, 10007) decodes the received point cloud video data.
  • the decoder according to the embodiments may perform the reverse process of encoding according to the embodiments.
  • a renderer (Renderer, 10007) renders the decoded point cloud video data.
  • the renderer 10007 may transmit feedback information obtained from the receiving end to the point cloud video decoder 10006 .
  • Point cloud video data may transmit feedback information to a receiver.
  • the feedback information received by the point cloud transmission apparatus may be provided to the point cloud video encoder.
  • the feedback information is information for reflecting the interactivity with the user who consumes the point cloud content, and includes user information (eg, head orientation information, viewport information, etc.).
  • user information eg, head orientation information, viewport information, etc.
  • the feedback information is provided by the content transmitting side (eg, the transmission device 10000) and/or the service provider can be passed on to According to embodiments, the feedback information may be used not only in the transmitting apparatus 10000 but also in the receiving apparatus 10005, or may not be provided.
  • the head orientation information is information about the user's head position, direction, angle, movement, and the like.
  • the reception apparatus 10005 may calculate viewport information based on head orientation information.
  • the viewport information is information about the area of the point cloud video that the user is looking at.
  • a viewpoint is a point at which a user is watching a point cloud video, and may mean a central point of the viewport area. That is, the viewport is an area centered on a viewpoint, and the size and shape of the area may be determined by a Field Of View (FOV).
  • FOV Field Of View
  • the reception device 10004 may extract viewport information based on a vertical or horizontal FOV supported by the device in addition to the head orientation information.
  • the receiving device 10005 checks a user's point cloud consumption method, a point cloud video area that the user gazes at, a gaze time, and the like by performing a gaze analysis or the like.
  • the receiving device 10005 may transmit feedback information including the result of the gaze analysis to the transmitting device 10000 .
  • Feedback information may be obtained during rendering and/or display.
  • Feedback information may be secured by one or more sensors included in the receiving device 10005 .
  • the feedback information may be secured by the renderer 10009 or a separate external element (or device, component, etc.).
  • a dotted line in FIG. 1 shows a process of transmitting feedback information secured by the renderer 10009 .
  • the point cloud content providing system may process (encode/decode) the point cloud data based on the feedback information. Accordingly, the point cloud video data decoder 10008 may perform a decoding operation based on the feedback information. Also, the receiving device 10005 may transmit feedback information to the transmitting device. The transmitting device (or the point cloud video data encoder 10002) may perform an encoding operation based on the feedback information. Therefore, the point cloud content providing system does not process (encode / decode) all point cloud data, but efficiently processes necessary data (for example, point cloud data corresponding to the user's head position) based on the feedback information, and the user can provide point cloud content to
  • the transmitting apparatus 10000 may be referred to as an encoder, a transmitting device, a transmitter, or the like, and the receiving apparatus 10004 may be referred to as a decoder, a receiving device, a receiver, or the like.
  • Point cloud data (processed in a series of acquisition/encoding/transmission/decoding/rendering) processed in the point cloud content providing system of FIG. 1 according to embodiments may be referred to as point cloud content data or point cloud video data.
  • the point cloud content data may be used as a concept including metadata or signaling information related to the point cloud data.
  • the elements of the point cloud content providing system shown in FIG. 1 may be implemented by hardware, software, a processor and/or a combination thereof.
  • the embodiments provide a user with various services such as VR (Virtual Reality), AR (Augmented Reality, Augmented Reality), MR (Mixed Reality), and autonomous driving service.
  • VR Virtual Reality
  • AR Augmented Reality
  • MR Magnetic Reality
  • autonomous driving service e.g., autonomous driving service.
  • Point Cloud content can provide
  • a Point Cloud video may be acquired first.
  • the acquired Point Cloud video is transmitted through a series of processes, and the receiving side can process the received data back into the original Point Cloud video and render it. This allows Point Cloud video to be presented to users.
  • the embodiments provide methods necessary for effectively performing such a series of processes.
  • the whole process (point cloud data transmission method and/or point cloud data reception method) for providing the Point Cloud content service may include an acquisition process, an encoding process, a transmission process, a decoding process, a rendering process, and/or a feedback process. have.
  • a process of providing point cloud content may be referred to as a point cloud compression process.
  • the point cloud compression process may refer to a geometry-based point cloud compression process.
  • Each element of the point cloud data transmission apparatus and the point cloud data reception apparatus may mean hardware, software, a processor, and/or a combination thereof.
  • a Point Cloud video may be acquired first.
  • the acquired Point Cloud video is transmitted through a series of processes, and the receiving side can process the received data back into the original Point Cloud video and render it. This allows Point Cloud video to be presented to users.
  • the present invention provides a method necessary for effectively performing such a series of processes.
  • the whole process for providing the Point Cloud content service may include an acquisition process, an encoding process, a transmission process, a decoding process, a rendering process, and/or a feedback process.
  • the Point Cloud Compression system may include a transmitting device and a receiving device.
  • the transmitting device can output the bitstream by encoding the Point Cloud video, and it can be delivered to the receiving device in the form of a file or streaming (streaming segment) through a digital storage medium or network.
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • the transmission device may schematically include a Point Cloud video acquisition unit, a Point Cloud video encoder, a file/segment encapsulation unit, and a transmission unit.
  • the receiving device may schematically include a receiving unit, a file/segment decapsulation unit, a Point Cloud video decoder, and a renderer.
  • the encoder may be called a Point Cloud video/video/picture/frame encoding device, and the decoder may be called a Point Cloud video/video/picture/frame decoding device.
  • the transmitter may be included in the Point Cloud video encoder.
  • the receiver may be included in the Point Cloud video decoder.
  • the renderer may include a display unit, and the renderer and/or the display unit may be configured as a separate device or external component.
  • the transmitting device and the receiving device may further include separate internal or external modules/units/components for the feedback process.
  • the operation of the receiving device may follow a reverse process of the operation of the transmitting device.
  • the Point Cloud video acquisition unit may perform the process of acquiring Point Cloud video through the process of capturing, synthesizing, or generating Point Cloud video.
  • 3D position (x, y, z)/property (color, reflectance, transparency, etc.) data for a plurality of Points are generated by the acquisition process, for example, PLY (Polygon File format or the Stanford Triangle format) file can be For video with multiple frames, one or more files may be acquired.
  • metadata related to the point cloud eg, metadata related to capture, etc.
  • An apparatus for transmitting point cloud data includes an encoder for encoding point cloud data; and a transmitter for transmitting point cloud data; may include. In addition, it may be transmitted in the form of a bit stream including a point cloud.
  • An apparatus for receiving point cloud data includes a receiver configured to receive point cloud data; a decoder for decoding point cloud data; and a renderer that renders the point cloud data; may include.
  • a method/apparatus represents an apparatus for transmitting point cloud data and/or an apparatus for receiving point cloud data.
  • FIG. 2 shows an example of a point cloud data capturer according to embodiments.
  • Point cloud data may be acquired by a camera or the like.
  • a capture method according to embodiments may include, for example, inward-pacing and/or outward-pacing.
  • one or more cameras may photograph an object of the point cloud data from the outside to the inside.
  • one or more cameras may photograph an object of point cloud data from the inside to the outside.
  • Point cloud data or point cloud content may be a video or still image of an object/environment expressed in various types of 3D space.
  • the point cloud content may include video/audio/images for an object (object, etc.).
  • Point cloud content capture it can be composed of a combination of camera equipment that can acquire depth (a combination of an infrared pattern projector and an infrared camera) and RGB cameras that can extract color information corresponding to depth information.
  • depth information can be extracted through LiDAR using a radar system that measures the position coordinates of a reflector by emitting a laser pulse and measuring the time it takes to reflect and return. It is possible to extract the shape of a geometry composed of points in a three-dimensional space from the depth information, and extract an attribute representing the color/reflection of each point from the RGB information.
  • Point Cloud content may consist of position (x, y, z) and color (YCbCr or RGB) or reflectance (r) information for points.
  • Point Cloud content may have an outward-facing method for capturing the external environment and an inward-facing method for capturing a central object.
  • an object e.g., a core object such as a character, player, object, actor, etc.
  • the configuration of the capture camera is different from the inward-facing method.
  • the configuration of the capture camera may use an outward-facing method. Since Point Cloud content can be captured through multiple cameras, it may be necessary to calibrate the camera before capturing the content to set the global coordinate system between the cameras.
  • the Point Cloud content may be a video or still image of an object/environment displayed on various types of 3D space.
  • Point Cloud video can be synthesized based on the captured Point Cloud video.
  • capture through a real camera may not be performed. In this case, the process of simply generating related data may be substituted for the process of capturing.
  • Captured Point Cloud video may require post-processing to improve the quality of the content.
  • Post-treatment to fill the spatial hole may be performed.
  • the Point Cloud extracted from the cameras sharing the spatial coordinate system can be integrated into one content through the conversion process to the global coordinate system for each point based on the position coordinates of each camera obtained through the calibration process. Through this, one wide range of Point Cloud contents can be created, or Point Cloud contents with a high density of points can be obtained.
  • a Point Cloud video encoder can encode an input Point Cloud video into one or more video streams.
  • One video may include a plurality of frames, and one frame may correspond to a still image/picture.
  • Point Cloud video may include Point Cloud video/frame/picture/video/audio/image, etc., and Point Cloud video may be used in combination with Point Cloud video/frame/picture.
  • the Point Cloud video encoder may perform a Video-based Point Cloud Compression (V-PCC) procedure.
  • the Point Cloud video encoder can perform a series of procedures such as prediction, transformation, quantization, and entropy coding for compression and coding efficiency.
  • the encoded data (encoded video/image information) may be output in the form of a bitstream.
  • the Point Cloud video encoder divides the Point Cloud video into geometry video, attribute video, occupancy map video, and auxiliary information, as described below.
  • a geometry video may include a geometry image
  • an attribute video may include an attribute image
  • an occupancy map video may include an occupancy map image.
  • the additional information may include auxiliary patch information.
  • the attribute video/image may include a texture video/image.
  • the encapsulation processing unit may encapsulate the encoded Point cloud video data and/or Point cloud video related metadata in the form of a file or the like.
  • the point cloud video-related metadata may be received from a metadata processing unit, etc.
  • the metadata processing unit may be included in the point cloud video encoder, or may be configured as a separate component/module.
  • the encapsulation processing unit may encapsulate the corresponding data in a file format such as ISOBMFF or process the data in the form of other DASH segments.
  • the encapsulation processing unit may include point cloud video-related metadata in a file format according to an embodiment.
  • Point cloud video metadata may be included, for example, in boxes of various levels in the ISOBMFF file format, or as data in separate tracks within the file.
  • the encapsulation processing unit may encapsulate the point cloud video-related metadata itself into a file.
  • the transmission processing unit can apply processing for transmission to the encapsulated Point cloud video data according to the file format.
  • the transmission processing unit may be included in the transmission unit or may be configured as a separate component/module.
  • the transmission processing unit can process the point cloud video video data according to any transmission protocol.
  • the processing for transmission may include processing for transmission through a broadcasting network and processing for transmission through a broadband.
  • the transmission processing unit may receive not only the point cloud video data, but also the point cloud video-related metadata from the metadata processing unit, and may apply processing for transmission thereto.
  • the transmitting unit 10004 may transmit encoded video/image information or data output in the form of a bitstream to the receiving unit of the receiving device through a digital storage medium or a network in a file or streaming form.
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • the transmission unit may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcast/communication network.
  • the receiver may extract the bitstream and transmit it to the decoding device.
  • the receiver 10003 may receive the point cloud video data transmitted by the point cloud video transmission device according to the present invention. Depending on the transmitted channel, the receiver may receive point cloud video data through a broadcasting network or may receive point cloud video data through broadband. Alternatively, point cloud video data may be received through a digital storage medium.
  • the reception processing unit may perform processing according to the transmission protocol on the received point cloud video data.
  • the reception processing unit may be included in the reception unit, or may be configured as a separate component/module.
  • the reception processing unit may perform the reverse process of the above-described transmission processing unit so as to correspond to the processing for transmission performed on the transmission side.
  • the reception processing unit may transmit the acquired point cloud video data to the decapsulation processing unit, and the acquired point cloud video related metadata may be transmitted to the metadata parser.
  • the point cloud video-related metadata acquired by the reception processing unit may be in the form of a signaling table.
  • the decapsulation processing unit may decapsulate the point cloud video data in the form of a file received from the reception processing unit.
  • the decapsulation processing unit may decapsulate the files according to ISOBMFF and the like to obtain a point cloud video bitstream or point cloud video related metadata (metadata bitstream).
  • the acquired point cloud video bitstream can be delivered to the point cloud video decoder, and the acquired point cloud video related metadata (metadata bitstream) can be delivered to the metadata processing unit.
  • a point cloud video bitstream may contain metadata (metadata bitstream).
  • the metadata processing unit may be included in the point cloud video decoder, or may be configured as a separate component/module.
  • the point cloud video-related metadata acquired by the decapsulation processing unit may be in the form of a box or track in a file format. If necessary, the decapsulation processing unit may receive metadata required for decapsulation from the metadata processing unit.
  • the point cloud video-related metadata may be transmitted to the point cloud video decoder and used in the point cloud video decoding procedure, or may be transmitted to the renderer and used in the point cloud video rendering procedure.
  • the Point Cloud video decoder may decode the video/image by receiving the bitstream and performing an operation corresponding to the operation of the Point Cloud video encoder.
  • the Point Cloud video decoder can decode the Point Cloud video by dividing it into a geometry video, an attribute video, an occupancy map video, and auxiliary information, as will be described later.
  • a geometry video may include a geometry image
  • an attribute video may include an attribute image
  • an occupancy map video may include an occupancy map image.
  • the additional information may include auxiliary patch information.
  • the attribute video/image may include a texture video/image.
  • the 3D geometry is reconstructed using the decoded geometry image, the occupancy map, and the additional patch information, and may then be subjected to a smoothing process.
  • a color point cloud image/picture may be restored by assigning a color value to the smoothed 3D geometry using a texture image.
  • the renderer can render the restored geometry and color point cloud image/picture.
  • the rendered video/image may be displayed through the display unit. The user can view all or part of the rendered result through a VR/AR display or a general display.
  • the feedback process may include a process of transferring various feedback information that may be obtained in the rendering/display process to the transmitter or to the decoder of the receiver. Interactivity can be provided in Point Cloud video consumption through the feedback process.
  • head orientation information, viewport information indicating an area currently being viewed by the user, and the like may be transmitted.
  • the user may interact with things implemented in the VR/AR/MR/autonomous driving environment. In this case, information related to the interaction may be transmitted to the transmitting side or the service provider side in the feedback process. have.
  • the feedback process may not be performed.
  • the head orientation information may refer to information about the user's head position, angle, movement, and the like. Based on this information, information about the area the user is currently viewing within the Point Cloud video, that is, viewport information can be calculated.
  • the viewport information may be information about the area currently being viewed by the user in the Point Cloud video.
  • a gaze analysis may be performed to determine how the user consumes the Point Cloud video, which area of the Point Cloud video how much, and so on. Gaze analysis may be performed at the receiving side and transmitted to the transmitting side through a feedback channel.
  • a device such as a VR/AR/MR display may extract a viewport area based on a position/direction of a user's head, a vertical or horizontal FOV supported by the device, and the like.
  • the above-described feedback information may be consumed at the receiving side as well as being transmitted to the transmitting side. That is, a decoding and rendering process of the receiving side may be performed using the above-described feedback information. For example, using head orientation information and/or viewport information, only the Point Cloud video for the region currently being viewed by the user may be preferentially decoded and rendered.
  • a viewport or a viewport area may mean an area that a user is viewing in a Point Cloud video.
  • a viewpoint is a point at which a user is watching a Point Cloud video, and may mean a central point of the viewport area. That is, the viewport is an area centered on the viewpoint, and the size and shape of the area may be determined by the Field Of View (FOV).
  • FOV Field Of View
  • This article is about Point Cloud video compression, as mentioned above.
  • the method/embodiment disclosed in this document may be applied to a point cloud compression or point cloud coding (PCC) standard of MPEG (Moving Picture Experts Group) or a next-generation video/image coding standard.
  • PCC point cloud compression or point cloud coding
  • a picture/frame may generally mean a unit representing one image in a specific time period.
  • a pixel or pel may mean a minimum unit constituting one picture (or image). Also, as a term corresponding to a pixel, a 'sample' may be used. A sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, may represent only a pixel/pixel value of a chroma component, or a depth component It may represent only the pixel/pixel value of .
  • a unit may represent a basic unit of image processing.
  • the unit may include at least one of a specific region of a picture and information related to the region.
  • a unit may be used interchangeably with terms such as a block or an area in some cases.
  • the MxN block may include samples (or sample arrays) or a set (or arrays) of transform coefficients including M columns and N rows.
  • FIG. 3 shows an example of a point cloud, a geometry, and a texture image according to embodiments.
  • the point cloud according to the embodiments may be input to the V-PCC encoding process of FIG. 4 to be described later to generate a geometry image and a texture image.
  • the point cloud may be used as the same meaning as the point cloud data.
  • the left side is a point cloud, indicating a point cloud in which an object is located in a 3D space and can be represented by a bounding box or the like.
  • the middle represents the geometry
  • the right represents the texture image (non-padding).
  • V-PCC Video-based Point Cloud Compression
  • HEVC High Efficiency Video Coding
  • VVC Video-based Point Cloud Compression
  • occupancy map A binary map that indicates whether data exists at the corresponding position on the 2D plane as a value of 0 or 1 when the points constituting the point cloud are divided into patches and mapped to the 2D plane. indicates An occupancy map may indicate a 2D array corresponding to an atlas, and a value of the occupancy map may indicate whether each sample position in the atlas corresponds to a 3D point.
  • An atlas is a set of 2D bounding boxes located in a rectangular frame corresponding to a 3D bounding box in a 3D space in which volume metric data is rendered and information related thereto.
  • An atlas bitstream is a bitstream for one or more atlas frames constituting an atlas and related data.
  • An atlas frame is a 2D rectangular arrangement of atlas samples onto which patches are projected.
  • the atlas sample is the position of the rectangular frame from which the patches associated with the atlas are projected.
  • An atlas frame may be divided into tiles.
  • a tile is a unit for dividing a 2D frame. That is, a tile is a unit for dividing signaling information of point cloud data called an atlas.
  • Patch A set of points constituting a point cloud, indicating that points belonging to the same patch are adjacent to each other in 3D space and are mapped in the same direction among the 6 planes of the bounding box in the mapping process to the 2D image.
  • Geometry image An image in the form of a depth map that expresses the geometry of each point constituting the point cloud in units of patches.
  • a geometry image may consist of pixel values of one channel.
  • Geometry represents a set of coordinates associated with a point cloud frame.
  • Texture image It represents an image expressing color information of each point constituting the point cloud in units of patches.
  • the texture image may be composed of pixel values of multiple channels (e.g. 3 channels R, G, B). Textures are included as attributes. According to embodiments, a texture and/or an attribute may be interpreted as the same object and/or containment relationship.
  • Auxiliary patch info Represents metadata required to reconstruct a point cloud from individual patches.
  • the utility patch info may include information on the location and size of the patch in 2D/3D space.
  • V-PCC components may include an atlas, an accumulatory map, a geometry, an attribute, and the like.
  • An atlas represents a set of 2D bounding boxes. It may be a patch, for example, patches projected on a rectangular frame. In addition, it may correspond to a 3D bounding box in 3D space, and may represent a subset of point clouds.
  • Attribute represents a scalar or vector associated with each point in the point cloud, for example, color, reflectance, surface normal, time stamps, material. There may be an ID (material ID) or the like.
  • Point cloud data represents PCC data according to a video-based point cloud compression (V-PCC) method.
  • the point cloud data may include a plurality of components. For example, it may include accumulatory maps, patches, geometries and/or textures, and the like.
  • FIG. 4 shows an example of V-PCC encoding processing according to the embodiments.
  • the figure shows and shows the V-PCC encoding process for generating and compressing an occupancy map, a geometry image, a texture image, and auxiliary patch information.
  • the V-PCC encoding process of FIG. 4 may be processed by the point cloud video encoder 10002 of FIG. 1 .
  • Each component of FIG. 4 may be implemented by software, hardware, a processor, and/or a combination thereof.
  • a patch generation (40000) or patch generator receives a point cloud frame (which may be in the form of a bitstream containing point cloud data).
  • the patch generation unit 40000 generates a patch from point cloud data.
  • patch information including information on patch generation is generated.
  • Patch packing (40001) or patch packer packs patches for point cloud data. For example, one or more patches may be packed. In addition, an accumulatory map including information on patch packing is generated.
  • a geometry image generation (40002) or geometry image generator generates a geometry image based on point cloud data, patches, and/or packed patches.
  • the geometry image refers to data including geometry related to point cloud data.
  • a texture image generation (40003) or texture image generator generates a texture image based on point cloud data, patches, and/or packed patches.
  • a texture image may be generated further based on a smoothed geometry generated by performing a smoothing (number) smoothing process on the reconstructed (reconstructed) geometry image based on patch information.
  • a smoothing (40004) or smoother may mitigate or remove errors contained in image data.
  • a smoothed geometry may be generated by gently filtering a portion that may cause an error between data based on the patch information of the reconstructed geometry image.
  • auxillary patch info compression (40005) or auxillary patch information compressor compresses additional patch information related to patch information generated in a patch generation process.
  • the compressed oscillation patch information may be transmitted to the multiplexer, and the geometry image generation 40002 may also use the oscillation patch information.
  • Image padding 40006, 40007 or image padding may pad the geometry image and the texture image, respectively.
  • Padding data may be padded to the geometry image and the texture image.
  • a group dilation (40008) or group delimiter may append data to a textured image, similar to image padding. Additional data may be inserted into the texture image.
  • a video compression (40009, 40010, 40011) or a video compressor may compress a padded geometry image, a padded texture image, and/or an accumulatory map, respectively. Compression may encode geometry information, texture information, accumulatory information, and the like.
  • An entropy compression (40012) or an entropy compressor may compress (eg, encode) the accuracy map based on an entropy scheme.
  • entropy compression and/or video compression may be respectively performed according to a case in which point cloud data is lossless and/or lossy.
  • a multiplexer 40013 multiplexes a compressed geometry image, a compressed texture image, and a compressed accumulatory map into a bitstream.
  • the patch generation process refers to a process of dividing the point cloud into patches, which are units that perform mapping, in order to map the point cloud to a 2D image.
  • the patch generation process can be divided into three steps: normal value calculation, segmentation, and patch division as follows.
  • FIG. 5 shows an example of a tangent plane and a normal vector of a surface according to embodiments.
  • the surface of FIG. 5 is used in the patch generation process 40000 of the V-PCC encoding process of FIG. 4 as follows.
  • Each point (eg, point) constituting a point cloud has a unique direction, which is expressed as a three-dimensional vector called normal.
  • the tangent plane and normal vector of each point constituting the surface of the point cloud as shown in the figure can be obtained by using the neighbors of each point obtained using a K-D tree, etc.
  • the search range in the process of finding adjacent points can be defined by the user.
  • Tangent plane A plane that passes through a point on the surface and completely contains the tangent to the curve on the surface.
  • FIG. 6 shows an example of a bounding box of a point cloud according to embodiments.
  • patch generation may use a bounding box in a process of generating a patch from point cloud data.
  • the bounding box refers to a box of units for dividing point cloud data based on a hexahedron in 3D space.
  • the bounding box may be used in a process of projecting an object that is a target of point cloud data on the plane of each cube based on the cube in 3D space.
  • the bounding box may be generated and processed by the point cloud video acquisition unit 10000 and the point cloud video encoder 10002 of FIG. 1 .
  • patch generation 40000, patch packing 40001, geometry image generation 40002, and texture image generation 40003 of the V-PCC encoding process of FIG. 2 may be performed.
  • Segmentation consists of two processes: initial segmentation and refine segmentation.
  • the point cloud encoder 10002 projects a point onto one side of a bounding box. Specifically, each point constituting the point cloud is projected onto one of the faces of the six bounding box surrounding the point cloud as shown in the figure. Initial segmentation is the process of determining one of the planes of the bounding box to which each point is projected. am.
  • the normal value ( )class The plane with the largest dot product is determined as the projection plane of the corresponding plane. That is, the plane with the normal in the direction most similar to the normal of the point is determined as the projection plane of the point.
  • the determined plane may be identified as a value (cluster index) of one of 0 to 5 in the form of an index.
  • Refine segmentation is a process of improving the projection plane of each point constituting the point cloud determined in the initial segmentation process in consideration of the projection plane of adjacent points.
  • the projection plane of the current point and the projection plane of the adjacent points along with the score normal that is similar to the normal value of each point and the normal value of each plane of the bounding box considered for the projection plane determination in the initial segmentation process.
  • Score smooth which indicates the degree of agreement with , can be considered at the same time.
  • Score smooth can be considered by assigning weights to the score normal, and in this case, the weight value can be defined by the user. Refine segmentation may be performed repeatedly, and the number of repetitions may also be defined by the user.
  • Patch segmentation is a process of dividing the entire point cloud into patches, which is a set of adjacent points, based on the projection plane information of each point constituting the point cloud obtained in the initial/refine segmentation process.
  • Patch partitioning can be composed of the following steps.
  • the size of each patch and the occupancy map, geometry image, and texture image for each patch are determined.
  • FIG 7 shows an example of individual patch location determination of an occupancy map according to embodiments.
  • the point cloud encoder 10002 may generate a patch packing and an accumulatory map.
  • This process is a process of determining the positions of individual patches in a 2D image in order to map the previously divided patches to a single 2D image.
  • the occupancy map is one of the 2D images, and is a binary map that indicates whether data exists at the corresponding location by a value of 0 or 1.
  • the occupancy map consists of blocks, and the resolution can be determined according to the size of the block. For example, when the block size is 1*1, it has a pixel unit resolution.
  • the size of the block (occupancy packing block size) may be determined by the user.
  • the process of determining the location of an individual patch in the occupancy map can be configured as follows.
  • the (x, y) coordinate value of the patch occupancy map is 1 (data exists at that point in the patch), and the (u+x, v+y) coordinates of the entire occupancy map If the value is 1 (when the occupancy map is filled by the previous patch), change the (x, y) positions in raster order and repeat the process of 3 ⁇ 4. If not, proceed with step 6.
  • occupancySizeU Indicates the width of the occupancy map, and the unit is the occupancy packing block size.
  • occupancySizeV Indicates the height of the occupancy map, and the unit is the occupancy packing block size.
  • Patch size U0 (patch.sizeU0): Indicates the width of the occupancy map, and the unit is the occupancy packing block size.
  • Patch size V0 (patch.sizeV0): Indicates the height of the occupancy map, and the unit is the occupancy packing block size.
  • a box corresponding to a patch having a patch size in a box corresponding to the Accupansa packing size block exists, and points (x, y) in the box may be located.
  • FIG. 8 shows an example of the relationship between normal, tangent, and bitangent axes according to embodiments.
  • the point cloud encoder 10002 may generate a geometry image.
  • the geometric image means image data including geometry information of the point cloud.
  • the process of generating a geometric image may use three axes (normal, tangent, and bitangent) of the patch of FIG. 8 .
  • the depth values constituting the geometry image of each patch are determined, and the entire geometry image is created based on the location of the patch determined in the patch packing process.
  • the process of determining the depth values constituting the geometry image of an individual patch can be configured as follows.
  • the parameters related to the location and size of individual patches are calculated.
  • the parameters may include the following information.
  • normal is obtained in the patch generation process above, the tangent axis is the axis that coincides with the horizontal (u) axis of the patch image among the axes perpendicular to the normal, and the bitangent axis is the vertical (vertical) axis of the patch image among the axes perpendicular to the normal.
  • bitangent axis is the vertical (vertical) axis of the patch image among the axes perpendicular to the normal.
  • FIG. 9 shows an example of a configuration of a minimum mode and a maximum mode of a projection mode according to embodiments.
  • the point cloud encoder 10002 may perform a patch-based projection to generate a geometry image, and modes of projection according to embodiments include a minimum mode and a maximum mode.
  • 3D spatial coordinates of the patch can be calculated through the smallest size bounding box surrounding the patch.
  • the minimum value in the tangent direction of the patch (patch 3d shift tangent axis), the minimum value in the bitangent direction of the patch (patch 3d shift bitangent axis), and the minimum value in the normal direction of the patch (patch 3d shift normal axis) may be included.
  • 2D size of patch Shows the horizontal and vertical size of the patch when it is packed into a 2D image.
  • the horizontal size (patch 2d size u) is the difference between the maximum and minimum values in the tangent direction of the bounding box
  • the vertical size (patch 2d size v) is the difference between the maximum and minimum values in the bitangent direction of the bounding box.
  • the projection mode may be one of a min mode and a max mode.
  • the geometry information of the patch is expressed as a depth value.
  • the minimum depth is configured in d0 as shown in the figure, and the maximum depth existing within the surface thickness from the minimum depth may be configured as d1.
  • the point cloud when the point cloud is located in 2D as shown in the drawing, there may be a plurality of patches including a plurality of points. As shown in the drawing, the shaded points of the same style may belong to the same patch.
  • the figure shows the process of projecting a patch of points marked with blank spaces.
  • the depth is increased by 1, such as 0, 1, 2,..6, 7, 8, 9, based on the left, and the number for calculating the depth of the points to the right. can be indicated.
  • the same method is applied to all point clouds by user definition, or it can be applied differently for each frame or patch.
  • a projection mode capable of increasing compression efficiency or minimizing a missed point may be adaptively selected.
  • depth0 is the value obtained by subtracting the minimum value of the normal axis of each point from the minimum value of the patch normal direction (patch 3d shift normal axis) and the minimum value of the patch normal direction calculated in the process 1 (patch 3d shift normal axis). to compose the d0 image. If there is another depth value within the range within depth0 and surface thickness at the same location, set this value to depth1. If it does not exist, the value of depth0 is also assigned to depth1. Construct the d1 image with the Depth1 value.
  • a minimum value may be calculated (4 2 4 4 4 0 6 0 0 9 9 0 8 0).
  • a larger value among two or more points may be calculated, or if there is only one point, the value may be calculated (4 4 4 4 6 6 6 8 9 9 8 8 9) ).
  • some points may be lost in the process of encoding and reconstructing the points of the patch (eg, 8 points are lost in the figure).
  • Max mode it is the value obtained by subtracting the minimum value in the normal direction of the patch calculated in the process 1 from the minimum value in the normal direction of the patch (patch 3d shift normal axis) to the maximum value of the normal axis of each point (patch 3d shift normal axis). Construct the d0 image with depth0. If there is another depth value within the range within depth0 and surface thickness at the same location, set this value to depth1. If it does not exist, the value of depth0 is also assigned to depth1. Construct the d1 image with the Depth1 value.
  • a maximum value may be calculated in determining the depth of the points of d0 (4 4 4 4 6 6 6 8 9 9 8 8 9).
  • a smaller value among two or more points may be calculated, or if there is only one point, the value may be calculated (4 2 4 4 5 6 0 6 9 9 0 8 0).
  • some points may be lost in the process of encoding and reconstructing the points of the patch (eg, 6 points are lost in the drawing).
  • the entire geometry image can be created by placing the geometry image of an individual patch created through the above process on the entire geometry image using the patch location information determined in the patch packing process.
  • the d1 layer of the generated entire geometry image can be encoded in several ways.
  • the first is a method of encoding the depth values of the previously generated d1 image as it is (absolute d1 method).
  • the second is a method of encoding a difference value between the depth value of the previously generated d1 image and the depth value of the d0 image (differential method).
  • EDD Enhanced-Delta- Depth
  • FIG 10 shows an example of an EDD code according to embodiments.
  • the point cloud encoder 10002 and/or some/whole process of V-PCC encoding may encode geometric information of points based on the EOD code.
  • a point exists above the reference point, it becomes 1, and if the point does not exist, it becomes 0, so that a code may be expressed based on 4 bits.
  • Smoothing is an operation to remove discontinuities that may occur at the patch interface due to deterioration of image quality that occurs during the compression process, and may be performed by a point cloud encoder or a smoother.
  • This process can be said to be the reverse process of the previously described geometry image creation.
  • the reverse process of encoding may be reconstruction.
  • the point is moved to the center of gravity of the adjacent points (located at the average x, y, z coordinates of the adjacent points). That is, it changes the geometry value. Otherwise, the previous geometry value is maintained.
  • FIG. 11 shows an example of recoloring using color values of adjacent points according to embodiments.
  • the point cloud encoder or texture image generator 40003 may generate a texture image based on recoloring.
  • the texture image creation process is similar to the geometry image creation process described above, and consists of creating texture images of individual patches and placing them in a determined position to create the entire texture image. However, in the process of creating the texture image of each patch, an image with color values (e.g. R, G, B) of the point constituting the point cloud corresponding to the location is created instead of the depth value for geometry creation.
  • color values e.g. R, G, B
  • a recoloring process may be required to find a color suitable for the changed position. Recoloring may be performed using color values of adjacent points. For example, as shown in the drawing, a new color value may be calculated in consideration of the color value of the closest point and the color values of the adjacent points.
  • the recoloring is based on the average of the attribute information of the closest original points to the point and/or the average of the attribute information of the closest original positions to the point to calculate a suitable color value of the changed position can do.
  • a texture image can also be created with two layers of t0/t1 like a geometry image created with two layers of d0/d1.
  • the point cloud encoder or oscillation patch information compressor may compress oscillation patch information (additional information about the point cloud).
  • the Oscilry patch information compressor compresses (compresses) the additional patch information generated in the patch generation, patch packing, and geometry generation processes described above.
  • Additional patch information may include the following parameters:
  • 3D spatial position of the patch the tangent minimum of the patch (patch 3d shift tangent axis), the minimum of the patch's bitangent (patch 3d shift bitangent axis), the minimum of the patch in the normal direction (patch 3d shift normal axis)
  • Mapping information of each block and patch candidate index (When patches are placed in order based on the 2D spatial location and size information of the patch above, multiple patches can be mapped to one block in duplicate. At this time, the mapped patches are It composes the candidate list, and the index indicating which patch data of this list exists in the corresponding block), and the local patch index (index indicating one of all patches existing in the frame).
  • Table X is a pseudo code showing the block and patch match process using the candidate list and local patch index.
  • the maximum number of candidate lists can be defined by the user.
  • Image padding and group dilation (40006, 40007, 40008)
  • the image fader according to embodiments may fill a space other than the patch area with meaningless additional data based on the push-pull background filling method.
  • Image padding is a process of filling a space other than the patch area with meaningless data for the purpose of improving compression efficiency.
  • a method in which pixel values of columns or rows corresponding to the boundary surface inside the patch are copied to fill the empty space can be used.
  • a push-pull background filling method in which an empty space is filled with pixel values from a low-resolution image in the process of gradually reducing the resolution of the non-padded image and increasing the resolution again may be used.
  • Group dilation is a method of filling the empty space of the geometry and texture image composed of two layers d0/d1 and t0/t1. It is the process of filling in the average value of .
  • FIG. 13 shows an example of a possible traversal order for a block of 4*4 size according to embodiments.
  • the occupancy map compressor may compress the previously generated occupancy map. Specifically, there may be two methods: video compression for lossy compression and entropy compression for lossless compression. Video compression is described below.
  • the entropy compression process may be performed as follows.
  • the entry compressor may code (encode) the block based on the traversal order method as shown in the drawing.
  • the index is encoded by selecting the best traversal order having the minimum number of runs among possible traversal orders.
  • the drawing is a case where the third traversal order of FIG. 13 is selected, and in this case, since the number of runs can be minimized to 2, it can be selected as the best traversal order.
  • Video compression (40009, 40010, 40011)
  • the video compressor encodes a sequence such as a geometry image, a texture image, an occupancy map image, etc. generated by the above-described process by using a 2D video codec such as HEVC or VVC.
  • FIG. 15 shows an example of a 2D video/image encoder according to embodiments.
  • the figure shows a schematic block diagram of a 2D video/image encoder 15000 in which encoding of a video/image signal is performed as an embodiment of the above-described video compression (Video compression, 40009, 40010, 40011) or a video compressor.
  • the 2D video/image encoder 15000 may be included in the above-described point cloud video encoder, or may be configured as an internal/external component.
  • Each component in Fig. 15 may correspond to software, hardware, a processor and/or a combination thereof.
  • the input image may include the above-described geometry image, texture image (attribute(s) image), occupancy map image, and the like.
  • the output bitstream (ie, point cloud video/image bitstream) of the point cloud video encoder may include output bitstreams for each input image (geometry image, texture image (attribute(s) image), occupancy map image, etc.). .
  • the inter prediction unit 15090 and the intra prediction unit 15100 may be collectively referred to as a prediction unit. That is, the prediction unit may include an inter prediction unit 15090 and an intra prediction unit 15100 .
  • the transform unit 15030 , the quantization unit 15040 , the inverse quantization unit 15050 , and the inverse transform unit 15060 may be included in a residual processing unit.
  • the residual processing unit may further include a subtraction unit 15020 .
  • the above-described image division unit 15010, subtraction unit 15020, transform unit 15030, quantization unit 15040, inverse quantization unit (), ), inverse transform unit 15060, addition unit 155, filtering unit ( 15070 , the inter prediction unit 15090 , the intra prediction unit 15100 , and the entropy encoding unit 15110 may be configured by one hardware component (eg, an encoder or a processor) according to an embodiment.
  • the memory 15080 may include a decoded picture buffer (DPB), and may be configured by a digital storage medium.
  • DPB decoded picture buffer
  • the image divider 15010 may divide an input image (or a picture, a frame) input to the encoding apparatus 15000 into one or more processing units.
  • the processing unit may be referred to as a coding unit (CU).
  • the coding unit may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree (QTBT) structure.
  • CTU coding tree unit
  • LCU largest coding unit
  • QTBT quad-tree binary-tree
  • one coding unit may be divided into a plurality of coding units having a lower depth based on a quad tree structure and/or a binary tree structure.
  • a quad tree structure may be applied first and a binary tree structure may be applied later.
  • the binary tree structure may be applied first.
  • the coding procedure according to the present invention may be performed based on the final coding unit that is no longer divided.
  • the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than the optimal coding unit if necessary.
  • a coding unit of the size of may be used as the final coding unit.
  • the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
  • the processing unit may further include a prediction unit (PU) or a transform unit (TU).
  • the prediction unit and the transform unit may be divided or partitioned from the above-described final coding unit, respectively.
  • the prediction unit may be a unit of sample prediction
  • the transform unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient.
  • a unit may be used interchangeably with terms such as a block or an area in some cases.
  • an MxN block may represent a set of samples or transform coefficients including M columns and N rows.
  • a sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
  • a sample may be used as a term corresponding to a picture (or image) as a pixel or a pel.
  • the encoding apparatus 15000 subtracts the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 15090 or the intra prediction unit 15100 from the input image signal (original block, original sample array) to obtain a residual A signal (residual signal, residual block, residual sample array) may be generated, and the generated residual signal is transmitted to the converter 15030 .
  • a unit for subtracting a prediction signal (prediction block, prediction sample array) from an input image signal (original block, original sample array) in the encoder 15000 may be called a subtraction unit 15020 .
  • the prediction unit may perform prediction on a processing target block (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block.
  • the prediction unit may determine whether intra prediction or inter prediction is applied on a current block or CU basis.
  • the prediction unit may generate various information about prediction, such as prediction mode information, and transmit it to the entropy encoding unit 15110, as will be described later in the description of each prediction mode.
  • the prediction information may be encoded by the entropy encoding unit 15110 and output in the form of a bitstream.
  • the intra prediction unit 15100 may predict the current block with reference to samples in the current picture.
  • the referenced samples may be located in the neighborhood of the current block or may be located apart from each other according to the prediction mode.
  • prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
  • the non-directional mode may include, for example, a DC mode and a planar mode (Planar mode).
  • the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the granularity of the prediction direction. However, this is an example, and a higher or lower number of directional prediction modes may be used according to a setting.
  • the intra prediction unit 15100 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the inter prediction unit 15090 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
  • motion information may be predicted in units of blocks, subblocks, or samples based on the correlation between motion information between neighboring blocks and the current block.
  • the motion information may include a motion vector and a reference picture index.
  • the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
  • the neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks present in the reference picture.
  • the reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different.
  • a temporal neighboring block may be called a collocated reference block, a collocated CU (colCU), etc.
  • a reference picture including a temporally neighboring block may be called a collocated picture (colPic).
  • the inter prediction unit 15090 constructs a motion information candidate list based on neighboring blocks, and generates information indicating which candidate is used to derive a motion vector and/or a reference picture index of the current block. can do.
  • Inter prediction may be performed based on various prediction modes. For example, in the skip mode and merge mode, the inter prediction unit 15090 may use motion information of a neighboring block as motion information of the current block. In the skip mode, unlike the merge mode, a residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the current block is determined by using a motion vector of a neighboring block as a motion vector predictor and signaling a motion vector difference. can direct
  • Inter prediction unit 15090 The prediction signal generated by the intra prediction unit 15100 may be used to generate a reconstructed signal or may be used to generate a residual signal.
  • the transform unit 15030 may generate transform coefficients by applying a transform technique to the residual signal.
  • the transformation technique includes at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen Loeve Transform (KLT), Graph-Based Transform (GBT), or Conditionally Non-linear Transform (CNT).
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • KLT Karhunen Loeve Transform
  • GBT Graph-Based Transform
  • CNT Conditionally Non-linear Transform
  • GBT means a transformation obtained from this graph when expressing relationship information between pixels in a graph.
  • CNT refers to a transformation obtained by generating a prediction signal using all previously reconstructed pixels and based thereon.
  • the transformation process may be applied to a block of pixels having the same size as a square, or may be applied to a block of a variable size that is not a square.
  • the quantization unit 15040 quantizes the transform coefficients and transmits them to the entropy encoding unit 15110, and the entropy encoding unit 15110 encodes the quantized signal (information on the quantized transform coefficients) and outputs it as a bitstream. have. Information about the quantized transform coefficients may be referred to as residual information.
  • the quantization unit 15040 may rearrange quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and a quantized transform coefficient based on the quantized transform coefficients in a one-dimensional vector form. You can also create information about them.
  • the entropy encoding unit 15110 may perform various encoding methods such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
  • the entropy encoding unit 15110 may encode information necessary for video/image reconstruction (eg, values of syntax elements, etc.) other than the quantized transform coefficients together or separately.
  • Encoded information eg, encoded video/image information
  • NAL network abstraction layer
  • the bitstream may be transmitted over a network, or may be stored in a digital storage medium.
  • the network may include a broadcasting network and/or a communication network
  • the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • a transmitting unit (not shown) and/or a storing unit (not shown) for storing may be configured as internal/external elements of the encoding apparatus 15000, or the transmitting unit It may be included in the entropy encoding unit 15110 .
  • the quantized transform coefficients output from the quantization unit 15040 may be used to generate a prediction signal.
  • a residual signal residual block or residual samples
  • the adder 155 adds the reconstructed residual signal to the prediction signal output from the inter prediction unit 15090 or the intra prediction unit 15100 to obtain a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). can be created
  • the predicted block may be used as a reconstructed block.
  • the adder 155 may be referred to as a restoration unit or a restoration block generator.
  • the generated reconstructed signal may be used for intra prediction of the next processing object block in the current picture, or may be used for inter prediction of the next picture after filtering as described below.
  • the filtering unit 15070 may improve subjective/objective image quality by applying filtering to the reconstructed signal. For example, the filtering unit 15070 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and stores the modified reconstructed picture in the memory 15080, specifically, in the DPB of the memory 15080. can be saved Various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like. The filtering unit 15070 may generate various types of filtering-related information and transmit it to the entropy encoding unit 15110, as will be described later in the description of each filtering method. The filtering-related information may be encoded by the entropy encoding unit 15110 and output in the form of a bitstream.
  • the modified reconstructed picture transmitted to the memory 15080 may be used as a reference picture in the inter prediction unit 15090 .
  • the encoding apparatus can avoid prediction mismatch between the encoding apparatus 15000 and the decoding apparatus, and can also improve encoding efficiency.
  • the memory 15080 DPB may store the modified reconstructed picture to be used as a reference picture in the inter prediction unit 15090 .
  • the memory 15080 may store motion information of a block in which motion information in the current picture is derived (or encoded) and/or motion information of blocks in an already reconstructed picture.
  • the stored motion information may be transmitted to the inter prediction unit 15090 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
  • the memory 15080 may store reconstructed samples of blocks reconstructed in the current picture, and may transmit the reconstructed samples to the intra prediction unit 15100 .
  • prediction, transformation, and quantization procedures may be omitted.
  • prediction, transformation, and quantization procedures may be omitted, and a value of an original sample may be encoded and output as a bitstream.
  • V-PCC decoding process shows an example of a V-PCC decoding process according to embodiments.
  • V-PCC decoding process or V-PCC decoder may follow the reverse process of the V-PCC encoding process (or encoder) of FIG. 4 .
  • Each component in FIG. 16 may correspond to software, hardware, a processor, and/or a combination thereof.
  • a demultiplexer demultiplexes the compressed bitstream to output a compressed texture image, a compressed geometry image, a compressed occupanci map, and compressed accessory patch information.
  • the video decompression (video decompression, 16001, 16002) or video decompressor decompresses (or decodes) each of a compressed texture image and a compressed geometry image.
  • the occupancy map decompression (16003) or occupancy map decompressor decompresses the compressed occupancy map.
  • auxiliary patch info decompression 16004
  • auxiliary patch information decompressor decompresses auxiliary patch information.
  • a geometry reconstruction (16005) or geometry reconstructor reconstructs (reconstructs) geometry information based on a decompressed geometry image, a decompressed accumulator map, and/or decompressed acupancy patch information. For example, a geometry changed in the encoding process may be reconstructed.
  • a smoothing (16006) or smoother may apply smoothing to the reconstructed geometry. For example, smoothing filtering may be applied.
  • a texture reconstruction (16007) or texture reconstructor reconstructs a texture from a decompressed texture image and/or smoothed geometry.
  • a color smoothing (16008) or color smoother smoothes color values from the reconstructed texture. For example, smoothing filtering may be applied.
  • reconstructed point cloud data may be generated.
  • the figure shows and shows the decoding process of V-PCC for reconstructing a point cloud by decoding the compressed occupancy map, geometry image, texture image, and auxiliary path information. same. Operations of each process according to the embodiments are as follows.
  • a reverse process of video compression described above is a process of decoding a compressed bitstream such as a geometry image, texture image, and occupancy map image generated by the process described above using a 2D video codec such as HEVC and VVC.
  • a 2D video codec such as HEVC and VVC.
  • FIG. 17 shows an example of a 2D Video/Image Decoder according to embodiments.
  • the 2D video/image decoder may follow the reverse process of the 2D video/image encoder of FIG. 15 .
  • the 2D video/image decoder of FIG. 17 is an embodiment of the video decompression or video decompressor of FIG. 16, and is a schematic block diagram of a 2D video/image decoder 17000 in which decoding of a video/image signal is performed. indicates
  • the 2D video/image decoder 17000 may be included in the point cloud video decoder of FIG. 1 , or may be composed of internal/external components. Each component of FIG. 17 may correspond to software, hardware, a processor, and/or a combination thereof.
  • the input bitstream may include a bitstream for the above-described geometry image, texture image (attribute(s) image), occupancy map image, and the like.
  • the reconstructed image (or output image, decoded image) may represent a reconstructed image for the above-described geometry image, texture image (attribute(s) image), and occupancy map image.
  • the inter prediction unit 17070 and the intra prediction unit 17080 may be collectively referred to as a prediction unit. That is, the prediction unit may include an inter prediction unit 180 and an intra prediction unit 185 .
  • the inverse quantization unit 17020 and the inverse transform unit 17030 may be collectively referred to as a residual processing unit. That is, the residual processing unit may include an inverse quantization unit 17020 and an inverse transform unit 17030 .
  • the above-described entropy decoding unit 17010, inverse quantization unit 17020, inverse transform unit 17030, adder 17040, filtering unit 17050, inter prediction unit 17070 and intra prediction unit 17080 are the embodiment may be configured by one hardware component (eg, a decoder or a processor).
  • the memory 170 may include a decoded picture buffer (DPB), and may be configured by a digital storage medium.
  • DPB decoded picture buffer
  • the decoding apparatus 17000 may reconstruct an image corresponding to a process in which the video/image information is processed in the encoding apparatus of FIG. 0.2-1 .
  • the decoding apparatus 17000 may perform decoding using a processing unit applied in the encoding apparatus.
  • the processing unit of decoding may be, for example, a coding unit, and the coding unit may be divided along a quad tree structure and/or a binary tree structure from a coding tree unit or a largest coding unit.
  • the reconstructed image signal decoded and output through the decoding device 17000 may be reproduced through the playback device.
  • the decoding apparatus 17000 may receive a signal output from the encoding apparatus in the form of a bitstream, and the received signal may be decoded through the entropy decoding unit 17010 .
  • the entropy decoding unit 17010 may parse the bitstream to derive information (eg, video/image information) required for image restoration (or picture restoration).
  • the entropy decoding unit 17010 decodes information in a bitstream based on a coding method such as exponential Golomb encoding, CAVLC or CABAC, and a value of a syntax element required for image reconstruction, and a quantized value of a transform coefficient related to a residual can be printed out.
  • the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes the syntax element information to be decoded and the decoding information of the surrounding and decoding target blocks or the symbol/bin information decoded in the previous step.
  • a context model is determined using the context model, and the probability of occurrence of a bin is predicted according to the determined context model, and a symbol corresponding to the value of each syntax element can be generated by performing arithmetic decoding of the bin. have.
  • the CABAC entropy decoding method may update the context model by using the decoded symbol/bin information for the context model of the next symbol/bin after determining the context model.
  • Prediction-related information among the information decoded by the entropy decoding unit 17010 is provided to the prediction unit (the inter prediction unit 17070 and the intra prediction unit 265), and the entropy decoding unit 17010 performs entropy decoding.
  • the dual value, that is, quantized transform coefficients and related parameter information may be input to the inverse quantization unit 17020 .
  • information about filtering among the information decoded by the entropy decoding unit 17010 may be provided to the filtering unit 17050 .
  • a receiving unit (not shown) that receives a signal output from the encoding device may be further configured as an internal/external element of the decoding device 17000 , or the receiving unit may be a component of the entropy decoding unit 17010 .
  • the inverse quantizer 17020 may inverse quantize the quantized transform coefficients to output transform coefficients.
  • the inverse quantizer 17020 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on the coefficient scan order performed by the encoding device.
  • the inverse quantizer 17020 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (eg, quantization step size information) and obtain transform coefficients.
  • a quantization parameter eg, quantization step size information
  • the inverse transform unit 17030 inverse transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
  • the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
  • the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the prediction information output from the entropy decoding unit 17010, and may determine a specific intra/inter prediction mode.
  • the intra prediction unit 265 may predict the current block with reference to samples in the current picture.
  • the referenced samples may be located in the neighborhood of the current block or may be located apart from each other according to the prediction mode.
  • prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
  • the intra prediction unit 265 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the inter prediction unit 17070 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
  • motion information may be predicted in units of blocks, subblocks, or samples based on the correlation between motion information between neighboring blocks and the current block.
  • the motion information may include a motion vector and a reference picture index.
  • the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
  • the neighboring blocks may include spatial neighboring blocks existing in the current picture and temporal neighboring blocks present in the reference picture.
  • the inter prediction unit 17070 may construct a motion information candidate list based on neighboring blocks, and derive a motion vector and/or a reference picture index of the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the prediction information may include information indicating the inter prediction mode for the current block.
  • the adder 17040 adds the obtained residual signal to the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 17070 or the intra prediction unit 265 to obtain a reconstructed signal (reconstructed picture, reconstructed block). , a reconstructed sample array).
  • the predicted block may be used as a reconstructed block.
  • the addition unit 17040 may be called a restoration unit or a restoration block generation unit.
  • the generated reconstructed signal may be used for intra prediction of the next processing object block in the current picture, or may be used for inter prediction of the next picture after filtering as described below.
  • the filtering unit 17050 may improve subjective/objective image quality by applying filtering to the reconstructed signal.
  • the filtering unit 17050 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and stores the modified reconstructed picture in the memory 17060, specifically, the DPB of the memory 17060.
  • Various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like.
  • the (modified) reconstructed picture stored in the DPB of the memory 17060 may be used as a reference picture in the inter prediction unit 17070 .
  • the memory 17060 may store motion information of a block from which motion information in the current picture is derived (or decoded) and/or motion information of blocks in an already reconstructed picture.
  • the stored motion information may be transmitted to the inter prediction unit 17070 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block.
  • the memory 170 may store reconstructed samples of reconstructed blocks in the current picture, and may transmit the reconstructed samples to the intra prediction unit 17080 .
  • the embodiments described in the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoding apparatus 100 are the filtering unit 17050 and the inter prediction unit of the decoding apparatus 17000, respectively.
  • the same or corresponding application may be applied to the unit 17070 and the intra prediction unit 17080 .
  • prediction, transformation, and quantization procedures may be omitted.
  • prediction, transformation, and quantization procedures may be omitted, and a value of a decoded sample may be used as a sample of a reconstructed image as it is.
  • This is the reverse process of the occupancy map compression described above, and is a process for restoring the occupancy map by decoding the compressed occupancy map bitstream.
  • Auxiliary patch info can be restored by performing the reverse process of auxiliary patch info compression described above and decoding the compressed auxiliary patch info bitstream.
  • the patch is extracted from the geometry image using the 2D location/size information of the patch and the mapping information of the block and the patch included in the restored occupancy map and auxiliary patch info.
  • the point cloud is restored in 3D space using the extracted patch geometry image and the patch 3D location information included in auxiliary patch info.
  • g(u, v) be the geometry value corresponding to any point (u, v) existing in one patch, and the coordinate values of the normal axis, tangent axis, and bitangent axis of the patch's three-dimensional space position (d0).
  • the color values corresponding to the texture image pixels in the same position as in the geometry image in 2D space are obtained from the point cloud corresponding to the same position in the 3D space. This can be done by giving a point.
  • smoothing may be performed by determining a portion other than the edge.
  • smoothing a method of changing the color value of a corresponding point with the average value of adjacent tangents may be used.
  • FIG. 18 shows an example of an operation flowchart of a transmitting apparatus according to the embodiments.
  • the transmitting apparatus may correspond to the transmitting apparatus of FIG. 1 , the encoding process of FIG. 4 , and the 2D video/image encoder of FIG. 15 , or may perform some/all operations thereof.
  • Each component of the transmitting device may correspond to software, hardware, a processor and/or a combination thereof.
  • An operation process of the transmitter for compression and transmission of point cloud data using V-PCC may be as shown in the drawing.
  • the point cloud data transmission apparatus may be referred to as a transmission apparatus or the like.
  • a patch for mapping a 2D image of a point cloud is generated. Additional patch information is generated as a result of patch generation, and the corresponding information can be used for geometry image generation, texture image generation, and geometry restoration for smoothing.
  • the generated patches are subjected to a patch packing process of mapping into a 2D image.
  • a patch packing process of mapping into a 2D image As a result of patch packing, an occupancy map can be generated, and the occupancy map can be used for geometry image generation, texture image generation, and geometry restoration for smoothing.
  • the geometry image generator 18002 generates a geometry image by using the additional patch information and the occupanci map, and the generated geometry image is encoded into one bitstream through video encoding.
  • the encoding preprocessing 18003 may include an image padding procedure.
  • the generated geometry image or the geometry image regenerated by decoding the encoded geometry bitstream may be used for 3D geometry restoration and may then be subjected to a smoothing process.
  • the texture image generator 18004 may generate a texture image using a (smoothed) 3D geometry, a point cloud, additional patch information, and an occupanci map.
  • the generated texture image may be encoded into one video bitstream.
  • the metadata encoder 18005 may encode the additional patch information into one metadata bitstream.
  • the video encoder 18006 may encode the occult map into one video bitstream.
  • the multiplexer 18007 multiplexes a video bitstream of the generated geometry, texture image, and occupancy map and an additional patch information metadata bitstream into one bitstream.
  • the transmitter 18008 may transmit the bitstream to the receiver.
  • the video bitstream of the generated geometry, texture image, occupanci map, and the additional patch information metadata bitstream may be generated as one or more track data or encapsulated into segments and transmitted to the receiver through the transmitter.
  • FIG. 19 shows an example of an operation flowchart of a receiving apparatus according to the embodiments.
  • the reception apparatus may correspond to the reception apparatus of FIG. 1 , the decoding process of FIG. 16 , and the 2D video/image encoder of FIG. 17 or perform some/all operations thereof.
  • Each component of the receiving device may correspond to software, hardware, a processor and/or a combination thereof.
  • the operation process of the receiving end for receiving and restoring the point cloud data using the V-PCC may be as shown in the drawing.
  • the operation of the V-PCC receiving end may follow the reverse process of the operation of the V-PCC transmitting end of FIG. 18 .
  • a device for receiving point cloud data may be referred to as a receiving device or the like.
  • the received bitstream of the point cloud is demultiplexed by the demultiplexer 19000 into an additional patch information metadata bitstream and video bitstreams of a compressed geometry image, texture image, occupanci map after file/segment decapsulation. do.
  • the video decoder 19001 and the metadata decoder 19002 decode demultiplexed video bitstreams and metadata bitstreams.
  • the 3D geometry is restored by using the geometry image decoded by the geometry restoration unit 19003, the occupanci map, and additional patch information, and then is subjected to a smoothing process by the smoother 19004.
  • the color point cloud image/picture may be reconstructed by the texture restoration unit 19005 by giving a color value to the smoothed 3D geometry using a texture image.
  • a color smoothing process can be additionally performed to improve the objective/subjective visual quality, and the modified point cloud image/picture derived through this can be obtained through the rendering process (ex. by point cloud renderer) displayed to the user through Meanwhile, the color smoothing process may be omitted in some cases.
  • FIG. 20 shows an example of a structure capable of interworking with a method/device for transmitting and receiving point cloud data according to embodiments.
  • the structure according to the embodiments may include at least one of a server 2360 , a robot 2010 , an autonomous vehicle 2020 , an XR device 2030 , a smartphone 2040 , a home appliance 2050 , and/or an HMD 2070 .
  • the above is connected to the cloud network 2010 .
  • the robot 2010 , the autonomous driving vehicle 2020 , the XR device 2030 , the smart phone 2040 , or the home appliance 2050 may be referred to as devices.
  • the XR device 2030 may correspond to a point cloud data (PCC) device according to embodiments or may be linked with the PCC device.
  • PCC point cloud data
  • the cloud network 2000 may refer to a network that constitutes a part of the cloud computing infrastructure or exists in the cloud computing infrastructure.
  • the cloud network 2000 may be configured using a 3G network, a 4G or Long Term Evolution (LTE) network, or a 5G network.
  • LTE Long Term Evolution
  • the server 2360 includes at least one of a robot 2010, an autonomous vehicle 2020, an XR device 2030, a smartphone 2040, a home appliance 2050, and/or an HMD 2070, and a cloud network 2000. It is connected through and may help at least a part of the processing of the connected devices 2010 to 2070 .
  • a Head-Mount Display (HMD) 2070 represents one of the types in which an XR device and/or a PCC device according to embodiments may be implemented.
  • the HMD-type device according to the embodiments includes a communication unit, a control unit, a memory unit, an I/O unit, a sensor unit, and a power supply unit.
  • the devices 2010 to 2070 to which the above-described technology is applied will be described.
  • the devices 2000 to 2700 shown in FIG. 20 may be linked/coupled with the point cloud data transmission/reception device according to the above-described embodiments.
  • the XR/PCC device 2030 is a PCC and/or XR (AR+VR) technology applied, such as a Head-Mount Display (HMD), a Head-Up Display (HUD) provided in a vehicle, a television, It may be implemented as a mobile phone, a smart phone, a computer, a wearable device, a home appliance, a digital signage, a vehicle, a stationary robot, or a mobile robot.
  • HMD Head-Mount Display
  • HUD Head-Up Display
  • the XR/PCC device 2030 analyzes three-dimensional point cloud data or image data acquired through various sensors or from an external device to generate position data and attribute data for three-dimensional points in the surrounding space or real objects. Information can be obtained and the XR object to be output can be rendered and output. For example, the XR/PCC apparatus 2030 may output an XR object including additional information on the recognized object to correspond to the recognized object.
  • the autonomous driving vehicle 2020 may be implemented as a mobile robot, vehicle, unmanned aerial vehicle, etc. by applying PCC technology and XR technology.
  • the autonomous driving vehicle 2020 to which the XR/PCC technology is applied may mean an autonomous driving vehicle having a means for providing an XR image, an autonomous driving vehicle subject to control/interaction within the XR image, or the like.
  • the autonomous driving vehicle 2020 that is the target of control/interaction within the XR image may be distinguished from the XR device 2030 and may be interlocked with each other.
  • the autonomous vehicle 2020 having means for providing an XR/PCC image may obtain sensor information from sensors including a camera, and output an XR/PCC image generated based on the acquired sensor information.
  • the autonomous vehicle may provide a real object or an XR/PCC object corresponding to an object in a screen to a passenger by outputting an XR/PCC image with a HUD.
  • the XR/PCC object when the XR/PCC object is output to the HUD, at least a portion of the XR/PCC object may be output to overlap the real object to which the passenger's gaze is directed.
  • the XR/PCC object when the XR/PCC object is output to a display provided inside the autonomous vehicle, at least a part of the XR/PCC object may be output to overlap the object in the screen.
  • the autonomous vehicle may output XR/PCC objects corresponding to objects such as lanes, other vehicles, traffic lights, traffic signs, two-wheeled vehicles, pedestrians, and buildings.
  • VR Virtual Reality
  • AR Augmented Reality
  • MR Magnetic Reality
  • PCC Point Cloud Compression
  • VR technology is a display technology that provides objects or backgrounds in the real world only as CG images.
  • AR technology refers to a technology that shows a virtual CG image on top of an actual object image.
  • the MR technology is similar to the AR technology described above in that it shows the virtual objects by mixing and combining them in the real world.
  • AR technology the distinction between real objects and virtual objects made of CG images is clear, and virtual objects are used in a form that complements real objects, whereas in MR technology, virtual objects are regarded as having the same characteristics as real objects. distinct from technology. More specifically, for example, a hologram service to which the aforementioned MR technology is applied.
  • VR, AR, and MR technologies are sometimes called XR (extended reality) technologies rather than clearly distinguishing them. Accordingly, embodiments of the present invention are applicable to all of VR, AR, MR, and XR technologies. As one such technology, encoding/decoding based on PCC, V-PCC, and G-PCC technology may be applied.
  • the PCC method/apparatus according to the embodiments may be applied to a vehicle providing an autonomous driving service.
  • a vehicle providing an autonomous driving service is connected to a PCC device for wired/wireless communication.
  • the point cloud data (PCC) transceiver receives/processes AR/VR/PCC service-related content data that can be provided together with the autonomous driving service when connected to a vehicle to enable wired/wireless communication, can be sent to
  • the point cloud transceiver may receive/process AR/VR/PCC service-related content data according to a user input signal input through the user interface device and provide it to the user.
  • a vehicle or a user interface device may receive a user input signal.
  • a user input signal according to embodiments may include a signal indicating an autonomous driving service.
  • V-PCC Video-based Point Cloud Compression
  • V3C Visual Volumetric Video-based Coding
  • 21 shows an encoder of an apparatus for transmitting point cloud data according to embodiments.
  • An apparatus for transmitting point cloud data includes an encoder for encoding the obtained point cloud data.
  • the encoder according to the embodiments shown in FIG. 21 includes all of the point cloud video encoder 10002 of FIG. 1 , the encoding device 100 of FIG. 15 , and the point cloud data input unit to the multiplexer 18007 included in the transmitting end of FIG. 18 . Or it may mean some.
  • the encoder according to the embodiments shown in FIG. 21 may include all or part of the components included in the encoding process shown in FIG. 4 .
  • the encoder according to the embodiments shown in FIG. 21 may be included in the apparatus (eg, XR device, 1730, etc.) included in FIG. 20 .
  • the encoder of the point cloud data transmission apparatus includes a 3D patch generation unit (3D Patch generation, 21000), an attribute image generation unit (attribute image generation, 21001), a patch packing unit (Patch packing, 21002), a geometry image A geometry image generation unit 21003, a patch sequence compression unit 21004, a smoothing unit 21005, image padding units 21006a, 21006b, video compression units 21007a to 21007c, and/or It includes a multiplexer (Multiplexer, 21008).
  • the 3D patch generation unit 21000 receives an input point cloud frame including input point cloud data according to embodiments, and generates a patch.
  • the input point cloud frame may be in the form of a bitstream including point cloud data.
  • the 3D patch generation unit 21000 generates patch info including information on patch generation.
  • the 3D patch generation unit 21000 may perform the operations shown in FIGS. 3 and 6 , for example.
  • the 3D patch generation unit 21000 may refer to, for example, the patch generation unit 40000 of FIG. 4 and the patch generation unit 18000 of FIG. 18 .
  • the attribute image generation unit 21001 generates an attribute image based on point cloud data (eg, an input point cloud frame), a patch, and/or a packed patch.
  • point cloud data eg, an input point cloud frame
  • patch e.g., a patch
  • packed patch e.g., a packed patch
  • the attribute image generator 21001 may refer to, for example, the texture image generator 40003 of FIG. 4 and the texture image generator 18004 of FIG. 18 .
  • the patch packing unit 21002 packs patches generated by the 3D patch generation unit 21000 according to embodiments.
  • the patch packing unit may receive patch information, which is information about patch generation, and pack the patches based thereon.
  • the patch packing unit 21002 may generate an occupancy map including information about patch packing.
  • the patch packing unit 21002 may perform the operations of FIGS. 3 , 6 , and 7 , for example.
  • the patch packing unit 21002 may refer to, for example, the patch packing unit 40001 of FIG. 4 and the patch packing unit 18001 of FIG. 18 .
  • Encoding according to the embodiments in order to compress the input 3D point cloud data, three video streams from the input data, that is, Occupancy map video (OV), Geometry video (GV) , create an attribute video (AV) stream. And they are compressed using the 2D video codec in the encoder according to the embodiments.
  • Occupancy map video OV
  • Geometry video GV
  • AV attribute video
  • the geometry image generation unit 21003 generates an attribute image based on point cloud data (eg, an input point cloud frame), a patch, and/or a packed patch.
  • point cloud data eg, an input point cloud frame
  • patch e.g., a patch
  • packed patch e.g., a packed patch
  • the geometry image generator 21001 may refer to, for example, the geometry image generator 40002 of FIG. 4 and the geometry image generator 18002 of FIG. 18 .
  • the patch sequence compression unit 21004 compresses information on a sequence of patches based on patch info according to embodiments.
  • the patch sequence compression unit 21004 receives patch info and/or patches, compresses them, and outputs a patch sub-stream.
  • the patch sequence compression unit 21004 means, for example, an auxiliary patch info compression unit 40005 of FIG. 4 .
  • the patch sequence compression unit performs, for example, an operation of compressing the additional patch information of FIG. 18 .
  • the smoothing unit 21005 may mitigate or remove an error included in the image data.
  • the smoothing unit according to the embodiments is a reconstructed geometry image generated from the video compression unit 21007b that video compresses the geometry image, patch info, and/or patch. Based on this, smoothed geometry can be created by gently filtering out parts that can cause errors between data.
  • the smoothing unit 21005 may generate smoothing parameters related to a smoothing operation.
  • the smoothing unit 21005 may refer to, for example, the smoothing unit 40004 of FIG. 4 and the smoother of FIG. 18 .
  • An attribute image padding unit 21006a pads an attribute image (eg, an image generated by the attribute image generating unit 21001) according to embodiments.
  • the attribute image padding unit 21006a may pad the attribute image based on the reconstructed occupancy map generated by the video compression unit 21007c for compressing the occupancy map. have.
  • the attribute image padding unit 21006a outputs a padded attribute.
  • the attribute image padding unit 21006a may mean, for example, the image padding unit 40007 of FIG. 4 and the encoding preprocessing unit 18003 of FIG. 18 .
  • a geometry image padding unit 21006b padding a geometry image (eg, an image generated by the geometry image generating unit 21003) according to embodiments.
  • the geometry image padding unit 21006b may pad the attribute image based on the reconstructed occupancy map generated by the video compression unit 21007c for compressing the occupancy map. have.
  • the geometry image padding unit 21006b outputs padded geometry.
  • the geometry image padding unit 21006b may refer to, for example, the image padding unit 40006 of FIG. 4 and the encoding preprocessing unit 18003 of FIG. 18 .
  • the attribute video compression unit receives an attribute image or a padded attribute according to embodiments and compresses them.
  • the attribute video compression unit 21007a outputs an attribute sub-bitstream.
  • the attribute video compression unit 21007a may refer to, for example, the compressed occupancy map 40010 of FIG. 4 and the video encoder 18006 of FIG. 18 .
  • the geometry video compression unit receives a geometry image or padded geometry according to embodiments and compresses them.
  • the geometry video compression unit 21007b outputs a geometry sub-bitstream.
  • the geometry video compression unit 21007b may compress padded geometry and/or a geometry image and generate a reconstructed geometry image.
  • the geometry video compression unit 21007b may refer to, for example, the compressed occupancy map 40009 of FIG. 4 and the video encoder 18006 of FIG. 18 .
  • An occupancy map video compression unit 21007c receives a geometry image or padded geometry according to embodiments and compresses them.
  • the geometry video compression unit 21007b outputs a geometry sub-bitstream.
  • the geometry video compression unit 21007b may compress padded geometry and/or a geometry image and generate a reconstructed geometry image.
  • the occupancy map video compression unit 21007c may refer to, for example, the compressed occupancy map 40011 of FIG. 4 and the video encoder 18006 of FIG. 18 .
  • the multiplexer 21008 is a patch sub-stream generated from the patch sequence compression 21004 according to embodiments, A generated attribute sub-stream, a geometry sub-stream generated from the video compression unit 21007b according to embodiments, and an occupancy sub-stream generated from the video compression unit 21007c stream) and/or smoothing parameters generated from the smoothing unit 21005 are multiplexed and a compressed bitstream including them is output.
  • the multiplexer 21008 may refer to, for example, a multiplexer 40013 of FIG. 4 and a multiplexer 18007 of FIG. 18 .
  • FIG. 22 illustrates a decoding process of an apparatus for receiving point cloud data according to embodiments.
  • An apparatus for receiving point cloud data includes a decoder for receiving and decoding a compressed bitstream.
  • a compressed bitstream includes point cloud data and/or metadata related thereto according to embodiments.
  • the compressed bitstream may include a patch sub stream, an occupancy sub stream, a geometry sub stream, an attribute sub stream, and / as shown in FIG. 21 . or a sequence parameter set (SPS).
  • SPS sequence parameter set
  • the decoder according to the embodiments shown in FIG. 22 is included in the point cloud video decoder 10008 of FIG. 1 , the apparatus/processor performing the decoding process of FIG. 16 , the decoding apparatus 200 of FIG. 17 , and the receiving end of FIG. 19 . It may mean all or part of the demultiplexer 19000 to the point cloud renderer.
  • the encoder according to the embodiments shown in FIG. 21 may be included in the apparatus (eg, XR device, 1730, etc.) included in FIG. 20 .
  • a decoder of an apparatus for receiving point cloud data may include a demultiplexer (22000), an SPS parsing unit (SPS parsing, 22001), a patch sequence decompression unit (22002), one or more video video decompression (22003-22005), geometry/attribute reconstruction (22006), geometry post-processing (or smoothing) (22007), and/or Includes attribute transfer & smoothing (22008).
  • the demultiplexer 22000 receives the compressed bitstream according to the embodiments, and includes a sequence parameter set (SPS), a patch sub-stream, and an accumulative sub-stream included therein. (occupancy sub stream), a geometry sub stream, and/or an attribute sub stream are classified and output.
  • SPS sequence parameter set
  • patch sub-stream a patch sub-stream
  • accumulative sub-stream included therein.
  • occupancy sub stream an accumulative sub-stream included therein.
  • geometry sub stream a geometry sub stream
  • attribute sub stream are classified and output.
  • the demultiplexer 22000 may refer to, for example, the de-multiplexer 16000 of FIG. 16 and the demultiplexer 19000 of FIG. 19 .
  • the SPS parsing unit receives and parses the sequence parameter set (SPS) according to the embodiments.
  • the SPS parsing unit 22001 may parse and output the SPS and transmit it to another configuration.
  • the SPS parsing unit 22001 may refer to, for example, the metadata decoding unit 19002 of FIG. 19 .
  • the patch sequence decompression unit 22002 receives a patch sub stream according to embodiments, decompresses it, and patch information (for example, the patch information of FIG. 21 ) (patch info)) is printed.
  • the patch sequence release unit 22002 may output patch information corresponding to a sequence signaled by the SPS based on the SPS according to embodiments.
  • the patch sequence decompression unit 22002 may refer to, for example, the auxiliary patch info decompression unit 16004 of FIG. 16 and the video decoding unit 19001 of FIG. 19 .
  • the video decompression unit 22003 for the accupancy sub-stream receives the occupancy sub-stream according to the embodiments, decompresses it, and outputs an occupancy map. .
  • the video release unit 22003 for the accuracy sub-stream may output an accuracy map corresponding to a sequence signaled by the SPS based on the SPS according to the embodiments.
  • the video decompression unit 22003 for the accuracy sub-stream may refer to, for example, the occupancy map decompression (16003) of FIG. 16 and the video decoding unit 19001 of FIG. 19 .
  • a video decompression unit 22004 for a geometry sub-stream receives a geometry sub-stream according to embodiments, decompresses it, and outputs geometry images.
  • the video release unit 22004 for the geometry sub-stream may output geometry images corresponding to a sequence signaled by the SPS based on the SPS according to embodiments.
  • the video decompression unit 22004 for the geometry sub-stream may refer to, for example, the video decompression unit 16002 of FIG. 16 and the video decoding unit 19001 of FIG. 19 .
  • a video decompression unit 22005 for an attribute sub-stream receives an attribute sub-stream according to embodiments, decompresses it, and outputs attribute images.
  • the video release unit 22005 for the attribute sub-stream may output attribute images corresponding to a sequence signaled by the SPS based on the SPS according to the embodiments.
  • the video decompression unit 22005 for the attribute sub-stream may refer to, for example, the video decompression 16001 of FIG. 16 and the video decoding unit 19001 of FIG. 19 .
  • the geometry/attribute reconstruction 22006 may include patch information, an occupancy map, geometry images, and/or attribute images according to embodiments. images), and reconstructs geometry data and attribute data according to embodiments using them.
  • the geometry/attribute reconstruction unit 22006 may reconstruct geometry and/or attribute data corresponding to a sequence signaled by the SPS based on the SPS according to the embodiments.
  • the geometry/attribute reconstruction unit 22006 may mean, for example, the geometry reconstruction unit of FIG. 16 , the smoothing unit, and/or the geometry restoration unit 19003 and the smoother 19004 of FIG. 19 . can
  • the geometry post-processing unit receives the geometry data and/or attribute data reconstructed from the geometry/attribute reconstruction unit 22006, and uses them in the embodiments. Post-processing or smoothing is performed to make the geometry data look clean.
  • the geometry post-processing unit 22007 may post-process or smooth geometry data corresponding to a sequence signaled by the SPS based on the SPS according to the embodiments.
  • the geometry post-processing unit 22007 may refer to, for example, some or all of the texture restoration unit 19005 and the color smoother of FIGS. 16 and/or 19 .
  • the geometry post-processing unit 22008 may refer to, for example, some or all of the texture restoration unit 19005 and the color smoother of FIGS. 16 and/or 19 .
  • 23 is a block diagram of an apparatus for transmitting point cloud data according to embodiments.
  • the point cloud data transmitting apparatus may refer to the transmitting apparatuses 10000 to 10004 of FIG. 1 , the apparatus including the encoding apparatus 100 of FIG. 15 , and the transmitting terminal of FIG. 18 .
  • the point cloud data transmission apparatus may include all or part of the components included in the encoding process shown in FIGS. 4 and 21 .
  • the encoder according to the embodiments shown in FIG. 23 may be included in the apparatus (eg, XR device, 1730, etc.) included in FIG. 20 .
  • the point cloud data transmission apparatus includes a point cloud data input unit 23000, a patch generation unit 23001, a patch packing unit 23002, a geometry image generation unit 23003, and an attribute image generation unit ( 23004), encoding preprocessor 23005, video combiner 23006, video encoder 23007, geometry reconstructor 23008, smoother 23009, metadata encoder 23010, multiplexer 23011 and / or a transmitter 23012 .
  • the point cloud data input unit 23000 may refer to point cloud data captured by one or more cameras.
  • the point cloud data means, for example, an input point cloud frame of FIG. 21 .
  • the patch generator 23001 generates patches from point cloud data according to embodiments.
  • the patch generation unit 23001 refers to the 3D patch generation unit 21000 of FIG. 21 .
  • the patch generator 23001 generates patches and auxiliary patch information (for example, patch info of FIG. 21 ) for the point cloud data (or sequence).
  • the patch packing unit 23002 packs the patches generated according to the embodiments.
  • the patch packing unit generates an occupancy map indicating the occupancy of the patches.
  • the patch packing unit 23002 refers to the patch packing unit 21002 of FIG. 21 .
  • the geometry image generator 23003 generates a geometry image representing the geometry data by using the point cloud data according to the embodiments.
  • the geometry image generating unit 23003 may generate a geometry image based on the patches generated by the patch generating unit and/or a packed patch packed by the patch packing unit.
  • the geometry image generator 23003 refers to the geometry image generator 21003 of FIG. 21 .
  • the attribute image generator 23004 generates an attribute image representing attribute data by using the point cloud data according to embodiments.
  • the attribute image generating unit 23004 may generate an attribute image based on the patches generated by the patch generating unit and/or packed patches packed by the patch packing unit.
  • the attribute image generator 23004 refers to the attribute image generator 21004 of FIG. 21 .
  • the encoding pre-processing unit 23005 performs pre-processing to encode the geometry image and the attribute image according to the embodiments.
  • the encoding preprocessor 23005 may pad the geometry image and/or the attribute image.
  • the encoding preprocessor 23005 may mean, for example, the image padding units 21006a and 21006b of FIG. 21 .
  • the video encoder 23007 encodes a geometry image, an attribute image, and an occupancy map according to embodiments.
  • the video encoder 23007 may refer, for example, to the video compression units 21007a to 21007c of FIG. 21 .
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the encoder 23007 when encoding the attribute images, geometry images, and/or packed patches, divides each generated video stream into three streams based on the 2D video codec. Perform compression operation.
  • the encoder 23007 may require up to three 2D video codecs to compress three video streams, such as a geometry image, an attribute image, and an occupanci map, respectively.
  • this configuration requires at least three video codecs to be executed at the same time, and this configuration increases computational complexity and requires many resources. Accordingly, the encoder 23007 according to the embodiments may reduce the required maximum number of video codecs to two, thereby reducing encoding and/or decoding complexity of point cloud data and reducing resource usage.
  • one or more 2D video codecs may be simultaneously used and encoded in parallel according to a resource and an operating environment of an application in which the V-PCC operates. Therefore, the point cloud data transmission apparatus according to the embodiments performs encoding to minimize delay, and at the same time increases encoding efficiency and broadens the application range of V-PCC, the encoder encodes using a video codec / It is possible to reduce the number of video streams to which decoding is applied.
  • the point cloud data transmission apparatus may further include the video combiner 23006 according to the embodiments to reduce the number of video streams to which encoding and/or decoding are applied.
  • the video combining unit 23006 may combine two video streams among three video streams (a geometry image stream, an attribute image stream, and an accumulatory map stream) into one stream, for example.
  • the video combiner 23006 generates a combined stream by combining an occupancy map with a geometry image that has been pre-encoded according to embodiments.
  • the video combiner 23006 may reduce the number of video streams to which encoding and/or decoding are applied, thereby lowering computational complexity of V-PCC and reducing resource occupation, and encoding and/or decoding processes It is possible to minimize unnecessary delay in the V-PCC, and provides the effect of expanding the range of applications using V-PCC.
  • the video combiner 23006 may be variously referred to as a video stream processing unit, a video processing unit, a stream processing unit, and the like.
  • the video combiner 23006 may generate signaling information indicating how three video streams are combined, the number of generated video streams, and/or types of generated video streams.
  • the video encoder 23007 may receive three streams (eg, a geometry image, an attribute image, and an accumulatory map) and encode them, respectively.
  • the video encoder 23007 may receive a combined stream and/or an uncombined stream generated from the video combiner and encode them.
  • the video encoder 23007 may receive a stream in which a geometry image and an accumulative image are combined, and an attribute image stream, and respectively encode them.
  • the video encoder 23007 outputs an encoded stream.
  • the video encoder 23007 outputs an image/stream in which the coded geometry/accuracy map is combined (ie, a geometry/occupancy map sub-stream, a geometry/occupancy map sub-stream) and an attribute sub-stream. do.
  • the geometry reconstructor 23008 reconstructs a geometry image/data by using the geometry data generated by the video encoder 23007 and generates a reconstructed geometry image.
  • the reconstructed geometry image generated by the geometry restoration unit 23008 means the reconstructed geometry image of FIG. 21 .
  • the smoother 23009 receives the reconstructed geometry image and generates parameters (ie, smoothing parameters) for smoothing the geometry image and/or the attribute image.
  • the smoother 23009 generates these parameters and transmits them to the attribute image generator 23004 .
  • the metadata encoder 23010 encodes metadata according to embodiments.
  • the metadata may include additional patch information (eg, the patch information of FIG. 21 ).
  • the metadata may include, for example, smoothing parameters generated from the smoother 23009 and the sequence parameter set described in FIG. 21 .
  • the multiplexer 23011 includes an image/stream in which an encoded geometry/accuracy map is combined (ie, a geometry/occupancy map sub-stream, a geometry/occupancy map sub-stream), an attribute sub-stream, and a metadata encoding unit ( 23010), multiplexes (multiplexes) them, and outputs one compressed bitstream.
  • the transmitter 23012 transmits the bitstream output by the multiplexer 23011 to the point cloud data receiving apparatus according to embodiments.
  • 24 is a block diagram of an apparatus for receiving point cloud data according to embodiments.
  • the point cloud data receiving apparatus may refer to the receiving apparatuses 10005 to 10009 of FIG. 1 , the apparatus including the decoding apparatus 100 of FIG. 17 , and the receiving end of FIG. 19 .
  • the point cloud data transmission apparatus may include all or part of the components included in the decoding process shown in FIGS. 16 and 22 .
  • the encoder according to the embodiments shown in FIG. 24 may be included in the apparatus (eg, XR device, 1730, etc.) included in FIG. 20 .
  • the point cloud data receiving apparatus may include a receiver 24000 , a demultiplexer 24001 , a video decoder 2402 , a metadata decoder 2403 , a video splitter 24004 , and a geometry restorer 24005 . ), a smoother 24006 , an attribute restoration unit 24007 , a color smoother unit 24008 , and/or a point cloud renderer 24009 .
  • the receiver 24000 receives a bitstream (or a file) including point cloud data and metadata according to embodiments.
  • the bitstream may be, for example, a compressed bitstream according to FIGS. 21 to 22 .
  • the file may be, for example, a file in which point cloud data and metadata are encapsulated in an ISOBMFF file format.
  • the demultiplexer 24001 receives the bitstream (point cloud data) received by the receiver 24000 and demultiplexes (demultiplexes) it into a plurality of streams.
  • the demultiplexer 24001 receives a bitstream including a geometry image stream, an attribute image stream, and/or an accumulatory map stream, and extracts each stream included in the bitstream.
  • the demultiplexer 24001 may output a geometry image stream, an attribute image stream, and/or an accumulatory map stream, and may also parse and extract patch-related signaling information.
  • the patch-related signaling information may mean, for example, the additional patch information of FIG. 23 and the SPS of FIG. 22 .
  • the signaling information related to the patch is input to the metadata decoder 24003 .
  • the demultiplexer 24001 may output a geometry image stream, an attribute image stream, and/or an accuracy map stream, respectively, but a stream in which the geometry image stream and the accuracy map stream are combined (ie, combined stream) and an attribute stream can also be extracted and output.
  • the combined stream means a stream in which a geometry image stream and an accumulatory map stream are combined by the point cloud data transmission apparatus according to the embodiments.
  • the combined stream may be a stream that is combined by the video combiner 23006 of FIG. 23 and is encoded by the video encoder 23007.
  • the combined stream does not mean only a stream in which a geometry image stream and an accumulatory map stream are combined, but may also mean a combined stream between other data.
  • the combined stream may be a combined stream of an accumulation map stream and an attribute image stream, or a combined stream of a geometry image stream and an attribute image stream.
  • the point cloud data receiving apparatus performs decoding by receiving the combined stream according to the embodiments, and since the maximum number of video codecs required for decoding is two, the decoding complexity is lower than in the case of three and the resource ( resource usage is also low. Accordingly, the point cloud data receiving apparatus according to the embodiments may perform decoding to minimize delay, increase decoding efficiency, and expand the application range of V-PCC applications.
  • the video decoding unit 24002 receives the streams output from the demultiplexer 24001 (eg, a geometry image stream, an accumulatory map stream, an attribute stream, and/or a combined stream, etc.) and decodes them.
  • the video decoder 24002 may output attribute image data, geometry image data, and accumulative map data according to embodiments.
  • the video decoder 24002 may receive the combined stream, decode the combined stream, and output one stream in which the accumulatory map data and the geometry image data are combined.
  • the metadata decoder 24003 receives the metadata (signaling information) output from the demultiplexer 24001 and parses the metadata.
  • the metadata may include, for example, information necessary for decoding and/or rendering the point cloud data.
  • the metadata may include auxiliary patch information according to embodiments.
  • the video separation unit 24004 receives the decoded combined stream according to the embodiments, and separates different image data included therein. For example, the video separation unit 24004 receives one image stream (decoded combined stream) in which the accuracy map image and the geometry image are combined, and separates the accuracy map image and the geometry image and outputs them, respectively.
  • the video separation unit 24004 can reduce the computational complexity of V-PCC and reduce resource occupation, and reduce unnecessary delay in the encoding and/or decoding process. It can be minimized and provides the effect of expanding the range of applications for V-PCC.
  • the geometry restoration unit 24005 reconstructs the geometry data of the point cloud data based on the geometry image output from the video separation unit 24004 and/or the video decoding unit 24002 and the occupanci map image data.
  • the geometry restoration unit 24005 may reconstruct or reconstruct the geometry using the additional patch information decoded by the metadata decoding unit 24003 (or based on the additional patch information).
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the smoother 24006 smoothly reconstructs or transforms the geometry data of the point cloud data restored by the geometry restoration unit 24005 .
  • the attribute restoration unit 24007 reconstructs or restores the attribute data of the point cloud data by using the geometry data of the point cloud data (eg, geometry data converted by the smoother, etc.) and the decoded attribute image.
  • the color smoother 24008 receives the attribute data restored by the attribute restoration unit 24007, and smoothly reconstructs or transforms the attribute data (eg, color data).
  • the point cloud renderer 24009 renders the point cloud data by using the reconstructed or transformed geometry data and/or attribute data.
  • 25 illustrates an operation of a video combiner according to embodiments.
  • the video combining units 25000 and 25001 shown in FIGS. 25A and 25B refer to the video combining unit 23006 of FIG. 23 .
  • the video combining units 25000 and 25001 combine, for example, one stream by combining at least two video streams among three video streams to output one generated stream.
  • the video combining units 25000 and 25001 receive, for example, an accuracy map video (accuracy map image, 25000a, 25001a) and a geometry video (geometric image, 25000b, 25001b).
  • the video combining unit outputs a combined stream 25000c after arranging the received accumulatory map video and geometry video based on various methods.
  • the encoder end of the point cloud data transmission apparatus converts each video stream of an occupancy map video (OV), a geometry video (GV), and an attribute video (AV) into a 2D video It can also be compressed separately using a codec.
  • the video combining units 25000 and 25001 of the encoder stage may combine the occupanci map video and the geometry video among the three video streams and regenerate them into one video stream, and the video encoder may reproduce the regenerated video stream and the attribute video stream.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • Both the occupancies map video and the geometry video may consist of images having only one channel. Also, for frame index i, the i-th occupancy map image and the i-th near layer and far layer geometry images all express the i-th 3D point cloud input, so similar structural characteristics has a Accordingly, the transmitting apparatuses (video combiners, 25000 and 25001) according to the embodiments may configure a new video stream by rearranging the occupanci map video and the geometry video for each frame based on these characteristics.
  • a video combining unit 25000 denotes an embodiment in which Occupancy map videos and geometry videos are combined.
  • the video combiner 25000 receives three video frames.
  • the three accuracy map videos represent three accuracy map videos (images) having different frame indices.
  • OV0 is an accumulatory map video (image) having a frame index of 0, OV1 having a frame index of 1, and OV2 having a frame index of 2.
  • OVi is the Occupancy map video (image) for the i-th frame.
  • Six geometry videos include two geometry videos (images) per one frame index.
  • GV_d00 and GV_d10 represent two geometry video images corresponding to an accumulatory map video having a frame index of 0.
  • GV_d01 and GV_d11 represent two geometry video images corresponding to an accumulatory map video having a frame index of 1.
  • GV_d02 and GV_d12 indicate two geometry video images corresponding to an accumulatory map video having a frame index of 2.
  • GV_d0i may be a geometry image for a near layer or a far layer of the i-th frame. If GV_d0i is a geometry image for the near layer, GV_d1i may be a geometry image for the far layer of the i-th frame. If GV_d0i is a geometry image for a far layer, GV_d1i indicates a geometry image for an i-th near layer.
  • the video combiner 25000 may combine the occupanci map video according to the embodiments to immediately follow the geometry videos having the same frame index as the corresponding occupanci map video. For example, the video combiner 25000 may arrange and combine the OV0 occupancy map video so as to immediately follow GV_d10 and GV_d00. Similarly, the video combining unit 25000 may arrange and combine the OV1 occupancy map video so as to immediately follow GV_d11 and GV_d01.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the video combiner 25000 receives three video frames.
  • the three accupancy map videos represent three accuracy map videos (images) having different frame indices.
  • the video combiner 25001 may combine the occupancies map video according to the embodiments to be directly exclusive to the geometry videos having the same frame index as the corresponding occupancies map video. For example, the video combining unit 25001 may arrange and combine the OV0 occupancy map video to be directly transferred to GV_d10 and GV_d00. Similarly, the video combining unit 25000 may arrange and combine the OV1 occupancy map video so as to be directly transferred to GV_d11 and GV_d01.
  • the video combining units 25000 and 25001 may generate a combined video stream (combined stream) based on an order as shown in FIGS. 25 (A) and/or 25 (B) according to a user's selection. have.
  • the frame combining order based on the video combiner 25000 and 25001 of FIG. 25(A) or FIG. 25(B) may be signaled to the receiving device as related signaling information (eg, mogi_stream_mixing_order).
  • the point cloud data transmitting apparatus includes the video combining units 25000 and 25001 according to FIGS. 25 (A) and/or (B), so that the transmitting apparatus has a smaller resolution than the original resolution of the point cloud data. Encoding can be performed to maintain the original resolution of the point cloud data without the need to down-scaling to generate a video stream, thereby increasing the efficiency of encoding.
  • the point cloud data transmitting apparatus may encode the point cloud data while maintaining the original resolution without downscaling when generating the occupanci map during the encoding process due to this configuration.
  • the point cloud data transmission apparatus (video combiner) according to embodiments generates a video stream by the method of FIGS. 25 (A) and/or 25 (B), the pixel ( Pixels) may be changed to an average value of pixels in the same patch in GV_d0i. Due to this configuration, the point cloud data transmission apparatus according to the embodiments may reduce the complexity of an operation during encoding and improve a video compression rate.
  • the point cloud data transmission apparatus compresses a video stream and an attribute video stream newly created through the video combiners 25000 and 25001, respectively, using a video codec, and transmits them to the reception apparatus.
  • the encoder generates one video having a three-channel image in units of frames by combining the occupancy map video and the geometry video as shown in FIGS. 25 (A) and/or 25 (B). However, it may be generated in units of tiles included in the frame.
  • a tile indicates a specific region within a frame and refers to a unit independently encoded or decoded.
  • 26 illustrates an operation of a video splitter according to example embodiments.
  • the video separators 26000 and 26001 shown in FIGS. 26A and 26B refer to the video separator 24004 of FIG. 24 .
  • the video separators 26000 and 26001 shown in FIGS. 26A and 26B refer to the video separator 24004 of FIG. 24 .
  • the video separation units 26000 and 26001 separate different types of videos (images) included in one combined stream, for example.
  • the video separation unit 26000 receives a combined video stream (combined stream, 26000a).
  • the combined stream 26000a is a stream in which different types of videos are combined.
  • the combined stream may mean the combined video stream 25000c shown in FIG. 25A.
  • the combined stream 26000a includes the occupancies map video according to the embodiments and the geometry videos having the same frame index as the corresponding occupancies map video.
  • the occupanci map video having the i-th frame index may be located following the geometry videos having the same frame index.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the video separation unit 26000 separates the occupanci map video 26000b included in the combined stream 26000a and the geometry videos 26000c having the same frame index as the corresponding occupanci map video.
  • the video separator 26000 may output the occupanci map video 26000b in an ascending or descending order of frame indexes.
  • the video separator 26000 may output the geometry video 26000c in an ascending or descending order of frame indexes.
  • the video separation unit 26001 receives a combined video stream (combined stream, 26001a).
  • the combined stream 26001a is a stream in which different types of videos are combined.
  • the combined stream may mean the combined video stream 25001c shown in FIG. 25B.
  • the combined stream 26001a includes an occupancies map video according to embodiments and geometry videos having the same frame index as the corresponding occupancies map video.
  • the occupanci map video having the i-th frame index may be exclusively located in the geometry videos having the same frame index.
  • the video separation unit 26001 separates the occupanci map video 26001b included in the combined stream 26001a and the geometry videos 26001c having the same frame index as the corresponding occupanci map video.
  • the video separator 26001 may output the occupanci map video 26001b in an ascending or descending order of frame indexes.
  • the video separator 26001 may output the geometry video 26001c in an ascending or descending order of frame indexes.
  • the reception apparatus receives two video streams and decodes them using a video codec, and the decoded result for the combined video stream is an ocupancy map video and a geometry through the video separators 26000 and 26001. Separated into video, it is used for 3D point cloud reconstruction.
  • the video separation units 26000 and 26001 correspond to the signaling information (eg, mogi_stream_mixing_order) related to the video combining order, and combine based on the order as shown in FIG. 26(A) or FIG. 26(B). received video streams (combined streams) and separates them.
  • signaling information eg, mogi_stream_mixing_order
  • FIG. 27 shows a V3C bitstream according to embodiments.
  • V3C bitstreams 27000 and 27010 include point cloud data according to embodiments.
  • a V3C bitstream is a bundle of V3C units, which is a data unit for delivering point cloud data.
  • the V3C bitstream may be referred to as a V-PCC bitstream.
  • the V3C bitstreams 27000 and 27010 shown in FIG. 27 are the bitstream generated by the point cloud video encoder 10002 of FIG. 1 , the compressed bitstream shown in FIG. 4 , the bitstream of FIG. 15 , and FIG. 16 .
  • the compressed bitstream of FIG. 17 , the bitstream generated by the multiplexer 18007 of FIG. 18 , the bitstream received by the demultiplexer 19000 of FIG. 19 , FIGS. 21 and 22 . means a compressed bitstream of , a bitstream generated by the multiplexer 230011 of FIG. 23 , and a bitstream received by the demultiplexer 24001 of FIG. 24 .
  • the V3C bitstreams 27000 and 27010 shown in FIG. 27 include the combined video streams 25000c, 25001c, 26000a, and 26001a of FIGS. 25 and 26 .
  • the V3C bitstream according to the embodiments may have, for example, two types of formats. For example, one may have a V3C unit stream format and the other may have a sample stream format.
  • the V3C bitstream includes a V3C unit (V3C Unit) that is a unit of data for transmitting one or more point cloud data.
  • V3C Unit V3C Unit
  • the V3C unit 27001 may be, for example, a unit that transmits geometry information included in one frame (or tile) in the point cloud data, and delivers attribute information included in one frame (or tile). It may be a unit for transmitting accumulative map information included in one frame (or tile), or it may be a unit for transmitting V-PCC parameter set information included in one frame (or tile). have.
  • the V-PCC unit may include, for example, a geometry video (image), an attribute video (image), an accumulatory map video (image), and atlas data of point cloud data according to embodiments.
  • V-PCC parameter set means a unit of data carrying (carry).
  • the V3C unit stream format is conceptually a more basic type.
  • the V3C bitstream consists of a sequence of syntax structures called V3C units (V3C Units, 27001 and 27012).
  • the sequence may be a decoding order. There may be restrictions on the decoding order (or its contents) of V3Cs in the V3C unit stream.
  • FIG. 27(B) shows a V3C bitstream according to a sample stream format.
  • a V3C bitstream according to a sample stream format is a V3C bitstream 27010, a sample stream V3C unit that is a data unit for transmitting one or more point cloud data (Sample Stream V3C Unit, 27012) and / or a sample stream V3C header (Sample Stream V3C Header, 27011).
  • the sample stream format may be structured by placing the V3C units 27012 in decoding order, and prepending each V3C unit with a heading indicating the actual size of the V3C units.
  • sample stream V3C header (Sample Stream V3C Header, 27011) may be included in the beginning of the sample stream bitstream, and the sample stream V3C header (Sample Stream V3C Header, 27011) is the signaled V3C unit size precision (byte). ) is indicated.
  • the V3C unit stream format can be extracted from the sample stream format by traversing the sample stream format, reading size information, and roughly extracting each V3C unit.
  • the V3C unit 27001 and the sample stream V3C unit 27012 may classify data types according to properties of data included in the units. For example, the type may be classified based on whether the V3C unit 27001 or the sample stream V3C unit 27012 includes geometry data, attribute data, occupanci map data, or the like.
  • V3C unit 27001 An example of the unit type of the V3C unit 27001 or the sample stream V3C unit 27012 is described in detail in FIG. 28 .
  • V3C Unit V3C Unit
  • V-PCC Unit V-PCC Unit
  • FIG. 28 shows, for example, the type of V3C unit 27001 or sample stream V3C unit 27012 of FIG. 27 .
  • the point cloud data transmitting apparatus transmits the bitstream transmitted to the receiving apparatus in units of V-PCC units or in units of files in which the V-PCC unit is compressed in an ISOBMFF file format.
  • V3C Unit V3C Unit
  • V-PCC Unit V-PCC Unit
  • the point cloud data transmitting apparatus segments the point cloud data into a plurality of V-PCC units (V-PCC Unit), and transmits the V-PCC units to the receiving apparatus, or based on these
  • V-PCC Unit V-PCC Unit
  • the created ISOBMFF file is transmitted to the receiving device.
  • the V-PCC unit includes a V-PCC unit header (V-PCC header, VUH) and/or a V-PCC unit payload (V-PCC payload, VUP).
  • V-PCC unit payload may be a geometry video (image), attribute video (image), accufancy map video (image), atlas data, or V-PCC parameter set of point cloud data. ) may contain one of
  • the V-PCC unit header includes information indicating which data is included in the V-PCC unit payload.
  • VUH V3C unit header
  • V-PCC unit payload means a V3C unit payload according to embodiments, and may be called the same.
  • the V-PCC parameter set refers to a V3C parameter set according to embodiments.
  • the V-PCC unit header includes, for example, vuh_unit_type (vuh_unit_type) information indicating which data is included in the corresponding V-PCC unit payload.
  • V-PCC unit includes a V-PCC parameter set, which is a V-PCC level contains parameters.
  • V-PCC unit includes atlas data and includes atlas information.
  • V-PCC unit includes occupancy video data and occupancy information.
  • V-PCC unit includes geometry video data and includes geometry information.
  • V-PCC unit includes attribute video data and includes attribute information.
  • the V-PCC unit payload may include a combined stream in which a geometry video (image) of point cloud data and an accumulatory map video (image) are combined.
  • the V-PCC unit header may include information indicating that the V-PCC unit payload of the corresponding V-PCC unit includes a combined stream.
  • the corresponding V-PCC unit includes a combined stream according to embodiments, that is, combined accumulatory information and geometry information ( merged occupancy and geometry information).
  • FIG. 29 shows the structure of a V3C bitstream according to embodiments.
  • the V3C bitstream 29000 shown in FIG. 29 means the V3C bitstream in the sample stream format shown in FIG. 27 .
  • the V3C bitstream 29000 shown in FIG. 29 is generated by the point cloud video encoder 10002 of FIG. 1, and the multiplexers 40013 and 21008 are generated as the compressed bitstream of FIGS. 4 and 21. , is generated by the encoding apparatus 100 of FIG. 15 .
  • the V3C bitstream 29000 shown in FIG. 29 is generated by the multiplexer 23011 of FIG. 23 .
  • the bitstream 29000 of the V3C sample stream format includes V3C sample stream precision information and a plurality of V3C units (V3C units).
  • V3C units a plurality of V3C units
  • the bitstream 29000 of the V3C sample stream format includes V3C sample stream precision information (V3C Sample Stream Precision), five V3C units, and size information located in the beginning of each V3C unit (V3C Sample Stream Size). ) is included.
  • the bitstream 29000 of the V3C sample stream format transmits a V3C unit (V3C_VPS and v3c_parameter_set()) that transmits a V3C parameter set, a V3C unit that transmits atlas data (V3C_AD and atlas_sub_bitsteram), and an occupancy map data. It includes a V3C unit (V3C_OVD and video_sub_bitstream()) that transmits geometry data (V3C_GVD and video_sub_bitstream()), and a V3C unit (V3C_AVD and video_sub_bitstream()) that transfers attribute data.
  • V3C_VPS and v3c_parameter_set() that transmits a V3C parameter set
  • V3C unit that transmits atlas data V3C_AD and atlas_sub_bitsteram
  • occupancy map data includes a V3C unit (V3C_OVD and video_sub_bitstream()) that transmits geometry data (V3C
  • V3C units (V3C_AD and atlas_sub_bitsteram) carrying atlas data include a NAL sample stream delivered to one or more NAL units (NAL Unit).
  • the bitstream 29000 of the V3C sample stream format is a V3C unit (V3C_OVD and video_sub_bitstream()) for delivering occupanci map data, a V3C unit for delivering geometry data (V3C_GVD and video_sub_bitstream()), instead of a geometry according to embodiments. It may include a V3C unit (eg, V3C_OGVD of FIG. 28 ) that transmits a stream in which data and occupancy map data are combined.
  • V3C unit eg, V3C_OGVD of FIG. 28
  • V-PCC parameter set shows an example of a V-PCC parameter set according to embodiments.
  • the point cloud data transmitting apparatus may generate signaling information indicating a method in which the occupanci map video and the geometry video are combined in the video combiner according to the embodiments, and may transmit the generated signaling information by including it in metadata.
  • Metadata for indicating a method in which the occupanci map video and the geometry video are combined in the video combiner may be referred to as combined video stream information.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • a V-PCC parameter set according to embodiments includes a data stream combined by a video combiner according to embodiments and related signaling information (eg, combined video stream information according to embodiments).
  • a V-PCC parameter set according to embodiments may be referred to as a V3C parameter set.
  • the parameters in the V-PCC parameter set are, for example, the point cloud data encoder 10002 of FIG. 1 , the file/segment encapsulation module 10003 , the patch generator 40000 of FIG. 4 , and FIG.
  • the patch generation unit 18000 of FIG. 18 , the 3D patch generation unit 21000 of FIG. 21 , and the patch generation unit 23000 of FIG. 23 may generate the data.
  • the V-PCC parameter set includes profile tier level information (profile_tier_level), VPS_VPCC_parameter_set_ID information (vps_vpcc_parameter_set_id), and VPS_atlas_count_minus1 information (vps_atlas_count_minus1). and they can be created from the above components.
  • the V-PCC parameter set is the demultiplexer 16000 of FIG. 16 , the metadata decoder 19002 of FIG. 19 , the demultiplexer 22000 and/or the SPS parsing unit 22001 of FIG. 24 is parsed and decoded by the demultiplexing unit 24003, the metadata decoding unit 24003, and the like.
  • the V-PCC parameter set may include information about a frame (or atlas frame) as many as the number of values obtained by adding 1 to VPS_atlas_count_minus1 information (vps_atlas_count_minus1).
  • VPS_frame_width vps_frame_width
  • VPS_frame_height vps_frame_height
  • VPS_OV_GV_merge_flag vps_ov_gv_merge_flag
  • VPS_map_count_minus1 vps_map_count_minus1 for each frame.
  • VPS_extension_present_flag vps_extension_present_flag
  • VPS_multiple_map_streams_presence_flag vps_multiple_map_streams_present_flag
  • VPS_oscillator_video_present_ It may further include a flag (vps_auxiliary_video_present_flag).
  • VPS_multiple_map_streams_exist_flag 1 (True)
  • the VPS_map_absolute_coding_enable_flag vps_map_absolute_coding_enabled_flag
  • the value of the VPS_map_absolute_coding_enable_flag may be 1.
  • VPS_map_predictor_index_diff (vps_map_predictor_index_diff) information may be included.
  • the VPS_OV_GV_merge_flag determines whether the point cloud data transmission apparatus according to the embodiments generates a combined video stream (that is, the video combiner according to the embodiments is different according to the method shown in FIGS. 23 to 26 ). It is information indicating whether two videos have been combined).
  • VPS_OV_GV_merge_flag When the value of the VPS_OV_GV_merge_flag (vps_ov_gv_merge_flag) is 1, it indicates that the encoder according to the embodiments performs compression by combining the occupanci map video and the geometry video into one combined video stream (combination stream). . If the value of the VPS_OV_GV_merge_flag (vps_ov_gv_merge_flag) is 1, the information on the atlas frame includes information for a combined video stream (eg, merged_occupancy_geometry_information information), information for an attribute stream (eg, attribute_information information).
  • VPS_OV_GV_merge_flag vps_ov_gv_merge_flag
  • information about the atlas frame includes information for a geometry stream (eg, geometry_information), information for an accumulatory map stream (eg, occupancy_information) and/or It may include information for an attribute stream.
  • the information for the combined video stream includes, for example, information indicating how the combined streams according to the embodiments were combined, in what order, and the like. Information for the combined video stream is described in detail in FIG. 30 .
  • 31 shows information for a combined video stream according to embodiments.
  • the information 31000 for the combined video stream according to the embodiments shown in FIG. 31 means information (merged_occupancy_geometry_information information) for the combined video stream according to the embodiments described with reference to FIG. 30 .
  • the combined video stream according to embodiments may be signaled for each atlas or atlas frame by the transmitting device. Accordingly, the information 31000 for the combined video stream may have the ID (atlasId) of the atlas as a parameter.
  • the information for the combined video stream according to the embodiments may be included in a V-PCC parameter set (V3C parameter set) according to the embodiments, the point cloud data encoder 10002 of FIG. 1 , the file/segment encapsulation can be generated by the translation module 10003, the patch generating unit 40000 of FIG. 4, the patch generating unit 18000 of FIG. 18, the 3D patch generating unit 21000 of FIG. 21, and the patch generating unit 23000 of FIG. have.
  • V3C parameter set V3C parameter set
  • Information for the combined video stream according to embodiments may be included in v3c_parameter_set() of FIG. 29, for example, and means information included in the merged_occupancy_geometry_information(j) syntax of FIG. 30 .
  • Information for the combined video stream according to embodiments may be present when the VPS_OV_GV_merge_flag (vps_ov_gv_merge_flag) flag for the j-th atlas is 1 (True).
  • the information for the combined video stream according to the embodiments includes the video combiner 23006 of FIG. 23 , the video combiner 25000 and 25001 of FIG. 25 , the video combiner 32000 and 32001 of FIG. 32 , and FIG. 35 . may be generated by the video combiner 35000 of
  • the information for the combined video stream includes the demultiplexer 16000 of FIG. 16 , the metadata decoder 19002 of FIG. 19 , the demultiplexer 22000 of FIG. 22 and/or It is parsed and decoded by the SPS parsing unit 22001, the demultiplexing unit 24003 of FIG. 24, the metadata decoding unit 24003, and the like.
  • Mogi_codec_id (mogi_codec_id) information represents an identifier of a codec used for compressing combined (merged) accumulatory map information and geometry video data (image) with respect to a corresponding atlas.
  • Mogi_codec_id information has a value in the range of 0 to 255. (indicates the identifier of the codec used to compress the merged occupancy map information and geometry video data for the atlas with index j.
  • geometry_codec_id shall be in the range of 0 to 255, inclusive.
  • the Mogi_stream_mixing_order indicates the order or method in which the occupancy map video (image) and the geometry video (image) are combined with respect to a corresponding atlas.
  • the order or method in which the occupancy map video (image) and the geometry video (image) are combined may follow the table shown in 31001 .
  • the combined stream according to embodiments has the same frame index as the combined stream 25000c of FIG. 25(A) or the combined stream 26000a of FIG. 26(A).
  • the value of Mogi_stream_mixing_order information may have a first value (eg, 0).
  • the combined stream according to embodiments has the same frame index as the combined stream 25001c of FIG. 25B or the combined stream 26001a of FIG. 26B.
  • the value of Mogi_stream_mixing_order information may have a second value (eg, 1).
  • An embodiment of the Mogi_stream_mixing_order (mogi_stream_mixing_order) will be described with reference to FIG. 31 .
  • a receiving apparatus receives Mogi_stream_mixing_order information, and separates a combined stream based on this information.
  • Mogi_lossy_occupancy_map_compression_threshold (mogi_lossy_occupancy_map_compression_threshold) information indicates a threshold used for deriving a binary occupancy map from a decoded occupancy map video for a corresponding atlas.
  • the Mogi_Rosi_Ocupanshi_map_compression_threshold has a value in the range of 0 to 255.
  • (mogi_lossy_occupancy_map_compression_threshold[ j ] indicates the threshold to be used to derive the binary occupancy map from the decoded occupancy map video for the atlas with index j.
  • mogi_lossy_occupancy_map_compression_threshold[ j ] shall be in the range of 0 to 255, inclusive.)
  • a value obtained by adding 1 to a value of mogi_nominal_2D_bitdepth_minus1 (mogi_nominal_2d_bitdepth_minus1) information indicates a nominal 2D bit depth for which the corresponding atlas-coupled accumulator and the geometry video are switched. (plus 1 indicates the nominal 2D bit depth to which the merged occupancy and geometry video for the atlas with index j shall be converted to. mogi_nominal_2d_bitdepth_minus1[ j ] shall be in the range of 0 to 31, inclusive.)
  • the Mogi_MSB_align_flag indicates whether the decoded occupancy map and geometry video samples associated with the atlas are converted into samples at the nominal occupancies bit depth. (indicates how the decoded occupancy and geometry video samples associated with an atlas with index j are converted to samples at the nominal occupancy bitdepth.)
  • a value obtained by adding 1 to the value of mogi_geometry_3d_coordinates_bitdepth_minus1 indicates the bit depth of the geometry coordinates of the reconstructed point cloud for the counter atlas.
  • Mogi_geometry_3D_coordinate_bit depth_minus 1 has a value of 0 to 31. (plus 1 indicates the bit depth of the geometry coordinates of the reconstructed point cloud for the atlas with index j.
  • mogi_geometry_3d_coordinates_bitdepth_minus1[ j ] shall be in the range of 0 to 31, inclusive.
  • Mogi_auxiliary_geometry_codec_ID (mogi_auxiliary_geometry_codec_id) , if present, is used to compress geometry data sub-bitstreams when RAW coded points are encoded in the oscillator video stream for that atlas. Indicates the codec identifier. Mogi_oscillator_geometry_codec_ID has a value in the range of 0 to 255. Mogi_oscillator_geometry_codec_ID (mogi_auxiliary_geometry_codec_id) has the same value as mogi_geometry_codec_id when it does not exist.
  • mogi_auxiliary_geometry_codec_id[ j ] shall be in the range of 0 to 255, inclusive. When not present the value of mogi_auxiliary_geometry_codec_id[ j ] shall be set equal to mogi_geometry_codec_id[ j ].
  • FIG. 32 illustrates an operation of a video combiner according to embodiments.
  • the video combining units 32000 and 32001 shown in FIGS. 32A and 32B refer to the video combining unit 23006 of FIG. 23 .
  • the video combining units 32000 and 32001 combine, for example, one stream by combining at least two video streams among three video streams to output one generated stream.
  • the video combiners 32000 and 32001 receive, for example, an accuracy map video (accuracy map image, 32000a, 32001a) and a geometry video (geometric image, 32000b, 32001b).
  • the video combining unit outputs a combined stream 32000c after arranging the received accumulatory map video and geometry video based on various methods.
  • Both the occupancies map video and the geometry video may consist of images having only one channel.
  • the point cloud data transmission apparatus may generate an interleaved image by combining information corresponding to a near layer and a far layer with respect to a geometry video.
  • the video combiner may generate only one geometry image with respect to the i-th frame index, rather than the two geometry images GV_d0i and GV_d1i being generated.
  • the video combiner 32000, 32001 shows an embodiment in which the occupanci map videos and the interleaved image (one geometry video) are combined.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the video combiner 32000 combines frames of an occupanci map video and each frame of a geometry video (interleaved image) in various ways.
  • Occupancy map videos 32000a and 32001a that is, OVi represents the occupanci map image for the i-th frame.
  • the interleaved images 32000b and 32001b, that is, GVi represent the interleaved geometry image of the i-th frame.
  • the video combiner 32000 may generate a video stream (combined stream, 32000c) in which an occupanci map image for an i-th frame is combined to follow a corresponding interleaved image.
  • the video combiner 32001 may generate a video stream (combined stream, 32001c) in which the occupanci map image for the i-th frame is combined to be exclusive to the corresponding interleaved image.
  • the point cloud data transmitting apparatus (encoder of) according to the embodiments may down-scale the occupansi map image to a resolution smaller than the original resolution to generate one video stream.
  • the point cloud data transmission apparatus may have the same resolution as the occupanci map image and the geometry video by maintaining the original resolution. That is, in the method of FIG. 32(A), the encoder generates a video stream using the pixel value of each patch in OVi as the average value of pixels in the same patch in GVi in order to improve the video compression rate.
  • the video combiners 32000 and 32001 of the point cloud data transmitting apparatus signal the order of the interleaved geometry video and the occupanci map image to the receiving apparatus through mogi_stream_mixing_order information.
  • the order of combining the occupancy map image and the geometry image is classified and signaled by the mogi_stream_mixing_order value.
  • the video stream and the attribute video stream newly generated through the video combiner according to the embodiments are compressed using a video codec, respectively, and transmitted to the receiving end.
  • the encoder may combine the occupanci map video and the geometry video as shown in FIGS. 32 (A) and 32 (B) to generate one video having a three-channel image in units of frames, but , may be generated in units of tiles included in the frame.
  • a tile indicates a specific region within a frame and refers to a unit independently encoded or decoded.
  • 33 illustrates an operation of a video splitter according to example embodiments.
  • the video separators 33000 and 33001 shown in FIGS. 33A and 33B refer to the video separator 24004 of FIG. 24 .
  • the video separation units 33000 and 33001 separate different types of videos (images) included in one combined stream, for example.
  • the video separation unit 33000 receives a combined video stream (combined stream, 33000a).
  • the combined stream 33000a is a stream in which different types of videos are combined.
  • the combined stream may mean the combined video stream 32000c shown in FIG. 32A.
  • the combined stream 33000a includes an occupancies map video according to embodiments and an interleaved geometry video having the same frame index as the corresponding occupancies map video.
  • the occupanci map video having the i-th frame index may be located subsequent to the interleaved geometry video having the same frame index.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the video splitter 33000 separates the occupanci map video 33000b included in the combined stream 33000a and the interleaved geometry video 33000c having the same frame index as the corresponding occupanci map video.
  • the video separation unit 33000 may output the occupanci map video 33000b in an ascending or descending order of frame indexes.
  • the video separator 33000 may output the interleaved geometry video 33000c in an ascending or descending order of frame indexes.
  • the video separation unit 33001 receives a combined video stream (combined stream, 33001a).
  • the combined stream 33001a is a stream in which different types of videos are combined.
  • the combined stream may mean the combined video stream 33001c shown in FIG. 32(B).
  • the combined stream 33001a includes an occupanci map video and an interleaved geometry video having the same frame index as the occupanci map video according to embodiments.
  • the occupanci map video having the i-th frame index may be exclusively located in the interleaved geometry video having the same frame index.
  • the video separator 33001 separates the occupanci map video 33001b included in the combined stream 33001a and the interleaved geometry video 33001c having the same frame index as the corresponding occupanci map video.
  • the video separator 33001 may output the occupanci map video 33001b in an ascending or descending order of frame indexes.
  • the video separator 33001 may output the interleaved geometry video 33001c in an ascending or descending order of frame indexes.
  • the receiving apparatus receives two video streams and decodes them using a video codec, and the decoded result of the combined video stream is interleaved with the occupansi map video through the video separators 33000 and 33001. De-geometry video is separated and used for 3D point cloud reconstruction.
  • the video separation units 33000 and 33001 correspond to the signaling information (eg, mogi_stream_mixing_order) related to the video combining order, and combine based on the order as shown in FIG. 32(A) or FIG. 32(B). received video streams (combined streams) and separates them.
  • signaling information eg, mogi_stream_mixing_order
  • Two video streams input from a receiving end (decoder) are decoded by a decoder using a video codec.
  • the decoded result for the combined video stream is separated into an occupanci map video and an interleaved geometry video through a video separation unit as shown in FIG. 33(A) or FIG. 33(B), and is used for 3D point cloud restoration.
  • FIG. 34 shows a data stream and related signaling information combined by a video combiner according to embodiments.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • mogi_stream_mixing_order information refers to the mogi_stream_mixing_order information described in FIGS. 25, 26, 31, 32, and 33 .
  • the video combiner of the transmitting apparatus may combine two video streams and generate mogi_stream_mixing_order information indicating the combined order.
  • the video dividing unit of the transmitting apparatus according to the embodiments receives mogi_stream_mixing_order information and divides a video corresponding to one stream into two streams based on the mogi_stream_mixing_order information.
  • the value of the mogi_stream_mixing_order information is the first value (eg, 0)
  • the value of the single map pixel interleaving information is FALSE (ie, no interleaved geometry video is generated) , indicating that the occupancies map video of the i-th frame in the combined stream is dedicated to the corresponding geometry video. That is, the combined stream is OV0
  • the value of the mogi_stream_mixing_order information is a second value (eg, 1)
  • the value of the single map pixel interleaving information is FALSE (ie, no interleaved geometry video is generated).
  • FALSE ie, no interleaved geometry video is generated.
  • the value of the mogi_stream_mixing_order information is a third value (eg, 2)
  • the value of the single map pixel interleaving information is TRUE (that is, interleaved geometry video generation), and , indicating that the occupancies map video of the i-th frame in the combined stream is dedicated to the corresponding geometry video. That is, the combined stream is OV0
  • the value of the mogi_stream_mixing_order information is the fourth value (eg, 3)
  • the value of the single map pixel interleaving information is TRUE (ie, interleaved geometry video generation), and , indicating that the occupanci map video of the i-th frame in the combined stream follows the corresponding geometry video. That is, the combined stream is GV0
  • 35 illustrates operations of a video combiner and a video splitter according to embodiments.
  • the video combiner 35000 shown in FIG. 35A refers to the video combiner 23006 of FIG. 23 .
  • the video dividing unit 35001 shown in FIG. 35B means the video dividing unit 24004 of FIG. 24 .
  • the encoder of the point cloud data transmission apparatus is a video stream newly generated through a video combiner (eg, the video combiner 23006 of FIG. 23 , etc.) as shown in FIG. 35(A). and attribute video streams are compressed based on each video codec and delivered to the receiving end.
  • a video combiner eg, the video combiner 23006 of FIG. 23 , etc.
  • two video streams are decoded using respective video codecs, and the combined combined stream is shown in FIG. 35(B)
  • the video separation unit 35001 eg, the video separation unit 24004 of FIG. 24
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • the encoder of the point cloud data transmission apparatus may be a video stream composed of an occupancy map video and a geometry video each of one channel (1 channel) images. Therefore, when each video stream is compressed with a video codec, a 1-channel video compression method may be applied to generate a bitstream.
  • the video codec can compress not only 1-channel video but also 3-channel image video, and the encoder of the point cloud data transmission device can apply 3-channel video compression to the attribute video stream.
  • An encoder may generate one video having a three-channel image by combining the occupancies map video and the geometry video as shown in FIG. 35(A) .
  • the i-th frame of the combined video stream (combined stream) contains 3 channel images, each channel image is an occupanci map image for the i-th frame, or a near layer geometry image, or a far layer (Far). layer) can be one of the geometry images.
  • a method of configuring each channel image will be described in detail with reference to FIG. 36 , and a method of configuring each channel image may be signaled by a transmitting device to a receiving device by using mogi_3channel_img_composition.
  • 35(A) shows when one occupancy map video (OV) constituting one video frame is related by one or more geometry videos (GV), video combining units 32000 and 32001 are An embodiment of combining occupancy map videos with one or more corresponding geometry videos is described.
  • OV occupancy map video
  • GV geometry videos
  • the video combiner 35000 combines frames of an occupanci map video and each frame of a geometry video in various ways.
  • the occupanci map video may be referred to as an ocupancy map image
  • the geometry video may be referred to as a geometry image.
  • Occupancy map video 35000a that is, OVi represents the occupanci map video for the i-th frame.
  • the geometry video 35000b, ie, GVij, represents the j-th geometry video of the i-th frame.
  • the video combiner 35000 may include an occupanci map video for the i-th frame and one frame or a combined stream ( 35000c) can be created.
  • Fig. 35(B) shows a video separation unit 35001 that separates the occupanci map video and the corresponding geometry video included in the combined frame (or combined stream).
  • the video splitter 35001 separates each combined frame 35001c into an occupanci map video 35001a and a geometry video 35001b.
  • the occupanci map video may be referred to as an ocupancy map image
  • the geometry video may be referred to as a geometry image.
  • the encoder may generate one video having a 3-channel image in units of frames by combining the occupancy map video and the geometry video as shown in FIGS. 35 (A) and 35 (B). , may be generated in units of tiles included in the frame.
  • a tile indicates a specific region within a frame and refers to a unit independently encoded or decoded.
  • the table shown in FIG. 36 shows how the frame (or the combined stream constituting the frame) combined by the video combiner 35000 according to the embodiments in FIG. 35 is configured.
  • the table of FIG. 36 shows a method of constructing each channel image.
  • a point cloud data transmission apparatus (eg, a video combiner) according to embodiments generates mogi_3channel_image_composition information indicating a method of configuring each channel image, and uses it as metadata to a receiving device. send
  • the first column represents an example of a value of mogi_3channel_image_composition information.
  • the second column shows embodiments of the three-channel image construction for the i-th frame of the combined video stream.
  • the value of mogi_3-channel_image_composition and the combination shown in the second column do not necessarily match as shown in Fig. 36, and Fig. 36 shows an example of the correspondence relationship between the value of mogi_3-channel_image_composition and the combination of the combination. .
  • OVi is an occupancies map image (video) for the i-th frame
  • GV_d0i is a geometry image (video) for the near layer or far layer of the i-th frame
  • GV_d1i is GV_d0i is near Geometry image (video) for the far layer of the i-th frame if it is for a near layer
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • a geometry image for a near layer is referred to as a first geometry image (video)
  • a geometry image for a far layer is referred to as a second geometry image (video).
  • the first channel image (video) within the frame is an occupanci map video
  • the second channel image (video) is a first geometry image (video)
  • the third channel image (video) may mean a second geometry image (video).
  • the first channel image (video) in the frame is an occupanci map video
  • the second channel image (video) is a second geometry image (video)
  • the third channel image (video) may mean a first geometry image (video).
  • the first channel image (video) in the frame is the first geometry image (video)
  • the second channel image (video) is the occupanci map image ( video)
  • the third channel image (video) may mean a second geometry image (video).
  • mogi_3channel_image_composition (mogi_3channel_img_composition)
  • the first channel image (video) in the frame is the second geometry image (video)
  • the second channel image (video) is the occupanci map image ( video)
  • a third channel image (video) may mean a first geometry image (video).
  • the first channel image (video) in the frame is the first geometry image (video)
  • the second channel image (video) is the second geometry image ( video)
  • the third channel image (video) may mean an occupanci map image (video).
  • the first channel image (video) in the frame is the second geometry image (video)
  • the second channel image (video) is the first geometry image ( video)
  • the third channel image (video) may mean an occupanci map image (video).
  • FIG. 37 shows an example of information (merged_occupancy_geometry_information information) for a combined video stream signaled by the point cloud data transmission apparatus according to the embodiments shown in FIGS. 35 to 36 .
  • the V-PCC transmission apparatus signals information in the same manner as the rest except for the information (merged_occupancy_geometry_information information) syntax for the combined video stream among the syntax of vpcc_parameter_set() shown in FIG. 30 .
  • merged_occupancy_geometry_information information is shown in FIG. 37 in consideration of a case in which the video combiner generates a 3-channel video stream as shown in FIGS. It can be signaled by the syntax shown in .
  • Merged_occupancy_geometry_information includes mogi_codec_ID (mogi_codec_id) information, mogi_losi_occupancy_map_compression_threshold (mogi_lossy_occupancy_map_compression_threshold) information described with reference to FIG. 31 , mogi_threshold information.
  • mogi_codec_ID mogi_codec_id
  • mogi_losi_occupancy_map_compression_threshold mogi_lossy_occupancy_map_compression_threshold
  • _bit depth_minus1 (mogi_nominal_2d_bitdepth_minus1) information, mogi_MSB_align_flag (mogi_MSB_align_flag), mogi_geometry_3D_coordinate_bit depth_minus1 (mogi_geometry_3d_decordinates_bitdepth_minus1) information, mogi_geometry_3d_decordinates_bitdepth_minus1 information, mogi_auxiliary_geometry_codec_id) information.
  • the merged_occupancy_geometry_information further includes mogi_stream_channel_count (mogi_stream_channel_cnt) information, mogi_stream_mixing_order (mogi_stream_mixing_order) information, and mogi_3channel_image_composition (mogi_3channel_img) information. can do.
  • the mogi_stream_channel_count[j](mogi_stream_channel_cnt[j]) information is for the atlas with index j, and the value of the corresponding parameter is the image channel of the combined video when the Occupancy map video and the geometry video are combined.
  • this value may be 1 or 3, and if it is 1, the combined video stream generated through the video combiner consists of a one-channel image.
  • this value is 3, the video combiner according to the embodiments generates a video stream composed of a 3-channel image.
  • mogi_stream_mixing_order[j] (mogi_stream_mixing_order[j]) information is for the atlas with index j, when a combined video consisting of one-channel images is generated, the value of this parameter is the Occupancy map video and geometry Indicates how the video is combined.
  • the mogi_stream_mixing_order[j] (mogi_stream_mixing_order[j]) information may be, for example, the same as the table 31001 of FIG. 31 or the table shown in FIG. 34 .
  • the value of this parameter is the image of each channel. shows how it is structured.
  • Each channel has either an occupancies map image for the same frame index, a near layer geometry image, or a far layer geometry image, depending on which channel these three images go into.
  • the parameter value is signaled differently.
  • the mogi_3 channel_image_composition information may be as shown in FIG. 36 .
  • 38 is a flowchart illustrating operations of a video combiner and a video splitter according to embodiments.
  • FIG. 38(A) illustrates an operation (ie, combining one or more geometry images and one or more accumulative images) of a video combiner according to embodiments.
  • the operation shown in FIG. 38A may be performed by the video combiner 23006 of FIG. 23 , the video combiner 25000 and 25001 of FIG. 25 , and the video combiner 32000 and 32001 of FIG. 32 .
  • the video combining unit receives one or more geometric images and one or more accumulative images (S3800), combining the one or more geometric images and one or more accumulative images , generating a combined stream based on one channel (S3801) and/or outputting a combined stream (S3802).
  • Step S3800 receives one or more geometry images and one or more accumulatory images.
  • the one or more geometry images and the one or more accumulatory images are generated by the encoding preprocessor 23005 of FIG. 23 , and the occupanci map videos 25000a and 25001a and the geometry videos 25000b and 25001b shown in FIG. 25 are generated.
  • step S3801 one or more geometry images and one or more accumulative images are combined to generate a combined stream based on one channel.
  • the combined stream may include, for example, a first accumulative image and at least one geometry image having the same frame index as the first accumulative image.
  • Step S3801 means the occupanci map videos 25000a and 25001a, the geometry videos 25000b and 25001b shown in FIG. 25, the occupanci map videos 32000a and 32001a shown in FIG. 32, and the geometry videos 32000b and 32001b shown in FIG.
  • Step S3802 outputs a combined stream.
  • the Occupancy map videos 25000a and 25001a, the geometry videos 25000b and 25001b shown in FIG. 25, and the Occupancy map videos 32000a and 32001a and the geometry videos 32000b and 32001b shown in FIG. 32 are received and combined.
  • output streams eg, 25000c, 25001c, 32000c, 32001c, etc. in FIG. 25).
  • Metadata (eg, V3C parameter set, etc.) according to embodiments includes information indicating a combination order of the first accumulator image and the at least one geometry image.
  • the information indicating the order of combining the first accumulative image and the at least one geometry image may be, for example, Mogi_stream_mixing_order information shown in 31001 of FIG. 31 .
  • FIG. 38(B) illustrates an operation of a video splitter according to example embodiments.
  • the operation shown in FIG. 38B may be performed by the video dividing unit 23004 of FIG. 24 , the video dividing units 26000 and 26001 of FIG. 26 , and the video dividing unit 33000 and 33001 of FIG. 33 .
  • the video separation unit receives a combined stream that delivers geometry data and occupancy data (S3810), and receives one or more combined streams. Separating the geometry images and one or more accumulative images ( S3811 ) and/or outputting the one or more geometry images and one or more accumulative images ( S3812 ).
  • step S3810 a combined stream transmitting geometry data and occupancy data is received.
  • the combined stream is, for example, received by the video splitter 24004 of FIG. 24 and means the combined video streams 26000a, 26001a, 33000a, 33001a of FIGS. 26 and/or 33 .
  • Step S3811 separates the combined stream into one or more geometry images and one or more accumulatory images.
  • the one or more geometry images and the one or more occupanci images may be, for example, the occupancies map video 26000b, 26001b of FIG. , 33001b) and geometry videos 33000c and 33001c.
  • Metadata (eg, V3C parameter set, etc.) according to embodiments includes information indicating a combination order of the first accumulator image and the at least one geometry image.
  • step S3811 based on the information indicating the order of combining in the metadata, one or more geometric images and one or more accumulative images are separated.
  • the combined stream includes a first accumulative image and at least one geometry image having the same frame index as the first accumulative image.
  • step S3812 one or more geometry images and one or more accumulative images are output.
  • 39 is a flowchart illustrating operations of a video combiner and a video splitter according to embodiments.
  • FIG. 39(A) illustrates an operation of a video combiner according to embodiments.
  • the operation shown in FIG. 38A may be performed by the video combiner 23006 of FIG. 23 and the video combiner 35000 of FIG. 35 .
  • the video combining unit may include receiving one or more geometric images and one or more accumulative images (S3900), combining one or more geometric images and one or more accumulative images , generating a combined stream based on three channels (S3901) and/or outputting a combined stream (S3902).
  • Step S3900 receives one or more geometry images and one or more accumulatory images.
  • One or more geometry images and one or more accumulatory images are generated by the encoding preprocessing unit 23005 of FIG. 23 and may be performed by the video combining units 35000 and 35001 of FIG. 35 .
  • Step S3901 combines one or more geometry images and one or more accumulative images to generate a combined stream based on three channels.
  • the combined stream includes a first accumulative image and two geometry images having the same frame index as the first accumulative image.
  • Step S3901 may be performed by the video combiners 35000 and 35001 of FIG. 35 .
  • Step S3902 outputs a combined stream.
  • Step S3902 may mean outputting the combined video stream 35000c shown in FIG. 35 .
  • Metadata (eg, V3C parameter set, etc.) according to embodiments includes information indicating a combination order of the first accumulator image and the at least one geometry image.
  • the information indicating the order or method of combining the first accumulator image and the at least one geometry image may be, for example, Mogi_3channel_image_composition information shown in FIG. 36 .
  • FIG. 39(B) illustrates an operation of a video splitter according to example embodiments.
  • the operation shown in FIG. 39(B) may be performed by the video dividing unit 23004 of FIG. 24 and the video dividing unit 35001 of FIG. 35 .
  • the video separation unit receives a combined stream that delivers geometry data and occupancy data (S3910), and receives one or more combined streams. Separating the geometric images and one or more accumulative images ( S3911 ) and/or outputting the one or more geometry images and one or more accumulative images ( S3912 ).
  • step S3910 a combined stream transmitting geometry data and occupancy data is received.
  • the combined stream is received, for example, by the video splitter 24004 of FIG. 24 and is performed by the video splitter 35001 of FIG. 35 .
  • Step S3911 separates the combined stream into one or more geometry images and one or more accumulatory images.
  • the one or more geometry images and the one or more accumulatory images mean, for example, the combined video stream 35001c of FIG. 35 .
  • Metadata (eg, V3C parameter set, etc.) according to embodiments includes information indicating a combination order of the first accumulator image and the at least one geometry image.
  • step S3911 one or more geometry images and one or more accumulative images are separated based on the information indicating the combination order in the metadata.
  • the combined stream includes a first accumulative image and two geometry images having the same frame index as the first accumulative image.
  • step S3912 one or more geometry images and one or more accumulative images are output.
  • 40 is a flowchart of a method for transmitting point cloud data according to embodiments.
  • a method of transmitting point cloud data may include encoding the point cloud data ( 40001 ) and/or transmitting the point cloud data and metadata ( 40002 ).
  • Encoding the point cloud data 40001 encodes, for example, point cloud data (V-PCC data, etc.).
  • the encoding step 40001 may include, for example, the point cloud video encoder 10002 of FIG. 1 , the process shown in FIG. 4 , a series of operations in the encoding device shown in FIG. 15 , one or more including the video encoder of FIG. 18 .
  • the above configurations, the operations shown in FIG. 21 , and the operations shown in FIG. 23 may be performed.
  • Point cloud data includes one or more geometry images (videos) carrying geometry data and one or more occupancy images (video) carrying occupancy data may include Accordingly, the method for transmitting point cloud data according to embodiments may further include combining one or more geometry images and one or more accumulatory images.
  • the combining step is, for example, the operation of the video combiner 23006 of FIG. 23, the operation of the video combiner 25000, 25001 shown in FIG. 25, the operation of the video combiner 32000, 32001 shown in FIG. 32, The operation of the video combiner 35000 shown in FIG. 35 is performed.
  • the combining may include, for example, one or more geometry images (videos) carrying geometry data based on the manner shown in FIGS. 34 and 36 and occupancy data carrying occupancy data. Combines one or more Accupanci images (videos).
  • the combining may include, for example, combining one or more geometry images and one or more accumulative images based on one channel, and based on three channels, the same frame ( frame) can be combined.
  • the frame may include a first accumulator image and two geometry images having the same frame index as the first accumulative image.
  • the combining may, for example, perform some or all of the operations shown in FIG. 38 .
  • the encoded point cloud data is transmitted to a receiving device according to embodiments.
  • the metadata may include, for example, information having a syntax shown in FIGS. 28 to 30 , 34 , and 36 to 37 .
  • 41 is a flowchart of a method for receiving point cloud data according to embodiments.
  • a method for receiving point cloud data includes receiving the point cloud data and metadata ( 41001 ), decoding the point cloud data ( 41002 ), and/or rendering the point cloud data ( 41003 ) include
  • step 41001 of receiving the point cloud data and metadata point cloud data (V-PCC data) according to embodiments is received.
  • the metadata may include, for example, information having a syntax shown in FIGS. 28 to 30 , 34 , and 36 to 37 .
  • Decoding the point cloud data 41002 decodes the point cloud data according to, for example, embodiments.
  • the decoding 41002 may be performed based on metadata according to embodiments.
  • the decoding step 41002 is the point cloud video decoder 10008 of FIG. 1 , the video decompression (decompression, 16001 to 16004) of FIG. 16 , the operations shown in FIG. 17 .
  • the operation of the video decoder shown in FIG. 19 , the operation of the patch sequence decompression 22002 and the video decompressors 22003 to 22005 shown in FIG. 22 , and the operation of the video decoder 24002 shown in FIG. 24 may be performed.
  • the point cloud data may include one or more geometry images carrying geometry data and one or more occupancy images carrying occupancy data. Accordingly, the method for receiving point cloud data according to embodiments may further include separating one or more geometry images and the one or more accumulative images included in the point cloud data.
  • the point cloud data may be a data stream in which the one or more geometry images and the one or more accumulative images are combined based on one channel, or in three channels. It may be a data stream combined for each frame based on the same frame.
  • the separating step is, for example, the operation of the video combining unit 24004 of FIG. 24, the operation of the video separating units 26000 and 26001 shown in FIG. 26, the operation of the video separating unit 33000 and 33001 shown in FIG. 33, The operation of the video splitter 35001 shown in FIG. 35 is performed.
  • the received combined stream is appropriately divided into occupanci map video (image) data and geometry video data for each frame.
  • the occupancy map image may be an image generated with the same resolution as the geometry image.
  • Separating may include, for example, performing some or all of the operations shown in FIG. 39 .
  • the point cloud data is reconstructed and rendered.
  • the rendering step 41003 is, for example, the operation of the point cloud renderer of FIG. 19 , the geometry/attribute reconstruction 22006 of FIG. 22 , the geometry post-processing unit 22007 , and the operation of the attribute transfer & smoothing unit 22008 , the operation of the point cloud renderer 24009 of FIG. 24 is performed.
  • Various components of the apparatus of the embodiments may be implemented by hardware, software, firmware, or a combination thereof.
  • Various components of the embodiments may be implemented with one chip, for example, one hardware circuit.
  • the components according to the embodiments may be implemented with separate chips.
  • at least one or more of the components of the device according to the embodiments may be composed of one or more processors capable of executing one or more programs, and the one or more programs may be implemented Any one or more of the operations/methods according to the examples may be performed or may include instructions for performing the operations/methods.
  • Executable instructions for performing the method/acts of the apparatus according to the embodiments may be stored in non-transitory CRM or other computer program products configured for execution by one or more processors, or one or more may be stored in temporary CRM or other computer program products configured for execution by processors.
  • the memory according to the embodiments may be used as a concept including not only volatile memory (eg, RAM, etc.) but also non-volatile memory, flash memory, PROM, and the like. Also, it may be implemented in the form of a carrier wave, such as transmission through the Internet.
  • the processor-readable recording medium is distributed in a computer system connected through a network, so that the processor-readable code can be stored and executed in a distributed manner.
  • first, second, etc. may be used to describe various elements of the embodiments. However, interpretation of various components according to the embodiments should not be limited by the above terms. These terms are only used to distinguish one component from another. it is only For example, the first user input signal may be referred to as a second user input signal. Similarly, the second user input signal may be referred to as a first user input signal. Use of these terms should be interpreted as not departing from the scope of the various embodiments. Although both the first user input signal and the second user input signal are user input signals, they do not mean the same user input signals unless the context clearly indicates otherwise.
  • the operations according to the embodiments described in this document may be performed by a transceiver including a memory and/or a processor according to the embodiments.
  • the memory may store programs for processing/controlling operations according to the embodiments, and the processor may control various operations described in this document.
  • the processor may be referred to as a controller or the like.
  • operations may be performed by firmware, software, and/or a combination thereof, and the firmware, software, and/or a combination thereof may be stored in a processor or stored in a memory.
  • the embodiments may be wholly or partially applied to a point cloud data transmission/reception device and system.
  • Embodiments may include variations/modifications without departing from the scope of the claims and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

실시예들에 따른 포인트 클라우드 데이터 송신 방법은 포인트 클라우드 데이터를 인코딩하는 단계; 및 포인트 클라우드 데이터를 전송하는 단계; 를 포함할 수 있다. 실시예들에 따른 포인트 클라우드 데이터 수신 방법은 포인트 클라우드 데이터를 수신하는 단계; 포인트 클라우드 데이터를 디코딩하는 단계; 및/또는 포인트 클라우드 데이터를 렌더링하는 단계; 를 포함할 수 있다.

Description

포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
실시예들은 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 서비스 등의 다양한 서비스를 제공하기 위하여 Point Cloud 콘텐츠를 제공하는 방안을 제공한다.
포인트 클라우드는 3D공간 상의 포인트들의 집합이다. 3D공간 상의 포인트들의 양이 많아서 포인트 클라우드 데이터를 생성하기 어려운 문제점이 있다.
포인트 클라우드의 데이터를 전송하고 수신하기 위해서 많은 처리량이 요구되는 문제점이 있다.
실시예들에 따른 기술적 과제는, 전술한 문제점 등을 해결하기 위해서, 포인트 클라우드를 효율적으로 송수신하기 위한 포인트 클라우드 데이터 전송 장치, 전송 방법, 포인트 클라우드 데이터 수신 장치 및 수신 방법을 제공하는데 있다.
실시예들에 따른 기술적 과제는, 지연시간(latency) 및 인코딩/디코딩 복잡도를 해결하기 위한 포인트 클라우드 데이터 전송 장치, 전송 방법, 포인트 클라우드 데이터 수신 장치 및 수신 방법을 제공하는데 있다.
다만, 전술한 기술적 과제만으로 제한되는 것은 아니고, 본 문서 전체 내용에 기초하여 당업자가 유추할 수 있는 다른 기술적 과제로 실시예들의 권리범위가 확장될 수 있다.
상술한 목적 및 다른 이점을 달성하기 위해서 실시예들에 따른 포인트 클라우드 데이터 송신 방법은 포인트 클라우드 데이터를 인코딩하는 단계; 및 포인트 클라우드 데이터를 전송하는 단계; 를 포함할 수 있다.
실시예들에 따른 상기 포인트 클라우드 데이터는 지오메트리(geometry) 데이터를 전달(carrying)하는 하나 또는 그 이상의 지오메트리 이미지들 및/또는 어큐판시(occupancy) 데이터를 전달하는 하나 또는 그 이상의 어큐판시 이미지들을 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법은 상기 하나 또는 그 이상의 지오메트리 이미지들 및/또는 상기 하나 또는 그 이상의 어큐판시 이미지들을 결합하는 단계를 더 포함할 수 있다.
나아가 실시예들에 따른 상기 결합하는 단계는 하나의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성할 수 있다. 실시예들에 따른 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함할 수 있다. 실시예들에 따른 메타데이터는 상기 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함할 수 있다.
나아가 실시예들에 따른 상기 결합하는 단계는 3 개의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성할 수 있고, 상기 결합된 스트림은 제 1 어큐판시 이미지 및/또는 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함하는 결합 프레임을 포함할 수 있다. 실시예들에 따른 메타데이터는 상기 결합 프레임 내 상기 제 1 어큐판시 이미지 및/또는 상기 두 개의 지오메트리 이미지들의 순서를 나타내는 정보를 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 방법은 포인트 클라우드 데이터를 수신하는 단계; 포인트 클라우드 데이터를 디코딩하는 단계; 및 포인트 클라우드 데이터를 렌더링하는 단계; 를 포함할 수 있다. 실시예들에 따른 포인트 클라우드 데이터는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 포함할 수 있다.
나아가, 실시예들에 따른 포인트 클라우드 데이터 수신 방법은 상기 결합된 스트림(combined stream)을 상기 포인트 클라우드 데이터 내에 포함된 하나 또는 그 이상의 지오메트리 이미지들 및/또는 상기 하나 또는 그 이상의 어큐판시 이미지들로 분리하는 단계를 더 포함할 수 있다.
나아가, 실시예들에 따른 결합된 스트림은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 하나의 채널(channel)에 기반하여 결합된 데이터 스트림일 수 있다. 실시예들에 따른 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함할 수 있다. 실시예들에 따른 메타데이터는 상기 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함할 수 있다.
나아가, 실시예들에 따른 결합된 스트림은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 3개의 채널(channel)에 기반하여 결합된 데이터 스트림일 수 있다. 실시예들에 따른 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 퀄리티 있는 포인트 클라우드 서비스를 제공할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 다양한 비디오 코덱 방식을 달성할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 자율주행 서비스 등 범용적인 포인트 클라우드 콘텐츠를 제공할 수 있다.
도면은 실시예들을 더욱 이해하기 위해서 포함되며, 도면은 실시예들에 관련된 설명과 함께 실시예들을 나타낸다.
도1은 실시예들에 따른 Point Cloud 콘텐츠 제공을 위한 송신/수신 시스템의 구조의 예시를 나타낸다.
도2는 실시예들에 따른 포인트 클라우드 데이터 갭쳐의 예시를 나타낸다.
도3은 실시예들에 따른 포인트 클라우드 및 지오메트리, 텍스쳐 이미지의 예시를 나타낸다.
도4는 실시예들에 따른 V-PCC 인코딩 처리의 예시를 나타낸다.
도5는 실시예들에 따른 서페이스(Surface)의 탄젠트 플렌(tangent plane) 및 노멀 벡터(normal vector)의 예시를 나타낸다.
도6은 실시예들에 따른 포인트 클라우드의 바운딩 박스(bounding box)의 예시를 나타낸다.
도7은 실시예들에 따른 어큐판시 맵(occupancy map)의 개별 패치(patch) 위치 결정의 예시를 나타낸다.
도8은 실시예들에 따른 노멀(normal), 탄젠트(tangent), 바이탄젠트(bitangent) 축의 관계의 예시를 나타낸다.
도9는 실시예들에 따른 프로젝션 모드의 최소 모드 및 최대 모드의 구성의 예시를 나타낸다.
도10은 실시예들에 따른 EDD 코드의 예시를 나타낸다.
도11은 실시예들에 따른 인접점들의 컬러(color) 값들을 이용한 리컬러링(recoloring)의 예시를 나타낸다.
도12는 실시예들에 따른 푸쉬-풀 백그라운드 필링(push-pull background filling)의 예시를 나타낸다.
도13은 실시예들에 따른 4*4 크기의 블록(block)에 대해 가능한 트라버설 오더(traversal order)의 예시를 나타낸다.
도14는 실시예들에 따른 베스트 트라버설 오더의 예시를 나타낸다.
도15는 실시예들에 따른 2D 비디오/이미지 인코더(2D video/image Encoder)의 예시를 나타낸다.
도16은 실시예들에 따른 V-PCC 디코딩 프로세스(decoding process)의 예시를 나타낸다.
도17은 실시예들에 따른 2D 비디오/이미지 디코더(2D Video/Image Decoder)의 예시를 나타낸다.
도18은 실시예들에 따른 송신 장치의 동작 흐름도의 예시를 나타낸다.
도19는 실시예들에 따른 수신 장치의 동작 흐름도의 예시를 나타낸다.
도20은 실시예들에 따른 포인트 클라우드 데이터 송수신 방법/장치와 연동 가능한 구조의 예시를 나타낸다.
도 21은 실시예들에 따른 포인트 클라우드 데이터 송신 장치의 인코딩 과정을 나타낸다.
도 22는 실시예들에 따른 포인트 클라우드 데이터 수신 장치의 디코딩 과정을 나타낸다.
도 23은 실시예들에 따른 포인트 클라우드 데이터 송신 장치의 구성도이다.
도 24는 실시예들에 따른 포인트 클라우드 데이터 수신 장치의 구성도이다.
도 25는 실시예들에 따른 비디오 결합부의 동작을 나타낸다.
도 26은 실시예들에 따른 비디오 분리부의 동작을 나타낸다.
도 27은 실시예들에 따른 V3C 비트스트림을 나타낸다.
도 28는 실시예들에 따른 VPCC 유닛의 타입과 그와 관련된 시그널링 정보를 나타낸다.
도 29는 실시예들에 따른 V3C 비트스트림의 구조를 나타낸다.
도 30는 실시예들에 따른 V-PCC 파라미터 세트(V-PCC parameter set)의 예시를 나타낸다.
도 31은 실시예들에 따른 결합된 비디오 스트림을 위한 정보를 나타낸다.
도 32은 실시예들에 따른 비디오 결합부의 동작을 나타낸다.
도 33은 실시예들에 따른 비디오 분리부의 동작을 나타낸다.
도 34는 실시예들에 따른 비디오 결합부에 의해 결합된 데이터 스트림 및 관련 시그널링 정보를 나타낸다.
도 35은 실시예들에 따른 비디오 결합부 및 비디오 분리부의 동작을 나타낸다.
도 36는 실시예들에 따른 프레임(frame) 내 채널(channel)들 및 이와 관련된 시그널링 정보를 나타낸다.
도 37는 실시예들에 따른 프레임(frame) 내 채널(channel)들과 관련된 시그널링 정보를 나타낸다.
도 38은 실시예들에 따른 비디오 결합부 및 비디오 분리부의 동작을 나타내는 흐름도이다.
도 39은 실시예들에 따른 비디오 결합부 및 비디오 분리부의 동작을 나타내는 흐름도이다.
도 40은 실시예들에 따른 포인트 클라우드 데이터 송신 방법의 흐름도이다.
도 41은 실시예들에 따른 포인트 클라우드 데이터 수신 방법의 흐름도이다.
실시예들의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 실시예들의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 실시예들의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 실시예들에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 실시예들이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
실시예들에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 실시예들은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
도1은 실시예들에 따른 Point Cloud 콘텐츠 제공을 위한 송신/수신 시스템의 구조의 예시를 나타낸다.
본 문서에서는 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 서비스 등의 다양한 서비스를 제공하기 위하여 Point Cloud 콘텐츠를 제공하는 방안을 제공한다. 실시예들에 다른 포인트 클라우드 콘텐츠는 오브젝트를 포인트들로 표현한 데이터를 나타내고, 포인트 클라우드, 포인트 클라우드 데이터, 포인트 클라우드 비디오 데이터, 포인트 클라우드 이미지 데이터 등으로 지칭될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 전송 장치(Transmission device, 10000)는 포인트 클라우드 비디오 획득부(Point Cloud Video Acquisition, 10001), 포인트 클라우드 비디오 인코더(Point Cloud Video Encoder, 10002), 파일/세그먼트 인캡슐레이션부(10003) 및/또는 트랜스미터(Transmitter (or Communication module), 10004)를 포함한다. 실시예들에 따른 전송 장치는 포인트 클라우드 비디오(또는 포인트 클라우드 콘텐트)를 확보하고 처리하여 전송할 수 있다. 실시예들에 따라, 전송 장치는 고정국(fixed station), BTS(base transceiver system), 네트워크, AI(Ariticial Intelligence) 기기 및/또는 시스템, 로봇, AR/VR/XR 기기 및/또는 서버 등을 포함할 수 있다. 또한 실시예들에 따라 전송 장치(10000)는 무선 접속 기술(예, 5G NR(New RAT), LTE(Long Term Evolution))을 이용하여, 기지국 및/또는 다른 무선 기기와 통신을 수행하는 기기, 로봇, 차량, AR/VR/XR 기기, 휴대기기, 가전, IoT(Internet of Thing)기기, AI 기기/서버 등을 포함할 수 있다.
실시예들에 따른 포인트 클라우드 비디오 획득부(Point Cloud Video Acquisition, 10001)는 Point Cloud 비디오의 캡처, 합성 또는 생성 과정 등을 통한 Point Cloud 비디오를 획득한다.
실시예들에 따른 포인트 클라우드 비디오 인코더(Point Cloud Video Encoder, 10002)는 포인트 클라우드 비디오 데이터를 인코딩한다. 실시예들에 따라, 포인트 클라우드 비디오 인코더(10002)는 포인트 클라우드 인코더, 포인트 클라우드 데이터 인코더, 인코더 등으로 지칭될 수 있다. 또한 실시예들에 따른 포인트 클라우드 컴프레션 코딩(인코딩)은 상술한 실시예에 국한되는 것은 아니다. 포인트 클라우드 비디오 인코더는 인코딩된 포인트 클라우드 비디오 데이터를 포함하는 비트스트림을 출력할 수 있다. 비트스트림은 인코딩된 포인트 클라우드 비디오 데이터뿐만 아니라, 포인트 클라우드 비디오 데이터의 인코딩과 관련된 시그널링 정보를 포함할 수 있다.
실시예들에 따른 인코더는 G-PCC (Geometry-based Point Cloud Compression) 인코딩 방식 및/또는 V-PCC(Video-based Point Cloud Compression) 인코딩 방식을 모두 지원할 수 있다. 또한, 인코더는 포인트 클라우드 (포인트 클라우드 데이터 또는 포인트들을 모두 지칭함) 및/또는 포인트 클라우드에 관한 시그널링 데이터를 인코딩할 수 있다. 실시예들에 따른 인코딩의 구체적인 동작은 이하에서 설명한다.
한편, 본 문서에서 사용하는 V-PCC 용어는 비디오 기반 포인트 클라우드 압축(Video-based Point Cloud Compression (V-PCC))을 의미하고, V-PCC 용어는 비쥬얼 볼륨메트릭 비디오 기반 코딩(Visual Volumetric Video-based Coding (V3C))과 동일하고, 서로 상호 보완하여 지칭될 수 있다.
실시예들에 따른 파일/세그먼트 인캡슐레이션부(File/Segment Encapsulation module, 10003)은 포인트 클라우드 데이터를 파일 및/또는 세그먼트 형태로 인캡슐레이션한다. 실시예들에 따른 포인트 클라우드 데이터 송신 방법/장치는 포인트 클라우드 데이터를 파일 및/또는 세그먼트 형태로 전송할 수 있다.
실시예들에 따른 트랜스미터(Transmitter (or Communication module), 10004)는 인코딩된 포인트 클라우드 비디오 데이터를 비트스트림의 형태로 전송한다. 실시예들에 따라 파일 또는 세그먼트는 네트워크를 통해 수신 장치로 전송되거나, 디지털 저장매체(예를 들면 USB, SD, CD, DVD, 블루레이, HDD, SSD 등)에 저장될 수 있다. 실시예들에 따른 트랜스미터는 수신 장치 (또는 리시버(Receiver)와 4G, 5G, 6G 등의 네트워크를 통해 유/무선 통신 가능하다. 또한 트랜스미터는 네트워크 시스템(예를 들면 4G, 5G, 6G 등의 통신 네트워크 시스템)에 따라 필요한 데이터 처리 동작을 수행할 수 있다. 또한 전송 장치는 온 디맨드(On Demand) 방식에 따라 인캡슐레이션된 데이터를 전송할 수도 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치(Reception device, 10005)는 리시버(Receiver, 10006), 파일/세그먼트 디캡슐레이션부(10007), 포인트 클라우드 비디오 디코더(Point Cloud Decoder, 10008), 및/또는 렌더러(Renderer, 10009)를 포함한다. 실시예들에 따라 수신 장치는 무선 접속 기술(예, 5G NR(New RAT), LTE(Long Term Evolution))을 이용하여, 기지국 및/또는 다른 무선 기기와 통신을 수행하는 기기, 로봇, 차량, AR/VR/XR 기기, 휴대기기, 가전, IoT(Internet of Thing)기기, AI 기기/서버 등을 포함할 수 있다.
실시예들에 따른 리시버(Receiver, 10006)는 포인트 클라우드 비디오 데이터를 포함하는 비트스트림을 수신한다. 실시예들에 따라 리시버(10006)는 피드백 정보(Feedback Information)을 포인트 클라우드 데이터 전송 장치(10000)에 전송할 수 있다.
파일/세그먼트 디캡슐레이션부(File/Segment Decapsulation module, 10007)은 포인트 클라우드 데이터를 포함하는 파일 및/또는 세그먼트를 디캡슐레이션한다. 실시예들에 따른 디캡슐레이션부는 실시예들에 따른 인캡슐레이션 과정의 역과정을 수행할 수 있다.
포인트 클라우드 비디오 디코더(Point Cloud Decoder, 10007)는 수신된 포인트 클라우드 비디오 데이터를 디코딩한다. 실시예들에 따른 디코더는 실시예들에 따른 인코딩의 역과정을 수행할 수 있다.
렌더러(Renderer, 10007)는 디코딩된 포인트 클라우드 비디오 데이터를 렌더링한다. 실시예들에 따라 렌더러(10007)는 수신단 측에서 획득된 피드백 정보를 포인트 클라우드 비디오 디코더(10006)에 전송할 수 있다. 실시예들에 따른 포인트 클라우드 비디오 데이터는 피드백 정보를 리시버에 전송할 수 있다. 실시예들에 따라 포인트 클라우드 전송 장치가 수신한 피드백 정보는 포인트 클라우드 비디오 인코더에 제공될 수 있다.
도면에 점선으로 표시된 화살표는 수신 장치(10005)에서 획득한 피드백 정보(feedback information)의 전송 경로를 나타낸다. 피드백 정보는 포인트 클라우드 컨텐트를 소비하는 사용자와의 인터랙티비를 반영하기 위한 정보로서, 사용자의 정보(예를 들면 헤드 오리엔테이션 정보), 뷰포트(Viewport) 정보 등)을 포함한다. 특히 포인트 클라우드 콘텐트가 사용자와의 상호작용이 필요한 서비스(예를 들면 자율주행 서비스 등)를 위한 콘텐트인 경우, 피드백 정보는 콘텐트 송신측(예를 들면 전송 장치(10000)) 및/또는 서비스 프로바이더에게 전달될 수 있다. 실시예들에 따라 피드백 정보는 전송 장치(10000) 뿐만 아니라 수신 장치(10005)에서도 사용될 수 있으며, 제공되지 않을 수도 있다.
실시예들에 따른 헤드 오리엔테이션 정보는 사용자의 머리 위치, 방향, 각도, 움직임 등에 대한 정보이다. 실시예들에 따른 수신 장치(10005)는 헤드 오리엔테이션 정보를 기반으로 뷰포트 정보를 계산할 수 있다. 뷰포트 정보는 사용자가 바라보고 있는 포인트 클라우드 비디오의 영역에 대한 정보이다. 시점(viewpoint)은 사용자가 포인트 클라우 비디오를 보고 있는 점으로 뷰포트 영역의 정중앙 지점을 의미할 수 있다. 즉, 뷰포트는 시점을 중심으로 한 영역으로서, 영역의 크기, 형태 등은 FOV(Field Of View) 에 의해 결정될 수 있다. 따라서 수신 장치(10004)는 헤드 오리엔테이션 정보 외에 장치가 지원하는 수직(vertical) 혹은 수평(horizontal) FOV 등을 기반으로 뷰포트 정보를 추출할 수 있다. 또한 수신 장치(10005)는 게이즈 분석 (Gaze Analysis) 등을 수행하여 사용자의 포인트 클라우드 소비 방식, 사용자가 응시하는 포인트 클라우 비디오 영역, 응시 시간 등을 확인한다. 실시예들에 따라 수신 장치(10005)는 게이즈 분석 결과를 포함하는 피드백 정보를 송신 장치(10000)로 전송할 수 있다. 실시예들에 따른 피드백 정보는 렌더링 및/또는 디스플레이 과정에서 획득될 수 있다. 실시예들에 따른 피드백 정보는 수신 장치(10005)에 포함된 하나 또는 그 이상의 센서들에 의해 확보될 수 있다. 또한 실시예들에 따라 피드백 정보는 렌더러(10009) 또는 별도의 외부 엘레멘트(또는 디바이스, 컴포넌트 등)에 의해 확보될 수 있다. 도1의 점선은 렌더러(10009)에서 확보한 피드백 정보의 전달 과정을 나타낸다. 포인트 클라우드 콘텐트 제공 시스템은 피드백 정보를 기반으로 포인트 클라우드 데이터를 처리(인코딩/디코딩)할 수 있다. 따라서 포인트 클라우드 비디오 데이터 디코더(10008)는 피드백 정보를 기반으로 디코딩 동작을 수행할 수 있다. 또한 수신 장치(10005)는 피드백 정보를 전송 장치로 전송할 수 있다. 전송 장치(또는 포인트 클라우드 비디오 데이터 인코더(10002))는 피드백 정보를 기반으로 인코딩 동작을 수행할 수 있다. 따라서 포인트 클라우드 콘텐트 제공 시스템은 모든 포인트 클라우드 데이터를 처리(인코딩/디코딩)하지 않고, 피드백 정보를 기반으로 필요한 데이터(예를 들면 사용자의 헤드 위치에 대응하는 포인트 클라우드 데이터)를 효율적으로 처리하고, 사용자에게 포인트 클라우드 콘텐트를 제공할 수 있다.
실시예들에 따라, 전송 장치(10000)는 인코더, 전송 디바이스, 전송기 등으로 호칭될 수 있으며, 수신 장치(10004)는 디코더, 수신 디바이스, 수신기 등으로 호칭될 수 있다.
실시예들에 따른 도 1 의 포인트 클라우드 콘텐트 제공 시스템에서 처리되는 (획득/인코딩/전송/디코딩/렌더링의 일련의 과정으로 처리되는) 포인트 클라우드 데이터는 포인트 클라우드 콘텐트 데이터 또는 포인트 클라우드 비디오 데이터라고 호칭할 수 있다. 실시예들에 따라 포인트 클라우드 콘텐트 데이터는 포인트 클라우드 데이터와 관련된 메타데이터 내지 시그널링 정보를 포함하는 개념으로 사용될 수 있다.
도 1에 도시된 포인트 클라우드 콘텐트 제공 시스템의 엘리먼트들은 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 결합등으로 구현될 수 있다.
실시예들은 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 서비스 등 다양한 서비스를 제공하기 위하여 포인트 클라우드(Point Cloud) 콘텐츠를 제공할 수 있다.
Point Cloud 콘텐츠 서비스를 제공하기 위하여, 먼저 Point Cloud 비디오가 획득될 수 있다. 획득된 Point Cloud 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터를 다시 원래의 Point Cloud 비디오로 가공하여 렌더링 할 수 있다. 이를 통해 Point Cloud 비디오가 사용자에게 제공될 수 있다. 실시예들은 이러한 일련의 과정을 효과적으로 수행하기 위해 필요한 방안을 제공한다.
Point Cloud 콘텐츠 서비스를 제공하기 위한 전체의 과정(포인트 클라우드 데이터 전송 방법 및/또는 포인트 클라우드 데이터 수신 방법)은 획득 과정, 인코딩 과정, 전송 과정, 디코딩 과정, 렌더링 과정 및/또는 피드백 과정을 포함할 수 있다.
실시예들에 따라 포인트 클라우드 콘텐츠 (또는 포인트 클라우드 데이터)를 제공하는 과정은 포인트 클라우드 컴프레션(Point Cloud Compression) 과정이라고 호칭할 수 있다. 실시예들에 따라 포인트 클라우드 컴프레션 과정은 지오메트리 기반 포인트 클라우드 컴프레션(Geometry-based Point Cloud Compression) 과정을 의미할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 전송 장치 및 포인트 클라우드 데이터 수신 장치의 각 엘리먼트는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 결합 등을 의미할 수 있다.
Point Cloud 콘텐츠 서비스를 제공하기 위하여, 먼저 Point Cloud 비디오가 획득될 수 있다. 획득된 Point Cloud 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터를 다시 원래의 Point Cloud 비디오로 가공하여 렌더링 할 수 있다. 이를 통해 Point Cloud 비디오가 사용자에게 제공될 수 있다. 본 발명은 이러한 일련의 과정을 효과적으로 수행하기 위해 필요한 방안을 제공한다.
Point Cloud 콘텐츠 서비스를 제공하기 위한 전체의 과정은 획득 과정, 인코딩 과정, 전송 과정, 디코딩 과정, 렌더링 과정 및/또는 피드백 과정을 포함할 수 있다.
Point Cloud Compression 시스템은 전송 디바이스 및 수신 디바이스를 포함할 수 있다. 전송 디바이스는 Point Cloud 비디오를 인코딩하여 비트스트림을 출력할 수 있으며, 이를 파일 또는 스트리밍 (스트리밍 세그먼트) 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다.
전송 디바이스는 개략적으로 Point Cloud 비디오 획득부, Point Cloud 비디오 인코더, 파일/세그먼트 인캡슐레이션부, 전송부를 포함할 수 있다. 수신 디바이스는 개략적으로 수신부, 파일/세그먼트 디캡슐레이션부, Point Cloud 비디오 디코더 및 렌더러를 포함할 수 있다. 인코더는 Point Cloud 비디오/영상/픽처/프레임 인코딩 장치라고 불릴 수 있고, 디코더는 Point Cloud 비디오/영상/픽처/프레임 디코딩 장치라고 불릴 수 있다. 송신기는 Point Cloud 비디오 인코더에 포함될 수 있다. 수신기는 Point Cloud 비디오 디코더에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 렌더러 및/또는 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다. 전송 디바이스 및 수신 디바이스는 피드백 과정을 위한 별도의 내부 또는 외부의 모듈/유닛/컴포넌트를 더 포함할 수도 있다.
실시예들에 따라 수신 디바이스의 동작은 전송 디바이스 동작의 역과정을 따를 수 있다.
Point Cloud 비디오 획득부는 Point Cloud 비디오의 캡처, 합성 또는 생성 과정 등을 통한 Point Cloud 비디오를 획득하는 과정을 수행할 수 있다. 획득 과정에 의해 다수의 Point들에 대한 3D 위치(x, y, z)/속성 (color, reflectance, transparency 등) 데이터, 예를 들어, PLY(Polygon File format or the Stanford Triangle format) 파일 등이 생성 될 수 있다. 여러 개의 프레임을 갖는 비디오의 경우 하나 이상의 파일들이 획득될 수 있다. 캡처 과정에서 point cloud 관련 메타데이터(예를 들어 캡처와 관련된 메타데이터 등)가 생성될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 포인트 클라우드 데이터를 인코딩하는 인코더; 및 포인트 클라우드 데이터를 전송하는 트랜스미터; 를 포함할 수 있다. 또한, 포인트 클라우드를 포함하는 비트 스트림의 형태로 전송될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 포인트 클라우드 데이터를 수신하는 수신부; 포인트 클라우드 데이터를 디코딩하는 디코더; 및 포인트 클라우드 데이터를 렌더링하는 렌더러; 를 포함할 수 있다.
실시예들에 따른 방법/장치는 포인트 클라우드 데이터 송신 장치 및/또는 포인트 클라우드 데이터 수신 장치를 나타낸다.
도2는 실시예들에 따른 포인트 클라우드 데이터 갭쳐의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터는 카메라 등에 의해 획득될 수 있다. 실시예들에 따른 캡쳐 방법은 예를 들어 인워드-페이싱 및/또는 아웃워드-페이싱이 있을 수 있다.
실시예들에 따른 인워드-페이싱은 포인트 클라우드 데이터의 오브젝트(Object)를 하나 또는 하나 이상의 카메라들이 오브젝트의 바깥에서 안쪽 방향으로 촬영할 수 있다.
실시예들에 따른 아웃워드-페이싱은 포인트 클라우드 데이터의 오브젝트를 하나 또는 하나 이상의 카메라들이 오브젝트의 안쪽에서 바깥 방향으로 촬영할 수 있다. 예를 들어, 실시예들에 따라 카메라는 4개일 수 있다.
실시예들에 따른 포인트 클라우드 데이터 또는 포인트 클라우드 콘텐츠는 다양한 형태의 3D 공간상에 표현되는 객체/환경의 비디오 또는 정지 영상일 수 있다. 실시예들에 따라, 포인트 클라우드 콘텐츠는 객체(오브젝트 등)에 대한 비디오/오디오/이미지 등을 포함할 수 있다.
Point Cloud 콘텐츠 캡쳐를 위해서 깊이(depth)를 획득 할 수 있는 카메라 장비(적외선 패턴 프로젝터와 적외선 카메라의 조합)와 깊이 정보에 대응되는 색상 정보를 추출 할 수 있는 RGB 카메라들의 조합으로 구성될 수 있다. 또는 레이저 펄스를 쏘고 반사되어 돌아오는 시간을 측정하여 반사체의 위치 좌표를 측정하는 레이더 시스템을 이용하는 라이다(LiDAR)를 통해 깊이 정보를 추출할 수 있다. 깊이 정보로부터 3차원 공간상의 점들로 구성된 지오메트리(geometry)의 형태를 추출하고, RGB 정보로부터 각 점의 색상/반사를 표현하는 속성(attribute)을 추출할 수 있다. Point Cloud 콘텐츠는 점들에 대한 위치(x, y, z)와 색상(YCbCr 또는 RGB) 또는 반사율(r) 정보로 구성될 수 있다. Point Cloud 콘텐츠는 외부 환경을 캡쳐하는 아웃워드-페이싱(outward-facing) 방식과, 중심 객체를 캡쳐하는 인워드-페이싱(inward-facing) 방식이 있을 수 있다. VR/AR 환경에서 객체(예-캐릭터, 선수, 물건, 배우 등 핵심이 되는 객체)를 360도로 사용자가 자유롭게 볼 수 있는 Point Cloud 콘텐츠로 구성할 경우, 캡쳐 카메라의 구성은 인워드-페이싱 방식을 사용하게 될 수 있다. 자율 주행과 같이 자동차에서 현재 주변 환경을 Point Cloud 콘텐츠로 구성할 경우, 캡쳐 카메라의 구성은 아웃워드-페이싱 방식을 사용하게 될 수 있다. 여러대의 카메라를 통해 Point Cloud 콘텐츠가 캡쳐 될 수 있기 때문에, 카메라들 사이의 글로벌 공간 좌표계(global coordinate system)를 설정하기 위해 콘텐츠를 캡쳐 하기 전에 카메라의 캘리브레이션 과정이 필요할 수도 있다.
Point Cloud 콘텐츠는 다양한 형태의 3D 공간상에 나타내어지는 객체/환경의 비디오 또는 정지 영상일 수 있다.
그 외에 Point Cloud 콘텐츠의 획득 방법은 캡쳐 된 Point Cloud 비디오를 기반으로 임의의 Point Cloud 비디오가 합성 될 수 있다. 또는 컴퓨터로 생성된 가상의 공간에 대한 Point Cloud 비디오를 제공하고자 하는 경우, 실제 카메라를 통한 캡처가 수행되지 않을 수 있다. 이 경우 단순히 관련 데이터가 생성되는 과정으로 해당 캡처 과정이 갈음될 수 있다.
캡쳐된 Point Cloud 비디오는 콘텐츠의 질을 향상시키기 위한 후처리가 필요할 수 있다. 영상 캡쳐 과정에서 카메라 장비가 제공하는 범위에서 최대/최소 깊이 값을 조정할 수 있지만 그 이후에도 원하지 않는 영역의 points 데이터들이 포함될 수 있어서 원하지 않는 영역(예, 배경)을 제거 한다거나, 또는 연결된 공간을 인식하고 구멍(spatial hole)을 메우는 후처리를 수행할 수 있다. 또한 공간 좌표계를 공유하는 카메라들로부터 추출된 Point Cloud는 캘리브레이션 과정을 통해 획득된 각 카메라의 위치 좌표를 기준으로 각 point들에 대한 글로벌 좌표계로의 변환 과정을 통해 하나의 콘텐츠로 통합될 수 있다. 이를 통해 하나의 넓은 범위의 Point Cloud 콘텐츠를 생성할 수도 있고, 또는 point들의 밀도가 높은 Point Cloud 콘텐츠를 획득할 수도 있다.
Point Cloud 비디오 인코더는 입력 Point Cloud 비디오를 하나 이상의 비디오 스트림으로 인코딩할 수 있다. 하나의 비디오는 다수의 프레임을 포함할 수 있으며, 하나의 프레임은 정지 영상/픽처에 대응될 수 있다. 본 문서에서, Point Cloud 비디오라 함은 Point Cloud 영상/프레임/픽처/비디오/오디오/이미지 등을 포함할 수 있으며, Point Cloud 비디오는 Point Cloud 영상/프레임/픽처와 혼용되어 사용될 수 있다. Point Cloud 비디오 인코더는 Video-based Point Cloud Compression (V-PCC) 절차를 수행할 수 있다. Point Cloud 비디오 인코더는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화, 엔트로피 코딩 등의 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다. V-PCC 절차에 기반하는 경우 Point Cloud 비디오 인코더는 Point Cloud 비디오를 후술하는 바와 같이 지오메트리 비디오, 어트리뷰트(attribute) 비디오, 어큐판시(occupancy) 맵 비디오, 그리고 부가 정보(auxiliary information)으로 나누어 인코딩할 수 있다. 지오메트리 비디오는 지오메트리 이미지를 포함할 수 있고, 어트리뷰트(attribute) 비디오는 어트리뷰트 이미지를 포함할 수 있고, 어큐판시(occupancy) 맵 비디오는 어큐판시 맵 이미지를 포함할 수 있다. 부가 정보는 부가 패치 정보(auxiliary patch information)를 포함할 수 있다. 어트리뷰트 비디오/이미지는 텍스쳐 비디오/이미지를 포함할 수 있다.
인캡슐레이션 처리부(file/segment encapsulation module, 10003)는 인코딩된 Point cloud 비디오 데이터 및/또는 Point cloud 비디오 관련 메타데이터를 파일 등의 형태로 인캡슐레이션할 수 있다. 여기서 Point cloud 비디오 관련 메타데이터는 메타데이터 처리부 등으로부터 전달받은 것일 수 있다. 메타데이터 처리부는 point cloud 비디오 인코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 인캡슐레이션 처리부는 해당 데이터들을 ISOBMFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인캡슐레이션 처리부는 실시예에 따라 Point cloud 비디오 관련 메타데이터를 파일 포맷 상에 포함시킬 수 있다. Point cloud 비디오 메타데이터는 예를 들어 ISOBMFF 파일 포맷 상의 다양한 레벨의 박스(box)에 포함되거나 파일 내에서 별도의 트랙내의 데이터로 포함될 수 있다. 실시예에 따라, 인캡슐레이션 처리부는 Point cloud 비디오 관련 메타데이터 자체를 파일로 인캡슐레이션할 수 있다. 전송 처리부는 파일 포맷에 따라 인캡슐레이션된 Point cloud 비디오 데이터에 전송을 위한 처리를 가할 수 있다. 전송 처리부는 전송부에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송 처리부는 임의의 전송 프로토콜에 따라 Point cloud 비디오비디오 데이터를 처리할 수 있다. 전송을 위한 처리에는 방송망을 통한 전달을 위한 처리, 브로드밴드를 통한 전달을 위한 처리를 포함할 수 있다. 실시예에 따라 전송 처리부는 Point cloud 비디오 데이터 뿐 아니라, 메타데이터 처리부로부터 Point cloud 비디오관련 메타데이터를 전달받아, 이 것에 전송을 위한 처리를 가할 수도 있다.
전송부(10004)는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 수신부는 비트스트림을 추출하여 디코딩 장치로 전달할 수 있다.
수신부(10003)는 본 발명에 따른 point cloud 비디오 전송 장치가 전송한 point cloud 비디오 데이터를 수신할 수 있다. 전송되는 채널에 따라 수신부는 방송망을 통하여 point cloud 비디오 데이터를 수신할 수도 있고, 브로드밴드를 통하여 point cloud 비디오 데이터를 수신할 수도 있다. 혹은 디지털 저장 매체를 통하여 point cloud 비디오 데이터를 수신할 수도 있다.
수신 처리부는 수신된 point cloud 비디오 데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 수신 처리부는 수신부에 포함될 수 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송측에서 전송을 위한 처리가 수행된 것에 대응되도록, 수신 처리부는 전술한 전송 처리부의 역과정을 수행할 수 있다. 수신 처리부는 획득한 point cloud 비디오 데이터는 디캡슐레이션 처리부로 전달하고, 획득한 point cloud 비디오 관련 메타데이터는 메타데이터 파서로 전달할 수 있다. 수신 처리부가 획득하는 point cloud 비디오 관련 메타데이터는 시그널링 테이블의 형태일 수 있다.
디캡슐레이션 처리부(file/segment decapsulation module, 10007)는 수신 처리부로부터 전달받은 파일 형태의 point cloud 비디오 데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 ISOBMFF 등에 따른 파일들을 디캡슐레이션하여, point cloud 비디오 비트스트림 내지 point cloud 비디오 관련 메타데이터(메타데이터 비트스트림)를 획득할 수 있다. 획득된 point cloud 비디오 비트스트림은 point cloud 비디오 디코더로, 획득된 point cloud 비디오 관련 메타데이터(메타데이터 비트스트림)는 메타데이터 처리부로 전달할 수 있다. point cloud 비디오 비트스트림은 메타데이터(메타데이터 비트스트림)를 포함할 수도 있다. 메타데이터 처리부는 point cloud 비디오 디코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 디캡슐레이션 처리부가 획득하는 point cloud 비디오 관련 메타데이터는 파일 포맷 내의 박스 혹은 트랙 형태일 수 있다. 디캡슐레이션 처리부는 필요한 경우 메타데이터 처리부로부터 디캡슐레이션에 필요한 메타데이터를 전달받을 수도 있다. point cloud 비디오 관련 메타데이터는 point cloud 비디오 디코더에 전달되어 point cloud 비디오 디코딩 절차에 사용될 수도 있고, 또는 렌더러에 전달되어 point cloud 비디오 렌더링 절차에 사용될 수도 있다.
Point Cloud 비디오 디코더는 비트스트림을 입력받아 Point Cloud 비디오 인코더의 동작에 대응하는 동작을 수행하여 비디오/영상을 디코딩할 수 있다. 이 경우 Point Cloud 비디오 디코더는 Point Cloud 비디오를 후술하는 바와 같이 지오메트리 비디오, 어트리뷰트(attribute) 비디오, 어큐판시(occupancy) 맵 비디오, 그리고 부가 정보(auxilIary information )으로 나누어 디코딩할 수 있다. 지오메트리 비디오는 지오메트리 이미지를 포함할 수 있고, 어트리뷰트(attribute) 비디오는 어트리뷰트 이미지를 포함할 수 있고, 어큐판시(occupancy) 맵 비디오는 어큐판시 맵 이미지를 포함할 수 있다. 부가 정보는 부가 패치 정보(auxiliary patch information)를 포함할 수 있다. 어트리뷰트 비디오/이미지는 텍스쳐 비디오/이미지를 포함할 수 있다.
디코딩된 지오메트리 이미지와 오큐판시 맵 및 부가 패치 정보를 이용하여 3차원 지오메트리가 복원되며 이후 스무딩 과정을 거칠 수 있다. 스무딩된 3차원 지오메트리에 텍스처 이미지를 이용하여 컬러값을 부여함으로써 컬러 포인트 클라우드 영상/픽처가 복원될 수 있다. 렌더러는 복원된 지오메트리, 컬러 포인트 클라우드 영상/픽처를렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다. 사용자는 VR/AR 디스플레이 또는 일반 디스플레이 등을 통하여 렌더링 된 결과의 전부 또는 일부 영역을 볼 수 있다.
피드백 과정은 렌더링/디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하거나 수신측의 디코더에 전달하는 과정을 포함할 수 있다. 피드백 과정을 통해 Point Cloud 비디오 소비에 있어 인터랙티비티(interactivity) 가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션(Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트(Viewport) 정보 등이 전달될 수 있다. 실시예에 따라, 사용자는 VR/AR/MR/자율주행 환경 상에 구현된 것들과 상호작용 할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
헤드 오리엔테이션 정보는 사용자의 머리 위치, 각도, 움직임 등에 대한 정보를 의미할 수 있다. 이 정보를 기반으로 사용자가 현재 Point Cloud 비디오 내에서 보고 있는 영역에 대한 정보, 즉 뷰포트 정보가 계산될 수 있다.
뷰포트 정보는 현재 사용자가 Point Cloud 비디오에서 보고 있는 영역에 대한 정보일 수 있다. 이를 통해 게이즈 분석(Gaze Analysis) 이 수행되어, 사용자가 어떠한 방식으로 Point Cloud 비디오를 소비하는지, Point Cloud 비디오의 어느 영역을 얼마나 응시하는지 등을 확인할 수도 있다. 게이즈 분석은 수신측에서 수행되어 송신측으로 피드백 채널을 통해 전달될 수도 있다. VR/AR/MR 디스플레이 등의 장치는 사용자의 머리 위치/방향, 장치가 지원하는 수직(vertical) 혹은 수평(horizontal) FOV 등에 근거하여 뷰포트 영역을 추출할 수 있다.
실시예에 따라, 전술한 피드백 정보는 송신측으로 전달되는 것 뿐 아니라, 수신측에서 소비될 수도 있다. 즉, 전술한 피드백 정보를 이용하여 수신측의 디코딩, 렌더링 과정 등이 수행될 수 있다. 예를 들어, 헤드 오리엔테이션 정보 및/또는 뷰포트 정보를 이용하여 현재 사용자가 보고 있는 영역에 대한 Point Cloud 비디오만 우선적으로 디코딩 및 렌더링 될 수도 있다.
여기서 뷰포트(viewport) 내지 뷰포트 영역이란, 사용자가 Point Cloud 비디오에서 보고 있는 영역을 의미할 수 있다. 시점(viewpoint) 는 사용자가 Point Cloud 비디오에서 보고 있는 지점으로서, 뷰포트 영역의 정중앙 지점을 의미할 수 있다. 즉, 뷰포트는 시점을 중심으로 한 영역인데, 그 영역이 차지하는 크기 형태 등은 FOV(Field Of View) 에 의해 결정될 수 있다.
이 문서는 상술한 바와 같이 Point Cloud 비디오 압축에 관한 것이다. 예를 들어 이 문서에서 개시된 방법/실시예는 MPEG (Moving Picture Experts Group)의 PCC (point cloud compression or point cloud coding) 표준 또는 차세대 비디오/이미지 코딩 표준에 적용될 수 있다.
이 문서에서 픽처(picture)/프레임(frame)은 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미할 수 있다.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있고, 또는 뎁스(depth) 성분의 픽셀/픽셀값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
도3은 실시예들에 따른 포인트 클라우드 및 지오메트리, 텍스쳐 이미지의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드는 후술할 도4의 V-PCC 인코딩 프로세스에 입력되어 지오메트리 이미지, 텍스쳐 이미지가 생성될 수 있다. 실시예들에 따라, 포인트 클라우드는 포인트 클라우드 데이터와 동일한 의미로 사용될 수 있다.
도면과 같이, 좌측은 포인트 클라우드로서, 3D 공간 상에 오브젝트가 위치하고, 이를 바운딩 박스 등으로 나타낼 수 있는 포인트 클라우드를 나타낸다. 중간은 지오메트리를 나타내고, 우측은 텍스쳐 이미지(논-패딩)를 나타낸다.
비디오 베이스 포인트 클라우드 컴프레션(Video-based Point Cloud Compression) (V-PCC)는 HEVC, VVC 등의 2D video codec을 기반으로 3차원 point cloud 데이터를 압축하는 방법을 제공할 수 있다. V-PCC 압축 과정에서 다음과 같은 데이터 및 정보들이 생성될 수 있다.
어큐판시 맵(occupancy map): point cloud를 이루는 점들을 patch로 나누어 2D 평면에 맵핑할 때 2D 평면의 해당 위치에 데이터가 존재하는 여부를 0 또는 1의 값으로 알려주는 2진 맵 (binary map) 을 나타낸다. 어큐판시 맵(occupancy map)은 아틀라스에 대응하는 2D어레이를 나타내고, 어큐판시 맵의 값은 아틀라스 내 각 샘플 포지션이 3D포인트에 대응하는지 여부를 나타낼 수 있다.
아틀라스(atlas)는 볼륨매트릭 데이터가 렌더링되는 3D공간 내 3D 바운딩 박스에 대응하는 렉텡귤러 프레임에 위치한 2D 바운딩 박스들 및 그에 관련된 정보의 집합이다.
아틀라스 비트스트림(atlas bitstream)은 아틀라스(atlas)를 구성하는 하나 이상의 아틀라스 프레임(atlas frame)들과 관련 데이터들에 대한 비트스트림이다.
아틀라스 프레임(atlas frame)은 패치(patch)들이 프로젝션된 아틀라스 샘플(atlas sample)들의 2D 직사각형 배열이다.
아틀라스 샘플(atlas sample)은 아틀라스(atlas)와 연관된 패치(patch)들이 프로젝션된 직사각형 프레임의 포지션이다.
아틀라스 프레임(atlas frame)는은 타일(tile)로 분할될 수 있다. 타일은 2D 프레임을 분할하는 단위이다. 즉, 타일은 아틀라스라는 포인트 클라우드 데이터의 시그널링 정보를 분할하는 단위이다.
패치(patch): point cloud를 구성하는 점들의 집합으로, 같은 patch에 속하는 점들은 3차원 공간상에서 서로 인접해 있으며 2D 이미지로의 맵핑 과정에서 6면의 bounding box 평면 중 같은 방향으로 맵핑됨을 나타낸다.
지오메트리 이미지(geometry image): point cloud를 이루는 각 점들의 위치 정보 (geometry)를 patch 단위로 표현하는 depth map 형태의 이미지를 나타낸다. 지오메트리 이미지는1 채널의 픽셀 값으로 구성될 수 있다. 지오메트리(geometry)는 포인트 클라우드 프레임에 연관된 좌표들의 세트를 나타낸다.
텍스쳐 이미지(texture image): point cloud를 이루는 각 점들의 색상 정보를 patch 단위로 표현하는 image를 나타낸다. 텍스쳐 이미지는 복수 채널의 픽셀 값 (e.g. 3채널 R, G, B)으로 구성될 수 있다. 텍스쳐는 어트리뷰트에 포함된다. 실시예들에 따라서, 텍스쳐 및/또는 어트리뷰트는 동일한 대상 및/또는 포함관계로 해석될 수 있다.
오실러리 패치 정보(auxiliary patch info): 개별 patch들로부터 point cloud를 재구성하기 위해 필요한 메타데이터를 나타낸다. 어실러리 패치 인포는 patch의 2D/3D 공간에서의 위치, 크기 등에 대한 정보를 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터, 예를 들어 V-PCC 컴포넌트들은 아틀라스, 어큐판시 맵, 지오메트리, 어트리뷰트 등을 포함할 수 있다.
아틀라스(atlas)는 2D바운딩 박스들의 집합을 나타낸다. 패치, 예를 들어, 렉텡귤러 프레임에 프로젝션된 패치들일 수 있다. 또한, 3D공간에서 3D 바운딩 박스에 대응할 수 있고, 포인트 클라우드의 서브세트를 나타낼 수 있다.
어트리뷰트(attribute)는 포인트 클라우드 내 각 포인트와 연관된 scalar 또는 vector를 나타내고, 예를 들어, 컬러(colour), 리플렉턴스(reflectance), 서페이스 노멀(surface normal), 타임 스탬프(time stamps), 머터리얼ID(material ID) 등이 있을 수 있다.
실시예들에 따른 포인트 클라우드 데이터는 V-PCC (Video-based Point Cloud Compression) 방식에 따른 PCC 데이터를 나타낸다. 포인트 클라우드 데이터는 복수의 컴포넌트들을 포함할 수 있다. 예를 들어, 어큐판시 맵, 패치, 지오메트리 및/또는 텍스쳐 등을 포함할 수 있다.
도4는 실시예들에 따른 V-PCC 인코딩 처리의 예시를 나타낸다.
도면은 어큐판시 맵(occupancy map), 지오메트리 이미지(geometry image), 텍스쳐 이미지(texture image), 오실러리 패치 정보(auxiliary patch information)을 생성하고 압축하기 위한 V-PCC encoding process를 도시하여 보여주고 있다. 도4의 V-PCC 인코딩 프로세스는 도1의 포인트 클라우드 비디오 인코더(10002)에 의해 처리될 수 있다. 도4의 각 구성요소는 소프트웨어, 하드웨어, 프로세서 및/또는 그것들의 조합에 의해 수행될 수 있다.
패치 제너레이션(patch generation, 40000) 또는 패치 제너레이터는 포인트 클라우드 프레임(포인트 클라우드 데이터를 포함하는 비트스트림의 형태일 수 있다)을 수신한다. 패치 제너레이션부(40000)는 포인트 클라우드 데이터로부터 패치를 생성한다. 또한, 패치 생성에 관한 정보를 포함하는 패치 인포를 생성한다.
패치 패킹(patch packing, 40001) 또는 패치 패커는 포인트 클라우드 데이터에 대한 패치를 패킹한다. 예를 들어, 하나 또는 하나 이상의 패치들이 패킹될 수 있다. 또한, 패치 패킹에 관한 정보를 포함하는 어큐판시 맵을 생성한다.
지오메트리 이미지 제너레이션(geometry image generation, 40002) 또는 지오메트리 이미지 제너레이터는 포인트 클라우드 데이터, 패치, 및/또는 패킹된 패치에 기반하여 지오메트리 이미지를 생성한다. 지오메트리 이미지는 포인트 클라우드 데이터에 관한 지오메트리를 포함하는 데이터를 말한다.
텍스쳐 이미지 제너레이션(texture image generation, 40003) 또는 텍스쳐 이미지 제너레이터는 포인트 클라우드 데이터, 패치, 및/도는 패킹된 패치에 기반하여 텍스쳐 이미지를 생성한다. 또한, 재구성된(리컨스트럭션된) 지오메트리 이미지를 패치 인포에 기반하여 스무딩(번호)이 스무딩 처리를 하여 생성된 스무딩된 지오메트리에 더 기초하여, 텍스쳐 이미지를 생성할 수 있다.
스무딩(smoothing, 40004) 또는 스무더는 이미지 데이터에 포함된 에러를 완화 또는 제거할 수 있다. 예를 들어, 재구성된 지오메트리 이미지를 패치 인포에 기반하여 데이터 간 에러를 유발할 수 있는 부분을 부드럽게 필터링하여 스무딩된 지오메트리를 생성할 수 있다.
오실러리 패치 인포 컴프레션(auxillary patch info compression, 40005) 또는 오실러리 패치 정보 컴프레서는 패치 생성 과정에서 생성된 패치 정보와 관련된 부가적인 패치 정보를 컴프레션한다. 또한, 컴프레스된 오실러리 패치 인포를 멀티플레서에 전달하고, 지오메트리 이미지 제너레이션(40002)도 오실러리 패치 정보를 이용할 수 있다.
이미지 패딩(image padding, 40006, 40007) 또는 이미지 패더는 지오메트리 이미지 및 텍스쳐 이미지를 각각 패딩할 수 있다. 패딩 데이터가 지오메트리 이미지 및 텍스쳐 이미지에 패딩될 수 있다.
그룹 딜레이션(group dilation, 40008) 또는 그룹 딜라이터는 이미지 패딩과 유사하게, 텍스쳐 이미지에 데이터를 부가할 수 있다. 부가 데이터가 텍스쳐 이미지에 삽입될 수 있다.
비디오 컴프레션(video compression, 40009, 40010, 40011) 또는 비디오 컴프레서는 패딩된 지오메트리 이미지, 패딩된 텍스쳐 이미지 및/또는 어큐판시 맵을 각각 컴프레션할 수 있다. 컴프레션은 지오메트리 정보, 텍스쳐 정보, 어큐판시 정보 등을 인코딩할 수 있다.
엔트로피 컴프레션(entropy compression, 40012) 또는 엔트로피 컴프레서는 어큐판시 맵을 엔트로피 방식에 기반하여 컴프레션(예를 들어, 인코딩)할 수 있다.
실시예들에 따라, 포인트 클라우드 데이터가 로스리스(lossless)한 경우 및/또는 로시(lossy)한 경우에 따라서, 엔트로피 컴프레션 및/또는 비디오 컴프레션이 각각 수행될 수 있다.
멀티플렉서(multiplexer, 40013)는 컴프레스된 지오메트리 이미지, 컴프레스된 텍스쳐 이미지, 컴프레스된 어큐판시 맵을 비트스트림으로 멀티플렉싱한다.
실시예들에 따른 도4의 각 프로세스의 상세한 동작은 다음과 같다.
패치 제너레이션(Patch generation, 40000)
패치 제너레이션(Patch generation) 과정은 포인트 클라우드를 2D 이미지에 맵핑 (mapping)하기 위하여, 맵핑을 수행하는 단위인 patch로 point cloud를 분할하는 과정을 의미한다. Patch generation 과정은 다음과 같이 노멀(normal) 값 계산, 세그멘테이션(segmentation), 패치(patch) 분할의 세 단계로 구분될 수 있다.
도5를 참조하여, 노멀 값 계산 과정을 구체적으로 설명한다.
도5는 실시예들에 따른 서페이스(Surface)의 탄젠트 플렌(tangent plane) 및 노멀 벡터(normal vector)의 예시를 나타낸다.
도5의 서페이스는 도4의 V-PCC 인코딩 프로세스의 패치 제너레이션 과정(40000)에서 다음과 같이 이용된다.
패치 제너레이션 관련하여 노멀(Normal) 계산:
포인트 클라우드를 이루는 각 점(예를 들어, 포인트)들은 고유의 방향을 가지고 있는데 이것은 normal이라는 3차원 vector로 표현된다. K-D tree 등을 이용하여 구해지는 각 점들의 인접점들 (neighbors)을 이용하여, 도면과 같은 point cloud의 surface를 이루는 각 점들의 tangent plane 및 normal vector를 구할 수 있다. 인접점들을 찾는 과정에서의 search range는 사용자에 의해 정의될 수 있다.
탄젠트 플레인(tangent plane): surface의 한 점을 지나면서 surface 위의 곡선에 대한 접선을 완전이 포함하고 있는 평면을 나타낸다.
도6은 실시예들에 따른 포인트 클라우드의 바운딩 박스(bounding box)의 예시를 나타낸다.
실시예들에 따른 방법/장치, 예를 들어, 패치 제너레이션이 포인트 클라우드 데이터로부터 패치를 생성하는 과정에서 바운딩 박스를 이용할 수 있다.
실시예들에 따른 바운딩 박스란, 포인트 클라우드 데이터를 3D 공간 상에서 육면체에 기반하여 분할하는 단위의 박스를 말한다.
바운딩 박스는 포인트 클라우드 데이터의 대상이 되는 오브젝트를 3D 공간 상의 육면체에 기반하여 각 육면체의 평면에 프로젝션하는 과정에서 이용될 수 있다. 바운딩 박스는 도1의 포인트 클라우드 비디오 획득부(10000), 포인트 클라우드 비디오 인코더(10002)에 의해 생성되고 처리될 수 있다. 또한, 바운딩 박스에 기반하여, 도2의 V-PCC 인코딩 프로세스의 패치 제너레이션(40000), 패치 패킹(40001), 지오메트리 이미지 제너레이션(40002), 텍스쳐 이미지 제너레이션(40003)이 수행될 수 있다.
패치 제너레이션 관련하여 세그멘테이션(Segmentation)
세그멘테이션(Segmentation)은 이니셜 세그멘테이션(initial segmentation)과 리파인 세그멘테이션(refine segmentation)의 두 과정으로 이루어 진다.
실시예들에 따른 포인트 클라우드 인코더(10002)는 포인트를 바운딩박스의 한 면에 프로젝션한다. 구체적으로, Point cloud를 이루는 각 점들은 도면과 같이 point cloud를 감싸는 6개의 bounding box의 면들 중 하나의 면에 projection되는데, initial segmentation은 각 점들이 projection될 bounding box의 평면들 중 하나를 결정하는 과정이다.
6개의 각 평면들과 대응되는 normal값인
Figure PCTKR2021000083-appb-img-000001
는 다음과 같이 정의된다.
(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0), (-1.0, 0.0, 0.0), (0.0, -1.0, 0.0), (0.0, 0.0, -1.0).
다음의 수식과 같이 앞서 normal 값 계산과정에서 얻은 각 점들의 normal 값(
Figure PCTKR2021000083-appb-img-000002
)과
Figure PCTKR2021000083-appb-img-000003
의 외적 (dot product)이 최대인 면을 해당 면의 projection 평면으로 결정한다. 즉, point의 normal과 가장 유사한 방향의 normal을 갖는 평면이 해당 point 의 projection 평면으로 결정된다.
Figure PCTKR2021000083-appb-img-000004
결정된 평면은 0~5 중 하나의 index 형태의 값 (cluster index) 으로 식별될 수 있다.
Refine segmentation은 앞서 initial segmentation 과정에서 결정된 point cloud를 이루는 각 점의projection 평면을 인접 점들의 projection 평면을 고려하여 개선하는 과정이다. 이 과정에서는 앞서 initial segmentation 과정에서 projection 평면 결정을 위해 고려된 각 포인트의 normal과 bounding box의 각 평면의 normal 값과의 유사 정도를 이루는 score normal과 함께, 현재 점의 projection 평면과 인접 점들의 projection 평면과의 일치 정도를 나타내는 score smooth가 동시에 고려될 수 있다.
Score smooth는 score normal에 대하여 가중치를 부여하여 고려될 수 있으며, 이 때 가중치 값은 사용자에 의해 정의될 수 있다. Refine segmentation은 반복적으로 수행될 수 있으며, 반복 횟수 또한 사용자에 의해 정의될 수 있다.
패치 제너레이션 관련하여 Patch 분할 (segment patches)
Patch 분할은 앞서 initial/refine segmentation 과정에서 얻은 point cloud를 이루는 각 점들의 projection 평면 정보를 바탕으로, 전체 point cloud를 인접한 점들의 집합인 patch로 나누는 과정이다. Patch 분할은 다음과 같은 단계들로 구성될 수 있다.
① K-D tree 등을 이용하여 point cloud를 이루는 각 점들의 인접 점들을 산출한다. 최대 인접점으 개수는 사용자에 의해 정의될 수 있다.
② 인접 점들이 현재의 점과 동일한 평면에 projection 될 경우 (동일한 cluster index 값을 가질 경우) 현재의 점과 해당 인접 점들을 하나의 patch로 추출한다.
③ 추출된 patch의 geometry 값들을 산출한다. 자세한 과정은 이하에서 설명한다.
④ 추출되지 않은 점들이 없어질 때까지 ②~④ 과정을 반복한다.
Patch 분할 과정을 통해 각 patch의 크기 및 patch별 occupancy map, geometry image, texture image 등이 결정된다.
도7은 실시예들에 따른 어큐판시 맵(occupancy map)의 개별 패치(patch) 위치 결정의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 인코더(10002)는 패치 패킹 및 어큐판시 맵을 생성할 수 있다.
패치 패킹 및 어큐판시 맵 생성(Patch packing & Occupancy map generation, 40001)
본 과정은 앞서 분할된 patch들을 하나의 2D 이미지에 맵핑하기 위해 개별 patch들의 2D 이미지 내에서의 위치를 결정하는 과정이다. Occupancy map은 2D 이미지의 하나로, 해당 위치에 데이터가 존재하는지 여부를 0 또는 1의 값으로 알려주는 바이너리 맵(binary map)이다. Occupancy map은 블록(block)으로 이루어 지며 block의 크기에 따라 그 해상도가 결정될 수 있는데, 일례로 block 크기가 1*1일 경우 픽셀 (pixel) 단위의 해상도를 갖는다. Block의 크기 (occupancy packing block size)는 사용자에 의해 결정될 수 있다.
Occupancy map 내에서 개별 patch의 위치를 결정하는 과정은 다음과 같이 구성될 수 있다.
① 전체 occupancy map의 값들을 모두 0으로 설정한다.
② occupancy map 평면에 존재하는 수평 좌표가 [0, occupancySizeU - patch.sizeU0), 수직 좌표가 [0, occupancySizeV - patch.sizeV0) 범위에 있는 점 (u, v)에 patch를 위치시킨다.
③ patch 평면에 존재하는 수평 좌표가 [0, patch.sizeU0), 수직 좌표가 [0, patch.sizeV0) 범위에 있는 점 (x, y)를 현재 점(포인트)으로 설정한다.
④ 점 (x, y)에 대하여, patch occupancy map의 (x, y) 좌표 값이 1이고 (patch 내 해당 지점에 데이터가 존재하고), 전체 occupancy map의 (u+x, v+y) 좌표 값이 1 (이전 patch에 의해 occupancy map이 채워진 경우) raster order 순으로 (x, y) 위치를 변경하여 ③~④의 과정을 반복한다. 그렇지 않을 경우, ⑥의 과정을 수행한다.
⑤ raster order 순으로 (u, v) 위치를 변경하여 ③~⑤의 과정을 반복한다.
⑥ (u, v)를 해당 patch의 위치로 결정하고, patch의 occupancy map 데이터를 전체 occupancy map의 해당 부분에 할당(copy)한다.
⑦ 다음 patch에 대하여 ②~⑦의 과정을 반복한다.
어큐판시 사이즈U(occupancySizeU): occupancy map의 너비(width)를 나타내며, 단위는 어큐판시 패킹 사이즈 블록(occupancy packing block size) 이다.
어큐판시 사이즈V(occupancySizeV): occupancy map의 높이(height)를 나타내며, 단위는 occupancy packing block size 이다.
패치 사이즈 U0(patch.sizeU0): occupancy map의 width를 나타내며, 단위는 occupancy packing block size 이다.
패치 사이즈 V0(patch.sizeV0): occupancy map의 height를 나타내며, 단위는 occupancy packing block size 이다.
예를 들어, 도7과 같이 어큐판사 패킹 사이즈 블록에 해당하는 박스 내 패치 사이즈를 갖는 패치에 대응하는 박스가 존재하고, 박스 내 포인트(x, y)가 위치할 수 있다.
도8은 실시예들에 따른 노멀(normal), 탄젠트(tangent), 바이탄젠트(bitangent) 축의 관계의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 인코더(10002)는 지오메트리 이미지를 생성할 수 있다. 지오메트리 이미지란, 포인트 클라우드의 지오메트리 정보를 포함하는 이미지 데이터를 의미한다. 지오메트리 이미지 생성 과정은 도8의 패치의 세 가지 축(노멀, 탄젠트, 바이탄젠트)을 이용할 수 있다.
지오메트리 이미지 생성(Geometry image generation, 40002)
본 과정에서는 개별 patch의 geometry image를 구성하는 depth 값들을 결정하고, 앞서 패치 패킹(patch packing) 과정에서 결정된 patch의 위치를 바탕으로 전체 geometry image를 생성한다. 개별 patch의 geometry image를 구성하는 depth 값들을 결정하는 과정은 다음과 같이 구성될 수 있다.
① 개별 patch의 위치, 크기 관련 파라미터들이 산출된다. 파라미터들은 다음과 같은 정보들을 포함할 수 있다.
normal 축을 나타내는 index: normal은 앞서 patch generation 과정에서 구해지며, tangent 축은 normal과 직각인 축들 중 patch image의 수평(u)축과 일치하는 축이며, bitangent 축은 normal과 직각인 축들 중 patch image의 수직(v)축과 일치하는 축으로, 세 가지 축은 도면과 같이 표현될 수 있다.
도9는 실시예들에 따른 프로젝션 모드의 최소 모드 및 최대 모드의 구성의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 인코더(10002)는 지오메트리 이미지를 생성하기 위해서 패치에 기반한 프로젝션을 수행할 수 있고, 실시예들에 따른 프로젝션의 모드는 최소 모드 및 최대 모드가 있다.
patch의 3D 공간 좌표: patch를 감싸는 최소 크기의 bounding box를 통해 산출될 수 있다. 예를 들어, patch의 tangent 방향 최소값 (patch 3d shift tangent axis), patch의 bitangent 방향 최소값 (patch 3d shift bitangent axis), patch의 normal 방향 최소값 (patch 3d shift normal axis) 등이 포함될 수 있다.
patch의 2D 크기: patch가 2D 이미지로 패킹될 때의 수평, 수직 방향 크기를 나타낸다. 수평 방향 크기 (patch 2d size u)는 bounding box의 tangent 방향 최대값과 최소값의 차이로, 수직 방향 크기 (patch 2d size v)는 bounding box의 bitangent 방향 최대값과 최소값의 차이로 구해질 수 있다.
② Patch의 projection mode를 결정한다. Projection mode는 최소 모드(min mode)와 최대 모드(max mode) 중 하나일 수 있다. Patch의 geometry 정보는 depth 값으로 표현되는데, patch의 normal 방향으로 patch를 이루는 각 점들을 projection 할 때 depth 값의 최대 값으로 구성되는 이미지와 최소값으로 구성되는 이미지 두 계층(layer)의 이미지들이 생성될 수 있다.
두 계층의 이미지 d0와 d1을 생성함에 있어, min mode일 경우 도면과 같이 최소 depth가 d0에 구성되고, 최소 depth로부터 surface thickness 이내에 존재하는 최대 depth가 d1으로 구성될 수 있다.
예를 들어, 포인트 클라우드가 도면과 같이 2D에 위치하는 경우, 복수의 포인트들을 포함하는 복수의 패치들이 있을 수 있다. 도면과 같이 같은 스타일의 음영으로 표시된 포인트들이 동일한 패치에 속할 수 있음을 나타낸다. 빈 칸으로 표시된 포인트들의 패치를 프로젝션하는 과정을 도면이 나타낸다.
빈 칸으로 표시된 포인트들을 좌측/우측으로 프로젝션하는 경우, 좌측을 기준으로 depth를 0, 1, 2,..6, 7, 8, 9 와 같이 1씩 증가하면서 우측으로 포인트들의 depth산출을 위한 숫자를 표기할 수 있다.
프로젝션 모드(Projection mode)는 사용자 정의에 의해 모든 point cloud에 동일한 방법이 적용되거나, frame 또는 patch 별로 다르게 적용될 수 있다. Frame 또는 patch 별로 다른 projection mode가 적용될 경우, 압축 효율을 높이거나 소실 점 (missed point)을 최소화 할 수 있는 projection mode가 적응적으로 선택될 수 있다.
③ 개별 점들의 depth 값을 산출한다.
최소 모드(Min mode)일 경우 각 점의 normal 축 최소값에 patch의 normal 방향 최소값 (patch 3d shift normal axis)에서 ①의 과정에서 산출된 patch의 normal 방향 최소값 (patch 3d shift normal axis)을 뺀 값인 depth0로 d0 이미지를 구성한다. 동일 위치에 depth0와 surface thickness 이내의 범위에 또 다른 depth 값이 존재할 경우, 이 값을 depth1으로 설정한다. 존재하지 않을 경우 depth0의 값을 depth1에도 할당한다. Depth1 값으로 d1 이미지를 구성한다.
예를 들어, d0의 포인트들의 depth를 결정함에 있어 최소값이 산출될 수 있다(4 2 4 4 0 6 0 0 9 9 0 8 0). 그리고, d1의 포인트들의 depth를 결정함에 있어 두 개 이상의 포인트들 중 큰 값이 산출되거나, 하나의 포인트만 있는 경우 그 값이 산출될 수 있다(4 4 4 4 6 6 6 8 9 9 8 8 9). 또한, 패치의 포인트들이 부호화되고, 재구성(reconstruct) 되는 과정에서 일부 포인트가 손실될 수 있다(예를 들어, 도면은 8개의 포인트가 손실되었다).
맥스 모드(Max mode)일 경우 각 점의 normal 축 최대값에 patch의 normal 방향 최소값 (patch 3d shift normal axis)에서 ①의 과정에서 산출된 patch의 normal 방향 최소값 (patch 3d shift normal axis)을 뺀 값인 depth0로 d0 이미지를 구성한다. 동일 위치에 depth0와 surface thickness 이내의 범위에 또 다른 depth 값이 존재할 경우, 이 값을 depth1으로 설정한다. 존재하지 않을 경우 depth0의 값을 depth1에도 할당한다. Depth1 값으로 d1 이미지를 구성한다.
예를 들어, d0의 포인트들의 depth를 결정함에 있어 최대값이 산출될 수 있다(4 4 4 4 6 6 6 8 9 9 8 8 9). 그리고, d1의 포인트들의 depth를 결정함에 있어 두 개 이상의 포인트들 중 작은 값이 산출되거나, 하나의 포인트만 있는 경우 그 값이 산출 될 수 있다(4 2 4 4 5 6 0 6 9 9 0 8 0). 또한, 패치의 포인트들이 부호화되고, 재구성(reconstruct) 되는 과정에서 일부 포인트가 손실될 수 있다(예를 들어, 도면은 6개의 포인트가 손실되었다).
위와 같은 과정을 통해 생성된 개별 patch의 geometry image를 앞서 patch packing 과정에서 결정된 patch의 위치 정보를 이용하여 전체 geometry image에 배치시킴으로써 전체 geometry image를 생성할 수 있다.
생성된 전체 geometry image의 d1 계층은 여러 가지 방법으로 부호화 될 수 있다. 첫 번째는 앞서 생성한 d1 이미지의 depth값들을 그대로 부호화 (absolute d1 method)하는 방법이다. 두 번째는 앞서 생성한 d1 이미지의 depth값과 d0 이미지의 depth값이 차이 값을 부호화 (differential method)하는 방법이다.
이와 같은 d0, d1 두 계층의 depth 값을 이용한 부호화 방법은 두 depth 사이에 또 다른 점들이 존재할 경우 해당 점의 geometry 정보를 부호화 과정에서 잃어버리기 때문에, 무손실 압축 (lossless coding)을 위해 Enhanced-Delta-Depth (EDD) code를 이용할 수도 있다.
도10을 참조하여, EDD code를 구체적으로 설명한다.
도10은 실시예들에 따른 EDD 코드의 예시를 나타낸다.
포인트 클라우드 인코더(10002) 및/또는 V-PCC 인코딩의 일부/전체 프로세스(예를 들어, 비디오 컴프레스(40009)) 등은 EOD코드에 기반하여 포인트들의 지오메트리 정보를 인코딩할 수 있다.
EDD code는 도면과 같이, d1을 포함하여 surface thickness 범위 내의 모든 점들의 위치를 이진으로 부호화 하는 방법이다. 일례로 도면의 좌측에서 두 번째 열에 포함되는 점들의 경우, D0 위쪽으로 첫 번째, 네 번째 위치에 점들이 존재하고, 두 번째와 세 번째 위치는 비어있기 때문에 0b1001 (=9)의 EDD code로 표현될 수 있다. D0와 함께 EDD code를 부호화하여 보내 주면 수신단에서는 모든 점들의 geometry 정보를 손실 없이 복원할 수 있게 된다.
예를 들어, 기준 포인트 위로 포인트가 존재하면 1이고 포인트가 존재하지 않으면 0이 되어 4개의 비트들에 기반하여 코드가 표현될 수 있다.
스무딩(Smoothing, 40004)
스무딩(Smoothing)은 압축 과정에서 발생하는 화질의 열화로 인해 patch 경계면에서 발생할 수 있는 불연속성을 제거하기 위한 작업이며, 포인트 클라우드 인코더 또는 스무더에 의해 수행될 수 있다.
① geometry image로부터 point cloud를 재생성(reconstruction)한다. 본 과정은 앞서 설명한 geometry image 생성의 역과정이라고 할 수 있다. 예를 들어, 인코딩의 역과정이 리컨스트럭션일 수 있다.
② K-D tree 등을 이용하여 재생성된 point cloud를 구성하는 각 점들의 인접점들을 산출한다.
③ 각 점들에 대하여, 해당 점이 patch 경계면에 위치하는지를 판단한다. 일례로 현재 점과 다른 projection 평면 (cluster index)을 갖는 인접점이 존재할 경우, 해당 점은 patch 경계면에 위치한다고 판단할 수 있다.
④ patch 경계면에 존재할 경우, 해당 점을 인접점들의 무게중심 (인접점들의 평균 x, y, z 좌표에 위치)으로 이동시킨다. 즉, geometry 값을 변경시킨다. 그렇지 않을 경위 이전 geometry 값을 유지한다.
도11은 실시예들에 따른 인접점들의 컬러(color) 값들을 이용한 리컬러링(recoloring)의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 인코더 또는 텍스쳐 이미지 제너레이터(40003)은 리컬러리링에 기반하여 텍스쳐 이미지를 생성할 수 있다.
텍스쳐 이미지 생성(Texture image generation, 40003)
Texture image 생성 과정은 앞서 설명한 geometry image 생성 과정과 유사하게, 개별 patch의 texture image 생성하고, 이들은 결정된 위치에 배치하여 전체 texture image를 생성하는 과정으로 구성된다. 다만 개별 patch의 texture image를 생성하는 과정에 있어서 geometry 생성을 위한 depth 값을 대신하여 해당 위치에 대응되는 point cloud를 구성하는 점의 color 값 (e.g. R, G, B)을 갖는 image가 생성된다.
Point cloud를 구성하는 각 점의 color 값을 구하는 과정에 있어서 앞서 smoothing 과정을 거친 geometry가 사용될 수 있다. Smoothing된 point cloud는 원본 point cloud에서 일부 점들의 위치가 이동된 상태일 수 있으므로, 변경된 위치에 적합한 color를 찾아내는 리컬러링(recoloring)과정이 필요할 수 있다. Recoloring은 인접점들의 color 값들을 이용하여 수행될 수 있다. 일례로, 도면과 같이 새로운 color값은 최인접점의 color값과 인접점들의 color값들을 고려하여 산출될 수 있다.
예를 들어, 도면을 참조하면, 리컬러링은 포인트에 대한 가장 가까운 오리지날 포인트들의 어트리뷰트 정보의 평균 및/또는 포인트에 대한 가장 가까운 오리지날 위치의 어트리뷰트 정보의 평균에 기반하여 변경된 위치의 적합한 컬러값을 산출할 수 있다.
Texture image 또한 d0/d1의 두 계층으로 생성되는 geometry image와 같이 t0/t1의 두 개의 계층 으로 생성될 수 있다.
오실러리 패치 인포 컴프레션(Auxiliary patch info compression, 40005)
실시예들에 따른 포인트 클라우드 인코더 또는 오실러리 패치 정보 컴프레서는 오실러리 패치 정보(포인트 클라우드에 관한 부가적인 정보)를 컴프레션할 수 있다.
오실러리 패치 정보 컴프레서는 앞서 설명한 patch generation, patch packing, geometry generation 과정 등에서 생성된 부가 patch 정보들을 압축(컴프레스)한다. 부가 patch 정보에는 다음과 같은 파라미터들이 포함될 수 있다:
프로젝션(projection) 평면 (normal)을 식별하는 인덱스 (클러스터 인덱스, cluster index)
패치의 3D 공간 위치: 패치의 탄젠트 방향 최소값 (patch 3d shift tangent axis), 패치의 바이탄젠트 방향 최소값 (patch 3d shift bitangent axis), 패치의 노멀 방향 최소값 (patch 3d shift normal axis)
패치의 2D 공간 위치, 크기: 수평 방향 크기 (patch 2d size u), 수직 방향 크기 (patch 2d size v), 수평 방향 최소값 (patch 2d shift u), 수직 방향 최소값 (patch 2d shift u)
각 블록과 패치의 맵핑 정보: candidate index (위의 patch의 2D 공간 위치, 크기 정보를 기반으로 patch를 순서대로 위치시켰을 때, 한 block에 중복으로 복수 patch가 맵핑될 수 있음. 이때 맵핑되는 patch들이 candidate list를 구성하며, 이 list 중 몇 번째 patch의 data가 해당 block에 존재하는지를 나타내는 index), local patch index (frame에 존재하는 전체 patch들 중 하나를 가리키는 index). Table X는 candidate list와 local patch index를 이용한 block과 patch match 과정을 나타내는 pseudo code이다.
candidate list의 최대 개수는 사용자에 의해 정의될 수 있다.
block과 patch 맵핑을 위한 pseudo code
for(i=0; i<BlockCount; i++) {
if(candidatePatches[i].size() == 1) {
blockToPatch[i] = candidatePatches[i][0]
} else {
candidate_index
if(candidate_index == max_candidate_count){
blockToPatch[i] = local_patch_index
} else {
blockToPatch[i] = candidatePatches[i][candidate_index]
}
}
}
도12는 실시예들에 따른 푸쉬-풀 백그라운드 필링(push-pull background filling)의 예시를 나타낸다.
이미지 패딩 및 그룹 딜레이션(Image padding and group dilation, 40006, 40007, 40008)
실시예들에 따른 이미지 패더는 푸쉬-풀 백그라운드 필링 방식에 기반하여 패치 영역 외의 공간을 의미 없는 부가적인 데이터로 채울 수 있다.
이미지 패딩(Image padding)은 압축 효율 향상을 목적으로 patch 영역 이외의 공간을 의미 없는 데이터로 채우는 과정이다. Image padding을 위해 patch 내부의 경계면 쪽에 해당하는 열 또는 행의 픽셀 값들이 복사되어 빈 공간을 채우는 방법이 사용될 수 있다. 또는 도면과 같이, padding 되지 않은 이미지를 단계적으로 해상도를 줄이고, 다시 해상도를 늘리는 과정에서 낮은 해상도의 이미지로부터 온 픽셀 값들로 빈 공간을 채우는 push-pull background filling 방법이 사용될 수도 있다.
그룹 딜레이션은 d0/d1, t0/t1 두 계층으로 이루어진 geometry, texture image의 빈 공간을 채우는 방법으로, 앞서 image padding을 통해 산출된 두 계층 빈 공간의 값들을, 두 계층의 동일 위치에 대한 값의 평균값으로 채우는 과정이다.
도13은 실시예들에 따른 4*4 크기의 블록(block)에 대해 가능한 트라버설 오더(traversal order)의 예시를 나타낸다.
오큐판시 맵 컴프레션(Occupancy map compression, 40012, 40011)
실시예들에 따른 오규판시 맵 컴프레서는 앞서 생성된 occupancy map을 압축할 수 있다. 구체적으로, 손실 (lossy) 압축을 위한 비디오 컴프레션과 무손실 (lossless) 압축을 위한 엔트로피 컴프레션, 두 가지 방법이 존재할 수 있다. 비디오 컴프레션은 이하에서 설명한다.
엔트로피 컴프레션(Entropy compression) 과정은 다음과 같은 과정으로 수행될 수 있다.
① occupancy map을 구성하는 각 block에 대하여, block이 모두 채워진 경우 1을 부호화 하고 다음 block에 대해 동일 과정을 반복한다. 그렇지 않은 경우 0을 부호화하고, ②~⑤의 과정을 수행한다.
② block의 채워진 pixel들에 대해 run-length coding을 수행하기 위한 best traversal order를 결정한다. 도면은 4*4 크기의 block에 대해 가능한 4가지 traversal order를 일례로 보여주고 있다.
도14는 실시예들에 따른 베스트 트라버설 오더의 예시를 나타낸다.
상술한 바와 같이 실시예들에 따른 엔트포리 컴프레서는 도면과 같이 트라버설 오더 방식에 기반하여 블록을 코딩(부호화)할 수 있다.
예를 들어, 가능한 traversal order들 중 최소의 run 개수를 갖는 베스트 트라버설 오더(best traversal order)를 선택하여 그 인덱스를 부호화 한다. 일례로 도면은 앞선 도13의 세 번째 traversal order를 선택할 경우이며, 이 경우 run의 개수가 2로 최소화될 수 있으므로 이를 베스트 트라버설 오더로 선택할 수 있다.
이때 run의 개수를 부호화 한다. 도14의 예에서는 2개의 run이 존재하므로 2가 부호화 된다.
④ 첫 번째 run의 occupancy를 부호화 한다. 도14의 예에서는 첫 번째 run이 채워지지 않은 픽셀들에 해당하므로 0이 부호화된다.
⑤ 개별 run에 대한 (run의 개수만큼의) length를 부호화 한다. 도14의 예에서는 첫 번째 run과 두 번째 run의 length인 6과 10이 순차적으로 부호화된다.
비디오 컴프레션(Video compression, 40009, 40010, 40011)
실시예들에 따른 비디오 컴프레서는 HEVC, VVC 등의 2D video codec 등을 이용하여, 앞서 설명한 과정으로 생성된 geometry image, texture image, occupancy map image 등의 시퀀스를 부호화한다.
도15는 실시예들에 따른 2D 비디오/이미지 인코더(2D video/image Encoder)의 예시를 나타낸다.
도면은 상술한 비디오 컴프레션(Video compression, 40009, 40010, 40011) 또는 비디오 컴프레서의 실시예로서, 비디오/영상 신호의 인코딩이 수행되는 2D 비디오/이미지 인코더(15000)의 개략적인 블록도를 나타낸다. 2D 비디오/이미지 인코더(15000)는 상술한 포인트 클라우드 비디오 인코더에 포함될 수 있고, 또는 내/외부 컴포넌트로 구성될 수도 있다. 도15의 각 구성요소는 소프트웨어, 하드웨어, 프로세서 및/또는그것들의 조합에 대응할 수 있다.
여기서 입력 영상은 상술한 geometry image, texture image (attribute(s) image), occupancy map image 등을 포함할 수 있다. 포인트 클라우드 비디오 인코더의 출력 bitstream (즉, point cloud video/image bitstream)은 각 입력 영상(geometry image, texture image (attribute(s) image), occupancy map image 등)에 대한 출력 비트스트림들을 포함할 수 있다.
인터 예측부(15090) 및 인트라 예측부(15100)를 합쳐서 예측부라고 불릴 수 있다. 즉, 예측부는 인터 예측부(15090) 및 인트라 예측부(15100)를 포함할 수 있다. 변환부(15030), 양자화부(15040), 역양자화부(15050), 역변환부(15060)는 레지듀얼(residual) 처리부에 포함될 수 있다. 레지듀얼 처리부는 감산부(15020)를 더 포함할 수도 있다. 상술한 영상 분할부(15010), 감산부(15020), 변환부(15030), 양자화부(15040), 역양자화부(),), 역변환부(15060), 가산부(155), 필터링부(15070), 인터 예측부(15090), 인트라 예측부(15100) 및 엔트로피 인코딩부(15110)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 인코더 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(15080)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다.
영상 분할부(15010)는 인코딩 장치(15000)에 입력된 입력 영상(또는, 픽쳐, 프레임)를 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)으로부터 QTBT (Quad-tree binary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조 및/또는 바이너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 발명에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다. 다른 예로, 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)을 더 포함할 수 있다. 이 경우 예측 유닛 및 변환 유닛은 각각 상술한 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 예측 유닛은 샘플 예측의 단위일 수 있고, 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다. 샘플은 하나의 픽처(또는 영상)을 픽셀(pixel) 또는 펠(pel)에 대응하는 용어로서 사용될 수 있다.
인코딩 장치(15000)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 인터 예측부(15090) 또는 인트라 예측부(15100)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있고, 생성된 레지듀얼 신호는 변환부(15030)로 전송된다. 이 경우 도시된 바와 같이 인코더(15000) 내에서 입력 영상 신호(원본 블록, 원본 샘플 어레이)에서 예측 신호(예측 블록, 예측 샘플 어레이)를 감산하는 유닛은 감산부(15020)라고 불릴 수 있다. 예측부는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 각 예측모드에 대한 설명에서 후술하는 바와 같이 예측 모드 정보 등 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(15110)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(15110)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(15100)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(15100)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(15090)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 참조 블록을 포함하는 참조 픽처와 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 다를 수도 있다. 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있으며, 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 예를 들어, 인터 예측부(15090)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(15090)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference)을 시그널링함으로써 현재 블록의 움직임 벡터를 지시할 수 있다.
인터 예측부(15090) 인트라 예측부(15100)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다.
변환부(15030)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)를 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)를 이용하여 예측 신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 또한, 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(15040)는 변환 계수들을 양자화하여 엔트로피 인코딩부(15110)로 전송되고, 엔트로피 인코딩부(15110)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(15040)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다. 엔트로피 인코딩부(15110)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(15110)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예컨대 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(15110)로부터 출력된 신호는 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 인코딩 장치(15000)의 내/외부 엘리먼트로서 구성될 수 있고, 또는 전송부는 엔트로피 인코딩부(15110)에 포함될 수도 있다.
양자화부(15040)로부터 출력된 양자화된 변환 계수들은 예측 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(15040) 및 역변환부(15060)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다. 가산부(155)는 복원된 레지듀얼 신호를 인터 예측부(15090) 또는 인트라 예측부(15100)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)가 생성될 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(15070)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(15070)은 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 메모리(15080), 구체적으로 메모리(15080)의 DPB에 저장할 수 있다. 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(15070)은 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(15110)로 전달할 수 있다. 필터링 관한 정보는 엔트로피 인코딩부(15110)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(15080)에 전송된 수정된 복원 픽처는 인터 예측부(15090)에서 참조 픽처로 사용될 수 있다. 인코딩 장치는 이를 통하여 인터 예측이 적용되는 경우, 인코딩 장치(15000)와 디코딩 장치에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(15080) DPB는 수정된 복원 픽처를 인터 예측부(15090)에서의 참조 픽처로 사용하기 위해 저장할 수 있다. 메모리(15080)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(15090)에 전달할 수 있다. 메모리(15080)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(15100)에 전달할 수 있다.
한편, 상술한 예측, 변환, 양자화 절차 중 적어도 하나가 생략될 수도 있다. 예를 들어, PCM(pulse coding mode)가 적용되는 블록에 대하여는 예측, 변환, 양자화 절차를 생략하고 원본 샘플의 값이 그대로 인코딩되어 비트스트림으로 출력될 수도 있다.
도16은 실시예들에 따른 V-PCC 디코딩 프로세스(decoding process)의 예시를 나타낸다.
V-PCC 디코딩 프로세스 또는 V-PCC 디코더는 도4의 V-PCC 인코딩 프로세스(또는 인코더)의 역과정을 따를 수 있다. 도16의 각 구성요소는 소프트웨어, 하드웨어, 프로세서, 및/또는 그것들의 조합에 대응할 수 있다.
디멀티플렉서(demultiplexer, 16000)는 컴프레스된 비트스트림을 디멀티플렉싱하여 컴프로스된 텍스쳐 이미지, 컴프레스된 지오메트리 이미지, 컴프레스된 오큐판시 맵, 컴프레스된 어실러리 패치 인포메이션을 출력한다.
비디오 디컴프레션(video decompression, 16001, 16002) 또는 비디오 디컴프레서는 컴프레스된 텍스쳐 이미지 및 컴프레스된 지오메트리 이미지 각각을 디컴프레션(또는 디코딩)한다.
오큐판시 맵 디컴프레션(occupancy map decompression, 16003) 또는 오큐판시 맵 디컴프레서는 컴프레스된 오큐판시 맵을 디컴프레션한다.
어실러리 패치 인포 디컴프레션(auxiliary patch infor decompression, 16004) 또는 어실러리 패치 정보 디컴프레서는 어실러리 패치 정보를 디컴프레션한다.
지오메트리 리컨스럭션(geometry reconstruction, 16005) 또는 지오메트리 리컨스트럭터는 디컴프레스된 지오메트리 이미지, 디컴프레스된 어큐판시 맵, 및/또는 디컴프레스된 어실러리 패치 정보에 기반하여 지오메트리 정보를 복원(재구성)한다. 예를 들어, 인코딩과정에서 변경된 지오메트리를 리컨스럭션할 수 있다.
스무딩(smoothing, 16006) 또는 스무더는 재구성된 지오메트리에 대해 스무딩을 적용할 수 있다. 예를 들어, 스무딩 필터링이 적용될 수 있다.
텍스쳐 리컨스럭션(texture reconstruction, 16007) 또는 텍스쳐 리컨스트럭터는 디컴프레스된 텍스쳐 이미지 및/또는 스무딩된 지오메트리로부터 텍스쳐를 재구성한다.
컬러 스무딩(color smoothing, 16008) 또는 컬러 스무더는 재구성된 텍스쳐로부터 컬러 값을 스무딩한다. 예들 들어, 스무딩 필처링이 적용될 수 있다.
그 결과, 재구성된 포인트 클라우드 데이터가 생성될 수 있다.
도면은 압축된 occupancy map, geometry image, texture image, auxiliary path information 복호화하여 point cloud를 재구성하기 위한 V-PCC의 decoding process를 도시하여 보여주고 있다. 같다. 실시예들에 따른 각 프로세스의 동작은 다음과 같다.
비디오 디컴프레션(Video decompression, 16001, 16002)
앞서 설명한 video compression의 역과정으로, HEVC, VVC 등의 2D 비디오 코덱 을 이용하여, 앞서 설명한 과정으로 생성된 geometry image, texture image, occupancy map image 등의 compressed bitstream을 복호화하는 과정이다.
도17은 실시예들에 따른 2D 비디오/이미지 디코더(2D Video/Image Decoder)의 예시를 나타낸다.
2D 비디오/이미지 디코더는 도15의 2D 비디오/이미지 인코더의 역과정을 따를 수 있다.
도17의 2D 비디오/이미지 디코더는 도16의 비디오 디컴프레션(Video decompression) 또는 비디오 디컴프레서의 실시예로서, 비디오/영상 신호의 디코딩이 수행되는 2D 비디오/이미지 디코더(17000)의 개략적인 블록도를 나타낸다. 2D 비디오/이미지 디코더(17000)는 도1의 포인트 클라우드 비디오 디코더에 포함될 수 있고, 또는 내/외부 컴포넌트로 구성될 수도 있다. 도17의 각 구성요소는 소프트웨어, 하드웨어, 프로세서 및/또는 그것들의 조합에 대응할 수 있다.
여기서 입력 비트스트림은 상술한 geometry image, texture image (attribute(s) image), occupancy map image 등에 대한 비트스트림을 포함할 수 있다. 복원 영상(또는 출력 영상, 디코딩된 영상)은 상술한 geometry image, texture image (attribute(s) image), occupancy map image에 대한 복원 영상을 나타낼 수 있다.
도면을 참조하면, 인터 예측부(17070) 및 인트라 예측부(17080)를 합쳐서 예측부라고 불릴 수 있다. 즉, 예측부는 인터 예측부(180) 및 인트라 예측부(185)를 포함할 수 있다. 역양자화부(17020), 역변환부(17030)를 합쳐서 레지듀얼 처리부라고 불릴 수 있다. 즉, 레지듀얼 처리부는 역양자화부(17020), 역변환부(17030)을 포함할 수 있다. 상술한 엔트로피 디코딩부(17010), 역양자화부(17020), 역변환부(17030), 가산부(17040), 필터링부(17050), 인터 예측부(17070) 및 인트라 예측부(17080)는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 또는 프로세서)에 의하여 구성될 수 있다. 또한 메모리(170)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구성될 수도 있다.
비디오/영상 정보를 포함하는 비트스트림이 입력되면, 디코딩 장치(17000)는 도 0.2-1의 인코딩 장치에서 비디오/영상 정보가 처리된 프로세스에 대응하여 영상을 복원할 수 있다. 예를 들어, 디코딩 장치(17000)는 인코딩 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있고, 코딩 유닛은 코딩 트리 유닛 또는 최대 코딩 유닛으로부터 쿼드 트리 구조 및/또는 바이너리 트리 구조를 따라서 분할될 수 있다. 그리고, 디코딩 장치(17000)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치를 통해 재생될 수 있다.
디코딩 장치(17000)는 인코딩 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있고, 수신된 신호는 엔트로피 디코딩부(17010)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(17010)는 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(ex. 비디오/영상 정보)를 도출할 수 있다. 예컨대, 엔트로피 디코딩부(17010)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(17010)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(17070) 및 인트라 예측부(265))로 제공되고, 엔트로피 디코딩부(17010)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 역양자화부(17020)로 입력될 수 있다. 또한, 엔트로피 디코딩부(17010)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(17050)으로 제공될 수 있다. 한편, 인코딩 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 디코딩 장치(17000)의 내/외부 엘리먼트로서 더 구성될 수 있고, 또는 수신부는 엔트로피 디코딩부(17010)의 구성요소일 수도 있다.
역양자화부(17020)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(17020)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 재정렬은 인코딩 장치에서 수행된 계수 스캔 순서를 기반하여 재정렬을 수행할 수 있다. 역양자화부(17020)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)를 획득할 수 있다.
역변환부(17030)에서는 변환 계수들를 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득하게 된다.
예측부는 현재 블록에 대한 예측을 수행하고, 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(17010)로부터 출력된 예측에 관한 정보를 기반으로 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드를 결정할 수 있다.
인트라 예측부(265)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 참조되는 샘플들은 예측 모드에 따라 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측에서 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 인트라 예측부(265)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(17070)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(17070)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예측에 관한 정보는 현재 블록에 대한 인터 예측의 모드를 지시하는 정보를 포함할 수 있다.
가산부(17040)는 획득된 레지듀얼 신호를 인터 예측부(17070) 또는 인트라 예측부(265)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다.
가산부(17040)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(17050)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(17050)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 수정된 복원 픽처를 메모리(17060), 구체적으로 메모리(17060)의 DPB에 전송할 수 있다. 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(17060)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(17070)에서 참조 픽쳐로 사용될 수 있다. 메모리(17060)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(17070)에 전달할 수 있다. 메모리(170)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(17080)에 전달할 수 있다.
본 명세서에서, 인코딩 장치(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 디코딩 장치(17000)의 필터링부(17050), 인터 예측부(17070) 및 인트라 예측부(17080)에도 동일 또는 대응되도록 적용될 수 있다.
한편, 상술한 예측, 변환, 양자화 절차 중 적어도 하나가 생략될 수도 있다. 예를 들어, PCM(pulse coding mode)가 적용되는 블록에 대하여는 예측, 변환, 양자화 절차를 생략하고 디코딩된 샘플의 값이 그대로 복원 영상의 샘플로 사용될 수도 있다.
오큐판시 맵 디컴프레션(Occupancy map decompression, 16003)
앞서 설명한 occupancy map compression의 역과정으로, 압축된 occupancy map bitstream을 복호화하여 occupancy map을 복원하기 위한 과정이다.
어실러리 패치 인포 디컴프레션(Auxiliary patch info decompression, 16004)
앞서 설명한 auxiliary patch info compression의 역과정을 수행하고, 압축된 auxiliary patch info bitstream 를 복호화하여 auxiliary patch info를 복원할 수 있다.
지오메트리 리컨스럭션(Geometry reconstruction, 16005)
앞서 설명한 geometry image generation의 역과정이다. 먼저, 복원된 occupancy map 과 auxiliary patch info에 포함되는 patch의 2D 위치/크기 정보 및 block과 patch의 맵핑 정보를 이용하여 geometry image에서 patch를 추출한다. 이후 추출된 patch의 geometry image와 auxiliary patch info에 포함되는 patch의 3D 위치 정보를 이용하여 point cloud를 3차원 공간상에 복원한다. 하나의 patch내에 존재하는 임의의 점 (u, v)에 해당하는 geometry 값을 g(u, v)라 하고, patch의 3차원 공간상 위치의 normal 축, tangent 축, bitangent 축 좌표값을 (d0, s0, r0)라 할 때, 점 (u, v)에 맵핑되는 3차원 공간상 위치의 normal 축, tangent 축, bitangent 축 좌표값인 d(u, v), s(u, v), r(u, v)는 다음과 같이 나타낼 수 있다.
d(u, v) = d0 + g(u, v)
s(u, v) = s0 + u
r(u, v) = r0 + v
스무딩(Smoothing, 16006)
앞서 설명한 encoding process에서의 smoothing과 동일하며, 압축 과정에서 발생하는 화질의 열화로 인해 patch 경계면에서 발생할 수 있는 불연속성을 제거하기 위한 과정이다.
텍스쳐 리컨스럭션(Texture reconstruction, 16007)
Smoothing된 point cloud를 구성하는 각 점들에 color값을 부여하여 color point cloud를 복원하는 과정이다. 2.4에서 설명한 geometry reconstruction 과정에서의 geometry image와 point cloud의 맵핑 정보를 이용하여 2D 공간에서 geometry image에서와 동일한 위치의 texture image 픽셀에 해당되는 color 값들을, 3D 공간에서 동일한 위치에 대응되는 point cloud의 점에 부여함으로써 수행될 수 있다.
컬러 스무딩(Color smoothing, 16008)
앞서 설명한 geometry smoothing의 과정과 유사하며, 압축 과정에서 발생하는 화질의 열화로 인해 patch 경계면에서 발생할 수 있는 color 값들의 불연속성을 제거하기 위한 작업이다. 다음과 같은 과정으로 수행될 수 있다.
① K-D tree 등을 이용하여 복원된 color point cloud를 구성하는 각 점들의 인접점들을 산출한다. 2.5절에서 설명한 geometry smoothing 과정에서 산출된 인접점 정보를 그대로 이용할 수도 있다.
② 각 점들에 대하여, 해당 점이 patch 경계면에 위치하는지를 판단한다. 2.5절에서 설명한 geometry smoothing 과정에서 산출된 경계면 정보를 그대로 이용할 수도 있다.
③ 경계면에 존재하는 점의 인접점들에 대하여, color 값의 분포를 조사하여 smoothing 여부를 판단한다. 일례로, 휘도값의 entropy가 경계 값 (threshold local entry) 이하일 경우 (유사한 휘도 값들이 많을 경우), edge가 아닌 부분으로 판단하여 smoothing을 수행할 수 있다. Smoothing의 방법으로 인접접들의 평균값으로 해당 점의 color값을 바꾸는 방법 등이 사용될 수 있다.
도18은 실시예들에 따른 송신 장치의 동작 흐름도의 예시를 나타낸다.
실시예들의 따른 송신 장치는 도1의 송신 장치, 도4의 인코딩 프로세스, 도15의 2D 비디오/이미지 인코더에 대응하거나 그것들의 동작을 일부/전부 수행할 수 있다. 송신 장치의 각 구성요소는 소프트웨어, 하드웨어, 프로세서 및/또는 그것들의 조합에 대응할 수 있다.
V-PCC를 이용한 포인트 클라우드 데이터의 압축 및 전송을 위한 송신단의 동작 과정은 도면과 같은 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 송신 장치 등으로 지칭될 수 있다.
패치 생성부(18000) 관련하여, 먼저, 포인트 클라우드(point cloud)의 2D 이미지 맵핑을 위한 패치 (patch)를 생성한다. 패치 생성의 결과물로 부가 패치 정보가 생성되며, 해당 정보는 지오메트리 이미지 (geometry image) 생성, 텍스처 이미지 (texture image) 생성, 스무딩 (smoothing)을 위한 지오메트리 복원과정에 사용될 수 있다.
패치 패킹부(18001) 관련하여, 생성된 패치들은 2D 이미지 안에 맵핑하는 패치 패킹 과정을 거치게 된다. 패치 패킹의 결과물로 오큐판시 맵 (occupancy map)을 생성할 수 있으며, 오큐판시 맵은 지오메트리 이미지 생성, 텍스처 이미지 생성, 스무딩을 위한 지오메트리 복원과정에 사용될 수 있다.
지오메트리 이미지 생성부(18002)는 부가 패치 정보와 오큐판시 맵을 이용하여 지오메트리 이미지를 생성하며, 생성된 지오메트리 이미지는 비디오 부호화를 통해 하나의 비트스트림 (bitstream)으로 부호화된다.
부호화 전처리(18003)는 이미지 패딩 절차를 포함할 수 있다. 생성된 지오메트리 이미지 또는 부호화된 지오메트리 비트스트림을 복호화하여 재생성된 지오메트리 이미지는 3차원 지오메트리 복원에 사용될 수 있고 이후 스무딩 과정을 거칠 수 있다.
텍스처 이미지 생성부(18004)는 (스무딩된) 3차원 지오메트리와 포인트 클라우드, 부가 패치 정보 및 오큐판시 맵을 이용하여 텍스처 이미지를 생성할 수 있다. 생성된 텍스처 이미지는 하나의 비디오 비트스트림으로 부호화될 수 있다.
메타데이터 부호화부(18005)는 부가 패치 정보를 하나의 메타데이터 비트스트림으로 부호화할 수 있다.
비디오 부호화부(18006)는 오큐판시 맵을 하나의 비디오 비트스트림으로 부호화할 수 있다.
다중화부(18007)는 생성된 지오메트리, 텍스처 이미지, 오큐판시 맵의 비디오 비트스트림과 부가 패치 정보 메타데이터 비트스트림은 하나의 비트스트림으로 다중화한다.
송신부(18008)는 비트스트림을 수신단에 전송될 수 있다. 또는 생성된 지오메트리, 텍스처 이미지, 오큐판시 맵의 비디오 비트스트림과 부가 패치 정보 메타데이터 비트스트림은 하나 이상의 트랙 데이터로 파일이 생성되거나 세그먼트로 인캡슐레이션 되어 송신부를 통해 수신단에 전송 될 수 있다.
도19는 실시예들에 따른 수신 장치의 동작 흐름도의 예시를 나타낸다.
실시예들에 따른 수신 장치는 도1의 수신 장치, 도16의 디코딩 프로세스, 도17의 2D 비디오/이미지 인코더에 대응하거나 그것들의 동작을 일부/전부 수행할 수 있다. 수신 장치의 각 구성요소는 소프트웨어, 하드웨어, 프로세서 및/또는 그것들의 조합에 대응할 수 있다.
V-PCC를 이용한 포인트 클라우드 데이터의 수신 및 복원을 위한 수신단의 동작 과정은 도면과 같은 수 있다. V-PCC 수신단의 동작은 도18의 V-PCC 송신단의 동작의 역과정을 따를 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 수신 장치 등으로 지칭될 수 있다.
수신된 포인트 클라우드의 비트스트림은 파일/세그먼트 디캡슐레이션 후 압축된 지오메트리 이미지, 텍스처 이미지, 오큐판시 맵의 비디오 비트스트림들과 부가 패치 정보 메테데이터 비트스트림으로 역다중화부(19000)에 의해 역다중화된다. 비디오 복호화부(19001)와 메타데이터 복호화부(19002)는 역다중화된 비디오 비트스트림들과 메타데이터 비트스트림을 복호화한다. 지오메트리 복원부(19003)에 의해 복호화된 지오메트리 이미지와 오큐판시 맵 및 부가 패치 정보를 이용하여 3차원 지오메트리가 복원되며 이후 스무더(19004)에 의한 스무딩 과정을 거친다. 스무딩된 3차원 지오메트리에 텍스처 이미지를 이용하여 컬러값을 부여함으로써 컬러 포인트 클라우드 영상/픽처가 텍스쳐 복원부(19005)에 의해 복원될 수 있다. 이후 객관적/주관적 비주얼 퀄리티 향상을 위하여 컬러 스무딩 (color smoothing)과정을 추가적으로 수행할 수 있으며, 이를 통하여 도출된 수정된(modified) 포인트 클라우드 영상/픽처는 렌더링 과정을 통하여(ex. by 포인트 클라우드 렌더러)를 통해 사용자에게 보여진다. 한편, 컬러 스무딩 과정은 경우에 따라 생략될 수 있다.
도20은 실시예들에 따른 포인트 클라우드 데이터 송수신 방법/장치와 연동 가능한 구조의 예시를 나타낸다.
실시예들에 따른 구조는 서버(2360), 로봇(2010), 자율 주행 차량(2020), XR 장치(2030), 스마트폰(2040), 가전(2050) 및/또는 HMD(2070) 중에서 적어도 하나 이상이 클라우드 네트워크(2010)와 연결된다. 여기서, 로봇(2010), 자율 주행 차량(2020), XR 장치(2030), 스마트폰(2040) 또는 가전(2050) 등을 장치라 칭할 수 있다. 또한, XR 장치(2030)는 실시예들에 따른 포인트 클라우드 데이터 (PCC) 장치에 대응되거나 PCC장치와 연동될 수 있다.
클라우드 네트워크(2000)는 클라우드 컴퓨팅 인프라의 일부를 구성하거나 클라우드 컴퓨팅 인프라 안에 존재하는 네트워크를 의미할 수 있다. 여기서, 클라우드 네트워크(2000)는 3G 네트워크, 4G 또는 LTE(Long Term Evolution) 네트워크 또는 5G 네트워크 등을 이용하여 구성될 수 있다.
서버(2360)는 로봇(2010), 자율 주행 차량(2020), XR 장치(2030), 스마트폰(2040), 가전(2050) 및/또는 HMD(2070) 중에서 적어도 하나 이상과 클라우드 네트워크(2000)을 통하여 연결되고, 연결된 장치들(2010 내지 2070)의 프로세싱을 적어도 일부를 도울 수 있다.
HMD (Head-Mount Display)(2070)는 실시예들에 따른 XR 디바이스 및/또는 PCC 디바이스가 구현될 수 있는 타입 중 하나를 나타낸다. 실시예들에 따른HMD 타입의 디바이스는, 커뮤니케이션 유닛, 컨트롤 유닛, 메모리 유닛, I/O 유닛, 센서 유닛, 그리고 파워 공급 유닛 등을 포함한다.
이하에서는, 상술한 기술이 적용되는 장치(2010 내지 2070)의 다양한 실시 예들을 설명한다. 여기서, 도20에 도시된 장치(2000 내지 2700)는 상술한 실시예들에 따른 포인트 클라우드 데이터 송수신 장치와 연동/결합될 수 있다.
<PCC+XR> XR/PCC 장치(2030)는 PCC 및/또는 XR(AR+VR) 기술이 적용되어, HMD(Head-Mount Display), 차량에 구비된 HUD(Head-Up Display), 텔레비전, 휴대폰, 스마트 폰, 컴퓨터, 웨어러블 디바이스, 가전 기기, 디지털 사이니지, 차량, 고정형 로봇이나 이동형 로봇 등으로 구현될 수도 있다.
XR/PCC 장치(2030)는 다양한 센서들을 통해 또는 외부 장치로부터 획득한 3차원 포인트 클라우드 데이터 또는 이미지 데이터를 분석하여 3차원 포인트들에 대한 위치 데이터 및 속성 데이터를 생성함으로써 주변 공간 또는 현실 객체에 대한 정보를 획득하고, 출력할 XR 객체를 렌더링하여 출력할 수 있다. 예컨대, XR/PCC 장치(2030)는 인식된 물체에 대한 추가 정보를 포함하는 XR 객체를 해당 인식된 물체에 대응시켜 출력할 수 있다.
<PCC+자율주행+XR> 자율 주행 차량(2020)은 PCC 기술 및 XR 기술이 적용되어, 이동형 로봇, 차량, 무인 비행체 등으로 구현될 수 있다.
XR/PCC 기술이 적용된 자율 주행 차량(2020)은 XR 영상을 제공하는 수단을 구비한 자율 주행 차량이나, XR 영상 내에서의 제어/상호작용의 대상이 되는 자율 주행 차량 등을 의미할 수 있다. 특히, XR 영상 내에서의 제어/상호작용의 대상이 되는 자율 주행 차량(2020)은 XR 장치(2030)와 구분되며 서로 연동될 수 있다.
XR/PCC영상을 제공하는 수단을 구비한 자율 주행 차량(2020)은 카메라를 포함하는 센서들로부터 센서 정보를 획득하고, 획득한 센서 정보에 기초하여 생성된 XR/PCC 영상을 출력할 수 있다. 예컨대, 자율 주행 차량은 HUD를 구비하여 XR/PCC 영상을 출력함으로써, 탑승자에게 현실 객체 또는 화면 속의 객체에 대응되는 XR/PCC 객체를 제공할 수 있다.
이때, XR/PCC 객체가 HUD에 출력되는 경우에는 XR/PCC 객체의 적어도 일부가 탑승자의 시선이 향하는 실제 객체에 오버랩되도록 출력될 수 있다. 반면, XR/PCC 객체가 자율 주행 차량의 내부에 구비되는 디스플레이에 출력되는 경우에는 XR/PCC 객체의 적어도 일부가 화면 속의 객체에 오버랩되도록 출력될 수 있다. 예컨대, 자율 주행 차량은 차로, 타 차량, 신호등, 교통 표지판, 이륜차, 보행자, 건물 등과 같은 객체와 대응되는 XR/PCC 객체들을 출력할 수 있다.
실시예들에 의한 VR (Virtual Reality) 기술, AR (Augmented Reality) 기술, MR (Mixed Reality) 기술 및/또는 PCC(Point Cloud Compression)기술은, 다양한 디바이스에 적용 가능하다.
즉, VR 기술은, 현실 세계의 객체나 배경 등을 CG 영상으로만 제공하는 디스플레이 기술이다. 반면, AR 기술은, 실제 사물 영상 위에 가상으로 만들어진 CG 영상을 함께 보여 주는 기술을 의미한다. 나아가, MR 기술은, 현실세계에 가상 객체들을 섞고 결합시켜서 보여준다는 점에서 전술한 AR 기술과 유사하다. 그러나, AR 기술에서는 현실 객체와 CG 영상으로 만들어진 가상 객체의 구별이 뚜렷하고, 현실 객체를 보완하는 형태로 가상 객체를 사용하는 반면, MR 기술에서는 가상 객체가 현실 객체와 동등한 성격으로 간주된다는 점에서 AR 기술과는 구별이 된다. 보다 구체적으로 예를 들면, 전술한 MR 기술이 적용된 것이 홀로그램 서비스 이다.
다만, 최근에는 VR, AR, MR 기술을 명확히 구별하기 보다는 XR (extended Reality) 기술로 부르기도 한다. 따라서, 본 발명의 실시예들은 VR, AR, MR, XR 기술 모두에 적용 가능하다. 이런 한 기술은 PCC, V-PCC, G-PCC 기술 기반 인코딩/디코딩이 적용될 수 있다.
실시예들에 따른 PCC방법/장치는 자율 주행 서비스를 제공하는 차량에 적용될 수 있다.
자율 주행 서비스를 제공하는 차량은 PCC 디바이스와 유/무선 통신이 가능하도록 연결된다.
실시예들에 따른 포인트 클라우드 데이터 (PCC) 송수신 장치는 차량과 유/무선 통신이 가능하도록 연결된 경우, 자율 주행 서비스와 함께 제공할 수 있는 AR/VR/PCC 서비스 관련 콘텐트 데이터를 수신/처리하여 차량에 전송할 수 있다. 또한 포인트 클라우드 데이터 송수신 장치 차량에 탑재된 경우, 포인트 클라우드 송수신 장치는 사용자 인터페이스 장치를 통해 입력된 사용자 입력 신호에 따라 AR/VR/PCC 서비스 관련 콘텐트 데이터를 수신/처리하여 사용자에게 제공할 수 있다. 실시예들에 따른 차량 또는 사용자 인터페이스 장치는 사용자 입력 신호를 수신할 수 있다. 실시예들에 따른 사용자 입력 신호는 자율 주행 서비스를 지시하는 신호를 포함할 수 있다.
이하에서는 실시예들에 따른 포인트 클라우드 데이터 송신 장치의 인코더 및/또는 디코더의 구성을 나타낸다. 이하 명세서에서 설명하는 V-PCC(Video-based Point Cloud Compression)은 경우에 따라 비쥬얼 볼륨메트릭 비디오 기반 코딩(Visual Volumetric Video-based Coding (V3C))로 대체하여 나타낼 수도 있다. 예를 들어, V-PCC 트랙(V-PCC track), V-PCC 유닛(V-PCC Unit)은 V3C 트랙(V3C track) 및 V3C 유닛(V3C Unit)으로 대체하여 용어가 정의될 수 있다.
도 21은 실시예들에 따른 포인트 클라우드 데이터 송신 장치의 인코더를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 획득된 포인트 클라우드 데이터를 인코딩하는 인코더(encoder)를 포함한다. 도 21에 나타난 실시예들에 따른 인코더는 도 1의 포인트 클라우드 비디오 인코더(10002), 도 15의 인코딩 장치(100), 도 18의 송신 단 내에 포함된 포인트 클라우드 데이터 입력부 내지 다중화부(18007) 전부 또는 일부를 의미할 수 있다. 도 21에 나타난 실시예들에 따른 인코더는 도 4에 나타난 인코딩 프로세스 내에 포함된 구성 전부 또는 일부를 포함할 수 있다. 도 21에 나타난 실시예들에 따른 인코더는 도 20 내에 포함된 장치(예를 들어, XR 디바이스, 1730 등)내에 포함될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치의 인코더는, 3D 패치 제너레이션부(3D Patch generation, 21000), 어트리뷰트 이미지 생성부(attribute image generation, 21001), 패치 패킹부(Patch packing, 21002), 지오메트리 이미지 생성부(geometry image generation, 21003), 패치 시퀀스 압축부(Patch sequence compression, 21004), 스무딩부(Smoothing, 21005), 이미지 패딩부(21006a, 21006b), 비디오 압축부(21007a 내지 21007c) 및/또는 다중화부(Multiplexer, 21008)를 포함한다.
3D 패치 제너레이션부(3D Patch generation, 21000)는 실시예들에 따른 입력된 포인트 클라우드 데이터를 포함하는 입력 포인트 클라우드 프레임(input point cloud frame)을 수신하여, 패치(patch)를 생성한다. 입력 포인트 클라우드 프레임(input point cloud frame)은 포인트 클라우드 데이터를 포함하는 비트스트림의 형태일 수 있다. 3D 패치 제너레이션부(21000)는 패치 생성에 관한 정보를 포함하는 패치 인포(patch info)를 생성한다.
3D 패치 제너레이션부(21000)는 예를 들어, 도 3, 도 6에 나타난 동작을 수행할 수 있다. 3D 패치 제너레이션부(21000)는 예를 들어, 도 4의 패치 제너레이션부(40000), 도 18의 패치 생성부(18000)를 의미할 수 있다.
어트리뷰트 이미지 생성부(attribute image generation, 21001)는 포인트 클라우드 데이터(예를 들어, 입력된 포인트 클라우드 프레임), 패치, 및/또는 패킹된 패치에 기반하여 어트리뷰트 이미지(attribute image)를 생성한다.
어트리뷰트 이미지 생성부(21001)는 예를 들어, 도 4의 텍스쳐 이미지 생성부(40003), 도 18의 텍스쳐 이미지 생성부(18004)를 의미할 수 있다.
패치 패킹부(patch packing, 21002)는 실시예들에 따른 3D 패치 제너레이션부(21000)에서 생성된 패치(patch)들을 패킹(packing)한다. 실시예들에 따른 패치 패킹부는 패치 생성에 관한 정보인 패치 인포를 수신하고, 이에 기초하여 패치들을 패킹할 수도 있다. 패치 패킹부(21002)는 패치 패킹에 관한 정보를 포함하는 어큐판시 맵(occupancy map)을 생성할 수 있다.
패치 패킹부(21002)는 예를 들어, 도 3, 도 6, 도 7의 동작을 수행할 수 있다. 패치 패킹부(21002)는 예를 들어, 도 4의 패치 패킹부(40001), 도 18의 패치 패킹부(18001)를 의미할 수 있다.
실시예들에 따른 인코딩은, 입력된 3차원 포인트 클라우드 데이터를 압축하기 위해, 입력된 데이터로부터 3개의 비디오 스트림 즉, 오큐판시 맵 비디오 (Occupancy map video, OV), 지오메트리 비디오 (Geometry video, GV), 어트리뷰트 비디오 (Attribute video, AV) 스트림을 생성한다. 그리고 이들은 실시예들에 따른 인코더에서 2D 비디오 코덱을 이용하여 압축된다.
지오메트리 이미지 생성부(geometry image generation, 21003)는 포인트 클라우드 데이터(예를 들어, 입력된 포인트 클라우드 프레임), 패치, 및/또는 패킹된 패치에 기반하여 어트리뷰트 이미지(attribute image)를 생성한다.
지오메트리 이미지 생성부(21001)는 예를 들어, 도 4의 지오메트리 이미지 생성부(40002), 도 18의 지오메트리 이미지 생성부(18002)를 의미할 수 있다.
패치 시퀀스 압축부(Patch sequence compression, 21004)는 실시예들에 따른 패치 인포(patch info)에 기초하여, 패치들의 시퀀스(sequence)에 대한 정보를 압축한다. 패치 시퀀스 압축부(21004)는 패치 인포(patch info) 및/또는 패치들을 수신하여 이들을 압축한 후, 패치 서브-스트림(patch sub-stream)을 출력한다.
패치 시퀀스 압축부(21004)는 예를 들어, 도 4의 오실러리 패치 인포 압축부(auxiliary patch info compression, 40005)를 의미한다. 패치 시퀀스 압축부는 예를 들어, 도 18의 부가 패치 정보를 압축하는 동작을 수행한다.
스무딩부(Smoothing, 21005)는 이미지 데이터에 포함된 에러를 완화 또는 제거할 수 있다. 예를 들어, 실시예들에 다른 스무딩부는 지오메트리 이미지를 비디오 압축하는 비디오 압축부(21007b)로부터 생성된 재구성된 지오메트리 이미지(reconstructed geometry image), 패치 인포(patch info), 및/또는 패치(patch)에 기반하여 데이터 간 에러를 유발할 수 있는 부분을 부드럽게 필터링하여 스무딩된 지오메트리를 생성할 수 있다. 스무딩부(21005)는 스무딩 동작과 관련된 파라미터들(smoothing parameters)를 생성할 수 있다.
스무딩부(21005)는 예를 들어, 도 4의 스무딩부(40004), 도 18의 스무더(smoother)를 의미할 수 있다.
어트리뷰트 이미지 패딩부(attribute image padding, 21006a)는 실시예들에 따른 어트리뷰트 이미지(예를 들어, 어트리뷰트 이미지 생성부(21001)에서 생성된 이미지)를 패딩(padding)한다. 어트리뷰트 이미지 패딩부(21006a)는 어큐판시 맵(occupancy map)을 압축하는 비디오 압축부(21007c)에서 생성된 재구성된 어큐판시 맵(reconstructed occupancy map)에 기초하여, 어트리뷰트 이미지를 패딩(padding)할 수 있다. 어트리뷰트 이미지 패딩부(21006a)는 패딩된 어트리뷰트(padded attribute)를 출력한다.
어트리뷰트 이미지 패딩부 (21006a)는 예를 들어, 도 4의 이미지 패딩부(image padding, 40007), 도 18의 부호화 전처리부(18003)를 의미할 수 있다.
지오메트리 이미지 패딩부(geometry image padding, 21006b)는 실시예들에 따른 지오메트리 이미지(예를 들어, 지오메트리 이미지 생성부(21003)에서 생성된 이미지)를 패딩(padding)한다. 지오메트리 이미지 패딩부(21006b)는 어큐판시 맵(occupancy map)을 압축하는 비디오 압축부(21007c)에서 생성된 재구성된 어큐판시 맵(reconstructed occupancy map)에 기초하여, 어트리뷰트 이미지를 패딩(padding)할 수 있다. 지오메트리 이미지 패딩부(21006b)는 패딩된 지오메트리(padded geometry)를 출력한다.
지오메트리 이미지 패딩부 (21006b)는 예를 들어, 도 4의 이미지 패딩부(image padding, 40006), 도 18의 부호화 전처리부(18003)를 의미할 수 있다.
어트리뷰트 비디오 압축부(geometry video compression, 21007a)는 실시예들에 따른 어트리뷰트 이미지(attribute image) 또는 패딩된 어트리뷰트(padded attribute)를 수신하여 이들을 압축한다. 어트리뷰트 비디오 압축부(21007a)는 어트리뷰트 서브-비트스트림(attribute sub-bitstream)을 출력한다.
어트리뷰트 비디오 압축부(21007a)는 예를 들어, 도 4의 비디오 압축부(Compressed occupancy map, 40010), 도 18의 비디오 부호화부(18006)를 의미할 수 있다.
지오메트리 비디오 압축부(attribute video compression, 21007b)는 실시예들에 따른 지오메트리 이미지(geometry image) 또는 패딩된 지오메트리(padded geometry)를 수신하여 이들을 압축한다. 지오메트리 비디오 압축부(21007b)는 지오메트리 서브-비트스트림(geometry sub-bitstream)을 출력한다. 지오메트리 비디오 압축부(21007b)는 패딩된 지오메트리(padded geometry) 및/또는 지오메트리 이미지(geometry image)를 압축하고, 재구성된 지오메트리 이미지(reconstructed geometry image)를 생성할 수 있다.
지오메트리 비디오 압축부(21007b)는 예를 들어, 도 4의 비디오 압축부(Compressed occupancy map, 40009), 도 18의 비디오 부호화부(18006)를 의미할 수 있다.
어큐판시 맵 비디오 압축부(occupancy map video compression, 21007c) 는 실시예들에 따른 지오메트리 이미지(geometry image) 또는 패딩된 지오메트리(padded geometry)를 수신하여 이들을 압축한다. 지오메트리 비디오 압축부(21007b)는 지오메트리 서브-비트스트림(geometry sub-bitstream)을 출력한다. 지오메트리 비디오 압축부(21007b)는 패딩된 지오메트리(padded geometry) 및/또는 지오메트리 이미지(geometry image)를 압축하고, 재구성된 지오메트리 이미지(reconstructed geometry image)를 생성할 수 있다.
어큐판시 맵 비디오 압축부(21007c)는 예를 들어, 도 4의 비디오 압축부(Compressed occupancy map, 40011), 도 18의 비디오 부호화부(18006)를 의미할 수 있다.
다중화부(Multiplexer, 21008)는, 실시예들에 따른 패치 시퀀스 압축부(Patch sequence compression, 21004)로부터 생성된 패치 서브-스트림(patch sub stream), 실시예들에 따른 비디오 압축부(21007a)로부터 생성된 어트리뷰트 서브 스트림(attribute sub stream), 실시예들에 따른 비디오 압축부(21007b)로부터 생성된 지오메트리 서브 스트림(geometry sub stream), 비디오 압축부(21007c)로부터 생성된 어큐판시 서브 스트림(occupancy sub stream) 및/또는 스무딩부(smoothing, 21005)로부터 생성된 스무딩 파라미터(smoothing parameter)들을 멀티플랙싱(multiplexing)하여, 이들이 포함된 압축된 비트스트림(compressed bitstream)을 출력한다.
다중화부(21008)는 예를 들어, 도 4의 멀티플랙서(Multiplexer, 40013), 도 18의 다중화부(18007)를 의미할 수 있다.
도 22는 실시예들에 따른 포인트 클라우드 데이터 수신 장치의 디코딩 과정을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 압축된 비트스트림(compressed bitstream)을 수신하고 이를 디코딩하는 디코더(decoder)를 포함한다. 압축된 비트스트림(compressed bitstream)은 실시예들에 따른 포인트 클라우드 데이터 및/또는 이와 관련된 메타데이터를 포함한다. 를 들어, 압축된 비트스트림은 도 21에 나타난 패치 서브 스트림(patch sub stream), 어큐판시 서브 스트림(occupancy sub stream), 지오메트리 서브 스트림(geometry sub stream), 어트리뷰트 서브 스트림(attribute sub stream) 및/또는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 포함한다.
도 22에 나타난 실시예들에 따른 디코더는 도 1의 포인트 클라우드 비디오 디코더(10008), 도 16의 디코딩 프로세스를 수행하는 장치/프로세서, 도 17의 디코딩 장치(200), 도 19의 수신 단 내에 포함된 역다중화부(19000) 내지 포인트 클라우드 렌더러 전부 또는 일부를 의미할 수 있다. 도 21에 나타난 실시예들에 따른 인코더는 도 20 내에 포함된 장치(예를 들어, XR 디바이스, 1730 등)내에 포함될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치의 디코더는, 역다중화부(demultiplexer, 22000), SPS 파싱부(SPS parsing, 22001), 패치 시퀀스 해제부(patch sequence decompression, 22002), 하나 또는 그 이상의 비디오 해제부(video decompression, 22003-22005)들, 지오메트리/어트리뷰트 재구성부(geometry/attribute reconstruction, 22006), 지오메트리 포스트-프로세싱부(Geometry post-processing, 또는 스무딩부(smoothing), 22007), 및/또는 어트리뷰트 이전 및 스무딩부(attribute transfer & smoothing, 22008)을 포함한다.
역다중화부(demultiplexer, 22000)는 실시예들에 따른 압축된 비트스트림(compressed bitstream)을 수신하여, 이들 내에 포함된 시퀀스 파라미터 세트(SPS), 패치 서브 스트림(patch sub stream), 어큐판시 서브 스트림(occupancy sub stream), 지오메트리 서브 스트림(geometry sub stream), 및/또는 어트리뷰트 서브 스트림(attribute sub stream)을 분류하여 출력한다.
역다중화부(22000)는 예를 들어, 도 16의 디-멀티플랙서(de-multiplexer, 16000), 도 19의 역다중화부(19000)를 의미할 수 있다.
SPS 파싱부(SPS parsing, 22001)는 실시예들에 따른 시퀀스 파라미터 세트(SPS)를 수신하여 이를 파싱한다. SPS 파싱부(22001)는 SPS를 파싱 및 출력하여, 이를 다른 구성으로 전달할 수 있다.
SPS 파싱부(22001)는 예를 들어, 도 19의 메타데이터 복호화부(19002)를 의미할 수 있다.
패치 시퀀스 해제부(patch sequence decompression, 22002)는, 실시예들에 따른 패치 서브 스트림(patch sub stream)을 수신하여, 이를 해제(decompress)하고 패치 정보(patch information, 예를 들어 도 21의 패치 인포(patch info))를 출력한다. 패치 시퀀스 해제부(22002)는 실시예들에 따른 SPS에 기반하여 SPS에서 시그널링하는 시퀀스에 대응하는 패치 정보(patch information)을 출력할 수 있다.
패치 시퀀스 해제부(22002)는 예를 들어, 도 16의 오실러리 패치 인포 디컴프레션부(auxiliary patch info decompression, 16004), 도 19의 비디오 복호화부(19001)를 의미할 수 있다.
어큐판시 서브 스트림에 대한 비디오 해제부(video decompression, 22003)는 실시예들에 따른 어큐판시 서브 스트림(occupancy sub stream)을 수신하여, 이를 해제(decompress)하고 어큐판시 맵(occupancy map)를 출력한다. 어큐판시 서브 스트림에 대한 비디오 해제부(22003)는 실시예들에 따른 SPS에 기반하여 SPS에서 시그널링하는 시퀀스에 대응하는 어큐판시 맵을 출력할 수 있다.
어큐판시 서브 스트림에 대한 비디오 해제부(22003)는 예를 들어, 도 16의 어큐판시 맵 디컴프레션(occupancy map decompression, 16003), 도 19의 비디오 복호화부(19001)를 의미할 수 있다.
지오메트리 서브 스트림에 대한 비디오 해제부(video decompression, 22004)는 실시예들에 따른 지오메트리 서브 스트림(geometry sub stream)을 수신하여, 이를 해제(decompress)하고 지오메트리 이미지(geometry image)들을 출력한다. 지오메트리 서브 스트림에 대한 비디오 해제부(22004)는 실시예들에 따른 SPS에 기반하여 SPS에서 시그널링하는 시퀀스에 대응하는 지오메트리 이미지들을 출력할 수 있다.
지오메트리 서브 스트림에 대한 비디오 해제부(22004)는 예를 들어, 도 16의 비디오 디컴프레션(video decompression, 16002), 도 19의 비디오 복호화부(19001)를 의미할 수 있다.
어트리뷰트 서브 스트림에 대한 비디오 해제부(video decompression, 22005)는 실시예들에 따른 어트리뷰트 서브 스트림(attribute sub stream)을 수신하여, 이를 해제(decompress)하고 어트리뷰트 이미지(attribute image)들을 출력한다. 어트리뷰트 서브 스트림에 대한 비디오 해제부(22005)는 실시예들에 따른 SPS에 기반하여 SPS에서 시그널링하는 시퀀스에 대응하는 어트리뷰트 이미지들을 출력할 수 있다.
어트리뷰트 서브 스트림에 대한 비디오 해제부(22005)는 예를 들어, 도 16의 비디오 디컴프레션(video decompression, 16001), 도 19의 비디오 복호화부(19001)를 의미할 수 있다.
지오메트리/어트리뷰트 재구성부(geometry/attribute reconstruction, 22006)는 실시예들에 따른 패치 정보(patch information), 어큐판시 맵(occupancy map), 지오메트리 이미지들(geometry images), 및/또는 어트리뷰트 이미지들(attribute images)를 수신하고, 이들을 이용하여 실시예들에 따른 지오메트리 데이터 및 어트리뷰트 데이터를 재구성(reconstruct)한다. 지오메트리/어트리뷰트 재구성부(22006)는 실시예들에 따른 SPS에 기반하여 SPS에서 시그널링하는 시퀀스에 대응하는 지오메트리 및/또는 어트리뷰트 데이터를 재구성할 수 있다.
지오메트리/어트리뷰트 재구성부(22006)는 예를 들어, 도 16의 지오메트리 재구성부(geometry reconstruction), 스무딩부(smoothing), 및/또는 도 19의 지오메트리 복원부(19003), 스무더(19004)를 의미할 수 있다.
지오메트리 포스트-프로세싱부(Geometry post-processing, 또는 스무딩부(smoothing), 22007)는 지오메트리/어트리뷰트 재구성부(22006)으로부터 재구성된 지오메트리 데이터 및/또는 어트리뷰트 데이터를 수신하고, 이들을 이용하여 실시예들에 따른 지오메트리 데이터가 깔끔하게 보이도록 후처리(post-processing) 또는 스무딩(smoothing)한다. 지오메트리 포스트-프로세싱부 (22007)는 실시예들에 따른 SPS에 기반하여 SPS에서 시그널링하는 시퀀스에 대응하는 지오메트리 데이터를 후처리 또는 스무딩할 수 있다.
지오메트리 포스트-프로세싱부(22007)는 예를 들어, 도 16 및/또는 도 19의 텍스처 복원부(19005), 컬러 스무더(color smoother) 일부 또는 전부를 의미할 수 있다.
지오메트리 포스트-프로세싱부(22008)는 예를 들어, 도 16 및/또는 도 19의 텍스처 복원부(19005), 컬러 스무더(color smoother) 일부 또는 전부를 의미할 수 있다.
도 23은 실시예들에 따른 포인트 클라우드 데이터 송신 장치의 구성도이다.
도 23에 나타난 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 도 1의 송신 장치(10000 내지 10004), 도 15의 인코딩 장치(100)를 포함하는 장치, 도 18의 송신 단을 의미할 수 있다. 도 23에 나타난 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 도 4, 21에 나타난 인코딩 프로세스 내에 포함된 구성 전부 또는 일부를 포함할 수 있다. 도 23에 나타난 실시예들에 따른 인코더는 도 20 내에 포함된 장치(예를 들어, XR 디바이스, 1730 등)내에 포함될 수 있다.
도 23에 나타난 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 포인트 클라우드 데이터 입력부(23000), 패치 생성부(23001), 패치 패킹부(23002), 지오메트리 이미지 생성부(23003), 어트리뷰트 이미지 생성부(23004), 부호화 전처리부(23005), 비디오 결합부(23006), 비디오 부호화부 (23007), 지오메트리 복원부(23008), 스무더(23009), 메터데이터 부호화부(23010), 다중화부(23011) 및/또는 송신부(23012)를 포함한다.
포인트 클라우드 데이터 입력부(23000)는, 하나 또는 그 이상의 카메라 등에 의해 캡처(capture)된 포인트 클라우드 데이터를 의미할 수 있다. 포인트 클라우드 데이터는 예를 들어 도 21의 입력 포인트 클라우드 프레임(input point cloud frame)을 의미한다.
패치 생성부(23001)는, 실시예들에 따른 포인트 클라우드 데이터로부터 패치(patch)들을 생성한다. 패치 생성부(23001)는 도 21의 3D 패치 생성부(3D patch generation, 21000)를 의미한다. 패치 생성부(23001)는 포인트 클라우드 데이터(또는 시퀀스)에 대한 패치들 및 부가 패치 정보(auxiliary patch information, 예를 들어 도 21의 패치 인포(patch info))를 생성한다.
패치 패킹부(23002)는 실시예들에 따른 생성된 패치(patch)들을 패킹(packing)한다. 패치 패킹부는 패치들의 점유를 나타내는 어큐판시 맵(occupancy map)을 생성한다. 패치 패킹부(23002)는 도 21의 패치 패킹부(21002)를 의미한다.
지오메트리 이미지 생성부(23003)는 실시예들에 따른 포인트 클라우드 데이터를 이용하여 지오메트리 데이터를 나타내는 지오메트리 이미지(geometry image)를 생성한다. 지오메트리 이미지 생성부(23003)는 패치 생성부로부터 생성된 패치(patch)들, 및/또는 패치 패킹부에 의해 패킹된 패킹된 패치(paced patch)에 기반하여 지오메트리 이미지를 생성할 수 있다. 지오메트리 이미지 생성부(23003)는 도 21의 지오메트리 이미지 생성부 (21003)를 의미한다.
어트리뷰트 이미지 생성부(23004), 실시예들에 따른 포인트 클라우드 데이터를 이용하여 어트리뷰트 데이터를 나타내는 어트리뷰트 이미지(attribute image)를 생성한다. 어트리뷰트 이미지 생성부(23004)는 패치 생성부로부터 생성된 패치(patch)들, 및/또는 패치 패킹부에 의해 패킹된 패킹된 패치(paced patch)에 기반하여 어트리뷰트 이미지를 생성할 수 있다. 어트리뷰트 이미지 생성부(23004)는 도 21의 어트리뷰트 이미지 생성부 (21004)를 의미한다.
부호화 전처리부(23005)는 실시예들에 따른 지오메트리 이미지, 어트리뷰트 이미지를 부호화(encoding)하기 위해 전처리(pre-processing)를 수행한다. 예를 들어, 부호화 전처리부(23005)는 지오메트리 이미지 및/또는 어트리뷰트 이미지를 패딩(padding)할 수 있다. 부호화 전처리부(23005)는 예를 들어 도 21의 이미지 패딩부(21006a, 21006b)를 의미할 수 있다.
비디오 부호화부(23007)는 실시예들에 따른 지오메트리 이미지, 어트리뷰트 이미지, 및 오큐판시 맵(occupancy map)을 부호화한다. 비디오 부호화부(23007)는 예를 들어, 도 21의 비디오 압축부(video compression, 21007a 내지 21007c)를 의미할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
도 21에서 나타난 바와 같이, 실시예들에 따른 부호화부(23007)는 어트리뷰트 이미지들, 지오메트리 이미지들 및/또는 패킹된 패치들을 부호화할 때, 각각의 생성된 비디오 스트림을 2D 비디오 코덱에 기반하여 세 번 압축하는 동작을 수행한다.
실시예들에 따른 부호화부(23007)는 지오메트리 이미지, 어트리뷰트 이미지, 및 오큐판시 맵과 같이 3개의 비디오 스트림(video stream)을 각각 압축하기 위해 최대 3개의 2D 비디오 코덱을 요구할 수 있다. 그러나, 이러한 구성은 최소 3개의 비디오 코덱이 동시에 실행되어야 하고, 이러한 구성은 연산 복잡도를 높이고 많은 리소스를 요구한다. 따라서, 실시예들에 따른 부호화부(23007)는 요구되는 최대 비디오 코덱의 개수를 2개로 줄임으로써 포인트 클라우드 데이터의 인코딩 및/또는 디코딩 복잡도를 감소시키고 리소스(resource)의 사용량을 줄일 수 있다.
실시예들에 따른 인코더는 V-PCC가 동작하는 어플리케이션 (application)이 가지는 리소스(resource)와 동작 환경에 따라, 하나 또는 그 이상의 2D 비디오 코덱이 동시에 병렬적으로 사용되어 인코딩될 수 있다. 따라서, 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 딜레이(Delay)를 최소화하는 인코딩을 수행하고, 인코딩 효율성을 높임과 동시에 V-PCC의 어플리케이션의 적용 범위를 넓히기 위해, 인코더는 비디오 코덱을 이용한 인코딩/디코딩이 적용되는 비디오 스트림의 개수를 줄일 수 있다.
따라서, 실시예들에 따른 포인트 클라우드 데이터 송신 장치(또는 인코더)는 실시예들에 따른 비디오 결합부(23006)를 더 포함하여, 인코딩 및/또는 디코딩이 적용되는 비디오 스트림의 개수를 줄일 수 있다.
비디오 결합부(23006)는 예를 들어 3개의 비디오 스트림(지오메트리 이미지 스트림, 어트리뷰트 이미지 스트림, 어큐판시 맵 스트림) 중 2개의 비디오 스트림을 하나의 스트림으로 결합할 수 있다. 예를 들어 비디오 결합부(23006)는 실시예들에 따른 부호화 전처리된 지오메트리 이미지와 어큐판시 맵(occupancy map)을 결합하여, 결합된 스트림(stream)을 생성한다.
실시예들에 따른 비디오 결합부(23006)는 인코딩 및/또는 디코딩이 적용되는 비디오 스트림의 개수를 줄임으로써, V-PCC의 연산 복잡도를 낮추고 리소스 점유를 축소시킬 수 있고, 인코딩 및/또는 디코딩 과정에서 불필요한 지연(delay)를 최소화할 수 있으며, V-PCC의 활용 어플리케이션의 범위를 넓힐 수 있는 효과를 제공한다.
실시예들에 따른 비디오 결합부(23006)는 비디오 스트림 처리부, 비디오 처리부, 스트림 처리부 등으로 다양하게 호칭될 수 있다. 실시예들에 따른 비디오 결합부(23006)는 3개의 비디오 스트림이 어떤 방법으로 결합되었는지, 생성된 비디오 스트림의 개수 및/또는 생성된 비디오 스트림의 종류를 나타내는 시그널링 정보를 생성할 수 있다.
비디오 부호화부(23007)는 3개의 스트림(예를 들어, 지오메트리 이미지, 어트리뷰트 이미지, 어큐판시 맵)을 수신하여 이들을 각각 부호화할 수 있다. 비디오 부호화부(23007)는, 비디오 결합부로부터 생성된 결합된 스트림(combined stream), 및/또는 결합되지 않은 스트림을 수신하여 이들을 부호화할 수 있다. 예를 들어, 비디오 부호화부(23007)는 지오메트리 이미지와 어큐판시 이미지가 결합된 스트림, 어트리뷰트 이미지 스트림을 수신하여 이들을 각각 부호화할 수 있다. 비디오 부호화부(23007)는 부호화된 스트림을 출력한다. 예를 들어 비디오 부호화부(23007)는 부호화된 지오메트리/어큐판시 맵이 결합된 이미지/스트림(즉, 지오메트리/어큐판시 맵 서브-스트림, geometry/occupancy map sub-stream), 어트리뷰트 서브-스트림을 출력한다.
지오메트리 복원부(23008)는 비디오 부호화부(23007)로부터 생성된 지오메트리 데이터를 이용하여, 지오메트리 이미지/데이터를 복원하고, 재구성된 지오메트리 이미지(reconstructed geometry image)를 생성한다. 지오메트리 복원부(23008)에서 생성된 재구성된 지오메트리 이미지는 도 21의 재구성된 지오메트리 이미지(reconstructed geometry image)를 의미한다.
스무더(23009)는 재구성된 지오메트리 이미지를 수신하여, 지오메트리 이미지 및/또는 어트리뷰트 이미지를 매끄럽게 해주기 위한 파라미터(즉, 스무딩 파라미터)를 생성한다. 스무더(23009)는 이러한 파라미터를 생성하여 어트리뷰트 이미지 생성부(23004)로 전달한다.
메터데이터 부호화부(23010)는 실시예들에 따른 메타데이터를 부호화한다. 예를 들어, 메타데이터는 부가 패치 정보(예를 들어 도 21의 패치 인포)를 포함할 수 있다. 메타데이터는 예를 들어, 스무더(23009)로부터 생성된 스무딩 파라미터들, 도 21에 설명한 시퀀스 파라미터 세트를 포함할 수 있다.
다중화부(23011)는 부호화된 지오메트리/어큐판시 맵이 결합된 이미지/스트림(즉, 지오메트리/어큐판시 맵 서브-스트림, geometry/occupancy map sub-stream), 어트리뷰트 서브-스트림, 메타데이터 부호화부(23010)에 의해 부호화된 메타데이터를 수신하여, 이들을 다중화(멀티플랙싱)하고, 하나의 압축된 비트스트림을 출력한다.
송신부(23012)는 다중화부(23011)에 의해 출력된 비트스트림을 실시예들에 따른 포인트 클라우드 데이터 수신 장치로 송신한다.
도 24는 실시예들에 따른 포인트 클라우드 데이터 수신 장치의 구성도이다.
도 24에 나타난 실시예들에 따른 포인트 클라우드 데이터 수신 장치는 도 1의 수신 장치(10005 내지 10009), 도 17의 디코딩 장치(100)를 포함하는 장치, 도 19의 수신 단을 의미할 수 있다. 도 24에 나타난 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 도 16, 22에 나타난 디코딩 프로세스 내에 포함된 구성 전부 또는 일부를 포함할 수 있다. 도 24에 나타난 실시예들에 따른 인코더는 도 20 내에 포함된 장치(예를 들어, XR 디바이스, 1730 등)내에 포함될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 수신부(24000), 역다중화부(24001), 비디오 복호화부(24002), 메타데이터 복호화부(24003), 비디오 분리부(24004), 지오메트리 복원부(24005), 스무더(24006), 어트리뷰트 복원부(24007), 컬러 스무더부(24008) 및/또는 포인트 클라우드 렌더러(24009)를 포함한다.
수신부(24000)는 실시예들에 따른 포인트 클라우드 데이터 및 메타데이터가 포함된 비트스트림(또는 파일)을 수신한다. 비트스트림은 예를 들어, 도 21 내지 도 22에 의해 압축된 비트스트림(compressed bitstream)일 수 있다. 파일은 예를 들어, 포인트 클라우드 데이터 및 메타데이터가 ISOBMFF 파일 포멧으로 인캡슐레이팅된 파일일 수도 있다.
역다중화부(24001)는 수신부(24000)에 의해 수신한 비트스트림(포인트 클라우드 데이터)을 전달받아, 복수 개의 스트림으로 역다중화(디멀티플랙스, demultiplex)한다. 예를 들어, 역다중화부(24001)는 지오메트리 이미지 스트림, 어트리뷰트 이미지 스트림 및/또는 어큐판시 맵 스트림을 포함하는 비트스트림을 수신하고, 비트스트림 내에 포함된 각 스트림을 추출한다. 역다중화부(24001)는 지오메트리 이미지 스트림, 어트리뷰트 이미지 스트림 및/또는 어큐판시 맵 스트림을 출력하고, 패치와 관련된 시그널링 정보도 파싱 및 추출할 수 있다.
패치와 관련된 시그널링 정보는 예를 들어 도 23의 부가 패치 정보, 도 22의 SPS를 의미할 수 있다. 패치와 관련된 시그널링 정보는 메타데이터 복호화부(24003)으로 입력된다.
역다중화부(24001)는, 지오메트리 이미지 스트림, 어트리뷰트 이미지 스트림 및/또는 어큐판시 맵 스트림을 각각 출력할 수도 있지만, 지오메트리 이미지 스트림과 어큐판시 맵 스트림이 결합된 스트림(즉, 결합 스트림)과 어트리뷰트 스트림을 추출 및 출력할 수도 있다.
결합 스트림은 실시예들에 따른 포인트 클라우드 데이터 송신 장치에 의해, 지오메트리 이미지 스트림과 어큐판시 맵 스트림이 결합된 스트림을 의미한다. 예를 들어, 결합 스트림(combined stream)은 도 23의 비디오 결합부(23006)에 의해 결합되어 비디오 부호화부(23007)에 의해 부호화된 스트림일 수 있다.
결합 스트림은 지오메트리 이미지 스트림과 어큐판시 맵 스트림이 결합된 스트림만을 의미하지 않고, 다른 데이터 간 결합된 스트림을 의미할 수도 있다. 예를 들면, 결합 스트림은 어큐판시 맵 스트림과 어트리뷰트 이미지 스트림이 결합된 스트림일 수도 있고, 지오메트리 이미지 스트림과 어트리뷰트 이미지 스트림이 결합된 스트림일 수도 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 실시예들에 따른 결합 스트림을 수신하여 복호화를 수행하는데, 복호화 시 요구되는 최대 비디오 코덱의 개수는 2개이므로 디코딩 복잡도가 3개인 경우에 비해 낮고 리소스(resource)의 사용량도 적다. 따라서, 실시예들에 따른 포인트 클라우드 데이터 수신 장치는 딜레이(Delay)를 최소화하는 디코딩을 수행할 수 있고, 디코딩 효율성을 높임과 동시에 V-PCC의 어플리케이션의 적용 범위를 넓힐 수 있다.
비디오 복호화부(24002)는 역다중화부(24001)로부터 출력된 스트림(예를 들어, 지오메트리 이미지 스트림, 어큐판시 맵 스트림, 어트리뷰트 스트림 및/또는 결합 스트림 등)을 수신하여, 이들을 복호화한다. 비디오 복호화부(24002)는 실시예들에 따른 어트리뷰트 이미지 데이터, 지오메트리 이미지 데이터, 어큐판시 맵 데이터를 출력할 수 있다.
비디오 복호화부(24002)는 결합 스트림을 수신하여, 결합 스트림을 복호화하고, 어큐판시 맵 데이터 및 지오메트리 이미지 데이터가 결합된 하나의 스트림을 출력할 수 있다.
메타데이터 복호화부(24003)는 역다중화부(24001)로부터 출력된 메타데이터(시그널링 정보)를 수신하여, 메타데이터를 파싱한다. 메타데이터는 예를 들어, 포인트 클라우드 데이터를 디코딩 및/또는 렌더링 등을 수행하는데 필요한 정보를 포함할 수 있다. 예를 들어, 메타데이터는 실시예들에 따른 부가 패치 정보(auxiliary patch information) 등을 포함할 수 있다.
비디오 분리부(24004)는 실시예들에 따른 복호화된 결합 스트림(combined stream)을 수신하고, 이들 내에 포함된 서로 다른 이미지 데이터들을 분리한다. 예를 들어, 비디오 분리부(24004)는, 어큐판시 맵 이미지와 지오메트리 이미지가 결합된 하나의 이미지 스트림(복호화된 결합 스트림)을 수신하고, 어큐판시 맵 이미지와 지오메트리 이미지를 분리하여 각각 출력한다.
실시예들에 따른 비디오 분리부(24004)는 적은 비디오 스트림의 개수를 수신함으로써, V-PCC의 연산 복잡도를 낮추고 리소스 점유를 축소시킬 수 있고, 인코딩 및/또는 디코딩 과정에서 불필요한 지연(delay)를 최소화할 수 있으며, V-PCC의 활용 어플리케이션의 범위를 넓힐 수 있는 효과를 제공한다.
지오메트리 복원부(24005)는 비디오 분리부(24004) 및/또는 비디오 복호화부(24002)로부터 출력된 지오메트리 이미지, 오큐판시 맵 이미지 데이터에 기반하여, 포인트 클라우드 데이터의 지오메트리 데이터를 복원한다. 지오메트리 복원부(24005)는 메타데이터 복호화부(24003)에 의해 복호화된 부가 패치 정보를 이용(또는 부가 패치 정보에 기반하여) 지오메트리를 재구성 또는 복원할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
스무더(24006)는 지오메트리 복원부(24005)에 의해 복원된 포인트 클라우드 데이터의 지오메트리 데이터를 매끄럽게 재구성 또는 변환한다.
어트리뷰트 복원부(24007)는 포인트 클라우드 데이터의 지오메트리 데이터(예를 들어, 스무더에 의해 변환된 지오메트리 데이터 등) 및 복호화된 어트리뷰트 이미지를 이용하여 포인트 클라우드 데이터의 어트리뷰트 데이터를 재구성 또는 복원한다.
컬러 스무더(24008)는 어트리뷰트 복원부(24007)에 의해 복원된 어트리뷰트 데이터를 수신하여, 어트리뷰트 데이터(예를 들어, 컬러 데이터)를 매끄럽게 재구성 또는 변환한다.
포인트 클라우드 렌더러(24009)는 재구성 또는 변환된 지오메트리 데이터 및/또는 어트리뷰트 데이터를 이용하여, 포인트 클라우드 데이터를 렌더링한다.
도 25는 실시예들에 따른 비디오 결합부의 동작을 나타낸다.
도 25(A) 및 도 25(B)에 나타난 비디오 결합부(25000, 25001)는 도 23의 비디오 결합부(23006)를 의미한다. 비디오 결합부(25000, 25001)는 예를 들어, 3개의 비디오 스트림 중 적어도 2 개의 비디오 스트림을 하나의 스트림을 결합하여, 생성된 하나의 스트림을 출력한다.
실시예들에 따른 비디오 결합부(25000, 25001)는, 예를 들어 어큐판시 맵 비디오(어큐판시 맵 이미지, 25000a, 25001a) 및 지오메트리 비디오(지오메트리 이미지, 25000b, 25001b)를 수신한다. 비디오 결합부는 수신한 어큐판시 맵 비디오 및 지오메트리 비디오를 여러 가지 방법에 기초하여 배열한 후, 하나의 결합된 스트림(25000c)을 출력한다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치의 인코더단은 오큐판시 맵 비디오 (Occupancy map video, OV), 지오메트리 비디오 (Geometry video, GV), 어트리뷰트 비디오 (Attribute video, AV) 각각의 비디오 스트림을 2D 비디오 코덱을 이용하여 별도로 압축할 수도 있다. 하지만 인코더단의 비디오 결합부(25000, 25001)는 상술한 세 개의 비디오 스트림 중 오큐판시 맵 비디오와 지오메트리 비디오를 합쳐서 하나의 비디오 스트림으로 재생성할 수 있고, 비디오 부호화부는 재생성된 비디오 스트림 및 어트리뷰트 비디오 스트림 만을 비디오 코덱을 이용하여 인코딩할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
오큐판시 맵 비디오와 지오메트리 비디오는 모두 1 채널 (Channel)만을 갖는 이미지로 구성되어 있을 수 있다. 또한 프레임 인덱스(frame index) i에 대해, i번째 오큐판시 맵 이미지와 i번째 니어 레이어(Near layer), 파 레이어(Far layer) 지오메트리 이미지들은 모두 i번째 3D 포인트 클라우드 입력을 표현하고 있으므로 유사한 구조적 특성을 갖고 있다. 따라서, 실시예들에 따른 송신 장치(비디오 결합부, 25000, 25001)는 이러한 특성을 바탕으로 오큐판시 맵 비디오와 지오메트리 비디오를 각 프레임 별로 재배치함으로써 새로운 비디오 스트림을 구성할 수 있다.
도 25(A) 및 도 25(B)는 하나의 비디오 프레임(frame)을 구성하는 하나의 오큐판시 맵 비디오(OV)가 2개의 지오메트리 비디오(GV)에 의해 연관되는 경우, 비디오 결합부(25000)가 오큐판시 맵 비디오들와 지오메트리 비디오들을 결합하는 실시예를 나타낸다.
도 25(A)를 참조하면, 비디오 결합부(25000)는 3개의 비디오 프레임(frame)을 수신한다.
3 개의 어큐판시 맵 비디오(어큐판시 맵 이미지, 25000a)는 서로 다른 프레임 인덱스(frame index)를 가지는 3 개의 어큐판시 맵 비디오(이미지)를 나타낸다. OV0은 프레임 인덱스가 0인, OV1은 프레임 인덱스가 1인, OV2은 프레임 인덱스가 2인 어큐판시 맵 비디오(이미지)이다. OVi는 i번째 프레임에 대한 오큐판시 맵 비디오(이미지)이다.
6 개의 지오메트리 비디오(지오메트리 이미지, 25000b)는 하나의 프레임 인덱스 당 2개의 지오메트리 비디오(이미지)를 포함한다. GV_d00 및 GV_d10은 프레임 인덱스가 0인 어큐판시 맵 비디오에 대응하는 두 개의 지오메트리 비디오 이미지들을 나타낸다. GV_d01 및 GV_d11은 프레임 인덱스가 1인 어큐판시 맵 비디오에 대응하는 두 개의 지오메트리 비디오 이미지들을 나타낸다. GV_d02 및 GV_d12은 프레임 인덱스가 2인 어큐판시 맵 비디오에 대응하는 두 개의 지오메트리 비디오 이미지들을 나타낸다.
예를 들어, GV_d0i는 i번째 프레임의 니어 레이어(Near layer) 또는 파 레이어(Far layer)에 대한 지오메트리 이미지일 수 있다. GV_d0i가 니어 레이어(Near layer)에 대한 지오메트리 이미지이면 GV_d1i는 i번째 프레임의 파 레이어(Far layer)에 대한 지오메트리 이미지일 수 있다. GV_d0i가 파 레이어(Far layer)에 대한 지오메트리 이미지이면 GV_d1i는 i번째 니어 레이어(Near layer)에 대한 지오메트리 이미지를 나타낸다.
비디오 결합부(25000)는 실시예들에 따른 오큐판시 맵 비디오를, 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 지오메트리 비디오들에 바로 후속하도록 결합할 수 있다. 예를 들어, 비디오 결합부(25000)는 OV0 오큐판시 맵 비디오를, GV_d10, GV_d00에 바로 후속하도록 배치 및 결합할 수 있다. 마찬가지로 비디오 결합부(25000)는 OV1 오큐판시 맵 비디오를, GV_d11, GV_d01에 바로 후속하도록 배치 및 결합할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
도 25(B)를 참조하면, 비디오 결합부(25000)는 3개의 비디오 프레임(frame)을 수신한다.
3 개의 어큐판시 맵 비디오(어큐판시 맵 이미지, 25001a)는 서로 다른 프레임 인덱스(frame index)를 가지는 3 개의 어큐판시 맵 비디오(이미지)를 나타낸다.
6 개의 지오메트리 비디오(지오메트리 이미지, 25001b)는 하나의 프레임 인덱스 당 2개의 지오메트리 비디오(이미지)를 포함한다
비디오 결합부(25001)는 실시예들에 따른 오큐판시 맵 비디오를, 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 지오메트리 비디오들에 바로 전속하도록 결합할 수 있다. 예를 들어, 비디오 결합부(25001)는 OV0 오큐판시 맵 비디오를, GV_d10, GV_d00에 바로 전속하도록 배치 및 결합할 수 있다. 마찬가지로 비디오 결합부(25000)는 OV1 오큐판시 맵 비디오를, GV_d11, GV_d01에 바로 전속하도록 배치 및 결합할 수 있다.
실시예들에 따른 비디오 결합부(25000, 25001)는 사용자의 선택에 따라 도 25(A) 및/또는 도 25(B)와 같은 순서에 기반하여 결합된 비디오 스트림(결합 스트림)을 생성할 수도 있다. 비디오 결합부(25000, 25001)가 도 25(A) 또는 도 25(B)에 기반한 프레임 결합 순서는 관련 시그널링 정보(예를 들어, mogi_stream_mixing_order)로 수신 장치로 시그널링될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는, 도 25(A) 및/또는 (B)에 따른 비디오 결합부(25000, 25001)를 포함함으로써, 송신 장치가 포인트 클라우드 데이터의 본래의 해상도보다 작은 해상도로 다운스케일링(down-scaling)하여 비디오 스트림을 생성할 필요 없이, 포인트 클라우드 데이터의 본래의 해상도를 유지하도록 인코딩을 수행할 수 있어 인코딩의 효율성을 높일 수 있다.
즉, 실시예들에 따른 포인트 클라우드 데이터 송신 장치는, 이러한 구성으로 인해 부호화 과정에서 오큐판시 맵을 생성할 시, 다운스케일링을 하지 않고 본래 해상도를 유지하도록 설정하면서 포인트 클라우드 데이터를 인코딩할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치(비디오 결합부)는, 도 25(A) 및/또는 도 25(B)의 방법으로 비디오 스트림을 생성하는 경우, OVi 내 각 패치 (Patch)의 픽셀(Pixel)들의 값은 GV_d0i 에서의 동일 패치 내 픽셀들의 평균 값으로 변경될 수 있다. 이러한 구성으로 인해, 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 인코딩 시 연산의 복잡도를 줄이고 비디오 압축률을 향상시킬 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 비디오 결합부(25000, 25001)를 통해 새롭게 생성된 비디오 스트림과 어트리뷰트 비디오 스트림을 각각 비디오 코덱을 이용하여 압축하고, 이들을 수신 장치로 전달한다.
실시예들에 따른 인코더는, 도 25(A) 및/또는 도 25(B)와 같이 오큐판시 맵 비디오와 지오메트리 비디오를 결합하여 3 채널 이미지를 갖는 하나의 비디오를 프레임(frame) 단위로 생성할 수 있으나, 프레임 내에 포함된 타일(tile) 단위로 생성할 수도 있다. 타일(tile)이란, 프레임 내의 특정 영역을 나타내며, 독립적으로 인코딩 또는 디코딩하는 단위를 의미한다.
도 26은 실시예들에 따른 비디오 분리부의 동작을 나타낸다.
도 26(a) 및 도 26(b)에 나타난 비디오 분리부(26000, 26001)는 도 24의 비디오 분리부 (24004)를 의미한다.
도 26(A) 및 도 26(B)에 나타난 비디오 분리부(26000, 26001)는 도 24의 비디오 분리부(24004)를 의미한다. 비디오 분리부(26000, 26001)는 예를 들어, 하나의 결합 스트림 내에 포함된 서로 다른 종류의 비디오(이미지)를 분리한다.
도 26(A)를 참조하면, 비디오 분리부(26000)는 결합 비디오 스트림(결합 스트림, 26000a)을 수신한다.
결합 스트림(26000a)은 서로 다른 종류의 비디오가 결합된 스트림이다. 예를 들어, 결합 스트림은 도 25(A)에 나타난 결합된 비디오 스트림(25000c)를 의미할 수 있다.
결합 스트림(26000a)는 실시예들에 따른 오큐판시 맵 비디오 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 지오메트리 비디오들을 포함한다. 결합 스트림(26000a)에서 i번째 프레임 인덱스를 가지는 오큐판시 맵 비디오는 동일한 프레임 인덱스를 가지는 지오메트리 비디오들에 후속하여 위치할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
비디오 분리부(26000)는 결합 스트림(26000a)에 포함된 오큐판시 맵 비디오(26000b) 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 지오메트리 비디오들(26000c)을 분리한다. 비디오 분리부(26000)는 오큐판시 맵 비디오(26000b)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다. 마찬가지로, 비디오 분리부(26000)는 지오메트리 비디오(26000c)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다.
도 26(B)를 참조하면, 비디오 분리부(26001)는 결합 비디오 스트림(결합 스트림, 26001a)을 수신한다.
결합 스트림(26001a)은 서로 다른 종류의 비디오가 결합된 스트림이다. 예를 들어, 결합 스트림은 도 25(B)에 나타난 결합된 비디오 스트림(25001c)를 의미할 수 있다.
결합 스트림(26001a)는 실시예들에 따른 오큐판시 맵 비디오 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 지오메트리 비디오들을 포함한다. 결합 스트림(26001a)에서 i번째 프레임 인덱스를 가지는 오큐판시 맵 비디오는 동일한 프레임 인덱스를 가지는 지오메트리 비디오들에 전속하여 위치할 수 있다.
비디오 분리부(26001)는 결합 스트림(26001a)에 포함된 오큐판시 맵 비디오(26001b) 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 지오메트리 비디오들(26001c)을 분리한다. 비디오 분리부(26001)는 오큐판시 맵 비디오(26001b)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다. 마찬가지로, 비디오 분리부(26001)는 지오메트리 비디오(26001c)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다.
실시예들에 따른 수신 장치는 두 개의 비디오 스트림을 입력 받아 이들을 비디오 코덱을 이용하여 디코딩하고, 결합된 비디오 스트림에 대해 디코딩된 결과는 비디오 분리부(26000, 26001)를 통해 오큐판시 맵 비디오와 지오메트리 비디오로 분리하여, 3D 포인트 클라우드 복원 (Reconstruction)에 사용된다.
실시예들에 따른 비디오 분리부(26000, 26001)는 비디오 결합 순서와 관련된 시그널링 정보(예를 들어, mogi_stream_mixing_order)에 대응하여, 도 26(A) 또는 도 26(B)와 같은 순서에 기반하여 결합된 비디오 스트림(결합 스트림)을 수신하고 이들을 분리한다.
도 27은 실시예들에 따른 V3C 비트스트림을 나타낸다.
V3C 비트스트림(27000, 27010)은 실시예들에 따른 포인트 클라우드 데이터를 포함한다. V3C 비트스트림은 포인트 클라우드 데이터를 전달하기 위한 데이터의 단위인 V3C 유닛(V3C Unit)의 다발이다. V3C 비트스트림은 V-PCC 비트스트림으로 호칭할 수 있다.
도 27에 나타난 V3C비트스트림(27000, 27010)은 도 1의 포인트 클라우드 비디오 인코더(10002)에서 생성한 비트스트림, 도 4에 나타난 압축된 비트스트림(compressed bitstream), 도 15의 비트스트림, 도 16의 압축된 비트스트림(compressed bitstream), 도 17의 비트스트림, 도 18의 다중화부(18007)에서 생성한 비트스트림, 도 19의 역다중화부(19000)가 수신하는 비트스트림, 도 21 및 도 22의 압축된 비트스트림(compressed bitstream), 도 23의 다중화부(230011)에서 생성한 비트스트림, 도 24의 역다중화부(24001)가 수신하는 비트스트림을 의미한다. 도 27에 나타난 V3C비트스트림(27000, 27010)은 도 25 및 도 26의 결합된 비디오 스트림(25000c, 25001c, 26000a, 26001a)을 포함한다.
실시예들에 따른 V3C 비트스트림은 예를 들어, 두 가지의 포멧(format)의 형태를 가질 수 있다. 예를 들어, 하나는 V3C 유닛 스트림 포멧(V3C unit stream format), 다른 하나는 샘플 스트림 포멧(sample stream format)이 있을 수 있다.
도 27(A)는 V3C 유닛 스트림 포멧(V3C unit stream format)에 따른 V3C 비트스트림을 나타낸다. V3C 비트스트림은 하나 또는 그 이상의 포인트 클라우드 데이터를 전달하기 위한 데이터의 단위인 V3C 유닛(V3C Unit)을 포함한다.
V3C 유닛(27001)은 예를 들어, 포인트 클라우드 데이터 내의 하나의 프레임(frame, 또는 타일) 내에 포함된 지오메트리 정보를 전달하는 단위일 수도 있고, 하나의 프레임(또는 타일) 내에 포함된 어트리뷰트 정보를 전달하는 단위일 수도 있고, 하나의 프레임(또는 타일) 내에 포함된 어큐판시 맵 정보를 전달하는 단위일 수도 있고, 하나의 프레임(또는 타일) 내에 포함된 V-PCC 파라미터 세트 정보를 전달하는 단위일 수도 있다.
V-PCC 유닛(V-PCC Unit)은 예를 들어, 실시예들에 따른 포인트 클라우드 데이터의 지오메트리 비디오(이미지), 어트리뷰트 비디오(이미지), 어큐판시 맵 비디오(이미지), 아틀라스 데이터(atlas data), 또는 V-PCC 파라미터 세트(V-PCC parameter set)를 전달(carry)하는 데이터의 단위를 의미한다.
V3C 유닛 스트림 포멧은 개념적으로 더 기본적인 타입이다. V3C 유닛 스트림 포멧에서, V3C 비트스트림은 V3C 유닛(V3C Unit, 27001, 27012)라고 호칭되는 신텍스 구조(syntax structure)의 시퀀스(sequence)로 구성된다. 그 시퀀스는 디코딩 순서일 수 있다. V3C 유닛 스트림 내의 V3C의 디코딩 순서 (또는 그 컨텐츠)에는 제약이 있을 수 있다.
도 27(B)는 샘플 스트림 포멧(sample stream format)에 따른 V3C 비트스트림을 나타낸다.
샘플 스트림 포멧(sample stream format)에 따른 V3C 비트스트림은 V3C 비트스트림(27010)은 하나 또는 그 이상의 포인트 클라우드 데이터를 전달하기 위한 데이터의 단위인 샘플 스트림 V3C 유닛(Sample Stream V3C Unit, 27012) 및/또는 샘플 스트림 V3C 헤더(Sample Stream V3C Header, 27011)을 포함한다.
샘플 스트림 포멧은 V3C 유닛들(27012)들을 디코딩 순서로 배치하고, 각 V3C 유닛들을 V3C 유닛들의 실제 사이즈를 나타내는 헤딩(heading)을 앞에 붙임으로써 구조화될 수 있다.
샘플 스트림 V3C 헤더(Sample Stream V3C Header, 27011)는 샘플 스트림 비트스트림의 앞(beginning)에 포함될 수 있고, 샘플 스트림 V3C 헤더(Sample Stream V3C Header, 27011)는 시그널링된 V3C 유닛의 사이즈의 프리시전(byte)을 나타낸다.
V3C 유닛 스트림 포멧은 샘플 스트림 포멧을 순회(traversing)하여, 크기 정보를 읽고 각 V3C 유닛을 대략적으로 추출함으로써, 샘플 스트림 포멧으로부터 추출될 수 있다.
V3C 유닛(27001) 및 샘플 스트림 V3C 유닛(27012)는, 유닛 내에 포함된 데이터의 성질에 따라 데이터의 타입을 구분할 수 있다. 예를 들어, V3C 유닛(27001) 또는 샘플 스트림 V3C 유닛(27012)가 지오메트리 데이터를 포함하는지, 어트리뷰트 데이터를 포함하는지, 오큐판시 맵 데이터를 포함하는지 등의 기준으로 타입을 분류할 수 있다.
V3C 유닛(27001) 또는 샘플 스트림 V3C 유닛(27012)의 유닛 타입의 예시는 도 28에서 자세히 설명한다.
이하에서, V3C 유닛(V3C Unit)은 V-PCC 유닛(V-PCC Unit)이라고 호칭할 수 있다.
도 28는 실시예들에 따른 VPCC 유닛의 타입과 그와 관련된 시그널링 정보를 나타낸다.
도 28은 예를 들어, 도 27의 V3C 유닛(27001) 또는 샘플 스트림 V3C 유닛(27012)의 타입을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는, 수신 장치로 전송되는 비트스트림을 V-PCC 유닛(V-PCC Unit) 단위로 전송하거나, V-PCC 유닛이 ISOBMFF 파일 형식으로 압축된 파일 단위로 전송될 수 있다. 이하에서, V3C 유닛(V3C Unit)은 V-PCC 유닛(V-PCC Unit)이라고 호칭할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는, 포인트 클라우드 데이터를 복수의 V-PCC 유닛(V-PCC Unit)으로 세그먼트(segment)하고, V-PCC 유닛들을 수신 장치로 전송하거나, 이들에 기초하여 생성된 ISOBMFF 형태의 파일을 수신 장치로 전송한다.
V-PCC 유닛은 V-PCC 유닛 헤더(V-PCC header, VUH) 및/또는 V-PCC 유닛 페이로드(V-PCC payload, VUP)를 포함한다. V-PCC 유닛 페이로드는 포인트 클라우드 데이터의 지오메트리 비디오(이미지), 어트리뷰트 비디오(이미지), 어큐판시 맵 비디오(이미지), 아틀라스 데이터(atlas data), 또는 V-PCC 파라미터 세트(V-PCC parameter set) 중 하나를 포함할 수 있다. V-PCC 유닛 헤더는 V-PCC 유닛 페이로드 내에 포함된 데이터가 어떤 데이터인지를 나타내는 정보를 포함한다.
V-PCC 유닛 헤더(V-PCC Unit Header, VUH)는 실시예들에 따른 V3C 유닛 헤더(V3C Unit header)를 의미하고, 동일하게 호칭될 수 있다. V-PCC 유닛 페이로드(V-PCC Unit Payload)는 실시예들에 따른 V3C 유닛 페이로드(V3C Unit Payload)를 의미하고, 동일하게 호칭될 수 있다. V-PCC 파라미터 세트는, 실시예들에 따른 V3C 파라미터 세트(V3C Parameter Set)를 의미한다.
V-PCC 유닛 헤더는 예를 들어, 해당 V-PCC 유닛 페이로드 내에 포함된 데이터가 어떤 데이터인지를 나타내는 vuh_유닛_타입(vuh_unit_type) 정보를 포함한다.
예를 들어, vuh_유닛_타입(vuh_unit_type)의 값이 0(즉, VPCC_VPS)이면, 해당 V-PCC 유닛은 V-PCC 파라미터 세트(V-PCC parameter set)를 포함하고, 이는 V-PCC 레벨 파라미터들을 포함한다.
예를 들어, vuh_유닛_타입(vuh_unit_type)의 값이 1(즉, VPCC_AD)이면, 해당 V-PCC 유닛은 아틀라스 데이터(atlas data)를 포함하고, 아틀라스 정보(atlas information)을 포함한다.
예를 들어, vuh_유닛_타입(vuh_unit_type)의 값이 2(즉, VPCC_OVD)이면, 해당 V-PCC 유닛은 오큐판시 비디오 데이터(occupancy video data)를 포함하고, 오큐판시 정보(occupancy information)을 포함한다.
예를 들어, vuh_유닛_타입(vuh_unit_type)의 값이 3(즉, VPCC_GVD)이면, 해당 V-PCC 유닛은 지오메트리 비디오 데이터(geometry video data)를 포함하고, 지오메트리 정보(geometry information)을 포함한다.
예를 들어, vuh_유닛_타입(vuh_unit_type)의 값이 4(즉, VPCC_AVD)이면, 해당 V-PCC 유닛은 어트리뷰트 비디오 데이터(attribute video data)를 포함하고, 어트리뷰트 정보(attribute information)을 포함한다.
V-PCC 유닛 페이로드는 포인트 클라우드 데이터의 지오메트리 비디오(이미지)와 어큐판시 맵 비디오(이미지)가 결합된 결합 스트림을 포함할 수 있다. 실시예들에 따른 V-PCC 유닛 헤더는 해당 V-PCC유닛의 V-PCC 유닛 페이로드가 결합 스트림을 포함함을 나타내는 정보를 포함할 수 있다.
예를 들어, vuh_유닛_타입(vuh_unit_type)의 값이 5(즉, VPCC_OGVD 또는 V3C_PVD)이면, 해당 V-PCC 유닛은 실시예들에 따른 결합 스트림을 포함, 즉 결합된 어큐판시 및 지오메트리 정보(merged occupancy and geometry information)을 포함한다.
도 29는 실시예들에 따른 V3C 비트스트림의 구조를 나타낸다.
도 29에 나타난 V3C 비트스트림(29000)은 도 27에 나타난 샘플 스트림 포멧 형태의 V3C 비트스트림을 의미한다.
도 29에 나타난 V3C 비트스트림(29000)는 도 1의 포인트 클라우드 비디오 인코더(10002)가 생성하며, 도 4및 도 21의 압축된 비트스트림(compressed bitstream)으로 멀티플랙서(40013, 21008)가 생성, 도 15의 인코딩 장치(100)가 생성한다. 도 29에 나타난 V3C 비트스트림(29000)은 도 23의 다중화부(23011)가 생성한다.
V3C 샘플 스트림 포멧의 비트스트림(29000)은, V3C 샘플 스트림 프리시전 정보, 복수의 V3C 유닛(V3C 유닛들)을 포함한다. 도 29에서 V3C 샘플 스트림 포멧의 비트스트림(29000)은, V3C 샘플 스트림 프리시전 정보(V3C Sample Stream Precision), 5 개의 V3C 유닛들, 각 V3C 유닛들의 앞(beginning)에 위치한 크기 정보(V3C Sample Stream Size)를 포함한다.
도 29에서 V3C 샘플 스트림 포멧의 비트스트림(29000)은, V3C 파라미터 세트를 전달하는 V3C 유닛(V3C_VPS 및 v3c_parameter_set()), 아틀라스 데이터를 전달하는 V3C 유닛(V3C_AD 및 atlas_sub_bitsteram), 오큐판시 맵 데이터를 전달하는 V3C 유닛(V3C_OVD 및 video_sub_bitstream()), 지오메트리 데이터를 전달하는 V3C 유닛(V3C_GVD 및 video_sub_bitstream()), 및 어트리뷰트 데이터를 전달하는 V3C 유닛(V3C_AVD 및 video_sub_bitstream())를 포함한다.
아틀라스 데이터를 전달하는 V3C 유닛(V3C_AD 및 atlas_sub_bitsteram)은 하나 또는 그 이상의 NAL 유닛(NAL Unit)으로 전달되는 NAL 샘플 스트림을 포함한다.
V3C 샘플 스트림 포멧의 비트스트림(29000)은 오큐판시 맵 데이터를 전달하는 V3C 유닛(V3C_OVD 및 video_sub_bitstream()), 지오메트리 데이터를 전달하는 V3C 유닛(V3C_GVD 및 video_sub_bitstream()), 대신 실시예들에 따른 지오메트리 데이터와 오큐판시 맵 데이터가 결합된 스트림을 전달하는 V3C 유닛(예를 들어, 도 28의 V3C_OGVD)을 포함할 수 있다.
도 30는 실시예들에 따른 V-PCC 파라미터 세트(V-PCC parameter set)의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 실시예들에 따른 비디오 결합부에서 오큐판시 맵 비디오와 지오메트리 비디오가 결합된 방법을 나타내기 위한 시그널링 정보를 생성하여, 메타데이터 내에 포함시켜 전송할 수 있다. 비디오 결합부에서 오큐판시 맵 비디오와 지오메트리 비디오가 결합된 방법을 나타내기 위한 메타데이터는 결합된 비디오 스트림 정보라고 호칭할 수도 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
실시예들에 따른 V-PCC 파라미터 세트는 실시예들에 따른 비디오 결합부에 의해 결합된 데이터 스트림 및 관련 시그널링 정보(예를 들어, 실시예들에 따른 결합된 비디오 스트림 정보)를 포함한다.
실시예들에 따른 V-PCC 파라미터 세트는 V3C 파라미터 세트(V3C Parameter Set)로 호칭할 수 있다.
실시예들에 따른 V-PCC 파라미터 세트 내 파라미터들은 예를 들어, 도 1의 포인트 클라우드 데이터 인코더(10002), 파일/세그먼트 인캡슐레이션 모듈(10003), 도 4의 패치 생성부(40000), 도 18의 패치 생성부(18000), 도 21의 3D 패치 생성부(21000), 도 23의 패치 생성부(23000)에서 생성될 수 있다.
V-PCC 파라미터 세트 내 일부 파라미터들은 도 23의 비디오 결합부(23006), 도 25의 비디오 결합부(25000, 25001), 도 32의 비디오 결합부(32000, 32001), 도 35의 비디오 결합부(35000)에서 생성될 수 있다. 예를 들어, 실시예들에 따른 V-PCC 파라미터 세트는, 프로파일 티어 레벨 정보(profile_tier_level), VPS_VPCC_파라미터_세트_ID 정보(vps_vpcc_parameter_set_id), VPS_아틀라스_카운트_마이너스1 정보(vps_atlas_count_minus1)를 포함하며, 이들은 위 구성요소에서 생성될 수 있다.
V-PCC 파라미터 세트는 도 16의 디-멀티플랙서(16000), 도 19의 메타데이터 복호화부(19002), 도 22의 디멀티플랙서(22000) 및/또는 SPS 파싱부(22001), 도 24의 역다중화부(24003), 메타데이터 복호화부(24003) 등에 의해 파싱 및 복호화된다.
V-PCC 파라미터 세트는 VPS_아틀라스_카운트_마이너스1 정보(vps_atlas_count_minus1)에 1을 더한 값의 수만큼 프레임(frame, 또는 아틀라스 프레임, atlas frame)에 대한 정보를 포함할 수 있다.
아틀라스 프레임에 대한 정보는 예를 들어, 각 프레임마다 VPS_프레임_폭(vps_frame_width), VPS_프레임_높이(vps_frame_height), VPS_OV_GV_합병_플래그(vps_ov_gv_merge_flag), VPS_맵_카운트_마이너스1(vps_map_count_minus1) 정보, VPS_확장_존재_플래그(vps_extension_present_flag)를 포함한다.
아틀라스 프레임에 대한 정보는 예를 들어, VPS_맵_카운트_마이너스1의 값이 0보다 크면, VPS_멀티플_맵_스트림들_존재_플래그 (vps_multiple_map_streams_present_flag), VPS_오실러리_비디오_존재_플래그 (vps_auxiliary_video_present_flag)를 더 포함할 수 있다.
아틀라스 프레임에 대한 정보는 예를 들어, VPS_멀티플_맵_스트림들_존재_플래그의 값이 1이면(True이면), VPS_맵_앱솔루트_코딩_인에이블_플래그(vps_map_absolute_coding_enabled_flag)이 값이 0이고, 0(False)이면, VPS_맵_앱솔루트_코딩_인에이블_플래그의 값이 1일 수 있다.
만약 VPS_맵_앱솔루트_코딩_인에이블_플래그의 값이 0이면, VPS_맵_프리딕터_인덱스_디프(vps_map_predictor_index_diff) 정보 포함할 수 있다.
VPS_OV_GV_합병_플래그(vps_ov_gv_merge_flag)는 실시예들에 따른 포인트 클라우드 데이터 송신 장치가 결합된 비디오 스트림을 생성하였는지(즉, 실시예들에 따른 비디오 결합부가 도 23 내지 도 26에 나타난 방법에 따라 서로 다른 두 개의 비디오를 결합하였는지)를 나타내는 정보이다.
VPS_OV_GV_합병_플래그(vps_ov_gv_merge_flag)의 값이 1 이면, 실시예들에 따른 인코더는 오큐판시 맵 비디오와 지오메트리 비디오를 하나의 결합된 비디오 스트림(결합 스트림)으로 결합하여 압축(compression)을 수행함을 나타낸다. VPS_OV_GV_합병_플래그(vps_ov_gv_merge_flag)의 값이 1 이면, 아틀라스 프레임에 대한 정보는 결합된 비디오 스트림을 위한 정보(예를 들어, merged_occupancy_geometry_information 정보), 어트리뷰트 스트림을 위한 정보(예를 들어, attribute_information 정보)를 포함할 수 있다. VPS_OV_GV_합병_플래그(vps_ov_gv_merge_flag)의 값이 0 이면, 아틀라스 프레임에 대한 정보는 지오메트리 스트림을 위한 정보(예를 들어, geometry_information), 어큐판시 맵 스트림을 위한 정보(예를 들어, occupancy_information) 및/또는 어트리뷰트 스트림을 위한 정보를 포함할 수 있다.
결합된 비디오 스트림을 위한 정보는 예를 들어, 실시예들에 따른 결합된 스트림이 어떻게 조합되어 결합되었는지, 어떤 순서로 결합되었는지 등을 나타내는 정보를 포함한다. 결합된 비디오 스트림을 위한 정보는 도 30에서 자세히 설명한다.
도 31은 실시예들에 따른 결합된 비디오 스트림을 위한 정보를 나타낸다.
도 31에 나타난 실시예들에 따른 결합된 비디오 스트림을 위한 정보(31000)는 도 30에서 설명한 실시예들에 따른 결합된 비디오 스트림을 위한 정보(merged_occupancy_geometry_information 정보)를 의미한다. 실시예들에 따른 결합된 비디오 스트림은 송신 장치에 의해 아틀라스(atlas) 또는 아틀라스 프레임(atlas frame)별로 시그널링될 수 있다. 따라서, 결합된 비디오 스트림을 위한 정보(31000)는 아틀라스의 아이디(atlasId)를 매개변수로 가질 수 있다.
실시예들에 따른 결합된 비디오 스트림을 위한 정보는, 실시예들에 따른 V-PCC 파라미터 세트(V3C 파라미터 세트)내에 포함될 수 있으며, 도 1의 포인트 클라우드 데이터 인코더(10002), 파일/세그먼트 인캡슐레이션 모듈(10003), 도 4의 패치 생성부(40000), 도 18의 패치 생성부(18000), 도 21의 3D 패치 생성부(21000), 도 23의 패치 생성부(23000)에서 생성될 수 있다.
실시예들에 따른 결합된 비디오 스트림을 위한 정보는, 예를 들어 도 29의 v3c_parameter_set() 내에 포함될 수 있으며, 도 30의 merged_occupancy_geometry_information(j) 신텍스 내에 포함된 정보를 의미한다. 실시예들에 따른 결합된 비디오 스트림을 위한 정보는, j번째 아틀라스에 대한 VPS_OV_GV_합병_플래그(vps_ov_gv_merge_flag) 플래그가 1(True)인 경우에 존재할 수 있다.
실시예들에 따른 결합된 비디오 스트림을 위한 정보는, 도 23의 비디오 결합부(23006), 도 25의 비디오 결합부(25000, 25001), 도 32의 비디오 결합부(32000, 32001), 도 35의 비디오 결합부(35000)에서 생성될 수 있다.
실시예들에 따른 결합된 비디오 스트림을 위한 정보는, 도 16의 디-멀티플랙서(16000), 도 19의 메타데이터 복호화부(19002), 도 22의 디멀티플랙서(22000) 및/또는 SPS 파싱부(22001), 도 24의 역다중화부(24003), 메타데이터 복호화부(24003) 등에 의해 파싱 및 복호화된다.
Mogi_코덱_아이디(mogi_codec_id) 정보는 해당 아틀라스에 대하여, 결합(합병)된 어큐판시 맵 정보 및 지오메트리 비디오 데이터(이미지)를 압축(compress)하는데 사용되는 코덱의 식별자를 나타낸다. Mogi_코덱_아이디 정보는 0 내지 255의 범위의 값을 가진다. (indicates the identifier of the codec used to compress the merged occupancy map information and geometry video data for the atlas with index j. geometry_codec_id shall be in the range of 0 to 255, inclusive.)
Mogi_스트림_믹싱_순서(mogi_stream_mixing_order)는 해당 아틀라스(atlas)에 대하여, 오큐판시 맵 비디오(이미지)와 지오메트리 비디오(이미지)가 결합되는 순서 또는 방법을 나타낸다.
해당 아틀라스(atlas)에 대하여, 오큐판시 맵 비디오(이미지)와 지오메트리 비디오(이미지)가 결합되는 순서 또는 방법은 31001에 나타난 표에 따를 수 있다.
예를 들어, 실시예들에 따른 결합 스트림이 도 25(A)의 결합 스트림(25000c), 또는 도 26(A)의 결합 스트림(26000a)와 같이 오큐판시 맵 비디오가, 동일한 프레임 인덱스를 갖는 지오메트리 비디오에 후속하는 경우에는 Mogi_스트림_믹싱_순서 정보의 값이 제 1의 값 (예를 들어, 0)을 가질 수 있다. 예를 들어, 실시예들에 따른 결합 스트림이 도 25(B)의 결합 스트림(25001c), 또는 도 26(B)의 결합 스트림(26001a)와 같이 오큐판시 맵 비디오가, 동일한 프레임 인덱스를 갖는 지오메트리 비디오에 전속하는 경우에는 Mogi_스트림_믹싱_순서 정보의 값이 제 2의 값(예를 들어, 1)을 가질 수 있다. Mogi_스트림_믹싱_순서(mogi_stream_mixing_order)의 실시예는 도 31에서 설명한다.
실시예들에 따른 수신 장치는 Mogi_스트림_믹싱_순서 정보를 수신하고, 이 정보에 기초하여 결합 스트림을 분리한다.
Mogi_로시_오큐판시_맵_압축_스레숄드(mogi_lossy_occupancy_map_compression_threshold) 정보는 해당 아틀라스를 위한 디코딩된 오큐판시 맵 비디오로부터 바이너리 오큐판시 맵(binary occupancy map)을 도출하기 위해 사용되는 스레숄드(threshold)를 나타낸다. Mogi_로시_오큐판시_맵_압축_스레숄드는 0 내지 255의 범위의 값을 가진다. (mogi_lossy_occupancy_map_compression_threshold[ j ] indicates the threshold to be used to derive the binary occupancy map from the decoded occupancy map video for the atlas with index j. mogi_lossy_occupancy_map_compression_threshold[ j ] shall be in the range of 0 to 255, inclusive.)
Mogi_노미널_2D_비트뎁스_마이너스1(mogi_nominal_2d_bitdepth_minus1) 정보의 값에 1을 더한 값은, 해당 아틀라스 결합된 어큐판시 및 지오메트리 비디오가 전환되는 대한 노미널 2D 비트 뎁스를 나타낸다. (plus 1 indicates the nominal 2D bit depth to which the merged occupancy and geometry video for the atlas with index j shall be converted to. mogi_nominal_2d_bitdepth_minus1[ j ] shall be in the range of 0 to 31, inclusive.)
Mogi_MSB_얼라인_플래그(mogi_MSB_align_flag)는 해당 아틀라스와 연관된 디코딩된 오큐판시 맵 및 지오메트리 비디오 샘플들이 노미널 오큐판시 비트뎁스에 샘플들로 변환되었는지를 나타낸다. (indicates how the decoded occupancy and geometry video samples associated with an atlas with index j are converted to samples at the nominal occupancy bitdepth.)
Mogi_지오메트리_3D_좌표_비트뎁스_마이너스1(mogi_geometry_3d_coordinates_bitdepth_minus1)의 값에 1을 더한 값은 대항 아틀라스를 위한 재구성된 포인트 클라우드의 지오메트리 좌표의 비트뎁스를 나타낸다. Mogi_지오메트리_3D_좌표_비트뎁스_마이너스1의 값은 0 내지 31의 값을 가진다. (plus 1 indicates the bit depth of the geometry coordinates of the reconstructed point cloud for the atlas with index j. mogi_geometry_3d_coordinates_bitdepth_minus1[ j ] shall be in the range of 0 to 31, inclusive.)
Mogi_오실러리_지오메트리_코덱_ID(mogi_auxiliary_geometry_codec_id)는, 존재할 경우, RAW 코딩된 포인트들이 해당 아틀라스를 위한 오실러리 비디오 스트림 내에 인코딩되는 경우, 지오메트리 데이터 서브-비트스트림들을 압축(compress)하는데 사용되는 코덱의 식별자를 나타낸다. Mogi_오실러리_지오메트리_코덱_ID는 0 내지 255의 범위의 값을 가진다. Mogi_오실러리_지오메트리_코덱_ID(mogi_auxiliary_geometry_codec_id)는, 존재하지 않을 경우, mogi_geometry_codec_id와 동일한 값을 가진다. (when present, indicates the identifier of the codec used to compress the geometry video data sub-bitstreams, when RAW coded points are encoded in an auxiliary video stream for the atlas with index j. mogi_auxiliary_geometry_codec_id[ j ] shall be in the range of 0 to 255, inclusive. When not present the value of mogi_auxiliary_geometry_codec_id[ j ] shall be set equal to mogi_geometry_codec_id[ j ].)
도 32은 실시예들에 따른 비디오 결합부의 동작을 나타낸다.
도 32(A) 및 도 32(B)에 나타난 비디오 결합부(32000, 32001)는 도 23의 비디오 결합부(23006)를 의미한다. 비디오 결합부(32000, 32001)는 예를 들어, 3개의 비디오 스트림 중 적어도 2 개의 비디오 스트림을 하나의 스트림을 결합하여, 생성된 하나의 스트림을 출력한다.
실시예들에 따른 비디오 결합부(32000, 32001)는, 예를 들어 어큐판시 맵 비디오(어큐판시 맵 이미지, 32000a, 32001a) 및 지오메트리 비디오(지오메트리 이미지, 32000b, 32001b)를 수신한다. 비디오 결합부는 수신한 어큐판시 맵 비디오 및 지오메트리 비디오를 여러 가지 방법에 기초하여 배열한 후, 하나의 결합된 스트림(32000c)을 출력한다.
오큐판시 맵 비디오와 지오메트리 비디오는 모두 1 채널 (Channel)만을 갖는 이미지로 구성되어 있을 수 있다. 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 지오메트리 비디오에 대해 니어 레이어(Near layer)와 파 레이어(Far layer)에 해당하는 정보를 결합하여 인터리브드(Interleaved) 이미지를 생성할 수 있다. 이 경우 실시예들에 따른 비디오 결합부는 i번째 프레임 인덱스에 대해, 두 개의 지오메트리 이미지 GV_d0i, GV_d1i 가 생성되는 것이 아닌 단 하나의 지오메트리 이미지만 생성할 수 있다.
도 32(A) 및 도 32(B)는 하나의 비디오 프레임(frame)을 구성하는 하나의 오큐판시 맵 비디오(OV)가 1개의 인터리브드 이미지(interleaved image) 즉, 1개의 지오메트리 비디오(GV)에 의해 연관되는 경우, 비디오 결합부(32000, 32001)가 오큐판시 맵 비디오들와 인터리브트 이미지(1개의 지오메트리 비디오)를 결합하는 실시예를 나타낸다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
도 32(A) 및 도 32(B)를 참조하면, 비디오 결합부(32000)는 오큐판시 맵 비디오의 프레임들과 지오메트리 비디오(인터리브드 이미지)의 각 프레임을 다양한 방법으로 결합한다.
오큐판시 맵 비디오(32000a, 32001a), 즉 OVi는 i번째 프레임에 대한 오큐판시 맵 이미지를 나타낸다. 인터리브드 이미지(32000b, 32001b), 즉 GVi는 i번째 프레임의 인터리브드 지오메트리 이미지를 나타낸다.
실시예들에 따른 비디오 결합부(32000)는 i번째 프레임에 대한 오큐판시 맵 이미지가, 대응하는 인터리브드 이미지에 후속하도록 결합된 비디오 스트림(결합 스트림, 32000c)을 생성할 수 있다.
실시예들에 따른 비디오 결합부(32001)는 i번째 프레임에 대한 오큐판시 맵 이미지가, 대응하는 인터리브드 이미지에 전속하도록 결합된 비디오 스트림(결합 스트림, 32001c)을 생성할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치(의 인코더)는 오큐판시 맵 이미지를 본래의 해상도보다 작은 해상도로 다운스케일링(down-scaling)하여 하나의 비디오 스트림으로 생성할 수 있다.
또한 실시예들에 따른 포인트 클라우드 데이터 송신 장치(의 인코더)는, 본래의 해상도를 유지함으로써 오큐판시 맵 이미지와 지오메트리 비디오와 동일한 해상도를 갖게 할 수도 있다. 즉, 인코더는 도 32(A)의 방법으로, 비디오 압축률을 향상시키기 위해 OVi 내 각 패치 (Patch)의 픽셀 (Pixel) 값이 GVi 에서의 동일 패치 내 픽셀들의 평균 값으로 하여 비디오 스트림을 생성할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치의 비디오 결합부(32000, 32001)는 인터리브드 지오메트리 비디오와 오큐판시 맵 이미지의 순서를 mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보를 통하여 수신 장치로 시그널링할 수 있다. 오큐판시 맵 이미지와 지오메트리 이미지의 결합 순서는 mogi_stream_mixing_order 값으로 구분하여 시그널링 한다.
실시예들에 따른 비디오 결합부를 통해 새롭게 생성된 비디오 스트림과 어트리뷰트 비디오 스트림은 각각 비디오 코덱을 이용하여 압축되어 수신단으로 전달된다.
실시예들에 따른 인코더는, 도 32(A), 도 32(B)와 같이 오큐판시 맵 비디오와 지오메트리 비디오를 결합하여 3 채널 이미지를 갖는 하나의 비디오를 프레임(frame) 단위로 생성할 수 있으나, 프레임 내에 포함된 타일(tile) 단위로 생성할 수도 있다. 타일(tile)이란, 프레임 내의 특정 영역을 나타내며, 독립적으로 인코딩 또는 디코딩하는 단위를 의미한다.
도 33은 실시예들에 따른 비디오 분리부의 동작을 나타낸다.
도 33(A) 및 도 33(B)에 나타난 비디오 분리부(33000, 33001)는 도 24의 비디오 분리부 (24004)를 의미한다. 비디오 분리부(33000, 33001)는 예를 들어, 하나의 결합 스트림 내에 포함된 서로 다른 종류의 비디오(이미지)를 분리한다.
도 33(A)를 참조하면, 비디오 분리부(33000)는 결합 비디오 스트림(결합 스트림, 33000a)을 수신한다.
결합 스트림(33000a)은 서로 다른 종류의 비디오가 결합된 스트림이다. 예를 들어, 결합 스트림은 도 32(A)에 나타난 결합된 비디오 스트림(32000c)를 의미할 수 있다.
결합 스트림(33000a)는 실시예들에 따른 오큐판시 맵 비디오 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 인터리브드 지오메트리 비디오를 포함한다. 결합 스트림(33000a)에서 i번째 프레임 인덱스를 가지는 오큐판시 맵 비디오는 동일한 프레임 인덱스를 가지는 인터리브드 지오메트리 비디오에 후속하여 위치할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
비디오 분리부(33000)는 결합 스트림(33000a)에 포함된 오큐판시 맵 비디오(33000b) 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 인터리브드 지오메트리 비디오(33000c)을 분리한다. 비디오 분리부(33000)는 오큐판시 맵 비디오(33000b)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다. 마찬가지로, 비디오 분리부(33000)는 인터리브드 지오메트리 비디오(33000c)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다.
도 33(B)를 참조하면, 비디오 분리부(33001)는 결합 비디오 스트림(결합 스트림, 33001a)을 수신한다.
결합 스트림(33001a)은 서로 다른 종류의 비디오가 결합된 스트림이다. 예를 들어, 결합 스트림은 도 32(B)에 나타난 결합된 비디오 스트림(33001c)를 의미할 수 있다.
결합 스트림(33001a)는 실시예들에 따른 오큐판시 맵 비디오 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 인터리브드 지오메트리 비디오를 포함한다. 결합 스트림(33001a)에서 i번째 프레임 인덱스를 가지는 오큐판시 맵 비디오는 동일한 프레임 인덱스를 가지는 인터리브드 지오메트리 비디오에 전속하여 위치할 수 있다.
비디오 분리부(33001)는 결합 스트림(33001a)에 포함된 오큐판시 맵 비디오(33001b) 및 해당 오큐판시 맵 비디오와 동일한 프레임 인덱스를 가지는 인터리브드 지오메트리 비디오(33001c)를 분리한다. 비디오 분리부(33001)는 오큐판시 맵 비디오(33001b)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다. 마찬가지로, 비디오 분리부(33001)는 인터리브드 지오메트리 비디오(33001c)를 프레임 인덱스의 오름차순 또는 내림차순 순서로 출력할 수 있다.
실시예들에 따른 수신 장치는 두 개의 비디오 스트림을 입력 받아 이들을 비디오 코덱을 이용하여 디코딩하고, 결합된 비디오 스트림에 대해 디코딩된 결과는 비디오 분리부(33000, 33001)를 통해 오큐판시 맵 비디오와 인터리브드 지오메트리 비디오로 분리하여, 3D 포인트 클라우드 복원 (Reconstruction)에 사용된다.
실시예들에 따른 비디오 분리부(33000, 33001)는 비디오 결합 순서와 관련된 시그널링 정보(예를 들어, mogi_stream_mixing_order)에 대응하여, 도 32(A) 또는 도 32(B)와 같은 순서에 기반하여 결합된 비디오 스트림(결합 스트림)을 수신하고 이들을 분리한다.
실시예들에 따른 수신단(디코더)에서 입력받은 두 개의 비디오 스트림은 디코더에 의해 비디오 코덱을 이용하여 디코딩된다. 결합된 비디오 스트림에 대해 디코딩된 결과는 도 33(A) 또는 도 33(B)와 같이 비디오 분리부를 통해 오큐판시 맵 비디오와 인터리브드 지오메트리 비디오로 분리되어 3D 포인트 클라우드 복원에 사용된다.
도 34는 실시예들에 따른 비디오 결합부에 의해 결합된 데이터 스트림 및 관련 시그널링 정보를 나타낸다.
도 34는 실시예들에 따른 비디오 결합부가 실시예들에 따른 2개의 비디오 스트림(예를 들어, 오큐판시 맵 비디오 및 지오메트리 비디오 또는 오큐판시 맵 비디오 및 인터리브트 지오메트리 비디오 등)들을 결합하는 순서 또는 방법을 시그널링하는 정보의 실시예를 나타낸다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
도 34를 참조하면, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보는 도 25, 도 26, 도 31, 도 32, 도 33에서 설명한 mogi_스트림_믹싱_순서 정보를 의미한다.
실시예들에 따른 송신 장치의 비디오 결합부는, 2개의 비디오 스트림을 결합하고, 결합한 순서를 나타내는 mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보를 생성할 수 있다. 실시예들에 따른 송신 장치의 비디오 분리부는, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보를 수신하고 이 정보에 기초하여 1개의 스트림에 해당하는 비디오를 2개의 스트림으로 분리한다.
도 34를 참조하면, 싱글맵픽셀인터리빙(singleMapPixelInterleaving) 정보는 실시예들에 따른 지오메트리 비디오 데이터가 인터리브드 지오메트리 비디오(interleaved geometry video)인지 여부 (즉, 송신 장치가 인터리브드 지오메트리 비디오를 생성하였는지 여부)를 나타낸다. 예를 들어, singleMapPixelInterleaving = true 일 때, V-PCC 인코더는 인터리브드 지오메트리 비디오 스트림을 생성함을 나타낸다.
예를 들어, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보의 값이 제 1의 값(예를 들어, 0)이면, 싱글맵픽셀인터리빙 정보의 값이 FALSE (즉, 인터리브드 지오메트리 비디오 미생성)이고, 결합 스트림 내의 i번째 프레임의 오큐판시 맵 비디오가 대응하는 지오메트리 비디오에 전속함을 나타낸다. 즉, 결합 스트림은 OV0 | GV_d00 | GV_d10 | OV1 | GV_d01 | GV_d11 | ……순서로 출력됨을 나타낸다.
예를 들어, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보의 값이 제 2의 값(예를 들어, 1)이면, 싱글맵픽셀인터리빙 정보의 값이 FALSE (즉, 인터리브드 지오메트리 비디오 미생성)이고, 결합 스트림 내의 i번째 프레임의 오큐판시 맵 비디오가 대응하는 지오메트리 비디오에 후속함을 나타낸다. 즉, 결합 스트림은 GV_d00 | GV_d10 | OV0 | GV_d01 | GV_d11 | OV1 | …… 순서로 출력됨을 나타낸다.
예를 들어, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보의 값이 제 3의 값(예를 들어, 2)이면, 싱글맵픽셀인터리빙 정보의 값이 TRUE (즉, 인터리브드 지오메트리 비디오 생성)이고, 결합 스트림 내의 i번째 프레임의 오큐판시 맵 비디오가 대응하는 지오메트리 비디오에 전속함을 나타낸다. 즉, 결합 스트림은 OV0 | GV0 | OV1 | GV1 | …… 순서로 출력됨을 나타낸다.
예를 들어, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보의 값이 제 4의 값(예를 들어, 3)이면, 싱글맵픽셀인터리빙 정보의 값이 TRUE (즉, 인터리브드 지오메트리 비디오 생성)이고, 결합 스트림 내의 i번째 프레임의 오큐판시 맵 비디오가 대응하는 지오메트리 비디오에 후속함을 나타낸다. 즉, 결합 스트림은 GV0 | OV0 | GV1 | OV1 | …… 순서로 출력됨을 나타낸다.
도 35은 실시예들에 따른 비디오 결합부 및 비디오 분리부의 동작을 나타낸다.
도 35(A)에 나타난 비디오 결합부(35000)는 도 23의 비디오 결합부(23006)를 의미한다. 도 35(B)에 나타난 비디오 분리부(35001)는 도 24의 비디오 분리부(24004)를 의미한다.
실시예들에 따른 포인트 클라우드 데이터 전송 장치의 인코더는, 도 35(A)에 도시된 바와 같이 비디오 결합부(예를 들어, 도 23의 비디오 결합부(23006) 등)를 통해 새롭게 생성된 비디오 스트림과 어트리뷰트 비디오 스트림은 각각의 비디오 코덱에 기반하여 압축되어 수신단으로 전달된다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 입력 받은 두 개의 비디오 스트림(예를 들어, 결합 스트림 및 어트리뷰트 비디오 스트림)은 각각의 비디오 코덱을 이용하여 디코딩되며, 결합된 결합 스트림은는 도 35(B)같이 비디오 분리부(35001, 예를 들어, 도 24의 비디오 분리부(24004))를 통해 오큐판시 맵 비디오와 지오메트리 비디오로 분리되어 3D 포인트 클라우드 복원에 사용된다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
실시예들에 따른 포인트 클라우드 데이터 전송 장치의 인코더는 오큐판시 맵 비디오와 지오메트리 비디오를 각각 1 채널 (1 channel) 이미지로 구성된 비디오 스트림일 수 있다. 그러므로 각각의 비디오 스트림을 비디오 코덱으로 압축할 때에는 1 채널 비디오 압축 방식이 적용되어 비트스트림이 생성될 수 있다. 하지만 비디오 코덱은 1 채널 비디오뿐만 아니라 3 채널 이미지로 구성된 비디오의 압축도 가능하며, 포인트 클라우드 데이터 전송 장치의 인코더는 어트리뷰트 비디오 스트림에 대하여 3 채널 비디오 압축을 적용할 수 있다.
실시예들에 따른 인코더는, 도 35(A)와 같이 오큐판시 맵 비디오와 지오메트리 비디오를 결합하여 3 채널 이미지를 갖는 하나의 비디오를 생성할 수 있다. 결합된 비디오 스트림(결합 스트림)의 i번째 프레임은 3 개의 채널 이미지를 포함하며, 각 채널 이미지는 i번째 프레임에 대한 오큐판시 맵 이미지, 또는 니어 레이어(Near layer) 지오메트리 이미지, 또는 파 레이어(Far layer) 지오메트리 이미지 중 하나가 될 수 있다.
각 채널 이미지을 구성하는 방법은 도 36에서 자세히 설명하며, 각 채널 이미지를 구성하는 방법은 mogi_3channel_img_composition을 이용하여 송신 장치가 수신 장치로 시그널링할 수 있다.
도 35(A)는 하나의 비디오 프레임(frame)을 구성하는 하나의 오큐판시 맵 비디오(OV)가 하나 또는 그 이상의 지오메트리 비디오(GV)에 의해 연관되는 경우, 비디오 결합부(32000, 32001)가 오큐판시 맵 비디오들와 하나 또는 그 이상의 대응하는 지오메트리 비디오를 결합하는 실시예를 나타낸다.
도 35(A)를 참조하면, 비디오 결합부(35000)는 오큐판시 맵 비디오의 프레임들과 지오메트리 비디오의 각 프레임을 다양한 방법으로 결합한다. 오큐판시 맵 비디오는 오큐판시 맵 이미지로, 지오메트리 비디오는 지오메트리 이미지로 상호 호칭될 수도 있다.
오큐판시 맵 비디오(35000a), 즉 OVi는 i번째 프레임에 대한 오큐판시 맵 비디오를 나타낸다. 지오메트리 비디오(35000b), 즉 GVij는 i번째 프레임의 j번째 지오메트리 비디오를 나타낸다.
실시예들에 따른 비디오 결합부(35000)는 i번째 프레임에 대한 오큐판시 맵 비디오와, 해당 오큐판시 맵 비디오와 대응하는 지오메트리 비디오를 포함하는 하나의 프레임(frame) 또는 프레임을 구성하는 결합 스트림(35000c)을 생성할 수 있다.
도 35(B)는 결합된 프레임(또는 결합 스트림) 내에 포함된 오큐판시 맵 비디오 및 대응하는 지오메트리 비디오를 분리하는 비디오 분리부(35001)를 나타낸다.
도 35(B)를 참조하면, 비디오 분리부(35001)는 각 결합 프레임(35001c)을 오큐판시 맵 비디오(35001a)와 지오메트리 비디오(35001b)로 분리한다. 오큐판시 맵 비디오는 오큐판시 맵 이미지로, 지오메트리 비디오는 지오메트리 이미지로 상호 호칭될 수도 있다.
실시예들에 따른 인코더는, 도 35(A), 도 35(B)와 같이 오큐판시 맵 비디오와 지오메트리 비디오를 결합하여 3 채널 이미지를 갖는 하나의 비디오를 프레임(frame) 단위로 생성할 수 있으나, 프레임 내에 포함된 타일(tile) 단위로 생성할 수도 있다. 타일(tile)이란, 프레임 내의 특정 영역을 나타내며, 독립적으로 인코딩 또는 디코딩하는 단위를 의미한다.
도 36는 실시예들에 따른 프레임(frame) 내 채널(channel)들 및 이와 관련된 시그널링 정보를 나타낸다.
도 36에 나타난 표는 도 35에서 실시예들에 따른 비디오 결합부(35000)가 결합한 프레임(또는 프레임을 구성하는 결합 스트림)이 어떤 방식으로 구성되는지를 나타낸다. 도 36의 표는 각 채널 이미지을 구성하는 방법을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치(예를 들어, 비디오 결합부)는 각 채널 이미지를 구성하는 방법을 나타내는 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition) 정보를 생성하고, 이를 메타데이터로 수신 장치로 송신한다.
첫 번째 열(column)은 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition) 정보의 값의 예시를 나타낸다. 두 번째 열은 결합된 비디오 스트림의 i번째 프레임에 대한 3 채널 이미지 구성의 실시예들을 나타낸다. mogi_3채널_이미지_컴포지션의 값과 두 번째 열에 나타난 조합이 반드시 도 36에 나타난 바와 같이 일치할 필요는 없으며, 도 36는 mogi_3채널_이미지_컴포지션의 값과 결합의 조합의 대응 관계의 예시를 나타낸다.
도 36에서 OVi는 i번째 프레임에 대한 오큐판시 맵 이미지(비디오), GV_d0i는 i번째 프레임의 니어 레이어(Near layer) 또는 파 레이어(Far layer)에 대한 지오메트리 이미지(비디오), GV_d1i는 GV_d0i가 니어 레이어(Near layer)에 대한 것이면 i번째 프레임의 파 레이어(Far layer)에 대한 지오메트리 이미지(비디오)를, GV_d0i가 파 레이어(Far layer)에 대한 것이면 i번째 니어 레이어(Near layer)에 대한 지오메트리 이미지(비디오)를 의미할 수 있다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
이하에서 니어 레이어(Near layer)에 대한 지오메트리 이미지는 제 1 지오메트리 이미지(비디오)로, 파 레이어(Far layer)에 대한 지오메트리 이미지는 제 2 지오메트리 이미지(비디오)로, 호칭한다.
예를 들어 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition)의 값이 0이면, 해당 프레임 내의 첫 번째 채널 이미지(비디오)는 오큐판시 맵 비디오, 두 번째 채널 이미지(비디오)는 제 1 지오메트리 이미지(비디오), 세 번째 채널 이미지(비디오)는 제 2 지오메트리 이미지(비디오)를 의미할 수 있다.
예를 들어 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition)의 값이 1이면, 해당 프레임 내의 첫 번째 채널 이미지(비디오)는 오큐판시 맵 비디오, 두 번째 채널 이미지(비디오)는 제 2 지오메트리 이미지(비디오), 세 번째 채널 이미지(비디오)는 제 1 지오메트리 이미지(비디오)를 의미할 수 있다.
예를 들어 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition)의 값이 2이면, 해당 프레임 내의 첫 번째 채널 이미지(비디오)는 제 1 지오메트리 이미지(비디오), 두 번째 채널 이미지(비디오)는 오큐판시 맵 이미지(비디오), 세 번째 채널 이미지(비디오)는 제 2 지오메트리 이미지(비디오)를 의미할 수 있다.
예를 들어 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition)의 값이 3이면, 해당 프레임 내의 첫 번째 채널 이미지(비디오)는 제 2 지오메트리 이미지(비디오), 두 번째 채널 이미지(비디오)는 오큐판시 맵 이미지(비디오), 세 번째 채널 이미지(비디오)는 제 1 지오메트리 이미지(비디오)를 의미할 수 있다.
예를 들어 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition)의 값이 4이면, 해당 프레임 내의 첫 번째 채널 이미지(비디오)는 제 1 지오메트리 이미지(비디오), 두 번째 채널 이미지(비디오)는 제 2 지오메트리 이미지(비디오), 세 번째 채널 이미지(비디오)는 오큐판시 맵 이미지(비디오)를 의미할 수 있다.
예를 들어 mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition)의 값이 5이면, 해당 프레임 내의 첫 번째 채널 이미지(비디오)는 제 2 지오메트리 이미지(비디오), 두 번째 채널 이미지(비디오)는 제 1 지오메트리 이미지(비디오), 세 번째 채널 이미지(비디오)는 오큐판시 맵 이미지(비디오)를 의미할 수 있다.
도 37는 실시예들에 따른 프레임(frame) 내 채널(channel)들과 관련된 시그널링 정보를 나타낸다.
도 37는 도 35 내지 도 36에 나타난 실시예들에 따른 포인트 클라우드 데이터 송신 장치가 시그널링하는 결합된 비디오 스트림을 위한 정보(merged_occupancy_geometry_information 정보)의 예시를 나타낸다.
실시예들에 따른 V-PCC 송신 장치는 도 30에 나타난 vpcc_parameter_set()의 신텍스들 중 결합된 비디오 스트림을 위한 정보(merged_occupancy_geometry_information 정보) syntax들을 제외한 나머지와 동일하게 정보를 시그널링 한다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 도 35 내지 도 36에 나타난 바와 같이 비디오 결합부가 3 채널 비디오 스트림을 생성하는 경우를 고려하여 머지드_오큐판시_지오메트리_정보(merged_occupancy_geometry_information) 정보는 도 37에 나타난 신텍스(syntax)에 의해 시그널링될 수 있다.
머지드_오큐판시_지오메트리_정보(merged_occupancy_geometry_information)는 도 31에서 설명한 mogi_코덱_ID(mogi_codec_id) 정보, mogi_로시_오큐판시_맵_압축_스레숄드(mogi_lossy_occupancy_map_compression_threshold) 정보, mogi_노미널_2D_비트뎁스_마이너스1(mogi_nominal_2d_bitdepth_minus1) 정보, mogi_MSB_얼라인_플래그(mogi_MSB_align_flag), mogi_지오메트리_3D_좌표_비트뎁스_마이너스1(mogi_geometry_3d_coordinates_bitdepth_minus1) 정보, mogi_오실러리_지오메트리_코덱_ID(mogi_auxiliary_geometry_codec_id) 정보를 포함한다.
머지드_오큐판시_지오메트리_정보(merged_occupancy_geometry_information)는 mogi_스트림_채널_카운트(mogi_stream_channel_cnt) 정보, mogi_스트림_믹싱_순서(mogi_stream_mixing_order) 정보, mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition) 정보를 더 포함할 수 있다.
mogi_스트림_채널_카운트[j](mogi_stream_channel_cnt[j]) 정보는 인덱스 j를 갖는 아틀라스에 대하여, 해당 파라미터의 값은 오큐판시 맵 비디오와 지오메트리 비디오가 결합될 때, 결합된 비디오가 갖는 이미지 채널의 개수를 의미한다. 예를 들어 이 값은 1 또는 3일 수 있으며, 1인 경우, 비디오 결합부를 통해 생성된 결합된 비디오 스트림은 1 채널 이미지로 구성된다. 반면, 이 값이 3일 경우에는 실시예들에 따른 비디오 결합부는 3 채널 이미지로 구성된 비디오 스트림을 생성한다.
mogi_스트림_믹싱_순서[j](mogi_stream_mixing_order[j]) 정보는 인덱스 j 를 갖는 아틀라스에 대하여, 1 채널 이미지로 구성된 결합된 비디오가 생성될 경우, 이 파라미터의 값은 오큐판시 맵 비디오와 지오메트리 비디오가 결합되는 방식을 나타낸다. mogi_스트림_믹싱_순서[j](mogi_stream_mixing_order[j]) 정보는 예를 들어, 도 31의 31001 표 또는 도 34에 나타난 표와 같을 수 있다.
mogi_3채널_이미지_컴포지션[j](mogi_3channel_img_composition[j]) 정보는 인덱스 j 를 갖는 아틀라스에 대하여, 비디오 결합부가 3 채널 이미지로 구성된 결합된 비디오를 생성할 경우, 이 파라미터의 값은 각 채널의 이미지가 구성되는 방식을 나타낸다. 각 채널은 동일한 프레임 인덱스에 대한 오큐판시 맵 이미지, 또는 니어 레이어(Near layer) 지오메트리 이미지, 또는 파 레이어(Far layer) 지오메트리 이미지 중 하나를 가지며, 이 세 가지의 이미지가 어떤 채널에 들어가는지에 따라 이 파라미터의 값이 다르게 시그널링 된다. 예를 들어, mogi_3채널_이미지_컴포지션 정보는 도 36에 나타난 바와 같을 수 있다.
도 38은 실시예들에 따른 비디오 결합부 및 비디오 분리부의 동작을 나타내는 흐름도이다.
도 38(A)는 실시예들에 따른 비디오 결합부의 동작(즉, 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 결합하는 단계)을 나타낸다. 도 38(A)에 나타난 동작은, 도 23의 비디오 결합부(23006), 도 25의 비디오 결합부(25000, 25001), 도 32의 비디오 결합부(32000, 32001)에서 수행될 수 있다.
실시예들에 따른 비디오 결합부는, 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 수신하는 단계(S3800), 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 결합하여, 하나의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성하는 단계(S3801) 및/또는 결합된 스트림(combined stream)을 출력하는 단계(S3802)를 포함한다.
S3800 단계는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 수신한다. 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들은 도 23의 부호화 전처리부(23005)에서 생성되며, 도 25에 나타난 오큐판시 맵 비디오(25000a, 25001a), 지오메트리 비디오(25000b, 25001b), 도 32에 나타난 오큐판시 맵 비디오(32000a, 32001a), 지오메트리 비디오(32000b, 32001b)를 의미한다.
S3801단계는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 결합하여, 하나의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성한다. 결합된 스트림은 예를 들어, 제 1 어큐판시 이미지 및 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함할 수 있다. S3801 단계는 도 25에 나타난 오큐판시 맵 비디오(25000a, 25001a), 지오메트리 비디오(25000b, 25001b), 도 32에 나타난 오큐판시 맵 비디오(32000a, 32001a), 지오메트리 비디오(32000b, 32001b)를 의미한다.
S3802 단계는 결합된 스트림(combined stream)을 출력한다. S3802 단계는 도 25에 나타난 오큐판시 맵 비디오(25000a, 25001a), 지오메트리 비디오(25000b, 25001b), 도 32에 나타난 오큐판시 맵 비디오(32000a, 32001a), 지오메트리 비디오(32000b, 32001b)를 입력 받아 결합된 스트림(예를 들어, 도 25의 25000c, 25001c, 32000c, 32001c 등)을 출력한다.
실시예들에 따른 메타데이터(예를 들어, V3C 파라미터 세트 등)는 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함한다. 제 1 어큐판시 이미지 및 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보는 예를 들어, 도 31의 31001에 나타난 Mogi_스트림_결합_순서(mogi_stream_mixing_order) 정보일 수 있다.
도 38(B)는 실시예들에 따른 비디오 분리부의 동작을 나타낸다. 도 38(B)에 나타난 동작은, 도 24의 비디오 분리부(23004), 도 26의 비디오 분리부(26000, 26001), 도 33의 비디오 분리부(33000, 33001)에서 수행될 수 있다.
실시예들에 따른 비디오 분리부는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 수신하는 단계(S3810), 결합된 스트림(combined stream)을 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들로 분리하는 단계(S3811) 및/또는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 출력하는 단계(S3812)를 포함한다.
S3810단계는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 수신한다. 결합된 스트림(combined stream)은 예를 들어, 도 24의 비디오 분리부(24004)가 수신하며, 도 26 및/또는 도 33의의 결합된 비디오 스트림(26000a, 26001a, 33000a, 33001a)을 의미한다.
S3811 단계는 결합된 스트림(combined stream)을 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들로 분리한다. 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들은 예를 들어, 도 26의 오큐판시 맵 비디오(26000b, 26001b), 지오메트리 비디오(26000c, 26001c), 도 33의 오큐판시 맵 비디오(33000b, 33001b), 지오메트리 비디오(33000c, 33001c)를 의미한다.
실시예들에 따른 메타데이터(예를 들어, V3C 파라미터 세트 등)는 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함한다. S3811 단계는 메타데이터 내 결합 순서를 나타내는 정보에 기초하여, 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들로 분리한다.
결합된 스트림은 제 1 어큐판시 이미지 및 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함한다.
S3812단계는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 출력한다.
도 39은 실시예들에 따른 비디오 결합부 및 비디오 분리부의 동작을 나타내는 흐름도이다.
도 39(A)는 실시예들에 따른 비디오 결합부의 동작을 나타낸다. 도 38(A)에 나타난 동작은, 도 23의 비디오 결합부(23006), 도 35의 비디오 결합부(35000)에서 수행될 수 있다.
실시예들에 따른 비디오 결합부는, 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 수신하는 단계(S3900), 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 결합하여, 3 개의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성하는 단계(S3901) 및/또는 결합된 스트림(combined stream)을 출력하는 단계(S3902)를 포함한다.
S3900 단계는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 수신한다. 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들은 도 23의 부호화 전처리부(23005)에서 생성되며, 도 35의 비디오 결합부(35000, 35001)에서 수행될 수 있다.
S3901단계는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 결합하여, 3 개의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성한다. 결합된 스트림은 제 1 어큐판시 이미지 및 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함한다. S3901 단계는 도 35의 비디오 결합부(35000, 35001)에서 수행될 수 있다.
S3902 단계는 결합된 스트림(combined stream)을 출력한다. S3902 단계는 도 35에 나타난 결합된 비디오 스트림(35000c)를 출력하는 단계를 의미할 수 있다.
실시예들에 따른 메타데이터(예를 들어, V3C 파라미터 세트 등)는 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함한다. 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서 또는 방법을 나타내는 정보는 예를 들어, 도 36에 나타난 Mogi_3채널_이미지_컴포지션(mogi_3channel_img_composition) 정보일 수 있다.
도 39(B)는 실시예들에 따른 비디오 분리부의 동작을 나타낸다. 도 39(B)에 나타난 동작은, 도 24의 비디오 분리부(23004), 도 35의 비디오 분리부(35001)에서 수행될 수 있다.
실시예들에 따른 비디오 분리부는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 수신하는 단계(S3910), 결합된 스트림(combined stream)을 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들로 분리하는 단계(S3911) 및/또는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 출력하는 단계(S3912)를 포함한다.
S3910단계는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 수신한다. 결합된 스트림(combined stream)은 예를 들어, 도 24의 비디오 분리부(24004)가 수신하며, 도 35의 비디오 분리부(35001)에 의해 수행된다.
S3911단계는 결합된 스트림(combined stream)을 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들로 분리한다. 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들은 예를 들어, 도 35의 결합된 비디오 스트림(35001c)를 의미한다.
실시예들에 따른 메타데이터(예를 들어, V3C 파라미터 세트 등)는 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함한다. S3911단계는 메타데이터 내 결합 순서를 나타내는 정보에 기초하여, 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들로 분리한다.
결합된 스트림은 제 1 어큐판시 이미지 및 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함한다.
S3912단계는 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 출력한다.
도 40은 실시예들에 따른 포인트 클라우드 데이터 송신 방법의 흐름도이다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법은 포인트 클라우드 데이터를 인코딩하는 단계(40001) 및/또는 포인트 클라우드 데이터 및 메타데이터를 전송하는 단계(40002)를 포함할 수 있다.
포인트 클라우드 데이터를 인코딩하는 단계(40001)는 예를 들어, 포인트 클라우드 데이터(V-PCC 데이터 등)를 인코딩한다. 인코딩하는 단계(40001)는 예를 들어, 도 1의 포인트 클라우드 비디오 인코더(10002), 도 4에 나타난 프로세스, 도 15에 나타난 인코딩 장치 내의 일련의 동작들, 도 18의 비디오 부호화부를 포함한 하나 또는 그 이상의 구성들, 도 21에 나타난 동작들, 도 23에 나타난 동작들을 수행할 수 있다.
실시예들에 따른 포인트 클라우드 데이터는 지오메트리(geometry) 데이터를 전달(carrying)하는 하나 또는 그 이상의 지오메트리 이미지(비디오)들 및 어큐판시(occupancy) 데이터를 전달하는 하나 또는 그 이상의 어큐판시 이미지(비디오)들을 포함할 수 있다. 따라서, 실시예들에 따른 포인트 클라우드 데이터 송신 방법은 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 결합하는 단계를 더 포함할 수 있다.
결합하는 단계는 예를 들어, 도 23의 비디오 결합부(23006)의 동작, 도 25에 나타난 비디오 결합부(25000, 25001)의 동작, 도 32에 나타난 비디오 결합부(32000, 32001)의 동작, 도 35에 나타난 비디오 결합부(35000)의 동작을 수행한다. 결합하는 단계는 예를 들어, 도 34, 도 36에 나타난 방식에 기초하여 지오메트리(geometry) 데이터를 전달(carrying)하는 하나 또는 그 이상의 지오메트리 이미지(비디오)들 및 어큐판시(occupancy) 데이터를 전달하는 하나 또는 그 이상의 어큐판시 이미지(비디오)들을 결합한다.
결합하는 단계는 예를 들어, 하나 또는 그 이상의 지오메트리 이미지들 및 하나 또는 그 이상의 어큐판시 이미지들을 하나의 채널(channel)에 기반하여 결합할 수도 있으며, 3개의 채널(channel)에 기반하여 동일한 프레임(frame) 별로 결합할 수도 있다. 여기서 프레임은 제 1 어큐판시 이미지 및 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함할 수 있다.
결합하는 단계는 예를 들어, 도 38에 나타난 동작을 일부 또는 전부를 수행할 수 있다.
포인트 클라우드 데이터 및 메타데이터를 전송하는 단계(40002)는 인코딩된 포인트 클라우드 데이터를 실시예들에 따른 수신 장치로 전송한다. 메타데이터는 예를 들어, 도 28 내지 도 30, 도 34, 도 36 내지 도 37에 나타난 신텍스를 갖는 정보를 포함할 수 있다.
도 41은 실시예들에 따른 포인트 클라우드 데이터 수신 방법의 흐름도이다.
실시예들에 따른 포인트 클라우드 데이터 수신 방법은 포인트 클라우드 데이터 및 메타데이터를 수신하는 단계(41001), 포인트 클라우드 데이터를 디코딩하는 단계(41002), 및/또는 포인트 클라우드 데이터를 렌더링하는 단계(41003)를 포함한다.
포인트 클라우드 데이터 및 메타데이터를 수신하는 단계(41001)는 실시예들에 따른 포인트 클라우드 데이터(V-PCC 데이터)를 수신한다. 메타데이터는 예를 들어, 도 28 내지 도 30, 도 34, 도 36 내지 도 37에 나타난 신텍스를 갖는 정보를 포함할 수 있다.
포인트 클라우드 데이터를 디코딩하는 단계(41002)는 예를 들어, 실시예들에 따른 포인트 클라우드 데이터를 디코딩한다. 디코딩하는 단계(41002)는 실시예들에 따른 메타데이터에 기반하여 수행될 수 있다. 디코딩하는 단계(41002)는 도 1의 포인트 클라우드 비디오 디코더(10008), 도 16의 비디오 디컴프레션(해제, 16001 내지 16004), 도 17에 나타난 동작들. 도 19에 나타난 비디오 복호화부의 동작, 도 22에 나타난 패치 시퀀스 디컴프레션(22002, 비디오 디컴프레션(22003 내지 22005)의 동작, 도 24에 나타난 비디오 복호화부(24002)의 동작을 수행할 수 있다.
포인트 클라우드 데이터는 지오메트리(geometry) 데이터를 전달(carrying)하는 하나 또는 그 이상의 지오메트리 이미지들 및 어큐판시(occupancy) 데이터를 전달하는 하나 또는 그 이상의 어큐판시 이미지들을 포함할 수 있다. 따라서, 실시예들에 따른 포인트 클라우드 데이터 수신 방법은 포인트 클라우드 데이터 내에 포함된 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들을 분리하는 단계를 더 포함할 수 있다.
포인트 클라우드 데이터는 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 하나의 채널(channel)에 기반하여 결합된 데이터 스트림(stream)일 수도 있고, 3개의 채널(channel)들에 기반하여 동일한 프레임(frame) 별로 결합된 데이터 스트림(stream)일 수도 있다.
분리하는 단계는 예를 들어, 도 24의 비디오 결합부(24004)의 동작, 도 26에 나타난 비디오 분리부(26000, 26001)의 동작, 도 33에 나타난 비디오 분리부 (33000, 33001)의 동작, 도 35에 나타난 비디오 분리부(35001)의 동작을 수행한다.
분리하는 단계는, 실시예들에 따른 메타데이터에 기반하여, 수신된 결합 스트림을 알맞게 오큐판시 맵 비디오(이미지) 데이터, 지오메트리 비디오 데이터를 프레임별로 분리한다. 오큐판시 맵 이미지는 지오메트리 이미지와 동일한 해상도로 생성된 이미지일 수 있다.
분리하는 단계는 예를 들어, 도 39에 나타난 동작을 일부 또는 전부를 수행할 수 있다.
포인트 클라우드 데이터를 렌더링하는 단계(41003)는 실시예들에 따른 포인트 클라우드 데이터를 재구성(reconstruct)하여 렌더링(rendering)한다. 렌더링하는 단계(41003)는 예를 들어, 도 19의 포인트 클라우드 렌더러의 동작, 도 22의 지오메트리/어트리뷰트 재구성(22006), 지오메트리 포스트-프로세싱부(22007), 어트리뷰트 트랜스퍼&스무딩부(22008)의 동작, 도 24의 포인트 클라우드 렌더러(24009)의 동작을 수행한다.
실시예들은 방법 및/또는 장치 관점에서 설명되었으며, 방법의 설명 및 장치의 설명은 상호 보완하여 적용될 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 실시예들의 권리범위에 속한다. 실시예들에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다. 실시예들의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 실시예들은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 실시예들의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 실시예들의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
실시예들의 장치의 다양한 구성요소들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 조합에 의해 수행될 수 있다. 실시예들의 다양한 구성요소들은 하나의 칩, 예를 들면 하나의 하드웨어 서킷으로 구현될 수 있다 실시예들에 따라, 실시예들에 따른 구성요소들은 각각 별도의 칩들로 구현될 수 있다. 실시예들에 따라, 실시예들에 따른 장치의 구성요소들 중 적어도 하나 이상은 하나 또는 그 이상의 프로그램들을 실행 할 수 있는 하나 또는 그 이상의 프로세서들로 구성될 수 있으며, 하나 또는 그 이상의 프로그램들은 실시예들에 따른 동작/방법들 중 어느 하나 또는 그 이상의 동작/방법들을 수행시키거나, 수행시키기 위한 인스트럭션들을 포함할 수 있다. 실시예들에 따른 장치의 방법/동작들을 수행하기 위한 실행 가능한 인스트럭션들은 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적이지 않은 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있거나, 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적인 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있다. 또한 실시예들에 따른 메모리는 휘발성 메모리(예를 들면 RAM 등)뿐 만 아니라 비휘발성 메모리, 플래쉬 메모리, PROM등을 전부 포함하는 개념으로 사용될 수 있다. 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함될 수 있다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이 문서에서 “/”와 “,”는 “및/또는”으로 해석된다. 예를 들어, “A/B”는 “A 및/또는 B”로 해석되고, “A, B”는 “A 및/또는 B”로 해석된다. 추가적으로, “A/B/C”는 “A, B 및/또는 C 중 적어도 하나”를 의미한다. 또한, “A, B, C”도 “A, B 및/또는 C 중 적어도 하나”를 의미한다. 추가적으로, 이 문서에서 “또는”는 “및/또는”으로 해석된다. 예를 들어, “A 또는 B”은, 1) “A” 만을 의미하고, 2) “B” 만을 의미하거나, 3) “A 및 B”를 의미할 수 있다. 달리 표현하면, 본 문서의 “또는”은 “추가적으로 또는 대체적으로(additionally or alternatively)”를 의미할 수 있다.
제1, 제2 등과 같은 용어는 실시예들의 다양한 구성요소들을 설명하기 위해 사용될 수 있다. 하지만 실시예들에 따른 다양한 구성요소들은 위 용어들에 의해 해석이 제한되어서는 안된다. 이러한 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위해 사욛외는 것에 불과하다. 것에 불과하다. 예를 들어, 제1 사용자 인풋 시그널은 제2사용자 인풋 시그널로 지칭될 수 있다. 이와 유사하게, 제2사용자 인풋 시그널은 제1사용자 인풋시그널로 지칭될 수 있다. 이러한 용어의 사용은 다양한 실시예들의 범위 내에서 벗어나지 않는 것으로 해석되어야만 한다. 제1사용자 인풋 시그널 및 제2사용자 인풋 시그널은 모두 사용자 인풋 시그널들이지만, 문맥 상 명확하게 나타내지 않는 한 동일한 사용자 인풋 시그널들을 의미하지 않는다.
실시예들을 설명하기 위해 사용된 용어는 특정 실시예들을 설명하기 위한 목적으로 사용되고, 실시예들을 제한하기 위해서 의도되지 않는다. 실시예들의 설명 및 청구항에서 사용된 바와 같이, 문맥 상 명확하게 지칭하지 않는 한 단수는 복수를 포함하는 것으로 의도된다. 및/또는 표현은 용어 간의 모든 가능한 결합을 포함하는 의미로 사용된다. 포함한다 표현은 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들이 존재하는 것을 설명하고, 추가적인 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들을 포함하지 않는 것을 의미하지 않는다. 실시예들을 설명하기 위해 사용되는, ~인 경우, ~때 등의 조건 표현은 선택적인 경우로만 제한 해석되지 않는다. 특정 조건을 만족하는 때, 특정 조건에 대응하여 관련 동작을 수행하거나, 관련 정의가 해석되도록 의도되었다.
또한, 본 문서에서 설명하는 실시예들에 따른 동작은 실시예들에 따라서 메모리 및/또는 프로세서를 포함하는 송수신 장치에 의해 수행될 수 있다. 메모리는 실시예들에 따른 동작을 처리/제어하기 위한 프로그램들을 저장할 수 있고, 프로세서는 본 문서에서 설명한 다양한 동작을 제어할 수 있다. 프로세서는 컨트롤러 등으로 지칭가능하다. 실시예들에 동작들은 펌웨어, 소프트웨어, 및/또는 그것들의 조합에 의해 수행될 수 있고, 펌웨어, 소프트웨어, 및/또는 그것들의 조합은 프로세서에 저장되거나 메모리에 저장될 수 있다.
상술한 바와 같이, 실시예들을 실시하기 위한 최선의 형태에서 관련 내용을 설명하였다.
상술한 바와 같이, 실시예들은 포인트 클라우드 데이터 송수신 장치 및 시스템에 전체적 또는 부분적으로 적용될 수 있다.
당업자는 실시예들의 범위 내에서 실시예들을 다양하게 변경 또는 변형할 수 있다.
실시예들은 변경/변형들을 포함할 수 있고, 변경/변형은 청구항들 및 그 와 동일한 것들의 범위를 벗어나지 않는다.

Claims (20)

  1. 포인트 클라우드 데이터를 인코딩하는 단계; 및
    상기 포인트 클라우드 데이터 및 메타데이터를 전송하는 단계; 를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  2. 제 1항에 있어서,
    상기 포인트 클라우드 데이터는 지오메트리(geometry) 데이터를 전달(carrying)하는 하나 또는 그 이상의 지오메트리 이미지들 및 어큐판시(occupancy) 데이터를 전달하는 하나 또는 그 이상의 어큐판시 이미지들을 포함하는,
    포인트 클라우드 데이터 송신 방법.
  3. 제 2항에 있어서,
    상기 포인트 클라우드 데이터 송신 방법은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들을 결합하는 단계를 더 포함하는,
    포인트 클라우드 데이터 송신 방법.
  4. 제 3항에 있어서, 상기 결합하는 단계는 하나의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성하고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함하고,
    상기 메타데이터는 상기 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  5. 제 3항에 있어서, 상기 결합하는 단계는 3 개의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성하고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함하는 결합 프레임을 포함하고,
    상기 메타데이터는 상기 결합 프레임 내 상기 제 1 어큐판시 이미지 및 상기 두 개의 지오메트리 이미지들의 순서를 나타내는 정보를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  6. 포인트 클라우드 데이터를 인코딩하는 인코더; 및
    상기 포인트 클라우드 데이터 및 메타데이터를 전송하는 트랜스미터; 를 포함하는,
    포인트 클라우드 데이터 송신 장치.
  7. 제 6항에 있어서,
    상기 포인트 클라우드 데이터는 지오메트리(geometry) 데이터를 전달(carrying)하는 하나 또는 그 이상의 지오메트리 이미지들 및 어큐판시(occupancy) 데이터를 전달하는 하나 또는 그 이상의 어큐판시 이미지들을 포함하는,
    포인트 클라우드 데이터 송신 장치.
  8. 제 7항에 있어서,
    상기 포인트 클라우드 데이터 송신 장치는 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들을 결합하는 결합부를 더 포함하는,
    포인트 클라우드 데이터 송신 장치.
  9. 제 8항에 있어서, 상기 결합부는 하나의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성하고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함하고,
    상기 메타데이터는 상기 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함하는,
    포인트 클라우드 데이터 송신 장치.
  10. 제 8항에 있어서, 상기 결합부는 3 개의 채널(channel)에 기반한 결합된 스트림(combined stream)을 생성하고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함하는 결합 프레임을 포함하는,
    포인트 클라우드 데이터 송신 장치.
  11. 포인트 클라우드 데이터 및 메타데이터를 수신하는 단계;
    상기 포인트 클라우드 데이터를 디코딩하는 단계; 및
    상기 포인트 클라우드 데이터를 렌더링하는 단계; 를 포함하는,
    포인트 클라우드 데이터 수신 방법.
  12. 제11항에 있어서,
    상기 포인트 클라우드 데이터는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 포함하는,
    포인트 클라우드 데이터 수신 방법.
  13. 제 12항에 있어서,
    상기 포인트 클라우드 데이터 수신 방법은 상기 결합된 스트림(combined stream)을 상기 포인트 클라우드 데이터 내에 포함된 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들로 분리하는 단계를 더 포함하는,
    포인트 클라우드 데이터 수신 방법.
  14. 제 13항에 있어서,
    상기 결합된 스트림은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 하나의 채널(channel)에 기반하여 결합된 데이터 스트림이고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함하고,
    상기 메타데이터는 상기 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함하는,
    포인트 클라우드 데이터 수신 방법.
  15. 제 13항에 있어서,
    상기 결합된 스트림은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 3개의 채널(channel)에 기반하여 결합된 데이터 스트림이고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함하는,
    포인트 클라우드 데이터 수신 방법.
  16. 포인트 클라우드 데이터 및 메타데이터를 수신하는 수신부;
    상기 포인트 클라우드 데이터를 디코딩하는 디코더; 및
    상기 포인트 클라우드 데이터를 렌더링하는 렌더러; 를 포함하는,
    포인트 클라우드 데이터 수신 장치.
  17. 제16항에 있어서,
    상기 포인트 클라우드 데이터는 지오메트리(geometry) 데이터 및 어큐판시(occupancy) 데이터를 전달하는 결합된 스트림(combined stream)을 포함하는,
    포인트 클라우드 데이터 수신 장치.
  18. 제 17항에 있어서,
    상기 포인트 클라우드 데이터 수신 장치는 상기 결합된 스트림(combined stream)을 상기 포인트 클라우드 데이터 내에 포함된 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들로 분리하는 분리부를 더 포함하는,
    포인트 클라우드 데이터 수신 장치.
  19. 제 18항에 있어서,
    상기 결합된 스트림은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 하나의 채널(channel)에 기반하여 결합된 데이터 스트림이고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스(frame index)를 가지는 적어도 하나의 지오메트리 이미지를 포함하고,
    상기 메타데이터는 상기 제 1 어큐판시 이미지 및 상기 적어도 하나의 지오메트리 이미지의 결합 순서를 나타내는 정보를 포함하는,
    포인트 클라우드 데이터 수신 장치.
  20. 제 18항에 있어서,
    상기 결합된 스트림은 상기 하나 또는 그 이상의 지오메트리 이미지들 및 상기 하나 또는 그 이상의 어큐판시 이미지들이 3개의 채널(channel)에 기반하여 결합된 데이터 스트림이고,
    상기 결합된 스트림은 제 1 어큐판시 이미지 및 상기 제 1 어큐판시 이미지와 동일한 프레임 인덱스를 가지는 두 개의 지오메트리 이미지들을 포함하는,
    포인트 클라우드 데이터 수신 장치.
PCT/KR2021/000083 2020-03-30 2021-01-05 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 WO2021201386A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0038313 2020-03-30
KR20200038313 2020-03-30

Publications (1)

Publication Number Publication Date
WO2021201386A1 true WO2021201386A1 (ko) 2021-10-07

Family

ID=77929500

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/000083 WO2021201386A1 (ko) 2020-03-30 2021-01-05 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Country Status (1)

Country Link
WO (1) WO2021201386A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190087979A1 (en) * 2017-09-18 2019-03-21 Apple Inc. Point cloud compression
WO2019078000A1 (ja) * 2017-10-16 2019-04-25 ソニー株式会社 情報処理装置および方法
WO2019079032A1 (en) * 2017-10-20 2019-04-25 Interdigital Vc Holdings, Inc. METHOD, APPARATUS AND FLOW FOR VOLUMETRIC VIDEO FORMAT
US20190197739A1 (en) * 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
WO2019135024A1 (en) * 2018-01-02 2019-07-11 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190087979A1 (en) * 2017-09-18 2019-03-21 Apple Inc. Point cloud compression
WO2019078000A1 (ja) * 2017-10-16 2019-04-25 ソニー株式会社 情報処理装置および方法
WO2019079032A1 (en) * 2017-10-20 2019-04-25 Interdigital Vc Holdings, Inc. METHOD, APPARATUS AND FLOW FOR VOLUMETRIC VIDEO FORMAT
US20190197739A1 (en) * 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
WO2019135024A1 (en) * 2018-01-02 2019-07-11 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video

Similar Documents

Publication Publication Date Title
WO2020190075A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020190114A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002633A2 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002657A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189895A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021066312A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021187737A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021025251A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189903A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021141264A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021206333A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189943A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021141233A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021071257A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021210860A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002592A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021256909A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021141258A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002558A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법.
WO2022015006A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021261865A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022098152A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020190097A1 (ko) 포인트 클라우드 데이터 수신 장치, 포인트 클라우드 데이터 수신 방법, 포인트 클라우드 데이터 처리 장치 및 포인트 클라우드 데이터 처리 방법
WO2021002636A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022050688A1 (ko) 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법

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: 21781419

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21781419

Country of ref document: EP

Kind code of ref document: A1