1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclear; 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgpack; 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org% 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org% Enter the path to YOUR executable and remember to define the perprocessor 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org% variable PRINT_MIPS te get the instructions printed to the screen. 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org% 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgcommand = '!iLBCtest.exe 30 speechAndBGnoise.pcm out1.bit out1.pcm tlm10_30ms.dat'; 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgcout=' > st.txt'; %saves to matlab variable 'st' 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgeval(strcat(command,cout)); 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgif(length(cout)>3) 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org load st.txt 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgelse 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org disp('No cout file to load') 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgend 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 16b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org% initialize vector to zero 17b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgindex = find(st(1:end,1)==-1); 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgindexnonzero = find(st(1:end,1)>0); 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgframes = length(index)-indexnonzero(1)+1; 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgstart = indexnonzero(1) - 1; 21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgfunctionOrder=max(st(:,2)); 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnew=zeros(frames,functionOrder); 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgfor i = 1:frames, 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org for j = index(start-1+i)+1:(index(start+i)-1), 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org new(i,st(j,2)) = new(i,st(j,2)) + st(j,1); 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org end 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgend 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgresult=zeros(functionOrder,3); 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgfor i=1:functionOrder 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org nonzeroelements = find(new(1:end,i)>0); 33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org result(i,1)=i; 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org % Compute each function's mean complexity 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org % result(i,2)=(sum(new(nonzeroelements,i))/(length(nonzeroelements)*0.03))/1000000; 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org % Compute each function's maximum complexity in encoding 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org % and decoding respectively and then add it together: 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org % result(i,3)=(max(new(1:end,i))/0.03)/1000000; 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org result(i,3)=(max(new(1:size(new,1)/2,i))/0.03)/1000000 + (max(new(size(new,1)/2+1:end,i))/0.03)/1000000; 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgend 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgresult 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org% Compute maximum complexity for a single frame (enc/dec separately and together) 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgmaxEncComplexityInAFrame = (max(sum(new(1:size(new,1)/2,:),2))/0.03)/1000000 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgmaxDecComplexityInAFrame = (max(sum(new(size(new,1)/2+1:end,:),2))/0.03)/1000000 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgtotalComplexity = maxEncComplexityInAFrame + maxDecComplexityInAFrame