-
公开(公告)号:US09787321B1
公开(公告)日:2017-10-10
申请号:US15354553
申请日:2016-11-17
Applicant: Google Inc.
Inventor: Michael Hemmer , Ondrej Stava
CPC classification number: H03M7/30 , G06T9/00 , G06T9/20 , G06T17/00 , G06T2207/10028 , H03M7/3059 , H03M7/3064 , H03M7/3082 , H03M7/70
Abstract: Techniques of data compression involve ordering the points of a point cloud according to distance along a space-filling curve. Advantageously, a space-filling curve has the property that points close in distance along the curve are close together in Euclidean space. Thus, differences between points ordered by distance along such a curve, e.g., a Hilbert curve, will be close. When the curve is fractal, i.e., self-similar at all levels, the differences will be small even when the points are very unevenly clustered throughout the point cloud. Such small differences will provide greatly improved compression to the resulting delta-encoded set of points.
-
公开(公告)号:US20180350153A1
公开(公告)日:2018-12-06
申请号:US15612689
申请日:2017-06-02
Applicant: GOOGLE INC.
Inventor: Michael Hemmer , Ondrej Stava
Abstract: In one general aspect, a method can include receiving, by processing circuitry of a computer configured to represent information related to a three-dimensional object, a plurality of vertices of a triangular mesh representing the three-dimensional object, the triangular mesh including a plurality of faces, each if the plurality of faces including three vertices of the plurality of vertices; generating a traversal order for the vertices of the triangular mesh based on valences of the plurality of vertices; producing an array of errors between predicted vertices and vertices of the plurality of vertices, the array of errors being arranged in a sequence based on the traversal order; and performing a compression operation on the array of differences to produce a compressed error array, the compressed error array producing the plurality of vertices of the triangular mesh in response to a decompression operation.
-
公开(公告)号:US20180350138A1
公开(公告)日:2018-12-06
申请号:US15612736
申请日:2017-06-02
Applicant: Google Inc.
Inventor: Ondrej Stava , Michael Hemmer
CPC classification number: G06T9/00
Abstract: Techniques of compressing triangular mesh data involve encoding a bitstream that defines a traversal order for vertices in a triangular mesh. The encoded bitstream defining the traversal order is in addition to an encoded bitstream of prediction errors and is an explicit, rather than implicit, traversal. One example of a bitstream that defines a traversal order is an array in which a bit signifies whether a step in an implicit, deterministic scheme such as a depth-first traversal. Upon decoding, the usual deterministic steps are used to find the vertices of the triangular mesh unless specified by the traversal bitstream. Such an encoded bitstream, when occupying less memory than that saved from the compression efficiencies gained in defining the traversal order defined in the bitstream, offers a simple, efficient compression without requiring that the triangular mesh be connected.
-
公开(公告)号:US20180137224A1
公开(公告)日:2018-05-17
申请号:US15354669
申请日:2016-11-17
Applicant: Google Inc.
Inventor: Michael Hemmer , Ondrej Stava
CPC classification number: G06F3/0673 , G06T9/00 , G06T9/40 , H03M7/24 , H03M7/30 , H03M7/40 , H03M7/405
Abstract: An encoder includes a processor, a buffer, and a memory. The memory includes code as instructions that cause the processor to perform a number of steps. The steps include quantizing geometric data associated with a geometric construct, partitioning the geometric construct, determining a number of points in the partition, generating a deviation value based on the number of points in the partition, storing the deviation value in the buffer, and entropy encoding the deviation value.
-
公开(公告)号:US10430975B2
公开(公告)日:2019-10-01
申请号:US15354683
申请日:2016-11-17
Applicant: Google Inc.
Inventor: Michael Hemmer , Frank Galligan , Ondrej Stava
Abstract: An encoder includes a processor, a buffer, and a memory. The memory includes code as instructions that cause the processor to perform a number of steps. The steps include partitioning a geometric construct within an axis of the geometric construct based on a point differential between two partitions, the geometric construct including geometric data, determining a number of points in the partition, storing a value indicating the number of points in the buffer, and entropy encoding the value stored in the buffer.
-
6.
公开(公告)号:US10313673B2
公开(公告)日:2019-06-04
申请号:US15297801
申请日:2016-10-19
Applicant: Google Inc.
Inventor: Ondrej Stava , Michael Hemmer
IPC: H04N7/12 , H04N19/136 , H04N19/167 , H04N19/17 , H04N19/423 , G06T7/70 , G06T7/11 , G06T7/13 , G06T11/60
Abstract: Methods and apparatus to encode and decode normals of geometric representations of surfaces are disclosed herein. An example method includes defining a tile having regions, each of the regions of the tile corresponding with a surface of a geometric shape, arranging an edge of a first instance of the tile to abut an edge of a second instance of the tile to define a composite tile, determining a first vector between a first point on the composite tile in the first instance of the tile, and a second point on the composite tile in the second instance of the tile, and encoding the first vector to determine an approximation of the location of the second point relative to the first point.
-
7.
公开(公告)号:US10733766B2
公开(公告)日:2020-08-04
申请号:US15475639
申请日:2017-03-31
Applicant: Google Inc.
Inventor: Michael Hemmer , Lauren DeNaut
Abstract: Methods and apparatus to encode and/or decode normals of geometric representations of surfaces are disclosed herein. An example method includes receiving a plurality of points, each point representing a normal to the surface and being arranged within a tile; generating a plurality of regions within the tile, each region including points of the plurality of points; retrieving a first and second point, the first point representing a first normal and the second point representing a second normal, the first point being outside of a specified baseline region; performing a point transformation operation on the first point to produce a transformed first point of the baseline region and performing the point transformation on the second point to produce a transformed second point; generating a difference between the transformed first point and the transformed second point to produce a difference value; and encoding the difference value.
-
8.
公开(公告)号:US20180109795A1
公开(公告)日:2018-04-19
申请号:US15297801
申请日:2016-10-19
Applicant: Google Inc.
Inventor: Ondrej Stava , Michael Hemmer
IPC: H04N19/136 , H04N19/167 , H04N19/17 , G06T7/00 , G06T11/60 , H04N19/423 , G06T7/60 , H04N19/44
CPC classification number: H04N19/136 , G06T7/11 , G06T7/13 , G06T7/70 , G06T11/60 , H04N19/167 , H04N19/17 , H04N19/423
Abstract: Methods and apparatus to encode and decode normals of geometric representations of surfaces are disclosed herein. An example method includes defining a tile having a plurality of regions, each of the plurality of regions of the tile corresponding with a surface from a plurality of surfaces of a geometric shape, arranging an edge of a first instance of the tile to abut an edge of a second instance of the tile to define a composite tile, determining a first vector between a first point on the composite tile in the first instance of the tile, and a second point on the composite tile in the second instance of the tile, and encoding the first vector to determine an approximation of the location of the second point relative to the first point.
-
公开(公告)号:US10950042B2
公开(公告)日:2021-03-16
申请号:US15612736
申请日:2017-06-02
Applicant: Google Inc.
Inventor: Ondrej Stava , Michael Hemmer
Abstract: Techniques of compressing triangular mesh data involve encoding a bitstream that defines a traversal order for vertices in a triangular mesh. The encoded bitstream defining the traversal order is in addition to an encoded bitstream of prediction errors and is an explicit, rather than implicit, traversal. One example of a bitstream that defines a traversal order is an array in which a bit signifies whether a step in an implicit, deterministic scheme such as a depth-first traversal. Upon decoding, the usual deterministic steps are used to find the vertices of the triangular mesh unless specified by the traversal bitstream. Such an encoded bitstream, when occupying less memory than that saved from the compression efficiencies gained in defining the traversal order defined in the bitstream, offers a simple, efficient compression without requiring that the triangular mesh be connected.
-
公开(公告)号:US10553035B2
公开(公告)日:2020-02-04
申请号:US15612689
申请日:2017-06-02
Applicant: GOOGLE INC.
Inventor: Michael Hemmer , Ondrej Stava
Abstract: In one general aspect, a method can include receiving, by processing circuitry of a computer configured to represent information related to a three-dimensional object, a plurality of vertices of a triangular mesh representing the three-dimensional object, the triangular mesh including a plurality of faces, each if the plurality of faces including three vertices of the plurality of vertices; generating a traversal order for the vertices of the triangular mesh based on valences of the plurality of vertices; producing an array of errors between predicted vertices and vertices of the plurality of vertices, the array of errors being arranged in a sequence based on the traversal order; and performing a compression operation on the array of differences to produce a compressed error array, the compressed error array producing the plurality of vertices of the triangular mesh in response to a decompression operation.
-
-
-
-
-
-
-
-
-