Qt Rear View Camera Integration and Qt Dynamic Image Loading

CASE STUDY SNAPSHOT

Customer : A leading Tier 1 in automotive industry supplying to OEMs including off road commercial vehicle manufacturers
Size : 200-1000
Project vertical : Automotive
Challenge : Support new set of features for an instrument cluster including Qt Rear view Camera integration as well as Qt dynamic image loading in a resource constrained MCU environment.
Solution : As a continuation of our earlier Qt App development, fully leveraged Renesas RH850 hardware and QT for MCU capabilities, optimized bus utilization and delivered.
Services Availed :  Embedded Software Development, Qt Application Development,
Tools and Technologies :
  • MPU/MCU: Renesas RH850 D1M1A
  • Framework: Qt for MCU
  • Programming Language: C, C++, QML
  • Compiler: GHS Multi
  • Tools: Qt Studio, E2 Debugger

INTRODUCTION

The Tier 1 supplier for automotive OEMs is already a customer of Embien having worked with us on numerous designs and developments. One of the projects was to develop an automotive cluster on Renesas RH850 platform on QT on MCU framework. While the cluster is already in production, the end customer wanted more features in the next revision, for which our team was more than happy to support.

One of the features is to provide a live reverse camera view of the vehicle surroundings/blind spots to help drivers navigate and park safely. Next user-selected images or themes need to be transferred to the vehicle cluster to provide unique customization. Let us have a look at how our Qt App development services team successfully developed the Qt Rear view Camera integration and Qt dynamic image loading features.

CHALLENGE

In a microcontroller environment, optimal CPU usage, memory usage, and bus utilization/bandwidth usage are key elements to maintain a good performance.

To display a live camera video in UI, multiple processes are involved, such as receiving camera data, storing it in memory, decoding the data, storing it in memory, and displaying it in a TFT. Similarly for User selectable images/themes, many operations have to be done, such as receiving compressed image data, decoding the image data, storing it in an memory, and displaying the images in TFT.

Apart from these, the cluster needs to display other vehicle parameters as well such as speed, RPM, Gear indication, time, temperature etc. after acquiring the input from CAN, I/O, ADC, etc., and due processing as per business logic.

As all these processes involve a good amount of memory read/write cycles and CPU processing, our main challenge was to optimize the memory and bus utilization to avoid any screen flickering and blank screen.

SOLUTION

As mentioned earlier, the firmware was written in QT C++ framework for graphical user interface and C for backend. Our embedded software team carefully profiled the system to understand the potential bottle necks. Few proof-of-concepts were done to calculate the impact of simultaneous memory transfers on the display when doing Qt Rear view Camera integration. With enough data at hand our Qt App development team began the development.

Qt Rear view Camera Integration

To achieve a seamless operation of reverse camera, our engineers created and allocated memory for two windows, one for storing camera live view data and another for the application UI window. Video input received was decoded and data updated into camera window memory.




QT Rear View Camera Integration

Further in the Qt application, sprite layers were created for 3 layers (top, center, and bottom).

  1. The first layer was used to show the speed, gear, time, etc.
  2. The second layer was used to display the camera view.
  3. The third layer was used to show fuel, RPM, tell tales, etc.

For the 1st and 3rd layers, the required telltale images as per theme were stored in external flash, and variables holding the displayable values were stored in internal RAM. The update of the framebuffer was well optimized to update only if there was a change in value, effectively optimizing the frame buffer memory read/write access.

For the 2nd layer, the hardware engine captured the camera data and stores the video data in SDRAM. The same SDRAM address was registered as the 2nd layer of the screen to display a live view. In this way, multiple read/write operations were avoided, bus bandwidth saved, and Qt Rear view Camera integration done.

Qt Dynamic Image Loading

As part of the solution, our Qt App development team decided to reduce the memory consumption/usage by selecting JPEG compression technique for themes/images. Users can select the theme in a mobile application and send it through Wi-Fi instead of Bluetooth to achieve a faster transfer rate. Once the compressed image data was received, the application decoded the image data using RH850 D1M1A JPED decoder hardware engine. The decoded raw image data is stored on an external flash. Consuming the user selected theme and displaying it in the TFT was managed in the QT C++ framework application. As per QT dynamic screen design approach, it read the decoded image data in frame buffer and displayed in UI at run-time.




QT Dynamic Image Loading​

The design supported storing more than 5 images in an external flash based on the flash size. Every time the theme is changed via the cluster display interface, the relevant JPEG images are decoded and stored in predefined location providing a seamless experience to the users.

BENEFITS

With the support of our Qt App development services, the customer was quickly able to perform Qt Rear view Camera integration and Qt dynamic image loading with the following benefits:

  • Integrated and supported reverse camera view over the cluster display enhancing passenger safety.
  • Supported user selectable themes with mobile app-based updates.
  • Leveraged our in-depth knowledge of QT graphical framework to handle unique configurations.
  • Optimized memory flow to provide smooth UI transitions and updates.
  • Fully took advantage of the RH850 JPEG decoder possible without hardware rework saving cost and time.

CONCLUSION

By prioritizing the optimization of bus, CPU, and memory bandwidth in embedded product development, our Qt App development engineers created robust, high-performance cluster that met the demands of users using even a low-cost microcontroller environment. With our extensive knowledge of Renesas microcontrollers, we were able to use the controller resources effectively to meet customer needs. Our extensive QT platform framework experience in Qt for MCU variant resulted in faster delivery.

Facing technical challenges during Qt Rear view Camera integration and Qt dynamic image loading?
Avail our Qt App development service today!