一种带宽自适应的图像数据访问方法、系统及显示控制装置
技术领域
本发明涉及图像数据的传输,具体地,涉及一种图像数据访问方法、系统和显示控制装置。
背景技术
根据人眼的视觉物理结构,人们对亮度较敏感,而对于色度不太敏感。因此就出现了YUV格式的图像数据,Y代表亮度,UV代表是色度,为了节省视频和图像的存储空间,采用压缩方式时直接丢到UV的部分数据,于是就出现了YUV422(UV各取一半),YUV420(UV取1/4),YUV400直接把UV去掉(黑白图像)等格式。一般的JPEG图像采用YUV422格式压缩,而视频数据一般采用的是YUV420格式压缩,目前液晶显示屏(LCD)控制器一般使用YUV422格式的数据源作为LCD的输出数据。因此,现有的LCD控制器从图像缓存区读取数据时一直使用YUV422的读取格式。
图1示出了一嵌入式系统与图像(如视频、图片等)处理、传输和显示相关的部分结构,多个功能模块如LCD控制器、图像处理装置和媒体播放器等(均可集中在处理器中)向仲裁器请求访问存储器,仲裁器会根据配置的策略决定何时接受这些请求,开始数据传输。访问该存储器的模块很多时,LCD控制器获得的数据传输带宽可能较少,导致读取数据的速度很慢,如LCD控制器读取到的数据量小于正常显示输出到LCD的数据量,可能会导致LCD控制器的内部缓存被读空,LCD出现刷屏错误。即使LCD控制器能够进行数据的补充,也是根据前面的数据来补充,会影响显示质量。
发明内容
本发明要解决的技术问题是提供一种带宽自适应的图像数据访问方法和系统,可以针对实际的数据传输带宽做自适应的调整,在带宽紧张时尽可能地保证图像的正常显示。
为了解决上述问题,本发明提供了一种带宽自适应的图像数据访问方法,应用于包括存储器、存储资源管理装置和显示控制装置的系统,该方法包括:
配置带宽特征信息和图像数据格式的对应关系信息,该对应关系信息中至少包括两种图像数据格式,每帧数据越多的图像数据格式对应的带宽特征信息表示的数据传输带宽越大;
所述显示控制装置实时检测与所述存储器之间的数据传输带宽情况,获取带宽特征信息,并根据所述带宽特征信息查找所述对应关系信息,确定要采用的图像数据格式,如该要采用的图像数据格式与当前采用的图像数据格式不同,将该要采用的图像数据格式更新为当前采用的图像数据格式;
所述显示控制装置向所述存储资源管理装置请求读取存储器中的图像数据,得到响应后,根据由当前采用的图像数据格式和所述存储器中图像数据采用的图像数据格式确定的数据读取方式,从所述存储器中读取到所需的图像数据。
进一步地,上述图像数据访问方法还具有以下特点:
所述带宽特征信息为所述显示控制装置内部缓存中的数据量信息,每种图像数据格式对应于一数据量信息范围,且每帧数据越多的图像数据格式对应于数据量越大的数据量范围。
进一步地,上述图像数据访问方法还具有以下特点:
所述存储器中图像数据采用的图像数据格式是固定的,且存储器中的图像数据至少可作为两种图像数据格式的数据源;或者
所述系统还包括图像处理装置,所述显示控制装置更新当前采用的图像数据格式时,还通过第一更新通知将更新后的图像数据格式通知该图像处理装置;该图像处理装置收到第一更新通知后,从下一帧开始按该第一更新通知中的图像数据格式向所述存储器写入图像数据,并通过第二更新通知将该下一帧的帧标识及其采用的图像数据格式通知所述显示控制装置;所述显示控制装置收到第二更新通知后,在请求读取具有该第二更新通知中帧标识的帧的图像数据时,将所述存储器中图像数据采用的图像数据格式更新为该第二更新通知中的图像数据格式。
进一步地,上述图像数据访问方法还具有以下特点:
所述存储器中图像数据采用的图像数据格式及显示控制装置确定要采用的图像数据格式均为YUV格式。
进一步地,上述图像数据访问方法还具有以下特点:
将YUV格式的图像数据写入所述存储器时,将Y数据和UV数据分开存储;所述显示控制装置从所述存储器中读取所需的图像数据时,读取所有的Y数据,并根据所述存储器中图像数据的格式和要采用的图像数据格式,读取全部UV数据,或者从每2组UV数据中读取一组UV数据,或者从每4组UV数据中读取1组UV数据,或者不读取UV数据。
进一步地,上述图像数据访问方法还具有以下特点:
所述对应关系信息中,每一图像数据格式对应于一种带宽特征信息范围,所述显示控制装置根据检测得到的当前的带宽特征信息或者根据该当前的带宽特征信息与之前1次或多次检测得到的带宽特征信息的加权运算的结果,查找所述对应关系信息,确定要采用的图像数据格式。
进一步地,上述图像数据访问方法还具有以下特点:所述显示控制装置为液晶显示屏控制器。
为了解决上述问题,本发明提供了一种带宽自适应的图像数据访问系统,包括存储器,与该存储器连接的存储资源管理装置,以及与该存储资源管理装置连接的显示控制装置,其中
所述存储器用于保存显示控制装置要读取的图像数据;
所述显示控制装置用于实时检测与所述存储器之间的数据传输带宽情况,获取带宽特征信息,并根据所述带宽特征信息查找配置的带宽特征信息和图像数据格式的对应关系信息,确定要采用的图像数据格式,如该要采用的图像数据格式与当前采用的图像数据格式不同,将该要采用的图像数据格式更新为当前采用的图像数据格式;以及用于向所述存储资源管理装置请求读取存储器中的图像数据,得到响应后,根据由当前采用的图像数据格式和所述存储器中图像数据采用的图像数据格式确定的数据读取方式,从所述存储器中读取到所需的图像数据;
所述对应关系信息至少包括两种图像数据格式,每帧数据越多的图像数据格式对应的带宽特征信息表示的数据传输带宽越大。
进一步地,上述图像数据访问系统还可具有以下特点:
所述存储器中保存的图像数据采用的图像数据格式是固定的,且所述存储器中的图像数据至少可作为两种图像数据格式的数据源;或者
所述自适应带宽控制系统还包括图像处理装置,其中:所述显示控制装置更新当前采用的图像数据格式时,还通过第一更新通知将更新后的图像数据格式通知该图像处理装置;所述图像处理装置收到第一更新通知后,从下一帧开始按该第一更新通知中的图像数据格式向所述存储器写入图像数据,并通过第二更新通知将该下一帧的帧标识及其采用的图像数据格式通知所述显示控制装置;所述显示控制装置收到第二更新通知后,在请求读取具有该第二更新通知中帧标识的帧的图像数据时,将所述存储器中图像数据采用的图像数据格式更新为该第二更新通知中的图像数据格式。
进一步地,上述图像数据访问系统还可具有以下特点:
所述带宽特征信息为所述显示控制装置内部缓存中的数据量信息,每种图像数据格式对应于一数据量信息范围,且每帧数据越多的图像数据格式对应于数据量越大的数据量范围。
进一步地,上述图像数据访问系统还可具有以下特点:
所述显示控制装置为液晶显示屏控制器;
所述存储器中图像数据采用的图像数据格式及所述显示控制装置确定要采用的图像数据格式均为YUV格式。
上述方法和系统根据图像数据传输带宽的情况确定要采用的图像数据格式,在带宽紧张时采用每帧数据少的格式并自动调整数据的读取方式,以减轻对数据传输带宽的需求,特别适用于资源紧张的嵌入式系统中LCD的图像显示控制。在LCD向大屏化发展的趋势下,LCD控制器访问数据带来的带宽压力越来越突出,运用本发明可以很好地解决了这个问题,避免LCD刷屏错误,提高LCD的显示质量。
本发明要解决的技术问题是提供一种显示控制装置,可以针对实际的数据传输带宽对图像数据格式做自适应的调整,尽可能保证图像的正常显示。
为了解决上述问题,本发明提供了一种显示控制装置,包括数据请求模块、内部缓存模块、数据处理模块和格式控制模块,其中:
所述格式控制模块用于实时检测数据传输带宽情况,获取带宽特征信息,根据配置的带宽特征信息与图像数据格式的对应关系信息确定要采用的图像数据格式,在该要采用的图像数据格式与当前采用的图像数据格式不同时,将该要采用的图像数据格式通知给数据请求模块和数据处理模块;所述对应关系信息中至少包括两种图像数据格式,每帧数据越多的图像数据格式对应的带宽特征信息表示的数据传输带宽越大;
所述数据请求模块用于在收到格式控制模块的通知后,将当前采用的图像数据格式更新为通知中的图像数据格式;以及向存储资源管理装置请求读取存储器中的图像数据得到响应后,根据当前采用的图像数据格式和存储器中图像数据的图像数据格式确定的数据读取方式,从存储器读取到所需的图像数据并写入内部缓存模块;
所述内部缓存模块用于缓存读取到的图像数据;
所述数据处理模块用于根据当前采用的图像数据格式,对内部缓存模块中的图像数据进行显示前的处理,处理后的数据输出到显示装置。
进一步地,上述显示控制装置还可具有以下特点:所述格式控制模块进一步包括配置单元、检测单元和判决单元,其中:
所述配置单元用于记录配置的带宽特征信息与图像数据格式的对应关系信息,该带宽特征信息为所述内部缓存模块中的数据量信息,所述对应关系信息中,每种图像数据格式对应于一数据量信息范围,且每帧数据越多的图像数据格式对应于数据量越大的数据量范围;
所述检测单元用于实时检测所述内部缓存模块中的数据量信息并传送到所述判决单元;
所述判决单元用于确定检测得到的当前的数据量信息所在的数据量范围,或者确定将该当前的数据量信息与之前1次或多次检测得到的数据量信息做加权运算得到的数据量信息所在的数据量范围,将确定的该数据量范围对应的图像数据格式确定为要采用的图像数据格式,在该要采用的图像数据格式与当前采用的图像数据格式不同时,将该要采用的图像数据格式通知数据请求模块和数据处理模块。
进一步地,上述显示控制装置还可具有以下特点:
所述格式控制模块在要采用的图像数据格式与当前采用的图像数据格式不同时,还要将该要采用的图像数据格式通知图像处理装置;
所述数据请求模块收到所述图像处理装置因改变写入存储器的图像数据格式通知的某帧标识及该帧图像数据的图像数据格式后,在请求读取该帧的图像数据时,将存储器中图像数据采用的图像数据格式更新为该通知中的图像数据格式,结合当前采用的图像数据格式确定数据读取方式。
进一步地,上述显示控制装置还可具有以下特点:所述显示控制装置为液晶显示屏控制器。
进一步地,上述显示控制装置还可具有以下特点:所述存储器中图像数据采用的图像数据格式及所述显示控制装置确定要采用的图像数据格式均为YUV格式。
上述显示控制装置根据数据传输带宽的情况确定要采用的图像数据格式,在带宽紧张时采用每帧数据少的格式并自动调整数据的读取方式,以减轻对数据传输带宽的需求。应用于LCD控制器时,可以尽可能避免LCD刷屏错误,提高LCD的显示质量。
附图说明
图1是嵌入式系统中与图像数据处理、传输和显示相关的部分结构的示意图;
图2是图1中LCD控制器的结构示意图;
图3是本发明实施例自适应带宽控制方法的流程图。
具体实施方式
第一实施例
本实施例以LCD图像显示时LCD控制器与存储器之间的图像数据传输为例,说明LCD控制器如何根据数据传输带宽来自适应地调整图像数据格式。在该实施例的相关描述中,数据传输带宽特指LCD控制器请求读取存储器中图像数据时获得的数据传输带宽。
请参照图1所示,LCD控制器需要向仲裁器请求读取存储器中YUV格式的图像数据,处理后输出到LCD进行显示。
存储器用于缓存图像数据,且所述图像数据至少可以作为两种图像数据格式的数据源,如可以是YUV444格式、YUV422格式或YUV420格式等。在本实施例中,图像处理装置向存储器写入图像数据时,按Y数据和UV数据分开存储,这样LCD控制器可以更方便地按要采用的YUV格式读取到所需的Y数据和UV数据。
仲裁器用于接收各模块对存储器的访问请求,依照配置的策略确定允许访问存储器的模块。
LCD用于接收LCD控制器输出的图像数据并显示。
LCD控制器用于实时检测数据传输带宽情况,获取带宽特征信息,并根据配置的带宽特征信息与YUV格式的对应关系确定要采用的YUV格式,向仲裁器请求读取存储器中的图像数据得到响应后,根据当前采用的YUV格式和存储器中图像数据的YUV格式确定的数据读取方式,从存储器中读取到所需的图像数据,经缓存和处理后输出到显示装置。
如图2所示,该LCD控制器又包括数据请求模块、内部缓存模块、格式控制模块和数据处理模块,其中:
格式控制模块用于实时检测数据传输带宽情况,获取带宽特征信息,根据配置的带宽特征信息与YUV格式的对应关系确定要采用的YUV格式,在该要采用的YUV格式与当前采用的YUV格式不同时,将该要采用的YUV格式通知给数据请求模块和数据处理模块。
该格式控制模块进一步包括:
配置单元,可以是一组寄存器,用于记录配置的带宽特征信息与YUV格式的对应关系信息。由于数据传输带宽小于当前YUV格式图像的显示带宽时,写入内部缓存模块的数据较少,内部缓存模块中的数据量会逐渐减少,反之,内部缓存模块中的数据量会逐渐增大。因此,可以将内部缓存模块中的数据量信息作为带宽特征信息,将每种YUV格式对应到一个数据量范围,且每帧数据越多的YUV格式对应于数据量越大的数据量范围。
检测单元,用于实时检测数据传输带宽情况并将得到的带宽特征信息传送到判决单元。本实施例检测的是当前内部缓存模块存储的数据量信息,该数据量信息即可以是数据量值(可根据内部缓存读写指针的差值计算),也可以是已使用缓存空间占缓存总空间的比值,等等。
判决单元,用于根据收到的带宽特征信息和配置的所述对应关系信息,确定要采用的YUV格式并记录,在该要采用的YUV格式与当前采用的YUV格式不同时,将该要采用的YUV格式通知数据请求模块和数据处理模块。作为一个示例,可根据收到的数据量信息判断该数据量属于哪一个数据量范围,然后将该数据量范围对应的YUV格式确定为要采用的YUV格式。
数据请求模块用于在收到格式控制模块的通知后,将当前采用的YUV格式更新为通知中的YUV格式;以及在向仲裁器请求读取存储器中的图像数据得到响应后,根据当前采用的YUV格式和存储器中图像数据的YUV格式确定的数据读取方式,从存储器读取到所需的图像数据并写入内部缓存模块。数据请求模块收到通知后,可以即时完成上述更新操作,也可以在一帧图像的数据读取完成后完成上述更新操作。
在Y数据和UV数据分开存储的情况下,假定存储器中的图像数据为YUV420格式(1个像素有1个Y数据,4个像素共用1组采用相应的数据读取方式,从所述存储器中读取到所需的图像数据,经缓存和处理后输出到所述显示装置UV数据),而要采用的是YUV400格式,只读取存储器中的Y数据即可。假定存储器中的图像数据为YUV422格式(1个像素有1个Y数据,2个像素共用1组UV数据),而要采用的是YUV420格式,数据请求模块读取所有Y数据,对UV数据则每2组读取1组。存储器中的图像数据为YUV444格式时,需读取所有Y数据,对存储的UV数据,则根据要采用的YUV格式,全部读取或每2组读取1组或每4组读取1组或不读取。
需说明的是,即使Y数据和UV数据不分开存储,如存储的YUV422格式的数据序列为YUVY YUVY YUVY YUVY YUVY YUVY......,数据请求模块也可以按要采用的YUV格式采用相应的数据读取方式以读取到所需的数据,如要采用YUV420格式时,可通过读地址生成规则从中读出所有Y数据和一半UV数据,得到数据序列YUVYY YYUVYY YYUVYY......。
内部缓存模块用于缓存读取到的图像数据,可采用FIFO寄存器。
数据处理模块,用于根据当前采用的YUV格式,对内部缓存模块中的图像数据进行显示前的处理,处理后的数据输出到LCD进行显示。该显示前的处理可以与现有LCD控制器相同,如将YUV格式的数据转换为RGB格式,显示加速处理等等。
相应地,本实施例带宽自适应的图像数据访问方法包括以下步骤:
步骤201:将要显示的YUV格式的图像数据写入到存储器中,其中的Y数据和UV数据分开存储,且至少可作为两种图像数据格式的数据源;
这里的图像数据可以是图像处理模块处理后得到的数据,也可以是外部导入的数据。
步骤202,LCD控制器实时检测与存储器之间的数据传输带宽情况,获取带宽特征信息;
本实施例是以LCD控制器内部缓存中存储的数据量信息作为带宽特征信息。
步骤203:LCD控制器根据当前的带宽特征信息查找配置的带宽特征信息和YUV格式的对应关系信息,确定要采用的YUV格式,如该要采用的YUV格式与当前采用的YUV格式不同,将该要采用的YUV格式更新为当前采用的YUV格式;
如上所述,本实施例配置了每种YUV格式对应的数据量范围,每帧数据越多的YUV格式对应于数据量越大的数据量范围。假定LCD控制器内部缓存的容量为X,在一个示例中,可以将大于X/2的数据量范围对应于YUV422格式,将X/4~X/2的数据量范围对应于YUV420格式,将小于X/4的数据量范围对应于YUV400格式,等等。
LCD控制器也可以根据当前检测到的带宽特征信息和之前1次或多次检测到的带宽特征信息做加权运算,如Y=Yn*α+Yn-1*(1-α),α为设定的加权因子,Yn和Yn-1分别表示当前和最近一次检测到的带宽特征信息,再根据加权运算的结果和配置的对应关系信息确定要采用的YUV格式。
步骤204:LCD控制器向仲裁器请求读取存储器中的图像数据得到响应后,根据当前采用的YUV格式和存储器中图像数据的YUV格式确定的数据读取方式,从存储器读取到该YUV格式的图像数据并写入内部缓存。
该步中请求读取图像数据的操作与上述检测和判决是并行的,并非执行完之前的步骤201~203后再执行该步骤。
根据以上流程,在数据传输带宽较大时,内部缓存的数据量大,读取的将是帧数据较多的YUV格式的图像数据,可以获得最好的显示效果。而在数据传输带宽较小时,内部缓存的数据量小,读取的将是每帧数据较少的YUV格式的图像数据,此时显示所需要的数据量会减少,因而可以避免内部缓存被读空而出现LCD刷屏失败的现象。
在上述实施例基础上可以有一些变例:
例如,可以将请求图像数据的平均响应时间作为上述带宽特征参数,LCD控制器需要对每次请求图像数据的响应时间进行计时,并统计最近N次请求图像数据的平均响应时间或累计响应时间,N为设置的次数,平均响应时间和累计响应时间越小,则说明数据传输带宽越大。在配置单元中则记录响应时间范围与YUV格式的对应关系信息,每帧数据越多的YUV格式对应于响应时间越小的响应时间范围。这样就可以根据最新统计的平均响应时间或累计响应时间所在的响应时间范围来确定要采用的YUV格式了。
第二实施例
上述实施例中,存储器中保存的图像数据的YUV格式是已知且不变的,LCD控制器根据当前采用的YUV格式就可以直接确定要采用的数据读取方式,即当前采用的YUV格式与数据读取方式是一一对应的。在本实施例中情况有所不同。
本实施例中,LCD对数据传输带宽情况的检测和对要采用的YUV格式的判决均与第一实施例相同。但LCD控制器在要采用的YUV格式与当前采用的YUV格式不同时,还将该要采用的YUV格式通知图像处理装置,可以是直接通知,也可以是经其他装置如系统主控制器间接通知。图像处理装置收到通知后,完成当前帧的数据写入,从下一帧开始将写入存储器的图像数据的YUV格式变为该通知中的YUV格式。这样可以避免图像处理装置按每帧数据多的YUV格式写入,而LCD控制器按每帧数据少的YUV格式读出,造成带宽、内存等资源的浪费。
本实施例中,因为存储器中图像数据的格式是可变的,LCD控制器就需要更新存储器中图像数据的格式,以确定正确的数据读取方式。图像处理装置在将写入存储器的某帧图像数据的YUV格式变为通知中的YUV格式时,应该将该帧标识及其图像数据的YUV格式通知LCD控制器;LCD控制器在请求读取该帧图像数据时,将存储器中图像数据的格式更新为图像处理装置发来的通知中该帧图像数据的YUV格式,这样就可以结合当前采用的YUV格式确定正确的数据读取方式了。
相应地,本实施例LCD控制器中的格式控制模块和数据请求模块与第一实施例有些区别。其中:
格式控制模块在要采用的YUV格式与当前采用的YUV格式不同时,还要将该要采用的YUV格式通知图像处理装置。具体由格式控制模块中的判决单元来通知。
数据请求模块收到图像处理装置通知的某帧标识及该帧图像数据的YUV格式后,在请求读取该帧的图像数据时,将存储器中图像数据的YUV格式更新为通知中该帧图像数据的YUV格式,结合当前采用的YUV格式确定数据读取方式。
图像处理装置在收到LCD控制器通知的要采用的YUV格式后,完成当前帧数据的写入,从下一帧开始将写入存储器的图像数据的YUV格式变为该通知中要采用的YUV格式,并将该下一帧的帧标识及其图像数据的YUV格式通知LCD控制器。
以上的带宽自适应的图像数据访问方法可以在开始显示时即采用,也可以在开始显示后再过一设定时间,等数据传输相对稳定再执行。
在上述实施例中,LCD控制器均可根据当前数据传输带宽情况灵活设置从存储器读取图像数据的格式,从而在数据传输带宽较小时尽可能读取到足够显示的数据,避免内部缓存被读空而造成刷屏错误,提高了LCD的显示质量。如,在一般的视频播放中实际的源数据是YUV420的数据,在数据传输带宽紧张时可以按YUV420格式读取图像数据并显示,这样对视频播放质量影响不大,而对带宽的需求则大大降低。因此尤其适用于嵌入式手持设备的LCD显示,如MP4,手机等。
基于以上公开的实施方式,本领域技术人员可以理解,本发明不局限于在几种YUV格式之间进行变换来实现自适应带宽调整,也不仅可用于LCD控制器,在其他需要进行图像显示的场景均可以采用本发明。无论采用怎样的图像数据格式,存储器中保存的图像数据都是按一定规则有序排列的,而确定的要采用的图像数据格式所需的图像数据均包含在该保存的图像数据中,根据两种图像数据格式的排列规则可以很容易地确定当前应采用的数据读取方式。而只要相应的显示控制装置能够基于实际的数据传输带宽情况自适应地调整从存储器读取的数据格式,在数据传输带宽较小时采用每帧数据较少的格式,就可以尽可能地避免该显示控制装置内部缓存被读空造成的刷屏错误,达到提高LCD显示质量的效果。
另外,实施例中虽然采用的是仲裁器,但本发明不局限于此,可以是任意用于管理存储器访问资源的存储资源管理装置。