001: /*
002: * $RCSfile: PrecInfo.java,v $
003: * $Revision: 1.1 $
004: * $Date: 2005/02/11 05:02:00 $
005: * $State: Exp $
006: *
007: * Class: PrecInfo
008: *
009: * Description: Keeps information about a precinct
010: *
011: * COPYRIGHT:
012: *
013: * This software module was originally developed by Raphaël Grosbois and
014: * Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel
015: * Askelöf (Ericsson Radio Systems AB); and Bertrand Berthelot, David
016: * Bouchard, Félix Henry, Gerard Mozelle and Patrice Onno (Canon Research
017: * Centre France S.A) in the course of development of the JPEG2000
018: * standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This
019: * software module is an implementation of a part of the JPEG 2000
020: * Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio
021: * Systems AB and Canon Research Centre France S.A (collectively JJ2000
022: * Partners) agree not to assert against ISO/IEC and users of the JPEG
023: * 2000 Standard (Users) any of their rights under the copyright, not
024: * including other intellectual property rights, for this software module
025: * with respect to the usage by ISO/IEC and Users of this software module
026: * or modifications thereof for use in hardware or software products
027: * claiming conformance to the JPEG 2000 Standard. Those intending to use
028: * this software module in hardware or software products are advised that
029: * their use may infringe existing patents. The original developers of
030: * this software module, JJ2000 Partners and ISO/IEC assume no liability
031: * for use of this software module or modifications thereof. No license
032: * or right to this software module is granted for non JPEG 2000 Standard
033: * conforming products. JJ2000 Partners have full right to use this
034: * software module for his/her own purpose, assign or donate this
035: * software module to any third party and to inhibit third parties from
036: * using this software module for non JPEG 2000 Standard conforming
037: * products. This copyright notice must be included in all copies or
038: * derivative works of this software module.
039: *
040: * Copyright (c) 1999/2000 JJ2000 Partners.
041: * */
042: package jj2000.j2k.codestream;
043:
044: /**
045: * Class that holds precinct coordinates and references to contained
046: * code-blocks in each subband.
047: * */
048: public class PrecInfo {
049:
050: /** Precinct horizontal upper-left coordinate in the reference grid */
051: public int rgulx;
052:
053: /** Precinct vertical upper-left coordinate in the reference grid */
054: public int rguly;
055:
056: /** Precinct width reported in the reference grid */
057: public int rgw;
058:
059: /** Precinct height reported in the reference grid */
060: public int rgh;
061:
062: /** Precinct horizontal upper-left coordinate in the corresponding
063: * resolution level*/
064: public int ulx;
065:
066: /** Precinct vertical upper-left coordinate in the corresponding
067: * resolution level*/
068: public int uly;
069:
070: /** Precinct width in the corresponding resolution level */
071: public int w;
072:
073: /** Precinct height in the corresponding resolution level */
074: public int h;
075:
076: /** Resolution level index */
077: public int r;
078:
079: /** Code-blocks belonging to this precinct in each subbands of the
080: * resolution level */
081: public CBlkCoordInfo[][][] cblk;
082:
083: /** Number of code-blocks in each subband belonging to this precinct */
084: public int[] nblk;
085:
086: /**
087: * Class constructor.
088: *
089: * @param r Resolution level index.
090: * @param ulx Precinct horizontal offset.
091: * @param uly Precinct vertical offset.
092: * @param w Precinct width.
093: * @param h Precinct height.
094: * @param rgulx Precinct horizontal offset in the image reference grid.
095: * @param rguly Precinct horizontal offset in the image reference grid.
096: * @param rgw Precinct width in the reference grid.
097: * @param rgh Precinct height in the reference grid.
098: * */
099: public PrecInfo(int r, int ulx, int uly, int w, int h, int rgulx,
100: int rguly, int rgw, int rgh) {
101: this .r = r;
102: this .ulx = ulx;
103: this .uly = uly;
104: this .w = w;
105: this .h = h;
106: this .rgulx = rgulx;
107: this .rguly = rguly;
108: this .rgw = rgw;
109: this .rgh = rgh;
110:
111: if (r == 0) {
112: cblk = new CBlkCoordInfo[1][][];
113: nblk = new int[1];
114: } else {
115: cblk = new CBlkCoordInfo[4][][];
116: nblk = new int[4];
117: }
118: }
119:
120: /**
121: * Returns PrecInfo object information in a String
122: *
123: * @return PrecInfo information
124: * */
125: public String toString() {
126: return "ulx=" + ulx + ",uly=" + uly + ",w=" + w + ",h=" + h
127: + ",rgulx=" + rgulx + ",rguly=" + rguly + ",rgw=" + rgw
128: + ",rgh=" + rgh;
129: }
130: }
|