Application Testing Based On NXP i.MX8MQ Platform

Forlinx OKMX8MQ-C development board is based on the NXP i.MX8MQ application processor design, ARM Cortex-A53 and Cortex-M4 cores.

OKMX8MQ-C development board

Featuring industry-leading audio, voice, and video processing capabilities, high-quality video, full 4K UltraHD resolution, and HDR (DolbyVision, HDR10, and HLG), the platform offers a wide range of interface features and flexible memory options to adjust CPU frequencies to your needs. Suitable for a wide range of applications, from consumer home audio to industrial building automation and mobile computers.

OKMX8MQ-C development board

The following is a review of the OKMX8MQ-C board from storage, gigabit network, and 4K decoding.

Data storage --storage device read and write test

i.MX8MQ platform currently equipped with 8G eMMC, support TF for storage, support NVMe PCIe M.2 SSD, a variety of storage device selection, SSD reading can reach 234MB/S, write can also reach 178MB/S, below are several storage devices of the actual test reading and writing data.

1. The TF card test

Inserts the TF card into the TF card slot on the base plate of the board, and normally the board terminal has the following print information:

By default, the TF card is mounted to the file system/run/media/directory

Viewing mount directory:

Write test: $dd if=/dev/zero of=/run/media/mm cblk1p1/test bs=1M count=500conv=fsync oflag=direct

Reading test:

$dd if=/run/media/mmcblk1p1/test of=/dev/null bs=1M iflag=direct

2. eMMc test

i.MX8MQ platform eMMC runs in HS200 mode by default, the following is a simple test eMMC reading and writing speed, to read and write ext4 file system as an example.

Write test:

$dd if=/dev/zero of=/test bs=1M count=500 conv=fsync oflag=direct

Reading Test:

$dd if?/of the ?dev/null bs=1M iflag=direct

3. NVMe PCIe M.2 SSD test

The PCIe device module is inserted into the M.2 interface card slots KEY E (P37) and KEYM (P34) corresponding to the base plate according to the schematic and interface type before power-up. After powering up the linux, you can see the corresponding device enumeration by:

$lspci

Write test:

$dd if=/dev/zero of=/run/media/nvme0n1p1/test bs=1M count=500 conv=fsync oflag=direct

Reading test:

$dd if=/run/media/nvme0n1p1/test of=/dev/null bs=1M iflag=direct

Network transmission data --Gigabit network measured data

With OKMX8MQ-C board and PC direct link test, the following are OKMX8MQ-C board to do server and Client side test results.

1, OKMX8MQ-C development board to do Cliient test data as follows

PC side

OKMX8MQ-C development board side:

2, OKMX8MQ-C board to do Service test data as follows

PC side:

OKMX8MQ-C development board side:

4K decoding --- multimedia testing

OKMX8MQ-C board audio and video part of the application layer software is Gstreamer, support hardware codec. All examples in this section are in the form of the Streamer command line. If you need a player with an interface, you can also use QT's multimedia class, which also supports hard-to-deconstication.

Inside the OKMX8MQ-C board is a video processing unit VPU that supports video hard solutions in the following formats:


Video decoding support 4Kp60: HEVC/H265, VP9;

Video decoding support 4Kp30: AVC/H.264;

Video decoding support is up to 1080p60: MPEG-2, MPEG-4p2, VC-1, VP8, RV9, AVS, MJPEG, H.263.

OKMX8MQ-C board hardware codec 4K parameter table:

1. 4K video VP9 decoding (up to 60fps support)

Decode and play VP9 video files:

$ gst-launch-1.0 filesrc location=/home/forlinx/video/4kvp9p60.webm\

typefind=true ! video/x-matroska ! aiurdemux ! queue max-size-time=0!\

vpudec ! autovideosink

Play audio and video at the same time:

$ gst-launch-1.0 filesrc\

location=/home/forlinx/video/4kvp9p60.webm typefind=true !\

video/x-matroska ! aiurdemux name=demux demux. ! queuemax-size-buffers=0\

max-size-time=0 ! vpudec ! autovideosink demux.\

! queue max-size-buffers=0 max-size-time=0 ! decodebin ! audioconvert\

! audioresample ! pulsesink

2. 4K video H265 decoding (up to 60fps support)

Decode and play H265 video files:

$ gst-launch-1.0 filesrc\

location=/home/forlinx/video/4kh265p24.mkv typefind=true !\

video/x-matroska ! aiurdemux ! queue max-size-time=0 ! vpudec !autovideosink

Play audio and video at the same time:

$ gst-launch-1.0 filesrc\

location=/home/forlinx/video/4kh265p24.mkv typefind=true !\

video/x-matroska ! aiurdemux name=demux demux. ! queuemax-size-buffers=0\

max-size-time=0 ! vpudec ! autovideosink demux.\

! queue max-size-buffers=0 max-size-time=0 ! decodebin ! audioconvert\

! audioresample ! pulsesink

Compared to traditional H.264 encoding, the average decoding efficiency is 50%, and the bandwidth and capacity of transmitting and storing the same resolution of video is 50% of H.264.