www.gusucode.com > visionhdl工具箱matlab源码程序 > visionhdl/visionhdlexamples/DesignAccelerationHDLTestBench.m

    function DesignAccelerationHDLTestBench
% DesignAccelerationHDLTestBench  Provide test bench for HDL code generation

%   Copyright 2015 The MathWorks, Inc.

%#codegen
coder.extrinsic('tic');
coder.extrinsic('toc');   
coder.extrinsic('fprintf');

% frm2pix converts an input frame to a stream of pixels and control structures
frm2pix = visionhdl.FrameToPixels(...
        'VideoFormat','1080p'); 
[actPixPerLine,actLine,numPixPerFrm] = getparamfromfrm2pix(frm2pix);

% pix2frm converts a pixel stream and control structures to a full frame
pix2frm = visionhdl.PixelsToFrame(...
        'VideoFormat','1080p');            
 
% videoIn reads a rhinos video
videoIn = vision.VideoFileReader(... 
        'Filename','rhinos.avi',...
        'ImageColorSpace','Intensity',...
        'VideoOutputDataType','uint8');  
         
pixOutVec = false(numPixPerFrm,1);
ctrlOutVec = repmat(pixelcontrolstruct,numPixPerFrm,1);

numFrm = 10;
tic;
for f = 1:numFrm       
    frmFull = step(videoIn);       % Get a new frame
    frmIn = imresize(frmFull,[actLine actPixPerLine]); % Enlarge the frame
    [pixInVec,ctrlInVec] = step(frm2pix,frmIn);          
    for p = 1:numPixPerFrm            
        [pixOutVec(p),ctrlOutVec(p)] = DesignAccelerationHDLDesign(pixInVec(p),ctrlInVec(p));                                           
    end             
    frmOut = step(pix2frm,pixOutVec,ctrlOutVec);    
    
    DesignAccelerationHDLViewer(actPixPerLine,actLine,[frmIn uint8(255*frmOut)]);            
end
t = toc;

fprintf('\n%d frames have been processed in %.2f seconds.\n',numFrm,t);
fprintf('Average frame rate is %.2f frames/second.\n',numFrm/t);