CN1127264C - 用于运动估计算法的分层可编程并行视频信号处理器 - Google Patents
用于运动估计算法的分层可编程并行视频信号处理器 Download PDFInfo
- Publication number
- CN1127264C CN1127264C CN 00130074 CN00130074A CN1127264C CN 1127264 C CN1127264 C CN 1127264C CN 00130074 CN00130074 CN 00130074 CN 00130074 A CN00130074 A CN 00130074A CN 1127264 C CN1127264 C CN 1127264C
- Authority
- CN
- China
- Prior art keywords
- register
- instruction
- links
- output
- holding wire
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000033001 locomotion Effects 0.000 title claims description 109
- 230000015654 memory Effects 0.000 claims abstract description 76
- 238000003860 storage Methods 0.000 claims description 129
- 230000011664 signaling Effects 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 36
- FGRBYDKOBBBPOI-UHFFFAOYSA-N 10,10-dioxo-2-[4-(N-phenylanilino)phenyl]thioxanthen-9-one Chemical compound O=C1c2ccccc2S(=O)(=O)c2ccc(cc12)-c1ccc(cc1)N(c1ccccc1)c1ccccc1 FGRBYDKOBBBPOI-UHFFFAOYSA-N 0.000 claims description 31
- 230000014759 maintenance of location Effects 0.000 claims description 30
- 230000009471 action Effects 0.000 claims description 16
- 101100309447 Caenorhabditis elegans sad-1 gene Proteins 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 12
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 8
- 238000006073 displacement reaction Methods 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 6
- 229920006395 saturated elastomer Polymers 0.000 claims description 3
- 238000003491 array Methods 0.000 claims description 2
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 230000005574 cross-species transmission Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 102100022002 CD59 glycoprotein Human genes 0.000 description 7
- 101000897400 Homo sapiens CD59 glycoprotein Proteins 0.000 description 7
- 238000010845 search algorithm Methods 0.000 description 7
- 102100039164 Acetyl-CoA carboxylase 1 Human genes 0.000 description 6
- 101710190443 Acetyl-CoA carboxylase 1 Proteins 0.000 description 6
- 102100021641 Acetyl-CoA carboxylase 2 Human genes 0.000 description 6
- 101000677540 Homo sapiens Acetyl-CoA carboxylase 2 Proteins 0.000 description 6
- 101000894929 Homo sapiens Bcl-2-related protein A1 Proteins 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 101150058833 adg2 gene Proteins 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 101100058681 Drosophila melanogaster Btk29A gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000010977 unit operation Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明属于视频图像编码领域,涉及用于运动估计算法的分层可编程并行视频信号处理器,包括低层指令单元,并行运算单元,数据寻径单元,存储器及地址生成单元,高层指令单元,以及外部存储器接口单元六个部分;其中,低层指令单元通过控制信号线分别与高层指令单元及并行运算单元相连;数据寻径单元通过数据总线分别与并行运算单元与存储及地址生成单元相连。本发明在一个结构上可同时实现多种块匹配算法,并可降低视频编码***的硬件开销,还能支持视频编码的其它算法。
Description
技术领域
本发明属于视频图像编码领域,特别涉及分层可编程并行视频信号处理器设计。
背景技术
运动估计已被所有的视频压缩编码国际标准所采纳,用于消除帧间相关性。但是运动估计算法没有被这些国际标准所规定,是开放的部分,不同的编码***可以在满足码流语法结构的前提下,采用各自不同的运动估计算法。块匹配全搜索算法是运动估计算法中搜索精度最高的算法,但是它的缺点是运算量巨大,使得传统的通用处理器无法满足要求。为了解决运算量的问题,已有的工作从两方面入手,一是研究块匹配快速搜索算法,降低搜索点的个数;二是研究块匹配集成电路并行结构,对全搜索算法或快速搜索算法加以高效实现。
块匹配快速搜索算法研究的典型代表文献有:T.Koga,K.Iinuma,A.Hirano,Y.Lijima,and T.Ishiguro,″Motion compensated interframe coding for videoconferencing,″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 estimationalgorithms”,(一种简单有效的用于运动估计算法的大规模集成电路树结构)IEEETransactions 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 VideoCoding,”(一种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)优先级编码器
循环移位器将第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<<e_src2 |
7 | 取反,e_r=~e_src2 |
(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<<rs |
7 | Not rd,rs | Rd=~rs |
8 | 保留 | 保留 |
9 | Iadd rd,#imm | Rd=rd+#imm |
10 | Isub rd,#imm | Rd=rd-#imm |
11 | Ior rd,#imm | Rd=rd|#imm |
12 | Iand rd,#imm | Rd=rd&#imm |
13 | Ixor rd,#imm | Rd=rd^#imm |
14 | Ishr rd,#imm | 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上实现了多种块匹配算法,包括基于螺旋形扫描的全搜索算法,三步法,最临近搜索算法等,以及运动补偿,半像素搜索算法。
Claims (31)
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位信号线相连。
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<<e_src2,<<rs表示左移e_src2位
(8)操作类型:7,取反,e_r=~e_src2,~符号表示逻辑非运算。
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<<rs,<<rs表示左移rs位
(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
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,保留;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 00130074 CN1127264C (zh) | 2000-10-27 | 2000-10-27 | 用于运动估计算法的分层可编程并行视频信号处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 00130074 CN1127264C (zh) | 2000-10-27 | 2000-10-27 | 用于运动估计算法的分层可编程并行视频信号处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1289212A CN1289212A (zh) | 2001-03-28 |
CN1127264C true CN1127264C (zh) | 2003-11-05 |
Family
ID=4593946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 00130074 Expired - Fee Related CN1127264C (zh) | 2000-10-27 | 2000-10-27 | 用于运动估计算法的分层可编程并行视频信号处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1127264C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8094723B2 (en) * | 2003-12-31 | 2012-01-10 | Intel Corporation | Motion estimation sum of all differences (SAD) array having reduced semiconductor die area consumption |
KR100694050B1 (ko) * | 2004-06-11 | 2007-03-12 | 삼성전자주식회사 | 움직임 예측 방법 및 그 장치 |
US9049520B2 (en) | 2006-01-20 | 2015-06-02 | Akrion Systems Llc | Composite transducer apparatus and system for processing a substrate and method of constructing the same |
US9987666B2 (en) | 2006-01-20 | 2018-06-05 | Naura Akrion Inc. | Composite transducer apparatus and system for processing a substrate and method of constructing the same |
CN101146222B (zh) * | 2006-09-15 | 2012-05-23 | 中国航空无线电电子研究所 | 视频***的运动估计内核装置 |
EP2106666B1 (en) * | 2007-01-08 | 2019-06-12 | Nokia Technologies Oy | Improved inter-layer prediction for extended spatial scalability in video coding |
CN101090504B (zh) * | 2007-07-20 | 2010-06-23 | 清华大学 | 一种面向视频标准应用的编解码器 |
CN103491315A (zh) * | 2013-08-09 | 2014-01-01 | 北京中传视讯科技有限公司 | 视频数据处理方法、装置以及包括该装置的电子设备 |
CN111651199B (zh) * | 2016-04-26 | 2023-11-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量循环移位运算的装置和方法 |
CN107315715B (zh) * | 2016-04-26 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
-
2000
- 2000-10-27 CN CN 00130074 patent/CN1127264C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1289212A (zh) | 2001-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6868123B2 (en) | Programmable motion estimation module with vector array unit | |
CN1127264C (zh) | 用于运动估计算法的分层可编程并行视频信号处理器 | |
CN1297134C (zh) | 用于扫描搜索区内参考宏块窗口的运动估计装置和方法 | |
US7126991B1 (en) | Method for programmable motion estimation in a SIMD processor | |
Liu et al. | HDTV1080p H. 264/AVC encoder chip design and performance analysis | |
KR20120066681A (ko) | 비디오 코딩을 위한 효율적인 변환 기술들 | |
CN101068364A (zh) | 视频编码器与图形处理单元 | |
Jia et al. | A low-power motion estimation architecture for HEVC based on a new sum of absolute difference computation | |
CN1275142C (zh) | 用于执行硬件环路的方法、装置和*** | |
CN1946178A (zh) | 一种用于运动估计的vlsi装置及运动估计的方法 | |
AlQaralleh et al. | Low-complexity motion estimation design using modified XOR function | |
CN1780402A (zh) | 视频图像运动补偿装置 | |
Liu et al. | Hardware-efficient propagate partial SAD architecture for variable block size motion estimation in H. 264/AVC | |
US20170323454A1 (en) | Apparatus and method for efficient motion estimation | |
Li et al. | A VLSI architecture design of an edge based fast intra prediction mode decision algorithm for H. 264/AVC | |
Campos et al. | Integer-pixel motion estimation H. 264/AVC accelerator architecture with optimal memory management | |
CN1312642A (zh) | 基于混合视频编码方法的可编程视频信号处理器结构 | |
Dias et al. | Reconfigurable architectures and processors for real-time video motion estimation | |
Huang et al. | Parallel improved HDTV720p targeted propagate partial SAD architecture for variable block size motion estimation in H. 264/AVC | |
CN100339976C (zh) | 多模多尺度运动估计的超大规模集成电路体系结构及方法 | |
He et al. | Parallel HD encoding on CELL | |
TW526657B (en) | Global elimination algorithm for motion estimation and the hardware structure | |
Nguyen et al. | An Efficient Implementation of H. 264/AVC Integer Motion Estimation Algorithm on Coarse-grained Reconfigurable Computing System. | |
Liao et al. | A reconfigurable high performance asip engine for image signal processing | |
Nguyen et al. | Mapping H. 264/AVC Fractional Motion Estimation Algorithm onto Coarse-Grained Reconfigurable Computing System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20031105 Termination date: 20091127 |