m -ary Balanced Codes With Parallel Decoding - Pelusi, Danilo; Elmougy, Samir; Tallini, Luca G.; Bose, Bella (IEEE transactions on information theory, 2015)
An m-ary block code, m = 2, 3, 4,..., of length n ϵ IN is called balanced if, and only if, every codeword is balanced; that is, the real sum of the codeword components, or weight, is equal to ⌊(m - 1)n/2⌋. This paper presents efficient encoding schemes to m-ary balanced codes with parallel (hence, fast) decoding. In fact, the decoding time complexity is O(1) digit operations. These schemes are a generalization to the m-ary alphabet of Knuth's complementation method with parallel decoding. Let ( n w ) m indicate the number of m-ary words w of length n and weight w ϵ(0,1, ... , (m - 1)n}. For any m ϵ IN, m ≥ 2, a simple implementation of the method is given which uses r ϵ IN check digits to balance k ≤ {(⌊(m-1) r /2⌋) m - (m mod 2 + [(m - 1)k] mod 2}}/(m - 1) information digits with an encoding time complexity of O(mk log m k) digit operations. A refined implementation of the parallel decoding method is also given with r check digits and k ≤ (m r -1)/(m -1) information digits, where the encoding time complexity is O(k√log m k). Thus, the proposed codes are less redundant than the m-ary balanced codes with parallel decoding found in the literature and yet maintain the same complexity.