本文转载自:http://blog.csdn.net/xubin341719/article/details/7713450

说到android的HDMI,从android 2.2、android2.3到android4.0,三星的芯片也做过3sc2440、s5pc110、s5pv210、s5pv310再加上新案四核的samsung exynos 4412,都成三星专业户了,不过三星芯片HDMI这一块做的还是很好的。大的问题没有,就是解一些bug,没声音了、图像分辨率不对了……所以真正的代码我也没看那么多,先写一个HDMI的基础篇吧,看后面有没有耐心把这块代码看一边。(其实大部分是我工作的笔记,如里说不明白的话还请大家……)

做过一段时间电视方案,这个HDMI还算知道点,不过时间久了就忘了……所以我现常写工作笔记。前一段时间我们samsung exynos 4210平台的HDMI没声音,我请教一同事,是后发现他说“找什么HDMI的IIS、codecs相关的东西”,我一听有点傻眼了,总觉得不对呀,可是又想不起来那里不对, 原理图上找了一通,没找到呀。最后发现视频、音频同一个数据线上传输的。

先来张图吧,这样清楚一点,看下声音是从那里传输的:

一、HDMI基础知识

            HDMI(High-DefinitionMultimedia Interface)又被称为高清晰度多媒体接口,是首个支持在单线缆上传输,不经过压缩的全数字高清晰度、多声道音频和智能格式与控制命令数据的数字接口。HDMI接口由Silicon Image美国晶像公司倡导,联合索尼、日立、松下、飞利浦、汤姆逊、东芝等八家著名的消费类电子制造商联合成立的工作组共同开发的。

二、HDMI传输原理

            HDMI采用TMDS (TimeMinimized Differential Signal)最小化传输差分信号传输技术 , TMDS是一种微分信号机制,采用的是差分传动方式 ,是一种利用2个引脚间电压差来传送信号的技术。每一个标准的HDMI连接,都包含了3个用于传输数据的TMDS传输通道,还有1个独立的TMDS时钟通道,以保证传输时所需的统一时序。在一个时钟周期内,每个TMDS通道都能传送10bit的数据流。而这10bit数据,可以由若干种不同的编码格式构成。

所用到的术语:

HDMI把视频信号分为R、G、B、H、V五种信号用TMDS技术编码。

TMDS:这三个通道传输R、G、B三原色,HV编码在B信号通道里面传输,R、G的多余位置用来传输音频信号。

DDC :即显示数据通道,用来向视频接收装置发送配置信息和数据格式信息,接收装置读取这些

E-EDID(增强扩展显示识别数据)的信息。

CEC:即消费电子控制通道,通过这条通道可以控制视听设备的工作。

三、HDMI数据容量

            HDMI电路中的时钟频率,在1.0版本规定为25MHz-165MHz之间,也就是说一个TMDS通道每秒最多能传输165MHz×10bit=1.65Gbit的数据,3个TMDS通道一秒就可以传输1.65×3=4.95Gbit的数据,再加上控制数据,用标准方法表示就是4.96Gbps的带宽;若传输信号的比率小于25MHz,HDMI会采用自动循环技术填补码率,将信号的码率提升到25MHz的水平。

如果用像素点来表示,那就是一秒可以传输显示1.65G个像素点(一个完整的像素点信息由R/G/B三原色信息构成)所需要的数据量。

在1.3版本规格中,TMDS连接带宽从原来最高165MHz提升到340MHz,数据传输率也从4.96Gbps提升到了10.2Gbps,可以支持支持更高数据量的高清数字流量,如果采用Type B型双路

TMDS连接,则可以在此基础上再提升一倍系统带宽。

四、HDMI数据传输

            HDMI输入的源编码格式包括视频像素数据(8位)、控制数据(2位)和数据包(4位)。其中数据包中包含有音频数据和辅助信息数据。数据传输过程可以分成三个部分:视频数据传输期、岛屿数据传输期和控制数据传输期。

视频数据传输期:HDMI数据线上传送视频像素信号,视频信号经过编码,生成3路(即3个TMDS数据信息通道,每路8位)共24位的视频数据流,输入到HDMI发射器中。24位像素的视频信号通过TMDS通道传输,将每通道8位的信号编码转换为10位,在每个10位像素时钟周期传送一个最小化的信号序列,视频信号被调制为TMDS数据信号传送出去,最后到接受器中接收。

五、HDMI音频功能

            传统的数字音频信号的传输主要依靠两种途径:同轴电缆和光纤传输。

同轴电缆传输数字音频信号是一种非常成熟且高质量的方式。这种接口标准对设备端的硬件要求较低,但是在传输高频信号时,容易发生比较大的衰减,影响到最终音质。

光纤对设备接收、发射端的同步时许要求非常严格,在技术上比同轴要难于实现,但是光纤技术在长距离传输方面的优势非常明显,不会出现同轴电缆长距离衰减过大的问题,因此也得到了很多有距离限制以及新装修用户的青睐。

HDMI技术则综合了以上两者的优点:物理层采用成熟的电缆连接。HDMI理论上可以实现最高20米的无损耗数字音频信号传播,那些对距离有要求的用户也能较好接受。

六、HDMI接口类型

            常见的HDMI类型有A、B、C三种类型。其中A型是标准的19针HDMI接口,普及率最高;B型接口尺寸稍大,但是有29个引脚,可以提供双TMDS传输通道。而C型接口和A型接口性能一致,但是体

积较小,更加适合紧凑型便携设备使用。接口A、接口B、接口C

七、HDMI特点

1、更好的抗干扰性能,能实现最长20米的无增益传输。

2、针对大尺寸数字平板电视分辨率进行优化,兼容性好。

3、支持EDID(注1)和DDC2B(注2)标准,设备之间可以智能选择最佳匹配的连接方式。

4、拥有强大的版权保护机制(HDCP(注3)),有效防止盗版现象。

5、支持24bit色深处理,(RGB、YCbCr4-4-4、YCbCr4-2-2)。

6、接口体积小,各种设备都能轻松安装。

7、一根线缆实现数字音频、视频信号同步传输,有效降低使用成本和繁杂程度。

8、完全兼容DVI接口标准,用户不用担心新旧系统不匹配。

9、支持热插拔技术。

android HDMI (一):HDMI基础篇【转】的更多相关文章

  1. Android Fragment使用(一) 基础篇 温故知新

    Fragment使用的基本知识点总结, 包括Fragment的添加, 参数传递和通信, 生命周期和各种操作. Fragment使用基础 Fragment添加 方法一: 布局里的标签 标识符: tag, ...

  2. 深入了解Android蓝牙Bluetooth——《基础篇》

    什么是蓝牙?   也可以说是蓝牙技术.所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的.利用"蓝牙"技术,能够有效地简化掌上电脑.笔记本电 ...

  3. Android自己定义View基础篇(三)之SwitchButton开关

    自己定义View基础篇(二) 自己定义View基础篇(一) 自己定义View原理 我在解说之前,先来看看效果图,有图有真相:(转换gif图片效果太差) 那来看看真实图片: 假设你要更改样式,请改动例如 ...

  4. Android图片开发内幕--基础篇

    前言:本来我是做电视应用的,但是因为公司要出手机,人员紧张,所以就抽调我去支援一下,谁叫俺是雷锋呢!我做的一个功能就是处理手机中的应用ICON,处理无非就是美化一下,重新与底板进行合成和裁剪,用到了很 ...

  5. (转)Android高性能编程(1)--基础篇

    关于专题     本专题将深入研究Android的高性能编程方面,其中涉及到的内容会有Android内存优化,算法优化,Android的界面优化,Android指令级优化,以及Android应用内存占 ...

  6. Android自定义控件系列之基础篇

    一.概述 在android开发中很多UI控件往往需要进行定制以满足应用的需要或达到更加的效果,接下来就通过一个系列来介绍自定义控件,这里更多是通过一些案例逐步去学习,本系列有一些典型的应用,掌握好了大 ...

  7. Android和H5交互-基础篇

    hybrid App开发也不是什么新鲜事了,其中native和h5之间的交互则是必不可少的.Android中是如何和H5交互的? 1.webView加载页面 我们都知道在Android中是通过webV ...

  8. Android JNI--基础篇(二)

    编写一个可以与C代码交互的android工程需要如下步骤: 1.JAVA代码中写声明native 方法 2. 创建jni目录,编写c代码,方法名字要对应 3.编写Android.mk文件(交叉编译的规 ...

  9. Android自定义控件系列之应用篇——圆形进度条

    一.概述 在上一篇博文中,我们给大家介绍了Android自定义控件系列的基础篇.链接:http://www.cnblogs.com/jerehedu/p/4360066.html 这一篇博文中,我们将 ...

  10. 深入了解Android蓝牙Bluetooth——《进阶篇》

    在 [深入了解Android蓝牙Bluetooth--<基础篇>](http://blog.csdn.net/androidstarjack/article/details/6046846 ...

随机推荐

  1. centos7 重启网卡报错

    systemctl restart network 时候报错: rtnetlink answers file exists 是network和NetworkManager冲突了 一般建议直接 syst ...

  2. HTML5 2D平台游戏开发#10Wall Jump

    这个术语不知道怎么翻译比较贴切,但并不妨碍对字面意思的理解,大概就是飞檐走壁.比如: 这是游戏<忍者龙剑传>中的场景,玩家可以通过操纵角色在墙面上移动并跳跃. 首先需要实现角色抓墙这一动作 ...

  3. MapReduce源码分析之JobSplitWriter

    JobSplitWriter被作业客户端用于写分片相关文件,包括分片数据文件job.split和分片元数据信息文件job.splitmetainfo.它有两个静态成员变量,如下: // 分片版本,当前 ...

  4. html自定义标签属性

    <a href="#" _asd="xxxx" onclick="test(event)">test</a> < ...

  5. Python 内建的filter()函数用于过滤序列。

    例如,在一个list中,删掉偶数,只保留奇数,可以这么写: def is_odd(n): return n % 2 == 1 list(filter(is_odd, [1, 2, 4, 5, 6, 9 ...

  6. CSU 1663: Tree(树链剖分)

    1663: Tree Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 26  Solved: 11 [Submit][id=1663"> ...

  7. 并行编程(2) - sum.msic.Unsafe 二

    整理了几个曾经从网上记录sum.msic.Unsafe类的演示样例.供大家參考: package com.fish.unsafe; import java.io.File; import java.i ...

  8. 一个关于运维人员做事的很好的case,拿出来和大家共勉

    很久没有写KM了,最近lester这边在梳理CDB这边存在的问题,并推动那些问题解决措施的落地.无疑当前CDB存在比较多的问题,也有很多坑.需要我们运维和开发的同学多思考问题的根源和解决办法,并付诸实 ...

  9. jedisLock—redis分布式锁实现(转)

    一.使用分布式锁要满足的几个条件: 系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体 ...

  10. hdu 4414 Finding crosses【简单模拟】

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4414 CSUST:点击打开链接 Finding crosses Time Limit: 2000/1000 ...