android HDMI (一):HDMI基础篇【转】
本文转载自: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基础篇【转】的更多相关文章
- Android Fragment使用(一) 基础篇 温故知新
Fragment使用的基本知识点总结, 包括Fragment的添加, 参数传递和通信, 生命周期和各种操作. Fragment使用基础 Fragment添加 方法一: 布局里的标签 标识符: tag, ...
- 深入了解Android蓝牙Bluetooth——《基础篇》
什么是蓝牙? 也可以说是蓝牙技术.所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的.利用"蓝牙"技术,能够有效地简化掌上电脑.笔记本电 ...
- Android自己定义View基础篇(三)之SwitchButton开关
自己定义View基础篇(二) 自己定义View基础篇(一) 自己定义View原理 我在解说之前,先来看看效果图,有图有真相:(转换gif图片效果太差) 那来看看真实图片: 假设你要更改样式,请改动例如 ...
- Android图片开发内幕--基础篇
前言:本来我是做电视应用的,但是因为公司要出手机,人员紧张,所以就抽调我去支援一下,谁叫俺是雷锋呢!我做的一个功能就是处理手机中的应用ICON,处理无非就是美化一下,重新与底板进行合成和裁剪,用到了很 ...
- (转)Android高性能编程(1)--基础篇
关于专题 本专题将深入研究Android的高性能编程方面,其中涉及到的内容会有Android内存优化,算法优化,Android的界面优化,Android指令级优化,以及Android应用内存占 ...
- Android自定义控件系列之基础篇
一.概述 在android开发中很多UI控件往往需要进行定制以满足应用的需要或达到更加的效果,接下来就通过一个系列来介绍自定义控件,这里更多是通过一些案例逐步去学习,本系列有一些典型的应用,掌握好了大 ...
- Android和H5交互-基础篇
hybrid App开发也不是什么新鲜事了,其中native和h5之间的交互则是必不可少的.Android中是如何和H5交互的? 1.webView加载页面 我们都知道在Android中是通过webV ...
- Android JNI--基础篇(二)
编写一个可以与C代码交互的android工程需要如下步骤: 1.JAVA代码中写声明native 方法 2. 创建jni目录,编写c代码,方法名字要对应 3.编写Android.mk文件(交叉编译的规 ...
- Android自定义控件系列之应用篇——圆形进度条
一.概述 在上一篇博文中,我们给大家介绍了Android自定义控件系列的基础篇.链接:http://www.cnblogs.com/jerehedu/p/4360066.html 这一篇博文中,我们将 ...
- 深入了解Android蓝牙Bluetooth——《进阶篇》
在 [深入了解Android蓝牙Bluetooth--<基础篇>](http://blog.csdn.net/androidstarjack/article/details/6046846 ...
随机推荐
- WordPress函数:get_bloginfo()用法详解
描述 返回你博客的信息,这些信息可以用在任何地方的 PHP 代码中.这个函数,和 bloginfo() 一样,可以用来在模板文件的任何地方显示你博客的信息. 用法 <?php $bloginfo ...
- Android网络框架Volley
Volley是Google I/O 2013推出的网络通信库,在volley推出之前我们一般会选择比较成熟的第三方网络通信库,如: android-async-http retrofit okhttp ...
- LeetCode 第 342 题(Power of Four)
LeetCode 第 342 题(Power of Four) Given an integer (signed 32 bits), write a function to check whether ...
- 使用Fiddler抓包拦截线上JS
第三方教程:http://www.lcgod.com/atc_74 分六步即可: 1.左侧session列表中选中你想替换的一条请求 2.右侧,切换到AutoResponder,点击Add rules ...
- 详细的obs操作教程(windows/mac)图解
直播推流软件obs操作配置教程包含支持mac和windows配置 1 2 3 4 5 6 7 8 9
- CSRF--花式绕过Referer技巧
CSRF遇到Referer绕过的情况,有条件限制,不一定所有的Refere验证就可以绕过 1.Refere为空条件下 解决方案: 利用ftp://,http://,https://,file://,j ...
- NHibernate 延迟加载与立即加载 (第七篇)
NHibernate 延迟加载与立即加载 (第七篇) 一.延迟加载 延迟加载可以理解为:当需要用的时候才加载. 假设我们数据库有一个Person对象,一个Country对象,其中Person属于Cou ...
- webview长按保存图片
private String imgurl = ""; /*** * 功能:长按图片保存到手机 */ @Override public void onC ...
- Log4Net.Config配置信息《转》
看了log4net的简单使用之一_log4net介绍 大家对log4net组件应该有了大概的了解,下面再近一步介绍其在项目中如何应用. 1.Logger 所有的记录器都必须实现 ILog 接口,该接口 ...
- cobbler+koan
cobbler+koan自动重装客户机 koan是kickstart-over-a-network的缩写,它是cobbler的客户端帮助程序,koan允许你通过网络提供虚拟机,也允许你重装已经存在 ...