<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: R2007b</title>
	<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/</link>
	<description>Steve Eddins manages the Image &#38; Geospatial development team at &#60;a href="http://www.mathworks.com/"&#62;The MathWorks&#60;/a&#62; and coauthored &#60;a href="http://www.mathworks.com/support/books/book5291.html?category=-1&#38;language=-1"&#62;Digital Image Processing Using MATLAB&#60;/a&#62;. He writes here about image processing concepts, algorithm implementations, and MATLAB.&#60;br&#62;&#60;br&#62;&#60;img&#62;</description>
	<pubDate>Sun, 08 Nov 2009 03:43:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-9565</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Sun, 16 Sep 2007 17:14:08 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-9565</guid>
		<description>Vincent&#8212;See my &lt;a href="http://blogs.mathworks.com/steve/2007/09/16/multipage-tiffs/" rel="nofollow"&gt;blog post today&lt;/a&gt;, or my response to your comp.soft-sys.matlab newsgroup post.</description>
		<content:encoded><![CDATA[<p>Vincent&mdash;See my <a href="http://blogs.mathworks.com/steve/2007/09/16/multipage-tiffs/" rel="nofollow">blog post today</a>, or my response to your comp.soft-sys.matlab newsgroup post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vincent</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-9140</link>
		<dc:creator>Vincent</dc:creator>
		<pubDate>Thu, 13 Sep 2007 00:27:44 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-9140</guid>
		<description>Actually, what would have been needed is a complete rewrite of imread and imwrite. These have excessive overhead which prevents their use for large images stacks or sequences. For TIFF files, I have been using the low-level functions rtifc and wtifc instead but these also have much overhead. For example, when writing a TIFF stack, wtifc open and closes the TIFF file for every frame added to the stack. The consequence is that the time required to write a stack grows linearly with the size of the stack. This is a major hurdle when dealing with large data sets (tens to hundreds of thousands of images). Anyone aware of a faster library for handling TIFF images?</description>
		<content:encoded><![CDATA[<p>Actually, what would have been needed is a complete rewrite of imread and imwrite. These have excessive overhead which prevents their use for large images stacks or sequences. For TIFF files, I have been using the low-level functions rtifc and wtifc instead but these also have much overhead. For example, when writing a TIFF stack, wtifc open and closes the TIFF file for every frame added to the stack. The consequence is that the time required to write a stack grows linearly with the size of the stack. This is a major hurdle when dealing with large data sets (tens to hundreds of thousands of images). Anyone aware of a faster library for handling TIFF images?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8384</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Fri, 07 Sep 2007 15:02:35 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8384</guid>
		<description>Evan&#8212;&lt;tt&gt;imread&lt;/tt&gt; has been able to read 12-bit TIFFs for several years already.</description>
		<content:encoded><![CDATA[<p>Evan&mdash;<tt>imread</tt> has been able to read 12-bit TIFFs for several years already.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evan</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8374</link>
		<dc:creator>Evan</dc:creator>
		<pubDate>Fri, 07 Sep 2007 13:25:16 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8374</guid>
		<description>So, I can finally read in 12-bit TIFF files? That's been on my wishlist for years, because we use 12-bit CCD cameras. I'm looking forward to trying this out.</description>
		<content:encoded><![CDATA[<p>So, I can finally read in 12-bit TIFF files? That&#8217;s been on my wishlist for years, because we use 12-bit CCD cameras. I&#8217;m looking forward to trying this out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8359</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Fri, 07 Sep 2007 10:45:41 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8359</guid>
		<description>Noel&#8212;The previous limit was 2&lt;sup&gt;31&lt;/sup&gt; - 2.

I am not aware of any use of the Intel Threading Building Blocks library in MATLAB.</description>
		<content:encoded><![CDATA[<p>Noel&mdash;The previous limit was 2<sup>31</sup> - 2.</p>
<p>I am not aware of any use of the Intel Threading Building Blocks library in MATLAB.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: noel</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8248</link>
		<dc:creator>noel</dc:creator>
		<pubDate>Fri, 07 Sep 2007 00:31:21 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8248</guid>
		<description>ah cool thanks.  so i guess that suggests some change in implementation, since the 2007a limit was 2^32 (maximum size of a 4 byte integer), not 2^31 (maximum offset from a signed 4 byte pointer).

a somewhat unrelated question: does/will matlab use the intel TBB anywhere for its multithreaded functions?  if that magically is the case, then it would help out a bunch if those headers/binaries/environment variables were distributed in the 2007b matlab installation.  we have a bunch of mex files that use the intel TBB, so it would save some effort on installing those libraries if it came for free with the matlab install.</description>
		<content:encoded><![CDATA[<p>ah cool thanks.  so i guess that suggests some change in implementation, since the 2007a limit was 2^32 (maximum size of a 4 byte integer), not 2^31 (maximum offset from a signed 4 byte pointer).</p>
<p>a somewhat unrelated question: does/will matlab use the intel TBB anywhere for its multithreaded functions?  if that magically is the case, then it would help out a bunch if those headers/binaries/environment variables were distributed in the 2007b matlab installation.  we have a bunch of mex files that use the intel TBB, so it would save some effort on installing those libraries if it came for free with the matlab install.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8219</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Thu, 06 Sep 2007 22:06:10 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8219</guid>
		<description>Noel&#8212;Good questions.  It is occasionally necessary in some computations and algorithms to do signed arithmetic on array offsets.  That requires a sign bit, so now we're down to 2^63.  But really, the current limitation is imposed by processor architectures.  My secret source on the core architecture team (thanks, GW) tells me that none of the current 64-bit processor architectures supports 64-bit pointer arithmetic, and some support only 48 bits.  So 2^48 is a hardware limitation.  The software limitation inside MATLAB code is now 2^63.

Here's what the documentation says about multithreaded computation in MATLAB: "multithreaded computation in MATLAB speeds up elementwise computations such as those done by the sin and log functions, and computations that use the Basic Linear Algebra Subroutines (BLAS) library, such as matrix multiply."  I expect additional computations to be revised to exploit multithreaded operation in future releases.  That is, every 6 months!</description>
		<content:encoded><![CDATA[<p>Noel&mdash;Good questions.  It is occasionally necessary in some computations and algorithms to do signed arithmetic on array offsets.  That requires a sign bit, so now we&#8217;re down to 2^63.  But really, the current limitation is imposed by processor architectures.  My secret source on the core architecture team (thanks, GW) tells me that none of the current 64-bit processor architectures supports 64-bit pointer arithmetic, and some support only 48 bits.  So 2^48 is a hardware limitation.  The software limitation inside MATLAB code is now 2^63.</p>
<p>Here&#8217;s what the documentation says about multithreaded computation in MATLAB: &#8220;multithreaded computation in MATLAB speeds up elementwise computations such as those done by the sin and log functions, and computations that use the Basic Linear Algebra Subroutines (BLAS) library, such as matrix multiply.&#8221;  I expect additional computations to be revised to exploit multithreaded operation in future releases.  That is, every 6 months!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: noel</title>
		<link>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8191</link>
		<dc:creator>noel</dc:creator>
		<pubDate>Thu, 06 Sep 2007 18:55:59 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2007/09/06/r2007b/#comment-8191</guid>
		<description>just curious, why is the limit on number of elements 2^48 - 1?  2^64 - 1 would seem more natural.

what functions does maxNumComputationalThreads affect?  just BLAS and LAPACK calls, or will other matlab functions utilize more than 1 thread?</description>
		<content:encoded><![CDATA[<p>just curious, why is the limit on number of elements 2^48 - 1?  2^64 - 1 would seem more natural.</p>
<p>what functions does maxNumComputationalThreads affect?  just BLAS and LAPACK calls, or will other matlab functions utilize more than 1 thread?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
