Open Access Open Access  Restricted Access Subscription Access
Open Access Open Access Open Access  Restricted Access Restricted Access Subscription Access

Computing Number of Bits to be Processed Using Shift and Log in Arithmetic Coding


Affiliations
1 GLS Institute of Computer Technology, Ahmedabad, Gujarat, India
2 Gujarat University, Ahmedabad, Gujarat, India
     

   Subscribe/Renew Journal


Arithmetic coding is a very efficient and most popular entropy coding technique. Arithmetic coding method is based on the fact that the cumulative probability of a symbol sequence corresponds to a unique subinterval of the initial interval [0,1]. In this method, when encoding a symbol, it first computes new interval [low, high] based on cumulative probability segment of the symbol. Thereafter it iterates in a loop to output code bits till the interval becomes 2b-2 wide, where b is number of bits used to store range of an interval. In conventional implementation of arithmetic coding algorithm, in single loop iteration, only one bit is processed at a time. When most significant bit (msb) of low and high of a subinterval matches, it writes this msb in coded message and doubles the interval by extracting msb. When underflow occurs, it extracts second msb to expand an interval. Processing such single bit and expanding an interval is also called renormalization in a loop. In this paper, an upgradation of this conventional arithmetic coding algorithm is proposed, wherein more than one bit is processed at a time instead of just single bit in single iteration. This proposed multi-bit processing arithmetic coding algorithm is implemented here to reduce the iterations needed in renormalizing an interval. It is observed that processing multiple output bits at a time leads to big improvement in execution time. To determine the number of maximum possible matching most significant bits to output, two alternatives are used here; (i) Using shift operation in a loop (ii) Using log function. It is found that first technique is far better than second one with respect to execution time. As compared to conventional implementations processing single bit at a time, about 52% overall saving in execution time is observed when processing multi-bits using shift operation in a loop; whereas about 31% overall loss in performance is observed with the technique of using log function. We have also tried these two alternative ways to determine the number of consecutive occurrences of underflow and process them all in single iteration; but it has not shown any significant gain in speed. As expected, in using any of the above methods, there is no compromise in compression ratio.

Keywords

Arithmetic Coding, Computing Number of Output Bits and Underflow, Lossless Data Compression, Multi-Bit Processing, Renormalizing Interval.
User
Subscription Login to verify subscription
Notifications
Font Size

Abstract Views: 261

PDF Views: 2




  • Computing Number of Bits to be Processed Using Shift and Log in Arithmetic Coding

Abstract Views: 261  |  PDF Views: 2

Authors

Jyotika Doshi
GLS Institute of Computer Technology, Ahmedabad, Gujarat, India
Savita Gandhi
Gujarat University, Ahmedabad, Gujarat, India

Abstract


Arithmetic coding is a very efficient and most popular entropy coding technique. Arithmetic coding method is based on the fact that the cumulative probability of a symbol sequence corresponds to a unique subinterval of the initial interval [0,1]. In this method, when encoding a symbol, it first computes new interval [low, high] based on cumulative probability segment of the symbol. Thereafter it iterates in a loop to output code bits till the interval becomes 2b-2 wide, where b is number of bits used to store range of an interval. In conventional implementation of arithmetic coding algorithm, in single loop iteration, only one bit is processed at a time. When most significant bit (msb) of low and high of a subinterval matches, it writes this msb in coded message and doubles the interval by extracting msb. When underflow occurs, it extracts second msb to expand an interval. Processing such single bit and expanding an interval is also called renormalization in a loop. In this paper, an upgradation of this conventional arithmetic coding algorithm is proposed, wherein more than one bit is processed at a time instead of just single bit in single iteration. This proposed multi-bit processing arithmetic coding algorithm is implemented here to reduce the iterations needed in renormalizing an interval. It is observed that processing multiple output bits at a time leads to big improvement in execution time. To determine the number of maximum possible matching most significant bits to output, two alternatives are used here; (i) Using shift operation in a loop (ii) Using log function. It is found that first technique is far better than second one with respect to execution time. As compared to conventional implementations processing single bit at a time, about 52% overall saving in execution time is observed when processing multi-bits using shift operation in a loop; whereas about 31% overall loss in performance is observed with the technique of using log function. We have also tried these two alternative ways to determine the number of consecutive occurrences of underflow and process them all in single iteration; but it has not shown any significant gain in speed. As expected, in using any of the above methods, there is no compromise in compression ratio.

Keywords


Arithmetic Coding, Computing Number of Output Bits and Underflow, Lossless Data Compression, Multi-Bit Processing, Renormalizing Interval.