2012-05-02 13 views
2

Me와 팀원이 프로젝트의 JPEG2000 비슷한 압축 구성표를 사용하고 있습니다. 그것은 matlab과 잔물결 도구 상자를 활용합니다.MATLAB 관련 문제 : 웨이브 렛 도구 상자를 사용하는 JPEG2000 압축 구성표

두 가지 문제가 있습니다. JPEG2000에 대한 지식 부족으로이 압축 프로세스의 단계가 누락되었다고 생각됩니다. 두 번째 문제는 다음과 관련된 실제 오류입니다. [dict,avglen] = huffmandict(cQ,p); % Create dictionary.
오류 : ??? 사용 오류 ==> huffmandict에서 174 소스 기호 반복

런타임 코딩이 수행되지 않았기 때문에 매트릭스의 반복 값과 관련이 있는지 확실하지 않습니다.

41 ==> 프로젝트에서 오류가 발생했습니다. [dict, avglen] = huffmandict (cQ, p); 사전을 만듭니다.

유용한 정보 나 정보가 있으면 도움이됩니다.
는 또한, 내가 사전 처리 단계를 필요가 있는지 확실하지 오전

코드는 다음과 같다 :

%wavelet based compression sub-band coding 
clear all; 
close all; 
x=imread('1.png');%input image 
n=input('enter the desired decompositon level '); %decompositon level 
Q=input('enter the desired quantization step size '); %quantization level 

%begin wavelet decomposition 
c = []; 
sx = size(x); 
s = zeros(n+2,length(sx)); 
if isempty(x) , return; end 

s(end,:) = size(x); 
for i=1:n 
    [x,h,v,d] = dwt2(x,'haar'); % decomposition 
    c = [h(:)' v(:)' d(:)' c];  % store details 
    s(n+2-i,:) = size(x);   % store size 
end 

% Last approximation. 
c = [x(:)' c]; 
s(1,:) = size(x); 

%Begin Quantization 

cQ=round(c/Q); 

%Begin Entropy Encoding 



scQ=length(cQ); 
l=1; 
for i=1:(scQ-1); 
    l=l/2; 
    p(i)=l; 
end 
p(scQ)=p(scQ-1); 

[dict,avglen] = huffmandict(cQ,p); % Create dictionary. 
actualsig = randsrc(100,1,[cQ; p]); % Create data using p. 
comp = huffmanenco(actualsig,dict); % Encode the data. 
+0

업데이트를 사용해야합니다 : 우리는 wcompress을 사용할 수 없습니다 기능. –

답변

-1

나는 단지 부분적인 해답 것을 알고 있지만, 오류가 발생하는 것 같습니다 입력 내용에 중복 된 내용이 포함되어 있기 때문입니다.

unique 명령을 사용하면이 문제를 방지 할 수 있습니다. this website

그들이 같은 것을 권장합니다

[symbols,p]=hist(A,double(unique(A))) 

을하지만 귀하의 의견이 어떻게 작동하는지 확실하지 않다, 당신은

unique([cQ; p],'rows')