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 * */ 042package jj2000.j2k.codestream; 043 044/** 045 * Class that holds precinct coordinates and references to contained 046 * code-blocks in each subband. 047 * */ 048public 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,int rguly, 100 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+",rgulx="+rgulx+ 127 ",rguly="+rguly+",rgw="+rgw+",rgh="+rgh; 128 } 129}