通过串行链路传输N比特视频数据的方法和系统转让专利

申请号 : CN200610095924.X

文献号 : CN1901674B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·G·拉弗勒P·D·沃尔夫

申请人 : 晶像股份有限公司

摘要 :

一种系统包括接收机、TMDS链路(或其它串行链路)和发射机,该发射机被配置成通过该链路发送K比特视频字(通常是编码后的8比特视频字)。在典型的实施例中,发射机被配置成将N比特视频字的序列打包成K比特片断的序列,其中N≠K(例如,当K=8时,N=10,12或16),对这些片断进行编码,并且发送编码后的片断。所发送的数据用于表示多个M片断组的序列,并且该发射机通常被配置成通过所述链路发送打包相位数据,该打包相位数据表示最近被发送片断的相位。其它方面是用于这种系统中的发射机和接收机以及由任何这种发射机、接收机或系统实现的方法。

权利要求 :

1.一种通过串行链路发送N比特视频的发射机,所述发射机被配置成发送编码后的K比特视频数据字,所述发射机包括:

子系统,所述子系统可用至少一个N比特模式操作,以便将N比特视频数据字的序列打包成多个片断的序列,其中N≠K并且所述片断中的每一个片断包括K比特的视频数据;以及耦合到所述子系统并具有至少一个输出的电路,所述至少一个输出被配置成耦合到所述串行链路,其中所述电路被配置成通过对所述片断序列中的每一个片断进行编码来产生编码后的片断序列、并且将编码后的片断序列提供给所述至少一个输出,由此当所述串行链路耦合到所述至少一个输出时便可以通过所述串行链路发送编码后的片断,其中所述编码后的片断序列是编码片断组的序列,每个所述组确定视频数据的一不同的N比特字组,其中每个所述不同的N比特字组包括至少一个N比特视频数据字,所述电路被配置顺序地提供组给至少一个输出,按等于每单位时间P个N比特视频数据字的第一速率将N比特视频数据字提供给所述子系统,并且所述电路被配置成按第二速率将编码后的片断序列提供给所述至少一个输出,所述第二速率至少基本上等于每单位时间(N/K)P个编码后的片断。

2.如权利要求1所述的发射机,其特征在于,所述编码后的片断序列是多个组的序列,每个所述组由M个编码后的片断构成,其中M=N/D,D是N和K的最大公约数。

3.如权利要求1所述的发射机,其特征在于,所述发射机可在有效视频间隔和有效视频间隔之间的空白间隔工作,所述发射机被配置成在有效视频间隔而不是任何空白间隔发送编码的K比特视频数据字,并且所述电路被配置成在有效视频间隔而不是任何空白间隔提供每个所述编码后的片断序列给至少一个输出。

4.一种发射机,包括:

子系统,它可用多个不同的3N比特像素模式中任意选定的一种模式操作,以便将N比特视频数据色彩成分的序列打包成多个片段的序列,其中N≠8,每一个片段包括8比特的视频数据;以及耦合到所述子系统并具有多个输出的电路,所述多个输出被配置成耦合到传输最小化差分信令链路,其中所述电路被配置成通过对所述片段序列执行传输最小化差分信令编码来产生编码后的片段序列、并且在有效视频间隔期间将编码后的片段序列提供给所述多个输出,由此当所述传输最小化差分信令链路耦合到所述多个输出时便可以通过所述传输最小化差分信令链路来发送所述编码后的片段,其中所述发射机可用24比特像素模式操作,用24比特像素模式所述子系统将24比特像素的多个8比特成分提供给所述电路,响应于每一个8比特成分,所述电路对这些8比特成分执行传输最小化差分信令编码以产生10比特传输最小化差分信令代码字,并且所述电路将每一个所述传输最小化差分信令代码字提供给所述多个输出,并且其中每一个片段序列是多个MN片段组构成的一个序列,其中MN是整数,其值取决于所述3N比特像素模式中的哪一个是所选定的3N比特像素模式,在每一个组中的每一个片段具有所述组内不同的相位,所述电路被配置成在空白间隔期间将空白字符提供给所述多个输出,并且所述发射机被配置成实现多个状态机序列,在不遗漏编码片段序列中任何编码片段的提供的情况下,这些状态机序列实现了单个组中不同编码片段的提供之间边界处有效视频间隔和空白间隔之间的转变、以及不同的组的提供之间出现的多个边界之间的转变。

5.如权利要求4所述的一种发射机,其中所述子系统工作在3N比特像素模式包括30比特像素模式、36比特像素模式和48比特像素模式中的任意选择的一种。

6.一种接收机,包括:

具有多个输入的电路,这些输入被配置成耦合到串行链路,其中所述电路被配置成恢复已经被提供给所述多个输入中的至少一个子集的那些K比特视频数据字;以及子系统,它耦合到所述电路以接收所述K比特视频数据字的序列,并且可用至少一种N比特模式操作,在所述至少一种N比特模式中,所述K比特视频数据字的序列是N比特视频数据字的序列中的打包后的K比特片段的序列,其中N≠K,并且所述子系统可用每一个所述N比特模式操作以解包所述片段,从而恢复出N比特视频数据字的序列,其中打包后的K比特片段的序列是一个K比特片段组序列,每个所述组确定视频数据的一不同的N比特字组,其中每个所述不同的N比特字组包括至少一个N比特视频数据字。

7.如权利要求6所述的接收机,其特征在于,所述电路被配置成恢复用于表示K比特视频数据字的代码字,这些代码字已经通过所述串行链路被发送给所述多个输入中的至少某些输入,所述电路还被配置成解码所述代码字以恢复所述K比特视频数据字。

8.一种接收机,包括:

具有多个输入的电路,这些输入被配置成耦合到串行链路,其中所述电路被配置成恢复已经被提供给所述多个输入中的至少一个子集的那些K比特视频数据字;以及子系统,它耦合到所述电路以接收所述K比特视频数据字的序列,并且可用至少一种N比特模式操作,在所述至少一种N比特模式中,所述K比特视频数据字的序列是N比特视频数据字的序列中的打包后的K比特片段的序列,其中N≠K,并且所述子系统可用每一个所述N比特模式操作以解包所述片段,从而恢复出N比特视频数据字的序列,其中K比特片段的序列是多个M片段的组构成的一个序列,每一个组中的每一个片段具有所述组内不同的相位,所述电路被配置成在有效视频间隔期间恢复所述K比特视频数据字、并且在有效视频间隔之间的至少某些空白间隔期间恢复已经发送给所述多个输入中的至少某些输入的打包相位数据,所述打包相位数据表示在已知的检查点处发送的多个片段之一的相位,并且所述电路被配置成响应于所述打包相位数据产生至少一个控制比特、并且将每一个所述控制比特提供给所述子系统以便将所述子系统设置到某一状态,所述某一状态对应于在已知检查点处发送的多个片段中的所述那一个片段的所述相位。

9.一种接收机,包括:

具有多个输入的电路,所述多个输入被配置成耦合到传输最小化差分信令链路,其中所述电路被配置成恢复用于表示8比特视频数据字的传输最小化差分信令代码字,这些代码字已经被发送给所述多个输入的至少一个子集,所述电路还被配置成解码这些代码字以恢复出所述8比特视频数据字;以及子系统,它耦合到所述电路以接收所述8比特视频数据字的序列并且可用多个不同的3N比特像素模式中任意选定的一个模式操作,在这些模式中N≠8并且所述8比特视频数据字的序列是3N比特像素的打包后的8比特片段的序列,其中所述子系统可用每一个所述的3N比特像素模式来解包所述片段从而恢复出所述3N比特像素的序列,所述接收机也可用24比特像素模式操作,在这种像素模式中,由所述子系统接收到的8比特视频数据字的序列是24比特像素的序列,并且所述电路还被配置成恢复频率为L的链路时钟,所述链路时钟已经通过所述传输最小化差分信令链路被发送给所述多个输入的至少一个子集,并且所述电路包括频率分配器,所述频率分配器被耦合成接收所述链路时钟,并且所述电路可用每一个所述的3N比特像素模式操作,以响应于所述链路时钟产生频率P至少基本上等于(8/N)L的像素时钟。

10.如权利要求9所述的一种接收机,其中所述子系统工作在3N比特像素模式包括30比特像素模式、36比特像素模式和48比特像素模式中的任意选择的一种。

11.一种通过串行链路传输N比特视频数据的系统,包括:

发射机;

接收机;以及

耦合在所述发射机和所述接收机之间的串行链路,其中所述发射机包括:

子系统,所述子系统可用至少一个N比特模式操作,以将N比特视频数据字的序列打包成多个片断的序列,其中N≠K并且所述片断中的每一个片断包括K比特的视频数据;以及耦合到所述子系统并具有多个输出的电路,所述多个输出被配置成耦合到所述串行链路的数据信道,其中所述电路被配置成通过对所述片断进行编码来产生编码后的片断序列、并且将编码后的片断序列提供给所述多个输出,以便通过所述串行链路将编码后的片段发送给所述接收机,其特征在于编码后的片断序列是一个编码片断组序列,每个所述组确定视频数据的一不同的N比特字组,其中每个所述不同的N比特字组包括至少一个N比特视频数据字,所述发射机的电路被配置顺序地提供组给输出,按等于每单位时间P个N比特视频数据字的第一速率将N比特视频数据字提供给所述子系统,并且所述发射机的电路被配置成按第二速率将编码后的片断序列提供给所述输出,所述第二速率至少基本上等于每单位时间(N/K)P个编码后的片断。

12.如权利要求11所述的系统,其特征在于,所述编码后的片段序列是多个组的序列,每个所述组由M个编码片段构成,其中M=N/D,并且D是N和K的最大公约数。

13.如权利要求11所述的系统,其特征在于,所述发射机可在有效视频间隔和有效视频间隔之间的空白间隔工作,所述发射机被配置成在有效视频间隔而不是任何空白间隔发送编码后的片断,并且所述电路被配置成在有效视频间隔而不是任何空白间隔提供每个所述编码后的片断序列给输出。

14.一种通过串行链路传输N比特视频数据的系统,包括:

发射机;

接收机;以及

耦合在所述发射机和所述接收机之间的串行链路,其中所述发射机包括:

子系统,所述子系统可用至少一个N比特模式操作,以将N比特视频数据字的序列打包成多个片断的序列,其中N≠K并且所述片断中的每一个片断包括K比特的视频数据;以及耦合到所述子系统并具有多个输出的电路,所述多个输出被配置成耦合到所述串行链路的数据信道,其中所述电路被配置成通过对所述片断进行编码来产生编码后的片断序列、并且将编码后的片断序列提供给所述多个输出,以便通过所述串行链路将编码后的片段发送给所述接收机,其特征在于,所述编码后的片断序列是由多个M个编码片断的组构成的序列,每一个组中M个编码片断中的每一个具有所述组内的不同相位,并且所述发射机被配置成在有效视频间隔期间将编码后的片断提供给所述多个输出、并且在有效视频间隔之间至少某些空白间隔期间将打包相位数据提供给所述多个输出中的至少一个输出,其中空白间隔期间所提供的打包相位数据表示在所述空白间隔之前被提供给所述多个输出的编码片断中最后一个编码片断的相位。

说明书 :

技术领域

本发明涉及通过串行链路传输视频数据(例如,编码后的视频数据)的方法和系统,还涉及用于这种系统中的发射机和接收机。在较佳的实施例中,串行链路是最小化传输差分信令(TMDS)链路,或者是具有部分而非全部TMDS链路特征的链路。

背景技术

在本文所揭示的内容(包括权利要求书)中,“像素时钟”(或“源像素时钟”)这种表述是指像素速率时钟,发射机用它(从源中)接收或产生要通过串行链路来传输的视频数据(例如,要被编码、串行化、之后通过串行链路传输的视频数据)。通常,像素时钟每一个像素就循环一次。
在本文所揭示的内容(包括权利要求书)中,“链路时钟”是指链路速率时钟,发射机用它来通过串行链路传输数据码元(例如,编码后的视频数据)。在通过TMDS链路进行传输的情况下,链路时钟每一个链路码元就循环一次。在典型、常规的DVI适应性系统或HDMI适应性系统的运行过程中(下文再讨论“DVI”和“HDMI”链路),源像素时钟的频率匹配于链路时钟的频率,并且发射机通过串行链路将链路时钟(带有编码后的视频数据)发送到接收机。
用于传输数据和时钟信号的各种串行链路都是公知的。
一种主要用于将视频数据从主机处理器(例如个人计算机)高速传输到监视器的常规串行链路被称为最小化传输差分信令接口(TMDS链路)。常规的TMDS链路的特征包括下面这些:
1.视频数据的8比特字(成分)被编码,之后作为10比特编码后的码元来传输。数字视频数据的24比特RGB像素的每一个8比特红、绿或蓝成分都在传输之前转换为编码后的10比特码元;
a.编码过程确定一组“带内”(数据)字和一组“带外”(控制)字(响应于视频数据编码器只能产生“带内”字,尽管它可响应于控制或同步信号而产生出“带外”字。每一个带内字是编码后的字,是从一个输入视频数据字的编码过程中得到的。通过该链路传输的又不是带内字的所有字都是“带外”字);
b.执行视频数据的编码,使得带内字达到转变最小化(带内字的序列具有减少的或最小化的转变次数);
c.执行视频数据的编码,使得带内字达到DC平衡(该编码过程防止被用来传输带内字序列的各传输电压波形偏离参考电势比预定阈值要多。具体来讲,各“带内”字的第十个比特指出,其另外九个比特中的八个是否已经在编码过程中被反转从而校正之前被编码的数据比特流中1和0的运行计数之间的不平衡);
2.编码后的视频数据和视频时钟信号作为差分信号被发送(视频时钟和编码后的视频数据作为差分信号通过导线对被发送);
3.三对导线对被用来传输编码后的视频,第四对导线对被用来传输视频时钟信号;并且
4.信号传输发生在从发射机(通常与台式或便携式计算机、其它主机相关)到接收机(通常是监视器或其它显示设备的一个元件)这一个方向上。
另一种串行链路是“高分辨率多媒体接口”接口(HDMI链路),它由SiliconImage、Matsushita Electric、Royal Philips Electronics、Sony Corporation、ThomsonMultimedia、Toshiba Corporation和Hitachi共同开发。HDMI链路可实现为包括两条TMDS链路(它们共享一对用于传输视频时钟信号的公用导线对)或一条TMDS链路,以及发射机和接收机之间的附加控制线路。
另一种串行链路是“数字视频接口”(DVI链路),它被数字显示工作组采用。将参照图1对其进行描述。DVI链路可实现为包括两条TMDS链路(它们共享一对用于传输视频时钟信号的公用导线对)或一条TMDS链路,以及发射机和接收机之间的附加控制线路。图1的DVI链路包括:发射机1,接收机3,以及发射机和接收机之间的缆线(包括连接器120和121以及导线组122)。导线组122包括四对导线对,用于视频数据的信道0、信道1和信道2(有时被称为CH0、CH1和CH2)以及用于时钟信号的信道C(有时被称为CHC)。导线组122也包括:显示数据信道(DDC)线路,用于发射机和与接收机相关的监控器之间的双向通信,所依据的是常规的显示数据信道标准(视频电子标准协会的“显示数据信道标准”,1996年4月9日发布,第2版第0次修订);热插拔检测(HPD)线路(在其上,监控器发送了一个使与发射机相关的处理器能够识别该监控器的存在的信号);模拟线路(用于将模拟视频发送到接收机);以及电源线(用于将DC电源提供给接收机以及与接收机相关的监视器)。显示数据信道标准指定一种用于在发射机以及与接收机相关的监控器之间进行双向通信的协议,该双向通信包括由监控器发送用于指定该监控器各种特征的扩展显示标识(EDID)消息,以及由发射机发送用于该监控器的控制信号。发射机1包括三个完全相同的编码器/串行化装置单元(单元2、4和6)以及附加电路(未示出)。接收机3包括三个完全相同的恢复/解码器单元(单元8、10和12)、如图所示连接的信道间对准电路14以及附加电路(未示出)。
如图1所示,电路2对要通过信道0发送的数据进行编码,并使编码后的比特串行化。相似的是,电路4对要通过信道1发送的数据进行编码(并使编码后的比特串行化),而电路6对要通过信道2发送的数据进行编码(并使编码后的比特串行化)。通过选择性地对数字视频字进行编码(响应于高值DE)、或者对控制或同步化信号对进行编码(响应于低值DE),电路2、4和6中的每一个都对控制信号(一种有效的高二进制控制信号,被称为“数据使能”或“DE”信号)作出响应。编码器2、4和6中的每一个都接收不同的控制或同步化信号对:编码器2接收水平和垂直的同步化信号(HSYNC和VSYNC);编码器4接收控制比特CTL0和CTL1;而编码器6接收控制比特CTL2和CTL3。因此,各编码器2、4和6都产生用于表示视频数据的带内数据码元(响应于高值DE):编码器2产生用于表示HSYNC和VSYNC的值的带外控制码元(响应于低值DE),编码器4产生用于表示CTL0和CTL1的值的带外控制码元(响应于低值DE),而编码器6产生用于表示CTL2和CTL3的值的带外字(响应于低值DE)。响应于低值DE,编码器4和6中的每一个都产生了四个特定带外控制码元之一,这四个特定的带外控制码元分别表示控制比特CTL0和CTL1(或CTL2和CTL3)的值00、01、10或11。
已提议使用已知的“高带宽数字内容保护”(HDCP)的密码协议,对要通过DVI链路传输的数字视频进行加密,并在DVI接收机处对数据进行解密。在视频有效周期期间(即,当DE较高时),用于实现HDCP的DVI发射机输出通称为cout[23:0]的24位总线。该24位cout数据与输入到发射机的24位RGB视频数据“异或”(在发射机的逻辑电路中),以便对视频数据进行加密。加密后的数据接着被编码(根据TMDS标准)以便传输。在接收机中也产生相同的cout数据。当在接收机处接收到的编码并加密过的数据经TMDS解码之后,在逻辑电路中对cout数据和解码后的视频进行处理,以便解密该解码后的数据并恢复出原始的输入视频数据。
在发射机开始传输HDCP加密且编码过的视频数据之前,发射机和接收机彼此之间进行双向通信以执行验证协议(以证实该接收机被授权接收受保护的内容,并建立用在输入数据的加密过程和传输加密数据的解密过程中的共享秘密值)。在接收机已获验证之后,发射机响应于控制信号计算初始的加密密钥组(用于加密输入视频数据的第一行),并发送该控制信号给接收机(在DE较低时的各垂直空白周期内)以使该接收机计算初始的解密密钥组(用于对传输视频数据的第一接收和解码行进行解密)。在产生初始的加密/解密密钥组之后,发射机和接收机中的每一个都在各空白(垂直的或水平的)消隐间隔期间执行再键入操作,从而产生新的密钥组用于加密(或解密)视频数据的下一行,并且只有在DE较高时(不是在空白间隔期间)才使用最近的密钥组执行输入视频数据的实际加密过程(或接收并解码过的视频数据的解密过程)。
在本说明书中,“TMDS类链路”这种表述将用来指一种串行链路,这种串行链路能够将编码后的数据(例如,编码后的数字视频数据)和用于该编码后的数据的时钟从发射机传输到接收机,还能够在发射机和接收机之间传输(双向地或单向地)一个或多个附加信号(例如,编码后的数字音频数据或其它编码后的数据),这种串行链路即是或者包括TMDS链路或具有部分而非全部TMDS链路特征的链路。TMDS类链路的示例包括:与TMDS链路的区别仅在于将数据作为N比特代码字(例如,N≠10或N=10)而非10比特TMDS代码字进行编码的链路;以及与TMDS链路的区别仅在于通过多于三个或少于三个导线对来传输编码后视频的链路。有若干种常规的TMDS类链路。
术语“发射机”用在此处意义宽泛,可指能够对数据进行编码并通过串行链路对编码后的数据进行传输的任何设备(作为可任选的,该设备也能够执行附加的功能,这包括对要传输的数据进行加密以及和数据的编码、传输或加密有关的其它操作)。术语“接收机”  用在此处意义宽泛,可指能够接收已通过串行链路发送过来的数据并对该数据进行解码的任何设备(作为可任选的,该设备也能够执行附加的功能,这包括对接收到的数据进行解密以及和所接收数据的解码、接收或解密过程有关的其它操作)。例如,术语发射机可以指既能执行接收机功能又能执行发射机功能的收发器。在一个更具体的示例中,术语发射机(参照一种通过TMDS类链路或其它串行链路传输非音频辅助数据的设备)可以指一种被配置成通过链路接收视频数据和音频数据并通过该链路发送非音频辅助数据的收发器。
一些TMDS类链路用不同于TMDS链路中所使用的特定算法的编码算法来对要发送的输入视频数据(和其它数据)进行编码,编码后的字包括比输入数据更多的比特,并且这些TMDS类链路还将编码后的视频数据作为带内字符来发送,并将其它编码后的数据作为带外字符来发送。没有必要根据这些字符是否满足转变最小化和DC平衡标准而将它们划分为带内和带外字符。相反,可以使用其它分类标准。不同于用于TMDS链路中的但可以用在TMDS类链路之中的一种编码算法的示例是IBM 8b10b编码。这种(在带内和带外字符之间的)分类没必要仅基于高或低次数的转变。例如,(在某些实施例中)带内和带外字符中的每一个字符的转变次数都可以在单个范围中(例如,由最小和最大转变次数所界定的中等范围)。
在TMDS类链路的发射机和接收机之间传输的数据可以但无需按差分的方式传输(通过一对导线)。此外,尽管TMDS链路具有四个差分对(在单像素形式中),三个用于视频数据,另一个用于视频时钟,但是TMDS类链路可以具有不同数目的导线或导线对。此外,即使TMDS链路明晰地通过一单独的差分对来发送链路时钟,但其它链路(包括一些TMDS类链路)并不明晰地发送链路时钟,在这种情况下要求接收机从数据信令中恢复出隐含的时钟。尽管在本发明的某些实施例中明晰地发送链路时钟,但是并不是在本发明所有实施例中都会明晰地发送链路时钟。

发明内容

在一类实施例中,本发明是一种发射机,它被配置成将视频数据的N比特字序列(其中N是“色彩深度”参数,并且N≠8)打包为称为“片段”的K比特字序列(其中K不等于N)以便对该K比特片段进行编码,并且通过串行链路将编码后的片段发送到接收机。通常,发射机以速率P接收或产生视频数据的N比特字,并且编码后的片段以速率(N/K)P来传输。在较佳的实施例中,色彩深度参数N是10、12或16,并且K=8(例如,像一些实施例那样,通过DVI适应性系统和HDMI适应性系统中所使用的串行链路来传输根据本发明所产生的三条编码后的8片段数据流,而非按常规传输的三条8比特成分编码流)。
根据本发明的较佳实施例,被传输的数据表示M个片段“组”的序列(各组包括M个片段,其中M是N除以N和K的最大公约数后得到的),各组中第j个片段(其中1≤j≤M)具有该组内的相位。各组的M个片段传送用于一组(M*K/N)N比特视频数据字的编码后数据。根据本发明的较佳实施例,接收机被配置成按链路传输速率(N/K)P使K比特片段解除串行化并对其进行解码,并且将所传输的片段解包(重新装配)成N比特的视频和空白数据字,它们实际上按最初的像素速率P来输出。接收机解包序列被设计成匹配并跟踪发射机打包序列。
在较佳的实施例中,发射机被配置成偶尔通过链路发送相位信息(有时被称为“打包相位数据”),用于表示已知检查点(例如行或帧的开始或结束)处最近发送片段的相位,以允许接收机与发射机的打包过程同相地解包所恢复的片段。例如通过允许相位改变并在消隐空白期间发送“检查点处的打包相位”,该相位信息就可能是明晰的。该方法支持任意有效的像素、空白和检查点之间总的(有效的像素加上空白)计数(例如,任意有效的像素、消隐空白和每一行视频线的总计数)。在典型的实施例中,在有效视频周期内,发送表示K比特片段的(K+X)比特代码字(其中X>0),并且明晰的相位信息是由空白间隔期间通过相同信道发送过来的其它(K+X)比特代码字来表示的。
在其它实施例中,相位信息可能是隐含的(例如,对接收机而言打包相位数据是隐含表示的,而非明晰地发送给该接收机)。例如,这可以通过将所发送的相位固定在检查点处(比如,空白的开始处)来实现。该步骤支持任意的像素和消隐空白计数,所针对的情形是总的(像素加上空白)计数可以限制为像素组大小的整倍数。对于另一个示例,通过总在诸如像素数据的开始(有效视频间隔的开始)处的检查点处使发射机打包序列重新开始,并允许空白期间所发送的链路码元的数目随着行的不同而稍有变化,使得链路码元与像素加空白字符的比精确地等于(N/K),这样,相位信息便可以是隐含的了。该步骤支持任意的总的像素和空白计数。
在典型的实施例中,发射机可用至少两个不同的打包模式(有时被称为色彩深度模式)中的任何一个模式操作,在每一种模式中参数N具有不同的值,对于编码系统而言参数K是常数(对于TMDS编码而言,K=8),发射机被配置成(通过串行链路)发送编码后的片段、打包相位数据以及用于表示该发射机目前运行所处的色彩深度模式的数据(有时称为“色彩模式数据”)。在一些这样的实施例中,发射机可用一8比特模式操作,以便用频率为P的链路时钟通过串行链路向接收机发送视频数据的8比特字(被编码成Q比特代码字)。该发射机也可用根据本发明的至少一个其它模式操作,以便将视频数据(通常按频率为P的像素时钟取入该发射机中)的N比特字(其中N≠8)打包成8比特片段、将该片段编码成Q比特代码字(各代码字具有8比特净荷)、并用频率为(N/8)P的链路时钟将该代码字发送给接收机。该接收机对接收到的代码字进行解码以恢复出8比特片段,解包该片段以恢复出原始的N比特视频数据字序列,并从色彩模式数据和链路时钟中恢复出原始的像素时钟(具有频率P)。接收机必须使用与发射机用于打包的序列相同的序列来解包,并且打包和解包序列必须完全同步。
对于如何通过用来传输编码后的K比特字的串行链路来传输N比特视频数据字(其中N≠K)这一问题,与其它可能的解决方案相比,本发明的方法没有浪费任何带宽,并能够处理并不是打包组大小整倍数的像素计数和空白计数。
本发明的其它方面便是包括串行链路、接收机以及本发明发射机的任何一个实施例的系统。本发明的其它方面是用在这种系统之中的接收机以及由本发明的发射机、系统或接收机的任何实施例所执行的方法。在较佳的实施例中,所发送的视频数据片段(每一个都表示8比特视频字)被编码,然后,表示编码后的片段的代码字被发送。
在一类实施例中,串行链路是TMDS链路。原始的TMDS链路规范通过将三个8比特色彩成分(红、绿、蓝)分配到三个差分数据信道(导线对,有时被称为“通路”)而提供24比特RGB像素的传输。每一个8比特成分被编码成10比特代码字,各色彩成分的10比特代码字通过多条通路中特定的一条以串行的方式发送,并且从其它通路中单独地解码成8比特,并且在解码之后每一组三个解码后的成分被重新组合成一个像素。在串行链路是TMDS链路的一些实施例中,可用频率为P的链路时钟将视频成分数据的8比特字作为10比特TMDS代码字通过TMDS链路的差分导线对来传输的每一条发射机通路,根据本发明也可用来(在至少一个其它模式中)使用频率为(N/8)P的链路时钟将视频数据N比特字的M*8/N子组(其中N≠8)作为10比特TMDS代码字的M片段组(每一个代码字具有8比特净荷)来发送。N比特字(通常其每一个就是红、绿或蓝色彩成分)分解为若干小片(每一小片的大小不大于8比特),并且这些小片接着被打包为8比特片段以便编码成TMDS代码字(码元)。
对于给定的色彩深度参数N,根据本发明的较佳实施例,用重复循环将N比特视频字打包成8比特片段(其效率为100%)。例如,如果N=10,则RGB视频数据的四个连续像素的10比特红色成分被打包成“五个片段”的组(每一个片段包括8比特,所以每个片段8比特×每组5个片段=每组40比特),足够用来传送四个像素的10比特红色成分。相似的过程也应用于像素的绿色和蓝色成分。对于另一个示例,如果N=12,则RGB视频数据的两个连续像素的12比特红色成分被打包成“三个片段”的组(每一个片段包括8比特,所以每个片段8比特×每组3个片段=每组24比特),足够用来传送两个像素的12比特红色成分。这种打包并不浪费任何带宽。
尽管一些实施例对D比特像素的三个N比特成分单独打包,但是本发明也同样适用于在打包之前并不将数据字或像素分成若干成分的实施例。本发明也并不限于使用特定通路计数的链路。通常,本发明支持用每个片段K个比特的M个片段的组通过L条通路发送D比特字,其中各片段组包含M*L*K比特,用于每组传送W=M*L*K/D个字,其中M、L、K、W和D全部是整数。
在较佳的实施例中,本发明的发射机所实现的打包状态机器序列被仔细设计成它们可以在任何边界处(不仅仅在打包组边界处)能够从打包像素片段切换到传递未打包的空白字符,然后可反向切换。这是很有用的,因为一些通用标准的电视定时都具有并不是4个像素整倍数(用于10比特成分的打包组大小)的像素或空白计数。
在本发明的各种实施例中,以多种方式中的任一种通过串行链路来传输打包相位数据和色彩模式数据(如上所述)。例如,在空白间隔期间,本发明发射机的DVI适应性实施例可以通过TMDS链路的三个数据信道中的每一个信道来发送表示两个控制比特的TMDS代码字(每一个链路时钟循环总共有6个控制比特),可以使用这些比特中的两个作为水平和垂直同步比特,还可以使用其它四个比特(CTL0、CLT1、CTL2、CTL3)中的部分或全部作为打包相位数据以及可任选地作为色彩模式数据。对于另一个实施例,在被称为数据岛的空白间隔部分中,本发明发射机的HDMI适应性实施例可以通过TMDS链路的数据信道来传输包括编码后的辅助数据(例如,编码后的音频数据)和控制比特在内的分组。根据本发明,一些这样的分组可以包括打包相位数据和/或色彩模式数据。
再次参照其中串行链路是TMDS链路,且发射机和接收机是DVI适应性的一类本发明实施例,通过使用频率为P的像素时钟,3N比特输入视频字(像素)通常被取入发射机中(或者,它们可以在由像素时钟来同步的子系统中的发射机中产生)。响应于每一个3N比特像素,产生了三条TMDS代码字流。通常,TMDS代码字流中的一条表示红色成分数据,另一条表示绿色成分数据,最后一条表示蓝色成分数据。通过使用频率为(N/8)P的链路时钟,各TMDS代码字流都通过TMDS链路的不同信道(信道0、信道1、或信道2)来传输。
在较佳的实施例中,实施本发明的发射机可用8比特模式操作,以便执行视频数据的常规TMDS编码(以响应于24比特视频数据的每一个8比特成分产生10比特TMDS代码字)并通过串行链路(例如,DVI或HDMI链路)来发送编码后的数据,并且还可用至少一个N比特模式(其中N≠8)操作,以便响应于3N比特视频数据的每一个N比特成分产生10比特TMDS代码字,并通过串行链路发送编码后的数据。
在一些这样的实施例中,8比特模式中的发射机以速率P来接收或产生24比特视频数据像素(每一个像素包括8比特红色成分、8比特绿色成分和8比特蓝色成分),并通过DVI或HDMI链路(或其它串行链路)以速率P来发送用于表示像素的TMDS代码字。该发射机可用下列的一种或多种模式操作:
18比特像素模式,其中它以速率P接收或产生18比特视频数据(例如,每一个像素包括6比特红色成分、6比特绿色成分和6比特蓝色成分),并通过该链路以速率(3/4)P来发送用于表示视频数据的TMDS代码字;
30比特像素模式,其中它以速率P接收或产生30比特视频数据像素(每一个像素包括10比特红色成分、10比特绿色成分和10比特蓝色成分),并通过该链路以速率(5/4)P来发送用于表示视频数据的TMDS代码字;
36比特像素模式,其中它以速率P接收或产生36比特视频数据像素(每一个像素包括12比特红色成分、12比特绿色成分和12比特蓝色成分),并通过该链路以速率(3/2)P来发送用于表示视频数据的TMDS代码字;
以及48比特像素模式,其中它以速率P接收或产生48比特视频数据像素(每一个像素包括16比特红色成分、16比特绿色成分和16比特蓝色成分),并通过该链路以速率2P来发送用于表示视频数据的TMDS代码字。
在一些实施例中,可用M比特像素模式(其中M≠8,且M=L*P,L和P都是整数)操作的发射机也可任选地用于P比特像素模式,其中它接收或产生P比特视频数据,按照与M比特像素模式中单独的M比特成分被打包和编码相同的方式来打包并编码L个连续的P比特视频字的集合(例如,L个连续的P比特色彩成分),并通过串行链路来发送表示视频数据的代码字(例如,TMDS代码字)。
在较佳的实施例中,实施本发明的接收机被配置成接收来自串行链路(例如,DVI或HDMI链路)的常规TMDS编码后的视频数据,并对接收到的TMDS代码字进行解码以产生24比特视频数据(例如,24比特像素,每一个都包括8比特红色成分、8比特绿色成分和8比特蓝色成分)。根据本发明,该接收机可用下列一种或多种模式操作:
18比特像素模式,其中它以速率(3/4)P接收来自串行链路的TMDS编码后的视频数据,对接收到的TMDS代码字进行解码,并对解码后的比特进行解包从而以速率P产生18比特视频数据(其中的每一个像素都包括6比特红色成分、6比特绿色成分和6比特蓝色成分);
30比特像素模式,其中它以速率(5/4)P接收来自串行链路的TMDS编码后的视频数据,对接收到的TMDS代码字进行解码,并对解码后的比特进行解包从而以速率P产生30比特视频数据(其中的每一个像素都包括10比特红色成分、10比特绿色成分和10比特蓝色成分);
36比特像素模式,其中它以速率(3/2)P接收来自串行链路的TMDS编码后的视频数据,对接收到的TMDS代码字进行解码,并对解码后的比特进行解包从而以速率P产生36比特视频数据(其中的每一个像素都包括12比特红色成分、12比特绿色成分和12比特蓝色成分);
以及48比特像素模式,其中它以速率2P接收来自串行链路的TMDS编码后的视频数据,对接收到的TMDS代码字进行解码,并对解码后的比特进行解包从而以速率P产生48比特视频数据(其中的每一个像素都包括16比特红色成分、16比特绿色成分和16比特蓝色成分)。
本发明发射机的典型实施例可用常规的8比特模式操作,其中源像素是按源像素时钟速率来接收或产生的,并且链路时钟速率匹配于源像素时钟速率。在这些实施例中,该发射机也可用至少一个N比特模式(其中N≠8)操作的其中链路时钟速率超过源像素时钟速率。通常,这种发射机接收(来自某一源的)源视频数据和像素时钟,并使该像素时钟乘以某一合适的因子以产生链路时钟。或者,该发射机可以接受(或产生)一链路速率时钟,并通过使该链路速率时钟除以一个合适的因子来获得像素速率时钟(供像素源和发射机使用)。本发明接收机的典型实施例接收链路时钟(并按该链路时钟速率接收编码后的视频数据),分割该链路时钟以恢复出像素时钟,通过对编码后的视频数据进行解码及解包来恢复出源像素数据,并且按该像素时钟速率输出恢复后的源像素数据。

附图说明

图1是包括数字显示接口(DVI)链路的常规系统的方框图。
图2是用于实施本发明的一个系统的方框图。
图3是本发明发射机的典型实施例的8比特模式操作过程的状态图。
图4是本发明发射机的典型实施例的10比特模式操作过程的状态图。
图5是本发明发射机的典型实施例的12比特模式操作过程的状态图。
图6是本发明发射机的典型实施例的16比特模式操作过程的状态图。
图7是本发明发射机的一较佳实施例的方框图。
图7A是图7的像素打包缓冲器和多路复用电路104的一种实现的方框图。
图8是本发明发射机的可选实施例的方框图。
图9是本发明接收机的一较佳实施例的方框图。
图9A是图9的像素解包缓冲器和多路复用电路136的一种实现的方框图。
图10是用在图9接收机的时钟分配器中的某一电路的方框图。
图11是由图10电路所接收并产生的信号的定时图。
图12是用在图9接收机的时钟分配器中的另一种电路的方框图。
图13是由图12电路所接收并产生的信号的定时图。
图14是本发明发射机的一实施例的10比特模式操作过程的状态图,该发射机在隐含打包相位的每一行的开始处使打包相位重新开始。
图15是与图14的发射机相对应的本发明接收机的一实施例的10比特模式操作过程的状态图。

具体实施方式

在一类实施例中,本发明是一种系统,该系统包括本发明接收机的任何实施例、本发明发射机的任何实施例、以及发射机和接收机之间的串行链路。图2是这种系统的一个示例的方框图。图2系统包括视频源201(它可以是个人计算机或机顶盒)、监视器202、以及在(源201的)发射机203与(监视器202的)监视器控制器205之间的串行链路。监视器202包括显示子系统207(包括如图所示那样连接的面板定时控制器208、列驱动器209和玻璃板显示器210)以及监视器控制器205。控制器205和208都是收发器。源201的发射机203可以是图形控制器或视频处理器。
发射机203和控制器205之间的串行链路具有三条信道:信道V1,用于向监控器205发送表示视频数据的V比特成分(例如,视频数据的V比特“红色”成分)的编码流的比特;信道V2,用于发送表示视频数据的V比特成分(例如,视频数据的V比特“绿色”成分)的另一个编码流的比特;以及信道V3,用于发送表示视频数据的V比特成分(例如,视频数据的V比特“蓝色”成分)的另一个编码流的比特。
在控制器205和控制器208之间也有另一个串行链路(“内部接口”),该串行链路具有三条信道:信道W1,用于向控制器208发送表示视频数据的I比特成分(例如,视频数据的I比特“红色”成分)的编码流的比特;信道W2,用于发送表示视频数据的I比特成分(例如,视频数据的I比特“绿色”成分)的另一编码流的比特;以及信道W3,用于发送表示视频数据的I比特成分(例如,视频数据的I比特“蓝色”成分)的另一编码流的比特。
发射机203和控制器205之间的串行链路可以是任何合适的串行链路(例如,DVI链路,HDMI链路,或另一种类TMDS链路,它们可能具有也可能不具有三条通路)。控制器205和控制器208之间的串行链路也可以是任何合适的串行链路(例如,TMDS链路或另一种类TMDS链路,并不限于具有三条通路的那种链路)。
控制器208和列驱动器209之间的显示接口能够发送:第一类型视频数据的D比特成分(例如,视频数据的D比特“红色”成分);第二类型视频数据的D比特成分(例如,视频数据的D比特“绿色”成分);以及第三类型视频数据D的比特成分(例如,视频数据的D比特“蓝色”成分)。
色彩深度参数V、I和D可以具有任何值,但最好I≥(V+2),从而允许精确的(以及通用的)伽马和色彩校正。用于显示界面的色彩深度参数D通常是由显示成本点和技术类型所设定的。对于高品质应用而言,D最好满足D≥(V+2)。至少对于某些高品质应用而言,D最好等于10或12。
在典型的实现方式中,通过各信道V1、V2、V3、W1、W2和W3传输的每一个代码字都表示8比特视频数据成分。在色彩深度参数V等于8的工作模式中,发射机203和控制器205可以按常规方式工作,并且它们之间的链路可以是常规的链路。相似的是,在色彩深度参数I等于8的工作模式中,控制器205和208可以按常规方式工作,并且它们之间的链路可以是常规的链路。
然而,在色彩深度参数V>8(例如,V=10或V=12)并且发射机203和控制器205之间的链路是常规链路(并且通过各信道V1、V2和V3传输的每一个代码字表示8比特成分)的工作模式中,发射机203和控制器205根据本发明来工作。具体来讲,发射机203根据本发明用N比特模式(其中N=V)工作,以便将三个视频数据V比特字序列(例如,每个V比特红、绿或蓝成分一个序列)打包成三个8比特片段流,编码该8比特片段,并通过信道V1、V2和V3中不同的一条信道来向控制器205发送每一个编码后的片段流。控制器205根据本发明工作,以便解码每一个接收到的(编码后的)片段,并将每一个解码后的8比特片段流解包成V比特字序列(如果没有差错出现的话)。
相似的是,在色彩深度参数I>8(例如,I=10或I=12)并且控制器205和208之间的链路是常规链路(并且通过各信道W1、W2和W3传输的每一个代码字表示8比特成分)的工作模式中,控制器205和208根据本发明来工作。具体来讲,控制器205根据本发明用N比特模式(其中N=I)作为发射机工作,以便将三个(从源201中接收到的视频数据的)I比特字序列打包成三个8比特片段流,编码该8比特片段,并通过信道W1、W2和W3中不同的一条信道来向控制器208发送每一个编码后的片段流。控制器208根据本发明工作,以便解码每一个接收到的(编码后的)片段,并将每一个解码后的8比特片段流解包成I比特字序列(如果没有差错出现的话)。
在一类实施例中,本发明是一种发射机,该发射机被配置成将视频数据的N比特字序列(N≠8)打包成8比特片段序列,编码该8比特片段,并通过串行链路向接收机发送编码后的片段,其中该串行链路被配置成发送编码后的8比特视频数据字。在较佳的实施例中,色彩深度参数N是10、12或16。根据本发明,所发送的数据表示M个片段的组的序列(每一个组包括M个片段),并且每一个组中第j个片段(其中1≤j≤M)具有该组内的相位。较佳地,该发射机被配置成(通过该链路)发送用于表示最近被发送的片段的相位的打包相位数据,以允许接收机解码该编码后的数据(由此恢复出这些片段),并与发射机打包过程同相地解包这些恢复出的片段。
在典型的实施例中(例如,图7和8中的那些实施例),发射机可用至少两个不同的色彩深度模式中的任一模式工作,色彩深度参数N在每一种模式中具有不同的值,并且发射机被配置成(通过串行链路)发送编码后的片段、打包相位数据和“色彩模式”数据,该“色彩模式”数据表示该发射机目前工作所用的色彩深度模式。在一些这样的实施例中,发射机也可以8比特模式使用频率为P的链路时钟通过串行链路向接收机发送视频数据的8比特字(被编码成Q比特代码字),该发射机也可以根据本发明的至少一个其它模式将视频数据的N(N>8)比特字(通常用频率为P的像素时钟将其取入发射机中)打包成8比特片段,将这些片段编码成Q比特代码字(每一个代码字都具有8比特净荷),并用频率为(N/8)P的链路时钟将这些代码字发送到接收机。根据本发明,接收机对接收到的代码字进行解码以恢复8比特片段,解包这些片段以恢复N比特视频数据字的原始序列,并从色彩模式数据和链路时钟中恢复原始的像素时钟(其频率为P)。接收机必须使用与发射机用于打包的相同序列来解包,并且打包和解包序列必须完全同步。
在一类实施例中,串行链路是TMDS链路。在一些这种实施例中(例如,图7和8中的那些实施例),发射机可以用频率为P的链路时钟通过TMDS链路将视频数据的8比特字作为10比特TMDS代码字来发送,该发射机也可以根据本发明的至少一个其它模式用频率为(N/8)P的链路时钟将视频数据的N(N>8)比特字作为10比特TMDS代码字(每一个代码字都具有8比特净荷)来发送。N比特字(其中的每一个通常是红色、绿色或蓝色成分)分解成多个小片(每一个小片的大小不超过8比特),然后,这些小片被打包成8比特片段,以便编码成TMDS代码字。
在较佳的实施例中(例如,要参照图3-6描述的那些实施例),本发明的发射机所实现的打包状态机器序列被仔细设计成它们可以在任何边界处(不仅在打包组边界处)能够从打包像素片段切换到传递未打包的空白字符并且反向切换。这是很有用的,因为一些标准电视定时都具有并不是4个像素整倍数(用于10比特成分的打包组大小)的像素或空白计数。
通过串行链路以本发明各种实施例中多种方式中的任一方式来发送打包相位数据和色彩模式数据(如上所述)。例如,在空白间隔期间,图7发射机100的DVI适应性实现方式通过TMDS链路的三条数据信道中的每一条信道来传输用于表示两个控制比特的TMDS代码字(每一个链路时钟周期总共有6个控制比特),并且可以传送这些比特中的两个作为水平和垂直同步比特,还可以传送其它四个比特(CTL0、CLT1、CTL2、CTL3)中的两个作为打包相位数据和色彩模式数据,如下所述。对于另一个示例,在被称为数据岛的空白间隔部分中,本发明发射机的HDMI适应性实施例可以通过TMDS链路的数据信道来传输包括编码后的辅助数据(例如,音频数据)、其它数据和控制比特在内的分组。根据本发明,一些这样的分组可以包括打包相位数据和/或色彩模式数据。
在本发明系统的许多实施例中,其中串行链路是TMDS链路且发射机和接收机是DVI适应性的,通过使用频率为P的像素时钟,3N比特输入像素被取入发射机中(或者,可以在由像素时钟来计时的子系统的发射机中产生出这些像素)。响应于每一个3N比特像素,产生了三条TMDS代码字流。通常,TMDS代码字流中的一条表示红色成分数据,另一条表示绿色成分数据,最后一条表示蓝色成分数据。通过使用频率为(N/8)P的链路时钟,各TMDS代码字流都是通过TMDS链路的不同信道(信道0、信道1、或信道2)来传输的。当N≠8时,输入视频数据的N比特成分被打包成片段组(每一组有F个片段,每个片段有8个比特)。通常,与更重要的像素比特相比,总是较不重要的像素比特先被打包。然后,对每一个片段进行TMDS编码以便传输。接收机执行反相处理以对接收到的数据进行解码和解包。
对于给定的色彩深度参数N,本发明发射机的较佳实施例(例如,图7的发射机100的较佳实现方式)用重复循环将N比特视频字打包成8比特片段(其效率为100%)。例如,如果N=10,则RGB视频数据的每四个连续色彩成分(每一种成分是10比特红色成分、10比特绿色成分或10比特蓝色成分)被打包成“五个片段”的组(每一个片段包括8比特,所以每个片段8比特×每组5个片段=每组40比特)。对于另一个示例,如果N=12,则RGB视频数据的每两个连续的色彩成分(每一种成分是12比特红色成分、12比特绿色成分或12比特蓝色成分)被打包成“三个片段”的组(每一个片段包括8比特,所以每个片段8比特×每组3个片段=每组24比特)。这种打包并不浪费任何带宽。
本发明发射机的一类实施例将视频数据打包成8比特片段的组以便TMDS编码并通过常规的TMDS链路来传输,下面我们将更为详细地描述其方式。
当在此类发射机的8比特模式工作期间DE=1(在有效视频间隔期间)时,每一个被发送的TMDS代码字在每一个链路时钟周期内传输8比特的视频数据。当在本发明发射机的典型实施例的N比特模式工作期间(N>8)DE=1时,N比特视频字被打包成比特组(各组包括G个视频字),并且各组被分成F个数据片段(每一个片段都包括8个比特)。这些片段可以输入到常规的TMDS编码器/串行化装置电路(例如,图7的编码器/串行化装置电路108),并且10比特TMDS代码字响应于用具有适当频率的链路时钟通过串行链路而传输的片段,从该TMDS编码器/串行化装置电路中输出。色彩深度参数“N”的值(有时称为“色彩深度”)以及参数G和F在N比特模式工作期间就像表格1所示地相关:
表格1
    色彩深度     G字/组     F片段/组
    8    10    12    16     1    4    2    1     1    5    3    2
在典型的实施例中,本发明的发射机发送链路时钟和编码后的片段,还发送特定控制代码(包括打包相位数据,用于表示最近所发送的片段的相位;并且作为可任选的,还包括色彩模式数据,用于表示发射机的当前色彩深度模式)。通常,本发明的接收机包括标准TMDS解串行化装置/解码器电路,并被配置成用于恢复通过TMDS链路发送的特定控制代码、链路时钟和8比特片段。基于当前的色彩深度和组相位,该接收机将8比特片段累积成组,然后解包以恢复出原始的深色(N比特)视频字。
对于本发明较佳实施例的每一种色彩深度模式,表格2、3、4和5中合适的一个可指定组的大小和顺序,发射机就按该顺序将8比特片段呈现给标准TMDS编码器的三个数据信道中的每一个。接收机执行相反的过程。表格2-5中的每一个的左列标识组的片段,而其它的列标识每一个片段的8个比特。每一行(“mPn”)表示色彩深度为m的每一个“F个片段”组的第n个片段(0≤n≤(F-1))(注意,色彩深度“m”是用于上述色彩深度参数“N”的替换标记)。表格2-5的各行是按发送的顺序来排列的,这样,首行表示要发送的组的第一个片段,而底端行表示要发送的组的最后一个片段。各表格中的每一个条目“Xy”表示要提供给编码器的视频字X的比特y。比特0是最不重要的比特。“m-比特”视频字被(按需)标为A、B、C、D,以识别每一个组中的“G”成员(例如,色彩深度m=10的组具有四个成员A、B、C和D)。字A是每一个组中首先发送的字。
表格2(8比特模式)
(G=1;F=1)
  片段   比特0   比特1   比特2   比特3   比特4   比特5   比特6   比特7   8P0   A0   A1   A2   A3   A4   A5   A6   A7
表格3(10-比特模式)
(G=4;F=5)
 片段  比特0  比特1  比特2  比特3  比特4  比特5  比特6  比特7  10P0 10P1 10P2 10P3 10P4  A0 A8 B6 C4 D2  A1 A9 B7 C5 D3  A2 B0 B8 C6 D4  A3 B1 B9 C7 D5  A4 B2 C0 C8 D6  A5 B3 C1 C9 D7  A6 B4 C2 D0 D8  A7 B5 C3 D1 D9
表格4(12-比特模式)
(G=2;F=3)
  片段 比特 0比特  1比特  2比特 3比特  4比特  5比特 6比特7   12P0  12P1  12P2 A0A8B4 A1A9B5  A2 A10 B6  A3 A11 B7 A4B0B8  A5 B1 B9  A6 B2 B10 A7B3B11
表格5(16-比特模式)
(G=1;F=2)
 片段  比特0  比特1  比特2  比特3  比特4  比特5  比特6  比特7  16P0 16P1  A0 A8  A1 A9  A2 A10  A3 A11  A4 A12  A5 A13  A6 A14  A7 A15
在空白间隔期间(当像素不被打包和发送时),本发明的发射机可以偶尔发送包含打包相位数据(表示最近发送的片段的相位)的短消息,以便使接收机能使其未打包的序列与发射机的打包序列对齐。在空白间隔期间,本发明的发射机也可以使用相同的或附加的消息来发送色彩深度模式数据,从而保证该接收机在与发射机相同的色彩深度中工作,从而该接收机使用与发射机打包序列相对应的未打包序列。
在空白间隔期间(由DE=0来表示),常规的DVI适应性发射机发送TMDS控制代码字,而非TMDS像素数据代码字。这些TMDS控制代码通过TMDS链路的三个数据信道中的每一个信道每个链路时钟周期发送一次、并且表示两个控制比特(C0、C1),这样,每个链路时钟周期总共有6个比特的控制信息。DVI适应性发射机将这六个比特中的两个用作水平和垂直的同步信息(HS,VS),并通过一个数据信道(信道0)来发送用于表示该同步信息的代码字,并且保留其余四个比特(CTL0、CTL1、CTL2、CTL3)。本发明发射机的DVI适应性实施例必须使用标准(10比特)TMDS控制代码,从而标准DVI适应性接收机可以实现适当的组帧。
根据本发明,在类DVI实施例的N比特模式工作期间(对于任何N值,包括N=8),可以在空白期间的某些时刻使用这种比特CTL0、CTL1、CTL2和CTL3中的部分或全部(由通过TMDS链路的数据信道1和2发送的代码字表示),以对短链路控制消息(“LCM”,随后在本说明书中会更详细地进行描述)进行编码,来发送打包相位数据(用于表示最近发送的片段的相位)并可任选地发送色彩模式数据(用于表示发射机的当前色彩深度模式)。
在本发明的其它实施例中,在视频空白期间可按各种其它方式的任一种通过串行链路发送打包相位数据和/或色彩模式数据。例如,在称为数据岛的空白间隔部分中,本发明发射机的HDMI适应性实施例可以通过TMDS链路三条数据信道中的部分或全部信道来发送分组,这些分组包括编码后的辅助(例如,音频)数据、其它数据和控制比特。根据本发明,一些这样的分组可以包括打包相位数据和/或色彩模式数据。HDMI适应性发射机和接收机可以在各空白间隔的三个部分之间(在有效的视频间隔之间)做出区分:初始部分(其中可以发送数据岛前同步码),其后是称为数据岛的部分,再其后是最后部分(其中可以发送视频前同步码)。可选地,在空白间隔中有两个或多个数据岛。在各空白间隔的初始数据岛前同步码中,发送用于表示控制比特CTL3、CTL2、CTL1和CTL0的特定模式的代码字重复,并且也可任选地发送初始比特模式。在各空白间隔的视频前同步码中,发送用于表示控制比特CTL3、CTL2、CTL1和CTL0的其它特定模式的代码字重复,并且也可任选地发送初始比特模式。
在较佳实施例的描述中(它可以是但不需要是DVI适应性的),本文使用DVI的术语。根据DVI术语,DE=0表示空白周期,DE=1表示发送像素的有效视频周期。在图3到6(打包和解包状态图)中,“DE=1”用于表示要发送的下一个字符是像素,“DE=0”用于表示下一个字符是空白字符。
对于若干色彩深度的每一种,表格6-10(如下所示)指定组的大小和本发明发射机的典型实施例(它们可以是DVI适应性实施例)向TMDS链路信道0的TMDS编码器提供水平和垂直同步代码的顺序(例如,在DVI适应性实施例中,各表格每一行的C0列中的比特是HSYNC,各表格每一行的C1列中的比特是VSYNC)。就像像素一样,空白(同步)码通常以像素速率P被传送到本发明的发射机。
对于较深的色彩深度(N>8),链路时钟比源像素时钟P要快。为了传送更深的彩色数据,链路时钟被设定为(N/8)*P。对于所示情况,(N比特视频数据中已打包的K比特片段的)每组链路时钟周期的数目比每组像素时钟周期(F-1)的数目多1。
在N比特模式工作的空白间隔中,每一个链路时钟周期就可以发送一个用于表示一对新同步比特(一个HSYNC比特和一个VSYNC比特)的空白代码(这与较深的彩色像素不同,那要求每组有一额外的链路时钟)。尽管如此,为了保持像素时钟周期与链路时钟周期的固定比率(N/8),发射机在每组F链路时钟周期内只发送(F-1)个新同步比特对。
因此,表格7、9和10表示在N比特模式工作期间的空白间隔中,当F个片段的组全部由空白字符构成时,本发明的发射机在F个连续的链路时钟周期内发送一组F个空白代码(标记为“mCn”,其中n=0到F-1),其中F-1个空白代码中的每一个都表示新的同步比特对,该组中所发送的最后一个空白代码表示与之前的代码相同的同步比特对(表格7、9和10以及图4、5和6中的状态10C4、12C2和16C1)。接收机丢弃每一个这种F链路时钟循环周期的最后一个(重复的)空白代码。结果,按它们的原始(像素时钟)速率来恢复同步比特对。
当转变到空白周期中或从中转变出来时,可能出现F个片段的组(状态n=0到F-1),它们用于传送像素片段(在表格3-5中标记为“mPn”)和空白代码(在表格7-10中标记为“mCn”或“mPCn”)的混合。在这种情况下,不管该组是否用像素片段开始或结束,额外的链路时钟周期总是用于像素打包过程。
10比特模式的混合像素/空白组的示例包括下面的序列(可以在图4中看到):
10P0,10P1*,10PC2,10PC3,10PC4(像素A;空白T,U,V),
10P0,10P1,10P2*,10PC3,10PC4(像素A,B;空白U,V),
10P0,10P1,10P2,10P3*,10PC4(像素A,B,C;空白V);
10C0,10P1*,10P2,10P3,10P4(空白S;像素B,C,D),
10C0,10C1,10P2*,10P3,10P4(空白S,T;像素C,D),
10C0,10C1,10C2,10P3*,10P4(空白S,T,U;像素D);
其中*表示该像素片段只有一部分包含有用的信息。例如,在第一序列中,片段10P1*包含像素A的其余2个比特,并且本来将用于启动像素B的6个未使用比特并没有使到空白(DE=0)的转换得以发生。
12比特模式的相似示例包括:
12P0,12P1*,12C2(一个像素,一个消隐)以及
12C0,12P1*,12P2(一个消隐,一个像素)
表格6、7、8、9和10中左边一列的每一个条目“mCn”(或“mPCn”)表示本发明发射机的状态,其中指数n介于0≤n≤(F-1)的范围中,F是每组中视频数据片段的数目,指数m表示色彩深度(注意,色彩深度“m”是上述色彩深度参数N的替换标记)。在各表格中间和右边的列中,各条目“Xy”表示要编码的同步比特对X的比特y。提供给本发明发射机的编码器的每一个同步比特对X都被编码成TMDS代码字,再由该发射机通过TMDS链路的信道CH0来发送该TMDS代码字。比特0是同步比特对X的最不重要的比特(例如,比特“S0”没有比特“S1”重要)。
表格6(8-比特模式)
(G=1;F=1)
状态 同步比特对(到编码器) C0     C1 8C0 S0     S1
表格7(10-比特模式)
(G=4;F=5)
(如果打包组以空白字符开始,则使用表格7)
  状态   同步比特对(到编码器)   C0     C1   10C0  10C1  10C2  10C3  10C4   S0  T0  U0  V0  V0     S1    T1    U1    V1    V1
表格8(10-比特模式)
(G=4;F=5)
(如果打包组以像素开始并以空白字符结束,则使用表格8)
(用于从片段10Pn转变到10C0的桥状态)
  状态   同步比特对(到编码器)   C0     C1   10PC2  10PC3  10PC4   T0  U0  V0     T1    U1    V1
表格9(12-比特模式)
(G=2;F=3)
  状态   同步比特对(到编码器)   C0     C1   12C0  12C1  12C2   S0  T0  T0     S1    T1    T1
表格10(16-比特模式)
(G=1;F=2)
    状态   同步比特对(到编码器)   C0     C1     16C0    16C1   S0  S0     S1    S1
表格8指出在10比特模式中所必需的桥状态(“mPCn”),10比特模式用于对混合组的空白部分进行编码,该混合组从(有效视频间隔期间的)视频数据片段转变为(空白间隔期间的)同步比特。当打包组大小G大于2时,要求这种桥状态保持像素时钟与链路时钟的固定比率。
通常,发射机响应于DE信号而工作,该DE信号的上升沿和下降沿与像素时钟的边沿对准,并且该发射机包括FIFO(例如,图7中的FIFO),用于缓冲要打包和编码的视频数据、要编码的控制比特(包括同步比特)、以及用于表示DE信号的比特。用像素时钟将视频、控制和DE比特取入FIFO中,用链路时钟将它们取出FIFO(例如,使得工作在链路时钟域中的打包电路可以将视频数据的比特组打包成根据本发明的片段)。
如图4(要在以下描述)所示,响应于DE信号下降沿(在链路时钟域中),可以(由在链路时钟域中工作的发射机电路)发送下面的编码后的同步比特。
当在一组的第二个片段(10P1)被提供给编码器(用于完成由一个像素和三个同步比特对构成的组中的第一个并且是仅有的一个像素)的那个链路时钟周期刚刚过去之后DE就变为0时,对第二个片段进行编码和发送,然后在一个链路时钟之后(图4和表格8中的状态10PC2),同步比特T0、T1(在始于DE下降沿的空白间隔期间)被提供给编码器,被编码并被发送。
当在一组的第三个片段(10P2)被提供给编码器(用于完成由两个像素和两个同步比特对构成的组中的第二个像素)的那个链路时钟周期刚刚过去之后DE就变为0时,对第三个片段进行编码和发送,然后在一个链路时钟之后(1 0PC3),同步比特U0、U1(在始于这种DE下降沿的空白间隔期间)被提供给编码器,被编码并被发送。
当在一组的第四个片段(10P3)被提供给编码器(用于完成由两个像素和两个同步比特对构成的组中的第二个像素)的那个链路时钟周期刚刚过去之后DE就变为0时,对第四个片段进行编码和发送,然后在一个链路时钟之后(10PC4),同步比特V0、V1(在始于这种DE下降沿的空白间隔期间)被提供给编码器,被编码并被发送。
当在一组的最后一个片段(10P4)被提供给编码器的那个链路时钟周期刚刚过去之后DE就变为0时(即,当像素到空白的转变刚巧发生在组的边界处时),对该像素组的第五个片段进行编码和发送,然后在一个链路时钟之后(10C0),同步比特S0、S1(在图7的第一行中示出)  (在始于这种DE下降沿的空白间隔期间)被提供给编码器,被编码并被发送。
参照图3-6,接下来我们描述那些进入表格6-10所示状态并将视频比特打包成表格2-5所示类型的组的本发明发射机的典型实施例的操作过程。对于每一种色彩深度模式,发射机序列始于相位0,然后通过各片段组的相位以该组大小(为每组片段的数量F)为模计算来增加。当DE=1时,发送用于表示视频数据的片段mPn的代码字。响应于DE的下降沿,发射机进入状态mCn或mPCn之一,并且(当DE=0时)通过状态mCn或mPCn中另外一个循环。例如,在10比特模式中,如果当相位n并不改变为0时DE从1变为0(当DE的下降沿没有成组对齐时),则发射机进入(表格8的)状态mPCn中的至少一个状态,并继续通过mPCn状态,直到离开10PC4并进入(表格7的)mCn状态环为止。如果DE是受限的(像它在较佳实施例中的那样)使得空白间隔的最小持续时间是四个空白字符,则在空白间隔期间所进入的状态mPCn和/或mCn的最小总数目是四个。
图3是本发明发射机的一类实施例的8比特模式操作过程的状态图,这类发射机实施例被配置成通过TMDS链路发送数据并在空白间隔中进入表格6所示的状态。在8比特操作过程中,链路时钟速率匹配像素时钟速率。在各有效视频间隔中(当DE=1时),每一个链路时钟循环发射机通过数据信道CH0、CH1和CH2中的每一个信道来发送表示8比特视频字的代码字(表格2中的字“8P0”)一次。在各空白间隔的每一个链路时钟循环期间,发射机保持状态“8C0”(其中它通过数据信道CH0发送表格6中的编码后的同步比特S0、S1)。响应于DE的下降沿,发射机的状态机将一对同步比特S0、S1(如表格6所示)输入到发射机的信道CH0编码器(可以是常规的TMDS编码器的元件),而不输入8比特的视频数据。响应于DE的各上升沿,发射机将8比特视频数据字8P0的序列(每一个链路时钟周期一个视频数据字)输入到信道CH0编码器。
实现图4(或图5或图6)的状态图的发射机通常包括FIFO,用于缓冲要打包和编码的视频数据、要编码的控制比特以及DE比特。用像素时钟将视频、控制和DE比特取入FIFO中,并用链路时钟(其速率高于像素时钟)将它们从FIFO中取出来。
对于像素组大小G超过2的打包模式(诸如图4的10比特模式),G-1桥状态(“mPCn”)有必要处理以像素开始而以消隐结束的组。一旦已经进入这些桥状态(空白的开始),该组的平衡就必须包含空白字符。这导致这样一种要求,对于G大于2的打包模式,最小空白周期(DE=0)是G-1空白字符(例如,用于10比特模式的3个最小空白字符)。通过为最后PC状态(例如,图4中的10PC4)中的DE添加一个测试并且在DE=1时分叉到第一像素状态(mP0)而在DE=0时分叉到第一空白状态(mC0),可实现这种最小化。如图所示,图4为了简便省略了用于DE的这种额外测试;在这种情况下,DE最好是受限的,使得对于不少于4个连续链路时钟周期DE可以较低(即,使得各空白间隔的最小持续时间是四个同步比特对)。对DE的这种最小限制是必需的,以保证该发射机可以按简单的方式来实现,并且也能够(在10比特模式工作期间,如图4所示)在DE的前一下降沿并未对准组边界的情况下(响应于DE的上升沿)以正确的相位恢复视频数据的传输,还保证该发射机可以按简单的方式来实现并且也能够在10比特模式工作期间以正确的相位恢复所发送的视频。
图4是本发明发射机的典型实施例的10比特模式操作过程的状态图,这类发射机被配置成通过TMDS链路发送数据、将视频比特打包成表格3所示类型的组、并在空白间隔期间进入表格7和8所示的状态。在这些实施例的10比特模式期间,链路时钟速率是像素时钟速率乘以1.25(例如,由图7的PLL 106)。通常,发射机包括FIFO并接收来自某一源的DE信号、像素时钟、视频数据和控制比特,DE信号的上升沿和下降沿与像素时钟的边沿对准,并且用像素时钟将视频数据和控制比特取入FIFO,而用链路时钟将它们从FIFO中取出。视频数据的打包和编码过程都是在链路时钟域中执行的。
发射机是用状态机来实现的,该状态机用于实现图4所示的状态图。状态机确保用于编码和发送视频数据片段和控制比特(同步比特)对的片段的发射机电路(称为发射机的编码器)如下工作。
在持续的有效视频间隔期间(当DE=1时),发射机(通过各数据信道CH0、CH1和CH2)发送表示下列视频数据片段的代码字重复序列:10P0、10P1、10P2、10P3和10P4。该序列将4个像素的组打包成5个链路时钟周期。
响应于在一组的第二个(8比特)片段被提供给编码器之后就出现在链路时钟周期内的(链路时钟域中的)DE下降沿,发射机进入下面的状态序列:第一状态,其中它通过各数据信道CH0、CH1和CH2发送用于表示视频数据片段10P1(编码后的第二片段)的代码字;然后(在下一个链路时钟周期内)为状态“10PC2”,其中发射机并不发送编码后的视频数据,而是通过数据信道CH0发送编码后的同步比特对T0、T1;然后(在下一个链路时钟周期内)为状态“10PC3”,其中发射机通过数据信道CH0发送编码后的同步比特对U0、U1;然后(在下一个链路时钟周期内)为状态“10PC4”,其中发射机通过数据信道CH0发送编码后的同步比特对V0、V1;然后(在下一个链路时钟周期内)为状态“10C0”,其中发射机通过数据信道CH0发送编码后的同步比特对S0、S1。在转变状态10PC2、10PC3、10PC4和第一空白状态实例10C0期间,DE必须保持较低,从而导致之前提到的用于图4设计的4个空白同步比特对的最小要求(注意,如果从状态10PC4到状态10P0添加一段DE=1的弧,则将会实现3个空白代码的绝对最小值)。
通常,在更多的周期内DE仍保持较低。在DE保持较低的后续链路时钟周期内,发射机进入状态“10C0”、“10C1”、“10C2”、“10C3”和“10C4”的重复序列中。在该序列的任一点处(在已经满足最小值之后),如果DE在状态10Cn之后上升,则接下来的状态将如下:
如果DE在10C0(空白代码S)之后上升,则10C0之后将是10P1(像素B的开始;注意未使用来自像素A的备用比特);
如果DE在10C1(空白代码T)之后上升,则10C1之后将是10P2(像素C的开始;注意未使用来自像素B的备用比特);
如果DE在10C2(空白代码U)之后上升,则10C2之后将是10P3(像素D的开始;注意未使用来自像素C的备用比特);
如果DE在10C3(空白代码V)之后上升,则10C3之后将是10C4(空白代码V的重复),再之后便是10P0(像素A的开始)。发射机的空白代码V的重复保持链路时钟与像素时钟的固定比率(1.25)。该接收机被实现为放弃(丢弃)空白代码V的重复,使得所恢复的数据处于像素时钟速率。
仍然参照图4,响应于在一组的第三个(8比特)片段被提供给编码器之后就出现在链路时钟周期内的(链路时钟域中的)DE下降沿,发射机进入下面的状态序列:第一状态,它通过各数据信道CH0、CH1和CH2发送用于表示视频数据片段10P2(编码后的第三片段)的代码字;然后(在下一个链路时钟周期内)为状态“10PC3”,其中发射机通过数据信道CH0发送编码后的同步比特对U0、U1;然后(在下一个链路时钟周期内)为状态“10PC4”,其中发射机通过数据信道CH0发送编码后的同步比特对V0、V1;然后(在下一个链路时钟周期内)为状态“10C0”,其中发射机通过数据信道CH0发送编码后的同步比特对S0、S1。对于图4的设计,在转变状态10PC3、10PC4和第一空白状态实例10C0期间,DE必须保持较低。
如上所述,对于更多的周期DE通常仍然保持较低,并且发射机进入状态“10C0”、“10C1”、“10C2”、“10C3”和“10C4”的重复序列中,并在DE变高时才结束。
相似的是(仍然参照图4),响应于在一组的第四个(8比特)片段被提供给编码器之后就出现在链路时钟周期内的(链路时钟域中的)DE下降沿,发射机进入下面的状态序列:第一状态,它通过各数据信道CH0、CH1和CH2发送用于表示视频数据片段10P3(编码后的第四片段)的代码字;然后(在下一个链路时钟周期内)为状态“10PC4”,其中发射机通过数据信道CH0发送编码后的同步比特对V0、V1;然后(在下一个链路时钟周期内)为状态“10C0”,其中发射机通过数据信道CH0发送编码后的同步比特对S0、S1。对于图4的设计,在转变状态10PC4和第一空白状态实例10C0期间,DE必须保持较低。同样,如上所述,发射机进入状态“10C0”、“10C1”、“10C2”、“10C3”和“10C4”的重复序列中,并在DE变高时才结束。
相似的是(仍然参照图4),响应于在一组的第五个(8比特)片段被提供给编码器之后就出现在链路时钟周期内的(链路时钟域中的)DE下降沿,发射机进入下面的状态序列:第一状态,它通过各数据信道CH0、CH1和CH2发送用于表示视频数据片段10P4(编码后的第五片段)的代码字;然后(在下一个链路时钟周期内)为状态“10C0”,其中发射机通过数据信道CH0发送编码后的同步比特对S0、S1。同样,如上所述,发射机进入状态“10C0”、“10C1”、“10C2”、“10C3”和“10C4”的重复序列中,并在DE变高时才结束。
图4的状态图定义了五种状态10x0到10x4(其中“x”可以是P或C或PC)的组序列。注意,对于五种状态序列中的每一种,其前进顺序总是10x0、10x1、10x2、10x3、10x4,其中后缀0到4表示组“相位”。下面的组是可能的:
·10P0,10P1,10P2,10P3,10P4(四个像素),
·10P0,10P1,10P2,10P3,10PC4(三个像素;一个空白代码),
·10P0,10P1,10P2,10PC3,10PC4(两个像素;两个空白),
·10P0,10P1,10PC2,10PC3,10PC4(一个像素;三个空白),
·10C0,10C1,10C2,10C3,10C4(四个消隐和一次重复),
·10C0,10C1,10C2,10P3,10P4(三个空白和一个像素),
·10C0,10C1,10P2,10P3,10P4(两个空白和两个像素),以
·10C0,10P1,10P2,10P3,10P4(一个空白和三个像素)。
作为每行具有5个像素和4个空白代码的视频格式的人工简化示例,以下是所进入的示例性状态组序列(以及输入到编码器的视频数据和同步比特对)(使用了以逗号分开多个片段这种记法;A表示来自视频数据组的第一个片段的两个视频比特;B表示来自视频数据组的第二个片段的两个视频比特;C表示来自视频数据组的第三个片段的两个视频比特;D表示来自视频数据组的第四个片段的两个视频比特;并且S、T、U和V是同步比特对):
第一组(它传送来自第一行的四个像素):AAAA,ABBB,BBCC,CCCD,DDDD(即,状态10P0,10P1,10P2,10P3,10P4);
第二组(它传送来自第一行的最后一个像素和前三个空白字符):AAAA,A---,T,U,V(即,状态10P0,10P1,10PC2,10PC3,10PC4);
第三组(它传送来自第一行的最后一个空白字符和来自第二行的前三个像素):S,-BBB,BBCC,CCCD,DDDD(即,状态10C0,10P1,10P2,10P3,和10P4);
第四组(它传送来自第二行的最后两个像素和前两个空白字符):AAAA,ABBB,BB--,U,V(即,状态10P0,10P1,10P2,10PC3,10PC4);
第五组(它传送来自第二行的最后两个空白字符和来自第三行的前两个像素):S,T,--CC,CCCD,DDDD(即,状态10C0,10C1,10P2,10P3,10P4);
第六组(它传送来自第三行的最后三个像素和第一个空白字符):AAAA,ABBB,BBCC,CCC-,V(即,状态10P0,10P1,10P2,10P3,10PC4);
第七组(它传送来自第三行的最后三个空白字符和第四行的第一个像素):S,T,U,---D,DDDD(即,状态10C0,10C1,10C2,10P3,10P4);
第八组(它传送第四行的最后四个像素):AAAA,ABBB,BBCC,CCCD,DDDD(即,状态10P0,10P1,10P2,10P3,10P4);以及
第九组(它传送第四行的最后四个空白字符,连同最后一个空白字符的重复以保持链路时钟与像素时钟的比率固定在1.25):S,T,U,V,(V)(即,状态10C0,10C1,10C2,10C3,10C4)。
注意,这九个组的序列将每四行重复一次(第九组之后是另一次第一组)。在5个链路时钟周期内,各组传送总共4个像素时钟周期的数据(像素或空白字符)。九个组可以传送36个数据字符,这足够用于四行9个数据字符(5个像素和4个空白字符)。还要注意,通常,行结束或开始于组的中间,除了模式重复的点以外。如果每行的总计数(像素加空白字符)是X,则当X模4等于1或3时该模式每4行就重复一次,当X模4等于2时就每2行重复一次,或者当X模4等于0时每行重复一次,其中4是对于10比特色彩模式像素时钟周期的组大小(这种情况下T=5+4=9,所以该模式每四行重复一次。)
图5是本发明发射机的典型实施例的12比特模式操作过程的状态图,这些实施例将视频比特打包成表格4所示类型的组,并在空白间隔期间进入表格9所示的状态。在这些实施例的12比特模式中,链路时钟速率超过像素时钟速率(链路时钟速率是像素时钟速率乘以1.5)。通常,发射机包括FIFO并接收来自某一源的DE信号、像素时钟、视频数据和控制比特,DE信号的上升沿和下降沿与像素时钟的边沿对准,并且用像素时钟将视频数据和控制比特取入FIFO,用链路时钟将它们从FIFO取出。视频数据的打包和编码是在链路时钟域中执行的。
发射机是用一状态机来实现的,该状态机用于实现图5的状态图。该状态机保证编码和发送视频数据片段和控制比特(例如,同步比特)对的发射机电路(被称为发射机的编码器)如下工作。
在有效视频间隔期间(当DE=1时),发射机(通过各数据信道CH0、CH1和CH2)发送表示下列视频数据片段的代码字重复序列:12P0、12P1和12P3。该序列将2个像素的组打包成3个链路时钟周期。
响应于在一组的第二个(8比特)片段被提供给编码器之后就出现在链路时钟周期内的(链路时钟域中的)DE下降沿,发射机进入下面的状态序列:第一状态,其中它通过各数据信道CH0、CH1和CH2发送用于表示视频数据片段12P1(编码后的第二片段)的代码字;然后(在下一个链路时钟周期内)为状态“12C2”,其中发射机并不发送编码后的视频数据,而是通过数据信道CH0发送编码后的同步比特对T0、T1;然后(在下一个链路时钟周期内)为状态“12C0”,其中发射机通过数据信道CH0发送编码后的同步比特对S0、S1。在DE仍保持较低的后续链路时钟周期内,发射机进入状态“12C0”“12C1”和“12C2”的重复序列。在该序列的任一点处(在最小值已经得到满足之后),如果DE在状态12Cn之后上升,则下一个状态将是如下:
·如果DE在状态12C0(空白代码S)之后上升,则12C0之后将是12P1(像素B的开始;注意,未使用像素A的备用比特);并且
·如果DE在状态12C1(空白代码T)之后上升,则12C1之后将是12C2(空白代码T的重复),再之后是12P0(像素A的开始)。发射机的空白代码T的重复使链路时钟周期与像素时钟周期保持固定的比率(1.5)。该接收机被实现为放弃(丢弃)空白代码T的重复,使得所恢复的数据处于像素时钟速率。
相似的是,响应于在一组的第三个片段被提供给编码器之后就出现在链路时钟周期内的(链路时钟域中的)DE下降沿,发射机进入下面的状态序列:第一状态,它通过各数据信道CH0、CH1和CH2发送用于表示视频数据片段12P2(编码后的第三片段)的代码字;然后(在下一个链路时钟周期内)为状态“12C0”,其中发射机并不发送编码后的视频数据而是发送编码后的同步比特对S0、S1。在DE仍保持较低的后续链路时钟周期内,发射机进入状态“12C0”、“12C1”和“12C2”的重复序列中,并在DE变高时才结束。
图5的状态图定义了三种状态12x0到12x2(其中“x”可以是P或C)的组序列。注意,对于三种状态序列中的每一种,前进顺序总是12x0、12x1、12x2,其中后缀0到2表示该组的“相位”。下面的组是可能的:
·12P0,12P1,12P2(两个像素),
·12P0,12P1,12C2(一个像素;一个空白字符),
·12C0,12C1,12C2(两个空白和一次重复),以及
·12C0,12P1,10P2  (一个空白和一个像素)。
作为每行具有5个像素和2个空白代码的视频格式人工简化示例,以下是所进入的示例性状态组序列(以及被输入到编码器的视频数据和同步比特对)(使用了以逗号分开多个片段这种记法;A表示来自视频数据组的第一个片段的四个视频比特;B表示来自视频数据组的第二个片段的四个视频比特;并且S和T是同步比特对):
第一组(它传送来自第一行的前两个像素):AA,AB,BB(状态12P0,12P1,12P2);
第二组(它传送来自第一行的接下来两个像素):AA,AB,BB(12P0,12P1,12P2);
第三组(它传送来自第一行的最后一个像素和第一个空白字符):AA,A-,T(状态12P0,12P1和12C2);
第四组(它传送来自第一行的最后一个空白字符和来自第二行的第一个像素):S,-B,BB(状态12C0,12P1和12P2);
第五组(它传送来自第二行的接下来两个像素):AA,AB,BB(状态12P0,12P1,12P2);
第六组(它传送来自第二行的最后两个像素):AA,AB,BB(状态12P0,12P1,12P2);以及
第七组(它传送来自第二行的两个空白字符以及最后一个空白字符的重复,以保持链路时钟周期与像素时钟周期的固定比率1.5):S,T,(T)(状态12C0,12C1,12C2)。
注意到,这种七组序列将每两行重复一次(第七组之后是另一次第一组)。各组在3个链路时钟周期内传送总共2个像素时钟周期的数据(像素或空白字符)。七个组可以传送14个数据字符,这足够用于2行7个数据(5个像素和2个空白字符)。还要注意,通常,行结束或开始于组的中间,除了模式重复的点以外。如果每行的总计数(像素加空白字符)是X,则当X模2等于1时该模式就每2行重复一次,或者当X模2等于0时就每行重复一次,其中2是对于12比特色彩模式像素时钟中的组的大小。(在这种情况下T=5+2=7,所以该模式每2行重复一次。)
图6是本发明发射机的典型实施例的16比特模式操作过程的状态图,这些实施例将视频比特打包成表格5所示类型的组,并在空白间隔中进入表格10所示的状态。图6假定链路时钟速率是像素时钟速率的两倍,并且DE只能按像素时钟速率来变化。如图6所示,在各有效视频间隔期间(当DE=1时),发射机发送表示16比特视频字中的8个比特的代码字(表格5中的代码字“16P0”),其后是表示该视频字的另外8个比特的代码字(表格5中的代码字“16P1”),然后在连续的链路时钟周期内重复该操作过程以发送表示下一个视频字的代码字。在每一个空白间隔中(当DE=0时),发射机进入状态“16C0”(其中发送编码后的同步比特对S0、S1),然后进入状态“16C1”(其中再次发送相同的编码后的同步比特对S0、S1),然后在连续的链路时钟周期内重复该操作过程。响应于DE的下降沿,发射机进入状态16C0并将一对同步比特S0、S1(如表格10所示)而非8比特的视频数据输入到信道CH0编码器(在一些实施例中,它是常规TMDS编码器的一个元件)。响应于DE的下一个上升沿,发射机将8比特视频数据字的序列(每一个链路时钟周期一个视频数据字)输入到编码器。
为实现图4-6的状态图中的任一状态图(或用于根据本发明其它实施例的N比特模式操作过程的状态图),本发明不对以像素时钟周期为单位测量的有效视频间隔、水平空白间隔或水平行间隔(每一个都包括水平的视频线和水平的空白间隔)的持续时间强加任何显著的定时限制。并不要求这些间隔要具有恰是视频数据组大小整倍数的持续时间。在一些实施例中仅有的限制是,空白间隔的最小持续时间(以链路时钟周期为单位)必须大于有效视频到空白这种转变状态的数目。通常,对于其像素组大小G大于2的打包模式(比如,图4的10比特模式),要处理以像素开始并以空白字符结束的那些组,G-1个转变状态(“mPCn”)是必需的。一旦(在消隐的开始处)已经进入这些转变状态,该组的平衡就必须包含空白字符。这导致这样一种要求,对于G>2的打包模式,最小空白周期(其中DE=0)是G-1个空白字符(例如,对于10比特模式,该最小空白是三个空白字符)。对于参照图3、5和6所描述的8比特、12比特和16比特状态机而言,该最小持续时间是零个链路时钟周期(没有任何限制)。对于参照图4所描述的10比特状态机,最小空白间隔持续时间是四个链路时钟周期(以允许状态10PC2、10PC3、10PC4和10C0的循环)。本领域那些一般技术人员将认识到,通过添加从标记为“10PC4”的状态中出来的额外的弧,图4状态图的修改可以将该最小空白间隔持续时间减小到三个链路时钟周期。对于实现根据本发明的10比特模式操作过程而言,对四个链路时钟周期的最小空白间隔持续时间的要求并不是一个显著的障碍或限制,因为所有通常使用的常规视频定时都具有大得多的最小空白计数。相似的是,在一些实施例中,对16个像素时钟周期的最小空白间隔持续时间的要求(其目的在于发送链路控制消息,下文会对此做出阐述)并不对实现本发明构成一个显著的障碍或限制,因为通常使用的视频定时具有长得多的空白周期。
在本发明的发射机被配置成通过TMDS链路发送数据的这一类实施例中,在有效视频间隔期间(当DE较高时),发射机通过该链路的数据信道(图1所示的CH0、CH1和CH2)发送表示视频数据的代码字(例如,表格2-5中所示的视频片段),并且也发送该链路的时钟信道(图1所示的信道CHC)的链路时钟。在空白间隔期间(当DE较低时),发射机通过该链路的数据信道CH0来发送多个代码字,每一个这样的代码字都表示两个同步比特(水平的和垂直的同步比特),该发射机还通过数据信道CH1和CH2来发送四个控制比特(CTL0、CTL1、CTL2、CTL3),并通过该链路的时钟信道来发送链路时钟。在空白期间,四个控制比特(CTL0到CTL3)可以偶尔用于短周期,以对之前提到的链路控制消息(“LCM”)进行编码,从而将该发射机的打包相位和色彩深度模式传递给接收机。更具体地讲,在空白间隔的至少一个链路时钟周期内,该发射机的较佳实施例(通过数据信道CH1)发送表示控制比特(图1所示的常规控制比特CTL0)以及LCM的一个比特的代码字,并且也(通过数据信道CH2)发送表示LCM的另一比特和另一个控制比特(图1所示的常规控制比特CTL3)的代码字。所发送的控制比特CTL3可以按常规方式由接收机中的HDCP解密电路使用。
为了允许本发明发射机的较佳实施例在空白间隔期间(按以下所述的方式)发送链路控制消息,每一个视频源最好被配置成在具有下列限制的情况下发送DE信号,其中每一个视频源在DE=1时将视频数据提供给发射机而在DE=0时将同步比特(HS,VS)和控制比特(CTL0到CTL3)提供给发射机(以便由发射机用来执行N比特模式操作过程中的打包和编码,其中N≠8)。在比16个像素时钟循环的最小周期要少的时间内,该视频源最好被限制成不输出具有低电平的DE信号(以表示空白间隔)。在DE信号下降沿之后前16个像素时钟周期内,该视频源最好也被限制成不可改变其CTL2和CTL1引脚的状态(通过这些引脚,它将常规的TMDS控制比特CTL1和CTL2发送给发射机)。下文将详细解释这种限制的原因。
对于满足N>8的色彩深度N,根据本发明的典型实施例,用比源像素时钟快的链路时钟来发送表示视频数据(或打包相位数据或其它数据)片段的代码字。在参照表格7-10和图4-6所描述的实施例中,对于N=10、12或16,每组的链路时钟周期数目大于每组的源像素时钟数目。因此,在这种实施例中,本发明的发射机被实现为使得链路时钟域中DE的下降沿(链路时钟域中空白间隔的开始)并不发生在一组的第一个片段已发送之后,而是发生该组的第二片段也已发送之前。根据本发明(在各空白间隔中)所发送的打包相位数据表示一组的最后F-1个片段中最近发送的那个片段的相位(其中整个组包括F个片段)。(用N比特色彩模式工作的)接收机被实现为按链路时钟速率恢复所发送的8比特视频数据片段,并且(通常用较小的FIFO)解包所恢复的片段,并按(每一个色彩信道)每一个被恢复的像素时钟周期一个N比特视频字的速率来传递解包后的N比特视频字,即便对奇数个像素或空白计数也如此。
在N比特模式操作过程中(其中N>8),被配置成通过TMDS链路来发送编码后的视频数据、打包相位数据和色彩模式数据的本发明发射机的一个实施例最好被配置成在各空白周期(DE=0)的前12个TMDS链路时钟周期内将6比特链路控制消息(“LCM[5:0]”或“LCM”)发送给接收机。LCM可以表示打包相位数据、色彩模式数据或其它信息。该LCM由取代CTL2和CTL1控制比特的那些比特按下述内容来确定,CTL2和CTL1控制比特是在空白间隔的前12个链路时钟期间通过TMDS链路的数据信道CH1和CH2按常规方式来发送的:
对于空白间隔的前4个链路时钟周期,CTL2=LCM[1],CTL1=LCM[0];
对于空白间隔的接下来4个链路时钟周期,CTL2=LCM[3],CTL1=LCM[2];并且
对于空白间隔的再接下来4个链路时钟周期,CTL2=LCM[5],CTL1=LCM[4]。
在空白间隔的前12个链路时钟期间,发射机可以发送许多代码字,这些代码字表示通常通过TMDS链路发送的CTL0和CTL3比特,以及:
通常通过TMDS链路发送的CTL2和CTL1比特(例如,在本发明发射机的8比特模式操作过程期间);或
用于表示LCM而非这种常规CTL2和CTL1比特的那些比特(在本发明发射机的N比特模式操作过程期间,其中N≠8)。
在N比特模式操作过程中(其中N≠8),在空白间隔的前四个链路周期的每一个链路周期中,发射机通过TMDS链路的数据信道CH1发送表示LCM[0](替代常规的比特CTL1)和CTL0的带外TMDS代码字,也通过TMDS链路的数据信道CH2发送表示LCM[1](替代常规的比特CTL2)和CTL3的带外TMDS代码字。然后,在空白间隔的接下来四个链路周期中的每一个链路周期中,发射机通过TMDS链路的数据信道CH1发送表示LCM[2](替代常规的比特CTL1)和CTL0的带外TMDS代码字,并且也通过TMDS链路的数据信道CH2发送表示LCM[3](替代常规的比特CTL2)和CTL3的带外TMDS代码字。然后,在空白间隔的再接下来四个链路周期中的每一个链路周期中,发射机通过数据信道CH1发送表示LCM[4](替代常规的比特CTL1)和CTL0的带外TMDS代码字,并且也通过数据信道CH2发送表示LCM[5](替代常规的比特CTL2)和CTL3的带外TMDS代码字。
注意,在提供DE信号下降沿之后的前16个像素时钟周期内,最好限制视频源使其不可改变其CTL2和CTL1引脚(在这些引脚处它可以将常规的TMDS控制比特CTL1和CTL2提供给发射机)的状态。替代来自外部源的CTL1和CTL2比特,本发明的发射机(在适当的时候)将适当的LCM比特提供给该发射机内的TMDS编码器,并且作为对此的响应该编码器产生了合适的带外TMDS代码字。
在DE=0的12个到16个像素时钟周期之后,CTL2和CTL1引脚恢复到正常工作状态(使本发明的发射机可以向编码器提供表示由外部源向其提供的CTL1和CTL2的代码字,而不是表示LCM比特的代码字)。发射机总是按常规的方式向编码器发送控制比特CTL3和CTL0(即,不管本发明的发射机用常规的8比特模式还是用本发明的N比特模式工作,表示常规控制比特CTL3和CTL0的代码字都被发送到编码器,其中N≠8),只不过它们被提供给编码器通常是为了响应于链路时钟而非像素时钟。
对于较深的色彩深度(N>8),链路时钟比源像素时钟P要快。如上所述,在典型的实施例中,(N比特视频数据中已打包K比特片段的)每组链路时钟周期的数目大于每组像素时钟周期的数目。因此,在N比特模式操作过程的空白间隔中,每一个链路时钟周期可发送表示同步比特对或控制比特对(控制比特CTL0和CTL1,或控制比特CTL2和CTL3)的一个空白代码。然而,如果在有效视频间隔期间需要“X”个链路周期来发送(N比特视频数据的)一组K比特片段,则每X个链路时钟周期通常仅将X-1个同步比特对(或控制比特对CTL0和CTL1,或CTL2和CTL3)(从视频源)提供给(发射机。因此,在N比特模式模式操作过程期间的空白间隔中,本发明发射机的典型实施例在每一个由X个链路时钟循环构成的周期内产生并(例如,通过TMDS链路的各信道CH0、CH1和CH2)发送X个空白代码的序列,其中各空白代码表示从视频源中接收到的X-1个同步(或控制)比特对。在每一个这样的周期内所发送的最后两个空白代码都表示相同的同步(或控制)比特对。为了与像素速率匹配,接收机丢弃了在每一个由X个链路时钟循环构成的周期内所发送的最后一个空白代码(重复的空白代码)。本发明的发射机最好被配置成,当它发送所描述的六个比特的LCM时(或者在空白间隔的前16个链路时钟周期内),并且可任选地在其后的附加链路时钟周期内,它将内部DE=0比特提供给其TMDS编码器电路,即使其外部DE引脚(耦合到外部视频源的DE引脚)的状态很快会改变。
所描述的LCM可以表示色彩模式数据(用于使接收机用所指出的色彩深度模式工作)或用于表示打包相位数据的相位控制消息,或者相位控制消息可以表示可用于特定应用中的任何期望类型的其它数据。在一个实施例中,发射机被配置成在连续的水平空白间隔(被称为“水平”空白间隔的空白间隔通常在视频场或帧的每一行中出现一次,被称为“垂直”空白间隔的较长空白间隔出现在每一个视频场或帧的最后一行)期间发送不同类型的LCM。在DVI适应性发射机通过TMDS链路的数据信道CH1和CH2发送上述类型的6比特LCM的这样一类较佳实施例中,发射机按下面的序列发送LCM(该序列每四个水平空白间隔就重复一次):用于表示在每第“n”个水平空白间隔的前16个链路时钟周期内的色彩模式数据的LCM;用于表示在每第“n+1”个水平空白间隔的前16个链路时钟周期内的打包相位数据的LCM;以及(也是可任选地)用于表示每第“n+2”个水平空白间隔的前16个链路时钟周期内的其它数据的LCM;以及(也是可任选地)用于表示每第“n+3”个水平空白间隔的前16个链路时钟周期内的其它数据的另一个LCM。可任选地,该发射机是可编程的以便可用下面的模式操作:
一种模式,用该模式发射机在每第“n”个水平空白间隔的前16个链路时钟周期内,每两个水平空白间隔就发送一次用于表示色彩模式数据的LCM,并且在每第“n+1”个水平空白间隔的前16个链路时钟周期内,发送表示打包相位数据的LCM(它并不发送任何其它类型的LCM);或者
一种模式,用该模式发射机在每第“n”个水平空白间隔的前16个链路时钟周期内,每四个水平空白间隔就发送一次用于表示色彩模式数据的LCM,在每第“n+1”个水平空白间隔的前16个链路时钟周期内,发送表示打包相位数据的LCM,在每第“n+2”个水平空白间隔的前16个链路时钟周期内发送表示其它数据的LCM,并且在每第“n+3”个水平空白间隔的前16个链路时钟周期内发送表示其它数据的另一个LCM。
当所描述的六比特LCM表示色彩模式数据(以便使接收机用所指出的色彩深度模式工作)时,该色彩深度模式消息代码可以是:
·LCM[5:0]=0x30用于8比特模式;
·LCM[5:0]=0x31用于10比特模式;
·LCM[5:0]=0x32用于12比特模式;以及
·LCM[5:0]=0x33用于16比特模式,
其中前缀“0x”表示后面的符号是十六进制的数字。
较佳地,该接收机被配置成:
在复位时,将初始(默认)色彩深度模式存储到寄存器(“上个色彩模式消息寄存器”)中;
在每一个水平空白间隔的开始处检查色彩深度模式控制消息(用于表示色彩模式数据的LCM);
(以下文要描述的方式)滤除无效的色彩深度控制消息;并且
将每一个新接收到的有效色彩深度模式控制消息与“上个色彩模式消息寄存器”的内容进行比较。响应于确定它们匹配,接收机使“上个色彩模式消息计数器”增1(直到该计数器计满,在典型的实施例中这可能发生在计数255处)。响应于确定它们不匹配,新的(有效的)色彩深度模式控制消息被载入“上个色彩模式消息寄存器”,并且“上个色彩模式消息计数器”被清空。
接收机最好实现噪声过滤以评估每一个接收到的色彩深度模式控制消息是否有效。较佳地,接收机只有在如下情况下才将色彩深度模式消息考虑为有效:
·对于DE=0的前4个链路时钟周期中的至少Np个链路时钟周期,LCM[5:4]都是恒定的;
·对于DE=0的接下来4个链路时钟周期中的至少Np个链路时钟周期,LCM[3:2]都是恒定的;
·对于DE=0的再接下来4个链路时钟周期中的至少Np个链路时钟周期,LCM[1:0]都是恒定的;
·LCM[5:0]为0x30,0x31,0x32或0x33;
·对于该链路控制消息之后的至少Np个链路时钟周期,DE=0,其中Np是预定的噪声过滤值。较佳地,Np是可编程的值,但具有默认值(如果不对其进行编程使其具有不同值的话)。在一些实施例中,Np的默认值是Np=3。
较佳地,接收机开始用由“上个色彩模式消息寄存器”所存储的初始(默认)色彩深度模式所指出的N比特模式工作。接收机可以包括另一个寄存器,该寄存器存储用于表示其当前色彩模式的色彩深度参数N的色彩深度模式控制消息。较佳地,在确定是否改变其当前的色彩模式时,接收机还(按下文要描述的方式)实现噪声过滤。
较佳地,接收机被配置成,将用来指出其当前色彩深度参数N的色彩深度模式控制消息与“上个色彩模式消息寄存器”的内容进行比较。当“上个色彩模式消息计数器”的计数值小于可编程的噪声过滤阈值Nm(其最大值是“上个色彩模式消息计数器”计满时的那个计数值)时,接收机并不改变其色彩模式。一旦“上个色彩模式消息计数器”的计数值大于或等于Nm,则:
如果该接收机色彩模式并不匹配“上个色彩模式消息寄存器”,则该接收机将其色彩模式改变为“上个色彩模式消息寄存器”的内容所确定的模式并使“上个色彩模式消息计数器”复位,或者
如果该接收机色彩模式与“上个色彩模式消息寄存器”匹配,则该接收机并不改变其色彩模式,或并不使“上个色彩模式消息计数器”复位(在这种情况下,切正常,所以接收机的工作模式不应该被改变)。
如上所述,LCM可以是相位控制消息(表示发射机打包相位数据的LCM)。在发射机实现图4-6的状态图的上述类型的实施例中,通过使用下列相位控制消息代码,该发射机可以被配置成(以上述方式)将六比特LCM作为这样一种相位控制消息来发送:
·LCM[5:0]=0x35,以表示10比特模式中片断10P1、或12比特模式中片断12P1、或16比特模式中片断16P1的相位;
·LCM[5:0]=0x36,以表示10比特模式中片断10P2、或12比特模式中片断12P2的相位;
·LCM[5:0]=0x37,以表示10比特模式中片断10P3的相位;以及
·LCM[5:0]=0x34,以表示10比特模式中片断10P4的相位。
相位控制消息用来确保,接收机的解包状态机相位匹配于发射机的打包状态机相位。每一个相位控制消息都应该表示在该相位控制消息之前的DE的最近下降沿之前由发射机发送的最后一个编码后片断的相位。该接收机包括具有与发射机的打包状态机相同的状态序列的解包状态机(例如,图3、4、5或6,取决于当前的色彩模式)。接收机记录用于在每一个DE下降沿之前它接收到的最后一个编码后的片断的解包状态机的相位。当接收机在DE=0期间解码相位控制消息时,它将(通过LCM发送的)发射机打包相位与接收机最近记录的解包相位进行比较。发射机和接收机相位针对同一片断(在DE变为零之前的最后一个片断)并且应该匹配。当首次启动该链路时,或者在色彩模式或视频定时改变之后,发射机和接收机(一般)将具有不相关的相位,并且接收机使用(来自LCM的)发射机相位来调节其自身相位以匹配于该发射机。在接收机相位的这种初始调节之后,发射机和接收机相位应该继续匹配,因为它们正在执行相同的状态序列;在那种(不寻常的)情况下,发射机和接收机相位之间的失配表示诸如间歇式信号或噪声信号的差错,并且接收机再次调节其相位以匹配于发射机,从而从该差错中恢复。
较佳地,该接收机被配置成:
在每一个空白间隔的开始处,检查相位控制消息(一个LCM,表示用于该行最后一个像素片断的发射机的打包相位);
将DE=1时接收到的最后一个片断的相位(就在DE变成0之前,行中的最后一个像素片段)记录到“捕获相位”寄存器中;
在空白间隔期间,计算“相位偏移”值(发射机和接收机相位之间的差);并且
当检测到稳定的非零“相位偏移”时,(用以下所述方式)调节接收机状态机相位使得该相位偏移变为零。
该接收机较佳地实现噪声过滤,以评估各接收到的相位控制消息是否有效。较佳地,该接收机只有在如下条件时才将相位控制消息视为有效:
·在DE=0的前4个链路时钟的至少Np个链路时钟中,LCM[5:4]是恒定的;
·在DE=0的接下来4个链路时钟的至少Np个链路时钟中,LCM[3:2]是恒定的;
·在DE=0的再接下来4个链路时钟的至少Np个链路时钟中,LCM[1:0]是恒定的;
·LCM[5:0]为0x34,0x35,0x36 or 0x37;
·在链路控制消息之后的至少Np个链路时钟周期中,DE=0,其中Np是可编程的噪声过滤值(在一些实施例中,Np的缺省值是Np=3)。
较佳地,当接收到(有效的)相位控制消息时,接收机将该相位控制消息所表示的发射机相位与接收机的“捕获相位”值(响应于空白间隔开始之前所接收到的最后一个视频片断记录该数值)进行比较。如果它们匹配,则接收机中的相位差错计数器被清零。如果它们不匹配并且相位差错计数器所表示的计数值是零,则有效相位控制消息所表示的相位与捕获相位寄存器中的“捕获相位”值之间的差值就被置入相位偏移寄存器中,并且使该相位差错计数器增1。
如果有效相位控制消息所表示的相位并不匹配“捕获相位”值(响应于在空白间隔开始之前所接收的最后一个视频片断而记录)并且相位差错计数器所表示的计数值非零,则接收机将相位偏移寄存器中的“相位偏移”值与有效相位控制消息所表示的相位和捕获相位寄存器中的“捕获相位”值之间的差值进行比较。如果新的差值与相位偏移值相同,则使相位差错计数器增1。如果(有效相位控制消息所表示的相位和捕获相位寄存器中的“捕获相位”值之间的)新的差值并不匹配相位偏移寄存器中的相位偏移值,则新的差值被置入相位偏移寄存器(以取代旧的相位偏移值)并且相位差错计数器被清零。
当相位差错计数器所表示的计数值变得大于或等于以上定义的可编程噪声过滤值Nm(其最大值是相位差错计数器计满时的计数值)时,相位差错计数器被清零,并且通过从该解包状态机相位中减去(对组的大小F取模,即用于当前色彩模式的每组片断数)相位偏移寄存器中的值来校正接收机的解包状态机相位。当相位差错计数器所表示的计数值小于噪声过滤值Nm时,接收机的状态机的相位被视为是正确的,并且并不是通过从其中减去相位偏移寄存器中的相位偏移值来调节。
参照图7-14,我们接下来描述本发明的发射机、接收机和系统的若干实施例。
图7是本发明发射机的一较佳实施例的方框图,图8是本发明发射机的一可选实施例的方框图,图9是本发明接收机的一较佳实施例的方框图。
图7的发射机100包括:FIFO缓冲器101,(可任选的)扩频时钟发生电路102,像素打包缓冲器和复用电路(“打包器”)104,编码器和串行化装置(“编码器”)108,时钟乘法器106,主PLL(相位锁定闭环电路)110,以及控制寄存器107,它们的连接情况如图所示。
发射机100的编码器108(图8的发射机100’包括完全相同的发射机108)最好被实现成将8比特视频彩色成分编码成10比特TMDS代码字,并按与图1的常规发射机相同的方式通过TMDS链路发送它们(以及链路时钟)(差别在于,在一些操作模式中,与发射机1所发送的链路时钟相比,编码器108所使用并发送的链路时钟可以具有更高的频率)。图9的接收机130的解串行化装置和解码电路144最好被实现成(通过使用由时钟PLL 140为响应于接收到的链路时钟而产生的多相位时钟组)接收并解码这种10比特TMDS代码字,以便按与图1的常规接收机3相同的方式来恢复8比特视频彩色成分。
图7的发射机100和图8的发射机100’也可用于10比特模式、12比特模式和16比特模式中任选的一种,以便根据本发明对视频数据进行打包和编码,并且每一种发射机被实现为通过TMDS链路的信道0、信道1和/或信道2发送编码后的视频数据。图9的接收机130也可以用于10比特模式、12比特模式和16比特模式中的任一种,以便在通过TMDS链路传输之后解码并解包这种编码后的视频数据。
(图7的)控制寄存器107被配置成,通过将控制比特提供给打包装置104和时钟乘法器106来设置发射机100的工作模式(即,将色彩深度N设置为8、10、12或16),以指定元件104和106应该用其工作的那个色彩深度模式。在典型的实施例中,使各控制寄存器耦合起来,以便与控制和配置比特(包括用来确定发射机应该用哪一个色彩深度模式工作的比特)的外部源进行I2C通信。
图7的可任选扩频时钟电路102接收来自外部源的像素时钟PCK(或发射机内产生像素时钟并将它发送给电路102的电路)。作为响应,电路102产生该像素时钟的相位调制后形式PLK’并将它提供给PLL 106。扩频时钟电路102可以按常规方式来实现。例如,如果发射机100的其余部分(或发射机中除控制寄存器107以外的其余部分)作为集成电路(“第一”芯片)来实现,则电路102可以是可购买的耦合到第一芯片的集成电路(以便响应于输入时钟而产生扩频时钟)。像素时钟PCK和相位调制后的像素时钟PCK’具有相同的(时间平均的)时钟速率。
当发射机100用N比特色彩模式工作时,使用像素时钟PCK将视频数据的3N比特像素、数据使能比特(DE)、水平和垂直同步控制比特(HS和VS)以及控制比特(CTL0、CTL1、CTL2和CTL3)取入FIFO 101,并且使用主PLL 110产生的链路时钟(TCK)将它们从FIFO 101中取出。可以从(耦合到发射机100的)外部源中接收到或者由发射机100内的电路(未示出)产生视频数据和比特DE、HS、VS和CTL[0:3]。FIFO 101可容许从时钟PCK和PCK’的时变相对相位中产生的频率扩展,以及多链路TCK相对于时钟PCK’的频率和相位差值。在典型的实现方式中,FIFO 101具有16个FIFO位置以及55个比特的宽度(48个比特用于最多达16个比特的RGB像素成分,外加7个比特用于DE、HS、VS、CTL[0:3])。
时钟乘法器106是一种PLL,它响应于扩频时钟电路102的输出PCK’产生原始的链路时钟TCK(参考)。原始链路时钟是频率为(N/8)P的时钟PCK’的倍频形式,其中P是时钟PCK’的频率。
在可选实施例中(例如,发射机并不接收来自外部源的像素时钟而相反产生像素时钟的那些实施例,比如,当发射机集成到与视频/图形源相同的芯片中时),发射机可以包括:(例如,用标准的振荡器和合成器)直接产生链路比特速率时钟、并且其频率适合发射机当前色彩模式的电路;以及对链路比特速率时钟进行分频以产生链路码元时钟和像素时钟的电路。在一些情况下,用于产生像素时钟的分频电路可以是根据链路比特速率的简单数字整数分频器。在其它情况下,用于产生像素时钟的分频电路可以按与图9的分数频分器142的任一实施例(如下所述)相同的方式来实现。
主PLL 110产生原始链路时钟TCK(参考)的稳定形式TCK以及稳定链路时钟TCK的相移形式,以便编码器108、FIFO 101和打包器104使用。具体来讲,PLL 110产生是一组L个时钟的多相位时钟组,每一个时钟具有链路时钟频率和满足m=offset+2π(m/L)+Δm的不同相位m,其中指数“m”是范围{0,...,L-1}中的非负整数,Δm是差错项。通常,Δm比相位增量2π/L小许多,并且产生多相位时钟组以便接近(按实际情况尽可能地接近)由L个时钟构成的理想的多相位时钟组,每一个时钟具有链路时钟频率并且每一个时钟具有不同的相位m=offset+2π(m/L)。
发射机100具有两个主时钟域:像素时钟域(即,电路102和用于响应于像素时钟PCK将比特取入FIFO 101中的电路);以及链路时钟域(即,用于将比特从FIFO 101中取出的电路以及元件104、108和110)。
编码器108响应于稳定的链路时钟TCK(由PLL 110产生)工作,并执行上述操作:将从打包器104中接收到的8比特数据字编码成10比特TMDS代码字,串行化该数据,并通过TMDS链路向接收机发送串行化的编码数据(和稳定的链路时钟)。
打包器104将从FIFO 101中取出的DE、CTL0和CTL3比特传递给编码器108,并且可以将从FIFO 101中取出的CTL1和CTL2比特传递给编码器108、或者(在适当的时候)提供内部产生的确定上述链路控制消息LCM[5:0]的比特CTL1和CTL2来代替它们。打包器104实现LCM发生器(例如,图7A的LCM发生器124),它使打包器104在适当空白间隔期间的适当时候(例如,在上述每一个空白间隔的前12个链路时钟周期中)提供包括各消息LCM[5:0]在内的内部产生的比特CTL1和CTL2。
较佳地,FIFO 101具有55个比特的宽度,足够用来传输用于一个像素时钟的DE、6个同步/控制比特和/或48个像素数据比特。每一个像素时钟(PCK)中就将一个新的像素或空白字符、连同DE(DE=1表示像素,DE=0表示空白)写入FIFO 101中。像素打包缓冲器和复用电路104在某些链路时钟(TCK)期间从FIFO 101中读取新的像素或空白字符(以及DE),这是由(图7A中的)打包状态机123的FIFO_读取输出所指出的。FIFO的主要目的是当数据在不同频率上工作的PCK和TCK时钟域之间穿行时缓冲该数据并使该数据重新同步化。
图7A更详细地示出了像素打包缓冲器和复用电路104的实现方式。在该实现方式中,电路104包括两个像素数据保存寄存器(125和126),打包状态机123(它实现图3到5的状态图中适当的一种)每次提供FIFO_读取信号时就对这两个寄存器进行更新。元件125和126一起构成移位寄存器,其中第一寄存器126包含两个连续的像素或空白字符中靠前的一个,第二寄存器125包含这两个连续的像素或空白字符中靠后的一个。
图3到6示出了状态机123的多个状态。在“P”打包状态之一(通常是10P0、12P0或16P0,它具有取决于特定实现方式的特定相位)中,从状态机123中输出的FIFO_读取控制信号为假,因为并不需要新的像素,并且该信号在“C”打包状态之一(通常是10C4、12C2、16C1,这同样取决于实现方式)中也为假。在其它状态中,状态机123宣称FIFO_读取控制信号为真。
相似的是,在某些状态中(通常是“P”状态,同样,特定的相位将取决于特定的实现方式),状态机123宣称DE_OUT=1,且在其它状态中(通常是“PC”和“C”状态,同样,这取决于实现方式),状态机123宣称DE_OUT=0。
从状态机123中输出的色彩模式(8、10、12、16比特成分)和色彩相位(0到4)信号指示像素打包复用器127根据表格2到10从寄存器125和126中选出多个比特,以形成要发送给编码器108(如图7所示)的下一个片断。例如,在10比特模式中,在状态10P0期间可以从第一保存寄存器126中选出8个比特(用于每一种色彩成分,所根据的是表格3),然后在状态10P1期间可从第一保存寄存器126中选出2个比特,并从第二保存寄存器125中选出6个比特(用于每一种色彩成分),然后在状态10P2中可以从第一保存寄存器126和第二保存寄存器125中各选出4个比特(用于每一种色彩成分),然后在状态10P3中从第一保存寄存器126中选出6个比特并从第二保存寄存器125中选出2个比特(用于每一种色彩成分),然后在状态10P4中可以从第一保存寄存器126中选出8个比特(用于每一种色彩成分)。
或者,可以省去寄存器125,并可以用FIFO 101的头(输出字)来替代寄存器125。这种实现方式可以节约一个寄存器,但是可能无法像包括两个寄存器125和126的较佳实现方式那样高速运行。
复用器127、128和129(如图7A所示那样连接)将从FIFO 101中取出的DE、CTL0和CTL3比特传递给编码器108,并且可以将从FIFO 101中取出的CTL1和CTL2比特传递给编码器108、或提供内部产生的用来确定上述链路控制消息LCM[5:0]的比特CTL1和CTL2来替代它们。更具体地讲,图7A的LCM发生器124产生包括每一个消息LCM[5:0]在内的比特(在图7A中标记为“LCM,CTL1”和“LCM,CTL2”),并使复用器128和129不时地提供内部产生的比特LCM、CTL1和LCM、CTL2(由LCM_ENABLE信号确定,该LCM_ENABLE信号由LCM发生器124发送给复用器128和129),从而编码器108将在每一个适当空白间隔的适当链路时钟周期内(例如,在上述每一个空白间隔的前12个链路时钟周期中)发送LCM[5:0]。
图7的发射机100最好被实现成可用于8比特模式中,其中打包器104将三种8比特视频数据流从FIFO 101传递给编码器108,使得编码器108可以对该视频数据执行常规的TMDS编码,以响应于每一个8比特成分产生10比特TMDS代码字,并且通过TMDS链路发送编码后的数据。在每一个N比特模式中(其中N>8),打包器104通过从(图7A的)寄存器125和126中可用的六个N比特字(每一种色彩成分有两个N比特字)中(根据表格3到5和图4到6)选出三个8比特字来实现打包过程,并将选出的数据提供给编码器108,使得编码器108可以对该视频数据执行常规的TMDS编码,以响应于每一个8比特成分产生10比特TMDS代码字,并通过TMDS链路来发送编码后的数据。
图7的发射机100最好也可用于6比特色彩模式中,其中偶数和奇数的3N比特像素(其中3N=18)配对以形成36个比特的字,然后用已经针对12比特色彩模式(3*12=36)描述过的相同技术来形成可进行打包和编码的36个比特字。在6比特色彩模式中,所发送的链路时钟速率可以是0.75×像素时钟速率的(6/8)(而非12比特色彩模式中的1.5×像素时钟速率)。在6比特色彩模式中,偶数/奇数配对速率可以是像素时钟速率,从而形成可以按像素时钟速率的一半来打包的36个比特字。在那种情况下,链路时钟速率是1.5×36个比特字打包速率,如12比特像素的情况那样。
更一般地讲,在某些实施方式的某些模式中,发射机100可以每一个输入时钟接受两个像素,其中输入时钟是像素速率的一半,并且可以使用更宽的FIFO,它每一次写入就接受两个像素。在这种情况下,时钟乘法器106可以使输入时钟(其速率是像素速率的一半)乘以一个因子使其翻倍,以便实现之前描述的链路时钟与像素时钟速率之比,从而获得链路时钟。
图8示出了用于发射机的可选同步实现方式,它不是当前流行的。在图8中,与图7所标识的元件和信号相对应的那些元件和信号标号完全一样,其描述将不再重复。图8的发射机100’包括:像素打包缓冲器和复用电路(打包器)112(与图7中的打包器104相似),FIFO缓冲器116(与图7中的101相似),扩频时钟发生电路118(与图7中的102相似),编码器108(像图7中的那样),时钟乘法器114(与图7中的106相似),主PLL 110(像图7中的那样),以及控制寄存器107(像图7中的那样),它们像图中所示的那样连接。
与图7相比,图8简单地反转了时钟乘法114和扩频时钟118的顺序,这要求像素打包112出现在FIFO 116之前,并且引入了另一时钟域FCK。关于上述色彩打包状态机和链路控制消息,操作的基本原理对于图7和图8都一样;差别仅在于实现水平。
图8的时钟乘法器114是一种PLL,它响应于像素时钟PCK产生像素时钟的倍频形式(“FCK”)。倍频时钟FCK具有频率(N/8)P,其中P为时钟PCK的频率并且发射机100’用N比特色彩深度模式工作。
响应于倍频时钟FCK,扩频时钟电路118产生并向PLL 110提供原始链路时钟TCK(参考),它是时钟FCK经相位调制后的形式。扩频时钟电路118可以按常规方式来实现,并且如果电路118的这种实现方式是可用于响应频率为(N/8)P的时钟(像图8中的那样)或频率为P的像素时钟(像图7中的那样),则该电路118可以与图7的扩频时钟电路102完全一样。
图8的发射机100’执行与发射机100相同的功能,但在三个主时钟域中工作:像素时钟域(即,时钟乘法器114和用于响应于像素时钟PCK将比特取入打包器112中的电路);倍频时钟域(即,用于将比特从打包器112中取出并响应于时钟F将该比特取入FIFO 116中的电路);以及链路时钟域(即,用于将比特从FIFO 116取出的电路以及元件104和110)。
FIFO 116可容许由时钟FCK和TCK(参考)的时变相对相位导致的频率扩展、以及TCK(参考)相对于链路时钟TCK的时钟变化。
对于大多数应用而言,本发明发射机的图7实现方式比图8的要更佳,因为:后一种实现方式可能要求112中的增加缓冲要比前一种中的104大;前者只具有两个时钟树而后者有三个;并且图7的扩频时钟电路102必须具有比图8的电路1118更高的最大工作频率和更宽的工作频率范围。
图9的接收机130包括:解串行化装置和解码电路144,主PLL 140,时钟分配器142,LCM解码逻辑131,LCM滤波器132,色彩序列发生器(解包状态机)134,像素解包缓冲器和色彩FIFO(解包装置)136,以及延迟管线146,它们像图所示那样连接。解包装置136最好像图9A所示那样实现(即,它最好包括元件150、151、152和154,它们像图9A所示那样连接)。在图9中,输入到LCM解码逻辑131中的“CTL1”和“CTL2”比特是从解码器44中输出的比特“CTL[0:3]”中的两个比特。
在接收机130的操作过程中,已经通过TMDS链路的数据信道发送的TMDS代码字(这包括视频代码字)在TMDS解串行化装置和解码电路144中被接收,解码,并解串行化。在每一个被恢复的链路时钟“lck”的周期内,从电路144中取出一次以下比特:三个8比特视频字(一个8比特字用于三种色彩成分中的每一种,它们中的每一个是N比特色彩成分的一个片段);以及七个控制比特(DE、VS、HS和CTL[0:3],它们中的每一个都已经在上文描述过)。通过将适当的控制比特提供给解包装置136的解包电路(最好实现成图9A的元件150、151和152),解码后的视频和控制比特在延迟管线146中被延迟一段时间,该段时间足以让状态机134对LCM滤波器132的输出作出响应。
使用如图9A所示地实现的解包装置136,在每一个链路时钟周期内,将24比特像素片段或6比特同步/控制代码从延迟管线146中取入汇编缓冲输入寄存器151中。在随后一个链路时钟周期中将输入寄存器151复制到寄存器150。根据本发明,解包复用器152对各色彩成分单独操作,并将寄存器150中之前片段的比特和寄存器151中随后片段的比特组合起来,以恢复出全部的3N比特像素。解包复用器152根据表格2到10来组合两个片段,如由(图9的)LCM滤波器132的色彩深度[1:0]输出和(图9的)色彩序列发生器状态机134的当前相位[2:0]输出所指引的。
在(每一个片段组的F个链路时钟周期中的)F-1个链路时钟周期内,状态机134“进栈”(push)输出使新的N比特像素从解包复用器152写入到FIFO154。状态机134也产生“de_out”输出,该输出将每一个写入FIFO 154的字标记为像素或空白数据。
解包装置136的FIFO 154最好具有55个比特的宽度(用于最多达48个比特宽度的像素数据,外加7比特的DE、同步和控制数据)以及8个字的深度,以便缓冲在链路时钟和像素时钟域之间的数据转移并使这些数据转移重新同步化。向FIFO 154写入出现在“进栈”为真的链路时钟周期内。从FIFO 154到接收机数据输出的读取出现在每一个像素时钟周期中。
表格2到10和图3到6(由当前相位[2:0]、de_out以及色彩序列发生器134的“进栈”输出来实现)定义了将片段组成像素或空白字符的过程。响应于色彩序列发生器134中的当前相位[2:0]比特,在完成新的像素或空白字符(由“进栈”=1表示)的链路时钟周期内,解包装置136内的复用电路152为每一种色彩成分从汇编缓冲寄存器150、151中的一个或两个寄存器中选择表格2到5所定义的N个比特(其中3N=24、30、36或48)。对于大小为F个片段的每一个组,将按链路时钟速率向汇编缓冲寄存器写入F次,向FIFO写入F-1次。
例如,当用10比特色彩模式对像素进行解包时(对于三种色彩成分中的每一种,并行地进行):
·在10P0状态期间,片段10P0被写入第二汇编寄存器151中,寄存器151之前的内容被移至寄存器150,并且没有数据被推进FIFO中;
·在10P1状态期间,片段10P1被写入第二汇编寄存器151中,寄存器151之前的内容被移至寄存器150,并且来自第一寄存器150的8个比特加上来自第二寄存器151的2个比特被用于恢复像素“A”,该像素“A”被推进FIFO 154中;
·在10P2状态期间,片段10P2被写入第二汇编寄存器151中,寄存器151之前的内容被移至寄存器150,并且来自第一寄存器150的6个比特加上来自第二寄存器151的4个比特被用于恢复像素“B”,该像素“B”被推进FIFO 154中;
·在10P3状态期间,片段10P3被写入第二汇编寄存器151中,寄存器151之前的内容被移至寄存器150,并且来自第一寄存器150的4个比特加上来自第二寄存器151的6个比特被用于恢复像素“C”,该像素“C”被推进FIFO 154中;以及
·在10P4状态期间,片段10P4被写入第二汇编寄存器151中,寄存器151之前的内容被移至寄存器150,并且来自第一寄存器150的2个比特加上来自第二寄存器151的8个比特被用于恢复像素“D”,该像素“D”被推进FIFO 154中。
按PCK时钟分配器142所确定的像素时钟速率从FIFO 154中读出解包后的像素或空白字符(HS、VS、CTL[0:3])和DE(DE=1对应于像素,DE=0对应于空白)。在一些实现方式的一些模式中,如果FIFO 154足够宽以便每一个像素时钟周期传递两个像素的话,则像素时钟可以除以2(相对于其它模式中它的速率),并且每一个像素时钟周期从FIFO 154中读出两个像素(偶数的和奇数的)。
如图9所示,时钟PLL 140从链路的时钟信道中恢复出所发送的链路时钟TCK,并产生所恢复链路时钟的稳定形式(“lck”)(及其相移形式)。具体来讲,PLL 140产生多相时钟组,它是L个时钟的集合,每一个时钟都具有链路时钟频率(或其整数倍,下文会参照图10-13描述),并且每一个时钟都具有满足m=offset+2π(m/L)+Δm的不同相位m,其中指数“m”是范围{0,...,L-1}中的非负整数,并且Δm是差错项。通常,Δm比相位增量2π/L小许多,并且产生多相时钟组以接近(如实际情况地尽可能接近)理想的由L个时钟构成的多相时钟组,每一个时钟具有链路时钟频率并且每一个时钟具有不同的相位m=offset+2π(m/L)。响应于该多相时钟组,电路144执行上述操作:对通过该链路接收到的视频数据进行解串行化,对解串行化后的10比特TMDS代码字进行解码以恢复出8比特代码字,并将8比特代码字提供给延迟管线146。
时钟分配器142执行频率分配操作,以便由PLL140从向其提供的稳定的恢复后的链路时钟“lck”(和多相时钟组的其它构件)中恢复出像素时钟(“pck”)。时钟分配器142可以包括图10和12(下文会描述)所示的电路。或者,时钟分配器142可以被实现为PLL,在这种情况下,接收机130将包括两个PLL(PLL 140和用来实现时钟分配器142的PLL)。然而,对于时钟分配器142使用逻辑电路(例如,图10和12所示的逻辑)从恢复后的链路时钟或恢复后的链路时钟的稳定形式中恢复出像素时钟的那些情况而言,这种可选实施例通常更贵。
LCM解码逻辑131接收从电路144中输出的控制比特CTL0、CTL1和DE。逻辑131也接收用来确定上述噪声过滤值Np的两个控制比特(i2c_Np[1:0]),以便用在由控制比特CTL0和CTL1所确定的滤波链路控制消息LCM[5:0]中。逻辑131标识由比特对CTL0和CTL1的序列所确定的每一个消息LCM[5:0],并执行上述滤波操作以确定该消息是否有效。逻辑131将下面的输出比特提供给LCM滤波器132:
color_lcm[1:0],它表示最近被确定为有效的色彩深度链路控制消息的值(例如,color_lcm[1:0]=00,01,10和11分别表示该接收机应该用8比特、10比特、12比特或16比特色彩模式工作);
got_color_lcm(当新的色彩深度链路控制消息被解码时,它在一个链路时钟周期内升高);
got_phase_lcm(当新的打包相位链路控制消息被解码时,它在一个链路时钟周期内升高);以及
phase_lcm[1:0],它表示最近被确定为有效的打包相位链路控制消息的值。
LCM滤波器132接收从逻辑131中输出的比特、从电路144中输出的DE比特、以及确定上述噪声过滤阈值Nm的八个控制比特(i2c_Nm[7:0]),以便用于过滤由比特“color_lcm[1:0]”所确定的色彩深度链路控制消息、并打包由比特“phase_lcm[1:0]”所确定的相位链路控制消息。
较佳地,通过常规的I2C链路,从可以被用户配置或编程以指定噪声过滤值Np和噪声过滤阈值Nm的微控制器中,将比特“i2c_Np[1:0]”提供给解码逻辑131,并且将比特“i2c_Nm[7:0]”提供给滤波器132。
色彩序列发生器134实现一种状态机以确定解包状态的序列,其中接收机130操作并且捕获在空白开始之前所接收的最后一个视频数据片段的相位。序列发生器134将比特“capture_phase[2:0]”提供给滤波器132以表示在最近的DE下降沿处由接收机130所捕获的视频数据片段的相位,并且将比特“current_phase[2:0]”提供给滤波器132以表示解包装置136将片段重新组装成(每一个表格2-10和图3-6的)像素或空白数据所应该使用的解包相位。
LCM滤波器132过滤由比特color_lcm[1:0]和phase_lcm[1:0]所确定的链路控制消息。LCM滤波器132包括上述“最后的色彩模式消息计数器”和“相位差错计数器”(每一种最好都实现成8比特计数器)。例如,滤波器132的输出并不使接收机130改变其色彩模式,除非“最后的色彩模式消息计数器”的计数值等于或大于噪声过滤阈值Nm。
LCM滤波器132将下面的输出比特提供给色彩序列发生器134:
color_depth[1:0],它表示用于接收机130的当前色彩深度参数(“N”)。color_depth[1:0]的每一个新值都会触发色彩模式改变(滤波器132也将color_depth[1:0]比特提供给解包装置136和时钟分配器142以确定解包装置136和时钟分配器142运行于其中的色彩模式);以及
phase_delta[2:0],在上文中称为“相位偏移”。phase_delta[2:0]的非零值触发解包状态机的相位调节,以匹配于发射机的打包序列。
在典型的实现方式中,如果在可编程的预定数目的空白间隔中未解码任何色彩深度链路控制消息或打包相位链路控制消息,则color_depth[1:0]比特默认到用来确定8比特模式操作的一个值。
色彩序列发生器134实现用于每一种所支持的N比特色彩模式的解包状态机(即,用于图3到6中每一个N值的状态机,这由控制比特color_depth[1:0]确定),尽管在任何时候只有一个这样的状态机是有效的。
从色彩序列发生器134中输出的“de_out”比特是从状态值中获得的。
除了从色彩序列发生器134中输出的上述比特以外,色彩序列发生器向解包装置136输出一个“进栈”比特,用于表示解包装置136是否应该将来自延迟管线的新组取入解包装置136内的FIFO缓冲器中。
在色彩序列发生器134的典型实现方式中:
在8比特模式操作过程中,忽略来自滤波器132的phase_delta[2:0]比特;并且
在N比特模式操作过程中(其中N≠8),通过从表示当前有效的状态机的下一个状态的控制字中减去phase_delta[2:0]的值(以像素组大小G为模),phase_delta[2:0]的非零值触发重新同步化过程。或者,色彩序列发生器134总是将phase_delta[2:0]的非零值载入Y比特相位计数器,其中Y是表示当前有效的状态机中相位的比特数目。每次状态机传递一个零相位状态,它冻结并增值相位计数器,直到该相位计数器达到零。此时,状态机的相位应该被正确地设置并且该状态机被解冻。
如上所述,图9的接收机130被实现成从串行链路(例如,DVI链路)中接收常规的TMDS编码后的视频数据,并对接收到的TMDS代码字进行解码以产生24比特视频数据(例如,24比特像素,每一个都包括8比特红色成分、8比特绿色成分和8比特蓝色成分)。根据本发明,接收机也可用于下列模式中的任一模式之中(特定的模式是由通过该链路接收到的色彩模式数据确定的):
30比特像素模式,其中它从该链路中接收TMDS编码后的视频数据,并解码所接收到的TMDS代码字,并解包解码后的比特以产生30比特视频数据(其中每一种像素包括10比特红色成分、10比特绿色成分和10比特蓝色成分);
36比特像素模式,其中它从该链路中接收TMDS编码后的视频数据,并解码所接收到的TMDS代码字,并解包解码后的比特以产生36比特视频数据(其中每一种像素包括12比特红色成分、12比特绿色成分和12比特蓝色成分);以及
48比特像素模式,其中它从该链路中接收TMDS编码后的视频数据,并解码所接收到的TMDS代码字,并解包解码后的比特以产生48比特视频数据(其中每一种像素包括16比特红色成分、16比特绿色成分和16比特蓝色成分)。
根据本发明,关于接收机130的变化也可用于下面的模式(其特定的操作模式由通过该链路接收到的色彩模式数据来确定):
18比特像素模式,其中它从该链路中接收TMDS编码后的视频数据,并解码所接收到的TMDS代码字,并从解码后的比特中产生36比特视频数据(其中每一种像素包括12比特红色成分、12比特绿色成分和12比特蓝色成分),通过将该36比特分成18个比特视频数据的偶数和奇数对而对该36比特视频数据进行进一步解包(其中每一种像素包括偶数和奇数的6比特红色成分、偶数和奇数的6比特绿色成分、以及偶数和奇数的6比特蓝色成分)。该36比特像素速率时钟可分成一半,以获得18比特像素速率时钟。
在接收机130的N比特操作模式中(其中每一个像素时钟周期就有三个N比特色彩成分从解包装置136中取出),时钟分配器142所产生的像素时钟“pck”的频率是(8/N)=L,其中L是恢复后的链路时钟“lck”的频率。
图10是在12比特操作模式(其中每一个像素时钟周期就从解包装置136中取出三个12比特色彩成分)期间用于图9的接收机130的时钟分配器142的较佳实施例的一种电路的方框图。图11是由图10电路接收到的以及产生的信号的定时图。时钟PLL 140的较佳实现方式输出如上所述的多相时钟组。具体来讲,在较佳的实施例中,PLL 140产生多相时钟组,它是10个时钟的集合,每一个时钟具有相位增量2π/10以及等于链路时钟速率5倍的频率。
多相时钟组的相位0、5和7被用作到时钟分配器142的输入ph0、ph5和ph7。时钟ph0的相位对应于所恢复的链路时钟“lck”的相位,时钟ph5的相位对应于ph0的相位再加上2π(5/10),并且时钟ph7的相位对应于ph0的相位再加上2π(7/10)。在12比特操作模式中,期望像素时钟“pck”的两个周期应该等于链路时钟的三个周期。链路时钟的三个周期是PLL 140中的5x时钟输出的15个周期。
在12比特操作模式中,时钟分配器142(包括图10电路)首先通过使用(本领域公知的)Johnson计数器来产生图11中的波形“A”的补码,Johnson计数器如图10所示包括触发器“a”到“i”加上一个反馈门(用于驱动触发器“a”)和两个初始化门(连接到触发器“i”)。用来驱动触发器“j”的NAND门连接到由触发器“b”和“f”所驱动的抽头点。该抽头点被设计成使波形“A”在ph0时钟的4个周期内为高电平,而在其11个周期内为低电平。因此,“A”具有15个ph0时钟或3个链路时钟或2个像素时钟的周期。
触发器“1”到“s”使波形“A”的补码延迟7.5个ph0时钟以产生波形“B”的补码。该分数延迟通过使用ph7和ph5来实现,以使延迟触发器同步;ph7(输入到触发器“1”)提供从ph0起的0.7个周期延迟(触发器“j”的输出),并且ph5(输入到触发器“p”)提供从ph7起的0.8个周期延迟(触发器“o”的输出),它们总共提供了1.5个周期延迟;其它指定的触发器提供其余6个周期的延迟。
最终的负输出“或”功能300(由触发器“k”和“t”驱动)将波形“A”和“B”的补码组合起来以产生期望像素时钟(信号“A+B”),它具有7.5个ph0时钟或1.5(7.5/5)个链路时钟的周期。所产生的波形在4个ph0周期内是高电平,而在3.5个ph0周期内是低电平。信号(A+B)是频率为(L/1.5)的像素时钟“pck”,其中L是链路时钟频率。
图12是在10比特操作模式中(其中每一个像素时钟周期内就从解包装置136中取出三个10比特色彩成分)用于图9的接收机130的时钟分配器142的较佳实现方式的一种电路的方框图。图13是由图12电路所接收到的以及产生的信号的定时图。在10比特操作模式中,时钟分配器142所产生的像素时钟“pck”的频率是(8/10)L=(L/1.25)。时钟PLL 140的较佳实现方式输出多相时钟组,该组中的每一个时钟具有10个不同相位之一和等于链路时钟速率5倍的频率。多相时钟组的相位0、5和7被用作到时钟分配器142的输入ph0、ph5和ph7。在10比特操作模式中,期望像素时钟“pck”的4个周期应该等于链路时钟的5个周期。链路时钟的5个周期是PLL 140的5x时钟输出的25个周期。
在10比特模式中,时钟分配器142(包括图12电路)首先通过使用(本领域公知的)Johnson计数器来产生图13中的波形“A”,Johnson计数器如图12所示包括触发器“a0”到“a8”和“b0”到“b4”加上一个反馈门(用于驱动触发器“b0”)和三个初始化门(连接到触发器“a8”)。用来驱动触发器“b5”的NAND门连接到由触发器“a2”和“a5”驱动的抽头点,从而产生在ph0的3个周期内为高电平且在22个周期内为低电平的第一脉冲。用来驱动触发器“b6”的NAND门连接到由触发器“b1”和“b4”所驱动的抽头点,从而产生在ph0的3个周期内为高电平且在22个周期内为低电平的第二脉冲,该第二脉冲比第一脉冲落后6个周期。用来驱动“b7”的负输出“或”门将第一和第二脉冲组合起来以获得复杂波形“A”,它具有25个ph0循环或5个链路时钟或4个像素时钟的周期。
与上述12比特模式分配器相似,触发器“c0”到“c5”和“d0”到“d6”使波形“A”延迟12.5个ph0时钟以产生波形“B”。该分数延迟是通过使用ph7和ph5以及之前描述的技术来实现的。
最终的负输入“或”功能302(由触发器“b8”和“d7”来驱动)组合波形“A”和“B”以产生期望像素时钟(图12和13中的每一个中示出的信号“A+B”),它在每25个ph0周期(或5个链路时钟)期间循环4次。所产生的波形在3个ph0周期内是高电平并且在3个(有时候3.5个)ph0周期内是低电平。信号(A+B)是频率为(L/1.25)的像素时钟“pck”,其中L是链路时钟频率。
图10到13的分数时钟分配器设计的优点在于,和常规的基于PLL的频率分配器方法相比,它们要求更小的管芯面积,并且通过只使用一些触发器和门而不要求用于PLL检相器、环滤波器和VCO的面积或临界设计。
图10到13的时钟分配器设计的一般原理是,利用与链路时钟有关的最快可用时钟信号。通常,需要具有M个相位以及频率等于链路速率N倍(其中M和N是整数,M通常是偶数)的一个时钟组,以便操作解串行化装置144(如图9所示)。这种时钟定义了链路时钟的M*N个子部分。在较佳的实施例中,M=10而N=5,从而提供最多达50个链路时钟周期的子部分。其它实施例可使N=10且M大于或等于2,从而提供至少20个子部分。本发明的较佳实施例通过使用链路时钟周期中可获得的细分点来定义一种波形(在上述实施例中通过使用Johnson计数器来实现),并且相位通过使用可获得的细分点来移动并组合(例如,使用“或”门或“非”门)该波形的两个或多个副本以产生一种像素时钟,该像素时钟精确地(或足够精确地)将所需分数比提供给该链路时钟(这是由解包系统所要求的,例如,图9的解包系统)。像素时钟占空比正好为50%或非常接近50%,这取决于可获得的子部分(M*N)的数目以及所需时钟比。更多的子部分可提高接近程度,或导致精确的像素时钟。
在一些实施例中,本发明的发射机通过一串行链路发送N比特视频,该串行链路被配置成发送编码后的K比特视频数据字。在这种实施例中,发射机包括:子系统,可用于至少一个N比特模式以便将视频数据的N比特字的序列打包成片段的序列,其中N≠K并且每一个片段包括K比特的视频数据;以及耦合到该子系统并具有至少一个输出的电路,该至少一个输出被配置成耦合到该串行链路,其中该电路被配置成通过对片段序列中的每一个片段进行编码并将编码后的片段序列提供给至少一个输出,产生编码后片段的序列,由此当上述链路耦合到该至少一个输出时便可以通过该链路来发送编码后的片段。较佳地,编码后的片段序列是M个编码后的片段的组的序列,其中M=N/D,D是N和K的最大公约数,按每单位时间N比特字的、等于P的第一速率将N比特字的视频数据提供给该子系统,并且该电路被配置成按第二速率将编码后的片段序列提供给该至少一个输出,该第二速率至少基本上等于每单位时间(N/K)P的编码后片段。同样较佳地,用每一个N比特模式操作期间,该发射机被配置成执行多个状态序列,每一个序列包括M个状态(例如,以上参照图4-6所描述的状态)。这些状态序列包括:有效的视频间隔序列(例如,图4中状态10P0到10P4的序列),其中在每一个有效视频间隔序列中,M个编码后的片段被提供给该至少一个输出;空白间隔序列(例如,图4中状态10C0到10C4的序列),其中在每一个空白间隔序列中,M个空白字符被提供给至少一个输入,并且上述M个空白字符之一与所述M个空白字符中的另一个完全相同;有效的视频到空白转变序列(例如,图4中状态10P1、10PC2、10PC3、10PC4和10C1的序列),其中在各有效视频到空白转变序列的第一状态期间,编码后的片段之一被提供到该至少一个输出,并且各有效视频到空白转变序列的最后一个状态出现在空白间隔中;以及空白到有效视频转变序列(例如,图4中状态10C0、10P1、10P2、10P3和10P4的序列),其中在各空白到有效视频转变序列的最后一个状态期间,编码后的片段之一被提供给该至少一个输出,并且各空白到有效视频转变序列的第一状态出现在空白间隔中,并且其中发射机被配置成通过(完全或部分地)执行足够数目的状态序列循环,在不忽略提供任何编码后的片段的情况下将编码后的片段序列提供给该至少一个输出,每一个状态序列循环包括任何数目的有效视频间隔序列,其后是有效视频到空白转变序列之一,再之后是大量的空白间隔序列,再之后是空白到有效视频转变序列之一。
在本发明发射机的一些实施例(例如,图2的发射机201或收发机205被实现为HDMI适应性发射机的那些实施例)中,在有效视频间隔期间,发射机可以通过TMDS链路(或具有用于发送串行视频的至少一个信道的其它TMDS类链路)的至少一个视频信道发送编码后的视频数据字(例如,8比特视频数据字,每一个视频数据字使用TMDS编码算法编码为10比特转变最小化的代码字)。在有效视频间隔之间的消隐间隔部分(例如,数据岛)期间,通过该链路的至少一个视频信道发送包括(包含)编码后的打包相位数据和/或编码后的色彩模式数据(和可任选的其它编码后的数据)在内的分组。在每一个数据岛中,发送至少一个包含编码后的数据在内的分组。在一些实施例中,各分组中所包含的全部编码后的数据都被编码成10比特TMDS转变最小化代码字的序列。在有效视频间隔和数据岛之间的周期(例如,控制数据周期)内,一些这样的发射机通过视频信道发送控制字(每一个都被编码成10比特转变最大化的代码字,用于表示两个控制比特:CTL0和CTL1,或CTL2和CTL3)以及同步字(每一个都被编码成10比特转变最大化的代码字,用于表示两个控制比特:HSYNC和VSYHC)。在各有效视频间隔期间,接收机假定HSYNC、VSYHC、CTL0、CTL1、CTL2和CTL3保持它们在有效视频间隔开始时所具有的那些值。
在HDMI适应性实施例中,在各数据岛期间通过TMDS链路的一个信道(CH0)发送表示HSYNC和VSYHC比特的转变最小化代码字(例如,每个链路时钟周期一个代码字,每一个字表示HSYNC比特、VSYHC比特、分组标题比特和至少一个其它比特)。
在HDMI适应性实施例中,各分组具有32比特分组标题以及四个子分组(每一个包括64个比特)。各子分组包括56个数据比特,其后是8个BCH奇偶检验位。每一个链路时钟周期发送一个分组的九个数据比特。根据本发明的一些实施例,在数据岛期间,HDMI适应性发射机通过TMDS链路的至少某些数据信道中的每一条信道发送包含编码后的打包相位数据和/或编码后的色彩模式数据在内的分组。在有效的视频间隔中,通过该链路发送表示编码后的视频数据的分组的TMDS代码字(例如,用与以上参照本发明其它实施例所描述过的方式相同的方式)。
在无明确打包相位数据发送给接收机的这样一类实施例中(即,在空白间隔中不发送任何表示打包相位数据的消息的这类实施例),通过将每一行总的视频(像素加空白)字限制成为打包组大小的整数倍(G个视频字),便可以向接收机隐含地指出打包相位数据。这种限制在一些应用中是可接受的。在这种特殊的情况下,检查点(例如,每一行的第一或最后一个像素片段)处的相位并不逐行改变(假定每一行总的字符是恒定的),并且可以固定在发射机和接收机状态机的设计中,从而消除通过链路消息(或其它明确发送的打包相位数据)进行相位通信的需要。例如,发射机可以通过发送相位为0的片段来开始每一行(例如,在10比特模式中的状态10P0),并且接收机可以通过观察DE的上升沿而知道每行的开始,并且可以将其开始相位调节为相位0而不需要相位消息,因为相位由DE隐含指出。在这种实现方式中,发射机(用各N比特模式工作,其中它将N比特字的视频数据序列打包成片段的序列,其中N≠K并且每一个片段包括K比特的视频数据)总是在各检查点(例如,在各有效视频间隔的开始或末端处)发送视频数据的片段(它是M片段组的,其中M=N/D,并且D是N和K的最大公约数),该片段具有(在M片段组内)固定的、预定的相位。一些实施例支持所发送的视频数据中每一水平行有任意的像素计数值(所发送的片段的数目)和空白计数值(所发送的空白字符的数目),如果每行的总(像素加空白)计数值恒定并且被限制成是像素组大小的整倍数(即,每一水平行所发送的片段加空白字符总数被限定为X*M,其中X是整数)。
在无明确打包相位数据发送给发射机的另一类实施例中,通过实现发射机并使得该发射机(用各N比特模式工作,其中它将N比特字的视频数据序列打包成片段的序列,其中N≠K并且每一个片段包括K比特的视频数据)总是在各检查点(例如,在各有效视频间隔的开始处)重新启动该打包序列,便可以向接收机隐含地指出打包相位数据。例如,这可通过将发射机配置成实现图14的状态图(并且将接收机偏置成实现图15的状态图)实现,两种情况都假定用10比特模式工作。
图14的发射机状态图示出了在每一行开始处重新启动打包这种可选方法的一种实现方式。像素打包状态10P0到10P4是与图4中使用的相同的序列,并且还是引用表格3所定义的片段。转变状态10PC0到10PC3和空白状态10C0到10C4与图4相似,所具有的更改如下:
·当进入空白周期(DE变为0)时,片段计数器启动。这发生在以下转变之一处(取决于每行有效像素的计数值):10P1到10PC2,10P2到10PC3,10P3到10PC4,或者10P4到10C0;
·在从水平空白周期(如下所述)中获得并基于当前行计数值来修改的初始计数值处,启动片段计数器;
·随着空白周期的继续(这包括可能的初始转变周期,它经过超过10PCn个状态之一并最终经过10Cn个状态而结束),每一个链路时钟该片段计数器就递减计数一次;
·当片段计数器变为零时(在10Cn状态之一中),下一个状态被推进到10P0,从而在相位0处开始下一行,而不管空白周期的结束相位;并且
·在每一行的开始处(从10Cn状态之一进入10P0),使行计数器增值。该计数器计算模数G(像素中的打包组大小)。
空白周期被固定在像素时钟域中,但一般在链路时钟域中会每一个周期就改变一次,这取决于视频定时有效和空白像素计数值。为了在链路时钟速率是像素时钟速率的(N/K)倍时按正确的像素时钟速率来正确地恢复视频(像素和空白)字符,链路时钟(HBL)中的平均空白周期必须是HBP*(N/K),其中HBP是像素中的空白计数值,N是像素字大小(本示例中是10比特),并且K是链路片段大小(本示例中是8比特)。对于像480p CEA-861数字电视标准这样的定时,HBP=138,并且对于这种10比特模式示例而言HBL将是172.5。对于每G行,如果这些行的一半具有172个片断且另一半具有173个片断,则可获得正确的平均。空白周期宽度就显现为在链路时钟域中变化,但是当恢复到像素时钟域时就将是恒定的。
在HBL被下舍入或HBL被上舍入的情况下(到最近的整数;在本示例为172或173),通过使(上述的)片断计数器初始化为进入消隐周期,便在链路时钟域中获得了正确的空白持续时间。如果HBL的分数部分被称为FHBL,则对于每G个行HBL必须上舍入达FHBL*G行。模G行计数器和包含FHBL的寄存器用来控制是否将被上舍入或下舍入后的HBL当作开始值载入片断计数器。
图15的接收机状态图示出了与图14的发射机相对应的接收机的一种实现方式。序列与图4中的相同,更改之处如下:
·当DE变为1时(在10Cn个状态之一中)下一个状态被推进到10P0,从而在相位0处开始下一行,而不管空白周期的结束相位。
通过使用协商好的规则,即DE=0到DE=1转变必须总是使发射机和接收机达到相位0(10P0),用来实现图15状态图的接收机将正确地跟踪图14的发射机而不需要链路相位消息(之前描述过的明确相位方法)。
在使用图4到6的发射机和接收机状态图的另一类实施例中,可以使用不同的方法将发射机相位传递给避开明确相位消息的接收机。在这些状态图的每一个中,空白环的最终相位(图4中的10C4,图5中的12C2,图6中的16C1)是前一个状态中所发送片断的重复。在普通的视频定时中,空白代码相对于空白间隔持续时间(通常上百个像素时钟周期或更多)而言改变得非常慢(每一个空白间隔中不多于三个不同的值)。在这些实施例中,发射机使用重复的片断(图4中的10C4,图5中的12C2,以及图6中的16C1)来发送在之前的片断中发送的同步代码的补码(例如,如果在空白间隔期间一个链路时钟周期内发送HS=1,则在下一个链路时钟周期内发射机会发送HS=0)。当(通常)与片断组速率相比同步代码改变得非常慢时,接收机可以对接收到的同步代码进行低通滤波处理,以估算预期的同步代码(对于10比特示例而言,5个片断中的4个往往是真的同步值,而这5个中的一个是该同步值的补码),并且可以确定该组中哪些片断是所估计的真同步值的补码。然后,接收机知道,互补的片断必须是相位0到(F-1)中的相位(F-1)。该接收机可以使用该信息来调节其状态机相位以便按之前已经描述过的方式来匹配发射机。
应该理解,尽管本文示出并描述了本发明的某些形式,但是本发明由权利要求书所界定并且并不限于所描述并示出的特定实施例。