我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

androidyuv,Androidyuv420sp转rgb

android camera 采集到的数据是yuv吗

是,android camera初始采集到的格式是yuv格式的,图像绘制的时候会转换成rgb格式的。

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了贵定免费建站欢迎大家使用!

android yuv怎么转换成RGB565?

参数分别是宽,高,原数据指针,转化后的目标数据指针。

你找的这个函数是用C写的,而你的save(byte[] yuv420, String path, int width, int height,int quality)是JAVA,因此你要使用JNI。或者你把cvt_420p_to_rgb565函数转成JAVA版。

举个例子 使用jni(实际自己测试):

cvt_420p_to_rgb565修改为

#ifdef __cplusplus

extern "C" {

#endif

JNIEXPORT jobjectArray JNICALL 你的包名_类名_cvt420pToRGB565(JNIEnv * env, jobject obj,jint width, jint height,jcharArray srcData,jcharArray dstData);

#ifdef __cplusplus

};

#endif

JNIEXPORT jobjectArray JNICALL 你的包名_类名_cvt420pToRGB565(JNIEnv * env, jobject obj,jint width, jint height,jcharArray srcData,jcharArray dstData)

{

unsigned char * src =(unsigned char *) (env- GetByteArrayElements(srcData,   0)); 

unsigned char * dst =(unsigned char *) (env- GetByteArrayElements(dstData,   0));

下面照抄!!

如何在Android上快速显示yuv数据

最近在搞Android方面的视频处理开发,解码出来的都是YUV420格式的数据,如何在surface上高效显示出来,颇费了一点周折,现在总结一下。

思路1:在java中将Surface指针传递到jni层,lock之后就可以获得SurfaceInfo,进而取得要显示的surface格式、高度、宽度,在2.2/2.3版本,surface的Format一般都是RGB565格式,只用做一个颜色空间的转换,scaler就可以将yuv数据显示出来。

颜色空间转换和Scaler算是比较耗时的操作了。如何提高效率,scaler最好能交给android的底层函数去做,如果有gpu的,底层函数直接会利用gpu,效率非常高,又不占用cpu资源。

思路2:

参考framework中的AwesomePlayer,里面利用AwesomeLocalRenderer/AwesomeRemoteRenderer来实现解码出来的数据显示,这个效率应该非常高,但是平台的关联性会增加很多。

调用接口比较简单,

首先创建一个render,

mVideoRenderer = new AwesomeRemoteRenderer(

mClient.interface()-createRenderer(

mISurface, component,

(OMX_COLOR_FORMATTYPE)format,

decodedWidth, decodedHeight,

mVideoWidth, mVideoHeight,

rotationDegrees));

直接调用render函数就可以显示了。

virtual void render(MediaBuffer *buffer) {

void *id;

if (buffer-meta_data()-findPointer(kKeyBufferID, id)) {

mTarget-render((IOMX::buffer_id)id);

}

}

其它的参数都很容易获得,关键是buffer_id 怎么获得?OMXCodec.cpp中有相关的可以参考。

实际的效果在我的S510E上跑,效率非常高,几乎不占用主控cpu资源,很可能都交给dsp和gpu去搞了。

思路3:

参考 camera的方式。由于在第2步已经取得了非常好的效果,笔者没有做深入研究。


网站栏目:androidyuv,Androidyuv420sp转rgb
新闻来源:http://mswzjz.cn/article/phgood.html

其他资讯