基于混合视频编码方法的可编程视频信号处理器结构的制作方法

文档序号:6650935阅读:164来源:国知局
专利名称:基于混合视频编码方法的可编程视频信号处理器结构的制作方法
技术领域
本发明属于视频图像编码领域,特别涉及混合编码方法,视频信号处理器设计。
已有可编程视频信号处理器有Phillips公司的Trimedia处理器,TI公司的C6x处理器,Equator公司的MAP-CA处理器。这些处理器结构都是基于超长指令字(Very LongInstruction Word,VLIW)结构。


图1给出了VLIW结构的框图。功能单元(Functional Unit,FU)一般为异构,个数为5-27。多端口寄存器阵列为多个FU所共享,端口数为8-20。互连网络一般为具有高数据吞吐率的交叉互连网络。FU的数据交换通过多端口寄存器阵列和互连网络实现。指令部件将长指令分解成短指令并完成短指令字的译码,控制各FU的执行。
VLIW结构的优点是具有强大的可编程性,不仅能够用于视频压缩编码算法,还能用于音频压缩编码等场合。VLIW结构的强大可编程性是通过两方面获得的,一方面是引入了位数众多的功能单元以及庞大的多端口寄存器阵列(Register File,RF),另一方面采用智能化编译器在编译阶段检测相关性,将短指令压缩成长指令,因此VLIW处理器性能很大程度上取决于编译器的好坏。
视频压缩算法具有多种类型和层次的并行性。从类型上看,可以分为数据并行性和控制并行性,控制并行性使得两个或多个操作同时进行,数据并行性使得多个数据能同时进行同一种操作;从层次上看,可以分为细粒度并行和粗粒度并行,细粒度并行是指象素级或指令级的并行,粗粒度是指宏块级或任务级的并行。因此视频压缩算法具有四种并行性细粒度数据并行性,细粒度控制并行性,粗粒度数据并行性,粗粒度控制并行性。
VLIW结构主要通过编译器在指令级上开发视频压缩算法的并行性,在细粒度控制并行性的利用上具有较大的优势,但是已有VLIW结构不是专门为视频压缩算法设计的,因此没有充分考虑到视频压缩算法其他类型的并行性,尚未从结构和编译器的设计上进行充分优化。
VLIW结构为了实现其通用性,在可编程性方面通过高级语言,如C语言,来获得高度可编程能力。由于视频编码算法中包含了不同灵活性的算法任务,因此客观上要求必须采用不同的可编程策略来实现不同层次灵活性的算法。而采用同一种可编程策略来实现不同层次灵活性算法势必牺牲某个层次上算法的实现效率。
本发明的目的是为克服已有技术的不足之处,基于并行性和可编程性方面的设计策略,本发明提出了一种基于混合编码方法的可编程视频信号处理器结构(Programmablevideo signal processor,PVSP)。在PVSP中集成了以高并行性能为特点的硬件结构和以高可编程性能为特点的RISC处理器结构。
提出的一种基于混合视频编码方法的可编程视频信号处理器结构,其特征在于,包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接口单元六个部分;各部分连接关系为高层指令单元与低层指令单元通过控制信号线相连;该低层指令单元与并行运算单元通过数据和控制信号线相连;该并行运算单元与数据寻径单元通过6路数据总线相连;该数据寻径单元与存储及地址生成单元通过11路数据总线相连;所说的高层指令单元与存储及地址生成单元通过起始命令信号和运行命令信号相连;所说的数据寻径单元与外部存储器接口单元通过数据总线相连;该高层指令单元和外部存储器接口单元通过控制信号相连。
本发明的设计原理为其一是充分利用了视频压缩算法不同层次和类型的并行性。并行性主要体现在如下方面1.采用SIMD结构充分开发视频压缩算法的细粒度数据并行性;2.在SIMD结构内部的每个处理器单元中采用流水线结构,开发视频压缩算法的细粒度控制并行性;3.针对混合视频编码算法不同特点的算法任务(例如运动估计和离散余弦变换)分别设计硬件结构,充分利用视频压缩算法的粗粒度控制并行性。
其二是针对基于混合编码的视频压缩算法,提出了分层可编程结构。分层可编程结构的思想表现在1.视频编解码算法主要包含运算量大、可并行部分算法(例如离散余弦变换,运动估计的块匹配运算),这部分算法具有大量的循环结构,循环体内部的操作数很少,而且相关性小,无判断转移操作,适合采用微编程方法,通过更改硬件控制单元的逻辑,由控制单元对硬件其它部分重新设置,例如修改运算单元的操作类型以及存储器的寻址方式等。
2.视频编解码算法还包含灵活性大、控制性较强的部分(例如快速运动估计算法的搜索策略部分),这部分算法具有较多的判断转移,并行性弱,适合在可编程的RISC处理器核上用软件编程的方法实现。
本发明的主要特点1)并行结构采用了低延迟特性规整的树累加结构,包括多输入树状加法器和累加器,硬件复杂度大大小于已有的基于阵列处理器的运动估计可编程结构,由于采用了低延迟特性规整的树状加法器结构,使得多输入数的加法能高速完成,在树状加法器中无需流水线段寄存器,使得树状加法器的效率充分发挥,同时这种树累加器结构能支持16×16,16×8以及8×8多种块匹配运算,具有较大的灵活性。
2)可合成并行ALU(PALU)结构。并行算术运算单元PALU可以通过编程设置为16个9位或者8个16位算术运算,既能支持以8位或9位算术运算为主的A类算法,又能支持DCT/IDCT算法的16位蝶形运算。通过运算单元复用,节省了硬件开销。
3)并行乘累加结构(PMAC)包括8个16位乘累加部件(MAC)。MAC能够有效支持DCT/IDCT,量化和反量化算法任务。在MAC设计中引入了特殊的结构,MAC内的加法器能够根据乘法结果决定进行加法还是减法运算,这种处理大大提高了反量化处理速度,使得反量化所需要的3个操作在1条指令周期完成。
4)二维并行存储器结构采用了字节对准和循环寻址的二维并行存储器。输入为水平和垂直地址,输出一行16个数据。
5)PVSP包含高层指令单元和低层指令单元,高层指令单元控制完成运动估计算法中转移分支较多,需要进行判断的部分,高层指令单元包括一个16位精简指令处理器(RISC)。低层程序控制完成循环运算为主的块匹配运算。低层指令单元和高层指令单元均采用16位指令格式,但是采用不同的指令编码方法。
6)PVSP能够同时支持多种快速运动估计算法,同时PVSP内部的可编程并行运算单元能够支持半像素运动搜索、运动补偿、离散余弦正反变换、量化、反量化算法,可以完成混合编码算法的主要运算。
附图简要说明图1为已有的VLIW结构的框图。
图2为本发明的可编程视频信号处理器总体结构示意图。
图3为本发明的低层指令单元结构示意图。
图4为本发明的并行乘累加模块中处理器的结构示意图。
图5为本发明的并行算术逻辑运算模块中16位可合成处理器的结构示意图。
图6为本发明的树累加器实施例结构示意图。
图7为本发明的8输入树状加法器实施例结构示意图。
图8为本发明的最小值部件MIN0实施例结构示意图。
图9为本发明的最小值部件MIN1实施例结构示意图。
图10为本发明的最小值部件MIN2实施例结构示意图。
图11为本发明的二维并行存储器实施例结构示意图。
图12为本发明的二维并行存储器的地址映射模块实施例结构示意图。
图13为本发明的二维并行存储器的地址生成模块ADG0实施例结构示意图。
图14为本发明的8位一维并行存储器的地址生成模块ADG1实施例结构示意图。
图15为本发明的9位/16位一维并行存储器地址的生成模块ADG2实施例结构示意图。
图16为本发明的16位精简指令处理器实施例结构示意图。
图17为本发明的取指部件实施例结构示意图。
图18为本发明的指令执行部件实施例结构示意图。
本发明设计的一种可编程视频信号处理器(PVSP)结构实施例结合各附图详细说明如下本发明PVSP总体结构如图2所示。包括六个部分低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接口单元。各部分连接关系如下。高层指令单元与低层指令单元通过控制信号线相连;低层指令单元与并行运算单元通过数据和控制信号线相连;并行运算单元与数据寻径单元通过6路数据总线相连;数据寻径单元与存储及地址生成单元通过11路数据总线相连;高层指令单元与存储及地址生成单元通过起始命令信号和运行命令信号相连;数据寻径单元与外部存储器接口单元通过数据总线相连;高层指令单元和外部存储器接口单元通过控制信号相连。
本发明的工作过程如下。高层指令单元发控制信号给低层指令单元,低层指令单元开始执行低层程序,由低层指令译码单元发出控制信号给并行运算单元,数据寻径单元,存储及地址生成单元,数据寻径单元从存储及地址生成单元输出的11路信号中选择6路,输出到并行运算单元中,并行运算单元的运算结果通过数据寻径单元输出到存储及地址生成单元中。高层指令单元通过数据总线从并行运算单元读取运算结果。高层指令单元通过控制总线从低层指令单元读取执行状态。高层指令单元发出控制信号给外部存储器接口单元,外部存储器接口单元从外部存储器读入数据输出到数据寻径电路。数据寻径电路将外部存储器接口单元输出的数据连接到存储及地址生成单元。
上述各单元的具体结构实施例结合附图分别说明如下本发明的低层指令单元的结构实施例如图3所示。包括程序地址寄存器,低层指令存储器和低层指令译码模块,选择器,循环次数寄存器,减法器;其连接关系如下高层指令单元输出的程序入口地址信号entry与程序地址寄存器相连,高层指令单元输出设置程序入口地址信号set_entry与程序地址寄存器的使能端相连;程序地址寄存器与低层指令存储器相连;低层指令存储器与低层指令译码模块相连;高层指令单元输出的循环次数信号cnt与选择器的上输入端相连,减法器输出与选择器下输入端相连。高层指令单元输出设置循环次数信号set_cnt与选择器的选择端相连。选择器输出端与循环次数寄存器相连。循环次数寄存器输出端与减法器上输入端相连。循环次数寄存器信号1和减法器下输入端相连。减法器的进位输出端和运行结束信号done相连。
所说的低层译码模块由与或逻辑电路组成。低层译码模块输出端与起始命令信号和运行命令信号相连。
低层指令单元的工作过程如下当高层指令单元发出设置循环次数寄存器的命令信号时,选择器选择外部输入循环次数信号cnt输出到循环次数寄存器锁存。然后寄存器输出到减法器作减一运算。当减法器输出为0时,发出运行结束信号done。当高层指令单元发出设置程序地址寄存器的命令信号时,外部输入程序入口地址信号entry输出到程序地址寄存器锁存。
本发明的并行运算单元实施例由并行算术逻辑运算模块PALU、并行乘累加模块PMAC和树累加器组成,如图2所示。该并行算术运算逻辑模块的输出和树累加器的输入相连。其工作过程为由低层指令译码单元发出控制信号给并行运算单元,数据寻径单元输出2路数据到并行算术运算模块中,并行算术运算逻辑模块的运算结果输出给数据寻径单元。高层指令单元通过数据总线从并行运算单元读取运算结果。
并行乘累加模块的实施例包含8个16位处理器,每个处理器的结构如图4所示。乘法器输出端与寄存器相连,寄存器输出与加法器的左输入端相连,加法器输出与累加寄存器输入相连,累加寄存器输出与输出调整电路的输入相连,输出调整电路由与或逻辑组成,输出5路信号与选择器相连,选择器的选择信号sel选择其中一路输出,与加法器的右输入端相连。加法器输出与移位器输入相连,移位器在外部输入移位数信号sht的控制下输出移位后的结果给寄存器2,寄存器2输出结果信号c。
并行算术逻辑运算模块的实施例包含16个9位处理器,9位处理器组织成单指令多数据流结构。相邻的两个9位处理器可以合成为一个16位处理器。可合成16位处理器的结构如图5所示。外输入信号x[17∶9]与加法器0左输入端相连,y[17∶9]与选择器0的左输入相连,y[17∶9]取反后与选择器0的右输入端相连,选择器0的输出与加法器0的右输入端相连。加法器0的输出分别与饱和电路0,绝对值电路0,字节移位电路0,字移位电路的高端相连。饱和电路0输出端,绝对值电路0输出端,字节移位电路0输出端,字移位电路的高输出端分别与选择器2输入端相连。选择器2在外部控制信号pmov,adds,abs8,add9,add16,sub16的控制下选择1路输出结果信号z[17∶9]。外输入信号x[8∶0]与加法器1左输入端相连,y[8∶0]与选择器0的左输入相连,y[8∶0]取反后与选择器1的右输入端相连,选择器1的输出与加法器1的右输入端相连。加法器1的输出分别与饱和电路1,绝对值电路1,字节移位电路1,字移位电路的低端相连。饱和电路1输出端,绝对值电路1输出端,字节移位电路1输出端,字移位电路的低输出端分别与选择器3输入端相连。选择器3在外部控制信号pmov,adds,abs8,add9,add16,sub16的控制下选择1路输出结果信号z[8∶0]。加法器1的输出进位信号和选择器4的低输入端相连,add9,sub9,abs8经过或运算后得到信号add9‖sub9‖abs8和选择器4的高端相连。选择器4在控制信号add16‖sub16的控制下,输出结果信号给加法器0的输入进位信号。选择器0的选择控制端和abs8‖sub16‖sub9信号相连。选择器1的选择控制端和abs8‖sub16‖sub9信号相连。加法器1的输入进位端和add9‖sub9‖abs8‖sub16信号相连。
树累加器的实施例结构如图6所示。包含两个8输入树状加法器,一个11位加法器,三个累加器(ACC0,ACC1,ACC2)和三个最小值部件(MIN0,MIN1,MIN2)。其连接关系如下左边8输入树状加法器的输出和11位加法器以及累加器ACC1相连。右边8输入树状加法器的输出与11位加法器以及累加器ACC2相连;11位加法器输出与累加器ACC0相连;累加器ACC0,ACC1,ACC2分别与最小值部件MIN0,MIN1,MIN2相连;累加器ACC0与宏块匹配误差信号sad0相连;累加器ACC1与第一个块匹配误差信号sad1相连;累加器ACC2与第二个块匹配误差信号sad2相连;最小值部件MIN0输出端与宏块最小匹配误差信号min0以及宏块最优运动矢量信号opMV0相连,最小值部件MIN1输出端与第一个块匹配误差信号min1以及第一个块最优运动矢量信号opMV1相连,最小值部件MIN2输出端与第二个块最小匹配误差信号min2以及第二个块最优运动矢量信号opMV2相连;最小值部件MIN0输入端与宏块匹配误差信号sad0、运行结束信号done以及运动矢量信号Mv相连,最小值部件MIN1输入端与第一个块匹配误差信号sad1、运行结束信号done以及运动矢量信号Mv相连,最小值部件MIN2输入端与第二个块匹配误差信号sad2、运行结束信号done以及运动矢量信号Mv相连。该树累加器的工作过程为16位累加器ACC0对11位加法器的输出进行累加,在16个周期内,ACC0可以输出一个16x16宏块匹配误差结果。12位累加器ACC1和ACC2对左边8输入树状加法器和右边8输入树状加法器输出的11位数据进行累加。在8个周期内,ACC1和ACC2可以输出两个8x8块的块匹配误差结果。
上述8输入树状加法器的实施例结构如图7所示,包括4个8位加法器(ADDER8),2个9位加法器(ADDER9)以及一个10位加法器(ADDER10)。其连接关系为左边2个8位加法器输出和左边9位加法器相连,右边2个加法器和右边9位加法器相连,该两个9位加法器输出和10位加法器的输入相连。
上述最小值部件MIN0的实施例结构如图8所示,包括16位减法器,与门,16位寄存器和12位寄存器。其连接关系为16位减法器左输入与16位寄存器输出相连,16位减法器右输入与外部输入宏块匹配误差信号sad0相连,16位减法器的进位信号和与门的上输入端相连;外部输入宏块匹配误差信号sad0与16位寄存器输入相连,16位寄存器输出与宏块最小匹配误差值min0相连;与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号done相连;12位寄存器输入与外部运动矢量信号MV相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。其工作过程为16位减法器输出进位给与门,与门对减法器输出和运行结束信号done进行与运算后,输出使能信号给16位和12位寄存器。16位寄存器保存宏块最小匹配误差值min0,12位寄存器保存水平和垂直运动矢量值。如果使能信号有效,16位寄存器将宏块匹配误差信号sad0锁存,12位寄存器将运动矢量信号MV锁存。
上述最小值部件MIN1的实施例结构如图9所示,包括16位减法器,与门,16位寄存器和12位寄存器。其连接关系为16位减法器左输入与16位寄存器输出相连,16位减法器右输入与外部输入宏块匹配误差信号sad1相连,16位减法器的进位信号和与门的上输入端相连;外部输入宏块匹配误差信号sad1与16位寄存器输入相连,16位寄存器输出与宏块最小匹配误差值min1相连;与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号done相连;12位寄存器输入与外部运动矢量信号MV相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。其工作过程为16位减法器输出进位给与门,与门对减法器输出和运行结束信号done进行与运算后,输出使能信号给16位和12位寄存器。16位寄存器保存第一个块最小匹配误差信号min1,12位寄存器保存水平和垂直运动矢量值。如果使能信号有效,16位寄存器将第一个块匹配误差信号sad1锁存,12位寄存器将运动矢量信号Mv锁存。
上述最小值部件MIN1的实施例结构如图10所示,包括16位减法器,与门,16位寄存器和12位寄存器。其连接关系为16位减法器左输入与16位寄存器输出相连,16位减法器右输入与外部输入宏块匹配误差信号sad2相连,16位减法器的进位信号和与门的上输入端相连;外部输入宏块匹配误差信号sad1与16位寄存器输入相连,16位寄存器输出与宏块最小匹配误差值min2相连;与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号done相连;12位寄存器输入与外部运动矢量信号MV相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。其工作过程为16位减法器输出进位给与门,与门对减法器输出和运行结束信号done进行与运算后,输出使能信号给16位和12位寄存器。16位寄存器保存第二个块最小匹配误差信号min2,12位寄存器保存水平和垂直运动矢量值。如果使能信号有效,16位寄存器将第二个块匹配误差信号sad2锁存,12位寄存器将运动矢量信号MV锁存。
本发明的数据寻径单元的实施例由选择器组成。其工作过程为由低层指令译码单元发出控制信号给数据寻径单元,数据寻径单元从存储及地址生成单元输出的11路信号中选择6路,输出到并行算术运算模块中,并行算术运算模块的运算结果通过数据寻径单元输出到存储及地址生成单元中。
本发明的存储及地址生成单元结构如图2所示,由二维并行存储器D2M和二维并行存储器的地址生成模块ADG0,8位一维并行存储器D1M和8位一维并行存储器的地址生成模块ADG1,9位一维并行存储器DM9,16位一维并行存储器DM16,DM9与DM16的地址生成模块ADG2,系数存储器CM,CM的地址生成模块ADGc构成。其内部连接关系为,D2M与ADG0通过地址总线相连,D1M与ADG1通过地址总线相连,DM9与ADG2通过地址总线相连,DM16与ADG2通过地址总线相连。
上述二维并行存储器的实施例结构如图11所示,包括地址映射模块,N路比较器,优先级编码器,N路二选一选择器(M0,M1,...MN-1),N个数据存储器以及循环移位器。其连接关系为地址映射模块与外部输入水平存储器地址信号Lx和垂直存储器地址信号Ly相连;地址映射模块输出端b0和N路比较器的左输入端相连;信号0,1,...N-1分别与N路比较器的右输入端相连;比较器输出端与优先级编码器的输入相连;优先级编码器的输出分别与N路选择器的选择信号S0、S1、…SN-1相连。N路选择器的数据端与地址映射模块相连;N路选择器的输出端与N个数据存储器相连;N路数据存储器输出端与循环移位器相连。
所说的地址映射模块由2位加法器和外部连线构成,如图12所示,图中2位加法器左输入为1,右输入为水平存储器地址信号Lx的第4,5位。输出A1第6,7位与输入垂直存储器地址信号Ly的第4,5位相连;输出A1第4,5位与2位加法器输出相连;输出A1的第0,1,2,3位与垂直存储器地址信号Ly的第0,1,2,3位相连;输出A0第6,7位与输入垂直存储器地址信号Ly的第4,5位相连;输出A0第4,5位与输入水平存储器地址信号Lx的第4,5位相连;输出A0的第0,1,2,3位与垂直存储器地址信号Ly的第0,1,2,3位相连;输出b0与水平存储器地址信号Lx的第0,1,2,3位相连。
所说的优先级编码器的实施例由与或逻辑电路组成。该优先级编码器逻辑如下 其中j=min{j|tj=1,j=0,1...N-1}。循环移位器将第b0个数据存储器的数据左移到最高位。
上述8位一维并行存储器的实施例由N个8位存储器模块组成。其连接关系为外部输入8位一维并行存储器的地址信号addr_d1m和N个8位存储器的地址输入端相连,N个8位存储器输出8N位数据和外部相连。
上述9位一维并行存储器的实施例由N个9位存储器模块组成。其连接关系为外部输入9位一维并行存储器的地址信号addr_dm9_dm16和N个9位存储器的地址输入端相连,N个9位存储器输出9N位数据和外部相连。
上述16位一维并行存储器DM16的实施例由8个16位存储器模块组成。其连接关系为外部输入16位一维并行存储器0M16的地址信号addr_dm9_dm16和8个16位存储器的地址输入端相连,8个16位存储器输出128位数据和外部相连。
上述二维并行存储器的地址生成模块ADG0的实施例结构由图13所示,由加法器0、加法器1,选择器0、选择器1、选择器2、选择器3,寄存器0、寄存器1组成。其连接关系为选择器0左输入端与寄存器0相连,右输入端与外部输入二维并行存储器垂直起始地址信号starty相连;选择器1左输入端与外部输入二维并行存储器地址增量信号step_d2m相连,右输入端与外部输入端运动矢量信号MV的高6位(MV[11∶6])相连;选择器0和选择器1的输出与加法器0的输入相连;加法器0的输出与寄存器0相连;寄存器0输出为垂直存储器地址信号Ly。选择器2左输入端与寄存器1相连,右输入端与外部输入二维并行存储器水平起始地址信号startx相连;选择器3左输入端与信号0相连,右输入端与外部输入端运动矢量信号Mv的低6位(MV[5∶0])相连;选择器2和选择器3的输出与加法器1的输入相连;加法器1的输出与寄存器1相连;寄存器1输出为水平存储器地址信号Lx。其工作过程为在低层指令单元发送起始命令时,选择器0-1选择右路信号,将二维并行存储器水平起始地址信号startx和运动矢量信号MV的低6位(MV[5∶0])输出到加法器0,然后加法器的输出结果锁存到寄存器0中,同时,选择器2-3选择右路信号,将二维并行存储器垂直起始地址信号starty和运动矢量信号Mv的高6位(MV[11∶6])输出到加法器1,然后加法器的输出结果锁存到寄存器1中。这是寄存器0和寄存器1保存了水平和垂直起始存储器地址。在低层指令单元发送运行命令时,选择器0-1选择左路信号,将地址步长信号“step”和寄存器0保存的值输出到加法器中,加法器0的输出结果交给寄存器0锁存。同时,选择器2-3选择左路信号,将寄存器0和寄存器1保存的值输出到加法器1中,加法器1的输出结果输出给寄存器1锁存。寄存器0和寄存器1分别输出水平存储器地址信号(Lx)和垂直存储器地址信号(Ly)。
上述8位一维并行存储器的地址生成模块ADG1的实施例结构如图14所示,由两个选择器、一个加法器和一个寄存器所组成,其连接关系为选择器0左输入端与寄存器0输出相连,选择器0右输入端和8位一维并行存储器起始地址信号start_d1m相连,选择器1左输入端和8位一维并行存储器地址增量信号step_d1m相连,选择器1右输入端和信号0相连;选择器0和选择器1的输出分别与加法器0的两个输入端相连;寄存器0通过8位一维并行存储器的地址信号addr_d1m和外部相连。其工作过程为低层指令单元发送起始命令信号时,选择器0和选择器1选择右路信号,将8位一维并行存储器起始地址信号start_d1m和0输出到加法器,然后加法器的输出结果锁存到寄存器中。低层指令单元发送运行命令信号时,选择器0和1选择左路信号,将8位一维并行存储器地址增量信号step_d1m和寄存器保存的值输出到加法器中,加法器的输出结果交给寄存器锁存。
上述9位/16位一维并行存储器地址的生成模块ADG2实施例结构如图15所示,由两个选择器、一个加法器和一个寄存器所组成,其连接关系为选择器0左输入端与寄存器0输出相连,选择器0右输入端和9位/16位一维并行存储器起始地址信号start_dm9_dm16相连。选择器1左输入端和9位/16位一维并行存储器地址增量信号step_dm9_dm16相连,选择器1右输入端和信号0相连;选择器0和选择器1的输出分别与加法器0的两个输入端相连;寄存器0通过9位/16位一维并行存储器的地址信号addr_dm9_dm16和外部相连。其工作过程为低层指令单元发送起始命令信号时,选择器0和选择器1选择右路信号,将9位一维并行存储器起始地址信号start_dm9_dm16和0输出到加法器,然后加法器的输出结果锁存到寄存器中。低层指令单元发送运行命令信号时,选择器0和1选择左路信号,将9位/16位一维并行存储器地址增量信号step_dm9_dm16和寄存器保存的值输出到加法器中,加法器的输出结果交给寄存器锁存。
上述系数存储器CM的实施例由8个13位存储器模块组成。其连接关系为外部输入系数存储器CM的地址信号和8个13位存储器的地址输入端相连,8个13位存储器输出104位系数和外部相连。
本发明的高层指令单元的实施例结构由一个16位精简指令集处理器和32个特殊寄存器阵列所组成,如图2所示。其连接关系为16位精简指令处理器和外部通过设置程序入口地址信号set_entry及设置循环次数寄存器信号set_cnt相连,16位精简指令处理器和特殊寄存器阵列通过控制信号相连。
上述16位精简指令集处理器结构如图16所示,包括4部分,即取指部件,译码部件,执行部件和寄存器阵列。其连接关系为取指部件与指令译码部件之间通过转移地址ba,指令信号d_ir,转移控制信号next信号相连;指令译码部件与指令执行部件之间通过操作码d_op,执行控制信号exec,第一源操作数d_src1,第二源操作数d_src2以及状态信号eflags相连;指令执行部件与寄存器阵列之间通过写寄存器信号we,结果信号e_res相连;指令译码部件与寄存器阵列通过第一源操作数地址d_a1,第二源操作数地址d_a2,以及寄存器阵列输出信号d_r1和d_r2相连。其工作过程为取指部件输出指令信号d_ir给指令译码部件。指令译码部件输出转移控制信号next和转移地址信号ba信号给取指部件。指令译码部件输入双向数据信号g_d和指令执行部件的输出状态信号e_flags以及寄存器阵列输出信号d_r1和d_r2。指令译码部件输出d_op,exec,d_src1,d_src2信号给指令执行单元。指令译码部件输出d_a1,d_a2给寄存器阵列。指令译码部件输出d_a1经过寄存器输出e_a。指令执行部件输出写寄存器信号we到寄存器阵列,指令执行部件输出结果信号e_res到寄存器阵列。指令译码部件输出g_a,g_r,g_w,设置循环次数寄存器信号set_cnt,设置程序入口地址寄存器信号set_entry,作为16位精简指令处理器的输出控制信号。g_d为双向信号。当g_r为高时,g_d为输入信号;当g_w为高时,g_d为输出信号。
上述的取指部件的实施例结构如图17所示,包括加法器,当前地址寄存器,选择器,高层指令存储器,指令寄存器。其连接关系为加法器上输入端与信号1相连,下输入端与当前地址寄存器的输出相连;加法器输出与当前地址寄存器的输入相连;选择器的上输入端与通过转移地址ba相连,选择器的下输入端与当前地址寄存器的输出相连,选择器的选择端与转移控制信号next相连,选择器的输出端与高层指令存储器的地址输入端相连;高层指令存储器的输出与指令寄存器输入端相连。指令寄存器的输出端通过指令信号d_ir与外部指令译码部件相连。其工作过程为加法器将地址选择器的输出加1后输出到当前地址寄存器寄存。当前地址寄存器和外部输入转移地址信号ba输出到选择器,当外部输入信号next为高时,选择器选择转移地址信号输出,当next为低时,选择器选择当前地址寄存器输出。选择器的输出作为高层指令存储器的地址。高层指令存储器输出这一地址对应的指令,指令锁存到指令寄存器中。指令寄存器输出指令信号d_ir。
上述指令译码部件实施例由与或逻辑电路组成。
上述的指令执行部件的实施例结构如图18所示,包括寄存器1,寄存器2,寄存器3,寄存器4,状态寄存器以及算术逻辑运算部件ALU。其连接关系为第一源操作数d_src1,第二源操作数d_src2,操作码d_op,执行控制信号exec分别与寄存器1,寄存器2,寄存器3和寄存器4的输入相连;寄存器1,寄存器2和寄存器3的输出和算术逻辑运算部件相连;算术逻辑运算部件与状态寄存器通过进位carry,零信号zero,溢出ovflow和d_src1的最低位d_src1
相连;寄存器4输出we和外部相连;状态寄存器输出eflags和外部相连。其工作过程为外部输入信号d_src1,d_src2,d_op,exec,分别经过寄存器1,2,3,4锁存后,分别输出第一源操作数e_src1,第二源操作数e_src2,操作类型信号e_op和写寄存器信号we。e_src1,e_src2和e_op作为ALU的输入,ALU输出结果信号e_res和状态标志。状态标志包括进位标志carry,零标志zero,溢出标志ovflow。这三个状态标志信号和外部输入信号d_src1
输入到状态寄存器锁存。状态寄存器输出e_flags信号给出了不同的操作类型信号e_op下,算术逻辑单元的功能。
表1不同的操作类型信号e_op下,算术逻辑单元ALU的功能。
上述寄存器阵列的实施例由32个通用寄存器组成,如图16所示,寄存器阵列与外部的连接关系为寄存器阵列和指令执行部件之间通过写寄存器信号we,结果信号e_res相连。寄存器阵列和指令译码部件通过第一源操作数地址d_a1,第二源操作数地址d_a2,以及寄存器阵列输出信号d_r1和d_r2相连。指令译码部件输出d_a1经过寄存器输出e_a和寄存器阵列相连。其工作过程为寄存器阵列输入两个源寄存器地址d_a1,d_a2和目的寄存器地址e_a,以及写寄存器信号we,输出由d_a1和d_a2指定的两个源操作数d_r1和d_r2,同时将执行单元输出的结果e_res写入由e_a指定的寄存器中。
本发明的外部存储器接口单元如图2所示,连接关系如下。高层指令单元和外部存储器接口单元通过控制信号相连。数据寻径单元和外部存储器接口单元通过数据总线相连。工作过程如下。高层指令单元发出控制信号给外部存储器接口单元,外部存储器接口单元从外部存储器读入数据输出到数据寻径电路。
本实施例结构已经用Verilog HDL加以实现,并用Verilog XL仿真工具完成了功能验证,然后用Synopsys的Design compiler综合工具进行综合,采用0.25um的工艺库下,总门数包括65K逻辑门和45kb的片内静态存储器(SRAM)。在PVSP上实现了多种块匹配算法,包括基于螺旋形扫描的全搜索算法,三步法,最临近搜索算法,以及运动补偿,半像素搜索算法,DCT,IDCT,量化与反量化算法。
权利要求
1.一种基于混合视频编码方法的可编程视频信号处理器结构,其特征在于,包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接口单元六个部分;各部分连接关系为高层指令单元与低层指令单元通过控制信号线相连;该低层指令单元与并行运算单元通过数据和控制信号线相连;该并行运算单元与数据寻径单元通过6路数据总线相连;该数据寻径单元与存储及地址生成单元通过11路数据总线相连;所说的高层指令单元与存储及地址生成单元通过起始命令信号和运行命令信号相连;所说的数据寻径单元与外部存储器接口单元通过数据总线相连;该高层指令单元和外部存储器接口单元通过控制信号相连。
2.如权利要求1所述的可编程视频信号处理器结构,其特征在于,所说的低层指令单元包括程序地址寄存器,低层指令存储器和低层指令译码模块,选择器,循环次数寄存器,减法器;其连接关系为高层指令单元输出的程序入口地址信号(entry)与程序地址寄存器相连,高层指令单元输出设置程序入口地址信号(set_entry)与程序地址寄存器的使能端相连;程序地址寄存器与低层指令存储器相连;低层指令存储器与低层指令译码模块相连;高层指令单元输出的循环次数信号(cnt)与选择器的上输入端相连,减法器输出与选择器下输入端相连;高层指令单元输出设置循环次数信号(set_cnt)与选择器的选择端相连;选择器输出端与循环次数寄存器相连;循环次数寄存器输出端与减法器上输入端相连;循环次数寄存器信号1和减法器下输入端相连;减法器的进位输出端和运行结束信号(done)相连,低层译码模块输出端与起始命令信号和运行命令信号相连。
3.如权利要求1所述的可编程视频信号处理器结构,其特征在于,所说的并行运算单元由并行算术逻辑运算模块、并行乘累加模块和树累加器组成,该并行算术运算逻辑模块的输出和树累加器的输入相连;所说的并行乘累加模块包含多个16位处理器。
4.如权利要求3所述的可编程视频信号处理器结构,其特征在于,所说的每个处理器包括乘法器、两个寄存器(1、2),加法器、移位器、累加寄存器、输出调整电路和选择器;其连接关系为乘法器输出端与寄存器1相连,寄存器输出与加法器的左输入端相连,加法器输出与累加寄存器输入相连,累加寄存器输出与输出调整电路的输入相连,输出调整电路输出5路信号与选择器相连,选择器的选择信号选择其中一路输出,与加法器的右输入端相连;加法器输出与移位器输入相连,移位器输出端与寄存器的输入端相连。
5.如权利要求3所述的可编程视频信号处理器结构,其特征在于,所说的并行算术逻辑运算模块包含16个9位处理器,9位处理器组织成单指令多数据流结构;相邻的两个9位处理器可以合成为一个16位处理器。
6.如权利要求5所述的可编程视频信号处理器结构,其特征在于,所说的每个9位处理器由选择器(1、2),加法器、饱和电路、绝对值电路和字节移位电路构成,所说的选择器(1)的输出端与加法器的输入端相连,该加法器的输出端分别与饱和电路,绝对值电路,字节移位电路相连;饱和电路(0)输出端,绝对值电路(0)输出端,字节移位电路(0)输出端分别与选择器(2)输入端相连;所说的相邻的两个9位处理器中的加法器的输出端均与一个字移位电路的高端相连,该字移位电路的输出端分别与所说的两个9位处理器中的选择器(2)的输入端相连,从而合成为一个16位处理器。
7.如权利要求3所述的可编程视频信号处理器结构,其特征在于,所说的树累加器包含两个8输入树状加法器(1、2),一个11位加法器,三个累加器(ACC0、ACC1、ACC2)和三个最小值部件(MIN0、MIN1、MIN2);其连接关系如下8输入树状加法器(1)的输出和11位加法器以及累加器(ACC1)相连;8输入树状加法器(2)的输出与11位加法器以及累加器(ACC2)相连;11位加法器输出与累加器(ACC0)相连;累加器(ACC0,ACC1,ACC2)分别与最小值部件(MIN0,MIN1,MIN2)相连;累加器(ACC0)与宏块匹配误差信号(sad0)相连;累加器(ACC1)与第一个块匹配误差信号(sad1)相连;累加器(ACC2)与第二个块匹配误差信号(sad2)相连;最小值部件(MIN0)输出端与宏块最小匹配误差信号(min0)以及宏块最优运动矢量信号(opMV0)相连,最小值部件(MIN1)输出端与第一个块匹配误差信号(minl)以及第一个块最优运动矢量信号(opMV1)相连,最小值部件(MIN2)输出端与第二个块最小匹配误差信号(min2)以及第二个块最优运动矢量信号(opMV2)相连;最小值部件(MIN0)输入端与宏块匹配误差信号(sad0)、运行结束信号(done)以及运动矢量信号(MV)相连,最小值部件(MIN1)输入端与第一个块匹配误差信号(sad1)、运行结束信号(done)以及运动矢量信号(MV)相连,最小值部件(MIN2)输入端与第二个块匹配误差信号(sad2)、运行结束信号(done)以及运动矢量信号MV相连。
8.如权利要求7所述的可编程视频信号处理器结构,其特征在于,所说的8输入树状加法器包括4个8位加法器(81、82、83、84),2个9位加法器(91、92)以及一个10位加法器;其连接关系为2个8位加法器(81、82)输出和9位加法器相连(91、),2个加法器(83、84)和9位加法器(92)相连,该两个9位加法器输出和10位加法器的输入相连。
9.如权利要求7所述的可编程视频信号处理器结构,其特征在于,所说的最小值部件(MIN0)包括16位减法器,与门,16位寄存器和12位寄存器;其连接关系为16位减法器左输入与16位寄存器输出相连,16位减法器右输入与外部输入宏块匹配误差信号(sad0)相连,16位减法器的进位信号和与门的上输入端相连;外部输入宏块匹配误差信号(sad0)与16位寄存器输入相连,16位寄存器输出与宏块最小匹配误差值(min0)相连;与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号(done)相连;12位寄存器输入与外部运动矢量信号(MV)相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。
10.如权利要求7所述的可编程视频信号处理器结构,其特征在于,所说的上述最小值部件(MIN1)包括16位减法器,与门,16位寄存器和12位寄存器;其连接关系为16位减法器左输入与16位寄存器输出相连,16位减法器右输入与外部输入宏块匹配误差信号(sad1)相连,16位减法器的进位信号和与门的上输入端相连;外部输入宏块匹配误差信号(sad1)与16位寄存器输入相连,16位寄存器输出与宏块最小匹配误差值(min1)相连;与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号(done)相连;12位寄存器输入与外部运动矢量信号(Mv)相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。
11.如权利要求7所述的可编程视频信号处理器结构,其特征在于,所说的最小值部件(MIN2)包括16位减法器,与门,16位寄存器和12位寄存器;其连接关系为16位减法器左输入与16位寄存器输出相连,16位减法器右输入与外部输入宏块匹配误差信号(sad2)相连,16位减法器的进位信号和与门的上输入端相连;外部输入宏块匹配误差信号(sad1)与16位寄存器输入相连,16位寄存器输出与宏块最小匹配误差值(min2)相连;与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号(done)相连;12位寄存器输入与外部运动矢量信号(MV)相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。
12.如权利要求1所述的可编程视频信号处理器结构,其特征在于,所说的数据寻径单元的实施例由选择器组成。
13.如权利要求1所述的可编程视频信号处理器结构,其特征在于,所说的存储及地址生成单元由二维并行存储器(D2M)和二维并行存储器的地址生成模块(ADG0),8位一维并行存储器(D1M)和8位一维并行存储器的地址生成模块(ADG1),9位一维并行存储器(DM9),16位一维并行存储器(DM16),(DM9)与(DM16)的地址生成模块(ADG2),系数存储器(CM),(CM)的地址生成模块(ADGc)构成,其连接关系为,所说的二维并行存储器(D2M)与二维并行存储器的地址生成模块(ADG0)通过地址总线相连,所说的8位一维并行存储器(D1M)与地址生成模块(ADG1)通过地址总线相连,所说的9位一维并行存储器(DM9)与地址生成模块(ADG2)通过地址总线相连,所说的16位一维并行存储器(DM16)与地址生成模块(ADG2)通过地址总线相连。
14.如权利要求13所述的可编程视频信号处理器结构,其特征在于,所说的二维并行存储器(D2M)包括地址映射模块,N路比较器(0,1,2,...N-1),优先级编码器,N路二选一选择器(M0,M1,...MN-1),N个数据存储器(0,1,2,...N-1)以及循环移位器;其连接关系为所说的地址映射模块与外部输入水平存储器地址信号(Lx)和垂直存储器地址信号(Ly)相连;该地址映射模块输出端(b0)和N路比较器的左输入端相连;信号0,1,...N-1分别与所说的N路比较器的右输入端相连;各路比较器的输出端与优先级编码器的输入相连;该优先级编码器的输出分别与N路选择器(M0,M1,...MN-1)的选择信号(S0、S1、…SN-1)相连;该N路选择器的数据端与地址映射模块相连;N路选择器的输出端与N个数据存储器相连;该N路数据存储器输出端与循环移位器相连。
15.如权利要求14所述的可编程视频信号处理器结构,其特征在于,所说的地址映射模块由2位加法器和外部连线构成,加法器的左输入为1,右输入为水平存储器地址信号(Lx)的第4,5位;输出(A1)第6,7位与输入垂直存储器地址信号(Ly)的第4,5位相连;输出(A1)第4,5位与2位加法器输出相连;输出(A1)的第0,1,2,3位与垂直存储器地址信号(Ly)的第0,1,2,3位相连;输出(A0)第6,7位与输入垂直存储器地址信号(Ly)的第4,5位相连;输出(A0)第4,5位与输入水平存储器地址信号Lx的第4,5位相连;输出(A0)的第0,1,2,3位与垂直存储器地址信号(Ly)的第0,1,2,3位相连;输出(b0)与水平存储器地址信号(Lx)的第0,1,2,3位相连;所说的优先级编码器由与或逻辑电路组成,该优先级编码器逻辑如下 其中j=min{j|tj=1,j=0,1...N-1};循环移位器将第b0个数据存储器的数据左移到最高位。
16.如权利要求13所述的可编程视频信号处理器结构,其特征在于,所说的8位一维并行存储器的实施例由N个8位存储器模块组成,其连接关系为外部输入8位一维并行存储器的地址信号(addr_d1m)和N个8位存储器的地址输入端相连,N个8位存储器输出8N位数据和外部相连;所说的9位一维并行存储器的实施例由N个9位存储器模块组成,其连接关系为外部输入9位一维并行存储器的地址信号(addr_dm9_dm16)和N个9位存储器的地址输入端相连,N个9位存储器输出9N位数据和外部相连;所说的16位一维并行存储器(DM16)的实施例由8个16位存储器模块组成,其连接关系为外部输入16位一维并行存储器(DM16)的地址信号(addr_dm9_dm16)和8个16位存储器的地址输入端相连,8个16位存储器输出128位数据和外部相连。
17.如权利要求13所述的可编程视频信号处理器结构,其特征在于,所说的二维并行存储器的地址生成模块(ADG0)由加法器(0)、加法器(1),选择器(0)、选择器(1)、选择器(2)、选择器(3),寄存器(0)、寄存器(1组成;其连接关系为选择器0左输入端与寄存器0的输出端相连,其右输入端与外部输入二维并行存储器垂直起始地址信号(starty)相连;选择器(1)左输入端与外部输入二维并行存储器地址增量信号(step_d2m)相连,其右输入端与外部输入端运动矢量信号(MV)的高6位(MV[11:6])相连;选择器)(0)和选择器(1)的输出端与加法器(0)的输入端相连;加法器(0)的输出端与寄存器(0)的输入端相连;寄存器(0)输出为垂直存储器地址信号(Ly);选择器(2)左输入端与寄存器(1)的输出端相连,其右输入端与外部输入二维并行存储器水平起始地址信号(startx)相连;选择器(3)左输入端与信号(0)相连,其右输入端与外部输入端运动矢量信号(Mv)的低6位(MV[5:0])相连;选择器(2)和选择器(3)的输出端与加法器(1)的输入端相连;加法器(1)的输出端与寄存器(1)的输入端相连;寄存器(1)输出为水平存储器地址信号(Lx)。
18.如权利要求13所述的可编程视频信号处理器结构,其特征在于,所说的8位一维并行存储器的地址生成模块(ADG1)由两个选择器(0)、(1)、一个加法器(0)和一个寄存器(0)所组成;其连接关系为选择器(0)左输入端与寄存器(0)输出端相连,选择器(0)右输入端和8位一维并行存储器起始地址信号(start_d1m)相连,选择器(1)左输入端和8位一维并行存储器地址增量信号(step_d1m)相连,选择器(1)右输入端和信号(0)相连;选择器(0)和选择器(1)的输出端分别与加法器(0)的两个输入端相连;加法器(0)的输出端与寄存器(0)的输入端相连;寄存器(0)的输出端通过8位一维并行存储器的地址信号(addr_d1m)和外部相连。
19.如权利要求13所述的可编程视频信号处理器结构,其特征在于,所说的9位/16位一维并行存储器地址的生成模块(ADG2)由两个选择器(0、1)、一个加法器(0)和一个寄存器(0)所组成;其连接关系为选择器(0)左输入端与寄存器(0)输出端相连,选择器(0)右输入端和9位/16位一维并行存储器起始地址信号(start_dm9_dm16)相连;选择器(1)左输入端和9位/16位一维并行存储器地址增量信号(step_dm9_dm16)相连,选择器(1)右输入端和信号(0)相连;选择器(0)和选择器(1)的输出端分别与加法器(0)的两个输入端相连;加法器(0)的输出端与寄存器0的输入端相连;寄存器(0)的输出端通过9位/16位一维并行存储器的地址信号(addr_dm9_dm16)和外部相连。
20.如权利要求1所述的可编程视频信号处理器结构,其特征在于,所说的高层指令单元的由一个16位精简指令集处理器和32个特殊寄存器阵列所组成,其连接关系为16位精简指令处理器和外部通过设置程序入口地址信号(set_entry)及设置循环次数寄存器信号(set_cnt)相连,16位精简指令处理器和特殊寄存器阵列通过控制信号相连。
21.如权利要求20所述的可编程视频信号处理器结构,其特征在于,所说的16位精简指令集处理器包括4部分,即取指部件,译码部件,执行部件和寄存器阵列;其连接关系为所说的取指部件与指令译码部件之间通过转移地址(ba),指令信号(d_ir),转移控制信号(next)信号相连;指令译码部件与指令执行部件之间通过操作码(d_op),执行控制信号(exec),第一源操作数(d_src1),第二源操作数(d_src2)以及状态信号(eflags)相连;指令执行部件与寄存器阵列之间通过写寄存器信号(we),结果信号(e_res)相连;指令译码部件与寄存器阵列通过第一源操作数地址(d_a1),第二源操作数地址(d_a2),以及寄存器阵列输出信号(d_r1)和(d_r2)相连。
22.如权利要求21所述的可编程视频信号处理器结构,其特征在于,所说的取指部件包括加法器,当前地址寄存器,选择器,高层指令存储器,指令寄存器;其连接关系为加法器上输入端与信号(1)相连,下输入端与当前地址寄存器的输出端相连;加法器的输出端与当前地址寄存器的输入端相连;选择器的上输入端与通过转移地址(ba)相连,选择器的下输入端与当前地址寄存器的输出相连,选择器的选择端与转移控制信号(next)相连,选择器的输出端与高层指令存储器的地址输入端相连;高层指令存储器的输出端与指令寄存器输入端相连,指令寄存器的输出端通过指令信号(d_ir)与外部指令译码部件相连。
23.如权利要求21所述的可编程视频信号处理器结构,其特征在于,所说的指令执行部件包括寄存器(1),寄存器(2),寄存器(3),寄存器(4),状态寄存器以及算术逻辑运算部件(ALU);其连接关系为第一源操作数(d_src1),第二源操作数(d_src2),操作码(d_op),执行控制信号(exec)分别与寄存器(1),寄存器(2),寄存器(3)和寄存器(4)的输入端相连;寄存器(1),寄存器(2)和寄存器(3)的输出端和算术逻辑运算部件相连;算术逻辑运算部件与状态寄存器通过进位(carry),零信号(zero),溢出(ovflow)和(d_src1)的最低位(d_src1
)相连;寄存器(4)输出端(we)和外部相连;状态寄存器输出端(eflags)和外部相连。
全文摘要
本发明属于视频图像编码领域,混合编码方法,和视频信号处理器设计。本发明PVSP超大规模集成电路结构包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接口单元,它集成了以高并行性能为特点的硬件结构和以高可编程性能为特点的RISC处理器结构,具有较大的灵活性,节省硬件开销。
文档编号G06T1/00GK1312642SQ01102228
公开日2001年9月12日 申请日期2001年1月18日 优先权日2001年1月18日
发明者何芸, 龚大年 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1