, Department of Computer Engineering, Ecole Polytechnique de Montreal, Montreal, Quebec, CANADA, Canada