给我糖

给我糖

0个粉丝

1

问答

0

专栏

0

资料

给我糖  发布于  2020-12-01 21:46:37
采纳率 0%
1个问答
6643

海思HI3519AV100的ISP是否可以处理YUV数据?

     
问题描述

海思3519A手册上的ISP针对BAYER格式的RAW数据输出的Sensor,我们项目的Sensor是YUV输出的,也想使用海思自带的ISP,请教大神们这样是否可行?如何可行,该如何实现?

问题出现的环境背景及自己尝试过哪些方法

1.Sensor输出是YUV420格式的数据,按BT656的时序送入HI3519A的VI,经PiPE2,后绑VPSS->VO正常输出显示;
2.PIPE2因为输入enPixelFormat是YUV,bIspBypass配置必须为HI_TRUE, ISP无法启用;
3.另启动PIPE3,输入enPixelPormat设置为BAYER_8BPP, 将PIPE2取出的YUV数据的Y分量直接当作BAYER RGB RAW数据送入PIPE3, PIPE3无ISP中断

相关代码

粘贴代码文本或者代码截图

...
    retVal = HI_MPI_VI_GetPipeFrame(viPipe, pFrmIsp, 5000);
    if (HI_SUCCESS != retVal)
    {
        ERROR_LOG("[%s]pipeId[%d]HI_MPI_VI_GetPipeFrame failed.\n", __func__, viPipe);
        return retVal;
    }
    dstW = pFrmIsp->stVFrame.u32Width;
    dstH = pFrmIsp->stVFrame.u32Height;

    pFrmIsp->stVFrame.enPixelFormat = PIXEL_FORMAT_RGB_BAYER_8BPP;
    pFrmIsp->stVFrame.enVideoFormat = VIDEO_FORMAT_LINEAR;
    pFrmIsp->stVFrame.enCompressMode = COMPRESS_MODE_NONE;
    pFrmIsp->stVFrame.enField = VIDEO_FIELD_FRAME;
    pFrmIsp->stVFrame.enDynamicRange = DYNAMIC_RANGE_SDR8;
    pFrmIsp->stVFrame.enColorGamut = COLOR_GAMUT_BT601;
#if 0
    /*YUV 转 RGB*/
    __PLATFORM_VI_transCsc(pFrmIsp->stVFrame.u64PhyAddr[0], pFrame->stVFrame.u64PhyAddr[0], 
                           srcW, srcH, IVE_CSC_MODE_VIDEO_BT601_YUV2RGB);
    /*RGB 转 BAYER RAW*/
    __PLATFORM_VI_transBayerRaw(pFrmIsp->stVFrame.u64PhyAddr[0], srcW, srcH);
#endif
    __PLATFORM_VI_copyDma(pFrmIsp->stVFrame.u64PhyAddr[0], pFrame->stVFrame.u64PhyAddr[0], srcW, srcH);
    retVal = HI_MPI_VI_SetPipeFrameSource(viPipe, VI_PIPE_FRAME_SOURCE_USER_BE);
    if (HI_FAILURE == retVal)
    {
        ERROR_LOG("[%s]pipeId[%d]HI_MPI_VI_SetPipeFrameSource failed.\n", __func__, viPipe);
        goto EXIT;
    }

    HI_U32 pipeNum = 1;
    VI_PIPE pipeId[1];
    const VIDEO_FRAME_INFO_S *pstVideoFrame[1];
    HI_S32 milliSec = 5000;

    pipeId[0] = viPipe;
    pstVideoFrame[0] = pFrmIsp;
    retVal = HI_MPI_VI_SendPipeRaw(pipeNum, pipeId, pstVideoFrame, milliSec);
    if (HI_FAILURE == retVal)
    {
        ERROR_LOG("[%s]pipeId[%d]HI_MPI_VI_SendPipeRaw failed.\n", __func__, pipeId[0]);
        goto EXIT;
    }
#endif
    retVal = HI_MPI_VI_ReleasePipeFrame(viPipe, pFrmIsp);
    if (HI_SUCCESS != retVal)
    {
        ERROR_LOG("[%s]pipeId[%d]HI_MPI_VI_GetPipeFrame failed.\n", __func__, viPipe);
        goto EXIT;
    }
...
你期待的结果是什么?实际看到的错误信息又是什么?

1.PIPE3可以识别到ISP RAW 数据,ISP有中断;后续ISP功能可以PIPe3启用;
2.是否有其他方式可以使ISP处理YUV数据?只要让ISP可以处理YUV就行,什么方法都可以,拜请大神指导师

我来回答
回答5个
时间排序
认可量排序

wer

0个粉丝

2

问答

0

专栏

0

资料

wer 2020-12-02 01:18:24
认可2

帮顶不要沉

Pere_Ai

1个粉丝

1

问答

0

专栏

0

资料

Pere_Ai 2021-09-28 20:17:23
认可0

可以处理YUvshuju

追风~忆梦

0个粉丝

0

问答

0

专栏

0

资料

追风~忆梦 2022-03-14 18:06:50
认可0

群主,你的自己灌YUV到VI的功能实现了吗? 能参考一下么? Q_1028150787

warren@伟

40个粉丝

4

问答

14

专栏

6

资料

warren@伟 2022-08-12 14:15:05
认可0

楼主后面解决了吗,有没有相关的文档可以参考

魔都小二

10个粉丝

3

问答

0

专栏

1

资料

魔都小二 2022-09-03 16:00:36
认可0

多看看 手册 手册里写的很清楚

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区