As for as I know, the only difference in Range Coding and Arithmetic Coding
is that Arithmetic Coding renormalizes to bits (numbers of base-2), whereas
Range Coding renormalizes to numbers of any base (like numbers of base-256
as in your example of 8-bits)
The range encoder is based on an article presented by G.N.N. Martin on the
Data Recording Conference, Southampton, July 1979.
You can download Michael Schindler's source code for Range Coding from
Range coder is faster than arith coder, but due to larger delays in
renormalizations in Range coding, there is slight inaccuracy in calculations
which result in slightly larger compressed files.
Moreover, although certain implementations of arithmetic coding are
patented, I havent yet seen a reference to any patent on the general idea
behind arithmetic coding. So it might be safe to use arithmetic coding also.
(dont take my word for it, I dont know much about patents)
Depending on whats important to you (speed or compressed size) you may want
to know that as we usually use 32-bit integers to represent floating point
ranges, even arithmetic coding is not 100% accurate. This accuracy can be
further increased by using 64-bit integers. Refer to this link for
Sachin Garg [India]