Code Comments
Programming Forum and web based access to our favorite programming groups.Hello! I'd like to check something. From my understanding of arithmetic coding and range coding, they're both the same. It's just that arithmetic coding happens to be one interpretation of the actual algorithms (and implementations thereof), while range coding is another interpretation of what are actually exactly the same algorithms (and implementations). In arithmetic coding, an arithmetic code is a sequence of symbols interpreted (by an external observer sing to understand the algorithm) as representing a rational number in the range [0,1). In range coding, a range code is a sequence of symbols interpreted as representing a natural number from a range of natural numbers, that range being [0,b^N), where N is the number of symbols in the range code itself, and b is the number base used in interpreting the range code accordingly. The thing is, such a range code can equivalently be interpreted as a corresponding arithmetic code, and vice-versa. After all, if the range code is taken as representing a natural number, x, the corresponding arithmetic code - which is exactly the same sequence of symbols - is taken as representing the rational number x/(b^N). Similarly the other way round. Consequently, a range encoder/decoder is itself the corresponding arithmetic encoder/decoder, and - of course - vice-versa. Stuff about arithmetic coding being bit/binary-based, and range coding being byte-based, and that sort of thing, seem to be irrelevant implementation details. We can just as easily have byte-based arithmetic coders, and bit/binary-based range coders - a byte-based range coder is itself a byte-based arithmetic coder (and vice-versa, of course)! Whether it's byte-based, or bit/binary-based, really doesn't depend on whether we interpret the code as being an arithmetic code (representing a rational in the range [0,1)) or as a range code (representing a natural number). But I'd like to check that I really have understood this correctly. So: have I understood this correctly? :-) Simon G Best
Post Follow-up to this message
Show a Printable Version
Email This Page to Someone!
Receive updates to this thread
Powered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.