laocheng

laocheng

1个粉丝

14

问答

0

专栏

0

资料

laocheng  发布于  2017-02-15 23:06:23
采纳率 0%
14个问答
3346

MPP中的视频缓存池与C语言的malloc

 
创建视频缓存池and调用C-malloc的区别?

     1.MPP专门为视频数据提供的是:一组大小相同、物理地址连续的缓存块组成一个视频缓存池;是负责内存的分配和回收,充分发挥缓存池的作用,让物理内存资源在各个媒体处理模块中合理使用。
     2.malloc同样是内存的分配和回收,但不适用于视频数据

注释:视频数据很大,连续分配,具有特有的逻辑,按照MPP的做法,能适合。

请问,上面的理解是否正确呢?他们应该如何正确使用呢?
同样地,我可以将整个图像通过malloc来创建一个内存区,也可以通过创建一个vb来保留。
我来回答
回答4个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-02-16 07:49:22
认可0
两者有很大区别

1。malloc分配出来的内存在linux管理区域,而且物理上不保证连续(一般情况下肯定不连续),一般不适用硬件处理
2。视频缓存池位于MMZ上,每个VB都保证物理上是连续的,适用于硬件处理

一般来说,图像数据比较适合用VB, 尤其是要送到硬件处理的

hanfei69882

2个粉丝

26

问答

0

专栏

2

资料

hanfei69882 2017-02-16 09:50:21
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45123&ptid=14185]zhuangweiye 发表于 2017-2-16 07:49[/url]
两者有很大区别

1。malloc分配出来的内存在linux管理区域,而且物理上不保证连续(一般情况下肯定不连续 ...[/quote]

学习到了,赞一个:victory::victory:

laocheng

1个粉丝

14

问答

0

专栏

0

资料

laocheng 2017-02-16 10:45:57
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45123&ptid=14185]zhuangweiye 发表于 2017-2-16 07:49[/url]
两者有很大区别

1。malloc分配出来的内存在linux管理区域,而且物理上不保证连续(一般情况下肯定不连续 ...[/quote]

因为之前的经验使然(就是不确保我自己理解是否正确),我对此问题提高一个层次去思考:问题如下

Linux OS 内存和MPP MMZ内存关系?

我的一个理解:

OS地址空间分配:假定是64M
        |      1M       |     3M        |     32M       |         28M            |
        |--------------|--------------|---------------|----------------------|
        |     boot     |    kernel     |    rootfs     |        other            |

那么如下:
DDR地址空间分配:假设128M
        |       64M      |      64M      |
        |----------------|---------------|
        |       OS        |      MMZ      |
1、所有DDR内存中,一部分由操作系统管理,称为OS内存;另一部分由MMZ模块管理,供媒体业务单独使用,称为MMZ内存。
2、linux系统跑在OS空间,同时也无法直接操作MMZ管理的媒体内存,但MPP运行期间,媒体数据都在MMZ上(当然可以在linux os内存上),linux程序需要操作媒体数据(意味着linux系统插手MMZ管理的媒体内存),这里做一个mmap的内存映射即可。
3.上面所说的mmap映射表示:linux进程获取mmz的某个池的某个块的物理地址,立即调用mmap(),进行映射,获取linux进程可操作(读写)的虚拟进程地址。

主要参考:
1.linux os进程地址空间分配
2.mmp文档对mmz的解析,第二章

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-02-16 11:03:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45139&ptid=14185]laocheng 发表于 2017-2-16 10:45[/url]
因为之前的经验使然(就是不确保我自己理解是否正确),我对此问题提高一个层次去思考:问题如下

Linu ...[/quote]

上面那个划分个人理解不是OS的, 而是flash的

linux可以访问MMZ, 原因很简单物理上是一块内存,使用相同的地址线和数据线。如果熟悉linux驱动,可以简单写一个驱动就能访问MMZ的内存

由于linux下用户空间使用的是虚拟地址,因此要用mmap把物理地址转换成用户空间能用的虚拟地址,这样才能正确访问
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区