- Notifications
You must be signed in to change notification settings - Fork89
Open
Description
struct Pixel {unsignedint8 r, g, b; };unsignedint8rgb2gray_kernel(Pixel p) {return (p.r*76+ p.g*150+ p.b*30)>>8;}exportvoidrgb2gray(uniformunsignedint8*uniform src,uniformunsignedint8*uniform dst,uniformsize_t width,uniformsize_t height,uniformsize_t stride) {for (uniformint h=0; h<height;++h) {uniformunsignedint8*uniform scanline_start= src+ h* stride;uniform Pixel* scanline= (uniform Pixel*uniform)scanline_start;uniformunsignedint8*uniform out_scanline= dst+ h* width;foreach (w=0...width) {unsignedint8 v=rgb2gray_kernel(scanline[w]); out_scanline[w]= v; } }}
compiled with
ispc rgb2gray.ispc -h rgb2gray.h -o rgb2gray.o -O3 --pic --target=avx2-i32x16Metadata
Metadata
Assignees
Labels
No labels