qn1533302906

qn1533302906

0个粉丝

7

问答

0

专栏

0

资料

qn1533302906  发布于  2019-02-26 14:43:47
采纳率 0%
7个问答
3944

海思图形层graphic贴图显示问题

 
平台3559,需求是使用QT贴到图形层fb0上的G0,fb0图像格式ARGB8888,然后叠加VideoLayer0输出,目前遇到问题是Hardware上使用MIPI_TX来外接输出显示,输出的数据格式为RGB。目前根据sample的一些配置纯的videolayer0是可以正常扔出到MIPI-tx上后正常显示的,但graphic上的fb0经过叠加后图像显示异常。
所以怀疑图像叠加CMB模块有特殊的格式需要,不知道谁了解一些。
我来回答
回答10个
时间排序
认可量排序

qn1533302906

0个粉丝

7

问答

0

专栏

0

资料

qn1533302906 2019-02-26 14:45:10
认可0

qn1533302906

0个粉丝

7

问答

0

专栏

0

资料

qn1533302906 2019-02-26 14:45:48
认可0
CBM0需不需要说是在叠加时一定要输入的是YUV的数据

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2019-02-26 14:50:50
认可0
什么异常? 没有图吗?

qn1533302906

0个粉丝

7

问答

0

专栏

0

资料

qn1533302906 2019-02-26 15:17:38
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=124392&ptid=57977]zhuangweiye 发表于 2019-2-26 14:50[/url]
什么异常? 没有图吗?[/quote]

视频层参考sample的配置是可以正常的(打开了CSC功能,因为MIPI TX需要输出RGB的数据),QT的UI到graphic0上最终显示出来只是颜色出现了失真轮廓都没有问题,我们考虑到QT是RGB888格式的而默认G0是自动打开CSC转换为YUV格式的,所以怀疑是不是CBM在叠加图层是是否一定要是YUV去输入才行,两路都进来RGB的数据叠加就会出错?
    if(VO_INTF_MIPI == enVoIntfType)
    {
        s32Ret = HI_MPI_VO_GetVideoLayerCSC(VoLayer, &stVideoCSC);
        if (HI_SUCCESS != s32Ret)
        {
            SAMPLE_PRT("HI_MPI_VO_GetVideoLayerCSC failed!\n");
            SAMPLE_COMM_VO_StopDev(VoDev);
            return s32Ret;
        }
        stVideoCSC.enCscMatrix =VO_CSC_MATRIX_BT709_TO_RGB_PC;
        s32Ret = HI_MPI_VO_SetVideoLayerCSC(VoLayer, &stVideoCSC);
        if (HI_SUCCESS != s32Ret)
        {
            SAMPLE_PRT("HI_MPI_VO_SetVideoLayerCSC failed!\n");
            SAMPLE_COMM_VO_StopDev(VoDev);
            return s32Ret;
        }
    }

yxgi5

0个粉丝

1

问答

0

专栏

0

资料

yxgi5 2019-09-05 08:34:41
认可0
你好,这个问题你解决了吗?

yxgi5

0个粉丝

1

问答

0

专栏

0

资料

yxgi5 2019-09-05 11:30:21
认可0
搞定。
下面的内容要加在合适的位置
            s32Ret = HI_MPI_VO_GetGraphicLayerCSC(GraphicLayer, &stGraphicCSC);
            stGraphicCSC.enCscMatrix =VO_CSC_MATRIX_IDENTITY;
            s32Ret = HI_MPI_VO_SetGraphicLayerCSC(GraphicLayer, &stGraphicCSC);
            if (HI_SUCCESS != s32Ret)
            {
                SAMPLE_PRT("HI_MPI_VO_SetGraphicLayerCSC failed!\n");
                return s32Ret;
            }

实在不行就强制修改寄存器
~ # devmem 0x11107900
0x00400000
~ # devmem 0x11107900 w 0


总之, 两路都进来RGB的数据叠加没问题啊

wmatrix

0个粉丝

1

问答

0

专栏

0

资料

wmatrix 2019-11-01 17:51:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=147361&ptid=57977]yxgi5 发表于 2019-9-5 11:30[/url]
搞定。
下面的内容要加在合适的位置
            s32Ret = HI_MPI_VO_GetGraphicLayerCSC(GraphicLayer,  ...[/quote]

非常感谢你的答案解决了我一样的问题!合适的位置是在打开图形岑即/dev/fb0之后进行设置才能生效。

qn1529663950

0个粉丝

6

问答

0

专栏

0

资料

qn1529663950 2019-11-22 17:31:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=149183&ptid=57977]wmatrix 发表于 2019-11-1 17:51[/url]
非常感谢你的答案解决了我一样的问题!合适的位置是在打开图形岑即/dev/fb0之后进行设置才能生效。[/quote]

感谢,感谢,也解决了我的问题。

qn1564715643

0个粉丝

6

问答

0

专栏

0

资料

qn1564715643 2020-04-29 17:10:55
认可0
奇怪,我的怎么报错了 0xa00f8003 参数错误。只改了stVideoCSC.enCscMatrix = VO_CSC_MATRIX_IDENTITY;

维克多-朱果

0个粉丝

1

问答

0

专栏

0

资料

维克多-朱果 2022-06-24 10:13:37
认可0

总结一下:
平台3559

  1. 图形层默认 CSC 转换矩阵为 VO_CSC_MATRIX_RGB_TO_BT601_TV,当设置
    RGB 数据输出接口(如 LCD,MIPI_Tx)时,需要选择
    VO_CSC_MATRIX_IDENTITY 使输出数据保持为 RGB 类型,否则显示异常。
  2. 该HI_MPI_VO_Set(Get)GraphicLayerCSC接口须在图形层使能之后再调用,否则图形层的 CSC 会被配置为默认值。
  3. 该接口需要在打开/dev/fbx之后调用才会生效
  4. 如果正确设置以上接口后颜色还是不对,因为还有一点需要注意:
    对于高清显示设备DHD1(此处为MIPI-TX LCD屏),其支持图像层G1, G3。
    在使用fb设备时,G1对应/dev/fb1,G3对应/dev/fb2,对应关系不正确也会显示异常。
    若使用G3,需要使用HI_MPI_VO_BindGraphicLayer,HI_MPI_VO_UnBindGraphicLayer,对设备进行解绑与绑定。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区