default

default

0个粉丝

40

问答

0

专栏

0

资料

default  发布于  2016-07-25 11:10:11
采纳率 0%
40个问答
11215

总是觉得对3536VPSS的裁剪和缩放有不理解的地方

 
数据手册上说,3536VPSS具有裁剪缩放功能。裁剪我能找到API,譬如,HI_MPI_VPSS_SetGrpCrop进行裁剪。但是缩放,我看不到有API,是使用HI_MPI_VPSS_SetChnMode来设置宽和高,来实现缩放吗?
我来回答
回答23个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-07-25 11:21:51
认可0
缩放是指相同的数据源, 可以同过VPSS显示到不同大小的vo channel中

比如 一个 1920x1080的图 要显示在一个960x540的vo channel中(1/4缩小)
或者 一个 1920x1080的图 要显示在一个480x270的vo channel中(1/16缩小)
或者 一个 704x576的图 要显示在一个1920x1080的vo channel中(单画面, 放大)

这个是无需API, VPSS auto mode + 绑定 就自动搞定了

default

0个粉丝

40

问答

0

专栏

0

资料

default 2016-07-25 11:47:17
认可0
本帖最后由 default 于 2016-7-25 11:48 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=34754&ptid=12065]zhuangweiye 发表于 2016-7-25 11:21[/url]
缩放是指相同的数据源, 可以同过VPSS显示到不同大小的vo channel中

比如 一个 1920x1080的图 要显示在一 ...[/quote]

现在使用user模式,同时不使用系统绑定。那VPSS的缩放是不是使用HI_MPI_VPSS_SetChnMode来设置?还是也会自动搞定?譬如:
一个1920*1080的屠,要vo_send 960*540的视频到vo chn中显示时,实现利用HI_MPI_VPSS_SetChnMode设置宽高为960*540,此时就(1/4缩小了)

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-07-25 12:00:33
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34758&ptid=12065]default 发表于 2016-7-25 11:47[/url]
现在使用user模式,同时不使用系统绑定。那VPSS的缩放是不是使用HI_MPI_VPSS_SetChnMode来设置?还是也会 ...[/quote]

用HI_MPI_VPSS_SetChnMode设置vpss输出大小, 那vpss就会输出给定的大小

楼主难道每帧数据都要用 GetFrame/SendFrame的方式?楼主是要每帧数据都处理?路数多CPU会忙不过来的

一般NVR中除了特殊用途 VPSS 基本不用user mode, 原因很简单, 当需要改变一个显示窗口大小时
auto mode的VPSS 无需任何设置, 只要改变vo chennel的属性即可完成,而auto mode还必须改变vpss channel的属性,这属于多此一举

如果想用user mode实现一个数据源显示到多个窗口,那除非这多个窗口一样大小,否则也无法实现  
而用auto mode,多开几个vpss就可以实现一个数据源显示到多个窗口

user mode能用到的地方不多, 一般用到VDA/IVE时才可能会用

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-25 12:04:24
认可0
本帖最后由 ngswfx 于 2016-7-25 12:06 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=34758&ptid=12065]default 发表于 2016-7-25 11:47[/url]
现在使用user模式,同时不使用系统绑定。那VPSS的缩放是不是使用HI_MPI_VPSS_SetChnMode来设置?还是也 ...[/quote]

如果vpss是auto模式,的确是无需过多设置,由vpss自己搞定的(由于vpss绑定到了VO的某个通道,估计是VO的这个通道需要多大,VPSS就输出多大),他会根据VPSS输入以及输出,自动调整.我平时就是这么用的.

//看文档,用user模式,就需要自己设置VPSS输出的大小了,对于不同的VO通道,估计需要不停的计算,尤其当VO不同窗体分割时.
//例如1\4\9\16分割,所以我不喜欢用这种模式,设置的东西太多了.

我理解的也是用HI_MPI_VPSS_SetChnMode函数设置.

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-07-25 12:36:54
认可0
前几天,我本来想通过VPSS功能,缩放一个CIF的源YUV出来,然后送给VENC编码成jpg.

就是因为这个VPSS user mode太费尽,对整个程序构架都有不少影响,调试半天也没搞定,我就没用了,最后从VO那里取的YUV数据,去编码的.

default

0个粉丝

40

问答

0

专栏

0

资料

default 2016-07-25 21:32:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34760&ptid=12065]zhuangweiye 发表于 2016-7-25 12:00[/url]
用HI_MPI_VPSS_SetChnMode设置vpss输出大小, 那vpss就会输出给定的大小

楼主难道每帧数据都要用 GetF ...[/quote]

我发现使用user模式并不一定要一样大才能在VO显示,若VPSS设置user模式的宽高比VO的大,则会截取,相反则会缩小

default

0个粉丝

40

问答

0

专栏

0

资料

default 2016-07-25 21:34:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34764&ptid=12065]ngswfx 发表于 2016-7-25 12:36[/url]
前几天,我本来想通过VPSS功能,缩放一个CIF的源YUV出来,然后送给VENC编码成jpg.

就是因为这个 ...[/quote]

虽然设置要更复杂,尤其动态时,但无可否认user模式比较灵活

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-07-26 07:56:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34797&ptid=12065]default 发表于 2016-7-25 21:34[/url]
虽然设置要更复杂,尤其动态时,但无可否认user模式比较灵活[/quote]

既然楼主认为是灵活,那就灵活吧

建议还是多看sample

default

0个粉丝

40

问答

0

专栏

0

资料

default 2016-07-26 09:00:13
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=34800&ptid=12065]zhuangweiye 发表于 2016-7-26 07:56[/url]
既然楼主认为是灵活,那就灵活吧

建议还是多看sample[/quote]

好的。目前还只是做些验证,还没深入研究,以后还望指点:handshake

艾编程的鲁小班

18个粉丝

25

问答

17

专栏

32

资料

艾编程的鲁小班 2016-09-29 10:33:35
认可0
现在正在去做一个VO显示缩放的功能,有一个疑问。HI_MPI_VGS_BeginJob:启动一个 job。
HI_MPI_VGS_AddScaleTask:往已经启动的 job 添加缩放 task。用这套函数可否实现用户自定义放大和缩小的功能呢。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-09-29 10:59:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38678&ptid=12065]wfjdemmye 发表于 2016-9-29 10:33[/url]
现在正在去做一个VO显示缩放的功能,有一个疑问。HI_MPI_VGS_BeginJob:启动一个 job。
HI_MPI_VGS_AddSca ...[/quote]

VO显示缩放功能, 具体是什么功能, 描述细一点

就图像缩放来说VGS是可以做的, 但是使用VGS做显示会有很多限制

难道强大的VPSS不能满足需求吗?

有点放着阳关大道不走,非要过华容道的感觉

艾编程的鲁小班

18个粉丝

25

问答

17

专栏

32

资料

艾编程的鲁小班 2016-09-29 13:55:05
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38679&ptid=12065]zhuangweiye 发表于 2016-9-29 10:59[/url]
VO显示缩放功能, 具体是什么功能, 描述细一点

就图像缩放来说VGS是可以做的, 但是使用VGS做显示会有很 ...[/quote]

我用VO输出到HDMI,在hdmi还有一个控制菜单,可以通过菜单上面按钮来实现画面的放大和缩小,但是总的输出视频的宽度和长度还是1920*1080这样的宽度。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-09-29 14:32:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38684&ptid=12065]wfjdemmye 发表于 2016-9-29 13:55[/url]
我用VO输出到HDMI,在hdmi还有一个控制菜单,可以通过菜单上面按钮来实现画面的放大和缩小,但是总的输出 ...[/quote]

楼上还是没有说清需求

那只能按我的理解来猜一下, 不外乎两个情况
1. 某一通道的电子放大
    这个功能VPSS本来就有, 无需多说

2. 显示的总的画面可以放大缩小
   海思好像没有规定, 显示的vo channel 和在一起必须要放满整个屏幕

   比如 vo的大小是1920x1080, 只显示一个vo channel, 那么只要设置这个VO channel的大小和坐标就能完成楼主的要求了, 假设比例是1:1,那么Vo channel的位置大小是[0,0,1920,1080], 当比例是4:1时为[480, 270, 1440, 810],  多个vo channel不过就是重新计算一下每个窗口的位置而已

艾编程的鲁小班

18个粉丝

25

问答

17

专栏

32

资料

艾编程的鲁小班 2016-09-29 14:36:35
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38686&ptid=12065]zhuangweiye 发表于 2016-9-29 14:32[/url]
楼上还是没有说清需求

那只能按我的理解来猜一下, 不外乎两个情况
[/quote]

我是想一个画面播放,动态实现放大缩小这样子的功能。大神给的方法开始想的方法便捷多了。我先尝试一下。

艾编程的鲁小班

18个粉丝

25

问答

17

专栏

32

资料

艾编程的鲁小班 2016-09-29 15:20:40
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38686&ptid=12065]zhuangweiye 发表于 2016-9-29 14:32[/url]
楼上还是没有说清需求

那只能按我的理解来猜一下, 不外乎两个情况
[/quote]

再请教一下,我如果要实现动态缩放的功能,用HI_MPI_VPSS_SetChnMode设置输出的宽高大小,那么设置输入的大小HI_MPI_VPSS_SetGrpCrop,在输出大小固定的情况下,我通过改变输入大小的方法来实现动态放大缩小。这种方法可行吗?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-09-29 15:40:03
认可0
本帖最后由 zhuangweiye 于 2016-9-29 15:45 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=38694&ptid=12065]wfjdemmye 发表于 2016-9-29 15:20[/url]
再请教一下,我如果要实现动态缩放的功能,用HI_MPI_VPSS_SetChnMode设置输出的宽高大小,那么设置输入的 ...[/quote]

为什么大家都喜欢用user mode?

auto 模式不是很好吗, 根本不需要设置VPSS的输出大小, 绑定好, 海思都帮你做好了, 只要设置VO channel的大小就全解决了呀

如果是电子放大, 那更简单了, auto的vpss绑定到vo channel, 只要HI_MPI_VPSS_SetGrpCrop一调用,其他什么都不用改就实现了

如果不是IPC, 一般情况下只有SD输出/虚拟VO/VDA/IVE才会用到VPSS的user mode,HD输出就用VPSS auto mode,简单高效

艾编程的鲁小班

18个粉丝

25

问答

17

专栏

32

资料

艾编程的鲁小班 2016-09-29 17:57:01
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38698&ptid=12065]zhuangweiye 发表于 2016-9-29 15:40[/url]
为什么大家都喜欢用user mode?

auto 模式不是很好吗, 根本不需要设置VPSS的输出大小, 绑定好, 海思 ...[/quote]

感谢@zhuangweiye 我已经实现了,就是用HI_MPI_VPSS_SetGrpCrop裁剪,然后HI_MPI_VPSS_SetChnMode输出固定大小,可以动态调节。
关于什么模式,我觉得看个人习惯吧,悄悄的讲一下。我就是用的user mode ,刚刚看到您有说AUTO模式,所以我就换成了auto模式,文档中说,auto模式比较 适合预览和回放场景,还能进行播放控制,是我想要的,但是对于3519来讲的话,没有回放,也不需要对播放进行控制,只需要预览VI输出即可。

艾编程的鲁小班

18个粉丝

25

问答

17

专栏

32

资料

艾编程的鲁小班 2016-09-29 18:07:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38715&ptid=12065]wfjdemmye 发表于 2016-9-29 17:57[/url]
感谢@zhuangweiye 我已经实现了,就是用HI_MPI_VPSS_SetGrpCrop裁剪,然后HI_MPI_VPSS_SetChnMode输出固 ...[/quote]

设置过,我3519好像对auto不支持。。。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-09-30 07:48:57
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=38716&ptid=12065]wfjdemmye 发表于 2016-9-29 18:07[/url]
设置过,我3519好像对auto不支持。。。[/quote]

昏倒, 我以为是3536

qn1554107965

0个粉丝

3

问答

1

专栏

0

资料

qn1554107965 2019-10-10 22:16:37
认可0
: HI_MPI_VGS_AddOsdTask failed, s32Ret:0xa02d8003 大佬们 我这初始化失败
        VGS_ADD_OSD_S pstVgsAddOsd;
        pstVgsAddOsd.stRect.s32X = 20;
        pstVgsAddOsd.stRect.s32Y = 20;
        pstVgsAddOsd.stRect.u32Width = 600;
        pstVgsAddOsd.stRect.u32Height = 600;
        pstVgsAddOsd.u32BgColor = 0x0000CD;
        pstVgsAddOsd.enPixelFmt = stVFrameInfoVI.stVFrame.enPixelFormat;
        pstVgsAddOsd.u64PhyAddr = pstMemInfo.u64PhyAddr;
        pstVgsAddOsd.u32Stride = 4000;
        pstVgsAddOsd.u32BgAlpha = 32;
        pstVgsAddOsd.u32FgAlpha = 32;
        pstVgsAddOsd.bOsdRevert = HI_FALSE;
        pstVgsAddOsd.stOsdRevert.stSrcRect.s32X = 30;
        pstVgsAddOsd.stOsdRevert.stSrcRect.s32Y = 30;
        pstVgsAddOsd.stOsdRevert.stSrcRect.u32Width = 100;
        pstVgsAddOsd.stOsdRevert.stSrcRect.u32Height = 100;
        pstVgsAddOsd.stOsdRevert.enColorRevertMode = VGS_COLOR_REVERT_NONE;
        pstVgsAddOsd.u16ColorLUT[0] = 32;
        pstVgsAddOsd.u16ColorLUT[1] = 32;
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区