首页> 中国专利> 由带交叉格式到带分离格式的格式转换设备

由带交叉格式到带分离格式的格式转换设备

摘要

提供一种将带交叉格式的图像数据转换为带分离格式的图像数据的格式转换设备。所述设备包括:存储器,存储带交叉格式的图像数据;转换模块,通过对每个跨距提升存储器的读取地址来读取存储器,并且将带交叉格式的图像数据转换为带分离格式的图像数据。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-08-18

    授权

    授权

  • 2008-09-03

    实质审查的生效

    实质审查的生效

  • 2008-07-09

    公开

    公开

说明书

技术领域

与本发明相一致的方法和设备涉及一种图像处理设备和方法,更具体地讲,涉及一种能够将带交叉格式的图像数据转换为带分离格式的图像数据的格式转换设备和方法。

背景技术

图1是示出根据现有技术的以带交叉格式(band interleave format)存储的图像数据的示图。由数码相机、数码摄像机等创建的数字图像数据一般地以图1中示出的带交叉格式被存储在图像缓冲器中或存储器中。此外,在个人计算机(PC)中存储的许多图像数据以带交叉格式被存储。一个像素的色彩可以被表示为红(R)、绿(G)和蓝(B)的结合。图1中一个像素的色彩被总共24位表示,其中,R、G和B中的每个由8位来表示。带交叉格式与在其中色带(color band)被混和的格式相对应。在图1的带交叉格式中,不分别地收集表示R、G和B的数据,而以RGBRGB等将色带混和。相反地,将在其中数据按照色带被分离的格式称为“带分离格式”(band separateformat)。例如,可以收集同一色带的N个数据的每个。此外,R被分别地收集,G被分别地收集,并且B被分别地收集。在这种情况下,数据被以诸如RR..RGG...GBB...B等的形式存储。在这种情况下,当同一色带的四个数据中的每个被收集时,其被表示为RRRRGGGGBBBBRRRRGGGGBBBB等等。RGB数据和具有不同形式(如YCbCr形式)的图像数据可类似地包括带交叉格式和带分离格式。

当处理图像数据时,在不同像素当中有相当多的同一色带数据的计算,或者在不同图像帧中的相应的像素当中有相当多的同一色带数据的计算。因而,当处理图像数据时,带分离格式较带交叉格式具有更高的计算效率。

因此,需要一种能够将带交叉格式的图像数据转换为带分离格式的图像数据的格式转换设备和方法。

发明内容

本发明的示例性实施例克服上述的不足以及上面没有描述的不足。此外,不要求本发明克服上述的不足,而且本发明的示例性实施例可能不克服上述的任何问题。

本发明的一方面提供一种能够有效地将带交叉格式的图像数据转换为带分离格式的图像数据的格式转换设备和方法。

本发明的另一方面提供一种这样的格式转换设备和方法,从而提高图像处理效率:其能够将带交叉格式的图像数据转换为带分离格式的图像数据,随后将ALU划分为N分块,并且通过单指令多数据(SIMD)方法处理带分离格式的图像数据。

根据本发明的另一方面,提供一种格式转换设备,所述设备包括:存储器,存储带交叉格式的图像数据;转换模块,通过以跨距提升存储器的读取地址来读取存储器,并且将带交叉格式的图像数据转换为带分离格式的图像数据。通过以跨距提升存储器的读取地址来读取的数据与同一类型的图像数据分量相对应。

根据本发明的另一方面,提供一种格式转换设备,所述设备包括:存储器,存储带交叉格式的图像数据;存储器控制器,在每个时钟周期,从基地址对每个跨距提升存储器的读取地址,并且将读取地址应用到存储器;包括N个寄存器的寄存器集合,所述N个寄存器的每个存储通过应用所述读取地址而连续地读取的所述N个数据的每个数据。存储在寄存器集合的数据与带分离格式相对应。

在本发明的一方面中,存储器控制器包括接收基地址和存储所述输入的基地址的锁存器。此外,在每个时钟周期,存储器控制器将存储在锁存器中的基地址和跨距相加的值输出到存储器的地址线,并且在锁存器中存储相加的值。

在本发明的另一方面中,所述设备还包括:控制器,通过将存储在所述N个寄存器中的数据同时地输入到N分块的ALU中来执行计算。

根据本发明的另一方面,提供一种格式转换设备,所述设备包括:存储器,存储带交叉格式的图像数据;转换模块,重复从存储器读取多个图像数据分量并且将所述多个图像数据分量存储在预定的寄存器中的操作,以及将所述多个图像数据分量转换为多个带分离格式的图像数据。

在本发明的另一方面中,所述转换模块包括:地址生成单元(AGU),生成用于从存储器读取所述多个图像数据分量的读取地址,并且将所述读取地址应用到存储器;寄存器集合,包括存储通过所述读取地址的应用读取的所述多个图像数据分量的多个寄存器;SIMD封隔器,激活在寄存器集合中预定位置的多个寄存器,并且将所述多个图像数据分量存储在所述多个寄存器中,所述预定位置取决于图像数据分量的类型。

附图说明

通过下面结合附图对本发明的特定示例性实施例的详细描述,本发明的上述和其他方面将会变得更加清楚而且更容易被理解,其中:

图1是示出根据现有技术的带交叉格式的示图;

图2是示出根据本发明的示例性实施例将带交叉格式转换为带分离格式的示图;

图3是示出根据本发明的示例性实施例的格式转换设备的示图;

图4是示出根据本发明的示例性实施例的AGU的示图;

图5是示出根据本发明的另一示例性实施例的格式转换设备的示图;

图6A至图6D是示出图5的格式转换设备的操作的示图;和

图7是示出根据本发明的示例性实施例将64位ALU划分为四个16位ALU和使用所述64位ALU的配置的示图。

具体实施方式

现在将详细地说明本发明的示例性实施例,其示例在附图中示出,其中,在所有附图中,相同的附图标号指代相同的元件。以下描述这些实施例,从而参照附图来说明本发明。

图2是示出根据本发明的示例性实施例将带交叉格式转换为带分离格式的示图。

图2的图像数据210被以带交叉格式存储。具体地说,理解为在图像数据210中,不收集红(R)、绿(G)和蓝(B)的每个色带,而是将其混和。此外,图像数据220被以带分离格式存储。在图像数据220中,对于R、G和B的每个色带,数据被分开。具体地说,K个R数据、K个G数据和K个B数据被收集。为了将带交叉格式的图像数据210转换为带分离格式的图像数据220,只有同一色带的数据从带交叉格式的图像数据210被提取,并且所述同一色带的数据以如图2所示,其每k个数据被连接的方式被存储。

参照图3,详细地描述根据本发明的示例性实施例的格式转换设备。

如图3所示,根据本示例性实施例的格式转换设备包括:存储带交叉格式的图像数据的存储器310和将带交叉格式的图像数据转换为带分离格式的图像数据的转换模块。

存储器310存储带交叉格式的图像数据。例如,当本发明的示例性实施例被应用于数码相机时,数码相机在存储器310中以带交叉格式存储成像的图像数据。上文详细地描述了带交叉格式。

转换模块通过对每个跨距(stride)提升存储器310的读取地址来读取存储器310,并且将带交叉格式的图像数据转换为带分离格式的图像数据。转换模块包括存储器控制器320和寄存器集合(register file)330。

存储器控制器320包括AGU,在每个时钟周期,AGU对每个跨距从基地址(base address)提升存储器310的读取地址,并且将所述读取地址应用到存储器310。具体地讲,存储器控制器320生成基地址,通过对每个跨距N-1次地提升基地址连续地生成N个地址,并且将所述基地址和N个地址应用到存储器310。

例如,假设图2的图像数据210被存储在存储器310中,并且每个图像数据分量(component)具有16位的大小。因而,图2的R0、G0、B0、R1、G1、B1等各具有16位的大小。此外,假设存储有R0的地址与“0”相应。由此,与基地址相对应的“0”通过基线(base line)321被输入到存储器控制器320中。此外,跟随R0的同一类型的图像数据分量与R1相应,并且由于R1的地址与“48”相应,所以“48”被输入到跨距线(stride line)323。

在这种情况下,存储器控制器320从所述基地址生成N个地址。第一个地址是基地址,后面的N-1个地址通过对每个跨距连续地提升基地址生成。所述生成的N个地址被应用到存储器310。N与分组(group)为多少个同一类型的图像数据分量相对应。

例如,当本示例性实施例通过收集同一类型的四个图像数据分量的每个来生成带分离格式的图像数据,即N=4时,基321输入和跨距323输入被执行,并且随后,在第一时钟周期(clock cycle),来自基321输入的基地址输入经由存储器310的地址输入线327被应用到存储器310。因而,与作为基地址的“0”相对应的R0的16位数据被读取,并且被输出到存储器310的数据线311。数据线311被发散为数据线313、315、317和319,其分别与寄存器集合330的寄存器331、333、335和337连接。在这种情况下,存储器控制器320通过允许写入(write enable,WE)线325选择并且仅激活(enable)寄存器集合330的寄存器331。因此,经由数据线313、315、317和319的R0的16位数据仅被记录在寄存器331中。

然后,虽然在基线321和跨距线323没有另外的输入,但是存储器控制器320在随后的时钟周期,通过地址输入线327自动地将地址值“48”应用到存储器310,并且通过WE线325仅激活寄存器333,所述地址值“48”通过将基地址“0”提升至与跨距相应的“48”获得。因此,通过地址“48”读取的R1的16位数据被输出到存储器310的数据线311。数据线311被发散为数据线313、315、317和319,并且分别与寄存器集合330的寄存器331、333、335和337连接。在这种情况下,由于仅仅寄存器集合330的寄存器333通过WE线325被激活,所以R1的16位数据被记录在寄存器333中。

然后,存储器控制器320在随后的时钟周期,通过地址输入线327将地址值“96”应用到存储器310,并且通过WE线325仅激活寄存器335,所述地址值“96”通过将地址值“48”提升至与跨距相应的“96”获得。因此,通过地址“96”读取的R2的16位数据被记录在寄存器335中。

类似地,存储器控制器320在随后的时钟周期,通过地址输入线327将地址值“144”应用到存储器310,并且通过WE线325仅激活寄存器337,所述地址值“144”通过将地址值“96”提升至与跨距相应的“144”获得。因此,通过地址“144”读取的R3的16位数据被记录在寄存器337中。

因此,以图2的带交叉格式存储的数据R0、R1、R2和R3以如图2的带分离格式220的图像数据所示的带分离格式被存储在寄存器331、333、335和337中。如上所述,通过对每个跨距提升存储器310的读取地址而读取的数据与同一类型的图像数据分量相对应。具体地讲,当图像数据分量“R”从存储器310被读取时,通过提升跨距而从存储器310读取的数据与同一类型的图像数据分量(具体为“R”)相对应。当图像数据分量“G”从存储器310被读取时,通过提升跨距而从存储器310读取的数据与同一类型的图像数据分量(具体为“G”)相对应。

随后,当在基线321的输入与“16”相对应,并且在跨距线323的输入与“48”相对应时,G0、G1、G2和G3被分组到一起,并且当基321输入与“32”相对应,并且跨距323输入与“48”相对应时,B0、B1、B2和B3被分组到一起。

寄存器集合330包括多个寄存器。当寄存器集合330包括N个寄存器时,寄存器集合330的所述N个寄存器中的每个存储从存储器310读取的每个数据。在寄存器集合330中存储的数据与带分离格式的图像数据相对应。

在本示例性实施例中,虽然一次地执行到基线321和跨距线323的输入,但是存储器控制器320自动地生成N个地址并且将所述N个地址应用到存储器310。然而,本发明不限于此。

根据本发明的另一示例性实施例,只有将被分组的图像数据分量的间隔可以被跨距线323输入。具体地讲,在上述的示例中,与基地址相对应的“0”在基线321被输入,并且“3”在跨距线323被输入。在本示例性实施例中,存储器控制器320可根据预定规则、基于在跨距线323的输入来生成随后的地址。例如,在本示例性实施例中,存储器控制器320通过将跨距323输入与对应于一个图像数据分量的大小的“16”相乘来计算生成地址所需的实际跨距。因此,当在跨距线323处“3”被输入时,通过将跨距线323的输入“3”和预定值“16”相乘来生成实际跨距。当在跨距线323处“3”被输入时,存储器控制器320在第一时钟周期将地址“0”输出到地址线327,并且在随后的时钟周期,将地址“48”输出到地址线327。地址“48”与基线321的输入和计算的实际跨距相加的值相对应。

控制器(未示出)通过将存储在所述N个寄存器331、333、335和337的数据同时输入到N分块(N-partitioned)的ALU 340来执行计算。例如,ALU 340与执行64位计算的ALU相对应,并且当执行16位计算时,应当消耗一个时钟周期。当通过将四个16位数据同时输入到ALU 340来执行计算时,提供四倍的总处理量(throughput)。在图3中,64位的ALU 340被用作四分块的ALU,并且通过接收作为输入的四个16位寄存器值来执行计算。稍后参照图7详细地对此加以描述。

图4是示出根据本发明的示例性实施例的包括在存储器控制器中的AGU的示图。AGU 400包括复用器(MUX)410、锁存器420和430、和ALU 440。

在跨距线423的跨距输入被存储在锁存器430中。当在跨距线423输入的值不直接地被用于跨距,并且针对跨距输入423而计算的值被用于跨距时,计算实际地将被用于跨距线423中的跨距的模块被置于跨距线423和锁存器430之间。

基线421和ALU的反馈输出线441被输入到MUX 410。MUX 410在生成N个地址的第一个地址时选择基线421,在生成所述N个地址的其他地址时选择ALU的反馈输出线441。被MUX 410选择的线被输出到锁存器420。

例如,假设图2的图像数据210被存储在存储器310中,并且每个图像数据分量具有16位大小。因而,图2的R0、G0、B0、R1、G1、B1等各具有16位大小。此外,假设存有R0的地址与“0”相对应。因此,与基地址相对应的“0”通过基线421被输入到AGU 400中。此外,跟随R0的同一类型的图像数据分量与R1相对应,并且由于R1的地址与“48”相对应,所以在跨距线423处“48”被输入。

当本示例性实施例通过收集同一类型的四个图像数据分量的每个(即N=4)来生成带分离格式的图像数据时,基421输入和跨距423输入被执行,并且随后,在第一时钟周期,MUX 410选择基线421并且将基线421输出给锁存器420,并且被基线421输入的值被存储在锁存器420中。如上所述,在基线421输入的基地址经由MUX 410被输入到锁存器420中,并且所述输入的基地址被存储在锁存器420中。此外,在跨距线423的输入被存储在锁存器430中。此外,存储在锁存器420中的值被直接输出到存储器310的地址447。

在下一个时钟周期,存储在锁存器420中的基值“0”和存储在锁存器430中的跨距“48”通过ALU 440的输入443和445被输入。ALU 440将输入值相加,生成下一个地址“48”,并且将所述下一个地址“48”输出到存储器310的地址447和反馈输出线441。输出线441被MUX 410选择,并且“48”被存储在锁存器420中。

在下一个时钟周期,存储在锁存器420中的基值“48”和存储在锁存器430中的跨距“48”通过ALU 440的输入443和445被输入。ALU 440将输入值相加,生成下一个地址“96”,并且将所述下一个地址“96”输出到存储器310的地址447和反馈输出线441。反馈输出线441被MUX 410选择,并且“96”被存储在锁存器420中。

在下一个时钟周期,存储在锁存器420中的基值“96”和存储在锁存器430中的跨距“48”通过ALU 440的输入443和445被输入。ALU 440将输入值相加,生成下一个地址“144”,并且将所述下一个地址“144”输出到存储器310的地址447和反馈输出线441。反馈输出线441被MUX 410选择,并且“144”被存储在锁存器420中。当N与四相对应(即N=4),并且四个地址被完全地生成和输出时,在AGU 400中,新的值在基线421和跨距线423被输入,并且AGU 400再次重复生成四个地址的过程。

图5是示出根据本发明另一示例性实施例的格式转换设备的示图。图5的格式转换设备总体包括存储器510和转换模块(未示出)。

存储器510存储带交叉格式的图像数据。转换模块重复从存储器510读取多个图像数据分量、将所述多个图像数据分量存储在预定寄存器中的操作,并且将所述多个图像数据分量转换为多个带分离格式的图像数据。转换模块包括存储器控制器520和寄存器集合530。

存储器控制器520包括AGU 550和SIMD封隔器(packer)560。

AGU 550在读取地址线527生成用于从存储器510读取多个图像数据分量的读取地址,并且将读取地址线527的读取地址应用到存储器510。在本示例性实施例中,通过一次地应用读取地址线527来读取所述多个图像数据分量,以便减少对存储器510的访问时间。例如,当参照图1,一个图像数据分量与16位相对应时,地址“0”被应用,并且与总共64位相对应的R0、G0、B0和R1被读取。在这种情况下,在跨距线523的输入与64相对应。因此,与总共64位相对应的G1、B1、R2和G2随后又被读取。当假设一次地读取八个图像数据分量时,在跨距线523的输入应当被控制为128。

AGU 550包括接收在基线521的基地址,并且存储在基线521的输入地址的锁存器。此外,AGU 550将基线521的地址(其被存储在锁存器中)与跨距线523的输入相加的值输出到存储器510的读取地址线527,并且将相加的值存储在锁存器中。在上文参照图4对AGU 550的结构和操作给予了详细描述。

寄存器集合530包括多个寄存器,所述多个寄存器存储通过应用所述读取地址527从存储器510读取的多个图像数据分量的数据。

SIMD封隔器560激活在在寄存器集合530内预定位置的多个寄存器,并且将所述多个图像数据分量存储在多个寄存器531至539和541至543中,所述预定位置取决于图像数据分量的类型。

控制器(未示出)通过将存储在寄存器集合530的多个寄存器中的数据同时地输入到N分块的ALU 540中来执行计算。例如,ALU 540与执行64位计算的ALU相对应,并且当执行16位计算时,应当消耗一个时钟周期。当通过将4个16位数据同时地输入到ALU 540中来执行计算时,提供四倍的总处理量。在图5中,64位ALU 540被用作四分块的ALU,并且通过接收四个16位寄存器值作为输入来执行计算。参照图7详细地对此加以描述如下。

图6A至6D是示出图5的格式转换设备的操作的示图。

图5的存储器510存储带交叉格式的图像数据。本示例性实施例描述存储器510存储图1的数据的情形。

存有图像数据的起始地址被从存储器510输入到基线521,从而读取多个图像数据分量。在本示例性实施例中,假设图1的存储的图像数据的起始地址与“0”相对应。因此,“0”被输入到基521中。此外,当意图通过一次地将地址应用到地址线527来读取四个图像数据分量,并且一个图像数据分量与16位相对应时,“64”被输入到跨距线523。因此,AGU 550生成地址“0”,并且将地址“0”应用到存储器510的读取地址线527。因此,从存储器510读取的64位的多个图像数据分量R0、G0、B0和R1被输出到存储器510的数据输出线511。

存储器510的数据输出线511被分成每个为16位的线513、515、517和519,并且与不同寄存器组的连线在存储器510的数据输出线511被执行。在图5中,线513与寄存器531、535和539连接,线515与寄存器532、536和541连接。线517与寄存器533、537和542连接,线519与寄存器534、538和543连接。

此外,SIMD封隔器560激活在包括在寄存器集合530中的多个寄存器当中的预定位置的多个寄存器,所述的预定位置取决于图像数据分量的类型。SIMD封隔器560通过与寄存器集合530的多个寄存器连接的WE线525、526、527和528激活在所述预定位置的多个寄存器。

参照图6A,SIMD封隔器560激活寄存器531、534、537和541。因此,通过线513、515、517和519发送的数据分别被存储在寄存器531、534、537和541中。当所述读取的数据与R0、G0、B0和R1相对应时,图像数据分量R1通过线513被存储在寄存器531中。类似地,图像数据分量B0通过线515被存储在寄存器541中,图像数据分量G0通过线517被存储在寄存器537中,图像数据分量R0通过线519被存储在寄存器534中。

由于“64”被输入到跨距线523中,因此AGU 550随后生成地址“64”,并且将地址“64”应用到存储器510。参照图1,数据G1、B1、R2和G2被读取。SIMD封隔器560激活寄存器538、542、532和535。因而,如图6B所示,数据G1、B1、R2和G2分别被存储在寄存器538、542、532和535中。

其次,AGU 550生成地址“128”,并且将地址“128”应用到存储器510。参照图1,数据B2、R3、G3和B3被读取。SIMD封隔器560激活寄存器543、533、536和539。因此,如图6C所示,数据B2、R3、G3和B3分别被存储在寄存器543、533、536和539中。

通过重复如图6A至6C所示的寄存器选择,SIMD封隔器560可将以带交叉格式存储的图像数据转换为带分离格式。如图6C所示,同一类型的图像数据分量被收集,然而需要顺序控制。使用排列(permutation)可以容易地执行所述顺序控制。当执行排列操作时,同一类型的图像数据可以顺序地被排列,如图6D中所示。由于一般的SIMD控制器支持排列操作,所以当使用图6A至6C对同一类型的每个图像数据进行分类时,可以容易地获得带分离格式的数据。

图7是示出根据本发明的示例性实施例的将64位ALU划分为四个16位ALU和使用所述64位ALU的配置的示图。

由于近来ALU的性能已经显著地提高,一般使用64位的ALU。然而,如上所述,当一个图像数据分量具有16位值时,64位ALU在一个时钟周期执行两个16位图像数据分量的计算,其余的32位被浪费。因此,由于当执行转换为带分离格式的图像数据的计算时,N分块的ALU同时执行多个计算,所以本发明的示例性实施例提高总处理量。

在图3和图5中,转换为带分离格式的图像数据被分别存储在寄存器集合330和530中。图7的寄存器710和720被包括在寄存器集合330和530中。16位ALU 730、740、750和760物理地是一个64位ALU,然而对16位执行计算。具体地讲,16位ALU 730接收REG0和REG4作为输入,执行计算,并且将所述计算的结果输出到REG8。16位ALU 740接收REG1和REG5作为输入,执行计算,并且将所述计算的结果输出到REG9。16位ALU750接收REG2和REG6作为输入,执行计算,并且将所述计算的结果输出到REG10。16位ALU 760接收REG3和REG7作为输入,执行计算,并且将所述计算的结果输出到REG11。在一个时钟周期同时地执行16位ALU730、740、750和760的操作。输出数据770以带分离格式被存储。

本发明的示例性实施例包括包含由计算机执行的用于实现各种操作的程序指令的计算机可读介质。所述介质也可包括数据文件、数据结构等,或者数据文件、数据结构等与所述程序指令的结合。所述介质和程序指令可以是为了本发明的目的而具体设计和构建的介质和程序指令,或者它们可以是对于在计算机软件领域中的技术人员来说公知的并且可利用的。计算机可读介质的例子包括磁介质(如硬盘、软盘和磁带)、光学介质(如CD ROM盘和DVD)、磁光介质(如光盘)和具体配置为存储和执行程序指令的硬件装置(如只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器等)。程序指令的实例包括机器码(如由编译器产生)和包含可以由计算机使用解释器执行的高级代码的文件。

例如,在本发明的示例性实施例中描述的全部和部分存储器控制器320和520可以在计算机程序中实现。在这种情况下,包含计算机程序的介质被包括在本发明的示例性实施例中。

如上所述,根据本发明的示例性实施例,提供一种能够有效地将带交叉格式的图像数据转换为带分离格式的图像数据的格式转换设备和方法。

此外,根据本发明的示例性实施例,提供一种这样的格式转换设备和方法,从而提高图像处理效率:其能够将带交叉格式的图像数据转换为带分离格式的图像数据,随后将ALU划分为N分块,并且通过SIMD方法处理带分离格式的图像数据。

虽然已经示出和描述了本发明的几个示例性实施例,但是本发明不限于所述描述的示例性实施例。相反,本领域的技术人员应该理解,在不脱离由权利要求及其等同物限定的本发明的原则和精神的情况下,可以对这些示例性实施例进行各种改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号