The Narayana Universal Code

Reading time: 5 minute
...

📝 Original Info

  • Title: The Narayana Universal Code
  • ArXiv ID: 1601.07110
  • Date: 2016-01-27
  • Authors: Krishnamurthy Kirthi and Subhash Kak

📝 Abstract

This paper presents a method of universal coding based on the Narayana series. The rules necessary to make such coding possible have been found and the length of the resulting code has been determined to follow the Narayana count.

💡 Deep Analysis

Figure 1

📄 Full Content

A universal code maps positive integers which represent the source messages into codewords of different lengths. The codeword elements are a set of digits that are constructed according to a specified rule, and they may be binary. There are various universal codes including the Elias codes, the Fibonacci universal code, Levenshtein coding and non-universal codes including unary coding, Rice coding, Huffman coding and Golomb coding [1]- [4]. If one were to represent numbers as sum of two prime numbers using Goldbach conjecture, inverse sequence may also sequences may also be used to construct a universal code [5].

The simplest of Elias codes is the gamma code in which the binary representation of the source code is preceded by [log 2 𝑥] zeroes indicate codeword for any natural number x, where x ∈ N= {1, 2, 3,..}. The time requirement for compression and decompression algorithms for cases where decompression time is a critical issue, is advantageous in this coding [6], [7].

The Fibonacci code has a useful property of easy recovery of data from damaged bit stream in comparison with other universal codes. The performance of Fibonacci universal code is better than that of Elias coding [8]. Fibonacci and GH universal codes are obtained based on Zeckendorf representation. In this representation, every positive integer can be represented uniquely as a sum of non-adjacent Fibonacci numbers [9], [10]. This helps in unique representation of codewords without two consecutive 1s, and this may be used for generalization of any coding.

Narayana (short for Narayana Pandit) wrote his famous book Gaṇita Kaumudi in 1356. His eponymous sequences [11], [12], [13], which are related to Fibonacci and GH sequences, have potential applications in cryptography and data coding. The properties of Fibonacci sequences together with applications in cryptography and coding have been presented in several studies [14]- [18]. Here, we present a variant of Fibonacci universal code based on Narayana series with the help of a representation procedure that leads to the Narayana universal code.

The Narayana sequence is derived from the following problem that was proposed by Narayana: “A cow gives birth to a calf every year. In turn, the calf gives birth to another calf when it is three years old. What is the number of progeny produced during twenty years by one cow?” We assume that we begin with a new-born calf, who is shown in the first row of the matrix below. After three years, in each successive year, there is a new calf born to this one and additional calves are born to the 3-year or older calves, leading o second and additional rows in the matrix every 3 steps. This may be represented in the matrix below: The last row that adds up the numbers in the previous rows represents the count of the Narayana sequence. This sequence is the sum of previous term and term 2 places before. It is is given by 1,1,1,2,3,4,6,9,13,19,28, … .

(

The (k+1)st term of the Narayana series may be defined as:

with 𝑁(0) = 𝑁(1) = 𝑁(2) = 1 and 𝑘 ≥ 2. A more general Narayana sequence 𝑁 𝑎 (𝑛) is given by a, b, c, a+c, a+b+c, a+b+2c, 2a+b+3c, 3a+2b+4c, and so on, with a=1, b=2 and c=3

(3)

Consider the ratio of two consecutive terms in Narayana series. In the limit where n goes to infinity, we have

Equation ( 4) may be written as,

With lim 𝑛→∞ ( 𝑁 𝑎 (𝑛+1)

𝑁 𝑎 (𝑛)

) = 𝐿, we obtain the equation 𝐿 3 -𝐿 2 -1 = 0. This leads to the following theorem:

Theorem 1.

The real positive solution of equation 𝐿 3 -𝐿 2 -1 = 0 characterizes the relation between two consecutive terms in Narayana sequence, and the Narayana ratio approaches 1.4655712318767669…

Figure 1. Ratio between first 100 consecutive terms of the Narayana series This constant of 1.4655712318767669 may be termed the Narayana ratio.

To generate Narayana code as a generalization of Fibonacci universal code, we need to be able to map any given positive integer representing source code into variable length codeword in a manner used earlier by Thomas [1].

Consider Narayana series N(k) given by 1,1,1,2,3,4,6,9,… for generating variable length source code for any given positive integer. Since the series contains 3 consecutive 1s, we obtain various codewords for any given positive integer and the resulting codeword fails to comply with the requirement of universal coding.

Hence, to it is essential to modify Narayana series N(k) for k terms such and we define a new series J(k) as N(k+2)=J(k). The series N(k) is mapped to the J series as shown in the Table 2

The conditions for unique representation of Narayana universal code in terms of J series to obtain binary set of codewords are now presented.

Rule 1: For a given positive integer n, construct a vector 𝐴(𝑛) such that 𝐴(𝑛) 𝑖 = 𝐽(𝑖), i=0,1,…,d, where 𝐽(𝑑) is the largest number of J series less than or equal to n. A vector 𝐵(𝑛) of binary digits with dimension d is constructed such that 𝐴(𝑛) 𝑇 𝐵(𝑛) = 𝑛 and 𝐵(𝑛) 𝑑 = 1.

The codeword 𝑁𝐵(𝑛) for the positive integer

📸 Image Gallery

cover.png

Reference

This content is AI-processed based on open access ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut