WO2021062732A1 - 变换方法、逆变换方法、编码器、解码器及存储介质 - Google Patents

变换方法、逆变换方法、编码器、解码器及存储介质 Download PDF

Info

Publication number
WO2021062732A1
WO2021062732A1 PCT/CN2019/109646 CN2019109646W WO2021062732A1 WO 2021062732 A1 WO2021062732 A1 WO 2021062732A1 CN 2019109646 W CN2019109646 W CN 2019109646W WO 2021062732 A1 WO2021062732 A1 WO 2021062732A1
Authority
WO
WIPO (PCT)
Prior art keywords
transformation
dimensional
coded
point
dimensional coordinate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2019/109646
Other languages
English (en)
French (fr)
Inventor
张伟
杨付正
万帅
马彦卓
霍俊彦
代娜
孙泽星
杨丽慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to EP19947959.3A priority Critical patent/EP4040793A4/en
Priority to CN201980100486.7A priority patent/CN114402621A/zh
Priority to PCT/CN2019/109646 priority patent/WO2021062732A1/zh
Publication of WO2021062732A1 publication Critical patent/WO2021062732A1/zh
Priority to US17/655,409 priority patent/US12159436B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • 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
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Definitions

  • the embodiments of the present application relate to the technical field of video coding and decoding, and in particular, to a transformation method, an inverse transformation method, an encoder, a decoder, and a storage medium.
  • Geometry-based Point Cloud Compression G-PCC, Geometry-based Point Cloud Compression
  • the geometric information of a point in the point cloud and the attribute information corresponding to the point are separately encoded.
  • the geometric information is reconstructed, and the coding of the attribute information will depend on the reconstructed geometric information.
  • the coding of attribute information is mainly aimed at the coding of color information.
  • the color information is converted from the RGB color space to the YUV color space.
  • the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information.
  • color information coding there are mainly two transformation methods.
  • the RAHT transformation is carried out on the basis of the hierarchical structure obtained by dividing the octree of the point cloud data, starting from the lowest level of the octree to the highest level, looping through each node in each layer.
  • the RAHT transformation of each node is performed in the z, y, and x directions of the three-dimensional coordinates in the order of transformation.
  • the embodiments of the present application provide a transformation method, an inverse transformation method, an encoder, a decoder, and a storage medium, which can reduce the redundancy of the transformation coefficients obtained by the transformation and improve the coding and decoding efficiency.
  • an embodiment of the present application provides a transformation method applied to an encoder, including:
  • the two-dimensional Morton code is the corresponding two-dimensional coordinate obtained by removing a certain component of the three-dimensional coordinate of the point to be coded.
  • K is a positive integer greater than 1;
  • the conversion sequence and the RAHT-transformed attribute encoding result are written into the attribute bitstream.
  • an embodiment of the present application also provides an inverse transformation method, including:
  • the regional adaptive hierarchical transformation RAHT inverse transformation is performed.
  • an encoder including:
  • the determining part is configured to determine the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded; the two-dimensional Morton code is the point to be coded after a certain component of the three-dimensional coordinate is removed in turn The obtained two-dimensional coordinates correspond to Morton code;
  • the acquiring part is configured to shift the two-dimensional Morton code by K bits to the right to obtain point sets corresponding to the three-dimensional coordinate components; K is a positive integer greater than 1;
  • the determining part is further configured to determine, from the point collection, the number of points corresponding to the three-dimensional coordinate components containing the largest number of points to be coded, respectively corresponding to the three-dimensional coordinate components; and based on the number of points corresponding to the three-dimensional coordinate components, Determining a transformation sequence corresponding to the preset space;
  • the transformation part is configured to perform a regional adaptive hierarchical transformation RAHT transformation based on the transformation sequence corresponding to the preset space;
  • the writing part is configured to write the transformation sequence and the attribute encoding result after the RAHT transformation into the attribute bit stream.
  • an embodiment of the present application provides a decoder, including:
  • the parsing part is configured to parse out the transformation order from the attribute bit stream
  • the decoding part is configured to perform a region-adaptive hierarchical transform RAHT inverse transform based on the transform order.
  • an encoder including:
  • the first memory is used to store executable instructions
  • the first processor is configured to implement the conversion method described in the first aspect when executing the executable instructions stored in the first memory.
  • an embodiment of the present application also provides a decoder, including:
  • the second memory is used to store executable instructions
  • the second processor is configured to implement the inverse transformation method described in the second aspect when executing the executable instructions stored in the second memory.
  • an embodiment of the present application provides a computer-readable storage medium applied to encoding, including: storing executable instructions for causing a first processor to execute, to implement the transformation method described in the first aspect.
  • an embodiment of the present application provides a computer-readable storage medium applied to a decoder, including: storing executable instructions for causing a second processor to execute, to implement the inverse transformation described in the second aspect method.
  • a transformation method, an inverse transformation method, an encoder, a decoder, and a storage medium include: a two-dimensional Morton code that determines a point to be encoded in a preset space in a point cloud to be encoded; The Vimorton code is shifted by K bits to the right to obtain the point set corresponding to the three-dimensional coordinate components; K is a positive integer greater than 1; from the point set, determine the three-dimensional coordinate component corresponding to the three-dimensional coordinate component and containing the largest number of points to be coded The number of points corresponding to each; based on the number of points corresponding to the three-dimensional coordinate components, determine the transformation sequence corresponding to the preset space; based on the transformation sequence corresponding to the preset space, perform regional adaptive layered transformation RAHT transformation; transform the transformation sequence and the RAHT transformation sequence The attribute encoding result is written into the attribute bitstream.
  • the encoder is in the process of attribute encoding, for the realization of the RAHT transformation, through the two-dimensional Morton code of the point to be encoded in the preset space, the three-dimensional coordinate component of each coordinate component is calculated separately
  • the corresponding number of points is ultimately based on the number of points corresponding to the three-dimensional coordinate components to determine the transformation order for RAHT transformation.
  • the transformation in the direction with significant characteristics is prioritized, so as to reduce the redundancy of the transformation coefficients obtained by the transformation and improve the coding and decoding efficiency.
  • FIG. 1 is a block diagram of an exemplary encoding process provided by an embodiment of the application
  • FIG. 2 is a block diagram of an exemplary decoding process provided by an embodiment of the application.
  • FIG. 3 is a schematic diagram 1 of an exemplary two-dimensional Morton code provided by an embodiment of the application.
  • FIG. 4 is a second schematic diagram of an exemplary two-dimensional Morton code provided by an embodiment of the application.
  • FIG. 5 is a schematic diagram 1 of an exemplary three-dimensional Morton encoding provided by an embodiment of this application;
  • Fig. 6 is a second schematic diagram of an exemplary three-dimensional Morton encoding provided by an embodiment of the application.
  • FIG. 7 is a schematic diagram of an exemplary hierarchical RAHT transformation provided by an embodiment of the application.
  • FIG. 8 is a first flowchart of a conversion method provided by an embodiment of this application.
  • FIG. 9 is a second flowchart of the conversion method provided by an embodiment of the application.
  • FIG. 10 is a flowchart of an inverse transform method provided by an embodiment of the application.
  • FIG. 11 is a first structural diagram of an encoder provided by an embodiment of the application.
  • FIG. 12 is a second structural diagram of an encoder provided by an embodiment of the application.
  • FIG. 13 is a first structural diagram of a decoder provided by an embodiment of this application.
  • FIG. 14 is a second structural diagram of a decoder provided by an embodiment of this application.
  • each slice is encoded independently.
  • the point cloud data is divided into multiple slices first.
  • the geometric information of the point cloud and the attribute information corresponding to each point cloud are coded separately.
  • the geometric information is coordinated to convert the point cloud into a bounding box (bounding box), and then quantized.
  • This step of quantization mainly plays the role of scaling. Due to the quantization rounding, a part of the The geometric information of the point cloud is the same, so it is determined whether to remove the duplicate points based on the parameters.
  • the process of quantifying and removing the duplicate points is also called the voxelization process.
  • the bounding box is divided into eight sub-cubes, and the non-empty (including points in the point cloud) sub-cubes are continued to be divided into eight equal parts until the leaf knots are obtained.
  • the point is a 1x1x1 unit cube
  • the division is stopped, and the points in the leaf nodes are arithmetic coded to generate a binary geometric bit stream, that is, a geometric code stream.
  • octree division In the process of encoding geometric information based on trisoup (triangle soup, triangular face set), octree division must also be performed first, but different from the geometric information encoding based on octree, the trisoup does not need to step by step the point cloud Divide into a unit cube with a side length of 1x1x1, but divide it into a block (sub-block) when the side length is W, and stop dividing.
  • the geometric coding is completed, and after the geometric information is reconstructed, color conversion is performed, and the color information (that is, the attribute information) is converted from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information.
  • the color information coding process there are mainly two transformation methods. One is the distance-based lifting transformation that relies on the level of detail (LOD) division, and the other is the direct region adaptive hierarchal transformation (Region Adaptive Hierarchal Transform).
  • RAHT RAHT
  • these two methods will transform the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through the transformation, and finally quantize the coefficients (ie, quantized coefficients), and finally, pass through the octree
  • the vertex coordinates of each block are sequentially encoded (that is, arithmetic coding) to generate a binary attribute bit stream, that is, an attribute code stream.
  • the decoder obtains the binary code stream, and independently decodes the geometric bit stream and the attribute bit stream in the binary code stream.
  • the geometric bitstream When decoding the geometric bitstream, through arithmetic decoding-octree synthesis-surface fitting-reconstruction geometry-inverse coordinate transformation, the geometric information of the point cloud is obtained;
  • the attribute bitstream through arithmetic decoding-inverse Quantization-LOD-based inverse elevation or RAHT-based inverse transformation-inverse color conversion, to obtain the attribute information of the point cloud, and restore the three-dimensional image model of the point cloud data to be encoded based on the geometric information and attribute information.
  • the geometric coordinate information of the point cloud can be obtained at this time.
  • the Morton code corresponding to each point in the point cloud can be obtained.
  • Morton coding is also called z-order code, because its coding sequence is in spatial z order. The specific method of calculating the Morton code is described as follows. For each component of the three-dimensional coordinate represented by a d-bit binary number, the representation of the three components is realized by the following:
  • Morton code M is to start from the highest position of x, y, z, and alternately arrange x l , y l , z l to the lowest position in turn.
  • the calculation formula of M is as follows:
  • the points in the point cloud are arranged in the order of the Morton code from small to large, and the weight w of each point is set to 1.
  • Figure 3 shows the spatial encoding of each pixel of an 8*8 image, from 000000 to 111111, using one-dimensional binary numbers to encode the position coordinates of x and y values between 0-7. Interleave binary coordinate values to obtain a binary z-value map. Connect the z-shaped along the numerical direction to produce a recursive z-shaped curve. In each position in the figure, the z value is placed in the order of connection.
  • the above figure is iteratively generated in the z direction, from 00-11 (one z in the entire figure), then from 0000-1111 (one z for each point of the previous z), and then from 000000-111111 (the previous Put one z) for each point of z, increase by two bits each time, and increase recursively.
  • FIG. 4 shows the 2x2, 4x4, 8x8 and 16x16 spatial coding sequence, from which it can be seen that the coding sequence of the Morton code is implemented according to the spatial z sequence.
  • RAHT transformation is carried out on the basis of the hierarchical structure obtained by dividing the point cloud data into an octree. Starting from the bottom layer of the octree, the transformation is carried out hierarchically. As shown in Fig. 7, voxel block 1 is obtained after the octree division is completed (that is, the geometry of the three color depths alternated in Fig. 7, and each block represents a point in the point cloud). Start the RAHT transformation from the bottom layer. Take the transformation order xyz as an example. As shown in Figure 7 below, perform the RAHT transformation along the x direction first.
  • RAHT is performed on the two to obtain the average (DC coefficient) and detail (AC coefficient) of the attribute values of the two adjacent points.
  • DC coefficient the average
  • AC coefficient detail
  • the obtained DC coefficients exist as the attribute information of the voxel block 2 of the parent node, and the RAHT transform of the next layer is performed; and the AC coefficients are retained and used for the final coding.
  • the attribute value of the voxel block is directly transferred to the second-level parent node.
  • the second layer of RAHT transforms it is performed along the y direction.
  • RAHT is performed on the two, and the average (DC coefficient) and details (AC coefficient) of the attribute values of the two adjacent points are obtained.
  • the third layer of RAHT transformation is performed along the z direction, and the parent node voxel block 3 with three different color depths is obtained as the child node of the next layer in the octree, and then the RAHT transformation is performed cyclically along the z, y, and x directions , Until there is only one parent node in the entire point cloud.
  • w is the weight corresponding to the DC coefficient, which is calculated.
  • the DC coefficient is the weighted average of the attributes
  • the AC coefficient is the attribute residuals of two adjacent points.
  • the three color components of the attribute information (which can be represented by Y, U, and V respectively) are calculated separately for the RAHT transformation, and the three are independent of each other and have no influence.
  • the child node can be up-sampled and calculated to obtain the predicted attribute value of the child node.
  • the specific process is as follows:
  • d i represents the distance from the center point of the center point from the ion parent node adjacent i
  • a i represents the attribute value of the parent node
  • the RAHT decoding process is the inverse transformation of the RAHT encoding process. It is the same as the encoding process. Before the inverse transformation, the Morton code of each point is calculated in the point cloud, and the Morton code M of each point is obtained. The points are arranged in ascending order, and the weight of each point is set to 1. The RAHT inverse process traverses all points in the point cloud according to the order of Morton code sorting.
  • the RAHT transformation is carried out in layers, starting from the bottom layer, the adjacent points in the point cloud are judged layer by layer, and RAHT transformation is performed on the attribute value according to the weight.
  • the process of inverse RAHT transformation starts from the top layer and performs the inverse transformation of RAHT from top to bottom. Therefore, the weight information of each layer needs to be obtained before the inverse RAHT transformation.
  • the inverse RAHT transform uses the obtained Morton code information, starting from the bottom layer, and make a judgment on the adjacent nodes of each layer of RAHT in the encoding end, and the weight information of each layer and the corresponding position of the AC coefficient can be obtained.
  • the corresponding Morton code is shifted one bit to the left.
  • the weight information and the Morton code information corresponding to the nodes in each layer are recorded in the buffer for later use.
  • the adjacent nodes are judged according to the Morton code information of each layer, and the inverse RAHT transformation is performed using the weight information obtained and the attribute information obtained by decoding.
  • the inverse RAHT transform is equivalent to the process from the k+1th layer to the kth layer.
  • the traversed DC coefficients and the corresponding AC coefficients are used to perform the inverse transformation of RAHT.
  • an embodiment of the present application provides a conversion method, which may include:
  • the two-dimensional Morton code is the two-dimensional coordinates obtained by removing a certain component of the three-dimensional coordinates of the points to be coded corresponding to the Morton. code.
  • S103 From the point collection, determine the number of points corresponding to the three-dimensional coordinate components respectively corresponding to the three-dimensional coordinate components containing the largest number of points to be coded.
  • S104 Determine a transformation sequence corresponding to the preset space based on the number of points respectively corresponding to the three-dimensional coordinate components.
  • S105 Perform RAHT transformation based on the transformation sequence corresponding to the preset space.
  • the transformation method provided by the embodiment of the application considers the distribution of the point cloud space and the surface orientation of the RAHT transformation method, and no longer adopts a fixed transformation order, but analyzes the block to be transformed and the content contained in the preset neighborhood before the RAHT transformation is performed.
  • the spatial distribution of the point cloud that is, the spatial distribution of the preset space
  • the RAHT transformation sequence is determined according to the result of the analysis, so as to obtain better coding performance.
  • the point cloud to be coded is the point cloud data of the object to be coded in the point cloud to be coded in this application.
  • a point cloud to be coded it may include N points, that is, N points to be coded. Among them, N is greater than or equal to 1.
  • the encoder determines the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded, and shifts the two-dimensional Morton code to the right by K bits, so as to count the respective coordinate components in the three-dimensional space.
  • Point set, the point set corresponding to each coordinate component here represents the set where the points in the main distribution concentration of the point cloud to be coded in the three-dimensional space are located.
  • the encoder determines the number of points corresponding to the three-dimensional coordinate components corresponding to the three-dimensional coordinate components (ie each coordinate component) containing the largest number of points to be encoded, and determines the preset space based on the number of points corresponding to the three-dimensional coordinate components.
  • the corresponding transformation sequence Since different point clouds have different spatial distributions, before RAHT transformation, the encoder can determine the transformation sequence suitable for its own distribution characteristics according to the spatial distribution characteristics of the points to be encoded in each point cloud to be encoded, so that the encoder Based on the transformation sequence, the RAHT transformation is performed, and the resulting transformation coefficients are less redundant, and the coding efficiency can be improved.
  • the encoder since the determined transformation order of each point to be coded may be different, when determining the transformation order, the encoder needs to write the transformation order and the attribute in the encoding process.
  • Code stream that is, attribute bit stream.
  • this transformation order can be transmitted to the decoder with a 3-bit bit stream, so that the decoder can directly analyze the RAHT transformation order during decoding.
  • the points to be coded are multiple objects in the point cloud to be coded, and the encoder can remove a certain component of the three-dimensional coordinates based on each point to be coded.
  • the two-dimensional coordinates obtained by removing a certain component of the three-dimensional coordinates correspond to the Morton code.
  • Each point to be coded corresponds to three two-dimensional Morton codes, namely, the zy two-dimensional Morton code obtained by removing the x component, the zx two-dimensional Morton code obtained by removing the y component, and the xy two-dimensional Morton code obtained by removing the z component.
  • the three two-dimensional Morton codes of each point to be coded are counted according to the coordinate components, and the corresponding multiple x-component two-dimensional Morton codes and multiple to-be-coded points are counted when the x coordinate component is removed.
  • the encoder shifts the two-dimensional Morton code to the right by K bits, so that the Morton codes corresponding to the points in the adjacent positions in the space will be equal.
  • the adjacent points in the space can be divided into one point. Concentration, so as to obtain statistically the point set corresponding to each coordinate component in the three-dimensional coordinate component.
  • the encoder removes the coordinate components of x, y and z separately, the points corresponding to each coordinate component are concentrated, and the number of points with the largest number of points to be coded, that is, from the point collection, it is determined that each coordinate component corresponds to the point to be coded.
  • the number of points corresponding to the largest number of three-dimensional coordinate components is determined.
  • comparing the number of points corresponding to the three-dimensional coordinate components can determine the spatial distribution of the point cloud to be coded, thereby determining the transformation order of the points to be coded in the preset space.
  • the encoder After the encoder has determined the transformation order of all preset spaces in the point cloud to be coded, it can perform RAHT transformation on the point cloud to be coded.
  • the order in which the number of points corresponding to the three-dimensional coordinate components is the largest is the transformation order of the points to be coded in the preset space, where the transformation order and the number of points corresponding to the three-dimensional coordinate components are from most to Corresponding in small order.
  • right shift in this application refers to the Morton code moving to the right from the first number.
  • the preset space may be slice, that is, the encoder divides the point cloud space where the point cloud to be encoded is located into strips to obtain N strips; the preset space is divided into N strips Each band of; N is a positive integer greater than or equal to 1.
  • the preset space may also be a space block arbitrarily divided into the point cloud to be encoded, which is not limited in the embodiments of the present application.
  • the preset space may also be a part of the space selected from the point cloud space where the point cloud to be encoded is located, and the point cloud space except for the part of the space (which may be one or more)
  • RAHT transformation is performed in a fixed transformation order, for example, according to zyx transformation. That is, the implementation of RAHT transformation is: based on the transformation sequence corresponding to the preset space, and the preset transformation sequence corresponding to other spaces (ie, the fixed transformation sequence), the RAHT transformation is performed; among them, the other spaces are the point cloud space except the preset space Space.
  • the encoder can first analyze the overall surface trend of the point cloud to be coded, and then perform the RAHT transformation of all the point clouds to be coded based on this order, but it can perform different spatial positions of the same point cloud sequence to be coded. Sequential RAHT transformation.
  • the encoder after determining the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded, the encoder shifts the two-dimensional Morton code to the right by K bits to obtain the three-dimensional coordinate component Before the corresponding point sets, the encoder is iteratively traversed based on the two-dimensional Morton code to determine K.
  • the encoder can determine K according to the RDO criterion.
  • the encoder calculates the two-dimensional Morton code after removing the X, Y, and Z components from all points to be coded in the slice, and calculates the corresponding coordinate components: MortonX, MortonY, MortonZ;
  • the encoder counts the point set corresponding to each coordinate component after removing the X, Y, and Z components and shifting to the right by K bits, and counts the number of points in each point set.
  • the maximum number of points in the corresponding point set containing the points to be coded after the X component is removed is NumX
  • the maximum number of points in the corresponding point set after removing the Y component that contains the maximum number of points to be coded is NumY
  • the corresponding point after the Z component is removed
  • the number of points in the set containing the maximum number of points to be coded is NumZ.
  • the encoder judges the transformation order of RAHT in the preset space according to the number of NumX, NumY and NumZ.
  • the encoder determines the transformation sequence corresponding to the preset space based on the number of points corresponding to the three-dimensional coordinate components, including:
  • the transformation sequence is determined to be xyz.
  • the encoder obtains the RAHT transformation order of each slice (corresponding to the preset space)
  • the RAHT transformation order is passed to the decoder as the header information parameter of each slice attribute transformation, and the decoder can directly obtain the RAHT transformation order.
  • the sequence of the RAHT transformation direction reconstructs the attributes of each slice.
  • the embodiment of the present application provides a method for determining the RAHT transformation order to improve the coding efficiency and coding performance of the G-PCC attribute coding part.
  • the encoder first obtains K before shifting the two-dimensional Morton code by K bits to the right to obtain the point sets corresponding to the three-dimensional coordinate components.
  • the specific implementation is: obtaining the point cloud to be coded.
  • the maximum side length of the point cloud space based on the maximum side length, the geometric accuracy of the point cloud space is determined; among them, the geometric accuracy is the number of bits corresponding to the maximum side length expressed in binary; based on the geometric accuracy, K is determined.
  • the encoder puts the points in the point cloud to be encoded into a Bounding Box cube (corresponding to the point cloud space), all points are included in the block, and calculates the geometric accuracy d of the Bounding Box.
  • the point cloud When the longest side of the space is known, the longest side can be expressed as 2 d by looking at d.
  • the best Morton code right shift number K corresponding to different sequences is determined adaptively.
  • the encoder shifts the two-dimensional Morton code by K bits to the right to obtain the three-dimensional coordinate Before the point sets corresponding to the components, K must be obtained first.
  • the specific implementation is: determine the difference between the maximum value and the minimum value in the two-dimensional Morton code; determine the quotient of the difference and the number of points to be coded; determine the quotient to move to The number of digits of zero; based on the number of digits, determine K.
  • the right shift number K of the Morton code can be determined by analyzing the spatial density of different point clouds and averaging the difference of the Morton code between each adjacent point.
  • the encoder needs to sort the two-dimensional Morton codes of all the points to be coded in the preset space, and then use the maximum value in the sorted two-dimensional Morton code to subtract the minimum value, and then determine the difference between the two-dimensional Morton code and the point to be coded. How many digits of the quotient of the points move is equal to 0, that is, determine the number of bits that the quotient moves to zero.
  • the encoder uses the ROD criterion to train the K value based on the number of bits.
  • the encoder since the encoder is in the process of attribute encoding, for the realization of RAHT transformation, through the two-dimensional Morton code of the point to be encoded in the preset space, it is calculated that the three-dimensional coordinate component of each coordinate component corresponds to each The number of points is ultimately based on the number of points corresponding to the three-dimensional coordinate components to determine the transformation order for RAHT transformation. In this way, taking into account the number of points corresponding to the three-dimensional coordinate components, the transformation in the direction with significant characteristics is prioritized, so as to reduce the redundancy of the transformation coefficients obtained by the transformation and improve the coding and decoding efficiency.
  • S105 in the transformation method provided by the present application that is, performing the transformation RAHT transformation based on the transformation sequence corresponding to the preset space, includes:
  • S1053 Perform RAHT transformation based on the transformation direction and sequence, and the three-dimensional Morton code.
  • the encoder calculates the corresponding two-dimensional Morton code after removing the X, Y, and Z components.
  • the Morton code (three-dimensional code) of different three-dimensional point cloud sequences is calculated by removing the X, Y, and Z components.
  • the surface trend (two-dimensional) of the point cloud to be coded can be coded according to different directions by Morton coding of different point clouds.
  • the encoder determines the transformation direction and sequence corresponding to the preset space and forming a preset angle with each coordinate component based on the transformation sequence corresponding to the preset space; obtains the three-dimensional Morton code of the point to be encoded; based on the transformation direction and sequence, And three-dimensional Morton code for RAHT transformation.
  • the encoder determines the transformation direction and sequence corresponding to the preset space and forming the preset angle with each coordinate component based on the transformation sequence corresponding to the preset space:
  • RAHT transformation After determining the transformation sequence corresponding to the preset space, you can also determine the transformation direction and sequence with a preset angle with each coordinate component according to the transformation sequence, and then combine the three-dimensional Morton code based on the transformation direction and sequence.
  • the preset angle may be 45°
  • the transformation direction and sequence are as follows: x is the 45-degree angle between x and z, and y is the 45-degree angle between x and y. Angle; and z is the 45 degree angle between x and z. Then, the transformation direction and sequence are: first along the 45-degree angle between x and z, then along the 45-degree angle between x and y, and finally along the direction and sequence of the 45-degree angle between x and z.
  • the preset angle and value can be consistent or inconsistent corresponding to the coordinate components.
  • the specific value can be set by oneself; and the angle deflection direction can also be set by oneself, which is not limited in the embodiment of the present application.
  • the encoder may not directly use the coordinate axis direction to perform RAHT, but may also perform RAHT based on a preset angle, which improves the diversity of RAHT transformations.
  • S1052 namely obtaining the three-dimensional Morton code of the point to be coded, is achieved by: determining the respective side lengths of the three-dimensional coordinate components in the point cloud space where the point cloud to be coded is located; based on the three-dimensional coordinate components The respective side lengths determine the weight values corresponding to the three-dimensional coordinate components; based on the weight values, the points to be coded in the point cloud to be coded are coded to obtain the three-dimensional Morton code.
  • the geometric coordinate information of the point to be encoded in the point cloud to be encoded can be obtained at this time.
  • the encoder can obtain the Morton code (three-dimensional) corresponding to each point in the point cloud by using the geometric coordinate information of the point to be encoded.
  • the space where the point cloud to be coded is located can be used as the point cloud space.
  • the point cloud space can be a cuboid, and the encoder can obtain the three-dimensional point cloud space.
  • the three-dimensional coordinate components of the point cloud to be encoded can be determined based on the respective side lengths of the three-dimensional coordinate components The proportions occupied respectively, that is, the weight value.
  • the weight value corresponding to the coordinate component is used for coding to obtain the three-dimensional Morton code instead of the current 1:1: 1, the same way as the weight.
  • Morton coding should be based on the proportions of different components of the point cloud. Carry out Morton coding, so that the surface trend of the point cloud will be well adapted to the RAHT transformation based on Morton code.
  • the encoder also needs to write the weight value into the code stream and transmit it to the decoder for use.
  • the weight value is determined according to the trend of the point cloud, that is, the side length of each coordinate component is determined, which can be the ratio of the side length to the total side length, or the side length
  • the size ratio is determined, which is not limited in the embodiment of the present application.
  • the encoder also needs to first obtain the 3D Morton code of the point to be coded, and perform RAHT based on the transformation sequence and the 3D Morton code of the point to be coded.
  • the 3D Morton code of the point to be coded is obtained here.
  • the frame code can also be obtained by encoding using the weight value corresponding to the coordinate component, which is not limited in the embodiment of the present application.
  • Morton coding of the point cloud to be coded is used without coordinate components, taking into account the trend of the point cloud to be coded, RAHT can be better realized, and the accuracy and coding efficiency of RAHT can be improved.
  • an embodiment of the present application provides a conversion method, which may include:
  • S201 Determine a two-dimensional Morton code of a point to be coded in a preset space in the point cloud to be coded.
  • S202 Perform right shift processing on the two-dimensional Morton code of the point to be coded, and determine the K corresponding to each of the three-dimensional coordinate components of the point set with the largest number of points to be coded that meets the preset point number threshold range.
  • S203 Determine a transformation sequence corresponding to the preset space according to the K corresponding to each of the three-dimensional coordinate components.
  • the encoder can perform right-shift processing on each coordinate component of the two-dimensional Morton code of the point to be coded, until it is moved to the to-be-coded point.
  • the point set with the largest number of code points stops when it meets the preset point number threshold range.
  • the number of bits moved by each coordinate component is the K value corresponding to each coordinate component.
  • the encoder may determine the corresponding K to determine the transformation sequence corresponding to the preset space based on the K corresponding to each coordinate component.
  • the order in which each coordinate component corresponds to the most K is the transformation order of the points to be coded in the preset space, wherein the transformation order corresponds to the order of K corresponding to the three-dimensional coordinate components from most to least. .
  • the preset threshold for the number of points may be between 16-32, or it may be set by oneself, which is not limited in the embodiment of the present application.
  • the encoder determines the transformation sequence corresponding to the preset space according to the K corresponding to each of the three-dimensional coordinate components, including:
  • the transformation sequence is determined to be xyz.
  • S204 Perform regional adaptive hierarchical transformation RAHT transformation based on the transformation sequence corresponding to the preset space.
  • the encoder calculates the two-dimensional Morton code after removing the X, Y, and Z three dimensions, and then shifts it to the right by K bits to count the number of points in the largest point concentration. This method is used to determine the transformation of the point cloud sequence order. Also, by removing the X, Y, and Z, the calculated two-dimensional Morton code is shifted to the right by different digits K, and the number of points in each maximum point concentration is controlled to an equal proportional range of the total number of points in the point cloud space. Within the threshold (the preset threshold range of the number of points), by comparing different right shift numbers K, the largest right shift number K is used as the main direction of the point cloud sequence.
  • the threshold the preset threshold range of the number of points
  • the bits shifted to the right are K(x), K(y) and K(z); when K(x) is less than K(y) ) Is less than K(z), the RAHT transformation sequence is first along the Z direction, then along the Y direction, and finally along the X direction. Among them, the K corresponding to each coordinate component is different.
  • the encoder since the encoder is in the process of attribute encoding, for the realization of RAHT transformation, through the two-dimensional Morton code of the points to be coded in the preset space, it is calculated that the point set with the largest number of points to be coded satisfies the preset
  • the right shift number K corresponding to each of the three-dimensional coordinate components in the threshold range of the number of points is finally determined based on the right shift number K of the three-dimensional coordinate component to determine the transformation order for RAHT transformation.
  • the transformation in the direction with significant characteristics is preferentially performed, which achieves the purpose of reducing the redundancy of the transformation coefficients obtained by the transformation and improving the coding and decoding efficiency.
  • adopting a method for determining a better RAHT transformation sequence can bring performance gains to the reconstructed point cloud.
  • Table 1 the PSNR of the reconstructed point cloud is reduced, and the BD-rate is also significantly improved.
  • PSNR is an objective standard for image evaluation. The larger the PSNR, the better the image quality.
  • BD-rate is a parameter used to measure the performance. A negative BD-rate indicates better performance. On this basis The greater the absolute value of BD-rate, the greater the performance gain.
  • the inverse transformation method provided by the embodiments of the present application is introduced below, mainly for the process of obtaining the transformation order during the RAHT inverse transformation in the decoder framework, and is applied to the decoder (point cloud decoder). The location is shown in the dashed box in Figure 2.
  • an embodiment of the present application provides an inverse transform method applied to a decoder, including:
  • the encoded bit stream is transmitted to the decoder, and the decoder can analyze the transformation order from the attribute bit stream in the encoded bit stream. Then, when the decoder performs the RAHT inverse transformation, the transformation can be used Order to achieve.
  • the encoder determines the optimal RAHT transformation sequence corresponding to each point cloud to be coded based on the spatial distribution characteristics of the point cloud to be coded.
  • the transformation in the direction with significant characteristics is given priority to achieve the purpose of reducing the redundancy of the transformation coefficients obtained by the transformation and improving the coding and decoding efficiency.
  • the transformation order corresponding to the point cloud to be coded in a preset space may be different. Therefore, it is necessary to encode the transformation order into the attribute bit stream when encoding, so that the decoder can decode and analyze the transformation order. Based on the transformation order, perform Used for inverse RAHT transformation.
  • the embodiment of the present application provides an encoder 1 according to the embodiment of the present application, including:
  • the determining part 10 is configured to determine a two-dimensional Morton code of a point to be coded in a preset space in the point cloud to be coded; the two-dimensional Morton code is the point to be coded by removing a certain component of the three-dimensional coordinate in turn The two-dimensional coordinates obtained later correspond to Morton codes;
  • the acquiring part 11 is configured to shift the two-dimensional Morton code to the right by K bits to obtain point sets corresponding to the three-dimensional coordinate components; K is a positive integer greater than 1;
  • the determining part 10 is further configured to determine the number of points corresponding to the three-dimensional coordinate components containing the largest number of points to be coded, respectively corresponding to the three-dimensional coordinate components from the point collection; and the number of points corresponding to the three-dimensional coordinate components respectively , Determine the transformation sequence corresponding to the preset space;
  • the transformation part 12 is configured to perform a regional adaptive hierarchical transformation RAHT transformation based on the transformation sequence corresponding to the preset space;
  • the writing part 13 is configured to write the transformation sequence and the attribute encoding result after the RAHT transformation into the attribute bit stream.
  • the determining part 10 is further configured to determine the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded, to The point cloud space where the cloud is located is striped to obtain N strips; the preset space is each strip of the N strips; N is a positive integer greater than or equal to 1.
  • the determining part 10 is further configured to determine the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded, and then the two Before the V-Morton code is shifted by K bits to the right and the point sets corresponding to the three-dimensional coordinate components are obtained, the K is determined based on the iterative traversal of the two-dimensional Morton code.
  • the acquiring part 11 is further configured to shift the two-dimensional Morton code by K bits to the right to obtain the point set corresponding to the three-dimensional coordinate components, before acquiring the to-be-coded The maximum side length of the point cloud space where the point cloud is located;
  • the determining part 10 is further configured to determine the geometric accuracy of the point cloud space based on the maximum side length; wherein, the geometric accuracy is a binary representation of the number of bits corresponding to the maximum side length; According to the geometric accuracy, determine the K.
  • the determining part 10 is further configured to determine the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded, and then the two Before the V-Morton code is shifted by K bits to obtain the point sets corresponding to the three-dimensional coordinate components respectively, determine the difference between the maximum value and the minimum value in the two-dimensional Morton code; determine the difference and the point to be coded The quotient of the number of points; the number of digits at which the quotient moves to zero is determined; based on the number of digits, the K is determined.
  • the determining part 10 is further configured to determine a transformation corresponding to the predetermined space and forming a predetermined angle with each coordinate component based on the transformation sequence corresponding to the predetermined space.
  • Direction and sequence
  • the obtaining part 11 is also configured to obtain the three-dimensional Morton code of the point to be coded;
  • the transformation part 12 is further configured to perform the RAHT transformation based on the transformation direction and sequence and the three-dimensional Morton code.
  • the acquiring part 11 is further configured to determine the respective side lengths of the three-dimensional coordinate components in the point cloud space where the point cloud to be encoded is located; based on the respective side lengths of the three-dimensional coordinate components Long, the weight values corresponding to the three-dimensional coordinate components are determined; based on the weight values, the to-be-coded points in the to-be-coded point cloud are coded to obtain a three-dimensional Morton code.
  • the acquiring part 11 is further configured to select the point to be coded before determining the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded Part of the space in the point cloud space where the cloud is located is the preset space.
  • the transformation part 12 is further configured to perform RAHT transformation based on the transformation order corresponding to the preset space and the preset transformation order corresponding to other spaces; wherein, the other space Is the space in the point cloud space excluding the preset space.
  • the determining part 10 is further configured to determine the two-dimensional Morton code of the point to be coded in the preset space in the point cloud to be coded, and the step is based on the The transformation sequence corresponding to the preset space, before performing the regional adaptive hierarchical transformation RAHT transformation, the two-dimensional Morton codes of the points to be coded are respectively shifted to the right, and it is determined that the point set with the largest number of points to be coded meets the preset number of points.
  • K corresponding to each of the three-dimensional coordinate components of the threshold range; and determining the transformation sequence corresponding to the preset space according to the K corresponding to each of the three-dimensional coordinate components.
  • the determining part 10 is further configured to determine that the transformation order is zyx when the number of points corresponding to the three-dimensional coordinate components is NumX>NumY>NumZ;
  • the determining part 10 is further configured to determine the transformation when the K corresponding to each of the three-dimensional coordinate components is K(X) ⁇ K(Y) ⁇ K(Z) The order is zyx;
  • the encoder since the encoder is in the process of attribute encoding, for the realization of RAHT transformation, through the two-dimensional Morton code of the point to be encoded in the preset space, it is calculated that the three-dimensional coordinate component of each coordinate component corresponds to each The number of points is ultimately based on the number of points corresponding to the three-dimensional coordinate components to determine the transformation order for RAHT transformation. In this way, taking into account the number of points corresponding to the three-dimensional coordinate components, the transformation in the direction with significant characteristics is prioritized, so as to reduce the redundancy of the transformation coefficients obtained by the transformation and improve the coding and decoding efficiency.
  • an encoder including:
  • the first memory 14 is used to store executable instructions
  • the first processor 15 is configured to implement the conversion method on the encoder side when executing the executable instructions stored in the first memory 14.
  • the processor can be implemented by software, hardware, firmware, or a combination thereof, and can use circuits, single or multiple application specific integrated circuits (ASIC), single or multiple general integrated circuits, single or multiple microprocessors A processor, a single or multiple programmable logic devices, or a combination of the foregoing circuits or devices, or other suitable circuits or devices, so that the processor can execute the corresponding steps of the transformation method in the foregoing embodiments.
  • ASIC application specific integrated circuits
  • a processor a single or multiple programmable logic devices, or a combination of the foregoing circuits or devices, or other suitable circuits or devices, so that the processor can execute the corresponding steps of the transformation method in the foregoing embodiments.
  • the embodiment of the present application provides a computer-readable storage medium, including: executable instructions stored therein are used to cause a first processor to execute, and implement a conversion method on the encoder side.
  • the components in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this embodiment is essentially or It is said that the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium and includes several instructions to enable a computer device (which can It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
  • the aforementioned storage media include: magnetic random access memory (FRAM, ferromagnetic random access memory), read-only memory (ROM, Read Only Memory), programmable read-only memory (PROM, Programmable Read-Only Memory), and erasable Programmable Read-Only Memory (EPROM, Erasable Programmable Read-Only Memory), Electrically Erasable Programmable Read-Only Memory (EEPROM, Electrically Erasable Programmable Read-Only Memory), Flash Memory, Magnetic Surface Memory, Optical Disk
  • FRAM magnetic random access memory
  • ROM read-only memory
  • PROM programmable read-only memory
  • EPROM Erasable Programmable Read-Only Memory
  • EPROM Erasable Programmable Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • Flash Memory Magnetic Surface Memory
  • Optical Disk Various media that can store program codes, such as CD-ROM (Compact Disc Read-Only Memory), etc., are not limited in the embodiments of the present
  • an embodiment of the present application provides a decoder 2, including:
  • the parsing part 20 is configured to parse out the transformation order from the attribute bit stream;
  • the decoding part 21 is configured to perform a region-adaptive hierarchical transform RAHT inverse transform based on the transform order.
  • an embodiment of the present application also provides a decoder, including:
  • the second memory 22 is used to store executable instructions
  • the second processor 23 is configured to implement the inverse transform method on the decoder side when executing the executable instructions stored in the second memory 22.
  • the embodiment of the present application provides a computer-readable storage medium, including: an executable instruction is stored, which is used to cause a second processor to execute the inverse transform method on the decoder side.
  • the encoder determines the optimal RAHT transformation sequence corresponding to each point cloud to be coded based on the spatial distribution characteristics of the point cloud to be coded.
  • the transformation in the direction with significant characteristics is given priority to achieve the purpose of reducing the redundancy of the transformation coefficients obtained by the transformation and improving the coding and decoding efficiency.
  • the transformation order corresponding to the point cloud to be coded in a preset space may be different. Therefore, it is necessary to encode the transformation order into the attribute bit stream when encoding, so that the decoder can decode and analyze the transformation order. Based on the transformation order, perform Used for inverse RAHT transformation.
  • the embodiments of the present application provide a transformation method, an inverse transformation method, an encoder, a decoder, and a computer-readable storage medium. Since the encoder is in the process of attribute encoding, for the realization of the RAHT transformation, through the preset space For the two-dimensional Morton code of the points to be coded, the number of points corresponding to the three-dimensional coordinate components of each coordinate component is counted, and finally the transformation order for RAHT transformation is determined based on the number of points corresponding to the three-dimensional coordinate components. In this way, taking into account the number of points corresponding to the three-dimensional coordinate components, the transformation in the direction with significant characteristics is prioritized, so as to reduce the redundancy of the transformation coefficients obtained by the transformation and improve the coding and decoding efficiency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例提供的一种变换方法、逆变换方法、编码器、解码器及存储介质,包括:确定待编码点云中的预设空间内的待编码点的二维莫顿码;二维莫顿码为待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码;对二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;从点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;基于三维坐标分量分别对应的点数,确定预设空间对应的变换顺序;基于预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;将变换顺序和RAHT变换后的属性编码结果,写入属性比特流。

Description

变换方法、逆变换方法、编码器、解码器及存储介质 技术领域
本申请实施例涉及视频编解码的技术领域,尤其涉及一种变换方法、逆变换方法、编码器、解码器及存储介质。
背景技术
在基于几何的点云压缩(G-PCC,Geometry-based Point Cloud Compression)编码器框架中,点云中点的几何信息和该点所对应的属性信息是分开进行编码的。几何编码完成后,对几何信息进行重建,而属性信息的编码将依赖于重建的几何信息。
目前,属性信息编码主要针对颜色信息的编码。首先,将颜色信息从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,主要有两种变换方法,一是依赖于细节层次(LOD,Level of Detail,)划分的基于距离的提升变换,另一是直接进行的区域自适应分层变换(RAHT,Region Adaptive Hierarchal Transform),这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化并编码,生成二进制码流。其中,RAHT变换是在对点云数据进行八叉树划分得到的层级结构基础上进行的,从八叉树的最底层开始一直变换到最高层,循环遍历每一层中的每一个节点。每一个节点的RAHT变换均按照变换顺序,在三维坐标的z、y和x方向依次进行。
然而,由于不同点云具有不同的空间分布,因此,在进行RAHT变换时,沿用固定的变换顺序所得到的变换系数仍存在较大信息冗余,导致编码解效率较差。
发明内容
本申请实施例提供了一种变换方法、逆变换方法、编码器、解码器及存储介质,能够减少变换得到的变换系数的冗余度,提高编解码效率。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种变换方法,应用于编码器,包括:
确定待编码点云中的预设空间内的待编码点的二维莫顿码;所述二维莫顿码为所述待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码;
对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;
从所述点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;
基于所述三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序;
基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;
将所述变换顺序和所述RAHT变换后的属性编码结果,写入属性比特流。
第二方面,本申请实施例还提供了一种逆变换方法,包括:
从属性比特流中,解析出变换顺序;
基于所述变换顺序,进行区域自适应分层变换RAHT逆变换。
第三方面,本申请实施例提供了一种编码器,包括:
确定部分,被配置为确定待编码点云中的预设空间内的待编码点的二维莫顿码;所述二维莫顿码为所述待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码;
获取部分,被配置为对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;
所述确定部分,还被配置为从所述点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;以及基于所述三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序;
变换部分,被配置为基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;
写入部分,被配置为将所述变换顺序和所述RAHT变换后的属性编码结果,写入属性比特流。
第四方面,本申请实施例提供了一种解码器,包括:
解析部分,被配置为从属性比特流中,解析出变换顺序;
解码部分,被配置为基于所述变换顺序,进行区域自适应分层变换RAHT逆变换。
第五方面,本申请实施例还提供了一种编码器,包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现第一方面所述的变换方法。
第六方面,本申请实施例还提供了一种解码器,包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现第二方面所述的逆变换方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,应用于编码,包括:存储有可执行指令,用于引起第一处理器执行时,实现第一方面所述的变换方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,应用于解码器,包括:存储有可执行指令,用于引起第二处理器执行时,实现第二方面所述的逆变换方法。
本申请实施例提供的一种变换方法、逆变换方法、编码器、解码器及存储介质,包括:确定待编码点云中的预设空间内的待编码点的二维莫顿码;对二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;从点集中,确定出与三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;基于三维坐标分量分别对应的点数,确定预设空间对应的变换顺序;基于预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;将变换顺序和RAHT变换后的属性编码结果,写入属性比特流。采用上述技术实现方案,由于编码器在进行属性编码的过程中,针对RAHT变换的实现,通过预设空间内的待编码点的二维莫顿码,统计出每个坐标分量的三维坐标分量分别对应的点数,最终是基于三维坐标分量分别对应的点数来确定进行RAHT变换的变换顺序的。这样,在考虑到三维坐标分量分别对应的点数,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编解码效率的目的。
附图说明
图1为本申请实施例提供的示例性的编码流程框图;
图2为本申请实施例提供的示例性的解码流程框图;
图3为本申请实施例提供的示例性的二维莫顿编码示意图一;
图4为本申请实施例提供的示例性的二维莫顿编码示意图二;
图5为本申请实施例提供的示例性的三维莫顿编码示意图一;
图6为本申请实施例提供的示例性的三维莫顿编码示意图二;
图7为本申请实施例提供的示例性的分层RAHT变换示意图;
图8为本申请实施例提供的变换方法的流程图一;
图9为本申请实施例提供的变换方法的流程图二;
图10为本申请实施例提供的逆变换方法的流程图;
图11为本申请实施例提供的编码器的结构示意图一;
图12为本申请实施例提供的编码器的结构示意图二;
图13为本申请实施例提供的解码器的结构示意图一;
图14为本申请实施例提供的解码器的结构示意图二。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
在本申请实施例中,在点云G-PCC编码器框架中,将输入三维图像模型的点云进行条带(slice)划分后,对每一个slice进行独立编码。
如图1所示的G-PCC编码的流程框图中,应用于点云编码器中,针对待编码的点云数据,先通过slice划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是在基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对bounding box进行八叉树划分。在基于八叉树的几何信息编码流程中,将包围盒八等分为8个子立方体,对非空的(包含点云中的点)的子立方体继续进行八等分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,对叶子结点中的点进行算术编码,生成二进制的几何比特流,即几何码流。在基于trisoup(triangle soup,三角面片集)的几何信息编码过程中,同样也要先进行八叉树划分,但区别于基于八叉树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),对vertex进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流,即几何码流。Vertex还用于在几何重建的过程的实现,而重建的集合信息在对点云的属性编码时使用。
在属性编码过程中,几何编码完成,对几何信息进行重建后,进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码过程中,主要有两种变换方法,一是依赖于细节层次(Level of Detail,LOD)划分 的基于距离的提升变换,二是直接进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)的变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化(即量化系数),最后,将经过八叉树划分及表面拟合的几何编码数据与量化系数处理属性编码数据进行slice合成后,依次编码每个block的vertex坐标(即算数编码),生成二进制的属性比特流,即属性码流。
如图2所示的G-PCC解码的流程框图中,应用于点云解码器中。解码器获取二进制码流,针对二进制码流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-八叉树合成-表面拟合-重建几何-反坐标变换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-基于LOD的反提升或者基于RAHT的反变换-反颜色转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据的三维图像模型。
在属性编码过程中,RAHT变换在点云重新着色之后,这时可以得到点云的几何坐标信息。利用点的坐标信息可以得到对应于点云中每一点的莫顿码。莫顿编码也叫z-order code,因为其编码顺序按照空间z序。具体的计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个分量的表示通过以下实现:
Figure PCTCN2019109646-appb-000001
其中,x l,y l,z l∈{0,1}分别是x,y,z的最高位(l=1)到最低位(l=d)对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如下所示:
Figure PCTCN2019109646-appb-000002
其中,m l′∈{0,1}分别是M的最高位(l′=1)到最低位(l′=3d)的值。在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列,并将每个点的权值w设为1。表示为计算机语言,类似于z|(y<<1)|(x<<2)的组合。
结合图3和图4进行说明,以高低位排列顺序这里是z、y、x(x|(y<<1)|(z<<2))为例进行说明。
图3展示了8*8的图像每个像素的空间编码,从000000到111111,用一维二进制数,编码了x,y值在0-7的位置坐标。交错二进制坐标值,获得二进制z值图。沿着数值方向连接z型,产生递归的z形曲线。图中每个位置上就按连接顺序放上了z值。实际上,上图就是按z方向迭代产生的,从00-11(整个图一个z),再从0000-1111(之前的z的每个点放一个z),再从000000-111111(之前的z的每个点放一个z),每次增加两位,递归升高。
示例性的,如图4示出了2x2,4x4,8x8和16x16空间编码顺序,从中可以看出,莫顿码的编码顺序按照空间z序实现的。
上升到3维情况,其递归过程如图5和图6所示,其实现了坐标交错,整体在做的就是不断地将坐标值分散开。x|(y<<1)|(z<<2);即每个坐标值分散开,各位依次交错,先z后y最后x。解码过程就就是聚合过程。)
RAHT变换是在对点云数据进行八叉树划分得到的层级结构基础上进行的,从八叉树的底层开始,分层进行变换。如图7所示,在八叉树划分结束后得到体素块1(即图7中三种颜色深度相间的几何体,每个方块都代表点云中的点)。从最底层开始进行RAHT变换,以变换顺序xyz为例,如下图7所示先沿x方向进行RAHT变换。若x方向上存在相邻的体素块,则二者进行RAHT,得到相邻两点属性值的平均(DC系数)与细节(AC系数)。其中,得到的DC系数作为父节点的体素块2的属性信息存在,并进行下一层的RAHT变换;而AC系数保留起来,用于最后的编码。若不存在相邻点, 则将该体素块的属性值直接传递给第二层父节点。第二层RAHT变换时,沿y方向进行,若y方向上存在相邻体素块,二者进行RAHT,并得到相邻两点属性值的平均(DC系数)与细节(AC系数)。之后,第三层RAHT变换沿z方向进行,并得到三种颜色深度相间的父节点体素块3作为八叉树中下一层的子节点,再沿z、y、x方向循环进行RAHT变换,直至整个点云只存在一个父节点为止。
在实际中进行点云中的点的遍历时,利用经过排序的点云的莫顿码进行,即通过莫顿码右移一位后的值是否相等可以判断两个子节点是否在一个父节点下。
对于相邻两点的属性值c 1,c 2具体的RAHT变换过程如下所示:
Figure PCTCN2019109646-appb-000003
Figure PCTCN2019109646-appb-000004
其中,w为DC系数所对应的权重,是计算得到的。DC系数为属性的加权平均值,AC系数为相邻两点的属性残差。
在本申请实施例中,RAHT变换的具体步骤如下:
(1)、将点云中的点的属性值作为第一层DC系数并将它们的权重全部设为1,开始进行RAHT变换。
(2)、这一层的DC系数和AC系数按照对应的索引填入下一层双亲层,父节点。如果需要填入DC系数和AC系数,但是无AC系数,这时候可以不填该AC系数。
(3)、按照莫顿码排序后的索引,遍历索引所对应的DC系数。
(4)、将所有DC系数对应的莫顿码右移一位,这时每个DC系数的莫顿码表示其父节点的莫顿码。
(5)、判断两个DC系数的莫顿码是否相同,若相同,则表示在相同父节点下,二者进行RAHT,将得到的DC系数填入下一层父节点的DC系数处、AC系数填入下一层最后的DC系数处并将两个DC系数加和的权重赋给父节点的DC系数;若不同,则将此DC系数和其权重直接填入下一层。
(6)、重复步骤(2)-(5),直至某一层只有一个DC系数为止。
(7)、对这一层的DC系数和AC系数属性值进行编码。
在属性值两两进行RAHT变换时,属性信息的三个颜色分量(可以分别用Y、U、V表示)是分别进行RAHT变换的计算的,三者之间相互独立、没有影响。
这样,首先根据最后得到的DC系数,将其作为父节点,可以对子节点进行上采样计算,得到子节点的预测属性值。具体过程如下:
Figure PCTCN2019109646-appb-000005
其中,d i表示相邻父节点i的中心点距离子节点的中心点的距离,a i表示父节点的属性值。
然后将得到预测属性值的子节点作为下一层的父节点,并对下一层的子节点进行上采样计算,直至计算得到最底层的属性预测值为止。最后,将得到的子节点的属性预测值和实际值做残差,对残差进行编码。
下面介绍下RAHT的解码过程。
RAHT解码过程是RAHT编码过程的逆变换,同编码过程相同,在逆变换之前,先对点云中计算每个点莫顿码,得到每个点的莫顿码M后,将点云中的点按由小到大的 顺序进行排列,并将每个点的权值设为1,RAHT逆过程依照莫顿码排序后的顺序遍历点云中所有的点。
由于RAHT变换是通过分层进行的,由底层开始,一层一层进行点云中相邻点的判断,依据权重对属性值进行RAHT变换。而RAHT逆变换的过程是由顶层开始,由上往下进行RAHT的逆变换,因此RAHT逆变换前需要得到每一层的权重信息。
在做逆RAHT变换前,利用得到的莫顿码信息,由底层开始,做一次编码端中对每一层RAHT相邻节点的判断,可以得到每一层的权重信息和AC系数的相应位置,每做一层RAHT,将相应的莫顿码左移一位。将权重信息和每一层中节点对应的莫顿码信息记录到buffer中,方便之后的使用。
RAHT逆变换时,从顶层开始,依据每一层的莫顿码信息来进行相邻节点的判断,利用得到的权重信息和解码得到的属性信息进行RAHT的逆变换。RAHT逆变换相当于第k+1层到第k层的过程。当判断出相邻节点时,取遍历到的DC系数和相应的AC系数进行RAHT的逆变换。
基于上述介绍的背景下,下面介绍本申请实施例提供的变换割方法,主要针对在编码器框架中,RAHT变换时的变换顺序进行确定的方式不同,应用于编码器(点云编码器)中,所处位置如图1中的虚线框所示。
如图8所示,本申请实施例提供了一种变换方法,该方法可以包括:
S101、确定待编码点云中的预设空间内的待编码点的二维莫顿码;二维莫顿码为待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码。
S102、对二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数。
S103、从点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数。
S104、基于三维坐标分量分别对应的点数,确定预设空间对应的变换顺序。
S105、基于预设空间对应的变换顺序,进行RAHT变换。
S106、将变换顺序和RAHT变换后的属性编码结果,写入属性比特流。
本申请实施例提供的变换方法考虑点云空间的分布和表面朝向的RAHT变换方法,不再采用固定的变换顺序,而是在进行RAHT变换之前分析待变换块及预设邻域范围内包含的点云的空间分布情况(即预设空间的空间分布情况),根据该分析所得结果确定RAHT变换顺序,从而得到较好的编码性能。
在本申请实施例中,待编码点云为本申请中的待编码点云对待编码对象的点云数据,针对一个待编码点云,其可以包含N个点,即N个待编码点。其中,N大于等于1。编码器通过确定待编码点云中的预设空间内的待编码点的二维莫顿码,并对二维莫顿码右移K位,从而统计出三维空间中的各个坐标分量分别对应的点集,这里的各个坐标分量分别对应的点集表征了待编码点云在三维空间的主要分布集中的点所在的集合。编码器从点集中,确定出三维坐标分量(即各坐标分量)分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数,基于三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序。由于不同点云具有不同的空间分布,在进行RAHT变换之前,编码器可以针对每个待编码点云中的待编码点的自身的空间分布特性,确定适合自身分布特点的变换顺序,这样编码器基于变换顺序,进行的RAHT变换,得到的变换系数冗余小,进而可以提高编码效率。
需要说明的是,在本申请实施例中,由于每个待编码点的确定的变换顺序可能不一样,那么在确定出变换顺序时,就需要编码器在编码过程中将变换顺序与写进属性码流,即属性比特流。例如可以将此变换顺序用3位比特流传到解码器,便于解码器在解码时 可以直接解析出RAHT的变换顺序。
在本申请实施例中,待编码点是待编码点云中的多个对象,编码器可以基于每个待编码点依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码,这样每个待编码点都对应三种二维莫顿码,即去掉x分量得到的zy二维莫顿码、去掉y分量得到的zx二维莫顿码以及去掉z分量得到的xy二维莫顿码,这样将每个待编码点的三种二维莫顿码按照坐标分量统计,统计出多个待编码点在去掉x坐标分量时对应的多个x分量二维莫顿码、多个待编码点去掉y坐标分量时对应的多个y分量二维莫顿码,以及多个待编码点在去掉z坐标分量时对应的多个z分量二维莫顿码;这里的多个x分量二维莫顿码,多个y分量二维莫顿码和多个z分量二维莫顿码统称为待编码点云中的预设空间内的待编码点的二维莫顿码。然后,编码器对二维莫顿码均右移K位,这样空间中相邻位置的点所对应的莫顿码就会相等,利用这一方法可将空间中相邻的点划分到一个点集中,从而统计得到三维坐标分量中各坐标分量分别对应的点集。编码器再分别统计去掉x,y和z这坐标分量后,各坐标分量对应的点集中,待编码点的数量最大的点数,即从点集中,确定出各坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数。最后,比较三维坐标分量分别对应的点数可以判断出待编码点云的空间分布情况,从而确定出预设空间中的待编码点的变换顺序。编码器对待编码点云中的所有预设空间都确定完变换顺序后,就可以对待编码点云进行RAHT变换了。
需要说明的是,本申请实施例中,确定三维坐标分量分别对应的点数最多的顺序为预设空间中的待编码点的变换顺序,其中,变换顺序与三维坐标分量分别对应的点数由多到小的顺序对应。
需要说明的是,本申请中的右移指的是对莫顿码从第一个数开始往右移动的意思。
在本申请的一些实施例中,预设空间可以为slice,即编码器将待编码点云所在的点云空间进行条带划分,得到N个条带;预设空间为将N个条带中的每个条带;N为大于或等于1的正整数。
在本申请的一些实施例中,预设空间还可以为待编码点云任意划分的空间块,本申请实施例不作限制。
在本申请的一些实施例中,预设空间还可以为从待编码点云所在的点云空间中选取的部分空间,而点云空间中的除部分空间(可以为一个或多个)外的其他空间则按照固定的变换顺序进行RAHT变换,例如,按照zyx变换等。即RAHT变换的实现为:基于预设空间对应的变换顺序,以及其他空间对应的预设变换顺序(即固定变换顺序),进行RAHT变换;其中,其他空间为点云空间中除预设空间外的空间。
也就是说,编码器可以先通过分析待编码点云的总体表面走势,其次对所有待编码点云的RAHT变换基于该顺序进行变换,但是可以对同一待编码点云序列的不同空间位置进行不同顺序的RAHT变换。
在本申请的一些实施例中,编码器在确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,对二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,该编码器基于二维莫顿码迭代遍历,确定K。
在本申请实施例中,编码器可以通过RDO准则来确定K。
示例性的,以一个slice条带为预设空间为例进行说明,当前slice中待编码点云包含N个点记为P(i)(i=0,1…N-1),每点对应的属性信息为A n,n=0,1,...N-1。具体流程如下所述:
(1)编码器计算slice中的所有待编码点分别去掉X,Y,Z分量后的二维莫顿码,统计得到各坐标分量对应的:MortonX,MortonY,MortonZ;
(2)编码器将MortonX,MortonY,MortonZ分别右移K位,K可以通过RDO准 则训练来确定。
(3)编码器统计分别去掉X,Y,Z分量并进行右移K位之后,所得到各坐标分量对应的点集,统计各点集中的点数。设去掉X分量后对应的点集中的包含待编码点的最大数量的点数为NumX,去掉Y分量后对应的点集中的包含待编码点的最大数量的点数为NumY,去掉Z分量后对应的点集中的包含待编码点的最大数量的点数为NumZ。
(4)编码器根据NumX、NumY和NumZ的多少来判断预设空间进行RAHT时的变换顺序。
在本申请实施例中,编码器基于三维坐标分量分别对应的点数,确定预设空间对应的变换顺序,包括:
当三维坐标分量分别对应的点数为NumX>NumY>NumZ时,确定变换顺序为zyx;
当三维坐标分量分别对应的点数为NumX>NumZ>NumY时,确定变换顺序为yzx;
当三维坐标分量分别对应的点数为NumY>NumX>NumZ时,确定变换顺序为zxy;
当三维坐标分量分别对应的点数为NumY>NumZ>NumX时,确定变换顺序为xzy;
当三维坐标分量分别对应的点数为NumZ>NumX>NumY时,确定变换顺序为yxz;
当三维坐标分量分别对应的点数为NumZ>NumY>NumX时,确定变换顺序为xyz。
需要说明的是,编码器得到每个slice(对应预设空间)的RAHT变换顺序后,将此RAHT变换顺序作为每个slice属性变换的头信息参数传递到解码器,在解码器可直接得到该RAHT变换方向的顺序对每个slice的属性进行重建。
本申请实施例提供了一种确定RAHT变换顺序的方法,以改善G-PCC属性编码部分的编码效率和编码性能。通过分析每个slice待编码点云的空间分布情况,来确定每个slice所对应最好的RAHT变换顺序。
可以理解的是,通过分析每个slice中待编码点云的空间分布情况,以确定每个slice中最优的RAHT变换顺序,优化AC变换系数的分布,去除AC系数的冗余,从而提升编码效率。
在本申请的一些实施例中,编码器在对二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,先要获取K,具体实现为:获取待编码点云所在的点云空间的最大边长;基于最大边长,确定点云空间的几何精度;其中,几何精度为用二进制表示最大边长对应的比特位数;基于几何精度,确定K。
在本申请实施例中,编码器将待编码点云中的点放到一个Bounding Box立方块(对应点云空间),所有的点都包含在块中,计算Bounding Box的几何精度d,点云空间的最长边已知时,看d是多少可以将最长边表示为2 d。通过分析该几何精度d来自适应确定不同序列所对应的最佳莫顿码右移位数K。
需要说明的是,编码器在获知d后,可以在d周围区域作为K,具体实施方式本申请不作限制。
在本申请的一些实施例中,编码器在确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,且对二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,先要获取K,具体实现为:确定二维莫顿码中的最大值与最小值的差值;确定差值与待编码点的点数的商;确定商移动到零的位数;基于位数,确定K。
在本申请实施例中,莫顿码的右移位数K可以通过分析不同点云的空间密度、平均每个相邻点之间的莫顿码之差来确定。这里编码器需要将预设空间中的所有待编码点的二维莫顿码进行排序,再用排序后的二维莫顿码中的最大值减最小值,再确定差值与待编码点的点数的商移动几位多少等于0,即确定商移动到零的位数,最后,编码器基于位数,采用ROD准则训练K值。
可以理解的是,由于编码器在进行属性编码的过程中,针对RAHT变换的实现,通 过预设空间内的待编码点的二维莫顿码,统计出每个坐标分量的三维坐标分量分别对应的点数,最终是基于三维坐标分量分别对应的点数来确定进行RAHT变换的变换顺序的。这样,在考虑到三维坐标分量分别对应的点数,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编解码效率的目的。
在本申请的一些实施例中,本申请提供的变换方法中的S105,即基于预设空间对应的变换顺序,进行变换RAHT变换,包括:
S1051、基于预设空间对应的变换顺序,确定预设空间对应的、且与各坐标分量形成预设角度的变换方向和顺序;
S1052、获取待编码点的三维莫顿码;
S1053、基于变换方向和顺序,以及三维莫顿码,进行RAHT变换。
在本申请实施例中,编码器是通过分别去掉X、Y和Z分量之后计算对应的二维莫顿码的,但是不同的三维点云序列(即待编码点云)的莫顿码(三维)应该与待编码点云的表面走势(二维)一致,可以通过对不同点云的莫顿编码根据不同的方向来进行编码。即编码器基于预设空间对应的变换顺序,确定预设空间对应的、且与各坐标分量形成预设角度的变换方向和顺序;获取待编码点的三维莫顿码;基于变换方向和顺序,以及三维莫顿码,进行RAHT变换。
在本申请实施例中,编码器基于预设空间对应的变换顺序,确定预设空间对应的、且与各坐标分量形成预设角度的变换方向和顺序的实现过程为:在编码器根据上述实施例确定了预设空间对应的变换顺序后,还可以根据变换顺序,确定出与各坐标分量具有预设角度的变换方向和顺序,然后再基于所述变换方向和顺序,结合三维莫顿码进行RAHT变换。
示例性的,预设角度可以为45°,那么当变换顺序为xyz时,变换方向和顺序如下:x为沿x与z之间的45度角,y为沿x与y之间的45度角;以及z为沿x与z之间的45度角。那么,变换方向和顺序为:先沿x与z之间的45度角,再沿x与y之间的45度角,最后沿x与z之间的45度角的方向和顺序。
需要说明的是,预设角度和数值可以对应各坐标分量一致,也可以不一致,具体的数值大小可自行设定;并且,角度偏转方向也可自行设定,本申请实施例不作限制。
可以理解的是,编码器可以不直接采用坐标轴方向进行RAHT,还可以基于预设角度进行RAHT,提高了实现RAHT变换的多样性。
在本申请的一些实施例中,S1052,即获取待编码点的三维莫顿码的实现方式为:确定待编码点云所在的点云空间中,三维坐标分量各自的边长;基于三维坐标分量各自的边长,确定三维坐标分量分别对应的权重值;基于权重值,对待编码点云中的待编码点进行编码,得到三维莫顿码。
在本申请实施例中,在属性编码过程中,在点云重新着色之后,这时可以得到待编码点云中的待编码点的几何坐标信息。编码器利用待编码点的几何坐标信息可以得到对应于点云中每一点的莫顿码(三维)。而在获取到待编码点云的空间位置,即坐标信息后,可以将待编码点云所在的空间作为点云空间,点云空间可以是一个长方体,那么编码器可以获取到点云空间的三维坐标分量各自的边长,即沿x轴的边长,沿y轴的边长以及沿z轴的边长,那么就可以基于三维坐标分量各自的边长,确定待编码点云在三维坐标分量分别占据的比重,即权重值,最后在对待编码点云中的待编码点进行编码时,采用坐标分量对应的权重值来进行编码,得到三维莫顿码,而不是采用现在的1:1:1的,权重一样的方式。
也就是说,对于不同的点云序列(待编码点云)的X、Y和Z三个维度应该占据不同的比重,对于三个维度进行莫顿编码时应该基于点云的不同分量的比重来进行莫顿编 码,这样在基于莫顿码进行RAHT变换时会很好地适应点云的表面走势。
在本申请实施例中,编码器还需要将权重值写入码流,传输到解码器中使用。
在本申请实施例中,权重值的取值原则为:依据点云走势确定,即各坐标分量的边长大小来确定,可以是边长占总边长之和的比值,也可以是边长大小的比值来确定,本申请实施例不作限制。
需要说明的是,各坐标分量的权重值之和为1。
进一步地的,在S105中,编码器也需要先获取待编码点的三维莫顿码,在基于变换顺序和待编码点的三维莫顿码进行RAHT,其中,这里的获取待编码点的三维莫顿码也可以采用坐标分量对应的权重值来进行编码来得到,本申请实施例不作限制。
可以理解的是,采用不用坐标分量来进行待编码点云的莫顿编码,考虑到了待编码点云的走势,可以更好的实现RAHT,提高了RAHT的准确性,以及编码效率。
如图9所示,本申请实施例提供了一种变换方法,该方法可以包括:
S201、确定待编码点云中的预设空间内的待编码点的二维莫顿码。
在本申请实施例中的S201的实现描述与S101的实现描述一致,此处不再赘述。
S202、对待编码点的二维莫顿码分别进行右移处理,确定出待编码点数最大的点集满足预设点数阈值范围的三维坐标分量各自对应的K。
S203、根据三维坐标分量各自对应的K,确定预设空间对应的变换顺序。
在本申请实施例中,编码器在获取了待编码点的二维莫顿码之后,该编码器可以对待编码点的二维莫顿码的各个坐标分量分别进行右移处理,直至移到待编码点数最大的点集满足预设点数阈值范围时停止,这时,各坐标分量的移动的位数,就是各个坐标分量对应的K值。编码器可以基于各个坐标分量各自对应的K,确定各自对应的K确定预设空间对应的变换顺序。
在本申请实施例中,确定各坐标分量分别对应的K最多的顺序为预设空间中的待编码点的变换顺序,其中,变换顺序与三维坐标分量分别对应的K由多到小的顺序对应。
在本申请实施例中,预设点数阈值范围可以为16-32之间,也可以自行设定,本申请实施例不作限制。
在本申请实施例中,编码器根据三维坐标分量各自对应的K,确定预设空间对应的变换顺序,包括:
当三维坐标分量各自对应的K为K(X)<K(Y)<K(Z)时,确定变换顺序为zyx;
当三维坐标分量各自对应的K为K(X)<K(Z)<K(Y)时,确定变换顺序为yzx;
当三维坐标分量各自对应的K为K(Y)<K(X)<K(Z)时,确定变换顺序为zxy;
当三维坐标分量各自对应的K为K(Y)<K(Z)<K(X)时,确定变换顺序为xzy;
当三维坐标分量各自对应的K为K(Z)<K(X)<K(Y)时,确定变换顺序为yxz;
当三维坐标分量各自对应的K为K(Z)<K(Y)<K(X)时,确定变换顺序为xyz。
S204、基于预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换。
在本申请实施例中,编码器通过分别去掉X、Y和Z三维之后计算二维莫顿码,再进行右移K位分别统计最大点集中的点数,通过该方法来判断点云序列的变换顺序。还通过对分别去掉X、Y和Z之后计算得到的二维莫顿码右移不同的位数K,分别将每个最大点集中的点数控制为点云空间的总点数的一个相等的比例范围阈值内(预设点数阈值范围),通过比较不同的右移位数K,将右移位数K最大的作为点云序列的主体方向。假设分别去掉X、Y和Z三维之后计算得到的二维莫顿码,分别右移的位数为K(x)、K(y)和K(z);当K(x)小于K(y)小于K(z),则RAHT变换顺序为先沿Z方 向,再沿Y方向,最后沿X方向。其中,各个坐标分量对应的K不同。
在本申请实施例中的S204的实现描述与S105的实现描述一致,此处不再赘述。
S205、将变换顺序和RAHT变换后的属性编码结果,写入属性比特流。
在本申请实施例中的S204的实现描述与S106的实现描述一致,此处不再赘述。
可以理解的是,由于编码器在进行属性编码的过程中,针对RAHT变换的实现,通过预设空间内的待编码点的二维莫顿码,统计出待编码点数最大的点集满足预设点数阈值范围的三维坐标分量各自对应的右移位数K,最终是基于三维坐标分量的右移位数K来确定进行RAHT变换的变换顺序的。这样,在考虑到三维坐标分量的右移位数K,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编解码效率的目的。
在本申请实施例中,采用确定一种较优的RAHT变换顺序的确定方法可以为重建点云带来性能的增益。如下表1所示,重建点云的PSNR降低,且BD-rate也有较为明显的提升。(PSNR是一种图像评价的客观标准,PSNR越大则图像的质量越好。BD-rate是用来衡量性能的好坏的参数,BD-rate为负时表示性能变好,在此基础上BD-rate的绝对值越大,则性能的增益越大。)
表1
Figure PCTCN2019109646-appb-000006
由表1可知,针对6个点云数据,采用各自的silce对应的不同的变换顺序进行RAHT变换,得到的Average平均增益均很显著,编码器性能上得到了很大的提高。
基于前述介绍的背景下,下面介绍本申请实施例提供的逆变换方法,主要针对在解码器框架中,RAHT逆变换时的获取变换顺序的过程,应用于解码器(点云解码器)中,所处位置如图2中的虚线框所示。
如图10所示,本申请实施例提供了一种逆变换方法,应用于解码器中,包括:
S301、从属性比特流中,解析出变换顺序。
S302、基于变换顺序,进行区域自适应分层变换RAHT逆变换。
在本申请实施例中,编码比特流传输到解码器,该解码器就可以从编码比特流中的属性比特流中,解析出变换顺序,那么在解码器进行RAHT逆变换时,就可以使用变换顺序来实现。
可以理解的是,编码器基于通过待编码点云的空间分布特点,来每个待编码点云对应的最优的RAHT变换的变换顺序。这样,在考虑到点云的预设空间的表面走势的时候,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编 解码效率的目的,由于,每个预设空间的待编码点云对应的变换顺序可能不同,因此,需要在编码的时候,将变换顺序也编码写入属性比特流中,便于解码器解码解析出变换顺序,基于变换顺序,进行RAHT逆变换时使用。
基于前述实施例的实现基础,如图11所示,本申请实施例提供了本申请实施例提供了一种编码器1,包括:
确定部分10,被配置为确定待编码点云中的预设空间内的待编码点的二维莫顿码;所述二维莫顿码为所述待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码;
获取部分11,被配置为对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;
所述确定部分10,还被配置为从所述点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;以及基于所述三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序;
变换部分12,被配置为基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;
写入部分13,被配置为将所述变换顺序和所述RAHT变换后的属性编码结果,写入属性比特流。
在本申请的一些实施例中,所述确定部分10,还被配置为所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之前,将所述待编码点云所在的点云空间进行条带划分,得到N个条带;所述预设空间为将所述N个条带中的每个条带;N为大于或等于1的正整数。
在本申请的一些实施例中,所述确定部分10,还被配置为所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,所述对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,基于所述二维莫顿码迭代遍历,确定所述K。
在本申请的一些实施例中,所述获取部分11,还被配置为所述对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,获取所述待编码点云所在的点云空间的最大边长;
所述确定部分10,还被配置为基于所述最大边长,确定所述点云空间的几何精度;其中,所述几何精度为用二进制表示所述最大边长对应的比特位数;基于所述几何精度,确定所述K。
在本申请的一些实施例中,所述确定部分10,还被配置为所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,所述对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,确定所述二维莫顿码中的最大值与最小值的差值;确定所述差值与所述待编码点的点数的商;确定所述商移动到零的位数;基于所述位数,确定所述K。
在本申请的一些实施例中,所述确定部分10,还被配置为基于所述预设空间对应的变换顺序,确定所述预设空间对应的、且与各坐标分量形成预设角度的变换方向和顺序;
所述获取部分11,还被配置为获取所述待编码点的三维莫顿码;
所述变换部分12,还被配置为基于所述变换方向和顺序,以及三维莫顿码,进行所述RAHT变换。
在本申请的一些实施例中,所述获取部分11,还被配置为确定所述待编码点云所在的点云空间中,三维坐标分量各自的边长;基于所述三维坐标分量各自的边长,确定三维坐标分量分别对应的权重值;基于所述权重值,对所述待编码点云中的待编码点进行编码,得到三维莫顿码。
在本申请的一些实施例中,所述获取部分11,还被配置为所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之前,选取所述待编码点云所在的点云空间中的部分空间为所述预设空间。
在本申请的一些实施例中,所述变换部分12,还被配置为基于所述预设空间对应的变换顺序,以及其他空间对应的预设变换顺序,进行RAHT变换;其中,所述其他空间为所述点云空间中除所述预设空间外的空间。
在本申请的一些实施例中,所述确定部分10,还被配置为所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,且所述基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换之前,对所述待编码点的二维莫顿码分别进行右移处理,确定出待编码点数最大的点集满足预设点数阈值范围的三维坐标分量各自对应的K;根据所述三维坐标分量各自对应的K,确定所述预设空间对应的变换顺序。
在本申请的一些实施例中,所述确定部分10,还被配置为当所述三维坐标分量分别对应的点数为NumX>NumY>NumZ时,确定所述变换顺序为zyx;
当所述三维坐标分量分别对应的点数为NumX>NumZ>NumY时,确定所述变换顺序为yzx;
当所述三维坐标分量分别对应的点数为NumY>NumX>NumZ时,确定所述变换顺序为zxy;
当所述三维坐标分量分别对应的点数为NumY>NumZ>NumX时,确定所述变换顺序为xzy;
当所述三维坐标分量分别对应的点数为NumZ>NumX>NumY时,确定所述变换顺序为yxz;
当所述三维坐标分量分别对应的点数为NumZ>NumY>NumX时,确定所述变换顺序为xyz。
在本申请的一些实施例中,所述确定部分10,还被配置为当所述三维坐标分量各自对应的K为K(X)<K(Y)<K(Z)时,确定所述变换顺序为zyx;
当所述三维坐标分量各自对应的K为K(X)<K(Z)<K(Y)时,确定所述变换顺序为yzx;
当所述三维坐标分量各自对应的K为K(Y)<K(X)<K(Z)时,确定所述变换顺序为zxy;
当所述三维坐标分量各自对应的K为K(Y)<K(Z)<K(X)时,确定所述变换顺序为xzy;
当所述三维坐标分量各自对应的K为K(Z)<K(X)<K(Y)时,确定所述变换顺序为yxz;
当所述三维坐标分量各自对应的K为K(Z)<K(Y)<K(X)时,确定所述变换顺序为xyz。
可以理解的是,由于编码器在进行属性编码的过程中,针对RAHT变换的实现,通过预设空间内的待编码点的二维莫顿码,统计出每个坐标分量的三维坐标分量分别对应的点数,最终是基于三维坐标分量分别对应的点数来确定进行RAHT变换的变换顺序的。这样,在考虑到三维坐标分量分别对应的点数,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编解码效率的目的。
在实际应用中,如图12所示,本申请实施例还提供了一种编码器,包括:
第一存储器14,用于存储可执行指令;
第一处理器15,用于执行所述第一存储器14中存储的可执行指令时,实现编码器侧的变换方法。
其中,处理器可以通过软件、硬件、固件或者其组合实现,可以使用电路、单个或多个专用集成电路(application specific integrated circuits,ASIC)、单个或多个通用集成电路、单个或多个微处理器、单个或多个可编程逻辑器件、或者前述电路或器件的组合、或者其他适合的电路或器件,从而使得该处理器可以执行前述实施例中的变换方法的相应步骤。
本申请实施例提供了一种计算机可读存储介质,包括:存储有可执行指令,用于引起第一处理器执行时,实现编码器侧的变换方法。
在本申请实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:磁性随机存取存储器(FRAM,ferromagnetic random access memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等各种可以存储程序代码的介质,本申请实施例不作限制。
如图13所示,本申请实施例提供了一种解码器2,包括:
解析部分20,被配置为从属性比特流中,解析出变换顺序;
解码部分21,被配置为基于所述变换顺序,进行区域自适应分层变换RAHT逆变换。
在实际应用中,如图14所示,本申请实施例还提供了一种解码器,包括:
第二存储器22,用于存储可执行指令;
第二处理器23,用于执行所述第二存储器22中存储的可执行指令时,实现解码器侧的逆变换方法。
本申请实施例提供了一种计算机可读存储介质,包括:存储有可执行指令,用于引起第二处理器执行时,实现解码器侧的逆变换方法。
可以理解的是,编码器基于通过待编码点云的空间分布特点,来每个待编码点云对应的最优的RAHT变换的变换顺序。这样,在考虑到点云的预设空间的表面走势的时候,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编解码效率的目的,由于,每个预设空间的待编码点云对应的变换顺序可能不同,因此,需要在编码的时候,将变换顺序也编码写入属性比特流中,便于解码器解码解析出变换顺序,基于变换顺序,进行RAHT逆变换时使用。
工业实用性
本申请实施例提供了一种变换方法、逆变换方法、编码器、解码器及计算机可读存储介质,由于编码器在进行属性编码的过程中,针对RAHT变换的实现,通过预设空间内的待编码点的二维莫顿码,统计出每个坐标分量的三维坐标分量分别对应的点数,最 终是基于三维坐标分量分别对应的点数来确定进行RAHT变换的变换顺序的。这样,在考虑到三维坐标分量分别对应的点数,优先进行特征显著的方向上的变换,达到了减少变换得到的变换系数的冗余度,提高编解码效率的目的。

Claims (19)

  1. 一种变换方法,应用于编码器中,包括:
    确定待编码点云中的预设空间内的待编码点的二维莫顿码;所述二维莫顿码为所述待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码;
    对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;
    从所述点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;
    基于所述三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序;
    基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;
    将所述变换顺序和所述RAHT变换后的属性编码结果,写入属性比特流。
  2. 根据权利要求1所述的方法,其中,所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之前,所述方法还包括:
    将所述待编码点云所在的点云空间进行条带划分,得到N个条带;所述预设空间为将所述N个条带中的每个条带;N为大于或等于1的正整数。
  3. 根据权利要求1所述的方法,其中,所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,所述对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,所述方法还包括:
    基于所述二维莫顿码迭代遍历,确定所述K。
  4. 根据权利要求1或2所述的方法,其中,所述对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,所述方法还包括:
    获取所述待编码点云所在的点云空间的最大边长;
    基于所述最大边长,确定所述点云空间的几何精度;其中,所述几何精度为用二进制表示所述最大边长对应的比特位数;
    基于所述几何精度,确定所述K。
  5. 根据权利要求1所述的方法,其中,所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,所述对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集之前,所述方法还包括:
    确定所述二维莫顿码中的最大值与最小值的差值;
    确定所述差值与所述待编码点的点数的商;
    确定所述商移动到零的位数;
    基于所述位数,确定所述K。
  6. 根据权利要求1至5任一项所述的方法,其中,所述基于所述预设空间对应的变换顺序,进行变换RAHT变换,包括:
    基于所述预设空间对应的变换顺序,确定所述预设空间对应的、且与各坐标分量形成预设角度的变换方向和顺序;
    获取所述待编码点的三维莫顿码;
    基于所述变换方向和顺序,以及三维莫顿码,进行所述RAHT变换。
  7. 根据权利要求6所述的方法,其中,所述获取所述待编码点的三维莫顿码,包括:
    确定所述待编码点云所在的点云空间中,三维坐标分量各自的边长;
    基于所述三维坐标分量各自的边长,确定三维坐标分量分别对应的权重值;
    基于所述权重值,对所述待编码点云中的待编码点进行编码,得到三维莫顿码。
  8. 根据权利要求1所述的方法,其中,所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之前,所述方法还包括:
    选取所述待编码点云所在的点云空间中的部分空间为所述预设空间。
  9. 根据权利要求8所述的方法,其中,所述基于所述预设空间对应的变换顺序,进行RAHT变换,包括:
    基于所述预设空间对应的变换顺序,以及其他空间对应的预设变换顺序,进行RAHT变换;其中,所述其他空间为所述点云空间中除所述预设空间外的空间。
  10. 根据权利要求1、8或9所述的方法,其中,所述确定待编码点云中的预设空间内的待编码点的二维莫顿码之后,且所述基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换之前,所述方法还包括:
    对所述待编码点的二维莫顿码分别进行右移处理,确定出待编码点数最大的点集满足预设点数阈值范围的三维坐标分量各自对应的K;
    根据所述三维坐标分量各自对应的K,确定所述预设空间对应的变换顺序。
  11. 根据权利要求1所述的方法,其中,所述基于所述三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序,包括:
    当所述三维坐标分量分别对应的点数为NumX>NumY>NumZ时,确定所述变换顺序为zyx;
    当所述三维坐标分量分别对应的点数为NumX>NumZ>NumY时,确定所述变换顺序为yzx;
    当所述三维坐标分量分别对应的点数为NumY>NumX>NumZ时,确定所述变换顺序为zxy;
    当所述三维坐标分量分别对应的点数为NumY>NumZ>NumX时,确定所述变换顺序为xzy;
    当所述三维坐标分量分别对应的点数为NumZ>NumX>NumY时,确定所述变换顺序为yxz;
    当所述三维坐标分量分别对应的点数为NumZ>NumY>NumX时,确定所述变换顺序为xyz。
  12. 根据权利要求10所述的方法,其中,所述根据所述三维坐标分量各自对应的K,确定所述预设空间对应的变换顺序,包括:
    当所述三维坐标分量各自对应的K为K(X)<K(Y)<K(Z)时,确定所述变换顺序为zyx;
    当所述三维坐标分量各自对应的K为K(X)<K(Z)<K(Y)时,确定所述变换顺序为yzx;
    当所述三维坐标分量各自对应的K为K(Y)<K(X)<K(Z)时,确定所述变换顺序为zxy;
    当所述三维坐标分量各自对应的K为K(Y)<K(Z)<K(X)时,确定所述变换顺序为xzy;
    当所述三维坐标分量各自对应的K为K(Z)<K(X)<K(Y)时,确定所述变换顺序为yxz;
    当所述三维坐标分量各自对应的K为K(Z)<K(Y)<K(X)时,确定所述变换顺序为xyz。
  13. 一种逆变换方法,应用于解码器中,包括:
    从属性比特流中,解析出变换顺序;
    基于所述变换顺序,进行区域自适应分层变换RAHT逆变换。
  14. 一种编码器,包括:
    确定部分,被配置为确定待编码点云中的预设空间内的待编码点的二维莫顿码;所述二维莫顿码为所述待编码点分别依次去掉三维坐标某一分量后得到的二维坐标对应莫顿码;
    获取部分,被配置为对所述二维莫顿码右移K位,得到三维坐标分量分别对应的点集;K为大于1的正整数;
    所述确定部分,还被配置为从所述点集中,确定出三维坐标分量分别对应的包含待编码点数量最大的三维坐标分量分别对应的点数;以及基于所述三维坐标分量分别对应的点数,确定所述预设空间对应的变换顺序;
    变换部分,被配置为基于所述预设空间对应的变换顺序,进行区域自适应分层变换RAHT变换;
    写入部分,被配置为将所述变换顺序和所述RAHT变换后的属性编码结果,写入属性比特流。
  15. 一种解码器,包括:
    解析部分,被配置为从属性比特流中,解析出变换顺序;
    解码部分,被配置为基于所述变换顺序,进行区域自适应分层变换RAHT逆变换。
  16. 一种编码器,包括:
    第一存储器,用于存储可执行指令;
    第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现权利要求1至12任一项所述的方法。
  17. 一种解码器,包括:
    第二存储器,用于存储可执行指令;
    第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现权利要求13所述的方法。
  18. 一种存储介质,包括:存储有可执行指令,用于引起第一处理器执行时,实现权利要求1至12任一项所述的方法。
  19. 一种存储介质,包括:存储有可执行指令,用于引起第二处理器执行时,实现权利要求13所述的方法。
PCT/CN2019/109646 2019-09-30 2019-09-30 变换方法、逆变换方法、编码器、解码器及存储介质 Ceased WO2021062732A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP19947959.3A EP4040793A4 (en) 2019-09-30 2019-09-30 TRANSFORM PROCESS, INVERSE TRANSFORM PROCESS, ENCODER, DECODER AND STORAGE MEDIA
CN201980100486.7A CN114402621A (zh) 2019-09-30 2019-09-30 变换方法、逆变换方法、编码器、解码器及存储介质
PCT/CN2019/109646 WO2021062732A1 (zh) 2019-09-30 2019-09-30 变换方法、逆变换方法、编码器、解码器及存储介质
US17/655,409 US12159436B2 (en) 2019-09-30 2022-03-18 Transform method, inverse transform method, encoder, decoder and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/109646 WO2021062732A1 (zh) 2019-09-30 2019-09-30 变换方法、逆变换方法、编码器、解码器及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/655,409 Continuation US12159436B2 (en) 2019-09-30 2022-03-18 Transform method, inverse transform method, encoder, decoder and storage medium

Publications (1)

Publication Number Publication Date
WO2021062732A1 true WO2021062732A1 (zh) 2021-04-08

Family

ID=75337678

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/109646 Ceased WO2021062732A1 (zh) 2019-09-30 2019-09-30 变换方法、逆变换方法、编码器、解码器及存储介质

Country Status (4)

Country Link
US (1) US12159436B2 (zh)
EP (1) EP4040793A4 (zh)
CN (1) CN114402621A (zh)
WO (1) WO2021062732A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024523912A (ja) * 2021-08-23 2024-07-02 維沃移動通信有限公司 点群属性の符号化方法、点群属性の復号方法及び端末

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021132834A1 (ko) * 2019-12-26 2021-07-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021138787A1 (zh) 2020-01-06 2021-07-15 Oppo广东移动通信有限公司 一种帧内预测方法、编码器、解码器及存储介质
EP4101173A1 (en) * 2020-02-06 2022-12-14 PCMS Holdings, Inc. 3d point cloud enhancement with multiple measurements
CN117478901A (zh) * 2022-07-21 2024-01-30 维沃移动通信有限公司 编码、解码方法、装置及设备
EP4666250A1 (en) * 2023-02-14 2025-12-24 Comcast Cable Communications, LLC Parametrization for voxelizing triangles in point cloud coding
WO2024216476A1 (zh) * 2023-04-17 2024-10-24 Oppo广东移动通信有限公司 编解码方法、编码器、解码器、码流以及存储介质
WO2025145325A1 (zh) * 2024-01-03 2025-07-10 Oppo广东移动通信有限公司 编解码方法、编解码器以及存储介质
WO2026007121A1 (zh) * 2024-07-05 2026-01-08 Oppo广东移动通信有限公司 点云编解码方法、编解码器以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136535A (zh) * 2011-11-29 2013-06-05 南京理工大学常熟研究院有限公司 一种用于点云简化的k近邻搜索方法
CN108171761A (zh) * 2017-12-13 2018-06-15 北京大学 一种基于傅里叶图变换的点云帧内编码方法及装置
CN108833927A (zh) * 2018-05-03 2018-11-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
CN109196559A (zh) * 2016-05-28 2019-01-11 微软技术许可有限责任公司 动态体素化点云的运动补偿压缩
US20190228050A1 (en) * 2018-01-19 2019-07-25 8i Limited Bezier volume representation of point cloud attributes
WO2019147816A1 (en) * 2018-01-26 2019-08-01 Sony Corporation Hybrid projection-based point cloud texture coding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632621B (zh) 2018-05-09 2019-07-02 北京大学深圳研究生院 一种基于层次划分的点云属性压缩方法
CN114363634B (zh) * 2019-06-30 2025-02-25 Oppo广东移动通信有限公司 变换方法、逆变换方法、编码器、解码器及存储介质
KR20220029595A (ko) * 2019-07-03 2022-03-08 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 포인트 클라우드 인코딩과 디코딩 방법, 인코더, 디코더 및 컴퓨터 저장 매체

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136535A (zh) * 2011-11-29 2013-06-05 南京理工大学常熟研究院有限公司 一种用于点云简化的k近邻搜索方法
CN109196559A (zh) * 2016-05-28 2019-01-11 微软技术许可有限责任公司 动态体素化点云的运动补偿压缩
CN108171761A (zh) * 2017-12-13 2018-06-15 北京大学 一种基于傅里叶图变换的点云帧内编码方法及装置
US20190228050A1 (en) * 2018-01-19 2019-07-25 8i Limited Bezier volume representation of point cloud attributes
WO2019147816A1 (en) * 2018-01-26 2019-08-01 Sony Corporation Hybrid projection-based point cloud texture coding
CN108833927A (zh) * 2018-05-03 2018-11-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SANDRI GUSTAVO; FIGUEIREDO VICTOR F.; CHOU PHILIP A.; DE QUEIROZ RICARDO: "Point Cloud Compression Incorporating Region of Interest Coding", 2019 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP), 22 September 2019 (2019-09-22), pages 4370 - 4374, XP033647508, DOI: 10.1109/ICIP.2019.8803553 *
See also references of EP4040793A4 *
ZHANG QI; SHAO YITING; LI GE: "Point Clouds Attribute Compression Using Data-Adaptive Intra prediction", 2018 IEEE VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP), 9 December 2018 (2018-12-09), pages 1 - 4, XP033541914, DOI: 10.1109/VCIP.2018.8698681 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024523912A (ja) * 2021-08-23 2024-07-02 維沃移動通信有限公司 点群属性の符号化方法、点群属性の復号方法及び端末
EP4395323A4 (en) * 2021-08-23 2024-12-18 Vivo Mobile Communication Co., Ltd. METHOD FOR CODING POINT CLOUD ATTRIBUTES, METHOD FOR DECODING POINT CLOUD ATTRIBUTES AND TERMINAL DEVICE
JP7628631B2 (ja) 2021-08-23 2025-02-10 維沃移動通信有限公司 点群属性の符号化方法、点群属性の復号方法及び端末

Also Published As

Publication number Publication date
US20220207781A1 (en) 2022-06-30
CN114402621A (zh) 2022-04-26
EP4040793A4 (en) 2023-01-11
US12159436B2 (en) 2024-12-03
EP4040793A1 (en) 2022-08-10

Similar Documents

Publication Publication Date Title
JP7330306B2 (ja) 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体
WO2021062732A1 (zh) 变换方法、逆变换方法、编码器、解码器及存储介质
JP7651043B2 (ja) 点群符号化方法、点群復号化方法、符号器、復号器及びコンピュータ記憶媒体
JP7520223B2 (ja) 点群階層化方法、デコーダ、エンコーダ及び記憶媒体
WO2021062743A1 (zh) 占位信息的预测方法、编码器、解码器、及存储介质
JP7386337B2 (ja) 分割方法、符号器、復号器及びコンピュータ記憶媒体
JP7830549B2 (ja) イントラ予測方法、装置、エンコーダ、デコーダ及び記憶媒体
CN113632492B (zh) 一种用于点云处理、解码的方法、设备及存储介质
WO2021062771A1 (zh) 颜色分量预测方法、编码器、解码器及计算机存储介质
CN113284250A (zh) 一种点云的几何编码方法和解码方法及设备
WO2021062772A1 (zh) 预测方法、编码器、解码器及计算机存储介质
CN116601944A (zh) 点云编解码方法、编码器、解码器及计算机存储介质
KR20230017301A (ko) 포인트 클라우드 코딩을 위한 거리 기반 가중 평균을 계산하는 방법 및 장치
WO2021138785A1 (zh) 划分方法、编码器、解码器及计算机存储介质
KR20240073054A (ko) 포인트 클라우드 데이터 프레임 압축
CN116097650B (zh) 一种点云数据的层次划分方法、编码器及存储介质
KR20220157490A (ko) 인트라 예측 방법, 장치, 인코더, 디코더 및 저장 매체
WO2021108970A1 (zh) 点云处理方法、编码器、解码器及存储介质
WO2021139796A1 (zh) 莫顿码的构建方法、编码器、解码器、及存储介质
US20260113436A1 (en) Coding method, decoding method, bit stream, coder, decoder, and storage medium
WO2025213480A1 (zh) 编解码方法及装置、点云编解码器、码流、设备、存储介质
US20260113485A1 (en) Encoding method, decoding method, code stream, encoder, decoder, and storage medium
WO2026007121A1 (zh) 点云编解码方法、编解码器以及存储介质
KR20250168650A (ko) 인코딩/디코딩 방법, 인코더, 디코더, 비트스트림 및 저장매체
TW202431857A (zh) 編解碼方法、碼流、編碼器、解碼器以及儲存媒介

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019947959

Country of ref document: EP

Effective date: 20220502