Newer
Older
package azgracompress.compression;
import azgracompress.data.V2i;
import azgracompress.data.V3i;
import azgracompress.fileformat.QuantizationType;
/**
* Options for the compressor/decompressor.
*/
public class CompressionOptions {
/**
* Input image or compressed file.
*/
private String inputFilePath;
/**
* Output image or compressed file.
*/
private String outputFilePath;
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
* Type of quantization.
*/
private QuantizationType quantizationType;
/**
* Directory which contains codebook caches.
*/
private String codebookCacheFolder = null;
/**
* Number of bits, which are used to encode single codebook index.
*/
private int bitsPerCodebookIndex = 8;
/**
* Dimensions of the quantization vector.
* TODO: Once we support 3D quantization, this should be V3i.
*/
private V2i vectorDimension = new V2i(0);
/**
* Dimensions of the input image data.
*/
private V3i imageDimension = new V3i(0);
/**
* Flag, whether to use middle plane as reference plane for codebook creation.
*/
private boolean useMiddlePlane = false;
/**
* Index of the plane to compress.
*/
private Integer planeIndex = null;
/**
* Range of the planes to compress.
*/
Interval<Integer> planeRange = null;
/**
* Number of workers to be used for different operations.
*/
private int workerCount = 1;
// NOTE(Moravec): Getters and setters for the private fields.
public String getInputFilePath() {
return inputFilePath;
}
public void setInputFilePath(String inputFilePath) {
this.inputFilePath = inputFilePath;
}
public String getOutputFilePath() {
return outputFilePath;
}
public void setOutputFilePath(String outputFilePath) {
this.outputFilePath = outputFilePath;
}
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
public QuantizationType getQuantizationType() {
return quantizationType;
}
public void setQuantizationType(QuantizationType quantizationType) {
this.quantizationType = quantizationType;
}
public String getCodebookCacheFolder() {
return codebookCacheFolder;
}
public void setCodebookCacheFolder(String codebookCacheFolder) {
this.codebookCacheFolder = codebookCacheFolder;
}
public int getBitsPerCodebookIndex() {
return bitsPerCodebookIndex;
}
public void setBitsPerCodebookIndex(int bitsPerCodebookIndex) {
this.bitsPerCodebookIndex = bitsPerCodebookIndex;
}
public V2i getVectorDimension() {
return vectorDimension;
}
public void setVectorDimension(V2i vectorDimension) {
this.vectorDimension = vectorDimension;
}
public V3i getImageDimension() {
return imageDimension;
}
public void setImageDimension(V3i imageDimension) {
this.imageDimension = imageDimension;
}
public boolean shouldUseMiddlePlane() {
return useMiddlePlane;
}
public void setUseMiddlePlane(boolean useMiddlePlane) {
this.useMiddlePlane = useMiddlePlane;
}
public Integer getPlaneIndex() {
return planeIndex;
}
public boolean isPlaneIndexSet() {
return (planeIndex != null);
}
public boolean isPlaneRangeSet() {
return (planeRange != null);
}
public void setPlaneIndex(Integer planeIndex) {
this.planeIndex = planeIndex;
}
public Interval<Integer> getPlaneRange() {
return planeRange;
}
public void setPlaneRange(Interval<Integer> planeRange) {
this.planeRange = planeRange;
}
public int getWorkerCount() {
return workerCount;
}
public void setWorkerCount(int workerCount) {
this.workerCount = workerCount;
}
}