001: /*
002: * $RCSfile: DecLyrdCBlk.java,v $
003: * $Revision: 1.1 $
004: * $Date: 2005/02/11 05:02:06 $
005: * $State: Exp $
006: *
007: * Class: DecLyrdCBlk
008: *
009: * Description: The coded (compressed) code-block
010: * with layered organization for the decoder.
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: package jj2000.j2k.entropy.decoder;
050:
051: import jj2000.j2k.entropy.*;
052:
053: /**
054: * This class stores coded (compressed) code-blocks that are organized
055: * in layers. This object can contain either all the data of the
056: * code-block (i.e. all layers), or a subset of all the layers that
057: * make up the whole compressed-code-block. It is applicable to the
058: * decoder engine only. Some data of the coded-block is stored
059: * in the super class, see CodedCBlk.
060: *
061: * <P>A code-block may have its progressive attribute set (i.e. the
062: * 'prog' flag is true). If a code-block is progressive then it means
063: * that more data for it may be obtained for an improved quality. If
064: * the progressive flag is false then no more data is available from
065: * the source for this code-block.
066: *
067: * @see CodedCBlk
068: * */
069: public class DecLyrdCBlk extends CodedCBlk {
070:
071: /** The horizontal coordinate of the upper-left corner of the code-block */
072: public int ulx;
073:
074: /** The vertical coordinate of the upper left corner of the code-block */
075: public int uly;
076:
077: /** The width of the code-block */
078: public int w;
079:
080: /** The height of the code-block */
081: public int h;
082:
083: /** The coded (compressed) data length. The data is stored in the
084: * 'data' array (see super class).
085: */
086: public int dl;
087:
088: /** The progressive flag, false by default (see above). */
089: public boolean prog;
090:
091: /** The number of layers in the coded data. */
092: public int nl;
093:
094: /** The index of the first truncation point returned */
095: public int ftpIdx;
096:
097: /** The total number of truncation points from layer 1 to the last one in
098: * this object. The number of truncation points in 'data' is
099: * 'nTrunc-ftpIdx'. */
100: public int nTrunc;
101:
102: /** The length of each terminated segment. If null then there is only one
103: * terminated segment, and its length is 'dl'. The number of terminated
104: * segments is to be deduced from 'ftpIdx', 'nTrunc' and the coding
105: * options. This array contains all terminated segments from the 'ftpIdx'
106: * truncation point, upto, and including, the 'nTrunc-1' truncation
107: * point. Any data after 'nTrunc-1' is not included in any length. */
108: public int tsLengths[];
109:
110: /** Object information in a string
111: *
112: * @return Information in a string
113: *
114: *
115: */
116: public String toString() {
117: String str = "Coded code-block (" + m + "," + n + "): "
118: + skipMSBP + " MSB skipped, " + dl + " bytes, "
119: + nTrunc + " truncation points, " + nl + " layers, "
120: + "progressive= " + prog + ", ulx= " + ulx + ", uly= "
121: + uly + ", w= " + w + ", h= " + h + ", ftpIdx="
122: + ftpIdx;
123: if (tsLengths != null) {
124: str += " {";
125: for (int i = 0; i < tsLengths.length; i++)
126: str += " " + tsLengths[i];
127: str += " }";
128: }
129: return str;
130: }
131: }
|