注意解码时,硬件对图像的宽度和高度存在对齐的要求,在视频解码和图片解码,要求不一致,可以参考官方的功能及约束说明
https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC3alpha001/apiref/appdevgapi/aclpythondevg_01_0337.html
昇腾 310b1 对应 Atlas 200I A2 加速模块
Atlas 200I A2 加速模块集成了昇腾310系列AI处理器,可以实现图像、视频等多种数. 据分析与推理计算,可广泛用于智能监控、机器人、无人机、视频服务器等

宽2对齐

高2对齐

宽Stride为宽16对齐后的值。

如果用户设置的输出图片宽度小于16,则宽Stride最小为32。

高Stride为高2对齐后的值。

内存大小(单位Byte)≥ 宽Stride 高Stride 3/2

cv::Mat ImageDataToMat(const ImageData &imgData)
{

// 确保图像格式是 YUV420SP
if (imgData.format != PIXEL_FORMAT_YUV_SEMIPLANAR_420)
{
    throw std::invalid_argument("Unsupported image format");
}
std::cout << imgData.width << std::endl;
std::cout << imgData.height << std::endl;

// 创建 YUV420SP 的 cv::Mat
cv::Mat yuv420spMat(imgData.height + imgData.height / 2, imgData.width, CV_8UC1, imgData.data.get());

// 将 YUV420SP 转换为 BGR
cv::Mat bgrMat;
cv::cvtColor(yuv420spMat, bgrMat, cv::COLOR_YUV2BGR_NV12);

return bgrMat;

}

基本命令格式
以下是使用 tcpdump 抓包指定端口(9110)并保存到文件的基本命令:

tcpdump -w output.pcap port 9110

解释:
tcpdump:这是抓包工具的命令。
-w:这个选项用于指定将抓包结果输出到文件。output.pcap是输出文件名,你可以将其替换为你想要的文件名,.pcap是一种常用的数据包捕获文件格式,方便后续使用 Wireshark 等工具进行分析。
port 9110:这是过滤条件,用于指定只抓取与端口 9110 相关的数据包。
可选参数以获取更详细的信息
如果你想获取更详细的数据包信息,比如时间戳、协议、源地址、目的地址等,可以添加-v(详细信息)或-vv(更详细信息)选项。
例如:tcpdump -v -w output.pcap port 9110
或者,如果你还想同时看到数据包的内容(以十六进制和 ASCII 格式),可以使用-X选项:

tcpdump -X -w output.pcap port 9110

指定网络接口进行抓包
如果你的机器有多个网络接口(如以太网接口 eth0、无线接口 wlan0 等),你可能需要指定从哪个接口进行抓包。
假设你想从 eth0 接口抓包,可以使用-i选项:

tcpdump -i eth0 -w output.pcap port 9110

限制抓包数量或抓包时间
如果你只想抓取一定数量的数据包,可以使用-c选项。例如,只想抓取 100 个与端口 9110 相关的数据包:

tcpdump -c 100 -w output.pcap port 9110

或者,如果你想限制抓包的时间,可以使用-G和-W选项组合。-G用于指定每个文件的保存时间间隔(以秒为单位),-W用于指定总共要保存的文件数量。例如,每 60 秒保存一个文件,共保存 3 个文件:

tcpdump -G 60 -W 3 -w output%M.pcap port 9110

这里output%M.pcap中的%M是一个时间格式化字符串,表示以分钟为单位进行编号,这样每个文件的名字会根据时间(分钟)不同而不同,方便区分不同时间段的抓包文件。

apt update
apt -y install wget vim unzip cmake build-essential
apt -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
apt -y install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
apt -y install libgtk-3-dev libfreeimage3 libfreeimage-dev
apt -y install libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev libdc1394-dev
apt -y install pkg-config libfreetype-dev libharfbuzz-dev

mkdir -p /home/hesy/opencv && cd /home/hesy/opencv
wget https://github.com/opencv/opencv/archive/refs/tags/4.10.0.tar.gz
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.10.0.zip
unzip 4.10.0.zip
tar xvf 4.10.0.tar.gz
cd opencv-4.10.0
mkdir build && cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_IPP=OFF -D WITH_OPENGL=OFF -D WITH_QT=OFF -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=/home/hesy/opencv/opencv_contrib-4.10.0/modules -D BUILD_EXAMPLES=OFF -D WITH_JASPER=OFF -D BUILD_DOCS=OFF -D BUILD_TESTS=OFF -D BUILD_opencv_java=NO -D BUILD_opencv_python=NO -D BUILD_opencv_python2=NO -D BUILD_opencv_python3=NO -DWITH_FREETYPE=ON -DBUILD_png=ON ..


make -j6
make install

tar czvf opencv-dev-4.10.0.tar.gz /usr/local/include usr/local/lib

配置输出内容

--   OpenCV modules:
--     To be built:                 alphamat aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot quality rapid reg rgbd saliency shape signal stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab wechat_qrcode xfeatures2d ximgproc xobjdetect xphoto
--     Disabled:                    python3 world
--     Disabled by dependency:      -
--     Unavailable:                 cannops cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf java julia matlab ovis python2 sfm viz
--     Applications:                perf_tests apps
--     Documentation:               NO
--     Non-free algorithms:         YES
-- 
--   GUI:                           GTK3
--     GTK+:                        YES (ver 3.24.33)
--       GThread :                  YES (ver 2.72.4)
--       GtkGlExt:                  NO
--     VTK support:                 NO
-- 
--   Media I/O: 
--     ZLib:                        /usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.11)
--     JPEG:                        /usr/lib/aarch64-linux-gnu/libjpeg.so (ver 80)
--     WEBP:                        /usr/lib/aarch64-linux-gnu/libwebp.so (ver encoder: 0x020f)
--     PNG:                         build (ver 1.6.43)
--       SIMD Support Request:      YES
--       SIMD Support:              YES (Arm NEON)
--     TIFF:                        /usr/lib/aarch64-linux-gnu/libtiff.so (ver 42 / 4.3.0)
--     JPEG 2000:                   build (ver 2.5.0)
--     OpenEXR:                     /usr/lib/aarch64-linux-gnu/libImath-2_5.so /usr/lib/aarch64-linux-gnu/libIlmImf-2_5.so /usr/lib/aarch64-linux-gnu/libIex-2_5.so /usr/lib/aarch64-linux-gnu/libHalf-2_5.so /usr/lib/aarch64-linux-gnu/libIlmThread-2_5.so (ver 2_5)
--     HDR:                         YES
--     SUNRASTER:                   YES
--     PXM:                         YES
--     PFM:                         YES
-- 
--   Video I/O:
--     DC1394:                      YES (2.2.6)
--     FFMPEG:                      YES
--       avcodec:                   YES (58.134.100)
--       avformat:                  YES (58.76.100)
--       avutil:                    YES (56.70.100)
--       swscale:                   YES (5.9.100)
--       avresample:                NO
--     GStreamer:                   YES (1.20.3)
--     v4l/v4l2:                    YES (linux/videodev2.h)
-- 
--   Parallel framework:            pthreads
-- 
--   Trace:                         YES (with Intel ITT)
-- 
--   Other third-party libraries:
--     Lapack:                      NO
--     Eigen:                       YES (ver 3.4.0)
--     Custom HAL:                  YES (carotene (ver 0.0.1, Auto detected))
--     Protobuf:                    build (3.19.1)
--     Flatbuffers:                 builtin/3rdparty (23.5.9)
-- 
--   OpenCL:                        YES (no extra features)
--     Include path:                /home/hesy/opencv/opencv-4.10.0/3rdparty/include/opencl/1.2
--     Link libraries:              Dynamic load
-- 
--   Python (for build):            /usr/bin/python3
-- 
--   Java:                          
--     ant:                         NO
--     Java:                        NO
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO
-- 
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
-- 
-- Configuring done