//if (false) for (_y in range(img.dim.y)) { var y = _y; //y = bitwiseAnd(y, magic)+100; // do 1x scanline var loops = (img.dim.x+15)/16; var src = &img[0,-3,y]; var dst = &tmp[0,0,y]; //breakpoint(); var u = uload16b(src); for (x in range(loops*1i64)) { /* var a = uload16b(src+x*16+0); var b = uload16b(src+x*16+1); var c = uload16b(src+x*16+2); var d = aload16b(src+x*16+3); var e = uload16b(src+x*16+4); var f = uload16b(src+x*16+5); var g = uload16b(src+x*16+6); */ var v = uload16b(src+x*16+16); var a = shr_qq(u,v, 0*8); var b = shr_qq(u,v, 1*8); var c = shr_qq(u,v, 2*8); var d = shr_qq(u,v, 3*8); var e = shr_qq(u,v, 4*8); var f = shr_qq(u,v, 5*8); var g = shr_qq(u,v, 6*8); var zero = Vec[Byte, 16](0u8); var ag = avg_b(a,g); var bf = avg_b(b,f); var ce = avg_b(c,e); var d2 = avg_b(d,zero); var agbf = avg_b(ag,bf); var ced = avg_b(ce,d2); var t = avg_b(agbf, ced); astore16b(dst+x*16, t); u = v; } }