diff --git a/pixel.cpp b/pixel.cpp
index d96b31fa3aaf8db4cbfce376f48aa3f348a78195..3c59ebeb2c431589149184f716da4b62e1a21b58 100644
--- a/pixel.cpp
+++ b/pixel.cpp
@@ -1,7 +1,7 @@
 #include <iostream>
 #include <hls_stream.h>
 #include <ap_axi_sdata.h>
-#include <math.h>
+#include<math.h>
 
 using namespace std;
 
@@ -13,29 +13,27 @@ static int decrpyt=0;
 static long long asciiNum=0;
 static int asciiVal=0;
 
-long long convert(int n); 
+long long convert(int n);
 long long toAscii(chr number);
 int convertBinInt(long long n);
-char stegnoDcrypt(int data);
-void stegno(char c);
+void stegnoDcrypt(int data);
+int stegno(int c,int data,int position1,int position2);
 
 void pixel(
 		ap_int<32> position1,
 		ap_int<32> position2,
-		ap_int<32> w,
-		ap_int<32> h,
+		ap_int<32> stream_count,
 		ap_int<32> character,
-        ap_int<32> selector,
+		ap_int<32> selector,
 		hls::stream< pkt_t > &din,
 		hls::stream< pkt_t > &dout
 ) {
 	#pragma HLS INTERFACE ap_ctrl_none port=return
 	#pragma HLS INTERFACE s_axilite port=position1
 	#pragma HLS INTERFACE s_axilite port=position2
-	#pragma HLS INTERFACE s_axilite port=w
-	#pragma HLS INTERFACE s_axilite port=h
+	#pragma HLS INTERFACE s_axilite port=stream_count
 	#pragma HLS INTERFACE s_axilite port=character
-	#pragma HLS INTERFACE s_axilite port=selector  //switch for encrypt and decrypt
+	#pragma HLS INTERFACE s_axilite port=selector
 	#pragma HLS INTERFACE axis port=din
 	#pragma HLS INTERFACE axis port=dout
 
@@ -44,7 +42,7 @@ void pixel(
 	switch(selector)
     {
         case 0:
-            stegno(character);
+            pkt.data=stegno(character,pkt.data,position1,position2);
             break;
 
         case 1:
@@ -57,10 +55,10 @@ void pixel(
 
 	count_streams++;
 
-	if (count_streams == w*h*3){
+	if (count_streams == stream_count){
 		count_streams = 0;
         asciiVal= convertBinInt(asciiNum);
-        pkt.data=asciiVal
+        pkt.data=asciiVal;
         dout.write(pkt);
 	}
 
@@ -71,27 +69,27 @@ void pixel(
     dout.write(pkt);
 }
 
-void stegno(char c){
-    
-    // to check
-	charIn=toAscii(c);
-	if(count_streams > 3 * (position1 - 1) && count_streams < 3 * (position2)){
+int stegno(int c,int data,int position1,int position2){
+
+	charIn=toAscii((char)c);
+	if((count_streams > 3 * (position1 - 1)) && (count_streams < 3 * (position2))){
 		addNum=charIn%10;
 		charIn=(int)charIn/10;
-		pkt.data=convertBinInt((convert(pkt.data)/10)*10+addNum);
-		
+
 	}
-    
+
+	return convertBinInt((convert(data)/10)*10+addNum);
+
 }
 
-long long stegnoDcrypt(int data){
+void stegnoDcrypt(int data){
 
     decrpyt=convert(data)%10;
 
     asciiNum=asciiNum*10+decrpyt;
-	
+
 }
-    
+
 
 long long convert(int n) {
     long long bin = 0;
@@ -119,5 +117,5 @@ int convertBinInt(long long n) {
 long long toAscii(char c) {
     int n=(int)c;
     long long bin = convert(n);
-    return bin;     
+    return bin;
 }