【海思SS528 | VDEC】查看VDEC的proc调试信息 | cat /proc/umap/vdec

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍怎么查看VDEC的proc调试信息 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
⏰发布时间⏰:2024-04-07 17:23:36

本文未经允许,不得转发!!!

目录

  • 🎄一、概述
  • 🎄二、属性、参数相关
    • ✨2.1 模块参数(module param)
    • ✨2.2 通道公共属性和参数(chn comm attr & params)
    • ✨2.3 通道视频属性和参数(chn video attr & params)
    • ✨2.4 通道图片属性和参数(chn pic attr & params)
  • 🎄三、解码状态相关
    • ✨3.1 通道状态(chn state)
    • ✨3.2 详细流状态(detail stream state)
    • ✨3.3 详细帧存状态(detail frame store state)
    • ✨3.4 详细用户数据状态(detail user_data state)
  • 🎄四
  • 🎄五
  • 🎄六、


在这里插入图片描述

🎄一、概述

海思平台在/proc目录下提供了一个文件vdec来实时记录的VDEC的一些属性、参数,以及解码的状态。在进行代码开发时,该文件可以帮助我们及时发现解码的问题。

cat /proc/umap/vdec运行后,显示的信息可以大致可分成两部分,一个是设置的属性和参数;另一个是解码相关的实时状态。这些信息主要包括下面几点:
1、模块参数
2、通道公共属性和参数
3、通道视频属性和参数:JPED没有
4、通道图片属性和参数:仅JPED有
5、通道状态
6、详细流状态
7、详细帧存状态
8、详细用户数据状态


在这里插入图片描述

🎄二、属性、参数相关

✨2.1 模块参数(module param)

在这里插入图片描述

  • g_vdec_max_chn_num:VDEC支持的最大解码通道数。
    Linux系统可通过加载ssxxx_vdec.ko或ssxxx_vdec.ko时设置模块参数g_vdec_max_chn_num配置;
  • mini_buf_mode:是否使用码流Buffer省内存模式。
    • 0:不使用;
    • 1:使用。(注意:码流Buffer省内存模式只有在帧模式解码下有效)
  • vb_src:解码帧存分配方式。
    • MOD:模块VB;
    • PRIVATE:私有VB;
    • USER:用户VB
  • g_vdec_compat_mode:解码兼容模式。
    • 0:默认模式;
    • 1:兼容模式,兼容编码跳帧参考配置错误的码流,会额外多使用一个帧存。
  • max_video_width:视频解码支持的最大宽度。
  • max_video_height:视频解码支持的最大高度。
  • max_slice_num:视频解码支持的最大slice个数。
  • vdh_msg_num:VDH解码消息池个数
  • schedule_mode:系统调度模式。
  • max_pic_width:图片解码支持的最大宽度。
  • max_pic_height:图片解码支持的最大高度。
  • progressive_en :是否支持progressive。 0:不支持; 1:支持。
  • dynamic_alloc_en :是否动态分配progressive内存。0:静态分配;1:动态分配
  • max_pic_width :capacity_strategy 最大解码宽高能力集策略。
    • 0:模块宽高能力集;
    • 1:通道宽高能力集。

✨2.2 通道公共属性和参数(chn comm attr & params)

在这里插入图片描述

  • id:解码通道号
  • type:解码通道类型。OT_PT_H264;OT_PT_H265;OT_PT_MJPEG;OT_PT_JPEG。
  • max_w:配置的解码图像最大宽度。单位:像素。
  • max_h :配置的解码图像最大高度。单位:像素。
  • width :解码图像宽度。
  • height :解码图像高度。
  • send_mode:解码通道码流发送模式。包含两方面的内容。
    • FRAME、 STREAM、 COMPAT:按帧、按流、兼容模式发送;
    • BLOCK、 NOBLOCK、 TIMEOUT:阻塞、非阻塞、 timeout方式码流。
  • str_buf_size:码流buffer大小。
  • frame_buf_size:帧存buffer大小,仅在PrivateVB模式下有效。
  • frame_buf_cnt:帧存buffer个数,仅在PrivateVB模式下有效。
  • tmv_buf_size:Tmv buffer大小,仅在PrivateVB模式下有效。

在这里插入图片描述

  • id:解码通道号
  • state:解码通道是否开始接收码流。
    • START:开始接收;
    • STOP:停止接收
  • display_num:显示帧个数。取值范围: [0, 16]
  • display_mode:显示模式。取值范围: PLAYBACK、 PREVIEW。
  • rotation:解码图像旋转角度。
  • set_user_pic:是否设置了用户图片。
  • enable_user_pic:是否使能用户图片。
  • pic_pool_id:帧存所在的VB Pool ID,仅在PrivateVB和UserVB模式下有效。
  • tmv_pool_id:Tmv所在的VB Pool ID,仅在PrivateVB和UserVB模式下有效。

✨2.3 通道视频属性和参数(chn video attr & params)

这是视频解码的,JPED解码没有这些属性和参数。
在这里插入图片描述

  • id:解码通道号。
  • vfmw_id: VFMW通道号。
  • ref_num: 参考帧个数。取值范围: [0, 16]
  • tmv_en: 是否支持时域运动矢量预测。
  • err_threshold: 码流错误率阈值。
  • dec_mode: 解码模式。
  • out_order: 解码图像输出顺序。
  • compress_mode: 是否支持解码输出图像压缩。
  • video_format: 解码图像数据格式。

在这里插入图片描述

  • id:解码通道号。
  • max_vps_num: 支持的最大VPS个数,仅H265解码有效。
  • max_sps_num: 支持的最大SPS个数。
  • max_pps_num: 支持的最大PPS个数
  • max_slice_segment_num: 支持的最大Slice个数

在这里插入图片描述

  • id 解码通道号。
  • composite_dec_en 是否使能复合解码。
  • quick_mark_mode 快速释放参考帧模式
  • deployment_mode 解码部署模式。仅SS626V100支持。

✨2.4 通道图片属性和参数(chn pic attr & params)

只有JPEG解码通道才有。
在这里插入图片描述

  • id:解码通道号。
  • pixel_format:JPEG图片输出格式。
  • alpha:JPEG图片输出ARGB格式时的全局Alpha值。

在这里插入图片描述

🎄三、解码状态相关

✨3.1 通道状态(chn state)

在这里插入图片描述

  • id:解码通道号。
  • protocol_err:解码器上报协议错误次数。
  • str_unsupport:解码器上报不支持规格的次数。
  • pack_err:解码器上报码流语法错误的次数。
  • ref_num_err:解码器上报码流参考帧帧数超过配置帧数的次数。
  • pic_size_err:解码器上报解码图像超过通道大小的次数。
  • format_err:不支持的格式。
  • pic_buf_size_err:图像Buffer大小不够的次数。
  • str_size_over:一帧码流太大了,当整个SCD buffer都装不下一帧码流时,强制清空SCD buffer。

在这里插入图片描述

  • id:通道号。
  • pts_buf_free:按帧发送时, VDEC帧队列的空闲个数。
  • pts_buf_busy:按帧发送时, VDEC帧队列的使用个数。
  • buf_len:VDEC码流buffer的剩余空间,以byte为单位。
  • data_len:VDEC码流buffer的未读数据长度,以byte为单位。
  • rd_rgn_len:VDEC码流buffer的已被VFMW读走但未经SCD切帧的码流。
  • scd_left_len:SCD buffer剩余的未解码的码流。
  • wr_rgn_len:VDEC码流buffer中写区间的长度,即写头与写尾之间的数据长度。

在这里插入图片描述

  • id:通道号。
  • fps:解码实际帧率
  • stream_end:接收到end_of_stream为1的次数。
  • frame_end:帧结束次数。帧模式时为送码流次数,兼容模式时为end_of_frame的次数。
  • timer_cnt:解码器内部定时器的启动次数
  • notify:解码器内部事件上报的次数。
  • unique_id:unique id计数。
  • state:通道状态。
  • send_vgs:提交vgs任务次数。
  • vgs_back:vgs回调次数。

✨3.2 详细流状态(detail stream state)

在这里插入图片描述

  • id:通道号。
  • mpi_send_cnt:用户发送码流次数。
  • mpi_send_len:用户发送码流累计长度,以byte为单位。
  • end_code_cnt:VDEC内部增加结束码次数,仅在按帧发送时有效。
  • end_code_len:VDEC内部增加码流累计长度,以byte为单位。
  • vfmw_get_cnt:VFMW获取码流次数。
  • vfmw_get_len:VFMW获取码流累计长度,以byte为单位。
  • vfmw_rls_cnt:VFMW释放码流次数。
  • vfmw_rls_len:VFMW释放码流累计长度,以byte为单位

在这里插入图片描述

  • id:通道号。
  • vfmw_latest_get_len:VFMW最后一次获取的数据长度,以byte为单位。
  • vfmw_rls_fail_cnt:VFMW释放码流失败的次数。
  • mpi_send_gap:用户发送每帧的间隔时间,以us为单位。流模式下不支持。

✨3.3 详细帧存状态(detail frame store state)

在这里插入图片描述

  • id:通道号。
  • new_pic:VFMW解码出图像帧数。
  • get_pic:从VFMW成功获取的图像帧数。
  • discard:VDEC丢弃图像帧数。
  • no_display:设置解码图像不显示的次数。
  • mpi_get:VDEC从用户态发送图像帧数。
  • kernel_send:VDEC从内核态发送图像给其他模块的帧数。
  • kernel_rls:用户或其他模块释放图像给VDEC的帧数。
  • meet_end:VFMW已经解析的帧结束码次数。
  • frame_in_vdec:解码器中缓存的未解码的帧数

在这里插入图片描述

  • id:通道号。
  • free_node:空闲帧存节点数。
  • vfmw_node:VFMW正在占用的帧存节点个数。
  • vgs_node:等待提交旋转任务的帧存节点个数。
  • vgs_working_node:正在旋转的帧存节点个数。
  • busy_node: 等待发送(或等待用户获取)的帧存节点数。
  • user_node: 已发送(或用户已获取)的帧存节点数。
  • ref_num: 当前作为参考帧的帧存节点个数。
  • vb_cnt: 当前正在使用的帧存个数。
  • max_vb_cnt: 最多可使用的解码帧存个数。max_vb_cnt = ref_num + display_num +1。
  • rotate_vb_cnt: 当前正在使用的旋转输出帧存VB个数。rotate_vb_cnt最多可使用display_num +1个。

在这里插入图片描述

  • id:通道号。
  • available:是否有空闲的帧存。
  • pic_vb_fail:获取pic VB失败的次数。
  • tmv_vb_fail:获取mvp VB失败的次数。
  • rotate_vb_fail:获取用于旋转输出VB失败的次数。
  • pic_size:当前码流需要的帧存buffer实际大小。
  • tmv_size:当前码流需要的tmv buffer实际大小。
  • rotate_size:旋转输出图像需要的buffer实际大小。
  • cur_pic_pts:最新解码图像的时间戳。

在这里插入图片描述

  • id:通道号。
  • dynamic_range:输出图像的动态范围。
  • color_gamut:输出图像的色域范围

✨3.4 详细用户数据状态(detail user_data state)

在这里插入图片描述

  • id:通道号。
  • enable:是否使能用户数据。
  • max_user_data_len:单个用户数据最大长度。单位: byte。
  • free_buf_len:用户数据buffer空闲长度。单位: byte。
  • data_buf_len:用户数据buffer已占用长度。单位: byte。

在这里插入图片描述

  • id:通道号。
  • mpi_get_cnt:用户获取用户数据次数。
  • mpi_get_len:用户获取用户数据长度。单位: byte。
  • mpi_rls_cnt:用户释放用户数据次数。
  • mpi_rls_len:用户释放用户数据长度。单位: byte。
  • discard_cnt:VDEC丢弃用户数据的次数。
  • discard_len:VDEC丢弃用户数据长度。单位: byte。
  • vdec_get_cnt:VDEC得到用户数据的次数。
  • vdec_get_len:VDEC得到用户数据的长度。单位: byte

在这里插入图片描述

🎄四

在这里插入图片描述

🎄五

在这里插入图片描述

🎄六、

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/523019.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

稀碎从零算法笔记Day38-LeetCode:除自身以外数组的乘积

题型:数组、前缀、分治、 链接:238. 除自身以外数组的乘积 - 力扣(LeetCode) 来源:LeetCode 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之…

Linux:安装zabbix-agent被监控端(2)

本章是结合着上一篇文章的续作 Linux:部署搭建zabbix6(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/137426966?spm1001.2014.3001.5501本章将在两台centos部署agent端,然后使用server进行连接监控 agent1 在1…

突破编程_前端_SVG(基础元素介绍)

1 rect 矩形 在 SVG 中&#xff0c;<rect> 元素用于创建圆形。 &#xff08;1&#xff09;基本语法 <rectx"x坐标"y"y坐标"width"宽度"height"高度"rx"可选&#xff1a;圆角x半径"ry"可选&#xff1a;圆角…

达梦数据库记录

1.计算日期差 SELECT DATEDIFF(day,sysdate(), 2024-06-01) 2.出现HJ_BUF_GLOBAL_SIZE设置不当造成应用报错的问题&#xff0c;详细信息如下&#xff1a; dm.jdbc.driver.DMException: 超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZEat dm.jdbc.driver.DBError.throwExce…

Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 目录 一、引言二、什么是桥接设计模式三、桥接设计模式的核心思想四、桥接设计模式的角色五、桥接设计模式的工作流程和实现实现方…

如何设置win10系统不更新,win10怎么设置系统不更新系统

Win10频繁地更新让很多用户感到困扰,虽然我们都知道,更新系统有利于提高系统的安全性,同时还能获得功能更新以及一些bug修复,但是过于频繁的更新会让人感到疲惫,也有不少用户对此举表示反感。一般情况下,win10系统是默认自动更新的,如何阻止系统自动更新呢?下面,小编跟…

文件夹类型变无?数据恢复有高招!

在日常使用电脑的过程中&#xff0c;我们有时会遇到一种奇怪的现象&#xff1a;原本整齐有序的文件夹突然变成了无类型的状态&#xff0c;即文件夹类型变无。这些文件夹失去了原有的图标和属性&#xff0c;变成了系统无法识别的空白图标&#xff0c;甚至无法打开。这种情况下&a…

甘特图/横道图制作技巧 - 任务组

在甘特图中通过合理的任务分组可以让项目更加清晰&#xff0c;修改也更方便。 列如下面的甘特图一眼不太容易看清楚整体的进度。或者需要把所有的任务整体的延迟或者提前只能这样一个一个的任务调整&#xff0c;就比较麻烦。 通过给任务分组&#xff0c;看这上面整体的进度就…

Redis安装及基本类型详解

目录 一、Redis概念 二、Redis的应用场景 三、Redis的特点 四、redis访问数据为什么快&#xff1f; 五、Ubuntu下安装redis 五、全局命令(针对任意类型value都可使用) 1、keys &#xff08;1&#xff09;keys * &#xff08;2&#xff09;keys pattern 2、exists 3、…

git Failed to connect to 你的网址 port 8282: Timed out

git Failed to connect to 你的网址 port 8282: Timed out 出现这个问题的原因是&#xff1a;原来的仓库换了网址&#xff0c;原版网址不可用了。 解决方法如下&#xff1a; 方法一&#xff1a;查看git用户配置是否有如下配置 http.proxyhttp://xxx https.proxyhttp://xxx如果…

《梦幻西游》迎来史上最大翻车,老玩家们为何纷纷揭竿而起?

因一次调整&#xff0c;21岁的《梦幻西游》迎来了自己有史以来最大的一波节奏。 玩家在微博上炮轰官方&#xff0c;称&#xff1a;“游戏借着打击工作室牟利的称号&#xff0c;砍副本活动产出&#xff0c;然后自己口袋无限卖”&#xff0c;要求改善游戏现状。 从3月29日起&am…

uniapp 密码框的眼睛

效果展示&#xff1a; uniapp input 官网链接&#xff1a;链接 按照官方文档&#xff0c;uni-icon出不来。 通过自己的方法解决了&#xff0c;解决方案如下&#xff1a; 代码&#xff1a; <uni-forms-item name"password"><inputclass"uni-input&quo…

background背景图参数边渐变CSS中创建背景图像的渐变效果

效果:可以看到灰色边边很难受,希望和背景融为一体 原理: 可以使用线性渐变&#xff08;linear-gradient&#xff09;或径向渐变&#xff08;radial-gradient&#xff09;。以下是一个使用线性渐变作为背景图像 代码: background: linear-gradient(to top, rgba(255,255,255,0)…

【Linux】指令

1. 简单指令 whoami 显示当前登入账号名 ls /home 现在有的用户名 adduser 用户名 新加用户&#xff08;必须在root目录下&#xff09; passwd 用户名 给这个用户设置密码 userdel -r 用户名 删除这个用户 pwd 显示当前所处路径 stat 文件名 / 文件夹名 显示文件状…

学习大数据之JDBC(使用JAVA语句进行SQL操作)(3)

文章目录 DBUtils工具包准备工作DBUtils的介绍QueryRunner空参的QueryRunner的介绍以及使用有参QueryRunner的介绍以及使用 ResultSetHandler结果集BeanHandler<T>BeanListHandler<T>ScalarHanderColumnListHander 事务事务事务_转账分析图实现转账&#xff08;不加…

CTF之GET和POST

学过php都知道就一个简单传参&#xff0c;构造payload:?whatflag得到 flag{3121064b1e9e27280f9f709144222429} 下面是POST那题 使用firefox浏览器的插件Hackbar勾选POST传入whatflag flag{828a91acc006990d74b0cb0c2f62b8d8}

【网站项目】鲜花销售微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Dubbo 服务发现

Dubbo 服务发现 1、什么是服务发现 **服务发现&#xff08;Service discovery&#xff09;**是自动检测一个计算机网络内的设备及其提供的服务。 2、Dubbo 与 服务发现 Dubbo 提供的是一种 Client-Based 的服务发现机制&#xff0c;依赖第三方注册中心组件来协调服务发现过…

【算法】两数之和(暴力求解+哈希表)

本题来源---《两数之和》。 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里…

前端零基础学习web3开发

目录 1 钱包 2 发起交易 3 出块 4 块高 5 矿工 6 Gas费 这一节&#xff0c;我们不说让人神往的比特币&#xff0c;不说自己会不会利用这个虚拟的货币来发财&#xff0c;也不说那些模模糊糊的知识&#xff0c;什么去中心化啦&#xff0c;什么奇妙的加密啦&#xff0c;我们…