Agregar Escala De Grises A Una Imagen

El código debajo agrega una escala de grises a una imagen cuando se pasa por encima de ella (:hover). No todos los navegadores soportan la propiedad filter.

img.grayscale{
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%); /* For Webkit browsers */
    filter: gray; /* For IE 6 - 9 */
    -webkit-transition: all .6s ease; /* Fade to color for Chrome and Safari */
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+, Firefox on Android */
}

img.grayscale:hover{
    filter: grayscale(0%);
    -webkit-filter: grayscale(0%);
    filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}