技术专栏
rv1126 mpp硬件编解码
一.mpp支持信息
支持的编解码类型及像素类型:
mpp[569]: mpi: mpp coding type support list:
mpp[569]: mpi: type: dec id 0 coding: mpeg2 id 2
mpp[569]: mpi: type: dec id 0 coding: mpeg4 id 4
mpp[569]: mpi: type: dec id 0 coding: h.263 id 3
mpp[569]: mpi: type: dec id 0 coding: h.264/AVC id 7
mpp[569]: mpi: type: dec id 0 coding: h.265/HEVC id 16777220
mpp[569]: mpi: type: dec id 0 coding: vp8 id 9
mpp[569]: mpi: type: dec id 0 coding: VP9 id 10
mpp[569]: mpi: type: dec id 0 coding: avs+ id 16777221
mpp[569]: mpi: type: dec id 0 coding: jpeg id 8
mpp[569]: mpi: type: enc id 1 coding: h.264/AVC id 7
mpp[569]: mpi: type: enc id 1 coding: jpeg id 8
mpp[569]: mpi: type: enc id 1 coding: h265 id 16777220
mpp[569]: mpi: type: enc id 1 coding: vp8 id 9
mpp[569]: mpi: mpp color support list:
mpp[569]: mpi: color: id 0 0x00000 YUV420SP, NV12
mpp[569]: mpi: color: id 1 0x00001 YUV420SP-10bit
mpp[569]: mpi: color: id 2 0x00002 YUV422SP, NV24
mpp[569]: mpi: color: id 3 0x00003 YUV422SP-10bit
mpp[569]: mpi: color: id 4 0x00004 YUV420P, I420
mpp[569]: mpi: color: id 5 0x00005 YUV420SP, NV21
mpp[569]: mpi: color: id 6 0x00006 YUV422P, 422P
mpp[569]: mpi: color: id 7 0x00007 YUV422SP, NV42
mpp[569]: mpi: color: id 8 0x00008 YUV422-YUYV, YUY2
mpp[569]: mpi: color: id 10 0x0000a YUV422-UYVY, UYVY
mpp[569]: mpi: color: id 12 0x0000c YUV400-Y8, Y800
mpp[569]: mpi: color: id 65536 0x10000 RGB565
mpp[569]: mpi: color: id 65537 0x10001 BGR565
mpp[569]: mpi: color: id 65538 0x10002 RGB555
mpp[569]: mpi: color: id 65539 0x10003 BGR555
mpp[569]: mpi: color: id 65542 0x10006 RGB888
mpp[569]: mpi: color: id 65543 0x10007 BGR888
mpp[569]: mpi: color: id 65546 0x1000a ARGB8888
mpp[569]: mpi: color: id 65547 0x1000b ABGR8888
mpp[569]: mpi: color: id 65548 0x1000c BGRA8888
mpp[569]: mpi: color: id 65549 0x1000d RGBA8888
二.H264硬件编解码耗时
通过修改环境变量,可以查看硬件编解码的耗时,下面以1080p H264的编解码过程,来看下耗时情况(注意,如果没有接串口调试工具,而是通过ssh连接的设备,默认看不到系统信息,需要通过dmesg命令来看,dmesg -c可以查看信息并清除):
编解码调试信息打开命令:
echo 0x0100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug
1.编码H264耗时:
命令:
mpi_enc_test -w 1920 -h 1080 -t 7 -i test-420sp-nv12-40i.yuv -o ./test-420sp-nv12.h264 -n 40 -r 25
耗时:
[30880.160290] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8780 us
[30880.192603] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8740 us
[30880.221705] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 9008 us
[30880.251454] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8780 us
[30880.282631] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8711 us
[30880.314301] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8769 us
[30880.345558] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8776 us
[30880.377452] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8726 us
[30880.402128] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8727 us
[30880.429073] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8777 us
[30880.454536] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8733 us
[30880.480960] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8711 us
[30880.506083] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8725 us
[30880.534846] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8832 us
[30880.564863] ffbb0000.rkvenc: pid: 3452, session: 813f8467, time: 8784 us
2.解码H264耗时:
[31193.790609] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4106 us
[31193.805727] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4247 us
[31193.848580] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4081 us
[31193.910752] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4146 us
[31193.926870] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4298 us
[31193.963760] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4161 us
[31194.030271] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4230 us
[31194.046113] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4135 us
[31194.083370] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4251 us
[31194.149656] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4443 us
[31194.164945] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4151 us
[31194.211401] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4134 us
[31194.267779] ffb80000.rkvdec: pid: 917, session: 797c23e6, time: 4255 us
三.jpeg硬件编解码耗时
通过修改环境变量,可以查看硬件编解码的耗时,下面以1080p jpeg/mjpeg的编解码过程,来看下耗时情况(注意,如果没有接串口调试工具,而是通过ssh连接的设备,默认看不到系统信息,需要通过dmesg命令来看,dmesg -c可以查看信息并清除),另外注意,jpeg有图片质量之分,所以不同的图片,即使都是1080p的,编解码耗时也有可能不同。
编解码调试信息打开命令:
echo 0x0100 > /sys/module/rk_vcodec/parameters/mpp_dev_debug
1.编码jpeg
命令:
mpi_enc_test -w 1920 -h 1080 -t 8 -i test-rgba-rgb32-40i.yuv -o ./zl-rgba.jpg -n 1 -r 25 -f 65549
耗时:
[56764.844590] ffb90000.vepu: pid: 2942, session: 545d95af, time: 14713 us
2.解码jpeg
命令:
mpi_dec_test -i zl-rgba.jpg -t 8 -w 1920 -h 1080 -o zl-rgba.yuv
耗时:
[57461.346905] ffb90400.vdpu: pid: 1929, session: 9bf49e81, time: 14311 us
三.mpp编码demo的命令
mpi_enc_test编码demo支持的参数如下:
mpp[569]: mpi_enc_utils: usage: mpi_enc_test [options]
mpp[569]: utils: -i input_file input bitstream file
mpp[569]: utils: -o output_file output bitstream file,
mpp[569]: utils: -w width the width of input picture
mpp[569]: utils: -h height the height of input picture
mpp[569]: utils: -f format the format of input picture
mpp[569]: utils: -t type output stream coding type
mpp[569]: utils: -n max frame number max encoding frame number
mpp[569]: utils: -g gop_mode gop reference mode
mpp[569]: utils: -d debug debug flag
mpp[569]: utils: -b bps target:min:max set tareget bps
mpp[569]: utils: -r in/output fps set input and output frame rate
mpp[569]: utils: -l loop count loop encoding times for each frame
测试命令及log:
1.yuv编码h264测试:
[root@RV1126_RV1109:/userdata/share/rv1126-test/jpgout]# mpi_enc_test -w 1920 -h 1080 -t 7 -i test-bgra-rgb32-40i.yuv -o ./zl-rgba.h264 -n 30 -r 25 -f 655
49
mpp[2554]: mpi_enc_utils: cmd parse result:
mpp[2554]: mpi_enc_utils: input file name: test-bgra-rgb32-40i.yuv
mpp[2554]: mpi_enc_utils: output file name: ./zl-rgba.h264
mpp[2554]: mpi_enc_utils: width : 1920
mpp[2554]: mpi_enc_utils: height : 1080
mpp[2554]: mpi_enc_utils: format : 65549
mpp[2554]: mpi_enc_utils: type : 7
mpp[2554]: mpi_enc_test: mpi_enc_test start
mpp[2554]: mpp_rt: NOT found ion allocator
mpp[2554]: mpp_rt: found drm allocator
mpp[2554]: mpp_info: mpp version: 92a7c2a4 author: daijh 2021-04-21 debian: fix patch not found bug
mpp[2554]: mpi_enc_test: 0x34ac0 mpi_enc_test encoder test start w 1920 h 1080 type 7
mpp[2554]: mpp_enc: MPP_ENC_SET_RC_CFG bps 6480000 [405000 : 6885000] fps [25:25] gop 50
mpp[2554]: h264e_api_v2: MPP_ENC_SET_PREP_CFG w:h [1920:1080] stride [7680:1080]
mpp[2554]: mpp_enc: send header for set cfg change input/format
mpp[2554]: mpp_enc: mode cbr bps [405000:6480000:6885000] fps fix [25/1] -> fix [25/1] gop i [50] v [0]
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 0 size 38562 qp 24
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 1 size 1642 qp 30
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 2 size 1074 qp 30
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 3 size 1432 qp 29
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 4 size 2195 qp 28
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 5 size 303 qp 28
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 6 size 2188 qp 27
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 7 size 743 qp 27
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 8 size 2613 qp 26
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 9 size 1607 qp 26
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 10 size 2697 qp 26
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 11 size 4996 qp 25
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 12 size 3295 qp 25
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 13 size 7893 qp 24
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 14 size 6211 qp 24
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 15 size 11542 qp 22
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 16 size 9468 qp 22
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 17 size 18304 qp 21
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 18 size 10459 qp 21
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 19 size 13349 qp 20
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 20 size 20215 qp 19
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 21 size 19179 qp 19
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 22 size 33357 qp 18
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 23 size 16599 qp 18
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 24 size 16874 qp 17
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 25 size 30334 qp 17
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 26 size 30475 qp 16
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 27 size 18434 qp 16
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 28 size 34099 qp 17
mpp[2554]: mpi_enc_test: 0x34ac0 encoded frame 29 size 28654 qp 16
mpp[2554]: mpi_enc_test: 0x34ac0 encode max 30 frames
mpp[2554]: mpi_enc_test: 0x34ac0 mpi_enc_test success total frame 30 bps 2591953
[root@RV1126_RV1109:/userdata/share/rv1126-test/jpgout]#
2.yuv编码jpg测试:
[root@RV1126_RV1109:/userdata/share/rv1126-test/jpgout]# mpi_enc_test -w 1920 -h 1080 -t 8 -i test-rgba-rgb32-40i.yuv -o ./zl-rgba.jpg -n 1 -r 25 -f 65549
mpp[2952]: mpi_enc_utils: cmd parse result:
mpp[2952]: mpi_enc_utils: input file name: test-rgba-rgb32-40i.yuv
mpp[2952]: mpi_enc_utils: output file name: ./zl-rgba.jpg
mpp[2952]: mpi_enc_utils: width : 1920
mpp[2952]: mpi_enc_utils: height : 1080
mpp[2952]: mpi_enc_utils: format : 65549
mpp[2952]: mpi_enc_utils: type : 8
mpp[2952]: mpi_enc_test: mpi_enc_test start
mpp[2952]: mpp_rt: NOT found ion allocator
mpp[2952]: mpp_rt: found drm allocator
mpp[2952]: mpp_info: mpp version: 92a7c2a4 author: daijh 2021-04-21 debian: fix patch not found bug
mpp[2952]: mpi_enc_test: 0x34ac0 mpi_enc_test encoder test start w 1920 h 1080 type 8
mpp[2952]: mpp_enc: MPP_ENC_SET_RC_CFG bps 6480000 [405000 : 6885000] fps [25:25] gop 50
mpp[2952]: mpi_enc_test: 0x34ac0 encoded frame 0 size 142615
mpp[2952]: mpi_enc_test: 0x34ac0 encode max 1 frames
mpp[2952]: mpi_enc_test: 0x34ac0 mpi_enc_test success total frame 1 bps 28523000
[root@RV1126_RV1109:/userdata/share/rv1126-test/jpgout]#
四.mpp解码demo的命令
mpi_dec_test解码demo支持的参数如下:
[root@RV1126_RV1109:/userdata/share/rv1126-test/ffmpeg-demo-dir]# mpi_dec_test
mpp[1462]: mpi_dec_utils: usage: mpi_dec_test [options]
mpp[1462]: utils: -i input_file input bitstream file
mpp[1462]: utils: -o output_file output bitstream file,
mpp[1462]: utils: -c ops_file input operation config file
mpp[1462]: utils: -w width the width of input bitstream
mpp[1462]: utils: -h height the height of input bitstream
mpp[1462]: utils: -t type input stream coding type
mpp[1462]: utils: -f format output frame format type
mpp[1462]: utils: -d debug debug flag
mpp[1462]: utils: -x timeout output timeout interval
mpp[1462]: utils: -n frame_number max output frame number
mpp[1462]: utils: -s instance_nb number of instances
mpp[1462]: utils: -(null) (null) (null)
mpp[1462]: mpi: mpp coding type support list:
mpp[1462]: mpi: type: dec id 0 coding: mpeg2 id 2
mpp[1462]: mpi: type: dec id 0 coding: mpeg4 id 4
mpp[1462]: mpi: type: dec id 0 coding: h.263 id 3
mpp[1462]: mpi: type: dec id 0 coding: h.264/AVC id 7
mpp[1462]: mpi: type: dec id 0 coding: h.265/HEVC id 16777220
mpp[1462]: mpi: type: dec id 0 coding: vp8 id 9
mpp[1462]: mpi: type: dec id 0 coding: VP9 id 10
mpp[1462]: mpi: type: dec id 0 coding: avs+ id 16777221
mpp[1462]: mpi: type: dec id 0 coding: jpeg id 8
mpp[1462]: mpi: type: enc id 1 coding: h.264/AVC id 7
mpp[1462]: mpi: type: enc id 1 coding: jpeg id 8
mpp[1462]: mpi: type: enc id 1 coding: h265 id 16777220
mpp[1462]: mpi: type: enc id 1 coding: vp8 id 9
[root@RV1126_RV1109:/userdata/share/rv1126-test/ffmpeg-demo-dir]#
五.查看每一路码流的参数
查看每一路码流的编码参数信息,命令:
cat /proc/mpp_service/session_summary
信息截图:
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
2
3
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:1430次2024-02-27 17:03:43
-
浏览量:1571次2023-10-24 18:27:46
-
浏览量:7644次2023-12-27 20:28:48
-
浏览量:3973次2021-04-02 09:47:41
-
浏览量:3842次2021-04-01 13:54:47
-
浏览量:1167次2024-01-26 15:15:36
-
浏览量:2261次2020-08-17 11:44:38
-
浏览量:3471次2022-09-03 09:03:36
-
浏览量:965次2023-08-30 18:37:06
-
浏览量:1621次2023-12-29 17:51:55
-
浏览量:731次2024-01-02 09:46:50
-
浏览量:3984次2021-06-18 16:05:42
-
浏览量:1253次2023-08-31 16:23:55
-
浏览量:2488次2023-11-29 08:59:50
-
浏览量:1207次2023-12-07 00:53:19
-
浏览量:782次2023-12-25 14:23:01
-
浏览量:620次2023-11-28 14:16:24
-
浏览量:620次2024-02-29 16:42:40
-
浏览量:1561次2024-01-04 17:26:55
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
林
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注