首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于运动估计算法的分层可编程并行视频信号处理器结构

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

阅读:219发布:2022-01-25

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

1、一种用于运动估计算法的分层可编程并行视频信号处理器结构,其特征在 于,包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元, 高层指令单元,以及外部存储器接口单元六个部分;其中,所说的高层指令单元与 低层指令单元通过控制信号线相连;所说的低层指令单元与并行运算单元通过数据 和控制信号线相连;所说的并行运算单元与数据寻径单元通过3路数据总线相连; 所说的数据寻径单元与存储及地址生成单元通过6路数据总线相连;所说的高层指 令单元的起始命令信号和运行命令信号通过数据寻径单元与存储及地址生成单元相 连接;所说的数据寻径单元与外部存储器接口单元通过数据总线相连;所说的高层 指令单元和外部存储器接口单元通过控制信号相连。
2、如权利要求1所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的低层指令单元包括程序地址寄存器,低层指令存储器和低层指令译码模, 选择器,循环次数寄存器,减法器:其中,高层指令单元输出的程序入口地址信号 entry与所说的程序地址寄存器相连,高层指令单元输出设置程序入口地址信号 set_entry与该程序地址寄存器的使能端相连;该程序地址寄存器与低层指令存储 器相连;该低层指令存储器与低层指令译码模块相连;高层指令单元输出的循环次 数信号cnt与该选择器的上输入端相连,该减法器输出与选择器下输入端相连;高 层指令单元输出设置循环次数信号set_cnt与该选择器的选择端相连;该选择器输 出端与循环次数寄存器相连;该循环次数寄存器输出端与减法器上输入端相连;该 循环次数寄存器信号1和减法器下输入端相连;该减法器的进位输出端和运行结束 信号done相连;所说的低层指令单元的的运行由低层指令集中的低层指令所控制。
3、如权利要求2所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的低层指令集低层指令长度为16位,从高位至低位排列,类型码域4位,源 操作数1和源操作数2各占3位,目的操作数占2位;移位立即数占4位;#imm表 示立即数:
(1)类型码域:0,指令:PNOP,PNOP,空操作,空操作;
(2)类型码域:1,指令:PADD,PADD dst,sro1,src2,#imm,并行加 法,Dst=(sro1+src2)>>#imm;
(3)类型码域:2,指令:PSUB,PSUB dst,src1,src2,并行减法, Dst=src1-src2;
(4)类型码域:3,指令:PADDS,PADDS dst,src1,src2,并行饱和加法, Dst=clip(src+src2);
(5)类型码域:4,指令:PMOV,PMOV dst,src,并行数据搬移,Dst=src;
(6)类型码域:5,指令:PSAD,PSAD src1,src2,并行减法绝对值, Abs(src1-src2);
类型码域:6-15,保留。
4、如权利要求1所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的并行运算单元由并行算术逻辑运算部件和树累加器组成,该并行算术运算逻 辑模块的输出端和树累加器的输入端相连。
5、如权利要求4所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的并行算术逻辑运算模块包括N个9位处理器,该9位处理器组成单指令多数 据流结构。
6、如权利要求4所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的树累加器模块包括包含两个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相连。
7、如权利要求6所述的所说的8输入树状加法器包括4个8位加法器,2个 9位加法器以及一个10位加法器:其中,第一、二个8位加法器输出和第一个9位 加法器相连,第三、四个加法器和第二个9位加法器相连,该两个9位加法器输出 和所说的10位加法器的输入相连。
8、如权利要求6所述的所说的最小值部件MIN0包括16位减法器,与,16 位寄存器和12位寄存器;其连接关系为:16位减法器左输入与16位寄存器输出相 连,16位减法器右输入与外部输入宏块匹配误差信号sad0相连,16位减法器的进 位信号和与门的上输入端相连;外部输入宏块匹配误差信号sad0与16位寄存器输 入相连,16位寄存器输出与宏块最小匹配误差值min0相连;与门的上输入端与16 位减法器的进位相连,与门下输入端与外部输入运行结束信号done相连;12位寄 存器输入与外部运动矢量信号MV相连,12位寄存器与16位寄存器的使能信号和与 门的输出相连。
9、如权利要求6所述的所说的最小值部件MIN1包括16位减法器,与门,16 位寄存器和12位寄存器:其连接关系为:16位减法器左输入与16位寄存器输出相 连,16位减法器右输入与外部输入宏块匹配误差信号sad1相连,16位减法器的进 位信号和与门的上输入端相连;16位寄存器输出与宏块最小匹配误差值min1相连; 与门下输入端与外部输入运行结束信号done相连;12位寄存器输入与外部运动矢 量信号MV相连,12位寄存器与16位寄存器的使能信号和与门的输出相连。
10、如权利要求6所述的所说的最小值部件MIN2包括16位减法器,与门,16 位寄存器和12位寄存器。其连接关系为:16位减法器左输入与16位寄存器输出相 连,16位减法器右输入与外部输入宏块匹配误差信号sad2相连,16位减法器的进 位信号和与门的上输入端相连;外部输入宏块匹配误差信号sad1与16位寄存器输 入相连,16位寄存器输出与宏块最小匹配误差值min2相连;与门的上输入端与16 位减法器的进位相连,与门下输入端与外部输入运行结束信号done相连;12位寄 存器输入与外部运动矢量信号MV相连,12位寄存器与16位寄存器的使能信号和与 门的输出相连。
11、如权利要求1所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的存储及地址生成单元由二维并行存储器及与其通过地址总线相连的二维并行 存储器的地址生成模块,8位一维并行存储器及与其通过地址总线相连的8位一维 并行存储器的地址生成模块,9位一维并行存储器及与其通过地址总线相连的9位 一维并行存储器地址的生成模块构成。
12、如权利要求11所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的二维并行存储器包括地址映射模块,N路比较器,优先级编码器,N路二选 一选择器,N个数据存储器,以及循环移位器,其中,所说的地址映射模块输出端 分别与N路比较器的输入端相连;该N路比较器输出端与优先级编码器的输入相连; 该优先级编码器的输出分别与N路选择器的选择信号端S0、S1、…SN-1相连;该N 路选择器的数据端与地址映射模块相连;N路选择器的输出端分别与N个数据存储 器相连;该N路数据存储器输出端均与循环移位器相连。
13、如权利要求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位相连。
14、如权利要求12所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的优先级编码器的实施例由与或逻辑电路组成,该优先级编码器逻辑如下: 其中j=min{j|tj=1,j=0,1…N-1}。 循环移位器将第b0个数据存储器的数据左移到最高位。
15、如权利要求11所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的8位一维并行存储器由N个8位存储器模块组成;其中,外部输入8位一维 并行存储器的地址信号addr_d1m和N个8位存储器的地址输入端相连,N个8位存 储器输出8N位数据和外部相连。
16、如权利要求11所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的9位一维并行存储器的实施例由N个9位存储器模块组成。其连接关系为: 外部输入9位一维并行存储器的地址信号addr_dm9和N个9位存储器的地址输入 端相连,N个9位存储器输出9N位数据和外部相连。
17、如权利要求11所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的二维并行存储器的地址生成模块由加法器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、如权利要求11所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的8位一维并行存储器的地址生成模块由两个选择器、一个加法器和一个寄存 器所组成,其连接关系为:选择器0左输入端与寄存器0输出相连,选择器0右输 入端和信号start_d1m相连,选择器1左输入端和信号step_d1m相连,选择器1 右输入端和信号0相连;选择器0和选择器1的输出分别与加法器0的两个输入端 相连;寄存器0通过8位一维并行存储器的地址信号addr_d1m和外部相连。
19、如权利要求11所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的上述9位一维并行存储器地址的生成模块由两个选择器、一个加法器和一 个寄存器所组成,其连接关系为:选择器0左输入端与寄存器0输出相连,选择器 0右输入端和信号start_dm9相连。选择器1左输入端和信号step_dm9相连,选择 器1右输入端和信号0相连;选择器0和选择器1的输出分别与加法器0的两个输 入端相连;寄存器0通过9位一维并行存储器的地址信号addr_dm9和外部相连。
20、如权利要求1所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的数据寻径单元由选择器组成。
21、如权利要求1所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的高层指令单元由一个16位精简指令集处理器和32个特殊寄存器阵列所组 成,其中,该16位精简指令处理器和外部通过设置程序入口地址信号set_entry 及设置循环次数寄存器信号set_cnt相连,16位精简指令处理器和特殊寄存器阵列 通过控制信号相连;所说的高层指令单元由高层指令集中的指令控制。
22、如权利要求21所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的16位精简指令集处理器结构取指部件,译码部件,执行部件和寄存器阵列。 其连接关系为:取指部件与指令译码部件之间通过转移地址ba,指令信号d_ir,转 移控制信号next信号相连;指令译码部件与指令执行部件之间通过操作码d_op,执 行控制信号exec,第~源操作数d_src1,第二源操作数d_src2以及状态信号eflags 相连;指令执行部件与寄存器阵列之间通过写寄存器信号we,结果信号e_res相连; 指令译码部件与寄存器阵列通过第一源操作数地址d_a1,第二源操作数地址d_a2。 以及寄存器阵列输出信号d-r1和d_r2相连。
23、如权利要求22所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的取指部件包括加法器,当前地址寄存器,选择器,高层指令存储器,指令寄 存器:其中,所说的加法器上输入端与信号1相连,下输入端与当前地址寄存器的 输出相连;加法器输出与当前地址寄存器的输入相连;选择器的上输入端与通过转 移地址ba相连,选择器的下输入端与当前地址寄存器的输出相连,选择器的选择 端与转移控制信号next相连,选择器的输出端与高层指令存储器的地址输入端相 连;高层指令存储器的输出与指令寄存器输入端相连。指令寄存器的输出端通过指 令信号d_ir与外部指令译码部件相连。
24、如权利要求22所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的指令译码部件由与或逻辑电路组成;指令译码部件和取指部件之间通过转移 地址ba,指令信号d_ir,转移控制信号next信号相连;指令译码部件和指令执行 部件之间通过操作码d_op,执行控制信号exec,第一源操作数d_src1,第二源操作 数d_src2以及状态信号eflags相连;指令译码部件和寄存器阵列通过第一源操作 数地址d_a1,第二源操作数地址d_a2,以及寄存器阵列输出信号d_r1和d_r2相连。
25、如权利要求22所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的指令执行部件包括寄存器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;
当e_src2[4]0,e_r=e_src1<(8)操作类型:7,取反,e_r=~e_src2
26、如权利要求22所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的寄存器阵列由32个通用寄存器组成;该寄存器阵列和指令执行部件之间通 过写寄存器信号we,结果信号e_res相连;寄存器阵列和指令译码部件通过第一源 操作数地址d_a1,第二源操作数地址d_a2,以及寄存器阵列输出信号d_r1和d_r2 相连;指令译码部件输出d_a1经过寄存器输出e_a和寄存器阵列相连。
27、如权利要求21所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的高层指令集的指令有4种类型:空指令,赋值指令,转移指令和算术逻辑运 算指令;指令的15和14位表明指令类型;这4种类型分别编码为00,01,10,11。
28、如权利要求27所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的空指令为一个16位的指令,从第0位到第15,其值都为0。
29、如权利要求27所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的赋值指令分为三种,第一种赋值指令的子类型域有4位;目的地址寄存器有 5位。源地址寄存器有5位。第二种赋值指令的子类型域有4位;目的地址寄存器 有5位;立即数域为5位;第三种赋值指令的子类型域有4位;目的地址寄存器有 5位:最低5位为0;赋值指令如下(每条指令的位从高位至排列): 子域类型:1,指令:Lmovr r,#imm,通用寄存器赋值,源操作数#imm为长立即数, 双指令周期,目的地址为通用寄存器r;
    (1)子域类型:2,指令:Lmovg g,#imm,专用寄存器赋值,源操作数         为长立即数,双指令周期,目的地址为专用寄存器g;
    (2)子域类型:3,指令:Movg g,r,专用寄存器赋值,源操作数为通         用寄存器r,目的地址为专用寄存器g;
    (3)子域类型:4,指令:Movr r,g,通用寄存器赋值,源操作数为专         用寄存器g,目的地址为通用寄存器r;
    (4)子域类型:5,指令:Imovr r,#imm,通用寄存器赋值,源操作数         为短立即数,目的地址为通用寄存器r;
    (5)子域类型:6,指令:Imovg g,#imm,专用寄存器赋值,源操作数         为短立即数,目的地址为专用寄存器g;
    (6)子域类型:7,指令:Movpc r,通用寄存器赋值,源操作数为程序         计数器,目的地址为通用寄存器r。
30、如权利要求27所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的转移指令有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,指令:Cailr r,间接过程调用;
    (11)子类型域:3,条件码:00000,指令:Ret,过程返回;
    (12)子类型域:4-7,条件码:保留,指令:保留;
    (13)子类型域:8,条件码:00000,指令:Call #imm,直接过程调用;
    (14)子类型域:9-11,条件码:保留,指令:保留;
    (15)子类型域:12,条件码:00000,指令:Jmp #imm,直接无条件跳转;
    (16)子类型域:13-15,条件码:保留,指令:保留。
31、如权利要求27所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的算术逻辑运算指令有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
    (8)子类型:6,指令:Ishl rd,rs,功能:Rd=rd<    (9)子类型:7,指令:Not rd,rs,功能:Rd=~rs
    (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
32、如权利要求21所述的分层可编程并行视频信号处理器结构,其特征在于, 所说的特殊寄存器阵列由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,低层指令单元状态寄存器,存低层指令单元输         出运行结;
    (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路数据总线相连;所说的高 层指令单元的起始命令信号和运行命令信号通过数据寻径单元与存储及地址生成单 元相连接;所说的数据寻径单元与外部存储器接口单元通过数据总线相连;所说的 高层指令单元和外部存储器接口单元通过控制信号相连。

本发明的工作过程如下:高层指令单元发控制信号给低层指令单元,低层指令 单元开始执行低层程序,由低层指令译码单元发出控制信号给并行运算单元,数据 寻径单元,存储及地址生成单元,数据寻径单元从存储及地址生成单元输出的3路 信号中选择两路,输出到并行运算单元中,并行运算单元的运算结果通过数据寻径 单元输出到存储及地址生成单元中。高层指令单元通过数据总线从并行运算单元读 取运算结果。高层指令单元通过控制总线从低层指令单元读取执行状态。高层指令 单元发出控制信号给外部存储器接口单元,外部存储器接口单元从外部存储器读入 数据输出到数据寻径电路。数据寻径电路将外部存储器接口单元输出的数据连接到 存储及地址生成单元。

本发明的主要特点:

1)并行结构采用了低延迟特性规整的树累加结构,包括多输入树状加法器和 累加器,硬件复杂度大大小于已有的基于阵列处理器的运动估计可编程结构,由 于采用了低延迟特性规整的树状加法器结构,使得多输入数的加法能高速完成,在 树状加法器中无需流水线段寄存器,使得树状加法器的效率充分发挥,同时这种树 累加器结构能支持16x16,16x8以及8x8多种块匹配运算,具有较大的灵活性。

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(src+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可以输出一个16x16宏块匹配误差结果。12位累加器ACC1 和ACC2对左边8输入树状加法器和右边8输入树状加法器输出的11位数据进行累 加。在8个周期内,ACC1和ACC2可以输出两个8x8块的块匹配误差结果。

(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}。

循环移位器将第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位一维并行存储器地址增量信号 相连,选择器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_src1,第二源 操作数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,操作类型信号c_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,gimm 专用寄存器赋值,源操作数为短立即数, 目的地址为专用寄存器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  1 子类型域 目的/第一个源寄存器 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,第一个块最小匹配误差信号mini,第二个块最小匹配 误差信号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  g位一维并行存储器地址增量寄存器,输出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 上实现了多种块匹配算法,包括基于螺旋形扫描的全搜索算法,三步法,最临近搜 索算法等,以及运动补偿,半像素搜索算法。

高效检索全球专利

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

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

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈