<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: YUV to RG color conversion with G2D problem in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598991#M201497</link>
    <description>&lt;P&gt;Hi everybody,&lt;/P&gt;&lt;P&gt;Yes, I was able to fix the problem:&lt;BR /&gt;It was only a problem of the sizes used.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;void&lt;/SPAN&gt; *&lt;SPAN class=""&gt;G2D::convert&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;SPAN class=""&gt;void&lt;/SPAN&gt; *imageBuffer, &lt;SPAN class=""&gt;int&lt;/SPAN&gt; width, &lt;SPAN class=""&gt;int&lt;/SPAN&gt; height)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;int&lt;/SPAN&gt;&lt;SPAN class=""&gt; size &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width * height *&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;struct&lt;/SPAN&gt; &lt;SPAN class=""&gt;g2d_surface&lt;/SPAN&gt;&lt;SPAN class=""&gt; src,dst;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= srcM-&amp;gt;buf_paddr;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.left &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.top &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.right &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.bottom &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height/&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.stride &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width *&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.width &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.height &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height/&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.rot &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_ROTATION_0;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.format &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_YUYV;&lt;/SPAN&gt;&lt;/SPAN&gt;


&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= dstM-&amp;gt;buf_paddr;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.left &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.top &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.right &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.bottom &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.stride &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width ;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.width &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.height &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.rot &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_ROTATION_0;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.format &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_RGB888 ;&lt;/SPAN&gt;&lt;/SPAN&gt;


&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;memcpy&lt;/SPAN&gt;&lt;SPAN class=""&gt;(srcM-&amp;gt;buf_vaddr, imageBuffer, size)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;int&lt;/SPAN&gt;&lt;SPAN class=""&gt; r &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;g2d_blit&lt;/SPAN&gt;&lt;SPAN class=""&gt;(G2D_Handler, &amp;amp;src, &amp;amp;dst)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;if&lt;/SPAN&gt; &lt;SPAN class=""&gt;(r!=&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt; &lt;SPAN class=""&gt;puts&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"convertFrame :: ERROR g2d_blit"&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		r&lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt;&lt;SPAN class=""&gt;g2d_finish&lt;/SPAN&gt;&lt;SPAN class=""&gt;(G2D_Handler)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;if&lt;/SPAN&gt; &lt;SPAN class=""&gt;(r!=&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt; &lt;SPAN class=""&gt;puts&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"convertFrame :: ERROR g2d_finish"&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;return&lt;/SPAN&gt;&lt;SPAN class=""&gt; dstM-&amp;gt;buf_vaddr;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;	}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;Hope it is useful for you!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Feb 2023 16:14:55 GMT</pubDate>
    <dc:creator>ivan_garcia</dc:creator>
    <dc:date>2023-02-14T16:14:55Z</dc:date>
    <item>
      <title>YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1335591#M179634</link>
      <description>&lt;P&gt;Hi!&lt;BR /&gt;We are trying to convert YUV frames captured using libuvc (usb cameras) to RGB, but we are not able to get the right color.&lt;/P&gt;&lt;P&gt;The format that libuvc gives the frames in is YUV422 acording with the headers:&lt;/P&gt;&lt;PRE&gt;enum uvc_frame_format {&lt;BR /&gt;....&lt;BR /&gt; UVC_FRAME_FORMAT_COMPRESSED,&lt;BR /&gt;/** YUYV/YUV2/YUV422: YUV encoding with one luminance value per pixel and&lt;BR /&gt;* one UV (chrominance) pair for every two pixels.&lt;BR /&gt;*/&lt;/PRE&gt;&lt;P&gt;With dimensions 1920x1024, stride&amp;nbsp;3840 (1920*2)&lt;/P&gt;&lt;P&gt;And the code we are using to convert the color is:&lt;/P&gt;&lt;PRE&gt;cv::Mat ConvertFrame(uvc_frame_t *frame, int inputFormat=G2D_YUYV){&lt;BR /&gt;void *G2D_Handler=NULL;&lt;BR /&gt;if (g2d_open(&amp;amp;G2D_Handler)!=0){&lt;BR /&gt;puts("G2D_Start: Error opening g2d device");&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;int size = frame-&amp;gt;data_bytes;&lt;BR /&gt;struct g2d_buf *srcM = g2d_alloc (size,1);&lt;BR /&gt;struct g2d_buf *dstM = g2d_alloc (frame-&amp;gt;width * frame-&amp;gt;height * 3,1);&lt;BR /&gt;memcpy(srcM-&amp;gt;buf_vaddr, frame-&amp;gt;data, size);&lt;BR /&gt;&lt;BR /&gt;struct g2d_surface src,dst;&lt;BR /&gt;src.planes[0] = srcM-&amp;gt;buf_paddr;&lt;BR /&gt;src.planes[1] = 0; //srcM-&amp;gt;buf_paddr;&lt;BR /&gt;src.planes[2] = 0; //srcM-&amp;gt;buf_paddr;&lt;BR /&gt;src.left = 0;&lt;BR /&gt;src.top = 0;&lt;BR /&gt;src.right = frame-&amp;gt;width;&lt;BR /&gt;src.bottom = frame-&amp;gt;height;&lt;BR /&gt;src.stride = frame-&amp;gt;step;&lt;BR /&gt;src.width = frame-&amp;gt;width;&lt;BR /&gt;src.height = frame-&amp;gt;height;&lt;BR /&gt;src.rot = G2D_ROTATION_0;&lt;BR /&gt;src.format = inputFormat;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;cv::Mat out(frame-&amp;gt;height, frame-&amp;gt;width, CV_8UC3, dstM-&amp;gt;buf_vaddr );&lt;BR /&gt;dst.planes[0] = dstM-&amp;gt;buf_paddr;&lt;BR /&gt;dst.left = 0;&lt;BR /&gt;dst.top = 0;&lt;BR /&gt;dst.right = out.cols;&lt;BR /&gt;dst.bottom = out.rows;&lt;BR /&gt;dst.stride = out.step1();&lt;BR /&gt;dst.width = out.cols;&lt;BR /&gt;dst.height = out.rows;&lt;BR /&gt;dst.rot = G2D_ROTATION_0;&lt;BR /&gt;dst.format = G2D_RGB888 ;&lt;BR /&gt;&lt;BR /&gt;int r = g2d_blit(G2D_Handler, &amp;amp;src, &amp;amp;dst);&lt;BR /&gt;if (r!=0) puts("convertFrame :: ERROR g2d_blit");&lt;BR /&gt;r=g2d_finish(G2D_Handler);&lt;BR /&gt;if (r!=0) puts("convertFrame :: ERROR g2d_finish");&lt;BR /&gt;&lt;BR /&gt;char name[128];&lt;BR /&gt;snprintf(name,128,"g2dOutput_%d.png", inputFormat );&lt;BR /&gt;cv::imwrite(name,out);&lt;BR /&gt;&lt;BR /&gt;g2d_free (srcM);&lt;BR /&gt;return out;&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The better results we could get are with&amp;nbsp;inputFormat =&amp;nbsp;G2D_YUYV, but as can be seen in the attached image, this is far to be correct.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can someone give us an idea on how to solve this problem?&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;</description>
      <pubDate>Mon, 06 Sep 2021 16:56:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1335591#M179634</guid>
      <dc:creator>ivan_garcia</dc:creator>
      <dc:date>2021-09-06T16:56:12Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1336876#M179783</link>
      <description>&lt;P&gt;Hello ivan_garcia&lt;/P&gt;
&lt;P&gt;Currently, libg2d does not support YUYV convert to BGR. I will discuss with R&amp;amp;D team to enable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;</description>
      <pubDate>Wed, 08 Sep 2021 12:53:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1336876#M179783</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2021-09-08T12:53:48Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1392722#M185122</link>
      <description>&lt;P&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/34846"&gt;@Bio_TICFSL&lt;/a&gt; ,&lt;/P&gt;&lt;P&gt;any news related to this topic?&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;</description>
      <pubDate>Tue, 28 Dec 2021 16:36:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1392722#M185122</guid>
      <dc:creator>quercuspau</dc:creator>
      <dc:date>2021-12-28T16:36:27Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598979#M201494</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hello&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/34846" target="_blank"&gt;@Bio_TICFSL&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I have exact same problem:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;On NXP imx8mp G2D GPU (GC520L) YUYV to RGBX works fine:&lt;BR /&gt;G2D_YUYV to G2D_RGBX8888 works fine&lt;BR /&gt;&lt;BR /&gt;However YUYV to RGB (24bit RGB888) does not work. I have same broken pictures as above.&lt;BR /&gt;G2D_YUYV to G2D_RGB888&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Any hints how I can solve this problem?&lt;BR /&gt;Thank you&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2023 16:00:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598979#M201494</guid>
      <dc:creator>malik_cisse</dc:creator>
      <dc:date>2023-02-14T16:00:00Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598984#M201495</link>
      <description>&lt;P&gt;Hi Ivan,&lt;BR /&gt;&lt;BR /&gt;Could you solve this problem?&lt;BR /&gt;I am facing same issue.&lt;BR /&gt;Thx&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2023 16:04:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598984#M201495</guid>
      <dc:creator>malik_cisse</dc:creator>
      <dc:date>2023-02-14T16:04:56Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598991#M201497</link>
      <description>&lt;P&gt;Hi everybody,&lt;/P&gt;&lt;P&gt;Yes, I was able to fix the problem:&lt;BR /&gt;It was only a problem of the sizes used.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;void&lt;/SPAN&gt; *&lt;SPAN class=""&gt;G2D::convert&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;SPAN class=""&gt;void&lt;/SPAN&gt; *imageBuffer, &lt;SPAN class=""&gt;int&lt;/SPAN&gt; width, &lt;SPAN class=""&gt;int&lt;/SPAN&gt; height)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;int&lt;/SPAN&gt;&lt;SPAN class=""&gt; size &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width * height *&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;struct&lt;/SPAN&gt; &lt;SPAN class=""&gt;g2d_surface&lt;/SPAN&gt;&lt;SPAN class=""&gt; src,dst;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= srcM-&amp;gt;buf_paddr;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.left &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.top &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.right &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.bottom &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height/&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.stride &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width *&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.width &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.height &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height/&lt;/SPAN&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.rot &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_ROTATION_0;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		src.format &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_YUYV;&lt;/SPAN&gt;&lt;/SPAN&gt;


&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.planes[&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;] &lt;/SPAN&gt;&lt;SPAN class=""&gt;= dstM-&amp;gt;buf_paddr;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.left &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.top &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.right &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.bottom &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.stride &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width ;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.width &lt;/SPAN&gt;&lt;SPAN class=""&gt;= width;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.height &lt;/SPAN&gt;&lt;SPAN class=""&gt;= height;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.rot &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_ROTATION_0;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		dst.format &lt;/SPAN&gt;&lt;SPAN class=""&gt;= G2D_RGB888 ;&lt;/SPAN&gt;&lt;/SPAN&gt;


&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;memcpy&lt;/SPAN&gt;&lt;SPAN class=""&gt;(srcM-&amp;gt;buf_vaddr, imageBuffer, size)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;int&lt;/SPAN&gt;&lt;SPAN class=""&gt; r &lt;/SPAN&gt;&lt;SPAN class=""&gt;= &lt;/SPAN&gt;&lt;SPAN class=""&gt;g2d_blit&lt;/SPAN&gt;&lt;SPAN class=""&gt;(G2D_Handler, &amp;amp;src, &amp;amp;dst)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;if&lt;/SPAN&gt; &lt;SPAN class=""&gt;(r!=&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt; &lt;SPAN class=""&gt;puts&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"convertFrame :: ERROR g2d_blit"&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;		r&lt;/SPAN&gt;&lt;SPAN class=""&gt;=&lt;/SPAN&gt;&lt;SPAN class=""&gt;g2d_finish&lt;/SPAN&gt;&lt;SPAN class=""&gt;(G2D_Handler)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;if&lt;/SPAN&gt; &lt;SPAN class=""&gt;(r!=&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt; &lt;SPAN class=""&gt;puts&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;"convertFrame :: ERROR g2d_finish"&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;

&lt;SPAN class=""&gt;		&lt;SPAN class=""&gt;return&lt;/SPAN&gt;&lt;SPAN class=""&gt; dstM-&amp;gt;buf_vaddr;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;	}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;Hope it is useful for you!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2023 16:14:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1598991#M201497</guid>
      <dc:creator>ivan_garcia</dc:creator>
      <dc:date>2023-02-14T16:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1599011#M201500</link>
      <description>&lt;P&gt;Thank you for the swift feedback Ivan,&lt;BR /&gt;&lt;BR /&gt;I implemented your solution but my image is still broken (see attachment). I also attached the code, maybe you find something obvious.&lt;/P&gt;&lt;P&gt;What CPU are you using.&lt;/P&gt;&lt;P&gt;Not sure why you have&amp;nbsp;&lt;BR /&gt;src.bottom = height/2;&lt;BR /&gt;src.height = height/2;&lt;BR /&gt;Thx&lt;/P&gt;</description>
      <pubDate>Tue, 14 Feb 2023 16:55:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/1599011#M201500</guid>
      <dc:creator>malik_cisse</dc:creator>
      <dc:date>2023-02-14T16:55:06Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2165393#M240597</link>
      <description>&lt;P&gt;Am using the G2D on an IMX8M Plus also. Strangely, YUYV to RGB888 works fine on Kirkstone, yet on Scarthgap the g2d library prints an error that the destination format is invalid.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would it be possible to fix this issue?&lt;/P&gt;</description>
      <pubDate>Mon, 08 Sep 2025 18:59:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2165393#M240597</guid>
      <dc:creator>jheaffey</dc:creator>
      <dc:date>2025-09-08T18:59:45Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2165663#M240609</link>
      <description>&lt;P&gt;How could you convert&amp;nbsp;&lt;SPAN&gt;YUYV to RGB888 on&amp;nbsp;Kirkstone. I could never make this work. Would you share the code? thx&lt;BR /&gt;YUYV to RGBX8888 works fine though as I already stated bellow. Maybe that is ok for your application as you can ignore the "X" component as don't care.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Sep 2025 07:18:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2165663#M240609</guid>
      <dc:creator>malik_cisse</dc:creator>
      <dc:date>2025-09-09T07:18:31Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2165877#M240619</link>
      <description>&lt;P&gt;Something like this:&lt;/P&gt;&lt;PRE&gt;g2d_surface srcSurface;&lt;BR /&gt;g2d_surface dstSurface;&lt;BR /&gt;&lt;BR /&gt;srcSurface.format = G2D_YUYV;&lt;BR /&gt;srcSurface.left = 0;&lt;BR /&gt;srcSurface.right = 1920;&lt;BR /&gt;srcSurface.top = 0;&lt;BR /&gt;srcSurface.bottom = 1080;&lt;BR /&gt;srcSurface.stride = 1920;&lt;BR /&gt;srcSurface.width = 1920;&lt;BR /&gt;srcSurface.height = 1080;&lt;BR /&gt;srcSurface.blendfunc = G2D_ZERO;&lt;BR /&gt;srcSurface.global_alpha = 0;&lt;BR /&gt;srcSurface.clrcolor = 0;&lt;BR /&gt;srcSurface.rot = G2D_ROTATION_0;&lt;BR /&gt;srcSurface-&amp;gt;planes[0] = src_g2d_buf-&amp;gt;buf_paddr;&lt;BR /&gt;srcSurface-&amp;gt;planes[1] = 0;&lt;BR /&gt;srcSurface-&amp;gt;planes[2] = 0;&lt;BR /&gt;&lt;BR /&gt;dstSurface.format = G2D_RGB888;&lt;BR /&gt;dstSurface.left = 0;&lt;BR /&gt;dstSurface.right = 300;&lt;BR /&gt;dstSurface.top = 0;&lt;BR /&gt;dstSurface.bottom = 300;&lt;BR /&gt;dstSurface.stride = 300;&lt;BR /&gt;dstSurface.width = 300;&lt;BR /&gt;dstSurface.height = 300;&lt;BR /&gt;dstSurface.blendfunc = G2D_ZERO;&lt;BR /&gt;dstSurface.global_alpha = 0;&lt;BR /&gt;dstSurface.clrcolor = 0;&lt;BR /&gt;dstSurface.rot = G2D_ROTATION_0;&lt;BR /&gt;srcSurface-&amp;gt;planes[0] = dst_g2d_buf-&amp;gt;buf_paddr;&lt;BR /&gt;srcSurface-&amp;gt;planes[1] = 0;&lt;BR /&gt;srcSurface-&amp;gt;planes[2] = 0;&lt;BR /&gt;&lt;BR /&gt;int result = g2d_blit(_handle, src, dest);&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Sep 2025 11:49:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2165877#M240619</guid>
      <dc:creator>jheaffey</dc:creator>
      <dc:date>2025-09-09T11:49:17Z</dc:date>
    </item>
    <item>
      <title>Re: YUV to RG color conversion with G2D problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2168912#M240692</link>
      <description>&lt;P&gt;I have had a breakthrough.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The i.MX Graphics User Guide states that&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;RGB stride alignment is 16 bytes on i.MX 6 (except i.MX 6Quad Plus), 1 pixel&lt;BR /&gt;alignment on i.MX 6Quad Plus, i.MX 7ULP and i.MX 8 family devices, both for source&lt;BR /&gt;and destination surface.&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;Even though I am using an i.MX8MP and stride alignment should not be necessary, I changed the stride value to be 16 byte aligned and the g2d operation (YUYV to RGB888) was successful!&lt;/P&gt;&lt;P&gt;Annoyingly my application now needs to handle the extra stride. Again, this stride alignment was not necessary on Kirkstone (specifically this version of the yocto manifest -&amp;nbsp;&lt;A href="https://github.com/nxp-imx/imx-manifest/commit/842ad7bafef255259af78b25891a2df4c342e3d0" target="_blank"&gt;imx-5.15.52-2.1.0.xml: Add manifest for L5.15.52-2.1.0 release [YOCIM… · nxp-imx/imx-manifest@842ad7b&lt;/A&gt;)&lt;/P&gt;</description>
      <pubDate>Fri, 12 Sep 2025 11:23:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/YUV-to-RG-color-conversion-with-G2D-problem/m-p/2168912#M240692</guid>
      <dc:creator>jheaffey</dc:creator>
      <dc:date>2025-09-12T11:23:02Z</dc:date>
    </item>
  </channel>
</rss>

