jerrylipeng

jerrylipeng

1个粉丝

11

问答

0

专栏

0

资料

jerrylipeng  发布于  2016-06-06 14:43:36
采纳率 0%
11个问答
5902

【已解决】【HI3531】HI_MPI_VDEC_GetImage如何获取YUV数据

 
本帖最后由 jerrylipeng 于 2016-7-8 10:21 编辑

我用VDEC解码264文件,想对每一帧的图像进行一定处理
用HI_MPI_VDEC_GetImage得到的结果中只有物理地址,没有虚拟地址。
这个YUV数据是怎么存放的?怎么获取或修改?
[code]-- u32Width = 960
-- u32Height = 540
-- u32Field = 4
-- enPixelFormat = 19
-- u32PhyAddr[0] = 0x924b5000
-- u32PhyAddr[1] = 0x925b4000
-- u32PhyAddr[2] = 0
-- pVirAddr[0] = 0
-- pVirAddr[1] = 0
-- pVirAddr[2] = 0
-- u32Stride[0] = 1920
-- u32Stride[1] = 1920
-- u32Stride[2] = 0
-- u16OffsetTop = 0
-- u16OffsetBottom = 0
-- u16OffsetLeft = 0
-- u16OffsetRight = 0
-- u64pts = 0
-- u32TimeRef = 2
-- u32PrivateData = 0
[/code]
我来回答
回答5个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-06 16:06:37
认可0
得到有物理地址的MMZ后可以用HI_MPI_SYS_Mmap()得到虚拟地址, 然后就可以用了, 用完别忘了用HI_MPI_SYS_Munmap()把虚拟地址释放出来,否则会把虚拟地址空间耗尽

关于YUV的放法, 是和格式相关的
楼主的是enPixelFormat = 19, 查了一下好像是PIXEL_FORMAT_YUV_SEMIPLANAR_420
semiplanar表示Y放一块, uv放一块, 420表示每个象素有1个Y, 每四个象素有1个U和1个V

也就是说 Y 一块(Y0, Y1, Y2, ... )放在起始为u32PhyAddr[0] = 0x924b5000的地方, u32Stride[0] = 1920, 宽为960, 高为540,
            UV一块(U0, V0, U1, V1, ...)放在起始为u32PhyAddr[1] =0x925b4000的地方, u32Stride[0] = 1920, 宽为960(单独看U或V为480), 高为270,

jerrylipeng

1个粉丝

11

问答

0

专栏

0

资料

jerrylipeng 2016-06-06 16:54:39
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31214&ptid=11531]zhuangweiye 发表于 2016-6-6 16:06[/url]
得到有物理地址的MMZ后可以用HI_MPI_SYS_Mmap()得到虚拟地址, 然后就可以用了, 用完别忘了用HI_MPI_SYS_Mun ...[/quote]

非常感谢!!!
非常感谢!!!
非常感谢!!!
一定要说三遍!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-06 17:03:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31219&ptid=11531]jerrylipeng 发表于 2016-6-6 16:54[/url]
非常感谢!!!
非常感谢!!!
非常感谢!!!
[/quote]

感谢就不用了, 如果回答能让搂主成功解决问题, 希望楼主在方便的情况下分享一下经验, 或者多多回答其他人的问题就可以了

jerrylipeng

1个粉丝

11

问答

0

专栏

0

资料

jerrylipeng 2016-06-07 13:53:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31222&ptid=11531]zhuangweiye 发表于 2016-6-6 17:03[/url]
感谢就不用了, 如果回答能让搂主成功解决问题, 希望楼主在方便的情况下分享一下经验, 或者多多回答其他人 ...[/quote]

一定的:handshake

July

0个粉丝

2

问答

0

专栏

0

资料

July 2017-07-13 14:32:52
认可0
请问下楼主,如何从vdec通道中获取解码后的图片的?我把hi_mpi_vdec_getimage直接用在sendstream之后,总是会报参数超出合法范围的错误?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区