org.jmol.util

Class DCT

class DCT extends Object

Field Summary
static double[]AANscaleFactor
double[][]divisors
double[]DivisorsChrominance
double[]DivisorsLuminance
static intN
DCT Block Size - default 8
static intNN
int[][]quantum
Image Quality (0-100) - default 80 (good image / good compression)
int[]quantum_chrominance
Quantitization Matrix for chrominance.
int[]quantum_luminance
Quantitization Matrix for luminace.
Constructor Summary
DCT(int quality)
Constructs a new DCT object.
Method Summary
static voidAANscale(double[] divisors, int[] values, int quality)
static double[][]forwardDCT(float[][] input)
voidinitMatrix(int quality)
static int[]quantizeBlock(double[][] inputData, double[] divisorsCode)

Field Detail

AANscaleFactor

private static final double[] AANscaleFactor

divisors

double[][] divisors

DivisorsChrominance

private double[] DivisorsChrominance

DivisorsLuminance

private double[] DivisorsLuminance

N

private static final int N
DCT Block Size - default 8

NN

private static final int NN

quantum

int[][] quantum
Image Quality (0-100) - default 80 (good image / good compression)

quantum_chrominance

private int[] quantum_chrominance
Quantitization Matrix for chrominance.

quantum_luminance

private int[] quantum_luminance
Quantitization Matrix for luminace.

Constructor Detail

DCT

DCT(int quality)
Constructs a new DCT object. Initializes the cosine transform matrix these are used when computing the DCT and it's inverse. This also initializes the run length counters and the ZigZag sequence. Note that the image quality can be worse than 25 however the image will be extemely pixelated, usually to a block size of N.

Parameters: quality The quality of the image (0 worst - 100 best)

Method Detail

AANscale

private static void AANscale(double[] divisors, int[] values, int quality)

forwardDCT

static double[][] forwardDCT(float[][] input)

initMatrix

private void initMatrix(int quality)

quantizeBlock

static int[] quantizeBlock(double[][] inputData, double[] divisorsCode)