Huffman coding and decoding for image(JPEG, BMP)

조회 수: 44 (최근 30일)
Manisha Mehra
Manisha Mehra 2011년 2월 28일
댓글: Harshil Patel 2020년 4월 28일
I have to implement huffman encoding and decoding for a '.bmp' image without using the inbuilt matlab function like huffmandict, huffmanenco and huffmandeco.
Can anybody help me by sending me the source code?
Moreover, I have done the encoding part but I am not able to do the decoding. I have no idea as how to reconstruct the image through decoding.
  댓글 수: 4
Jasmina Vanasiwala
Jasmina Vanasiwala 2016년 12월 12일
I have to implement huffman encoding and decoding for a 'jpeg' image using C or C++. Please anyone help me by sending the source code?
Walter Roberson
Walter Roberson 2016년 12월 12일
  1. this is a resource for MATLAB questions not C or C++
  2. there are already a lot of public sources for that task including libjpeg
  3. if we send you source then you would not have implemented it. Would we get the academic credit or would you?

댓글을 달려면 로그인하십시오.

채택된 답변

Paulo Silva
Paulo Silva 2011년 2월 28일
  댓글 수: 2
Manisha Mehra
Manisha Mehra 2011년 3월 1일
Thanks..
It worked awesome.
fateh
fateh 2014년 11월 9일
how could i run this example

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Falak
Falak 2012년 5월 4일
Try this one... just change to your required image
%Author Name:Falak Shah
%Target: To huffman encode and decode user entered string
%--------------------------------------------------------------------------
string=input('enter the string in inverted commas'); %input string
symbol=[]; %initialise variables
count=[];
j=1;
%------------------------------------------loop to separate symbols and how many times they occur
for i=1:length(string)
flag=0;
flag=ismember(symbol,string(i)); %symbols
if sum(flag)==0
symbol(j) = string(i);
k=ismember(string,string(i));
c=sum(k); %no of times it occurs
count(j) = c;
j=j+1;
end
end
ent=0;
total=sum(count); %total no of symbols
prob=[];
%-----------------------------------------for loop to find probability and
%entropy
for i=1:1:size((count)');
prob(i)=count(i)/total;
ent=ent-prob(i)*log2(prob(i));
end
var=0;
%-----------------------------------------function to create dictionary
[dict avglen]=huffmandict(symbol,prob);
% print the dictionary.
temp = dict;
for i = 1:length(temp)
temp{i,2} = num2str(temp{i,2});
var=var+(length(dict{i,2})-avglen)^2; %variance calculation
end
temp
%-----------------------------------------encoder and decoder functions
sig_encoded=huffmanenco(string,dict)
deco=huffmandeco(sig_encoded,dict);
equal = isequal(string,deco)
%-----------------------------------------decoded string and output
%variables
str ='';
for i=1:length(deco)
str= strcat(str,deco(i));
end
str
ent
avglen
var
  댓글 수: 8
Walter Roberson
Walter Roberson 2019년 3월 23일
What leads you to say that it does not work?
Harshil Patel
Harshil Patel 2020년 4월 28일
I ran the code in matlab 2020a, and it generated some otput with some values for str, ent, avglen and var for an image input. So, how do I know if it's correct?

댓글을 달려면 로그인하십시오.


slama najla
slama najla 2012년 5월 19일
Hello please is that you can help me? is that you can send me your registration code files before you get the picture compressed as I encounter the same problem as let go of compressed image is a very superior picture framer and my original remark that the fault is in the recording files. thank you in advance
  댓글 수: 9
SS
SS 2019년 11월 27일
rng('default') % For reproducibility
X = rand(10,3);
In this code, what will be the value of X for my image..???

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Denoising and Compression에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by