http://dx.doi.org/10.1109/TVLSI.2005.863187