corrade-vassal – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 1 /*
2 * CVS identifier:
3 *
4 * $Id: CodedCBlkDataSrcDec.java,v 1.17 2001/09/14 09:26:23 grosbois Exp $
5 *
6 * Class: CodedCBlkDataSrcDec
7 *
8 * Description: Interface that defines a source of entropy coded
9 * data that is transferred in a code-block by
10 * code-block basis (decoder side).
11 *
12 *
13 *
14 * COPYRIGHT:
15 *
16 * This software module was originally developed by Raphaël Grosbois and
17 * Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel
18 * Askelöf (Ericsson Radio Systems AB); and Bertrand Berthelot, David
19 * Bouchard, Félix Henry, Gerard Mozelle and Patrice Onno (Canon Research
20 * Centre France S.A) in the course of development of the JPEG2000
21 * standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This
22 * software module is an implementation of a part of the JPEG 2000
23 * Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio
24 * Systems AB and Canon Research Centre France S.A (collectively JJ2000
25 * Partners) agree not to assert against ISO/IEC and users of the JPEG
26 * 2000 Standard (Users) any of their rights under the copyright, not
27 * including other intellectual property rights, for this software module
28 * with respect to the usage by ISO/IEC and Users of this software module
29 * or modifications thereof for use in hardware or software products
30 * claiming conformance to the JPEG 2000 Standard. Those intending to use
31 * this software module in hardware or software products are advised that
32 * their use may infringe existing patents. The original developers of
33 * this software module, JJ2000 Partners and ISO/IEC assume no liability
34 * for use of this software module or modifications thereof. No license
35 * or right to this software module is granted for non JPEG 2000 Standard
36 * conforming products. JJ2000 Partners have full right to use this
37 * software module for his/her own purpose, assign or donate this
38 * software module to any third party and to inhibit third parties from
39 * using this software module for non JPEG 2000 Standard conforming
40 * products. This copyright notice must be included in all copies or
41 * derivative works of this software module.
42 *
43 * Copyright (c) 1999/2000 JJ2000 Partners.
44 * */
45 using System;
46 using CSJ2K.j2k.wavelet.synthesis;
47 using CSJ2K.j2k.image;
48 namespace CSJ2K.j2k.entropy.decoder
49 {
50  
51 /// <summary> This interface defines a source of entropy coded data and methods to
52 /// transfer it in a code-block by code-block basis. In each call to
53 /// 'geCodeBlock()' a specified coded code-block is returned.
54 ///
55 /// <p>This interface is the source of data for the entropy decoder. See the
56 /// 'EntropyDecoder' class.</p>
57 ///
58 /// <p>For each coded-code-block the entropy-coded data is returned along with
59 /// its truncation point information in a 'DecLyrdCBlk' object.</p>
60 ///
61 /// </summary>
62 /// <seealso cref="EntropyDecoder">
63 ///
64 /// </seealso>
65 /// <seealso cref="DecLyrdCBlk">
66 ///
67 /// </seealso>
68 /// <seealso cref="jj2000.j2k.codestream.reader.BitstreamReaderAgent">
69 ///
70 /// </seealso>
71 public interface CodedCBlkDataSrcDec:InvWTData
72 {
73  
74 /// <summary> Returns the specified coded code-block, for the specified component, in
75 /// the current tile. The first layer to return is indicated by 'fl'. The
76 /// number of layers that is returned depends on 'nl' and the amount of
77 /// data available.
78 ///
79 /// <p>The argument 'fl' is to be used by subsequent calls to this method
80 /// for the same code-block. In this way supplamental data can be retrieved
81 /// at a later time. The fact that data from more than one layer can be
82 /// returned means that several packets from the same code-block, of the
83 /// same component, and the same tile, have been concatenated.</p>
84 ///
85 /// <p>The returned compressed code-block can have its progressive
86 /// attribute set. If this attribute is set it means that more data can be
87 /// obtained by subsequent calls to this method (subject to transmission
88 /// delays, etc). If the progressive attribute is not set it means that the
89 /// returned data is all the data that can be obtained for the specified
90 /// subblock.</p>
91 ///
92 /// <p>The compressed code-block is uniquely specified by the current tile,
93 /// the component (identified by 'c'), the subband (indentified by 'sb')
94 /// and the code-bock vertical and horizontal indexes 'm' and 'n'.</p>
95 ///
96 /// <p>The 'ulx' and 'uly' members of the returned 'DecLyrdCBlk' object
97 /// contain the coordinates of the top-left corner of the block, with
98 /// respect to the tile, not the subband.</p>
99 ///
100 /// </summary>
101 /// <param name="c">The index of the component, from 0 to N-1.
102 ///
103 /// </param>
104 /// <param name="m">The vertical index of the code-block to return, in the
105 /// specified subband.
106 ///
107 /// </param>
108 /// <param name="n">The horizontal index of the code-block to return, in the
109 /// specified subband.
110 ///
111 /// </param>
112 /// <param name="sb">The subband in whic the requested code-block is.
113 ///
114 /// </param>
115 /// <param name="fl">The first layer to return.
116 ///
117 /// </param>
118 /// <param name="nl">The number of layers to return, if negative all available
119 /// layers are returned, starting at 'fl'.
120 ///
121 /// </param>
122 /// <param name="ccb">If not null this object is used to return the compressed
123 /// code-block. If null a new object is created and returned. If the data
124 /// array in ccb is not null then it can be reused to return the compressed
125 /// data.
126 ///
127 /// </param>
128 /// <returns> The compressed code-block, with a certain number of layers
129 /// determined by the available data and 'nl'.
130 ///
131 /// </returns>
132 DecLyrdCBlk getCodeBlock(int c, int m, int n, SubbandSyn sb, int fl, int nl, DecLyrdCBlk ccb);
133 }
134 }