CN101339649A - 运算装置和图像滤波装置 - Google Patents
运算装置和图像滤波装置 Download PDFInfo
- Publication number
- CN101339649A CN101339649A CNA2008101281134A CN200810128113A CN101339649A CN 101339649 A CN101339649 A CN 101339649A CN A2008101281134 A CNA2008101281134 A CN A2008101281134A CN 200810128113 A CN200810128113 A CN 200810128113A CN 101339649 A CN101339649 A CN 101339649A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- data
- register
- mobile vector
- arithmetical unit
- 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.)
- Pending
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 12
- 230000014509 gene expression Effects 0.000 description 25
- 230000005055 memory storage Effects 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000001343 mnemonic effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 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
- 230000007423 decrease Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002421 finishing Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种运算装置和图像滤波装置,本发明的运算装置具有用于进行滤波处理的运算器(201)。对运算器(201)的数据供给在由触发器构成的内部寄存器(100)中进行。从内部寄存器(100)读出的数据向移位寄存器(200)输出,在各周期向运算器(201)供给数据。此外,具有按照移动矢量而变更滤波器的运算方向的机构,用同一指令进行水平滤波或垂直滤波,防止分支指令引起的性能下降。能高速进行滤波处理。
Description
技术领域
本发明涉及包含进行图像的滤波处理的指令、电路的处理器。
背景技术
在活动图像中,由于帧中的物体移动或者相机摇动镜头而在帧间有移动,前面的帧和当前的帧并不完全相同。可是,前后图像的相关大。
所谓移动补偿是指在帧间预测中通过与前后帧的图像比较来使用向哪个方向移动多少这样的矢量数据进行图像分析的技术。通过移动补偿而成功地提高图像数据的压缩率。
在很多图像帧编码方式中,将图像帧分割为预定的块而进行处理。如果减小该块尺寸,就能进行详细的预测。而块数增加,据此有移动矢量信息本身的数量增加且编码量增加的倾向。其结果是要求硬件具有大的处理能力。
此外,用低比特率对图像编码时,如果不进行任何的滤波处理,在译码图像中产生的块变形原样被存储到帧存储器中。当参照该产生了变形的图像而将下一帧译码时,就具有图像质量的恶化进一步传播的问题。为了防止图像质量恶化的传播,进行滤波处理,防止块变形的发生是必不可少的。可是,在滤波处理的解决上,对硬件要求大的处理能力。
以往,进行图像的滤波处理时,实施滤波器的阶数的时钟周期(周期)是必要的,有必要在各时钟周期从存储器供给数据。进而,根据基于移动矢量的探查位置,水平滤波器和垂直滤波器被变更,需要每次判段滤波处理的方向,向处于滤波处理的程序分支。这时,在各周期从存储器读出像素数据,超出所需地消耗读出周期数,导致处理性能下降。
在特开2002-8025号公报(以下,专利文献1)中,提示了削减来自存储器的数据读出,用输入缓存器蓄积数据并提供给运算器的方法。
[专利文献1]日本特开2002-8025号公报
发明内容
可是,在图像的滤波处理时,从存储器读出像素数据,超出所需地消耗了读出周期数,导致处理性能下降。
此外,有必要按照移动矢量来变更水平滤波器和垂直滤波器,但是还有必要变更图像的读出方法。因此,需要分支处理。
在近年的处理器中,通过分支预测来防止处理性能的下降,但是在图像处理时,分支预测较难,所以性能下降显著。
也考虑因为电路安装上的问题,所以对于这些滤波处理,也无法准备充分的内部寄存器。
本发明就是为了解决上述问题而提出的,其目的在于提供一种能高速进行滤波处理的运算装置和图像滤波装置。
从本说明书的描述和附图将得以明确本发明上述的和其他的目的以及新的特征。
如下简单说明本申请中提出的发明中代表性的概要。
本发明的运算装置包含具有多个能执行以第一周期进行一个特定处理的第一运算处理和以周期不同的第二周期进行其他特定处理的第二运算处理的运算器的SIMD运算器、指令译码器,其特征在于:按照所投入的指令代码,指令译码器能规定多个运算器中工作的数量。
该运算装置的特征在于:上述SIMD运算器包含移位寄存器;按照投入的指令代码,指令译码器对移位寄存器投入数据。
此外,该运算装置还包含:内部寄存器和索引生成器;根据来自指令译码器的输入,输出内部寄存器的地址,参照该地址,将内部寄存器的数据投入移位寄存器。
该运算装置的第一周期由预定数量的时钟周期构成,在各第一周期输出第一运算结果,在第一周期中的各时钟周期结束后,对上述移位寄存器中的数据进行移位。该运算装置在内部寄存器中存储第一运算结果。
该运算装置的第二周期由预定数量的时钟周期构成,在各第二周期输出第二运算结果,在第二周期中的各时钟周期结束后,对移位寄存器中的数据进行移位。该运算装置在内部寄存器中存储第二运算结果。
运算装置在第二运算处理中将第一运算结果作为上述数据投入。
本发明的图像滤波装置包含移位寄存器、具有多个能执行以第一周期进行一个特定处理的第一运算处理和以与第一周期不同的第二周期进行其他特定处理的第二运算处理的运算器的SIMD运算器、指令译码器、内部寄存器、索引生成器、移动矢量寄存器,按照投入的指令代码,指令译码器规定多个运算器中工作的数量,按照所投入的指令代码,指令译码器在移动矢量寄存器存储移动矢量数据,参照指令译码器的输出和移动矢量数据,索引生成器输出内部寄存器的地址,参照地址,将内部寄存器的数据投入移位寄存器,SIMD运算器进行运算。
本发明的图像滤波装置包含移位寄存器、具有多个能执行以第一周期进行一个特定处理的第一运算处理和以与第一周期不同的第二周期进行其他特定处理的第二运算处理的运算器的SIMD运算器、存储多个移动矢量数据的移动矢量寄存器、指令译码器、内部寄存器、索引生成器,按照投入的指令代码,指令译码器规定多个运算器中工作的数量,按照来自指令译码器的输出,移动矢量寄存器将适当的移动矢量数据对索引生成器输出,参照指令译码器的输出和上述移动矢量数据,索引生成器输出内部寄存器的地址,参照地址,将内部寄存器的数据对移位寄存器投入,SIMD运算器进行运算。
如下简单说明由本申请提出的发明中代表性的部分得到的效果。
本发明的运算装置和图像滤波装置无论硬件结构如何,能在内部寄存器中存储图像数据,对运算器投入该数据,高效进行处理,实现向存储器的数据访问的削减。
此外,能提供一种运算装置和图像滤波装置,通过进行考虑了移动矢量的滤波处理,消除分支处理,削减向指令高速缓冲存储器的访问。
能提供一种运算装置和图像滤波装置,通过削减向存储器的数据访问或向指令高速缓冲存储器的指令取得访问,能抑制耗电并关照环境。
附图说明
图1是用于说明6阶FIR滤波处理和2阶滤波处理的概念图。
图2是用于说明本发明的横向6阶FIR滤波处理的概念图。
图3是用于说明本发明的纵向6阶FIR滤波处理的概念图。
图4是用于说明本发明的斜向6阶FIR滤波处理的概念图。
图5是用于说明2阶滤波处理的概念图。
图6是表示本发明第1实施方式的运算装置的数据流的概念图。
图7是表示本发明第1实施方式的向运算装置的指令代码的结构的结构图。
图8是表示使用本发明的运算装置的处理器的结构的结构图。
图9是表示基于本发明的运算装置中包含的数据对准器的数据排列的图。
图10是表示本发明第1实施方式的运算装置的6阶FIR滤波处理和2阶滤波处理的图。
图11是表示假定内部寄存器是10字节宽度时本发明第1实施方式的运算装置存储14字节的数据的数据存储方法的概念图。
图12是表示将图11的数据投入本发明第1实施方式的运算装置的方法的图。
图13是表示本发明第2实施方式的运算装置的数据流的概念图。
符号的说明
100-内部寄存器;101-指令译码器;102-SIMD运算器;103-数据对准器;104-移动矢量寄存器;105-索引生成器;150-运算装置;151-指令高速缓冲存储器;152-数据高速缓冲存储器;153-存储器I/F;154-I/O;155-内部总线;200-移位寄存器;201-运算器;202-运算结果寄存器;400-操作数;401-运算宽度;402-第一源寄存器编号;403-第二源寄存器编号;404-目的寄存器编号。
具体实施方式
参照附图说明本发明实施例。
(关于假定的处理)
首先,说明本发明假定的移动补偿预测处理。
进行移动补偿预测时,一般从参照照片的像素值,通过插补,生成整数像素以下的像素精度的信号。设计为在MPEG-2或MPEG-4中能进行到达1/2像素精度的移动补偿,在H.264/AVC中能进行到达1/4像素精度的移动补偿。
在H.264/AVC中,在导出1/2单位像素(半像素)时和导出1/4单位像素(四分之一像素)时,导出步骤划分为2阶段。首先,最初由参照图像的数据用运算式求出1/2单位像素的数据(6阶FIR滤波处理)。然后,由参照图像和由6阶导出的1/2单位像素来导出1/4单位像素和3/4单位像素(2阶滤波处理)。
图1是从整数像素表示6阶FIR滤波处理和2阶滤波处理的处理内容的概念图。在该图中,用○表示的A1是成为导出对象的1/2像素,用口表示的B 1、B2、B3、B4、B5、B6是参照像素(整数像素)。
这里,在导出1/2单位像素A1时,由前后的整数像素B1、B2、B3、B4、B5、B6的像素,使用以下的数学式进行计算。
A1=(B1-5×B2+20×B3+20×B4-5×B5+B6+16)/32
…(数学式1)
此外,在2阶处理中,按以下那样导出用△表示的1/4单位像素C1。
C1=(A1+B3+1)/2 …(数学式2)
由此,用四分之一像素单位处理横8像素×纵8像素时,作为参照图像,横14像素×纵14像素的数据在处理中成为必要。在本发明中也同样。
这里,将14像素的数据统一存储到存储器,如果能处理就没有问题,但是,因为在现实中电路安装规模上的问题,所以常常难以准备14像素(在本发明中,假定1像素1字节)的运算器。
图2表示通过横向的6阶FIR滤波处理,求出从(-1/2、-1)到(7+1/2、8)的横9像素、纵10像素的图像的滤波处理。
如上所述,在画面全体的移动补偿时,有必要将横14像素×纵14像素的数据作为参照图像600而准备。可是,实际上如果用1次的数据读出处理这些区域的全部时,有时由于兼顾数据总线宽度,安装上产生问题。而在横向的6阶FIR滤波处理时,参照由(-3、-1)、(10、-1)、(10、8)、(-3、8)包围的横14像素×纵10像素。因此,将这些图像一次读入内部的寄存器等中。
使用8个运算器进行横9像素、纵10像素的横向1/2单位像素(半像素)图像的运算时,以(0、0)为基点,求出由(-1/2、-1)、(6+1/2、-1)、(6+1/2、6)、(-1/2、6)所包围的图像500(由虚线包围的范围)。为了导出图像500,使用从输入图像600的(-3、-1)到(9、-1)、(9、6)、(-3、6)所包围的图像范围的整数像素的数据。即,将(-3,-1)到(3、-1)的6像素代入数学式1,计算坐标(-1/2、-1)。此外为了求出由像素(1/2、-1)、(7+1/2、-1)、(7+1/2、6)、(1/2、6)所包围的图像范围501(由点划线所包围的范围),将横像素的合计8像素作为1行运算。
同样,在以(-1/2、0)为基点的横8像素×纵8像素的图像502(由实线包围的范围)、以(1/2、0)为基点的横8像素×纵8像素的图像503(由双点划线包围的范围)、以(-1/2、1)为基点的横8像素×纵8像素的图像504(由细虚线包围的范围)、以(1/2、1)为基点的横8像素×纵8像素的图像505(由细实线包围的范围)中,也进行同样的处理。
根据这些结果,能求出横9像素、纵10像素的横向1/2单位像素(半像素)的数据。
图3是用于说明纵向6阶FIR滤波处理的图。表示由(-1、-1/2)求出横10像素、纵9像素的图像的滤波处理。与图2同样将(0、0)作为基点时,为了求出从(-1、-1/2)开始的横8像素、纵8像素的图像510(由虚线包围的范围),使用输入图像600的(-1、-3)到(6、-3)、(6、9)、(-1、9)所包围的图像范围的整数像素的数据。即,在纵向上导出(-1、-1/2)时,将(-1、-3)、(-1、-2)、(-1、-1)、(-1、0)、(-1、1)、(-1、2)的6像素的数据代入数学式1。为了导出以(-1、1/2)为基点的横10像素、纵9像素的图像511(由实线所包围的地方),合计将9像素作为1行计算纵像素,将这1行的数据存储到处理器内部的寄存器中。
也用同样的处理求出以(0、-1/2)为基点的图像512(由点划线包围的地方)、以(0、1/2)为基点的图像513(由双点划线包围的地方)、以(1、-1/2)为基点的图像514(由细线包围的地方)、以(1、1/2)为基点的图像515(由细虚线包围的地方),作为结果,将横9像素、纵10像素的纵向的1/2单位像素的数据保持在内部的寄存器中。
须指出的是,在本例子中,使用纵向的1/2单位像素(半像素),导出后面描述的斜向的1/2单位像素,所以导出从(-3、-1/2)到(10、-1/2)、(10、7+1/2)、(-3、7+1/2)的图像601。
根据这些导出结果,计算对于斜向的像素。图4是用于说明该斜向的6阶FIR滤波处理的图。想求出斜向的像素时,也进行6阶FIR滤波处理,但是使用图2的横向的滤波处理结果或图3的纵向的滤波处理结果而计算。
用斜向的滤波处理求出的图像是以(-1/2、-1/2)为基点的图像520(用虚线包围的地方)、以(1/2、-1/2)为基点的图像521(用细虚线包围的地方)、以(-1/2、1/2)为基点的图像522(用点划线包围的地方)、以(1/2、1/2)为基点的图像523(用实线包围的地方)。对其进行合成而生成斜向的横9像素、纵9像素的图像。这时,从纵向的滤波处理结果求出所必要的参照像素数据是从(-3、-1/2)到(10、7+1/2)的图像601。对该图像601,进行横向的6阶FIR滤波处理,由此能求出斜向的横9像素、纵9像素的滤波图像,将该结果保管到处理器内部的寄存器中。
使用计算出的纵、横、斜向的图像数据,求出1/4单位像素(四分之一像素)的图像。使用数学式2计算1/4单位像素。然后,根据移动矢量,决定要使用的图像数据。
图5表示取得横4像素、纵4像素的结果的第二次滤波处理。第一次的滤波处理是6阶FIR滤波处理,第二次的滤波处理是2阶滤波处理。因此,为了求出4×4的像素图像而使用9×9的图像数据。内部寄存器将9字节宽度的数据存储到1记录中,在9记录的内部寄存器中存储参照图像610。根据图5所示成为基准的坐标而取得(1/2、1/2)位置的图像的方法在参照图像610中使用从记录2到5的图像数据700,进行横向的6阶滤波,生成半像素图像611。另外,使用所有的记录进行纵向的6阶滤波,但是半像素图像612在从左开始的字节位置只使用从第3字节到第6字节。使用半像素图像611、612进行第2次的滤波处理即2阶滤波,生成四分之一像素图像613。这样向内部寄存器保存1行的数据,所以能容易执行读出和运算。
本发明是考虑使用有限的硬件资源而有效地进行这一系列处理的发明。
(第1实施方式)
图6是表示本发明的运算装置150的基本数据流的概略图,图7是表示对该运算装置150发送的指令(command)的数据形式的结构图。此外,图8是搭载该运算装置150的处理器的概略图。
运算装置150由内部寄存器100、指令译码器101、SIMD(SingleInstruction Stream、Multi Data Stream)运算器102、数据对准器103、移动矢量寄存器104、索引生成器105各模块构成。此外,使用该运算装置150的处理器除了运算装置150,还由指令高速缓冲存储器151、数据高速缓冲存储器152、存储器I/F153、I/O154、内部总线155构成。
内部寄存器100是用于将由数据对准器103排列、划分的参照数据按各数据暂时保持的寄存器组。上述(关于假定的处理)中说明的处理器内部的寄存器假定这里。因此,在本发明中,保管进行横向、纵向、斜向的6阶FIR滤波处理时使用的参照图像数据或进行2阶滤波处理的6阶FIR滤波处理后的图像数据等是本寄存器的主要用途。
指令译码器101是解读从指令高速缓冲存储器发送的指令,对SIMD运算器102、移动矢量寄存器104、索引生成器105指示处理用的模块。此外,在这里,也进行分析指令,对移动矢量寄存器104写入数据的处理。
SIMD运算器102是用于进行SIMD处理的运算器。这里,SIMD处理是指用一个指令(指令组)处理多个数据的处理方式,是在对大量的数据进行同种处理时被使用的。SIMD运算器102由移位寄存器200、运算器201、运算结果寄存器202构成。在本发明中,为了在半像素或四分之一像素的导出中,从多个参照像素一度导出多个结果,用一个指令指示处理。
在本发明中,SIMD运算器102如果能处理上述的数学式1和数学式2就可以了。但是,使其具有此外的功能,具有更多用途,也没有问题。
数据对准器103是用于将从数据高速缓冲存储器152或总线I/F发送的数据分成有意义的数据,存储到内部寄存器100的模块。
移动矢量寄存器104是用于指令译码器101从指令中读出移动矢量的信息,将其作为移动矢量数据暂时存储的寄存器。
索引生成器105是生成指示将内部寄存器100中存储的参照数据中的哪个作为运算对象、SIMD运算器102的移位寄存器200的移位量为何种程度的索引的模块。参考来自指令译码器101的数出和移动矢量寄存器104中存储的移动矢量数据,确定内部寄存器100的地址或寄存器编号,输出。
指令高速缓冲存储器151连接在内部总线155上,指令代码经由内部总线155供给。而且,对指令高速缓冲存储器151输入的指令代码发送给运算装置150。
数据高速缓冲存储器152是供给运算装置150所需要的数据的模块。在数据高速缓冲存储器152没有相应的数据时,通过存储器I/F153,运算装置150从外部存储器(未图示)读出必要的数据。
存储器I/F153是从外部存储器160接受指令代码或数据等的供给的接口部。
I/O154是进行与未图示的外部处理器等的连接时的接口部。
内部总线155是指与处理器中各模块连接的公用的数据通信路。
以下说明该结构下的动作。
指令译码器101取得指令高速缓冲存储器151中存储的指令,根据译码结果,为了输入内部寄存器100,将参照图像数据(整数图像数据)从数据高速缓冲存储器152或外部存储器向数据对准器103发送。
通常,来自数据高速缓冲存储器或总线I/F的数据是2的乘方的数据宽度。可是,内部寄存器100的数据宽度或SIMD运算器102的运算器的数量并不限于2的乘方,可根据安装条件而决定。通过指令译码器101的控制,数据对准器103按以下那样处理参照图像数据(整数图像数据)。
在不到内部寄存器100的数据宽度时,数据对准器103暂时保持所取得的数据,直到成为所指示的数据宽度,等待来自数据高速缓冲存储器或总线I/F的数据。在成为由指令译码器101所指示的数据宽度时,数据对准器103向内部寄存器100写入参照图像数据。
通过指令译码器101,根据用于对内部寄存器100进行访问的基准索引编号300、移动矢量寄存器104中存储的移动矢量数据305,由索引生成器105生成内部寄存器100的索引编号。
SIMD运算器102的移位寄存器200接受由已生成的索引编号所选择的数据。进而,通过指令译码器101输出运算控制信号301,向SIMD运算器102的运算器201发送。
这时的数据是已经由数据对准器103调整后的数据,运算器201按照执行运算指令所需要的数据宽度而进行安装。即,如本实施例那样,如果运算器201有8个,则对SIMD运算器102发送的数据也需要是8个运算器的数据。
须指出的是,如果按需要的量而安装运算器,就有可能增大电路规模。因此,还必须考虑必要性能,削减安装数。无需赘言,要求通过该削减实现所需的性能。
由运算器201运算的反写数据302即使不是2的乘方的字节数,如果是在内部寄存器100的数据宽度以下,就能用1周期写入反写数据302。
据此,即使在运算处理不需要是2的乘方的数据宽度时,通过使运算器201和内部寄存器100与该数据宽度相配合,能提高处理性能。
图7表示用助记(mnemonic)写入用于使图6的运算装置150工作的指令代码的情形。指令代码由表示运算器201的处理方法的操作数400、运算宽度401、表示存在于存储对运算器201投入的运算数据的内部寄存器100的何处的第一源寄存器编号402、第二源寄存器编号403、表示在内部寄存器100的何处保管运算的结果的目的寄存器编号404构成。
该指令代码的特征之处在于,具有表示运算宽度的运算宽度401的字段。该运算宽度401是表示运算器201的工作个数、内部寄存器100的数据宽度的属性值。可是,该属性值的上限并不由运算器201的个数或内部寄存器100的数据宽度制约。在这种情况下,用2周期以上进行运算,输出结果。
本发明的助记有必要记述数据宽度,由此生成指令代码。可是,没必要一定要记述运算宽度401。根据操作数400而唯一决定时,就没必要记述。例如,8位的加法指令为运算宽度16字节,即并行16运算时,假定记述为add8.w16进行表现。
图8是搭载了图6的运算装置150的处理器的概略图。基本上假定通过运算装置150内部的数据对准器103来变更数据的排列顺序,所以运算装置150以外的结构与一般的处理器的结构没有变化。
通过存储指令等输出运算结果时,对数据高速缓冲存储器152发送,或者通过内部总线155、存储器I/F153被保持在外部存储器中。
此外,也能经由内部总线155进行与视频或音频等低速设备的接口即I/O154的收发。
图9是实现数据对准器103的方法之一。表示外部存储器160是64位宽度,内部寄存器100为80位宽度的情形。
根据来自指令译码器101的指令,字节使能控制部203生成地址信号。根据该地址信号,确定外部存储器160的地址。向内部寄存器100写入从外部存储器160读出的数据时,生成作为写入定时的使能信号。根据地址的低位,在第一次的外部存储器160的读出中,能判段能向内部寄存器100写入的位置。
即,取得了对准的外部存储器上的数据线1000通过字节使能控制部203向内部寄存器数据1100写入全部数据。
在下一周期,从外部存储器160的数据线1001读出内部寄存器数据1100的剩下的数据,通过字节使能控制部203生成字节使能信号310,向内部寄存器数据1100进行写入。
这时,关于从外部存储器读出的数据中未向内部寄存器100进行写入的数据,暂时被保持,在下次的访问中使用,由此能削减读出周期(从图9不知道怎样一次保持)。
图10表示作为图像处理,进行2次滤波处理时的数据流。在本图中,使用14字节的数据而进行6阶滤波处理,在纵、横、斜都生成9字节的半像素的数据。然后,进而使用这9字节的数据,进行2阶滤波处理,结果生成8字节的四分之一像素的数据。
首先,将14字节宽度数据500中是否适当的数据投入SIMD运算器102。这时,9字节的结果成为必要,所以使SIMD运算器的8个运算器201工作。
为了进行6阶FIR滤波处理,用6周期进行数据的投入,在各周期移动1字节,投入SIMD运算器102。因此,9字节+6阶-1的字节数成为必要,投入所需的字节数成为14字节。
通过移位寄存器200,每次能将移动1字节的数据投入SIMD运算器102,在6周期后取得9字节的运算结果。该运算结果向内部寄存器100写回,在下一2阶滤波器中再度被使用。这时,内部寄存器100的数据宽度不是9字节时,9字节以外的部分可以是任意的值。
为了下一2阶滤波处理,将内部寄存器100中保存的9字节的数据投入运算器201。这时,使8个运算器201工作。由于进行2阶滤波处理,所以第1周期投入开始的8字节,在下一周期投入移位了1字节的数据。在2周期的处理结束的时刻,能取得8字节的结果,运算结果202向内部寄存器100写回。据此,在6阶滤波处理后,能实现2阶滤波处理。
图11表示用10字节宽度定义内部寄存器100时的14字节宽度的数据存储方法。通常,按照14字节的数据宽度而规定内部寄存器100的数据宽度,但是在最大宽度对于全处理,使用次数极端少时,为了削减内部寄存器100的电路规模,跨多个寄存器存储,能削减电路规模。当然这时,读出端口数为2。
在寄存器0和寄存器1中保存数据1300和1301,构成像素数据1的14字节。同样,使用寄存器2和寄存器3的数据1302和数据1303构成像素数据2的14字节。使用时,例如将寄存器4指定为源,记述数据宽度14和助记代码,能将寄存器4和寄存器5的数据向移位寄存器200投入。
图12表示在10字节宽度的内部寄存器100中存储14字节宽度的数据时运算器的滤波处理。
在图像压缩技术中,进行6阶滤波处理后而要进行2阶滤波处理时,从14像素生成9像素的图像,进而通过2阶滤波处理而生成8像素的图像。这样的处理时,有必要在内部寄存器100中保持14像素的数据,第1行的14像素的图像数据1中,高位10字节作为数据1300在寄存器0保存,低位4字节作为数据1301在寄存器1保存。这些数据向SIMD运算器102投入,由移位寄存器200修整。横向的6阶滤波处理从14像素数据的最初6像素求出。因此,能用移位寄存器200在各周期通过每次向运算器201投入1字节而求出。在6周期后输出的运算结果202向内部寄存器100写回,投入下一滤波处理。
根据以上的结构,即使运算处理需要不是2的乘方的数据宽度时,也能通过将运算器201和内部寄存器100与该数据宽度相配合,而能提高处理性能。
(第2实施方式)
图13表示能按照移动矢量,变更投入的数据,用1指令进行滤波处理的运算装置的数据流。与第1实施方式的运算装置的不同之处在于,移动矢量寄存器104被置换为移动矢量寄存器170,从总线I/F写入假定的移动矢量的处理;和将索引生成器105变更为索引生成器171。
实际上,在H.264中,对于一个块的移动矢量的处理模式限于40-50的处理。
因此,将该处理模式(移动矢量)作为数据向移动矢量寄存器170写入。然后,移动矢量判断器106从移动矢量寄存器170抽出移动矢量,为了从移动矢量判断器106进行适当的处理,设定内部寄存器100的地址,能在SIMD运算器102的移位寄存器200设定。
以下,详细描述移动矢量寄存器170写入后的工作。
为了通过指令译码器101进行向内部寄存器100的访问,通过移动矢量选择信号304,从移动矢量寄存器170中选择适当的数据(移动矢量305),移动矢量判断器106参照适当的移动矢量305。
此外,根据从指令译码器101输出的移动矢量判断控制信号308,变更使用正参照的移动矢量305的内部运算方式。例如是2阶段滤波处理时,用于变更在第1阶段和第2阶段的移动矢量305的处理方式。
由移动矢量判断器106所决定的偏移值与基本索引编号300相加,选择向SIMD运算器102输入的寄存器数据303。移位寄存器200取得被选择的数据。然后,进而通过指令译码器101输出运算控制信号300,向SIMD运算器102的运算器201通知运算的种类。
此外,通过由移动矢量判断器106对移位寄存器200输出的控制信号线309,进行来自移位寄存器200的输出数据的加权,运算器201用其进行运算处理。
移位寄存器200的数据向运算器201发送,但是这时,运算器201的安装数按照运算指令所需的数据宽度而进行安装。即,作为运算结果,如果9个运算结果必要,则运算器201的安装数就变为9个。该运算器的安装数,如果最大数安装,就有可能增大电路规模,所以考虑所需性能,能削减安装数。
据此,由运算器201运算的反写数据302即使不是2的乘方的字节数,如果在内部寄存器100的数据宽度以下,反写数据302就能用1周期写入。
以上,根据实施例具体说明由本发明人提出的发明,但是本发明并不限于上述实施例,在不脱离其主旨的范围内,当然能进行各种变更。
工业可利用性
本发明在进行需要多次滤波处理的数据处理时是有效的。虽然在本说明书中是以H.264AVC等的图像译码、编码为例进行了说明,但本发明并不局限于此,即使在声音等的处理中也能适用。
Claims (12)
1.一种运算装置,包括:具有多个能执行以第一周期进行一个特定处理的第一运算处理和以与上述第一周期不同的第二周期进行其他特定处理的第二运算处理的运算器的SIMD运算器;和指令译码器,
其特征在于:
按照所投入的指令代码,上述指令译码器能规定上述多个运算器中进行工作的数量。
2.根据权利要求1所述的运算装置,其特征在于:
上述SIMD运算器还包含移位寄存器;
按照所投入的指令代码,上述指令译码器向上述移位寄存器投入数据。
3.根据权利要求2所述的运算装置,其特征在于:
还包括内部寄存器和索引生成器;
根据来自上述指令译码器的输入来输出上述内部寄存器的地址,并参照上述地址来将上述内部寄存器的数据投入上述移位寄存器。
4.根据权利要求3所述的运算装置,其特征在于:
上述第一周期由预定数量的时钟周期构成,在各上述第一周期输出第一运算结果,并在上述第一周期中的各时钟周期结束后对上述移位寄存器中的数据进行移位。
5.根据权利要求4所述的运算装置,其特征在于:
在上述内部寄存器中存储上述第一运算结果。
6.根据权利要求5所述的运算装置,其特征在于:
上述第二周期由预定数量的时钟周期构成,在各上述第二周期输出第二运算结果,并在上述第二周期中的各时钟周期结束后对上述移位寄存器中的数据进行移位。
7.根据权利要求6所述的运算装置,其特征在于:
在上述内部寄存器中存储上述第二运算结果。
8.根据权利要求7所述的运算装置,其特征在于:
将上述第一运算结果作为上述数据投入到上述第二运算处理中。
9.一种图像滤波装置,包括:移位寄存器;具有多个能执行以第一周期进行一个特定处理的第一运算处理和以与第一周期不同的第二周期进行其他特定处理的第二运算处理的运算器的SIMD运算器;指令译码器;内部寄存器;索引生成器;以及移动矢量寄存器,
其特征在于:
按照所投入的指令代码,上述指令译码器规定上述多个运算器中进行工作的数量;
按照所投入的指令代码,上述指令译码器在上述移动矢量寄存器中存储移动矢量数据并且进行输出;
参照上述指令译码器的输出和上述移动矢量数据,上述索引生成器输出上述内部寄存器的地址,并参照上述地址来将上述内部寄存器的数据投入上述移位寄存器,上述SIMD运算器进行运算。
10.一种图像滤波装置,包括:移位寄存器;具有多个能执行以第一周期进行一个特定处理的第一运算处理和以与第一周期不同的第二周期进行其他特定处理的第二运算处理的运算器的SIMD运算器;存储多个移动矢量数据的移动矢量寄存器;指令译码器;内部寄存器;以及索引生成器,
其特征在于:
按照所投入的指令代码,上述指令译码器规定上述多个运算器中进行工作的数量;
按照来自上述指令译码器的输出,上述移动矢量寄存器将适当的移动矢量数据向上述索引生成器输出;
参照上述指令译码器的输出和上述移动矢量数据,上述索引生成器输出上述内部寄存器的地址,并参照上述地址来将上述内部寄存器的数据向上述移位寄存器投入,上述SIMD运算器进行运算。
11.根据权利要求1所述的运算装置,其特征在于:
具有保持移动矢量的移动矢量寄存器,包含解读在第一运算处理和第二运算处理时能选择由指令代码所指定的移动矢量寄存器的指令的译码器。
12.根据权利要求11所述的运算装置,其特征在于:
包含译码器,该译码器解读按照从被选择的移动矢量寄存器输出的移动矢量来变更进行第一运算处理或第二运算处理的垂直滤波还是水平滤波的处理方法的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007177299A JP2009015637A (ja) | 2007-07-05 | 2007-07-05 | 演算ユニット及び画像フィルタリング装置 |
JP2007177299 | 2007-07-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101339649A true CN101339649A (zh) | 2009-01-07 |
Family
ID=40213710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101281134A Pending CN101339649A (zh) | 2007-07-05 | 2008-07-03 | 运算装置和图像滤波装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090013152A1 (zh) |
JP (1) | JP2009015637A (zh) |
KR (1) | KR20090004574A (zh) |
CN (1) | CN101339649A (zh) |
TW (1) | TW200915883A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010192983A (ja) * | 2009-02-16 | 2010-09-02 | Renesas Electronics Corp | フィルタ処理装置及び半導体装置 |
US8171258B2 (en) * | 2009-07-21 | 2012-05-01 | Apple Inc. | Address generation unit with pseudo sum to accelerate load/store operations |
CN104126169B (zh) * | 2011-12-22 | 2018-11-09 | 英特尔公司 | 用于在两个向量寄存器的相应打包数据元素之间执行绝对差计算的系统、装置和方法 |
US20190205738A1 (en) * | 2018-01-04 | 2019-07-04 | Tesla, Inc. | Systems and methods for hardware-based pooling |
CN110522441B (zh) * | 2019-08-01 | 2022-03-08 | 北京今科医疗科技有限公司 | 一种心电数据处理方法及装置 |
-
2007
- 2007-07-05 JP JP2007177299A patent/JP2009015637A/ja not_active Withdrawn
-
2008
- 2008-06-05 TW TW097120971A patent/TW200915883A/zh unknown
- 2008-06-26 KR KR1020080061002A patent/KR20090004574A/ko not_active Application Discontinuation
- 2008-07-03 CN CNA2008101281134A patent/CN101339649A/zh active Pending
- 2008-07-07 US US12/168,416 patent/US20090013152A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
TW200915883A (en) | 2009-04-01 |
KR20090004574A (ko) | 2009-01-12 |
US20090013152A1 (en) | 2009-01-08 |
JP2009015637A (ja) | 2009-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102258414B1 (ko) | 처리 장치 및 처리 방법 | |
CN107563952B (zh) | 可编程二维图像处理器上的卷积神经网络 | |
Nuño-Maganda et al. | Real-time FPGA-based architecture for bicubic interpolation: an application for digital image scaling | |
CN101116341B (zh) | 用于进行视频运动补偿的高速缓存方法及设备 | |
CN116541647A (zh) | 运算加速器、处理方法及相关设备 | |
CN106066783A (zh) | 基于幂次权重量化的神经网络前向运算硬件结构 | |
CN108021528B (zh) | Slam运算装置和方法 | |
CN108629406B (zh) | 用于卷积神经网络的运算装置 | |
CN110073329A (zh) | 访存设备、计算设备和应用于卷积神经网络运算的设备 | |
CN101339649A (zh) | 运算装置和图像滤波装置 | |
EP2819415B1 (en) | Image decoding apparatus | |
CN102158694B (zh) | 一种基于gpu的遥感图像解压缩方法 | |
CN102087740A (zh) | 用于通用计算的纹理单元 | |
KR102636925B1 (ko) | 픽셀 커널들을 페치할 때 메모리 레이턴시를 감소시키기 위한 방법들, 시스템들, 및 장치 | |
CN108073549B (zh) | 卷积运算装置及方法 | |
CN112784973A (zh) | 卷积运算电路、装置以及方法 | |
CN105847819A (zh) | 图像处理设备和半导体设备 | |
KR20190095462A (ko) | 멀티 코어 이미지 프로세서에서의 애플리케이션 소프트웨어의 구성 | |
CN108415881A (zh) | 卷积神经网络的运算装置及方法 | |
CN111047037B (zh) | 数据处理方法、装置、设备及存储介质 | |
WO2021070303A1 (ja) | 演算処理装置 | |
CN100469146C (zh) | 视频图像运动补偿装置 | |
CN103188487B (zh) | 视频图像中的卷积方法及视频图像处理系统 | |
CN114648444A (zh) | 应用在神经网络数据处理中的向量上采样计算方法及装置 | |
Penny et al. | Power-efficient and memory-aware approximate hardware design for HEVC fme interpolator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
COR | Change of bibliographic data |
Free format text: CORRECT: ADDRESS; FROM: TOKYO, JAPAN TO: KANAGAWA PREFECTURE, JAPAN |
|
TA01 | Transfer of patent application right |
Effective date of registration: 20101021 Address after: Kanagawa Applicant after: Renesas Electronics Corporation Address before: Tokyo, Japan, Japan Applicant before: Renesas Technology Corp. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090107 |