吴少雄

吴少雄

0个粉丝

15

问答

0

专栏

0

资料

吴少雄  发布于  2017-04-26 09:22:30
采纳率 0%
15个问答
6961

hisi 3519 venc的VB分配问题

 
以前编码器(hi3521A 3531A)分配vb的时候,步骤是

1 创建编码器

2 创建vbpool

3 将编码器chn与Vbpool绑定,

但是,hisi3519 并没有HI_MPI_VENC_AttachVbPool接口,求大神帮忙
我来回答
回答11个
时间排序
认可量排序

吴少雄

0个粉丝

15

问答

0

专栏

0

资料

吴少雄 2017-04-26 09:24:45
认可0
现在分配的vb,venc的出现free和minfree都为0,这样情况文档说会丢帧
cat /proc/umap/vb

[VB] Version: [Hi3519V100_MPP_V2.0.3.0 B030 Release], Build Time[Jun 27 2016, 21:14:09]

-----VB PUB CONFIG-------------------------------------------------------------
Max Count of Pools:        256

-----VB SUPPLEMENT ATTR--------------------------------------------------------
Supplement Config:     0
Supplement Size:       0
Vb Total Cnt:        251

-----COMMON POOL CONFIG--------------------------------------------------------
PoolId           0           1           2           3           4
Size      12441600     3502080     1382400      552960      195840
Count            8          30          50          70          90


------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     0  0x90271000  0xd0000000         1       -1  12441600         8       5(5)         4
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E FISHEYE
   1     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   2     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
   3     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
Sum      2     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     1  0x9615d000  0xd6000000         1       -1   3502080        30      30(30)        30

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     2  0x9c58f000  0xdd000000         1       -1   1382400        50      50(50)        50

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     3  0xa077a000  0xe2000000         1       -1    552960        70      70(70)        70

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     4  0xa2c64000  0xe5000000         1       -1    195840        90      90(90)        90

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     5  0xa3d34000  0xe7000000         0       -2  12441600         1       0(0)         0
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E FISHEYE
   0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0     0     0     0     0     0     0
Sum      0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0     0     0     0     0     0     0

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     6  0xa69e2000  0x       0         0       -2  13521920         1       0(0)         0
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E FISHEYE
   0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0
Sum      0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0

------------------------------------------------------------------------------
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     7  0xa76c8000  0x       0         0       -2  13521920         1       0(0)         0
BLK   VIU   VOU   VGS  VENC  VDEC   VDA H264E JPEGE MPEGE H264D JPEGD MPEGD  VPSS   GRP   MPI  PCIV    AI  AENC    RC  VFMW  USER H265E FISHEYE
   0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0
Sum      0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-04-26 10:19:05
认可0
对于AHR的芯片来说,  如果使用PrivateVB池的方式会给每个编码通道都创建相应的工作VB, 这样对于多通道编码来说,比如8通道那么就要8个工作VB(仅仅是举例, 具体数字不一定对), 而一般来说硬件编码器的实际个数一般都小于编码通道数, 而实际上只要每个硬件编码器分配工作VB就够了, 比如8路编码, 一个硬件编码器,那么只要2个工作VB就够用了,而不用分8个.可以减少内存, 这就是UserVB池的情况, 也就是HI_MPI_VENC_AttachVbPool()的用处.

可以看出UserVB用的条件是同样大小的编码通道数要大于硬件编码器的个数, 目的是减少内存

3519没有UserVB池的情况, 个人猜测IPC一般不会有多路相同大小编码通道的情况, 无法获得好处,所以就不用支持了

关于编码VB的free/minfree 都为0的问题, 如果没有UserVB的情况,即VB是通过HI_MPI_VENC_CreateChn自动产生, 应该不用担心



吴少雄

0个粉丝

15

问答

0

专栏

0

资料

吴少雄 2017-04-26 10:52:08
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=48762&ptid=14973]zhuangweiye 发表于 2017-4-26 10:19[/url]
对于AHR的芯片来说,  如果使用PrivateVB池的方式会给每个编码通道都创建相应的工作VB, 这样对于多通道编码 ...[/quote]

哦,文档上free和minfree为0时,会出现丢帧,但是实际测下来并没有丢帧,应该不会出问题的,感谢庄工:

stoneLinux

0个粉丝

3

问答

0

专栏

0

资料

stoneLinux 2018-09-15 15:30:37
认可0
请教:这里的proc信息哪里看得出是给VENC分配了VB了呢?
Owner = -2,表明是私有缓存池,如果Owner >=0 这才是指明模块VB。

qn1513741731

0个粉丝

3

问答

0

专栏

0

资料

qn1513741731 2018-09-15 19:29:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=106714&ptid=14973]stoneLinux 发表于 2018-9-15 15:30[/url]
请教:这里的proc信息哪里看得出是给VENC分配了VB了呢?
Owner = -2,表明是私有缓存池,如果Owner >=0 这 ...[/quote]

-----COMMON POOL CONFIG--------------------------------------------------------
PoolId           0           1           2           3           4
Size      12441600     3502080     1382400      552960      195840
Count            8          30          50          70          90
这里就可以看出的

stoneLinux

0个粉丝

3

问答

0

专栏

0

资料

stoneLinux 2018-09-15 20:35:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=106721&ptid=14973]qn1513741731 发表于 2018-9-15 19:29[/url]
-----COMMON POOL CONFIG--------------------------------------------------------
PoolId            ...[/quote]

这里是表示分配了5个公共缓存池以及每个缓存池的大小、缓存块个数。这里并没有表明分配了私有的缓存池吧。

qn1513741731

0个粉丝

3

问答

0

专栏

0

资料

qn1513741731 2018-09-15 20:46:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=106724&ptid=14973]stoneLinux 发表于 2018-9-15 20:35[/url]
这里是表示分配了5个公共缓存池以及每个缓存池的大小、缓存块个数。这里并没有表明分配了私有的缓存池吧 ...[/quote]

不好意思没看见你说的是私有池,
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    BlkCnt      Free       MinFree
     5  0xa3d34000  0xe7000000         0       -2  12441600         1       0(0)         0
这个是的

stoneLinux

0个粉丝

3

问答

0

专栏

0

资料

stoneLinux 2018-09-15 21:02:28
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=106727&ptid=14973]qn1513741731 发表于 2018-9-15 20:46[/url]
不好意思没看见你说的是私有池,
PoolId    PhysAddr    VirtAddr    IsComm    Owner     BlkSz    Blk ...[/quote]

谢谢!
这里的Owner=-2 ,是表明它是私有池。
因为我在2楼看到楼主曾经这样讲“现在分配的vb,venc的出现free和minfree都为0,这样情况文档说会丢帧”,我就以为楼主分配了专属VENC模块的缓存池,实际上好像并不是这样意思,应该是我理解有误。楼主分配的8个Pool,其中5个公共的,3个私有的,应该全部都是用来做编码使用的,所以楼主才这样讲——‘venc的出现free和minfree都为0’。

stoneLinux

0个粉丝

3

问答

0

专栏

0

资料

stoneLinux 2018-09-15 21:10:10
认可0
本帖最后由 stoneLinux 于 2018-9-15 21:11 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=48762&ptid=14973]zhuangweiye 发表于 2017-4-26 10:19[/url]
对于AHR的芯片来说,  如果使用PrivateVB池的方式会给每个编码通道都创建相应的工作VB, 这样对于多通道编码 ...[/quote]

庄工,你好。
请教一下:“关于编码VB的free/minfree 都为0的问题, 如果没有UserVB的情况,即VB是通过HI_MPI_VENC_CreateChn自动产生, 应该不用担心”
请问你的这句话该怎么理解,HI_MPI_VENC_CreateChn 还会自动产生VB么?文档好像没讲到。
   
楼主的5,6,7号VB的free/minfree 都为0但并没有出现丢帧,应该是因为0-4号Pool还有很多free的缓存块,所以它从那里取,所以不会出现丢帧?
不知道对不对?

qn1513741731

0个粉丝

3

问答

0

专栏

0

资料

qn1513741731 2018-09-15 21:40:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=106728&ptid=14973]stoneLinux 发表于 2018-9-15 21:02[/url]
谢谢!
这里的Owner=-2 ,是表明它是私有池。
因为我在2楼看到楼主曾经这样讲“现在分配的vb,venc的出 ...[/quote]

是的,选择缓冲池的时候先从最大的选择

stoneLinux

0个粉丝

3

问答

0

专栏

0

资料

stoneLinux 2018-09-15 23:13:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=106730&ptid=14973]qn1513741731 发表于 2018-9-15 21:40[/url]
是的,选择缓冲池的时候先从最大的选择[/quote]

你这说得我不明白。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区