Open In App

Elias Delta Encoding in Python

In this article, we are going to implement Elias Delta encoding using python.

Syntax:



Elias Delta Encoding(X)= Elias Gamma encoding (1+floor(log2(X))) + Binary representation of X without MSB.   

Implementation

First, we are going to implement Elias delta Encoding, Before writing code for Elias Delta Encoding.



Step 1:

Example: Elias Gamma encoding for some value




def EliasGammaEncode(k):
    if (k == 0):
        return '0'
    N = 1 + floor(log(k, 2))
    Unary = (N-1)*'0'+'1'
    return Unary + Binary_Representation_Without_MSB(k)

Step 2:

Example: Binary Representation without MSB




def Binary_Representation_Without_MSB(x):
    binary = "{0:b}".format(int(x))
    binary_without_MSB = binary[1:]
    return binary_without_MSB

Now we are going to write code for Elias Delta Encoding

Step 3:

Example: Elias Delta Encoding for some value




def EliasDeltaEncode(x):
    Gamma = EliasGammaEncode(1 + floor(log(k, 2)))
    binary_without_MSB = Binary_Representation_Without_MSB(k)
    return Gamma+binary_without_MSB
 
 
k = int(input('Enter a number to encode in Elias Delta: '))
print(EliasDeltaEncode(k))

Step 4:

Complete code to produce Elias Delta Encoding for some integer value




from math import log
from math import floor
 
def Binary_Representation_Without_MSB(x):
    binary = "{0:b}".format(int(x))
    binary_without_MSB = binary[1:]
    return binary_without_MSB
 
def EliasGammaEncode(k):
    if (k == 0):
        return '0'
    N = 1 + floor(log(k, 2))
    Unary = (N-1)*'0'+'1'
    return Unary + Binary_Representation_Without_MSB(k)
 
def EliasDeltaEncode(x):
    Gamma = EliasGammaEncode(1 + floor(log(k, 2)))
    binary_without_MSB = Binary_Representation_Without_MSB(k)
    return Gamma+binary_without_MSB
 
k =  14
print(EliasDeltaEncode(k))

Output:

00100110

Article Tags :