最近做了个3D-LUT的verilog实现,和大家分享下,很多人可能对3D-LUT很陌生,在此先科普下3D-LUT为何物。
3D-LUT,可以分成两部分,3D和LUT,最基本的是LUT,3D是维度,从本质上来说,LUT的作用就是将每一组RGB的输入值转化成输出值,也就是这个颜色进,那个颜色出,对于显示器来说能起到颜色空间转换的作用。
LUT又分为1D LUT和3D LUT,对于1D LUT,变动某个颜色输入值只会影响到该颜色的输出值,RBG的数据之间是互相独立的。这就意味着1D LUT只能控制gamma值、RGB平衡(灰阶)和白场(white point)。而3D LUT可以有全立体色彩空间的控制,要强大很多。3D LUT可以理解为一个巨大的颜色替换信息表,当A照片颜色信息经过这个表查找替换后,就会变成B照片颜色信息。
在电影工业中,由于播放设备的不同,需要在在不同色彩空间之间做映射,3D LUT这种在电影和显示工业里广泛使用的技术,就被用来进行精确的色彩校正。3D LUT的原理很简单,RGB 3个维度组成3D颜色空间,输入的RGB三个通道颜色值按照3D LUT的查找表做映射,得到转换后的颜色。
3D LUT具体原理,限于篇幅,本文不做具体介绍,狼哥今天主要给大家展示下verilog实现的3D-LUT的效果,整个算法实现使用纯流水操作,100M时钟频率下,时延在us级,实现了流水实时处理,处理的效果图和软件出来的图基本一致
FPGA效果 软件效果图
使用专业软件分析FPGA处理结果和软件结果,曲线基本是重叠吻合的,效果一致。
如果对3D-LUT有需求的,欢迎加下面微信洽谈合作,对课程感兴趣的滴滴狼哥上车学习,多年工程经验提取,助力大家学的更快。
往期精彩文章列表*
FPGA图像算法.横条纹消除
FPGA图像算法.竖条纹消除术
2024功利性学习目录合集
Zynq系统化入门进阶详细教程
基于Zynq的图像处理入门课程
FPGA图像Canny四图拼接显示项目
FPGA之Mpsoc的VCU压缩解压demo
FPGA图像无极缩放.Demo2
FPGA图像算法.无极缩放
FPGA图像算法.导向滤波
狼板001PLUS上线,首发优惠进行中
点击上面链接查看详情