improve protoc codec