zoukankan      html  css  js  c++  java
  • 【转】HDMI控制与组态剖析

    HDMI能够称霸为王者之尊吗?目前消费者陷入的困境就是Audio/Video的连接线数量过度庞大,而HDMI最大卖点之一就是可使用单一的连接线完全取代众多的影音连接线,简洁又方便。缺点是技术版本变动太快,2006年6月,1.3版本正式出笼。虽然HDMI是从DVI变身而来,但DVI却仅局限于视频(Video)的传送,HDMI则是跨及音频与视频,技术的层次较高也比较复杂。

    如果认真追究起来,过去在视频领域里,其实还存在有一个称之为D端子的连接器,据不同的影像格式而区分为D1D5。由于目前仅在日本当地最为常用,常常让不知情的非日本人引起一阵迷惑,以为D端子就是Digital端子的简称,其实不然,只要查证其管脚定义就可看出其内涵是色差端子的综合体。之所以取名为D端子,是因为其连接头的形状有如D字母外型的缘故而得名。

      日本家电使用D端子的机会比较多,其好处是可以减少色差端子连接线的数量。但就长期而言,终究D端子还是要走入历史的,日本产官方皆已建立起一致的共识。就消费性产品而言,HDMI唯我独尊。

      通常,HDMI所称的源端(Source)主要装置是DVDHD DVDBlu-Ray等播放器以及STB机顶盒,接收端(Sink)当然就是以数字电视为主,跨越了液晶电视、等离子电视以及背投电视等。而所谓重复器或复送器(Repeater)装置,最典型的代表当然就是家庭剧院中所使用的AV扩大机了。

      HDMI接口主要有三个通信通道:

    ◆  TMDS通道。负责所有音频、视频数据的传输。辅助数据,如AVI InfoFrame、Audio InfoFrame等也是通过TMDS通道。

    ◆   DDC通道:HDMI源端,通过这个通道来读取接收端(Sink)的E-EDID数据结构,进而得知接收端内含的机能与特性。

    ◆  CEC通道:这是一个选项(Option)。提供更高层次的使用方式让消费者使用,好比说自动设定的细节、单键播放或是遥控相关的事。

      目前HDMI虽然独霸天下,若是参观美国的CES消费性电子大展或是日本的CEATEC电子展,您就会发现拥有HDMI接口的消费性电子产品琳琅满目。但若从消费者的使用观点来思考,还是有一些问题存在。首先,多数产品在其规格上或是说明书中仅提及了产品附有HDMI端子,有些还会提及其支持的版本,但一个只知道出钱买货的消费者并不会明了技术版本上的差异点。另外就是不同厂商之间各种产品的互通性是否经得起市场的考验以及消费者的感观接受度等等,这些都还有一段时间与路途要走。

      众所皆知,日本东芝率先于20063月底推出下一代HD DVD光驱HD-XA1HDMI端子的高画质展现是一大卖点。而个人计算机界直销的龙头Dell,也觊觎着这块消费性产品大饼,也是于20063月推出了24英寸宽银幕、WUXGA分辨率1920×1200、拥有HDCP著作权保护机制的液晶电视,并拥有色差输入以及D-DVI输入。可想而知,大家最关心的无疑是当HD DVD连接上这台高分辨率的液晶电视,是否能享受高画质的影像。当然这必须借用HDMI-DVI转换器或连接线,但连接以后的结果却是1080i的节目根本没有影像显现出来,必须通过遥控器的“分辨率切换”按键才能够看到影像。也就是说,似乎仅能看到480P720P分辨率的输出,类似如此的细节性问题,对于一般的消费者来说,似乎显得比较沉重。

      从此案例可以看出,为确保不同厂商产品间的沟通顺畅,HDMI兼容性测试(Compliance Testing)肯定是HDMI发展中不可或缺的一环。兼容性测试已经有标准公布,然而随时要留心版本的更新。USB的兼容测试花了十年的功夫也不见得能够解决所有的兼容性问题,那么,HDMI当然也需要花一段时间来克服这个问题。

      使用HDMI接口对于工程师而言肯定是毫无困难度,但对于普通消费者来说,是需要重新教育的一环,若想去硬性改变消费者的使用习惯,如果没有构思细想周全,要付出的代价是难以言喻的。因此,产业上存在一种头衔User Experience Architect,其职责就是要想尽办法让使用者无痛苦的升级。

    HDMI信息帧的实现

         允许在视频信号消隐期间通过TMDS传输信息帧(infoframe)。共有7种格式的信息帧本文以最常用的辅助视频信息帧(AVI)的实现加以说明。AVI信息帧主要包含视频色空间、图像画面比例、是否缩放、SDTV/HDTV等信息。显示器接收到这些信息之后就可以更好地显示画面。例如在(AVI)信息帧中指定当前图像的色空间为YUV4:2:2格式显示器就可以根据此信息来显示图像。传统的VGA和DVI等接口就没有此功能所以只能传送RGB格式的信号。信息帧的本质是为视频的发送端和接收显示端添加了一个通信的机制。AVI信息帧的格式如表 所示表中前4Byte分别是信息帧标志位、版本号、数据长度和校验和,其中前3Byte为固定值,而校验和需要根据所传输的数据来计算。从0x44寄存器开始15Byte的是实际的控制数据,数据的意可以参见EIA标准文档CEA-861-B。

      EIA/CEA-861B所定义的InfoFrames是学习HDMI技术必要的认知。一个InfoFrame打包仅仅能够载送一个InfoFrame。而且,依据HDMI的规范,其大小被限制在30个字节加上一个检验和(CheckSum)字节。

      在某些情况下,HDMI的源端会使用到AVI InfoFrameAudio InfoFrame,而EIA/CEA-861B中所定义的其他InfoFrame,则是列为选项。想知道所有InfoFrame的细节,只有去翻阅CEA-861B Section 6一种办法,因此,HDMI规格并不是一份完全独立的规范,必须还有其他的文献在手,交叉阅读与参考。而EIA/CEA-861B不仅定义了HDMI的影像格式、EDID以及InfoFrame的数据结构之外,还描述了音频的描述值与表格。这个现象与PCI Express规范是一样的情形,必须同时准备PCIPCI-X的规范,才能够彻底弄通。

      就HDMI的学习来说,当然所针对的目标就是AVI InfoFrameAudio InfoFrame。首先要澄清一个重要的概念,即HDMI中的格式是以电视的立场为出发点而做的,而且是直接从EIA/CEA-861-B A DTV Profile for Uncompressed High Speed Digital Interfaces”标准参考而来。EIA/CEA-861-B所制定的格式多达34种,若是再加上一些如像素重复(Pixel Repetition)的小变化,就有348种之多。因此,很多的字段都是来自于EIA/CEA-861B,内容细节上颇为繁复。

    InfoFrame的描述

      图7和图8AVI InfoFrame的打包标头(Packet Header)与打包内涵(Packet Content)的格式,简单掌握住一个重点,AVI InfoFrame所包含的信息乃是为了实现与达成显示模式自动化(Display Mode Automation)而规划的一种方法或机制。当然,所有的重点都处于打包中各个内涵的字段之中。

       Y0Y1RGBYCbCr指示器。就是意指色彩的编码以及采样方法(Color Encoding & Sampling Methods)

      A0Active (format)Information Present是一个旗帜,用来表示R0R3是否有效,R0R3就是Active Format Aspect Ratio

      B0B1Bar Info数据是否有效的旗帜。

       S0S1Scan Information。安全范围的信息。比如说,全画面(OVERSCAN)和非全画面(UNDERSCAN)

      C0C1:比色法(Colorimetry)ITU BT.601BT.709等。

       M0M1Picture Aspect Ratio (43, 169)EIA/CEA-861-B标准的Section 2.4定义了Picture Aspect Ratio的词汇,视为在未压缩数字接口上传送影像的宽高比。

       R0R3就是Active Format Aspect Ratio

       VIC0~VIC6Video Format Identification Code

      PR0PR3Pixel Repetition Factor。关系到Double Clocking & Pixel Repetition的议题。比如说,速率低于25HMz的视频格式(NTSC480i就只有13.5MHz),可使用像素重复(Pixel RePetition)的机制来传输。

      SC1SC0Non-uniform Picture Scaling,是morph mode

    AVI InfoFrame的打包内容还包含有:

       ETBLine number of end of top bar

      SBBLine number of start of bottom bar

      ELBPixel number of end of left bar

    SRBPixel number of start of right bar

      AVI InfoFrame的内容不去了解,可以用一种比较形象的比喻来解释,有些人拍影片的格式会有多种花样,其内容不见得与消费者家中电视机的长宽比(Aspect Ratio)相符合,因此即使您拥有非常智能的电视机,想要将内容影像做最佳化的显示,唯一的方法就是要了解所收到的影像状况,这也就是AVI InfoFrame所要去完成的任务。

      电视机最常见的银幕长宽比(Aspect Ratio)不是43就是169,而计算机的显示主要是43,有时还可见到54321610,而当代的电影胶片却能够支持六种格式,分别是4×313×95×313×711×512×5。以前的电视节目大多以43的比例来拍摄,随着HDTV的迫近,越来越多的节目开始以169的比例来拍摄。

      HDMI接口的源装置使用IEC 60958 Channel Status位、IEC 61937 Burst Info以及Audio InfoFrame来表达有源音频串(Active Audio Stream)的特性,Audio InfoFrame的传送是Data Island打包可以载送的任何时间点。

      需要注意的是,该打包内涵中许多字段可以设定为零,表示着这些信息在IEC 60958 Channel Status位、IEC 61937 Burst Info中已经隐含。

       CC0CC2Channel Count

       CT0CT3Coding Type

       SS0SS1Sample Size

       SF0SF2 Sample Frequency。对于L-PCM以及压缩音频,这些位必须为零。对于Super Audio CD来说,位设定必须为[0,1,0],表示2.8224M个采样(64×44.1KHz)

    CA0CA7Channel/Speaker Allocation。对于压缩音频而言,这些位是无效用的。

       LSV0LSV3Level Shift Value

       DM_INHDown-mix Inhibit

      Audio InfoFrame所传送的额外数据,包含多轨道L-PCM扩音器喇叭的配置以及降混音量(Down-mix Volume)调整的修正。

    E-EDID的数据结构

      E-EDID是增强型扩充显示器识别数据(Enhanced Extended Display Identification Data Standard)的简称,是VESA组织所规范,在版本上也有更新的考虑。所有的终端接收装置(Sink),其E-EDID数据结构必须遵照VESA E-EDID Standard Release A, Revision 1,而E-EDID的第128个字节,不仅必须包含EDID 1.3的架构,也得满足EIA/CEA-861B的要求。

      源装置使用DDC来读取终端接收显示装置的E-EDID(Enhanced Extended Display Identification Data),以确认终端显示装置的设定与功能。规格中清楚写到,所有包含EIA/CEA-861BE-EDID数据结构的终端接收显示装置,都需要通过DDC来存取。更准确地说,即源装置必须读取EDID 1.3以及第一个CEA EDID Timing Extension,来确认终端显示装置所支持的功能。

    HDMI既然师出于DVI,又有兼容的特征,那么有趣的问题就浮现出来了,即用什么方法来判别或鉴别是DVI装置还是HDMI装置呢?想要简单推断则必须要规范一种机制或方法来鉴别。

      CEA EDID Timing Extension必须包含HDMI Vendor Specific Data Block (HDMI VSDB)的表格。这是一个EIA/CEA-861B Vendor Specific Data Block的数据区块,细节描述在EIA/CEA-861B的表格3032。这个数据区块会包含有一个24位的IEEE Registration Identifier登记识别符号0x000C03,而该识别码就是隶属于HDMI LicensingLLC。基于此,HDMI的源端可以检查是否为合理的HDMI VSDB,然后包含有IEEE Registration Identifier登记识别符号0x000C03,就可以判断为HDMI装置,而不是DVI装置。同样的,任何具有E-EDID的装置,不包含有CEA EDID Timing Extension或是有效长度的HDMI VSDB,即可视为DVI装置。

      HDMI接收装置端的音频特性的支持,在CEA EDID Timing Extension中的Short Audio Descriptor数据区块中完全表达。这些数据表达了接收端所支持的音频编码方式与相关参数,比如说支持的通道数,而多声道的L-PCM或是多声道的单位元音频,也可以通过数据区块中的“Speaker Allocation Descriptor”来清楚表达。

      如果接收端也支持RCbCr的像素编码(Pixel Encoding)EDID Timing Extension字节三的位四与位五必须设定为一。至于视频格式的支持,HDMI接收端采用SVD(Short Video Descriptor)中的Video Code来表达,也可以使用DTD(Detailed Timing Descriptor)。如果接收端支持了单位元音频,可以通过Short Audio DescriptorCoding Type为九,Short Audio Descriptor的字节三必须保留为零。

    Enhanced DDC概述

      DDC(Display Data Channel)是终端显示器用来告知个人计算机显示器信息(如分辨率、扫描频率等)的规格,也就是显示器与主机系统之间的通信方法,当然,这个规格的主要目的就是要实现即插即用(Plug & Play)的功能。Enhanced DDC乃是定义于VESAENHANCED DISPLAY DATA CHANNEL STANDARD Version 1 (September 2, 1999)。依据HDMI规格的记载,所有的接收端必须支持这些Enhanced DDC的特征。在技术层面,就数据传输的时序来说,必须完全符合业界标准的I2C接口的标准模式,也就是数据必须与SCL维持同步。

      I2C接口是一个非常简易的控制接口,仅是时钟(Clock)与数据(Data)的两线式接口。(注:I2C接口是上个世纪80年代初期,飞利浦半导体所开发的连接接口,依照传送速度有三种模式:标准模式约100Kbps,快速模式约400Kbps,高速模式约3.4Mbps)总之,HDMI来源端是利用了I2C接口的命令来读取接收端的E-EDID

      HDMI接口有一热插拔检测(Hot Plug Detect)的信号,它要遵循一些准则。一个HDMI接收端,当E-EDID数据尚未准备好可读取时,不能够在高电压准位驱动该信号。同时,也必须得知来源端的+5V Power信号时,才能够驱动。HDMI来源装置可以利用该信号的高电位来激发E-EDID数据的读取。HDMI接收端E-EDID数据的内容有任何改变的话,在该信号驱动为低电位至少需100ms的时间。

    CEC信号线概述

      CECConsumer Electronics Control)信号线是提供使用者对于HDMI接口连接装置,提供一种高级控制的方式,例如单键播放(One Touch Play)、单键录像(One Touch Record)等,让消费者对HDMI装置能有逻辑性高的控制方便性,这个功能主要与遥控装置的使用有密切的关系。

      CEC功能是以欧洲常见的影音连接通讯协议(AV.Link Protocol)为基础,欧洲的影音设备惯用AV.LinkQ-Link等一堆奇怪的字眼,完全视厂商情况而定。CEC的功能支持与否是一个选项,使用上也是随制造厂商而定。

      USB1394均是分享式以及随插即用的总线,接口上会存在多个装置,为了能够维持正确传输而不会互相干扰,各个装置必须赋予一个物理地址(Physical Address),这个过程就称之为Physical Address Discovery,所有的地址都用4个位数来表示,而装置连接的阶数最多为5阶。

    HDMI与DVI的兼容性设计

         考虑到现在有的LCD显示器只支持DVI接口,而不支持HDMI接口。所以要设计一种兼容两种模式的输出方案,在硬件接口上只要通过一个普通的转换头HDMI-DVI,即可实现。而更多的兼容性设计主要体现在软件方面,DVI相比HDMI主要是不支持音频、信息帧色、YUV彩空间等。在软件编写子函数时可以先将HDMI所有功能都实现,只是在检测到所连接的显示器不支持HDMI时将某些功能关闭。 所以对 显示器EDID的参数检测是实现HDMI与DVI兼容性显示的关键。

         对于所连接显示器的参数检测主要是通过DDC I2C接口获取显示器EEPROM中存储的EDID信息规范规定,CEA EDID数据传输的第1个时序扩展段中要包含VSDB信号。如果是HDMI设备就能找到一个有效的VSDB,它包含一个24bit的HDM数据识别符,其值为0x000C03。只要从显示器空间EDID查找到该描述符就认为其所连接的是HDMI显示器,开启所有HDMI功能。反之如果无法查找到有效的VSDB标识符,只开启DVI功。此外为了更好地兼容DVI显,可以通过读取显示器EDID信息来判断所接显示器的类型,从而决定是否开启的全部功能。

  • 相关阅读:
    我们应当怎样做需求分析
    卓有成效的团队建设经验与见解 Team Leader你会带团队吗?
    一个独立程序员对自己近九个月工作生活的回顾
    KISS My YAGNI,KISS (Keep It Simple, Stupid)和 YAGNI (You Ain’t Gonna Need It)软件开发原则
    程序员新人如何在企业与人打好交道 站在别人的立场想问题,站在自己的立场做事情
    创业团队产品如何战胜大公司的抄袭 腾讯抄你肿么办?
    什么样的程序员才算成熟? 让程序员认清自己的所处的阶段
    HTML的GET方法传递参数样式。
    教您使用java爬虫gecco抓取JD全部商品信息
    JAVA 爬虫Gecco
  • 原文地址:https://www.cnblogs.com/cslunatic/p/3155674.html
Copyright © 2011-2022 走看看