ArmSoM-RK3588编解码之mpp编码demo解析:mpi_enc_test
一. 简介
- [RK3588从入门到精通] 专栏总目录
- mpi_enc_test 是rockchip官方编码 demo
- 本篇文章进行mpi_enc_test 的代码解析,编码流程解析
二. 环境介绍
-
硬件环境:
ArmSoM-W3 RK3588开发板 -
软件版本:
OS:ArmSoM-W3 Debian11
三. mpp编解码流程解析

- mpp_create :获取 MppCtx 实例以及 MppApi 结构体
- mpp_init: 初始化MppCtx 的编解码类型与格式
- mpi->control:通过相应的命令来配置编解码参数
- encode_put_frame:输入图像数据MppFrame,例如YUV、RGB数据
- encode_get_packet: 获取编码后的码流数据存放到MppPacket,例如H.264、H.265数据
- mpi->reset:使解码器恢复为正常初始化后的状态。
- mpp_destroy:释放申请的内存空间,做销毁善后工作
四. 重要函数解析
4.1 mpp_init函数:初始化MppCtx 的编解码类型与格式
mpp_init函数原型:
MPP_RET mpp_init(MppCtx ctx, MppCtxType type, MppCodingType coding)
mpp_init函数调用实例:
ret = mpp_init(ctx, MPP_CTX_DEC, MppCodingType::MPP_VIDEO_CodingAVC);
if (ret){mpp_err("mpp_init failed ret %d\n", ret);goto MPP_TEST_OUT;}
mpp_init函数参数解析:
-
MppCtxType 参数:初始化编码还是解码
MPP_CTX_DEC : 解码 MPP_CTX_ENC : 编码 -
MppCodingType 参数:编解码的格式
MPP_VIDEO_CodingAVC : H.264 MPP_VIDEO_CodingHEVC: H.265 MPP_VIDEO_CodingVP8 : VP8 MPP_VIDEO_CodingVP9 : VP9 MPP_VIDEO_CodingMJPEG : MJPEG等等,详细参看rk_type.h定义
4.2 设置编码器参数:test_mpp_enc_cfg_setup
函数原型:
MPP_RET test_mpp_enc_cfg_setup(MpiEncMultiCtxInfo *info)
函数解析:
主要是设置编码器参数,并将编码器参数保存到 MpiEncMultiCtxInfo 结构体中
4.3 编码函数:test_mpp_run
函数原型:
MPP_RET test_mpp_run(MpiEncMultiCtxInfo *info)
函数解析:
输入图像数据MppFrame,获取编码后的码流数据存放到MppPacket
五. mpi_enc_test 流程解析
mpi_enc_test 编码命令举例:
sudo mpi_enc_test -i /oem/decode.yuv -t 7 -n 200 -o /oem/encode.h264 -w 1920 -h 1080 -fps 60
mpi_enc_test 流程解析:
main -> enc_test_multi -> pthread_create(enc_test) -> enc_test -> test_mpp_enc_cfg_setup -> test_mpp_run -> reset -> mpp_destroy -> pthread_join -> MPP_FREE
主要流程:init 初始化 —> test_mpp_enc_cfg_setup设置编码器相关参数 ----> test_mpp_run(info):输入图像数据,输出码流
- main函数根据传进来的参数(参数char **argv 对应命令中的 -i /oem/decode.yuv -t 7 -n 200 -o /oem/encode.h264 -w 1920 -h 1080 -fps 60)对参数进行解析保存到 MpiEncTestArgs *cmd 结构体中
- enc_test_multi(cmd, argv[0]); 函数是封装好的编码函数,传入 MpiDecTestCmd * cmd 结构体即可实现 H.265/H.264 视频编码的多路并发处理
- enc_test_multi(cmd, argv[0]); 函数使用for循环创建新线程并调用 enc_test 来执行编码任务
- enc_test 函数是整个的编码流程函数。首先执行了一些MPP的初始化操作:mpp_create() mpp_init() ,mpp_enc_cfg_init() , mpi->control。初始化之后执行 test_mpp_enc_cfg_setup函数来设置编码器相关参数。随后再进行最重要的编码操作:test_mpp_run(info):输入图像数据,输出码流
- 编码完成之后执行reset复位操作:p->mpi->reset(p->ctx)把编码器恢复为正常初始化后的状态。
- 编码器复位之后通过mpp_destroy()释放申请的内存空间,进行一些销毁操作防止内存泄漏。
- pthread_join 函数等待编码线程结束,随后调用MPP_FREE(ctxs)函数做线程释放工作
- 编码线程结束,回到主线程的main()函数,执行mpi_enc_test_cmd_put(cmd), 释放 cmd 对象所占内存
六. mpi_enc_test 使用实例
-
终端执行编码命令:
sudo mpi_enc_test -i /oem/decode.yuv -t 7 -n 200 -o /oem/encode.h264 -w 1920 -h 1080 -fps 60 -
将decode.yuv转成h264,分辨率1920x1080,fps60,总帧数200。
-
其中,-i 表示输入文件,-t 7 表示输出 H.264 码流,-n 200 表示编码 200 帧 -w 图像宽度 -h 图像高度,fps 60
-
查看编解码输出的信息:
tail -f /var/log/syslog //开启新终端,监控输出sudo mpi_enc_test -i /oem/decode.yuv -t 7 -n 200 -o /oem/encode.h264 -w 1920 -h 1080 -fps 60 //转原终端,运行编码程序编码输出如下:
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: cmd parse result:
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: input file name: /oem/decode.yuv
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: output file name: /oem/encode.h264
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: width : 1920
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: height : 1080
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: format : 0
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_utils: type : 7
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: mpi_enc_test start
Jun 18 16:20:47 linaro-alip mpp[2139]: mpp_info: mpp version: 8a54ab8d author: xueman.ruan 2023-06-16 [h264d]: fix the derivation of mbaff.
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: 0x7fa0001960 encoder test start w 1920 h 1080 type 7
Jun 18 16:20:47 linaro-alip mpp[2139]: mpp_enc: MPP_ENC_SET_RC_CFG bps 15552000 [972000 : 16524000] fps [60:60] gop 120
Jun 18 16:20:47 linaro-alip mpp[2139]: h264e_api_v2: MPP_ENC_SET_PREP_CFG w:h [1920:1080] stride [1920:1080]
Jun 18 16:20:47 linaro-alip mpp[2139]: mpp_enc: mode vbr bps [972000:15552000:16524000] fps fix [60/1] -> fix [60/1] gop i [120] v [0]
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 0 size 28319 qp 10
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 1 size 32698 qp 14
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 2 size 45308 qp 15
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 3 size 40435 qp 15
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 4 size 45222 qp 15
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 5 size 36992 qp 17
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 6 size 44143 qp 17
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 7 size 30927 qp 17
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 8 size 40750 qp 16
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 9 size 49589 qp 18
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 10 size 38120 qp 18
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 11 size 31903 qp 17
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 12 size 44712 qp 17
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 13 size 43897 qp 19
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 14 size 45241 qp 19
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 15 size 36346 qp 19
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 16 size 29973 qp 18
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 17 size 37295 qp 20
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 18 size 51772 qp 20
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 19 size 33378 qp 20
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 20 size 33600 qp 19
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 21 size 37763 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 22 size 49116 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 23 size 31925 qp 20
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 24 size 46841 qp 19
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 25 size 36214 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 26 size 46354 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 27 size 37565 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 28 size 46092 qp 20
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 loop times 1
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 29 size 15581 qp 20
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 30 size 23445 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 31 size 32401 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 32 size 28462 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 33 size 33358 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 34 size 28697 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 35 size 35228 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 36 size 24997 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 37 size 31774 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 38 size 39806 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 39 size 31097 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 40 size 25497 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 41 size 36976 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 42 size 36927 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 43 size 37975 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 44 size 31915 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 45 size 26709 qp 21
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 46 size 33195 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 47 size 46155 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 48 size 29497 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 49 size 29307 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 50 size 33197 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 51 size 42712 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 52 size 28279 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 53 size 40612 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 54 size 33483 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 55 size 40900 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 56 size 32802 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 57 size 39739 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 loop times 2
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 58 size 14135 qp 22
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 59 size 21344 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 60 size 29755 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 61 size 25979 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 62 size 30094 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 63 size 26150 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 64 size 32448 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 65 size 22886 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 66 size 28925 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 67 size 36458 qp 25
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 68 size 28537 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 69 size 23470 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 70 size 33644 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 71 size 33987 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 72 size 34409 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 73 size 28965 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 74 size 23782 qp 23
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 75 size 30565 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 76 size 42286 qp 25
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 77 size 26486 qp 25
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 78 size 26157 qp 24
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 79 size 30454 qp 25
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 80 size 39307 qp 26
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 81 size 26085 qp 25
Jun 18 16:20:47 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 82 size 36866 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 83 size 31373 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 84 size 38846 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 85 size 31552 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 86 size 37866 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 loop times 3
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 87 size 13688 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 88 size 20366 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 89 size 28290 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 90 size 24927 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 91 size 28663 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 92 size 25063 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 93 size 30803 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 94 size 21575 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 95 size 27338 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 96 size 34735 qp 26
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 97 size 27243 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 98 size 22440 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 99 size 33794 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 100 size 33975 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 101 size 34414 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 102 size 28039 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 103 size 23884 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 104 size 30492 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 105 size 42340 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 106 size 26504 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 107 size 26186 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 108 size 32429 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 109 size 41124 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 110 size 25814 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 111 size 36782 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 112 size 31428 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 113 size 38736 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 114 size 31537 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 115 size 37914 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 loop times 4
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 116 size 13688 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 117 size 20324 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 118 size 28272 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 119 size 24945 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 120 size 50373 qp 15
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 121 size 25603 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 122 size 32347 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 123 size 22828 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 124 size 28898 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 125 size 36563 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 126 size 28604 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 127 size 23537 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 128 size 33637 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 129 size 34220 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 130 size 34337 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 131 size 29011 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 132 size 23784 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 133 size 30583 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 134 size 42288 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 135 size 28161 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 136 size 27757 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 137 size 32119 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 138 size 41349 qp 25
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 139 size 26902 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 140 size 38575 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 141 size 32464 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 142 size 40765 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 143 size 32726 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 144 size 39886 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 loop times 5
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 145 size 14182 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 146 size 21394 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 147 size 29792 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 148 size 27333 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 149 size 31698 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 150 size 27641 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 151 size 33985 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 152 size 23571 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 153 size 30157 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 154 size 37937 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 155 size 29964 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 156 size 24665 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 157 size 35541 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 158 size 35537 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 159 size 35918 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 160 size 30675 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 161 size 24880 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 162 size 31974 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 163 size 43998 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 164 size 29454 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 165 size 29434 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 166 size 33309 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 167 size 42905 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 168 size 28273 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 169 size 40610 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 170 size 33655 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 171 size 42553 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 172 size 32763 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 173 size 39818 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 loop times 6
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 174 size 14135 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 175 size 22401 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 176 size 31085 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 177 size 27330 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 178 size 31714 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 179 size 27454 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 180 size 33911 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 181 size 23618 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 182 size 30246 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 183 size 38036 qp 24
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 184 size 29962 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 185 size 24672 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 186 size 35546 qp 22
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 187 size 35542 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 188 size 35918 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 189 size 30675 qp 23
Jun 18 16:20:48 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 190 size 24880 qp 22
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 191 size 31974 qp 23
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 192 size 43998 qp 24
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 193 size 29454 qp 23
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 194 size 29434 qp 22
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 195 size 33309 qp 23
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 196 size 42905 qp 24
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 197 size 28273 qp 23
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 198 size 40610 qp 22
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encoded frame 199 size 33655 qp 23
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: chn 0 encode 200 frames time 1841 ms delay 4 ms fps 108.60 bps 15541070
Jun 18 16:20:49 linaro-alip mpp[2139]: mpi_enc_test: mpi_enc_test average frame rate 108.60相关文章:
ArmSoM-RK3588编解码之mpp编码demo解析:mpi_enc_test
一. 简介 [RK3588从入门到精通] 专栏总目录mpi_enc_test 是rockchip官方编码 demo本篇文章进行mpi_enc_test 的代码解析,编码流程解析 二. 环境介绍 硬件环境: ArmSoM-W3 RK3588开发板 软件版本: OS:ArmSoM-W3 Debian11 三. …...
【ES6.0】-详细模块化、export与Import详解
【ES6.0】-详细模块化、export与Import详解 文章目录 【ES6.0】-详细模块化、export与Import详解一、模块化概述二、ES6模块化的语法规范三、export导出模块3.1 单变量导出3.2 导出多个变量3.3 导出函数3.4 导出对象第一种第二种: 3.5 类的导出第一种第二种 四、imp…...
网工内推 | Base北京,国企网工运维,最高30k*14薪,IE认证优先
01 万方数据股份有限公司 招聘岗位:网络工程师 职责描述: 1.负责完成基础网络组网工作; 2.负责网络对象的访问控制及安全策略,配置VLan,黑白名单、地址转换、故障排查及网络安全监控工作; 3.负责对操作系…...
SQL LIKE 运算符:用法、示例和通配符解释
SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符: 百分号 % 代表零个、一个或多个字符。下划线 _ 代表一个单个字符。 以下是LIKE运算符的用法和示例: 示例 选择所有以字母 “a” 开头的客户&#x…...
编译原理Lab1-用FLEX构造C-Minus-f词法分析器
HNU编译原理lab1实验–根据cminux-f的词法补全lexical_analyer.l文件,完成词法分析器。 本文没有添加任何图片,但是以复制输出的形式展现出来了实验结果。 实验要求: 根据cminux-f的此法补全lexical_analyer.l文件,完成词法分析…...
网络安全之渗透测试入门准备
渗透测试入门所需知识 操作系统基础:Windows,Linux 网络基础:基础协议与简单原理 编程语言:PHP,python web安全基础 渗透测试入门 渗透测试学习: 1.工具环境准备:①VMware安装及使用;…...
【MySQL】宝塔面板结合内网穿透实现公网远程访问
文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cpo…...
通过AX6000路由器,实现外部访问内网的任意主机
概述 这里遇到一个场景,就是需要外部的人员,访问我内网的一台设备,进行内外部的设备联调。 这也是实际环境中,很常见的一种场景。 之前的做法是子设备上运行edge节点,可以直接访问。 但有的设备无法运行edge节点,那么可以参考一下这个方案来实现。 此方案可以摒弃了…...
如何应用ChatGPT撰写、修改论文及工作报告,提供写作能力及优化工作??
如果我想让gpt从pdf文档中提取相关关键词的内容,可以怎么做呢??我们评论区讨论 ChatGPT 在论文写作与编程方面也具备强大的能力。无论是进行代码生成、错误调试还是解决编程难题,ChatGPT都能为您提供实用且高质量的建议和指导&am…...
camera-caps:Jetson设备上的一种实用的V4L2可视化界面
camera-caps:Jetson设备上的一种实用的V4L2可视化界面 github地址是: https://github.com/jetsonhacks/camera-caps 注意:Jetpack5.x需要选择tag 5.x版本...
CAN基础知识
CAN 简介 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信 协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种 各样的电子控制系统被开发了出来…...
vue3跨域怎么解决?
其实很简单 假设一个接口; http://101.42.170.68:10000/open/mockData/test1 首先,看自己项目中有没有vue.config.js文件,如果没有自己创建一个,如果有那吗在其中写。 vue.config.js: //固定格式,修改一部分就行了 const { def…...
强化学习小笔记 —— 如何选择合适的更新步长
在强化学习中,动作价值函数的更新可以使用增量法,如下所示: Q k 1 k ∑ i 1 k r i 1 k ( r k ∑ i 1 k − 1 r i ) 1 k ( r k ( k − 1 ) Q k − 1 ) 1 k ( r k k Q k − 1 − Q k − 1 ) Q k − 1 1 k [ r k − Q k − 1 ] \beg…...
容斥 C. Strange Function改编题
补题: 题目详情 - 9.段坤爱取模%%% - SUSTOJ 本题或许是参考 Problem - C - Codeforces 根据题意,f(i)就是不能被整除的最小的一个质因子。 打表发现,当15个质因子相乘后,长度就大于18。 因此可以知道小于等于1e16内的正整数x…...
C++笔记
文章目录 类模板类函数什么是友元函数?什么是内联函数?VECTOR哈希表栈队列映射与解除映射mmap()munmap可变参数 va_start()-va_send()vsnprintf()C/C++异常处理list红黑树类 基类、父类、顶层类、抽象类 子类、派生类 模板类 在C++中,模板类(Template Class)是一种通用…...
python-opencv 培训课程笔记(1)
python-opencv 培训课程笔记(1) 博主参加了一次opencv库的培训课程,把课程所学整理成笔记,供大家学习,第一次课程包括如下内容: 1.读取图像 2.保存图像 3.使用opencv库显示图像 4.读取图像为灰度图像 …...
【C++初阶】STL详解(七)Stack与Queue的模拟实现
本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…...
校园报修抢修小程序系统开发 物业小区报修预约上门维修工单系统
开发的功能模块有: 1.报修工单提交:学生、教职员工等可以使用小程序提交报修请求。这通常包括选择报修的问题类型(如水漏、电器故障、照明问题等),地点,报修联系人,联系电话等,并提供…...
【Android】Hilt比Android好在哪里
Hilt框架的功能和设计理念,和Dagger基本是完全一致的,Hilt也是完全在Dagger基础上进行开发的 但是Dagger的用法比较繁琐,Hilt主要是做了便用性上的改进,主要有以下点 提供常用Component,不用再为每个InjectTarget都创…...
计算方法 期末总结
思维导图 绪论 算法的性质: 有穷性、确切性、有输入输出、可行性 算法的描述方法: 自然语言、伪代码、流程图、N-S流程图 算法设计思想: 化大为小的缩减技术:二分法化难为易的校正技术:开方法化粗为精的松弛技术&a…...
5个颠覆性虚拟显示应用场景:Windows虚拟桌面革命
5个颠覆性虚拟显示应用场景:Windows虚拟桌面革命 【免费下载链接】virtual-display-rs A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10. Works with VR, obs, streaming software, etc 项目地址: https://gitcode.com…...
别再让镜头畸变毁了你的测量精度!Halcon相机标定与畸变矫正保姆级教程
工业视觉测量精度提升实战:Halcon镜头畸变矫正全流程解析 在精密测量领域,1%的误差可能意味着100%的失败。当你的视觉系统反复出现边缘区域测量偏差时,问题往往藏在镜头畸变这个"隐形杀手"里。上周遇到个典型案例:某汽车…...
Kubernetes Pod启动耗时仅剩113ms,但函数首请求仍卡480ms?:Java Agent无侵入式类预加载技术首次开源解析
更多请点击: https://intelliparadigm.com 第一章:云原生 Java 函数冷启动毫秒级优化 Java 在云原生函数计算(如 Knative Serving、OpenFaaS-Java、AWS Lambda Custom Runtime)中长期面临冷启动延迟高(常达 800ms–3s…...
大模型面试通关秘籍:面试官亲划的5大核心考点(附满分回答模板)
别再背500页的面试宝典了!Transformer、RAG、Agent、工程化...真正能帮你拿Offer的,只有这5张表前言:面试官到底想听什么?很多候选人面试大模型岗位时,最大的误区就是“背概念而不是讲逻辑”。举个例子:问“…...
AM32电调PID调参实战:手把手配置电流环、速度环与抗堵转PID
AM32电调PID调参实战:从电流环到抗堵转的精细控制 在FPV竞速和航拍领域,电机响应速度的毫秒级差异往往决定着比赛胜负或镜头稳定性。AM32固件作为开源电调方案的集大成者,其多环PID控制系统提供了近乎工业级的调节维度。本文将带您深入电流环…...
别再只用BBox了!用自然语言描述,让AI更懂你想跟踪什么(附LaSOT/TNL2K数据集实战)
自然语言驱动的视觉目标跟踪:超越BBox的下一代交互范式 在计算机视觉领域,目标跟踪技术已经发展了数十年,但大多数系统仍然依赖第一帧的边界框(BBox)作为初始输入。这种机械式的交互方式与人类描述目标的自然习惯相去甚远——当我们向他人描述…...
开源贡献者:如何将个人项目打造成职业跳板?
从代码贡献者到职业跃迁者的进化在当今以开源为驱动的技术生态中,个人参与开源项目的意义已远超简单的代码提交。对于软件测试从业者而言,开源贡献不再是锦上添花的兴趣点缀,而是重塑职业身份、实现价值跃迁的战略杠杆。一个精心构建的个人开…...
宠物商城系统接口文档(用户 / 宠物 / 订单)
基于RESTful 规范设计,包含用户模块、宠物模块、订单模块核心接口,支持前后端直接对接,接口清晰、可直接用于开发。 通用规范 请求方式:GET (查询)、POST (新增)、PUT (修改)、DELETE (删除)数据格式:请求 / 响应均使…...
从《我的世界》到小游戏:用SFML和VS2022开启你的2D图形编程之旅
从《我的世界》到小游戏:用SFML和VS2022开启你的2D图形编程之旅 你是否曾经玩过《我的世界》,被那些简单的方块构建出的无限可能所吸引?或者梦想过亲手打造属于自己的2D小游戏?对于许多编程新手来说,游戏开发似乎是一…...
AI Agent在教育个性化学习中的潜力
万字长文拆解:AI Agent在教育个性化学习中的核心潜力与落地路径 作为深耕教育科技领域5年的软件工程师,我见过太多「因材施教」的理想卡在了「规模化成本」的死胡同里:一个45人的班级,老师哪怕不吃不睡,也不可能为每个学生定制完全适配的学习路径。而大模型时代崛起的AI A…...
