94 views
in Platform Packages by

Hi EW Team,

I am working with Imxrt1170. I am trying to put camera output on top of GUI app. I tried to make it with both VGLite and PXP accelerator.

I can successfully view my camera output over GUI with external bitmap functionality by using 1170EVK-PXP. However, my same code for camera is not working with 1170EVK-VGLite.

My camera gives outputting PAL video with 720x576 format. My Display is 800x400 format. Because of unmatched pixel formats, I have to use PXP functionality to scale and rotate operations for both EVK1170-VGLite and PXP.  As I said PXP functions I used is the same for both use-cases.

In EVK1170-VGLite, I see correct fit camera view on LCD. I can easily see the changes/reactions when I approach/close/open my hand over camera lens. But instead of seeing video display, I see it with full covered patterned/waved(i.e, as if captured frame is covered by a thin patterned. If that cover can be removed, I can see video image) I can send a small video if help you more to understand.

My last question is that, I can run my app on bare metal with EVK-PXP IMXRT1170. However, EVK-VGLite seems running on FreeRtos only. So is it possible to my app running without FreeRtos for VGLite as well? Does EW support VGlite for bare metal?

By the way I am working for Linkas Company using your products in the past.

Waiting your helps, thanks a lot.

P.S. Please send emails if any to burhanhagi@linkas.com.tr at the same time.

UPDATE:

Today, I reviewed my code. For every captured frame from camera, After PXP makes its scale job done, I reviewed RAM memory locations one by one. For EVK-PXP and EVK-VGLite, PXP output buffer gives nearly the same data yield. I suspect if there is any bug related with VGlite Extern bitmap reading example method. Is it possible for VGlite graphics engine to expect different orientation/colour rotation/data format for extern bitmap output pointer?

By the way, as based on to the question in the link https://ask.embedded-wizard.de/7590/different-format-source-bitmap-rgba8888-framebuffer-rgb565?show=7592#a7592,

I chose to use as NXP.iMX_RT_VGLite.RGB8888 package for EVK VGlite camera app and use as NXP.iMX_RT.RGB8888 for EVK-PXP example. Do I have to still continue using NXP.iMX_RT.RGB8888 ? Is there be a problem with NXP.iMX_RT_VGLite.RGBA8888 package for EVK VGLite extern bitmap camera app?

1 Answer

0 votes
by

Hello,

first of all, let me recommend to use Extern Video instead of Extern Bitmap - the Extern Video interface was introduced with Embedded Wizard version 12 in order to support the integration of video sources.

Anyhow, the difference between the video integration on iMXRT1170 with VGLite compared to PXP is the fact, that in one case the PXP is already initialized and has to be shared for the graphics composition of the GUI. In case of VGLite there is no PXP used. Maybe you can first try to fill the memory area with a pattern by CPU in order to ensure that the bitmap is copied properly by VGLite afterwards. Then you can try to use the PXP to prepare the bitmap content.

Concerning the question of VGLite without FreeRTOS - the VGLite sources provided by NXP are based on FreeRTOS. As far as I know, there is no option to use that library in a bare-metal environment.

Concerning the color formats: Of course, NXP.iMX_RT_VGLite.RGBA8888 Platform Package can be used in combination with extern bitmap. Alternatively, RGB565.

Best regards,
Manfred.

by

Hello Manfred,

I added two videos related with my camera project in attached. One of that is based on EVK-PXP and another is EVK-VGLite. EVK-PXP works well but another is not as seen in the attached video.

I am using externbitmap method for displaying camera. I am using PXP functions to view the camera on LCD. Both EVK-PXP and EVK-VGLITE I use my same PXP functions for manipulating data. 

Anyway, In case I may have problem with PXP manipulation, I filled the externbitmap picture area with known buffer data. I tried to draw on LCD at different length lines starting from some coordinates. Such as, 300 width x 1 height or 1 width x 100 height line starting from (20,0) point... I filled data in this buffer for this purpose.I tried to draw every line as having different colour. So, the below links are all related with this approach.

As you see in screenshots, EVK-PXP gives the correct view, however EVK-VGlite shifts picture some pixels. How can I correct this problem? It seems there is a problem with Embedded Wizard Vglite Graphics Engine. Because it shifts buffer content both vertical and horizontal position.

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=6737743132745332740

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=4248319196434300115

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=5434230768655284968

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=11766023302859633471

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=12285064095545736648

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=3384226172649354243

In all above links, I am trying to draw single row with different colour line with different lengths ( some are 300 pixel length, some are 50 pixel length and some 600 pixel length). My bitmap framesize is 600 width x 480 height. You will see the Vglite shifting issue clearly.

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=16729372713493083610

 

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=13876655178486116230

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=2761211717132780909

https://ask.embedded-wizard.de/?qa=blob&qa_blobid=3472358829576983400

by

Hello,

thanks for the provided images. Difficult to say what exactly is going wrong without having done the implementation.

Anyhow: Do you have some rotation in your implementation (ScreenOrientation is 90/180/270 degrees)?

Have you tested the simple extern bitmap implementation as provided in our online documentation which is just filling a XBitmap with some colors? Does this work in both cases on your target?

Best regards,

Manfred.

by
After your comment, We realized that in your externalbitmaploader.c example, there is a code line which took offset value in for loop from GUI. So while I am debugging, I see that offset value is different for PXP and VGLite. That is the reason why I am viewing the corrupted frame.

Now my problem is solved, thank you for your comment and helps.
by
Thanks for sharing the results. Great to hear that it is working now.

It is important to work with the parameters that are provided when the bitmap is locked. In case of VGLite the physical width of a bitmap is aligned to 16 pixel. This happens automatically when you create a bitmap.

Ask Embedded Wizard

Welcome to the question and answer site for Embedded Wizard users and UI developers.

Ask your question and receive answers from the Embedded Wizard support team or from other members of the community!

Embedded Wizard Website | Privacy Policy | Imprint

...