zoukankan      html  css  js  c++  java
  • FPGA+ADV7511实现HDMI显示

    一、前言

      目前FPGA成为了视频图像实时处理的主要平台。显示作为图像应用设备的必要功能,对整体系统处理效果非常关键。HDMI是现阶段主流的显示接口,本文基于ADV7511芯片的HDMI显示系统,讲述HDMI显示过程中的一些原理和经验总结。

    二、色彩空间转换

      之前通过VGA接口显示图像时只清楚RGB图像格式,对YUV了解甚少。YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。所以HDMI显示中,经常选择YUV来表示图像信息。要想将图像的YUV信息送入ADV7511,首先需要完成RGB到YUV的格式转换。两种格式分析以及互转公式具体见参考文献1,这里只给出RGB转YUV的标准公式。

    1. Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
    2. Cb = U = -( 0.148 * R) - (0.291 * G) + (0.439 * B) + 128
    3. Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128

      上述三个公式均为乘加操作,调用MAC计算较为方便。在运算过程中首先整体向左移位将所有系数变为整数,再进行乘加操作,最后右移得到最终结果[2]。

    三、HDMI显示原理及ADV7511芯片使用

      HDMI接口通过三组TMDS串行差分信号来完成数据传输功能,示意图如下:

      高速传输接口都是一个套路,编码->并串转换->串并转换->解码。HDMI传输流程细节见参考文献3。我们更多只关注ADV7511的核心用户侧接口及使用方式。ADV7511的内部结构如图:

       左侧画红框的引脚是我们需要用到的。同步传输首先需要时钟CLK和数据D。然后是行场同步和数据有效指示HSYNC VSYNC DE。该芯片支持多种数据格式和工作模式,利用IIC总线的SDA和SCL读写内部控制寄存器。芯片内寄存器非常多,ADV7511 grogramming guide中的section3 -quick start guide给出了必要的配置向导[4]。其中输入视频格式配置最为重要,本文使用的是YUV 422 ,8bit,DDR with separate sync,left justified模式中的syle 2。

      如图,这种模式下只用到了D[35:0]这36bit引脚中的[23:16]。配置寄存器地址为0X15和0X16。

      我们再来看看ADV7511 hardware user's guide[5]中给出的DDR采样模式接口时序图。

      FPGA端可利用ODDR原语输出双边沿采样数据。

    四、显示Demo及效果

       自定义HDMI显示IP的用户侧接收VGA格式数据,接口侧连接ADV7511芯片。用户接口包括:RGB HSYNC YSYNC DE。VGA图像数据格式在之前的博文中已有讲述[6],注意两点:

    1 HSYNC YSYNC是负脉冲

    2 DE = HS_DE & YS_DE

      上图是黑白格显示例程。从显示效果来看系统工作正常。

    参考文献

    1 YUV格式分析 - arm-linux - 博客园 http://www.cnblogs.com/armlinux/archive/2012/02/15/2396763.html

    (原创)用verilog实现RGB格式图像到YCbCr或YUV格式的转换及其验证方法 (RGB2YCrCb)(RGB2YUV) - 任怀鲁 - 博客园

    https://www.cnblogs.com/lunix/archive/2011/07/31/rgb2yuv_design_verification.html

    HDMI介绍与流程 - TaigaComplex求职中 - 博客园 https://www.cnblogs.com/TaigaCon/p/3840653.html

    4 ADV7511 PROGRAMMING GUIDE. Low-Power HDMI 1.4 Compatible Transmitter with Audio Return Channel. - Revision G - PDF https://docplayer.net/30916605-Adv7511-programming-guide-low-power-hdmi-1-4-compatible-transmitter-with-audio-return-channel-revision-g.html

    ADV7511 Design Support Files - Documents - Video - EngineerZone https://ez.analog.com/video/w/documents/794/adv7511-design-support-files

    FPGA驱动VGA显示静态图片 - 没落骑士 - 博客园 https://www.cnblogs.com/moluoqishi/p/9544146.html

  • 相关阅读:
    数据库ACID
    tcp ip detatils
    process vs thread
    C++ virtual descructor
    static_cast dynamic_cast const_cast reinterpret_cast总结对比
    Meta Programming
    C++ traits
    c++内存管理
    洛谷 P4136 谁能赢呢?
    洛谷 P1166 打保龄球
  • 原文地址:https://www.cnblogs.com/moluoqishi/p/10860849.html
Copyright © 2011-2022 走看看