Mercurial > hg > ishara
view arrows/@asignal/construct.m @ 61:eff6bddf82e3 tip
Finally implemented perceptual brightness thing.
author | samer |
---|---|
date | Sun, 11 Oct 2015 10:20:42 +0100 |
parents | 672052bd81f8 |
children |
line wrap: on
line source
function u=construct(s,sizes_in) src=construct(s.source); ch=channels(s.source); span=s.block; jump=s.hop; olap=span-jump; rdr=src.reader(jump); if olap>0 buf=[zeros(ch,jump),sigreadn(src,olap)]; % preload with overlap OL1=1:olap; OL=(jump+1):span; HOP=(olap+1):span; process=@proc; fprintf(' Using signal reader with overlap=%d.\n',olap); else process=@proc0; fprintf(' Using zero-overlap signal reader.\n'); end u=mkunit(s); u.starting = src.start; u.stopping = src.stop; u.dispose = src.dispose; u.process = process; u.sizes_out = {[ch,span]}; function out=proc0, [out,rem]=rdr(); if rem>0, error('ARROW:EOF','End of stream'); end end function out=proc, buf(:,OL1)=buf(:,OL); % copy overlap from end of buf to head [buf(:,HOP),rem]=rdr(); if rem>0, error('ARROW:EOF','End of stream'); end %out=[buf,chunk]; out=buf; end % old version function out=proc1, [chunk,rem]=rdr(); if rem>0, error('ARROW:EOF','End of stream'); end out=[buf,chunk]; buf=out(:,OL); end end