Android 在客户机-服务器通信中,Base64转换或字节数组,哪一种是传递映像的有效方式

Android 在客户机-服务器通信中,Base64转换或字节数组,哪一种是传递映像的有效方式,android,c++,opencv,java-native-interface,native,Android,C++,Opencv,Java Native Interface,Native,我将Mat图像从Android传递给本机jni(cpp)。我使用opencv将Mat图像从android传递到jni,但FPS计数为3.2,速度非常慢。转换Base64字符串并传递到jni是传递的有效方法吗?还是直接传递位图字节数组是传递的有效方式?请说明哪一个最适合客户端-服务器通信 如果您对图像进行base64编码,则必须稍后(在客户端)对其进行解码。这需要时间和浪费资源(如果你必须对数十亿张图像进行编码/解码怎么办?) 图像已经是二进制的,所以最快的方法可能是简单地读取(或生成)图像并按原

我将Mat图像从Android传递给本机jni(cpp)。我使用opencv将Mat图像从android传递到jni,但FPS计数为3.2,速度非常慢。转换Base64字符串并传递到jni是传递的有效方法吗?还是直接传递位图字节数组是传递的有效方式?请说明哪一个最适合客户端-服务器通信

如果您对图像进行base64编码,则必须稍后(在客户端)对其进行解码。这需要时间和浪费资源(如果你必须对数十亿张图像进行编码/解码怎么办?)

图像已经是二进制的,所以最快的方法可能是简单地读取(或生成)图像并按原样发送


总之,当你只能做几个CPU周期时,你最好不要做数千个CPU周期

编码到base64将有效负载增加30%。所以这不是个好主意。它没有任何作用。感谢您的回复,知道字节数组有效传递的确切图像大小吗。。