A method of encoding a point cloud to generate a bitstream of compressed point cloud data, the point cloud being located within a volumetric space containing the points of the point cloud, each of the points having a geometric location within the volumetric space, wherein a sub-volume within the volumetric space contains a set of points the locations of which are to-be-coded, the method comprising: determining a plurality of candidate coding modes, wherein each candidate coding mode transforms a set of previously-coded points into a candidate predicted set of points; wherein transforming the set of previously-coded points results in a repositioning of the previously-coded points in accordance with the respective candidate coding mode; selecting a coding mode from among the plurality of candidate coding modes using rate-distortion optimization, where the rate-distortion optimization includes, for one of the candidate coding modes, determining a geometric distortion between the set of points and the candidate predicted set of points produced by said one of the candidate coding modes, and wherein the geometric distortion is determined based on a sum of the absolute distance between each point in the set of points and a respective nearest predicted point in said candidate predicted set of points; wherein selecting a coding mode includes performing a multi-round iterative search for a locally-best coding mode within a search range; wherein in a first round a search pattern forming a grid of points based on a displacement between the grid points is used; wherein each successive round of the search includes determining two or more locally-best coding modes using the geometric distortion and defining successive new search ranges centered around respective points identified by said locally-best coding modes; and wherein the search pattern for a new search range centered around a point identified by a locally-best coding mode is a grid of points based on a displacement between the grid points of half the size used in the respective previous round; and coding the set of points partly based on the predicted set of points determined by the selected coding mode, to generate the bitstream. determining a plurality of candidate coding modes, wherein each candidate coding mode transforms a set of previously-coded points into a candidate predicted set of points; wherein transforming the set of previously-coded points results in a repositioning of the previously-coded points in accordance with the respective candidate coding mode; selecting a coding mode from among the plurality of candidate coding modes using rate-distortion optimization, where the rate-distortion optimization includes, for one of the candidate coding modes, determining a geometric distortion between the set of points and the candidate predicted set of points produced by said one of the candidate coding modes, and wherein the geometric distortion is determined based on a sum of the absolute distance between each point in the set of points and a respective nearest predicted point in said candidate predicted set of points; wherein selecting a coding mode includes performing a multi-round iterative search for a locally-best coding mode within a search range; wherein in a first round a search pattern forming a grid of points based on a displacement between the grid points is used; wherein each successive round of the search includes determining two or more locally-best coding modes using the geometric distortion and defining successive new search ranges centered around respective points identified by said locally-best coding modes; and wherein the search pattern for a new search range centered around a point identified by a locally-best coding mode is a grid of points based on a displacement between the grid points of half the size used in the respective previous round; and coding the set of points partly based on the predicted set of points determined by the selected coding mode, to generate the bitstream.