colorjun

colorjun

0个粉丝

40

问答

0

专栏

1

资料

colorjun  发布于  2018-08-07 11:17:07
采纳率 0%
40个问答
3208

有用过HI_MPI_VO_GetChnFrame函数区VO原始YUV数据的大侠吗?

 
我需要对VO的图像进行分析,取VI的也可以,但VO的尺寸要小一些。所以使用HI_MPI_VO_GetChnFrame函数来实现。调用此函数后得到的宽度高度和跨度数据都是正确的,能随VO尺寸变化正确变化。但一旦需要取YUV数据不管是存文件还是复制到数组中,只要一用到pstFrame.stVFrame.pVirAddr就挂了。也用了HI_MPI_SYS_Mmap把pstFrame.stVFrame.pVirAddr映射一下,也挂。请问前辈是如何取得VO的原始YUV数据,谢谢!
我来回答
回答5个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-08-07 11:22:26
认可0
getframe得到的pstFrame.stVFrame.pVirAddr是无效的, 需要用物理地址去mmap得到应用程序可用的虚拟地址

比如 Y:
    pYVirAddr = (HI_U8 *) HI_MPI_SYS_Mmap(pstFrame.stVFrame.u32PhyAddr[0], u32Size);

colorjun

0个粉丝

40

问答

0

专栏

1

资料

colorjun 2018-08-07 11:37:41
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=102772&ptid=51575]zhuangweiye 发表于 2018-8-7 11:22[/url]
getframe得到的pstFrame.stVFrame.pVirAddr是无效的, 需要用物理地址去mmap得到应用程序可用的虚拟地址

...[/quote]

哦,谢谢!我把pstFrame.stVFrame.pVirAddr[0]打印出来看是0,但我音频用HI_MPI_AI_GetFrame返回的虚拟地址是可以用的,被迷惑了。为什么HI_MPI_VO_GetChnFrame有虚拟地址又要手动去搞一下呢,函数风格不同意,搞不懂

colorjun

0个粉丝

40

问答

0

专栏

1

资料

colorjun 2018-08-07 15:04:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=102772&ptid=51575]zhuangweiye 发表于 2018-8-7 11:22[/url]
getframe得到的pstFrame.stVFrame.pVirAddr是无效的, 需要用物理地址去mmap得到应用程序可用的虚拟地址

...[/quote]

还有一事请教一下,就是VO帧结构VIDEO_FRAME_S中的u32Stride手册解释是图像跨距,我打印出来,不管图像尺寸如何变化u32Stride始终是1920,不知道这个跨距是干什么用的。论坛上有的说数据块大小u32Size是用跨距乘上图像高度,我觉得是不是应该是宽度乘高度呢,谢谢!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-08-07 15:19:46
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=102795&ptid=51575]colorjun 发表于 2018-8-7 15:04[/url]
还有一事请教一下,就是VO帧结构VIDEO_FRAME_S中的u32Stride手册解释是图像跨距,我打印出来,不管图像尺 ...[/quote]

如果是图像处理, 那么在内存中描述一幅图像一般有width/height/stride(pitch)来描述

width/height很好理解,即图像的实际宽高, stride(pitch)比较难一点

一般来说内存是一维的, 而图像是二维的, 如何用一维的内存来放二维的图像,就要用到stride

举个例子来说可能比较好理解:
可以认为一维的内存是一根面条, 当把面条按stride的长度折叠就能得到一张面皮,大小是 stride*height
因此, 内存是按stride/height来解释的, 即实际内存大小是 stride*height

colorjun

0个粉丝

40

问答

0

专栏

1

资料

colorjun 2018-08-07 16:16:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=102802&ptid=51575]zhuangweiye 发表于 2018-8-7 15:19[/url]
如果是图像处理, 那么在内存中描述一幅图像一般有width/height/stride(pitch)来描述

width/height很好 ...[/quote]

感谢形象的解释,跨距1920,实际宽度360,那剩下的1920-360就都是无效数据可以忽略吧?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区