M-ary Runlength Limited Coding and Signal Processing for Optical Data Storage