public class CalculateRequiredComponentsDWT
extends java.lang.Object
Usage example:
construct
run
get functions
Modifier and Type | Field and Description |
---|---|
private byte[] |
bitMap
Contains a bitmap that indicates if the component is relevant.
|
private static int[][] |
filter_5_3_EvenEven
Position correspondence for filter 5/3 if the coefficient position in a normal domain is in a Even-Even position (2n,2m).
|
private static int[][] |
filter_5_3_EvenOdd
Position correspondence for filter 5/3 if the coefficient position in a normal domain is in a Even-Odd position (2n,2m).
|
private static int[][] |
filter_5_3_OddEven
Position correspondence for filter 5/3 if the coefficient position in a normal domain is in a Odd-Even position (2n,2m).
|
private static int[][] |
filter_5_3_OddOdd
Position correspondence for filter 5/3 if the coefficient position in a normal domain is in a Odd-Odd position (2n,2m).
|
private static int[][] |
filter_9_7_AnyAny
Position correspondence for filter 9/7 if the coefficient position in a normal domain is in a any-any position.
|
private static int[][] |
filter_9_7_AnyAny_x
Position correspondence for filter 9/7 if the coefficient position in a normal domain is in a any-any position, to mark the coefficients in the 2 next columns, special cases for optimization.
|
private static int[][] |
filter_9_7_AnyAny_y
Position correspondence for filter 9/7 if the coefficient position in a normal domain is in a any-any position, to mark the coefficients in the 2 next rows, special cases for optimization.
|
private boolean[] |
inputComponents
Is an one-dimension array that indicates which are the components to be
decompressed.
|
private int |
maxComponents
Maximum number of components.
|
private int |
maxRLevel
Maximum number of resolution levels.
|
private byte[][] |
nextRlevelBitMap
Contains a bitmap that indicates if a component is marked to be checked in the next resolution level.
|
private int[][][] |
subbandSizes
Contains the subband sizes by component and resolution level.
|
private int |
WTLevels
DWT levels to apply for each component.
|
private int |
WTType
Discrete wavelet transform to be applied for each component.
|
private int |
ySize |
Constructor and Description |
---|
CalculateRequiredComponentsDWT(boolean[] inputComponents,
int WTLevels,
int WTType)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private void |
anyAny_x(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (any,any) and if (any-2,any) has been marked before, only for wavelet filter 9/7.
|
private void |
anyAny_y(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (any,any) and the (any,any-2) has been marked before, only for wavelet filter 9/7.
|
private void |
anyAny(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (any,any) only for wavelet filter 9/7.
|
private void |
evenEven(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (2n,2n).
|
private void |
evenOdd(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (2n,2n+1).
|
boolean[] |
getRequiredComponents()
Returns an one-dimensional array of booleans.
|
private boolean |
isMarked(int rLevel,
int y,
int x)
Check if a coefficient has to be checked to be shifted
|
private boolean |
isSelected(int c)
Check if a component is selected.
|
private void |
mark(int rLevel,
int y,
int x)
Mark a coefficient, this allow to know if the coefficient has to be shifted in the next ressolution level.
|
private void |
oddEven(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (2n+1,2n).
|
private void |
oddOdd(int rLevel,
int y,
int x)
Mark the required coefficients if the coefficient is in a position (2n+1,2n+1).
|
private void |
rasterWavelet5_3()
Performs the raster for a component if the wavelet transform is 5/3 (-wt 1)
|
private void |
rasterWavelet9_7()
Performs the raster for a component if the wavelet transform is 9/7 (-wt 2)
|
void |
run()
Performs the calculus of the number of components which are needed to
inver the DWT.
|
private void |
shift(int rLevel,
int y,
int x,
int subband)
Mark a coefficient in the bitMap.
|
private int[][][] |
subbandSizesCalculation()
Calculate the subband sizes.
|
private boolean[] inputComponents
private int WTLevels
Negative values not allowed.
private int WTType
Valid values are:
private int maxComponents
private byte[] bitMap
private byte[][] nextRlevelBitMap
private int[][][] subbandSizes
private static final int[][] filter_5_3_EvenEven
First array index represents the x position in the next resolution level and the second one y position(p.e. if x=6 and y=4, in the next resolution level for HL subband will have correspondence with (x=3,y=1) and (x=3,y=2).
private static final int[][] filter_5_3_EvenOdd
First array index represents the x position in the next resolution level and the second one y position.
private static final int[][] filter_5_3_OddEven
First array index represents the x position in the next resolution level and the second one y position.
private static final int[][] filter_5_3_OddOdd
First array index represents the x position in the next resolution level and the second one y position.
private static final int[][] filter_9_7_AnyAny
First array index represents the x position in the next resolution level and the second one y position.
private static final int[][] filter_9_7_AnyAny_x
First array index represents the x position in the next resolution level and the second one y position.
private static final int[][] filter_9_7_AnyAny_y
First array index represents the x position in the next resolution level and the second one y position.
private int ySize
private int maxRLevel
public CalculateRequiredComponentsDWT(boolean[] inputComponents, int WTLevels, int WTType)
inputComponents
- definition in inputComponents
.WTLevels
- definition in WTLevels
.WTType
- definition in WTType
.public void run()
public boolean[] getRequiredComponents()
true
if the component is relevant, and false
if it is not.private void rasterWavelet5_3()
private void rasterWavelet9_7()
private void shift(int rLevel, int y, int x, int subband)
rLevel
- ressolution level where belong the x and y postion.y
- position of the subband and rlevel.x
- position of the subband and rlevel.subband
- where belong the x and y postion.private void anyAny(int rLevel, int y, int x)
rLevel
- is the ressolution levely
- positionx
- positionprivate void anyAny_y(int rLevel, int y, int x)
rLevel
- is the ressolution levely
- positionx
- positionprivate void anyAny_x(int rLevel, int y, int x)
rLevel
- is the ressolution levely
- positionx
- positionprivate void evenEven(int rLevel, int y, int x)
rLevel
- is the ressolution levelx
- positionprivate void evenOdd(int rLevel, int y, int x)
rLevel
- is the ressolution levely
- positionx
- positionprivate void oddEven(int rLevel, int y, int x)
rLevel
- is the ressolution levely
- positionx
- positionprivate void oddOdd(int rLevel, int y, int x)
rLevel
- is the ressolution levely
- positionx
- positionprivate void mark(int rLevel, int y, int x)
rLevel
- ressolution level where belong the x and y postion.y
- position of the subband and rlevel.x
- position of the subband and rlevel.private boolean isMarked(int rLevel, int y, int x)
rLevel
- ressolution level where belong the x and y postion.y
- position of the subband and rlevel.x
- position of the subband and rlevel.private boolean isSelected(int c)
c
- componentprivate int[][][] subbandSizesCalculation()
CADI - Copyright (C) 2007
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Group on Interactive Coding of Images (GICI) (contact)