1

I'm trying to quantize quaternion in let's say 24 bins.

If it would be 3D vector, I could've compute dot product between my vector and normals for polyhenron surfaces and then choose the closest one. Or perform Hammer-Aitoff projection and then quantize it in UV space.

But I'm not sure how to quantize quaternion properly since it is 4D vector. Any help is much appreciated.

UPDATE: To give an example, let's say we have 100k unique quaternions and I want to reduce their number to 100 by approximating some of them to their neighbors. The question is how to choose those 100, so distance between clusters is maximum and distance within cluster is minimum?

Pavel Podlipensky
  • 8,201
  • 5
  • 42
  • 53

1 Answers1

0

If you were dealing with 3D unit vectors, one strategy would be to pick a polyhedron that approximates the unit sphere with 24 faces. Using the vector to barycenter, assign each input vector to a bin corresponding to the face whose (normalized) vector from the origin to the barycenter has maximal dot product.

Unless mistaken, you could follow a similar approach for unit* quaternions.

Construct, for example, a 24-cell. This is a 3-manifold in 4D whose vertices lie on the unit 3-sphere which is isomorphic to the unit quaternions. You can probably find code to generate the 24-cell, or construct it according to wikipedia by taking the convex hull of all permutations of the vector [ ± 1, ± 1, 0 , 0 ].

Again, assign each input quaternion xi+yj+zk+w to a bin corresponding to the cell whose (normalized) vector from the origin to the barycenter has maximal dot product to the 4D vector [x,y,z,w].

*I'm assuming you're actually dealing with unit quaternions (a.k.a., 3D rotations), not arbitrary-norm quaternions. For those, I guess it's the same as quantizing arbitrary 4D vectors.

Alec Jacobson
  • 6,032
  • 5
  • 51
  • 88