Patrikalakis Maekawa and Cho have a relatively simple approach which may be useful. They essentially take the control point polygon for a spline, and try to offset it, then evaluate the deviation between the curves and if the deviation is insufficiently exact, they split the spline and try again.
http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node222.html
Alternatively, Gabriel Suchowolski's paper, Quadratic bezier offsetting with selective subdivision.