当前位置: 首页 > article >正文

RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍

视频讲解:

RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍

今天测试下V2D,这是K1特有的硬件级别的2D图像加速器,参考如下文档,但文档中描述的部分有不少问题,后面会讲下

https://bianbu-linux.spacemit.com/device/peripheral_driver/V2D

一般像下面的功能会有opencv进行处理,但cv处理还是会耗费cpu处理时间,用v2d处理就比较节省资源了

ls看下是否已经有这个设备

频率调节,204800000 HZ,307200000 HZ,409600000 HZ,文档里写错了,就三种挡位

echo 409600000 /sys/bus/platform/devices/c0100000.v2d/clkrate

发现没有/usr/share/v2d,看看apt里面有没有,安装完还是没有

全局搜一下,这个内置的v2d_test功能也是不对的

找到github上的仓库,https://github.com/opirg-k1/v2d-test,gittee上面也有 https://gitee.com/bianbu-linux/v2d-test

git clone后,直接进行cmake build

其中blend中的部分代码解释

stBackGround.fbc_enable = 1;      // 开启帧缓冲压缩(FBC)
stBackGround.fd         = 0;      // 文件描述符(可能指向输入缓冲区)
stBackGround.offset     = 0;      // 缓冲区偏移量
stBackGround.w          = 320;    // 宽度为320像素
stBackGround.h          = 240;    // 高度为240像素
stBackGround.stride     = 320;    // 行宽(字节)
stBackGround.format     = V2D_COLOR_FORMAT_NV12;  // 颜色格式为NV12(YUV420SP)
// 背景层矩形区域
stBackGroundRect.x      = 0;
stBackGroundRect.y      = 0;
stBackGroundRect.w      = 320;
stBackGroundRect.h      = 240;stBackGround.fbcDecInfo.fd          = in.fd;    // FBC压缩数据的文件描述符
stBackGround.fbcDecInfo.bboxLeft    = 0;        // 边界框左坐标
stBackGround.fbcDecInfo.bboxTop     = 0;        // 边界框上坐标
stBackGround.fbcDecInfo.bboxRight   = 319;      // 边界框右坐标
stBackGround.fbcDecInfo.bboxBottom  = 239;      // 边界框下坐标
stBackGround.fbcDecInfo.enFbcdecFmt = FBC_DECODER_FORMAT_NV12;  // 解码格式为NV12
stBackGround.fbcDecInfo.is_split    = 0;        // 不使用分割模式
stBackGround.fbcDecInfo.enFbcdecMode= FBC_DECODER_MODE_SCAN_LINE;  // 扫描线解码模式enForeRotate  = V2D_ROT_0;          // 前景不旋转
enForeCSCMode = V2D_CSC_MODE_BUTT;  // 不进行颜色空间转换dither        = V2D_NO_DITHER;      // 不使用抖动算法
memset(&stDst, 0, sizeof(V2D_SURFACE_S));  // 初始化目标表面
stDst.fbc_enable = 0;               // 关闭输出的FBC压缩
stDst.fd         = out.fd;          // 输出缓冲区的文件描述符
stDst.offset     = 0x00;            // 输出缓冲区偏移量
stDst.w          = 320;             // 输出宽度
stDst.h          = 240;             // 输出高度
stDst.stride     = 320*3;           // 输出行宽(RGB888格式,每个像素3字节)
stDst.format     = V2D_COLOR_FORMAT_RGB888;  // 输出格式为RGB888
// 输出矩形区域
stDstRect.x      = 0;
stDstRect.y      = 0;
stDstRect.w      = 320;
stDstRect.h      = 240;memset(&stBlendConf, 0, sizeof(V2D_BLEND_CONF_S));  // 初始化混合配置
stBlendConf.blendlayer[0].blend_area.x = 0;          // 混合区域左上角x坐标
stBlendConf.blendlayer[0].blend_area.y = 0;          // 混合区域左上角y坐标
stBlendConf.blendlayer[0].blend_area.w = 320;        // 混合区域宽度
stBlendConf.blendlayer[0].blend_area.h = 240;        // 混合区域高度
sudo ./v2d_test --blend

sudo mkdir /usr/share/v2d

sudo cp * /usr/share/v2d

可以看到测试成功了

http://www.lryc.cn/news/2379071.html

相关文章:

  • 人工智能100问☞第26问:什么是贝叶斯网络?
  • c++多线程debug
  • 如何畅通需求收集渠道,获取用户反馈?
  • 标准库、HAl库和LL库(PC13初始化)
  • LangGraph深度解析:构建持久化、可观测的智能体工作流
  • 设备预测性维护的停机时间革命:中讯烛龙如何用AI重构工业设备管理范式
  • day29 python深入探索类装饰器
  • Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门
  • 二:操作系统之进程控制块(PCB)
  • Spring-Beans的生命周期的介绍
  • Android 自定义悬浮拖动吸附按钮
  • 通过串口设备的VID PID动态获取串口号(C# C++)
  • [创业之路-361]:企业战略管理案例分析-2-战略制定-使命、愿景、价值观的失败案例
  • Window远程连接Linux桌面版
  • 一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting
  • ARM A64 STR指令
  • C#中的成员常量:编译时的静态魔法
  • Linux wlan 单频段 dual wifi创建
  • HOW - React NextJS 的同构机制
  • c#队列及其操作
  • 【CSS】使用 CSS 绘制三角形
  • 信奥赛-刷题笔记-栈篇-T2-P3056括号调整问题0518
  • 生命之树--树形dp
  • inverse-design-of-grating-coupler-3d
  • Science Robotics 封面论文:基于形态学开放式参数化的仿人灵巧手设计用于具身操作
  • 普通用户的服务器连接与模型部署相关记录
  • DSU-Net
  • 深入解析Python中的Vector2d类:从基础实现到特殊方法的应用
  • 2025年- H30-Lc138- 141.环形链表(快慢指针,快2慢1)---java版
  • LoadBarWorks:一款赛博风加载动画生成器的构建旅程