yanjinbin

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin  发布于  2017-03-17 16:53:49
采纳率 0%
9个问答
8034

HI3521A PIP视频层到底可支持几个通道

 
现在我遇到一个应用上的问题,比如车上的车左,车右,车尾安装了三个摄像头,功能要求是在检测到倒车时,车尾摄像头全屏,车左和车右
的摄像头分别缩略悬浮于左上角和右上角,我想使用PIP视频层来实现,但是今天看文档PIP支持一个画面,那么如果我需要支持2画面应该如何实现呢。

文档上这么描述的:
HI3521A PIP视频层,支持通道数,软件32,硬件1。
这个软件32是什么意思,可以支持32通道?完全没看明白。有人知道的能说说吗。
我来回答
回答19个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-17 17:02:45
认可0
本帖最后由 zhuangweiye 于 2017-3-17 17:14 编辑

mpp3.0 把视频层分为 SD型和HD型, PIP默认是SD型

两种都可以多分割,但实现方式不同, SD型多分割是利用VGS实现, HD型利用VPSS(auto模式)

所以要在PIP上实现多分割(就是软件支持32分割),可以考虑

VI/VDEC-〉VO (PIP)直接绑定,或者VI/VDEC-〉VPSS(user mode)-〉VO(PIP)

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin 2017-03-17 18:24:19
认可0
楼上的兄弟,谢谢你的回复。我想尝试下VI->VPSS->VO(PIP)
现在的问题是,PIP还不到绑定VPSS在创建通道数哪里就出错了。如下面代码:
    stVoChnAttr.stRect.s32X       = 0;                              //设置图层通道属性
    stVoChnAttr.stRect.s32Y       = 0;
    stVoChnAttr.stRect.u32Width   = 356;
    stVoChnAttr.stRect.u32Height  = 288;                       
    stVoChnAttr.u32Priority       = 0;
    stVoChnAttr.bDeflicker        = HI_FALSE;   

    s32Ret = HI_MPI_VO_SetChnAttr(VO_LAYER_PIP, 0, &stVoChnAttr);  //只支持一个画面
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_SetChnAttr failed with %#x!\n", s32Ret);
        return HI_FAILURE;
    }
   
    s32Ret = HI_MPI_VO_EnableChn(VO_LAYER_PIP, 0);
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_EnableChn failed with %#x!\n", s32Ret);
        return HI_FAILURE;
    }
#if 1
    stVoChnAttr.stRect.s32X       = 356;                           //设置图层通道属性
    stVoChnAttr.stRect.s32Y       = 0;
    stVoChnAttr.stRect.u32Width   = 356;
    stVoChnAttr.stRect.u32Height  = 288;                       
    stVoChnAttr.u32Priority       = 0;
    stVoChnAttr.bDeflicker        = HI_FALSE;   

    s32Ret = HI_MPI_VO_SetChnAttr(VO_LAYER_PIP, 1, &stVoChnAttr);  //只支持一个画面
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_SetChnAttr failed with %#x-2-!\n", s32Ret);
        return HI_FAILURE;
    }
   
    s32Ret = HI_MPI_VO_EnableChn(VO_LAYER_PIP, 1);
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_EnableChn failed with %#x-2-!\n", s32Ret);
        return HI_FAILURE;
    }
#endif
创建通道都过不去,怎么去绑定VPSS。

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin 2017-03-17 18:26:32
认可0
s32Ret = HI_MPI_VO_EnableChn(VO_LAYER_PIP, 1);    ->这里会提示失败。

伙上伴冰

0个粉丝

0

问答

0

专栏

0

资料

伙上伴冰 2017-03-19 17:29:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46707&ptid=14563]zhuangweiye 发表于 2017-3-17 17:02[/url]
mpp3.0 把视频层分为 SD型和HD型, PIP默认是SD型

两种都可以多分割,但实现方式不同, SD型多分割是利 ...[/quote]

为什么/dev/logmap一直抱错.图像能出来.

伙上伴冰

0个粉丝

0

问答

0

专栏

0

资料

伙上伴冰 2017-03-19 17:34:35
认可0
Hi3531AVHD0最高支持通道是16个.不考虑VGS性能的话, 应该是可以全部开出来的

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-20 08:23:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46711&ptid=14563]yanjinbin 发表于 2017-3-17 18:24[/url]
楼上的兄弟,谢谢你的回复。我想尝试下VI->VPSS->VO(PIP)
现在的问题是,PIP还不到绑定VPSS在创建通道数哪里 ...[/quote]

先调用 HI_MPI_VO_SetVideoLayerPartitionMode(VO_LAYER_PIP, VO_PART_MODE_SINGLE)
把PIP设成SD型(single),默认是HD型的(muti)

建议楼主可以先看一下上面API的说明

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-20 08:24:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46756&ptid=14563]伙上伴冰 发表于 2017-3-19 17:29[/url]
为什么/dev/logmap一直抱错.图像能出来.[/quote]

什么错误?

沟通真是好高的成本

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-20 08:26:05
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46758&ptid=14563]伙上伴冰 发表于 2017-3-19 17:34[/url]
Hi3531AVHD0最高支持通道是16个.不考虑VGS性能的话, 应该是可以全部开出来的[/quote]

VHD0 就不用劳烦VGS了吧,VGS可怜的性能表示很无奈, VPSS表示很不满

伙上伴冰

0个粉丝

0

问答

0

专栏

0

资料

伙上伴冰 2017-03-20 08:52:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46779&ptid=14563]zhuangweiye 发表于 2017-3-20 08:24[/url]
什么错误?

沟通真是好高的成本[/quote]

<3>[    vo] [Func]:VouChnSdVdecSend [Line]:9106 [Info]:<3>[    vo] Channel(0,3) doesn't have free node!
<3>[    vo] [Func]:VouChnSdVdecSend [Line]:9106 [Info]:<3>[    vo] Channel(0,4) doesn't have free node!


一直是这个, 有什么方式解决吗。 显示可以出来

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-20 08:59:43
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46784&ptid=14563]伙上伴冰 发表于 2017-3-20 08:52[/url]
[    vo] [Func]:VouChnSdVdecSend [Line]:9106 :[    vo] Channel(0,3) doesn't have free node!
[     ...[/quote]

这个是[Info], 不是错误

不过按理是不应该出来才对

伙上伴冰

0个粉丝

0

问答

0

专栏

0

资料

伙上伴冰 2017-03-20 09:08:59
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46785&ptid=14563]zhuangweiye 发表于 2017-3-20 08:59[/url]
这个是, 不是错误

不过按理是不应该出来才对[/quote]

这个是什么问题,我解码显示卡顿可能和这个有关

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin 2017-03-20 16:19:34
认可0
[quote]先调用 HI_MPI_VO_SetVideoLayerPartitionMode(VO_LAYER_PIP, VO_PART_MODE_SINGLE)
把PIP设成SD型(single),默认是HD型的(muti)[/quote]

PIP可以多分割了,使用方法如下:
1.VPSS设置为用户模式
            stVpssMode.enChnMode = VPSS_CHN_MODE_USER;
            stVpssMode.u32Width  = 960;//pstSize->u32Width;
            stVpssMode.u32Height = 576;//pstSize->u32Height;
                                    stVpssMode.stFrameRate.s32DstFrmRate = -1;
                                    stVpssMode.stFrameRate.s32SrcFrmRate = -1;            
            stVpssMode.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
            stVpssMode.enCompressMode = COMPRESS_MODE_NONE;

            stVpssMode.stAspectRatio.enMode = ASPECT_RATIO_NONE;
            
            s32Ret = HI_MPI_VPSS_SetChnMode(VpssGrp, VpssChn, &stVpssMode);
2.PIP设置为单分区模式
       s32Ret = HI_MPI_VO_SetVideoLayerPartitionMode(VoLayer_pip, VO_PART_MODE_SINGLE);
3.在PIP图层创建多个通道然后绑定VPSS即可。

但是带来的唯一问题是,这样PIP覆盖整个显示区域,PIP是显示了但是覆盖了原来的HD视频图层。
这导致无法再一个大画面上悬浮显示2个小画面。

为实现整个效果,不知道兄弟们还有什么好的建议。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-20 16:24:08
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46828&ptid=14563]yanjinbin 发表于 2017-3-20 16:19[/url]
PIP可以多分割了,使用方法如下:
1.VPSS设置为用户模式
            stVpssMode.enChnMode = VPSS_CHN ...[/quote]

PIP  需要的地方设置两个小窗口,其他地方不去设就好了,下面HD的视频就会显示出来

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin 2017-03-20 17:25:07
认可0
谢谢你的回复。
但是我真的只是设置了2个小窗口,如下:
    stVoChnAttr.stRect.s32X       = 0;                              //设置图层通道属性
    stVoChnAttr.stRect.s32Y       = 0;
    stVoChnAttr.stRect.u32Width   = 356;
    stVoChnAttr.stRect.u32Height  = 288;                       
    stVoChnAttr.u32Priority       = 0;
    stVoChnAttr.bDeflicker        = HI_FALSE;   

    s32Ret = HI_MPI_VO_SetChnAttr(VO_LAYER_PIP, 0, &stVoChnAttr);  //只支持一个画面
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_SetChnAttr failed with %#x!\n", s32Ret);
        return HI_FAILURE;
    }
   
    s32Ret = HI_MPI_VO_EnableChn(VO_LAYER_PIP, 0);
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_EnableChn failed with %#x!\n", s32Ret);
        return HI_FAILURE;
    }
#if 1
    stVoChnAttr.stRect.s32X       = 356;                           //设置图层通道属性
    stVoChnAttr.stRect.s32Y       = 0;
    stVoChnAttr.stRect.u32Width   = 356;
    stVoChnAttr.stRect.u32Height  = 288;                       
    stVoChnAttr.u32Priority       = 0;
    stVoChnAttr.bDeflicker        = HI_FALSE;   

    s32Ret = HI_MPI_VO_SetChnAttr(VO_LAYER_PIP, 1, &stVoChnAttr);  //只支持一个画面
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_SetChnAttr failed with %#x-2-!\n", s32Ret);
        return HI_FAILURE;
    }
   
    s32Ret = HI_MPI_VO_EnableChn(VO_LAYER_PIP, 1);
    if (s32Ret != HI_SUCCESS)
    {
        logs("HI_MPI_VO_EnableChn failed with %#x-2-!\n", s32Ret);
        return HI_FAILURE;
    }
#endif
就是这样简单的在PIP图层创建了2个通道,但是其他没设置的地方会自动显示为背景色,而不是视频层的图像。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-20 17:28:35
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46834&ptid=14563]yanjinbin 发表于 2017-3-20 17:25[/url]
谢谢你的回复。
但是我真的只是设置了2个小窗口,如下:
    stVoChnAttr.stRect.s32X       = 0;         ...[/quote]

背景色设成 0x00000000 试试

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin 2017-03-20 18:03:50
认可0
[quote]背景色设成 0x00000000 试试[/quote]
我在图层属性那找半天都没看到哪里可以设置背景颜色的,我把属性翻了一遍好像没有那个属性时可以设置背景颜色的。

是不是没这个选项。

yanjinbin

0个粉丝

9

问答

0

专栏

0

资料

yanjinbin 2017-03-20 18:15:24
认可0
stVoPubAttr.u32BgColor = 0x00000000;//0x000000ff;
在HD0设备属性中,找到一个背景颜色设置,但是设置为0x00000000只是背景变为黑色,并不会显示视频层。

LinJoy

0个粉丝

1

问答

0

专栏

0

资料

LinJoy 2017-06-12 01:01:48
认可0
本帖最后由 LinJoy 于 2017-6-12 01:03 编辑

3521A PIP 只能 1 個通道, 且只能用於 HD (高清畫面)
多畫面是使用合併的方法, 會有畫面疊加的問題
而且非常不幸的, WGS 並不能複製此通道
要用其他處理方法顯示到 CVBS 端

yang11

0个粉丝

1

问答

0

专栏

0

资料

yang11 2020-03-03 17:06:25
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=46828&ptid=14563]yanjinbin 发表于 2017-3-20 16:19[/url]
PIP可以多分割了,使用方法如下:
1.VPSS设置为用户模式
            stVpssMode.enChnMode = VPSS_CHN ...[/quote]

大哥,请问这个问题还有印象么,PIP覆盖了HD视频层的问题如何解决的
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区