function f1=IDCT2(x)

% berechnet die IDCT-II des Vectors x mit Skalierung
% d.h. f1=sqrt(N)*C_N^III* x= sqrt(N)*(C_N^II)T* x


[L,N]=size(x); %x Zeilenvektor der LŠnge N
%Bringe x auf einen Vektor mit ZweierpotenzlŠnge

t=floor(log2(N));
N2=2^t*2;
if N>N2/2 y=zeros(N2); 
else N2=N; y=zeros(N2);
end	
for j=1:N y(j)=x(j); end;
	
if N2==2 f1(1)=y(1)+y(2);
        f1(2)=y(1)-y(2);
	end;

if N2>=4  N3=N2/2;
          for j=1:N3  u(j)=y(2*j-1);
			          v(j)=y(2*j);
				  end;
				  
			  
v1=IDCT2(u);
v2=DCT4(v);

v1=[v1,v2];

for j=1:N3 f1(j)=v1(j)+v2(j);
	       f1(N3+j)=v1(N3+1-j)-v2(N3+1-j);
	   end;
	   end;
	   
	   
				  
	