缩减数字彩色矩阵图像的方法和装置的制作方法

文档序号:6655539阅读:245来源:国知局
专利名称:缩减数字彩色矩阵图像的方法和装置的制作方法
技术领域
本发明涉及一种以选定的比例M2/M1和N2/N1缩减数字彩色矩阵图像的方法和装置,其中,所述矩阵图像包括N1行,每一行包括M1个像素,从而使得所述像素的强度值构成所述矩阵,并且不同色彩的像素构成所选的格式;并且其中,通过缩放构成尺寸为M2×N2的输出矩阵,所述输出矩阵的像素以M2<=M1且N2<=N1的方式对应于所述原始矩阵的子组,并且由所述原始矩阵像素的强度值计算出所述输出矩阵的每一输出像素的值。
背景技术
当使用数字摄像机时,使用摄像传感器来产生独立的图像或视频图像。传感器图像可以采用多种图像格式,例如RGB8:8:8、RGB5:6:5、YUV4:2:0,以及raw-Bayer图像。当在取景器(VF)中显示图像时,所述取景器的分辨率通常比所述图像传感器的低,因此必须在所述传感器中形成所述图像并将其缩放到适于显示的分辨率。也可以将图像变焦(从所述图像中界定出更小的图像,然后缩放)到适于所述取景器。在变焦中,为了使得变焦得到的图像看上去是连续的,从全幅图像尺寸到更大的变焦必须有很多步骤。如果对视频图像进行了编码,那么其分辨率也通常低于所述传感器的分辨率。因此,也需要对视频进行类似的缩放。也可以如在摄像机中那样,在便携设备中使用摄像传感器。
图像缩放或修改数字图像的尺寸,已经被用于多种数字图像处理应用。图像缩放中的基本方法是在新的抽样阵列中排列二维抽样信号。
从关于信号和图像处理的文献已知了对于执行图像二次抽样的一些可能的情况。信号的抽样是信号处理理论中的实质部分,并且在文献中已被广泛论及。基本上,这是个维持图像频谱低于Nyquist频率的问题。
通常的二次抽样法包括去假频(anti-alias)滤波和从抽样再生图像。抽样数据常常由抽样输入数据和特定核心的线性组合来获得。
抽样算法通常是在算法的复杂度和所得图像的质量之间的折衷。
重新抽样的最简单的形式是“最近邻居”法。这种方法不使用对原始数据的去假频滤波,只为新的抽样阵列选择最邻近的抽样。这样,由于没有去假频的作用,所获得的图像并不好。
用于选择对于所述去假频滤波器的核心的系数的方法有很多。
美国专利6,205,245公开了一种由传感器的矩阵直接缩放彩色图像的方法,其中定义了像素组,总是一次处理一个像素组,并且所述像素组与最终图像的每一个像素相对应。在此方法中,跳过了中间像素,因此丢失了原始信息。

发明内容
本发明公开了一种新的高质量二次抽样的方法,和用于实现所述方法的只需少量存储器的装置。根据本发明的方法的特征在所附的权利要求1中陈述,而相应的装置的特征在权利要求5中陈述。相应地,根据本发明的软件方法的特征在权利要求14中陈述。使用根据本发明的方法只需少量的存储器,并且所述方法在计算方面效率高,但所输出的图像质量高。本方法特别适用于例如摄像机的低功耗设备,以及摄像和多媒体通信装置。存储需求小是因为,在缩放时,通过仅对单个输出行中的输入像素求和,将一个输入图像行存储在行存储器中,并且将没有包括在所处理的输出图像像素中的输入图像行的部分存储在另一行存储器中。在一个实施例中,通过对所述输出行的索引以模2函数所取的模,即所述整数(索引)的最低位,进行寻址而实现这对所述存储器的自动轮换。在一个应用中,在缩放中所需的存储器由执行所述缩放的处理器(CPU)来实现。所述处理器可以是单独的DSP(数字信号处理器)电路组件。一种可用于本发明的DSP处理器结构的例子是由Analog Device Inc.(USA)公司制造的多处理器ADSP-BF561,在此所涉及的第二个例子是ARM Ltd.,UK.的RISC处理器ARM9EJ-S(产品规格ARM DDI 0222B)。然而,在多个双处理器应用中,所述处理器物理上位于不同的电路/模块中。


以下将参考示出本发明的方法和装置的附图,来分析本发明。
图1示出了缩放概念;图2示出了输出像素的例子;图3示出了对不同类型的像素的描述;图4示出了本方法需要的存储器结构;图5a以流程图形式示出了缩放算法;图5b示出了在最困难的情况下DATA存储单元的使用;图6示出了raw-Bayer图像格式及其缩放排列;图7以框图形式示出了一种装置方案;图8示出了在电路层图7的缩放方案;图9a示出了raw-Bayer图像格式的缩放步骤;图9b示出了图9a的另一输出形式——合并的联合定位(co-sited)RGB;图10a示出了Bayer格式到两种不同的格式(联合定位RGB和Bayer)的缩减;图10b示出了YUV4:2:0(H)格式的缩减;图10c示出了对于单独的像素的YUV4:2:2(H)格式的缩减;图10d示出了YUV4:4:4(H)格式的缩减;图10e示出了YUV4:4:4(H)格式到不同的YUV4:2:2格式的缩减。
具体实施例方式
依照图1,输入图像(I1)和输出矩阵(I2)相互重叠,使得所述输出矩阵的每一像素都受原始像素的影响。缩放是由输入图像形成具有较低分辨率的输出图像的过程。为简述起见,图1至5主要讨论黑白图像的缩放,而稍后缩放彩色图像的特殊特性将变得显而易见。
所述图像的尺寸为I1M1×N1和I2M2×N2。所述像素被视为区域而不是点。对于所述输入图像,像素尺寸被设置为Sx1×Sy1,而对于所述输出图像,像素尺寸被设置为Sx2×Sy2。所述图像尺寸被设定为L个“单位”,这样使得L=Sx1M1=Sx2M2=像素尺寸×像素数量,这样,Sx1/Sx2=M2/M1=c×M2/c×M1。
根据如下方式来计算所述像素尺寸Sx1=c×M2,以及Sx2=c×M1,c可以自由选定例如c=1,或c=1/gcf(M1,M2)(gcf最大公约数),或c=1/M1,或c>0。以Sx2是2的幂次(1,2,4,…)的方式,来选择所述系数c是有帮助的,这是因为这样在二进制计算中可以容易地进行以Sx2为除数的除法(即,在二进制整数计算中除法变成移位)。可以通过以下方式标记像素索引(i=0,1,...,(M1-1),j=0,...,(N1-1),k=0,...,(M2-1)和l=0,...,(N2-1)。
在图1中,所述输出像素的值是属于所述输出像素区域的输入像素值的加权平均值。
Out(k,l)={Σ(i,j)∈Out(k,l)W(i,j)In(i,j)}/ScaleFactor]]>所述缩放因子ScaleFactor以下列方式计算得到ScaleFactor=Σ(i,j)∈Out(k,l)W(i,j)=Sx2Sx1·Sy2Sy1=M1M2·N1N2]]>W(i,j)是加权系数,其值取决于在输出像素中有多少输入像素W(i,j)=在(i,j)中的由所述输出像素(k,l)覆盖的表面面积/所述输入像素(i,j)的表面面积。
图2示出了这样的例子。所述输出像素覆盖所述输入像素j=0...jend和i=0...iend。用索引(i=0,j=0)表示起始任何输出像素的输入像素。某些加权系数为W(0,0)=(vstart×wstart)/(Sy1×Sx1)W(1,1)=1W(1,0)=vstart/Sy1......等等。
以下描述所述缩放方法的应用。
为了计算所述输出像素值,可以使用分开处理,即,先计算x方向,再计算y方向Outx(j)=[wstart/Sx1×In(0,j)+Sum(In(1,j)...In(iend-1,j))+wend/Sx1×In(iend,j)]×Sx1/Sx2=[wstart×In(0,j)+Sx1×Sum(In(1,j)...In(iend-1,j))+wend×In(iend-1,j)]/Sx2。Out=[vstart/Sy1×Outx(0)+Sum(Outx(1)...Outx(jend-1)+vend/Sy1×Outx(jend)]×Sy1/Sy2=[vstart×Outx(0)+Sy1×Sum(Outx(1)...Outx(jend-1))+vend×Outx(jend)]/Sy2上述算法基于嵌套处理。一次只处理一个输入像素。在所述行存储结构中对所述像素数据进行求和。作用于不同索引的加权系数可以在与处理相关的一个行存储器(优选输入行存储器)中计算好,这样进一步减少了计算操作的数量。当然这样的代价是略微增加了存储量,但是节省了运算。当然,如果垂直和水平方向上的缩放系数不同,则需要两个行存储器。如果所述两系数相同,就只需要一个(较长的)行存储器。
所述输入像素具有的不同系数,这取决于所述输入像素相对于所述输出像素的位置。这样,存在三种像素类型,见图3。
完全像素/完全像素行所述输入像素完全位于所述输出像素内。
最末像素/最末像素行所述输入和输出像素具有同样的末边。
部分像素/部分像素行所述输入像素的区域伸展到两个或四个输出像素的区域。
图4中示出了的所述存储结构,其包括两部分,分别称为“Data”和“Buffer”。所述数据结构包括四个存储单元(Data
)。所述行存储结构包括两个行存储器(Buffer
,Buffer[1]
)。所述行存储器的长度就是所述输出图像的宽度。当不会从所述大存储器中的一个多次读取图像,并且一次仅处理一个色彩分量时,不同的色彩分量将往往需要单独的存储器。在Bayer图像的情况下,将Gr和Gb作为不同的色彩分量来处理,因此需要各自的存储器。
因为所述二次抽样法可以被分为多个部分,所以往往可以在分离的处理器中(例如在摄像传感器和基带处理器中)执行垂直和水平缩放。如果在所述像素进入缩放的方向上(一般是水平方向)进行缩放的话,那么一维缩放完全不需要行存储器。当执行一维二次抽样时,只需要例如DATA
的数据结构。在包括所有色彩分量的行或列上需要所述数据结构。
根据所讨论的像素类型,填写所述DATA和行存储单元。所述输入像素位置相对于输出像素(k,l)的关系也决定了如何使用所述存储结构(见稍后的伪码部分)。
在部分像素行上,行存储器Buffer
和Buffer[1]
都被使用了。这意味着,已经处理了下一输出行的初始部分。在所述部分像素区域内,对所述数据结构Data[a]
和Data[a][1]进行求和,其中a可以是0或1(完全像素行),或者0和1(部分像素行)。
图5a示出了所述算法的流程图。从第一输入行和第一输出行开始(i,j,k,l=0,步骤A)。从像素的位置导出像素行的类型(步骤B)。根据输入行的类型对其进行处理(步骤C、D、E)。处理了该行后,下一行进入处理过程,直到所有的行都已经被处理了。部分像素行(步骤E),或者在输出行上的最末(完全)像素行(步骤D),终止所述输出行。在处理了完全像素行或部分像素行后,对下一个输出行(l+1)进行处理,直到所处理的行是最后一行(j=N1-1)(条件G),在这种情况下被缩放的图像已经就绪。在条件G之后,程序要么终止,要么转到下一输出行(步骤F)。同时,所述程序转到对下一输入行(j=j+1)的处理(步骤H),也可以从在所述输出行中间的完全像素行的处理(步骤C)到达步骤H。
图5b示出了在最困难的情况下,即在部分像素行的情况下,对DATA存储单元的操作。在图5b中,对l行上k列的输出像素的值进行了处理,并且在这种情况下,在所述处理中利用了从61至64的输入图像像素l。偶数编号的索引(模2)指向第一存储单元DATA
。当处理前一输出像素(k-1)时,存储了其最后的输入图像像素j=61的部分强度(上虚线)。在此,在所述存储单元中,对属于相同输出像素k的输入像素62,63的“完全”垂直部分强度(Xup),与输入像素64的该部分强度进行求和。最末部分被存储在存储单元DATA
[1]中,以形成对于下一像素和的“种子”。同时,在对每一像素i的处理中,在存储单元DATA[1]
中对Xdown部分强度进行求和,并且在处理最后一个时,将纵向的部分强度存储在存储单元DATA[1][1]中,以形成对于下一行的像素和的种子。之后,将存储单元DATA
和DATA[1]
的内容加到所述行存储器的基本单元BUFFER
[k]和BUFFER[1][k]中。这些基本单元中的第一个形成Output[l][k]值,并被取出。
以下,将描述用于通过软件单元实现缩放的伪码。
输入行(l)主要确定使用行存储器和数据存储单元的哪个部分(Data[lmod 2]和Buffer[l mod 2],见伪码)。输出像素的数值(k)确定实际的存储单元(Data[l mod 2][k mod 2]和Buffer[l mod 2][k])。其中,术语“X mod2”指的是X取模2,即X除以2的余数。通过将二进制整数索引的最低有效位作为地址,自动轮换所述存储单元。
以下的伪码描述了如何利用所述行存储结构。
我们采用以下记法输入像素Input[j][i],输出像素Output[l][k],加权系数wend(k)=FRACTION[(k+1)*M1/M2]FRACTION是分数vend(l)=FRACTION[(l+1)*N1/N2]M1,M2一行中的像素数量N1,N2行的数量Sx1,Sx2,Sy1,Sy2像素的尺寸缩放因子ScaleFactor(同上)
wstart[k+1]=1-wend[k](=wstart/Sx1~
),vstart[l+1]=1-vend[l]。
对于像素行的类型,通过算式((l+1)×N1/N2-j)计算得到值(=KA),除非该行是最后一行(索引j=N1-1)。如果KA>1,那么该行就是完全行,而如果KA<1,那么该行是部分行。如果KA=1,那么该行就是对于相应的输出行的最末行。存储复述命令(memory recitation command)已经被忽略。当前转数据时,总是重置每个存储单元。
完全像素行的处理完全像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Input[j][i]最末像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Input[j][i]Buffer[l mod 2][k]=Buffer[l mod 2][k]+Data[l mod 2][k mod 2]部分像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Input[j][i]×wend[k]Data[l mod 2][(k+1)mod 2]=Input[j][i]×wstart[k+1]Buffer[l mod 2][k]=Buffer[l mod 2][k]+Data[l mod 2][k mod 2]最末像素行的处理完全像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Input[j][i]最末像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Input[j][i]Buffer[l mod 2][k]=Buffer[l mod 2]][k]+Data[l mod 2][k mod 2]Output[l][k]=Buffer[l mod 2][k]/ScaleFactor部分像素
Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Input[j][i]×wend[k]Data[l mod 2][(k+1)mod 2]=Input[j][i]×wstart[k+1]Buffer[l mod 2][k]=Buffer[l mod 2][k]+Data[l mod 2][k mod 2]Output[l][k]=Buffer[l mod 2][k]/ScaleFactor部分像素行的处理Xup=Input[j][i]×vend[l]Xdown=Input[j][i]×vstart[l+1]完全像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+XupData[(l+1)mod 2][k mod 2]=Data[(l+1)mod 2][k mod 2]+Xdown最末像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+XupData[(l+1)mod 2][k mod 2]=Data[(l+1)mod 2][k mod 2]+XdownBuffer[l mod 2][k]=Buffer[l mod 2][k]+Data[l mod 2][k mod 2]Buffer[(l+1)mod 2][k]=Buffer[(l+1)mod 2][k]+Data[(l+1)mod 2][k mod 2]Output[l][k]=Buffer[l mod 2][k]/ScaleFactor部分像素Data[l mod 2][k mod 2]=Data[l mod 2][k mod 2]+Xup×wend[k]Data[l mod 2][(k+1)mod 2]=Xup×wstart[k+1]Data[(l+1)mod 2][k mod 2]=Data[(l+1)mod 2][k mod 2]+Xdown×wend[k]Data[(l+1)mod 2][(k+1)mod 2]=Xdown×wstart[k+1]Buffer[l mod 2][k]=Buffer[l mod 2][k]+Data[l mod 2][k mod 2]Buffer[(l+1)mod 2][k]=Buffer[(l+1)mod 2][k]+Data[(l+1)mod 2][k mod 2]Output[l][k]=Buffer[l mod 2][k]/ScaleFactorBayer图象格式可以从Bayer格式直接进行缩放(图6)。在Bayer图像中,一个像素中只有一个色彩分量。色彩分量(R,GR,GB和B)的抽样频率为像素的抽样频率的一半。因此,当从Bayer格式缩放到联合定位RGB格式时,对于所述色彩分量的缩放因子两倍于输入和输出图像之间的缩放因子M2/M1×N2/N1。可以用更通用的形式f×M2/M1×N2/N1来声明所述缩放因子,其中,f为造成格式转换的因子。更明确地说,因子f=fM×fN,即f也可以被分为水平和垂直两个部分。如果在缩放中格式没有变化,那么f值将为1(例如,从Bayer格式缩放到Bayer格式)。
在图6中,以在原始格式中和每个色彩的输入像素中的圆圈标记原点。如果,由于输入图像的偏移,像素数据并不存在于整个区域内,那么在这种情况下,可以有利于稍微外推前一像素的更多的值,使得无需为边缘像素以不同方式改变总的缩放比例。随后将给出不同格式的缩放的例子。
通过使用简单的计数器或将不同色彩分量调整为相同,可以实现输出图像的偏移。这意味着,所述输出图像相对于所述输入图像具有偏移。实际上,这意味着,所述输入图像的边缘像素的部分信息变得无用,而在相对的边缘必须外推出相应的额外信息。
本发明特别适用于基于硬件的应用,图7示出了一个例子。摄像模块10被连接到主系统22上,所述主系统控制显示设备24和所述摄像模块。摄像模块10包括特别的光学装置(即透镜装置)11(实际上是多个镜头)、传感器12、图像处理电路14、缩放单元16和控制单元20。图像处理电路14通过已知的方式读取传感器12,从而建立通向缩放单元16的高速数据流,被缩放的图像的数据流被从所述缩放单元导向主系统22。
在这种情况下,存储需求大约是两个输入图像行。这意味着,例如,在160×120的矩阵中有C×2×160个字码,其中C是色彩分量的数量(对于RGB或YUV图像来说,一般为3)。数据字码的长度依赖于计算的精度,例如2或4个字节。
图8示出了一种(全数字)应用中的缩放器在电路层的结构。缩放器16包括输入组件161、CPU162、存储器163、输出组件164和控制组件167,它们都被连接到内部总线165上。输出组件164将被缩放的输出像素值(Output[l][k])供给主系统22。
所述装置可以包括缩放器组件,其中具有多个分离的处理器(CPU),用于在每个维度上进行缩放(例如,上述的ADSP-BF561)。所述存储器可以是物理上位于处理器内部的存储器。
在一个实施例中(缩放比例低于1/2),所述装置包括用于针对每一色彩分量最多一个图像传感器行的缩放函数的存储器。
所述装置特别适用于移动终端。
以下是本发明的各种变换实施方式。如果系统中有两个设备(摄像模块和主系统),那么可以在许多不同的位置以许多不同的方式来实现所述缩放器。
1.传感器图像被所述模块处理并缩放,然后被发送给所述主系统(图7)。
2.传感器图像被所述模块缩放并处理,然后被发送给所述主系统。
3.传感器图像被所述模块处理,然后被发送给所述主系统,在所述主系统中被缩放。
4.传感器图像被所述模块缩放,然后被发送给所述主系统,在所述主系统中被处理。
5.传感器图像被发送给所述主系统,在所述主系统中被缩放并处理。
6.传感器图像被发送给所述主系统,在所述主系统中被处理并缩放。
倘若显示装置具有处理能力,也可以在所述显示装置中执行缩放。此外,所述图像并不需要直接来自传感器/摄像模块,也可以改为从存储器/存储卡中读取。所述图像也可以是压缩的(例如JPEG),这种情况下,首先进行编码,再缩放。这些步骤(解码和缩放)也可以合并在一起。此外,还有这样的情况,其中分为两部分执行缩放,首先通过所述摄像模块在水平方向上对所述图像进行缩放,然后将其发送到所述主系统,在所述主系统中在垂直方向上对其进行缩放,然后进行处理。此外,所述缩放器可以被用在多个(2个)不同的步骤中,从而使得可以用小存储量的缩放器取代先前的缩放器实施例。此外,可以通过这样的方式使用所述缩放器,即在所述显示器上迅速形成小图像(使用简单处理),之后形成被处理的实际的更大的输出图像。如果在所述摄像模块中执行缩放,那么所述主系统当然必须确知在所述显示器上需要的图像尺寸。此外,在通过视频编码器将视频图像存入存储器的情况下,也可能需要进行缩放。此外,在存储期间,也可能需要在不同尺寸的显示器上观看取景器的图像。因此,存在这样的情况,即,由视频编码器而非显示器决定输出图像。相似地,为不同的目的,也有可能需要以两种不同比例,串行地或并行地使用相同类型的缩放器。
依照图9a,与R和B一样,色彩分量Gr和Gb被作为完全分离的分量来处理,然后这些分离的分量最终可以被合并。依照图9a,最初处理四个分离的分量,这些分量直接以Bayer格式形成缩放图像的基本单元。当输出信息是联合定位的R,G和B时(图9b),将两个G分量合并成为一个G分量。(当缩放到联合定位时,合并它们并不是不可或缺的,但为了使将被发送的数据量最小,一般还是值得合并的。)为了保持所述缩放器的整体逻辑简单,所述两个G分量被分开处理。因此,在缩放过程中总是保持着分量次序(即,输入数据的次序和输出数据的次序相同)。获知这是输入图像属于Beyer格式的问题,这一点很重要。还应该获知输出图像是Bayer还是联合定位,以使得将使用正确的偏移(和缩放因子)。对于其它色彩格式,例如YUV和RGB,也是如此。只有在进行了到其它的二次抽样的转换(例如从YUV4:2:2到YUV4:4:4)的情况下,或者在例如在缩放时从隔行扫描变为逐行扫描格式的情况下,输出分量的次序才会变化。
因为缩放可以分开进行得很好(首先在x方向上,然后在y方向上),还因为缩放可以只在一个方向上进行,因此,有时候只在一个方向上考虑缩放因子可以更加清楚简单。
对于特定的图像格式(YUVx:x:x、Bayer RGB、联合定位RGB,等等,隔行扫描/平面格式),像素数据被以预先确定的次序从数据流、存储器或其它地方读取,或者相应地,像素数据也被以预先确定的次序写入数据流、存储器或其它地方。在图10a至10e中,数据流被标记为“INPUT数据次序”或“OUTPUT数据次序”。在所述数据次序中,像素的尺寸并不重要,但为了清楚起见,在这些图中根据缩放比例绘出像素。
然而,在根据本专利申请的缩放中,获知像素的位置和面积(图1和2)非常重要。常见的图像格式也限定了像素的位置和面积,并且在图10a至10e中像素的位置和面积被标记为“INPUT像素位置”或“OUTPUT像素位置”。缩放几何排列是为了使输入和输出像素相互匹配(依照图1和2)。
在图10a至10e中,左侧的虚线表示原点,点(0,0)。一般来说,术语原点表示图像的左上角。在图10a至10e中,从所述原点开始,示出了少许第一像素。
在这种情况下,在之后的图像中S1=Sx1或S1=Sy1,并且S2=Sx2或Sy2(如图2中)。S1和S2表示像素的尺寸。
图10a示出了与图6相同的Bayer图像缩放几何排列。由于Bayer图像传感器的结构,色彩分量具有已经明确的位置。因此,色彩分量被移至相对于原点的合适的位置(在所述图像中,移动量为S1/2,S2/2,Sx/2,或Sy/2),使得这些色彩分量的信息也可以相互匹配。在图10a中,讨论的问题是Bayer至联合定位RGB和Bayer至Bayer的缩放。在这种情况下,应注意,当将图像缩放成Bayer格式时,通过CFA内插法可以将缩放后得到的图像内插到由像素数量标示的尺寸。当缩放成联合定位格式时,不需要CFA内插法,而是,通过最终合并所述分量,使得在缩放后,输出图像的尺寸从图像数量减半。因此,如果初始图像的分辨率为,比如1600×1200像素,并且在两个方向上的缩放因子S1/S2都为0.5(=1/2),则Bayer缩放的输出图像的尺寸将是800×600像素,由此可以内插尺寸为800×600的输出图像。相应地,当缩放为联合定位格式时,缩放输出图像的尺寸也将是800×600,由此可以生成尺寸为(4×)400×400的输出图像。相应地,在联合定位格式中,如果合并了G分量,那么缩放后的输出图像的尺寸将是(3×)400×300(即比不合并少25%的像素)。这将导致与之前相比,缩放因子加倍。因此,也就是说,假如与生成的输出图像的尺寸的比例相比,真正的缩放因子S2/S1实际上是2×(S2/S1)(即,如联合定位格式的图像的缩放因子,实际上在x和y方向上都是1/缩放因子=0.25=400/1600=300/1200)。因此,这不影响缩放因子和实际缩放过程中的计算,仅仅影响输出图像的比例。
图10b,c,e在YUV4:2:0和YUV4:2:2格式中,U和V分量的抽样频率为Y分量的抽样频率的一半,这种情况下,U或V像素的尺寸将是Y像素尺寸(S1)的两倍(2S1)。在YUV4:1:1格式中,U或V分量的抽样频率是Y分量的抽样频率的四分之一,使得相应地,U或V像素的尺寸将是Y像素的尺寸的四倍。
图10b在YUV4:2:0格式中,在每一行上要么只存储U分量,要么只存储V分量。因此,可以用相同的方式处理YU行或YV行。U/V符号表明该像素要么每行都是U像素,要么每行都是V像素。
图10c示出了大约在YUV4:2:2(H)图像缩放中间的、对单独的像素的处理。YUV4:2:2到垂直YUV4:2:2的缩放与YUV4:4:4到4:2:2的缩放相同。
在这种情况下,输出像素的值通过以下方式计算Yout=[WSTART.Y·Yin(1)+S1·Yin(2)+WEND.Y·Yin(3)]/S2Vout=[WSTART.V·Vin(1)+2S1·Vin(2)+WEND.V·Vin(3)]/2S2(U和V相同)图10d示出了YUV4:4:4到YUV4:4:4的缩放。(如果将R,G和B写入Y,U和V的位置,那么联合定位RGB缩放与YUV4:4:4相同。)图10e示出了YUV4:4:4到YUV4:2:2的缩放。
从上述实施例中可以很容易地导出联立的二次抽样变化和相宜的缩放。例如,YUV4:2:0到YUV4:4:4的转换,其中在X和Y方向上以0.5的比例进行缩放。在这种情况下,只需要缩放Y分量,而色彩分量保持不变。
使用本方法,在缩放Bayer图像中可以获得与其它格式的图像缩放相同的优点。这就是图像信息的正确使用和优良的过滤。此外,Bayer缩放将充分地减少总计算需求和处理过程中的数据通信量。本方法分开地缩放所有分量,也带来了在缩放器中不必知道色彩分量的精确次序的优点,因此,可以容易地在不同方向上进行例如图像旋转、镜像或者传感器读取,而不用必须改变所述缩放器或其操作。此外,当使用不同的偏移和分量设置时,所述缩放器可以用于缩放不同类型图像色彩信息,也可以用于产生不同类型的输出格式。本方法可以用来按需生成例如Bayer或联合定位的输出图像。
权利要求
1.一种以选定的比例M2/M1和N2/N1缩减数字彩色矩阵图像的方法,其中,所述矩阵图像包括N1行,每一行包括M1个像素,从而使得所述像素的值构成所述矩阵并且不同色彩的像素构成选定的格式,并且其中,利用缩放构成尺寸为M2×N2的输出矩阵,所述输出矩阵的像素以M2<=M1和N2<=N1的形式与所述原始矩阵的子组相对应,并且由所述原始矩阵的像素(i,j)的值Input(j,i)计算所述输出矩阵的每一输出像素(k,l)的值Output(l,k),其特征在于,形成在所述每一输出像素(k,l)区域内的矩阵图像的同色像素(i,j)值的加权和,加权系数是在所述输出像素(k,l)区域内的像素(i,j)的维度份额,并且通过缩放因子(f×M2/M1×N2/N1)修正每一加权和。
2.根据权利要求1所述的方法,其特征在于,通过这样的方式实现每次在一个维度(x)上执行所述缩放,即通过形成该维度的像素强度的加权和,从而在存储单元(Data
,Data[1])中计算该维度的中间和Outx(l),所述加权系数是每一源像素(i,j)在该维度的输出像素(k,l)中的比例,并且将所述加权和最终传到行存储器(Buffer
,Buffer[1]),将相应列(k)的输出像素(k,l)的中间和Outx(l)计算到所述行存储器的每一基本单元(l)中。
3.根据权利要求2所述的方法,其特征在于,通过以这样的方式利用交替的存储单元对(Data
,Data[1])和交替的行存储器对(Buffer
,Buffer[1]),进行所述计算,所述方式为,-在部分像素(i,j)的情况下,总是将下一输出像素(k+1,l)的初始部分强度也计算到另一存储单元中,下一索引(k+1)的强度和在该单元中轮流被集中,并且,-在部分行的情况下,每个像素(i,j)的强度值被分开存储在所述两存储单元中,与在相应维度中所述像素覆盖所述输出像素(k,l)和下一输出像素(k,l+1)的情况成比例,并且沿所述输出像素的长度上对其求和,将每个第一和值存储在所轮到的下一行存储器中,而将第二和值存储在另一行存储器((l+1)mod2)中,下一输出行(l+1)的和值在所述另一行存储器中开始被集中。
4.根据权利要求1至3中的任意一项所述的方法,其特征在于,所述输出图像偏移所述输入图像,使得所述输入图像的边缘像素的部分信息变得无用,相应地,在相对的边缘处向所述输入图像外推附加信息。
5.一种以选定的比例(M2/M1和N2/N1)缩减数字彩色矩阵图像的装置,所述装置包括用于存储和处理所缩放的矩阵图像的应用存储器、中央处理单元、程序存储区以及存储于其中的用于进行所述处理的程序,其中,所述矩阵图像包括N1行,每行包括M1个像素,从而使得所述像素的值构成矩阵并且不同色彩的像素构成格式,并且其中,通过缩放构成尺寸为M2×N2的输出矩阵,所述输出矩阵的像素与所述原始矩阵的子组相对应,通过计算所述子组的像素值的和并且除以缩放因子(M2/M1×N2/N1),计算出所述输出矩阵的每个像素的平均值,其特征在于,所述装置被配置为以这样的方式单独地处理所述输入像素(k,l),即由每一输出像素(k,l)区域内的同色矩阵图像像素(i,j)的值进行加权,形成所述值的和,所述加权系数是所述输入像素(i,j)在所述输出像素(k,l)区域中的维度比例。
6.根据权利要求5所述的装置,其特征在于,所述存储器区域包括四个存储单元(Data
)和两个行存储器(Buffer
,Buffer[1]),并且其特征在于,所述装置被配置为每次在一个维度(x)上执行缩放,通过构成所述维度的像素强度加权和,将该维度的中间和Outx(l)计算到存储单元(Data
,Data[1])中,所述加权因子是在所述维度的输出像素(k,l)中的源像素(i,j)的比例,并且所述装置被配置为将所述加权和最终传送到所述行存储器(Buffer
,Buffer[1]),所述中间和Outx对应于被排列在每个基本单元(k)中的一个所计算的输出像素行(l)。
7.根据权利要求6所述的装置,其特征在于,所述装置包括交替的存储单元对(Data
,Data[1])和交替的行存储器对(Buffer
,Buffer[1]),寻址组件与之相链接,所述寻址组件被配置为以这样的方式来利用二进制形式的索引(k,l)的最低有效位,其中,-在部分像素(i,j)的情况下,总是将下一输出像素(k+1,l)的初始部分强度也计算到另一存储单元中,下一索引(k+1)的强度和在该单元中轮流集中,并且,-在部分行的情况下,每个像素(i,j)的强度值被分开存储在所述两存储单元中,与在相应维度中所述像素覆盖输出像素(k,l)和下一输出像素(k,l+1)的情况成比例,并在所述行存储器(Buffer
,Buffer[1])中沿所述输出像素的长度累加并存储所述部分值。
8.根据权利要求5至7中任意一项所述的装置,其特征在于所述装置能与摄像机的摄像传感器集成。
9.根据权利要求8所述的装置,并包括主系统,其特征在于,单个维度上的缩放与摄像机的摄像传感器集成,而其它维度上的缩放与主系统集成。
10.根据权利要求6或7所述的装置,其特征在于,所述装置包括缩放器组件,其中有用于在每个维度上进行缩放的多个分离的处理器。
11.根据权利要求5至10中任意一项所述的装置,其特征在于,所述装置包括用于对至少两个输出图像行进行缩放操作的用于每个色彩分量的存储器。
12.根据权利要求5至11中任意一项所述的装置,其特征在于在所述缩放中所需的存储器在处理器中实现。
13.根据权利要求5至12中任意一项所述的装置,其特征在于所述装置被安装在移动终端中。
14.一种在数字设备中,通过软件以选定的比例M2/M1和N2/N1缩减数字矩阵图像的方法,其中包括缩放单元,所述缩放单元包括至少一个用于将输入行送至所述缩放单元的输入单元、用于处理数据的处理器和存储器,以及前转处理过的数据的输出部分,并且其中,所述矩阵图像包括N1行,每行包括M1个像素,从而使得像素的值构成所述矩阵并且不同色彩的像素构成选定的格式,并且其中,利用缩放形成尺寸为M2×N2的输出矩阵,所述输出矩阵的像素以M2<M1和N2<N1的形式与所述原始矩阵的子组相对应,并且由所述原始矩阵的像素(i,j)的值Input(j,i)计算所述输出矩阵的每一输出像素(k,l)的值Output(l,k),其特征在于,-轮流处理每个输入行,并且将每个输入像素单独地送至所述处理器以进行处理,-在所述输出像素的区域内计算每个输入像素的加权系数,所述加权系数描述在所述输出像素中所述输入像素的表面面积的等分,-以这样的方式,根据预定的顺序,在每个输出像素(k,l)的区域内累加输入行的像素的值,所述方式为由每个输出像素(k,l)的区域内的同色矩阵图像的像素(i,j)的值形成加权和,并且通过缩放因子(M2/M1×N2/N1)对每个加权和进行修正,-通过所述输出部分发送出修正后的加权和。
15.根据权利要求14所述的方法,其特征在于,所述存储器包括用于对所述强度进行求和的至少两对存储单元(Data
)和两个行存储器(Buffer
,Buffer[1]),并且其中,-输入行j和输出行l的关系是限定的,并且-将在所选维度(x)内的中间和Outx(i,l)计算至此时轮到的存储单元Data[k mod2]中,而将部分像素的最末部分计算至另一存储单元(Data[(k+1)mod2])中,并且将所述和最终传送到行存储器(Buffer
,Buffer[1]),将相应列(l)的输出像素(k,l)的中间和Outx(i,l)计算到所述行存储器的每个基本单元(l)中。
16.根据权利要求15所述的方法,其特征在于,-通过交替函数对所述存储单元对的存储单元(Data
,Data[1])和所述行存储器对的行存储器(Buffer
,Buffer[1])进行寻址,-在部分像素(i,j)的情况下,总是也在另一存储单元中计算下一输出像素(k+1,l)的初始部分强度并且将其存储于该存储单元中,在该存储单元中集中随后轮到的索引(k+1)的强度和,并且,-在部分行的情况下,每个像素(i,j)的强度值被分开并存储在两个存储单元中,与在相应维度(y)中所述像素与下一像素(k,l+1)覆盖输出像素(k,l)的情况成比例,并且沿所述输出像素的长度对其求和,将所述每个像素的第一和值存储入此时轮到的行存储器中,而将第二和值存储入另一行存储器((l+1)mod2)中,下一输出行(l+1)的和值在所述另一行存储器中开始被集中。
全文摘要
本发明涉及一种以选定比例缩减数字矩阵图像的方法和装置。从输入像素值计算输出矩阵中的每个输出像素值。以这样的方式处理输出像素(k,l),即形成在每个输出图像(k,l)的区域内的矩阵图像的像素(i,j)值的加权和,加权系数是像素(i,j)在输出像素(k,l)的区域内的维度份额,并且通过缩放因子(f×M
文档编号G06T3/40GK1942897SQ200580011449
公开日2007年4月4日 申请日期2005年4月29日 优先权日2004年4月29日
发明者M·豪基伽尔维, O·卡莱沃 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1