I'm not sure it's much less verbose than
```
nt2::table<uint8_t, nt2::settings(_2D, nt2::shared_)> in( _2D(h, w), nt2::share(data, data+h*w) );
nt2::table<uint8_t, C_allocator<char> > out = ~in;
return out.release();
```