Skip to content
Snippets Groups Projects
Commit c919c964 authored by Vojtech Moravec's avatar Vojtech Moravec
Browse files

Extend (SQ|VQ)Codebook from Codebook.

parent ee72aaa3
No related branches found
No related tags found
No related merge requests found
package cz.it4i.qcmp.quantization.scalar;
import cz.it4i.qcmp.huffman.HuffmanNode;
import cz.it4i.qcmp.quantization.Codebook;
/**
* Codebook for scalar quantizer.
*/
public class SQCodebook {
public class SQCodebook extends Codebook {
/**
* Quantization values.
*/
final int[] centroids;
/**
* Absolute frequencies of quantization values.
*/
final long[] indexFrequencies;
/**
* Size of the codebook.
*/
final int codebookSize;
/**
* Create SQ codebook from quantization values and huffman coder.
*
* @param centroids Quantization values.
* @param indexFrequencies Absolute frequencies of quantization values.
* @param huffmanRoot Root of the huffman tree.
*/
public SQCodebook(final int[] centroids, final long[] indexFrequencies) {
assert (centroids.length == indexFrequencies.length);
public SQCodebook(final int[] centroids, final HuffmanNode huffmanRoot) {
super(huffmanRoot);
this.centroids = centroids;
this.indexFrequencies = indexFrequencies;
this.codebookSize = this.centroids.length;
}
......@@ -40,15 +39,6 @@ public class SQCodebook {
return centroids;
}
/**
* Get frequencies of codebook symbols at indices.
*
* @return Frequencies of symbols.
*/
public long[] getSymbolFrequencies() {
return indexFrequencies;
}
/**
* Get codebook size.
*
......
package cz.it4i.qcmp.quantization.vector;
import cz.it4i.qcmp.data.V3i;
import cz.it4i.qcmp.huffman.HuffmanNode;
import cz.it4i.qcmp.quantization.Codebook;
/**
* Codebook for vector quantizer.
*/
public class VQCodebook {
public class VQCodebook extends Codebook {
/**
* Quantization vectors.
*/
private final int[][] vectors;
/**
* Absolute frequencies of quantization vectors.
*/
private final long[] vectorFrequencies;
/**
* Size of the codebook.
......@@ -26,11 +24,16 @@ public class VQCodebook {
*/
private final V3i vectorDims;
public VQCodebook(final V3i vectorDims, final int[][] vectors, final long[] vectorFrequencies) {
//assert (vectors.length == vectorFrequencies.length);
/**
* Create vector quantization codebook from quantization vectors and huffman coder.
*
* @param vectorDims Quantization vector dimensions.
* @param vectors Quantization vectors.
* @param huffmanRoot Root of the huffman tree.
*/
public VQCodebook(final V3i vectorDims, final int[][] vectors, final HuffmanNode huffmanRoot) {
this.vectorDims = vectorDims;
this.vectors = vectors;
this.vectorFrequencies = vectorFrequencies;
this.codebookSize = vectors.length;
}
......@@ -43,15 +46,6 @@ public class VQCodebook {
return vectors;
}
/**
* Get frequencies of codebook vectors at indices.
*
* @return Frequencies of vectors.
*/
public long[] getVectorFrequencies() {
return vectorFrequencies;
}
/**
* Get codebook size.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment