多路显示器的扩展显示器标识数据EDID的组合方法和装置
技术领域
本发明涉及数据处理领域,尤其涉及一种多路显示器的扩展显示器标识数据EDID的组合方法和装置。
背景技术
每一台显示器均有自己的扩展显示器标识数据(EDID,Extended DiplayIdentificaiton Data)。所述扩展显示器标识数据包含有关显示器及其性能的参数,例如包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串。其中,最大图像大小、颜色设置、频率范围的限制等等均属于音视频参数。
现有技术中,当信号传输系统的下游包括多路显示器时,将其中一路显示器的EDID作为共用的EDID发送给信号源,信号源根据其接收到的EDID内的音视频参数向下游发送数据。但是,每路显示器中的EDID的音视频参数很有可能不完全相同,将其中一路显示器的EDID作为共用的EDID发送给信号源,会使信号源误认为其接收到的EDID是下游的所有各路显示器的EDID。这就导致信号源依据EDID内的支持的音视频参数向下游发送的数据有可能不被下游的某些显示器所支持,进而导致某些显示器不能播放音视频数据,出现黑屏或不能显示的情况。
为了防止下游的显示器出现黑屏或不能显示的现象,必须使信号源能够获取到所有各路显示器共用的EDID,这就有必要将多路显示器的EDID数据进行组合,形成一个共用的EDID,该共用的EDID内包含有所有各路显示器共同支持的音视频参数。
发明内容
有鉴于此,本发明提供了一种多路显示器的扩展显示器标识数据EDID的组合方法和装置,以将多路显示器的扩展显示器标识数据EDID组合为一个共用的扩展显示器标识数据EDID,该共用的EDID内包含有所有各路显示器均共同支持的音视频参数,从而防止下游的显示器出现黑屏或不能显示的现象。
为了达到上述发明目的,本发明采用了如下技术方案:
一种多路显示器的扩展显示器标识数据EDID的组合方法,所述EDID包括多个音视频参数,所述多路显示器至少包括第1路显示器和第2路显示器,包括:
获取第1路显示器的EDID;
解析所述第1路显示器的EDID,以得到所述第1路显示器的各个音视频参数;
将所述第1路显示器的各个音视频参数分别存储在不同的音视频参数数组中;
获取第2路显示器的EDID;
解析所述第2路显示器的EDID,以得到所述第2路显示器的各个音视频参数;
求解各个音视频参数数组中的音视频参数与第2路显示器相对应的各个音视频参数的交集,以得到各个音视频参数数组中的音视频参数和第2路显示器的各个音视频参数的共同部分;
将各个音视频参数的共同部分分别替换存储在相应的音视频参数数组内的音视频参数;
判断各个音视频参数数组是否为空数组,如果一个或多个音视频参数数组为空数组,将该音视频参数对应的最小支持格式存储在该音视频参数数组中;
将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID。
优选地,所述将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID之后,还包括:
存储所述多路共用EDID。
优选地,所述获取第1路显示器的EDID之后,所述解析所述第1路显示器的EDID之前,还包括:
将所述第1路显示器的EDID缓存在第一数组中;
判断所述第1路显示器的EDID是否有效,如果是,将所述第1路显示器的EDID作为多路共用EDID的模块,并将所述第1路显示器的EDID存储在第二数组中。
优选地,所述获取第2路显示器的EDID之后,所述解析所述第2路显示器的EDID,以得到所述第2路显示器的各个音视频参数之前,还包括:
确定所述第2路显示器的EDID有效。
优选地,各路显示器的EDID以数据块为单位,其至少包括数据块block0,所述数据块block0中包括是否存在数据块block1的标识符;
所述获取第1路显示器的EDID;解析所述第1路显示器的EDID,以得到所述第1路显示器的各个音视频参数;将所述第1路显示器的各个音视频参数分别存储在不同的音视频参数数组中,具体为:
获取第1路显示器的EDID的数据块block0;
将所述第1路显示器的EDID的数据块block0缓存在第一数组中;
判断所述第1路显示器的EDID的数据块block0中的数据是否有效,如果是,将所述第1路显示器的EDID的数据块block0作为多路共用EDID的数据块block0的模板,将所述第1路显示器的EDID的数据块block0存储在第二数组中;
解析所述第1路显示器的EDID的数据块block0,以得到存储在所述第1路显示器的EDID的数据块block0中的各个音视频参数以及是否存在数据块block1的标识符;
将所述第1路显示器的EDID的数据块block0中的各个音视频参数分别存储到不同的音视频参数数组中;
如果第1路显示器的EDID包括数据块block1,获取第1路显示器的EDID的数据块block1;
将所述第1路显示器的EDID的数据块block1作为多路共用EDID的block1的模块,并将其存储在第一数组中;
判断所述第1路显示器的EDID的数据块block1的数据是否有效,如果是,解析所述第1路显示器的EDID的数据块block1,以得到存储在所述第1路显示器的EDID的数据块block1中的各个音视频参数;
将所述第1路显示器的EDID的数据块block1中的各个音视频参数分别存储到不同的音视频参数数组中。
优选地,所述获取第2路显示器的EDID;解析所述第2路显示器的EDID,以得到所述第2路显示器的各个音视频参数;求解各个音视频参数数组中的音视频参数与第2路显示器相对应的各个音视频参数的交集,以得到各个音视频参数数组中的音视频参数和第2路显示器的各个音视频参数的共同部分;将各个音视频参数的共同部分分别替换存储在相应的音视频参数数组内的音视频参数;具体包括:
获取第2路显示器的EDID的数据块block0;
将所述第2路显示器的EDID的数据块block0缓存在所述第一数组中;
判断所述第2路显示器的EDID的数据块block0的数据的是否有效,如果是,解析所述第2路显示器的EDID的数据块block0的数据,以得到存储在第2路显示器的EDID的数据块block0中的各个音视频参数以及是否存在数据块block1的标识符;
求解用于存储block0的各个音视频参数的数据组中的音视频参数与第2路显示器的各个音视频参数的交集,以得到用于存储block0的各个音视频参数的数据组中的音视频参数和第2路显示器的block0中的各个音视频参数的共同部分;
将block0中的各个音视频参数的共同部分分别替换存储在相应的音视频参数数组中的音视频参数;
如果存在数据块block1,获取第2路显示器的EDID的数据块block1;
将第2路显示器的EDID的数据块block1存储在第一数组中;
判断第2路显示器的EDID的数据块block1的数据是否有效,如果是,解析第2路显示器的EDID的数据块block1的各个音视频参数;
求解用于存储block1中的各个音视频参数数据组中的音视频参数与第2路显示器的各个音视频参数的交集,以得到用于存储block1中的各个音视频参数数据组中的音视频参数和第2路显示器的block1中的各个音视频参数的共同部分;
将block1中的各个音视频参数的共同部分分别替换存储在相应的音视频参数数组中的音视频参数。
优选地,所述将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID,具体包括:
将用于存储block0中的各个音视频参数的数据组按照第一预定顺序组合在一起,以形成多路共用EDID的block0;
如果EDID中存在block1,将用于存储block1中的各个音视频参数的数据组按照第二预定顺序组合在一起,以形成多路共用EDID的block1。
优选地,形成多路共用EDID的block0之后,还包括:将所述多路共用EDID的block0存储在第二数组中;
形成多路共用EDID的block1之后,还包括:将所述多路共用EDID的block1存储在第一数组中。
优选地,所述将用于存储block1中的各个音视频参数的数据组按照第二预定顺序组合在一起,以形成多路共用EDID的block1之后,还包括:
判断bolck1的剩余空间的字节数是否大于预定个数,如果是,利用视频详细信息块将所述block1填充。
优选地,将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID之后,还包括:
计算所述多路共用EDID的数据块block的校验和,并将所述检验和填充到对应数据块block中的最后一个字节里。
优选地,所述音视频参数包括最佳分辨率、最大支持格式时钟频率、视频分辨率格式、音频编码采样格式、视频颜色格式和音频通道数。
一种多路显示器的扩展显示器标识数据EDID的组合装置,所述EDID包括多个音视频参数,所述多路显示器至少包括第1路显示器和第2路显示器,包括:
第一获取单元,用于获取第1路显示器的EDID;
第一解析单元,用于解析所述第1路显示器的EDID,以得到所述第1路显示器的各个音视频参数;
第一存储单元,用于将所述第1路显示器的各个音视频参数分别存储在不同的音视频参数数组中;
第二获取单元,用于获取第2路显示器的EDID;
第二解析单元,用于解析所述第2路显示器的EDID,以得到所述第2路显示器的各个音视频参数;
求解单元,用于求解各个音视频参数数组中的音视频参数与第2路显示器相对应的各个音视频参数的交集,以得到各个音视频参数数组中的音视频参数和第2路显示器的各个音视频参数的共同部分;
第二存储单元,用于将各个音视频参数的共同部分分别替换存储在相应的音视频参数数组内的音视频参数;
第一判断单元,用于判断各个音视频参数数组是否为空数组,如果一个或多个音视频参数数组为空数组,将该音视频参数对应的最小支持格式存储在该音视频参数数组中;
组合单元,用于将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID。
优选地,还包括:
第三存储单元,用于在形成多路共用EDID之后,存储所述多路共用EDID。
优选地,还包括:
计算单元,用于计算所述多路共用EDID的数据块block的校验和,并将所述检验和填充到对应数据块block中的最后一个字节里。
相较于现有技术,本发明具有以下有益效果:
本发明提供的多路显示器的扩展显示器标识数据EDID的组合方法,通过对多路显示器的EDID中的各个音视频参数求交集,以得到多路显示器的EDID的各个音视频参数的共同部分,然后将该各个音视频参数的共同部分按照预定顺序组合在一起,以形成多路显示器的共用的EDID。在形成的该共用的EDID中包括多路显示器共同支持的音视频参数,进一步地说,该共用的EDID中可以包括信号源下游的所有各路显示器共同支持的音视频参数,当信号源按照共用的EDID内的音视频参数向外输出信号时,信号源下游的显示器均能够支持该信号,因此显示器不会出现黑屏或不能显示的情况。
附图说明
为了清楚地理解本发明的技术方案,下面将描述具体实施方式时用到的附图进行简要说明。显而易见地,这些附图仅是本发明的部分实施例附图。本领域普通技术人员在不付出创造性劳动的前提下,还可以获得其它的附图。
图1是本发明实施例一提供的多路显示器的扩展显示器标识数据EDID的组合方法流程示意图;
图2是本发明实施例二提供的多路显示器的扩展显示器标识数据EDID的组合方法流程示意图;
图3是本发明实施例三提供的多路显示器的扩展显示器标识数据EDID的组合方法流程示意图;
图4是本发明实施例四提供的多路显示器的扩展显示器标识数据EDID的组合装置结构示意图。
具体实施方式
下面结合附图对本发明的具体实施例方式进行详细描述。
需要说明的是,本发明实施例所述的多路显示器的扩展显示器标识数据EDID的组合方法,应用于两路以上的显示器。也就是说,显示器的路数可以为2路、3路、10路等等。
每个EDID中均包括用来表征该显示器支持的音视频数据的多个音视频参数。这些音视频参数包括但不限于最佳分辨率、最大支持格式时钟频率、视频分辨率格式、音频编码采样格式、视频颜色格式和音频通道数。最佳分辨率
下面以两路显示器的EDID的组合方法为例进行说明。具体参见实施例一。
实施例一
如图1所示,本发明实施例一所述的多路显示器的扩展显示器标识数据EDID的组合方法,包括以下步骤:
S101、获取第1路显示器的EDID:
用于组合多路显示器的扩展显示器标识数据EDID的单片机MCU利用HDMI/DVI线材与第1路显示器实现连接,获取第1路显示器的EDID。需要说明的是,在本发明实施例中,在同一时刻,单片机MCU只能连接一路显示器。优选通过DDC通道获取第1路显示器的EDID。
S102、解析所述第1路显示器的EDID,以得到所述第1路显示器的各个音视频参数:
具体地,根据HDMI/CEA/VESA标准协议解析第1路显示器的EDID,以得到第1路显示器的各个音视频参数。设定获取的第1路显示器的各个音视频参数分别为音视频参数A、音视频参数B、音视频参数C、音视频参数D。
S103、将所述第1路显示器的各个音视频参数分别存储在不同的音视频参数数组中:
具体地,若第1路显示器包括音视频参数A、音视频参数B、音视频参数C、音视频参数D时,将该四个音视频参数分别存储在音视频参数数组A、音视频参数数组B、音视频参数数组C、音视频参数数组D中。
S104、获取第2路显示器的EDID:
具体地,切断单片机MCU与第1路显示器的连接,使单片机MCU与第2路显示器实现连接,通过DDC通道获取第2路显示器的EDID。
S105、解析所述第2路显示器的EDID,以得到所述第2路显示器的各个音视频参数:
具体地,根据HDMI/CEA/VESA标准协议解析第2路显示器的EDID,以得到第2路显示器的各个音视频参数。设定获取的第2路显示器的各个音视频参数分别为音视频参数A、音视频参数B、音视频参数C、音视频参数D。
S106、求解各个音视频参数数组中的音视频参数与第2路显示器相对应的各个音视频参数的交集,以得到各个音视频参数数组中的音视频参数和第2路显示器的各个音视频参数的共同部分:
具体地,求解音视频参数数组A中的音视频参数A与第2路显示器的音视频参数A的交集,以得到音视频参数数组A中的音视频参数A和第2路显示器的音视频参数A的共同部分。
求解音视频参数数组B中的音视频参数B与第2路显示器的音视频参数B的交集,以得到音视频参数数组B中的音视频参数B和第2路显示器的音视频参数B的共同部分。
求解音视频参数数组C中的音视频参数C与第2路显示器的音视频参数C的交集,以得到音视频参数数组C中的音视频参数C和第2路显示器的音视频参数C的共同部分。
求解音视频参数数组D中的音视频参数D与第2路显示器的音视频参数D的交集,以得到音视频参数数组D中的音视频参数D和第2路显示器的音视频参数A的共同部分。
更具体地说,当音视频参数A为最佳分辨率时,若第2路显示器的最佳分辨率小于音视频参数数组A中的最佳分辨率时,认为第1路显示器和第2路显示器的最佳分辨率的共同部分为第2路显示器的最佳分辨率,将第2路显示器的最佳分辨率替换存储在音视频参数数组A中的第1路显示器的最佳分辨率。若第2路显示器的最佳分辨率大于音视频参数数组A中的最佳分辨率时,认为第1路显示器和第2路显示器的最佳分辨率的共同部分为第1路显示器的最佳分辨率,此时,保持音视频参数数组A中的最佳分辨率不变。
S107、将各个音视频参数的共同部分分别替换存储在相应的音视频参数数组内的音视频参数:
具体地,将音视频参数A的共同部分替换存储在音视频参数数组A中的音视频参数;
将音视频参数B的共同部分替换存储在音视频参数数组B中的音视频参数;
将音视频参数C的共同部分替换存储在音视频参数数组C中的音视频参数;
将音视频参数C的共同部分替换存储在音视频参数数组C中的音视频参数。
因此,步骤S107之后,各个音视频参数数组中包含的音视频参数为第1路显示器和第2路显示器共同包含的音视频参数。
S108、判断各个音视频参数数组中是否存在空数组:
需要说明的是,在第1路显示器和第2路显示器的各个音视频参数求交集的过程中,有可能存在第1路显示器和第2路显示器的某个音视频参数不存在相同的部分,此时交集为空集,第1路显示器和第2路显示器的该音视频参数没有共同部分,那么此时该音视频参数数组就变成了空数组。
因此,在本步骤中,判断各个音视频参数数组中是否存在空数组,如果是,执行步骤S109,如果否,执行步骤S110。
S109、将该音视频参数对应的最小支持格式存储在该音视频参数数组中:
如果存在一个或多个音视频参数数组为空数组,则将该音视频参数对应的最小支持格式存储在该音视频参数数组中。一般情况下,该音视频参数对应的最小支持格式能够被几乎所有型号的显示器所支持。因此,该音视频参数对应的最小支持格式可以看作是第1路显示器和第2路显示器的该音视频参数的共同部分。
S110、将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID。
所述预定顺序是指显示器EDID的各个音视频参数的排列顺序,将所有各个音视频参数数组按照预定顺序组合在一起,就可以形成多路共用EDID。该多路共用EDID为第1路显示器和第2路显示器共用的EDID。
S111、存储多路共用EDID:
为了使信号源获取该多路共用EDID,在得到多路共用EDID之后,还可以将多路共用EDID存储在EEPROM存储器内。
S112、计算所述多路共用EDID的数据块block的校验和,并将所述检验和填充到对应数据块block中的最后一个字节里。
为了确保组合后的多路共用EDID的有效性,在得到组合后的多路共用EDID之后,计算所述多路共用EDID的数据块block的校验和,并将所述检验和填充到对应数据块block中的最后一个字节里。
以上为本发明实施例一所述的两路显示器的扩展显示器标识数据EDID的组合方法。通过对第1路显示器和第2路显示器的EDID内的各个音视频参数求交集,以得到各个音视频参数的共同部分,并将该共同部分替换存储在各个音视频参数数组中。若某个音视频参数中不存在共同部分时,将该音视频参数的最小格式存储在该音视频参数对应的数组中。最后按照预定顺序将各个视频参数数组组合在一起,从而形成2路显示器的共用EDID。
在形成的该共用EDID中,包括两路显示器共同支持的音视频参数。当该两路显示器为信号源下游的所有各路显示器时,该共用EDID被信号源获取后,信号源根据该共用EDID中的音视频参数向外输出的音视频数据能够被下游的显示器所支持,因此,在各路显示器播放音视频数据时,不会出现黑屏或不能显示的情况。
实施例一在获取到显示器的EDID之后,直接对该EDID进行解析,然而在获取显示器的EDID的过程中,有可能因为各种原因导致获取的EDID不是有效数据,所以,为了检验获取EDID的有效性,在解析之前,优选对EDID数据的有效性进行判断。具体参见实施例二。
实施例二
实施例二所述的组合方法与实施例一所述的组合方法有诸多相似之处,为了简要起见,本发明实施例仅对其不同之处进行着重说明。其相似之处请参见实施例一的描述。
参见图2,实施例二所述的多路显示器的扩展显示器标识数据EDID的组合方法包括以下步骤:
步骤S201与实施例一中的步骤S101相同,为了简要起见,在此不再详细描述,详细信息请参见实施例一的描述。
S202、将所述第1路显示器的EDID缓存在第一数组中:
S203、判断第1路显示器的EDID是否有效,如果是,执行步骤S204;
S204、将所述第1路显示器的EDID作为多路共用EDID的模块,并将所述第1路显示器的EDID存储在第二数组中:
步骤S205至步骤S207与实施例一中的步骤S102至步骤S104相同,为了简要起见,在此不再详细描述,详细信息请参见实施例一的描述。
S208、判断第2路显示器的EDID是否有效,如果是,执行步骤S209。
步骤S209至步骤S216与实施例一中的S105至步骤S112相同,为了简要起见,在此不再详细描述,详细信息请参见实施例一的描述。
以上为本发明实施例二所述的多路显示器的EDID的组合方法。通过实施例二提供的多路显示器的EDID的组合方法,能够确保获取的EDID数据的有效性,进而能够保证组合后的多路共用EDID的有效性。
需要说明的是,EDID中的数据以数据块为单位,在每个EDID中至少包括一个数据块block0,在数据块block0中包括是否存在数据块block1的标识符。此时,本发明实施例提供的多路显示器的EDID的组合方法的具体实现方式请参见实施例三的描述。
实施例三
参见图3,实施例三提供的多路显示器的EDID的组合方法包括以下步骤:
S301、获取第1路显示器的EDID的数据块block0:
由于EDID是以block为单位,所以单片机与第1路显示器建立连接后,获取第1路显示器的EDID的数据块block0。
S302、将所述第1路显示器的EDID的数据块block0缓存在第一数组中。
需要说明的是,为了节省存储空间,第一数组可以重复循环利用。
S303、判断所述第1路显示器的EDID的数据块block0中的数据是否有效,如果是,执行步骤S304。
需要说明的是,每一个数据块block均包含128个字节,其包含的所有数据相加的总和是256的倍数。通过计算数据块block的数据之和可以判断数据的有效性。另外,判断数据的有效性,还可以通过DDC通道是否异常,EDID数据的标志头是否正确。当DDC通道正常、EDID数据的标志头正确以及数据的校验和正确时,该EDID数据有效。
S304、将所述第1路显示器的EDID的数据块block0作为多路共用EDID的数据块block0的模板,将所述第1路显示器的EDID的数据块block0存储在第二数组中。
S305、解析所述第1路显示器的EDID的数据块block0,以得到存储在所述第1路显示器的EDID的数据块block0中的各个音视频参数以及是否存在数据块block1的标识符。
S306、将所述第1路显示器的EDID的数据块block0中的各个音视频参数分别存储到不同的音视频参数数组中。
通常情况下,在EDID的数据块block0中包含的音视频参数为最佳分辨率和最大支持格式时钟频率。在本发明实施例中,将最佳分辨率存储在第三数组中,将最大支持格式时钟频率存储在第四数组中。
S307、如果第1路显示器的EDID包括数据块block1,获取第1路显示器的EDID的数据块block1;
根据block0中的是否存在数据块block1的标识符来判断第1路显示器的EDID是否包括数据块block1。一般情况下,当标识符为1时,表示包括数据块block1。当标识符为0时,表示不包括数据块block1。
在本步骤中,如果第1路显示器的EDID包括数据块block1,获取第1路显示器的EDID的数据块block1。
S308、将所述第1路显示器的EDID的数据块block1作为多路共用EDID的block1的模块,并将其存储在第一数组中;
如上所述,由于第一数组可以重复循环利用,当block0的数据解析完毕后,该第一数组就被释放出来,可以供其它数据的存储所用。因此,为了节省存储资源,作为本发明的一个优选实施例,将第1路显示器的EDID的数据块block1存储在第一数组中。
另外,所述将所述第1路显示器的EDID的数据块block1作为多路共用EDID的block1的模块,意思是多路共用EDID的block1的格式和音视频参数的排列顺序与第1路显示器的EDID的数据块block1的相同。
S309、判断所述第1路显示器的EDID的数据块block1的数据是否有效,如果是,执行步骤S310。
需要说明的是,判断第1路显示器的EDID的数据块block1的数据是否有效的方式与判断第1路显示器的EDID的数据块block0的数据是否有效的方式相同,为了简要起见,在此不再详细描述,详细信息请参见上述描述。
S310、解析所述第1路显示器的EDID的数据块block1,以得到存储在所述第1路显示器的EDID的数据块block1中的各个音视频参数;
根据HDMI/CEA/VESA协议标准解析所述第1路显示器的EDID的数据块block1,以得到存储在所述第1路显示器的EDID的数据块block1中的各个音视频参数。需要说明的是,EDID的数据块block1包括多个子块,每个子块内包含一种类型的音视频参数。
具体地,在本发明实施例中,数据块block1包括以下音视频参数:是否支持基本音频的标识符、是否支持YCbCr444和442的标识符、音频格式、视频格式、视频容量等等。其中,音频格式、视频格式、视频容量分别存储在不同的子数据块内。
在本发明实施例中,block1可以包括以下子数据块:video block、audioblock、Vendor block、Speaker block、video Capabltily block。
S311、将所述第1路显示器的EDID的数据块block1中的各个音视频参数分别存储到不同的音视频参数数组中:
在本发明实施例中,将解析出的block1中的各个音视频参数分别存储在不同的音视频参数数组中。具体地,将是否支持基本音频的标识符、是否支持YCbCr444和442的标识符存储在第五数组中;将video支持的格式和支持的格式的数量存储在第六数组中;将audio支持的格式和支持格式的数量存储在第七数组中;将vendor支持的格式和支持格式的数量存储在第八数组中;将speaker支持的格式和支持格式的数量存储在第九数组中;将video capability格式和支持格式的数量存储在第十数组中。
S312、获取第2路显示器的EDID的数据块block0。
S313、将所述第2路显示器的EDID的数据块block0缓存在所述第一数组中。
当第1路显示器的EDID的数据块block1中的数据解析完成后,第一数组就被释放出来。因此,可以将第2路显示器的EDID的数据块block0缓存在第一数组中,以达到节约存储资源的目的。
S314、判断所述第2路显示器的EDID的数据块block0的数据的是否有效,如果是,执行步骤S315。
S315、解析所述第2路显示器的EDID的数据块block0的数据,以得到存储在第2路显示器的EDID的数据块block0中的各个音视频参数以及是否存在数据块block1的标识符。
S316、求解用于存储block0的各个音视频参数的数据组中的音视频参数与第2路显示器的各个音视频参数的交集,以得到第1路显示器和第2路显示器的block0中的各个音视频参数的共同部分。
具体地,求解第三数组中的最佳分辨率与第2路显示器的最佳分辨率的交集,若第2路显示器的最佳分辨率小于第三数组中的最佳分辨率,则两者的共同部分为第2路显示器的最佳分辨率,若第2路显示器的最佳分辨率大于第三数组中的最佳分辨率,则两者的共同部分为第1路显示器的最佳分辨率。
采用同样的方法,求解第四数组中的最大支持格式时钟频率与第2路显示器的block0中的最大支持格式时钟频率的共同部分。
S317、将block0中的各个音视频参数的共同部分分别替换存储在相应的音视频参数数组中的音视频参数。
将最佳分辨率的共同部分替换存储在第三数组中,将最大支持格式时钟频率的共同部分替换存储在第四数组中。
S318、如果存在数据块block1,获取第2路显示器的EDID的数据块block1。
S319、将第2路显示器的EDID的数据块block1存储在第一数组中。
S320、判断第2路显示器的EDID的数据块block1的数据是否有效,如果是,执行步骤S321。
S321、解析第2路显示器的EDID的数据块block1的各个音视频参数。
S322、求解用于存储block1中的各个音视频参数数据组中的音视频参数与第2路显示器的各个音视频参数的交集,以得到第1路显示器和第2路显示器的block1中的各个音视频参数的共同部分;
具体地,比较第五数组中的是否支持基本音频的标识符、是否支持YCbCr444和442的标识符与第2路显示器的是否支持基本音频的标识符、是否支持YCbCr444和442的标识符,求交集,得到第1路显示器和第2路显示器是否支持基本音频的标识符、是否支持YCbCr444和442的标识符的共同部分。
比较第六数组中的video格式与第2路显示器的video格式,得出video格式的共同部分。
比较第七数组中的audio格式与第2路显示器的audio格式,得出audio格式的共同部分。
比较第八数组中的vendor格式与第2路显示器的vendor格式,得出vendor格式的共同部分。
比较第九数组中的speaker格式与第2路显示器的speaker格式,得出speaker格式的共同部分。
比较第十数组中的video capability格式与第2路显示器的video capability格式,得出video capability格式的共同部分。
S323、将block1中的各个音视频参数的共同部分分别替换存储在相应的音视频参数数组中的音视频参数。
S324、判断各个音视频参数数组是否为空数组,如果一个或多个音视频参数数组为空数组,执行步骤S325。
S325、将该音视频参数对应的最小支持格式存储在该音视频参数数组中。
S326、将用于存储block0中的各个音视频参数的数据组按照第一预定顺序组合在一起,以形成多路共用EDID的block0;如果EDID中存在block1,将用于存储block1中的各个音视频参数的数据组按照第二预定顺序组合在一起,以形成多路共用EDID的block1。
S327、将多路共用EDID的block0存储在第二数组中,将多路共用EDID的block1存储在第一数组中。
由于第一数组和第二数组可以重复循环利用,因此,为了解决存储资源,将组合后的多路共用EDID的block0存储在第二数组中,将组合后的多路共用EDID的block1存储在第一数组中。
需要说明的是,在本发明实施例中,预定个数可以为18个。
S328、分别计算多路共用EDID数据的block0和block1的校验和,并将block0的校验和与block1的校验和分别填充多路共用EDID的block0和block1中的最后一个字节里。
为了保证组合后的多路共用EDID数据的有效性,在本发明实施例中,还可以计算多路共用EDID数据的block0和block1的校验和,并将block0的校验和与block1的校验和分别填充多路共用EDID的block0和block1中的最后一个字节里。
实施例三描述了对多路显示器的EDID分数据块进行组合的方法。在此方法中,各个数组可以重复循环利用,因此,节约了存储资源。
需要说明的是,实施例一至实施例三所述的组合方法是以两路显示器为例进行说明的。实际上,作为本发明实施例的扩展,本发明实施例提供的多路显示器的EDID的组合方法,可以适用于更多路显示器。当适用于3路以上的显示器的EDID的组合时,实施例一中循环执行步骤S104至步骤S108中,直到所有各路显示器均解析组合完毕,在循环过程中,将“第2路显示器”替换为其它路显示器即可。实施例二中循环执行步骤S207至步骤S215。在实施例三中,循环执行步骤S312至步骤S322。
基于上述实施例提供的多路显示器的扩展显示器标识数据EDID的组合方法,本发明实施例还提供了多路显示器的扩展显示器标识数据EDID的组合装置。具体参见实施例四。
实施例四
如图4所示,所述多路显示器的扩展显示器标识数据EDID的组合装置包括以下单元:
第一获取单元401,用于获取第1路显示器的EDID;
第一解析单元402,用于解析所述第1路显示器的EDID,以得到所述第1路显示器的各个音视频参数;
第一存储单元403,用于将所述第1路显示器的各个音视频参数分别存储在不同的音视频参数数组中;
第二获取单元404,用于获取第2路显示器的EDID;
第二解析单元405,用于解析所述第2路显示器的EDID,以得到所述第2路显示器的各个音视频参数;
求解单元406,用于求解各个音视频参数数组中的音视频参数与第2路显示器相对应的各个音视频参数的交集,以得到各个音视频参数数组中的音视频参数和第2路显示器的各个音视频参数的共同部分;
第二存储单元407,用于将各个音视频参数的共同部分分别替换存储在相应的音视频参数数组内的音视频参数;
第一判断单元408,用于判断各个音视频参数数组是否为空数组,如果一个或多个音视频参数数组为空数组,将该音视频参数对应的最小支持格式存储在该音视频参数数组中;
组合单元409,用于将所有各个音视频参数数组按照预定顺序组合在一起,以形成多路共用EDID。
利用实施例四提供的组合装置,能够将多路显示器的EDID组合成多路显示器共用的EDID。当信号源根据该多路共用EDID向下游输出音视频数据时,下游的所有各路显示器均能够支持该音视频数据,因此在位于下游的各路显示器播放该音视频数据时,不会出现黑屏或不能播放的现象。
为了方便信号源获取组合后的多路共用EDID,所述组合装置还可以包括:
第三存储单元410,用于在形成多路共用EDID之后,存储所述多路共用EDID。
为了保证组合后的多路共用EDID数据的有效性,上述所述组合装置还可以包括:
计算单元411,用于计算所述多路共用EDID的数据块block的校验和,并将所述检验和填充到对应数据块block中的最后一个字节里。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。
虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。