annotate 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 |
|
rev |
line source |
samer@0
|
1 function u=construct(s,sizes_in)
|
samer@0
|
2 src=construct(s.source);
|
samer@0
|
3 ch=channels(s.source);
|
samer@0
|
4
|
samer@0
|
5 span=s.block;
|
samer@0
|
6 jump=s.hop;
|
samer@0
|
7 olap=span-jump;
|
samer@0
|
8 rdr=src.reader(jump);
|
samer@0
|
9
|
samer@0
|
10 if olap>0
|
samer@0
|
11 buf=[zeros(ch,jump),sigreadn(src,olap)]; % preload with overlap
|
samer@0
|
12 OL1=1:olap;
|
samer@0
|
13 OL=(jump+1):span;
|
samer@0
|
14 HOP=(olap+1):span;
|
samer@0
|
15 process=@proc;
|
samer@0
|
16 fprintf(' Using signal reader with overlap=%d.\n',olap);
|
samer@0
|
17 else
|
samer@0
|
18 process=@proc0;
|
samer@0
|
19 fprintf(' Using zero-overlap signal reader.\n');
|
samer@0
|
20 end
|
samer@0
|
21
|
samer@0
|
22 u=mkunit(s);
|
samer@0
|
23 u.starting = src.start;
|
samer@0
|
24 u.stopping = src.stop;
|
samer@0
|
25 u.dispose = src.dispose;
|
samer@0
|
26 u.process = process;
|
samer@0
|
27 u.sizes_out = {[ch,span]};
|
samer@0
|
28
|
samer@0
|
29 function out=proc0,
|
samer@0
|
30 [out,rem]=rdr();
|
samer@0
|
31 if rem>0, error('ARROW:EOF','End of stream'); end
|
samer@0
|
32 end
|
samer@0
|
33
|
samer@0
|
34 function out=proc,
|
samer@0
|
35 buf(:,OL1)=buf(:,OL); % copy overlap from end of buf to head
|
samer@0
|
36 [buf(:,HOP),rem]=rdr();
|
samer@0
|
37 if rem>0, error('ARROW:EOF','End of stream'); end
|
samer@0
|
38 %out=[buf,chunk];
|
samer@0
|
39 out=buf;
|
samer@0
|
40 end
|
samer@0
|
41
|
samer@0
|
42 % old version
|
samer@0
|
43 function out=proc1,
|
samer@0
|
44 [chunk,rem]=rdr();
|
samer@0
|
45 if rem>0, error('ARROW:EOF','End of stream'); end
|
samer@0
|
46 out=[buf,chunk];
|
samer@0
|
47 buf=out(:,OL);
|
samer@0
|
48 end
|
samer@0
|
49 end
|