# CSJ2K.j2k.wavelet.analysis.CBlkWTData

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="CSJ2K_j2k_wavelet_analysis_CBlkWTData" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData" class="text-break">CBlkWTData Class
</h1>
  <div class="markdown level0 summary"><p>This is a generic abstract class to store a code-block of wavelet data,
quantized or not. This class does not have the notion of
components. Therefore, it should be used for data from a single
component. Subclasses should implement the different types of storage
(<tt>int</tt>, <tt>float</tt>, etc.).</p>
<pre><code>       &lt;p&gt;The data is always stored in one array, of the type matching the data
       type (i.e. for 'int' it's an 'int[]'). The data should be stored in the
       array in standard scan-line order. That is the samples go from the top-left
       corner of the code-block to the lower-right corner by line and then
       column.&lt;/p&gt;&lt;p&gt;The member variable 'offset' gives the index in the array of the first
       data element (i.e. the top-left coefficient). The member variable 'scanw'
       gives the width of the scan that is used to store the data, that can be
       different from the width of the block. Element '(x,y)' of the code-block
       (i.e. '(0,0)' is the top-left coefficient), will appear at position
       'offset+y*scanw+x' in the array of data.&lt;/p&gt;&lt;p&gt;The classes &lt;tt&gt;CBlkWTDataInt&lt;/tt&gt; and &lt;tt&gt;CBlkWTDataFloat&lt;/tt&gt; provide
       implementations for &lt;tt&gt;int&lt;/tt&gt; and &lt;tt&gt;float&lt;/tt&gt; types respectively.&lt;/p&gt;&lt;p&gt;The types of data are the same as those defined by the 'DataBlk'
       class.&lt;/p&gt;
</code></pre>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">CBlkWTData</span></div>
      <div class="level2"><a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTDataFloat.html">CBlkWTDataFloat</a></div>
      <div class="level2"><a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTDataInt.html">CBlkWTDataInt</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="CSJ2K.j2k.wavelet.analysis.html">CSJ2K.j2k.wavelet.analysis</a></h6>
  <h6><strong>Assembly</strong>: C1.WPF.ReportViewer.4.6.2.dll</h6>
  <h5 id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class CBlkWTData</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class CBlkWTData</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData__ctor" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.#ctor">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.-ctor.html#CSJ2K_j2k_wavelet_analysis_CBlkWTData__ctor">CBlkWTData()</a>
        </td>
        <td class="markdown level1 summary"></td>
      </tr>
    </tbody>
  </table>
  <h3 id="fields">Fields
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_convertFactor" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.convertFactor">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.convertFactor.html">convertFactor</a>
        </td>
        <td class="markdown level1 summary"><p>The value by which the absolute value of the data has to be divided in
order to get the real absolute value. This value is useful to obtain
the complement of 2 representation of a coefficient that is currently
using the sign-magnitude representation.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_h" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.h">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.h.html">h</a>
        </td>
        <td class="markdown level1 summary"><p>The height of the code-block</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_m" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.m">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.m.html">m</a>
        </td>
        <td class="markdown level1 summary"><p>The vertical index of the code-block, within the subband</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_magbits" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.magbits">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.magbits.html">magbits</a>
        </td>
        <td class="markdown level1 summary"><p>The number of magnitude bits in the integer representation. This is
only used for quantized wavelet data.</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_n" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.n">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.n.html">n</a>
        </td>
        <td class="markdown level1 summary"><p>The horizontal index of the code-block, within the subband</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_nROIbp" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.nROIbp">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.nROIbp.html">nROIbp</a>
        </td>
        <td class="markdown level1 summary"><p>Number of ROI magnitude bit-planes</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_nROIcoeff" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.nROIcoeff">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.nROIcoeff.html">nROIcoeff</a>
        </td>
        <td class="markdown level1 summary"><p>Number of ROI coefficients in the code-block</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_offset" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.offset">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.offset.html">offset</a>
        </td>
        <td class="markdown level1 summary"><p>The offset in the array of the top-left coefficient</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_sb" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.sb">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.sb.html">sb</a>
        </td>
        <td class="markdown level1 summary"><p>The subband in which this code-block is found</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_scanw" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.scanw">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.scanw.html">scanw</a>
        </td>
        <td class="markdown level1 summary"><p>The width of the scanlines used to store the data in the array</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_stepSize" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.stepSize">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.stepSize.html">stepSize</a>
        </td>
        <td class="markdown level1 summary"><p>The quantization step size of the code-block. The value is updated by
the quantizer module</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_ulx" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.ulx">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.ulx.html">ulx</a>
        </td>
        <td class="markdown level1 summary"><p>The horizontal coordinate of the upper-left corner of the code-block</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_uly" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.uly">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.uly.html">uly</a>
        </td>
        <td class="markdown level1 summary"><p>The vertical coordinate of the upper left corner of the code-block</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_w" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.w">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.w.html">w</a>
        </td>
        <td class="markdown level1 summary"><p>The width of the code-block</p>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_wmseScaling" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.wmseScaling">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.wmseScaling.html">wmseScaling</a>
        </td>
        <td class="markdown level1 summary"><p>The WMSE scaling factor (multiplicative) to apply to the distortion
measures of the data of this code-block. By default it is 1.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_Data" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.Data">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.Data.html#CSJ2K_j2k_wavelet_analysis_CBlkWTData_Data">Data</a>
        </td>
        <td class="markdown level1 summary"><p>Returns the array containing the data, or null if there is no data. The
returned array is of the type returned by <tt>getDataType()</tt> (e.g.,
for <tt>TYPE_INT</tt>, it is a <tt>int[]</tt>).</p>
<pre><code>       &lt;p&gt;Each implementing class should provide a type specific equivalent
       method (e.g., &lt;tt&gt;getDataInt()&lt;/tt&gt; in &lt;tt&gt;DataBlkInt&lt;/tt&gt;) which
       returns an array of the correct type explicitely and not through an
       &lt;tt&gt;Object&lt;/tt&gt;.&lt;/p&gt;
</code></pre>
</td>
      </tr>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_DataType" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.DataType">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.DataType.html#CSJ2K_j2k_wavelet_analysis_CBlkWTData_DataType">DataType</a>
        </td>
        <td class="markdown level1 summary"><p>Returns the data type of the <tt>CBlkWTData</tt> object, as defined in
the DataBlk class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="CSJ2K_j2k_wavelet_analysis_CBlkWTData_ToString" data-uid="CSJ2K.j2k.wavelet.analysis.CBlkWTData.ToString">
          <a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTData.ToString.html#CSJ2K_j2k_wavelet_analysis_CBlkWTData_ToString">ToString()</a>
        </td>
        <td class="markdown level1 summary"><p>Returns a string of informations about the DataBlk</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="seealso">See Also</h3>
  <div class="seealso">
      <div><a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTDataSrc.html">CBlkWTDataSrc</a></div>
      <div><a class="xref" href="CSJ2K.j2k.image.DataBlk.html">DataBlk</a></div>
      <div><a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTDataInt.html">CBlkWTDataInt</a></div>
      <div><a class="xref" href="CSJ2K.j2k.wavelet.analysis.CBlkWTDataFloat.html">CBlkWTDataFloat</a></div>
  </div>

</div>
