JP4920559B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP4920559B2
JP4920559B2 JP2007296223A JP2007296223A JP4920559B2 JP 4920559 B2 JP4920559 B2 JP 4920559B2 JP 2007296223 A JP2007296223 A JP 2007296223A JP 2007296223 A JP2007296223 A JP 2007296223A JP 4920559 B2 JP4920559 B2 JP 4920559B2
Authority
JP
Japan
Prior art keywords
data
flag
value
valid flag
valid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007296223A
Other languages
English (en)
Other versions
JP2009122964A (ja
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007296223A priority Critical patent/JP4920559B2/ja
Publication of JP2009122964A publication Critical patent/JP2009122964A/ja
Application granted granted Critical
Publication of JP4920559B2 publication Critical patent/JP4920559B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数の入力データから必要なデータのみを取り出して記憶装置に書き込むデータ処理装置に関するものである。
複数の入力データから必要なデータのみを取り出して、記憶装置に順番に詰めて書き込む間引き処理が必要とされることがある。通常行われるのは、対象となる入力データについて1つづつ順番に、要/不要を判断し、必要と判断された入力データのみ選択し、これを記憶装置に詰めて書き込む方法である。この処理をハードウェアで行う従来の方法として、図12に示すFIFOメモリ50を用いる方法がある。
この方法では、まず、各入力データとその入力データの要/不要を示す有効フラグとを組にして1組づつ順番に入力する。このとき、有効フラグの値が有効を示す「1」である入力データのみ、入力順にFIFOメモリ50に詰めて記憶する。図12の例では、入力データD1、D2、D3、D4、D5の内、D1、D4のみFIFOメモリ50に詰めて記憶する手順を示したものである。D1、D2、D3、D4、D5の順に入力データが入力され、各入力データが入力されるごとに有効フラグが「1」か「0」かを判断し、「1」であるD1、D4のみをFIFOメモリ50に記憶する。この結果、記憶すべき入力データD1、D4のみをFIFOメモリ50に詰めて記憶することができる。
別の従来技術として、特許文献1には、シリアル入力データの内、必要な入力データのみを詰めてパラレルに出力し、これをレジスタに書き込む方法が記載されている。この方法では、シリアルデータをパラレルデータに変換する際に、必要な入力データを、その直前の不要な入力データの数だけシフトレジスタによってデータ位置をシフトさせる。これによって、要/不要の入力データが混在して、飛び飛びであったシリアルデータを、必要な入力データのみが詰めて配置されたパラレルデータに変換できる。
特開平8−123683号公報
しかしながら、FIFOメモリ50に詰めて記憶する方法では、入力データを1つづつ逐次的に処理せざるを得ないため、データ処理の高速化をはかることが出来ないという問題がある。また、特許文献1に記載の方法でも、シリアル入力のデータ1つづに対して、逐次そのシフト量を判定して、格納場所を決めていかなければならないため、処理速度を速くすることができないという問題がある。
本発明は、複数の入力データの内から必要なデータのみ選択しこれを任意の幅に詰める処理を、1サイクル当り所定数のデータ毎に並列に行うことにより、高速にデータ処理を実施することを目的とする。
上記目的を達成するために、請求項1にかかる発明は、無効を示す「0」、又は有効を示す正の整数値、又は有効を示す負の整数値をもつ有効フラグと対になり、且つ順序関係をもって連続して入力する複数の入力データを、1サイクル毎に処理するデータ処理装置であって、前記入力データを前記1サイクル毎に前記順序関係に沿って所定数ずつ取り込み、当該データより順序が前の全てのデータの有効フラグの値の合計値又は当該データの有効フラグの値と当該データより順序が前の全てのデータの有効フラグの値との合計値のいずれか一方を当該データの有効フラグ積算値として算出する有効フラグ積算器を備え、有効フラグをもつ入力データの前記有効フラグ積算値を、当該有効フラグをもつ入力データのアドレスとし、且つ、前記有効フラグをもつ入力データの内の連続する2以上のデータがまとまりのあるデータであるときは、前記まとまりのあるデータの先頭データに当該まとまりのあるデータのデータ量を正の整数値で示す有効フラグを付与するとともに、前記まとまりのあるデータの先頭データ以外のデータの有効フラグを「0」とし、前記まとまりのあるデータの前記有効フラグ積算値を先頭アドレスとし、そこから前記まとまりのあるデータの有効フラグの値の数だけの連続アドレスに前記まとまりのあるデータを割り当てることを特徴とする。
請求項2にかかる発明は、無効を示す「0」、又は有効を示す正の整数値をもつ有効フラグと対になり、且つ順序関係をもって連続して入力する複数の入力データを、1サイクル毎に処理するデータ処理装置であって、前記入力データを前記1サイクル毎に前記順序関係に沿って所定数ずつ取り込み、当該データより順序が前の全てのデータの有効フラグの値の合計値又は当該データの有効フラグの値と当該データより順序が前の全てのデータの有効フラグの値との合計値のいずれか一方を当該データの有効フラグ積算値として算出する有効フラグ積算器を備え、有効フラグをもつ入力データの前記有効フラグ積算値を、当該有効フラグをもつ入力データのアドレスとし、前記有効を示す正の整数値の有効フラグを、「1」以外の正の整数値に設定することを特徴とする。
請求項3にかかる発明は、請求項2に記載のデータ処理装置において、
前記正の整数値の有効フラグをもつ各入力データについて、前記有効フラグ積算値を先頭アドレスとし、そこから有効フラグの値の数だけの連続アドレスに割り当てることを特徴とする置。
請求項4にかかる発明は、無効を示す「0」、又は有効を示す正の整数値、又は有効を示す負の整数値をもつ有効フラグと対になり、且つ順序関係をもって連続して入力する複数の入力データを、1サイクル毎に処理するデータ処理装置であって、前記入力データを前記1サイクル毎に前記順序関係に沿って所定数ずつ取り込み、当該データより順序が前の全てのデータの有効フラグの値の合計値又は当該データの有効フラグの値と当該データより順序が前の全てのデータの有効フラグの値との合計値のいずれか一方を当該データの有効フラグ積算値として算出する有効フラグ積算器を備え、有効フラグをもつ入力データの前記有効フラグ積算値を、当該有効フラグをもつ入力データのアドレスとし、前記有効フラグ積算器を、前記有効フラグ積算器で得られた有効フラグ積算値に拡大倍率をかけた値を新たな有効フラグ積算値として出力する有効フラグ積算器に置き換えたことを特徴とする。
請求項5にかかる発明は、請求項に記載のデータ処理装置において、有効フラグをもつ入力データの前記有効フラグ積算値を先頭アドレスとし、そこから前記有効フラグをもつ入力データの有効フラグの値と前記拡大倍率との積の値だけの連続アドレスに前記有効フラグをもつ入力データを割り当てることを特徴とする。
請求項6にかかる発明は、請求項1から4のいずれか1つに記載のデータ処理装置において、前記有効フラグ積算器で得られた有効フラグ積算値をアドレスとして、前記入力データの内の前記有効フラグで有効と指定されたデータが書き込まれる記憶装置を備えることを特徴とする。
本発明によれば、1サイクル当り所定数のデータ内から、必要なデータを取り出し、これを詰めて、あるいは飛び飛びに、あるいはデータ毎重複して、あるいは順序を入れ替えて、記憶装置に書き込むことができる。これにより、例えば、画像や音声などの情報データの圧縮、拡大、並び替えなどの処理も高速に実行することができる。
図1A,Bは、本発明のデータ処理方法の概要を説明する図である。図1A,Bでは、例として、8個の入力データD0〜D7の内、D0、D3、D5、D7の4つの入力データのみ、この順番に詰めて記憶する場合について、データ処理の流れを示している。この例では、1サイクル当り入力データを4つづつ同時に入力し、並列処理する。この内、図1Aでは最初の4つの入力データD0〜D3の処理について示し、図1Bでは次の4つの入力データD4〜D7の処理について示している。
各入力データは、その要/不要を1ビットで示す有効フラグ値をもつ。この例では、記憶するべきデータD0、D3、D5、D7の有効フラグ値を有効を示す「1」、残りの廃棄すべきデータD1、D2、D4、D6の有効フラグ値を無効を示す「0」とする。
図1A,Bの方法では、入力データと有効フラグを組にして、4組づつ同時に入力し、並列処理する。ここでは、各入力データごとに、それより時間的順番が前の全ての入力データの有効フラグ値を合計した積算値を計算し、これを有効フラグ積算値として出力する。図1Aは、入力データD0〜D3のデータ処理を示している。図1Aにおいて、10は有効フラグ積算器であり、有効フラグ積算先頭値格納部11と、有効フラグ値同士を加算する3個の加算器12と、この加算器12の加算結果と有効フラグ積算先頭値格納部11の有効フラグ積算先頭値を加算する4個の加算器13とを備える。
まず、有効フラグ積算先頭値の初期値として、有効フラグ積算先頭値格納部11に「0」を与える。そして、入力データD0〜D3に対する有効フラグ積算値、および次計算サイクル(D4〜D7に対する計算サイクル)で用いる有効フラグ積算先頭値を次のように計算する。
D0の有効フラグ積算値=有効フラグ積算先頭値
D1の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値
D2の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値+D1の有効フラグ値
D3の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値+D1の有効フラグ値+D2の有効フラグ値
次計算サイクルの有効フラグ積算先頭値=有効フラグ積算先頭値+D0の有効フラグ値+D1の有効フラグ値+D2の有効フラグ値+D3の有効フラグ値
その結果、図1Aに示すように、入力データD0〜D3に対する有効フラグ積算値はそれぞれ「0」、「1」、「1」、「1」となり、次計算サイクルの有効フラグ積算先頭値は「2」となる。
一方、図1Bは、次サイクルの入力データD4〜D7に対する計算処理を示している。有効フラグ積算先頭値として、前の計算サイクルで計算した値「2」を用いて、同様に以下の通り計算する。
D4の有効フラグ積算値=有効フラグ積算先頭値
D5の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値
D6の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値+D5の有効フラグ値
D7の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値+D5の有効フラグ+D6の有効フラグ値
次計算サイクルの有効フラグ積算先頭値=有効フラグ積算先頭値+D4の有効フラグ値+D5の有効フラグ値+D6の有効フラグ値+D7の有効フラグ値
この結果、図1Bに示すように、入力データD4〜D7に対する有効フラグ積算値はそれぞれ「2」、「2」、「3」、「3」となり、次計算サイクルの有効フラグ積算先頭値は「4」となる。
こうして得られた有効フラグ値が「1」の入力データの有効フラグ積算値は、そのデータが有効フラグ値「1」の全データの内先頭から何番目にあるかを示すことになる(この例では、先頭の入力データD0を0番目として数えている)。そこで、有効フラグ値が「1」である入力データを、その有効フラグ積算値をアドレスとして、レジスタやメモリなどの記憶装置に書き込むことにより、有効フラグ値「1」の入力データのみアドレス順に詰めた状態で書き込むことができる。
図1A、図1Bの例では、有効フラグ値が「1」である入力データD0、D3、D5、D7をそれぞれの有効フラグ積算値「0」、「1」、「2」、「3」のアドレス番地に書き込むと、図1Bのように、出力データD0、D3、D5、D7として、出力アドレス「0」、「1」、「2」、「3」に詰めた状態で書き込むことができる。以下、本発明の実施例を添付の図を基に説明する。
図2A、図2Bは、複数の入力データの内、必要なデータのみ選択して、レジスタ等の記憶装置に詰めて書き込むようにした本発明のデータ処理装置の実施例を示したものである。
図2A、図2Bにおいて、10は前記した有効フラグ積算器、20は間引き演算器、30は記憶装置である。各入力データ線DATA0〜DATA3を記憶装置30のデータ端子31に接続する。有効フラグ線V0〜V3は、それぞれ2つに分岐し、一方を記憶装置30の書込制御信号端子32(ライトイネーブル信号端子)に、他方を有効フラグ積算器10に入力する。有効フラグ積算器10から出力される有効フラグ積算値信号VS0〜VS3を記憶装置30のアドレス信号端子33に接続する。
記憶装置30では、書込制御信号としての有効フラグ値が「1」である入力データについて、アドレス信号端子33のアドレス信号で指定されたアドレスに書き込まれるものとすると、図2A、図2Bに示すように、有効フラグ値が「1」である入力データD0、D3、D5、D7のみが、それぞれ、有効フラグ積算器10で計算した有効フラグ積算値で表されるアドレス0、1、2、3に書き込まれる。このようにして、有効フラグ値が「1」であるデータのみ、順に詰めて記憶装置30に書き込むことが可能になる。
この記憶装置30として、例えば、レジスタを用いれば、入力データを最大で4つづつ同時に書き込むことが可能になり、処理の高速化を図ることができる。また、記憶装置30として、1本のメモリを用いる場合は、有効フラグ「1」のデータについて1つづつ順次、有効フラグ積算器10で計算されたアドレスに書き込んでいってもよい。
有効フラグ積算器10は、有効フラグ積算先頭値格納部11と、有効フラグ同士を加算する3個の加算器12と、この加算器12の加算結果と有効フラグ積算先頭値格納部11の有効フラグ積算先頭値を加算する4個の加算器13とからなる簡単な構造であるため、並列度の規模や加算器の性能にもよるが、有効フラグ積算値の計算、データの記憶装置への書き込みを、通常1クロックづつで行うことが可能である。
なお、本実施例では、有効フラグ積算先頭値の初期値として「0」を与えた場合を例として説明したが、この初期値は「0」に限るものではない。例えば、その初期値として「5」を与えれば、出力アドレスが「5」以降の領域に出力データを詰めて書き込むようにすることができる。
前記の実施例1では、各入力データの有効フラグ積算値として、そのデータより前にあるすべての入力データの有効フラグ値を合計して求めた。これに対して、図3A、図3Bに示す本実施例では、各入力データの有効フラグ積算値を、そのデータより前のすべて入力データの有効フラグとそのデータ自身の有効フラグ値を加算することで求める構成にしている。また、前記の実施例1では、有効フラグ積算先頭値の初期値を「0」に設定したが、本実施例では、「−1」に設定する。図3A、図3Bは、本実施例における有効フラグ積算器10の構造と、処理の流れを示したものであるが、この方法においても有効フラグが「1」であるデータのみを選択して順に詰めて書き込むことが可能になる。
図3Aは、本実施例による入力データD0〜D3のデータ処理を示している。まず、有効フラグ積算先頭値の初期値として「−1」を与える。そして、入力データD0〜D3に対する有効フラグ積算値、および次計算サイクル(D4〜D7に対する計算サイクル)で用いる有効フラグ積算先頭値を次のように計算する。
D0の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値
D1の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値+D1の有効フラグ値
D2の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値+D1の有効フラグ値+D2の有効フラグ値
D3の有効フラグ積算値=有効フラグ積算先頭値+D0の有効フラグ値+D1の有効フラグ値+D2の有効フラグ+D3の有効フラグ値
次計算サイクルの有効フラグ積算先頭値=D3の有効フラグ積算値
その結果、図3Aに示すように、入力データD0〜D3に対する有効フラグ積算値はそれぞれ「0」、「0」、「0」、「1」となり、次計算サイクルの有効フラグ積算先頭値は「1」となる。
図3Bは、次サイクルの入力データD4〜D7に対する計算処理を示している。有効フラグ積算先頭値として、前の計算サイクルで計算した値「1」を用いて、同様に以下の通り計算する。
D4の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値
D5の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値+D5の有効フラグ値
D6の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値+D5の有効フラグ値+D6の有効フラグ値
D7の有効フラグ積算値=有効フラグ積算先頭値+D4の有効フラグ値+D5の有効フラグ値+D6の有効フラグ値+D7の有効フラグ値
次計算サイクルの有効フラグ積算先頭値=D7の有効フラグ積算値
この結果、図3Bに示すように、入力データD4〜D7に対する有効フラグ積算値はそれぞれ「1」、「2」、「2」、「3」となり、次計算サイクルの有効フラグ積算先頭値は「3」となる。
こうして得られた有効フラグ値が「1」の入力データの有効フラグ積算値は、そのデータが有効フラグ値「1」の全データの内先頭から何番目にあるかを示すことになる(この例では、先頭の入力データD0を0番目として数えている)。そこで、有効フラグ値が「1」である入力データを、その有効フラグ積算値をアドレスとして、レジスタやメモリなどの記憶装置30に書き込むことにより、有効フラグ値「1」のデータのみアドレス順に詰めた状着で書き込むことができる。
本実施例は、各データの有効フラグ積算値と有効フラグ積算先頭値の計算式が、当該データの有効フラグ値を含む点で、実施例1におけるものと異なるが、有効フラグが「1」である入力データD0、D3、D5、D7をそれぞれの有効フラグ積算値「0」、「1」、「2」、「3」のアドレス番地に書き込むと、図3Bのように、図2Bと全く同様に、詰めた状態で書き込むことができる。
なお、本実施例では、有効フラグ積算先頭値の初期値として「−1」を与えた場合を例として説明したが、この初期値は「−1」に限るものではない。例えば、その初期値として「4」を与えれば、出力アドレスが「5」以降の領域に出力データを詰めて書き込むようにすることができる。
本実施例は、大きさが異なる入力データに対して、本発明の方法を適用した場合である。図4A、図4Bに示した例では、入力データD0、D1、D3は1バイト、D2は2バイト、D4は3バイトとし(個々のデータを1バイトとするとき、2バイト以上のデータを、請求項では「まとまりのあるデータ」と呼んでいる。)、この内、網掛け表示したD0、D2、D4のみ選択して順に詰めて記憶装置30に記憶する場合を示している。各入力データとも、単位データ量である1バイトに1つづつ有効フラグを持つようにしている。すなわち、2バイトのD2は2つ、3バイトのD4は3つの有効フラグをもつ。そして、記憶装置30に記憶したいデータは対応する有効フラグ値を「1」にする。このような入力データと有効フラグのペアに対して、実施例1又は2と同様の計算により、各データの1バイトごとに有効フラグ積算値を算出する。
図4Aでは、入力データD0の有効フラグ積算値が「0」であり、入力データD2の1バイト目、2バイト目の有効フラグ積算値はそれぞれ「1」、「2」となる。これから、入力データD0、D2の1バイト目、D2の2バイト目をそれぞれ記憶装置30のアドレス0、1、2に記憶する。
同様に、図4Bでは、記憶すべき入力データD4の1バイト目、2バイト目、3バイト目の有効フラグ積算値はそれぞれ「3」、「4」、「5」と求められるので、それぞれ記憶装置3のアドレス3、4、5に記憶する。この結果、1バイトの入力データD0、2バイトの入力データD2、3バイトの入力データD4のみ取り出して、順に詰めて記憶する処理を4バイトづつ高速に実行することが出来る。
本実施例は、実施例3と同じように大きさが異なる入力データに対して、本発明の方法を適用する例である(図5A、図5B参照)。本実施例では、2バイト以上の入力データについては、そのデータが選択される場合は、その入力データの先頭バイトに対応する有効フラグにそのデータの大きさを正の整数値で設定し、先頭以外のバイトに対する有効フラグ値を「0」に設定する。そして、実施例1又は2と同様の計算により、各入力データの1バイトごとに有効フラグ積算値を算出する。この結果、得られた各入力データのバイトごとの有効フラグ積算値、および有効フラグ値を用いて次のような手順で、記憶装置30への書込処理を行う。すなわち、1バイトデータが選択されたときはそのデータの有効フラグ積算値をアドレスとして、前記実施例1〜4と同様に記憶装置30に書き込む。また、2バイト以上のまとまりのあるデータが選択されたときはそのデータの先頭バイトに対応する有効フラグ積算値を先頭アドレスとして、そのデータの大きさ分の連続アドレスに記憶装置30に書き込む。これにより、必要なデータのみ取り出して順に詰めて記憶する処理を4バイトづつ高速に実行することが出来る。
前記した実施例1〜4では、各入力データのフラグ値を「0」または「1」に設定した。これに対して、本実施例では、入力データが有効なときは、有効フラグ値を「2」、あるいは「3」などのように、「1」以外の正の整数値に設定することにより、データの間隔をもとの入力時の間隔より広げる処理を行うものである。図6Aに示した例では、入力データD0〜D3に対する有効フラグ値を全て「2」と設定して、実施例1又は2と同様の方法で、有効フラグ積算値を算出する。すると、入力データD0〜D3に対する有効フラグ積算値は、それぞれ、「0」、「2」、「4」、「6」となる。これらの値を各データの記憶装置30でのアドレスとして指定して、各データを書き込むと、図6Aに示すように、D0〜D3が1つおきのアドレスに書き込まれ、データ間隔を拡げて書き込むことが出来る。
図6Aに示した例では、記憶装置30のアドレス1、3、5、7にはデータが書き込まれず空白となっているが、図6Bのように、アドレス0と1にD0、アドレス2と3にD1、アドレス4と5にD2、アドレス6と7にD3を書き込むようにすることも出来る。各入力データに対して、その有効フラグ積算値を先頭アドレスとして、そこから有効フラグ値の数だけ連続するアドレスに各データを書き込むようにする。これにより、例えば、画像データをより面積の広い画像に拡大処理することも可能になる。
また、図6Cに示すように、入力データの内、任意のデータのみ選んで、これを指定した間隔で並べることも可能である。図6Cの例では、入力データD0〜D3の内、D0、D2,D3の有効フラグ値を「2」、D1の有効フラグ値を「0」と設定する。実施例1又は2と同様の計算により、入力データD0〜D3の有効フラグ積算値を算出すると、それぞれ、「0」、「2」、「2」、「4」となる。この内、有効フラグが「0」でないデータD0、D2、D3を、その有効フラグ積算値をアドレスとして記憶装置30に書き込むと、図9Cのように、データD0、D2、D3がアドレス0、2、4に指定した間隔2で書き込まれる。
図6Dは、図6Cと入力データ、有効フラグ値、算出された有効フラグ積算値は同じだが、図6Bと同じように各データ間を空白とせず、その前のデータで埋めるようにしたものである。各入力データに対して、その有効フラグ積算値を先頭アドレスとして、そこから有効フラグ値の数だけの連続するアドレスに各データを書き込むようにする。これにより、例えば、画像データをより面積の広い画像に拡大処理することも可能になる。図6Bの場合は一律にデータを拡大することができたが、図6Dの場合は、画像データの任意の領域を選んでこれを拡大するということも可能になる。
図6Eは、各データの有効フラグ値を任意に設定して、データ選択およびデータ間隔を任意に設定した場合である。入力データD0〜D3に対する有効フラグ値をそれぞれ「2」、「0」、「3」、「2」設定すると、有効フラグ積算値はそれぞれ「0」、「2」、「2」、「5」となる。この内、有効フラグ値が「0」でないデータD0、D2、D3をそれぞれの有効フラグ積算値のアドレスに書き込むと、D0、D2、D3がそれぞれアドレス0、2、5に書き込まれる。これによって、有効フラグ値を「0」と設定したデータD1を除き、さらにその他のデータD0、D2、D3をそれぞれ設定した有効フラグ値の間隔で記憶装置30に書き込むことが可能になる。このように、有効フラグの設定によって、任意のデータを選択して、これを任意の間隔に配置することが可能になる。この場合も、図6B、図6Dと同様、データ間の空白領域にその前後のデータ等を書き込むことも可能であることは言うまでもない。
前記の実施例5においては、各データの有効フラグ値として、「2」や「3」などのデータ拡大率を設定することによって、入力時の間隔より広げて出力する方法を示した。これに対し、本実施例では、間引き演算器20内の有効フラグ積算器10において、入力された有効フラグ値に拡大倍率をかけた値を有効フラグ積算値として出力するようにしたものである。
図7Aに示す例では、入力データD0〜D3と、それぞれの有効フラグ値「1」、「0」、「1」、「1」が入力されている。これに対して、有効フラグ積算器10で、各有効フラグ値をデータ拡大倍率「2」をかけた値を積算するようにしている。この結果、出力される有効フラグ積算値は、それぞれ「0」、「2」、「2」、「4」となる。この内、有効フラグ積算値が「0」でないデータD0、D2、D3をその有効フラグ積算値をアドレスとして書き込む。その結果、データD1を除くデータD0、D2、D3が、アドレス0、2、4に間隔2に拡大されて配置される。
図7Bは、本実施例の間引き演算器20を有するデータ処理装置の構成を示したものである。図2Aに示した実施例1の有効フラグ積算器10の出力値をデータ拡大倍率だけ乗じる乗算器21に入力し、その乗算結果を出力するように構成されている。図7Cは、乗算器21を用いる代わりにシフト演算器22を用いたものである。例えば、データ拡大倍率を2倍、4倍とするときは、入力値を左にそれぞれ1、2シフトすればよい。
なお、図7A、図7Bでは、入力データに対して一律のデータ拡大倍率を乗じる場合を示したが、各データごとにデータ拡大倍率を可変に設定できるように構成してもよい。また、実施例5と同様に、データ間の空白領域にその前後のデータ等を書き込むように構成してもよい。
前記の実施例1〜6では、入力データの内の有効フラグ値が「0」でないデータ全てを順番に詰めて並べるため、全入力データの有効フラグ値を積算していく構成としていた。これに対して、本実施例では、1回に入力するデータごとに詰めて並べて出力するようにしたもので、1回の入力データごとの有効フラグ積算値を算出する。このために、有効フラグ積算先頭値は、毎回固定値とする。
図8Aの例は、各入力データの内、有効フラグ値が「1」のみを左詰にして出力するように構成されたものである。まず、最初の入力データ0(=D0〜D3)に対して、有効フラグ積算先頭値を「0」として、各データの有効フラグ積算値を算出し、それぞれ「0」、「1」、「1」、「1」を得る。この内、有効フラグ値が「1」であるデータD0とD3をその有効フラグ積算値の値に従って左から順に並べて出力する。これにより、有効フラグ値が「1」であるデータD0とD3が左詰で出力される。
次に、2回目の入力データ1(=D4〜D7)に対しても、有効フラグ積算先頭値を「0」として、各データの有効フラグ積算値を算出する。その結果、それぞれ「0」、「1」、「2」、「2」を得る。この内、有効フラグ値が「1」であるデータD4、D5、D7をその有効フラグ積算値の値に従って左から順に並べて出力する。これにより、有効フラグ値が「1」であるデータD4、D5、D7が左詰で出力される。このように構成することにより、選択したデータのみ左詰で出力することが可能になる。
図8Bは、4バイトの入力データの内、1バイト目と3バイト目のみ取り出して左詰にした2バイトのデータを出力するようにした例を示したものである。これにより入力データを圧縮して出力するフィルタとして用いることが可能となる。入力データ0(=D0〜D3)では、データD0とD2の有効フラグが「1」となり、入力データ1(=D4〜D7)ではデータD4とD6の有効フラグ値を「1」としている。
これに対して、データ0(=D0〜D3)と入力データ1(=D4〜D7)それぞれで図8Aの場合と同様の処理をすることにより、入力データ0(=D0〜D3)は、データD0とD2が左詰になった出力データ0に変換されて出力し、入力データ1(=D4〜D7)は、データD4とD6が左詰になった出力データ1に変換されて出力する。この場合、有効フラグ値を入力値として入力する代わりに、有効フラグ積算器10内で、左から1番目と3番目の有効フラグ値を「1」に、左から2番目と4番目の有効フラグ値を「0」にして計算するようにしてもよい。
図8Cは、2バイトの入力データと、「2」に設定された各データの有効フラグ値とを入力し、図8Aと同様の処理を行うことによって、それぞれのデータが1バイトおきに拡大配置された4バイトデータを出力するようにしたものである。
図8Dは、各有効フラグ値にデータ拡大倍率「2」を乗じた値を積算した有効フラグ積算値を算出し、さらに各データの右に同じデータを配置するようにした。これにより、左からD0、D1と並んだ2バイトの入力データ0(=D0、D1)が、データD0、D0、D1、D1と4バイトに拡大された出力データ0に変換され、左からD2、D3と並んだ2バイトの入力データ1(=D2、D3)がデータD2、D2、D3、D3のように4バイトに拡大された出力データ1に変換される。このようにして、入力データを拡大して出力するフィルタの機能を果たすことが可能になる。
図8Eは、本実施例の間引き演算器20内の有効フラグ積算器10の構成を示したものである。本構成では、有効フラグ積算先頭値は固定値「0」を設定する。そして、各データに対する有効フラグ積算値VSO〜VS3をつぎにように計算する。
有効フラグ積算値VS0=有効フラグ積算先頭値
有効フラグ積算値VS1=有効フラグ積算先頭値+有効フラグ値V0
有効フラグ積算値VS2=有効フラグ積算先頭値+有効フラグ値V0+有効フラグ値V1
有効フラグ積算値VS3=有効フラグ積算先頭値+有効フラグ値V0+有効フラグ値V1+有効フラグ値V2
そして、有効フラグ値が「1」であるデータをその有効フラグ積算値の値に応じた位置に、セレクタ等を用いて移動させた上で、出力する。これによって、図8Eの例のように、入力データ0(=D0〜D3)では、有効フラグ値が「1」であるデータD0、D3が左詰で出力され、入力データ1(=D4〜D7)では、有効フラグ値が「1」であるデータD4、D5、D7が左詰で出力される。
図8Fは、有効フラグ積算先頭値を「−1」に固定した場合の有効フラグ積算器10の構成を示したものである。本構成では、各入力データに対する有効フラグ積算値VS0〜VS3を次のように計算する。
有効フラグ積算値VS0=有効フラグ積算先頭値+有効フラグ値V0
有効フラグ積算値VS1=有効フラグ積算先頭値+有効フラグ値V0+有効フラグ値V1
有効フラグ積算値VS2=有効フラグ積算先頭値+有効フラグ値V0+有効フラグ値V1+有効フラグ値V2
有効フラグ積算値VS3=有効フラグ積算先頭値+有効フラグ値V0+有効フラグ値V1+有効フラグ値V2+有効フラグ値V3
この場合も図8Eと同様に、有効フラグ値が「1」であるデータをその有効フラグ積算値の値に応じた位置に、セレクタ等を用いて移動させた上で、出力する。これによって、図8Fの例のように、入力データ0(=D0〜D3)では、有効フラグ値が「1」であるデータD0、D3が左詰で出力され、入力データ1(=D4〜D7)では、有効フラグ値が「1」であるデータD4、D5、D7が左詰で出力される。
これらの説明では、有効フラグ値を外部から有効フラグ積算器11に入力するようにしたが、有効フラグ積算器11内で、有効フラグ値を各入力データに与えるようにしてもよい。
なお、本実施例では、有効フラグ積算先頭値の初期値として「0」(図8E)または「−1」(図8F)に固定した場合を例として説明したが、この初期値は「0」、「−1」に限るものではない。例えば、図8Eにおいて、その初期値を「0」の代わりに「1」に固定すれば、各サイクルで、出力データが出力アドレス「1」以降の領域に左詰めで出力するようにすることができる。
図9に示す実施例8では、1サイクル当りの各入力データについて、無効なデータ長を示すデータ長フラグの値を「0」とし、有効なデータ長を示すデータ長フラグの値を正の整数として、有効フラグ積算器11に入力する。有効フラグ乗算器11では、このデータ長フラグの値の積算値であるデータ長フラグ積算値を出力する。そして、データ長フラグ値が正の整数値のデータについて、記憶装置30に対して、そのデータ長フラグ積算値を先頭アドレスにして、そのデータ長フラグの値分の連続アドレスに書き込むようにすれば、データ長フラグで指定された入力データを順に詰めて、記憶装置30に書き込むことが出来る。
図9に示す例では、まず4バイトの有効データD0をもつ入力データ0と、この有効データのデータ長を示す値「4」が設定されたデータ長フラグ0が入力される。この入力に対する、データ長フラグ積算値0には、データ長フラグ積算値の先頭値として「0」を与える。
次に、1バイトの有効データD1をもつ入力データ1と、この有効データのデータ長を示す値「1」が設定されたデータ長フラグ1が入力される。この入力に対する、データ長フラグ積算値1は、
データ長フラグ積算値1=データ長フラグ積算値0+データ長フラグ1
と計算し、データ長フラグ積算値1=「4」が出力される。同様に、入力データ2に対するデータ長フラグ積算値2は、
データ長フラグ積算値2=データ長フラグ積算値1+データ長フラグ2
と計算し、データ長フラグ積算値2=「5」が得られる。同様に、データ長フラグ積算値3=「5」が得られる。この出力結果を用いて、以下のように記憶装置に書き込む。
出力データ0:先頭アドレスをデータ長フラグ積算値0の値「0」として記憶装置に書き込む。
出力データ1:先頭アドレスをデータ長フラグ積算値1の値「4」として記憶装置に書き込む。
出力データ2:データ長フラグ2=「0」であるので、記憶装置に書き込まない。
出力データ3:先頭アドレスをデータ長フラグ積算値3の値「5」として記憶装置に書き込む。
以上の処理により、各入力データの有効データD0、D1、D2を記憶装置50に順に詰めて書き込むことが出来る。
上記の実施例では、有効フラグ値を外部から有効フラグ積算器10に入力するようにしたが、図10に示すように、各入力データに対する有効フラグ値を、有効フラグ積算器10内で設定するようにしてもよい。このとき、設定する有効フラグ値は固定値でもよいし、各データごとに動的に設定してもよい。
図11A、図11Bは、本実施例を説明する図である。この例では、実施例4の構造の有効フラグ積算器10を用い、有効フラグ先頭値に「−1」を設定している。そして、有効な有効フラグ値として、正の整数値以外に負の整数値を用いる。まず、1組目の入力として、有効フラグ値がそれぞれ、「1」、「2」、「−1」、「2」である入力データD0〜D3を入力している(図11A)。これから有効フラグ積算値を求めると、それぞれ「0」、「2」、「1」、「3」となる。これに従って、有効フラグ値が「0」でない入力データD0〜D3をその有効フラグ積算値に従って、それぞれメモリ0、メモリ2、メモリ1、メモリ3に書き込む。この結果、D0、D1、D2、D3の順で入力されたデータを、D0、D2、D1、D3のように、D1とD2の順番を入れ替えて、メモリに書き込むことができる。
続いて、2組目の入力データD4〜D7の処理を説明したのが、図11Bである。この例では、入力データD4〜D7の有効フラグ値はそれぞれ「3」、「0」、「−1」、「−1」となっている。これから有効フラグ積算値を求めると、それぞれ「6」、「6」、「5」、「4」となる。この内有効フラグが「0」でない入力データD4、D6、D7をその有効フラグ積算値に従って、それぞれメモリ2、メモリ1、メモリ0に書き込む。この結果、入力データD4〜D7からD5を除いた3つのデータを、D7、D6、D4のように順番を入れ替えて、詰めてメモリに書き込むことができる。
以上のように、本実施例によれば、選択した入力データのみ任意の順番に入れ替えて、メモリに書き込んで行くことが可能となる。
本発明のデータ処理の概要説明図である。 本発明のデータ処理の概要説明図である。 本発明の実施例1のデータ処理装置の説明図である。 本発明の実施例1のデータ処理装置の説明図である。 本発明の実施例2のデータ処理装置の説明図である。 本発明の実施例2のデータ処理装置の説明図である。 本発明の実施例3のデータ処理装置の説明図である。 本発明の実施例3のデータ処理装置の説明図である。 本発明の実施例4のデータ処理装置の説明図である。 本発明の実施例4のデータ処理装置の説明図である。 本発明の実施例5のデータ処理装置の説明図である。 本発明の実施例5のデータ処理装置の説明図である。 本発明の実施例5のデータ処理装置の説明図である。 本発明の実施例5のデータ処理装置の説明図である。 本発明の実施例5のデータ処理装置の説明図である。 本発明の実施例6のデータ処理装置の説明図である。 本発明の実施例6のデータ処理装置の説明図である。 本発明の実施例6のデータ処理装置の説明図である。 本発明の実施例7のデータ処理装置の説明図である。 本発明の実施例7のデータ処理装置の説明図である。 本発明の実施例7のデータ処理装置の説明図である。 本発明の実施例7のデータ処理装置の説明図である。 本発明の実施例7のデータ処理装置の説明図である。 本発明の実施例7のデータ処理装置の説明図である。 本発明の実施例8のデータ処理装置の説明図である。 本発明の実施例9のデータ処理装置の説明図である。 本発明の実施例10のデータ処理装置の説明図である。 本発明の実施例10のデータ処理装置の説明図である。 従来のデータ処理装置の説明図である。
符号の説明
10,10A:有効フラグ積算器、11:有効フラグ積算先頭値格納部、12,13:加算器
20:間引き演算器、21:乗算器、22:シフト演算器
30:記憶装置
40:メモリ
50:FIFOメモリ

Claims (6)

  1. 無効を示す「0」、又は有効を示す正の整数値、又は有効を示す負の整数値をもつ有効フラグと対になり、且つ順序関係をもって連続して入力する複数の入力データを、1サイクル毎に処理するデータ処理装置であって、
    前記入力データを前記1サイクル毎に前記順序関係に沿って所定数ずつ取り込み、当該データより順序が前の全てのデータの有効フラグの値の合計値又は当該データの有効フラグの値と当該データより順序が前の全てのデータの有効フラグの値との合計値のいずれか一方を当該データの有効フラグ積算値として算出する有効フラグ積算器を備え、有効フラグをもつ入力データの前記有効フラグ積算値を、当該有効フラグをもつ入力データのアドレスとし、
    且つ、前記有効フラグをもつ入力データの内の連続する2以上のデータがまとまりのあるデータであるときは、
    前記まとまりのあるデータの先頭データに当該まとまりのあるデータのデータ量を正の整数値で示す有効フラグを付与するとともに、前記まとまりのあるデータの先頭データ以外のデータの有効フラグを「0」とし、
    前記まとまりのあるデータの前記有効フラグ積算値を先頭アドレスとし、そこから前記まとまりのあるデータの有効フラグの値の数だけの連続アドレスに前記まとまりのあるデータを割り当てることを特徴とするデータ処理装置。
  2. 無効を示す「0」、又は有効を示す正の整数値をもつ有効フラグと対になり、且つ順序関係をもって連続して入力する複数の入力データを、1サイクル毎に処理するデータ処理装置であって、
    前記入力データを前記1サイクル毎に前記順序関係に沿って所定数ずつ取り込み、当該データより順序が前の全てのデータの有効フラグの値の合計値又は当該データの有効フラグの値と当該データより順序が前の全てのデータの有効フラグの値との合計値のいずれか一方を当該データの有効フラグ積算値として算出する有効フラグ積算器を備え、有効フラグをもつ入力データの前記有効フラグ積算値を、当該有効フラグをもつ入力データのアドレスとし、
    前記有効を示す正の整数値の有効フラグを、「1」以外の正の整数値に設定することを特徴とするデータ処理装置。
  3. 請求項2に記載のデータ処理装置において、
    前記正の整数値の有効フラグをもつ各入力データについて、前記有効フラグ積算値を先頭アドレスとし、そこから有効フラグの値の数だけの連続アドレスに割り当てることを特徴とするデータ処理装置。
  4. 無効を示す「0」、又は有効を示す正の整数値、又は有効を示す負の整数値をもつ有効フラグと対になり、且つ順序関係をもって連続して入力する複数の入力データを、1サイクル毎に処理するデータ処理装置であって、
    前記入力データを前記1サイクル毎に前記順序関係に沿って所定数ずつ取り込み、当該データより順序が前の全てのデータの有効フラグの値の合計値又は当該データの有効フラグの値と当該データより順序が前の全てのデータの有効フラグの値との合計値のいずれか一方を当該データの有効フラグ積算値として算出する有効フラグ積算器を備え、有効フラグをもつ入力データの前記有効フラグ積算値を、当該有効フラグをもつ入力データのアドレスとし、
    前記有効フラグ積算器を、前記有効フラグ積算器で得られた有効フラグ積算値に拡大倍率をかけた値を新たな有効フラグ積算値として出力する有効フラグ積算器に置き換えたことを特徴とするデータ処理装置。
  5. 請求項に記載のデータ処理装置において、
    有効フラグをもつ入力データの前記有効フラグ積算値を先頭アドレスとし、そこから前記有効フラグをもつ入力データの有効フラグの値と前記拡大倍率との積の値だけの連続アドレスに前記有効フラグをもつ入力データを割り当てることを特徴とするデータ処理装置。
  6. 請求項1から4のいずれか1つに記載のデータ処理装置において、
    前記有効フラグ積算器で得られた有効フラグ積算値をアドレスとして、前記入力データの内の前記有効フラグで有効と指定されたデータが書き込まれる記憶装置を備えることを特徴とするデータ処理装置。
JP2007296223A 2007-11-15 2007-11-15 データ処理装置 Expired - Fee Related JP4920559B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007296223A JP4920559B2 (ja) 2007-11-15 2007-11-15 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007296223A JP4920559B2 (ja) 2007-11-15 2007-11-15 データ処理装置

Publications (2)

Publication Number Publication Date
JP2009122964A JP2009122964A (ja) 2009-06-04
JP4920559B2 true JP4920559B2 (ja) 2012-04-18

Family

ID=40815052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007296223A Expired - Fee Related JP4920559B2 (ja) 2007-11-15 2007-11-15 データ処理装置

Country Status (1)

Country Link
JP (1) JP4920559B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5072558B2 (ja) * 2007-12-04 2012-11-14 日本電信電話株式会社 データ処理装置
KR101991311B1 (ko) * 2015-06-30 2019-06-21 주식회사 엘지화학 부틸메타크릴레이트의 연속 제조 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205324A (ja) * 1988-02-12 1989-08-17 Matsushita Electric Ind Co Ltd 先入れ先出し記憶装置
JPH08288859A (ja) * 1995-04-13 1996-11-01 Fuji Xerox Co Ltd 可変長符号化装置
JP3931384B2 (ja) * 1997-07-03 2007-06-13 富士通株式会社 Fifoメモリ制御装置
JP2002050172A (ja) * 2000-08-03 2002-02-15 Nec Eng Ltd Fifo制御回路
JP2003167840A (ja) * 2001-11-30 2003-06-13 Denso Corp データ転送システム,マイクロコンピュータ及びデータ転送装置
JP2004362286A (ja) * 2003-06-05 2004-12-24 Canon Inc Fifoバッファ回路

Also Published As

Publication number Publication date
JP2009122964A (ja) 2009-06-04

Similar Documents

Publication Publication Date Title
JP6022581B2 (ja) Fifoロード命令
WO2021232843A1 (zh) 图像数据存储方法、图像数据处理方法、系统及相关装置
JPH0612487A (ja) 画像データのためのサンプルレート変換器
CN107680028B (zh) 用于缩放图像的处理器和方法
JP4920559B2 (ja) データ処理装置
CN108765341B (zh) 一种图像处理的方法及其装置
JP2006527868A5 (ja)
CN104169866A (zh) 运算处理装置以及运算处理装置的控制方法
CN115908132A (zh) 基于三次卷积插值法的图像缩放处理方法及装置
US20210082082A1 (en) Data processing method and processing circuit
JP5072558B2 (ja) データ処理装置
JP2702930B2 (ja) フィルタリング方法
JP2008052504A (ja) 離散フーリエ変換装置および離散フーリエ逆変換装置
JP5742427B2 (ja) 画像処理装置
KR100954843B1 (ko) 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체
JP4156538B2 (ja) 行列演算装置
JP4316923B2 (ja) 3角形メッシュ生成方法、その生成のためのプログラム及び記憶媒体
CN105577986A (zh) 基于膨胀腐蚀的图像处理系统及图像处理方法
WO2020211049A1 (zh) 数据处理方法和设备
JPH1153344A (ja) 行列演算装置及びそれを有する数値演算プロセッサ
JPS6162174A (ja) 情報婦理装置
CN117055800A (zh) 数据存储方法及装置、计算机可读介质和电子设备
CN116136894A (zh) 一种基于矩阵处理器的数据处理方法及可读存储介质
JP2012089947A (ja) 画像縮小装置
KR960036729A (ko) 스테레오 스코픽 병렬처리를 위한 아핀변환 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120201

R150 Certificate of patent or registration of utility model

Ref document number: 4920559

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees