矩阵转置电路的制作方法

文档序号:9528012阅读:937来源:国知局
矩阵转置电路的制作方法
【技术领域】
[0001]本公开涉及一种矩阵转置电路,可以应用于矩阵转置。
【背景技术】
[0002]在图像及视频信号处理的领域里面,有许多算法都需要使用到矩阵乘法。以AVC/H.264(Advanced Video Coding, AVC)的编码为例,其视频编码技术中的一个编码工具,在实现上需要使用到 4/8 点的 2D DCT/IDCT(Discrete Cosine Transform,DCT)计算。另外,在HEVC(High Efficiency Video Coding,HEVC)的编码中,其甚至使用到更大的16/32点的2D DCT/IDCT 计算。
[0003]一些 VLSI (Very Large Scale Integrat1n, VLSI)的文献提出使用一维(ID)的架构来实现二维(2D)的DCT/IDCT运算,其例如使用一个4x4架构的位移寄存器来进行4点的DCT计算。另外也文献有提出使用多个存储区块(bank)的存储器,例如随机存取存储器(Random Access Memory, RAM)模块架构,来完成 4/8/16/32 点的 DCT/IDCT 计算。而前述技术使用寄存器阵列或多个随机存取存储器模块架构来完成DCT/IDCT的运算的过程中,其都需要大量的矩阵转置处理。
[0004]能有效率地完成矩阵转置处理的电路,是本技术领域需要研发的课题其一。

【发明内容】

[0005]本公开的一实施范例提供一种矩阵转置电路,对具有NXN维度的一矩阵,输出该矩阵的转置矩阵。该矩阵转置电路包括:一输入寄存器阵列,具有mXN的矩阵结构;一存储器,具有b组存储区块;以及一输出寄存器阵列,具有NXn的矩阵结构。其中,N、m、η、b都是2的幂次方的整数,m与η可以整除N,且N = nXmXb。该矩阵分割为多个子矩阵(sub-matrixes),每一个该子矩阵(sub-matrix)具有mXn阵兀,每一个该子矩阵的多个阵元构成当作一个Y阵元以构成一个Y矩阵。该Y矩阵依照该b值区分为b个区块,对应该b组存储区块分别存储该b个区块的该多个子矩阵的多个阵元数据。该输入寄存器阵列具有一第一位移方向与一第二位移方向,以该第一位移方向接收输入阵兀数据,以该第二位移方向输出数据,以对应存储到该b组存储区块。其中,该输出寄存器阵列具有一第一位移方向与一第二位移方向,以该第一位移方向从该b组存储区块取得阵元数据,以该第二位移方向输出对应该转置矩阵的阵元数据。
[0006]在本公开的一实施范例的矩阵转置电路,该输入寄存器阵列由该第一位移方向依序接收该矩阵的m个IXN行向量。在填满该输入寄存器阵列后,改为该第二位移方向将这些阵元存储到对应的该b组存储区块。其中由于已存储到该b组存储区块所释放的暂存空间,同时继续接收该矩阵后续的^!!!个^則于向量。
[0007]在本公开的一实施范例的矩阵转置电路,该输入寄存器阵列包含mX (N/n)个寄存器。该输入寄存器阵列的每一个该寄存器的输入与输出都是η个数据口,且该mX (N/n)个寄存器分为b组次寄存器阵列,该次寄存器阵列有mxm个该寄存器。该输入寄存器阵列的每一组该次寄存器阵列皆可以选择该第一位移方向或是该第二位移方向,其中每当由该第一位移方向输入数据且填满整个该输入寄存器阵列后,就切换到该第二位移方向。该b组次寄存器阵列从该第二位移方向输出的数据,分别存放到该b组存储区块。
[0008]在本公开的一实施范例的矩阵转置电路,该输出寄存器阵列由该第一位移方向从该b组存储区块读取数据。当填满该输入寄存器阵列后,改变为该第二位移方向输出对应该转置矩阵的阵元数据,其中由于已输出数据所释放的暂存空间,同时继续从该b组存储区块读取数据。
[0009]在本公开的一实施范例的矩阵转置电路,其中该输出寄存器阵列包含(N/m) Xn个寄存器。该输出寄存器阵列的每一个该寄存器的输入与输出都是m个数据口,且该(N/m) Xn个寄存器共分为b组次寄存器阵列,每一组该次寄存器阵列有nXn个该寄存器。该输出寄存器阵列的每一组该寄存器,皆可以选择该第一位移方向或是该第二位移方向。每当由该第一位移方向输入数据且数据填满整个输出寄存器阵列后,就切换到该第二位移方向,从b个RAM模块同时读出b笔数据,分别推入该b组次寄存器阵列内。
[0010]本公开提出的将矩阵处理列(column)与行(row)变换的电路,其包含寄存器和存储器模块的组合架构。当一个矩阵的数据以列/行(column/row)向量为单位,逐一输入到装置内后,经过此装置内部架构的排列,此装置会改以行/列(row/column)向量的方式进行矩阵数据的输出。
[0011]为让本公开的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
【附图说明】
[0012]图1是依照本公开的一实施范例,对于一个NXN矩阵的规划示意图。
[0013]图2a?2d是依照本公开的一实施范例,对于2个RAM模块的4种存储的规划示意图。
[0014]图3是依照本公开的一实施范例,对于一个NXN矩阵的另一种规划示意图。
[0015]图4是依照本公开的一实施范例,矩阵转置电路的结构示意图。
[0016]图5是依照本公开的一实施范例,输入寄存器阵列的每一组寄存器在两个位移方向的位移方式示意图。
[0017]图6是依照本公开的一实施范例,输出寄存器阵列的每一组寄存器在两个位移方向的位移方式示意图。
[0018]图7是依照本公开的一实施范例,根据图2a的规划,矩阵的切割结构。
[0019]图8是依照本公开的一实施范例,N = 16,m = 2,n = 4,b = 2的输入寄存器阵列架构。
[0020]图9是依照本公开的一实施范例,N = 16,m = 2,n = 4,b = 2的输入寄存器阵列内存值示意图。
[0021]图10是依照本公开的一实施范例,N = 16, m = 2, η = 4, b = 2的输入寄存器阵列内存值示意图。
[0022]图11是依照本公开的一实施范例,N = 16, m = 2, η = 4, b = 2的输入寄存器阵列内存值示意图。
[0023]图12是依照本公开的一实施范例,矩阵在RAMO和RAMl中的数据摆放示意图。
[0024]图13是依照本公开的一实施范例,矩阵X以2X1切割后的编号示意图。
[0025]图14是依照本公开的一实施范例,以图7表不法与图13表不法的部分对照关系示意图。
[0026]图15是依照本公开的一实施范例,以图7表不法与图13表不法的部分对照关系,对于输出寄存器阵列106的一组寄存器阵列的不意图。
[0027]图16是依照本公开的一实施范例,图7表示法与图13表示法的部分对照关系示意图。
[0028]图17是依照本公开的一实施范例,N = 16, m = 2, η = 4, b = 2的输出寄存器阵列内存值示意图。
[0029]【符号说明】
[0030]90:矩阵转置电路
[0031]100:矩阵
[0032]102:子矩阵
[0033]104:输入寄存器阵列
[0034]106:输出寄存器阵列
[0035]200:存储器
[0036]110、112:寄存器组
[0037]114、116:寄存器
[0038]120、122:存储区块
【具体实施方式】
[0039]本公开技术可以对一个NXN的矩阵,进行转置运算,其中N为2的幂次方。在操作上,例如可将列向量的输入,以行向量输出,反之亦然。本公开接下来的内容,皆以行向量转列向量作为实施范例,以进行说明。以下举多个实施范例来说明,但是本公开不限于举多个实施范例。
[0040]图1是依照本公开的一实施范例,对于一个NXN矩阵的规划示意图。对于一个需要被转置的方形矩阵100,其例如是NXN的结构。对于此矩阵100,以mXn的群组再分为多个子矩阵102,则可以得到一个(N/m) X (N/n)的矩阵Y,其如图1中由粗线所构的矩阵Y,其中m与η也是2的幂次方,可整除N,且m, n〈N。在图1的实施范例,N= 16, m = 2, η =4。所以矩阵Y的每个阵元(entry) 都是
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1