JP2002171401A - SIMD type arithmetic unit having a thinning operation instruction - Google Patents
SIMD type arithmetic unit having a thinning operation instructionInfo
- Publication number
- JP2002171401A JP2002171401A JP2000363759A JP2000363759A JP2002171401A JP 2002171401 A JP2002171401 A JP 2002171401A JP 2000363759 A JP2000363759 A JP 2000363759A JP 2000363759 A JP2000363759 A JP 2000363759A JP 2002171401 A JP2002171401 A JP 2002171401A
- Authority
- JP
- Japan
- Prior art keywords
- thinning
- data
- pixel
- instruction
- register
- 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.)
- Withdrawn
Links
Landscapes
- Editing Of Facsimile Originals (AREA)
- Controls And Circuits For Display Device (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
- Studio Circuits (AREA)
Abstract
(57)【要約】
【課題】 複数画素で構成される画像データの間引き処
理が1命令によって実現できるようになり、計算時間を
大幅に短縮させる。
【解決手段】 間引き演算命令であるか否かを命令デコ
ーダ部102の間引き命令判別部106で判断する。こ
の結果、間引き演算部107は、ソースデータ1内のm
ビットで表される画素データをn個入力すると共に、ソ
ースデータ2で示される間引き対象の画素かどうかのデ
ータを入力する。ソースデータ2で間引き対象画素とし
て設定されている、ソースデータ1内の画素データは無
効扱いにし、その空き領域に隣の有効な画素を詰めるよ
うにして間引き後のデータを生成する。
(57) [Summary] A thinning process of image data composed of a plurality of pixels can be realized by one instruction, and the calculation time is greatly reduced. A thinning-out instruction determining unit determines whether or not the instruction is a thinning-out operation instruction. As a result, the thinning operation unit 107 calculates m
In addition to inputting n pieces of pixel data represented by bits, data indicating whether the pixel is a thinning target pixel indicated by the source data 2 is input. The pixel data in the source data 1 set as the pixel to be thinned out in the source data 2 is treated as invalid, and the vacant area is filled with adjacent valid pixels to generate data after thinning.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、様々な情報、特に
静止画像や動画像などの画像情報の解像度変換、縮小処
理などの際に行なわれるデータの間引き処理を行なうS
IMD型演算装置に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an image processing system for performing a data thinning process which is performed at the time of resolution conversion and reduction processing of various information, particularly image information such as a still image and a moving image.
The present invention relates to an IMD type arithmetic device.
【0002】[0002]
【従来の技術】まず、はじめに、複数の情報を一括して
並列に演算するSIMD(Single Instruction Multiple
Data)型の情報処理装置について説明する。2. Description of the Related Art First, a SIMD (Single Instruction Multiple) that calculates a plurality of pieces of information collectively and in parallel.
Data) type information processing apparatus will be described.
【0003】SIMD型の情報処理装置では、一つの演
算命令でレジスタ内のn個のmビットの情報の要素に対
してそれぞれ演算が行われる(mは自然数、nは2以上
の自然数)。演算としては、加算や減算、乗算などの算
術演算や、論理和や論理積などのビット論理演算、さら
にシフト演算や比較演算などが備わっている。このSI
MD型情報処理装置の命令には、演算の種類を指定する
フィールドや、2つもしくは1つのソースとなるレジス
タを指定するフィールドや、1つのデスティネーション
レジスタを指定するフィールドが含まれている。ただし
一方のソースレジスタがデスティネーションレジスタを
兼ねる場合もある。また、命令の中には、レジスタ内の
要素の分割方法を指定するフィールドも存在し、レジス
タは或る場合にn個のmビットの要素に分割されたり、
他の場合には2n個のm/2ビットの要素に分割された
りする。通常、レジスタ分割はデータ長が8,16,32
ビットの要素に分割されている事が多く、またレジスタ
全長として64ビットや128ビットであることが多い
が、これらに限定される訳ではない。In a SIMD type information processing apparatus, an operation is performed on each of n m-bit information elements in a register by one operation instruction (m is a natural number, and n is a natural number of 2 or more). The operations include arithmetic operations such as addition, subtraction, and multiplication, bit logical operations such as logical sum and logical product, and shift operations and comparison operations. This SI
The instruction of the MD type information processing device includes a field for specifying the type of operation, a field for specifying two or one source register, and a field for specifying one destination register. However, one source register may also serve as the destination register. There are also fields in the instruction that specify how to divide the elements in the registers, and in some cases the registers are divided into n m-bit elements,
In other cases, it is divided into 2n m / 2-bit elements. Normally, register division has a data length of 8, 16, 32.
It is often divided into bit elements, and the total register length is often 64 bits or 128 bits, but is not limited to these.
【0004】このようなSIMD型情報処理装置では、
図4に示されるように指定された2つのレジスタ間の対
応する要素間で演算が行われる。この図ではn=4の場
合が示されているが、他の場合でも同様に全ての要素間
で演算が行われる。また命令内の指定(特定のフィール
ドが予約されている)によって2つのレジスタ間の対応
する要素間ではなく、図5に示されるように一方のレジ
スタのある特定の要素(通常、最上位か最下位の要素)
と、もう一方のレジスタの各要素との演算を行う場合も
ある。この図でもn=4の場合が示されているが、他の
場合でも同様に、一方のレジスタの全ての要素に対して
演算が行われる。さらに、2つのレジスタ間の演算では
なく、図6に示されるように命令のビットパターンに埋
め込まれた即値とソースレジスタの各要素との演算を行
う場合もある。In such a SIMD type information processing apparatus,
The operation is performed between corresponding elements between two designated registers as shown in FIG. In this figure, the case where n = 4 is shown, but in other cases, the operation is similarly performed between all the elements. Also, depending on the designation in the instruction (a particular field is reserved), rather than between the corresponding elements between the two registers, as shown in FIG. (Lower element)
And an operation with each element of the other register. In this figure, the case where n = 4 is shown, but in other cases, the operation is similarly performed on all elements of one register. Further, instead of the operation between the two registers, the operation may be performed between the immediate value embedded in the bit pattern of the instruction and each element of the source register as shown in FIG.
【0005】情報処理装置内部で、以上のような演算命
令を、全てハードウェアによって演算機能を実現してい
る場合(ハードワイヤードロジック方式)と、装置内部に
演算を行うためのプログラムを持ってそのプログラムに
従って演算機能を実現している場合(マイクロプログラ
ム方式)がある。ただし、これは内部構造の相違であ
り、情報処理装置上で動作するプログラムにはどのよう
な影響も与えることはない。[0005] In the information processing apparatus, when all of the above-described operation instructions are realized by hardware to realize the operation function (hard-wired logic system), there is a program for executing the operation inside the apparatus. There is a case where an arithmetic function is realized according to a program (microprogram method). However, this is a difference in the internal structure, and does not have any effect on the program operating on the information processing device.
【0006】さて、ここで画像の縮小処理に関して説明
する。Now, the image reduction processing will be described.
【0007】画像情報の解像度変換、特に縮小処理を行
なう場合に、最も簡単な方法として、ある固定されたパ
ターンを用いて間引き処理を行なう方法がある。図7に
単純な間引きによる画像の縮小処理を示す。ここでは、
256×256画素で構成される画像を160×160
画素の画像に縮小する場合の例が示してある。単純に横
方向に8ドットにつき3ドットを間引く処理を行ない、
縦方向に8ラインにつき3ラインを間引く処理を行なう
ことで、縮小処理が行なわれる。[0007] When converting the resolution of image information, particularly when performing a reduction process, the simplest method is to perform a thinning process using a fixed pattern. FIG. 7 shows an image reduction process by simple thinning. here,
160 × 160 image composed of 256 × 256 pixels
An example in which the image is reduced to a pixel image is shown. Simply perform a process of thinning out 3 dots for every 8 dots in the horizontal direction,
A reduction process is performed by performing a process of thinning out three lines for every eight lines in the vertical direction.
【0008】このとき横方向の間引きをSIMD型の情
報処理装置で行なう場合、図8に示すように8個のデー
タから3個のデータを間引き5個のデータを取り出す処
理が必要となる。データを間引く位置は8個のデータの
うちどの3個でも良いが、なるべく分散して間引くよう
な位置になっている。この間引き処理を汎用の命令だけ
で行なう場合の演算を図9に示す。この図の様に取り出
すデータをマスクし、間引きした隙間を埋めるためにデ
ータをシフトし、それらのデータの論理和をとることで
実現される。At this time, when the horizontal thinning is performed by the SIMD type information processing apparatus, it is necessary to perform a process of extracting three data from eight data and extracting five data as shown in FIG. The position for thinning out the data may be any three of the eight data, but it is a position where the data is thinned out as much as possible. FIG. 9 shows an operation in the case where the thinning processing is performed only by general-purpose instructions. This is realized by masking the data to be taken out as shown in this figure, shifting the data to fill the thinned gap, and taking the logical sum of the data.
【0009】さらに画像情報のより精度の高い縮小処理
を行なう場合に、線形補間したデータを用いる場合があ
る。この場合には単純な間引きは行なわず、図10の様
に8個データから5個のデータを線形補間したデータを
用いて縮小を行なう。縦方向も同様にライン単位での補
間を行なって縮小処理をする。この場合の補間処理を汎
用の命令だけで行なう場合の演算を図11に示す。Further, when performing more accurate reduction processing of image information, linearly interpolated data may be used. In this case, simple thinning-out is not performed, and reduction is performed using data obtained by linearly interpolating five data from eight data as shown in FIG. Similarly, in the vertical direction, a reduction process is performed by performing interpolation in line units. FIG. 11 shows an operation in the case where the interpolation processing in this case is performed using only general-purpose instructions.
【0010】図示の様に、線形補間用の係数を2個を用
意しておき、これらと元データと乗算結果2個を一方を
要素毎にシフトして加算することで、補間処理を行な
う。ただしこの場合も図の様に最後に間引き処理を行な
う必要がある。線形補間以外の補間においても上記のよ
うな間引き処理が必要となる場合がある。As shown in the figure, an interpolation process is performed by preparing two coefficients for linear interpolation, shifting the original data and two multiplication results and shifting one of them for each element. However, in this case as well, it is necessary to perform the thinning process at the end as shown in the figure. In interpolation other than linear interpolation, the above-described thinning processing may be required.
【0011】SIMD型情報処理装置のなかには、図1
3に示すようにレジスタ内の要素を任意の順番に並び変
えることが可能なものもある。このような並び変え命令
がある場合には、上記の間引き処理は容易に実装可能で
ある。Among the SIMD type information processing apparatuses, FIG.
As shown in FIG. 3, some elements in the register can be rearranged in an arbitrary order. When there is such a rearrangement instruction, the above-described thinning process can be easily implemented.
【0012】[0012]
【発明が解決しようとする課題】以上のような画像情報
の間引き処理をSIMD型情報処理装置上で行う場合
に、従来では要素毎のビット論理和や要素毎のシフト演
算など用いて計算しており、これらの汎用の命令だけで
は多くの命令が必要となり、そのために計算時間が長く
なるという問題があった。またSIMD型情報処理装置
内に任意の順番に要素の並び変えが可能な並び変え命令
を実装することは、並び変え演算に大きな回路が必要と
なってしまい、SIMD型情報処理装置自体が大規模に
なってしまうという問題があった。In the case where the above-described image information thinning processing is performed on an SIMD type information processing apparatus, conventionally, calculation is performed by using a bit logical OR for each element or a shift operation for each element. Therefore, there is a problem in that many instructions are required only by these general-purpose instructions, and the calculation time is lengthened. In addition, mounting a reordering instruction capable of rearranging elements in an arbitrary order in the SIMD type information processing device requires a large circuit for the reordering operation, and the SIMD type information processing device itself has a large scale. There was a problem that would be.
【0013】[0013]
【課題を解決するための手段】本発明はかかる問題点に
鑑みなされたものであり、簡単な構成で、複数画素で構
成される画像データの間引き処理が1命令によって実現
でき、しかも計算時間を大幅に短縮させることができる
SIMD型演算装置を提供しようとするものである。SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned problems, and has a simple structure so that the thinning-out processing of the image data composed of a plurality of pixels can be realized by one instruction, and the calculation time is reduced. An object of the present invention is to provide a SIMD-type operation device that can be significantly shortened.
【0014】この課題を解決するため、本発明の間引き
演算命令を備えたSIMD型演算装置は以下の構成を備
える。すなわち、複数のデータを1つの命令で演算して
出力するSIMD型演算装置であって、演算命令が画像
の間引きに関するものであるか否かを判別する判別手段
と、1画素mビットで表現される画素データをn個保持
するソースレジスタと、前記ソースレジスタ内の画素デ
ータそれぞれに対応し、それぞれが間引き対象画素か否
かを示すデータを保持する間引きフラグレジスタと、前
記判別手段で間引き演算命令であると判別したとき、前
記間引きフラグレジスタに間引き対象画素として設定さ
れた、前記ソースレジスタのデータを無効とし、当該無
効として設定された画素データの空きデータ領域に隣の
画素データを詰めることで、連続する有効な画素データ
を生成する演算手段と、該演算手段を出力する出力手段
とを備える。In order to solve this problem, a SIMD type arithmetic unit having a thinning operation instruction according to the present invention has the following configuration. That is, a SIMD-type arithmetic device that calculates and outputs a plurality of data with one command, a determination unit that determines whether or not the calculation command is related to thinning of an image, and is represented by m bits per pixel. A source register holding n pieces of pixel data, a thinning flag register corresponding to each of the pixel data in the source register, and holding data indicating whether or not each pixel is a thinning target pixel, When it is determined that is, the data of the source register, which is set as a thinning target pixel in the thinning flag register, is invalidated, and adjacent pixel data is filled in a free data area of the pixel data set as invalid. , An arithmetic means for generating continuous effective pixel data, and an output means for outputting the arithmetic means.
【0015】[0015]
【発明の実施の形態】以下、添付図面に従って本発明に
係る実施形態を詳細に説明する。Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
【0016】<第1の実施形態>図1は実施形態におけ
るSIMD型情報処理装置を示すブロック図である。実
施形態で特に特徴的な部分は、間引き命令判別部、間引
き演算部、演算データ選択部である。<First Embodiment> FIG. 1 is a block diagram showing a SIMD type information processing apparatus according to an embodiment. Particularly characteristic portions of the embodiment are a thinning-out instruction determining unit, a thinning-out operation unit, and an operation data selecting unit.
【0017】このSIMD型情報処理装置において、1
01の命令供給部は命令を記憶装置から読み込む機能を
実現し、そこで読み込まれた命令は102の命令デコー
ダ部によって命令のビット列から演算の種類やソースレ
ジスタ番号、デスティネーションレジスタ番号を抜きだ
し、103のレジスタファイルをアクセスしてソースデ
ータを読み込む。104の演算部では、命令デコーダ部
から渡された演算の種類を示す制御信号に基づいて、ソ
ースデータの演算を行う。演算の種類に従って2つのソ
ースデータを必要とする演算と、1つのソースデータだ
けを利用する演算に分けられる。この演算結果は、10
5のメモリアクセス部とレジスタ書き込み部に渡され
る。メモリアクセス命令であれば、ここでメモリアクセ
スが行われ、そうでなければメモリアクセス部では何も
せずに、レジスタ書き込み部において演算結果やメモリ
アクセス結果をデスティネーションレジスタに書き込
む。以上が、情報処理装置内での演算の流れである。In this SIMD type information processing apparatus, 1
The instruction supply unit 01 implements a function of reading an instruction from a storage device, and the instruction read out therefrom is used by an instruction decoder unit 102 to extract the type of operation, source register number, and destination register number from the bit string of the instruction. Access source register data and read source data. The operation unit 104 performs an operation on source data based on a control signal indicating the type of operation passed from the instruction decoder unit. According to the type of operation, the operation is divided into an operation requiring two source data and an operation using only one source data. The result of this operation is 10
5 is passed to the memory access unit and the register writing unit. If it is a memory access command, the memory access is performed here. Otherwise, the memory access unit does nothing and the operation result and the memory access result are written in the destination register in the register writing unit. The above is the flow of the calculation in the information processing device.
【0018】本実施形態では、命令デコーダ部に間引き
命令判別部106を用意し、そこで読み込んだ命令が特
別に用意した間引き命令であるかどうかを判別する。も
し間引き命令であれば、演算部104に渡される制御信
号内に間引き命令であることを示す信号が出力される。
また、演算部104にはソースデータから間引き処理を
行う間引き演算部107を用意する。また、演算データ
選択部108には間引き命令であることを示す信号が命
令デコーダ部から出力されていた場合に、間引き演算部
による演算結果を、演算データとして選択する回路を加
える。以上のようなモジュールを付加することで、本発
明の間引き処理を行う情報処理装置が実現される。In the present embodiment, a thinning-out instruction determining unit 106 is provided in the instruction decoder unit, and it is determined whether the read instruction is a specially prepared thinning-out instruction. If it is a thinning command, a signal indicating the thinning command is output in the control signal passed to the arithmetic unit 104.
Further, the arithmetic unit 104 is provided with a thinning arithmetic unit 107 for performing thinning processing from source data. Further, the operation data selection unit 108 is provided with a circuit for selecting, as operation data, the operation result of the thinning operation unit when a signal indicating a thinning instruction is output from the instruction decoder unit. By adding the modules as described above, an information processing apparatus that performs the thinning processing of the present invention is realized.
【0019】以下、実施形態では、説明を統一するた
め、レジスタに格納されたデータ順は、そのレジスタの
最上位に記憶アドレスの低位のデータが格納されてお
り、間引き処理の結果はレジスタの上位につめて格納さ
れるものとして説明する。但し、逆順の場合、すなわ
ち、レジスタ内の各要素の間引きを処理の結果を格納す
るときに、レジスタの下位につめて格納されるようにす
るようにしても勿論構わない。In the following, in the embodiment, in order to unify the description, the order of the data stored in the register is such that the lower order data of the storage address is stored at the uppermost position of the register, and the result of the thinning process is the upper order of the register. The following description is based on the assumption that the information is stored. However, in the case of the reverse order, that is, when thinning out each element in the register and storing the result of the processing, the data may be stored in the lower part of the register and stored.
【0020】また、実施形態では1画素が8ビットで表
現(256階調)されているものとし、8画素単位(=
64ビット)単位に間引き処理する例を説明する。In the embodiment, it is assumed that one pixel is represented by 8 bits (256 gradations), and the unit of 8 pixels (=
An example of thinning-out processing in units of (64 bits) will be described.
【0021】図12は実施形態における間引き命令の演
算例を示している。FIG. 12 shows an example of the operation of a thinning instruction in the embodiment.
【0022】図示の如く、実施形態では、間引き命令を
受けた際、処理対象となる画素データを記憶保持するレ
ジスタ(ソースレジスタという)と、間引き対象を示す
間引きフラグレジスタ(単にフラグレジスタという)を
用いて、図示の如くフラグレジスタ中の“1”となって
いる部分を間引き行い、演算結果を格納するデスティネ
ーションレジスタの上位より詰めて格納する。As shown in the figure, in the embodiment, when a thinning instruction is received, a register (called a source register) for storing and holding pixel data to be processed and a thinning flag register (simply called a flag register) indicating the thinning target are set. As shown in the figure, the portion of the flag register which is "1" is thinned out, and the result of the operation is stored in a higher order of the destination register.
【0023】図示の場合、フラグレジスタには“FF”
(=“1”のビットが8つ)であるので、結果的に、間
引き(シフト量)は8ビット単位、すなわち、1画素単
位に行われることになる。In the case shown, "FF" is stored in the flag register.
(= 8 bits of “1”), as a result, the thinning-out (shift amount) is performed in units of 8 bits, that is, in units of 1 pixel.
【0024】上記処理を実現するため、実施形態におけ
る間引き演算部107は例えば図2に示すような構造に
すればよい。これは情報処理装置内部の間引き演算部が
ハードワイヤードロジックによって実装されている例で
ある。なお、図2は説明を簡単なものとするために、ソ
ースレジスタ、フラグレジスタとも4バイト(32ビッ
ト)の構成を示した。In order to realize the above processing, the thinning-out operation unit 107 in the embodiment may have a structure as shown in FIG. 2, for example. This is an example in which the thinning-out operation unit inside the information processing device is implemented by hard-wired logic. FIG. 2 shows a configuration of 4 bytes (32 bits) for both the source register and the flag register in order to simplify the description.
【0025】図中、201は非ゼロ判別部であり、4つ
のORゲートで構成される。各ゲートには、フラグレジ
スタに格納されている1バイト(8ビット)が入力さ
れ、そのうちの少なくとも1つが“1”の場合に、その
出力が“1”となる。202は間引きデータ選択部であ
り、図示の如く多数のセレクタで構成される。各セレク
タは、非ゼロ判別部からの出力が“1”の場合に、入力
端子“1”を選択して出力し、非ゼロ判別部からの出力
が“0”の場合に、入力端子“0”を選択して出力する
ようになっている。In the figure, reference numeral 201 denotes a non-zero discriminating unit, which is composed of four OR gates. One byte (8 bits) stored in the flag register is input to each gate, and when at least one of them is "1", its output becomes "1". Reference numeral 202 denotes a thinning data selection unit, which is composed of a number of selectors as shown in the figure. Each selector selects and outputs the input terminal “1” when the output from the non-zero discriminating unit is “1”, and selects the input terminal “0” when the output from the non-zero discriminating unit is “0”. "Is selected and output.
【0026】従って、フラグレジスタの上位が“FF”
(0以外であれば良いのでFFである必要はない)であ
れば、対応するソースレジスタは間引きされ、その下位
のデータが上位にシフトしていくことになる。Therefore, the upper part of the flag register is "FF"
If (other than 0, it is not necessary to be FF), the corresponding source register is thinned out, and the lower data shifts to the upper.
【0027】図示は1画素8ビットで、フラグ、ソース
レジスタとも32ビットの例を示したが、これを拡張す
ることで64ビットにまで適用できることは容易に推察
されよう。Although the figure shows an example in which each pixel is 8 bits, and both the flag and the source register are 32 bits, it is easily supposed that the present invention can be extended to 64 bits by extending this.
【0028】なお、上記例では8ビット単位に間引くた
め、非ゼロ判別部201を設けたが、1ビット単位の間
引きを実現する場合には、非ゼロ判別部201は不要に
なる。また、フラグレジスタ及びソースレジスタを64
ビットまで拡張し、且つ、各セレクタは1ビット選択す
るようにすれば良い。In the above example, the non-zero discriminating unit 201 is provided for thinning out in units of 8 bits. However, when thinning out in units of 1 bit is realized, the non-zero discriminating unit 201 becomes unnecessary. The flag register and the source register are 64
The number of bits may be extended, and each selector may select one bit.
【0029】この結果、例えば、1画素4ビットで現れ
る画像を間引きする場合には、フラグレジスタには
“1”となっている4ビット単位にセットする。また、
1画素6ビットで表される画像でも同様にできるし、1
画素が8ビット以上であってもその画素を表現するビッ
ト数と同数のビット数を“1”にすることで、対処でき
るようになる。すなわち、1画素が何ビットで現れて
も、同一の構成で対処できるようになる。As a result, for example, in the case of thinning out an image appearing with 4 bits per pixel, the flag register is set in units of 4 bits, which is "1". Also,
The same applies to an image represented by 6 bits per pixel.
Even if a pixel has 8 bits or more, it can be dealt with by setting the number of bits equal to the number of bits expressing the pixel to “1”. That is, no matter how many bits a pixel appears, the same configuration can cope with it.
【0030】<第2の実施形態>図3は第2の実施形態
における間引き演算の流れ図であり、情報処理装置内部
の間引き演算部がマイクロプログラムによって実装され
ている場合のマイクロプログラムの流れ図を示してい
る。<Second Embodiment> FIG. 3 is a flow chart of a thinning-out operation in the second embodiment, and shows a flow chart of a microprogram when a thinning-out operation unit inside an information processing apparatus is implemented by a microprogram. ing.
【0031】記憶装置から読み込まれた命令は、間引き
命令判別のステップ301で間引き命令かどうか判別さ
れる。もし間引き命令でなければ、それは他の命令であ
るので、その他の命令の実行ステップ302に移る。ま
た、間引き命令であると判別した場合には、ループ変数
iを0に、代入用の変数jを0に初期化しておいた後、
ステップ303で間引く要素を決めているソースデータ
(ソースレジスタ)のi番目の要素(8ビット単位とす
る)がゼロであるかどうか判別する。もしゼロであれ
ば、ステップ304で間引かれるソースデータの対応す
る要素(i番目の要素)のデータを取り出し、出力データ
をいれる変数のj番目の要素に代入し、jをインクリメ
ントする。その後、iをインクリメントし、ステップ3
05ですべての要素に対して処理を行なったかどうか判
別する。もし終っていなければステップ303以降を繰
り返す。すべての要素に対して処理が終了したならば、
出力データをステップ306でデスティネーションレジ
スタに代入する。以上のようなマイクロプログラムを内
蔵することで、情報処理装置に間引き命令の実装が行え
る。The instruction read from the storage device is discriminated as a thinning command in step 301 for discriminating a thinning command. If the instruction is not a thinning instruction, it is another instruction, and the process proceeds to the execution step 302 of the other instruction. If it is determined that the instruction is a thinning instruction, the loop variable i is initialized to 0 and the variable j for substitution is initialized to 0.
In step 303, it is determined whether or not the i-th element (in units of 8 bits) of the source data (source register) that determines the elements to be thinned out is zero. If it is zero, the data of the corresponding element (i-th element) of the source data to be decimated in step 304 is extracted, the output data is substituted for the j-th element of the variable to be inserted, and j is incremented. Then, i is incremented, and step 3
At 05, it is determined whether or not processing has been performed on all elements. If not, the process from step 303 is repeated. When processing is completed for all elements,
In step 306, the output data is assigned to the destination register. By incorporating the above microprogram, a thinning command can be implemented in the information processing apparatus.
【0032】以上説明したように、内部のレジスタ内に
mビット(mは自然数)の情報の要素をn個(nは2以上
の自然数)保持可能で、一つの演算命令でレジスタ内の
n個の要素に対してそれぞれ演算が行われるSIMD型
情報処理装置であって、間引き命令を判別する手段と、
一方のソースレジスタの要素のうちでもう一方のソース
レジスタのゼロ以外の要素に対応した要素だけを間引き
して取り除いた残りの要素をレジスタの上位方向に順番
につめていく手段と、間引き命令であれば上記の結果を
デスティネーションレジスタに保存する手段と、を有す
ることで従来の汎用の命令だけを用いた場合では多くの
命令を必要とし時間のかかっていた間引き処理が、大規
模な回路を必要とする並べ変え命令を用意すること無し
に、本発明の間引き命令の1命令で出来るようになり、
画像の縮小処理などの計算時間を短縮可能であるという
効果がある。As described above, m bits (m is a natural number) of information elements (n is a natural number of 2 or more) can be held in an internal register, and n pieces of information in the register can be held by one operation instruction. A SIMD-type information processing device that performs an operation on each of the elements of
A means for thinning out only elements corresponding to non-zero elements of the other source register among elements of one source register, and sequentially packing the remaining elements in the upper direction of the register, and a thinning instruction. If there is a means for storing the above result in the destination register, the thinning process, which requires many instructions and takes time when only conventional general-purpose instructions are used, requires a large-scale circuit. Without preparing the necessary rearrangement instruction, the present invention can be performed by one instruction of the thinning instruction of the present invention,
There is an effect that calculation time for image reduction processing or the like can be reduced.
【0033】[0033]
【発明の効果】以上説明したように本発明によれば、複
数画素で構成される画像データの間引き処理が1命令に
よって実現できるようになり、計算時間を大幅に短縮さ
せることができるようになる。As described above, according to the present invention, the thinning processing of the image data composed of a plurality of pixels can be realized by one instruction, and the calculation time can be greatly reduced. .
【図面の簡単な説明】[Brief description of the drawings]
【図1】実施形態におけるSIMD型情報処理装置のブ
ロック図である。FIG. 1 is a block diagram of a SIMD type information processing apparatus according to an embodiment.
【図2】実施形態における間引き演算部の詳細なブロッ
ク図である。FIG. 2 is a detailed block diagram of a thinning calculation unit according to the embodiment.
【図3】第2の実施形態におけるマイクロプログラムの
流れ図である。FIG. 3 is a flowchart of a microprogram according to a second embodiment.
【図4】SIMD型情報処理装置における2つのレジス
タの各要素間での演算を示す概念図である。FIG. 4 is a conceptual diagram illustrating an operation between elements of two registers in the SIMD type information processing device.
【図5】SIMD型情報処理装置におけるレジスタの全
要素ともう一方のレジスタの最下位の要素との演算を示
す概念図である。FIG. 5 is a conceptual diagram showing operations of all elements of a register and the lowest element of another register in the SIMD type information processing apparatus.
【図6】SIMD型情報処理装置におけるレジスタの全
要素と命令に埋め込まれた即値との演算を示す概念図で
ある。FIG. 6 is a conceptual diagram showing the operation of all elements of a register and an immediate value embedded in an instruction in a SIMD type information processing apparatus.
【図7】間引きによる画像の縮小を示す図である。FIG. 7 is a diagram illustrating reduction of an image by thinning.
【図8】データの間引き方式を示す図である。FIG. 8 is a diagram showing a data thinning method.
【図9】汎用命令による間引き処理を示す図である。FIG. 9 is a diagram illustrating a thinning process using a general-purpose instruction.
【図10】線形補間の処理方法を示す図である。FIG. 10 is a diagram illustrating a processing method of linear interpolation.
【図11】線形補間を汎用命令によって処理する場合の
演算方式を示す図である。FIG. 11 is a diagram showing an operation method when linear interpolation is processed by a general-purpose instruction.
【図12】実施形態における間引き演算の例を示す図で
ある。FIG. 12 is a diagram illustrating an example of a thinning operation in the embodiment.
【図13】並べ変え演算の例を示す図である。FIG. 13 is a diagram illustrating an example of a rearrangement operation.
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G09G 5/36 G09G 5/00 555G 5C082 H04N 5/262 5/36 520G Fターム(参考) 5B022 AA02 BA10 CA01 CA03 DA02 EA06 FA03 FA12 5B045 AA01 GG14 5B057 CA16 CB16 CD07 CH01 CH20 5C023 AA02 AA07 CA02 DA08 EA03 EA06 5C076 AA22 BA03 BA06 BB06 BB40 5C082 AA01 AA02 BA12 BA35 BB02 BB03 BB13 BB15 BB22 BB42 CA34 CB06 DA22 DA42 DA53 DA54 DA55 DA63 DA87 MM02 MM09 ──────────────────────────────────────────────────の Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G09G 5/36 G09G 5/00 555G 5C082 H04N 5/262 5/36 520G F-term (Reference) 5B022 AA02 BA10 CA01 CA03 DA02 EA06 FA03 FA12 5B045 AA01 GG14 5B057 CA16 CB16 CD07 CH01 CH20 5C023 AA02 AA07 CA02 DA08 EA03 EA06 5C076 AA22 BA03 BA06 BB06 BB40 5C082 AA01 AA02 BA12 BA35 BB02 DA15 BB13 BB13 DA23 BB13 BB13 DABB BB22
Claims (5)
力するSIMD型演算装置であって、 演算命令が画像の間引きに関するものであるか否かを判
別する判別手段と、 1画素mビットで表現される画素データをn個保持する
ソースレジスタと、 前記ソースレジスタ内の画素データそれぞれに対応し、
それぞれが間引き対象画素か否かを示すデータを保持す
る間引きフラグレジスタと、 前記判別手段で間引き演算命令であると判別したとき、
前記間引きフラグレジスタに間引き対象画素として設定
された、前記ソースレジスタのデータを無効とし、当該
無効として設定された画素データの空きデータ領域に隣
の画素データを詰めることで、連続する有効な画素デー
タを生成する演算手段と、 該演算手段を出力する出力手段とを備えることを特徴と
するSIMD型演算装置。1. A SIMD-type operation device for calculating and outputting a plurality of data with one instruction, a determination means for determining whether or not the operation instruction is related to image thinning, and m bits per pixel A source register holding n pixel data represented by: and corresponding to each of the pixel data in the source register,
A thinning flag register that holds data indicating whether each pixel is a thinning target pixel, and when the determining unit determines that it is a thinning operation instruction,
By invalidating the data of the source register, which is set as the pixel to be decimated in the decimating flag register, and packing the adjacent pixel data into the empty data area of the pixel data set as invalid, continuous valid pixel data And an output means for outputting the calculation means.
ジスタに出力することを特徴とする請求項第1項に記載
のSIMD型演算装置。2. The SIMD type arithmetic device according to claim 1, wherein said output means outputs to a destination register.
に対して“0”を埋める手段を備えることを特徴とする
請求項第1項又は第2項に記載のSIMD型演算装置。3. The SIMD-type operation device according to claim 1, wherein said operation means further comprises means for filling "0" in a lower free area.
ワイヤードロジックで構成されることを特徴とする請求
項第1項に記載のSIMD型演算装置。4. The arithmetic means comprises a gate, a selector, and
The SIMD type arithmetic device according to claim 1, wherein the SIMD type arithmetic device is configured by wired logic.
構成されることを特徴とする請求項第1項に記載のSI
MD型演算装置。5. The SI according to claim 1, wherein said arithmetic means is constituted by a microprogram.
MD type arithmetic unit.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000363759A JP2002171401A (en) | 2000-11-29 | 2000-11-29 | SIMD type arithmetic unit having a thinning operation instruction |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000363759A JP2002171401A (en) | 2000-11-29 | 2000-11-29 | SIMD type arithmetic unit having a thinning operation instruction |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2002171401A true JP2002171401A (en) | 2002-06-14 |
Family
ID=18834818
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000363759A Withdrawn JP2002171401A (en) | 2000-11-29 | 2000-11-29 | SIMD type arithmetic unit having a thinning operation instruction |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2002171401A (en) |
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007034473A (en) * | 2005-07-25 | 2007-02-08 | Ricoh Co Ltd | Data processing method in SIMD type microprocessor |
| JP2007265437A (en) * | 2007-07-02 | 2007-10-11 | Sony Corp | Semiconductor device and data processing device |
| JP2009055257A (en) * | 2007-08-27 | 2009-03-12 | Nippon Telegr & Teleph Corp <Ntt> | Data thinning processing method and data thinning processing circuit |
| JP2009080797A (en) * | 2007-08-15 | 2009-04-16 | Nvidia Corp | Conditional execution bits in the graphics processor unit pipeline |
| WO2011121795A1 (en) * | 2010-03-31 | 2011-10-06 | Telefonaktiebolaget L M Ericsson (Publ) | Data shifter and control method thereof, multiplexer, data sifter, and data sorter |
| US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
| US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
| US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
| US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
| US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
| US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
| US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
| US8775777B2 (en) | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
| US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
| US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
| US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
| US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
| US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
| US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
-
2000
- 2000-11-29 JP JP2000363759A patent/JP2002171401A/en not_active Withdrawn
Cited By (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
| US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
| US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
| US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
| US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
| JP2007034473A (en) * | 2005-07-25 | 2007-02-08 | Ricoh Co Ltd | Data processing method in SIMD type microprocessor |
| US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
| JP2007265437A (en) * | 2007-07-02 | 2007-10-11 | Sony Corp | Semiconductor device and data processing device |
| TWI484441B (en) * | 2007-08-15 | 2015-05-11 | Nvidia Corp | Arithmetic logic unit pipe state, graphics processor unit pipeline and method of processing data in the same |
| US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
| US9448766B2 (en) | 2007-08-15 | 2016-09-20 | Nvidia Corporation | Interconnected arithmetic logic units |
| US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
| US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
| US8775777B2 (en) | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
| JP2009080797A (en) * | 2007-08-15 | 2009-04-16 | Nvidia Corp | Conditional execution bits in the graphics processor unit pipeline |
| JP2009055257A (en) * | 2007-08-27 | 2009-03-12 | Nippon Telegr & Teleph Corp <Ntt> | Data thinning processing method and data thinning processing circuit |
| WO2011121795A1 (en) * | 2010-03-31 | 2011-10-06 | Telefonaktiebolaget L M Ericsson (Publ) | Data shifter and control method thereof, multiplexer, data sifter, and data sorter |
| CN103038744A (en) * | 2010-03-31 | 2013-04-10 | 瑞典爱立信有限公司 | Data shifter and its control method, multiplexer, data filter and data classifier |
| US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
| US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
| US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
| US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2002171401A (en) | SIMD type arithmetic unit having a thinning operation instruction | |
| US8429625B2 (en) | Digital data processing method and system | |
| US5657403A (en) | Vision coprocessing | |
| US5300947A (en) | Graphic pattern processing apparatus | |
| KR101391498B1 (en) | Method for processing an object on a platform having one or more processors and memories and platform using the same | |
| US9183614B2 (en) | Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets | |
| US5794065A (en) | Data driven information processor | |
| EP0143533A2 (en) | Image data expanding and/or contracting method and apparatus | |
| US5008852A (en) | Parallel accessible memory device | |
| US20020057276A1 (en) | Data processing apparatus, processor and control method | |
| CN101443809A (en) | Programmable data processing circuit | |
| US20010028319A1 (en) | Apparatus for and method of converting sampling frequency of digital signals | |
| JP4156194B2 (en) | Method for converting first resolution raster digital data to second resolution digital data | |
| US5745123A (en) | Method for resizing an image by a factor of two | |
| JP3786329B2 (en) | Encoding / decoding device | |
| JP4248027B2 (en) | Device for converting a sequence of data elements | |
| KR100665485B1 (en) | Digital signal processing device and digital signal processing method | |
| JP2002171412A (en) | SIMD type information processing apparatus provided with X-ary instruction | |
| GB2183067A (en) | Data processing | |
| JPH0660192A (en) | Graphic pattern storage device | |
| JP3163975B2 (en) | Coding processor | |
| JP2586658B2 (en) | Blur processing circuit | |
| TW293890B (en) | Bit block transfer system and method | |
| JP2529465B2 (en) | Variable length code decoding device | |
| JP2002298135A (en) | Thinning device and enlargement device in SIMD type microprocessor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080205 |