![图片[1]-瑞芯微开发笔记 · MPP 篇(一)MPP术语表-天煜博客](https://blog.itianyu.cn/wp-content/uploads/2026/05/20260509105314299-ChatGPT-Image-2026年5月9日-10_52_42-1024x757.png)
视频编解码基础
| 缩写 | 全称 | 含义 |
|---|---|---|
| AVC | Advanced Video Coding | H.264 标准的另一名字。MPP_VIDEO_CodingAVC = 7 |
| AV1 | AOMedia Video 1 | 开源新一代编码器,MPP_VIDEO_CodingAV1 |
| AVS / AVS2 | Audio Video Standard | 中国国标编码器 |
| B 帧 | Bidirectional | 双向预测帧,可参考前后两帧。压缩率高、延迟大 |
| CABAC | Context-Adaptive Binary Arithmetic Coding | 算术熵编码,比 CAVLC 压缩率高约 10% 但 CPU 重 |
| CAVLC | Context-Adaptive Variable-Length Coding | 变长熵编码,比 CABAC 简单 |
| CBR | Constant Bit Rate | 恒定码率。MPP_ENC_RC_MODE_CBR = 1 |
| CTB / CTU | Coding Tree Block / Unit | H.265 的”宏块”概念,最大 64×64 |
| DPB | Decoded Picture Buffer | 解码图片缓冲区,存放参考帧 |
| EOS | End of Stream | 流结束标志,packet/frame 都有 |
| FBC | Frame Buffer Compression | 帧缓冲压缩(无损压缩中间帧节省 DDR 带宽) |
| FIXQP | Fixed QP | 固定 QP 模式,码率不可控但质量可控 |
| GOP | Group of Pictures | 关键帧间隔。一个 GOP = 一个 IDR + 后续 P/B 帧 |
| HEVC | High Efficiency Video Coding | H.265 标准的另一名字。MPP_VIDEO_CodingHEVC = 16777220 |
| I 帧 | Intra | 关键帧,独立解码 |
| IDR | Instantaneous Decoder Refresh | 一种特殊 I 帧,刷新 DPB,从此后的帧不能参考它之前的 |
| JPEG / MJPEG | Joint Photographic Experts Group / Motion JPEG | JPEG 静图 / 一帧一图的视频。MPP_VIDEO_CodingMJPEG = 11 |
| LTR | Long-Term Reference | 长期参考帧,跨 GOP 保留作参考 |
| NAL | Network Abstraction Layer | H.264/H.265 码流的最小单元,每段以 00 00 00 01 起始 |
| P 帧 | Predictive | 单向预测帧,参考前面的帧 |
| POC | Picture Order Count | H.264/H.265 中标识帧显示顺序的编号 |
| PPS | Picture Parameter Set | 图片参数集,每帧引用一个,含 QP 等图片级配置 |
| PSNR | Peak Signal-to-Noise Ratio | 峰值信噪比,dB,越高越像原图(>40 几乎无损,30 一般,<25 明显失真) |
| QP | Quantization Parameter | 量化参数。H.264/H.265 范围 0-51;VP8 范围 0-127 |
| RC | Rate Control | 码率控制 |
| ROI | Region of Interest | 兴趣区域,可对该区域强制不同 QP |
| SAO | Sample Adaptive Offset | H.265 后处理滤波 |
| SEI | Supplemental Enhancement Information | 补充增强信息,可装用户数据(H.264/H.265) |
| slice | 一帧的一部分。一帧可分多 slice(独立解码) | |
| SPS | Sequence Parameter Set | 序列参数集,含分辨率、profile/level 等 |
| SSIM | Structural Similarity | 结构相似度,0-1,>0.95 几乎无损 |
| SVC | Scalable Video Coding | 分层编码(时间/空间/质量) |
| TMVP | Temporal Motion Vector Prediction | H.265 时域运动矢量预测 |
| VBR | Variable Bit Rate | 可变码率。MPP_ENC_RC_MODE_VBR = 0 |
| VP8 / VP9 | Google 编码器 | MPP_VIDEO_CodingVP8 = 10, VP9 = 12 |
YUV / RGB 格式
| 简称 | 含义 |
|---|---|
| NV12 | YUV420 SemiPlanar,Y + 交错 UV。最常用 |
| NV21 | YUV420 SemiPlanar,Y + 交错 VU |
| I420 / YV12 | YUV420 Planar,Y/U/V 三平面 |
| YUYV / YUY2 | YUV422 packed |
| UYVY | YUV422 packed |
| YUV400 | 仅 Y(灰度) |
| AFBC | ARM Frame Buffer Compression |
| stride | 缓冲区每行实际字节数(含对齐 padding),≥ width |
| slice height / ver_stride | 缓冲区行数,≥ height |
MPP 数据结构
| 类型 | 含义 |
|---|---|
| MppCtx | 编/解码器实例的不透明句柄 |
| MppApi | 函数指针表(mpi->...) |
| MppPacket | 压缩域字节包 |
| MppFrame | 像素域帧 |
| MppBuffer | DMA 友好内存块 |
| MppBufferGroup | buffer 池 |
| MppMeta | 挂在 packet/frame 上的键值对 |
| MppTask | advanced 模式的工作单元 |
| MppDecCfg | 解码配置对象 |
| MppEncCfg | 编码配置对象 |
| MppParam | void *,control 接口的通用参数 |
| MppCodingType | 编码类型枚举 |
| MppFrameFormat | 像素格式枚举 |
| MppCtxType | MPP_CTX_DEC / MPP_CTX_ENC |
| MppPollType | 阻塞模式枚举(BLOCK / NON_BLOCK / 毫秒数) |
| MPP_RET | MPP 错误码枚举 |
| MPP_OK | 0 |
| MPP_NOK | -1 |
| MPP_ERR_TIMEOUT | -22,poll/get 队列空时返回 |
MPP 控制码(control 接口)
| code | 用途 |
|---|---|
MPP_DEC_GET_CFG | 取解码默认配置 |
MPP_DEC_SET_CFG | 应用解码配置 |
MPP_DEC_SET_FRAME_INFO | 告知解码器目标输出格式(FBC/Tile) |
MPP_DEC_SET_EXT_BUF_GROUP | 给解码器外部 buffer 池 |
MPP_DEC_SET_INFO_CHANGE_READY | info_change 后告诉解码器”准备好了” |
MPP_DEC_SET_OUTPUT_FORMAT | 设解码输出 pixel format(仅 JPEG) |
MPP_DEC_SET_PARSER_SPLIT_MODE | 老式 split_parse 接口(新代码用 cfg) |
MPP_DEC_SET_PARSER_FAST_MODE | 快速解码(牺牲精度) |
MPP_ENC_GET_CFG | 取编码默认配置 |
MPP_ENC_SET_CFG | 应用编码配置 |
MPP_ENC_GET_HDR_SYNC | 取 SPS/PPS 头 |
MPP_ENC_SET_OSD_PLT_CFG | 设 OSD 调色板 |
MPP_ENC_SET_SEI_CFG | 设 SEI 模式 |
MPP_ENC_SET_JPEG_ROI_CFG | 设 JPEG ROI(kmpp) |
MPP_SET_INPUT_TIMEOUT | 设 put 阻塞模式 |
MPP_SET_OUTPUT_TIMEOUT | 设 get 阻塞模式 |
MPP_SET_DISABLE_THREAD | 禁用 MPP 内部线程(mpi_dec_nt_test 用) |
MPP_SET_VENC_INIT_KCFG | KMPP 编码初始化 |
meta KEY
| key | 含义 |
|---|---|
KEY_INPUT_PACKET | 输入端 packet |
KEY_OUTPUT_FRAME | 输出端 frame(解码 advanced) |
KEY_INPUT_FRAME | 输入端 frame(编码) |
KEY_OUTPUT_PACKET | 输出端 packet(编码) |
KEY_TEMPORAL_ID | SVC 时域层 ID |
KEY_LONG_REF_IDX | LTR 索引 |
KEY_ENC_AVERAGE_QP | 编码后平均 QP |
KEY_ENC_BPS_RT | 实时码率 |
KEY_ENC_SSE | 残差平方和(用于算 PSNR) |
KEY_ENC_USE_LTR | 是否用了 LTR |
KEY_OSD_DATA | OSD 数据(老接口) |
KEY_OSD_DATA3 | OSD 数据(RV1126B 新接口) |
KEY_MOTION_INFO | 编码副产物:运动信息 |
KEY_USER_DATA | SEI 用户数据 |
KEY_USER_DATAS | 多组 SEI 用户数据 |
KEY_JPEG_ROI_DATA | JPEG ROI(meta 接口) |
测试程序文件名
| 缩写 | 全称 |
|---|---|
| mpi | MPP Interface(rk_mpi.h API) |
| dec | decoder |
| enc | encoder |
| mt | multi-thread(输入输出分线程,1 个实例) |
| nt | no-thread(关闭 MPP 内部线程,调用者一步走 decode()) |
| multi | multi-instance(多路并发,N 个实例) |
| rc | rate control |
| rc2 | RC 测试 v2(v1 已废弃) |
| slt | self-test(CRC 自检) |
| vpu_api | 老 libvpu API(向后兼容) |
命令行参数(常用)
| 参数 | 含义 |
|---|---|
-i <file> | 输入文件 |
-o <file> | 输出文件 |
-w <int> | 宽 |
-h <int> | 高 |
-hstride <int> | 输入行 stride |
-vstride <int> | 输入纵 stride |
-t <int> | 编码类型 |
-t_src <int> | 源解码类型(mpi_rc2_test) |
-f <int> | 像素格式 |
-rc <int> | RC 模式 |
-bps <int> | 目标码率 |
-fps <int> | 帧率 |
-gop <int> | GOP 长度 |
-qp <int> | FIXQP 模式的 QP |
-n <int> | 帧数限制 |
-loop <int> | 文件循环次数 |
-nthreads <int> | 实例数 |
-bm <int> | buffer mode(0/1/2) |
-cfg <json> | 加载 JSON 配置 |
-osd | 启用 OSD 测试 |
-roi | 启用 ROI 测试 |
-psnr <0/1> | mpi_rc2_test 算 PSNR |
-ssim <0/1> | mpi_rc2_test 算 SSIM |
-slt <file> | 输出 CRC(mpi_dec_test) |
-quiet | 安静模式 |
-help | 帮助 |
代码风格缩写
| 含义 | |
|---|---|
RK_S8 / S16 / S32 / S64 | int8/16/32/64 |
RK_U8 / U16 / U32 / U64 | uint8/16/32/64 |
RK_FLOAT | float |
MPP_ALIGN(x, n) | 把 x 向上对齐到 n 的倍数 |
MPP_FREE(p) | 安全 free(设 NULL) |
mpp_calloc(T, n) | 类型安全 calloc |
mpp_realloc(p, T, n) | 类型安全 realloc |
mpp_log(...) | 标准日志(带 MODULE_TAG 前缀) |
mpp_err(...) | 错误日志 |
mpp_log_q(quiet, ...) | quiet 模式静默 |
mpp_assert(cond) | 断言 |
MPP_SHARED | cmake 变量,shared lib target |
芯片型号常量
| 名 | 芯片 |
|---|---|
ROCKCHIP_SOC_RV1126B | RV1126B |
ROCKCHIP_SOC_RK3588 | RK3588 |
mpp_get_soc_type() | 运行时查 |
“兼容标志”含义(mpp_compat_show 输出)
| ID | 含义 |
|---|---|
| 0 | increase decoder fbc buffer size(FBC 解码 buffer 大小调整) |
| 1 | support encoder async input mode(编码器异步输入) |
| 其它 | 看 osal/mpp_compat.c 中的字符串表 |
环境变量
| 名 | 作用 |
|---|---|
MPP_VERBOSE | 增加日志详细度 |
MPP_LOG_LEVEL | 日志级别(debug/info/…) |
MPP_SYSLOG_NAME | 走 syslog 时的 tag |
MPP_BUF_DBG | buffer 调试日志 |
mpp_show_history | mpp_info_test 打历史 commit |
dbrh_en / dbrh_s | mpi_rc2_test debreath |
fbc_dec_en | mpi_rc2_test 解码 FBC |
fast_en | mpi_rc2_test 解码 fast mode |
LD_LIBRARY_PATH | 库搜索路径(标准 Linux) |
© 版权声明
转载请注明出处,并标明原文链接。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
THE END










暂无评论内容