% MATLAB code for Lossless Predictive Coding
C=[9,8,7,6; 1,2,3,4];
display(C);
b=C;
% prediction error
for i = 1:size(C,1)
for j = 2:size(C,2)
b(i,j)=b(i,j)-C(i,j-1);
end
end
display(b);
% Huffman coding
A=reshape(b,[],1);
[D1,x]=hist(A,min(min(b)):max(max(b)));
sym=x(D1>0);
prob=D1(D1>0)/numel(b);
[dict,avglen] = huffmandict(sym,prob);
comp = huffmanenco(A,dict);
% Huffman Decoding
dsig = huffmandeco(comp,dict);
b=reshape(dsig,size(C,1),size(C,2));
d=b;
for i = 1:size(C,1)
for j = 2:size(C,2)
d(i,j)=d(i,j-1)+b(i,j);
end
end
display(d);