YUV to RG color conversion with G2D problem

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

YUV to RG color conversion with G2D problem

6,666件の閲覧回数
ivan_garcia
Contributor I

Hi!
We are trying to convert YUV frames captured using libuvc (usb cameras) to RGB, but we are not able to get the right color.

The format that libuvc gives the frames in is YUV422 acording with the headers:

enum uvc_frame_format {
....
UVC_FRAME_FORMAT_COMPRESSED,
/** YUYV/YUV2/YUV422: YUV encoding with one luminance value per pixel and
* one UV (chrominance) pair for every two pixels.
*/

With dimensions 1920x1024, stride 3840 (1920*2)

And the code we are using to convert the color is:

cv::Mat ConvertFrame(uvc_frame_t *frame, int inputFormat=G2D_YUYV){
void *G2D_Handler=NULL;
if (g2d_open(&G2D_Handler)!=0){
puts("G2D_Start: Error opening g2d device");
};

int size = frame->data_bytes;
struct g2d_buf *srcM = g2d_alloc (size,1);
struct g2d_buf *dstM = g2d_alloc (frame->width * frame->height * 3,1);
memcpy(srcM->buf_vaddr, frame->data, size);

struct g2d_surface src,dst;
src.planes[0] = srcM->buf_paddr;
src.planes[1] = 0; //srcM->buf_paddr;
src.planes[2] = 0; //srcM->buf_paddr;
src.left = 0;
src.top = 0;
src.right = frame->width;
src.bottom = frame->height;
src.stride = frame->step;
src.width = frame->width;
src.height = frame->height;
src.rot = G2D_ROTATION_0;
src.format = inputFormat;


cv::Mat out(frame->height, frame->width, CV_8UC3, dstM->buf_vaddr );
dst.planes[0] = dstM->buf_paddr;
dst.left = 0;
dst.top = 0;
dst.right = out.cols;
dst.bottom = out.rows;
dst.stride = out.step1();
dst.width = out.cols;
dst.height = out.rows;
dst.rot = G2D_ROTATION_0;
dst.format = G2D_RGB888 ;

int r = g2d_blit(G2D_Handler, &src, &dst);
if (r!=0) puts("convertFrame :: ERROR g2d_blit");
r=g2d_finish(G2D_Handler);
if (r!=0) puts("convertFrame :: ERROR g2d_finish");

char name[128];
snprintf(name,128,"g2dOutput_%d.png", inputFormat );
cv::imwrite(name,out);

g2d_free (srcM);
return out;
}

 

The better results we could get are with inputFormat = G2D_YUYV, but as can be seen in the attached image, this is far to be correct.

 

Can someone give us an idea on how to solve this problem?

Thanks in advance!

0 件の賞賛
返信
10 返答(返信)

1,110件の閲覧回数
jheaffey
Contributor III

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.

 

Would it be possible to fix this issue?

0 件の賞賛
返信

1,076件の閲覧回数
malik_cisse
Senior Contributor I

How could you convert YUYV to RGB888 on Kirkstone. I could never make this work. Would you share the code? thx
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.

0 件の賞賛
返信

1,064件の閲覧回数
jheaffey
Contributor III

Something like this:

g2d_surface srcSurface;
g2d_surface dstSurface;

srcSurface.format = G2D_YUYV;
srcSurface.left = 0;
srcSurface.right = 1920;
srcSurface.top = 0;
srcSurface.bottom = 1080;
srcSurface.stride = 1920;
srcSurface.width = 1920;
srcSurface.height = 1080;
srcSurface.blendfunc = G2D_ZERO;
srcSurface.global_alpha = 0;
srcSurface.clrcolor = 0;
srcSurface.rot = G2D_ROTATION_0;
srcSurface->planes[0] = src_g2d_buf->buf_paddr;
srcSurface->planes[1] = 0;
srcSurface->planes[2] = 0;

dstSurface.format = G2D_RGB888;
dstSurface.left = 0;
dstSurface.right = 300;
dstSurface.top = 0;
dstSurface.bottom = 300;
dstSurface.stride = 300;
dstSurface.width = 300;
dstSurface.height = 300;
dstSurface.blendfunc = G2D_ZERO;
dstSurface.global_alpha = 0;
dstSurface.clrcolor = 0;
dstSurface.rot = G2D_ROTATION_0;
srcSurface->planes[0] = dst_g2d_buf->buf_paddr;
srcSurface->planes[1] = 0;
srcSurface->planes[2] = 0;

int result = g2d_blit(_handle, src, dest);

997件の閲覧回数
jheaffey
Contributor III

I have had a breakthrough.

 

The i.MX Graphics User Guide states that

 

"

RGB stride alignment is 16 bytes on i.MX 6 (except i.MX 6Quad Plus), 1 pixel
alignment on i.MX 6Quad Plus, i.MX 7ULP and i.MX 8 family devices, both for source
and destination surface.

"

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!

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 - imx-5.15.52-2.1.0.xml: Add manifest for L5.15.52-2.1.0 release [YOCIM… · nxp-imx/imx-manifest@842ad7...)

0 件の賞賛
返信

6,220件の閲覧回数
ivan_garcia
Contributor I

Hi everybody,

Yes, I was able to fix the problem:
It was only a problem of the sizes used.

void *G2D::convert(void *imageBuffer, int width, int height){
		int size = width * height *2;

		struct g2d_surface src,dst;
		src.planes[0] = srcM->buf_paddr;
		src.planes[1] = 0;
		src.planes[2] = 0;
		src.left = 0;
		src.top = 0;
		src.right = width;
		src.bottom = height/2;
		src.stride = width *2;
		src.width = width;
		src.height = height/2;
		src.rot = G2D_ROTATION_0;
		src.format = G2D_YUYV;


		dst.planes[0] = dstM->buf_paddr;
		dst.left = 0;
		dst.top = 0;
		dst.right = width;
		dst.bottom = height;
		dst.stride = width ;
		dst.width = width;
		dst.height = height;
		dst.rot = G2D_ROTATION_0;
		dst.format = G2D_RGB888 ;


		memcpy(srcM->buf_vaddr, imageBuffer, size);

		int r = g2d_blit(G2D_Handler, &src, &dst);
		if (r!=0) puts("convertFrame :: ERROR g2d_blit");
		r=g2d_finish(G2D_Handler);
		if (r!=0) puts("convertFrame :: ERROR g2d_finish");

		return dstM->buf_vaddr;
	}

Hope it is useful for you!

0 件の賞賛
返信

6,216件の閲覧回数
malik_cisse
Senior Contributor I

Thank you for the swift feedback Ivan,

I implemented your solution but my image is still broken (see attachment). I also attached the code, maybe you find something obvious.

What CPU are you using.

Not sure why you have 
src.bottom = height/2;
src.height = height/2;
Thx

0 件の賞賛
返信

6,226件の閲覧回数
malik_cisse
Senior Contributor I

Hi Ivan,

Could you solve this problem?
I am facing same issue.
Thx

0 件の賞賛
返信

6,228件の閲覧回数
malik_cisse
Senior Contributor I

Hello @Bio_TICFSL ,

I have exact same problem:

On NXP imx8mp G2D GPU (GC520L) YUYV to RGBX works fine:
G2D_YUYV to G2D_RGBX8888 works fine

However YUYV to RGB (24bit RGB888) does not work. I have same broken pictures as above.
G2D_YUYV to G2D_RGB888

Any hints how I can solve this problem?
Thank you

0 件の賞賛
返信

6,644件の閲覧回数
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello ivan_garcia

Currently, libg2d does not support YUYV convert to BGR. I will discuss with R&D team to enable.

 

Regards

0 件の賞賛
返信

6,523件の閲覧回数
quercuspau
Contributor II

Hello @Bio_TICFSL ,

any news related to this topic?

BR

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-1335591%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EG2D%E5%95%8F%E9%A1%8C%E3%81%AB%E3%82%88%E3%82%8BYUV%E3%81%8B%E3%82%89RG%E3%81%B8%E3%81%AE%E3%82%AB%E3%83%A9%E3%83%BC%E5%A4%89%E6%8F%9B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1335591%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%EF%BC%81%3CBR%20%2F%3E%20libuvc%20(USB%20%E3%82%AB%E3%83%A1%E3%83%A9)%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%81%97%E3%81%9F%20YUV%20%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%92%20RGB%20%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E6%AD%A3%E3%81%97%E3%81%84%E8%89%B2%E3%82%92%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3Elibuvc%20%E3%81%8C%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8B%E5%BD%A2%E5%BC%8F%E3%81%AF%E3%80%81%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%81%AB%E5%BE%93%E3%81%A3%E3%81%A6%20YUV422%20%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3Eenum%20uvc_frame_format%20%7B%3CBR%20%2F%3E....%3CBR%20%2F%3E%20UVC_FRAME_FORMAT_COMPRESSED%2C%3CBR%20%2F%3E%2F**%20YUYV%2FYUV2%2FYUV422%3A%20YUV%20encoding%20with%20one%20luminance%20value%20per%20pixel%20and%3CBR%20%2F%3E*%20one%20UV%20(chrominance)%20pair%20for%20every%20two%20pixels.%3CBR%20%2F%3E*%2F%3C%2FPRE%3E%3CP%3E%E5%AF%B8%E6%B3%951920x1024%E3%80%81%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%893840%EF%BC%881920*2%EF%BC%89%3C%2FP%3E%3CP%3E%E8%89%B2%E3%82%92%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E6%AC%A1%E3%81%AE%E3%81%A8%E3%81%8A%E3%82%8A%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3Ecv%3A%3AMat%20ConvertFrame(uvc_frame_t%20*frame%2C%20int%20inputFormat%3DG2D_YUYV)%7B%3CBR%20%2F%3Evoid%20*G2D_Handler%3DNULL%3B%3CBR%20%2F%3Eif%20(g2d_open(%26amp%3BG2D_Handler)!%3D0)%7B%3CBR%20%2F%3Eputs(%22G2D_Start%3A%20Error%20opening%20g2d%20device%22)%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%3CBR%20%2F%3Eint%20size%20%3D%20frame-%26gt%3Bdata_bytes%3B%3CBR%20%2F%3Estruct%20g2d_buf%20*srcM%20%3D%20g2d_alloc%20(size%2C1)%3B%3CBR%20%2F%3Estruct%20g2d_buf%20*dstM%20%3D%20g2d_alloc%20(frame-%26gt%3Bwidth%20*%20frame-%26gt%3Bheight%20*%203%2C1)%3B%3CBR%20%2F%3Ememcpy(srcM-%26gt%3Bbuf_vaddr%2C%20frame-%26gt%3Bdata%2C%20size)%3B%3CBR%20%2F%3E%3CBR%20%2F%3Estruct%20g2d_surface%20src%2Cdst%3B%3CBR%20%2F%3Esrc.planes%5B0%5D%20%3D%20srcM-%26gt%3Bbuf_paddr%3B%3CBR%20%2F%3Esrc.planes%5B1%5D%20%3D%200%3B%20%2F%2FsrcM-%26gt%3Bbuf_paddr%3B%3CBR%20%2F%3Esrc.planes%5B2%5D%20%3D%200%3B%20%2F%2FsrcM-%26gt%3Bbuf_paddr%3B%3CBR%20%2F%3Esrc.left%20%3D%200%3B%3CBR%20%2F%3Esrc.top%20%3D%200%3B%3CBR%20%2F%3Esrc.right%20%3D%20frame-%26gt%3Bwidth%3B%3CBR%20%2F%3Esrc.bottom%20%3D%20frame-%26gt%3Bheight%3B%3CBR%20%2F%3Esrc.stride%20%3D%20frame-%26gt%3Bstep%3B%3CBR%20%2F%3Esrc.width%20%3D%20frame-%26gt%3Bwidth%3B%3CBR%20%2F%3Esrc.height%20%3D%20frame-%26gt%3Bheight%3B%3CBR%20%2F%3Esrc.rot%20%3D%20G2D_ROTATION_0%3B%3CBR%20%2F%3Esrc.format%20%3D%20inputFormat%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3Ecv%3A%3AMat%20out(frame-%26gt%3Bheight%2C%20frame-%26gt%3Bwidth%2C%20CV_8UC3%2C%20dstM-%26gt%3Bbuf_vaddr%20)%3B%3CBR%20%2F%3Edst.planes%5B0%5D%20%3D%20dstM-%26gt%3Bbuf_paddr%3B%3CBR%20%2F%3Edst.left%20%3D%200%3B%3CBR%20%2F%3Edst.top%20%3D%200%3B%3CBR%20%2F%3Edst.right%20%3D%20out.cols%3B%3CBR%20%2F%3Edst.bottom%20%3D%20out.rows%3B%3CBR%20%2F%3Edst.stride%20%3D%20out.step1()%3B%3CBR%20%2F%3Edst.width%20%3D%20out.cols%3B%3CBR%20%2F%3Edst.height%20%3D%20out.rows%3B%3CBR%20%2F%3Edst.rot%20%3D%20G2D_ROTATION_0%3B%3CBR%20%2F%3Edst.format%20%3D%20G2D_RGB888%20%3B%3CBR%20%2F%3E%3CBR%20%2F%3Eint%20r%20%3D%20g2d_blit(G2D_Handler%2C%20%26amp%3Bsrc%2C%20%26amp%3Bdst)%3B%3CBR%20%2F%3Eif%20(r!%3D0)%20puts(%22convertFrame%20%3A%3A%20ERROR%20g2d_blit%22)%3B%3CBR%20%2F%3Er%3Dg2d_finish(G2D_Handler)%3B%3CBR%20%2F%3Eif%20(r!%3D0)%20puts(%22convertFrame%20%3A%3A%20ERROR%20g2d_finish%22)%3B%3CBR%20%2F%3E%3CBR%20%2F%3Echar%20name%5B128%5D%3B%3CBR%20%2F%3Esnprintf(name%2C128%2C%22g2dOutput_%25d.png%22%2C%20inputFormat%20)%3B%3CBR%20%2F%3Ecv%3A%3Aimwrite(name%2Cout)%3B%3CBR%20%2F%3E%3CBR%20%2F%3Eg2d_free%20(srcM)%3B%3CBR%20%2F%3Ereturn%20out%3B%3CBR%20%2F%3E%7D%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3EinputFormat%20%3D%20G2D_YUYV%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E7%B5%90%E6%9E%9C%E3%81%8C%E5%BE%97%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E6%B7%BB%E4%BB%98%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%8B%E3%82%89%E3%82%82%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%80%81%E3%81%93%E3%82%8C%E3%81%AF%E3%81%BE%E3%81%A3%E3%81%9F%E3%81%8F%E6%AD%A3%E3%81%97%E3%81%84%E3%81%A8%E3%81%AF%E8%A8%80%E3%81%88%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E8%AA%B0%E3%81%8B%E3%82%A2%E3%82%A4%E3%83%87%E3%82%A2%E3%82%92%E3%81%8F%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1335591%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%20%7C%20i.MX%208QuadMax%E2%80%AF(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3E%E3%83%9E%E3%83%AB%E3%83%81%E3%83%A1%E3%83%87%E3%82%A3%E3%82%A2%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2168912%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2168912%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%A4%A7%E3%81%8D%E3%81%AA%E9%80%B2%E6%AD%A9%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3Ei.MX%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B9%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%E3%81%AB%E3%81%AF%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E8%A8%98%E8%BC%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%80%8D%3C%2FP%3E%3CP%3ERGB%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%89%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AFi.MX%206%EF%BC%88i.MX%206Quad%20Plus%E3%82%92%E9%99%A4%E3%81%8F%EF%BC%89%E3%81%A7%E3%81%AF16%E3%83%90%E3%82%A4%E3%83%88%E3%80%811%E3%83%94%E3%82%AF%E3%82%BB%E3%83%AB%3CBR%20%2F%3Ei.MX%206Quad%20Plus%E3%80%81i.MX%207ULP%E3%80%81i.MX%208%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%EF%BC%88%E3%82%BD%E3%83%BC%E3%82%B9%E7%94%A8%EF%BC%89%E3%81%AE%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%3CBR%20%2F%3E%E3%81%8A%E3%82%88%E3%81%B3%E5%AE%9B%E5%85%88%E3%82%B5%E3%83%BC%E3%83%95%E3%82%A7%E3%82%B9%E3%80%82%3C%2FP%3E%3CP%3E%E3%80%8D%3C%2FP%3E%3CP%3Ei.MX8MP%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%89%20%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AF%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%84%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%89%E5%80%A4%E3%82%92%2016%20%E3%83%90%E3%82%A4%E3%83%88%20%E3%82%A2%E3%83%A9%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81g2d%20%E6%93%8D%E4%BD%9C%20(YUYV%20%E3%81%8B%E3%82%89%20RGB888)%20%E3%81%8C%E6%88%90%E5%8A%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E9%9D%A2%E5%80%92%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AB%E3%80%81%E7%A7%81%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%AF%E8%BF%BD%E5%8A%A0%E3%81%AE%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%89%E3%82%92%E5%87%A6%E7%90%86%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%93%E3%81%AE%E3%82%B9%E3%83%88%E3%83%A9%E3%82%A4%E3%83%89%E8%AA%BF%E6%95%B4%E3%81%AF%20Kirkstone%20%E3%81%A7%E3%81%AF%E5%BF%85%E8%A6%81%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%20(%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AB%E3%81%AF%E3%80%81%E3%81%93%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%20yocto%20%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%20-%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Fimx-manifest%2Fcommit%2F842ad7bafef255259af78b25891a2df4c342e3d0%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Eimx-5.15.52-2.1.0.xml%3A%20L5.15.52-2.1.0%20%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%9E%E3%83%8B%E3%83%95%E3%82%A7%E3%82%B9%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%BE%E3%81%99%20%5BYOCIM%E2%80%A6%20%C2%B7%20nxp-imx%2Fimx-manifest%40842ad7b%3C%2FA%3E%20)%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2165877%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2165877%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E3%82%82%E3%81%AE%E3%81%A7%E3%81%99%3A%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3Eg2d_surface%20srcSurface%3B%3CBR%20%2F%3Eg2d_surface%20dstSurface%3B%3CBR%20%2F%3E%3CBR%20%2F%3EsrcSurface.format%20%3D%20G2D_YUYV%3B%3CBR%20%2F%3EsrcSurface.left%20%3D%200%3B%3CBR%20%2F%3EsrcSurface.right%20%3D%201920%3B%3CBR%20%2F%3EsrcSurface.top%20%3D%200%3B%3CBR%20%2F%3EsrcSurface.bottom%20%3D%201080%3B%3CBR%20%2F%3EsrcSurface.stride%20%3D%201920%3B%3CBR%20%2F%3EsrcSurface.width%20%3D%201920%3B%3CBR%20%2F%3EsrcSurface.height%20%3D%201080%3B%3CBR%20%2F%3EsrcSurface.blendfunc%20%3D%20G2D_ZERO%3B%3CBR%20%2F%3EsrcSurface.global_alpha%20%3D%200%3B%3CBR%20%2F%3EsrcSurface.clrcolor%20%3D%200%3B%3CBR%20%2F%3EsrcSurface.rot%20%3D%20G2D_ROTATION_0%3B%3CBR%20%2F%3EsrcSurface-%26gt%3Bplanes%5B0%5D%20%3D%20src_g2d_buf-%26gt%3Bbuf_paddr%3B%3CBR%20%2F%3EsrcSurface-%26gt%3Bplanes%5B1%5D%20%3D%200%3B%3CBR%20%2F%3EsrcSurface-%26gt%3Bplanes%5B2%5D%20%3D%200%3B%3CBR%20%2F%3E%3CBR%20%2F%3EdstSurface.format%20%3D%20G2D_RGB888%3B%3CBR%20%2F%3EdstSurface.left%20%3D%200%3B%3CBR%20%2F%3EdstSurface.right%20%3D%20300%3B%3CBR%20%2F%3EdstSurface.top%20%3D%200%3B%3CBR%20%2F%3EdstSurface.bottom%20%3D%20300%3B%3CBR%20%2F%3EdstSurface.stride%20%3D%20300%3B%3CBR%20%2F%3EdstSurface.width%20%3D%20300%3B%3CBR%20%2F%3EdstSurface.height%20%3D%20300%3B%3CBR%20%2F%3EdstSurface.blendfunc%20%3D%20G2D_ZERO%3B%3CBR%20%2F%3EdstSurface.global_alpha%20%3D%200%3B%3CBR%20%2F%3EdstSurface.clrcolor%20%3D%200%3B%3CBR%20%2F%3EdstSurface.rot%20%3D%20G2D_ROTATION_0%3B%3CBR%20%2F%3EsrcSurface-%26gt%3Bplanes%5B0%5D%20%3D%20dst_g2d_buf-%26gt%3Bbuf_paddr%3B%3CBR%20%2F%3EsrcSurface-%26gt%3Bplanes%5B1%5D%20%3D%200%3B%3CBR%20%2F%3EsrcSurface-%26gt%3Bplanes%5B2%5D%20%3D%200%3B%3CBR%20%2F%3E%3CBR%20%2F%3Eint%20result%20%3D%20g2d_blit(_handle%2C%20src%2C%20dest)%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2165663%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2165663%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3EKirkstone%E3%81%A7YUYV%E3%82%92RGB888%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%E3%81%A9%E3%81%86%E3%81%97%E3%81%A6%E3%82%82%E3%81%86%E3%81%BE%E3%81%8F%E3%81%84%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%20YUYV%E3%81%8B%E3%82%89RGBX8888%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%AF%E3%80%81%E6%97%A2%E3%81%AB%E4%B8%8B%E8%A8%98%E3%81%A7%E8%BF%B0%E3%81%B9%E3%81%9F%E3%82%88%E3%81%86%E3%81%AB%E5%95%8F%E9%A1%8C%E3%81%AA%E3%81%8F%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E3%80%8CX%E3%80%8D%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AF%E6%B0%97%E3%81%AB%E3%81%97%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E7%84%A1%E8%A6%96%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%81%AF%E5%95%8F%E9%A1%8C%E3%81%AA%E3%81%84%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2165393%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2165393%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIMX8M%20Plus%E3%81%A7%E3%82%82G2D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AB%E3%80%81YUYV%20%E3%81%8B%E3%82%89%20RGB888%20%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%AF%20Kirkstone%20%E3%81%A7%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81Scarthgap%20%E3%81%A7%E3%81%AF%20g2d%20%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%80%81%E5%A4%89%E6%8F%9B%E5%85%88%E3%81%AE%E5%BD%A2%E5%BC%8F%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%A7%E3%81%82%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E5%8A%9B%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1599011%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1599011%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%BF%85%E9%80%9F%E3%81%AA%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%83%90%E3%83%83%E3%82%AF%E3%82%92%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%80%81%E3%82%A4%E3%83%B4%E3%82%A1%E3%83%B3%E3%80%81%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E8%A7%A3%E6%B1%BA%E7%AD%96%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81%E7%94%BB%E5%83%8F%E3%81%AF%E3%81%BE%E3%81%A0%E5%A3%8A%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%20(%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8F%82%E7%85%A7)%E3%80%82%E3%82%B3%E3%83%BC%E3%83%89%E3%82%82%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%E4%BD%95%E3%81%8B%E6%98%8E%E3%82%89%E3%81%8B%E3%81%AA%E7%82%B9%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8B%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8BCPU%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%AA%E3%81%9C%E3%81%9D%E3%81%86%E3%81%AA%E3%81%AE%E3%81%8B%E5%88%86%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%3CBR%20%2F%3Esrc.bottom%20%3D%20%E9%AB%98%E3%81%95%2F2%3B%3CBR%20%2F%3E%20src.height%20%3D%20%E9%AB%98%E3%81%95%2F2%3B%3CBR%20%2F%3E%20THX%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1598991%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1598991%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E7%9A%86%E3%81%95%E3%82%93%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3C%2FP%3E%3CP%3E%E3%81%AF%E3%81%84%E3%80%81%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%3A%3CBR%20%2F%3E%E3%81%9D%E3%82%8C%E3%81%AF%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%A0%E3%81%91%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20translate%3D%22no%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3Evoid%3C%2FSPAN%3E%20*%3CSPAN%20class%3D%22%22%3EG2D%3A%3Aconvert%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E(%3CSPAN%20class%3D%22%22%3Evoid%3C%2FSPAN%3E%20*imageBuffer%2C%20%3CSPAN%20class%3D%22%22%3Eint%3C%2FSPAN%3E%20width%2C%20%3CSPAN%20class%3D%22%22%3Eint%3C%2FSPAN%3E%20height)%3C%2FSPAN%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%7B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Eint%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%20size%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%20*%20height%20*%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E2%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Estruct%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22%22%3Eg2d_surface%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%20src%2Cdst%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.planes%5B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%5D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20srcM-%26gt%3Bbuf_paddr%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.planes%5B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E1%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%5D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.planes%5B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E2%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%5D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.left%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.top%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.right%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.bottom%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20height%2F%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E2%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.stride%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%20*%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E2%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.width%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.height%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20height%2F%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E2%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.rot%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20G2D_ROTATION_0%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09src.format%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20G2D_YUYV%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.planes%5B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%5D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20dstM-%26gt%3Bbuf_paddr%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.left%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.top%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.right%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.bottom%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20height%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.stride%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%20%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.width%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20width%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.height%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20height%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.rot%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20G2D_ROTATION_0%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09dst.format%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20G2D_RGB888%20%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Ememcpy%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E(srcM-%26gt%3Bbuf_vaddr%2C%20imageBuffer%2C%20size)%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Eint%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%20r%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%20%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3Eg2d_blit%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E(G2D_Handler%2C%20%26amp%3Bsrc%2C%20%26amp%3Bdst)%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22%22%3E(r!%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22%22%3Eputs%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%22convertFrame%20%3A%3A%20ERROR%20g2d_blit%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%09r%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3Eg2d_finish%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E(G2D_Handler)%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Eif%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22%22%3E(r!%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E0%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E)%3C%2FSPAN%3E%20%3CSPAN%20class%3D%22%22%3Eputs%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%22convertFrame%20%3A%3A%20ERROR%20g2d_finish%22%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E)%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%0A%3CSPAN%20class%3D%22%22%3E%09%09%3CSPAN%20class%3D%22%22%3Ereturn%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3E%20dstM-%26gt%3Bbuf_vaddr%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3CSPAN%20class%3D%22%22%3E%3CSPAN%20class%3D%22%22%3E%09%7D%3C%2FSPAN%3E%3C%2FSPAN%3E%0A%3C%2FPRE%3E%3CP%3E%E3%81%8A%E5%BD%B9%E3%81%AB%E7%AB%8B%E3%81%A6%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%EF%BC%81%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1598984%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1598984%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%82%A4%E3%83%B4%E3%82%A1%E3%83%B3%E3%81%95%E3%82%93%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3CBR%20%2F%3E%E7%A7%81%E3%82%82%E5%90%8C%E3%81%98%E5%95%8F%E9%A1%8C%E3%81%AB%E7%9B%B4%E9%9D%A2%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3ETHX%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1598979%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1598979%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3C%2FSPAN%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F34846%22%20target%3D%22_blank%22%3E%40Bio_TICFSL%3C%2FA%3E%20%3CSPAN%3E%E3%80%81%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E7%A7%81%E3%82%82%E3%81%BE%E3%81%A3%E3%81%9F%E3%81%8F%E5%90%8C%E3%81%98%E5%95%8F%E9%A1%8C%E3%82%92%E6%8A%B1%E3%81%88%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%3A%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3ENXP%20imx8mp%20G2D%20GPU%20(GC520L)%20%E3%81%A7%E3%81%AF%E3%80%81YUYV%20%E3%81%8B%E3%82%89%20RGBX%20%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%20G2D_YUYV%E3%81%8B%E3%82%89G2D_RGBX8888%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81YUYV%20%E3%81%8B%E3%82%89%20RGB%20(24%20%E3%83%93%E3%83%83%E3%83%88%20RGB888)%20%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E4%B8%8A%E8%A8%98%E3%81%A8%E5%90%8C%E3%81%98%E5%A3%8A%E3%82%8C%E3%81%9F%E5%86%99%E7%9C%9F%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3EG2D_YUYV%20%E3%81%8B%E3%82%89%20G2D_RGB888%20%E3%81%B8%3C%2FP%3E%3CP%3E%3CSPAN%3E%E3%81%93%E3%81%AE%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%92%E3%83%B3%E3%83%88%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3CBR%20%2F%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1392722%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1392722%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F34846%22%20target%3D%22_blank%22%3E%40Bio_TICFSL%3C%2FA%3E%20%E3%80%81%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E3%83%88%E3%83%94%E3%83%83%E3%82%AF%E3%81%AB%E9%96%A2%E9%80%A3%E3%81%99%E3%82%8B%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3EBR%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1336876%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20YUV%20to%20RG%20color%20conversion%20with%20G2D%20problem%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1336876%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81ivan_garcia%3C%2FP%3E%0A%3CP%3E%E7%8F%BE%E5%9C%A8%E3%80%81libg2d%20%E3%81%AF%20YUYV%20%E3%81%8B%E3%82%89%20BGR%20%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E5%AE%9F%E7%8F%BE%E3%81%AB%E5%90%91%E3%81%91%E3%81%A6R%26amp%3BD%E3%83%81%E3%83%BC%E3%83%A0%E3%81%A8%E5%8D%94%E8%AD%B0%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E