Systems and methods for point cloud compression

EP4740466A1Pending Publication Date: 2026-05-13TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF -1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Filing Date
2024-07-01
Publication Date
2026-05-13

Smart Images

  • Figure EP2024068513_09012025_PF_FP_ABST
    Figure EP2024068513_09012025_PF_FP_ABST
Patent Text Reader

Abstract

A method for use in encoding a slice containing a point cloud. The method includes selecting, from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice. The step of selecting the split direction includes comparing a score for the first candidate split direction with a score for the second candidate split direction to determine whether the score for the first candidate satisfies a condition. If the score for the first candidate satisfies the condition, then selecting the first candidate split direction, otherwise selecting the second candidate. The score for the first candidate split direction indicates a first number of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEMS AND METHODS FOR POINT CLOUD COMPRESSIONTECHNICAL FIELD

[0001] Disclosed are embodiments related to point cloud (a.k.a., “pointcloud”) compression.BACKGROUND

[0002] A three-dimensional (3D) point cloud is a set of coordinates (a.k.a., “points”) in a 3D space, which is typically used to capture scene geometry and scale (e.g., to represent 3D structures from the physical world). In addition to geometry, 3D point clouds (or “point clouds” for short) can store additional information about the 3D points, so-called attributes. Typical attributes are color information, reflectance, normal vectors, etc.

[0003] Typical point clouds range in size from a few kilobytes (KBs) to several gigabytes (GBs), which puts stress on any application requiring storage and / or transmission of such point clouds. Therefore, an efficient point cloud compression solution is an important enabler for all industrial applications relying on such point clouds.

[0004] Geometry based point cloud compression (G-PCC) is the current MPEG standard that targets the use case of static point clouds (see, e.g., reference [1]). G-PCC uses octree coding to compress the geometry. In advance of applying this method, it is assumed that the coordinate values of the points in the point cloud have been quantized into integer coordinates and is contained within a volume D x D x D. The point cloud is then partitioned into 8 sub-cubes with dimensions D / 2 x D / 2 x D / 2. If a sub-cube does not contain any points, it is unoccupied, and the partitioning process for this branch of the tree is terminated. This generates a tree structure (an octree) where each node can be represented using 8 bits, where each bit indicates the occupancy status of one sub-cube.

[0005] FIG. 1 which illustrates how the position of two points are represented by an octree. For lossy compression, octree partitioning is stopped at a pre-determined level, generating a sparser reconstruction, and the corresponding sequence of 8-bit words is entropy coded.

[0006] G-PCC also contains a module called trisoup, which was developed to favor surface point clouds (i.e., point clouds that are dense enough to capture surface structures) (see, e.g, reference [1]). Similar to regular octree G-PCC, this method uses octree coding to partition the point cloud into nodes (blocks with width larger than 1). However, when using the trisoupmodule, the octree partitioning typically stops at a higher level in the tree, making the nodes larger. This level is pre-determined and set by the user / encoder. However, instead of setting a fixed depth, the user sets a trisoup node size (e.g.,. nodeSize = 2n, n=2, ...), where each node size corresponds to a depth. To represent the surfaces within the trisoup nodes, triangles are modeled based on where the original surface crosses the edges of the corresponding trisoup node.

[0007] FIG. 2A illustrates vertices that are generated where the plane of points are intersecting the edges of the node.

[0008] As shown in FIG. 2B, in the decoder, the points are connected in triangles via a centroid point (not filled). The intersection points are encoded as trisoup vertices and signaled to the decoder.

[0009] When decoding the point cloud, surfaces of each block are reconstructed by populating all positions for points (called voxels) that intersect the modelled triangles (connected by trisoup vertices and a centroid point). Since the reconstructed point cloud will be quantized, the number of positions that could be occupied is fixed to integer positions. The purpose of the trisoup module is to encode the point cloud at a lower bit rate without losing much accuracy. Compared to octree G-PCC, the reconstructed point cloud will be denser when using trisoup, which typically favors the distortion metrics used in MPEG.

[0010] In the current MPEG G-PCC Common Test Conditions (CTC), uniform square partitioning of point clouds into partitions is performed, before starting the octree partitioning. Uniform square partitioning operates by partitioning the point cloud into uniform squares, where the side of the cubes is determined by the smallest side (the minEdge) of the bounding box of the point cloud (see, e.g., FIG. 3 and reference [2]).

[0011] FIG. 3 shows an example of how the point cloud is partitioned into uniform squares. The side of these squares are determined as the shortest side of the bounding box encapsulating the entire point cloud.

[0012] These partitions are called slices in G-PCC. A point cloud fl partitioned into M slices can therefore be described as fl = U^Q1fit, where fltrepresents the set of points in a specific slice. To make sure that the slices have sides that are multiples of nodeSize (making it easier to partition each slice into an octree where the full range of voxels are occupied), the side of the slices are rounded up to the closest integer divisible by nodeSize. This roundednumber is called the sliceSize and determines the longest possible bounding box side of a slice. To ensure that a certain threshold of points (Nth) are not exceeded within each slice, these uniform cubic slices are further split.

[0013] When an already existing slice is further separated into smaller slices it will be referred to as splitting. However, the result of the splitting will not be cubic slices. Instead, the slices are split along the longest axis of the slice (the maxEdge of the slice) (see, e.g., FIG. 4).

[0014] To be clear, maxEdge is not the size of the longest axis, instead maxEdge is the dimension of the longest axis. If the point cloud is largest in the x-direction, maxEdge will be 0. If the point cloud instead is largest in the y-dimension, maxEdge will be 1, and if the z- direction is the largest, maxEdge will be 2. Hence maxEdge will always be 0, 1 or 2. The slices are split where there is a node boundary as well to ensure that the thickness of the slices is a multiple of nodeSize. Slices are encoded independently of each other.

[0015] In greater detail, the splitting is performed using these 5 steps:

[0016] (1) The split axis is determined by checking in what direction the content of the slice has its longest direction.

[0017] (2) The point set is sorted based on the split axis.

[0018] (3) The number of splits is determined by SN= N / Nth], using the user set threshold Nthand N is the number of points in a slice.

[0019] (4) Calculating a split size Ssize= [1 / SWJ.

[0020] (5) Loop through all the points. When the split size is exceeded, the slice boundary is set in between the 2 most recent points where the coordinate off the splitAxis is divisible by the nodeSize and the next point is not divisible by the nodeSize.

[0021] FIG. 4 shows an example illustrating how the bottom left slice from FIG. 3 is split in to 3 additional slices along the maxEdge of that slice (not the maxEdge in FIG. 3). In FIG. 4 the point cloud has been projected down to two-dimensional (2D). Slice and node boundaries are aligned.SUMMARY

[0022] Certain challenges presently exist. For instance, to maintain a complete surface over the slice boundaries in the reconstructed point clouds, vertices on slice boundaries must besignaled twice, once for each slice it is present in; the problem with the current solution is that it does not consider how many trisoup vertices that end up on slice boundaries when splitting the slice and this can have significant impact on the size of the bitstream. For instance, if the point cloud is split along one direction, there is a risk that we split the point cloud in a “busy” region where there is great number of points. The result of this is a great number of vertices on the slice boundaries that is signaled twice to the decoder, causing worse performance than necessary.

[0023] Accordingly, in one aspect there is provided a method for use in encoding a slice containing a point cloud (i.e., a set of points). The method includes selecting, from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice. The step of selecting the split direction for splitting the slice includes the following steps: determining a score for the first candidate split direction; determining a score for the second candidate split direction; and comparing the score for the first candidate split direction with the score for the second candidate split direction to determine whether the score for the first candidate split direction satisfies a condition (e.g., determine whether the score for the first candidate split direction is less than or equal to the score for the second candidate split direction). If the score for the first candidate split direction satisfies the condition, then selecting the first candidate split direction for splitting the slice, otherwise selecting the second candidate split direction for splitting the slice. The score for the first candidate split direction indicates a first number of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction. Likewise, the score for the second candidate split direction indicates a second number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the second candidate split direction.

[0024] In another aspect there is provided an apparatus that is configured to perform the methods disclosed herein. The apparatus may include memory and processing circuitry coupled to the memory.

[0025] In another aspect there is provided a computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform any of the methods disclosed herein. In one embodiment, there is provided a carrier containing thecomputer program wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

[0026] An advantage of the embodiments disclosed herein is that they, on average, increase compression efficiency by decreasing the bits required to represent the geometry of a point cloud whilst not significantly changing the quality of the reconstructed point cloud.BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.

[0028] FIG. 1 illustrates how the position of two points are represented by an octree.

[0029] FIG. 2A illustrates vertices that are generated where the plane of points are intersecting the edges of the node.

[0030] FIG. 2B illustrates points being connected in triangles via a centroid point.

[0031] FIG. 3 illustrates example of how a point cloud is partitioned into uniform squares.

[0032] FIG. 4 illusgtrates how the bottom left slice from FIG. 3 is split in to three additional slices along the maxEdge of that slice.

[0033] FIG. 5 A illustrates a slice being split along the “x” direction.

[0034] FIG. 5B illustrates the slice being split along the “y” direction.

[0035] FIG. 5C illustrates the slice being split along the “z” direction.

[0036] FIG. 6 illustrates an example point cloud within a slice.

[0037] FIGs. 7A-7C illustrate how scores are determined for various candidate split directions according to some embodiments.

[0038] FIG. 8 illustrates a system according to some embodiments.

[0039] FIG. 9 is a flowchart illustrating a process according to some embodiments.

[0040] FIG. 10 is a block diagram of an apparatus according some embodiments.DETAILED DESCRIPTION

[0041] As noted above, vertices on slice boundaries are signaled twice and the current solution does not consider how many trisoup vertices that end up on slice boundaries when splitting the slice, which can have significant impact on the size of the bitstream.

[0042] This disclosure describes embodiments that split a slice in all three directions (x, y, z) and determine the number of points in the original point cloud that are near the slice boundaries. By using this number as an estimate of how many vertices that will be encoded and signaled to the decoder, an improved split direction can be determined. Because the original point cloud does not give a perfect indication of the number of vertices that will be encoded, one cannot be sure that this split direction is always the best possible, nevertheless tests have revealed that this way of choosing the split direction provides an improvement on average.

[0043] While the embodiments described herein are applicable to point clouds with attributes, for the simplicity of presentation the embodiments are presented in the context of geometry compression without attributes, i.e., compressing a set of 3D points . = (Xk, Yk, Zk~)k=1, where K is the number of points and Xk, Yk, Zkare coordinates for point k.

[0044] The table below contains pseudo-code illustrating an embodiment.

[0045] The computing apparatus implementing this code will (1) split the slice along one of the directions (x, y, or z); (2) determine a score for the direction, wherein the score is equal to the number of points in the point cloud that are close to (z.e., within a threshold distance of) a resulting boundary; (3) repeat steps (1) and (2) for each of the other two directions so that each of the three directions will have a score; and (4) identify the “best direction,” which is the direction having the “best” score (in this case, the lowest score) (e.g., the direction that splits the slice so that the resulting slice boundaries are surrounded by the smallest number of points).

[0046] In the another embodiment, the score is equal to c / N, where c is a predetermined constant (e.g., c=l) and N is the number of points in the point cloud that are close to (z.e., within a threshold distance of) a resulting boundary. Hence in this embodiment, the “best” score is the highest score.

[0047] FIGs. 5 A, 5B, and 5C illustrate step (1). More specifically, FIG. 5 A illustrates the slice being split along the “x” direction, FIG. 5B illustrates the slice being split along the “y” direction, and FIG. 5C illustrates the slice being split along the “z” direction. In each figure, the doted lines represent the resulting boundaries (i.e., the boundaries resulting from the spliting in the given direction).

[0048] Score Calculation Example

[0049] FIG. 6 illustrates a slice 600 that captures a point cloud of a cylindrical structure. Assume that a user wants to compress slice 600.

[0050] FIG. 7A illustrates a result that one would obtain if slice 600 is split into three slices from the x direction and one extracts all of the points of the point cloud that are within a threshold distance (T) (e.g., T = 1 unit of distance) from any one of the resulting slice boundaries (doted lines in FIG. 5 A).

[0051] FIG. 7B, similarly, illustrates a result that one would obtain if the slice is split into three slices from the y direction and one extracts all of the points of the point cloud that arewithin a distance of T from any one of the resulting slice boundaries (dotted lines in FIG. 5B).

[0052] FIG. 7C, likewise, illustrates a result that one would obtain if the slice is split into three slices from the z direction and one extracts all of the points of the point cloud that are within a distance of T from any one of the resulting slice boundaries (dotted lines in FIG.5C).

[0053] For each split direction, it is assumed that the number of points that are adjacent to any resulting slice boundary is proportional to the number of duplicate trisoup vertices that will be generated on these slice boundaries. Accordingly, one can use this assumption to determine the preferred split direction for the given slice. The preferred split direction is the direction that produces the fewest number of points that are adjacent to a resulting slice boundary.

[0054] In the example presented in FIGs. 7A, 7B, and 7C, the score for splitting the slice in the x-direction is 14 (i.e., the score is set equal to N, which is defined above), the score for splitting the slice along the y direction is 24, and the score for splitting the slice along the z- direction is 27. Hence, the preferred split direction is the x-direction for this slice. An encoder (e.g., encoder 104 shown in FIG. 8) would therefore use the x-direction as the split direction.

[0055] FIG. 8 illustrates a point cloud encoding system (PCES) 800 according to an embodiment. In the embodiment shown, PCES 800 includes a data storage unit 812 storing an uncompressed point cloud (PC) 801, a split direction determining unit (SDDU) 802 for identifying a preferred split direction using the methodology described above, and an encoding unit (EU) 804 for compressing point cloud 801 using a split direction identified by SDDU 802 to produce a compressed point cloud 803, which may be stored in data storage unit 812 and / or transmitted via a network 110 to a receiving device 806. While FIG. 8 illustrates SDDU 802 being separate and apart from EU 804, in other embodiments SDDU 802 is a component of EU 804.

[0056] FIG. 9 is a flow chart illustrating a process 900, according to an embodiment, for use in encoding (e.g., compressing) a slice (e.g., slice 600) containing a point cloud (e.g., PC 602). Process 900 may begin in step s902.

[0057] Step s902 comprises selecting, from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice. As shown in FIG. 9, step s902 comprises steps s911 to s915.

[0058] Step s911 comprises determining a score for the first candidate split direction. The score for the first candidate split direction indicates a first number (Nl) of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction. For example, the score (S) is set equal to Nl or S = f(N) (e.g., S = c / N, were c is a defined value).

[0059] Step s912 comprises determining a score for the second candidate split direction. The score for the second candidate split direction indicates a second number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the second candidate split direction.

[0060] Step s913 comprises comparing the score for the first candidate split direction with the score for the second candidate split direction to determine whether the score for the first candidate split direction satisfies a condition (e.g., determine whether the score for the first candidate split direction is less than or less than or equal to the score for the second candidate split direction).

[0061] Step s914 comprises selecting the first candidate split direction for splitting the slice if the score for the first candidate split direction satisfies the condition (e.g., the first candidate split direction is selected if the score for the first candidate split direction is less than or equal to the score for the second candidate split direction).

[0062] Step s915 comprises selecting the second candidate split direction for splitting the slice if the score for the first candidate split direction does not satisfy the condition.

[0063] FIG. 10 is a block diagram of an apparatus 1000, according to some embodiments, that can be used to implement PCES 800 or any one or more components thereof, such as SDDU 802 and / or EU 804. As shown in FIG. 10, apparatus 1000 may comprise: processing circuitry (PC) 1002, which may include one or more processors (P) 1055 (e.g., one or more general purpose microprocessors and / or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (e.g., apparatus 1000 may be a distributed computing apparatuscomprising two or more computers or a monolithic computing apparatus consisting of a single computer); at least one network interface 1048 (e.g., a physical interface or air interface) comprising a transmitter (Tx) 1045 and a receiver (Rx) 1047 for enabling apparatus 1000 to transmit data to and receive data from other nodes connected to network 110 (e.g., an Internet Protocol (IP) network) to which network interface 1048 is connected (physically or wirelessly) (e.g., network interface 1048 may be coupled to an antenna arrangement comprising one or more antennas for enabling apparatus 1000 to wirelessly transmit / receive data); and a storage unit (a.k.a., “data storage system”) 1008, which may include one or more non-volatile storage devices and / or one or more volatile storage devices. In embodiments where PC 1002 includes a programmable processor, a computer readable storage medium (CRSM) 1042 may be provided. CRSM 1042 may store a computer program (CP) 1043 comprising computer readable instructions (CRI) 1044. CRSM 1042 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 1044 of computer program 1043 is configured such that when executed by PC 1002, the CRI causes apparatus 1000 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, apparatus 1000 may be configured to perform steps described herein without the need for code. That is, for example, PC 1002 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and / or software.

[0064] Summary of Various Embodiments

[0065] Al. A method for use in encoding a slice (e.g., slice 600) containing a point cloud (e.g., point cloud 602) (i.e., a set of points), the method comprising: selecting, from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice, wherein selecting the split direction for splitting the slice comprises: determining a score for the first candidate split direction; determining a score for the second candidate split direction; comparing the score for the first candidate split direction with the score for the second candidate split direction to determine whether the score for the first candidate split direction satisfies a condition (e.g., determine whether the score for the first candidate split direction is less than or less than or equal to the score for the second candidate split direction); and if the score for the first candidate split direction satisfies the condition, then selecting the first candidate split direction for splitting the slice, otherwiseselecting the second candidate split direction for splitting the slice, wherein the score for the first candidate split direction indicates a first number of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction, and the score for the second candidate split direction indicates a second number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the second candidate split direction.

[0066] A2. The method of embodiment Al, further comprising, prior to comparing the score for the first candidate split direction with the score for the second candidate split direction: determining a score for a third candidate split direction; and determining that the score for a third candidate split direction is worse than the score for the second candidate direction or determining that the score for a third candidate split direction is equal to the score for the second candidate direction, wherein the score for the third candidate split direction indicates a third number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the third candidate split direction..

[0067] A3. The method of embodiment A2, wherein determining that the score for a third candidate split direction is worse than the score for the second candidate direction comprises determining that the score for the third candidate split direction is greater than the score for the second candidate direction, or determining that the score for a third candidate split direction is worse than the score for the second candidate direction comprises determining that the score for the third candidate split direction is less than the score for the second candidate direction.

[0068] A4. The method of any one of embodiments A1-A3, wherein the score for the first candidate split direction specifies the first number of points (i.e., the score is set equal to Nl, where N1 is the first number of points), and the score for the second candidate split direction specifies the second number of points.

[0069] A5. The method of any one of embodiments A1-A4, wherein determining the score for the first candidate split direction comprises: for a first point within the point cloud determining a distance between the first point and a first slice boundary associated with the first candidate split direction; determining whether the distance between the first point and the first slice boundary satisfies a distance condition (e.g., determining whether the distance between the first point and a first slice boundary is less than or less than or equal to a distancethreshold); and as a result of determining that the distance between the first point and the first slice boundary satisfies the distance condition, incrementing a first counter value.

[0070] A6. The method of embodiment A5, wherein determining the score for the first candidate split direction further comprises setting the score equal to the first counter value or a value that is a function of the first counter value.

[0071] A7. The method of any one of embodiments A5-A6, wherein determining the score for the second candidate split direction comprises: for the first point within the point cloud determining a distance between the first point and a second slice boundary associated with the second candidate split direction; and determining whether the distance between the first point and the second slice boundary satisfies the distance condition.

[0072] A8. The method of claim A7, wherein as a result of determining that the distance between the first point and the second slice boundary satisfies the distance condition, incrementing a counter value.

[0073] A9. The method of any one of embodiments A1-A8, further comprising encoding the slice using the selected split direction.

[0074] Bl. A computer program (1043) comprising instructions (1044) which when executed by processing circuitry (1002) of an apparatus causes the apparatus to perform the method of any one of claims A1-A9.

[0075] B2. A carrier containing the computer program of embodiment Bl, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium (1042).

[0076] Cl. An apparatus (1000) configured to perform a method for use in encoding a slice (600) containing a point cloud (602) (i.e., a set of points), wherein the method comprises: selecting, from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice, wherein selecting the split direction for splitting the slice comprises: determining a score for the first candidate split direction; determining a score for the second candidate split direction; comparing the score for the first candidate split direction with the score for the second candidate split direction to determine whether the score for the first candidate split direction satisfies a condition (e.g., determine whether the score for the first candidate split direction is less than or equal to the score for the second candidate split direction); and if the score for the first candidate splitdirection satisfies the condition, then selecting the first candidate split direction for splitting the slice, otherwise selecting the second candidate split direction for splitting the slice, wherein the score for the first candidate split direction indicates a first number of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction, and the score for the second candidate split direction indicates a second number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the second candidate split direction.

[0077] C2. The apparatus of embodiment Cl, wherein the apparatus is further configured to perform the method of any one of embodiments A2-A9.

[0078] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.

[0079] As used herein “a” means “at least one” or “one or more.” Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.

[0080] References

[0081] [1] Graziosi, D., et. al., (2020) “An overview of ongoing point cloud compression standardization activities: Video-based (V-PCC) and geometry-based (G-PCC),” APSIPA Transactions on Signal and Information Processing, 9, E13. doi:10.1017 / ATSIP.2020.12.

[0082] [2] WG 7, MPEG 3D Graphics Coding, 2021, G-PCC codec description.

Claims

CLAIMS1. An apparatus (1000) configured to perform a method (900) for use in encoding a slice (600) containing a point cloud (602), wherein the method comprises: selecting (s902), from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice, wherein selecting the split direction for splitting the slice comprises: determining (s911) a score for the first candidate split direction; determining (s912) a score for the second candidate split direction; comparing (s913) the score for the first candidate split direction with the score for the second candidate split direction to determine whether the score for the first candidate split direction satisfies a condition; and if the score for the first candidate split direction satisfies the condition, then selecting (s914) the first candidate split direction for splitting the slice, otherwise selecting (s915) the second candidate split direction for splitting the slice, wherein the score for the first candidate split direction indicates a first number of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction, and the score for the second candidate split direction indicates a second number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the second candidate split direction.

2. The apparatus of claim 1, wherein the method further comprises, prior to comparing the score for the first candidate split direction with the score for the second candidate split direction: determining a score for a third candidate split direction; and determining that the score for a third candidate split direction is worse than the score for the second candidate direction or determining that the score for a third candidate split direction is equal to the score for the second candidate direction, whereinthe score for the third candidate split direction indicates a third number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the third candidate split direction..

3. The apparatus of claim 2, wherein determining that the score for a third candidate split direction is worse than the score for the second candidate direction comprises determining that the score for the third candidate split direction is greater than the score for the second candidate direction, or determining that the score for a third candidate split direction is worse than the score for the second candidate direction comprises determining that the score for the third candidate split direction is less than the score for the second candidate direction.

4. The apparatus of any one of claims 1-3, wherein the score for the first candidate split direction specifies the first number of points, and the score for the second candidate split direction specifies the second number of points.

5. The apparatus of any one of claims 1-4, wherein determining the score for the first candidate split direction comprises: for a first point within the point cloud determining a distance between the first point and a first slice boundary associated with the first candidate split direction; determining whether the distance between the first point and the first slice boundary satisfies a distance condition; and as a result of determining that the distance between the first point and the first slice boundary satisfies the distance condition, incrementing a first counter value.

6. The apparatus of claim 5, wherein determining the score for the first candidate split direction further comprises setting the score equal to the first counter value or a value that is a function of the first counter value.

7. The apparatus of any one of claims 5-6, wherein determining the score for the second candidate split direction comprises:for the first point within the point cloud determining a distance between the first point and a second slice boundary associated with the second candidate split direction; and determining whether the distance between the first point and the second slice boundary satisfies the distance condition.

8. The apparatus of claim 7, wherein as a result of determining that the distance between the first point and the second slice boundary satisfies the distance condition, incrementing a counter value.

9. The apparatus of any one of claims 1-8, further comprising encoding the slice using the selected split direction.

10. An apparatus (1000) for use in encoding a slice (600) containing a point cloud (602), the apparatus comprising: memory (1042); and processing circuitry (1002) coupled to the memory, wherein the memory stores a computer program (1043) comprising instructions (1044) which when executed by the processing circuitry (1002) causes the apparatus to perform the method of any one of claims 1-9.

11. A method (900) for use in encoding a slice (600) containing a point cloud (602), the method comprising: selecting (s902), from a set of candidate split directions comprising a first split direction and a second split direction, a split direction for splitting the slice, wherein selecting the split direction for splitting the slice comprises: determining (s911) a score for the first candidate split direction; determining (s912) a score for the second candidate split direction; comparing (s913) the score for the first candidate split direction with the score for the second candidate split direction to determine whether the score for the first candidate split direction satisfies a condition; and if the score for the first candidate split direction satisfies the condition, then selecting (s914) the first candidate split direction for splitting the slice,otherwise selecting (s915) the second candidate split direction for splitting the slice, wherein the score for the first candidate split direction indicates a first number of points within the point cloud that are within a threshold distance of a boundary that results from splitting the slice in the first candidate split direction, and the score for the second candidate split direction indicates a second number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the second candidate split direction.

12. The method of claim 11, wherein the method further comprises, prior to comparing the score for the first candidate split direction with the score for the second candidate split direction: determining a score for a third candidate split direction; and determining that the score for a third candidate split direction is worse than the score for the second candidate direction or determining that the score for a third candidate split direction is equal to the score for the second candidate direction, wherein the score for the third candidate split direction indicates a third number of points within the point cloud that are within the threshold distance of a boundary that results from splitting the slice in the third candidate split direction..

13. The method of claim 12, wherein determining that the score for a third candidate split direction is worse than the score for the second candidate direction comprises determining that the score for the third candidate split direction is greater than the score for the second candidate direction, or determining that the score for a third candidate split direction is worse than the score for the second candidate direction comprises determining that the score for the third candidate split direction is less than the score for the second candidate direction.

14. The method of any one of claims 11-13, wherein the score for the first candidate split direction specifies the first number of points, andthe score for the second candidate split direction specifies the second number of points.

15. The method of any one of claims 11-14, wherein determining the score for the first candidate split direction comprises: for a first point within the point cloud determining a distance between the first point and a first slice boundary associated with the first candidate split direction; determining whether the distance between the first point and the first slice boundary satisfies a distance condition; and as a result of determining that the distance between the first point and the first slice boundary satisfies the distance condition, incrementing a first counter value.

16. The method of claim 15, wherein determining the score for the first candidate split direction further comprises setting the score equal to the first counter value or a value that is a function of the first counter value.

17. The method of any one of claims 15-16, wherein determining the score for the second candidate split direction comprises: for the first point within the point cloud determining a distance between the first point and a second slice boundary associated with the second candidate split direction; and determining whether the distance between the first point and the second slice boundary satisfies the distance condition.

18. The method of claim 17, wherein as a result of determining that the distance between the first point and the second slice boundary satisfies the distance condition, incrementing a counter value.

19. The method of any one of claims 11-18, further comprising encoding the slice using the selected split direction.

20. A computer program (1043) comprising instructions (1044) which when executed by processing circuitry (1002) of an apparatus causes the apparatus to perform the method of any one of claims 11-19.

21. A carrier containing the computer program of claim 20, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium (1042).