掌桥专利:专业的专利平台
掌桥专利
首页

时域离散变换计算

文献发布时间:2023-06-19 09:32:16


时域离散变换计算

技术领域

本发明总体上涉及用于信号处理设计的系统和方法,并且在特定实施例中,涉及变换计算装置和方法。

背景技术

总体上,变换是数学运算,其在两个不同域之间映射信号。例如,离散傅立叶变换(DFT)将采样的时域信号映射到频域信号。在变换操作之后改变的信号特性可以被用于各种目的(诸如信号分析)。存在许多类型的转换。在另一示例中,离散余弦变换(DCT)是用于联合图像专家小组(JPEG)压缩的基础,其在变换域中利用了2D图像信号稀疏性。在又一示例中,离散小波变换(DWT)是JPEG2000压缩图像文件格式的基础,其对小波进行离散采样。哈尔小波变换(Haar Wavelet Transform)是DWT的一种形式。

计算转换是一项计算密集型任务,通常需要大量处理操作、算术块(诸如加法器和/或乘法器)、存储器空间、裸片面积、以及能耗。因此,需要改善变换计算的系统和方法。本公开涉及用于计算各种离散变换的装置和方法的改善。

发明内容

根据实施例,一种装置的多个计数器中的第一计数器在时域中接收多个脉宽信号。第一计数器基于离散变换矩阵的第一行,从多个脉宽信号在时域中生成第一增量信号。该装置的同步器接收第一增量信号。同步器从第一增量信号在时域中生成第一同步增量信号。装置的多个累加器中的第一累加器接收第一同步增量信号。第一累加器在一时间段上累加第一同步增量信号,以生成第一频域信号。

在一些实施例中,多个计数器还可以包括第二计数器。第二计数器可以在时域中接收多个脉宽信号。然后,第二计数器可以基于离散变换矩阵的第二行,从多个脉宽信号在时域中生成第二增量信号。同步器可以接收第二增量信号。然后,同步器可以从第二增量信号在时域中生成第二同步增量信号。多个累加器还可以包括第二累加器。第二累加器可以接收第二同步增量信号。然后,第二累加器可以在一时间段上累加第二同步增量信号,以生成第二频域信号。

在一些实施例中,多个脉宽信号的数目可以等于多个计数器的数目。多个计数器可以包括N个计数器,该N个计数器包括第一计数器,并且多个计数器中的第i计数器可以在时域中接收多个脉宽信号。第i计数器可以基于离散变换矩阵的第i行,从多个脉宽信号在时域中生成第i增量信号。离散变换矩阵可以是N×N离散变换矩阵。同步器可以接收第i增量信号。同步器可以根据第i增量信号在时域中生成第i同步增量信号。多个累加器还可以包括N个累加器,该N个累加器包括第一累加器。N个累加器中的第i累加器可以接收第i同步增量信号。然后,第i累加器可以在该时间段上累加第i同步增量信号,以生成第i频域信号。

在一些实施例中,多个计数器的数目可以等于4、8或16中的一项。在一些实施例中,多个计数器可以并行处理多个脉宽信号。在一些实施例中,多个计数器的数目可以等于4。离散变换矩阵的第一行可以是[1,1,1,1]。多个脉宽信号可以包括第一脉宽信号、第二脉宽信号、第三脉宽信号和第四脉宽信号。第一增量信号可以包括第一脉宽信号、第二脉宽信号、第三脉宽信号和第四脉宽信号在时域中的相加。

在一些实施例中,该装置还可以包括时钟分频器。分频器可以设置第一时钟速率。第一时钟速率可以是系统时钟速率的第一分数。时钟分频器可以通过第一多路复用器,将第一时钟速率馈送到第一累加器。在一些实施例中,多个累加器还可以包括N个累加器,该N个累加器包括第一累加器。时钟分频器可以设置第i时钟速率。第i时钟速率可以是针对N个累加器中的第i累加器的系统时钟速率的第i 分数。时钟分频器可以通过第i多路复用器,将第i时钟速率馈送到第i累加器。

在一些实施例中,离散变换矩阵可以是沃尔什(Walsh)矩阵或哈尔(Haar)矩阵中的一种矩阵。

根据实施例,装置的时域离散变换块接收N个脉宽信号。时域离散变换块生成N个频域信号。装置的输出模块存储或传输与N个频域信号相关联的信息。

在一些实施例中,与N个频域信号相关联的信息可以是N个频域信号。

在一些实施例中,该装置还可以包括游程长度编码器。该游程长度编码器可以对N个频域信号进行游程长度编码,以生成游程长度编码信号。该装置还可以包括熵编码器。该熵编码器可以对游程长度编码信号进行熵编码,以生成熵编码信号。与N个频域信号相关联的信息可以是熵编码信号。

在一些实施例中,N个频域信号可以是N个量化频域信号。

在一些实施例中,时域离散变换块可以包括N个计数器。N个计数器中的第i计数器可以在时域中接收N个脉宽信号。N个计数器中的第i计数器可以基于离散变换矩阵的第i行,根据N个脉宽信号,在时域中生成第i增量信号。离散变换矩阵可以是N×N离散变换矩阵。

在一些实施例中,时域离散变换块还可以包括同步器。该同步器可以接收第i增量信号。同步器可以根据第i增量信号,在时域中生成第i同步增量信号。时域离散变换块还可以包括N个累加器。N个累加器中的第i累加器可以接收第i同步增量信号。N个累加器中的第i累加器可以在一时间段上累加第i同步增量信号,以生成第i频域信号。

在一些实施例中,N可以是4、8或16中的一项。在一些实施例中,该装置可以包括多个(N个)比较器。多个(N个)比较器可以从N个像素接收输出,并且根据N个像素生成N个脉宽信号。

在一些实施例中,该装置可以是图像传感器读出设备。

前面已经相当广泛地概述了本公开的实施例的特征,以便可以更好地理解下面的本公开的详细描述。下文中将对形成本公开的权利要求的主题的、本公开的实施例的附加特征和优点进行描述。由本领域技术人员应当领会的是,所公开的概念和特定实施例可以容易地被用作用于修改或设计用于执行本公开的相同目的、的其他结构或过程的基础。本领域技术人员还应该认识到的是,这样的等同构造没有脱离在所附权利要求书中阐述的、本公开的精神和范围。

附图说明

为了更完整地理解本公开及其优点,现在将参考以下结合附图的描述,其中:

图1图示了执行沃尔什(Walsh)变换的常规系统;

图2A图示了根据一些实施例的用于改善的离散变换计算的时域离散变换块(例如,时域沃尔什(Walsh)变换块、或时域哈尔(Haar) 小波变换块);

图2B示出了根据一些实施例的由时域离散变换块(例如,时域沃尔什(Walsh)变换块、或时域哈尔(Haar)小波变换块)执行的在计算中涉及的信号的示例波形图;

图3图示了具有用于压缩的系数量化的时域离散变换块(例如,时域沃尔什(Walsh)变换块、或时域哈尔(Haar)小波变换块)。

图4图示了根据一些实施例的使用沃尔什(Walsh)变换块来同时读出若干个像素的图像读出设备;

图5图示了根据一些实施例的用于执行时域离散变换的方法的流程图;

图6图示了根据一些实施例的使用基于离散变换的压缩来执行图像传感器读出的方法的流程图;

图7A至图7B图示了根据一些实施例的在本公开中被使用的4 输入计数器的框图;

图8A至图8B图示了根据一些实施例的在本公开中被使用的8 输入计数器的框图;以及

图9A至图9C图示了根据一些实施例的在本公开中被使用的16 输入计数器的框图;

图10示出了针对在图2A中的累加器、在图3中的累加器和在图 4中的累加器可以实现的示例实施例累加器的框图;

图11示出了用于在图3中的时钟分频器和在图4中的时钟分频器的可以被实现的示例实施例时钟分频器的框图。

除非另外指出,否则在不同附图中的相应数字和符号通常是指对应部分。绘制附图以清楚地图示实施例的相关方面,并且其不一定按比例绘制。

具体实施方式

本申请涉及用于诸如沃尔什(沃尔什)变换的离散变换的装置和方法的改善。沃尔什变换也称为阿达玛(Hadamard)变换、沃尔什- 阿达玛(Walsh–Hadamard)变换、阿达玛-拉德马赫-沃尔什 (Hadamard–Rademacher–Walsh)变换、或沃尔什-傅里叶 (Walsh–Fourier)变换。执行沃尔什变换的目的是通过移除冗余数据来压缩信号。沃尔什变换本身在数学上是可逆的且无损的。

用于沃尔什变换的常规方法要求输入已经被数字化。这样的要求假定一些形式的模数转换器(ADC)或时数转换器(TDC)。ADC和 TDC通常具有高功耗。

图1示出了常规系统100,其使用快速沃尔什变换算法来执行沃尔什变换。在系统100中,快速沃尔什变换模块104获取数字信号,并且将数字信号转换为频域信号h1、h2、h3和h4。然而,通常,输入向量包括时域信号,诸如脉宽信号c1、c2、c3和c4。脉宽信号通常用于在时域中表示入射在图像传感器的像素上的光强度、或表示在与压控延迟单元(VCDU)组合时的电压。因此,在系统100中需要时数转换器TDC 102。TDC 102分别将在时域中的输入信号c1、c2、 c3和c4转换为数字信号d1、d2、d3和d4。数字信号d1、d2、d3和d4分别是在时域中的输入信号c1、c2、c3和c4的数字表示。然后,快速沃尔什变换模块104获取数字信号d1、d2、d3和d4,并且将它们转换为频域信号h1、h2、h3和h4(在图1中标记为h<1:4>)。

如上文所解释的,TDC和ADC通常具有高功耗。此外,与用于许多其他类型的变换的系统类似,用于沃尔什变换的常规系统100需要大量的处理操作、算术块、存储器空间、裸片面积、以及能量消耗。本公开的实施例提供了用于在转换处理期间,在时域中针对脉宽信号执行沃尔什变换计算的方法和装置。在这样做时,通过减少处理操作、算术块、存储器使用、裸片面积和功耗的量,本公开的实施例提供了相对于传统沃尔什变换系统的技术改善。

图2A示出了根据一些实施例的系统200、作为用于改善沃尔什变换计算的示例时域离散变换块的系统200(例如,时域沃尔什变换块、或时域哈尔小波变换块)。系统200包括多个并行计数器202、同步器204以及多个累加器206。并行计数器202的数目和累加器206的数目取决于并行输入信号的数目。例如,系统200可以需要N个并行计数器202和N个累加器206来处理N个并行输入信号。

出于说明的目的,图2A示出了4个并行输入信号,诸如4个并行脉宽信号c1、c2、c3和c4。因此,系统200包括4个并行计数器 202和4个累加器206。图2A提供了用于处理4个并行输入信号的非限制性示例实施例系统200。如果存在8个或16个并行输入信号,则系统200可以相应地包括8个并行计数器和8个累加器,或16个并行计数器和16个累加器等。

在并行计数器202中的每个并行计数器的输入是所有并行输入信号(例如,c1、c2、c3和c4)。并行计数器202中的每个并行计数器获取所有并行输入信号,并且根据沃尔什矩阵对并行输入信号执行加法/减法。所使用的沃尔什矩阵取决于并行计数器的数目。针对用于处理N个并行输入信号的N个并行计数器的系统,使用N×N沃尔什矩阵。具体地,第一计数器根据沃尔什矩阵的第一行,对并行输入信号执行加法/减法,第i计数器根据沃尔什矩阵的第i行,对并行输入信号执行加法/减法,并且第N计数器根据沃尔什矩阵的第N行,对并行输入信号执行加法/减法。每个计数器的输出是增量信号,该增量信号是根据沃尔什矩阵的对应行,对并行输入执行的加法/减法的结果的数字表示。

图2A示出了具有4个并行计数器的示例系统200,该4个并行计数器在时域中获取4个脉宽信号(c1、c2、c3和c4)作为输入信号。因此,每个计数器使用下面的4×4沃尔什矩阵的对应行,来执行脉宽信号c1、c2、c3和c4的加法/减法。

在沃尔什矩阵的元中的值1指示对应输入脉宽信号的加法,而沃尔什矩阵的元中的值-1指示对应输入脉宽信号的减法。例如,并行计数器202的第一计数器使用4×4沃尔什矩阵的第一行[1 1 1 1]。因此,第一计数器执行INCR1增量信号INCR1,其是(c1+c2+c3+c4)的数字表示。

并行计数器202的第二计数器使用4×4沃尔什矩阵的第二行[1 -1 1 -1]。因为该行[1 -1 1 -1]的第一元和第三元为1,所以第二计数器对第一输入脉宽信号和第三输入脉宽信号(c1和c3)执行加法。此外,由于该行[1 -1 1 -1]的第二元和第四元为-1,所以第二计数器对第二输入脉冲信号(c2)和第四输入脉冲信号(c4)执行减法。也就是说,第二计数器的输出是生成的第二增量信号INCR2,该第二增量信号 INCR2是(c1+c3-c2-c4)的数字表示。

并行计数器202的第三计数器使用4×4沃尔什矩阵的第三行[1 1 -1 -1]。因为该行[1 1 -1 -1]的第一元和第二元为1,所以第三计数器对第一输入脉宽信号(c1)和第二输入脉宽信号(c2)执行加法。此外,因为该行[1 1 -1 -1]的第三元和第四元为-1,所以第三计数器对第三输入脉宽信号(c3)和第四输入脉宽信号(c4)执行减法。也就是说,第三计数器的输出是生成的第三增量信号INCR3,该第三增量信号 INCR3是(c1+c2-c3-c4)的数字表示。

并行计数器202的第四计数器使用4×4沃尔什矩阵的第四行[1 -1 -1 1]。因为该行[1 -1 -1 1]的第一元和第四元为1,所以第四计数器对第一输入脉宽信号(c1)和第四输入脉宽信号(c4)执行加法。此外,因为该行[1 -1 -1 1]的第二元和第三元为-1,所以第四计数器对第二输入脉宽信号(c2)和第三输入脉宽信号(c3)执行减法。也就是说,第三计数器的输出是生成的第四增量信号INCR4,其是(c1+c4-c2 -c3)的数字表示。

同样,如由本领域技术人员所理解的,可以设计使用另一尺寸的沃尔什矩阵的实施例系统。例如,针对8个并行计数器处理8个并行输入脉宽信号(例如,脉宽信号c1、c2、c3、c4、c5、c6、c7和c8) 的实施例系统,8个并行计数器中的每个计数器使用下文的8×8沃尔什矩阵的对应行。

下文分别示出了如本领域技术人员所理解的8个并行计数器所生成的8个增量信号。

INCR1=c1+c2+c3+c4+c5+c6+c7+c8

INCR2=c1+c3+c5+c7-c2-c4-c6-c8

INCR3=c1+c2+c5+c6-c3-c4-c7-c8

INCR4=c1+c4+c5+c8-c2-c3-c6-c7

INCR5=c1+c2+c3+c4-c5-c6-c7-c8

INCR6=c1+c3+c6+c8-c2-c4-c5-c7

INCR7=c1+c2+c7+c8-c3-c4-c5-c6

INCR8=c1+c4+c6+c7-c2-c3-c5-c8

系统200不限于沃尔什变换计算。在图2A中的相同系统200可以被用于计算离散变换的其他形式。例如,在图2A中的系统200可以使用以下用于具有4个并行计数器的系统的4×4哈尔矩阵,以计算哈尔小波变换。

在元中的值1指示对应输入脉宽信号的加法,在元中的值-1指示对应输入脉宽信号的减法,而在元中的值0指示对应输入脉宽信号不被计数。针对哈尔小波变换的4个并行计数器所分别生成的4个增量信号如下所示。

INCR1=c1+c2+c3+c4

INCR2=c1+c2-c3-c4

INCR3=c1-c2

INCR4=c3-c4

针对8个并行计数器处理8个并行输入脉宽信号(例如,脉宽信号c1、c2、c3、c4、c5、c6、c7和c8)的实施例系统,8个并行计数器中的每个计数器都使用下文的8×8哈尔矩阵的对应行。

下文分别示出了本领域技术人员所理解的由8个并行计数器所生成的8个增量信号。

INCR1=c1+c2+c3+c4+c5+c6+c7+c8

INCR2=c1+c2+c3+c4-c5-c6-c7-c8

INCR3=c1+c2-c3-c4

INCR4=c5+c6-c7–c8

INCR5=c1-c2

INCR6=c3–c4

INCR7=c5–c6

INCR8=c7–c8

使用累加器206对来自并行计数器202的输出(即,增量信号) 进行积分。在累加器206中的每个累加器随时间对对应增量信号执行加法/减法,以生成频域信号h。

累加器需要将增量信号同步。为了减少累加器的复杂性,同步器 204可以被包括在并行计数器202与累加器206之间。同步器204的输入是由并行计数器202所输出的增量信号(例如,INCR1、INCR2、 INCR3和INCR4)。同步器204对增量信号进行同步,并且输出经同步的增量信号。用于执行信号同步的硬件和电路对于本领域技术人员而言是众所周知的。

累加器206的输入是经同步的增量信号。累加器206执行增量信号的积分。用于执行信号积分的累加器的硬件和电路针对本领域技术人员而言是众所周知的。

积分的结果是累加器206的输出,其可以用二进制补码表示。二进制补码是对二进制数进行的数学运算。通过将数字取逆数、并且添加一,来计算二进制补码。例如,针对四位二进制数0001,二进制补码为1111(0001的求逆为1110,而1110加1为1111)。在图2A中,四个对应的累加器206的四个输出分别是四个频域信号h1、h2、h3 和h4,它们与在图1中示出的快速沃尔什变换模块104的输出相同(在图1和图2A中都标记为h<1:4>)。

如在图2A中示出的,在实施例系统200与常规系统100之间的主要差异在于系统200将时数转换与离散变换计算(例如,沃尔什变换计算、或哈尔小波变换计算)相结合。利用上文所描述的实施例系统和方法,可以在时域中执行增量信号生成和积分。

如在图2A中示出的,在沃尔什变换块之前的系统200的实施例沃尔什变换块中不需要TDC。与常规系统相比,这种实施例技术减少了系统的功耗。沃尔什变换将信号编码为标量分量之和乘以沃尔什矩阵的对应行。在一些实施例中,累加操作仅在增量信号不为0时发生。例如,如果输入信号相关,则增量信号通常为0。因此,在这些情况下,无需累加,从而引起进一步地减少功耗。

如上文所描述的,执行沃尔什变换的目的是通过移除冗余数据来压缩信号。在一些情况下(例如,当输入信号涉及图像时),数据冗余度取决于信号空间频率,并且沃尔什变换按空间频率划分输入信号。不同的频率可以使用不同的分辨率进行量化。当对应数据不太重要时,某些频率的分辨率可以更粗糙。

上文的图2A图示了以脉宽信号作为输入的沃尔什变换的时域计算系统和方法。根据在沃尔什矩阵中的行,脉宽信号被相加/相减(使用并行计数器202),并且对结果进行积分(使用上/下累加器206)。系统200的输出(例如,h1、h2、h3和h4)是原始输入脉宽信号(例如,c1、c2、c3和c4)的域变换表示。如果系统200被应用于适当的输入信号,则输出可以在沃尔什域(即,频域)中是稀疏的,并且因此需要较少的存储器,以用于存储信息(无损)。另外,输出可以适合于被进一步压缩(例如,有损压缩)。

图2B是根据一些实施例的由系统200在时间段t1至t6上执行的计算中所涉及的信号的波形图。在时钟周期t1、t2、t3、t4、t5和t6 的上升沿,对增量信号进行采样。针对第一累加器,在时间t1处,以值4对增量信号INCR1进行采样,并且由第一累加器所累加的频域信号h1为4(0+4=4)。在时间t2处,以值4对增量信号INCR1进行采样,并且由第一累加器所累加的频域信号h1为8(4+4=8)。在时间t3处,以值3对增量信号INCR1进行采样,并且由第一累加器所累加的频域信号h1为11(8+3=11)。在时间t4处,以值2对增量信号INCR1进行采样,并且由第一累加器所累加的频域信号h1为13 (11+2=11)。在时间t5处,以值1对增量信号INCR1进行采样,并且由第一累加器所累加的频域信号h1为14(13+1=14)。在时间t6 处,以值0对增量信号INCR1进行采样,并且第一累加器所累加的频域信号h1为14(14+0=14)。

同样,针对第二累加器,在时间t1、t2、t3、t4、t5和t6处,分别以值0、0、1、0、-1和0对增量信号INCR2进行采样。由第二累加器所累加的对应频域信号h2分别为0、0、1、1、0和0。针对第三累加器,在时间t1、t2、t3、t4、t5和t6处,分别以值0、0、1、2、 1和0对增量信号INCR3进行采样。由第三累加器所累加的对应频域信号h3分别为0、0、1、3、4和4。针对第四累加器,在时间t1、t2、 t3、t4、t5和t6处,分别以值0、0、-1、0、-1和0对增量信号INCR4 进行采样。由第四累加器所累加的对应频域信号h4分别为0、0、-1、 -1、-2和0。

如上文所解释的,沃尔什变换本身在数学上是可逆且无损的。对于时域沃尔什计算块(诸如在图2A中示出的系统200),除了潜在的稀疏信号表示之外,不存在固有压缩。但是,这样的潜在稀疏信号表示依赖于信号。量化沃尔什变换结果需要(多个)附加数字电路。

在常规系统中,通常使用专用算术块执行沃尔什系数量化,以实现以下计算:

此处,h是经变换的沃尔什系数(即,频域信号),q是量化因子,并且Q

为了进一步改善用于压缩的沃尔什变换系数量化,本公开利用上文所描述的时域离散变换块(例如,系统200)。在时域离散变换块(例如,时域沃尔什变换块、或时域哈尔小波变换块)内,累加器以某些给定系统时钟速率,对增量信号进行积分。每个累加器对应于一个频率分量(例如,一个频域信号分量)。已知不同的频率分量在原始信号的重构中具有不同的重要性级别,可以对较不重要的信号进行更粗糙的量化。可以通过以较低的系统时钟速率计时不太重要的累加器来实现这样的改善。进一步地,甚至可以关断单个累加器(有效地以0 系统时钟速率计时),以便根本不捕获在对应输入信号中的信息。

图3示出了根据一些实施例的系统300,该系统300是具有用于压缩的系数量化的时域离散变换块(例如,时域沃尔什变换块、或时域哈尔小波变换块)。系统300包括多个并行计数器302、同步器304、多个累加器306、多个多路复用器308、系统时钟310以及时钟分频器312。并行计数器302的数目、累加器306的数目以及多路复用器 308的数目取决于并行输入信号的数目。例如,用于处理N个并行输入信号的系统300需要N个并行计数器302、N个累加器306以及至多N个的多路复用器308。当两个或更多个多路复用器共享相同的时钟速率时,多路复用器308的数目可以小于N。

图3示出了4个并行输入信号,诸如4个并行脉宽信号c1、c2、 c3和c4(与图2A相同)。因此,系统300包括4个并行计数器302、 4个累加器306以及4个多路复用器308。图3提供了用于处理4个并行输入信号的非限制性示例实施例系统300。如果存在8个(或16 个)并行输入信号,则系统300可以包括8个(或16个)并行计数器、8个(或16个)累加器和8个(或16个)多路复用器等。

在图3中,并行计数器302可以被设计为与关于图2A所描述的并行计数器202相同,并且执行相同的功能。同步器304可以被设计为与关于图2A所描述的同步器204相同,并且执行相同的功能。累加器306可以被设计为与关于图2A所描述的累加器206相同,并且执行相同的功能(例如,积分)。另外,累加器306中的每个累加器可以通过选择供应给累加器的不同时钟速率,来进一步量化具有不同分辨率/准确度/质量的在频域信号h1、h2、h3和h4中的对应频域信号。也就是说,累加器306中的每个累加器可以采用分隔的时钟速率作为由复用器308的对应复用器所馈送的附加输入。

例如,系统时钟310可以具有系统时钟速率CLK。时钟速率分频器312可以分别利用CLK、CLK/2、CLK/4和CLK/8来设置用于频域信号h1、h2、h3和h4的时钟速率。通过多路复用器308的对应多路复用器,不同的时钟速率被供应给累加器306的每个对应累加器,以进行量化。用于时钟速率分频器和多路复用器的硬件和电路对于本领域技术人员而言是众所周知的。

例如,时钟速率CLK可以被馈送到累加器306的第一累加器,时钟速率CLK/2可以被馈送到累加器306的第二累加器,时钟速率 CLK/4可以被馈送到累加器306的第三累加器,并且时钟频率CLK/8 可以被馈送到累加器306的第四累加器。继而,累加器306可以有效地将频域信号h1、h2、h3和h4分别量化为量化频域信号h1、

图3图示了具有用于压缩的系数量化的时域离散变换块(例如,时域沃尔什变换块、或时域哈尔小波变换块)。所公开的技术通过减少对应累加器的时钟速率,来选择性地控制单独时域计算的沃尔什变换系数的量化准确度。通过适当地选择减少时钟速率的频率分量(其取决于信号属性),可以根据更少的总比特忠实地重构原始信号。在这样做时,可以在捕获时间期间立即执行信号压缩,这引起较低的存储需求和较低的传输需求。基于时钟频率(即,时钟速率),可以灵活地选择量化等级。较低的时钟频率还引起较低的功耗。压缩程度和质量还可以通过设置不同的时钟速率来控制。经重构的信号质量可以跟踪获取信号所需的能量,从而允许进行能量和质量缩放。

如在图2和图3中图示的,时域离散变换块(例如,时域沃尔什变换块、或时域哈尔小波变换块)可以被用于图像压缩。当在频域中被表示时,真实场景的图像通常比较稀疏,该频域包含大面积的低频信号(平滑梯度)和局部高频信号(边缘)。如果与图像关联的信号例如在使用JPEG标准中的离散余弦变换(DCT)来变换,则这样的特点允许了图像压缩。

图像传感器可以产生大量数据,就存储空间或传输资源而言,这些数据的存储或传输成本很高。一般而言,图像数据被压缩得越早,存储空间或传输资源的总体节省就越高。因而,在读出阶段压缩图像可以显著节省用于图像处理/传输的所有后续阶段的功率/裸片面积。

图像压缩可以是计算和能量密集型操作。但是,在存储空间(例如,存储器或硬盘驱动器)或可用信号传输带宽受到限制的情况下,仍然期望图像压缩。现有流行的图像压缩技术被设计为,在保持图像的质量的同时尽可能减少图像文件的尺寸。这些现有的压缩技术经常折衷在压缩过程期间使用的能量。因此,期望具有较低能量消耗的经改善的图像压缩解决方案。

为了在系统等级节省功率,优选的是尽可能接近信号生成地将图像压缩,以减少在稍后阶段(例如,信号存储或信号传输)期间的功率消耗。因此,在二维(2D)区域上执行图像压缩时,效果将是最好的。为了生成用于图像的数据,滚动快门传感器需要在压缩计算可以开始之前暴露多个行,这要求将第一行存储在某个位置。

本公开还提供了实现基于沃尔什变换的压缩的图像传感器读出设备。根据实施例,像素可以被设计为输出取决于光等级的脉宽信号。图像传感器读出实施例与基于时域离散变换的压缩器(诸如关于图2 和图3所描述的系统200和300)兼容。沃尔什矩阵可以被扩展到其 2D版本,以沿两个方向利用真实图像的空间频率特性。

图4示出了根据一些实施例的使用时域离散变换压缩块(例如,沃尔什压缩块)来同时读出多个像素的系统400。在图4中,像素阵列被分到4×4像素的块中,并且一行的块被同时读出。像素块以滚动快门方式连接到列级沃尔什压缩块。最终结果是块行读出,其中同时读取4行像素,然后重复该过程以读取图像的完整像素阵列。使用4×4 像素块仅用于说明目的。可以修改系统400,以处理2×2像素块或8×8 像素块。一般而言,可以将系统400修改为被使用以处理N×N像素块。

系统400包括行解码器402和读出模块404。读出模块404包括沃尔什压缩块420。附加地,系统400可以包括本领域已知的游程长度编码器408和熵编码器410。

像素阵列414包括本领域已知的图像感测元件的单独像素。本领域已知的行解码器402可以对来自像素阵列414的一行4×4像素块 412进行解码。4×4像素块412包括16个像素p1、p2、p3、……,和p16。16个像素被输入到沃尔什压缩块420中。沃尔什压缩块420 包括多个并行计数器424、同步器426、多个累加器428、多个多路复用器430以及时钟分频器432。多个并行计数器424的数目、多个时钟门控块426的数目以及累加器428的数目取决于在输入像素块中的像素的数目。如果在输入像素块中存在N个像素,则沃尔什压缩块 420可以包括N个并行计数器424、N个累加器428以及至多N个多路复用器。

图4示出了用于说明目的的4×4像素块。在本领域中已知的比较器(图4中未示出)可以被用于将来自像素块412的像素输出转换为脉宽信号。当在像素块412中存在16个像素时,比较器在时域中生成对应的16个脉宽信号c1、c2、c3、……,和c16(在图4中标记为 c<1:16>)。并行计数器424可以被设计为与关于图2A和图3所描述的并行计数器202和302相同、并且执行相同的功能。当如在图4中示出的、存在16个并行脉宽信号时,沃尔什压缩块420包括16个并行计数器424,用于使用16×16沃尔什矩阵来生成16个增量信号(在图4中被标记为INCR<1:16>)。累加器428可以被设计为与在图2A 中的累加器206或在图3中的累加器306相同、并且执行相同的功能。当存在16个增量信号(在图4中标记为INCR<1:16>)时,沃尔什压缩块420包括16个累加器,用于生成16个频域信号h1、h2、h3、……和h16(在图4中标记为h<1:16>)。沃尔什压缩块420可以支持系数量化。累加器428可以生成量化频域信号。如果系统400包括游程长度编码器408和熵编码器410,则沃尔什压缩块420的输出(频域信号或经量化频域信号)可以由这两个编码器进一步压缩。系统400的输出是将由输出模块(在图4中未示出)保存或传输的压缩图像信号输出。输出模块可以是用于将信息本地存储在设备上(在设备的硬盘驱动器或存储器上)的一种在本领域中已知的模块。输出模块可以是用于通过网络远程传输信息的一种在本领域中已知的模块。经压缩的图像信号可以是使用游程长度编码器428和熵编码器410编码的频域信号h1、h2、h3、……、h16。经压缩的图像信号还可以是未使用游程长度编码器408和熵编码器410编码的频域信号h1、h2、h3、……、h16。

图4示出了针对图像传感器阵列的读出,其在图像的2D子区域上实现了基于时域的沃尔什变换块420。并行读出4×4(或2×2或8×8) 像素,并且同时对其进行压缩,从而减少了将被传送到存储介质(例如,存储器或硬盘驱动器)或将被传输到另一设备的数据量。在这样做时,在尽可能接近信号生成阶段的阶段处实现了图像的更小并且更有效的表示。

使用如在图4中示出的本公开技术,经压缩的图像表示在读出之后直接可用,这在存储或传输之前将需要更少的处理。在存储或传输之前较少的处理引起较低的功耗和/或较低的信号带宽要求。关于图4 所公开的块-行读出技术意味着图像不需要被首先存储在存储器中,然后对其进行检索以进行压缩。

图5示出了根据一些实施例的用于执行时域离散变换的方法500 的流程图。方法500可以由诸如上文所描述的系统200或系统300的硬设备执行。方法500在操作502处开始,在该操作502处,装置的多个计数器中的第一计数器在时域中接收多个脉宽信号。在操作504 处,基于第一计数器基于离散变换矩阵的第一行,从多个脉宽信号,在时域中生成第一增量信号。在操作506处,装置的同步器接收第一增量信号。在操作508处,同步器从第一增量信号,在时域中生成第一同步增量信号。在操作510处,装置的多个累加器中的第一累加器接收第一同步增量信号。在操作512处,第一累加器在一时间段上累加第一同步增量信号,以生成第一频域信号。

在一些实施例中,多个计数器还可以包括第二计数器。第二计数器可以在时域中接收多个脉宽信号。然后,第二计数器可以基于离散变换矩阵的第二行,从多个脉宽信号,在时域中生成第二增量信号。同步器可以接收第二增量信号。然后,同步器可以从第二增量信号,在时域中生成第二同步增量信号。多个累加器还可以包括第二累加器。第二累加器可以接收第二同步增量信号。然后,第二累加器可以在一时间段上累加第二同步增量信号,以生成第二频域信号。

在一些实施例中,多个脉宽信号的数目可以等于多个计数器的数目。多个计数器可以包括N个计数器,该N个计数器包括第一计数器,并且多个计数器中的第i计数器可以在时域中接收多个脉宽信号。第i计数器可以基于离散变换矩阵的第i行,从多个脉宽信号,在时域中生成第i增量信号。离散变换矩阵可以是N×N离散变换矩阵。同步器可以接收第i增量信号。同步器可以根据第i增量信号,在时域中生成第i同步增量信号。多个累加器还可以包括N个累加器,该N 个累加器包括第一累加器。N个累加器中的第i累加器可以接收第i 同步增量信号。然后,第i累加器可以在该时间段上累加第i同步增量信号,以生成第i频域信号。

在一些实施例中,多个计数器的数目可以等于4、8或16中的一项。在一些实施例中,多个计数器可以并行处理多个脉宽信号。在一些实施例中,多个计数器的数目可以等于4。离散变换矩阵的第一行可以是[1,1,1,1]。多个脉宽信号可以包括第一脉宽信号、第二脉宽信号、第三脉宽信号以及第四脉宽信号。第一增量信号可以包括第一脉宽信号、第二脉宽信号、第三脉宽信号和第四脉宽信号在时域中的相加。

在一些实施例中,该装置还可以包括时钟分频器。分频器可以设置第一时钟速率。第一时钟速率可以是系统时钟速率的第一分数。时钟分频器可以通过第一多路复用器,将第一时钟速率馈送到第一累加器。在一些实施例中,多个累加器还可以包括N个累加器,该N个累加器包括第一累加器。时钟分频器可以设置第i时钟速率。第i时钟速率可以是用于N个累加器中的第i累加器的系统时钟速率的第i 分数。时钟分频器可以通过第i多路复用器,将第i时钟速率馈送到第i累加器。

在一些实施例中,离散变换矩阵可以是沃尔什矩阵或哈尔矩阵中的一个矩阵。

图6示出了根据一些实施例的、使用基于离散变换的压缩来执行图像传感器读出的方法600的流程图。方法600可以由诸如上文所描述的系统400的硬设备执行。方法600在操作602处开始,在该操作 602处,装置的时域离散变换块接收N个脉宽信号。在操作604处,时域离散变换块生成N个频域信号。在操作606处,装置的输出模块存储或传输与N个频域信号相关联的信息。

在一些实施例中,与N个频域信号相关联的信息可以是N个频域信号。

在一些实施例中,该装置还可以包括游程长度编码器。该游程长度编码器可以对N个频域信号进行游程长度编码,以生成游程长度编码信号。该装置还可以包括熵编码器。熵编码器可以对游程长度编码信号进行熵编码,以生成熵编码信号。与N个频域信号相关联的信息可以是熵编码信号。

在一些实施例中,N个频域信号可以是N个量化频域信号。

在一些实施例中,时域离散变换块可以包括N个计数器。N个计数器中的第i计数器可以在时域中接收N个脉宽信号。N个计数器中的第i计数器可以基于离散变换矩阵的第i行,从N个脉宽信号在时域中生成第i增量信号。离散变换矩阵可以是N×N离散变换矩阵。

在一些实施例中,时域离散变换块还可以包括同步器。同步器可以接收第i增量信号。同步器可以从第i增量信号在时域中生成第i 同步增量信号。时域离散变换块还可以包括N个累加器。N个累加器中的第i累加器可以接收第i同步增量信号。N个累加器中的第i累加器可以在一时间段上累加第i同步增量信号,以生成第i频域信号。

在一些实施例中,N可以是4、8或16中的一项。在一些实施例中,装置可以包括N数目个多个比较器。多个(N个)比较器可以从 N个像素接收输出,并且从N个像素生成N个脉宽信号。

在一些实施例中,装置可以是图像传感器读出设备。

图7A至图7B示出了根据一些实施例的、用于本公开的4输入计数器的更详细的框图。图7A示出了一个示例4输入计数器700,该4 输入计数器700被用作与4×4沃尔什矩阵的第一行[1 1 1 1]相对应的第一计数器(如关于图2A、图3和图4所描述的)。4输入计数器700接收4个输入信号i0、i1、i2和i3(例如,分别为脉宽信号c1、c2、 c3和c4)。4输入计数器700生成作为3比特(O0、O1、O2和O3) 输出的增量信号INCR1,表示i0+i1+i2+i3。4输入计数器700包括全加法器702。4输入计数器700还包括半加法器704和706。这些加法器如在图7A中示出地被连接。全加法器和半加法器的硬件实现方式在本领域中是已知的。

诸如半加法器704和半加法器706的半加法器将两个二进制数A 和B相加,以产生总和S与进位输出C。半加法器的真值表如下所示。

诸如全加法器702的全加法器是对三个1比特二进制数(A、B 和进位输入Cin)执行加法运算的逻辑电路。全加法器的输出是总和 S与进位输出C。全加法器的真值表如下表所示。

图7B示出了一个示例4输入计数器750,被用作与4×4沃尔什矩阵的后续行相对应的后续计数器(如关于图2A、图3和图4所描述的)。4输入计数器750接收4个输入信号i0、i1、i2和i3。4输入计数器750生成作为3位(O0,O1和O2)输出的增量信号,表示i0 +i1-i2-i3。4输入计数器750包括半加法器752和754。4输入计数器750还包括本领域中已知的2比特减法器756。这些部件如在图7B 中所示出地被连接。2比特减法器756接收A和B作为输入,并且2位减法器的输出是由3比特(O0、O1和O2)输出表示的A-B。针对后续计数器中的任一后续计数器(即,与4×4沃尔什矩阵的第二行、第三行或第四行相对应的计数器),可以实现4输入计数器750。

与“1”元相对应的脉宽信号可以分别是输入信号i0和i1。与“-1”元相对应的脉宽信号可以分别是输入信号i2和i3。例如,针对与4×4 沃尔什矩阵的第二行[1 -1 1 -1]相对应的第二计数器,c1和c3可以分别是输入信号i0和i1,c2和c4可以分别是输入信号i2和i3,以便生成增量信号INCR2(c1+c3–c2–c4)。针对与4×4沃尔什矩阵的第三行[1 1 -1 -1]相对应的第三计数器,c1和c2可以分别是输入信号i0 和i1,c3和c4可以分别是输入信号i2和i3,用于生成增量信号INCR3 (c1+c2–c3–c4)。针对与4×4沃尔什矩阵的第四行[1 -1 -11]相对应的第四计数器,c1和c4可以分别是输入信号i0和i1,c2和c3可以分别是输入信号i2和i3,用于生成增量信号INCR3(c1+c4–c2– c3)。

图8A至图8B示出了根据一些实施例的、用于本公开的8输入计数器的更详细的框图。图8A示出了一个示例8输入计数器800,其被用作与8×8沃尔什矩阵的第一行[1 1 1 11 1 1 1]相对应的第一计数器(如关于图2A、图3和图4所描述的)。8输入计数器800接收8个输入信号i0、i1、i2、i3、i4、i5、i6和i7(例如,分别为脉宽信号 c1、c2、c3、c4、c5、c6、c7和c8)。8输入计数器800生成作为4 位输出(O0、O1、O2和O3)的增量信号INCR1。8输入计数器800 包括全加法器802、804、806和808。8输入计数器800还包括半加法器810、812和814。这些加法器如在图8A中所示出地被连接。

图8B示出了一个示例8输入计数器850,其被用作与8×8沃尔什矩阵的后续行相对应的后续计数器(如关于图2A、图3和图4所描述的)。8输入计数器850接收8个输入信号i0、i1、i2、i3、i4、i5、 i6和i7。8输入计数器850生成作为4位(O0、O1、O2和O3)输出的增量信号,表示i0+i1+i2+i3–i4–i5–i6–i7。8输入计数器850 包括4输入计数器852和854。如关于图7A所描述的,4输入计数器 852和854可以与4输入计数器700被相同地实现。8输入计数器850还包括本领域已知的3比特减法器856。这些部件如在图8B中所示出地被连接。3比特减法器856接收A和B作为输入,并且3比特减法器的输出是由4比特(O0、O1、O2和O3)输出表示的A–B。后续计数器中的任一后续计数器(即,与8×8沃尔什矩阵的第二行、第三行、第四行、……,或第八行相对应的计数器)可以被实现为8输入计数器850。

与“1”元相对应的脉宽信号可以分别是输入信号i0、i1、i2和 i3。与“-1”元相对应的脉宽信号可以分别是输入信号i4、i5、i6和 i7。例如,针对与8×8沃尔什矩阵的第二行[1-1 1 -1 1 -1 1 -1]相对应的第二计数器,c1、c3、c5和c7可以分别是输入信号i0、i1、i2和i3。并且,c2、c4、c6和c8可以分别是输入信号i4、i5、i6和i7,用于生成增量信号INCR2(c1+c3+c5+c7–c2–c4–c6–c8)。

图9A至图9C示出了根据一些实施例的、用于本公开的16输入计数器的更详细的框图。图9A示出了一个示例16输入计数器900,其被用作与16×16沃尔什矩阵的第一行[1 1 11 1 1 1 1 1 1 1 1 1 1 1 1] 相对应的第一计数器(如关于图2A、图3和图4所描述的)。16输入计数器900接收16个输入信号i0、i1、i2、i3、i4、i5、i6、i7、i8、 i9、i10、i11、i12、i13、i14和i15(例如,脉宽信号c1、c2、c3、c4、 c5、c6、c7、c8、c9、c10、c11、c12、c13、c14和c15)。16输入计数器900生成作为5位输出(O0、O1、O2、O3和O4)的增量信号 INCR1。16输入计数器900包括全加法器902、904、906、908、910、 912、914、916、918、920和922。16输入计数器900还包括半加法器924、926、928和930。这些加法器如在图9A中所示出地被连接。

图9B示出了另一示例16输入计数器930,其被用作与16×16沃尔什矩阵的第一行[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]相对应的第一计数器 (如关于图2A、图3和图4所描述的)。16输入计数器930包括两个 8输入计数器932和934。16输入计数器930还包括4比特加法器936。两个8输入计数器932和934中的每个8输入计数器的设计与关于图 8A所描述的8输入计数器的设计相同。16输入信号中的前8个输入信号(例如,c1、c2、c3、c4、c5、c6、c7和c8)是8输入计数器 932的输入。16个输入信号中的后8个输入信号(例如,c9、c10、 c11、c12、c13、c14、c15和c16)是8输入计数器934的输入。8输入计数器934的4比特输出是4比特加法器936的4比特输入A。8 输入计数器932的4比特输出是4比特加法器936的4比特输入B。4比特加法器936对两个输入A和B执行加法运算,并且生成表示A 和B之总和的5比特输出。4比特加法器的硬件设计和实现方式是本领域已知的。

图9C示出了一个示例16输入计数器950,其被用作与16×16沃尔什矩阵的后续行相对应的后续计数器(如关于图2A、图3和图4 所描述的)。16输入计数器950接收16个输入信号i0、i1、i2、i3、 i4、……和i15。16输入计数器950生成作为5位(O0、O1、O2、 O3和O4)输出的增量信号,表示i0+i1+i2+i3+i4+i5+i6+i7– (i8+i9+i10+i11+i12+i13+i14+i15)。16输入计数器950包括8 输入计数器952和954。8输入计数器952和954可以与关于图8A所描述的8输入计数器800被相同地实现。16输入计数器950还包括本领域已知的4比特减法器956。这些部件如在图9C中示出地被连接。 4比特减法器956接收A和B作为输入,并且4比特减法器的输出是由5比特(O0、O1、O2、O3和O4)表示的A–B。后续计数器中的任一后续计数器(即,与16×16沃尔什矩阵的第二计数器、第三计数器、第四计数器、……或第十六行相对应的计数器)可以被实现为16 输入计数器950。

与关于图7B和图8B的描述类似,与“1”元相对应的脉宽信号可以分别是输入信号i0、i1、i2、i3、……和i7。与“-1”元相对应的脉宽信号可以分别是输入信号i8、i9、i10、i11、……和i15。例如,针对与16×16沃尔什矩阵的第二行[1 -1 1 -1 1 -1 1 -1 1 -1 1-1 1 -1 1 -1] 相对应的第二计数器,c1、c3、c5、c7、c9、c11、c13和c15分别可以是输入信号i0、i1、i2、i3、i4、i5、i6和i7。并且,c2、c4、c6、 c8、c10、c12、c14和c16可以分别是输入信号i8、i9、i10、i11、i12、 i13、i14和i15,用于生成下文的增量信号INCR2:

INCR2=c1+c3+c5+c7+c9+c11+c13+c15–(c2+c4+c6+ c8+c10+c12+c14+c16)

基于如上文所描述的计数器的描述,本领域技术人员将理解的是,类似设计和实现方式可以被应用于针对哈尔小波变换的计数器。例如,参考图7A、图8A和图9A所描述的计数器可以被用作哈尔小波变换的第一计数器,其与全部元为“1”元的第一行相对应。在另一示例中,针对将8个输入信号进行计数的后续计数器,可以使用如关于图8B所描述的8输入计数器850。例如,8输入计数器850可以被用作与8×8哈尔矩阵的第二行相对应的第二计数器,以生成增量信号INCR2(c1+c2+c3+c4–c5–c6–c7–c8)。在又一示例中,针对将4个输入信号进行计数的后续计数器,可以使用如关于图7B所描述的4输入计数器750。例如,4输入计数器750可以被用作与8×8 哈尔矩阵的第三行相对应的第三计数器,以生成增量信号INCR3(c1 +c2–c3–c4)。针对将2个信号进行计数的后续计数器,可以使用在本领域中已知的1比特减法器。例如,1比特减法器可以被用作与8×8 哈尔矩阵的第五行相对应的第五计数器,以生成增量信号INCR5(c1 –c2)。

为了提供上文所描述的计数器设计和实现的更详细的背景,通过引用的方式,本公开将以下文章的整体并入。

-L.Dadda,Composite Parallel Counters,IEEE Transactions on Computers,第29卷第10期,第942-946页,1980年10月。

如上文所描述的,累加器是本领域已知的标准块。累加器的硬件实现方式可以变化。图10示出了针对在图2A中的累加器206、在图 3中的累加器306和在图4中的累加器428可以实现的一个示例实施例累加器1000的框图。累加器1000包括本领域中已知的反相器1002A-D、多路复用器1004A-D、全加法器1006A-D以及触发器 1008A-D。触发器1008A-D可以是D触发器。D触发器是边沿触发的存储器电路。D触发器具有三个输入:数据输入(D),其定义下一状态;定时控制输入(CLK),其精确告知触发器何时“存储”数据输入;以及复位输入(RST),其可以导致将存储器复位为0,而不管其他两个输入(通常称为异步复位)。D触发器的输出为Q。

累加器1000的这些部件如图在10中所示出地被连接。累加器 1000是4比特累加器,其接收增量信号,表示4比特(I0、I1、I2和 I3)。累加器1000基于在每个上升时钟边沿上的信号D向上或向下计数,以2的补码二进制表示法表示所得到的数字。。累加器的输出是累加信号D。

如上文所描述的,时钟分频器在本领域中是已知的。图11示出了用于在图3中的时钟分频器310和在图4中的时钟分频器432的可以被实现的一个示例实施例时钟分频器1100的框图。时钟分频器 1100是D型触发器时钟分频器。时钟分频器1100包括如在图11中示出的被连接的反相器1102A-E和触发器1104A-E。如上文所描述的,每个累加器的时钟速率不必是最快时钟速率的2倍。因此,可以使用其他时钟电路。

虽然已经参考说明性实施例对本公开进行了描述,但是本描述并不旨在以限制性的意义来解释。参考说明书、示例性实施例以及本公开的其他实施例的各种修改和组合对于本领域技术人员而言是显而易见的。因此,本申请意旨所附权利要求涵盖任何这样的修改或实施例。

相关技术
  • 时域离散变换计算
  • 用于计算5点Ⅱ型离散余弦变换,Ⅳ型离散余弦变换和Ⅳ型离散正弦变换的快速算法,以及架构
技术分类

06120112199450