|
ARM NEON Compositor
master
Fast SIMD alpha overlay and blending for ARM
|
Go to the source code of this file.
Namespaces | |
| perf_test | |
Variables | |
| dir = path.dirname(path.realpath(__file__)) | |
| parser = argparse.ArgumentParser(description='Benchmark for overlay_alpha') | |
| dest | |
| action | |
| help | |
| type | |
| int | |
| default | |
| choices | |
| args = parser.parse_args() | |
| uint8_t_p = ctypes.POINTER(ctypes.c_uint8) | |
| size_t = ctypes.c_size_t | |
| void = None | |
| string | so = "libalpha-lib-" |
| dll = ctypes.cdll.LoadLibrary(path.join(dir, so)) | |
| overlay_alpha = dll['overlay_alpha_stride_' + args.rescale] | |
| argtypes | |
| restype | |
| sizes = np.linspace(args.min_size, args.max_size, args.N, dtype=np.int) | |
| times = np.zeros((args.N, )) | |
| bg_img = np.random.randint(255, size=(size, size, 4), dtype=np.uint8) | |
| fg_img = np.random.randint(255, size=(size, size, 4), dtype=np.uint8) | |
| out_img = np.zeros((size, size, 4), dtype=np.uint8) | |
| bg_img_p = bg_img.ctypes.data_as(uint8_t_p) | |
| fg_img_p = fg_img.ctypes.data_as(uint8_t_p) | |
| out_img_p = out_img.ctypes.data_as(uint8_t_p) | |
| iterations = int(round(args.max_size * args.max_iterations / size)) | |
| start_time = time.perf_counter() | |
| end_time = time.perf_counter() | |
| results = np.column_stack((sizes, times)) | |
| tuple | simd = (' simd ' if args.SIMD else ' no-simd ') |
| tuple | name = str(time.asctime()) + simd + args.rescale + ' ' + platform.machine() |
| delimiter | |