cancel
Showing results for 
Search instead for 
Did you mean: 

video codec

Chuev.Vladimir
Associate III

I am developing an industrial tablet with only one task - to display and record video

It should be ready to work in a few seconds after turning on (that's why I also think about using STM32H7)

I need to show on the display 720p (ideally 1080p) 30 frames per second, as well as encode and decode them in H264 / 265

Is STM32MP capable of doing this?

If so, could you please give me some material to start exploring embedded Linux?

Before that, I wrote only for microcontrollers, to be honest, it's easier for me to work with bare metal and would really like to be able to generate HAL code using CubeMX

When trying to work with the IMX6, I stopped at the fact that I just can't switch the output from HDMI to LVDS. Not to mention more complicated things like setting up custom DDR and NAND

Where can I find out?

I know how this peripheral works at the "iron" level and I think I can write drivers for it. But my problem is that I just can't sort through this huge heap of Linux code, I don't even know where to write this code. I find an incredible number of macros that are not documented anywhere, there are no standards, this is complete chaos for me

2 REPLIES 2

You can find some bare metal support for STM32MP1 A7 core in my project:

https://github.com/ua1arn/hftrx

KnarfB
Principal III

If you want to take a deeper look at STM32MP1 there is an online workshop https://www.youtube.com/playlist?list=PLnMKNibPkDnFeV4sBarnsAtFTg7h6V-9_ and the wiki https://wiki.st.com/stm32mpu.

For those complex chips like iMX6 (which I have worked with for a couple of years) or STM32MP1, IMHO it makes no sense to start programming at the register level unless you have a powerful team and target specific certifications like functional safety levels. I would follow the standard path using Yocto to build a Linux distro for your device. Even this path can be steep and winding. And, it will keep you busy to adapt to the release cycles.

If the main function of your product is video encoding/decoding, I would choose a SoC with an on-chip hardware codec unit. Even if it could be done in software (what I doubt), a hardware assisted codec will use less power which is important for a portable device. You will also typically find more video-related features (scalers, color space converters, brightness/hue/saturation/gamma correction, 90° rotation to name a few) in a SoC designed "for video" which the STM32MP157 is not.

Especially for video encoding there is vicious triangle between low computational workload, low output bitrate, and high video quality: you cannot have them all three simultaneously.