¿Cuál es la diferencia entre Protocol Buffers y Flatbuffers?

Ambas son bibliotecas de serialización y están desarrolladas por desarrolladores de Google. ¿Existe una gran diferencia entre ellos? ¿Es mucho trabajo convertir código usando Protocol Buffers para usar FlatBuffers