Firefly开源社区

标题: NV12转RGB [打印本页]

作者: nystorm    时间: 2015-10-19 16:52
标题: NV12转RGB
大家通常转换NV12到RGB的方式是什么呢?除了用CPU以外,有没有用GPU的方法,或者RK有没有提供其他形式的硬件加速。 有开源的或者示例代码最好了。多谢各位
作者: bunchen    时间: 2015-10-21 10:04
GPU的话可以使用opencl来做。
作者: nystorm    时间: 2015-10-21 11:40
bunchen 发表于 2015-10-21 10:04
GPU的话可以使用opencl来做。

多谢,我找找看有没有示例代码,对这一块不太清楚 
作者: nystorm    时间: 2015-10-23 18:57
我找到rk有通过RGA的方式来进行nv12到rgb的转换方式,在 frameworks/av/media/libstagefright/colorconversion目录下. 提取代码出来好像是哪里没设置好,转出来是黑屏.  RK关于RGA的文档也缺乏.不知道各位能不能分享一下这一块怎么实现.
作者: bunchen    时间: 2015-10-24 10:32
nystorm 发表于 2015-10-23 18:57
我找到rk有通过RGA的方式来进行nv12到rgb的转换方式,在 frameworks/av/media/libstagefright/colorconversi ...

这个看起来还是cpu实现的。
作者: bunchen    时间: 2015-10-24 10:35
http://developer.t-firefly.com/thread-2925-1-1.html
参考一下这个
作者: nystorm    时间: 2015-10-24 10:54
bunchen 发表于 2015-10-24 10:32
这个看起来还是cpu实现的。

这个名字看起来是software 其实里边有修改过
有类似字符
  1. #define HW_YUV2RGB


  2. char prop_value[PROPERTY_VALUE_MAX];
  3.     sf_info *info = sf_info::getInstance();
  4.     RK_CHIP_TYPE mBoardType = (info->get_chip_type());
  5.     rga_fd  = open("/dev/rga",O_RDWR,0);
  6.     if (rga_fd > 0) {
  7.         mBoardType = RK30;
  8.     }

  9. static int32_t hwcYuv2Yuv(
  10.             private_handle_t* anb_handle,
  11.             VPU_FRAME *frame ,
  12.             int32_t mWidth,
  13.             int32_t mHeight,
  14.             int32_t rga_fd,
  15.             int32_t flags,
  16.             int32_t transform,
  17.             void* mapper_dst) {
复制代码

等,看起来像是专有硬件来干这件事,性能应该不错.
作者: jingjin221    时间: 2015-12-16 18:15
3288里的IEP模块就是专门进行SCALER操作的
作者: cloudliu    时间: 2016-3-24 15:10
楼主,最近我也在研究色彩转换,能交流一下吗? 邮箱 oetc1990@126.com




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1