求推荐rgb888转换成adv7181c cvbs转rgb的芯片。

爱卡汽车_中国领先的汽车主题社区、汽车资讯、汽车论坛中心->【FPGA摄像头图像开发联盟】
虽说OV7725可以通过寄存器的设置,直接输出YCbCr444格式的视频流,但为了研究图像处理,以及最基本的视频格式转换,Bingo有意执行一次RGB888转YCbCr444操作。
关于YCbCr(YUV)格式视频流的介绍,详见Bingo的博文,地址如下:
RGB转YCbCr,实际上只是色度空间的转换,前者为三原色色度空间,后者为亮度与色差,具体的公式可见VIP_Board_Mini_Revision 2.0\03_芯片数据手册\OV7725_DS目录下的《OV7725 Camera Module Software Application Notes》pdf的page5。OV7725相机的软件应用手册详细给出了RGB与YCbCr色度空间转换公式,其中RGB转YCbCr的公式如下所示:
由于Verilog HDL无法进行浮点运算,因此使用扩大256倍,再向右移8Bit的方式,来转换公式,如下所示:
此时,剩下的问题就是如何将上面的公式移植到FPGA中去。FPGA富含乘法器,移位寄存器,加法器,如果直接用表达式描述上面的运算,理论上也是能计算出结果的;不过代价是效率、资源;同时当表达式小于0的时候,运算结果出错!!!
因此,在正式进行算法移植前,我们需要进行运算的拆分,同时进行一定的变换。过程中为了防止过程中出现负数,先将128提取到括号内,如下:
+ 32768)>>8
21 *B + 32768)>>8
此时Y必然为正值,Cb括号内最小值为:
256*(-32*1-85*1+128)= 256*(-127+128)=256*1
因此Cb括号内必然大于0。同样可以推断出Cr必然大于0。经过上述变换后,可以放心的进行运算,而不用考虑运算结果溢出的问题。

我要回帖

更多关于 adv7181c cvbs转rgb 的文章

 

随机推荐