Esempio n. 1
0
    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
Esempio n. 2
0
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