EDIT: some code made available] From a personal experience, and in the work of colleagues, we observed that multi-band dual-tree wavelets, a type of low-redundancy oriented decompositions based on Hilbert pair of wavelets, were an interesting alternative to higher redundancy transformations (curvelets, shearlets). You can have a two-fold or four fold redundancy. Even if you can have fewer directions than with other transforms (a survey on 2D geometric wavelet-like representations is given in A panorama on multiscale geometric representations, 2011, L. Jacques et al.), the Hilbert properties yields useful statistical properties with Gaussian noise.
Caveat: such design sometimes requires to relax the tight frame condition (depending on the optimization used), see Relaxing Tight Frame Condition in Parallel Proximal Methods for Signal Restoration, IEEE TSP, 2012. Another type of image restoration with the same wavelets and no issue with the tight frame condition is discussed in Sparse adaptive template matching and filtering for 2D seismic images with dual-tree wavelets and proximal methods, 2015, ICIP.
Those dual-tree wavelets originate from Image Analysis Using a Dual-Tree $M$-Band Wavelet Transform, 2006, and the improvement over curvelets was shown, for instance (for standard denoising), in A Nonlinear Stein Based Estimator for Multichannel Image Denoising, 2008.
[EDIT] The 2D code is now available, embedded in a denoising toolbox: $M$-band 2D dual-tree (Hilbert) wavelet multicomponent image denoising, so you might need a little work. I hope I can work on a cleaner implementation. Recently related discussions in How to implement a $j$-level $M$-band wavelet transform of an image? and Code for a wavelet based hilbert transform?