Video processing using Qualcomm Snapdragon and GStreamer

Video processing in embedded devices using Snapdragon for IoT

The image/video processing performance of the processor is one of the important factors when implementing AI functions such as object recognition, object detection, and face recognition in embedded devices. Qualcomm Snapdragon is famous as the SoC that is installed in many Android smartphones, but the Snapdragon platform for IoT that we handle still has high specifications, and many customers have introduced and are considering it.

When handling images and videos with Snapdragon,GStreamerThere are many examples that utilize the multimedia framework called. Snapdragon is equipped with multiple processors such as CPU/GPU/DSP, and by utilizing these abundant resources, it is possible to execute various AI algorithms in real time on images/videos acquired by edge terminals. It is

First of all,I would like to try streamingMIPI-CSIcamera/ USBcamera/ IP camera video usingGStreameron the evaluation kit equipped withQualcomm QCS610. In future articles, we plan to introduce examples of video processing and AI processing using the Snapdragon hardware accelerator using the GStreamer plug-in provided by Qualcomm.

Preparing the test environment

used

C610 Open Kit (Evaluation kit with Qualcomm QCS610)

Windows PC

DisplayPortcompatible display

IPcamera (AXIS M2025-LE)

USBcamera (Logicool C922n)

MIPIcamera module (Module with Sony IMX415)

*The image below shows the C610 Open Kit with an LCD attached, but the LCD is not used in the operations on this page.

Equipment set

Weston environment setup

To prepare theWeston environment, obtain the required file (Turbox-C610-aarch64_AI_Demo_Firmware.tgz)from the download link described in the evaluation kit manual (TurboX C410 C610 Open Kit Software User Manual).

Connect the ADB debug port of the Open Kit to aWindows PC, and execute the following commands on the command prompt of the PC. Commands with (Open Kit) at the beginning indicate that the shell has been started.

> adb root
> adb disable-verity
> adb reboot
> adb root
> adb shell mount -o remount,rw /
> adb push Turbox-C610-aarch64_AI_Demo_Firmware.tgz /data/
> adb shell
(Open Kit) $ tar -zxvf /data/Turbox-C610-aarch64_AI_Demo_Firmware.tgz -C /data/
(Open Kit) $ tar -zxvf /data/Turbox-C610-aarch64_AI_Demo_Firmware/aarch64-weston-dp.tgz -C /
(Open Kit) $ export XDG_RUNTIME_DIR=/dev/socket/weston
(Open Kit) $ chmod 0700 $XDG_RUNTIME_DIR
(Open Kit) $ /usr/bin/weston --tty=1 --device=msm_drm --idle-time=0 &

If you can see this kind of output on the display, you have successfully booted.

*If there is no output on the screen with the above command, please terminate the Westonprocess once by following the procedure below and try starting it again.

(Open Kit) $ killall weston
(Open Kit) $ /usr/bin/weston --tty=1 --device=msm_drm --idle-time=0 &

You are now ready to go. for acquiring images from various camerasGStreamerHere are some command examples.

GStreamer command example

MIPI CSI camera

(Open Kit) $ gst-launch-1.0 -e qtiqmmfsrc name=camsrc ! "video/x-raw(memory:GBM),format=NV12,camera=0,width=1920,height=1080,framerate=30/1" ! waylandsink sync=false x=1000 y=600 width=640 height=480

USB camera

(Open Kit) $ gst-launch-1.0 v4l2src device=/dev/video3 ! videoconvert ! videoscale ! video/x-raw, width=1920, height=1080, framerate=30/1 ! waylandsink sync=false x=100 y=100 width=640 height=480

Device ofv4l2srcis/dev/video3in the above example, but it may be different depending on the environment, so please check the device file and set the appropriate value.

IP camera (for AXIS IP cameras)

(Open Kit) $ gst-launch-1.0 rtspsrc location=rtsp://[user]:[password]@[IP address]/axis-media/media.amp ! rtph264depay ! h264parse ! queue ! qtivdec skip-frames=yes turbo=yes ! waylandsink sync=false x=1000 y=600 width=640 height=480

Settings related tolocation of rtspsrc differ depending on each company 's IPcamera, so please set according to each model.

On this page, weused an evaluation kit equipped with Qualcomm QCS610 as an example to introduce how to set up DisplayPort output and some examples of using GStreamer. In the future, we plan to add content such as usage examples that combine GStreamer with AI inference plug-ins.

The evaluation kit used this time was Thundercomm's TurboX C610 Open Kit. The image below links to the detailed specifications page, so please take a look if you are interested.

Inquiry/Quotation

If you have any questions about the contents of this page or would like more detailed product information, please contact us here.

To Qualcomm manufacturer information Top