wang_hi

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi  发布于  2017-01-20 09:14:08
采纳率 0%
15个问答
9108

vpss拓展通道的使用方法

 
最近在做一个hi3518Ev200+9732, 720p的摄像机, 想在编码的时候放大为1080p, 使用的sdk是Hi3518E V200R001C01SPC021, 看了文档说明, 只有vpss的拓展通道可以放大图像.可是我使用拓展通道, 程序运行正常,
就是拓展通道没有数据, (物理通道是有图像的).
我的做法是:
1. 首先设置一个物理通道 vpssChn = 1;
2.  stVpssExtChnAttr.s32BindChn = 1;  //绑定物理通道1
                stVpssExtChnAttr.u32Width = stSize.u32Width;
                stVpssExtChnAttr.u32Height = stSize.u32Height;
                stVpssExtChnAttr.s32SrcFrameRate = -1;
                stVpssExtChnAttr.s32DstFrameRate = -1;
                stVpssExtChnAttr.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
                stVpssExtChnAttr.enCompressMode = COMPRESS_MODE_NONE;
然后设置一个拓展通道 vpssChn = 4, ;
3. 将拓展通道 4 和 编码通道绑定.

结果是: 当我使用物理通道1直接和编码通道绑定的时候, 是可以看到图像的,
          但是当我使用拓展通道4和编码通道绑定的时候,是没有图像的.

有那位大神遇到这样的问题, 帮忙看一下, 一般使用vpss的拓展通道应该怎么使用????
我来回答
回答23个
时间排序
认可量排序

llsh

0个粉丝

20

问答

0

专栏

3

资料

llsh 2017-01-20 10:25:30
认可0
HI_MPI_VPSS_SetExtChnCrop();扩展通道设置corp属性。
然后使能你的扩展通道4HI_MPI_VPSS_EnableChn(0,4);

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-01-20 17:48:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=44431&ptid=14013]llsh 发表于 2017-1-20 10:25[/url]
HI_MPI_VPSS_SetExtChnCrop();扩展通道设置corp属性。
然后使能你的扩展通道4HI_MPI_VPSS_EnableChn(0,4 ...[/quote]

非常非常感谢.....
拓展通道可以使用了, 不过自己总结一下设置的顺序:
1. 首先, 使能一个vpss物理通道(VpssChn < VPSS_MAX_PHY_CHN_NUM),
2. 然后, 设置拓展通道属性  HI_MPI_VPSS_SetChnAttr() , 设置 stVpssExtChnAttr.s32BindChn的值为上面的物理通道,表示绑定到该物理通道.
3. 其次, 设置扩展通道corp属性 HI_MPI_VPSS_SetExtChnCrop();
4. 最后, 使能扩展通道4 HI_MPI_VPSS_EnableChn(0,4);

注意: 必须先设置拓展通道属性(步骤2), 然后设置扩展通道corp属性(步骤3), 否则无图像.

llsh

0个粉丝

20

问答

0

专栏

3

资料

llsh 2017-01-21 11:21:11
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=44466&ptid=14013]wang_hi 发表于 2017-1-20 17:48[/url]
非常非常感谢.....
拓展通道可以使用了, 不过自己总结一下设置的顺序:
1. 首先, 使能一个vpss物理通道 ...[/quote]

哈哈,我终于帮助了一个人了:):)

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-02-09 08:56:14
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=44469&ptid=14013]llsh 发表于 2017-1-21 11:21[/url]
哈哈,我终于帮助了一个人了[/quote]

谢谢,希望您再接再厉...:):)

hiuser

0个粉丝

8

问答

0

专栏

1

资料

hiuser 2017-02-16 11:30:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=44466&ptid=14013]wang_hi 发表于 2017-1-20 17:48[/url]
非常非常感谢.....
拓展通道可以使用了, 不过自己总结一下设置的顺序:
1. 首先, 使能一个vpss物理通道 ...[/quote]

楼主:
第二步是HI_MPI_VI_SetExtChnAttr吧。
我按照楼主步骤设置,最后在HI_MPI_VPSS_EnableChn失败了,报告
0xA0078002 HI_ERR_VPSS_INVALID_CHNID
可能是什么原因呢。

另外楼主的SDK是那个版本?

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-02-17 09:11:57
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45144&ptid=14013]hiuser 发表于 2017-2-16 11:30[/url]
楼主:
第二步是HI_MPI_VI_SetExtChnAttr吧。
我按照楼主步骤设置,最后在HI_MPI_VPSS_EnableChn失败了 ...[/quote]

0xA0078002 HI_ERR_VPSS_INVALID_CHNID VPSS 通道号无效
我用的sdk是Hi3518E V200R001C01SPC021, 拓展通道为[4, 11], 通道 0--3都是物理通道, 你看看是不是通道号有问题,

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-02-17 09:25:16
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45144&ptid=14013]hiuser 发表于 2017-2-16 11:30[/url]
楼主:
第二步是HI_MPI_VI_SetExtChnAttr吧。
我按照楼主步骤设置,最后在HI_MPI_VPSS_EnableChn失败了 ...[/quote]

不知道你的问题解决了没有, 我之前使用拓展通道是为了是720P的9732sonsor, 放大到1080P, 后来如果放大的话就没有图像, 所以就没有做,

hiuser

0个粉丝

8

问答

0

专栏

1

资料

hiuser 2017-02-17 09:42:36
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45191&ptid=14013]wang_hi 发表于 2017-2-17 09:25[/url]
不知道你的问题解决了没有, 我之前使用拓展通道是为了是720P的9732sonsor, 放大到1080P, 后来如果放大的 ...[/quote]

还没有我也想做放大,不过目前尝试缩小方案

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-02-17 11:01:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45195&ptid=14013]hiuser 发表于 2017-2-17 09:42[/url]
还没有我也想做放大,不过目前尝试缩小方案[/quote]

今天突然想到可能是vb不足导致的, 尝试了一下, 在分配vb的时候分配成1080的缓冲, 就可以出图像了, 就是在使用拓展缓冲之后, 帧率又不对了,

-------------------------------VPSS CHN OUTPUT RESOLUTION---------------------------------------------------
   GrpID   ChnID  Enable   Width  Height  Pixfmt  CompressMode   FrameRate
       0       1       1    1280     720   SP420             0          10
       0       2       1     352     288   SP420             0          30
       0       4       1    1920    1080   SP420             0          10

正在查看原因......

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-02-17 11:06:41
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=44469&ptid=14013]llsh 发表于 2017-1-21 11:21[/url]
哈哈,我终于帮助了一个人了[/quote]

您好, 我想在问一下, 我在使用vpss拓展通道的时候, 发现帧率不对了, 您有遇到过如下情况吗?

-------------------------------VPSS CHN OUTPUT RESOLUTION---------------------------------------------------
   GrpID   ChnID  Enable   Width  Height  Pixfmt  CompressMode   FrameRate
       0       1       1    1280     720   SP420             0          10
       0       2       1     352     288   SP420             0          30
       0       4       1    1920    1080   SP420             0          10

hiuser

0个粉丝

8

问答

0

专栏

1

资料

hiuser 2017-02-23 14:20:38
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45202&ptid=14013]wang_hi 发表于 2017-2-17 11:01[/url]
今天突然想到可能是vb不足导致的, 尝试了一下, 在分配vb的时候分配成1080的缓冲, 就可以出图像了, 就是在 ...[/quote]

多谢分享,我的放大也实现了

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-02-24 09:15:33
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45512&ptid=14013]hiuser 发表于 2017-2-23 14:20[/url]
多谢分享,我的放大也实现了[/quote]

不客气, 大家共同学习嘛!!
不过放大是可以, 但是帧率还是不对, 1080P现在只能做到16帧左右, 你的可以做到多少帧?
我觉得可能还是vb缓冲吧,我分配的是4块.应该有5块就可以了,只是我的系统空间不够了.
还有就是帧间隔时间有点不稳定, 有时候图形有点卡,不知道你有这种情况吗?

tango_zhu

14个粉丝

14

问答

0

专栏

3

资料

tango_zhu 2017-02-26 00:54:42
认可0
很好的经验

放学后不许跑

0个粉丝

2

问答

0

专栏

0

资料

放学后不许跑 2017-05-24 11:45:25
认可0
楼主请问是这样设置拓展通道4的吗?
VpssChn = 4;
                    stVpssChnMode.enChnMode      = VPSS_CHN_MODE_USER;
                    stVpssChnMode.bDouble           = HI_FALSE;
                    stVpssChnMode.enPixelFormat  = SAMPLE_PIXEL_FORMAT;
                    stVpssChnMode.u32Width         = stSize.u32Width;
                    stVpssChnMode.u32Height        = stSize.u32Height;
                    stVpssChnMode.enCompressMode = COMPRESS_MODE_SEG;
                    memset(&stVpssChnAttr, 0, sizeof(stVpssChnAttr));
                    stVpssChnAttr.s32SrcFrameRate = -1;
                    stVpssChnAttr.s32DstFrameRate = -1;

                    VPSS_EXT_CHN_ATTR_S pstVpssExtChnAttr;
                        
                    pstVpssExtChnAttr.s32BindChn=0;            

                    pstVpssExtChnAttr.u32Width=stSize.u32Width;              
                    pstVpssExtChnAttr.u32Height=stSize.u32Height;            
                    pstVpssExtChnAttr.s32SrcFrameRate=-1;        
                    pstVpssExtChnAttr.s32DstFrameRate=-1;        
                    pstVpssExtChnAttr.enPixelFormat=SAMPLE_PIXEL_FORMAT;              
                    pstVpssExtChnAttr.enCompressMode=COMPRESS_MODE_SEG;  

(是不是如果想要放大,就在  pstVpssExtChnAttr.u32Width=stSize.u32Width;和pstVpssExtChnAttr.u32Height=stSize.u32Height;处直接设置想要的分辨率?)


我还有一个问题,不知当讲不当讲。。。

就是通道4不是扩展通道吗?还需要像物理通道1一样再设置一遍 stVpssChnMode吗?扩展通道的所有属性不都在pstVpssExtChnAtt里设置吗?我是菜鸟,请不吝赐教~

wang_hi

1个粉丝

15

问答

0

专栏

0

资料

wang_hi 2017-05-25 17:37:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=50263&ptid=14013]放学后不许跑 发表于 2017-5-24 11:45[/url]
楼主请问是这样设置拓展通道4的吗?
VpssChn = 4;
                    stVpssChnMode.enChnMode      =  ...[/quote]

1. 是的,在pstVpssExtChnAttr 属性里设置自己的分辨率就可以了(当然要符合 规格 要求)
2. 那个stVpssChnMode 我没有尝试过, 你可以尝试一下,如果运行正常的话说明不设置也是可以的。
3.   pstVpssExtChnAttr.s32BindChn=0;   这里绑定vpss 通道0 ,不知道你的会不会有问题,
因为一般情况, vpss 通道0 的在线模式都不知道缩放的,我一般会使用通道1.

ck2952

0个粉丝

14

问答

0

专栏

0

资料

ck2952 2017-09-06 17:05:57
认可0
本帖最后由 ck2952 于 2017-9-6 17:46 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=50263&ptid=14013]放学后不许跑 发表于 2017-5-24 11:45[/url]
楼主请问是这样设置拓展通道4的吗?
VpssChn = 4;
                    stVpssChnMode.enChnMode      =  ...[/quote]

您好,我的理解是 “如果需要在扩展通道再做裁剪的话就需要重新设置corp属性,否则就不需要了” ,不知道楼主有没有验证过 不设置扩展通道corp属性 会不会出错?

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2018-10-23 16:43:20
认可0
VPSS_EXT_CHN_ATTR_S stVpssExtChnAttr;
HI_MPI_VPSS_GetExtChnAttr(VpssGrp1, VpssChn, &stVpssExtChnAttr);
stVpssExtChnAttr.s32BindChn = 2;
stVpssExtChnAttr.u32Width = stSize.u32Width;
stVpssExtChnAttr.u32Height = stSize.u32Height;
stVpssExtChnAttr.s32DstFrameRate = -1;
stVpssExtChnAttr.s32SrcFrameRate = -1;
stVpssExtChnAttr.enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420;
stVpssExtChnAttr.enCompressMode = COMPRESS_MODE_NONE;


s32Ret = SAMPLE_COMM_VPSS_EnableChn(VpssGrp1, VpssChn, &stVpssChnAttr, &stVpssChnMode,  &stVpssExtChnAttr);
if (HI_SUCCESS != s32Ret) {
        FM_RECORD_LOG("Enable vpss chn failed!\n");
        goto END_VENC_1080P_CLASSIC_4;
}
执行返回值:
物理通道2,扩展通道4 执行结果:
[SAMPLE_COMM_VPSS_EnableChn]-140: SAMPLE_COMM_VPSS_EnableChn failed with 0xa0078009;
查看 /dev/logmpp 提示:
<3>[  vpss] [Func]:VPSS_SetExtChnAttr [Line]:8104 [Info]:<3>[  vpss] src chn2 should be user mode!
chn2 是已经设置了user mode的;

请大神们 帮忙看看

包龙兔

0个粉丝

14

问答

0

专栏

0

资料

包龙兔 2019-05-21 20:42:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=109336&ptid=14013]leo0925 发表于 2018-10-23 16:43[/url]
VPSS_EXT_CHN_ATTR_S stVpssExtChnAttr;
HI_MPI_VPSS_GetExtChnAttr(VpssGrp1, VpssChn, &stVpssExtChnAtt ...[/quote]

我也是这样的问题,请问您解决了吗?

leo0925

0个粉丝

30

问答

0

专栏

0

资料

leo0925 2019-06-10 16:01:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=143474&ptid=14013]包龙兔 发表于 2019-5-21 20:42[/url]
我也是这样的问题,请问您解决了吗?[/quote]

抱歉,有段时间没有登陆了,问题已解决。
湫
  回复   leo0925  2023-10-24 11:18:35
0

您好,方便分享一下问题是如何解决的吗?

tianfei00

0个粉丝

1

问答

0

专栏

0

资料

tianfei00 2019-07-30 18:00:33
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=144176&ptid=14013]leo0925 发表于 2019-6-10 16:01[/url]
抱歉,有段时间没有登陆了,问题已解决。[/quote]

给大家说下,如何解决这个问题的呀
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区