function dec(var)
tabledc=[...
2 0 0 0 0 0 0 0 0 0
3 0 1 0 0 0 0 0 0 0
3 0 1 1 0 0 0 0 0 0
3 1 0 0 0 0 0 0 0 0
3 1 0 1 0 0 0 0 0 0
3 1 1 0 0 0 0 0 0 0
4 1 1 1 0 0 0 0 0 0
5 1 1 1 1 0 0 0 0 0
6 1 1 1 1 1 0 0 0 0
7 1 1 1 1 1 1 0 0 0
8 1 1 1 1 1 1 1 0 0
9 1 1 1 1 1 1 1 1 0];
% run - no of bits required to encode data- total length - base code length(imp) - base code use for both luminance and chr as in hex file...
tableac=[...
0 1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 2 4 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 6 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 4 8 4 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 5 10 5 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 6 13 7 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 7 15 8 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
0 8 18 10 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0
0 9 25 16 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0
0 10 26 16 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1
1 1 5 4 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 7 5 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0
1 3 10 7 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0
1 4 13 9 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0
1 5 16 11 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0
1 6 22 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0
1 7 23 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1
1 8 24 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0
1 9 25 16 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1
1 10 26 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0
2 1 6 5 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
2 2 10 8 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0
2 3 13 10 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0
2 4 16 12 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0
2 5 21 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1
2 6 22 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0
2 7 23 16 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1
2 8 24 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0
2 9 25 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1
2 10 26 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0
3 1 7 6 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0
3 2 11 9 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0
3 3 15 12 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0
3 4 20 16 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1
3 5 21 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0
3 6 22 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1
3 7 23 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0
3 8 24 16 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1
3 9 25 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0
3 10 26 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1
4 1 7 6 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0
4 2 12 10 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
4 3 19 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0
4 4 20 16 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1
4 5 21 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0
4 6 22 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1
4 7 23 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0
4 8 24 16 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1
4 9 25 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0
4 10 26 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1
5 1 8 7 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0
5 2 13 11 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0
5 3 19 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0
5 4 20 16 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1
5 5 21 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0
5 6 22 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1
5 7 23 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0
5 8 24 16 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1
5 9 25 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0
5 10 26 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1
6 1 8 7 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0
6 2 14 12 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0
6 3 19 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0
6 4 20 16 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1
6 5 21 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0
6 6 22 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 1
6 7 23 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0
6 8 24 16 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1
6 9 25 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0
6 10 26 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1
7 1 9 8 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0
7 2 14 12 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0
7 3 19 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0
7 4 20 16 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1
7 5 21 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0
7 6 22 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1
7 7 23 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0
7 8 24 16 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1
7 9 25 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0
7 10 26 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1
8 1 10 9 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
8 2 17 15 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0
8 3 19 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0
8 4 20 16 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1
8 5 21 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0
8 6 22 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1
8 7 23 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0
8 8 24 16 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1
8 9 25 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0
8 10 26 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1
9 1 10 9 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0
9 2 18 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0
9 3 19 16 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
9 4 20 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
9 5 21 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1
9 6 22 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0
9 7 23 16 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1
9 8 24 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0
9 9 25 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1
9 10 26 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0
10 1 10 9 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0
10 2 18 16 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1
10 3 19 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0
10 4 20 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1
10 5 21 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0
10 6 22 16 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1
10 7 23 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0
10 8 24 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1
10 9 25 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0
10 10 26 16 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1
11 1 11 10 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0
11 2 18 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0
11 3 19 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1
11 4 20 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0
11 5 21 16 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1
11 6 22 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0
11 7 23 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1
11 8 24 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0
11 9 25 16 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1
11 10 26 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0
12 1 11 10 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0
12 2 18 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1
12 3 19 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0
12 4 20 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1
12 5 21 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0
12 6 22 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1
12 7 23 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0
12 8 24 16 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
12 9 25 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
12 10 26 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1
13 1 12 11 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
13 2 18 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0
13 3 19 16 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1
13 4 20 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0
13 5 21 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1
13 6 22 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0
13 7 23 16 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1
13 8 24 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0
13 9 25 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1
13 10 26 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0
14 1 17 16 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1
14 2 18 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0
14 3 19 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1
14 4 20 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0
14 5 21 16 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
14 6 22 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
14 7 23 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1
14 8 24 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
14 9 25 16 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1
14 10 26 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0
15 1 17 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1
15 2 18 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
15 3 19 16 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
15 4 20 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0
15 5 21 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1
15 6 22 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0
15 7 23 16 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
15 8 24 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0
15 9 25 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
15 10 26 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0];
img=imread(var,'jpg');
prop=imfinfo(var,'jpg');
%img=imread('save1.jpg','jpg');
%prop=imfinfo('save1.jpg','jpg');
h=ceil((prop.Height)/8);
w=ceil((prop.Width)/8);
offset=1,ptr=0;
buff=[];
answer=[];
fr=[];
fid1= fopen('save.jpg','r','b');
fseek(fid1,623,-1);
fr1=fread(fid1,'ubit1');
fr1=fr1';
lfr=length(fr1)/8;
flag1=0;
for i=1:lfr-2
if flag1==0
fr=[fr fr1((8*i)-7:8*i)];
if fr1((8*i)-7:8*i)==[1 1 1 1 1 1 1 1]
flag1=1;
end
else
flag1=0
end
end
fid2=fopen('decoded.txt','w','b')
flag=0;
for i=1:h
for j=1:w
for y=1:3
%if flag==1
% break;
%end
for k=1:12
if tabledc(k,2:1+tabledc(k,1))==fr(offset:offset+tabledc(k,1)-1)
offset=offset+tabledc(k,1)+k-1;
break;
end
end
for m=1:64
if fr(offset:offset+3)==[1 0 1 0]
offset=offset+4;
break;
else
if fr(offset:offset+10)==[1 1 1 1 1 1 1 1 0 0 1];
offset=offset+11;
else
for k=1:160
if tableac(k,5:4+tableac(k,4))==fr(offset:offset+tableac(k,4)-1)
offset=offset+tableac(k,4);
buff=fr(offset:offset+tableac(k,2)-1);
answer=[answer buff(length(buff))];
if length(answer)==8
if answer==[1 1 1 1 1 1 1 1]
flag=1;
fclose(fid2);
break;
else
fwrite(fid2,answer,'ubit1');
answer=[];
end
end
offset=offset+tableac(k,2);
break;
%if buff(0)==0;
% buff=ones(1,length(buff))-buff;
%end
%for l=1:length(buff)
% if buff(l)==0
% str=[str '0']
%else
% str=[str '1']
%end
%end
end
end
end%216
end%212
if(flag==1)
break;
end
end
if(flag==1)
break;
end
end
if(flag==1)
break;
end
end
if(flag==1)
break;
end
end
fclose(fid1);