CN1332870A - 地址生成装置以及运动矢量检测装置 - Google Patents

地址生成装置以及运动矢量检测装置 Download PDF

Info

Publication number
CN1332870A
CN1332870A CN99815072A CN99815072A CN1332870A CN 1332870 A CN1332870 A CN 1332870A CN 99815072 A CN99815072 A CN 99815072A CN 99815072 A CN99815072 A CN 99815072A CN 1332870 A CN1332870 A CN 1332870A
Authority
CN
China
Prior art keywords
address
mentioned
scanning
designation area
addressing
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.)
Granted
Application number
CN99815072A
Other languages
English (en)
Other versions
CN1134734C (zh
Inventor
滨田真纳
九朗丸俊一
米泽友纪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1332870A publication Critical patent/CN1332870A/zh
Application granted granted Critical
Publication of CN1134734C publication Critical patent/CN1134734C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Input (AREA)
  • Image Analysis (AREA)

Abstract

一种自动地生成能够访问多维区域而不溢出使用者指定的存储器区域的存储器地址的高性能地址生成装置,其中,寻址区设定装置(101)根据起始地址和最终地址设定存储器内的连续的寻址区,二维地址发生装置(106)发生地址,第1、第2此较装置(108、109)比较二维地址区的地址与起始地址、最终地址的大小,地址修正装置(112)判断是否溢出寻址区并且修正溢出的地址。

Description

地址生成装置以及运动矢量检测装置
技术领域
本发明涉及地址生成装置以及运动矢量检测装置,特别是谋求改良在面向图像处理的数字信号处理器等中,用于进行为了读·写图像数据所使用的数据存储器访问的地址生成机构以及使用该地址生成机构进行运动矢量检测的图像数据控制装置。
技术背景
在处理图像数据等的信号处理器中,作为为了高效访问数据存储器的地址生成装置,当前使用生成二维矩形区的地址生成装置。
这是因为例如在图像数据等二维配置了的数据存储在存储器中时,必须映射到一维地址空间中,在通常图像数据的情况下,按照光栅扫描图像的顺序映射为一维地址,而在把该数据作为二维数据处理时,大多划分出某个矩形区域进行使用。
作为把这样的地址生成装置更一般化的装置,例如,有在日本特开平4-218847号公报中公开的,能够访问数据存储器内的多维区域的地址生成装置,图18示出其结构。
在图18中,901-1~901-N分别是第1次至第N次扫描方向的增量值设定装置,902是选择第1次扫描方向的增量值设定装置901-1至第N次扫描方向的增量值设定装置901-N的输出中的任何一个并且进行输出的第1多路器,903是设定起始地址的起始地址设定装置,904-1~904-N分别是与第1次至第N次扫描方向对应的第1以及第N累加寄存器,905是选择第1累加寄存器904-1至第N累加寄存器904-N的输出中的任何一个并且进行输出的第2多路器,906是把第1多路器902的输出与第2多路器905的输出进行加法运算的加法器,907是选择加法器906与起始地址设定装置903的输出中的任何一个并且进行输出的第3多路器,908-1~908-N分别是第1次扫描方向至第N次扫描方向的数据数设定装置,909是根据第1次扫描方向的数据数设定装置908-1至第N次扫描方向的数据数设定装置908-N的设定值生成控制信号的控制电路。
以上那样构成的多维地址生成装置把第1累加寄存器904-1的输出作为输出地址。
图19是把图18的多维地址生成装置简化为能够发生二维地址的情况,以下,在说明图18的多维地址生成装置的动作时,为了简化,以使用该以往的二维地址生成装置生成二维地址的情况为例进行说明。
首先,把任意的P1×P2(P1、P2例如是16、16等的自然数)的矩形区域作为访问对象。首先作为初始值,在第0周期中,在第1累加寄存器904-1和第2累加寄存器904-2中通过起始地址数据设定器903设定起始地址数据SA。
在接下来的第1周期中,由加法器906把第1累加寄存器904-1的数据与第1扫描方向(X方向)的增量数据DX进行加法运算,把其相加结果写入到第1累加寄存器904-1中,发生紧接在初始值以后的地址。这时,在第2累加寄存器904-2中不进行写入。然后,从第2周期开始,在第P1-1周期期间进行与第1周期相同的动作,持续地进行写入。
其次,第P1周期中,使用加法器906把第2累加寄存器904-2的数据与第2扫描方向(Y方向)的增量数据DY进行相加,把其结果写入到第1累加寄存器904-1和第2累加寄存器904-2的双方中。
同样,在从第P1+1周期到第2P1-1周期,…,从第(P2-1)P1+1周期到第P2·P1-1周期的每一个周期中,进行使用加法器906把第1累加寄存器904-1的数据与第1扫描方向的增量数据DX相加,把其结果写入到第1累加寄存器904-1的控制,在第P1周期,第2P1周期,…,第(P2-1)P1周期的每P1周期,进行把第2累加寄存器904-2的数据与第2扫描方向的增量数据DY相加,把其结果写入到第1累加寄存器904-1和第2累加寄存器904-2的控制,把从第0周期开始执行了第P2·P1-1周期的结果得到的第1累加寄存器904-1的值作为地址输出。
图20示出基于该动作的数据的流动。如图20所示,使用存储在第2累加寄存器904-2的1行或者1列前的最初的地址计算下一行的最初地址。
图21示出图19的控制电路909的一例。在图21中,909-1是把初始状态设为P1,从1开始计数,根据时钟直到P1为止顺序反复进行增量动作的第1计数器,909-3是把初始状态设为P2,从1开始计数,根据时钟直到P2为止顺序反复进行增量动作的第2计数器,909-2是数据P1,909-4是数据P2,909-11是数据P1-1,909-5、909-8是逻辑积电路,909-6、909-7、909-12是把2个数据进行比较,如果一致则输出1,如果不一致则输出0的比较器,909-9、909-10、909-13是D触发器,909-14是第1时钟,909-15是第2时种,909-16是控制信号,909-17是END信号。
图21的控制电路按照图20的时序进行动作。如果把控制信号909-16用作为图19的第1控制信号29-1,第2控制信号29-2,把第1时钟909-14用作为写入信号29-4,把第2时钟909-15用作为第2写入信号29-5,则能够进行遵从图22的流程的控制。
图19的第3多路器917的第3控制信号29-3进行控制使得在二维地址发生器的启动时(第0周期)选择起始地址数据设定器903的起始地址数据,在其它周期选择加法器906的输出地址。
图23示出访问实际的图像数据的状况的一例。图23a是横方向的访问的说明图,图23b是纵方向的访问的说明图。
首先,使用图23a说明沿着横方向进行访问时的动作。61是由6×7像素的矩形区域组成的总体的图像数据,62是4×4像素的访问对象矩形区。从0到41是实际的存储器的地址,从(0)~(15)表示从6×7像素的总体像素数据的地址中访问4×4像素的访问对象矩形区的顺序。这种情况下,作为第1扫描方向的增量数据DX设定为1,作为第2扫描方向的增量数据DY设定为1行的数据数6。
在第0周期,作为起始地址数据SA把7写入到第1累加寄存器904-1和第2累加寄存器904-2中。在从第1周期到第3周期的各个周期,在第1累加寄存器904-1的值7上顺序加入第1扫描方向的增量数据DX(在该例中是1),写入到第1累加寄存器904-1中,生成地址8,9,10。
在第4周期,在保存于第2累加寄存器904-2的地址7上加入第2扫描方向的增量数据DY(在该例中是6),写入到第1累加寄存器904-1和第2累加寄存器904-2中,生成地址13。在从第5周期到第7周期的各周期中,在第1累加寄存器904-1的值13上作为第1扫描方向的增量数据DX顺序加入1,写入到第1累加寄存器904-1中,生成地址14、15、16。
在第8周期,在第2累加寄存器904-2的值13上作为第2扫描方向的增量数据加入6,写入到第1累加寄存器904-1和第2累加寄存器904-2中,生成地址19。
以下同样地,顺序生成地址20、21、25、26、27、28,实现总体图像数据61中的访问对象矩形区62的访问。
其次,使用图23b说明沿着纵方向进行访问时的动作。63是由6×7像素的矩形区域构成的总体的图像数据,64是4×4像素的访问对象矩形区。从0到41是实际的存储器的地址,从(0)到(15)表示进行访问的顺序。
这种情况下,作为第1扫描方向的增量数据DX设定为6,作为第2扫描方向的增量数据DY设定为1行的数据数1。
在第0周期,作为起始地址数据SA把值7写入到第1累加寄存器904-1和第2累加寄存器904-2中。在从第1周期到第3周期的各周期中,在第1累加寄存器904-1的值7上顺序加入第1扫描方向的增量数据DX(在该例中是6),写入到第1累加寄存器904-1和第2累加寄存器904-2中。在从第1周期第3周期的各周期中,在第1累加寄存器904-1的值7上顺序加入第1扫描方向的增量数据DX(在该例中是6),写入到第1累加寄存器904-1中,生成地址13、19、25。
在第4周期,在保持于第2累加寄存器904-2中的地址7上加入第2扫描方向的增量数据DY(在该例中是1),写入到第1累加寄存器904-1和第2累加寄存器904-2中,生成地址8。在从第5周期到第7周期的各周期中,在第1累加寄存器904-1的值上顺序加入第1扫描方向的增量数据6,写入到第1累加寄存器904-1中,生成地址14、20、26。
在第8周期中,在第2累加寄存器904-2的值8上作为第2扫描方向的增量数据加入1,写入到第1累加寄存器904-1和第2累加寄存器904-2中,生成地址9。
以下同样地,顺序生成地址15、21、27、10、16、22、28,实现总体图像数据63中的访问对象矩形区64的访问。
如以上所述那样,在对于同一个访问对象矩形区62或者64希望改变访问的方向时,可以只变化第1扫描方向的增量数据DX和第2扫描方向的增量数据DY。另外,通过改变第1扫描方向的增量数据和第2扫描方向的增量数据的一个或者二个,能够访问平行四边形的区域或者进行跳跃式的访问。进而,访问多维空间时,能够访问多维的平行体区域。
然而,存在着以下的问题,在从外部存储器把数据DMA传送到比其容量小的处理器内部的数据存储器并且进行存储时,如果参照外部存储器的所有区域就必须滚动相当于数据存储器的区域,每次都需要进行数据存储器容量大小的数据的DMA传送,而数据存储器的容量与DMA传送的次数存在着折衷关系,如果要抑制数据存储器的容量则就要增加DMA传送的次数,反之如果抑制DMA传送次数则就要增加数据存储器的容量。
另外,作为以上那样具有地址生成装置的地址图像处理装置进行的图像处理的一例,有图像CODEC,在图像CODEC的算法中一般使用ME(运动矢量检测)处理,所谓ME处理,是把输入图像中辉度16×16像素的图像块(宏块;以后称为MB)与在时间上把前一个图像的辉度值作为评价SAD(sum of abso1ute difference;绝对误差和)的函数进行比较检索最近似的图像位置,求其位移的处理方法,作为用于可编程地进行ME处理的检索算法的一种有One ata time算法。
在One at a time算法中,从作为比较对象的检索原点(把矩形的存储区域的左上角为起点的宏块作为检索原点)开始,对于左,右,上,下,右斜上,右斜下,左斜上,左斜下中各错开一个像素相接近的8个宏块进行SAD计算,在存在给出比检索原点的SAD值小的SAD值的块的情况下,把其中给出最小SAD值的宏块作为新的检索原点,通过反复同样的检索,直到接近的8个宏块的SAD值每一个都比检索原点大或者相等为止,求出运动矢量。
但是,在图18所示的搭载了以往例的地址生成装置的处理器中要处理上述那样的One at a time算法时,作为把用于检索的图像数据配置在处理器的数据存储器中的方法,采用把存在于检索能够涉及的某范围的所有像素数据一起配置在数据存储器中,通过二维区域的地址发生装置访问16×16像素宏块的同时进行检索的方法,在这种情况下,如果假设使用者设定的最大检索次数为40次,则达到上述最大检索次数为止遍及检索时所必需的像素数成为96×96像素,存在着占有处理器直接使用的数据存储器内的很大区域这样的问题。
另外,作为能够削减相当于数据存储器的存储器容量的装置,例如有日本特开平8-202524号公报中公开的图形显示滚动装置。
该图形显示滚动装置如图25所示,在滚动的显示画面DS要溢出显示数据区DA时,把要溢出的区域根据显示数据区DA的边界的延长线分割,使用在显示画面DS的存储中未使用的显示数据区DA内对应的区域描绘这些区域,通过读出这些区域,即使把显示数据区DA削减为4个显示画面DS的大小,也能够进行平滑滚动,使用上述方法能够进一步减少存储器容量。
但是,在该现有技术中,显示画面DS从显示数据区DA沿着水平方向,例如在右侧要溢出时使其移动到显示数据区DA内的对应的左侧区域,为了实现该水平方向的移动,需要进行沿水平方向是否溢出的判断或者地址修正运算,存在着增大电路规模或者导致CPU的处理时间增大这样的问题。另外,还存在着要溢出的显示画面DS最初需要存在于显示数据区DA内,并且要溢出的区域限定于二维矩形区这样的问题。
另外,在把ME处理中占有的数据存储区内的区域限定为比最大检索次数少的检索范围的情况下,在通过检索原点的移动检索范围超过了使用者决定的预定范围时,必须通过DMA传送补充新的所需要的像素,而为了进行基于以往的二维地址发生装置进行的块访问,需要传送包括新的所需要像素的搜索范围的全部像素,存在着增大DMA传送的传送个数的问题。
本发明是为解决上述以往的问题点而产生的,目的在于提供能够不溢出使用者设定的数据存储器内所限定的区域内,自动地发生多维区域的地址,减少DMA传送个数的同时,能够解决要抑制数据存储区的增大则DMA传送个数将增大,或者要抑制DMA传送个数的增长则数据存储区将增大这样相矛盾的问题,进而,能够不导致电路规模或者CPU的处理增大,还有,要溢出的区域的最初存在位置或者形状不受限制,抑制数据存储区的增大的地址生成装置。
另外,目的在于提供作为处理器的地址生成装置,不限定于只是面向ME处理的寻址,还具有多样性的地址生成装置。
进而,目的在于获得通过使用这样的地址生成装置,自动地发生多维区域的地址,能够解决数据存储区的增大或者DMA传送个数增大这样相矛盾的问题,进而,能够不导致电路规模或者CPU的处理的增大,抑制数据存储区的增大,对于运动矢量检测处理发挥效果的运动矢量检测装置。
发明的公开
为了解决上述课题,本发明第1方案的地址生成装置具备寻址指定区设定装置,多维地址发生装置,第1比较装置,第2比较装置,地址修正装置,其中,寻址指定区设定装置用于在存储通过直接存储器访问传送来的数据的存储器内设定由起始地址具有比最终地址小的值的起始地址和最终地址确定的连续的寻址区,多维地址发生装置可以连续地发生多维区域的地址,第1比较装置比较上述多维地址发生装置顺序发生的各个地址与最终地址的大小,第2比较装置比较上述多维地址发生装置顺序发生的各个地址与上述起始地址的大小,地址修正装置把上述多维地址发生装置顺序发生的各个地址和上述第1以及第2比较装置的比较结果作为输入,根据上述第1以及第2比较装置的比较结果判断上述多维地址发生装置顺序发生的各个地址是否溢出由上述寻址指定区设定装置指定的寻址指定区,在溢出时把上述各个地址修正为配置在寻址指定区域内的螺旋环形的空间中并且进行输出,在没有溢出时直接输出上述下一个周期的地址。
如果依据该地址生成装置,则如果使用者设定显示起始地址比最终地址小的地址值这样的存储器内的寻址指定区,即使多维地址发生装置设定的寻址区域也包括上述的寻址指定区外,由于对于溢出寻址指定区外的地址向把寻址指定区视为螺旋环形的空间中时的地址指定区内的该地址进行修正并且输出,因此能够实现由硬件自动发生不溢出使用者设定的数据存储区内的有限区域内的多维区域的地址,同时,能够解决数据存储器的增大或者DMA传送个数的增大这样相矛盾的问题,进而,能够不导致电路规模或者CPU处理的增大,抑制数据存储区的增大。
本发明第2方案的地址生成装置具备寻址指定区设定装置,多维地址发生装置,第1比较装置,第2比较装置,地址检测装置和地址修正装置,其中,寻址指定区设定装置用于在存储通过直接存储器访问传送来的数据的存储器内与起始地址和最终地址的值的大小无关设定由起始地址和最终地址确定的连续的寻址区域,多维地址发生装置可以连续地发生多维区域的地址,第1比较装置比较上述多维地址发生装置顺序发生的各个地址与上述最终地址的大小,第2比较装置比较上述多维地址发生装置顺序发生的各个地址与上述起始地址的大小,地址检测装置根据上述第1比较装置的比较结果和由上述第2比较装置进行的比较结果,检测上述下一个周期的地址值接近于上述起始地址与最终地址的哪一个,地址修正装置把上述第1比较装置以及上述第2比较装置和上述地址检测装置的输出以及上述下一个周期的地址作为输入,根据上述第1以及第2比较装置的比较结果和上述地址检测装置的输出,判断上述多维地址发生装置顺序发生的各个地址是否溢出由上述寻址指定区设定装置指定的寻址指定区,在溢出时修正上述各个地址使得配置在寻址指定区内螺旋环形的空间中并且进行输出,在没有溢出时直接输出上述下一个周期的地址。
如果依据该地址生成装置,则在用第1方案记述地址生成装置能够实现的地址发生的基础上,对于作为寻址指定区能够设定的区域不限定起始地址必须是比最终地址小的地址值,能够设定起始地址显示出比最终地址大的地址值这样的跨过存储区的寻址指定区,能够解决数据存储区的增大或者DMA传送个数的增大这样相矛盾的问题。
另外,本发明第3方案记述的地址生成装置是在第1方案或者第2方案的地址生成装置中,把上述寻址指定区设定装置构成为上述寻址指定区设定最终地址和总数据数,从上述最终地址减去上述总数据数,自动地生成起始地址。
由此,在用第1方案或者第2方案记述的地址生成装置能够实现减少地址发生的基础上,能够简化由地址修正装置进行的修正计算,减小电路规模。
本发明第4方案记述的地址发生装置是在第1方案或者第2方案的地址发生装置中,可以连续发生多维区域的地址的上述多维地址发生装置具有设定多维地址区的开始地址,各个扫描方向的增量值以及各个扫描方向的数据数的装置,和用于累加各个扫描方向的地址的独立的累加寄存器,在扫描方向改变时的地址计算中通过对于与扫描方向相对应的累加寄存器加入与上述扫描方向对应的上述增量值计算并输出下一个周期的地址,在寻址的开始周期根据上述地址修正装置的输出更新上述多维区域的开始地址。
由此,在由第1方案或者第2方案记述的地址生成装置能够实现的地址发生的基础上,在由于希望访问的多维空间的开始地址已经处于寻址指定区外,实际的存储器访问以修正了开始地址的地址进行时,根据在实际的地址中使用了的修正地址自动地重新设置开始地址设定装置,由此能够减轻根据开始地址进行新的寻址时程序进行的地址计算所需要的运算量。
另外,本发明第5方案记述的地址生装置是在第1方案或者第2方案的地址生成装置中,可以连续发生多维区域的地址的上述多维地址发生装置具有设定多维地址区的开始地址,各个扫描方向的增量值以及各个扫描方向的数据数的数据数设定装置,用于累加各个扫描方向的地址的独立的累加寄存器,在扫描方向改变时的地址计算中通过对于与扫描方向相对应的累加寄存器加入与上述扫描方向对应的增量值计算并输出下一个周期的地址,在用于累加上述各个扫描方向的地址的累加寄存器中,最低一级的扫描方向的累加寄存器存储地址修正装置输出的修正地址,在其它的累加寄存器中,选择存储地址修正装置输出的修正地址和上述下一个周期的地址值中的一个,把存储上述最低一级的扫描方向地址的累加寄存器的输出作为输出地址。
如果依据该结构,则在由第1方案或者第2方案记述的地址生成装置能够实现的地址发生的基础上,由于对于多维地址发生装置的各个扫描方向的累加寄存器存储修正地址,因此在连续访问时多维地址发生装置输出的下一个周期的地址将不表示不能够由地址修正装置修正的区域的地址。
本发明第6方案记述的地址生成装置是在第5方案的地址生成装置中,把寻址指定区设定装置构成为寻址指定区设定最终地址和总数据数,通过从上述最终地址减去上述总数据数自动地生成上述起始地址。
由此,在由第5方案的地址生成装置能够实现的地址发生的基础上,能够简化地址修正装置中的修正运算,减小电路规模。
本发明第7方案记述的地址生成装置是在第5方案的地址生成装置中,上述多维地址发生装置在寻址的开始周期中根据地址输出更新多维区域的开始地址。
由此,在由第5方案记述的地址生成装置能够实现的地址发生的基础上,由于希望访问的多维区域的开始地址已经位于寻址指定区外,实际的存储器访问以修正了开始地址的地址进行时,通过实际访问中使用的修正地址自动地重新设定开始地址设定装置,能够减轻根据开始地址进行新的寻址时由程序进行的地址计算所需要的运算量。
本发明第8方案记述的地址生成装置是在第1方案或者第2方案的地址生成装置中,连续发生并且获得多维区域的地址的上述多维地址发生装置具有设定多维区域的开始地址,各个扫描方向的增量值以及各个扫描方向的数据数的数据数设定装置,用于累加各个扫描方向的地址的独立的累加寄存器,在扫描方向改变时的地址计算中通过对于与扫描方向相对应的累加寄存器加入对应于上述扫描方向的增量值计算并输出下一个周期的地址值,在上述用于累加各个扫描方向的地址的累加寄存器中,最低一级的扫描方向的累加寄存器存储上述下一个周期的地址值,其它的累加寄存器选择存储地址修正装置输出的修正地址和上述下一个周期的地址值中的一个,选择存储最低一级的扫描方向的地址的上述累加寄存器的输出与上述地址修正装置在地址点输出的地址的一方作为输出地址。
如果依据该结构,则在由第1方案或者第2方案记述的地址发生装置能够实现的地址发生的基础上,通过切换模式切换信号能够用同一个电路实现基于通常的多维地址发生装置的地址发生和不溢出寻址指定区内而发生多维地址的地址发生。
本发明第9方案记述的地址发生装置是在第8方案的地址发生装置中,把上述寻址指定区设定装置构成为通过寻址指定区设定最终地址和总数据数,从上述最终地址减去上述总计数据数自动地生成起始地址。
由此,在由第8方案的地址生成装置能够实现的地址发生的基础上,能够简化地址修正装置中的修正运算,减小电路规模。
本发明第10方案记述的地址生成装置是在第8方案的地址生成装置中,在寻址的开始周期根据地址输出更新多维区域的开始地址。
由此,在由第8方案记述的地址生成装置能够实现的地址发生的基础上,由于希望访问的多维区域的开始地址已经位于寻址指定区外,实际的存储器访问以修正了开始地址的地址进行时,通过根据实际访问所使用的修正地址自动地重新设定开始地址设定装置,能够减轻根据开始地址进行新的寻址时的由程序进行的地址计算所需要的运算量。
本发明第11方案记述的运动矢量检测装置在由处理器进行的运动矢量检测处理中,具备预先存储图像数据的处理器外部的存储器,从上述处理器外部的存储器仅把在运动矢量检测运算中使用的图像数据进行直接存储器访问传送并预先存储的处理器的内部存储器,进行运动矢量检测运算的运算装置,以及能够访问内部存储器的矩形区域那样生成地址的第1方案至第10方案的任一项中记述的地址生成装置。
依据该结构,对于需要运动矢量检测的图像数据不需要在内部存储器中预先配置搜索范围的所有数据,能够仅把随着搜索处理的进展成为所需要的像素取入到内部存储器。这一点对于所搭载的存储器容量有限的小型终端中的运动矢量检测处理极为有效,在所需要的最小限度的DMA传送和存储器的地址计算的抑制方面发挥效果。
附图的简单说明
图1是本发明实施形态1的地址生成装置的结构图。
图2示出本发明实施形态1的地址生成装置生成的地址的生成模式的一例,图2a是沿纵方向地址溢出时的访问的说明图,图2b是沿横方向地址溢出时的访问的说明图。
图3是本发明实施形态2的地址生成装置的结构图。
图4是本发明实施形态2的寻址指定区的设定模式的概念图,图4a示出最终地址为比起始地址大的值时的寻址指定区的设定模式,图4b示出最终地址为比起始地址小的值时的寻址指定区的设定模式。
图5是本发明实施形态3的地址生成装置的结构图。
图6是本发明实施形态3的地址生成装置的结构图。
图7是本发明实施形态4的地址生成装置的结构图。
图8是本发明实施形态5的地址生成装置的结构图。
图9是本发明实施形态5的地址生成装置的结构图。
图10是本发明实施形态5的地址生成装置的结构图。
图11是本发明实施形态5的地址生成装置的结构图。
图12是本发明实施形态6的地址生成装置的结构图。
图13是本发明实施形态6的地址生成装置的结构图。
图14是本发明实施形态7的运动矢量检测装置的结构图。
图15是本发明实施形态7的存储器访问方法的概念图。
图16是本发明实施形态7的存储器访问方法的概念图。
图17是本发明实施形态7的存储器访问方法的概念图。
图18是以往的地址生成装置的结构图。
图19是以往的地址生成装置的结构图。
图20示出以往的地址生成装置的数据流动。
图21示出以往的地址生成装置的控制电路的一例。
图22示出以往的地址生成装置的控制电路的一例。
图23示出以往的地址生成装置实际访问图像数据时的动作,图23a示出沿横方向进行访问的情况,图23b示出沿纵方向进行访问的情况。
图24示出本发明实施形态2的选择信号与成为地址指针215的输入的地址的关系。
图25示出以往的图形显示滚动装置的显示画面跨过了显示数据区的边界时的帧存储器的地址的关系。
用于实施发明的最佳形态
以下,使用图1~图17说明本发明的实施形态。
实施形态1
该实施形态1是寻址指定区要溢出使用者设定区时,修正并生成地址使得收容在该使用者设定区域内的例子。
图1示出本发明实施形态1的地址生成装置,该图1是对应于本发明第1方案的装置。在图1中,101是用于在存储器(例如外部存储器)中设定寻址指定区(例如控制器内部的数据存储器中要映射的区域)的寻址指定区设定装置,102是存储用于设定寻址指定区的最终地址的最终地址存储装置,103是用于存储用于设定寻址指定区的起始地址的起始地址存储装置,由于通过改变它们的设定值,其区域指定可变,因此寻址指定区在存储器内能够滚动。另外,104是作为最终地址存储装置102的输出的最终地址,105是作为起始地址存储装置103的输出的起始地址,106是通过在每一个周期发生地址能够发生任意的二维矩形区的地址的二维地址发生装置,107是二维地址发生装置106在每一个周期输出的,作为构成二维矩形区的各地址的下一个周期的地址,108是输入最终地址104和下一个周期的地址107并且进行大小比较的第1比较装置,109是输入起始地址105和下一个周期的地址107并且进行大小比较的第2比较装置,110是作为第1比较装置108的输出的第1比较结果,111是作为第2比较装置109的输出的第2比较结果,112是把最终地址104,起始地址105,下一个周期的地址107,第1比较结果110,第2比较结果111作为输入进行地址修正运算的地址修正装置,113是存储修正后的地址值的地址指针,114是作为地址指针113的输出的输出地址。
其次,说明其动作。寻址指定区设定装置101由用于存储使用者设定的寻址指定区的最终地址和起始地址的最终地址存储装置102以及起始地址存储装置103构成,它们输出最终地址104和起始地址105。另一方面,二维地址发生装置106进行用于访问二维区域的地址计算,输出下一个周期的访问地址107。第1比较装置108把最终地址104和下一个周期的地址107作为输入进行比较,如果下一个周期的地址107的值比最终地址104的值大则把第1比较结果110置为ON,如果小则置为OFF进行输出。同样,第2比较装置109把起始地址105和下一个周期的地址107作为输入进行比较,如果下一个周期的地址107的值比起始地址105的值小则把第2比较结果111置为ON,如果大则置为OFF进行输出。地址修正装置112把最终地址104,起始地址105以及下一个周期的地址107作为输入,通过
修正地址a=下一个周期的地址107-(最终地址104-起始地址105+1)                                       (式1-1)
修正地址b=下一个周期的地址107+(最终地址104-起始地址105+1)                                       (式1-2)计算修正地址a以及修正地址b,把第1比较结果110和第2比较结果111的2个输入作为选择信号,选择修正地址a、修正地址b、下一个周期的地址107中的一个并且存储在地址指针113中,地址指针113的输出成为本实施形态1的地址发生装置输出的输出地址114。
作为地址修正装置112的选择方法,在第1比较结果110是ON时选择修正地址a,在第2比较结果111是ON时选择修正地址b,在第1比较结果110以及第2比较结果111的每一个都是OFF时选择下一个周期的地址107。
根据该结构,对于最终地址存储装置102和起始地址存储装置103存储由使用者确定寻址指定区的最终地址和起始地址,或者对于二维地址发生装置106进行与希望访问的区域相对应的设定。其次,如果开始寻址,则由第1比较装置108以及第2比较装置109检测多维地址发生装置106计算出的下一个周期的地址107是否溢出寻址指定区,如果没有溢出则把下一个周期的地址107存储在地址修正装置112内的地址指针113中,在溢出的情况下,把修正地址a或者修正地址b存储在地址修正装置112内的地址指针113中,该地址指针113的输出成为输出地址114。
图2示出访问实际的图像数据情况的一例。图2a是沿纵方向地址溢出时的访问的说明图,图2b是沿横方向地址溢出时的访问的说明图。
首先,使用图2a说明二维地址发生装置发生的地址从寻址指定区沿纵方向溢出时的动作。60是存储图像数据的数据存储器,62是多维地址发生装置106发生的4×4像素的访问对象矩形区,65是由寻址指定区设定装置101在数据存储器60内设定为能够滚动的6×7像素的寻址指定区,66是由地址修正装置112修正了的地址修正后的访问对象矩形区。记录在数据存储器60框内的数字从0到83,…是实际的存储器的地址,从(0)到(15)表示从数据存储器60的地址中多维地址发生装置106访问4×4像素的访问对象矩形区62的顺序。
假设在图1的寻址指定区设定装置101的最终地址存储装置102中存储53,起始地址存储装置103中存储12。
而且这时,二维地址发生装置106作为第1~第16周期中的下一个周期的地址107,顺序输出37,38,39,40,43,44,45,46,49,50,51,52,55,56,57,58。
在二维地址发生装置106的下一个周期的地址107位于由6×7像素的矩形区域组成的寻址指定区65的范围内时,即,在二维地址发生装置106的下一个周期的地址107是37,38,39,40,43,44,45,46,49,50,51,52时,由于第1比较装置108的输出110是OFF,而且第2比较装置109的输出111也是OFF,因此地址修正装置112不进行地址修正,直接输出二维地址发生装置106所输出的下一个周期的地址107,即,37,38,39,40,43,44,45,46,49,50,51。
其次,在二维地址发生装置106的下一个周期的地址107溢出由6×7像素的矩形区域组成的寻址指定区65的范围时,即,在二维地址发生装置106的下一个周期的地址107是55,56,57,58时,由于第1比较装置108的输出110是ON,而且第2比较装置109的输出111是OFF,因此地址修正装置112根据(式1-1)输出修正地址。
即,
修正地址a=下一个周期的地址107-(最终地址104-起始地址105+1)
=下一个周期的地址107-(41-0+1)
=下一个周期的地址107-42把这些下一个周期的地址107修正为13、14、15、16,如果不存在地址修正装置112,则从由6×7像素的矩形区域组成的寻址指定区65的范围溢出的部分收容到6×7像素的矩形区域内。
另外,在以上的说明中说明了二维地址发生装置106沿着横方向发生地址的情况,在沿着纵方向发生地址而且其地址沿着纵方向溢出的情况下,通过相同的动作,也收容在6×7像素的矩形区域内。
其次,使用图2b说明二维地址发生装置发生的地址从寻址指定区沿着横方向溢出时的动作。60是存储图像数据的数据存储器,62是二维地址发生装置106发生的4×4像素的访问对象矩形区,65是通过寻址指定区设定装置101设定的6×7像素的寻址指定区,66是通过地址修正装置进行修正的地址修正后的访问对象矩形区。记录在数据存储器60的框内的数字从0~83,…是实际的存储器地址,从(0)~(15)表示从数据存储器60的地址中二维地址发生装置106访问4×4像素的访问对象矩形区62的顺序。
假设在图1的寻址指定区设定装置101的最终地址存储装置102中存储53,在起始地址存储装置103中存储12。
而且这时,假设二维地址发送装置106作为第1~第16周期的下一个周期的地址107,顺序输出22,23,24,25,28,29,30,31,34,35,36,37,40,41,42,43。
这时,二维地址发生装置106的下一个周期的地址107全部位于由6×7像素的矩形区域组成的寻址指定区65的范围内,由于第1比较装置108的输出110是OFF,而且第2比较装置109输出111也是OFF,因此地址修正装置112不进行地址修正,直接输出二维地址发生装置106所输出的下一个周期的地址107,即,22,23,24,25,28,29,30,31,34,35,36,37,40,41,42,43。
另外,在以上的说明中,说明了二维地址发生装置106沿着横方向发生地址的情况,而在沿着纵方向发生地址而且其地址沿着横方向溢出的情况下,通过相同的动作,也收容在6×7像素的矩形区域内。
这样,依据本实施形态1,则如果二维地址发生装置106发生的地址溢出由使用者在寻址指定区设定装置101中设定的区域,则通过地址修正装置112,在把寻址指定区的最终地址的下一个地址作为起始地址,把寻址指定区视为螺旋环形空间的空间,即,在列方向,例如,寻址指定区超出全部矩形区的最下行,进而要访问其下方向的行的情况下,自动地完成地址的修正计算,使得寻址指定区返回到全部矩形区域的最上行,从此顺序地面向下侧的行进行访问这样修正地址,使地址沿着列方向环形连续,而且在横方向如果访问到寻址指定区某行的结束,则访问从其下一行的起始进行访问这样的空间,因此能够把输出地址的每一个都保留在使用者指定的寻址范围内。
从而,能够不溢出使用者设定的数据存储区内有限的区域,自动地发生多维区域的地址,在寻址指定区溢出使用者设定的区域时,可以仅把要溢出的地址的数据进行DMA传送,因此可以解决在以往的多维地址发生装置中成为问题的,如果抑制所使用的数据存储器区则DMA传送个数增大,而如果抑制DMA传送个数则数据存储区增大这样相矛盾的问题,进而,由于寻址指定区原本是连接的区域,因此不需要进行判断是否溢出使用者设定的区域以及地址修正,因而,能够不导致电路规模或者CPU处理的增大,而且,用于进行每一个地址的溢出判断或者地址修正的多维地址或者交织地址,来自地址反方向的地址也都能够用同一个电路对应,能够提供不限制要溢出的区域的最初存在位置或者形状,能够抑制数据存储区增大这样的地址生成装置。
其中,由地址修正装置能够修正的地址范围在多维地址发生装置输出的下一个周期的地址值是从寻址指定区的起始地址偏离到低地址值侧的情况下该值限定在位于直到从起始地址减去寻址指定区的数据数时的地址值的范围内,或者在从寻址指定区的最终地址偏离到高地址值侧的情况下该值限定在位于直到在最终地址值中加上寻址指定区的数据数时的地址值的范围内。
另外,在以上的说明中,示出了作为输出下一个周期的地址107的装置使用了二维地址发生装置106的情况,而除此以外,也能够实施使用了一维地进行连续地址发生的地址发生装置,以及与数据量多维地向任意方向增加相对应的地址发生装置的结构。
实施形态2
本实施形态2是在寻址指定区要溢出使用者设定的区域时,修正并生成地址使得收容在该使用者设定区域内的同时,即使在寻址指定区的最终地址没有设定比起始地址大的值的状态下,也能够与此进行对应的例子。
图3是示出本发明实施形态2的地址发生装置,该图3与第2方案的发明相对应。在图3中,201是寻址指定区设定装置,202是存储用于设定地址寻址指定区(例如在处理器内部的数据存储器中要映射的区域)的最终地址的最终地址存储装置,203是存储用于设定寻址指定区的起始地址的起始地址存储装置,由于通过变更它们的设定值,其区域指定可变,因此寻址指定区在存储器(例如内部存储器)内能够滚动。另外,204是作为最终地址存储装置202的输出的最终地址,205是作为起始地址存储装置203的输出的起始地址,206是能够发生任意的二维矩形区域的地址的二维地址发生装置,207是作为二维地址发生装置206的输出的下一个周期的地址,208是输入最终地址204和下一个周期的地址207并且进行它们的大小比较的第1比较装置,209是输入起始地址205和下一个周期的地址207并且进行它们的大小比较的第2比较装置,210是作为第1比较装置的208的输出的第1比较结果,211是作为第2比较装置209的输出的第2比较结果,212是输入第1比较结果210和第2比较结果211以及下一个周期的地址207检测下一个周期的地址207接近最终地址204与起始地址205中的哪一个,输出作为输出的检测结果213的地址检测装置,214是把最终地址204,起始地址205,下一个周期的地址207,第1比较结果210,第2比较结果211,检测结果213作为输入进行地址修正运算的地址修正装置,215是存储修正后的地址值的地址指针,216是作为地址指针215的输出的输出地址。
其次说明其动作。寻址指定区设定装置201由用于存储使用者设定的寻址指定区的最终地址(EA)的最终地址存储装置202和用于存储起始地址(SA0)的起始地址存储装置203构成,它们输出最终地址204和起始地址205。另一方面,二维地址发生装置206进行用于访问二维区域的地址计算,输出下一个周期的地址207(A)。第1比较装置208把最终地址204(EA)和下一个周期的地址207(A)作为输入,把从最终地址204(EA)减去了下一个周期的地址207(A)的值作为第1比较结果210(Y)输出。
Y=EA-A                                    (式2-1)
同样,第2比较装置209把起始地址205(SA0)和下一个周期的地址207(A)作为输入,把从下一个周期的地址207(A)减去了起始地址205(SA0)的值作为第2比较结果211(X)输出。
X=A-SA0                                   (式2-2)
地址检测装置212把最终地址204(EP),起始地址205(SA0),第1比较结果210(Y),第2比较结果211(X)以及下一个周期的地址207(A)作为输入,检测以下两种状态并输出检测结果213。首先第1,检测
S=EA-SA                                   (式2-3)的计算结果(S)的代码比特,根据其正负明确最终地址204(EA)与起始地址205(SA0)在存储器内的地址位置关系。
即,如果如图4a所示那样,(式2-3)的计算结果(S)是正,则最终地址204(EA)是比起始地址205(SA0)大的地址值,反之,如果(式2-3)的计算结果(S)是负,则如图4b所示那样,最终地址204(EA)与起始地址205(SA0)的大小关系反转,这种情况下,从起始地址205(SA0)到目标存储器的最终的地址和从目标存储器的第0号地址到最终地址204(EA)称为寻址指定区。
其次,在根据(式2-3)的计算结果(S),下一个周期的地址207(A)溢出寻址指定区时,检测是超过起始地址205(SA0)溢出,还是超过最终地址204(EA)溢出。超过哪一方溢出,根据下一个周期的地址207(A)在存储区的地址位置位于更接近于起始地址205(SA0)与最终地址204(EA)的哪一方的位置进行判断。
地址修正装置214把最终地址204,起始地址205以及下一个周期地址207和地址检测装置212的检测结果213作为输入,根据式2-3的计算结果和代码比特,在代码比特是“0”即计算结果是正时,根据
修正地址a=下一个周期的地址207-(最终地址204-起始地址205+1)                                       (式2-4)
修正地址b=下一个周期的地址207+(最终地址204-起始地址205+1)                                        (式2-5)计算修正地址a和修正地址b,当代码比特是“1”即计算结果是负时,根据
修正地址a’=下一个周期的地址207-~(起始地址205-最终地址204-1)                                   (式2-6)
修正地址b’=下一个周期地址207+~(起始地址205-最终地址204-1)                                      (式2-7)计算修正地址a’和修正地址b’。另外,“~”表示在各加权的比特中把比特的值进行反转。把第1比较结果210,第2比较结果211的2个输入和检测结果213作为选择信号,选择修正地址a、修正地址b、修正地址a’、修正地址b’、下一个周期的地址207中的某一个,存储在地址指针215中,地址指针215的输出成为本实施形态2的地址发生装置所输出的输出地址216。
图24示出了选择信号和成为地址指针215的输入的地址的关系。
根据该结构,首先,由使用者确定的寻址指定区的最终地址和起始地址分别存储在最终地址存储装置202和起始地址存储装置203中,另外,对于二维地址发生装置206进行对应于希望访问区域的设定。其次,如果开始寻址,则由第1比较装置208以及第2比较装置209检测二维地址发生装置206计算出的下一个周期的地址207是否溢出寻址指定区,进而,由地址检测装置212检测寻址指定区的起始地址205与最终地址204在存储器中为何种位置关系,以及下一个周期的地址217的地址位置更接近于最终地址204的地址位置与起始地址205的地址位置的哪一方,。而且根据这些信息,计算修正地址a,修正地址b,修正地址a’,修正地址b’这4个修正地址,从这些地址再加上下一个周期的地址207的5个地址中选择一个存储在地址修正装置214内的地址指针215中。该地址指针215的输出成为输出地址216。
这样,依据本实施形态2,则二维地址发生装置206发生的地址如果溢出由使用者通过寻址指定区设定装置201指定的区域,则通过地址修正装置214,把寻址指定区的最终地址的下一个地址作为起始地址,自动地完成把寻址指定区视为螺旋环形空间的地址的修正计算,因此总能够把输出地址保留在使用者设定的寻址指定区内,在相当于这样的实施形态1的效果的基础上,通过使用地址检测装置212,当起始地址205与最终地址204在存储器内的位置关系反转时,即,在进行寻址指定区跨过了目标存储器的最后的地址这样的设定时,能够自动地发生多维区域的地址,能够检测跨过了地址指定区的下一个周期的地址207,在寻址指定区内进行修正,由于不溢出使用者设定的数据存储器内所限定的区域内,而仅把要溢出的地址的数据进行DMA传送,因此能够解决以往的多维地址发生装置中成为问题的,如果抑制所使用的地址存储区则DMA传送个数增大,如果抑制DMA传送个数则数据存储区增大这样相矛盾问题,进而,能够提供不导致电路规模或者CPU的处理的增大,而且不限制要溢出的区域的最初存在位置或者形状,能够抑制数据存储区的增大的地址生成装置。
另外,在以上的说明中,作为输出下一个周期的地址207的装置示出了使用二维地址发生装置206的情况,而除此以外,也能够实施使用了一维地进行连续的地址发生的地址发生装置,以及与数据量向任意方向的增加相对应的地址发生装置的结构。
实施形态3
该实施形态3在设定寻址指定区时,代替指定最终地址和起始地址,通过指定最终地址和寻址指定区的总数据数,能够设定寻址指定区。
图5示出本发明实施形态3的地址生成装置,该图5对应于第3方案的发明。在图5中,301是寻址指定区设定装置,302是存储用于设定地址指定区的最终地址的最终地址存储装置,303是存储构成寻址指定区的总数据数的总数据数存储装置,由于通过改变它们的设定值,其区域指定可变,因此寻址指定区(例如在处理器内部的数据存储器中要映射的区域)在存储器内(例如内部存储器)能够滚动。另外,304是作为最终地址存储装置302的输出的最终地址,305是作为总数据数存储装置303的输出的总数据数,306是能够发生任意的二维矩形区域的地址的二维地址发生装置,307是作为二维地址发生装置316的输出的下一个周期的地址,308是把最终地址30 4和下一个周期的地址307作为输入进行大小比较的第1比较装置,309是把起始地址306和下一个周期的地址307作为输入进行大小比较的第2比较装置,310是作为第1比较装置308的输出的第1比较结果,311是作为第2比较装置309的输出的第2比较结果,312是把最终地址304,总数据数305,下一个周期的地址307,第1比较结果310,第2比较结果311作为输入进行地址修正运算的地址修正装置,313是存储修正后的地址值的地址指针,314是作为地址指针313的输出的输出地址,315是从最终地址304减去总数据数305的减法器,316是从最终地址304减去总数据数305得到的起始地址。
其次,说明其动作。寻址指定区设定装置301由用于存储使用者设定的寻址指定区的最终地址的最终地址存储装置302,用于存储寻址指定区的总数据数的总数据数存储装置303和从最终地址304减去总数据数305的减法器315构成,输出最终地址304和总数据数305以及从最终地址304减去总数据数305得到的起始地址316。另一方面,二维地址发生装置306进行用于二维区域访问的访问计算输出下一个周期的地址307。第1比较装置308把最终地址304和下一个周期的地址307作为输入,如果下一个周期的地址307的值大于最终地址304的值则把第1比较结果310置为ON,如果小于或者等于则置为OFF后输出。同样,第2比较装置309把起始地址316和下一个周期的地址307作为输入,如果下一个周期的地址307的值大于起始地址316的值,则把第2比较结果311置为ON,如果大于或者等于则置为OFF后输出。地址修正装置312把总数据数305以及下一个周期的地址307作为输入,根据
修正地址a=下一个周期的地址307-总数据数     (式3-1)
修正地址b=下一个周期的地址307+总数据数    (式3-2)计算修正地址a以及修正地址b,把第1比较结果310和第2比较结果311的2个输入作为选择信号,选择修正地址及a、修正地址b、下一个周期的地址307中的一个存储在地址指针313中,地址指针313的输出成为本实施形态3的地址发生装置输出的输出地址。
作为地址修正装置312的选择方法,在第1比较结果310是ON时选择修正地址a,在第2比较结果311是ON时选择修正地址b,在第1比较结果310以及第2比较结果311每一个都是OFF时选择下一个周期的地址307。
在该实施形态3中,把寻址指定区的设定方法,从设定最终地址和起始地址变更为设定最终地址和总数据数,而且对于起始地址设置减法器自动地计算出该地址值这一点与实施形态1、2不同,其它的结构由于与实施形态1相同,因此在这里简略地说明其动作。
即,作为存储了寻址指定区的总数据数的总数据数存储装置303的输出的总数据数305输入到减法器315中,通过与最终地址304的减法运算计算出起始地址316,另一方面输入到地址修正装置312中,如式3-1以及式3-2所示那样进行修正地址的计算。
这样,依据本实施形态3,则如果二维地址发生装置306发生的地址溢出由使用者在寻址指定区设定装置301中指定的区域,则通过地址修正装置把地址指定区的最终地址的下一个地址作为起始地址自动地完成把寻址指定区视为螺旋环形的空间的地址的修正计算,因此总能够把输出地址保留在使用者设定的寻址区域内,能够解决如果抑制使用的数据存储区则DMA传送个数增大,如果抑制DMA传送个数则使用的数据存储区增大这样相矛盾的问题,进而,能够不导致电路规模或者CPU处理的增大,而且,能够不限制要溢出的区域的最初存在位置或者形状,抑制数据存储区的增大,在这样与实施形态1相当的效果的基础上,由于通过最终地址和总数据数设定使用者设定的寻址指定区,因此能够简化地址修正装置312进行的地址修正计算,能够减小硬件规模。
另外,对于实施形态2,也可以与该实施形态3同样地把寻址指定区的设定方法从设定最终地址和起始地址变更为设定最终地址和总数据数。
进而,如图6所示,通过设定起始地址和寻址指定区的总数据数,设定寻址指定区。
在图6中,301是寻址指定区设定装置,303是存储构成寻址指定区的总数据数的总数据数存储装置,300是存储用于设定寻址指定区的起始地址的起始地址存储装置,317是在起始地址316中加入总数据数305的加法器,其它与图5相同。
在该图6中,把寻址指定区的设定方法从设定最终地址和起始地址变更为设定起始地址和总数据数,而且对于最终地址设置加法器自动地计算该地址值这一点与实施形态1、2不同,其它的结构由于与实施形态1相同,因此在这里简略地说明其动作。
即,作为存储了寻址指定区的总数据数的总数据数存储装置303的输出的总数据数305输入到加法器307中,通过与作为起始地址存储装置300的输出的起始地址316的加法运算,计算出最终地址304,另一方面输入到地址修正装置312,如式3-1以及式3-2所示那样进行修正地址的计算。
这样,如果依据图6的地址生成装置,则由于根据起始地址和总数据数设定使用者设定的寻址指定区,因此能够简化地址修正装置312进行的地址修正计算,能够减小硬件规模。
实施形态4
该实施例形态4通过能够设定在二维地址发生装置中开始其地址发生的开始地址,使得能够简单地进行以后的地址计算。
图7示出本发明实施形态4的地址生成装置,该图7对应于第4方案的发明。在图7中,401是寻址指定区设定装置,402是存储用于设定地址指定区的最终地址的最终地址存储装置,403是存储用于设定地址指定区的起始地址的起始地址存储装置,由于通过改变它们的设定值,其区域指定可变,因此寻址指定区(例如在处理器内部的数据存储器中要映射的区域)在存储器内(例如内部存储器)能够滚动。另外,404是作为最终地址存储装置402的输出的最终地址,405是作为起始地址存储装置402的输出的起始地址,406是能够发生任意的二维矩形区域的地址的二维地址发生装置,407是作为二维地址发生装置406的输出的下一个周期的地址,408是把最终地址404和下一个周期的地址407作为输入进行大小比较的第1比较装置,409是把起始地址405和下一个周期的地址407作为输入进行大小比较的第2比较装置,410是作为第1比较装置408的输出的第1比较结果,411是作为第2比较装置409的输出的第2比较结果,412是把下一个周期的地址407,第1比较结果410,第2比较结果411作为输入进行地址修正运算的地址修正装置,413是存储修正后的地址值的地址指针,414是作为地址指针413的输出的输出地址。另外,在二维地址发生装置406的构成要素中,415、416分别是第1次、第2次扫描方向的增量值设定寄存器,417是选择第1次扫描方向的增量值设定寄存器415和第2次扫描方向的增量值设定寄存器416的输出中的某一个进行输出的第1多路器,418是开始地址设定寄存器,419、420分别是对应于第1次、第2次扫描方向的第1、第2累加寄存器,421是选择第1累加寄存器419和第2累加寄存器420的输出中的某一个进行输出的第2多路器,422是把第2多路器421的输出与第1多路器417的输出进行相加运算的加法器,423是选择加法器422与开始地址设定寄存器418的输出中的某一个进行输出的第3多路器,424、425分别是第1次、第2次扫描方向的数据数设定寄存器,426是根据第1次扫描方向的数据数设定寄存器424和第2次扫描方向的数据数设定寄存器425的设定值生成控制信号的控制电路,427是使用者设定的开始地址,428是选择开始地址427与输出地址414中的某一个进行输出的第4多路器。
在该实施形态4中,除了对于二维地址发生装置406,在设定使用者希望访问的二维矩形区域时,对于用于设定开始地址的开始地址设定寄存器418,经过第4多路器写入作为地址修正装置412的输出的输出地址414这一点以外,与实施形态1相同,由于其它部分也与实施形态1相同,因此在这里省略说明。
第4多路器428选择由使用者设定的开始地址427与输出地址414中的某一个,其输出被输入到开始设定寄存器418中。第4多路器428的选择信号由控制电路426进行控制使得仅在开始了寻址的最初的周期选择输出地址414。
这样,依据本实施形态4,如果二维地址发生装置406发生的地址溢出由使用者用寻址指定区设定装置410指定的区域,则根据地址修正装置412把寻址指定区的最终地址的下一个地址作为起始地址,自动地完成把寻址指定区视为螺旋环形的空间的地址的修正计算,因此总能够使输出地址保留在使用者设定的寻址区域内,能够解决如果抑制使用的数据存储区则DMA传送个数增大,如果抑制DMA传送个数则数据存储区增大这样相矛盾的问题,进而,能够不导致电路规模或者CPU处理的增大,而且,不限制要溢出的区域的最初存在位置或者形状,能够抑制数据存储区的增大,在这样的实施形态1的效果的基础上,在设定使用者希望访问的二维矩形区时,对于用于设定开始地址的开始地址设定寄存器418,通过设置用于在开始了寻址的最初的周期写入输出地址414的第4多路器428,在使用者希望访问的二维矩形区域的开始地址溢出了寻址指定区时,能够通过地址修正装置412把修正了的地址作为输出地址414继续进行输出,把使用者设定的开始地址427的值通过实际上访问了存储器的输出地址414进行改写,能够把修正后的地址作为开始地址进行以后的访问。
这样,在进行把被微处理器进行的存储器作为信号源或者资源的矢量运算等时,能够减轻根据前一次进行的矢量运算的开始地址进行新的寻址时由程序进行的地址计算所需要的运算量。
实施形态5
实施形态5通过使得在二维地址发生装置中能够设定开始其地址发生的开始地址,使得能够简单地进行以后的地址计算,同时,在设定寻址指定区时,代替指定最终地址和起始地址,指定最终地址和寻址指定区的总数据数,使得能够设定寻址指定区。
图8示出本发明实施形态5的地址生成装置,该图8对应于第5方案,第6方案,第7方案的发明。在图8中,501是寻址指定区设定装置,502是存储用于设计寻址指定区的最终地址的最终地址存储装置,503是存储构成寻址指定区的总数据数的总数据数存储装置,由于通过改变它们的设定值,其区域指定可变,因此寻址指定区(例如在处理器内部的数据存储器中要映射的区域)在存储器内(例如内部存储器)能够滚动。另外,504是作为最终地址存储装置502的输出的最终地址,505是作为总数据数存储装置503的输出的总数据数,506是能够发生任意的二维矩形区域的地址的二维地址发生装置,507是作为二维地址发生装置506的输出的下一个周期的地址,508是把最终地址504和下一个周期的地址507作为输入进行大小比较的第1比较装置,509是把总数据数505和下一个周期的地址507作为输入进行大小比较的第2比较装置,510是作为第1比较装置508的输出的第1比较结果,511是作为第2比较装置509的输出的第2比较结果,512是把总数据数505、下一个周期的地址507、第1比较结果510、第2比较结果511作为输入进行地址修正运算的地址修正装置,513是作为地址修正装置512的输出的修正地址,514是从最终地址504减去总数据数505的减法器,515是从最终地址504减去总数据数505而得到的起始地址。另外,在二维地址发生装置506的构成要素中,516、517分别是第1次、第2次扫描方向的增量值设定寄存器,518是选择第1次扫描方向的增量值设定寄存器516和第2次扫描方向的增量值设定寄存器517的输出中的某一个进行输出的第1多路器,519是开始地址设定寄存器,520、521分别是对应于第1次、第2次扫描方向的第1、第2累加寄存器,522是选择第1累加寄存器520和第2累加寄存器521的输出中的某一个进行输出的第2多路器,523是把第2多路器522的输出与第1多路器518的输出进行相加运算的加法器,524是选择加法器523与开始地址设定寄存器519的输出中的某一个进行输出的第3多路器,525,526分别是第1次、第2次扫描方向的数据数设定寄存器,527是根据第1次扫描方向的数据数设定寄存器525和第2次扫描方向的数据数设定寄存器526的设定值生成控制信号的控制电路,528是使用者设定的开始地址,529是选择开始地址528与输出地址530中的某一个进行输出的第4多路器,530是作为第1累加寄存器520的输出的输出地址。
在该实施形态5中,代替具有存储在地址修正装置512中修正了的地址的地址指针,利用二维地址发生装置506具有的第1次方向累加寄存器520以及第2次方向累加寄存器521存储修正地址,以第1次方向的累加寄存器的输出作为输出地址530这一点不同,其它的结构由于是把实施形态3以及实施形态4组合起来的结构,因此在这里省略说明。
如果依据本实施形态5,则在实施形态3以及4的效果的基础上,对于溢出了寻址指定区的地址,由地址修正装置512修正了的修正地址513由于存储在二维地址发生装置506内的第1次以及第2次方向的累加寄存器中,因此在进行在处理器进行的把存储器作为信号源或者资源的矢量运算等时,二维地址发生装置输出的下一个周期的地址不显示不能够由地址修正装置进行修正的区域的地址。
顺便要指出的是,在实施形态3以及4的结构中,在下一个周期的地址溢出寻址指定区时能够由地址修正装置修正的范围限定在与位于寻址指定区的起始地址以前的寻址指定区相同的区域以及与位于最终地址以后的寻址指定区相同的区域。
另外,对于该实施形态5也能够把实施形态2组合起来实施,图9示出该例子。
在图9中,531是地址检测装置,该装置把最终地址504(EA),起始地址515(SA0),第1比较结果510(Y),第2比较结果511(X)以及下一个周期的地址507(A)作为输入,检测以下两种状态并且输出检测结果513。首先第1,检测
S=EA-SA0                             (式2-3)的计算结果(S)的代码比特,根据其正负明确最终地址504(EA)与起始地址515(SA0)在存储器内的地址位置的关系。
即如图4a所示那样,如果(式2-3)的计算结果(S)是正则最终地址504(EA)是比起始地址515(SA0)大的地址值,反之如果(式2-3)的计算结果(S)是负则如图4b所示那样最终地址504(EA)与起始地址515(SA0)的大小关系反转,这种情况下,把从起始地址515(SA0)到目标存储器的最终地址和从目标存储器的第0个地址到最终地址504(EA)称为寻址指定区。
其次,在根据(式2-3)的计算结果(S),下一个周期的地址507(EA)溢出寻址指定区时,检测是超出起始地址515(SA0)溢出的地址还是超出最终地址504(EA)溢出的地址。这时,根据下一个周期的地址507(A)在存储区中的地址位置位于更接近起始地址515(SA0)与最终地址504(EA)的哪一个的位置判断是超出哪一个溢出的地址。
这样,通过使用地址检测装置531,当起始地址515与最终地址504在存储器内的位置关系反转的情况下,即,进行了寻址指定区跨过目标存储器的最后地址那样的设定的情况下,也能够检测溢出了寻址指定区的下一个周期的地址507,在寻址指定区内进行修正,能够不溢出使用者设定的数据存储器内的有限的区域内,自动地发生多维区域的地址,寻址指定区在要溢出使用者设定的区域时,由于可以仅把所需要的数据进行DMA传送,因此能够解决在以往的多维地址发生装置中成为问题的,或者增大DMA传送个数或者增大所使用的数据存储区这样相矛盾的问题,进而,能够提供不导致电路规模或者CPU处理的增大,而且,不限制要溢出区域的最初存在位置或者形状,能够抑制数据存储区的增大的地址生成装置。
进而,如图10所示,也可以通过设定起始地址和寻址指定区的总数据数,而能够设定寻址指定区。
在图10中,501是寻址指定区设定装置,503是存储构成寻址指定区的总数据数的总数据数设定装置,500是存储用于设定寻址指定区的起始地址的起始地址设定装置,517是在起始地址515上加入数据数505的加法器,其它与图5相同。
在图10中,把寻址指定区的设定方法从设定最终地址和起始地址变更为设定起始地址和总数据数,而且对于最终地址设置加法器自动地计算该地址这一点与实施形态4不同,其它的结构由于与实施形态4相同,因此在这里简略地说明其动作。
即,作为存储了寻址指定区的总数据数的总数据数设定装置503的输出的总数据数505输入到加法器517中,通过与起始地址515的加法运算计算最终地址504,另一方面输入到地址修正装置512中,如式3-1以及式3-2所示那样进行修正地址的计算。
这样,如果依据图10的地址生成装置,则由于根据起始地址和总数据数设定使用者设定的寻址指定区,因此,能够简化地址修正装置512进行的地址修正计算,能够减小硬件规模。
另外,如图11所示,通过在图10中设置地址检测装置531,则即使进行了寻址指定区跨过目标存储器的最后地址那样的设定的情况下,也能检测溢出了寻址指定区的下一个周期的地址507,在寻址指定区内进行修正,能够不溢出使用者设定的数据存储器内所限定的区域内,自动地发生多维区域的地址。
实施形态6
该实施例形态6是可以切换输出进行了地址修正的地址的模式与直接输出以往的二维地址的模式的例子。
图12示出本发明实施形态6的地址生成装置,该图12对应于第8方案,第9方案,第10方案的发明。在图12中,601是寻址指定区设定装置,602是存储用于设计地址指定区的最终地址的最终地址存储装置,603是存储构成寻址指定区的总数据数的总数据数存储装置,由于通过改变它们的设定值,其区域指定可变,因此寻址指定区(例如在处理器内部的数据存储器中要映射的区域)在存储器内(例如内部存储器)能够滚动。另外,604是作为最终地址存储装置602的输出的最终地址,605是作为总数据数存储装置603的输出的总数据数,606是能够发生任意的二维矩形区域的地址的二维地址发生装置,607是作为二维地址发生装置506的输出的下一个周期的地址,608是把最终地址604和下一个周期的地址607作为输入进行大小比较的第1比较装置,609是把总数据数605和下一个周期的地址607作为输入进行大小比较的第2比较装置,610是作为第1比较装置608的输出的第1比较结果,611是作为第2比较装置609的输出的第2比较结果,612是把总数据数605、下一个周期的地址607、第1比较结果610、第2比较结果611作为输入进行地址修正运算的地址修正装置,613是作为地址修正装置612的输出的修正地址,614是把修正地址513作为输入的地址指针,615是从最终地址604减去总数据数605的减法器,616是从最终地址604减去总数据数605得到的起始地址。另外,在二维地址发生装置606的构成要素中,617、618分别是第1次、第2次扫描方向的增量值设定寄存器,619是选择第1次扫描方向的增量值设定寄存器617和第2次扫描方向的增量值设定寄存器618的设定值中的某一个进行输出的第1多路器,620是开始地址设定寄存器,621、622分别是对应于第1次、第2次扫描方向的第1、第2累加寄存器,623是选择后述的第5多路器631和第2累加寄存器622的输出中的某一个进行输出的第2多路器,624是把第2多路器623的输出与第1多路器619的输出进行相加运算的加法器,625是选择加法器624与开始地址设定寄存器620的输出中的某一个进行输出的第3多路器,626、627分别是第1次、第2次扫描方向的数据数设定寄存器,628是根据第1次扫描方向的数据数设定寄存器626和第2次扫描方向的数据数设定寄存器627的设定值生成控制信号的控制电路,629是使用者设定的开始地址,630是选择使用者设定的开始地址629与起始地址616中的某一个进行输出的第4多路器,631是选择第1累加寄存器621与地址指针614的输出中的某一个进行输出的第5多路器,632是作为第5多路器631的输出的输出地址,633是选择下一个周期的地址607与修正地址613中的某一个进行输出的第6多路器,634是作为第5多路器631与第6多路器633的多路器的选择信号的模式切换信号。
在本实施形态6中,设置了第5多路器631和第6多路器633,使得如果溢出寻址指定区,则根据切换是输出进行了修正的地址还是直接输出以往的二维地址的切换信号进行切换,通过第6多路器能够选择把第2次方向累加寄存器的输入是作为下一个周期的地址607还是作为修正地址613,通过第5多路器631能够选择把输出地址632作为地址指针614的输出还是作为第1次方向累加寄存器621的输出,这一点与其它实施形态不同,其它的结构与把实施形态3以及实施形态4组合起来的结构相同,因此在这里省略说明。
根据该结构,如果切换信号是表示通常的二维地址发生装置的信号,则第6多路器633选择下一个周期的地址607,第5多路器631选择第1次方向累加寄存器621的输出,作为输出地址632,因此生成与寻址指定区设定装置601指定的寻址指定区的范围无关的地址。
另外,如果模式切换信号表示没有从寻址指定区溢出的寻址模式,则由于第6多路器633选择修正地址613,第5多路器631选择地址指针614的输出,因此修正了地址的地址成为输出地址632而没有从寻址指定区溢出。
如以上那样,依据本实施形态6,如果二维地址发生装置606发生的地址溢出由使用者用寻址指定区设定装置601指定的地址,则通过地址修正装置612把寻址指定区的最终地址的下一个地址作为起始地址,自动地完成把寻址指定区视为螺旋环形空间的地址的修正计算,因此总能够把输出地址保留在使用者设定的寻址区域内,能够解决如果抑制使用数据存储区则DMA传送个数增大,如果抑制DMA传送个数则数据存储区增大这样相矛盾的问题,进而,能够不导致电路规模或者CPU处理的增大,而且不限制要溢出的区域的最初存在地址或者形状,能够抑制数据存储区的增大的同时,由于通过最终地址和总数据数设定使用者设定的寻址指定区,因此能够简化地址修正装置612进行的地址修正计算,能够减小硬件规模,以及,在设定使用者希望访问的二维矩形区时,对于用于设定开始地址的开始地址设定寄存器620,通过设置用于在开始了寻址的最初周期写入输出地址632的第4多路器630,在使用者希望访问的二维矩形区的开始地址溢出寻址指定区时,把由地址修正装置612修正了的地址作为输出地址632继续进行输出,根据实际上访问了存储器的输出地址632改写使用者设定的开始地址629的值,由此,能够把修正后的地址作为开始地址进行以后的访问,在具有上述实施形态3以及实施形态4的效果的基础上,在使用者用寻址指定区设定装置601进行设定,进行了发生不溢出寻址指定区那样的二维地址的处理后,在希望进行与通常的寻址指定区没有关系的二维地址发生的处理时,具有能够通过把模式切换信号进行切换容易地切换功能,能够削减处理量的效果,同时,进行了地址修正的地址以及不进行地址修正的地址的生成能够在同一个电路中进行。
这样,本实施形态6的地址生成装置由于根据模式切换信号容易地切换成通常的以往的多维地址生成装置,因此不是仅能够在某种特定的用途中使用,而是对于进行对矩形区的矢量运算那样的处理器的全部,都能够作为高性能的地址生成装置使用。
另外,如图13所示,也可以通过设定起始地址与寻址指定区的总数据数设定寻址指定区。
在图13中,601是寻址指定区设定装置,603是存储构成寻址指定区的总数据数的总数据数设定装置,600是存储用于设定寻址指定区的起始地址的起始地址设定装置,617是在起始地址616上加入总数据数605的加法器,其它与图12相同。
在该图13中,把寻址指定区的设定方法从设定最终地址和总数据数变更为设定起始地址与总数据数,而且对于最终地址设置加法器自动地计算该地址这一点与实施形态6不同,其它的结构由于与实施形态6相同,因此在这里简略地说明其动作。
即,作为存储了寻址指定区的总数据数的总数据数设定装置603的输出的总数据数605输入到加法器617中,通过与起始地址616的加法运算计算最终地址604,另一方面,输入到地址修正装置612中,如式3-1以及式3-2所示那样进行修正地址的计算。
这样,如果依据图13的地址生成装置,则由于根据起始地址和总数据数设定使用者设定的寻址指定区,因此能够简化地址修正装置612进行的地址修正计算,能够减小硬件规模。
另外,也可以把图12所示的第5多路器以及第6多路器适用在实施形态4以及5,即,图7~图11的装置中,使得具有生成进行了地址修正的地址的模式以及不进行地址修正的地址的模式。
实施形态7
本实施形态7是有关使用地址生成装置进行运动矢量检测的运动矢量检测装置。
第14示出作为本发明实施形态7的运动矢量检测装置的处理器,该图14对应于第11方案的发明。在图14中,701是配置在处理器外部的外部存储器,702是在外部存储器701与后述的内部存储器之间进行数据传送的DMA数据传送用总线,703是作为配置在处理器内部的数据存储器的第1内部存储器,同样,704、705是作为配置在处理器内部的数据存储器的第2、第3内部存储器,706是在内部存储器与后述的运算装置之间进行数据存取的内部运算用总线,707是运算装置,708是能够由使用者指定寻址指定区,发生不从其寻址指定区溢出的二维地址的地址发生装置,最好使用图12的地址生成装置,不过也可以使用图1,图3,图5,图6,图7,图8,图9,图10,图11,图13的地址生成装置。709是第1内部存储器的地址,710和712是通常的地址发生装置,711是第2内部存储器的地址,713是第3内部存储器的地址。
其次,说明其动作。把存储在外部存储器701中的图像数据中,成为运动矢量检索对象的图像数据内搜索所必需的数据经过DMA数据传送总线702预先传送到第1内部存储器中。经过内部运算用总线706在运算装置707中进行用于运动矢量检索的运算。
在图像CODEC处理中进行的运动矢量检测处理中,由使用了本实施形态7的地址生成装置,即运动矢量检测装置进行在以往例中叙述的使用了One at a time算法的运动矢量的搜索,使用图14~图17说明。在图14中,存储在外部存储器701中的搜索对象的图像数据中,首先通过DMA传送把一个宏块部分的像素和包含其周围一个像素的18×18像素构成的矩形区域的数据传送到第1内部存储器703中。这样是为了确保检索原点和其接近的8像素的SAD值计算中所必需的图像区域。此时在具有使用者发生第1内部存储器703的地址709的寻址指定区的二维地址发生装置708中,把存储18×18像素部分的数据的区域配置在存储器内,把其预先设定为对于第1内部存储器的寻址指定区。
按照以上叙述的顺序,配置在第1内部存储器703中的图像数据中心的16×16像素首先成为最初的检索原点。另外设在第2内部存储器704中配置着运动矢量处理对象的宏块数据。其次,具有使用者的寻址指定区的二维地址发生装置708对于通常的地址发生装置710,进行预先设定使得访问作为进行SAD计算对象的图像数据的16×16像素的矩形区,发出把第1内部存储器703和第2内部存储器704作为2个信号源的SAD值计算的命令。
图15中示出这时的第1内部存储器703的状态。714是对于第1内部存储器703由使用者设定的18×18像素的寻址指定区,715示出为了使用者访问检索原点进行的二维地址的设定,716是实际上具有寻址指定区的二维地址发生装置708发生的地址。即,第1内部存储器703的地址从地址设定715的1开始顺序地在矩形区访问16×16数据,从发生地址716的1开始顺序地发生。
SAD值的计算由运算装置707进行,经过内部运算用总线存储在资源中。对于第1内部存储器703的检索原点的附近的8像素也顺序地进行以上的处理。这时,对于具有使用者的寻址指定区的二维地址发生装置708,进行把希望访问的二维矩形区的开始地址,即图15中的访问设定715的1的地址值各向右,左,上,下,右斜上,右斜下,左斜上,左斜下各移动一个像素那样的设定,可以进行同样的运算。
其次,作为新的检索原点发现了一个像素上的宏块时,如图16所示,新的检索原点成为访问设定717。而为了搜索新的检索原点附近的8像素,由于在由地址发生装置708的寻址指定区设定装置设定的图16的访问设定717上,需要以“●”表示的a~r的新的像素数据,因此通过DMA传送从外部存储器701补充像素。这时作为使用者进行的设定,可以通过地址发生装置708的二维地址发生装置进行访问在访问设定717上以“●”表示的a~r这样的设定,作为实际上发生的地址,通过修正溢出了寻址指定区(717)的地址的功能,发生在发生地址718上以“●”表示的a~r的地址。在进行求SAD值的运算时,即使是二维地址的寻址,如果设定对访问设定717的a~r进行访问那样的地址,则自动地访问发生地址718的a~r。
另外,为了进行参考,在图17中示出检索原点向一个像素右斜上方的宏块运动时矢量访问设定719和发生地址720。
这样,如果依据本实施形态7,则能够把用内部存储器的寻址指定区指定的区域作为窗口把配置在外部存储器的图像数据进行滚动。由此,使用者能够通过寻址指定区决定内部存储器的使用区域,能够防止因运动矢量检测处理所占有的存储量的增大。
进而,通过检索原点移动仅补充不足的像素,因此例如在把18×18像素的矩形区的数据进行DMA传送时,原本需要324(18×18)像素的数据传送,而在本实施形态7中,可以仅进行图17中以“●”表示的35(=18+18-1)像素的数据传送,能够防止DMA传送数据数的增大。
进而,由于使用者可以不必意识到溢出并访问寻址指定区,可以进行通常那样的访问设定,因此能够减轻地址计算所需要的计算量的增大
由此,本实施形态7通过在运动矢量检测处理中利用该结构,具有能够改善使用以往的地址生装置的处理中的所占有的存储器容量的增大,DMA传送数据数的增大,运算量(地址计算)的增大这样的问题的效果,对于在使用了搭载的存储器容量有限的小型终端,特别是使用了MPEG4等的图像CODEC处理的无线便携终端和抱无线收发装置连接在计算机上的形态下所使用的运动矢量检索处理,发挥巨大的效果。
另外,本实施形态7还能够利用在减少存储器容量,或者滚动方向是二维时的图像显示的滚动显示中。
产业上的可利用性
如以上那样,本发明的地址生成装置以及运动矢量检测装置适用于在生成用于访问矩形区的访问对象的地址时,不超出使用者设定的数据存储区内的有限区域而自动地发生多维区域的地址,适用于进行基于One at a time算法等的运动矢量检测。

Claims (11)

1.一种地址生成装置,其特征在于:具备
用于在存储通过直接存储器访问传送来的数据的存储器内设定由起始地址具有比最终地址小的值的起始地址和最终地址确定的连续寻址区的寻址指定区设定装置;
可以连续地发生多维区域的地址的多维地址发生装置;
比较上述多维地址发生装置顺序发生的各个地址与最终地址的大小的第1比较装置;
比较上述多维地址发生装置顺序发生的各个地址与上述起始地址的大小的第2比较装置;
把上述多维地址发生装置顺序发生的各个地址和上述第1以及第2比较装置的比较结果作为输入,根据上述第1以及第2比较装置的比较结果判断上述多维地址发生装置顺序发生的各个地址是否溢出由上述寻址指定区设定装置指定的寻址指定区,在溢出时把上述各个地址修正为配置在寻址指定区域内的螺旋环形的空间中并且输出,在没有溢出时直接输出上述下一个周期的地址的地址修正装置。
2.一种地址生成装置,其特征在于:具备
用于在存储通过直接存储器访问传送来的数据的存储器内与起始地址和最终地址的值的大小无关设定由起始地址和最终地址确定的连续寻址区的寻址指定区设定装置;
可以连续地发生多维区域的地址的多维地址发生装置;
比较上述多维地址发生装置顺序发生的各个地址与上述最终地址的大小的第1比较装置;
比较上述多维地址发生装置顺序发生的各个地址与上述起始地址的大小的第2比较装置;
根据上述第1比较装置的比较结果和上述第2比较装置的比较结果,检测上述下一个周期的地址值接近于上述起始地址与最终地址的哪一个的地址检测装置;
把上述第1比较装置以及上述第2比较装置和上述地址检测装置的输出以及上述下一个周期的地址作为输入,根据上述第1以及第2比较装置的比较结果和上述地址检测装置的输出,判断上述多维地址发生装置顺序发生的各个地址是否溢出由上述寻址指定区设定装置指定的寻址指定区,在溢出时修正上述各个地址使得配置在寻址指定区内螺旋环形的空间中并且进行输出,在没有溢出时直接输出上述下一个周期的地址的地址修正装置。
3.如权利要求1或者2中记述的地址生成装置,其特征在于:
把上述寻址指定区设定装置构成为上述寻址指定区设定最终地址和总数据数,从上述最终地址减去上述总数据数,自动地生成起始地址。
4.如权利要求1或者2中记述的地址生成装置,其特征在于:
可以连续发生多维区域的地址的上述多维地址发生装置具有设定多维地址区的开始地址,各个扫描方向的增量值以及各个扫描方向的数据数的装置,
和用于累加各个扫描方向的的地址的独立的累加寄存器,
在扫描方向改变时的地址计算中通过对于与扫描方向相对应的累加寄存器加入与上述扫描方向对应的上述增量值计算并输出下一个周期的地址,在寻址的开始周期根据上述地址修正装置的输出更新上述多维区域的开始地址。
5.如权利要求1或者2中记述的地址生成装置,其特征在于:
可以连续发生多维区域的地址的上述多维地址发生装置具有设定多维地址区的开始地址,各个扫描方向的增量值以及各个扫描方向的数据数的数据数设定装置,用于累加各个扫描方向的地址的独立的累加寄存器,
在扫描方向改变时的地址计算中通过对于与扫描方向相对应的累加寄存器加入与上述扫描方向对应的增量值计算并输出下一个周期的地址,在用于累加上述各个扫描方向的地址的累加寄存器中,最低一级的扫描方向的累加寄存器存储地址修正装置输出的修正地址,在其它的累加寄存器中,选择存储地址修正装置输出的修正地址和上述下一个周期的地址值中的一个,把存储上述最低一级的扫描方向地址的累加寄存器的输出作为输出地址。
6.如权利要求5中记述的地址生成装置,其特征在于:
把寻址指定区设定装置构成为寻址指定区设定最终地址和总数据数,通过从上述最终地址减去上述总数据数自动地生成上述起始地址。
7.如权利要求5中记述的地址生成装置,其特征在于:
上述多维地址发生装置在寻址的开始周期中根据地址输出更新多维区域的开始地址。
8.如权利要求1或者2中记述的地址生成装置,其特征在于:
可以连续发生多维区域的地址的上述多维地址发生装置具有设定多维区域的开始地址,各个扫描方向的增量值以及各个扫描方向的数据数的数据数设定装置,用于累加各个扫描方向的地址的独立的累加寄存器,
在扫描方向改变时的地址计算中通过对于与扫描方向相对应的累加寄存器加入对应于上述扫描方向的增量值计算并输出下一个周期的地址值,在上述用于累加各个扫描方向的地址的累加寄存器中,最低一级的扫描方向的累加寄存器存储上述下一个周期的地址值,其它的累加寄存器选择存储地址修正装置输出的修正地址和上述下一个周期的地址值中的一个,选择存储最低一级的扫描方向的地址的上述累加寄存器的输出与上述地址修正装置在地址点输出的地址的一方作为输出地址。
9.如权利要求8中记述的地址生成装置,其特征在于:
把上述寻址指定区设定装置构成为通过寻址指定区设定最终地址和总数据数,从上述最终地址减去上述总计数据数自动地生成起始地址。
10.如权利要求8中记述的地址生成装置,其特征在于:
在寻址的开始周期根据地址输出更新多维区域的开始地址。
11.一种运动矢量检测装置,在由处理器进行的运动矢量检测处理中,其特征在于:具备
预先存储图像数据的处理器外部的存储器;
从上述处理器外部的存储器仅把在运动矢量检测运算中使用的图像数据进行直接存储器访问传送并预先存储的处理器的内部存储器;
进行运动矢量检测运算的运算装置;以及
能够访问内部存储器的矩形区域那样生成地址的权利要求1~10的任一项中记述的地址生成装置。
CNB99815072XA 1998-11-27 1999-11-26 地址生成装置以及运动矢量检测装置 Expired - Fee Related CN1134734C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP33808398 1998-11-27
JP338083/1998 1998-11-27

Publications (2)

Publication Number Publication Date
CN1332870A true CN1332870A (zh) 2002-01-23
CN1134734C CN1134734C (zh) 2004-01-14

Family

ID=18314753

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB99815072XA Expired - Fee Related CN1134734C (zh) 1998-11-27 1999-11-26 地址生成装置以及运动矢量检测装置

Country Status (5)

Country Link
US (1) US6662288B1 (zh)
EP (1) EP1146427A4 (zh)
JP (1) JP3564395B2 (zh)
CN (1) CN1134734C (zh)
WO (1) WO2000033194A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382062C (zh) * 2004-08-26 2008-04-16 国际商业机器公司 具有多维行行走功能的dma控制器的系统和方法
CN107077334A (zh) * 2014-12-27 2017-08-18 英特尔公司 从多维阵列预取多维元素块的硬件装置和方法
CN109089120A (zh) * 2011-09-06 2018-12-25 英特尔公司 分析辅助编码

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930439B2 (en) 2006-03-31 2011-04-19 Panasonic Corporation Command output control apparatus
CN101241505B (zh) * 2008-02-01 2013-08-21 张建中 一种生成、部署和运行多维地址可扩展关联标记语言的方法和装置以及系统
KR101612780B1 (ko) * 2009-11-13 2016-04-18 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9459868B2 (en) * 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9459867B2 (en) * 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9280347B2 (en) 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9710266B2 (en) * 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
JP7218556B2 (ja) * 2018-12-06 2023-02-07 富士通株式会社 演算処理装置および演算処理装置の制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924432A (en) 1986-03-29 1990-05-08 Hitachi, Ltd. Display information processing apparatus
JPS63271606A (ja) 1987-04-30 1988-11-09 Fanuc Ltd デ−タ処理方式
US4959776A (en) * 1987-12-21 1990-09-25 Raytheon Company Method and apparatus for addressing a memory by array transformations
JP2854420B2 (ja) 1990-02-21 1999-02-03 松下電器産業株式会社 多次元アドレス発生器およびその制御方式
JPH05334178A (ja) 1992-05-29 1993-12-17 Oki Electric Ind Co Ltd ループ状データ発生回路
JPH0662390A (ja) 1992-08-07 1994-03-04 Sanyo Electric Co Ltd 動画像符号化復号化装置
US5448310A (en) * 1993-04-27 1995-09-05 Array Microsystems, Inc. Motion estimation coprocessor
FR2718262B1 (fr) * 1994-03-31 1996-05-24 Sgs Thomson Microelectronics Mémoire tampon à adressage modulo.
JPH08202524A (ja) 1995-01-30 1996-08-09 Mitsubishi Denki Semiconductor Software Kk グラフィック表示スクロール装置
JPH10215457A (ja) * 1997-01-30 1998-08-11 Toshiba Corp 動画像復号方法及び動画像復号装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382062C (zh) * 2004-08-26 2008-04-16 国际商业机器公司 具有多维行行走功能的dma控制器的系统和方法
CN109089120A (zh) * 2011-09-06 2018-12-25 英特尔公司 分析辅助编码
CN109089120B (zh) * 2011-09-06 2024-05-17 英特尔公司 分析辅助编码
CN107077334A (zh) * 2014-12-27 2017-08-18 英特尔公司 从多维阵列预取多维元素块的硬件装置和方法
US10656944B2 (en) 2014-12-27 2020-05-19 Intel Corporation Hardware apparatus and methods to prefetch a multidimensional block of elements from a multidimensional array
CN107077334B (zh) * 2014-12-27 2020-10-27 英特尔公司 从多维阵列预取多维元素块的硬件装置和方法

Also Published As

Publication number Publication date
EP1146427A4 (en) 2005-07-27
US6662288B1 (en) 2003-12-09
WO2000033194A1 (en) 2000-06-08
EP1146427A1 (en) 2001-10-17
JP3564395B2 (ja) 2004-09-08
CN1134734C (zh) 2004-01-14

Similar Documents

Publication Publication Date Title
CN1134734C (zh) 地址生成装置以及运动矢量检测装置
CN1662068A (zh) 动态图像编码装置及动态图像处理装置
CN1774071A (zh) 使用二维处理元件阵列的移动估计装置及其方法
CN1394326A (zh) 图像显示装置
CN100351816C (zh) 数据传送控制装置、电子装置和数据传送控制方法
CN1008021B (zh) 图象数据处理方法及其系统
CN1731402A (zh) 用协处理器加速文件系统操作的方法及装置
CN1363891A (zh) 数据传送控制装置和电子设备
CN1101737A (zh) 数字图象处理方法及装置
CN101060587A (zh) 图像显示方法,图像显示装置以及成像装置
CN1495605A (zh) 独立处理多个指令流、软式控制各指令流的处理功能的多程序流程同时处理器
CN1353397A (zh) 图像传感设备以及控制图像传感设备的信息处理设备和方法
CN1501259A (zh) 便于具有通用读/写模式的存储器数据存取的装置和方法
CN1920781A (zh) 任务执行装置及方法
CN1551592A (zh) 数据传输控制装置、电子设备及数据传输控制方法
CN1830002A (zh) 图像处理装置、图像处理方法以及失真校正方法
CN1506971A (zh) 半导体器件、图像数据处理装置和方法
CN1197082C (zh) 使用存储器的方法、两维数据存取存储器以及操作处理设备
CN1213372C (zh) 数据传送控制装置、电子机器及数据传送控制方法
CN101267565B (zh) 一种视频编码中运动矢量搜索方法及装置
CN1097239C (zh) 图形计算机
CN1178165C (zh) 图象处理装置、图象处理方法
CN1232216A (zh) 能够通过有效地使用数据线提高生产能力的信息处理方法和信息处理装置
CN1254740C (zh) 使用协处理器的数据处理
CN1146796C (zh) 堆栈式寄存器堆及其控制方法

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
PB01 Publication
SE01 Entry into force of request for substantive examination
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: 20040114

Termination date: 20121126