caysno

caysno

0个粉丝

4

问答

0

专栏

0

资料

caysno  发布于  2019-05-24 14:47:30
采纳率 0%
4个问答
2412

VPSS缩放异常

 
使用VPSS缩放异常,输入图像640x512,放大到720x576大小的图。
vpss设置离线模式,使用SendFrame到vpss,然后使用getchnframe获取缩放后的图,没有报任何错误,返回值正常,能获取到图像的指针,保存到文件再打开发现是一堆随机数。然后将vpss的宽高改到640x512,再保存获取到的图像,发现图像是将原图像的第一行放大到整个图片,第一行和其他行的数据一模一样。有人遇上这样的问题吗。
使用getgrpframe获取输入的原始图像是我输入的图像。
我的设置如下:
stVpssGrpAttr.enDynamicRange = DYNAMIC_RANGE_SDR8;
stVpssGrpAttr.enPixelFormat = enPixelFormat;
stVpssGrpAttr.u32MaxW = 640;
stVpssGrpAttr.u32MaxH = 512;
stVpssGrpAttr.stFrameRate.s32SrcFrameRate = -1;
stVpssGrpAttr.stFrameRate.s32DstFrameRate = -1;

stVpssChnAttr.u32Width = 640;
stVpssChnAttr.u32Height = 512;
stVpssChnAttr.enChnMode = VPSS_CHN_MODE_USER;
stVpssChnAttr.enCompressMode = COMPRESS_MODE_NONE;
stVpssChnAttr.enDynmicRage = DYNAMIC_RANGE_SDR8;
stVpssChnAttr.enPixelFormat = PIXEL_FORMAT_YUV_400;
stVpssChnAttr.stFrameRate.s32SrcFrameRate = -1;
stVpssChnAttr.stFrameRate.s32DstFrameRate = -1;
stVpssChnAttr.u32Depth = 3;
stVpssChnAttr.bMirror = HI_FALSE;
stVpssChnAttr.bFlip = HI_FALSE;
stVpssChnAttr.enVideoFormat = VIDEO_FORMAT_LINEAR;
stVpssChnAttr.stAspectRatio.enMode = ASPECT_RATIO_AUTO;
stVpssChnAttr.stAspectRatio.u32BgColor = 0;
我来回答
回答6个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2019-05-24 15:04:45
认可0
stVpssChnAttr.enPixelFormat = PIXEL_FORMAT_YUV_400;

输入也是这格式的吗?

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2019-05-24 15:21:24
认可0
输入输出的图像格式不一样吧

caysno

0个粉丝

4

问答

0

专栏

0

资料

caysno 2019-05-24 15:29:44
认可0
是的。都是400的数据
这是我sendframe的代码
u32MainYSize = 640*512;
u32PhyAddr = HI_MPI_VB_Handle2PhysAddr(vbblk);
HI_U64 pVirAddr = (HI_U64)HI_MPI_SYS_Mmap(u32PhyAddr, u32MainYSize);

fread((void*)pVirAddr, 1, u32MainYSize, fp);//从文件读取亮度到vb

stVideoFrmInfo.u32PoolID = HI_MPI_CB_Handle2PoolID(vbblk);
pVframe = &stVideoFrmInfo.stVFrame;
pVframe ->u32Width = 640;
pVframe->u32Height = 512;
pVframe->enPixelFormat = PIXEL_FORMAT_YUV_400;
pVframe->enField = VIDEO_FIELD_FRAME;
pVframe->enDynamicRange = DYNAMIC_RANGE_SDR8;
pVframe->enVideoFormat = VIDEO_FORMAT_LINEAR;

pVframe->u64PhyAddr[0] = u32PhyAddr;
pVframe->u64PhyAddr[1] = 0;
pVframe->u64PhyAddr[2] = 0;


pVframe->u64VirAddr[0] = pVirAddr;
pVframe->u64VirAddr[1] = 0;
pVframe->u64VirAddr[2] = 0;

pVframe->u32Stride[0] = 640;
pVframe->u32Stride[1] = 0;
pVframe->u32Stride[2] = 0;

HI_MPI_VPSS_SendFrame(0, 0, &stVideoFrmInfo, 1000);

caysno

0个粉丝

4

问答

0

专栏

0

资料

caysno 2019-05-24 15:32:51
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=143622&ptid=74747]zhuangweiye 发表于 2019-5-24 15:04[/url]
stVpssChnAttr.enPixelFormat = PIXEL_FORMAT_YUV_400;

输入也是这格式的吗?[/quote]

只有一行的问题解决了,pVframe->u32Stride[0]参数设置错误了。
现在把输出大小改为720x576后,发现输出的图像是个斜的。
打印获取的参数,输出大小也是720x576的。只是简单的再图像后面补了数据。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2019-05-24 15:38:32
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=143631&ptid=74747]caysno 发表于 2019-5-24 15:32[/url]
只有一行的问题解决了,pVframe->u32Stride[0]参数设置错误了。
现在把输出大小改为720x576后,发现输出 ...[/quote]

这个。。。:dizzy::dizzy::dizzy:

caysno

0个粉丝

4

问答

0

专栏

0

资料

caysno 2019-05-24 16:01:53
认可0
640x512大小的图像要缩放的哦720x576,实际上被放大到了736x563的图像了。:Q:Q
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区