|
楼主 |
发表于 2009-12-7 19:00
|
显示全部楼层
回答34楼朋友的问题
我不是HDMI专家,只是就其中通用的原理分析一下,可能说的不严谨,如果有疑点请随时指出。
1楼曾经谈到对音频流HDMI提供了两级误码检测和恢复机制:
HDMI规范把音频和辅助数据放在数据包(packet)里通过称为数据岛(我自己的直译,原文为Data Island)的周期里传输。(HDMI把TMDS传输划分为控制周期control period、数据岛周期data island period和视频数据周期)
第一级是对Data Island进行TERC4(TMDS Error Reduction Coding)编码,这是一种4bit-10bit编码, 这种编码是一种常见有噪声信道的信道编码,通过增加冗余数据位达到增大码字间的距离从而提高抗干扰性能以及获得纠错功能。
也就是对每个4bit的输入源码字,分配一个10bit的输出码字给它
由于4bit一共有2的4次方共16个码字,而10bit输出码字有2的10次方共1024个码字
因此在1024个10bit码字里指定16种特定的码字对应分配给4bit输入源码字,剩下的1024-16种都是禁用码字。并且码组中每两个码字之间都有一定的汉明距离d。能够检测错误和纠正错误的能力由这组码字的最小汉明距离决定。
【在一个码组(码字集合)中,任意两个等长码字之间,如果有d个相对应的码元不同,则称d为这两个码字的汉明距离。】
如果经过线路传输后有误码的话,发生错误的码字的值会落入禁用码字的取值范围,这样接收端就检测到发生了误码,然后接收机会根据该错误码字的值猜测正确的码值,一般是选取合法码字中与接收到的错误码字汉明距离最近的那个值,这就完成了误码恢复的过程。
实际上这个过程没有我说的这么简单,因为有可能接收机发现有不止一个正确码字与错误码字的汉明距离最小,这时候就需要接收机根据前后收到的码字预测最接近的正确码字。另外也可能线路误码比较大(误码比特数超过汉明距离),错误码字值没有落入禁用码字范围,而是取到了另一个正确码字,这时接收机就无法检测到误码。所以说如何设计10bit码组,获得最大的汉明距离,是提高误码检测和恢复能力的关键。HDMI已经定义好了16个10bit的输出码字,这组码字的汉明距离也就确定下来了。
4b-10b的bit数太多不利于讲解,
下面用1b-3b编码,即1bit输入源码字,3bit输出码字举例说明。
源输入码 冗余位 输出码字 传输中错一位(禁用码字)
0 00 000 100,010,001 ---> 由于距离000只有1个bit的距离,所以恢复为000
1 11 111 011,101,110 ---> 由于距离111只有1个bit的距离,所以恢复为111
(000)(111)许用码字 ,其他为禁用码字.
由于输出码字000和111有3个bit不同,所以汉明距离为3,此时可检2位错,可纠1位错,也就是它的抗干扰能力
如果信道很差,出了2位错甚至3位全错了,比如发送000,接收错2位成了011,此时接收机就无能为力了,它会把错误的码值恢复到111,也就等于把源输入码0错判成1了。
信道编码是根据信源和信道的统计特性设计的,即如果信道统计特性表现为会出现2bit以上误码,则需要更改编码方法,比如增加冗余位的位数,如使用1b-4b甚至1b-5b编码
4b-10b的误码检测和恢复和1b-3b类似,只不过位数加宽、禁用码字加大,汉明距离增大,误码检测能力和纠错能力加大了。原则上输出码字位数越长,纠错力越强。但是一味增大输出码字长度会增大对传输速率的要求,二者要兼顾。
下班回家了,晚上接着分析第二级块校验。
[ 本帖最后由 dryfish 于 2009-12-7 22:50 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?加入布鲁
x
|