001/* 002 * $RCSfile: CodedCBlk.java,v $ 003 * $Revision: 1.1 $ 004 * $Date: 2005/02/11 05:02:04 $ 005 * $State: Exp $ 006 * 007 * Class: CodedCBlk 008 * 009 * Description: The generic coded (compressed) code-block 010 * 011 * 012 * 013 * COPYRIGHT: 014 * 015 * This software module was originally developed by Raphaël Grosbois and 016 * Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel 017 * Askelöf (Ericsson Radio Systems AB); and Bertrand Berthelot, David 018 * Bouchard, Félix Henry, Gerard Mozelle and Patrice Onno (Canon Research 019 * Centre France S.A) in the course of development of the JPEG2000 020 * standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This 021 * software module is an implementation of a part of the JPEG 2000 022 * Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio 023 * Systems AB and Canon Research Centre France S.A (collectively JJ2000 024 * Partners) agree not to assert against ISO/IEC and users of the JPEG 025 * 2000 Standard (Users) any of their rights under the copyright, not 026 * including other intellectual property rights, for this software module 027 * with respect to the usage by ISO/IEC and Users of this software module 028 * or modifications thereof for use in hardware or software products 029 * claiming conformance to the JPEG 2000 Standard. Those intending to use 030 * this software module in hardware or software products are advised that 031 * their use may infringe existing patents. The original developers of 032 * this software module, JJ2000 Partners and ISO/IEC assume no liability 033 * for use of this software module or modifications thereof. No license 034 * or right to this software module is granted for non JPEG 2000 Standard 035 * conforming products. JJ2000 Partners have full right to use this 036 * software module for his/her own purpose, assign or donate this 037 * software module to any third party and to inhibit third parties from 038 * using this software module for non JPEG 2000 Standard conforming 039 * products. This copyright notice must be included in all copies or 040 * derivative works of this software module. 041 * 042 * Copyright (c) 1999/2000 JJ2000 Partners. 043 * */ 044package jj2000.j2k.entropy; 045 046/** 047 * This is the generic class to store coded (compressed) code-block. It stores 048 * the compressed data as well as the necessary side-information. 049 * 050 * <P>This class is normally not used. Instead the EncRDCBlk, EncLyrdCBlk and 051 * the DecLyrdCBlk subclasses are used. 052 * 053 * @see jj2000.j2k.entropy.encoder.CBlkRateDistStats 054 * 055 * @see jj2000.j2k.entropy.decoder.DecLyrdCBlk 056 * */ 057public class CodedCBlk { 058 059 /** The horizontal index of the code-block, within the subband. */ 060 public int n; 061 062 /** The vertical index of the code-block, within the subband. */ 063 public int m; 064 065 /** The number of skipped most significant bit-planes. */ 066 public int skipMSBP; 067 068 /** The compressed data */ 069 public byte data[]; 070 071 /** 072 * Creates a new CodedCBlk object wit the default values and without 073 * allocating any space for its members. 074 * */ 075 public CodedCBlk() { 076 } 077 078 /** 079 * Creates a new CodedCBlk object with the specified values. 080 * 081 * @param m The horizontal index of the code-block, within the subband. 082 * 083 * @param n The vertical index of the code-block, within the subband. 084 * 085 * @param skipMSBP The number of skipped most significant bit-planes for 086 * this code-block. 087 * 088 * @param data The compressed data. This array is referenced by this 089 * object so it should not be modified after. 090 * */ 091 public CodedCBlk(int m, int n, int skipMSBP, byte data[]) { 092 this.m = m; 093 this.n = n; 094 this.skipMSBP = skipMSBP; 095 this.data = data; 096 } 097 098 /** 099 * Returns the contents of the object in a string. The string contains the 100 * following data: 'm', 'n', 'skipMSBP' and 'data.length. This is used for 101 * debugging. 102 * 103 * @return A string with the contents of the object 104 * */ 105 public String toString() { 106 return "m= " + m+", n= "+n+ ", skipMSBP= "+skipMSBP+ 107 ", data.length= " + ((data != null) ? ""+data.length : "(null)"); 108 } 109} 110