南京做公司网站的公司哪家好,宿松网站建设推荐秒搜科技,七台河网站建设,东莞专业做网站的公司有哪些实物
为AI而生 打开盒子
配置
扛把子的 作为业界首款基于昇腾深度研发的AI开发板#xff0c;Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀。采用昇腾AI技术路线#xff0c;集成图形处理器#xff0c;拥有8GB/16GB LPDDR4X#xff0c;可以外接32…实物
为AI而生 打开盒子
配置
扛把子的 作为业界首款基于昇腾深度研发的AI开发板Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀。采用昇腾AI技术路线集成图形处理器拥有8GB/16GB LPDDR4X可以外接32GB/64GB/128GB/256GB eMMC模块支持双4K高清输出8/20 TOPS AI算力。
其丰富的接口更是赋予了Orange Pi AIpro强大的可拓展性。包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB、两个MIPI摄像头、一个MIPI屏等预留电池接口。
在操作系统方面Orange Pi AIpro支持Ubuntu、openEuler操作系统满足大多数AI算法原型验证、推理应用开发的需求可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域覆盖 AIoT各个行业。
开机进入 作为一个AI产品必须有一个人机交互的界面才行。大家都在跑算法于是我就开始进行整理着手整理搭建Qt的环境。
1、下载源码
wget https://download.qt.io/archive/qt/5.12/5.12.12/single/qt-everywhere-src-5.12.12.tar.xz待下载完成将源码包拷贝到/opt/目录下 依次执行命令 cd /opt sudo mkdir qt mv qt-everywhere-src-5.12.12.tar.xz qt cd qt tar -xf qt-everywhere-src-5.12.12.tar.xz cd qt-everywhere-src-5.12.12。
接下来需要执行配置configure的的操作,因为执行的过程中出现了很多其他的问题所以这里就把配置文件进行整理方便后面是使用配置文件如下
./configure --prefix/home/qt -opensource -shared -static -compile-examples -xcb这个选项关系到界面能否正常显示出来。 等待一个执行完成。 当然处理过程会有些问题了例如这种 只需要在报错的文件中进行加入头文件#include 就好了。 执行gmake等待gmake执行完成后执行make install. 即可以在对应的目录下面看看安装文件。 运行程序的时候会出现qt找不到font文件
那么需要进行一个操作将windows的font文件夹传过去就好了。 freeRDP
下载代码wget https://github.com/FreeRDP/FreeRDP/archive/refs/heads/stable-2.0.zip 安装依赖库 sudo apt-get install build-essential git-core debhelper cdbs dpkg-dev autotools-dev cmake pkg-config xmlto libssl-dev docbook-xsl xsltproc libxkbfile-dev libx11-dev libwayland-dev libxrandr-dev libxi-dev libxrender-dev libxext-dev libxinerama-dev libxfixes-dev libxcursor-dev libxv-dev libxdamage-dev libxtst-dev libcups2-dev libpcsclite-dev libasound2-dev libpulse-dev libjpeg-dev libgsm1-dev libusb-1.0-0-dev libudev-dev libdbus-glib-1-dev uuid-dev libxml2-dev 然后执行 mkdir build cd build cmake …/ make make install 如图所示 接下来可以通过他来连接我的windows了。 从头cpu占用率来看跑FreeRDP一点问题都没有。
样例测试
切换root用户到/opt/opi_test_test/下面 如图所示
跑一个视频解码程序
需要讲test.mp4文件拷贝到data文件夹下面。 代码如下
#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h
#include sys/time.h
#include acllite_dvpp_lite/ImageProc.h
#include acllite_dvpp_lite/VideoRead.husing namespace std;
using namespace acllite;
int main()
{int32_t deviceId 0;int32_t saveNum 10;string videoPath ../data/test.mp4;string outPath ./out_pic/output;AclLiteResource aclResource(deviceId);bool ret aclResource.Init();CHECK_RET(ret, LOG_PRINT([ERROR] InitACLResource failed.); return 1);VideoRead cap(videoPath, deviceId);CHECK_RET(cap.IsOpened(), LOG_PRINT([ERROR] Open test.mp4 failed.); return NULL);ImageData frame;LOG_PRINT([INFO] Start to decode...);for(int i0; isaveNum; i) {string outPic outPath to_string(i) .yuv;ret cap.Read(frame);if(!ret){break;}SaveBinFile(outPic, frame.data.get(), frame.size);}LOG_PRINT([INFO] Frame read end.);return 0;
}
执行bash 接下来看看运行效果 解码的yuv数据在 out文件夹下面
跑一个视频编码的程序
将YUV数据拷贝到data文件夹下面
程序代码如下
#include stdio.h
#include stdlib.h
#include unistd.h
#include string.h
#include sys/time.h
#include acllite_dvpp_lite/ImageProc.h
#include acllite_dvpp_lite/VideoWrite.husing namespace std;
using namespace acllite;
int main()
{int32_t deviceId 0;int32_t saveNum 10;string filePath ../data/test.yuv;string outFile ../out/result.h264;uint32_t width 1920;uint32_t height 1080;AclLiteResource aclResource(deviceId);bool ret aclResource.Init();CHECK_RET(ret, LOG_PRINT([ERROR] InitACLResource failed.); return 1);VideoWrite testWriter(outFile, width, height);CHECK_RET(testWriter.IsOpened(), LOG_PRINT([ERROR] open %s failed., outFile.c_str()); return 1);void* image;void* imageInfoBuf;uint32_t imageInfoSize YUV420SP_SIZE(width,height);CHECK_RET(ReadBinFile(filePath, image, imageInfoSize), LOG_PRINT([ERROR] ReadBinFile failed.); return NULL);imageInfoBuf CopyDataToDevice((void *)image, imageInfoSize);ImageData dst(SHARED_PTR_DEV_BUF(imageInfoBuf), imageInfoSize, width, height, PIXEL_FORMAT_YUV_SEMIPLANAR_420);LOG_PRINT([INFO] Start to encode...);for(int i0; isaveNum; i) {ret testWriter.Write(dst);CHECK_RET(ret, LOG_PRINT([ERROR] Write image to h264 failed.); return NULL);}testWriter.Release();LOG_PRINT([INFO] Frame write end.);return 0;
}
编译运行在out文件夹下面有个h264文件如下 总结
1、从使用的情况看来qt可以正常运行需要多折腾 2、xfreerdp这种应用也可以很流畅的运行。 3、硬解码和编码这块来说没有任何问题对于桌面的h264数据编解码可以在满足绝大多数的场景。 4、结合qt和xfreerdp这个软件的开发以及编解码的处理这款开发板可以作为桌面级云终端产品的选型并且性能远远足够使用在云服务客户端瘦客户端方面可以进行相关的推广。