A point cloud encoder, comprising: a processor to encode a block of points from the point cloud, so as to obtain an encoded point cloud, wherein the point cloud includes a set of blocks and each block includes a set of points, wherein the processor is to use a predetermined location in the block, compute for each point, a difference between a position of the point to the predetermined location, so as to obtain a set of prediction residuals for the set of points in the block, and a transmitter to transmit the set of prediction residuals over a compressed bitstream, wherein the point cloud 3D space is mapped or indexed to a position on a 2D grid, characterized in that the point could encoder further comprises: perform data-dependent non-uniform partitioning on said 2-D grid of a region having a set of points, such that a location of the partitioning across at least one of the two dimensions comprising the 2-D grid is determined by a scoring function which calculates a score associated with the position and attribute of each of the points, to identify a split position for splitting the current block, which is a 2D grid, into two sub-blocks as the location of the partitioning, wherein the scoring function assigns higher values to areas of the point cloud that exhibit edges, wherein an input to the scoring function is a subset of points along one of the two dimensions within a search area, and the location of the point that corresponds to where an output of the scoring function is maximized, corresponds to the split position in the one of the two dimensions, and the current block is split into the two sub-blocks by a splitting line passing through the splitting position and along the other dimension perpendicular to the one dimension of the two dimensions. a processor to encode a block of points from the point cloud, so as to obtain an encoded point cloud, wherein the point cloud includes a set of blocks and each block includes a set of points, wherein the processor is to use a predetermined location in the block, compute for each point, a difference between a position of the point to the predetermined location, so as to obtain a set of prediction residuals for the set of points in the block, and a transmitter to transmit the set of prediction residuals over a compressed bitstream, wherein the point cloud 3D space is mapped or indexed to a position on a 2D grid, characterized in that the point could encoder further comprises: perform data-dependent non-uniform partitioning on said 2-D grid of a region having a set of points, such that a location of the partitioning across at least one of the two dimensions comprising the 2-D grid is determined by a scoring function which calculates a score associated with the position and attribute of each of the points, to identify a split position for splitting the current block, which is a 2D grid, into two sub-blocks as the location of the partitioning, wherein the scoring function assigns higher values to areas of the point cloud that exhibit edges, wherein an input to the scoring function is a subset of points along one of the two dimensions within a search area, and the location of the point that corresponds to where an output of the scoring function is maximized, corresponds to the split position in the one of the two dimensions, and the current block is split into the two sub-blocks by a splitting line passing through the splitting position and along the other dimension perpendicular to the one dimension of the two dimensions. perform data-dependent non-uniform partitioning on said 2-D grid of a region having a set of points, such that a location of the partitioning across at least one of the two dimensions comprising the 2-D grid is determined by a scoring function which calculates a score associated with the position and attribute of each of the points, to identify a split position for splitting the current block, which is a 2D grid, into two sub-blocks as the location of the partitioning, wherein the scoring function assigns higher values to areas of the point cloud that exhibit edges, wherein an input to the scoring function is a subset of points along one of the two dimensions within a search area, and the location of the point that corresponds to where an output of the scoring function is maximized, corresponds to the split position in the one of the two dimensions, and the current block is split into the two sub-blocks by a splitting line passing through the splitting position and along the other dimension perpendicular to the one dimension of the two dimensions.