001/* 002 * $RCSfile: ForwWT.java,v $ 003 * $Revision: 1.1 $ 004 * $Date: 2005/02/11 05:02:30 $ 005 * $State: Exp $ 006 * 007 * Class: ForwWT 008 * 009 * Description: The interface for implementations of a forward 010 * wavelet transform. 011 * 012 * 013 * 014 * COPYRIGHT: 015 * 016 * This software module was originally developed by Raphaël Grosbois and 017 * Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel 018 * Askelöf (Ericsson Radio Systems AB); and Bertrand Berthelot, David 019 * Bouchard, Félix Henry, Gerard Mozelle and Patrice Onno (Canon Research 020 * Centre France S.A) in the course of development of the JPEG2000 021 * standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This 022 * software module is an implementation of a part of the JPEG 2000 023 * Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio 024 * Systems AB and Canon Research Centre France S.A (collectively JJ2000 025 * Partners) agree not to assert against ISO/IEC and users of the JPEG 026 * 2000 Standard (Users) any of their rights under the copyright, not 027 * including other intellectual property rights, for this software module 028 * with respect to the usage by ISO/IEC and Users of this software module 029 * or modifications thereof for use in hardware or software products 030 * claiming conformance to the JPEG 2000 Standard. Those intending to use 031 * this software module in hardware or software products are advised that 032 * their use may infringe existing patents. The original developers of 033 * this software module, JJ2000 Partners and ISO/IEC assume no liability 034 * for use of this software module or modifications thereof. No license 035 * or right to this software module is granted for non JPEG 2000 Standard 036 * conforming products. JJ2000 Partners have full right to use this 037 * software module for his/her own purpose, assign or donate this 038 * software module to any third party and to inhibit third parties from 039 * using this software module for non JPEG 2000 Standard conforming 040 * products. This copyright notice must be included in all copies or 041 * derivative works of this software module. 042 * 043 * Copyright (c) 1999/2000 JJ2000 Partners. 044 * 045 * 046 * 047 */ 048 049 050package jj2000.j2k.wavelet.analysis; 051 052import jj2000.j2k.wavelet.*; 053 054/** 055 * This interface extends the WaveletTransform with the 056 * specifics of forward wavelet transforms. Classes that implement forward 057 * wavelet transfoms should implement this interface. 058 * 059 * <P>This class does not define the methods to transfer data, just the 060 * specifics to forward wavelet transform. Different data transfer methods are 061 * evisageable for different transforms. 062 * 063 * */ 064public interface ForwWT extends WaveletTransform, ForwWTDataProps { 065 066 /** 067 * Returns the horizontal analysis wavelet filters used in each 068 * level, for the specified tile-component. The first element in 069 * the array is the filter used to obtain the lowest resolution 070 * (resolution level 0) subbands (i.e. lowest frequency LL 071 * subband), the second element is the one used to generate the 072 * resolution level 1 subbands, and so on. If there are less 073 * elements in the array than the number of resolution levels, 074 * then the last one is assumed to repeat itself. 075 * 076 * <P>The returned filters are applicable only to the specified 077 * component and in the current tile. 078 * 079 * <P>The resolution level of a subband is the resolution level to 080 * which a subband contributes, which is different from its 081 * decomposition level. 082 * 083 * @param t The index of the tile for which to return the filters. 084 * 085 * @param c The index of the component for which to return the 086 * filters. 087 * 088 * @return The horizontal analysis wavelet filters used in each 089 * level. 090 * 091 * 092 * */ 093 public AnWTFilter[] getHorAnWaveletFilters(int t, int c); 094 095 /** 096 * Returns the vertical analysis wavelet filters used in each 097 * level, for the specified tile-component. The first element in 098 * the array is the filter used to obtain the lowest resolution 099 * (resolution level 0) subbands (i.e. lowest frequency LL 100 * subband), the second element is the one used to generate the 101 * resolution level 1 subbands, and so on. If there are less 102 * elements in the array than the number of resolution levels, 103 * then the last one is assumed to repeat itself. 104 * 105 * <P>The returned filters are applicable only to the specified 106 * component and in the current tile. 107 * 108 * <P>The resolution level of a subband is the resolution level to 109 * which a subband contributes, which is different from its 110 * decomposition level. 111 * 112 * @param t The index of the tile for which to return the filters. 113 * 114 * @param c The index of the component for which to return the 115 * filters. 116 * 117 * @return The vertical analysis wavelet filters used in each 118 * level. 119 * 120 * 121 * */ 122 public AnWTFilter[] getVertAnWaveletFilters(int t,int c); 123 124 /** 125 * Returns the number of decomposition levels that are applied to 126 * obtain the LL band, in the specified tile-component. A value of 127 * 0 means that no wavelet transform is applied. 128 * 129 * @param t The tile index 130 * 131 * @param c The index of the component. 132 * 133 * @return The number of decompositions applied to obtain the LL 134 * band (0 for no wavelet transform). 135 * 136 * 137 * */ 138 public int getDecompLevels(int t,int c); 139 140 /** 141 * Returns the wavelet tree decomposition. Only WT_DECOMP_DYADIC 142 * is supported by JPEG 2000 part I. 143 * 144 * @param t The tile index 145 * 146 * @param c The index of the component. 147 * 148 * @return The wavelet decomposition. 149 * 150 * 151 * */ 152 public int getDecomp(int t,int c); 153}