WhyCan Forum(哇酷开发者社区)

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2020-10-27 17:03:57

vip888888
会员
注册时间: 2020-07-16
累计积分: 99

F1c200s display engine 通过layer将YUV转RGB系数配置问题

如下图这是200s手册上写的将YUV转换为RGB的算法。 这个东西改怎么配置才能正常的将YUV转为RGB呢?这里每个系数的值都是可以配置的,就是不知道该设置成什么值导致LCD上显示的图有色差。
yuv1.png
下图中左上角是layer1层YUV转RGB的图 右下角是我通过网上查找的算法转的RGB显示在layer0的图。
yuv2.jpg

下面是网上找的将YUYV转RGB的算法转换后得到上图右下角的图。请大佬出手算下参数。
yuv3.png

离线

#2 2020-10-27 21:14:34

逸俊晨晖
会员
注册时间: 2018-08-29
累计积分: 107

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

你标题上写个DE我还要以为你要用硬件转呢 一点进来发现是软件转
软件转很慢的 f1c的话还是操作libdrm使的fb直接显示yuv吧

离线

#3 2020-10-27 22:30:33

vip888888
会员
注册时间: 2020-07-16
累计积分: 99

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

逸俊晨晖 说:

你标题上写个DE我还要以为你要用硬件转呢 一点进来发现是软件转
软件转很慢的 f1c的话还是操作libdrm使的fb直接显示yuv吧

你可能没注意看,我就是要用硬件的display engine转,左上角就是硬件yuv转的rgb但是明显变色了,转换系数不对,右下角是软件转的,只是看下有没有大佬会算,给出来参考下。

然后linux上f1c的有实现硬件yuv转rgb吗?能否给个链接,非常感谢。之前看别人说用过libdrm没效果可能sdk不对。

最近编辑记录 vip888888 (2020-10-27 22:31:50)

离线

#4 2020-10-29 00:27:54

逸俊晨晖
会员
注册时间: 2018-08-29
累计积分: 107

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

vip888888 说:
逸俊晨晖 说:

你标题上写个DE我还要以为你要用硬件转呢 一点进来发现是软件转
软件转很慢的 f1c的话还是操作libdrm使的fb直接显示yuv吧

你可能没注意看,我就是要用硬件的display engine转,左上角就是硬件yuv转的rgb但是明显变色了,转换系数不对,右下角是软件转的,只是看下有没有大佬会算,给出来参考下。

然后linux上f1c的有实现硬件yuv转rgb吗?能否给个链接,非常感谢。之前看别人说用过libdrm没效果可能sdk不对。

确实没认真看
注意fb颜色空间格式是rgb还是其它顺序
我也没见过人家用 之前我用两层rgb叠层 发现透明度是有问题的 可能驱动有问题

离线

#5 2020-10-29 14:18:21

vip888888
会员
注册时间: 2020-07-16
累计积分: 99

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

通过上面公式拆解,可以得到rgb和yuv的直接公式如下:
r = (y + (359 * v)) >> 8;  = y/256 + (359*(V-128))/256 = y + (359*V - 45952)/256 = y+ 1.40234375*v - 179.5
g = (y - (88 * u) - (183 * v)) >> 8;  =y/256 -(88*(u-128))/256 - (183*(v-128))/256   = y -(88*u-11264)/256 - (183*v-23424)/256=y -0.34375u+44 -0.71484375*v + 91.5 = y-0.34375u-0.71484375*v + 135.5
b = (y + (454 * u)) >> 8;  = y/256 + (454*(u-128))/256 = y + (454u-58112)/256 = y + 1.7734375u - 227

统一下就是:
r =y+ 1.40234375*v - 179.5
g =y-0.34375u-0.71484375*v + 135.5
b =y + 1.7734375u - 227
yuv1.png
但是和这个公式一配比的话,他这个系数无法变为负数,最后那个常量也无法变为负数了。所以此公式也对应不上呀。

要么就用已知的YUV 和RGB的值套上全志手册的公式解12次一元一次方矩阵?以此得到系数?或者有没有大佬已经有系统跑通了的可以读取下0x01E60950 - 0x01E60980的值给来参考下。

离线

#6 2020-10-29 18:55:59

f1c100_
会员
注册时间: 2020-09-22
累计积分: 22

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

你用的硬件转rgb速度怎么样?代码能分享下看看么

离线

#7 2020-10-29 22:44:59

vip888888
会员
注册时间: 2020-07-16
累计积分: 99

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

f1c100_ 说:

你用的硬件转rgb速度怎么样?代码能分享下看看么

这不是还没成功嘛。转的不对呀,还没搞定呢。

最近编辑记录 vip888888 (2020-10-29 22:45:15)

离线

#8 2020-10-30 00:13:02

微凉VeiLiang
会员
注册时间: 2018-10-28
累计积分: 385
个人网站

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

关注,期待楼主好消息

离线

#9 2020-10-30 00:42:09

f1c100_
会员
注册时间: 2020-09-22
累计积分: 22

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

vip888888 说:
f1c100_ 说:

你用的硬件转rgb速度怎么样?代码能分享下看看么

这不是还没成功嘛。转的不对呀,还没搞定呢。

我的意思是我也研究下:),看瞎搞能不能跑通

离线

#10 2020-10-30 20:57:11

sprintf
会员
注册时间: 2020-09-11
累计积分: 23

Re: F1c200s display engine 通过layer将YUV转RGB系数配置问题

这个可以转的,我看过别人的视频。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB