def run_test(images, th, alpha, block_size): image0 = images[0] im_size = len(image0) bwidth, bheight = block_size assert(im_size == bwidth * bheight) # only one pe code = Code() code.set_generator(gen_bbs, block_size, {'th':th, 'alpha':alpha}) output = [] sim = None for im in images: # interpreter expects 2D array im_tr = [[im[i*width + j] for j in xrange(bwidth)] for i in xrange(bheight)] if not sim: sim = Interpreter(code, im_tr, block_size) else: # restart code gen sim.reset() # set new image sim.set_src_image(im_tr) sim.run() im_out = sim.gen_output_image(1) # convert to 1D vector im_out_1D = [] for row in im_out: for v in row: im_out_1D.append(v) output.append(im_out_1D) return output
def run_codegen_function(test_image, code_gen, block_size, args, buffer_sel = 1, **kwargs): image2buffer = kwargs['image2buffer'] if 'image2buffer' in kwargs else {} im_size = len(test_image[0]), len(test_image) pe_dim = [s//b for s,b in zip(im_size, block_size)] # fill this in for all functions args['pe_dim'] = pe_dim code = Code() code.set_generator(code_gen, block_size, args) sim = Interpreter(code, test_image, block_size) for buffer_nr, image in image2buffer.iteritems(): sim.set_src_image(image, buffer_nr) sim.run() return sim.gen_output_image(buffer_sel, False, False, True), sim