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