物理内存使用情况
H264 解码所需的物理连续内存如下所示:
内存占用模块 | 计算方式 | 说明 |
---|---|---|
输入码流 | - | 大小由应用层配置 |
输出帧 | width*height*3/2*frame_num | frame_num 至少需要(参考帧个数+1)个显示占用个数可由应用层通过 config 结构体中的 extra_frame_num 配置 |
帧内预测(需要上一行数据) | 帧格式:width*2 MBAFF:width*4 |
- |
宏块信息 | 固定 12K | - |
dblk 模块(上一个宏块行最后 4 行数据) | 帧格式:width*8 MBAFF:width*16 |
- |
co-located 信息 | 固定 68K | - |
每一帧 located 数据缓存 | (width/16)*(height/16)*32*frame_num | - |
注:
co-located 两个 buffer,I、P 帧解码时会往 buffer 里写数据,B 帧解码时从 buffer 读数据。 如果当前码流中没有 B 帧,这两块内存也需要申请。