<trclass="memdesc:ab63770624f4ec03e6e022c6a0b80e6ff"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Opaque type for sparse arrays that contain int32 values. <ahref="sparse__array_8h.html#ab63770624f4ec03e6e022c6a0b80e6ff">More...</a><br/></td></tr>
<trclass="memdesc:a41953de4fab74677337c2597a67c9843"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new sparse array. <ahref="sparse__array_8h.html#a41953de4fab74677337c2597a67c9843">More...</a><br/></td></tr>
<trclass="memdesc:ad70f920d05b4915853b474d010a9a336"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Frees a sparse array. <ahref="sparse__array_8h.html#ad70f920d05b4915853b474d010a9a336">More...</a><br/></td></tr>
<trclass="memdesc:a2b5c5075af6a30d35569e4378931ed4c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns whether region bounds are valid (non empty and within array bounds) <ahref="sparse__array_8h.html#a2b5c5075af6a30d35569e4378931ed4c">More...</a><br/></td></tr>
<trclass="memdesc:a092675bfa99d062ce36fa45aff4766da"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Read the content of a rectangular region of the sparse array into a user buffer. <ahref="sparse__array_8h.html#a092675bfa99d062ce36fa45aff4766da">More...</a><br/></td></tr>
<trclass="memdesc:a174b3ef4cb89af58cdd7c2b9f0a20559"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Write the content of a rectangular region into the sparse array from a user buffer. <ahref="sparse__array_8h.html#a174b3ef4cb89af58cdd7c2b9f0a20559">More...</a><br/></td></tr>
<p>The functions in this file manage sparse arrays. Sparse arrays are arrays with potential big dimensions, but with very few samples actually set. Such sparse arrays require allocating a low amount of memory, by just allocating memory for blocks of the array that are set. The minimum memory allocation unit is a a block. There is a trade-off to pick up an appropriate dimension for blocks. If it is too big, and pixels set are far from each other, too much memory will be used. If blocks are too small, the book-keeping costs of blocks will raise. </p>
<pclass="reference">Referenced by <aclass="el"href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, and <aclass="el"href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
<pclass="reference">References <aclass="el"href="structopj__sparse__array__int32.html#a3e4065eb08fe228175101035b6f218ed">opj_sparse_array_int32::block_count_hor</a>, <aclass="el"href="structopj__sparse__array__int32.html#aee2f11c522fd981408e3ae164c142baf">opj_sparse_array_int32::block_count_ver</a>, <aclass="el"href="structopj__sparse__array__int32.html#aa8740069e9f55f024b69b0e96b6f4f56">opj_sparse_array_int32::data_blocks</a>, and <aclass="el"href="opj__malloc_8c.html#a9d7d909f8dc1a2c23313c48645341e81">opj_free()</a>.</p>
<pclass="reference">Referenced by <aclass="el"href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <aclass="el"href="dwt_8c.html#a75cd080404aadce6662457dec7cc9d21">opj_dwt_decode_partial_97()</a>, <aclass="el"href="dwt_8c.html#a74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, and <aclass="el"href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
<p>Read the content of a rectangular region of the sparse array into a user buffer. </p>
<p>Regions not written with <aclass="el"href="sparse__array_8h.html#a174b3ef4cb89af58cdd7c2b9f0a20559"title="Write the content of a rectangular region into the sparse array from a user buffer.">opj_sparse_array_int32_write()</a> are read as 0.</p>
<tr><tdclass="paramname">x0</td><td>left x coordinate of the region to read in the sparse array. </td></tr>
<tr><tdclass="paramname">y0</td><td>top x coordinate of the region to read in the sparse array. </td></tr>
<tr><tdclass="paramname">x1</td><td>right x coordinate (not included) of the region to read in the sparse array. Must be greater than x0. </td></tr>
<tr><tdclass="paramname">y1</td><td>bottom y coordinate (not included) of the region to read in the sparse array. Must be greater than y0. </td></tr>
<tr><tdclass="paramname">dest</td><td>user buffer to fill. Must be at least sizeof(int32) * ( (y1 - y0 - 1) * dest_line_stride + (x1 - x0 - 1) * dest_col_stride + 1) bytes large. </td></tr>
<tr><tdclass="paramname">dest_col_stride</td><td>spacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer. </td></tr>
<tr><tdclass="paramname">dest_line_stride</td><td>spacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer. </td></tr>
<tr><tdclass="paramname">forgiving</td><td>if set to TRUE and the region is invalid, OPJ_TRUE will still be returned. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>OPJ_TRUE in case of success. </dd></dl>
<pclass="reference">References <aclass="el"href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>, and <aclass="el"href="openjpeg_8h.html#a04830036d767cba56cbf5ae5bdc481d3">OPJ_TRUE</a>.</p>
<pclass="reference">Referenced by <aclass="el"href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <aclass="el"href="dwt_8c.html#a75cd080404aadce6662457dec7cc9d21">opj_dwt_decode_partial_97()</a>, <aclass="el"href="dwt_8c.html#a74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, <aclass="el"href="dwt_8c.html#aa9f1030974db43df751380437e5167af">opj_dwt_interleave_partial_h()</a>, <aclass="el"href="dwt_8c.html#ad7a304bcf13f2427c0a6835e6c527d3e">opj_dwt_interleave_partial_v()</a>, <aclass="el"href="dwt_8c.html#a9caacdf7450ad73f0023e864f3a74cf1">opj_v8dwt_interleave_partial_h()</a>, and <aclass="el"href="dwt_8c.html#a4d4acbc44226a14f02cff29831301f8e">opj_v8dwt_interleave_partial_v()</a>.</p>
<tr><tdclass="paramname">x0</td><td>left x coordinate of the region to write into the sparse array. </td></tr>
<tr><tdclass="paramname">y0</td><td>top x coordinate of the region to write into the sparse array. </td></tr>
<tr><tdclass="paramname">x1</td><td>right x coordinate (not included) of the region to write into the sparse array. Must be greater than x0. </td></tr>
<tr><tdclass="paramname">y1</td><td>bottom y coordinate (not included) of the region to write into the sparse array. Must be greater than y0. </td></tr>
<tr><tdclass="paramname">src</td><td>user buffer to fill. Must be at least sizeof(int32) * ( (y1 - y0 - 1) * src_line_stride + (x1 - x0 - 1) * src_col_stride + 1) bytes large. </td></tr>
<tr><tdclass="paramname">src_col_stride</td><td>spacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer. </td></tr>
<tr><tdclass="paramname">src_line_stride</td><td>spacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer. </td></tr>
<tr><tdclass="paramname">forgiving</td><td>if set to TRUE and the region is invalid, OPJ_TRUE will still be returned. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>OPJ_TRUE in case of success. </dd></dl>
<pclass="reference">References <aclass="el"href="openjpeg_8h.html#ac672bfd7db39c609e828acb07a321964">OPJ_FALSE</a>, and <aclass="el"href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>.</p>
<pclass="reference">Referenced by <aclass="el"href="test__sparse__array_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>, <aclass="el"href="dwt_8c.html#a75cd080404aadce6662457dec7cc9d21">opj_dwt_decode_partial_97()</a>, <aclass="el"href="dwt_8c.html#a74b827f7914de05bf5bfc52894894803">opj_dwt_decode_partial_tile()</a>, and <aclass="el"href="dwt_8c.html#a57c042791753ac46c7bb073abcc245ba">opj_dwt_init_sparse_array()</a>.</p>
<tr><tdclass="paramname">x0</td><td>left x coordinate of the region. </td></tr>
<tr><tdclass="paramname">y0</td><td>top x coordinate of the region. </td></tr>
<tr><tdclass="paramname">x1</td><td>right x coordinate (not included) of the region. Must be greater than x0. </td></tr>
<tr><tdclass="paramname">y1</td><td>bottom y coordinate (not included) of the region. Must be greater than y0. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>OPJ_TRUE or OPJ_FALSE. </dd></dl>
<pclass="reference">References <aclass="el"href="structopj__sparse__array__int32.html#acbfd23999d0b817fb40ed58073bb6cf2">opj_sparse_array_int32::height</a>, and <aclass="el"href="structopj__sparse__array__int32.html#a427c80944840803fd7f5592317ad8564">opj_sparse_array_int32::width</a>.</p>
<pclass="reference">Referenced by <aclass="el"href="sparse__array_8c.html#a175c52e28cac6cad5ccdc24200e67a60">opj_sparse_array_int32_read_or_write()</a>.</p>