会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于运动估计算法的分层可编程并行视频信号处理器

用于运动估计算法的分层可编程并行视频信号处理器

阅读:1226发布:2020-09-04

IPRDB可以提供用于运动估计算法的分层可编程并行视频信号处理器专利检索,专利查询,专利分析的服务。并且本发明属于视频图像编码领域,涉及用于运动估计算法的分层可编程并行视频信号处理器,包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接口单元六个部分;其中,低层指令单元通过控制信号线分别与高层指令单元及并行运算单元相连;数据寻径单元通过数据总线分别与并行运算单元与存储及地址生成单元相连。本发明在一个结构上可同时实现多种块匹配算法,并可降低视频编码系统的硬件开销,还能支持视频编码的其它算法。,下面是用于运动估计算法的分层可编程并行视频信号处理器专利的具体信息内容。

1、一种用于运动估计算法的分层可编程并行视频信号处理器,其特征在于,包 括低层指令单元,  并行运算单元,  数据寻径单元,存储器及地址生成单元,高层 指令单元,以及外部存储器接口单元六个部分;其中,所说的高层指令单元与低层 指令单元通过控制信号线相连;所说的低层指令单元与并行运算单元通过数据和控 制信号线相连;所说的并行运算单元与数据寻径单元通过3路数据总线相连;所说 的数据寻径单元与存储及地址生成单元通过6路数据总线相连;所说的高层指令单 元的起始命令信号和运行命令信号通过数据寻径单元与存储及地址生成单元相连 接;所说的数据寻径单元与外部存储器接口单元通过数据总线相连;所说的高层指 令单元和外部存储器接口单元通过控制信号线相连;所说的低层指令单元包括程序 地址寄存器,低层指令存储器和低层指令译码模块,选择器,循环次数寄存器,减 法器;其中,高层指令单元g_d信号线输出的程序入口地址与所说的程序地址寄存 器的entry端口相连,高层指令单元输出设置程序入口地址set_entry信号线与该 程序地址寄存器的使能端口相连;该程序地址寄存器与低层指令存储器相连;该低 层指令存储器与低层指令译码模块相连;高层指令单元g_d信号线输出的循环次数 与该选择器的上输入端口相连,减法器输出与选择器下输入端相连;高层指令单元 输出设置循环次数set_cnt信号线与该选择器的选择端相连;该选择器输出端与循 环次数寄存器相连;该循环次数寄存器输出端与减法器上输入端相连;该循环次数 寄存器1信号线和减法器下输入端相连;该减法器的进位输出端和运行结束done信 号线相连;所说的低层指令单元的运行由低层指令集中的低层指令所控制。

2、如权利要求1所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的低层指令集低层指令长度为16位,从高位至低位排列,类型码 域4位,源操作数1src1和源操作数2src2各占3位,目的操作数dst占2位;移 位立即数占4位;#imm表示立即数:(1)类型码域:0,指令:PNOP,PNOP,空操作,空操作;

(2)类型码域:1,指令:PADD,PADD dst,src1,src2,  #imm,并行加法, dst=(src1+src2)>>#imm,>>为右移#imm位;

(3)类型码域:2,指令:PSUB,PSUB dst,src1,src2,并行减法, dst=src1-src2;

(4)类型码域:3,指令:PADDS,PADDS dst,src1,src2,并行饱和加法, dst=clip(src1+src2);

(5)类型码域:4,指令:PMOV,PMOV  dst,src,并行数据搬移,dst=src;

(6)类型码域:5,指令:PSAD,PSAD  src1,src2,并行减法绝对值, abs(src1-src2),abs为取绝对值;

类型码域:6-15,保留。

3、如权利要求1所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的并行运算单元由并行算术逻辑运算模块和树累加器组成,该并 行算术逻辑运算模块的输出端和树累加器的输入端相连。

4、如权利要求3所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的并行算术逻辑运算模块包括N个9位处理器,N为正整数,该9 位处理器组成单指令多数据流结构。

5、如权利要求3所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的树累加器模块包括设置在左、右边的两个8输入树状加法 器,一个11位加法器,累加器0,累加器1,累加器2,和最小值部件0,最小值部 件1,最小值部件2;其连接关系如下:左边8输入树状加法器的输出和11位加法 器以及累加器1信号线相连;右边8输入树状加法器的输出与11位加法器以及累加 器2信号线相连;11位加法器输出与累加器0相连;累加器0、累加器1、累加器2 分别与最小值部件0、最小值部件1、最小值部件2相连;累加器0与宏块匹配误差 sad0信号线相连;累加器1与第一个块匹配误差sad1信号线相连;累加器2与第二 个块匹配误差sad2信号线相连;最小值部件0输出端与宏块最小匹配误差min0信 号线以及宏块最优运动矢量opMV0信号线相连,最小值部件1输出端与第一个块匹 配误差min1信号线以及第一个块最优运动矢量opMV1信号线相连,最小值部件2输 出端与第二个块最小匹配误差min2信号线以及第二个块最优运动矢量opMV2信号线 相连;最小值部件0输入端与宏块匹配误差sad0信号线、运行结束done信号线以 及运动矢量MV信号线相连,最小值部件1输入端与第一个块匹配误差sad1信号线、 运行结束done信号线以及运动矢量MV信号线相连,最小值部件2输入端与第二个 块匹配误差sad2信号线、运行结束done信号线以及运动矢量MV信号线相连。

6、如权利要求5所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的8输入树状加法器包括4个8位加法器,2个9位加法器以及 一个10位加法器;其中,第一、二个8位加法器输出和第一个9位加法器相连,第 三、四个加法器和第二个9位加法器相连,该两个9位加法器输出和所说的10位加 法器的输入相连。

7、如权利要求5所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的最小值部件0包括16位减法器,与门,16位寄存器和12位寄 存器;其连接关系为:16位减法器左输入与16位寄存器输出相连,16位减法器右 输入与外部输入宏块匹配误差sad0信号线相连,16位减法器的进位信号和与门的上 输入端相连;外部输入宏块匹配误差sad0信号线与16位寄存器输入相连,16位寄 存器输出与宏块最小匹配误差值min0信号线相连;与门的上输入端与16位减法器 的进位相连,与门下输入端与外部输入运行结束done信号线相连;12位寄存器输入 与外部运动矢量MV信号线相连,12位寄存器与16位寄存器的使能信号线和与门的 输出相连。

8、如权利要求5所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的最小值部件1包括16位减法器,与门,16位寄存器和12位寄 存器;其连接关系为:16位减法器左输入与16位寄存器输出相连,16位减法器右 输入与外部输入宏块匹配误差sad1信号线相连,16位减法器的进位信号线和与门的 上输入端相连;16位寄存器输出与宏块最小匹配误差值min1信号线相连;与门下输 入端与外部输入运行结束done信号线相连;12位寄存器输入与外部运动矢量MV信 号线相连,12位寄存器与16位寄存器的使能信号线和与门的输出相连。

9、如权利要求5所述的用于运动估计算法的分层可编程并行视频信号处理器,   其特征在于,所说的最小值部件2包括16位减法器,与门,16位寄存器和12位寄 存器;其连接关系为:16位减法器左输入与16位寄存器输出相连,16位减法器右 输入与外部输入宏块匹配误差sad2信号线相连,16位减法器的进位信号线和与门的 上输入端相连;外部输入宏块匹配误差sad1信号线与16位寄存器输入相连,16位 寄存器输出与宏块最小匹配误差值min2信号线相连;与门的上输入端与16位减法 器的进位线相连,与门下输入端与外部输入运行结束done信号线相连;12位寄存器 输入与外部运动矢量MV信号线相连,12位寄存器与16位寄存器的使能信号线和与 门的输出相连。

10、如权利要求1所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的存储及地址生成单元由二维并行存储器及与其通过地址总线相 连的二维并行存储器的地址生成模块,8位一维并行存储器及与其通过地址总线相连 的8位一维并行存储器的地址生成模块,9位一维并行存储器及与其通过地址总线相 连的9位一维并行存储器地址的生成模块构成。

11、如权利要求10所述的用于运动估计算法的分层可编程并行视频信号处理 器,其特征在于,所说的二维并行存储器包括地址映射模块,N路比较器,其中N 为正整数,优先级编码器,N路二选一选择器,N个数据存储器,以及循环移位器, 其中,所说的地址映射模块输出端分别与N路比较器的输入端相连;该N路比较器 输出端与优先级编码器的输入相连;该优先级编码器的输出分别与N路选择器的选 择信号端S0、S1、…SN-1相连;该N路选择器的数据端与地址映射模块相连;N路选 择器的输出端分别与N个数据存储器相连;该N路数据存储器输出端均与循环移位 器相连。

12、如权利要求11所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的地址映射模块的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位信号线相连。

13、如权利要求11所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的优先级编码器由与或逻辑电路组成,该优先级编码器逻辑如下: 其中J=min{j/tj=1,j=0,1…N-1}; ti为优先级编码器的N个输入,Si为优先级编码器的N个输出,N为正整数; 循环移位器将第b0个数据存储器的数据左移到最高位。

14、如权利要求10所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的8位一维并行存储器由N个8位存储器模块组成,N为正整数; 其中,外部输入8位一维并行存储器的地址信号线addr_d1m和N个8位存储器的地 址输入端相连,N个8位存储器输出8N位数据和外部相连。

15、如权利要求10所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的9位一维并行存储器由N个9位存储器模块组成,N为正整数; 其连接关系为:外部输入9位一维并行存储器的地址信号线addr_dm9和N个9位存 储器的地址输入端相连,N个9位存储器输出9N位数据和外部相连。

16、如权利要求10所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的二维并行存储器的地址生成模块由加法器0、加法器1,选择 器0、选择器1、选择器2、选择器3,寄存器0、寄存器1组成;其连接关系为:选 择器0左输入端与寄存器0相连,右输入端为信号线starty;选择器1左输入端与 信号线step_d2m相连,右输入端与信号线MV的高6位信号线相连;选择器0和选择 器1的输出与加法器0的输入相连;加法器0的输出与寄存器0相连;寄存器0输 出为垂直存储器地址信号线Ly;选择器2左输入端与寄存器1相连,右输入端与信 号线startx相连;选择器3左输入端与信号线0相连,右输入端与信号线MV的低6 位信号线相连;选择器2和选择器3的输出与加法器1的输入相连;加法器1的输 出与寄存器1相连;寄存器1输出为水平存储器地址信号线Lx。

17、如权利要求11所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的8位一维并行存储器的地址生成模块由两个选择器、一个加法 器和一个寄存器所组成,其连接关系为:选择器0左输入端与寄存器0输出相连, 选择器0右输入端和信号线start_d1m相连,选择器1左输入端和信号线step_d1m 相连,选择器1右输入端和信号线0相连;选择器0和选择器1的输出分别与加法 器0的两个输入端相连;寄存器0通过8位一维并行存储器的地址信号线addr_d1m 和外部相连。

18、如权利要求10所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的上述9位一维并行存储器地址的生成模块由两个选择器、一个 加法器和一个寄存器所组成,其连接关系为:选择器0左输入端与寄存器0输出相 连,选择器0右输入端和信号线start_dm9相连;选择器1左输入端和信号线 step_dm9相连,选择器1右输入端和信号线0相连;选择器0和选择器1的输出分 别与加法器0的两个输入端相连;寄存器0通过9位一维并行存储器的地址信号线 addr_dm9和外部相连。

19、如权利要求1所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的数据寻径单元由选择器组成。

20、如权利要求1所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的高层指令单元由一个16位精简指令集处理器和32个特殊寄存 器阵列所组成,其中,该16位精简指令处理器和外部通过设置程序入口地址信号线 set_entry及设置循环次数寄存器信号线set_cnt;当set_entry为1时,g_d输出 程序入口地址信号;当set_cnt为1时,g_d输出循环次数信号,16位精简指令处 理器和特殊寄存器阵列通过控制信号线相连;所说的高层指令单元由高层指令集中 的指令控制。

21、如权利要求20所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的16位精简指令集处理器包括取指部件,译码部件,执行部件和 寄存器阵列;其连接关系为:取指部件与指令译码部件之间通过转移地址信号线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所述的用于运动估计算法的分层可编程并行视频信号处理 器,其特征在于,所说的指令译码部件由与或逻辑电路组成;指令译码部件和取指 部件之间通过转移地址ba,指令信号线d_ir,转移控制信号线next信号相连;指 令译码部件和指令执行部件之间通过操作码信号线d_op,执行控制信号线exec,第一 源操作数信号线d_src1,第二源操作数信号线d_src2以及状态信号线eflags相连; 指令译码部件和寄存器阵列通过第一源操作数地址信号线d_a1,第二源操作数地址 信号线d_a2,以及寄存器阵列输出信号线d_r1和d_r2相连。

24、如权利要求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[0] 相连;寄存器4输出信号线we和外部相连;状态寄存器输出信号线eflags和外部 相连;不同的操作类型信号e_op下,算术逻辑单元的操作定义如下:(1)操作类型:0,赋值,e_r=e_src2

(2)操作类型:1,加法,e_r=e_src1+e_src2

(3)操作类型:2,减法,e_r=e_src1-e_src2

(4)操作类型:3,或,e_r=e_src1|e_src2,|表示逻辑或运算

(5)操作类型:4,与,e_r=e_src1&e_src2,&表示逻辑与运算

(6)操作类型:5,异或,e_r=e_src1^e_src2,^表示逻辑异或运算

(7)操作类型:6,移位,当e_src2[4]=1,e_r=e_src1>>e_src2,>>rs表示右移e_src2位;

当e_src2[4]=0,e_r=e_src1<

25、如权利要求21所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的寄存器阵列由32个通用寄存器组成;该寄存器阵列和指令执行 部件之间通过写寄存器信号线we,结果信号线e_res相连;寄存器阵列和指令译码 部件通过第一源操作数地址信号线d_a1,第二源操作数地址信号线d_a2,以及寄存 器阵列输出信号线d_r1和d_r2相连;指令译码部件输出信号线d_a1经过寄存器输 出信号线e_a和寄存器阵列相连。

26、如权利要求21所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的高层指令集的指令有4种类型:空指令,赋值指令,转移指令 和算术逻辑运算指令;指令的15和14位表明指令类型;这4种类型分别编码为00, 01,10,11。

27、如权利要求26所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的空指令为一个16位的指令,从第0位到第15位,其值都为0。

28、如权利要求26所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的赋值指令分为三种,第一种赋值指令的子类型域有4位;目的 地址寄存器有5位;源地址寄存器有5位;第二种赋值指令的子类型域有4位;目 的地址寄存器有5位;立即数域为5位;第三种赋值指令的子类型域有4位;目的 地址寄存器有5位;最低5位为0;赋值指令如下,每条指令的位从高位至低位排列:(1)子类型域:1,指令:Lmovr r,#imm,通用寄存器赋值,源操作数#imm

   为长立即数,双指令周期,目的地址为通用寄存器r;

(2)子类型域:2,指令:Lmovg g,#imm,专用寄存器赋值,源操作数为

   长立即数,双指令周期,目的地址为专用寄存器g;

(3)子类型域:3,指令:Movg g,r,专用寄存器赋值,源操作数为通用

   寄存器r,目的地址为专用寄存器g;

(4)子类型域:4,指令:Movr r,g,通用寄存器赋值,源操作数为专用

   寄存器g,目的地址为通用寄存器r;

(5)子类型域:5,指令:Imovr r,#imm,通用寄存器赋值,源操作数为

   短立即数,目的地址为通用寄存器r;

(6)子类型域:6,指令:Imovg g,#imm,专用寄存器赋值,源操作数为

   短立即数,目的地址为专用寄存器g;

(7)子类型域:7,指令:Movpc r,通用寄存器赋值,源操作数为程序

   计数器,目的地址为通用寄存器r。

29、如权利要求26所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的转移指令有2种格式,第一种格式子类型域有4位;条件域有5 位;目的地址寄存器有5位;第二种格式子类型域有2位,立即数地址域有12位; 转移指令如下,每条指令的位从高位至低位排列:(1)子类型域:0,条件码:00010,指令:Bc r,进位条件跳转;

(2)子类型域:0,条件码:00011,指令:Bnc r,无进位条件跳转;

(3)子类型域:0,条件码:00100,指令:Bz r,零条件跳转;

(4)子类型域:0,条件码:00101,指令:Bnz r,非零条件跳转;

(5)子类型域:0,条件码:01000,指令:Bv,溢出条件跳转;

(6)子类型域:0,条件码:01001,指令:bnv r,无溢出条件跳转;

(7)子类型域:0,条件码:10000,指令:Bl r,最低位1条件跳转;

(8)子类型域:0,条件码:10001,指令:Bnl r,最低位0条件跳转;

(9)子类型域:1,条件码:00000,指令:Jmpr r,无条件跳转;

(10)子类型域:2,条件码:00000,指令:Callr r,间接过程调用;

(11)子类型域:3,条件码:00000,指令:Ret,过程返回;

(12)子类型域:4-7,条件码:保留,指令:保留;

(13)子类型域:8,条件码:00000,指令:Call #imm,直接过程调用;

(14)子类型域:9-11,条件码:保留,指令:保留;

(15)子类型域:12,条件码:00000,指令:Jmp #imm,直接无条件跳转;

(16)子类型域:13-15,条件码:保留,指令:保留。

30、如权利要求26所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的算术逻辑运算指令有2种格式,第一种格式中指令类型域有4 位;目的/第一源操作寄存器有5位;第二源操作寄存器有5位;第二种格式中指令 类型域有4位;目的/第一源操作寄存器有5位;立即数为5位;算术逻辑指令如下, 每条指令的位从高位至低位排列:(1)子类型:0,指令:Mov rd,rs,功能:rd=rs

(2)子类型:1,指令:Add rd,rs,功能:Rd=rd+rs

(3)子类型:2,指令:Sub rd,rs,功能:Rd=rd-rs

(4)子类型:3,指令:Or rd,rs,功能:Rd=rd|rs,|表示逻辑或运算

(5)子类型:4,指令:And rd,rs,功能:Rd=rd&rs,&表示逻辑与运算

(6)子类型:5,指令:Xor rd,rs,功能:Rd=rd^rs,^表示逻辑异或运 算

(7)子类型:6,指令:Ishr rd,rs,功能:rd=rd>>rs,>>rs表示右移 rs位    (8)子类型:6,指令:Ishl rd,rs,功能:Rd=rd<

(10)子类型:8,保留

(11)子类型:9,指令:Iadd rd,#imm,功能:Rd=rd+#imm

(12)子类型:10,指令:Isub rd,#imm,功能:Rd=rd-#imm

(13)子类型:11,指令:Ior rd,#imm,功能:Rd=rd|#imm

(14)子类型:12,指令:Iand rd,#imm,功能:Rd=rd&#imm

(15)子类型:13,指令:Ixor rd,#imm,功能:Rd=rd^#imm

(16)子类型:14,指令:Ishr rd,#imm,功能:rd=rd>>#imm

(17)子类型:14,指令:Ishl rd,#imm,功能:Rd=rd<<#imm

(18)子类型:15,指令:Inot rd,#imm,功能:Rd=~#imm

31、如权利要求20所述的用于运动估计算法的分层可编程并行视频信号处理器, 其特征在于,所说的特殊寄存器阵列由32个16位寄存器组成各寄存器定义如下:(1)特殊寄存器:g0,循环次数寄存器,输出循环次数信号cnt给低层指 令单元;

(2)特殊寄存器:g1,低层程序入口地址寄存器,输出程序入口地址信号 entry给低层指令单元;

(3)特殊寄存器:g2,二维并行存储器水平起始地址寄存器,输出二维并 行存储器水平起始地址信号startx;

(4)特殊寄存器:g3,二维并行存储器垂直起始地址寄存器,输出二维并 行存储器垂直起始地址信号starty;

(5)特殊寄存器:g4,二维并行存储器地址增量寄存器,输出二维并行存 储器地址增量信号step_d2m;

(6)特殊寄存器:g5,8位一维并行存储器起始地址寄存器,输出8位一 维并行存储器起始地址信号start_d1m;

(7)特殊寄存器:g6,8位一维并行存储器地址增量寄存器,输出8位一 维并行存储器地址增量信号step_d1m;

(8)特殊寄存器:g7,9位一维并行存储器起始地址寄存器,输出9位一 维并行存储器起始地址信号start_dm9;

(9)特殊寄存器:g8,9位一维并行存储器地址增量寄存器,输出9位一 维并行存储器地址增量信号step_dm9;

(10)特殊寄存器:g9,运动矢量寄存器,输出运动矢量信号MV;高6位 为垂直运动矢量,低6位为水平运动矢量;

(11)特殊寄存器:g10-g15,保留;

(12)特殊寄存器:g16,低层指令单元状态寄存器,锁存低层指令单元输 出运行结束信号done;

(13)特殊寄存器:g17,并行运算单元结果寄存器0,锁存树累加器输出 宏块匹配误差信号sad0;

(14)特殊寄存器:g18,并行运算单元结果寄存器1,锁存树累加器输出 第一个块匹配误差信号sad1;

(15)特殊寄存器:g19,并行运算单元结果寄存器2,锁存树累加器输出 第二个块匹配误差信号sad2;

(16)特殊寄存器:g20,并行运算单元结果寄存器3,锁存树累加器输出 宏块最优运动矢量信号opMV0;

(17)特殊寄存器:g21,并行运算单元结果寄存器4,锁存树累加器输出 第一个块最优运动矢量信号opMV1;

(18)特殊寄存器:g22,并行运算单元结果寄存器5,锁存树累加器输出 第二个块最优运动矢量信号opMV2;

(19)特殊寄存器:g23,并行运算单元结果寄存器6,锁存树累加器输出 宏块最小匹配误差信号min0;

(20)特殊寄存器:g24,并行运算单元结果寄存器7,锁存树累加器输出 第一个块最小匹配误差信号min1;

(21)特殊寄存器:g25,并行运算单元结果寄存器8,锁存树累加器输出 第二个块最小匹配误差信号min2;

(22)特殊寄存器:g26-g31,保留;

说明书全文

技术领域

本发明属于视频图像编码领域,特别涉及分层可编程并行视频信号处理器设计。

背景技术

运动估计已被所有的视频压缩编码国际标准所采纳,用于消除帧间相关性。但 是运动估计算法没有被这些国际标准所规定,是开放的部分,不同的编码系统可以 在满足码流语法结构的前提下,采用各自不同的运动估计算法。块匹配全搜索算法 是运动估计算法中搜索精度最高的算法,但是它的缺点是运算量巨大,使得传统的 通用处理器无法满足要求。为了解决运算量的问题,已有的工作从两方面入手,一 是研究块匹配快速搜索算法,降低搜索点的个数;二是研究块匹配集成电路并行结 构,对全搜索算法或快速搜索算法加以高效实现。
块匹配快速搜索算法研究的典型代表文献有:T.Koga,K.Iinuma,A.Hirano, Y.Lijima,and T.Ishiguro,″Motion compensated interframe coding for video conferencing,″Proc.Nat.Telecommunications Conf.81,(国家通信会议论文 集)New Orleans,LA,1981年11月,G5.3.1-G5.3.5页。此算法称为三步法, 在水平和垂直搜索范围为[-7,7]的搜索窗内将运动矢量的搜索过程分为3步,每步 搜索8个点,加上中心点,一共是25个搜索点。这种算法是全搜索算法运算量(225 个搜索点)的11.1%。
块匹配集成电路并行结构可以分为两种:基于阵列处理器的结构和基于树状加 法器的结构。基于阵列处理器的结构的典型代表文献有:T.Komarek and P.Pirsch, “Array architectures for block matching algorithms,”(块匹配算法的阵列结 构)IEEE Trans.On Circuits and Systems,(IEEE电路与系统期刊)36卷,10 期,1301-1308页,1989年10月。图1给出了在块大小为3情况下,阵列处理器 结构的原理图。它包括9个绝对值和加法单元(AD),3个加法单元(A),一个最小值 单元(M)。这种结构的优点是需要的存储器带宽小,但是它的扩展性差,效率低。
基于树状加法器结构的典型代表文献有:Y.S Jehng;L. G.Chen;T.D.Chiueh, “An efficient and simple VLSI tree architecture for motion estimation algorithms”,(一种简单有效的用于运动估计算法的大规模集成电路树结构)IEEE Transactions on Signal Processing(IEEE信号处理期刊)41卷2期,889-900 页,1993年2月。图2给出了树状加法器的结构图。图中圆圈表示加法器,矩形表 示寄存器,加法器采用树状结构相连。这种结构采用了多级流水线段的树结构,由 于树结构的运算效率随着流水线段数的增加而降低,因此这种结构由于引入了多级 流水线段使得树结构的运算性能不能充分发挥。
为了提高匹配精度或者说是运动矢量搜索的准确性,运动估计算法采用了大搜 索范围,不同的预测模式以及多种匹配块的大小和不同的搜索策略。多个因素的组 合决定了运动估计算法的多样性。采用可编程并行结构能比较好地同时实现多样性 和运算量大的要求。可编程并行结构的典型代表文献有:H.D.Lin,A.Anesko, B.Petryna,“A 14-Gops Programmable Motion Estimator for H.26x Video Coding,”(一种14GOPS用于H.26x的可编程运动估计结构)IEEE JSSC(IEEE固体 电路杂志),31卷,11期,1996年11月。这种结构是基于阵列处理器的可编程结构, 它采用了64个阵列处理器完成块匹配的运算,硬件结构规模庞大,同时阵列处理器 的数据流必须针对一些特定的算法,使得灵活性仍然受到限制。

发明内容

本发明的目的是为克服已有技术的不足之处,提出了一种用于运动估计算法的 分层可编程并行视频信号处理器结构(Programmable vidoe signal processor, PVSP),通过本发明的可编程方法,在一个结构上可同时实现多种块匹配算法,并可 降低视频编码系统的硬件开销,还能支持视频编码的其它算法。  
本发明提出的一种用于运动估计算法的可编程并行视频信号处理器结构,其特 征在于,包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成 单元,高层指令单元,以及外部存储器接口单元六个部分;其中,所说的高层指令 单元与低层指令单元通过控制信号线相连;所说的低层指令单元与并行运算单元通 过数据和控制信号线相连;所说的并行运算单元与数据寻径单元通过3路数据总线 相连;所说的数据寻径单元与存储及地址生成单元通过6路数据总线相连;所说的 高层指令单元的起始命令信号和运行命令信号通过数据寻径单元与存储及地址生成 单元相连接;所说的数据寻径单元与外部存储器接口单元通过数据总线相连;所说 的高层指令单元和外部存储器接口单元通过控制信号相连;所说的低层指令单元包 括程序地址寄存器,低层指令存储器和低层指令译码模块,选择器,循环次数寄存 器,减法器;其中,高层指令单元输出的程序入口地址(entry)信号线与所说的程序 地址寄存器的(entry)端口相连,高层指令单元输出设置程序入口地址(set_entry) 信号线与该程序地址寄存器的使能端口相连;该程序地址寄存器与低层指令存储器 相连;该低层指令存储器与低层指令译码模块相连;高层指令单元输出的循环次数 (cnt)信号线与该选择器的上输入端口相连,减法器输出与选择器下输入端相连;高 层指令单元输出设置循环次数(set_cnt)信号线与该选择器的选择端相连;该选择器 输出端与循环次数寄存器相连;该循环次数寄存器输出端与减法器上输入端相连; 该循环次数寄存器1信号线和减法器下输入端相连;该减法器的进位输出端和运行 结束(done)信号线相连;所说的低层指令单元的的运行由低层指令集中的低层指令 所控制。
本发明的工作过程如下:高层指令单元发控制信号给低层指令单元,低层指令 单元开始执行低层程序,由低层指令译码单元发出控制信号给并行运算单元,数据 寻径单元,存储及地址生成单元,数据寻径单元从存储及地址生成单元输出的3路 信号中选择两路,输出到并行运算单元中,并行运算单元的运算结果通过数据寻径 单元输出到存储及地址生成单元中。高层指令单元通过数据总线从并行运算单元读 取运算结果。高层指令单元通过控制总线从低层指令单元读取执行状态。高层指令 单元发出控制信号给外部存储器接口单元,外部存储器接口单元从外部存储器读入 数据输出到数据寻径电路。数据寻径电路将外部存储器接口单元输出的数据连接到 存储及地址生成单元。
本发明的主要特点:
1)并行结构采用了低延迟特性规整的树累加结构,包括多输入树状加法器和累 加器,硬件复杂度大大小于已有的基于阵列处理器的运动估计可编程结构,由于 采用了低延迟特性规整的树状加法器结构,使得多输入数的加法能高速完成,在树 状加法器中无需流水线段寄存器,使得树状加法器的效率充分发挥,同时这种树累 加器结构能支持16×16,16×8以及8×8多种块匹配运算,具有较大的灵活性。
2)二维并行存储器结构采用了字节对准和循环寻址的二维并行存储器。输入为 水平和垂直地址,输出一行16个数据。
3)可编程结构通过高层指令单元和低层指令单元实现,高层指令单元控制完成 运动估计算法中转移分支较多,需要进行判断的部分,高层指令单元包括一个16位 精简指令处理器(RISC)。低层程序控制完成循环运算为主的块匹配运算。低层指令 单元和高层指令单元均采用16位指令格式,但是采用不同的指令编码方法。
4)PVSP能够同时支持多种快速运动估计算法,同时PVSP内部的可编程并行运 算单元能够支持半像素运动搜索和运动补偿算法,进一步提高了灵活性,无需另外 设计专门的硬件来支持这些算法,这使得将视频编码系统集成在单片成为可能。

附图说明

图1为已有的基于阵列处理器的运动估计结构示意图。
图2为已有的基于树状加法器的运动估计结构示意图。
图3为本发明的分层可编程并行视频信号处理器总体结构示意图。
图4为本发明的低层指令单元结构示意图。
图5为本发明的树累加器实施例结构示意图。
图6为本发明的8输入树状加法器实施例结构示意图。
图7为本发明的最小值部件MIN0实施例结构示意图。
图8为本发明的最小值部件MIN1实施例结构示意图。
图9为本发明的最小值部件MIN2实施例结构示意图。
图10为本发明的二维并行存储器实施例结构示意图。
图11为本发明的二维并行存储器的地址映射模块实施例结构示意图。
图12为本发明的二维并行存储器的地址生成模块ADG0实施例结构示意图。
图13为本发明的8位一维并行存储器的地址生成模块ADG1实施例结构示意图。
图14为本发明的9位一维并行存储器地址的生成模块ADG2实施例结构示意图。
图15为本发明的16位精简指令处理器实施例结构示意图。    
图16为本发明的取指部件实施例结构示意图。
图17为本发明的指令执行部件实施例结构示意图。

具体实施方式

本发明设计的一种用于运动估计算法的分层可编程并行视频信号处理器(PVSP) 结构实施例,结合各附图详细说明如下:
本发明PVSP总体结构如图3所示。包括六个部分:低层指令单元,并行运算 单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接 口单元。各部分连接关系如下。高层指令单元与低层指令单元通过控制信号线相连; 低层指令单元与并行运算单元通过数据和控制信号线相连;并行运算单元与数据寻 径单元通过3路数据总线相连;数据寻径单元与存储及地址生成单元通过6路数据 总线相连;高层指令单元的起始命令信号和运行命令信号通过数据寻径单元与存储 及地址生成单元相连接;数据寻径单元与外部存储器接口单元通过数据总线相连; 高层指令单元和外部存储器接口单元通过控制信号相连。
上述各单元实施例的具体结构及其工作过程结合附图分别说明如下:
(一)低层指令单元
(1)低层指令单元结构
本发明的低层指令单元的结构实施例如图4所示。包括程序地址寄存器,低层 指令存储器和低层指令译码模块,选择器,循环次数寄存器,减法器;其连接关系 如下:高层指令单元输出的程序入口地址信号entry与程序地址寄存器相连,高层 指令单元输出设置程序入口地址信号set_entry与程序地址寄存器的使能端相连; 程序地址寄存器与低层指令存储器相连;低层指令存储器与低层指令译码模块相连; 高层指令单元输出的循环次数信号cnt与选择器的上输入端相连,减法器输出与选 择器下输入端相连。高层指令单元输出设置循环次数信号set_cnt与选择器的选择 端相连。选择器输出端与循环次数寄存器相连。循环次数寄存器输出端与减法器上 输入端相连。信号1和减法器下输入端相连。减法器的进位输出端和运行结束信号 done相连。
所说的低层译码模块由与或逻辑电路组成。低层译码模块输出端与起始命令信 号和运行命令信号相连。
低层指令单元的的运行由低层指令集中的低层指令所控制。
(2)低层指令单元工作过程
低层指令单元的工作过程如下:当高层指令单元发出设置循环次数寄存器的命 令信号时,选择器选择外部输入循环次数信号cnt输出到循环次数寄存器锁存。然 后寄存器输出到减法器作减一运算。当减法器输出为0时,发出运行结束信号done。 当高层指令单元发出设置程序地址寄存器的命令信号时,外部输入程序入口地址信 号entry输出到程序地址寄存器锁存。
(3)低层指令集
(a)指令单元编码格式
低层指令单元的低层指令的编码格式如下:低层指令长度为16位。
            表1给出了低层指令各位的定义。类型码域4位。源操作数1 和源操作数2各占3位,目的操作数占2位。移位立即数占4位。
            表1低层指令各位的定义   15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0   类型码域   源操作数1   源操作数2   目的操作数   移位立即数
(b)低层指令
低层指令集包括六种类型的指令。表2给出了低层指令的格式,操作类型及其 说明。PNOP为空操作。PADD指令完成带移位的并行加法运算,PSUB指令完成并行 减法运算,PADDS完成饱和加法运算,PMOV完成数据的并行搬移运算,PSAD完成 并行减法绝对值运算。
                                   表2低层指令集,  #imm表示立即数 类型码域 指令名称 格式 操作类型 说明  0  PNOP  PNOP 空操作 空操作  1  PADD  PADD dst,src1,src2,   #imm 并行加法 Dst=(src1+src2)>> #imm  2  PSUB  PSUB dst,src1,Src2 并行减法 Dst=src1-src2  3  PADDS  PADDS dst,src1,Src2 并行饱和加法 Dst=clip(src1+src2)  PMOV  PMOV dst,src 并行数据搬移 Dst=src  5  PSAD  PSAD  src1,src2 并行减法绝对值 Abs(src1-src2)  6-15  保留  保留 保留 保留
(二)  并行运算单元
(1)并行运算单元结构
本发明的并行运算单元实施例由并行算术逻辑运算部件和树累加器组成,如图3 所示。该并行算术运算逻辑模块的输出和树累加器的输入相连。其工作过程为:由 低层指令译码单元发出控制信号给并行运算单元,数据寻径单元输出2路数据到并 行算术运算模块中,并行算术运算逻辑模块的运算结果输出给数据寻径单元。高层 指令单元通过数据总线从并行运算单元读取运算结果。运算结果包括:宏块匹配误 差信号sad0,第一个块匹配误差信号sad1,第二个块匹配误差信号sad2,宏块最优 运动矢量信号opMV0,第一个块最优运动矢量信号opMV1,第二个块最优运动矢量信 号opMV2,宏块最小匹配误差信号min0,第一个块最小匹配误差信号min1,第二个 块最小匹配误差信号min2。
(2)并行算术逻辑运算模块
并行算术逻辑运算模块的实施例包含N个9位处理器,9位处理器组织成单指令 多数据流结构。
(3)树累加器模块
树累加器模块的实施例结构如图5所示。包含两个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可以输出一个16×16宏块匹配误差结果。12位累加器ACC1 和ACC2对左边8输入树状加法器和右边8输入树状加法器输出的11位数据进行累 加。在8个周期内,ACC1和ACC2可以输出两个8×8块的块匹配误差结果。
(a)8输入树状加法器
上述8输入树状加法器的实施例结构如图6所示,包括4个8位加法器 (ADDER8),2个9位加法器(ADDER9)以及一个10位加法器(ADDER10)。其连接关系 为:左边2个8位加法器输出和左边9位加法器相连,右边2个加法器和右边9位 加法器相连,该两个9位加法器输出和10位加法器的输入相连。
(b)最小值部件MIN0
上述最小值部件MIN0的实施例结构如图7所示,包括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锁存。
(c)最小值部件MIN1
上述最小值部件MIN1的实施例结构如图8所示,包括16位减法器,与门,16 位寄存器和12位寄存器。其连接关系为:16位减法器左输入与16位寄存器输出相 连,16位减法器右输入与外部输入宏块匹配误差信号sad1相连,16位减法器的进 位信号和与门的上输入端相连;16位寄存器输出与宏块最小匹配误差值min1相连; 与门的上输入端与16位减法器的进位相连,与门下输入端与外部输入运行结束信号 done相连;12位寄存器输入与外部运动矢量信号MV相连,12位寄存器与16位寄存 器的使能信号和与门的输出相连。其工作过程为:16位减法器输出进位给与门,与 门对减法器输出和运行结束信号done进行与运算后,输出使能信号给16位和12位 寄存器。16位寄存器保存第一个块最小匹配误差信号min1,12位寄存器保存水平 和垂直运动矢量值。如果使能信号有效,16位寄存器将第一个块匹配误差信号sad1 锁存,12位寄存器将运动矢量信号MV锁存。
(d)最小值部件MIN2
上述最小值部件MIN2的实施例结构如图9所示,包括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锁存。
(三)数据寻径单元
本发明的数据寻径单元的实施例由选择器组成。其工作过程为:由低层指令译 码单元发出控制信号给数据寻径单元,数据寻径单元从存储及地址生成单元输出的3 路信号中选择两路,输出到并行算术运算模块中,并行算术运算模块的运算结果通 过数据寻径单元输出到存储及地址生成单元中。
(四)存储及地址生成单元
本发明的存储及地址生成单元结构3如图所示,由二维并行存储器和二维并行 存储器的地址生成模块ADG0,8位一维并行存储器和8位一维并行存储器的地址生 成模块ADG1,9位一维并行存储器和9位一维并行存储器地址的生成模块ADG2构成。 其内部连接关系为,二维并行存储器与二维并行存储器的地址生成模块ADG0通过地 址总线相连,8位一维并行存储器与8位一维并行存储器的地址生成模块ADG1通过 地址总线相连,9位一维并行存储器与9位一维并行存储器地址的生成模块ADG2通 过地址总线相连。
(1)二维并行存储器
上述二维并行存储器的实施例结构如图10所示,包括地址映射模块,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路数据存储器输出端与循环移位器相连。
(a)地址映射模块
所说的地址映射模块内部连线关系如图11所示,图中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位相连。
(b)优先级编码器
所说的优先级编码器的实施例由与或逻辑电路组成。该优先级编码器逻辑如下: 其中J=min{j|tj=1,j=0,1…N-1}。 ti为优先级编码器的N个输入,Si为优先级编码器的N个输出。
循环移位器将第b0个数据存储器的数据左移到最高位。
(2)8位一维并行存储器
上述8位一维并行存储器的实施例由N个8位存储器模块组成。其连接关系为: 外部输入8位一维并行存储器的地址信号addr_d1m和N个8位存储器的地址输入端 相连,N个8位存储器输出8N位数据和外部相连。
(3)9位一维并行存储器
9位一维并行存储器的实施例由N个9位存储器模块组成。其连接关系为:外部 输入9位一维并行存储器的地址信号addr_dm9和N个9位存储器的地址输入端相连, N个9位存储器输出9N位数据和外部相连。
(4)二维并行存储器的地址生成模块
上述二维并行存储器的地址生成模块ADG0的实施例结构由图12所示,由加法 器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)。
(5)上述8位一维并行存储器的地址生成模块
上述8位一维并行存储器的地址生成模块ADG1的实施例结构如图13所示,由 两个选择器、一个加法器和一个寄存器所组成,其连接关系为:选择器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和寄存器保 存的值输出到加法器中,加法器的输出结果交给寄存器锁存。
(6)9位一维并行存储器地址的生成模块
上述9位一维并行存储器地址的生成模块ADG2实施例结构如图14所示,由两 个选择器、一个加法器和一个寄存器所组成,其连接关系为:选择器0左输入端与 寄存器0输出相连,选择器0右输入端和9位一维并行存储器起始地址信号 start_dm9相连。选择器1左输入端和9位一维并行存储器地址增量信号step_dm9 相连,选择器1右输入端和信号0相连;选择器0和选择器1的输出分别与加法器0 的两个输入端相连;寄存器0通过9位一维并行存储器的地址信号addr_dm9和外部 相连。其工作过程为:低层指令单元发送起始命令信号时,选择器0和选择器1选 择右路信号,将9位一维并行存储器起始地址信号start_dm9和0输出到加法器, 然后加法器的输出结果锁存到寄存器中。低层指令单元发送运行命令信号时,选择 器0和1选择左路信号,将9位一维并行存储器地址增量信号step_dm9和寄存器保 存的值输出到加法器中,加法器的输出结果交给寄存器锁存。
(五)高层指令单元
(1)高层指令单元结构
本发明的高层指令单元的实施例结构由一个16位精简指令集处理器和32个特 殊寄存器阵列所组成,如图3所示。其连接关系为:16位精简指令处理器和外部通 过设置程序入口地址信号set_entry及设置循环次数寄存器信号set_cnt相连,16 位精简指令处理器和特殊寄存器阵列通过控制信号相连。高层指令单元由高层指令 集中的指令控制。
(2)16位精简指令集处理器
上述16位精简指令集处理器结构如图15所示,包括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 为输出信号。
(a)取指部件
上述的取指部件的实施例结构如图16所示,包括加法器,当前地址寄存器,选 择器,高层指令存储器,指令寄存器。其连接关系为:加法器上输入端与信号1相 连,下输入端与当前地址寄存器的输出相连;加法器输出与当前地址寄存器的输入 相连;选择器的上输入端与通过转移地址ba相连,选择器的下输入端与当前地址寄 存器的输出相连,选择器的选择端与转移控制信号next相连,选择器的输出端与高 层指令存储器的地址输入端相连;高层指令存储器的输出与指令寄存器输入端相连。 指令寄存器的输出端通过指令信号d_ir与外部指令译码部件相连。其工作过程为: 加法器将地址选择器的输出加1后输出到当前地址寄存器寄存。当前地址寄存器和 外部输入转移地址信号ba输出到选择器,当外部输入信号next为高时,选择器选 择转移地址信号输出,当next为低时,选择器选择当前地址寄存器输出。选择器的 输出作为高层指令存储器的地址。高层指令存储器输出这一地址对应的指令,指令 锁存到指令寄存器中。指令寄存器输出指令信号d_ir。
(b)指令译码部件
上述指令译码部件实施例由与或逻辑电路组成。如图15所示,译码部件与外部 部件的连接关系为:指令译码部件和取指部件之间通过转移地址ba,指令信号d_ir, 转移控制信号next信号相连。指令译码部件和指令执行部件之间通过操作码d_op, 执行控制信号exec,第一源操作数d_src1,第二源操作数d_src2以及状态信号 eflags相连。指令译码部件和寄存器阵列通过第一源操作数地址d_a1,第二源操作 数地址d_a2,以及寄存器阵列输出信号d_r1和d_r2相连。工作过程如下。取指部件 输出指令信号d_ir给指令译码部件。指令译码部件输出转移控制信号next和转移 地址信号ba信号给取指部件。指令译码部件输出第一源操作数地址d_a1,第二源操 作数地址d_a2给寄存器阵列。指令译码部件输出d_a1经过寄存器输出e_a。指令译 码部件输出操作码d_op,执行控制信号exec,第一源操作数d_srcl,第二源操作数 d_src2给指令执行单元。指令译码部件输入双向数据信号g_d和指令执行部件的输 出状态信号e_flags以及寄存器阵列输出信号d_r1和d_r2。
(c)指令执行部件
上述的指令执行部件的实施例结构如图17所示,包括寄存器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[0]相连;寄存器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[0]输入到状态寄存器锁存。状态寄存器输出e_flags信号。表3给出 了不同的操作类型信号e_op下,算术逻辑单元的功能。
表3不同的操作类型信号e_op下,算术逻辑单元ALU的功能。 操作类型 算术逻辑单元的功能  0 赋值,e_r=e_src2  1 加法,e_r=e_src1+e_src2  2 减法,e_r=e_src1-e_src2  3 或,e_r=e_src1|e_src2  4 与,e_r=e_src1&e_src2  5 异或,e_r=e_src1^e_src2  6 移位,当e_src2[4]=1,e_r=e_src1>>e_src2; 当e_src2[4]=0,e_r=e_src1<(d)寄存器阵列
上述寄存器阵列的实施例由32个通用寄存器组成,参见图15,寄存器阵列与外 部的连接关系为:寄存器阵列和指令执行部件之间通过写寄存器信号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 指定的寄存器中。
(3)高层指令集
上述16位精简指令处理器的高层指令集的指令有4种类型:空指令,赋值指令, 转移指令和算术逻辑运算指令。指令的15和14位表明指令类型。这4种类型分别 编码为00,01,10,11。
(a)空指令
                    表4给出空指令各位的定义。16位均为0。
                表4空指令各位的定义 位 15  14  13  12 11 10  9  8  7  6  5  4  3  2  1  0 值 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
(b)赋值指令
               表5给出赋值指令的格式。第一种赋值指令的子类型域有4 位。目的地址寄存器有5位。源地址寄存器有5位。第二种赋值指令的子类型域有4 位。目的地址寄存器有5位。立即数域为5位。第三种赋值指令的子类型域有4位。 目的地址寄存器有5位。最低5位为0。
                表6给出了7条赋值指令,分别完成对全局寄存器或通用 寄存器赋值操作。
              表5赋值指令各位的定义 位 15  14  13  12 11 10  9  8  7  6  5  4  3  2  1  0 一  0  1 子类型域 目的地址寄存器 源地址寄存器  二 0  1 子类型域 目的地址寄存器 立即数域  三 0  1 子类型域 目的地址寄存器 0
                    表6赋值指令格式和功能 子类 指令 指令功能 1  Lmovr r,#imm 通用寄存器赋值,源操作数#imm为长立即数, 双指令周期,目的地址为通用寄存器r。 2  Lmovg g,#imm 专用寄存器赋值,源操作数为长立即数, 双指令周期,目的地址为专用寄存器g。 3  Movg g,r 专用寄存器赋值,源操作数为通用寄存器r, 目的地址为专用寄存器g。 4  Movr r,g 通用寄存器赋值,源操作数为专用寄存器g, 目的地址为通用寄存器r。 5  Imovr r,#imm 通用寄存器赋值,源操作数为短立即数, 目的地址为通用寄存器r。 6  Imovg g,#imm 专用寄存器赋值,源操作数为短立即数, 目的地址为专用寄存器g。 7  Movpc r 通用寄存器赋值,源操作数为程序计数器, 目的地址为通用寄存器r。
(c)转移指令
表7给出了转移指令各位的定义。第一种格式子类型域有4位。条件域有5位。 目的地址寄存器有5位。第二种格式子类型域有2位,立即数地址域有12位。
表8给出了转移指令的格式和功能。
                          表7转移指令各位的定义 位 15  14  13  12  11  10  9  8  7  6  5  4  3  2  1  0 一  1  0 子类型域 条件域 目的地址寄存器 二 1  0 子类型域 立即数地址域
              表8转移指令格式和功能 子类 条件码 指令 指令功能 0  00010  Bc r 进位条件跳转 0  00011  Bnc r 无进位条件跳转 0  00100  Bz r 零条件跳转 0  00101  Bnz r 非零条件跳转 0  01000  Bv 溢出条件跳转 0  01001  bnv r 无溢出条件跳转 0  10000  Bl r 最低位1条件跳转 0  10001  Bnl r 最低位0条件跳转 1  00000  Jmpr r 无条件跳转 2  00000  Callr r 间接过程调用 3  00000  Ret 过程返回 4-7  保留  保留 保留 8  00000  Call #imm 直接过程调用 9-11  保留  保留 保留 12  00000  Jmp #imm 直接无条件跳转 13-15  保留  保留 保留
(d)算术逻辑运算指令
表9给出了算术逻辑运算指令的两种指令格式。第一种格式中指令类型域有4 位。目的/第一源操作寄存器有5位。第二源操作寄存器有5位。第二种格式中指令 类型域有4位。目的/第一源操作寄存器有5位。立即数为5位。
表10给出列算术逻辑指令的格式和功能。其中左移指令和右移指令占用同一个 子类型。当第4位为1时(最低位为第0位,最高位为第15位),为右移指令shr; 否则为左移指令shl。
                          表9算术逻辑运算指令各位的定义 位 15  14  13  12  11  10  9  8  7  6  5  4  3  2  1  0 一  1  1 子类型域 目的/第一源寄存器 第二个源寄存器 二  1  9 子类型域 目的/第一源寄存器   5位立即数
        表10算术逻辑指令 子类型 指令 指令功能  0  Mov rd,rs  rd=rs  1  Add rd,rs  Rd=rd+rs  2  Sub rd,rs  Rd=rd-rs  3  Or rd,rs  Rd=rd|rs   4   And rd,rs   Rd=rd&rs   5   Xor rd,rs   Rd=rd^rs   6   Ishr rd,rs   rd=rd>>rs   6   Ishl rd,rs   Rd=rd<>#imm   14   Ishl rd,#imm   Rd=rd<<#imm   15   Inot rd,#imm   Rd=~#imm
(4)特殊寄存器阵列
本发明的高层指令单元的特殊寄存器阵列实施例由32个16位寄存器组成。表 11给出了特殊寄存器及其功能。其中g0-g11由16位精简指令处理器写。g16-g25 由16位精简指令处理器之外的相应模块写,可以被16位精简指令处理器读。g12-g15 和g26-g31保留。保留特殊寄存器阵列输出循环次数信号(cnt),程序入口地址信 号(entry),二维并行存储器水平起始地址信号(start_x),二维并行存储器垂直 起始地址信号(starty),二维并行存储器地址增量信号(step_d2m),8位一维并行 存储器起始地址信号(start_d1m),8位一维并行存储器地址增量信号(step_d1m), 9位一维并行存储器起始地址信号(start_dm9),运动矢量信号(MV)。输入信号包 括:运行结束信号(done),树累加器输出信号(宏块匹配误差信号sad0,第一个块 匹配误差信号sad1,第二个块匹配误差信号sad2,宏块最优运动矢量信号opMV0,第 一个块最优运动矢量信号opMV1,第二个块最优运动矢量信号opMV2,宏块最小匹配 误差信号min0,第一个块最小匹配误差信号min1,第二个块最小匹配误差信号 min2)。
                      表11特殊寄存器及其功能 特殊 寄存器 功能 g0 循环次数寄存器,输出循环次数信号(cnt)给低层指令单元 g1 低层程序入口地址寄存器,输出程序入口地址信号(entry) 给低层指令单元 g2 二维并行存储器水平起始地址寄存器,输出二维并行存储器水平 起始地址信号startx g3 二维并行存储器垂直起始地址寄存器,输出二维并行存储器垂直 起始地址信号starty g4 二维并行存储器地址增量寄存器,输出二维并行存储器地址 增量信号step_d2m g5 8位一维并行存储器起始地址寄存器,输出8位一维并行存储器 起始地址信号start_d1m  g6  8位一维并行存储器地址增量寄存器,输出8位一维并行存储器 地址增量信号step_d1m  g7  9位一维并行存储器起始地址寄存器,输出9位一维并行存储器 起始地址信号start_dm9  g8  9位一维并行存储器地址增量寄存器,输出9位一维并行存储器 地址增量信号step_dm9  g9 运动矢量寄存器,输出运动矢量信号MV。高6位为垂直运动矢量, 低6位为水平运动矢量。  g10-g15 保留  g16 低层指令单元状态寄存器,锁存低层指令单元输出运行结束(done  g17 并行运算单元结果寄存器0,锁存树累加器输出宏块匹配误差信号 sad0  g18 并行运算单元结果寄存器1,锁存树累加器输出第一个块匹配 误差信号sad1  g19 并行运算单元结果寄存器2,锁存树累加器输出第二个块匹配 误差信号sad2  g20 并行运算单元结果寄存器3,锁存树累加器输出宏块最优运动 矢量信号opMV0  g21 并行运算单元结果寄存器4,锁存树累加器输出第一个块最优 运动矢量信号opMV1  g22 并行运算单元结果寄存器5,锁存树累加器输出第二个块最优 运动矢量信号opMV2  g23 并行运算单元结果寄存器6,锁存树累加器输出宏块最小匹配 误差信号min0  g24 并行运算单元结果寄存器7,锁存树累加器输出第一个块最小 匹配误差信号min1  g25 并行运算单元结果寄存器8,锁存树累加器输出第二个块最小 匹配误差信号min2  g26-g31 保留
(六)外部存储器接口单元
本发明的外部存储器接口单元(图3)。
连接关系如下。高层指令单元和外部存储器接口单元通过控制信号相连。数据 寻径单元和外部存储器接口单元通过数据总线相连。
工作过程如下。高层指令单元发出控制信号给外部存储器接口单元,外部存储 器接口单元从外部存储器读入数据输出到数据寻径电路。
本实施例N取16。具体来说。二维并行存储器包括地址映射模块,16路比较器, 优先级编码器,16路选择器,16个数据存储器以及循环移位器。8位一维并行存储 器由16个8位存储器模块组成。9位一维并行存储器由16个9位存储器模块组成。 并行算术逻辑运算模块包含16个9位处理器,9位处理器组织成单指令多数据流结 构。
本实施例结构用Verilog HDL加以实现,并用Verilog XL仿真工具完成了功 能验证,然后用Synopsys的Design compiler综合工具进行综合,采用0.25um 的工艺库下,总门数包括28K逻辑门和40kb的片内静态存储器(SRAM)。在PVSP 上实现了多种块匹配算法,包括基于螺旋形扫描的全搜索算法,三步法,最临近搜 索算法等,以及运动补偿,半像素搜索算法。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用