具有执行重叠滤波以及核心转换的运算方法及其装置转让专利

申请号 : CN200810091109.5

文献号 : CN101552919B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄朝宗

申请人 : 联咏科技股份有限公司

摘要 :

本发明关于具有执行重叠滤波以及核心转换的运算方法及其装置,并提出一种可同时实现重叠滤波以及核心转换的硬件实现方法及其运算方法,并且可以依不同的规格、工艺、和操作频率等等做出相对应的变化。此硬件实现方法及其运算方法利用转换层级的硬件共享(Transform-level HardwareSharing),以及多端口进出的寄存器阵列,有效率地实现重叠滤波与核心转换。

权利要求 :

1.一种具有重叠滤波以及核心转换的装置,包括:

第一选择多路复用器,用以接收多端口输入数据;

转换运算模块阵列,该转换运算模块阵列连接到该第一选择多路复用器,用以接收该第一选择多路复用器的多端口输出;

第二选择多路复用器,连接到该转换运算模块阵列,用以接收该转换运算模块阵列的多端口运算结果的输出与该多端口输入数据;

寄存器阵列,具有多个寄存器,该寄存器阵列连接到该第二选择多路复用器,用以接收该第二选择多路复用器的多端口输出,并将接收的数据寄存在部分所述寄存器中,而该第一选择多路复用器与该第二选择多路复用器都用以读取该寄存器阵列的所述寄存器的储存值;以及控制信号产生器,根据重叠滤波与核心转换的调度产生多个控制信号,用以控制该第一选择多路复用器、该转换运算模块阵列、该第二选择多路复用器与该寄存器阵列,其中该控制信号产生器控制该第一选择多路复用器选择所述多端口输入数据与该寄存器阵列的部分所述寄存器的储存值,其中的部分数据输入该转换运算模块阵列,其中该控制信号产生器控制该第二选择多路复用器选择所述多端口输入数据、该转换运算模块阵列输出的所述多端口运算结果、以及该寄存器阵列的部分所述寄存器的储存值,并据以输出到该寄存器阵列的所述寄存器储存。

2.如权利要求1所述的具有重叠滤波以及核心转换的装置,其中该转换运算模块阵列具有多个运算单元,所述运算单元用以完成HD Photo格式中编码时所需要的重叠滤波转换运算或解码所需要的逆重叠滤波转换运算。

3.如权利要求2所述的具有重叠滤波以及核心转换的装置,其中该第一选择多路复用器、该转换运算模块阵列、该第二选择多路复用器与该寄存器阵列的数据输出或是输入端口的数量至少为4个。

4.如权利要求2所述的具有重叠滤波以及核心转换的装置,用于该HDPhoto格式的编码时,该多端口输入数据为欲压缩的原始图像数据。

5.如权利要求2所述的具有重叠滤波以及核心转换的装置,用于该HDPhoto格式的编码时,该多端口输入数据为第一阶核心转换的DC参数值,或已进行重叠滤波转换但未经核心转换的信号。

6.如权利要求2所述的具有重叠滤波以及核心转换的装置,用于该HDPhoto格式的解码时,该多端口输入数据为欲进行第一阶或第二阶逆转换的重叠转换信号或已进行逆核心转换但未经逆重叠滤波转换的信号。

7.如权利要求1所述的具有重叠滤波以及核心转换的装置,其中该转换运算模块阵列具有多个运算单元,其中当该重叠滤波与核心转换的调度为进行HD Photo格式的编码时,所述运算单元部分用以重叠滤波的运算,部分用以核心转换的运算。

8.如权利要求7所述的具有重叠滤波以及核心转换的装置,其中所述运算单元包括重叠滤波运算单元、边缘的重叠滤波运算单元、核心转换单元以及用于DC值的核心转换单元。

9.如权利要求1所述的具有重叠滤波以及核心转换的装置,其中该转换运算模块阵列具有多个运算单元,其中当该重叠滤波与核心转换的调度为进行HD Photo格式的解码时,所述运算单元部分用以逆重叠滤波的运算,部分用以逆核心转换的运算。

10.如权利要求9所述的具有重叠滤波以及核心转换的装置,其中所述运算单元包括逆重叠滤波运算单元、边缘的逆重叠滤波运算单元、逆核心转换单元以及用于DC值的逆核心转换单元。

11.一种执行重叠滤波以及核心转换的运算方法,适用于多端口数据处理装置,其中该多端口数据处理装置包括转换运算模块阵列,用以接收多端口输入数据,并经由该转换运算模块阵列计算后寄存到寄存器阵列,该方法包括:根据重叠滤波与核心转换的调度产生多个控制信号;

根据所述控制信号控制选择所述部分多端口输入数据与该寄存器阵列的部分储存值,输入该转换运算模块计算;

根据所述控制信号控制,选择所述部分多端口输入数据、该转换运算模块阵列输出的所述多端口运算结果、以及该寄存器阵列的部分所述储存值,输出到该寄存器阵列储存;以及根据该重叠滤波与核心转换的调度,将该转换运算模块阵列输出的部分所述多端口运算结果,以多端口方式输出。

12.如权利要求11所述的方法,其中该转换运算模块阵列具有多个运算单元,所述运算单元用以完成HD Photo格式中编码时所需要的重叠滤波转换运算或解码所需要的逆重叠滤波转换运算。

13.如权利要求12所述的方法,用于该HD Photo格式的编码时,该多端口输入数据为欲压缩的原始图像数据。

14.如权利要求13所述的方法,用于该HD Photo格式的编码时,该多端口输入数据为第一阶核心转换的DC参数值,或已进行重叠滤波转换但未经核心转换的信号。

15.如权利要求12所述的方法,用于该HD Photo格式的解码时,该多端口输入数据为欲进行第一阶或第二阶逆转换的重叠转换信号或已进行逆核心转换但未经逆重叠滤波转换的信号。

16.如权利要求11所述的方法,其中该转换运算模块阵列具有多个运算单元,其中当该重叠滤波与核心转换的调度为进行HD Photo格式的编码时,所述运算单元部分用以重叠滤波的运算,部分用以核心转换的运算。

17.如权利要求16所述的方法,其中所述运算单元包括重叠滤波运算单元、边缘的重叠滤波运算单元、核心转换单元以及用于DC值的核心转换单元。

18.如权利要求11所述的方法,其中该转换运算模块阵列具有多个运算单元,其中当该重叠滤波与核心转换的调度为进行HD Photo格式的解码时,所述运算单元部分用以逆重叠滤波的运算,部分用以逆核心转换的运算。

19.如权利要求18所述的方法,其中所述运算单元包括逆重叠滤波运算单元、边缘的逆重叠滤波运算单元、逆核心转换单元以及用于DC值的逆核心转换单元。

说明书 :

具有执行重叠滤波以及核心转换的运算方法及其装置

技术领域

[0001] 本发明涉及一种数据处理装置与其运算方法,且特别是涉及一种同时实现重叠滤波以及核心转换的装置及其运算方法。

背景技术

[0002] 静态影像压缩通常包括了三大步骤:转换(transform),量化(quantization),和熵编码(entropy coding)。在传统的JPEG标准中,请参考图1,使用了以8乘8区块为独立转换单位的离散余弦转换(DiscreteCosine Transform,DCT)。虽然DCT的转换具有良好的能量压缩特性,其可得到近似最佳数据的压缩。但是仍然无法避免切割成区块的边缘转换后产生的区块效应(Block Effect)。
[0003] 美国微软(Microsoft)公司针对此点推出了一个新的静态影像压缩格式,称为HD Photo格式,目前已进入JPEG国际标准制订过程中,目前名称为JPEG-XR。此HD Photo格式为了减少独立区块转换带来的区块效应,使用了以4乘4区块为单位的重叠转换(Lapped Transform,LT),其中先对4乘4区块交接处的4乘4区块进行重叠滤波(Overlap Filter),再对4乘4区块进行核心转换(Core Transform),重叠滤波与核心转换都使用了提升式结构(Lift)来确保无失真压缩的可能性。
[0004] 请参考图2,其为美国专利申请2006/013682公开文件「ReversibleOverlap Operator For Efficient Lossless Data Compression」,此为美国微软(Microsoft)公司所推出的HD Photo格式,先将例如图示的2维(2-D)输入数据进行分割(Tiling),而后为了减少独立区块转换带来的区块效应,因此先进行重叠转换,如图所示的向前重叠(Forward Overlap)滤波转换。而后再对原切割的区块进行区块转换,也就是HD Photo格式的核心转换(HDPhoto Core Transform,PCT),可以取得一个DC参数(DC coefficient)与十五个AC参数(AC coefficients)。而此HD Photo格式采用两阶式的转换,因此再将DC值集合成区块,并再次进行重叠滤波转换与区块转换。
[0005] 上述重叠滤波转换与核心转换都使用了提升式(Lifting)结构来确保无失真(Lossless)压缩的可能性。由于提升式结构每一步骤都是完全可逆(Reversible),若编码过程采取无失真的压缩转换领域的信号,则在解码时先进行逆核心转换,再进行逆重叠滤波转换,就可得到一模一样的原图。在HD Photo格式可自行选择是否进行第一阶的重叠滤波转换与第二阶的重叠滤波转换。得到的DC参数与AC参数经过量化(Quantization)与熵编码(Entropy Coding)处理后,经过分组化(Packetization)后即可得到压缩比特流(Compressed Bitstream)。
[0006] 请参考图3A,其为说明根据HD Photo格式的重叠滤波转换示意图。将独立区块使用了4×4区块为单位的重叠转换,先将图像分割为4乘4的区块,如标号310所标示的实心线部分。接着再对各4×4区块的交接处进行重叠滤波(Overlap Filter)转换,例如在图像边缘处进行4乘l的滤波转换(如图中标号330所示的4×1 filter),而图像的内部则进行4乘4的滤波转换,如图中标号320所示的4×4 filter。
[0007] 接着如图3B所示,经过重叠滤波转换后,再对原切割出的4乘4区块进行核心转换(如图所示的4×4 PCT),每4乘4区块可得出一个DC值和十五个AC值。HD Photo采用两阶式的转换,因此将DC值再集合成4乘4区块,并再进行一次重叠滤波。在HD Photo格式可自行选择是否进行第一阶的重叠滤波与第二阶的重叠滤波。
[0008] 此提升式重叠转换比传统离散余弦转换需要更复杂并多次的数据读取与写入,为解决此问题,中华民国专利申请95128032(对应美国专利公开案2007/0036225A1)提出将信号顺序重排以方便单一指令多重数据处理器(SIMD)运算的方法,如图3A和图3B所示,不同区块的4乘4重叠滤波和4乘4核心转换之间会有2乘2的重叠处,但此方法较适合用于以单一指令多重数据(SIMD)运算的处理器为主的实现方法。
[0009] 上述传统的结构中,都是必须先完成重叠滤波后,再接着进行核心转换。如图3A与3B所示,先经4乘4与4乘1的重叠滤波转换后,再对原切割出的4乘4区块进行核心转换。对于处理所需时间与效率上,存在可以改善的空间。

发明内容

[0010] 本发明提供一种具有重叠滤波以及核心转换的装置,包括第一选择多路复用器、转换运算模块阵列、第二选择多路复用器、寄存器阵列与控制信号产生器。此第一选择多路复用器用以接收多端口输入数据。此转换运算模块阵列连接到第一选择多路复用器,用以接收第一选择多路复用器的多端口输出。第二选择多路复用器连接到转换运算模块阵列,用以接收转换运算模块阵列的多端口运算结果的输出与多端口输入数据。而寄存器阵列具有多个寄存器,此寄存器阵列连接到第二选择多路复用器,用以接收第二选择多路复用器的多端口输出,并将接收的数据寄存在部分寄存器中,而此第一选择多路复用器与第二选择多路复用器都用以读取寄存器阵列的寄存器的储存值。而上述控制信号产生器,根据重叠滤波与核心转换的调度产生多个控制信号,用以控制第一选择多路复用器、转换运算模块阵列、第二选择多路复用器与寄存器阵列。此控制信号产生器控制第一选择多路复用器选择多端口输入数据与寄存器阵列的部分寄存器的储存值,其中的部分数据输入转换运算模块阵列。另外,控制信号产生器控制第二选择多路复用器选择多端口输入数据、转换运算模块阵列输出的多端口运算结果、以及寄存器阵列的部分寄存器的储存值,并据以输出到寄存器阵列储存。
[0011] 本发明提供一种执行重叠滤波以及核心转换的运算方法,适用于多端口数据处理装置。此多端口数据处理装置包括转换运算模块阵列,用以接收多端口输入数据,并经由转换运算模块阵列计算后寄存到寄存器阵列。此方法包括根据重叠滤波与核心转换的调度产生多个控制信号。根据这些控制信号控制选择部分多端口输入数据与寄存器阵列的部分储存值,输入转换运算模块计算。根据控制信号控制,选择部分多端口输入数据、转换运算模块阵列输出的多端口运算结果、以及寄存器阵列的部分储存值,输出到寄存器阵列储存。根据重叠滤波与核心转换的调度,将转换运算模块阵列输出的部分多端口运算结果,以多端口方式输出。
[0012] 为使本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并结合附图详细说明如下。

附图说明

[0013] 图1是使用了以8乘8区块为独立转换单位的离散余弦转换(DiscreteCosine Transform,DCT)。
[0014] 图2为说明对2维(2-D)输入数据,以提升式结构进行重叠滤波转换与核心转换示意图。
[0015] 图3A为说明根据HD Photo格式的重叠滤波转换示意图。
[0016] 图3B为说明经过重叠滤波转换后,再对原切割出的4乘4区块进行核心转换(如图所示的4×4 PCT)。
[0017] 图4为本发明实施例的有效实现同时进行重叠滤波转换与核心转换的硬件结构示意图。
[0018] 图5为说明本发明实施例的转换运算模块阵列的电路结构示意图。
[0019] 图6为说明4乘4重叠滤波运算与4乘4核心转换运算数据示意图。
[0020] 图7为说明进行4乘4重叠滤波和4乘4核心转换的输入数据。
[0021] 图8和图9为说明重叠滤波与核心转换函式运算内容实施例。
[0022] 图10为说明重叠滤波中T_h的运算内容示意图。
[0023] 图11A~图11D为实现4乘4重叠滤波和4乘4核心转换的详细调度示意图。
[0024] 图12为说明本发明另一实施例的转换运算模块阵列的电路结构示意图。
[0025] 图13为说明本发明又一实施例的转换运算模块阵列的电路结构示意图。
[0026] 附图符号说明
[0027] 400:硬件结构
[0028] 402:多端口输入的数据输入端
[0029] 404:多端口输出的数据输出端
[0030] 410、430;多路复用选择器(MUX)
[0031] 420:多端口数据输出入的转换运算模块阵列
[0032] 440:多端口数据输出入的寄存器阵列
[0033] 450:控制信号产生器
[0034] 500:电路结构
[0035] 502:多端口输入的数据输入端
[0036] 504:多端口输出的数据输出端
[0037] 510、530:多路复用选择器(MUX)
[0038] 540:8端口4×4寄存器阵列
[0039] 550:控制信号产生器
[0040] 1200:电路结构
[0041] 1202:多端口输入的数据输入端
[0042] 1204:多端口输出的数据输出端
[0043] 1210、1230:多路复用选择器(MUX)
[0044] 1240:4端口4×4寄存器阵列
[0045] 1250:控制信号产生器
[0046] 1300:电路结构
[0047] 1302:多端口输入的数据输入端
[0048] 1304:多端口输出的数据输出端
[0049] 1310、1330:多路复用选择器(MUX)
[0050] 1340:8端口4×4寄存器阵列
[0051] 1350:控制信号产生器

具体实施方式

[0052] 本发明提供了一个可同时实现重叠滤波以及核心转换的硬件实现方法,并且可以依不同的规格、工艺、和操作频率等等做出相对应的变化。本发明利用转换层级的硬件共享(Transform-level Hardware Sharing),以及多端口进出的寄存器阵列,有效率地实现重叠滤波与核心转换。
[0053] 本发明提供了一个有效实现提升式重叠转换与核心转换的硬件结构,在其中一个实施例中,可依照图4所示的硬件结构加以实现。此硬件结构400为可同时实现重叠滤波以及核心转换的硬件装置,包括多端口输入的数据输入端402、多路复用选择器(MUX)410与430、多端口数据输出入的转换运算模块阵列420、多端口数据输出入的寄存器阵列440、多端口输出的数据输出端404、与一个控制信号产生器450。上述的转换运算模块阵列420包括了重叠转换中所需要的运算,可充分重复使用重叠滤波和核心转换间相同或类似的运算,其中的寄存器阵列440则提供极具弹性的寄存数据读取与存入的功能,以利于完成整个复杂的重叠转换。
[0054] 上述可充分重复使用重叠滤波和核心转换间相同或类似的运算的转换运算模块阵列420,可用以完成符合HD Photo格式中的重叠转换的所有运算,包括了重叠滤波运算、边缘的重叠滤波运算、核心转换、用于DC值的核心转换、以及所有相对应的逆转换运算。上述的运算均符合HD Photo格式,也就是JPEG-XR格式所需要的重叠滤波运算以及核心转换运算,是以硬件的方式实现,并可以同时实现,而依不同的规格、工艺、和操作频率等等做出相对应的变化。
[0055] 在实施例中,例如图5所示,其为转换运算模块阵列的一种较佳实施例的电路结构示意图。而此电路结构500除了包括多端口输入的数据输入端502、多路复用选择器(MUX)510与530、8端口4×4寄存器阵列540、多端口输出的数据输出端504与控制信号产生器550之外,还包括了多端口数据输出入的转换运算模块阵列520。而此转换运算模块阵列520内含多个运算单元,例如子函式如T_h1、T_odd2_pipe、Ovp_scale、T_h2、T_odd与Ovp_4×1_pipe等等子函式运算单元。这些子函式运算单元代表对于四个或两个输入信号的一连串运算。以此4×4重叠滤波运算与4×4核心转换运算为例,由于其中有许多很类似但非完全相同的运算,因此可利用数据的处理顺序而重复使用重叠滤波和核心转换间相同或类似的运算,达到节省运算单元的成本。
[0056] 请参考图6,其为4乘4重叠滤波运算与4乘4核心转换运算数据示意图,其中包括数据D、E、F、G虚线区域620的重叠滤波运算,以及数据A、B、C、D实线区域610的核心转换运算。利用图5的电路结构500对图6的重叠滤波运算与核心转换运算,可以控制在17个运算周期(Cycle)即可完成。
[0057] 上述4乘4重叠滤波和4乘4核心转换的输入都如图7所示的4乘4信号,包括“a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p”等数据。而详细函式运算内容分别如图8和图9所示,其中每一个子函式如T_h、T_h_pre、Ovp_rotate和Ovp_scale等等,都代表对上述输入数据其中四个或是两个的一连串运算,如T_h_pre(a,d,m,p,0)就是对“a,d,m,p”四个输入数据进行运算,而Ovp_scale(a,p)就是对“a,p”两个输入数据进行运算。而上述运算子函式的详细运算内容,可参照如美国专利申请2006/013683公开文件「Reversible Transform for lossy and lossless 2-DData Compression」内所提到不同的运算子函式内容。或是参照美国专利申请2006/013684公开文件「Reversible 2-Dimensional Pre-/Post-FilteringFor Lapped Biorthogonal Transform」内所提到不同的运算子函式内容。
[0058] 而上述的运算均符合HD Photo格式,也就是JPEG-XR格式所需要的重叠滤波运算以及核心转换运算,例如T_h的运算如图10所示,4乘4重叠滤波和4乘4核心转换中有一些很类似但非完全相同的运算,如T_h和T_h_pre以及T_odd2和T_odd2_pre。
[0059] 以下将根据本发明实施例图5的电路结构500,说明针对图6所示的输入信号所进行的运算。
[0060] 图5中的T_h1运算单元和T_h2运算单元可用一个周期完成T_h或T_h_pre所需的运算,T_odd2_pipe运算单元可用两个周期完成T_odd2或T_odd2_pre所需的运算,Ovp_scale运算单元可用一个周期完成Ovp_scale所需的运算,T_odd运算单元可用一个周期完成T_odd所需的运算,Ovp_4×1_pipe运算单元可用四个周期完成边缘的4乘1重叠滤波或用一个周期完成Ovp_rotate所需的运算,如上所述,使用17个周期就可以完成如图6的一个4乘4重叠滤波和4乘4核心转换的调度,其中,由于输出入端口的数量为8端口,因此,传输数据在一个周期内可以输入达到8个信号,可以同时有两个运算单元进行运算,在一个周期内寄存8个信号,在一个周期内输出8个信号,而其它重叠转换和逆重叠转换的运算都可用同样的调度概念完成。
[0061] 以下将具体说明第0个周期到第16个周期,总共17个周期完成4乘4重叠滤波和4乘4核心转换的详细调度,并请对应参考图11A~图11D。
[0062] 首先,请参考图11A,在第0个周期(Cycle)时,在输入端输入如图8中4×4重叠滤波运算所需的数据a、d、m、p、b、c、n与o,而由图5的电路结构500中具有多端口数据输出入的转换运算模块阵列520,以T_h1运算单元或T_h2运算单元在此周期内,完成T_h或T_h_pre所需的运算,例如T_h1运算单元计算T_h_pre(a,d,m,p,0),而T_h2运算单元进行T_h_pre(b,c,n,o,0)的计算。此时,T_h1运算单元的计算结果将储存在寄存器阵列中的寄存器位置0,3,12,15之处,而T_h2运算单元的计算结果将储存在寄存器阵列中的寄存器位置1,2,13,14的处。目前输出端的多端口输出并没有任何结果。
[0063] 在第1个周期(Cycle)时,输入端输入数据e、h、i、l、f、g、j与k,而由转换运算模块阵列520,以T_h1运算单元进行T_h_pre(e,h,i,l,0)的运算,而由T_h2运算单元进行T_h_pre(f,g,j,k,0)的运算。此时,T_h1运算单元的计算结果将储存在寄存器阵列中的寄存器位置5,6,9,10之处,而T_h2运算单元的计算结果将储存在寄存器阵列中的寄存器位置4,7,8,11之处。目前输出端的多端口输出并没有任何结果。
[0064] 在第2个周期(Cycle)时,并不需要输入任何数据,而转换运算模块阵列520的Ovp_scale运算单元进行Ovp_Scale(R[0],R[15])的运算,而Ovp_4×1_pipe运算单元进行Ovp_Rotate(R[13],R[12])的运算,其中R[0],R[15],R[13],R[12]分别为寄存器阵列中寄存器的值。此时,Ovp_scale运算单元的运算结果将储存在寄存器阵列中的寄存器位置0,15之处,而Ovp_4×1_pipe运算单元的运算结果将储存在寄存器位置13,12之处。目前输出端的多端口输出并没有任何结果。
[0065] 在第3个周期(Cycle)时,并不需要输入任何数据,而转换运算模块阵列520的Ovp_scale运算单元进行Ovp_Scale(R[5],R[10])的运算,而Ovp_4×1_pipe运算单元则进行Ovp_Rotate(R[9],R[8])的运算。此时,Ovp_scale运算单元的运算结果将储存在寄存器阵列中的寄存器位置5,10之处,而Ovp_4×1_pipe运算单元的运算结果将储存在寄存器位置9,8之处。目前输出端的多端口输出并没有任何结果。
[0066] 在第4个周期(Cycle)时,并不需要输入任何数据,而转换运算模块阵列520的Ovp_scale运算单元进行Ovp_Scale(R[1],R[14])的运算,而Ovp_4×1_pipe运算单元则进行Ovp_Rotate(R[7],R[3])的运算。此时,Ovp_scale运算单元的运算结果将储存在寄存器阵列中的寄存器位置1,14之处,而Ovp_4×1_pipe运算单元的运算结果将储存在寄存器位置7,3之处。目前输出端的多端口输出并没有任何结果。
[0067] 请参考图11B,在第5个周期(Cycle)时,并不需要输入任何数据,而转换运算模块阵列520的Ovp_scale运算单元进行Ovp_Scale(R[4],R[11])的运算,而Ovp_4×1_pipe运算单元则进行Ovp_Rotate(R[6],R[2])的运算。此时,Ovp_scale运算单元的运算结果将储存在寄存器阵列中的寄存器位置4,11之处,而Ovp_4×1_pipe运算单元的运算结果将储存在寄存器位置6,2之处。目前输出端的多端口输出并没有任何结果。
[0068] 在第6个与第7个周期(Cycle)时,并不需要输入任何数据,而T_odd2_pipe运算单元可用此两个周期完成T_odd2所需的运算,例如在第6周期,进行T_odd2(R[10],R[11],R[14],R[15])第一周期的运算,并将结果存在寄存器位置10,11,14,15之处,而在第7周期,则接着进行T_odd2(R[10],R[11],R[14],R[15])第二周期的运算,并将结果存在寄存器位置10,11,14,15之处。目前输出端的多端口输出并没有任何结果。
[0069] 接着,在第8个周期(Cycle)时,并不需要输入任何数据,而以T_h1运算单元进行T_h(R[0],R[3],R[12],R[15],0)的运算,而由T_h2运算单元进行T_h(R[1],R[2],R[13],R[14],0)的运算。此时,T_h1运算单元的计算结果将储存在寄存器阵列中的寄存器位置0,3,12,15之处,而T_h2运算单元的计算结果将储存在寄存器阵列中的寄存器位置1,2,13,
14之处。目前输出端的多端口输出并没有任何结果。
[0070] 请参考图11C,在第9个周期(Cycle)时,并不需要输入任何数据,而以T_h1运算单元进行T_h(R[5],R[6],R[9],R[10],0)的运算,而由T_h2运算单元进行T_h(R[4],R[7],R[8],R[11],0)的运算。此时,T_h1运算单元的计算结果将储存在寄存器阵列中的寄存器位置5,6,9,10之处,而T_h2运算单元的计算结果将储存在寄存器阵列中的寄存器位置4,7,8,11之处。目前输出端的多端口输出并没有任何结果。
[0071] 在第10个周期(Cycle)时,输入端输入如图6的4×4 PCT核心转换所需B与C部分的8个信号。此时不需要进行运算单元的运算,而在寄存器阵列中,寄存B部分4个信号于位置2,3,6,7,寄存C部分4个信号于位置8,9,12,13。此时,输出端同时输出R[2],R[3],R[6],R[7]到外部寄存对应于图6中E部分的地方,输出R[8],R[9],R[12],R[13]于外部寄存对应于图6中F部分的地方。
[0072] 接着在第11个周期(Cycle)时,输入端输入如图6的4×4 PCT核心转换所需A部分的4个信号。此时不需要进行运算单元的运算,而在寄存器阵列中,寄存A部分4个信号于位置0,1,4,5,寄存原来的R[0],R[1],R[4],R[5]于位置10,11,14,15之处。此时输出端则输出R[10],R[11],R[14],R[15]于外部对应于寄存图6中G部分的地方。
[0073] 接着在第12个周期(Cycle)时,并不需要输入任何数据,而以T_h1运算单元进行T_h(R[0],R[3],R[12],R[15],0)的运算,而由T_h2运算单元进行T_h(R[1],R[2],R[13],R[14],0)的运算。此时,T_h1运算单元的计算结果将储存在寄存器阵列中的寄存器位置0,3,12,15之处,而T_h2运算单元的计算结果将储存在寄存器阵列中的寄存器位置1,2,13,
14之处。目前输出端的多端口输出并没有任何结果。
[0074] 请接着参考图11D,在第13个周期(Cycle)时,并不需要输入任何数据,而以T_h1运算单元进行T_h(R[5],R[6],R[9],R[10],0)的运算,而由T_h2运算单元进行T_h(R[4],R[7],R[8],R[11],0)的运算。此时,T_h1运算单元的计算结果将储存在寄存器阵列中的寄存器位置5,6,9,10之处,而T_h2运算单元的计算结果将储存在寄存器阵列中的寄存器位置4,7,8,11之处。目前输出端的多端口输出并没有任何结果。
[0075] 在第14个周期(Cycle)时,并不需要输入任何数据,而以T_h1运算单元进行T_h(R[0],R[1],R[4],R[5],1)的运算,而由T_odd运算单元进行T_odd(R[2],R[3],R[6],R[7])的运算。此时,寄存器阵列并无任何操作,而输出端则输出T_h1和T_odd的结果(PCT运算结果)至后续处理单元。
[0076] 接着在第15个与第16个周期(Cycle)时,并不需要输入任何数据,而T_odd2_pipe运算单元可用此两个周期完成T_odd2所需的运算,例如在第15周期,进行T_odd2(R[10],R[11],R[14],R[15])第一周期的运算,并将结果存在寄存器位置10,11,
14,15之处,而在第16周期,则接着由T_odd2_pipe运算单元进行T_odd2(R[10],R[11],R[14],R[15])第二周期的运算,并且同时由T_odd运算单元进行T_odd(R[8],R[12],R[9],R[13])的运算,接着由输出端将T_odd2_pipe运算单元和T_odd运算单元的运算结果(PCT运算结果)输出并传送到后续处理单元。
[0077] 以上具体说明利用图5的电路结构500中,具有多端口数据输出入的转换运算模块阵列520,其所具有的T_h1、T_odd2_pipe、Ovp_scale、T_h2、T_odd与Ovp_4×1_pipe函式运算单元,即可利用17个周期,完成4乘4重叠滤波和4乘4核心转换的详细调度。此实施例充分说明,可同时实现重叠滤波以及核心转换的硬件实现方法,并且可以依不同的规格、工艺、和操作频率等等做出相对应的变化。本发明利用转换层级的硬件共享(Transform-level Hardware Sharing),以及多端口进出的寄存器阵列,有效率地实现重叠滤波与核心转换。
[0078] 如图6的数据D、E、F、G虚线区域620的重叠滤波运算,以及数据A、B、C、D实线区域610的核心转换运算,若是采用传统的结构,都是必须先完成重叠滤波后,再接着进行核心转换。但是,如上述以图5的电路结构500,对图6的重叠滤波运算与核心转换运算,可先完成数据D的重叠滤波运算,以及数据A、B、C的核心转换运算,再接着进行数据D的核心转换运算,如此,可以控制在17个运算周期即可完成,也就是只需调整转换运算模块阵列520内多个函式运算单元的数据处理调度,并且搭配多端口进出的寄存器阵列,以及多端口输入端与输出端的数据传送,即可达到上述同时实现重叠滤波以及核心转换的硬件实现方法。
[0079] 上述实施例中的电路结构,包括多个运算单元,是用以完成HD Photo格式中,编码时所需要的重叠滤波转换运算或解码所需要的逆重叠转换运算。而提到的第一选择多路复用器、转换运算模块阵列、第二选择多路复用器与寄存器阵列的数据输出或是输入端口的数量至少为4个。
[0080] 而若是用于HD Photo格式的编码时,多端口输入数据为欲压缩的原始图像数据、或是第一阶核心转换的DC参数值,或已进行重叠滤波转换,但未经核心转换的信号。
[0081] 而若是用于HD Photo格式的解码时,多端口输入数据为欲进行第一阶或第二阶逆转换的重叠转换信号或已进行逆核心转换但未经逆重叠滤波转换的信号。
[0082] 本发明的另一种实施例,为合并图5中的运算单元至一个周期最多只有一个运算单元运算、最多在一个周期内输入4个信号、最多在一个周期内寄存4个信号、最多在一个周期内输出4个信号,如此可以减少硬件成本,但会增加运算的周期数。此具体实施例可参考图12所示所示,并参考图5一并说明。如上所述,将图5具有多端口数据输出入的转换运算模块阵列520中的运算单元T_h1和T_odd2_pipe运算单元合并,而将T_h2和T_odd运算单元合并,将Ovp_scale和Ovp_4×1_pipe运算单元合并。因此,此电路结构1200除了包括多端口输入的数据输入端1202、多路复用选择器(MUX)1210与1230、多端口输出的数据输出端1204与控制信号产生器1250之外,还包括了只需要4端口的4×4寄存器阵列1240,以及多端口数据输出入的转换运算模块阵列1220。而此转换运算模块阵列1220内含的运算单只需要三个,包括具有处理T_h1和T_odd2_pipe运算功能的运算单元、具有处理Ovp_scale和Ovp_4×1_pipe运算功能的运算单元、以及具有处理T_h2和T_odd运算功能的运算单元。
[0083] 而图11完成4乘4重叠滤波和4乘4核心转换的详细调度则可以直接改成一个周期内最多只输出和输入四个信号,一个周期内最多只有一个运算单元在运算,例如第0周期可输入a,d,m,p,而T_h1进行T_h_pre(a,d,m,p,0),寄存T_h1结果于寄存器阵列位置0,3,12,15;而第1周期输入b,c,n,o,T_h2进行T_h_pre(b,c,n,o,0),寄存T_h2结果于寄存器阵列位置1,2,13,14,如此类推可得出全部的调度。
[0084] 本发明的另一种实施例,为合并图5中的某些运算单元以共享之间的硬件,如加法器或减法器等,如此可以减少硬件成本,但共享所带来的多路复用选择器也会增加硬件成本,而且会增加硬件的临界路径(Critical Path)。例如图11的调度中图5里的T_odd2_pipe和T_h1都没有在同一个周期一起动作过,所以可如图13所示,此电路结构1300除了包括多端口输入的数据输入端1302、多路复用选择器(MUX)1310与1330、8端口4×4寄存器阵列1340、多端口输出的数据输出端1304与控制信号产生器1350之外,还包括了多端口数据输出入的转换运算模块阵列1320。而此转换运算模块阵列1320内含多个运算单元,例如具有处理T_h1或T_odd2_pipe运算功能的运算单元、具有处理Ovp_scale运算功能的运算单元、具有处理T_h2运算功能的运算单元、具有处理T_odd运算功能的运算单元、与具有处理Ovp_4×1_pipe运算功能的运算单元等。
[0085] 上述的电路结构1300,主要是将运算单元T_h1和T_odd2_pipe合并成一个运算单元,一样可用图11的调度完成所有运算,然而合并的动作必需在T_h1和T_odd2_pipe原有的加减法器间安插多个多路复用选择器,如此会让该运算单元的临界路径变长,也就可能造成频率一个周期的时间也必需变长。
[0086] 虽然本发明已以较佳实施例披露如上,但其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,当可作若干的更改与修饰,因此本发明的保护范围应以本发明的权利要求为准。