<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Arithmetic Coding</title>
	<atom:link href="http://www.bodden.de/legacy/arithmetic-coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bodden.de</link>
	<description>Easy and efficient software verification</description>
	<lastBuildDate>Tue, 29 Jun 2010 07:07:16 +0200</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
	<item>
		<title>By: Eric</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9620</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Wed, 10 Mar 2010 06:48:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9620</guid>
		<description>Andrew you probably should be using some floating-point values at this point but that may require more changes to the code than just changing the data type.</description>
		<content:encoded><![CDATA[<p>Andrew you probably should be using some floating-point values at this point but that may require more changes to the code than just changing the data type.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9612</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Tue, 09 Mar 2010 21:37:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9612</guid>
		<description>Eric, what if my integer intervals are *really* large, say the low and high of the first symbol happens to be [19&#039;000&#039;000, 54&#039;000&#039;0000), what data types should I use? I attempt to use unsigned long, but the program enters an infinite loop when attempting E-scaling... Any suggestion?</description>
		<content:encoded><![CDATA[<p>Eric, what if my integer intervals are *really* large, say the low and high of the first symbol happens to be [19&#8217;000&#8217;000, 54&#8217;000&#8217;0000), what data types should I use? I attempt to use unsigned long, but the program enters an infinite loop when attempting E-scaling&#8230; Any suggestion?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eric</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9358</link>
		<dc:creator>eric</dc:creator>
		<pubDate>Sun, 07 Feb 2010 13:34:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9358</guid>
		<description>Andrew, I think the problem here is that in general you won&#039;t be able to encode the resulting interval by just using the lower bound because this would not give the decoder enough information to know when the encoded file has been completely decoded. Here is what people usually do to encode the &quot;end of file&quot;: add to your model an artificial symbol EOF, and assign to this symbol a very low probability in your model. Then, when the encoder reaches the end of file, it encodes the EOF symbol, just as usual. When this symbol is encoded, then you can use *any* value in the final interval to encode the input - of course it makes sense to use the shortest number you can find in this interval. The decoder then simply decodes the encoded input until it happens to decode the EOF symbol. When the decoder decodes this symbol it knows that it is done.</description>
		<content:encoded><![CDATA[<p>Andrew, I think the problem here is that in general you won&#8217;t be able to encode the resulting interval by just using the lower bound because this would not give the decoder enough information to know when the encoded file has been completely decoded. Here is what people usually do to encode the &#8220;end of file&#8221;: add to your model an artificial symbol EOF, and assign to this symbol a very low probability in your model. Then, when the encoder reaches the end of file, it encodes the EOF symbol, just as usual. When this symbol is encoded, then you can use *any* value in the final interval to encode the input &#8211; of course it makes sense to use the shortest number you can find in this interval. The decoder then simply decodes the encoded input until it happens to decode the EOF symbol. When the decoder decodes this symbol it knows that it is done.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9357</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Sun, 07 Feb 2010 12:27:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9357</guid>
		<description>Say my file contains the string aaabcc to encode. Assume that for whatever model the very final interval results in [0.25, 0.295379112). What would the compression ratio be in this case? The initial file size is 6 bytes or 48 bits. Say that the value I choose from the final interval is the low bound 0.25, which in binary translates as 01. Then, is my compression ratio equal to 2/48 bits per character? What do you think?</description>
		<content:encoded><![CDATA[<p>Say my file contains the string aaabcc to encode. Assume that for whatever model the very final interval results in [0.25, 0.295379112). What would the compression ratio be in this case? The initial file size is 6 bytes or 48 bits. Say that the value I choose from the final interval is the low bound 0.25, which in binary translates as 01. Then, is my compression ratio equal to 2/48 bits per character? What do you think?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eric</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9355</link>
		<dc:creator>eric</dc:creator>
		<pubDate>Sun, 07 Feb 2010 09:19:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9355</guid>
		<description>Hi Andrew. Yes that sounds reasonable to me. It&#039;s what I would have done too to compute compression ratio.</description>
		<content:encoded><![CDATA[<p>Hi Andrew. Yes that sounds reasonable to me. It&#8217;s what I would have done too to compute compression ratio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9354</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Sun, 07 Feb 2010 06:38:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9354</guid>
		<description>Hi Eric &amp; Malte,

I followed your tips and correctly implemented my model using part of your code, which proved to be quite at hand.

I have one file question: Say that for an input file F I calculated the overall final interval, how can I measure compression ratio? That is, do I encode (in bits) the low and high values of the interval and divide this by the initial size of file F (in bits)?

Thanks</description>
		<content:encoded><![CDATA[<p>Hi Eric &amp; Malte,</p>
<p>I followed your tips and correctly implemented my model using part of your code, which proved to be quite at hand.</p>
<p>I have one file question: Say that for an input file F I calculated the overall final interval, how can I measure compression ratio? That is, do I encode (in bits) the low and high values of the interval and divide this by the initial size of file F (in bits)?</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anhnht</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-9316</link>
		<dc:creator>anhnht</dc:creator>
		<pubDate>Tue, 02 Feb 2010 07:28:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-9316</guid>
		<description>Thanks very much, Mr.Bodden. Your paper inspires me</description>
		<content:encoded><![CDATA[<p>Thanks very much, Mr.Bodden. Your paper inspires me</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-8177</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Sat, 31 Oct 2009 04:56:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-8177</guid>
		<description>Thank you, Malte.

What do you exactly mean by &quot;*scale the current interval with it*&quot;? Are you referring to the initial interval [0,1], which is the current, and so forth?</description>
		<content:encoded><![CDATA[<p>Thank you, Malte.</p>
<p>What do you exactly mean by &#8220;*scale the current interval with it*&#8221;? Are you referring to the initial interval [0,1], which is the current, and so forth?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Malte Clasen</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-8135</link>
		<dc:creator>Malte Clasen</dc:creator>
		<pubDate>Tue, 27 Oct 2009 18:20:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-8135</guid>
		<description>@Andrew: You read X from an input file, find it in the dictionary, get the interval from the dictionary, *scale the current interval with it* and pass it to E1/E2/E3. Since your probabilities (frequencies) do not change, there&#039;s no need to create new symbol intervals during the process. However, AC is still based on the successive downsizing of a single output interval, so don&#039;t pass the symbols&#039; probability intervals directly to the E1/E2/E3-scaler.

The output stream actually contains bits. If you want to convert it to a text file consisting of 0 and 1 characters, just replace the part where the bits are shifted. Alternatively you could post-process the resulting file.</description>
		<content:encoded><![CDATA[<p>@Andrew: You read X from an input file, find it in the dictionary, get the interval from the dictionary, *scale the current interval with it* and pass it to E1/E2/E3. Since your probabilities (frequencies) do not change, there&#8217;s no need to create new symbol intervals during the process. However, AC is still based on the successive downsizing of a single output interval, so don&#8217;t pass the symbols&#8217; probability intervals directly to the E1/E2/E3-scaler.</p>
<p>The output stream actually contains bits. If you want to convert it to a text file consisting of 0 and 1 characters, just replace the part where the bits are shifted. Alternatively you could post-process the resulting file.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.bodden.de/legacy/arithmetic-coding/comment-page-1/#comment-8039</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Thu, 15 Oct 2009 18:12:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.bodden.de/legacy/arithmetic-coding/#comment-8039</guid>
		<description>HI again Eric, and thanks for the previous response. Just clarify a point... When you write in the previous post, &quot;Then whenever reading a symbol, let’s say X, then you determine the correct sub-interval for X and then “home in” on that interval using E1/E2/E3 scaling. &quot;, do you mean that when I read X from an input file and I find it in the dictionary, then I get X&#039;s interval from the dictionary and pass it as an argument to E1/E2/E3. Is this what you meant, or should I create a new interval for X?

Also, how could I possibly modify your algorithm such that the output stream is in bits, i.e. a text file containing just the bits of the encoded X.

Thanks a lot!

Andrew</description>
		<content:encoded><![CDATA[<p>HI again Eric, and thanks for the previous response. Just clarify a point&#8230; When you write in the previous post, &#8220;Then whenever reading a symbol, let’s say X, then you determine the correct sub-interval for X and then “home in” on that interval using E1/E2/E3 scaling. &#8220;, do you mean that when I read X from an input file and I find it in the dictionary, then I get X&#8217;s interval from the dictionary and pass it as an argument to E1/E2/E3. Is this what you meant, or should I create a new interval for X?</p>
<p>Also, how could I possibly modify your algorithm such that the output stream is in bits, i.e. a text file containing just the bits of the encoded X.</p>
<p>Thanks a lot!</p>
<p>Andrew</p>
]]></content:encoded>
	</item>
</channel>
</rss>
