WO2019203523A1 - 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치 - Google Patents

포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치 Download PDF

Info

Publication number
WO2019203523A1
WO2019203523A1 PCT/KR2019/004546 KR2019004546W WO2019203523A1 WO 2019203523 A1 WO2019203523 A1 WO 2019203523A1 KR 2019004546 W KR2019004546 W KR 2019004546W WO 2019203523 A1 WO2019203523 A1 WO 2019203523A1
Authority
WO
WIPO (PCT)
Prior art keywords
missed
point
auxiliary
group
bits
Prior art date
Application number
PCT/KR2019/004546
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 WO2019203523A1 publication Critical patent/WO2019203523A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/363Image reproducers using image projection screens
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Definitions

  • the present disclosure relates to a method and apparatus for processing data relating to a point cloud.
  • a point cloud refers to a massive set of points, and a large amount of three-dimensional data refers to a point cloud.
  • a point cloud refers to a massive set of points and a large amount of three-dimensional data. May be expressed as a point cloud.
  • a point cloud is a value that is compared with a 2D image.
  • the point cloud is a method of representing a point on a three-dimensional image. For example, the point cloud may be represented as (x, y, z, R, G, B).
  • the point cloud which is composed of numerous colors and location data and forms a spatial structure, becomes more specific as the density gets higher and becomes a 3D model.
  • the present disclosure provides a method and apparatus for efficiently processing data relating to a point cloud. Specifically, the present disclosure provides a method and apparatus for efficiently compressing a point cloud, which is three-dimensional data by using a two-dimensional data compression codec, and a method and apparatus for reconstructing a 3D image by processing the compressed and transmitted data. To provide.
  • a method of processing data relating to a point cloud may include identifying auxiliary bits in data relating to a point cloud, and projecting data regarding a point cloud except the identified auxiliary bits to a plurality of planes.
  • the size of each of the auxiliary bits may be equal to the difference between the size of data relating to the point cloud and the size of data that the codec used to generate the signal supports encoding.
  • the process of identifying the missed points may identify, as the missed point, a point whose distance from the nearest point among the plurality of points included in the point cloud is greater than or equal to a threshold value.
  • the method may further include setting a flag for the identified missed points.
  • the information about the first auxiliary bits includes auxiliary bits of a midpoint of each of the patches included in the plurality of projection images, and includes a coordinate of the midpoint of each of the patches and a coordinate of the midpoint of each of the patches. It may include at least one of the distance between the missed points.
  • the information about the first auxiliary bits may include auxiliary bits of a midpoint of a patch closest to a missed point among patches included in the plurality of projection images, and may include auxiliary bits of the missed point and auxiliary bits of the missed point. It may include a difference value of the auxiliary bit of the midpoint.
  • the method may further include grouping the missed points into a plurality of groups, and the information about the first auxiliary bits may include a group identifier of each of the plurality of groups and each of the plurality of groups. It may include a representative auxiliary bit of.
  • the grouping of the missed points may be based on at least one of a similarity between the first auxiliary bits and a distance between the missed points.
  • the method may further include calculating a value, wherein the information about the first auxiliary bits may include a group identifier of each of the plurality of groups, a representative auxiliary bit of the first group, and the calculated difference value. Can be.
  • the first group may be a group having the largest representative auxiliary bit among the plurality of groups.
  • a method of processing data relating to a point cloud includes a signal including second auxiliary bits except for first auxiliary bits corresponding to mist points, information about the first auxiliary bits, and a packed image.
  • Receiving and decoding a signal unpacking the packed image to identify a plurality of projected images, identifying the missed points in the plurality of projected images, and receiving information about the first auxiliary bits.
  • Estimating the first auxiliary bits of the missed points based on the data; and reconstructing a point cloud based on the data projected back-projected on the plurality of projection images, the estimated first auxiliary bits, and the second auxiliary bits.
  • the size of each of the auxiliary bits may be equal to the difference between the size of data relating to the point cloud and the size of data that the codec used to generate the signal supports encoding.
  • the identifying of the missed points may be performed by identifying a flag included in the decoded signal.
  • the estimating of the first auxiliary bits may include identifying a distance between a coordinate of a midpoint of each of the patches included in the plurality of projection images included in the information about the first auxiliary bits and a missed point. Calculating a distance between the coordinates of the midpoint of each of the patches and the missed point based on the coordinates of the midpoint of each of the patches included in the information about the first auxiliary bits; Estimating an auxiliary bit of the missed point based on the auxiliary bit of each midpoint of the patches included in the coordinates of each midpoint, the distance between the missed point, and the information about the first auxiliary bits. It may include.
  • the estimating of the first auxiliary bits may be performed based on a value of a weight calculated in inverse proportion to a distance between a coordinate of a midpoint of each of the patches and a distance between the missed points and the auxiliary bit of each midpoint of the patches. Estimating the auxiliary bit of the missed point by calculating a weighted average.
  • the estimating of the first auxiliary bits may include identifying a patch adjacent to a missed point among patches included in the plurality of projection images, and determining the first auxiliary bits of the patch included in the information about the first auxiliary bits. And estimating an auxiliary bit of the missed point based on a difference value between the auxiliary bit of the midpoint, the auxiliary bit of the midpoint of the patch, and the auxiliary bit of the missed point.
  • the estimating of the first auxiliary bits may be performed based on a group identifier of a group including a missed point and a representative auxiliary bit of the missed point group, which the information about the first auxiliary bits includes. Estimating an auxiliary bit of a point.
  • the estimating of the first auxiliary bits may include: a first group and a missed point included among the group identifiers of a plurality of groups grouping the missed points included in the information about the first auxiliary bits; Identifying a second group, and a difference value between a representative auxiliary bit of the first group included in the information about the first auxiliary bits, a representative auxiliary bit of the first group, and a representative auxiliary bit of the second group; And estimating an auxiliary bit of the missed point based on the estimated bit.
  • the first group may be a group having the largest representative auxiliary bit among the plurality of groups.
  • the compressed and transmitted data may be processed to reconstruct a 3D image.
  • FIG. 1 is a flowchart schematically illustrating a processing method for transmitting a 3D image represented by a point cloud according to an embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating a method for projecting a 3D image represented by a point cloud according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of an image in which a 3D image represented by a point cloud is projected according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating a method of packing a projection image according to an exemplary embodiment.
  • FIG. 5 is a diagram schematically illustrating a process of processing data of a 3D image for transmission of a 3D image represented by a point cloud according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram for describing a method of transmitting information about an offset of a missed point of a projected image, according to an exemplary embodiment.
  • FIG. 7 is a flowchart illustrating a method of estimating an offset of missed points of a projected image, according to an exemplary embodiment.
  • FIG. 8 is a flowchart illustrating a method of transmitting information about offsets of missed points according to points according to an embodiment of the present disclosure.
  • FIG. 9 is a flowchart illustrating a method of estimating an offset of a missed point according to an embodiment of the present disclosure.
  • FIG. 10 is a diagram for describing a method of transmitting information about an offset of a missed point according to an embodiment of the present disclosure.
  • FIG. 11 is a diagram for describing a method of transmitting information about an offset of a missed point according to an embodiment of the present disclosure.
  • FIG. 12 is a flowchart illustrating a method of transmitting information about offsets of missed points according to an embodiment of the present disclosure.
  • FIG. 13 is a diagram for describing a method of transmitting information about an offset of a missed point according to an embodiment of the present disclosure.
  • FIG. 14 is a flowchart illustrating a method of estimating information on offsets of missed points according to an embodiment of the present disclosure.
  • 15 is a diagram schematically illustrating a configuration of an apparatus for transmitting or receiving data according to an embodiment of the present disclosure.
  • the 'module' or 'unit' performs at least one function or operation, and may be implemented in hardware or software or in a combination of hardware and software.
  • a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module except for 'modules' or 'units' that need to be implemented by specific hardware, and may be implemented as at least one processor.
  • an expression such as “or” includes any and all combinations of words listed together.
  • “A or B” may include A, may include B, or may include both A and B.
  • Expressions such as “first,” “second,” “first,” or “second,” and the like used in various embodiments of the present disclosure may modify various elements of the various embodiments, but limit the corresponding elements. I never do that.
  • the above expressions do not limit the order and / or importance of the corresponding elements.
  • the above expressions may be used to distinguish one component from another.
  • both a first user device and a second user device are user devices and represent different user devices.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • a component when referred to as being “connected” or “connected” to another component, the component may be directly connected to or connected to the other component. However, it will be understood that there may be new other components between the certain components and the other components. On the other hand, when a component is referred to as being “directly connected” or “directly connected” to another component, it will be understood that there is no new other component between the component and the other component. Should be able.
  • This method may be performed by an apparatus for transmitting data.
  • 1 is a flowchart schematically illustrating a processing method for transmitting a 3D image represented by a point cloud according to an embodiment of the present disclosure.
  • 2 is a diagram illustrating a method for projecting a 3D image represented by a point cloud according to an embodiment of the present disclosure.
  • 3 is a diagram illustrating an example of an image in which a 3D image represented by a point cloud is projected according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating a method of packing a projection image according to an exemplary embodiment.
  • FIG. 5 is a diagram schematically illustrating a process of processing data of a 3D image for transmission of a 3D image represented by a point cloud according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram for describing a method of transmitting information about an offset of a missed point of a projected image, according to an exemplary embodiment.
  • a method of processing a 3D image represented by a point cloud includes estimating a normal vector of each point in the point cloud (101).
  • an object 200 refers to an object in a three-dimensional space of three-dimensional data, and may be represented by a point cloud that is a collection of a plurality of points.
  • the object 200 may represent one scene of a plurality of scenes of the 3D image.
  • Each point of the object 200 may include data about a position (x, y, z) and color (R (red), G (green), B (blue)).
  • the present disclosure discloses that one point included in the point cloud has a position coordinate (x, y, z) having a size of 10 bits for each coordinate, and a color coordinate having a size of 8 bits for each coordinate (R, Assume the case represented by G, B). That is, the position coordinate of one point can be represented by 10 bits of x coordinate, 10 bits of y coordinate, 10 bits of z coordinate, and 30 bits in total, and color is 8 bits of R value, 8 bits of G value, and B value. Can be represented by 8 bits of 24 bits.
  • the virtual hexahedral space 201 is the first XY plane (XY0), the second XY plane (XY1), the first YZ plane (YZ0), the second YZ plane (YZ1), the first XZ plane (XZ0), the second It may be composed of the XZ plane (XZ1).
  • the normal vector of the first XY plane XY0 may be in the -z direction
  • the normal vector of the second XY plane XY1 may be in the + z direction.
  • the normal vector of the first YZ plane YZ0 may be in the -x direction, and the normal vector of the second YZ plane YZ1 may be in the + x direction.
  • the normal vector of the first XZ plane XZ0 may be in the -y direction, and the normal vector of the second XZ plane XZ1 may be in the + y direction.
  • the normal vector 202 of the respective points of the object 200 can be estimated first.
  • the normal vector 202 of each point may be estimated with respect to a plane formed by the point and adjacent points within a predetermined area.
  • a plurality of segments may be grouped to form a plurality of segments.
  • points having normal vectors of the same or similar direction may be grouped into one segment.
  • the similar direction may be a case where the similarity between the directions of normal vectors is greater than or equal to a predetermined threshold value.
  • adjacent points having a distance between the points less than or equal to a certain value may be grouped into one segment.
  • both the direction of the normal vector and the distance between the points may be considered, and even if the similarity between the directions of the normal vectors falls or the distance between the points is more than a predetermined value, the color of the point is the same or similar. You can also group.
  • the representative normal vector of this segment may be an average value of normal vectors of a plurality of points included in the segment.
  • a plurality of points of the object 200 represented by the point cloud may be projected onto a plane constituting the virtual hexahedral space 201.
  • the direction of the estimated normal vector of the point and the direction of the normal vector of the projection plane may be identical or similar.
  • the similar direction may be a case where the similarity between the directions of normal vectors is greater than or equal to a predetermined threshold value.
  • the points may be projected in units of segments grouping the points.
  • any one of required projection methods (ERP), octahedron projection (OHP), cylinder projection, cube projection, and various projection methods available in the art may be used.
  • one point of the point cloud has an X coordinate, a y coordinate, a z coordinate, each having a size of 10 bits, and an R (red) value, a G (green) value, and B, each having a size of 8 bits. Assume the case is expressed as a (blue) value.
  • a codec for encoding such data may not support encoding of 10 bits of data.
  • a codec for encoding such data may be optimized for encoding data of bits smaller than 10 bits.
  • a codec used for encoding data to be transmitted supports 8-bit data encoding.
  • the codec supports 8-bit data encoding. Encoding is possible. However, since the x, y and z coordinates of the position of the point have 10 bits each, two bits of auxiliary bits must be separately encoded for each coordinate.
  • the lower 2 bits are distinguished from the 10 bits of the x coordinate, the lower 2 bits are distinguished from the 10 bits of the y coordinate, and the lower 2 bits are distinguished from the 10 bits of the z coordinate, so that a total of 6 bits are encoded separately. Can be sent.
  • the lower 2 bits may be the least significant 2 bits of the 10 bits, and may be located at the end of the 10 bits.
  • the term offset may be used in the same sense as the auxiliary bit.
  • each point of the point cloud has 8 bits for each of the x, y, and z coordinates, and 8 bits for each of the red, green, and blue values. It can have data of bit size. In this way, a point cloud with 48 bits per point can be projected.
  • the projection is the first XY plane (XY0), the second XY plane (XY1), the first YZ plane (YZ0), the second YZ plane (YZ1), the first XZ plane (XZ0), the second XZ plane ( Projection may be performed repeatedly in the order of XZ1).
  • FIG. 3 shows a first projection image (projection # 0) projected onto the first XY plane (XY0), a second projection image (projection # 1) projected onto the second XY plane (XY1), and a first YZ plane (YZ0).
  • An example of the eighth projection image (projection # 7) projected second by XY1 and the ninth projection image (projection # 8) projected by the second YZ plane YZ0 is illustrated.
  • the projection order and the number of projections are only examples.
  • Each point included in the projected image has 8 bits each for x, y, and z coordinates, and 8 bits for each of the red (R), green (G), and blue (B) values. It can have data of size.
  • the 10th projection image projected second to the second YZ plane YZ1 according to the number of projections, the 11th projection image projected second to the first XZ plane XZ0, and the second XZ plane ( XZ1), the 12th projected image projected secondly, the 13th projected image projected thirdly into the first XY plane XY0, the 14th projected image projected third of the second XY plane XY1 ... More may exist.
  • the number of points included in the projected image may decrease.
  • the first projection is made to the first XY plane XY0, 80% of the points where the normal vector direction is the same as or similar to the normal vector direction of the first XY plane XY0 are projected, and the first XY plane ( XY0) may be because the normal vector direction is projected with 16% of points that are the same or similar to the normal vector direction of the first XY plane XY0.
  • this figure may be an example.
  • the points having normal vectors in the same or similar direction to the normal vector direction of the first XY plane XY0 are projected closer to 100%.
  • the interval between the points included in the projection image may be widened.
  • these points are referred to as missed points. That is, when the distance between the first point included in the projection image and the second point closest to the first point is greater than or equal to the threshold, the first point may correspond to a missed point.
  • the missed points may be marked with a flag and transmitted to the receiver, thereby providing information on whether or not missed points are applicable to the receiver.
  • the 2D projection images may be packed (103).
  • the plurality of projection images 400, 401, 402 may be packed into one or more packed 2D images 403.
  • Packing may mean modifying and / or repositioning at least some of the projected 2D projection images 400, 401, 402 into one or more packed 2D images 403.
  • the deformation may include resizing, transforming, rotating and / or resampling (e.g., upsampling, downsampling, differential sampling based on location in the area), and the like. Can mean.
  • This packing scheme may be referred to as region-wise packing. Although only three projection images 400, 401, and 402 are illustrated in FIG. 4, three or more projection images may be packed.
  • the packed data and offsets are encoded (104) and transmitted to the receiving device (105).
  • the offset of at least one missed point is excluded from encoding and transmission.
  • offsets of all missed points may be excluded from encoding and transmission.
  • FIG. 5 schematically illustrates a process in which point cloud data, which is 3D data, is processed for transmission, and is illustrated based on the position coordinates of one point included in the point cloud.
  • the lower 2 bits are identified from a total of 30 bits of 10 bits each of the x coordinate, the y coordinate, and the z coordinate to separately encode 6-bit auxiliary bits (offsets).
  • the offset of the missed point may be excluded from the encoding.
  • a total of 24 bits of data of 8 bits each of coordinates, y coordinates, and z coordinates excluding the offset encode a packed 2D image through projection and packing.
  • data for R, G, and B, each having 8 bits may also be projected, packed, and encoded together with the position data.
  • the encoded offset except for the encoded packed 2D image and missed point offset is transmitted to the receiving device.
  • Encoding includes 2D video such as High Efficiency Video Coding (HEVC), H.264, Future Video Codec, Advanced Video Coding (AVC), Pure Video 9 (VP9), Pure Video 8 (VP8), and Joint Video Exploration Team (JVET).
  • HEVC High Efficiency Video Coding
  • H.264 Future Video Codec
  • AVC Advanced Video Coding
  • VP9 Pure Video 9
  • VP8 Pure Video 8
  • JVET Joint Video Exploration Team
  • the encoded data may be processed or transmitted according to a predetermined transmission protocol through processing such as splitting or adding a header.
  • data e.g, metadata
  • the transmission of data in the transmitting device may follow MPEG Media Transport (MMT) or Dynamic Adaptive Streaming over HTTP (DASH), but is not necessarily limited thereto.
  • MMT MPEG Media Transport
  • DASH Dynamic Adaptive Streaming over HTTP
  • data related to audio may be transmitted to the receiving device in addition to data related to the image.
  • the offset of the missed point may not be transmitted.
  • the projected image may include missed points having a distance from an adjacent point greater than or equal to a threshold value.
  • the offset of the missed point may be separately encoded and transmitted as in the offset of FIG. 5, a method for further reducing the transmission amount may be required. At this time, the amount of data transmission can be reduced by transmitting information about the offset of the missed point having smaller data without transmitting the offset of the missed point.
  • the first projected image of the first projected image on the first XY (XY0) plane and the second projected image of the second projected image on the first XY (XY0) plane may be referred to as an object of the third projected image projected onto the second patch 601 and the first XY (XY0) plane. Assume the third patch 602 includes missed points 603, 604, 605, 606, 607.
  • the offsets of the missed points 603, 604, 605, 606, and 607 may correspond to the first offset value offset_1 and the first midpoint C1 of the first midpoint C1 of the first patch 600. It may be estimated in consideration of the distance ⁇ 1 of the second patch, the second offset value offset_2 of the second midpoint C2 of the second patch 601, and the distance ⁇ 1 from the second midpoint C2.
  • the midpoint here may be the center of gravity of the patch.
  • the first offset value offset_1 of the first midpoint C1 of the first patch 600 the first missed point 603 and the first midpoint C1.
  • Distance from ⁇ 1 the second offset value offset_2 of the second midpoint C2 of the second patch 601, and the distance between the first missed point 603 and the second midpoint C2 ( In consideration of ⁇ 1), a weighted average est_mp_offset_1 based on a weight inversely proportional to the distance may be calculated as shown in Equation 1, and it may be estimated as an offset of the first missed point 603. .
  • the offset of the first missed point 603 does not need to be transmitted, and the data transmission amount can be reduced by the amount of offset data of the first missed point 603 that is not transmitted.
  • the process of estimating the offset of the first missed point 603 may be performed by the apparatus that has received the transmitted data.
  • the offset of the first missed point 603 instead of transmitting the offset of the first missed point 603, information about the coordinates of the midpoint C1 of the first patch 600 and the coordinates of the midpoint C2 of the second patch 601 may be transmitted.
  • the distance ⁇ 1 between the first missed point 603 and the midpoint C1 of the first patch 600 and the first missed point 603 are described.
  • the receiving device may estimate the offset of the first missed point 603 by receiving the information about the missed point.
  • the offset estimation method for missed points may be provided by the transmitting apparatus by displaying an estimation mode during data transmission, or the receiving apparatus may select an estimation mode based on the received information.
  • the offset estimation of the second missed point 604, the third missed point 605, and the like may also be performed in the same manner. That is, taking the second missed point 604 as an example, the distance? 2 between the second missed point 604 and the midpoint C1 of the first patch 600 and the second missed point 604 and the first Information about the distance? 2 from the midpoint C2 of the two patches 601 may be further transmitted, and the receiving device may receive the information to estimate the offset of the second missed point 604.
  • the weighted average est_mp_offset_1 may be calculated as shown in Equation 2, and it may be estimated as the offset of the first missed point.
  • offset (i) is the offset of the midpoint of the i-th patch
  • distance (i) is the distance between the midpoint of the i-th patch and the first missed point
  • distance (k) is the midpoint of the k-th patch. And the distance between the first missed point.
  • the transmitting device may transmit information on the offset of the missed point including at least one of the midpoint coordinates of the patch, the distance between the missed point and the midpoint of the patch, and the offset of the midpoint of the patch. Based on this, it is possible to estimate the offset of the missed point.
  • FIG. 7 is a flowchart illustrating a method of estimating an offset of missed points of a projected image, according to an exemplary embodiment.
  • the receiving device decodes the received data (700).
  • the decoded data may include packed 2D images, offsets of points excluding missed points, and offsets of missed points.
  • the receiving device may restore the projection images by unpacking the packed 2D image. Unpacking may be an inverse transformation of the packing method performed at the transmitting device. To this end, the transmitting apparatus and the receiving apparatus may share in advance about the packing method.
  • the receiving device can identify the missed point in the reconstructed projection images.
  • the receiving device may check a flag of a point included in the projection images (701), move to the next point if it is not a missed point (702), and identify N patches if it is a missed point (703). In this case, N patches may be patches adjacent to missed points.
  • the receiving device identifies the midpoints of the N patches included in the decoded data and the distances to the missed points, or identifies the midpoints of the N patches included in the received data to identify the coordinates of the N patches. You can calculate the distance from missed points.
  • the receiving device may calculate a weighted average of the offsets of the N patches based on this as shown in Equation 2 (704).
  • the receiving device may estimate the calculated weighted average value as the offset of the missed point (705).
  • the offset can be estimated in the same way for each of the identified plurality of missed points.
  • the receiving device may project the plurality of unpacked projection images into a 3D image.
  • Inverse projection of the projection used in the transmitting device may be used to project the 2D projection image into the 3D image, but is not necessarily limited thereto.
  • the receiving device may reconstruct the 3D data based on data projected from the plurality of projection images as a 3D image, an offset of a point excluding a missed point, and an offset of the estimated missed point.
  • FIG. 8 is a flowchart illustrating a method of transmitting information about offsets of missed points according to points according to an embodiment of the present disclosure.
  • the transmitting device may transmit information about the offset of the missed point without transmitting the offset of the missed point.
  • the transmitting apparatus may determine whether a point included in the projection image corresponds to a missed point (800). As described above, whether to correspond to a missed point may be determined based on whether a distance from another point is greater than or equal to a threshold value.
  • the patch closest to the missed point may be identified (803).
  • the second patch 601 may be identified as the nearest patch with respect to the first missed point 603.
  • the offset of the nearest patch may be identified (804), and the difference value between the offset of the nearest patch and the offset of the missed point may be calculated (805).
  • the second offset offset_2 of the second midpoint C2 of the second patch 601 is identified, and the offset mp_offset_1 of the first missed point 603 and the second patch 601 of the second patch 601 are identified.
  • the difference value delta_1 of the second offset_2 of the second midpoint C2 may be calculated.
  • the transmitting device may encode and transmit information about the offset of the missed point including the calculated difference value delta_1 (806).
  • the information on the offset of the missed point may include a second offset_2 value of the second midpoint C2.
  • FIG. 9 is a flowchart illustrating a method of estimating an offset of a missed point according to an embodiment of the present disclosure.
  • the receiving device decodes the received data (900).
  • the received data includes information about offsets of missed points.
  • the receiving device may check whether the flag is a missed point (901). If it is not a missed point, it moves to the next point (902), and if it is a missed point, the nearest patch can be identified (903). For example, the second patch 601 may be identified as the nearest patch with respect to the first missed point 603.
  • the receiving device may identify an offset of the nearest patch in the received data (904).
  • the second offset offset_2 of the second midpoint C2 of the second patch 601 may be identified from the received data.
  • the receiving device may identify a difference value corresponding to the missed point in the received data (905). For example, in the case of the first missed point 603, the difference between the offset mp_offset_1 of the first missed point 603 and the second offset_2 of the second midpoint C2 of the second patch 601.
  • the value delta_1 may be identified as a difference value corresponding to the first missed point.
  • the offset of the missed point may be calculated based on the offset of the nearest patch and the difference value corresponding to the missed point (906).
  • the receiving apparatus may generate a first miss based on a difference value delta_1 corresponding to the first missed point 603 and a second offset_2 of the second midpoint C2 of the second patch 601.
  • the offset of the depoint 603 may be calculated.
  • the offset thus calculated may be estimated as the offset of the first missed point 603.
  • Offset estimation of the second missed point 603, the third missed point 604, etc. may be performed in the same manner.
  • FIG. 10 is a diagram for describing a method of transmitting information about an offset of a missed point according to an embodiment of the present disclosure.
  • a plurality of groups (Group A, Group B, Group C, Group D) of FIG. 10 is a grouping of a plurality of missed points. Instead of transmitting offsets of a plurality of missed points, a plurality of missed points may be grouped as shown in FIG. 10 to transmit a representative offset and a group identifier of each group.
  • the plurality of missed points may be grouped by various criteria.
  • missed points having the same or similar offset value may be grouped into one group based on an offset of one missed point.
  • the similarity of offset values may be a case where a difference between offsets is equal to or less than a predetermined threshold value.
  • the group may be grouped into one group.
  • the angle difference value (cos ⁇ ) of the vector (a) of the offset of the first missed point and the vector (b) of the offset of the second missed point calculated by Equation (3) is less than or equal to the threshold
  • a vector of offsets of one missed point and a vector of offsets of a second missed point may be grouped into one group.
  • missed points within a predetermined area may be grouped into one group based on one missed point.
  • the grouping may be performed by considering both the proximity between the missed points and the similarity of the offsets.
  • each group identifier and the representative offset of each group need to be transmitted to the receiver, the amount of data transmission can be reduced more than transmitting all offset points.
  • the receiving device may estimate that offsets of missed points included in a corresponding group are the same as a representative offset of the corresponding group.
  • FIG. 11 is a diagram for describing a method of transmitting information about an offset of a missed point according to an embodiment of the present disclosure.
  • the plurality of missed points may be grouped to transmit the group identifier of the representative group and the representative offset of the representative group to the receiver.
  • a difference value between the offset of the representative group and the representative offset of another group other than the representative group may be transmitted to the receiver.
  • a plurality of groups may be arranged in order of offset size to determine a group having the largest offset as a representative group.
  • the group identifier of the first group Group A and the representative offset of the first group Group A may be transmitted.
  • the difference value delta AB between the representative offset of the first group Group A and the representative offset of the second group Group B is calculated, and the representative offset and the third offset of the second group Group B are calculated.
  • the difference value delta BC of the representative offset of the group C is calculated, and the difference value delta CD of the representative offset of the third group C and the representative offset of the fourth group D.
  • the amount of data transmission can be reduced when transmitting offsets of all missed points.
  • the difference values may be reduced as the difference value calculation between the representative offsets is repeated, data transmission amount reduction may be increased.
  • the receiving device may estimate the representative offset of each of the plurality of groups by calculating the representative offset of the received representative group and the difference values between the representative offsets.
  • the receiving device may estimate that offsets of missed points included in the group are the same as the estimated representative offset of the group.
  • FIG. 12 is a flowchart illustrating a method of transmitting information about offsets of missed points according to an embodiment of the present disclosure.
  • FIG. 13 is a diagram for describing a method of transmitting information about an offset of a missed point according to an embodiment of the present disclosure.
  • the transmitting device may transmit information about the offset of the missed point without transmitting the offset of the missed point.
  • the transmitting apparatus may determine whether a point corresponds to a missed point (1200). If it is not a missed point, it moves to the next point (1201), and if it is a missed point, it can be set as a flag (1202).
  • the missed points may then be grouped (1203) and a representative offset of each of the missed point groups may be determined (1204). 13, for example, a plurality of missed points may be grouped into a plurality of groups (Group A, Group B, Group C, and Group D), and a plurality of groups (Group A, Group B, Group C, Group). D) Each representative offset can be determined.
  • a representative group of the plurality of groups may be determined (1205).
  • a plurality of groups (Group A, Group B, Group C, Group D) may be arranged in order of offset size to determine a group having the largest offset as a representative group.
  • a difference value between the representative offset of the representative group and the representative offset of another group may be calculated (1206). Assuming that the first group Group A is a representative group, a difference value delta AB between the representative offset of the first group Group A and the representative offset of the second group Group B is calculated, and the first group ( The difference value (delta AC) between the representative offset of Group A) and the representative offset of the third group Group C is calculated, and the representative offset of the first group Group A and the representative offset of the fourth group Group D are calculated.
  • the difference value delta AD may be calculated.
  • the transmitting device may encode and transmit difference values between the group identifier of each group, the representative offset of the representative group, and the representative offsets of the groups (1207).
  • the transmitting apparatus includes a group ID of each of the plurality of groups Group A, Group B, Group C, and Group D, a representative offset of the first group Group A, and a difference value between the representative offsets (delta AB, delta). AC, delta AD) can be transmitted.
  • the amount of data transmission can be reduced when transmitting offsets of all missed points.
  • FIG. 14 is a flowchart illustrating a method of estimating information on offsets of missed points according to an embodiment of the present disclosure.
  • the receiving device decodes the received data (1400).
  • the received data includes information about offsets of missed points.
  • the receiving device may check whether the flag is a missed point (1401). If it is not a missed point, it moves to the next point (1402), and if it is a missed point, a group identifier of a group including the missed point can be identified (1403). For example, when the missed point is included in the third group Group C, the group identifier of the third group Group C may be identified.
  • the difference value corresponding to the group including the missed point may be identified.
  • the difference value delta AC may be identified by a difference value corresponding to the third group Group C.
  • the receiving device may identify the representative offset of the representative group and calculate the representative offset of the group including the missed point (1405). For example, the third group (Group C) based on the difference (delta AC) corresponding to the representative offset of the first group (Group A) that is a representative group and the third group (Group C) including missed points The representative offset of can be calculated.
  • the receiving device may estimate the representative offset of the third group Group C calculated as described above as an offset of missed points included in the third group Group C.
  • pick_nearest_neighborhood (id, num) is the number of segments that are closest to (Point [id] .x, Point [id] .y, Point [id] .z) ( num) to return an offset.
  • calculate_distance (id, Neighbor [i]) is a function that measures and returns the geometric distance between Point [id] and Neighbor [i].
  • Delta [id] means a space in which a difference value (Delta) between a Point [id] and an offset of a reference segment is stored.
  • Offset [group_index] means a space storing offset of group_index group.
  • 15 is a diagram schematically illustrating a configuration of an apparatus for transmitting or receiving data according to an embodiment of the present disclosure.
  • the apparatus 1500 for transmitting or receiving data includes a transceiver 1501 for transmitting and receiving an encoded signal, a controller 1502 for controlling all operations of the apparatus for transmitting or receiving data, and storing data regarding a point cloud.
  • the memory unit 1503 may be included.
  • the data related to the point cloud described above in the present disclosure may be stored in whole or in part in the memory unit 1503 temporarily or semi-permanently.
  • algorithms for all techniques or methods performed in the apparatus 1500 for transmitting or receiving data described above in the present disclosure may be temporarily or semi-permanently stored in the memory unit 1502. .
  • the transceiver 1501, the controller 1502, and the memory 1503 are not necessarily implemented as separate devices, but may be implemented as a single chip in the form of a single chip. .
  • the transceiver 1501, the controller 1502, and the memory 1503 are not necessarily all included, and some may be omitted.
  • FIGS. 1 to 15 are not intended to limit the scope of the present disclosure. That is, all the components or operations described in FIGS. 1 to 15 should not be interpreted as essential components for the implementation of the present disclosure, and may be implemented within a range that does not impair the essence of the present disclosure, even if only some of the components are included. Can be.
  • the operations described above can be realized by providing a memory device storing the corresponding program code to a server or any component in the device. That is, the controller of the server or the device may execute the above-described operations by reading and executing the program code stored in the memory device by the processor or the central processing unit (CPU).
  • the controller of the server or the device may execute the above-described operations by reading and executing the program code stored in the memory device by the processor or the central processing unit (CPU).
  • the various components of the server or device, modules, etc. described herein may be hardware circuits, such as complementary metal oxide semiconductor based logic circuits, firmware, software may be operated using hardware circuitry such as a combination of software and / or hardware and firmware and / or software embedded in a machine-readable medium.
  • hardware circuits such as complementary metal oxide semiconductor based logic circuits, firmware
  • software may be operated using hardware circuitry such as a combination of software and / or hardware and firmware and / or software embedded in a machine-readable medium.
  • various electrical structures and methods may be implemented using transistors, logic gates, and electrical circuits such as application specific semiconductors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시에 따른 포인트 클라우드에 관한 데이터의 프로세싱 방법은, 포인트 클라우드에 관한 데이터에서 보조 비트들을 식별하는 과정, 상기 식별된 보조 비트들을 제외한 포인트 클라우드에 관한 데이터를 복수의 평면들에 프로젝션(projection)하는 과정, 상기 복수의 평면들에 대응하는 복수의 프로젝션 이미지들에서 미스드 포인트(missed point)들을 식별하는 과정, 상기 복수의 프로젝션 이미지들을 팩킹(packing)하여 팩킹된 이미지를 생성하는 과정, 상기 보조 비트들 중 상기 식별된 미스트 포인트들에 대응하는 제1 보조 비트들을 제외한 제2 보조 비트들, 상기 제1 보조 비트들에 관한 정보, 및 상기 팩킹된 이미지를 인코딩하여 생성된 신호를 전송하는 과정을 포함한다.

Description

포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치
본 개시는 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치에 관한 것이다.
포인트 클라우드(point cloud)는 방대한 양의 포인트의 집합을 의미하며, 대용량의 3차원 데이터는 포인트 클라우드로 표현될포인트 클라우드(point cloud)는 방대한 양의 포인트의 집합을 의미하며, 대용량의 3차원 데이터는 포인트 클라우드로 표현될 수 있다. 포인트 클라우드는 2D 이미지와는 비교되는 값으로, 3차원 상의 한 점을 표현하는 방법이고, 위치 좌표와 색상을 동시에 포함할 수 있는 벡터 형태이다. 예를 들어, 포인트 클라우드는 (x, y, z, R, G, B)와 같이 표현될 수 있다. 무수히 많은 색상과 위치 데이터들이 모여서 공간적인 구성을 이루는 포인트 클라우드는 밀도가 높아지면 높아질 수록 점점 더 구체적인 데이터가 되면서 하나의 3D 모델로서의 의미를 가지게 된다.
3차원 데이터를 표현하는 포인트 클라우드는 상당량의 메모리 리소스를 차지하기 때문에 포인트 클라우드를 전송하기 위해 압축 방법이 요구된다. 그러나 포인트 클라우드를 압축하기 위한 새로운 코덱을 생성하고 확산하는데 시간이 많이 요구되기 때문에 기존의 2D데이터를 압축하기 위한 코덱을 활용하여 효율적으로 포인트 클라우드를 압축하는 방법이 요구된다. 나아가 이러한 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법이 요구된다.
본 개시는 포인트 클라우드에 관한 데이터를 효율적으로 프로세싱하기 위한 방법 및 장치를 제공한다. 구체적으로, 본 개시는 2차원 데이터 압축 코덱을 활용하여 3차원 데이터인 포인트 클라우드를 효율적으로 압축하기 위한 방법 및 장치를 제공하며, 이렇게 압축하여 전송한 데이터를 프로세싱하여 3D영상을 복원하는 방법 및 장치를 제공한다.
본 개시에 따른 포인트 클라우드에 관한 데이터의 프로세싱 방법은, 포인트 클라우드에 관한 데이터에서 보조 비트들을 식별하는 과정, 상기 식별된 보조 비트들을 제외한 포인트 클라우드에 관한 데이터를 복수의 평면들에 프로젝션(projection)하는 과정, 상기 복수의 평면들에 대응하는 복수의 프로젝션 이미지들에서 미스드 포인트(missed point)들을 식별하는 과정, 상기 복수의 프로젝션 이미지들을 팩킹(packing)하여 팩킹된 이미지를 생성하는 과정, 상기 보조 비트들 중 상기 식별된 미스트 포인트들에 대응하는 제1 보조 비트들을 제외한 제2 보조 비트들, 상기 제1 보조 비트들에 관한 정보, 및 상기 팩킹된 이미지를 인코딩하여 생성된 신호를 전송하는 과정을 포함한다.
상기 보조 비트들 각각의 크기는 상기 포인트 클라우드에 관한 데이터의 크기와 상기 신호를 생성하는데 사용된 코덱(codec)이 인코딩을 지원하는 데이터의 크기의 차이와 같을 수 있다.
상기 미스드 포인트들을 식별하는 과정은, 상기 포인트 클라우드에 포함된 복수의 포인트들 중 가장 인접한 포인트와의 거리가 임계 값 이상인 포인트를 미스드 포인트로 식별할 수 있다.
상기 식별된 미스드 포인트들에 대하여 플래그를 설정하는 과정을 더 포함할 수 있다.
상기 제1 보조 비트들에 관한 정보는, 상기 복수의 프로젝션 이미지들에 포함된 패치들 각각의 중점의 보조 비트를 포함하고, 상기 패치들 각각의 중점의 좌표 및 상기 패치들 각각의 중점의 좌표와 미스드 포인트 간의 거리 중 적어도 하나를 포함할 수 있다.
상기 제1 보조 비트들에 관한 정보는, 상기 복수의 프로젝션 이미지들에 포함된 패치들 중 미스드 포인트와 가장 인접한 패치의 중점의 보조 비트를 포함하고, 상기 미스드 포인트의 보조 비트와 상기 패치의 중점의 보조 비트의 차이 값을 포함할 수 있다.
상기 미스드 포인트들을 복수의 그룹들로 그룹핑(grouping)하는 과정을 더 포함할 수 있으며, 상기 제1 보조 비트들에 관한 정보는, 상기 복수의 그룹들 각각의 그룹 식별자 및 상기 복수의 그룹들 각각의 대표 보조 비트를 포함할 수 있다.
상기 미스드 포인트들을 그룹핑하는 과정은, 상기 제1 보조 비트들 간의 유사도 및 상기 미스드 포인트들 간의 거리 중 적어도 하나를 기반으로 할 수 있다.
상기 미스드 포인트들을 복수의 그룹들로 그룹핑(grouping)하는 과정 및 상기 복수의 그룹들에 포함된 제1 그룹의 대표 보조 비트와 상기 복수의 그룹들에 포함된 제2 그룹의 대표 보조 비트의 차이 값을 계산하는 과정 을 더 포함할 수 있으며, 상기 제1 보조 비트들에 관한 정보는, 상기 복수의 그룹들 각각의 그룹 식별자, 상기 제1 그룹의 대표 보조 비트 및 상기 계산된 차이 값을 포함할 수 있다.
상기 제1 그룹은 상기 복수의 그룹들 중 대표 보조 비트가 가장 큰 그룹일 수 있다.
본 개시에 따른 포인트 클라우드에 관한 데이터의 프로세싱 방법은, 미스트 포인트들에 대응하는 제1 보조 비트들을 제외한 제2 보조 비트들, 상기 제1 보조 비트들에 관한 정보, 및 팩킹된 이미지를 포함하는 신호를 수신하여 디코딩하는 과정, 상기 팩킹된 이미지를 팩킹 해제하여 복수의 프로젝션 이미지들을 식별하는 과정, 상기 복수의 프로젝션 이미지들에서 상기 미스드 포인트들을 식별하는 과정, 상기 제1 보조 비트들에 관한 정보를 기반으로 상기 미스드 포인트들의 상기 제1 보조 비트들을 추정하는 과정, 상기 복수의 프로젝션 이미지들을 역 프로젝션한 데이터, 상기 추정된 제1 보조 비트들 및 상기 제2 보조 비트들을 기반으로 포인트 클라우드를 복원하는 과정을 포함한다.
상기 보조 비트들 각각의 크기는 상기 포인트 클라우드에 관한 데이터의 크기와 상기 신호를 생성하는데 사용된 코덱(codec)이 인코딩을 지원하는 데이터의 크기의 차이와 같을 수 있다.
상기 미스드 포인트들을 식별하는 과정은, 디코딩된 신호에 포함된 플래그를 확인하여 식별할 수 있다.
상기 제1 보조 비트들을 추정하는 과정은, 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 복수의 프로젝션 이미지들에 포함된 패치들 각각의 중점의 좌표와 미스드 포인트 간의 거리를 식별하는 과정 또는 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 패치들 각각의 중점의 좌표를 기반으로 상기 패치들 각각의 중점의 좌표와 상기 미스드 포인트 간의 거리를 계산하는 과정을 포함할 수 있고, 상기 패치들 각각의 중점의 좌표와 상기 미스드 포인트 간의 거리 및 상기 제1 보조 비트들에 관한 정보에 포함된 상기 패치들의 각각의 중점의 보조 비트를 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정을 포함할 수 있다.
상기 제1 보조 비트들을 추정하는 과정은, 상기 패치들 각각의 중점의 좌표와 상기 미스드 포인트 간의 거리에 반비례하는 웨이트(weight)를 계산한 값과 상기 패치들의 각각의 중점의 보조 비트를 기반으로 가중 평균을 계산하여 상기 미스드 포인트의 상기 보조 비트를 추정하는 과정을 포함할 수 있다.
상기 제1 보조 비트들을 추정하는 과정은, 상기 복수의 프로젝션 이미지들에 포함된 패치들 중, 미스드 포인트와 인접한 패치를 식별하는 과정, 상기 제1 보조 비트들에 관한 정보에 포함된 상기 패치의 중점의 보조 비트와 상기 패치의 중점의 보조 비트와 상기 미스드 포인트의 보조 비트의 차이 값을 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정을 포함할 수 있다.
상기 제1 보조 비트들을 추정하는 과정은, 상기 제1 보조 비트들에 관한 정보가 포함하는, 미스드 포인트가 포함된 그룹의 그룹 식별자 및 상기 미스드 포인트 그룹의 대표 보조 비트를 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정을 포함할 수 있다.
상기 제1 보조 비트들을 추정하는 과정은, 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 미스드 포인트들을 그룹핑한 복수의 그룹들의 그룹 식별자들 중, 제1 그룹 및 미스드 포인트가 포함된 제2 그룹을 식별하는 과정, 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 제1 그룹의 대표 보조 비트와, 상기 제1 그룹의 대표 보조 비트와 상기 제2 그룹의 대표 보조 비트의 차이 값을 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정을 포함할 수 있다.
상기 제1 그룹은 상기 복수의 그룹들 중 대표 보조 비트가 가장 큰 그룹일 수 있다.
본 개시에 따르면 2D 영상의 코덱을 활용하여 3D 영상을 압축할 수 있으며, 효율적인 압축 및 전송을 통하여 데이터 전송 량을 감축할 수 있다. 따라서 기존의 네트워크를 활용함으로써 비용을 절감할 수 있으며, 저장 공간, 전송 시간 및 하드웨어 비용 등을 절감할 수 있다. 본 개시에 따르면 이렇게 압축하여 전송한 데이터를 프로세싱하여 3D 영상을 복원할 수 있다.
본 개시는 그 밖에, 본 개시에서 얻을 수 있는 효과는 언급한 효과들로 제한되지 않으며, 언급하지 않은 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 포인트 클라우드로 표현된 3D 이미지의 전송을 위한 프로세싱 방법을 개략적으로 나타낸 흐름도이다.
도 2는 본 개시의 일 실시 예에 따른 포인트 클라우드로 표현된 3D 이미지를 프로젝션하기 위한 방법을 나타낸 도면이다.
도 3은 본 개시의 일 실시 예에 따라 포인트 클라우드로 표현된 3D 이미지를 프로젝션한 이미지의 예시를 나타낸 도면이다.
도 4는 본 개시의 일 실시 예에 따른 프로젝션 이미지를 팩킹(packing)하는 방법을 나타낸 도면이다.
도 5는 본 개시의 일 실시 예에 따른 포인트 클라우드로 표현된 3D 이미지의 전송을 위해 3D 이미지의 데이터가 프로세싱되는 과정을 개략적으로 나타낸 도면이다.
도 6은 본 개시의 일 실시 예에 따른 프로젝션 이미지의 미스드 포인트(missed point)의 오프셋(offset)에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 프로젝션 이미지의 미스드 포인트의 오프셋을 추정하는 방법을 나타낸 순서도이다.
도 8은 본 개시의 일 실시 예에 따른 포인트 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 나타낸 순서도이다.
도 9는 본 개시의 일 실시 예에 따른 미스드 포인트의 오프셋을 추정하는 방법을 나타낸 순서도이다.
도 10은, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
도 11은, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
도 12는, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 나타낸 순서도이다.
도 13은, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
도 14는, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 추정하는 방법을 나타낸 순서도이다.
도 15는, 본 개시의 일 실시예에 따른 데이터의 전송 또는 수신을 위한 장치의 구성을 개략적으로 나타낸 도면이다.
이하, 첨부된 도면들을 참조하여 본 개시의 실시 예를 상세하게 설명한다. 하기에서 본 개시를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로써 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 개시의 실시 예에서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의'모듈' 혹은 복수의'부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
본 개시의 다양한 실시 예에서 사용될 수 있는 "포함한다" 또는"포함할 수 있다" 등의 표현은 개시(disclosure)된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 발명의 다양한 실시 예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 다양한 실시 예에서 "또는" 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, "A 또는 B"는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 개시의 다양한 실시 예에서 사용된 "제 1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 실시 예들의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 다양한 실시예의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
본 개시의 다양한 실시 예에서 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 개시의 다양한 실시 예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명의 다양한 실시 예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시의 다양한 실시 예에서 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 다양한 실시 예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 다양한 실시 예에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 도 1 내지 도 6을 참고하여 본 개시의 일 실시 예에 따른 포인트 클라우드(point cloud)로 표현된 3D 데이터의 프로세싱 방법에 대하여 설명한다. 이러한 방법은 데이터를 전송하기 위한 장치에 의해 수행될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 포인트 클라우드로 표현된 3D 이미지의 전송을 위한 프로세싱 방법을 개략적으로 나타낸 흐름도이다. 도 2는 본 개시의 일 실시 예에 따른 포인트 클라우드로 표현된 3D 이미지를 프로젝션하기 위한 방법을 나타낸 도면이다. 도 3은 본 개시의 일 실시 예에 따라 포인트 클라우드로 표현된 3D 이미지를 프로젝션한 이미지의 예시를 나타낸 도면이다.
도 4는 본 개시의 일 실시 예에 따른 프로젝션 이미지를 팩킹(packing)하는 방법을 나타낸 도면이다. 도 5는 본 개시의 일 실시 예에 따른 포인트 클라우드로 표현된 3D 이미지의 전송을 위해 3D 이미지의 데이터가 프로세싱되는 과정을 개략적으로 나타낸 도면이다. 도 6은 본 개시의 일 실시 예에 따른 프로젝션 이미지의 미스드 포인트(missed point)의 오프셋(offset)에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
먼저, 도 1을 참고하면, 포인트 클라우드로 표현된 3D 이미지의 프로세싱 방법은 포인트 클라우드에서 각 포인트들의 노말 벡터(normal vector)를 추정하는 과정을 포함한다(101).
도 2를 참고하면, 오브젝트(object)(200)는 3차원 데이터의 3차원 공간 상의 물체를 의미하며, 복수의 포인트들의 집합인 포인트 클라우드로 표현될 수 있다. 오브젝트(200)는 3차원 영상의 복수의 장면 중 한 장면을 나타낸 것일 수 있다.
오브젝트(200)의 각 포인트들은 위치(x, y, z)와 색상(R(red), G(green), B(blue))에 대한 데이터를 포함할 수 있다. 본 개시는 포인트 클라우드에 포함되는 하나의 포인트가 각 좌표 마다 10비트(bit)의 크기를 가지는 위치 좌표인 (x, y, z) 및 각 좌표마다 8비트의 크기를 가지는 색상 좌표인 (R, G, B)로 표현되는 경우를 가정한다. 즉 하나의 포인트의 위치 좌표는 x좌표의 10비트, y좌표의 10비트, z좌표의 10비트, 총 30 비트로 표현될 수 있고, 색상은 R값의 8비트, G값의 8비트, B값의 8비트, 총 24비트로 표현될 수 있다.
오브젝트(200)를 프로젝션(projection)하기 위해, 오브젝트(200)가 중심에 위치하는 가상의 육면체 공간(201)을 가정할 수 있다. 가상의 육면체 공간(201)은 제1 XY평면(XY0), 제2 XY평면(XY1), 제1 YZ평면(YZ0), 제2 YZ평면(YZ1), 제1 XZ평면(XZ0), 제2 XZ평면(XZ1)로 구성될 수 있다. 제1 XY평면(XY0)의 노말 벡터는 -z방향일 수 있고, 제2 XY평면(XY1)의 노말 벡터는 +z 방향일 수 있다. 제1 YZ평면(YZ0)의 노말 벡터는 -x방향일 수 있고, 제2 YZ평면(YZ1)의 노말 벡터는 +x방향일 수 있다. 제1 XZ평면(XZ0)의 노말 벡터는 -y방향일 수 있고, 제2 XZ평면(XZ1)의 노말 벡터는 +y방향일 수 있다.
오브젝트(200)를 프로젝션하기 위해 먼저 오브젝트(200)의 각각의 포인트들의 노말 벡터(202)를 추정할 수 있다. 각 포인트들의 노말 벡터(202)는 해당 포인트와 일정 영역 이내의 인접하는 점들이 이루는 평면에 대하여 추정될 수 있다.
또한, 복수의 포인트들을 그룹핑(grouping)하여 복수의 세그먼트(segment)를 구성할 수 있다. 이때, 동일 또는 유사한 방향의 노말 벡터들을 갖는 포인트들을 하나의 세그먼트로 그룹핑할 수 있다. 여기서 유사한 방향이란 노말 벡터들의 방향 간의 유사도가 일정 임계 값 이상인 경우일 수 있다. 또는 포인트들 간의 거리가 일정 값 이하인 인접한 포인트들을 하나의 세그먼트로 그룹핑할 수도 있다. 또한, 세그먼트 구성 시, 노말 벡터의 방향과 포인트들 간의 거리를 모두 고려할 수도 있으며, 노말 벡터들의 방향 간 유사도가 떨어지거나 포인트들 간의 거리가 일정 값 이상이더라도 포인트의 색상이 일치 또는 유사하면 같은 세그먼트로 그룹핑할 수도 있다. 이러한 세그먼트의 대표 노말 벡터는 세그먼트에 포함된 복수의 포인트들의 노말 벡터들의 평균 값일 수 있다.
다시 도 1을 참고하면 다음으로, 포인트 클라우드의 복수의 포인트들을 프로젝션(projection)한다(102).
도 2를 보면, 포인트 클라우드로 표현된 오브젝트(200)의 복수의 포인트들은 가상의 육면체 공간(201)을 구성하는 평면에 프로젝션될 수 있다. 이때 포인트의 추정된 노말 벡터의 방향과 프로젝션 평면의 노말 벡터의 방향은 일치하거나 유사할 수 있다. 여기서 유사한 방향이란 노말 벡터들의 방향 간의 유사도가 일정 임계 값 이상인 경우일 수 있다. 또한, 포인트들은 포인트들을 그룹핑한 세그먼트 단위로 프로젝션될 수도 있다.
3D 이미지를 2D 이미지로 프로젝션하기 위해, ERP(equirectangular projection), OHP(octahedron projection), 실린더 프로젝션, 큐브 프로젝션 및 해당 기술분야에서 이용 가능한 다양한 프로젝션 방법들 중 어느 하나가 이용될 수 있다.
상술한 바와 같이 본 개시는 포인트 클라우드의 하나의 포인트가 각각 10비트의 크기를 가지는 x좌표, y좌표, z좌표와 각각 8비트의 크기를 가지는 R(red)값, G(green)값, B(blue)값으로 표현되는 경우를 가정한다. 그러나, 이러한 데이터를 인코딩하기 위한 코덱(codec)이 10 비트 크기의 데이터의 인코딩을 지원하지 않을 수 있다. 또는 이러한 데이터를 인코딩하기 위한 코덱이 10비트 보다 작은 비트의 데이터의 인코딩에 최적화되어 있을 수 있다. 본 개시에서는 전송할 데이터의 인코딩에 사용하는 코덱이 8비트의 데이터 인코딩을 지원하는 경우를 가정한다.
이 경우, 포인트 클라우드의 하나의 포인트를 기준으로 설명하면, 색상에 대한 R(red)값, G(green)값, B(blue)값은 각각 8비트이므로 8비트의 데이터 인코딩을 지원하는 코덱으로 인코딩이 가능하다. 그러나, 포인트의 위치에 대한 x좌표, y좌표, z좌표는 각 10 비트를 갖기 때문에 각 좌표마다 2비트의 보조 비트를 따로 인코딩해야 한다.
즉, x좌표의 10 비트에서 하위 2비트를 구별하고, y좌표의 10비트에서 하위 2비트를 구별하고, z좌표의 10비트에서 하위 2비트를 구별하여, 총 6비트를 보조 비트로 하여 별도로 인코딩하여 전송할 수 있다. 여기서 하위 2비트는 10비트 중 중요도가 가장 낮은 2비트일 수 있으며, 10비트 중 가장 끝에 위치할 수 있다. 이하, 이러한 보조 비트와 같은 의미로 오프셋(offset)이라는 용어가 사용될 수 있다.
오프셋을 제외하면 포인트 클라우드의 하나의 포인트 당, x좌표, y좌표, z좌표 각각 8비트씩, 그리고 R(red)값, G(green)값, B(blue)값 각각 8비트씩, 총 48비트 크기의 데이터를 가질 수 있다. 이렇게 하나의 포인트당 48비트를 갖는 포인트 클라우드를 프로젝션(projection)할 수 있다.
도 3을 보면, 포인트 클라우드를 가상의 육면체 공간의 각 면에 프로젝션한 이미지의 예시를 확인할 수 있다. 일 예시로 프로젝션은 제1 XY평면(XY0), 제2 XY평면(XY1), 제1 YZ평면(YZ0), 제2 YZ평면(YZ1), 제1 XZ평면(XZ0), 제2 XZ평면(XZ1)의 순서대로 반복적으로 프로젝션이 수행될 수 있다.
도 3은, 제1 XY평면(XY0)으로 프로젝션한 제1 프로젝션 이미지(projection #0), 제2 XY평면(XY1)으로 프로젝션한 제2 프로젝션 이미지(projection #1), 제1 YZ평면(YZ0)으로 프로젝션한 제3 프로젝션 이미지(projection #2), 제2 YZ평면(YZ1)으로 프로젝션한 제4 프로젝션 이미지(projection #3), 제1 XZ평면(XZ0)으로 프로젝션한 제5 프로젝션 이미지(projection #4), 제2 XZ평면(XZ1)으로 프로젝션한 제6 프로젝션 이미지(projection #5), 제1 XY평면(XY0)으로 두 번째 프로젝션한 제7 프로젝션 이미지(projection #6), 제2 XY평면(XY1)으로 두 번째 프로젝션한 제8 프로젝션 이미지(projection #7), 제1 YZ평면(YZ0)으로 두 번째 프로젝션한 제9 프로젝션 이미지(projection #8)의 일 예시를 나타낸다. 그러나 이러한 프로젝션 순서와 프로젝션 횟수는 일 예시에 불과하다.
프로젝션 이미지에 포함된 각 포인트들은, 포인트 당 x좌표, y좌표, z좌표 각각 8비트씩, 그리고 R(red)값, G(green)값, B(blue)값 각각 8비트씩, 총 48비트 크기의 데이터를 가질 수 있다.
도 3에 표현되진 않았으나, 프로젝션 횟수에 따라 제2 YZ평면(YZ1)으로 두 번째 프로젝션한 제10 프로젝션 이미지, 제1 XZ평면(XZ0)으로 두 번째 프로젝션한 제11 프로젝션 이미지, 제2 XZ평면(XZ1)으로 두 번째 프로젝션한 제12 프로젝션 이미지, 제1 XY평면(XY0)으로 세 번째 프로젝션한 제13 프로젝션 이미지, 제2 XY평면(XY1)으로 세 번째 프로젝션한 제14 프로젝션 이미지... 등이 더 존재할 수 있다.
프로젝션이 반복하여 수행될수록 프로젝션된 이미지에 포함되는 포인트들의 개수는 감소할 수 있다. 도 3을 보면, 제1 XY평면(XY0)으로 첫 번째 프로젝션한 제1 프로젝션 이미지(projection #0)의 포인트들의 개수(points=156839)보다 제1 XY평면(XY0)으로 두 번째 프로젝션한 제7 프로젝션 이미지(projection #6)의 포인트들의 개수(points=34549)가 더 적은 것을 확인할 수 있다. 이는 예를 들어, 제1 XY평면(XY0)으로 첫 번째 프로젝션할 때 노말 벡터 방향이 제1 XY평면(XY0)의 노말 벡터 방향과 동일 또는 유사한 포인트들의 80%가 프로젝션되고, 제1 XY평면(XY0)으로 두 번째 프로젝션할 때 노말 벡터 방향이 제1 XY평면(XY0)의 노말 벡터 방향과 동일 또는 유사한 포인트들의 16%가 프로젝션되기 때문일 수 있다. 다만 이 수치는 일 예일 수 있다.
제1 XY평면(XY0)으로 세 번째, 네 번째, 또는 그 이상 반복하여 프로젝션하는 경우 제1 XY평면(XY0)의 노말 벡터 방향과 동일 또는 유사한 방향의 노말 벡터를 갖는 포인트들이 100%에 가깝게 프로젝션될 수 있다. 즉, 가상의 육면체 공간(201)의 제1 XY평면(XY0)에서 오브젝트(200)를 볼 때 다른 포인트에 의해 가려진 포인트들도 반복적인 프로젝션을 통하여 프로젝션될 수 있다.
마찬가지로 도 3을 보면, 제2 XY평면(XY1)으로 첫 번째 프로젝션한 제2 프로젝션 이미지(projection #1)의 포인트들의 개수(points=156597)보다 제2 XY평면(XY1)으로 두 번째 프로젝션한 제8 프로젝션 이미지(projection #7)의 포인트들의 개수(points=14660)가 더 적은 것을 확인할 수 있다. 또 제1 YZ평면(YZ0)으로 첫 번째 프로젝션한 제3 프로젝션 이미지(projection #2)의 포인트들의 개수(points=170221)보다 제1 YZ평면(YZ0)으로 두 번째 프로젝션한 제9 프로젝션 이미지(projection #8)의 포인트들의 개수(points=9470)가 더 적은 것을 확인할 수 있다.
반복적인 프로젝션으로 프로젝션 이미지에 포함된 포인트들의 개수가 감소하면 프로젝션 이미지에 포함된 포인트들 간의 간격이 벌어질 수 있다. 이때, 프로젝션 이미지에 포함된 포인트들 간의 간격이 임계 값 이상인 경우, 이러한 포인트들을 이하 미스드 포인트(missed point)들이라고 칭한다. 즉, 프로젝션 이미지에 포함된 제1 포인트가 제1 포인트와 가장 인접한 제2 포인트와의 거리가 임계 값 이상인 경우 제1 포인트는 미스드 포인트에 해당될 수 있다. 이러한 미스드 포인트들에 대하여 플래그(flag)로 표시하여 수신기에게 전송함으로써 미스드 포인트 해당 여부에 대한 정보를 수신기에게 제공할 수 있다.
다시 도 1을 참고하면, 다음으로 2D 프로젝션 이미지들을 팩킹(packing)할 수 있다(103).
도 4를 보면, 복수의 프로젝션 이미지들(400, 401, 402)을 하나 또는 하나 이상의 팩킹된 2D 이미지(403)로 팩킹할 수 있다. 팩킹은 프로젝션된 2D 프로젝션 이미지들(400, 401, 402) 중 적어도 일부를, 변형 및/또는 재배치하여, 하나 또는 하나 이상의 팩킹된 2D 이미지(403)로 생성하는 것을 의미할 수 있다. 여기서, 변형은 영역의 리사이징(resize), 형태 변환(transforming), 회전 및/또는 재-샘플링(re-sampling)(예를 들어, 업샘플링, 다운샘플링, 영역 내의 위치에 따른 차등 샘플링)등을 의미할 수 있다. 이러한 팩킹 방식은 영역별(region-wise) 팩킹으로 지칭될 수 있다. 도 4는 3개의 프로젝션 이미지(400, 401, 402)만 도시하였지만 팩킹되는 프로젝션 이미지는 3개 이상일 수 있다.
다시 도 1을 참고하면, 다음으로 팩킹된 데이터 및 오프셋들을 인코딩(encoding)하고(104), 수신 장치에 전송한다(105). 이 때 적어도 하나의 미스드 포인트의 오프셋은 인코딩 및 전송에서 제외된다. 또한, 모든 미스드 포인트들의 오프셋들은 인코딩 및 전송에서 제외될 수 있다.
도 5는 3D 데이터인 포인트 클라우드 데이터가 전송을 위해 프로세싱되는 과정을 개략적으로 도시한 것으로, 포인트 클라우드에 포함된 하나의 포인트의 위치 좌표를 기준으로 도시한 것이다. 도 5를 참고하면, x좌표, y좌표, z좌표 각각 10비트씩 총 30비트의 데이터에서 각각 하위 2비트를 식별하여 6비트의 보조 비트(오프셋)를 별도로 인코딩한다. 도시되지는 않았으나 이 때 미스드 포인트의 오프셋은 인코딩에서 제외될 수 있다.
또한, 오프셋을 제외한 좌표, y좌표, z좌표 각각 8비트씩 총 24비트의 데이터는 프로젝션 및 팩킹하는 과정을 거쳐 팩킹된 2D 이미지를 인코딩한다. 도 5에 도시하지는 않았으나, 각각 8비트를 갖는 R, G, B에 대한 데이터도 위치 데이터와 함께 프로젝션, 팩킹 및 인코딩될 수 있다.
이렇게 인코딩된 팩킹된 2D 이미지 및 미스드 포인트의 오프셋을 제외한 인코딩된 오프셋을 수신 장치에 전송한다.
인코딩에는 HEVC(High Efficiency Video Coding), H.264, Future Video Codec, AVC(Advanced Video Coding), VP9(Pure Video 9), VP8(Pure Video 8), JVET(Joint Video Exploration Team) 등의 2D 영상 기반 압축이 가능한 코덱이 사용될 수 있다.
인코딩된 데이터는 분할되거나, 헤더를 부가하는 등의 프로세싱을 통해 정해진 전송 프로토콜에 따라 가공되어 전송될 수 있다. 인코딩된 데이터와 함께, 또는 개별적으로 인코딩된 데이터와 관련된 추가적인 데이터, 데이터를 재생하기 위해 필요한 데이터(예를 들어, 메타데이터)가 전송될 수 있다.
송신 장치에서의 데이터의 전송은 MMT(MPEG Media Transport) 또는 DASH (Dynamic Adaptive Streaming over HTTP)를 따를 수 있으나, 반드시 이에 한정되는 것은 아니다.
도시되지는 않았으나, 이미지에 관련된 데이터 이외에도 오디오에 관한 데이터가 수신 장치로 송신될 수 있다.
팩킹된 2D 이미지 및 오프셋을 전송할 때, 미스드 포인트의 오프셋은 전송하지 않을 수 있다. 앞서 설명한 바와 같이 프로젝션을 반복할수록 프로젝션 이미지는 인접한 포인트와의 거리가 임계 값 이상인 미스드 포인트를 포함할 수 있다. 이러한 미스드 포인트의 오프셋을 도 5의 오프셋과 같이 별도로 인코딩하여 전송할 수도 있으나, 보다 전송량을 감축할 수 있는 방법이 필요할 수 있다. 이 때, 미스드 포인트의 오프셋을 전송하지 않고 보다 작은 데이터를 갖는 미스드 포인트의 오프셋에 대한 정보를 전송함으로써 데이터 전송 량을 감축할 수 있다.
이하, 도 6을 참고하여 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명한다.
도 6을 보면, 예를 들어 제1 XY(XY0)평면에 첫 번째로 프로젝션한 프로젝션 이미지의 오브젝트를 제1 패치(600), 제1 XY(XY0)평면에 두 번째로 프로젝션한 프로젝션 이미지의 오브젝트를 제2 패치(601), 제1 XY(XY0)평면에 세 번째로 프로젝션한 프로젝션 이미지의 오브젝트를 제3 패치(602)라고 할 수 있다. 제3 패치(602)는 미스드 포인트들(603, 604, 605, 606, 607)을 포함한다고 가정한다.
이때, 미스드 포인트들(603, 604, 605, 606, 607) 각각의 오프셋은 제1 패치(600)의 제1 중점(C1)의 제1 오프셋 값(offset_1), 제1 중점(C1)과의 거리(α1), 제2 패치(601)의 제2 중점(C2)의 제2 오프셋 값(offset_2), 그리고 제2 중점(C2)과의 거리(β1)를 고려하여 추정될 수 있다. 여기서 중점이란 패치의 무게 중심일 수 있다.
구체적으로 제1 미스드 포인트(603)를 예로 들면, 제1 패치(600)의 제1 중점(C1)의 제1 오프셋 값(offset_1), 제1 미스드 포인트(603)와 제1 중점(C1)과의 거리(α1), 제2 패치(601)의 제2 중점(C2)의 제2 오프셋 값(offset_2), 그리고 제1 미스드 포인트(603)와 제2 중점(C2)과의 거리(β1)를 고려하여 [수학식 1]과 같이 거리에 반비례하는 웨이트(weight)를 기반으로 한 가중 평균(est_mp_offset_1)을 계산할 수 있고 이를 제1 미스드 포인트(603)의 오프 셋으로 추정할 수 있다.
Figure PCTKR2019004546-appb-M000001
이 경우 제1 미스드 포인트(603)의 오프셋은 전송할 필요가 없으며, 전송하지 않는 제1 미스드 포인트(603)의 오프셋 데이터 량만큼 데이터 전송 량을 감축할 수 있다. 제1 미스드 포인트(603)의 오프셋을 추정하는 과정은 전송된 데이터를 수신한 장치에서 수행될 수 있다.
이 경우, 제1 미스드 포인트(603)의 오프셋을 전송하는 대신 제1 패치(600) 중점(C1)의 좌표 및 제2 패치(601) 중점(C2)의 좌표에 대한 정보를 전송할 수 있다. 또는, 제1 미스드 포인트(603)의 오프셋을 전송하는 대신 제1 미스드 포인트(603)와 제1 패치(600)의 중점(C1)과의 거리(α1) 및 제 미스드 포인트(603)와 제2 패치(601)의 중점(C2)과의 거리(β1)에 대한 정보를 전송할 수 있다. 또한, 패치의 중점의 좌표 및 미스드 포인트와 패치의 중점과의 거리를 모두 전송할 수도 있다.
또한, 제1 패치(600)의 제1 중점(C1)의 제1 오프셋 값(offset_1) 및 제2 패치(601)의 제2 중점(C2)의 제2 오프셋 값(offset_2)에 대한 정보를 전송할 수 있다.
수신 장치는 상기 미스드 포인트에 대한 정보를 수신하여 제1 미스드 포인트(603)의 오프셋을 추정할 수 있다.
미스드 포인트의 오프셋 추정 방법에 대하여는 데이터 전송 시 추정 모드를 표시하여 송신 장치가 제공할 수도 있고, 수신 장치가 수신된 정보에 기반하여 추정 모드를 선택할 수도 있다.
제2 미스드 포인트(604), 제3 미스드 포인트(605)쪋 등의 오프셋 추정도 마찬가지의 방법으로 수행될 수 있다. 즉, 제2 미스드 포인트(604)를 예로 들면, 제2 미스드 포인트(604)와 제1 패치(600) 중점(C1)과의 거리(α2) 및 제2 미스드 포인트(604)와 제2 패치(601) 중점(C2)과의 거리(β2)에 대한 정보를 추가로 전송할 수 있고, 수신 장치는 상기 정보를 수신하여 제2 미스드 포인트(604)의 오프셋을 추정할 수 있다.
도 6은 제1 패치(600) 및 제2 패치(601)의 2개의 패치를 기반으로 미스드 포인트의 오프셋을 추정하는 경우를 도시하였으나, 패치의 개수는 이에 한정되지 않는다. 제1 미스드 포인트에 인접한 패치의 개수가 n개인 경우, [수학식 2]와 같이 가중 평균(est_mp_offset_1)을 계산할 수 있고 이를 제1 미스드 포인트의 오프셋으로 추정할 수 있다.
Figure PCTKR2019004546-appb-M000002
[수학식 2]에서 offset(i)는 제i 패치의 중점의 오프셋이고, distance(i)는 제i 패치의 중점과 제1 미스드 포인트 간의 거리이고, distance(k)는 제k 패치의 중점과 제1 미스드 포인트 간의 거리이다.
이 경우에도 마찬가지로 송신 장치는 패치의 중점 좌표, 미스드 포인트와 패치의 중점과의 거리 및 패치의 중점의 오프셋 중 적어도 하나를 포함하는 미스드 포인트의 오프셋에 대한 정보를 전송할 수 있고, 수신 장치는 이를 기반으로 미스드 포인트의 오프셋 추정할 수 있다.
이하, 도 7을 참고하여 본 개시의 일 실시 예에 따른 포인트 클라우드에 관한 데이터를 처리하기 위한 방법을 설명한다. 앞서 설명한 실시예와 동일한 부분의 설명은 생략한다.
도 7은 본 개시의 일 실시 예에 따른 프로젝션 이미지의 미스드 포인트의 오프셋을 추정하는 방법을 나타낸 순서도이다.
수신 장치는 수신한 데이터를 디코딩한다(700). 디코딩된 데이터에는 팩킹된 2D 이미지, 미스드 포인트를 제외한 포인트의 오프셋, 미스드 포인트의 오프셋에 대한 정보가 포함될 수 있다.
수신 장치는 팩킹된 2D 이미지의 팩킹 해제(unpacking)을 수행하여 프로젝션 이미지들을 복원할 수 있다. 팩킹 해제는 송신 장치에서 수행된 팩킹 방법의 역 변환일 수 있다. 이를 위해 팩킹 방법에 대하여 송신 장치와 수신 장치는 미리 공유할 수 있다.
수신 장치는 복원된 프로젝션 이미지들에서 미스드 포인트를 식별할 수 있다. 수신 장치는 프로젝션 이미지들에 포함된 포인트의 플래그를 확인하여(701) 미스드 포인트가 아닐 경우 다음 포인트로 이동하고(702), 미스드 포인트인 경우 N개의 패치를 식별할 수 있다(703). 이때 N개의 패치는 미스드 포인트와 인접한 패치일 수 있다.
다음으로, 수신 장치는 디코딩된 데이터에 포함된 N개의 패치의 중점과 미스드 포인트와의 거리를 식별하거나, 수신한 데이터에 포함된 N개의 패치의 중점의 좌표를 식별하여 N개의 패치의 중점과 미스드 포인트와의 거리를 계산할 수 있다. 수신 장치는 이를 기반으로 N개의 패치의 오프셋의 가중 평균을 [수학식 2]와 같이 계산할 수 있다(704).
수신 장치는 계산된 가중 평균 값을 미스드 포인트의 오프셋으로 추정할 수 있다(705). 식별된 복수의 미스드 포인트 각각에 대하여 동일한 방법으로 오프셋을 추정할 수 있다.
수신 장치는 팩킹 해제된 복수의 프로젝션 이미지들을 3D 이미지로 프로젝션 처리할 수 있다. 2D 프로젝션 이미지를 3D 이미지로 프로젝션하기 위해 송신 장치에서 사용된 프로젝션의 역의 프로젝션을 사용할 수 있으나, 반드시 이에 한정되는 것은 아니다.
수신 장치는 복수의 프로젝션 이미지들을 3D 이미지로 프로젝션 처리한 데이터와, 미스드 포인트를 제외한 포인트의 오프셋, 추정된 미스드 포인트의 오프셋을 기반으로 3D 데이터를 복원할 수 있다.
이하, 도 6 및 도 8을 참고하여 본 개시의 일 실시 예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명한다. 앞서 설명한 실시 예와 동일한 내용은 설명을 생략한다.
도 8은 본 개시의 일 실시 예에 따른 포인트 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 나타낸 순서도이다.
송신 장치는 미스드 포인트의 오프셋을 전송하지 않고 미스드 포인트의 오프셋에 대한 정보를 전송할 수 있다. 먼저, 송신 장치는 프로젝션 이미지에 포함된 포인트가 미스드 포인트에 해당하는지 판단할 수 있다(800). 상술한 바와 같이 미스드 포인트에 해당 여부 판단은 다른 포인트와의 거리가 임계 값 이상인지 여부로 판단할 수 있다.
미스드 포인트가 아닌 경우 다음 포인트로 이동하고(801), 미스드 포인트인 경우 미스드 포인트에 해당함을 플래그로 설정할 수 있다(802).
다음으로 미스드 포인트에 가장 가까운 패치를 식별할 수 있다(803). 도 6을 예로 들면, 제1 미스드 포인트(603)에 대하여 제2 패치(601)을 가장 가까운 패치로 식별할 수 있다.
다음으로 가장 가까운 패치의 오프셋을 식별하고(804), 가장 가까운 패치의 오프셋과 미스드 포인트의 오프셋의 차이 값을 계산할 수 있다(805). 예를 들어 제2 패치(601)의 제2 중점(C2)의 제2 오프 셋(offset_2)을 식별하고, 제1 미스드 포인트(603)의 오프 셋(mp_offset_1)과 제2 패치(601)의 제2 중점(C2)의 제2 오프 셋(offset_2)의 차이 값(delta_1)을 계산할 수 있다.
송신 장치는 계산된 차이 값(delta_1)을 포함하는 미스드 포인트의 오프셋에 대한 정보를 인코딩하여 전송할 수 있다(806). 미스드 포인트의 오프셋에 대한 정보에는 제2 중점(C2)의 제2 오프 셋(offset_2) 값이 포함될 수 있다.
이하, 도 6 및 도 9를 참고하여 본 개시의 일 실시 예에 따른 미스드 포인트의 오프셋을 추정하는 방법을 설명한다. 앞서 설명한 실시 예와 동일한 내용은 설명을 생략한다.
도 9는 본 개시의 일 실시 예에 따른 미스드 포인트의 오프셋을 추정하는 방법을 나타낸 순서도이다.
수신 장치는 수신한 데이터를 디코딩한다(900). 수신한 데이터에는 미스드 포인트의 오프셋에 대한 정보가 포함된다.
수신 장치는 플래그를 확인하여 미스드 포인트인지 확인할 수 있다(901). 미스드 포인트가 아닐 경우 다음 포인트로 이동하고(902), 미스드 포인트일 경우 가장 가까운 패치를 식별할 수 있다(903). 도 6을 예로 들면, 제1 미스드 포인트(603)에 대하여 제2 패치(601)을 가장 가까운 패치로 식별할 수 있다.
다음으로, 수신 장치는 수신한 데이터에서 가장 가까운 패치의 오프셋을 식별할 수 있다(904). 예를 들어 수신한 데이터에서 제2 패치(601)의 제2 중점(C2)의 제2 오프셋(offset_2)을 식별할 수 있다.
수신 장치는 수신한 데이터에서 미스드 포인트에 대응되는 차이 값을 식별할 수 있다(905). 예를 들어 제1 미스드 포인트(603)인 경우, 제1 미스드 포인트(603)의 오프셋(mp_offset_1)과 제2 패치(601)의 제2 중점(C2)의 제2 오프셋(offset_2)의 차이 값(delta_1)을 제1 미스드 포인트에 대응되는 차이 값으로 식별할 수 있다.
다음으로, 가장 가까운 패치의 오프셋과 미스드 포인트에 대응되는 차이 값을 기반으로 미스드 포인트의 오프셋을 계산할 수 있다(906). 예를 들어, 수신 장치는 제1 미스드 포인트(603)에 대응하는 차이 값(delta_1) 및 제2 패치(601)의 제2 중점(C2)의 제2 오프셋(offset_2)을 기반으로 제1 미스드 포인트(603)의 오프셋을 계산할 수 있다. 이렇게 계산된 오프셋을 제1 미스드 포인트(603)의 오프셋으로 추정할 수 있다.
이 경우, 예를 들어 제1 미스드 포인트(602)의 실제 오프 셋(mp_offset_1)의 값이 0~255범위라면 실제 오프 셋(mp_offset_1)의 값보다 작은 0~100범위의 차이 값(delta_1)만 전송하면 되므로 데이터 전송 량을 감축할 수 있다.
제2 미스드 포인트(603), 제3 미스드 포인트(604)... 등의 오프셋 추정도 마찬가지의 방법으로 수행될 수 있다.
이하, 도 10을 참고하여 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법 및 이를 기반으로 미스드 포인트의 오프셋을 추정하는 방법을 설명한다. 앞서 설명한 실시예와 동일한 부분의 설명은 생략한다.
도 10은, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
도 10의 복수의 그룹(Group A, Group B, Group C, Group D)은 복수의 미스드 포인트들을 그룹핑(grouping)한 것이다. 복수의 미스드 포인트들의 오프셋을 전송하는 대신 도 10과 같이 복수의 미스드 포인트들을 그룹핑(grouping)하여 각 그룹의 대표 오프셋 및 그룹 식별자(identifier)를 전송할 수 있다.
이 때, 복수의 미스드 포인트들은 다양한 기준에 의해 그룹핑될 수 있다. 일 예시로, 하나의 미스드 포인트의 오프셋을 기준으로 오프셋 값이 동일 또는 유사한 미스드 포인트들을 하나의 그룹으로 그룹핑할 수 있다. 여기서 오프셋 값이 유사하다는 것은 오프셋 간의 차이가 일정한 임계 값 이하인 경우일 수 있다.
일 예시로 미스드 포인트들의 오프셋의 벡터 간의 각도 차이 값이 임계 값 이하일 경우 하나의 그룹으로 그룹핑될 수 있다. 예를 들어 제1 미스드 포인트의 오프셋의 벡터가 a=(a1, a2, ..., an)이고 제2 미스드 포인트의 오프셋의 벡터가 b=(b1, b2, ..., bn)일 때, [수학식 3]으로 계산되는 제1 미스드 포인트의 오프셋의 벡터(a)와 제2 미스드 포인트의 오프셋의 벡터(b)의 각도 차이 값(cosθ)이 임계 값 이하일 경우, 제1 미스드 포인트의 오프셋의 벡터와 제2 미스드 포인트의 오프셋의 벡터는 하나의 그룹으로 그룹핑될 수 있다.
Figure PCTKR2019004546-appb-M000003
또는 하나의 미스드 포인트를 기준으로 일정 영역 이내의 미스드 포인트들을 하나의 그룹으로 그룹핑할 수 있다. 또는 미스드 포인트들 간의 인접 여부 및 오프셋의 유사도를 모두 고려하여 그룹핑할 수도 있다.
이 경우, 각 그룹 식별자 및 각 그룹의 대표 오프셋을 수신기에게 전송하면 되기 때문에 모든 미스드 포인트의 오프셋을 전송하는 경우 보다 데이터 전송 량을 감축할 수 있다.
수신 장치는 해당 그룹에 포함되는 미스드 포인트들의 오프셋들을 해당 그룹의 대표 오프셋과 동일하다고 추정할 수 있다.
이하, 도 11을 참고하여 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법 및 이를 기반으로 미스드 포인트의 오프셋을 추정하는 방법을 설명한다. 앞서 설명한 실시예와 동일한 부분의 설명은 생략한다.
도 11은, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
복수의 미스드 포인트들의 오프셋을 전송하는 대신, 도 11과 같이 복수의 미스드 포인트들을 그룹핑(grouping)하여 대표 그룹의 그룹 식별자 및 대표 그룹의 대표 오프셋을 수신기에게 전송할 수 있다. 또한, 대표 그룹의 오프셋과 대표 그룹 외의 다른 그룹의 대표 오프셋의 차이 값을 수신기에게 전송할 수 있다.
예를 들어, 복수의 그룹들(Group A, Group B, Group C, Group D)을 오프셋의 크기 순으로 정렬하여 가장 큰 오프셋을 갖는 그룹을 대표 그룹으로 정할 수 있다.
제1 그룹(Group A)을 대표 그룹으로 가정하면, 제1 그룹(Group A)의 그룹 식별자와 제1 그룹(Group A)의 대표 오프셋을 전송할 수 있다. 또한, 제1 그룹(Group A)의 대표 오프 셋과 제2 그룹(Group B)의 대표 오프 셋의 차이 값(delta AB)을 계산하고, 제2 그룹(Group B)의 대표 오프 셋과 제3 그룹(Group C)의 대표 오프 셋의 차이 값(delta BC)을 계산하고, 제3 그룹(Group C)의 대표 오프 셋과 제4 그룹(Group D)의 대표 오프 셋의 차이 값(delta CD)을 계산하여 이러한 차이 값들을 전송할 수 있다.
이 경우, 각 그룹의 그룹 식별자, 대표 그룹의 대표 오프셋 및 그룹들의 대표 오프셋들 간의 차이 값들을 전송하면 되기 때문에 모든 미스드 포인트의 오프셋을 전송할 때 보다 데이터 전송 량을 감축할 수 있다. 또한, 이러한 대표 오프셋들 간의 차이 값 계산이 반복될수록 차이 값들의 크기는 작아질 수 있기 때문에 데이터 전송량 감축이 증가될 수 있다.
수신 장치는 수신한 대표 그룹의 대표 오프셋 및 대표 오프셋들 간의 차이 값들을 기반으로 계산하여 복수의 그룹들 각각의 대표 오프셋을 추정할 수 있다. 수신 장치는 해당 그룹에 포함되는 미스드 포인트들의 오프 셋들을 해당 그룹의 추정된 대표 오프 셋과 동일하다고 추정할 수 있다.
이하, 도 12 및 도 13을 참고하여 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명한다. 앞서 설명한 실시예와 동일한 부분의 설명은 생략한다.
도 12는, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 나타낸 순서도이다. 도 13은, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 전송하는 방법을 설명하기 위한 도면이다.
송신 장치는 미스드 포인트의 오프셋을 전송하지 않고 미스드 포인트의 오프셋에 대한 정보를 전송할 수 있다. 먼저, 송신 장치는 포인트가 미스드 포인트에 해당하는지 판단할 수 있다(1200). 미스드 포인트가 아닌 경우 다음 포인트로 이동하고(1201), 미스드 포인트인 경우 미스드 포인트에 해당함을 플래그로 설정할 수 있다(1202).
다음으로 미스드 포인트들을 그룹핑할 수 있고(1203), 미스드 포인트 그룹들 각각의 대표 오프셋을 결정할 수 있다(1204). 도 13을 예로 들면, 복수의 미스드 포인트들을 복수의 그룹들(Group A, Group B, Group C, Group D)로 그룹핑할 수 있고, 복수의 그룹들(Group A, Group B, Group C, Group D) 각각의 대표 오프셋을 결정할 수 있다.
다음으로 복수의 그룹들 중 대표 그룹을 결정할 수 있다(1205). 예를 들어, 복수의 그룹들(Group A, Group B, Group C, Group D)을 오프셋의 크기 순으로 정렬하여 가장 큰 오프셋을 갖는 그룹을 대표 그룹으로 정할 수 있다.
다음으로 대표 그룹의 대표 오프셋과 다른 그룹의 대표 오프셋 간의 차이 값을 계산할 수 있다(1206). 제1 그룹(Group A)을 대표 그룹으로 가정하면, 제1 그룹(Group A)의 대표 오프셋과 제2 그룹(Group B)의 대표 오프셋의 차이 값(delta AB)을 계산하고, 제1 그룹(Group A)의 대표 오프셋과 제3 그룹(Group C)의 대표 오프셋의 차이 값(delta AC)을 계산하고, 제1 그룹(Group A)의 대표 오프셋과 제4 그룹(Group D)의 대표 오프셋의 차이 값(delta AD)을 계산할 수 있다.
송신 장치는 각 그룹의 그룹 식별자, 대표 그룹의 대표 오프셋 및 그룹들의 대표 오프 셋들 간의 차이 값들을 인코딩하여 전송할 수 있다(1207). 예를 들어 송신 장치는 복수의 그룹들(Group A, Group B, Group C, Group D) 각각의 그룹 아이디, 제1 그룹(Group A)의 대표 오프셋 및 대표 오프셋들 간의 차이 값(delta AB, delta AC, delta AD)을 전송할 수 있다.
이 경우, 각 그룹의 그룹 식별자, 대표 그룹의 대표 오프셋 및 그룹들의 대표 오프셋들 간의 차이 값들을 전송하면 되기 때문에 모든 미스드 포인트의 오프셋을 전송할 때 보다 데이터 전송 량을 감축할 수 있다.
이하, 도 13 및 도 14를 참고하여 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋을 추정하는 방법을 설명한다. 앞서 설명한 실시예와 동일한 부분의 설명은 생략한다.
도 14는, 본 개시의 일 실시예에 따른 미스드 포인트의 오프셋에 대한 정보를 추정하는 방법을 나타낸 순서도이다.
수신 장치는 수신한 데이터를 디코딩한다(1400). 수신한 데이터에는 미스드 포인트의 오프셋에 대한 정보가 포함된다.
수신 장치는 플래그를 확인하여 미스드 포인트인지 확인할 수 있다(1401). 미스드 포인트가 아닐 경우 다음 포인트로 이동하고(1402), 미스드 포인트일 경우 미스드 포인트가 포함된 그룹의 그룹 식별자를 식별할 수 있다(1403). 예를 들어, 미스드 포인트가 제3 그룹(Group C)에 포함되어 있는 경우 제3 그룹(Group C)의 그룹 식별자를 식별할 수 있다.
다음으로 미스드 포인트가 포함된 그룹에 대응되는 차이 값을 식별할 수 있다. 예를 들어, 제3 그룹(Group C)에 대응되는 차이 값으로 차이 값(delta AC)를 식별할 수 있다.
수신 장치는 대표 그룹의 대표 오프셋을 식별하여 미스드 포인트가 포함된 그룹의 대표 오프셋을 계산할 수 있다(1405). 예를 들어, 대표 그룹인 제1 그룹(Group A)의 대표 오프셋과 미스드 포인트가 포함된 제3 그룹(Group C)에 대응되는 차이 값(delta AC)을 기반으로 제3 그룹(Group C)의 대표 오프셋을 계산할 수 있다. 수신 장치는 이렇게 계산된 제3 그룹(Group C)의 대표 오프셋을 제3 그룹(Group C)에 포함된 미스드 포인트의 오프셋으로 추정할 수 있다.
상술한 본 개시에 따른 실시 예들을 수행하는데 하기 [표 1] 내지 [표 5]와 같은 구문(syntax)이 사용될 수 있다.
Figure PCTKR2019004546-appb-T000001
Figure PCTKR2019004546-appb-T000002
Figure PCTKR2019004546-appb-T000003
Figure PCTKR2019004546-appb-T000004
Figure PCTKR2019004546-appb-T000005
상기 [표 1] 내지 [표 5]에서 pick_nearest_neighborhood(id,num)는 (Point[id].x, Point[id].y, Point[id].z)와 가장 가까운 거리에 있는 세그먼트의 개수(num)를 계산해서, 오프셋을 리턴하는 함수이다. calculate_distance(id, Neighbour[i])는 Point[id]와 Neighbour[i]의 기하학 거리를 측정하여 리턴하는 함수이다. Delta[id]는 Point[id]와 기준이 되는 세그먼트의 오프셋과의 차이 값(Delta)을 저장한 공간을 의미한다. Offset[group_index]는 group_index 그룹의 오프셋을 저장한 공간을 의미한다.
이하, 도 15를 참고하여 본 개시의 일 실시예에 따른 데이터의 전송 또는 수신을 위한 장치의 구조를 설명한다. 앞서 설명한 실시예와 동일한 부분의 설명은 생략한다.
도 15는, 본 개시의 일 실시예에 따른 데이터의 전송 또는 수신을 위한 장치의 구성을 개략적으로 나타낸 도면이다.
데이터의 전송 또는 수신을 위한 장치(1500)는 인코딩한 신호를 송수신하는 송수신부(1501), 데이터의 전송 또는 수신을 위한 장치의 모든 동작을 제어하는 제어부(1502), 포인트 클라우드에 관한 데이터를 저장하는 메모리부(1503)를 포함할 수 있다.
본 개시에서 상술된 데이터의 전송 또는 수신을 위한 장치(1500)에서 수행되는 프로젝션, 팩킹, 인코딩, 역 프로젝션, 팩킹 해제, 디코딩 등의 모든 기법 또는 방법들 중 적어도 하나 이상은 상기 제어부(1502)의 제어에 의해 수행되는 것으로 이해될 수 있다.
본 개시에서 상술된 포인트 클라우드에 관한 데이터는 상기 메모리부(1503)에 일시적 또는 반영구적으로 전체 또는 일부가 저장되어 있을 수 있다. 또한, 본 개시에서 상술된 데이터의 전송 또는 수신을 위한 장치(1500)에서 수행되는 모든 기법 또는 방법들에 대한 알고리즘이 상기 메모리부(1502)에 일시적 또는 반영구적으로 전체 또는 일부가 저장되어 있을 수 있다.
그러나, 상기 송수신부(1501), 상기 제어부(1502) 및 상기 메모리부(1503)는 반드시 별도의 장치로 구현되어야 하는 것은 아니고, 단일 칩과 같은 형태로써 하나의 구성부로 구현될 수 있음은 물론이다. 나아가, 상기 송수신부(1501), 상기 제어부(1502) 및 상기 메모리부(1503)는 반드시 모두 포함되어야 하는 것은 아니고 일부는 생략될 수 있다.
상기 도 1 내지 도 15가 예시하는 방법 예시도, 시스템의 구성도, 장치 구성도 등은 본 개시의 권리범위를 한정하기 위한 의도가 없음을 유의하여야 한다. 즉, 상기 도 1 내지 도 15에 기재된 모든 구성 또는 동작이 본 개시의 실시를 위한 필수 구성요소인 것으로 해석되어서는 안되며, 일부 구성요소 만을 포함하여도 본 개시의 본질을 해치지 않는 범위 내에서 구현될 수 있다.
앞서 설명한 동작들은 해당 프로그램 코드를 저장한 메모리 장치를 서버 또는 장치 내의 임의의 구성부에 구비함으로써 실현될 수 있다. 즉, 서버 또는 장치의 제어부는 메모리 장치 내에 저장된 프로그램 코드를 프로세서 혹은 CPU(Central Processing Unit)에 의해 읽어내어 실행함으로써 앞서 설명한 동작들을 실행할 수 있다.
본 명세서에서 설명되는 서버 또는 장치의 다양한 구성부들과, 모듈(module)등은 하드웨어(hardware) 회로, 일 예로 상보성 금속 산화막 반도체(complementary metal oxide semiconductor) 기반 논리 회로와, 펌웨어(firmware)와, 소프트웨어(software) 및/혹은 하드웨어와 펌웨어 및/혹은 머신 판독 가능 매체에 삽입된 소프트웨어의 조합과 같은 하드웨어 회로를 사용하여 동작될 수도 있다. 일 예로, 다양한 전기 구조 및 방법들은 트랜지스터(transistor)들과, 논리 게이트(logic gate)들과, 주문형 반도체와 같은 전기 회로들을 사용하여 실시될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 예를 들어 본 개시는 위치 좌표가 각각 10비트를 가지고 색상 좌표가 각각 8비트를 가지는 포인트 데이터를 가정하여 설명하였으나, 데이터의 크기는 이에 한정되지 않는다. 또한, 본 개시는 8비트의 데이터의 코딩을 지원하는 코덱을 가정하여 설명하였으나, 코덱은 이에 한정되지 않는다.
그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 포인트 클라우드에 관한 데이터의 프로세싱 방법에 있어서,
    포인트 클라우드에 관한 데이터에서 보조 비트들을 식별하는 과정;
    상기 식별된 보조 비트들을 제외한 포인트 클라우드에 관한 데이터를 복수의 평면들에 프로젝션(projection)하는 과정;
    상기 복수의 평면들에 대응하는 복수의 프로젝션 이미지들에서 미스드 포인트(missed point)들을 식별하는 과정;
    상기 복수의 프로젝션 이미지들을 팩킹(packing)하여 팩킹된 이미지를 생성하는 과정;
    상기 보조 비트들 중 상기 식별된 미스트 포인트들에 대응하는 제1 보조 비트들을 제외한 제2 보조 비트들, 상기 제1 보조 비트들에 관한 정보, 및 상기 팩킹된 이미지를 인코딩하여 생성된 신호를 전송하는 과정;
    을 포함하는 포인트 클라우드에 관한 데이터의 프로세싱 방법.
  2. 제1항에 있어서,
    상기 미스드 포인트들을 식별하는 과정은,
    상기 포인트 클라우드에 포함된 복수의 포인트들 중 가장 인접한 포인트와의 거리가 임계 값 이상인 포인트를 미스드 포인트로 식별하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  3. 제1항에 있어서,
    상기 식별된 미스드 포인트들에 대하여 플래그를 설정하는 과정을 더 포함하는 포인트 클라우드에 관한 데이터의 프로세싱 방법.
  4. 제1 항에 있어서,
    상기 제1 보조 비트들에 관한 정보는,
    상기 복수의 프로젝션 이미지들에 포함된 패치들 각각의 중점의 보조 비트를 포함하고,
    상기 패치들 각각의 중점의 좌표 및 상기 패치들 각각의 중점의 좌표와 미스드 포인트 간의 거리 중 적어도 하나를 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  5. 제1항에 있어서,
    상기 제1 보조 비트들에 관한 정보는,
    상기 복수의 프로젝션 이미지들에 포함된 패치들 중 미스드 포인트와 가장 인접한 패치의 중점의 보조 비트를 포함하고,
    상기 미스드 포인트의 보조 비트와 상기 패치의 중점의 보조 비트의 차이 값을 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  6. 제1항에 있어서,
    상기 미스드 포인트들을 복수의 그룹들로 그룹핑(grouping)하는 과정을 더 포함하며,
    상기 제1 보조 비트들에 관한 정보는, 상기 복수의 그룹들 각각의 그룹 식별자 및 상기 복수의 그룹들 각각의 대표 보조 비트를 포함하고,
    상기 미스드 포인트들을 그룹핑하는 과정은, 상기 제1 보조 비트들 간의 유사도 및 상기 미스드 포인트들 간의 거리 중 적어도 하나를 기반으로 하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  7. 제1항에 있어서,
    상기 미스드 포인트들을 복수의 그룹들로 그룹핑(grouping)하는 과정; 및
    상기 복수의 그룹들에 포함된 제1 그룹의 대표 보조 비트와 상기 복수의 그룹들에 포함된 제2 그룹의 대표 보조 비트의 차이 값을 계산하는 과정; 을 더 포함하며,
    상기 제1 보조 비트들에 관한 정보는, 상기 복수의 그룹들 각각의 그룹 식별자, 상기 제1 그룹의 대표 보조 비트 및 상기 계산된 차이 값을 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  8. 포인트 클라우드에 관한 데이터의 프로세싱 방법에 있어서,
    미스트 포인트들에 대응하는 제1 보조 비트들을 제외한 제2 보조 비트들, 상기 제1 보조 비트들에 관한 정보, 및 팩킹된 이미지를 포함하는 신호를 수신하여 디코딩하는 과정;
    상기 팩킹된 이미지를 팩킹 해제하여 복수의 프로젝션 이미지들을 식별하는 과정;
    상기 복수의 프로젝션 이미지들에서 상기 미스드 포인트들을 식별하는 과정;
    상기 제1 보조 비트들에 관한 정보를 기반으로 상기 미스드 포인트들의 상기 제1 보조 비트들을 추정하는 과정;
    상기 복수의 프로젝션 이미지들을 역 프로젝션한 데이터, 상기 추정된 제1 보조 비트들 및 상기 제2 보조 비트들을 기반으로 포인트 클라우드를 복원하는 과정;
    을 포함하는 포인트 클라우드에 관한 데이터의 프로세싱 방법.
  9. 제1항 또는 제8항에 있어서,
    상기 보조 비트들 각각의 크기는 상기 포인트 클라우드에 관한 데이터의 크기와 상기 신호를 생성하는데 사용된 코덱(codec)이 인코딩을 지원하는 데이터의 크기의 차이와 같은,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  10. 제8항에 있어서,
    상기 미스드 포인트들을 식별하는 과정은, 디코딩된 신호에 포함된 플래그를 확인하여 식별하고,
    상기 제1 보조 비트들을 추정하는 과정은, 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 복수의 프로젝션 이미지들에 포함된 패치들 각각의 중점의 좌표와 미스드 포인트 간의 거리를 식별하는 과정; 또는 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 패치들 각각의 중점의 좌표를 기반으로 상기 패치들 각각의 중점의 좌표와 상기 미스드 포인트 간의 거리를 계산하는 과정과, 상기 패치들 각각의 중점의 좌표와 상기 미스드 포인트 간의 거리 및 상기 제1 보조 비트들에 관한 정보에 포함된 상기 패치들의 각각의 중점의 보조 비트를 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정;을 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  11. 제10항에 있어서,
    상기 제1 보조 비트들을 추정하는 과정은,
    상기 패치들 각각의 중점의 좌표와 상기 미스드 포인트 간의 거리에 반비례하는 웨이트(weight)를 계산한 값과 상기 패치들의 각각의 중점의 보조 비트를 기반으로 가중 평균을 계산하여 상기 미스드 포인트의 상기 보조 비트를 추정하는 과정을 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  12. 제8항에 있어서,
    상기 제1 보조 비트들을 추정하는 과정은,
    상기 복수의 프로젝션 이미지들에 포함된 패치들 중, 미스드 포인트와 인접한 패치를 식별하는 과정;
    상기 제1 보조 비트들에 관한 정보에 포함된 상기 패치의 중점의 보조 비트와 상기 패치의 중점의 보조 비트와 상기 미스드 포인트의 보조 비트의 차이 값을 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정; 을 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  13. 제8항에 있어서,
    상기 제1 보조 비트들을 추정하는 과정은,
    상기 제1 보조 비트들에 관한 정보가 포함하는, 미스드 포인트가 포함된 그룹의 그룹 식별자 및 상기 미스드 포인트 그룹의 대표 보조 비트를 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정; 또는,
    상기 제1 보조 비트들에 관한 정보가 포함하는 상기 미스드 포인트들을 그룹핑한 복수의 그룹들의 그룹 식별자들 중, 제1 그룹 및 미스드 포인트가 포함된 제2 그룹을 식별하는 과정과, 상기 제1 보조 비트들에 관한 정보가 포함하는 상기 제1 그룹의 대표 보조 비트와, 상기 제1 그룹의 대표 보조 비트와 상기 제2 그룹의 대표 보조 비트의 차이 값을 기반으로 상기 미스드 포인트의 보조 비트를 추정하는 과정을 포함하는,
    포인트 클라우드에 관한 데이터의 프로세싱 방법.
  14. 제6항 또는 제13항에 있어서,
    상기 제1 그룹은 상기 복수의 그룹들 중 대표 보조 비트가 가장 큰 그룹인, 포인트 클라우드에 관한 데이터의 프로세싱 방법.
  15. 포인트 클라우드에 관한 데이터의 프로세싱 장치에 있어서,
    제 1 항 내지 제 14 항 중 어느 한 항의 방법에 따라 처리하도록 구성된 적어도 하나의 프로세서를 포함하는 프로세싱 장치.
PCT/KR2019/004546 2018-04-17 2019-04-16 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치 WO2019203523A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0044639 2018-04-17
KR1020180044639A KR102537946B1 (ko) 2018-04-17 2018-04-17 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2019203523A1 true WO2019203523A1 (ko) 2019-10-24

Family

ID=68239813

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/004546 WO2019203523A1 (ko) 2018-04-17 2019-04-16 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102537946B1 (ko)
WO (1) WO2019203523A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115380528A (zh) * 2020-04-11 2022-11-22 Lg电子株式会社 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102477031B1 (ko) 2018-04-20 2022-12-14 삼성전자주식회사 3차원 데이터를 프로세싱하기 위한 방법 및 장치
CN112672168B (zh) * 2020-12-14 2022-10-18 深圳大学 基于图卷积的点云压缩方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030038798A1 (en) * 2001-02-28 2003-02-27 Paul Besl Method and system for processing, compressing, streaming, and interactive rendering of 3D color image data
US20100209013A1 (en) * 2009-02-13 2010-08-19 Harris Corporation Registration of 3d point cloud data to 2d electro-optical image data
KR20150145950A (ko) * 2014-06-20 2015-12-31 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
US20170094262A1 (en) * 2014-05-13 2017-03-30 Pcp Vr Inc. Method, system and apparatus for generation and playback of virtual reality multimedia
WO2018050725A1 (en) * 2016-09-19 2018-03-22 Thomson Licensing A method and a device for reconstructing a point cloud representative of a scene using light-field data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6512575B2 (ja) * 2015-03-03 2019-05-15 芳隆 大吉 三次元形状情報の配信または放送の方法
JP6760781B2 (ja) * 2016-07-08 2020-09-23 株式会社パスコ 3次元モデル生成装置、3次元モデル生成方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030038798A1 (en) * 2001-02-28 2003-02-27 Paul Besl Method and system for processing, compressing, streaming, and interactive rendering of 3D color image data
US20100209013A1 (en) * 2009-02-13 2010-08-19 Harris Corporation Registration of 3d point cloud data to 2d electro-optical image data
US20170094262A1 (en) * 2014-05-13 2017-03-30 Pcp Vr Inc. Method, system and apparatus for generation and playback of virtual reality multimedia
KR20150145950A (ko) * 2014-06-20 2015-12-31 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
WO2018050725A1 (en) * 2016-09-19 2018-03-22 Thomson Licensing A method and a device for reconstructing a point cloud representative of a scene using light-field data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115380528A (zh) * 2020-04-11 2022-11-22 Lg电子株式会社 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
CN115380528B (zh) * 2020-04-11 2024-03-29 Lg电子株式会社 点云数据发送设备、点云数据发送方法、点云数据接收设备和点云数据接收方法
US12021910B2 (en) 2020-04-11 2024-06-25 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

Also Published As

Publication number Publication date
KR20190121106A (ko) 2019-10-25
KR102537946B1 (ko) 2023-05-31

Similar Documents

Publication Publication Date Title
WO2019203523A1 (ko) 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치
WO2019194522A1 (ko) 중복 포인트 처리 방법 및 장치
WO2019125010A1 (en) Method and apparatus for handling duplicate points in point cloud compression
WO2020013592A1 (en) Improved point cloud compression via color smoothing of point cloud prior to texture video generation
WO2020145649A1 (en) Apparatus and method for patch splitting in video/image-based point cloud compression system
WO2011155704A2 (ko) 깊이 전이 데이터를 이용한 3d 비디오 인코딩/디코딩 장치 및 방법
WO2020013631A1 (ko) 3차원 영상을 부호화 하는 방법 및 장치, 및 3차원 영상을 복호화 하는 방법 및 장치
WO2013111994A1 (en) Image processing method and apparatus for 3d video
WO2019098728A1 (ko) 3차원 영상을 처리하는 방법 및 장치
EP3586315A1 (en) Method and apparatus for displaying image based on user motion information
WO2009151292A2 (ko) 영상 변환 방법 및 장치
WO2020009390A1 (ko) 영상 코딩 시스템에서 인터 예측에 따른 영상 처리 방법 및 장치
WO2018225949A1 (en) Method and apparatus for determining a motion vector
WO2023171981A1 (ko) 감시카메라 관리 장치
WO2020141928A1 (ko) 영상 코딩 시스템에서 mmvd 에 따른 예측에 기반한 영상 디코딩 방법 및 장치
WO2019203628A1 (ko) 3차원 데이터를 프로세싱하기 위한 방법 및 장치
WO2017074016A1 (ko) 컬러 컴포넌트의 동적 범위를 이용한 영상 처리 방법 및 그 장치
WO2019203533A1 (ko) 다중 움직임 모델을 고려한 인터 예측 방법 및 그 장치
WO2018212582A1 (ko) 화면 내 예측 부호화 또는 복호화 방법 및 장치
WO2019074265A1 (en) PRODUCTION OF 360-DEGREE IMAGE CONTENT ON RECTANGULAR PROJECTION IN ELECTRONIC DEVICE USING FILLING INFORMATION
WO2018155939A1 (ko) 영상 복호화 방법 및 장치
WO2020013673A1 (ko) Dmvr에 기반하여 인터 예측을 수행하는 방법 및 장치
WO2024085654A1 (en) Packing of displacements data in video frames for dynamic mesh coding
WO2023172017A1 (ko) 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법
WO2015152459A1 (ko) 영상 데이터를 처리하는 방법 및 디바이스.

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

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

Country of ref document: EP

Kind code of ref document: A1