JP3666586B2 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
JP3666586B2
JP3666586B2 JP2001311383A JP2001311383A JP3666586B2 JP 3666586 B2 JP3666586 B2 JP 3666586B2 JP 2001311383 A JP2001311383 A JP 2001311383A JP 2001311383 A JP2001311383 A JP 2001311383A JP 3666586 B2 JP3666586 B2 JP 3666586B2
Authority
JP
Japan
Prior art keywords
pixel
processing
feedback
input
data
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
JP2001311383A
Other languages
Japanese (ja)
Other versions
JP2003122556A (en
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2001311383A priority Critical patent/JP3666586B2/en
Publication of JP2003122556A publication Critical patent/JP2003122556A/en
Application granted granted Critical
Publication of JP3666586B2 publication Critical patent/JP3666586B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、フィードバックが発生する処理と発生しない処理のうちいずれかを入力データから選択して実行する情報処理装置に関するものである。
【0002】
【従来の技術】
入力データをもとに判断して、フィードバックが発生する処理と発生しない処理のいずれかに分岐するような処理を高速に実行したい場合がある。図6は、フィードバックが発生する処理と発生しない処理を切り替えて実行する処理の一例を示すフローチャートである。図6では、1つの入力データに対する処理を示している。S31において、入力データをもとにフィードバックが発生するか否かを判断し、フィードバックが発生しない場合には、この例ではS36においてそのまま出力されて、当該入力データに対する処理を終了する。
【0003】
S31でフィードバックが発生すると判断された場合は、S32〜S35における処理A〜処理Dによって構成されるフィードバックループを実行する。この実行結果は、S36において出力されるとともに、次の入力データの判断処理を行うためにフィードバックされる。
【0004】
この例では、次の入力データに対して直前の入力データに対応する処理結果が適用され、S31における判断が行われる。従って、直前の入力データについてフィードバックが発生すると判断された場合には、当該直前の入力データに対する処理D間での処理が終了しないと、次の入力データについての判断を行うことができない。そのため、このような処理をハードウェアで扱う場合、通常は逐次処理が用いられる。
【0005】
図7は、図6に示す処理を逐次処理で行う場合の概念図、図8は、同じくタイミングチャートである。図6に示したフローチャートの処理を逐次処理する場合、図7に示すように、まず判断処理を行って、フィードバックが発生すると判断された場合、処理A、処理B、処理C、処理Dと順に処理を行って出力する。また、次の入力データに対する判断を行う際に、処理Dの結果を考慮して判断を行う。逆にフィードバックが発生しないと判断された場合、判断処理が終了すると、判断時のデータをそのまま出力とし、その結果は次のデータに対する判断には利用しない。
【0006】
この処理をタイミングチャートで示すと、図8に示すようになる。図8では、図6のフィードバックループ内の処理(S32〜S35における処理A〜処理D)がそれぞれ1サイクルで終了するものとして描かれている。図8の入力データのうち、ハッチングが施されている入力データについてはフィードバックが発生せず、ハッチングが施されていない入力データについてはフィードバックが発生するものとして示している。
【0007】
フィードバックが発生しない場合は、出力を次の入力データの判断処理で必要としないため、データ出力と次のデータの入力を同時に行うことができる。一方、フィードバックが発生する場合は、出力を次の入力データの判断処理で必要とするため、データ出力の次のサイクルでデータを入力することになる。また、入力データを出力するまでに4サイクル必要とする。従って、フィードバックが発生する場合には、5サイクル間隔でデータの入力を行うことになる。
【0008】
よって、逐次処理では、フィードバックが発生しないデータが入力された場合は1サイクル1出力で処理ができるのに対し、フィードバックが発生するデータでは1出力に対し5サイクル必要になる。つまり、逐次処理ではフィードバックが発生するデータが多い場合にスループットが著しく低下するという問題があることがわかる。
【0009】
上述のように、逐次処理ではフィードバックが発生するデータが多い場合にスループットが低下するという問題に対し、例えば特開2000−152005号公報に記載されているような処理方法を応用することによって、フィードバック発生時のスループットを向上させることが可能となる。この特開2000−152005号公報に記載されている処理方法では、常にフィードバックが発生する誤差拡散を用いた2値化処理において、出力データが取りうるすべての値、つまり0または1、について誤差の計算を先に行うことによってフィードバックループを小さくしている。このような予測処理を応用することによって、処理をパイプライン化することができる。
【0010】
図9は、図6に示す処理をパイプライン処理で行う場合の概念図、図10は、同じくタイミングチャートである。図6に示したフローチャートの処理をパイプライン処理によって実行する場合には、入力されたデータがフィードバックの発生するデータであった場合に、出力データが取りうるすべての値について、あらかじめ演算を行っておく。従って図9に示すように、複数の場合について並行して処理A、処理B、処理C、処理Dを実行しておく。そして、直前に入力されたデータの出力値によって、複数の処理結果のうちのいずれかを選択すればよい。
【0011】
これによって、次のデータに対する演算をフィードバックループの外に出すことができる。この結果、出力データがフィードバックされるのを待つ必要がなくなるため、フィードバックが発生するデータでのスループットの向上が期待できる。
【0012】
しかし、この特開2000−152005号公報に記載されている技術を応用した手法では、直前のデータに関する予測を行って次のデータの処理に必要な演算を行う構成であるため、少なくとも2つ前のデータについての演算が終了していなければ、当該入力データの処理を開始することができない。このことは逆に、2サイクルで全ての処理を終えなければパイプラインが構成できないということになる。このため、図6に示した処理を実行するパイプラインを構成するには、4つの処理を2サイクルで実行させるように2つの処理ステップを1サイクルで動作させなければいけない。
【0013】
従って、特開2000−152005号公報に記載された手法を応用した手法で図6に示した処理をパイプラインで構成した場合には、図10に示したタイミングチャートのように、2つの処理ステップを1単位として実行することになる。なお、図10において、各処理ステップが動作する動作周波数は図8の場合と同様である。従って、1単位を実行する時間は、2処理ステップの実行時間となる。
【0014】
図10からわかるように、パイプライン構成にすれば、フィードバックの発生の有無にかかわらず、1単位(2処理ステップ)毎に出力が得られる。従って、ハッチングを施さずに示したフィードバックが発生する入力データに関しては、図8に示した逐次処理に比べて約半分の処理時間で出力データを得ることができる。しかし、ハッチングを施して示した、フィードバックが発生しない入力データについても2処理ステップ分の処理時間を要するため、図8に示した逐次処理に比べて2倍の処理時間がかかってしまう。つまり、パイプライン構成では、逐次処理と比較してフィードバックの発生しないデータでのスループットが低下してしまう。
【0015】
図11は、逐次処理及び並列パイプライン処理による処理時間の一例の説明図である。ここでは、図6に示した処理を図7に示すように逐次処理によって実行した場合と図9に示したように並列パイプライン処理によって実行した場合について、全てフィードバックが発生するデータあるいは全てフィードバックが発生しないデータを入力した場合の処理時間の一例を示している。入力したデータは、それぞれ3千万個である。また、各処理における動作周波数を100MHzとしている。従って、並列パイプライン処理の場合の1単位毎の動作周波数は50MHzとなる。
【0016】
図11に示したように、逐次処理の場合、フィードバックが発生しない場合には0.3秒で処理が終了するものの、フィードバックが発生する場合には5倍の1.5秒を要している。また並列パイプライン処理では、フィードバックが発生するか否かに関わらず、0.6秒で処理を行うことができる。従って、フィードバックが発生しないデータでは逐次処理が、フィードバックが発生するデータでは並列パイプライン処理が適していることがわかる。このため、どちらか一方の処理方式を選択してしまうと、入力データによりスループットが低下してしまうという問題があることがわかる。
【0017】
なお、上述の並列パイプライン処理では4段のパイプライン構成の場合について示したが、例えばより多くの段数のパイプラインの場合でも、直前のデータのみを予測するためには全段数の半分を1単位として動作させることになる。従って、より段数が多い場合、フィードバックが発生しないデータにおいては、処理時間の差はさらに大きくなる。
【0018】
直前だけでなく、その前のデータについても予測することによって、パイプラインを動作させる1単位の段数を減少させ、高速化することが考えられる。しかし、フィードバックされる出力が取り得る値がM個の場合、N個前の予測にはM×N−(N−1)の予測データが必要である。例えば直前のデータから予測されるデータの数が10個であれば、予測されるデータの数は9N+1で増大する。そのため、1つ前のデータまで予測する場合には10個の予測データについて並列的に演算を行えばよいが、2つ前のデータまで予測すると19個、3つ前のデータまで予測すると28個の予測データについて並列的に演算を行わなければならない。例えば上述のような4段のパイプライン構成においてそれぞれの処理サイクルにおいてデータを入力するように構成すると、3つ前のデータまで予測することになるため、28個の予測データについて並列的に演算してゆかねばならない。2サイクルを1単位とした場合には10個の予測データを並列的に演算すればよいので、この場合に比べて約3倍の回路が必要となる。
【0019】
このように直前のデータよりも前のデータについてまで予測して並列演算を行うには、ハードウェア量が膨大となり、現実的でない回路規模となってしまう。そのため、直前よりも前のデータまで予測するようなパイプラインを構成することによる問題の解決は、実際には不可能に近い。
【0020】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、フィードバックが発生する処理と発生しない処理のうちいずれかを入力データから選択して実行する場合に、フィードバックが発生するデータが入力された場合でも、フィードバックが発生しないデータが入力された場合でも、ともに高速に処理を行うことができる情報処理装置を提供することを目的とするものである。
【0021】
【課題を解決するための手段】
本発明は、フィードバックが発生する処理とフィードバックが発生しない処理のうちいずれかを入力データから選択して当該入力データに対して処理を行う情報処理装置において、フィードバックが発生する処理をフィードバックが発生したときに取り得る値のすべてについて入力データに対して並列にパイプライン処理する演算手段と、入力データによりフィードバックが発生する処理とフィードバックが発生しない処理のうちいずれかを選択する判断手段と、判断手段による処理の選択結果により一方の処理を打ち切る打ち切り手段を有している。データが入力されると、判断手段によって処理の選択を行い、その選択結果に従って打ち切り手段がいずれか一方の処理を打ち切る。
【0022】
例えばフィードバックが発生しない場合には、演算手段において行われている当該入力データに対するパイプライン処理を打ち切って、フィードバックが発生しないときの処理を行う。これによって、フィードバックが発生しないデータの場合には、パイプライン処理による遅延が生じないので高速に実行することができる。また、フィードバックが生じる場合には演算手段において並列にパイプライン処理を行うことによって、逐次処理を行う場合に比べて高速に実行することができる。
【0023】
従って、フィードバックが発生しないデータが入力された場合でも、フィードバックが発生するデータが入力された場合でも、入力データによって選択された処理内容に適した処理方式が適用されるため、高速に処理を実行することができる。
【0024】
【発明の実施の形態】
図1は、本発明の情報処理装置の実施の一形態を含む画像符号化装置の一例を示すブロック図、図2は、画像符号化処理の一例を示すフローチャート、図3は、誤差拡散法あるいは平均誤差法における誤差分配の一例の説明図である。図中、1は画素値変更部、2は符号化部、3は誤差分配部、4は入力画素、5は出力画素、6は符号データ、7は誤差、8は分配誤差、11は入力制御部、12は判断部、13は打ち切り部、14は並列演算部、15はセレクタ、16は決定信号である。図1に示す例では、例えば特願2001−182955号の実施例1として示されている画像符号化装置の構成に本発明の情報処理装置を適用した場合の一例を示している。
【0025】
この画像符号化装置では、本発明の情報処理装置を用いて入力画素4を変更する画素値変更部1と、画素値変更部1から出力される出力画素5を入力とし符号データ6を出力する符号化部2と、画素値変更部1のもう一つの出力である誤差7を入力として分配誤差8を出力する誤差分配部3から構成されている。符号化部2は、任意の可逆符号化あるいは非可逆符号化手法によって出力画素5を符号化する。また、誤差分配部3は、入力された誤差7を周囲の画素に対して分配する。実際には例えば図3に示すように、注目画素をxとしたとき、その周囲の処理済の画素、例えば画素a〜eなどから誤差が注目画素xに繰り込まれる。従って誤差分配部3は、画素値変更部1において注目画素xに繰り込む誤差を分配誤差8として出力する。このとき、画素aは注目画素xの直前の画素であり、画素aの値が決まらないと画素aから注目画素xへ分配される誤差は決まらないが、後述するようにこの誤差を予測して画素値変更部1において演算を行う。この予測のためには画素aの変更値は決定されるか予測しなければならない。後述するように並列演算部14のパイプラインの段数の半分のサイクルを1単位として動作させるので、誤差分配部3は画素aの前の画素値が決定して画素aの変更値が決定してから、その画素aの変更値とその他の周囲画素から注目画素xへ分配される誤差を分配誤差8として出力することができる。
【0026】
画素値変更部1は、入力制御部11、判断部12、打ち切り部13、並列演算部14を有している。入力制御部11は、入力画素4を受け取って判断部12及び並列演算部14に渡す。このとき、判断部12から送られてくる決定信号16に従って、フィードバックが発生しないと判断部12が判断した場合には連続して入力画素4を転送し、フィードバックが発生すると判断部12が判断した場合には1サイクルおきに入力画素4の転送を行うように、入力タイミングを制御する。
【0027】
判断部12は、入力制御部11から転送されてくる入力画素4から、フィードバックが発生する場合の処理とフィードバックが発生しない場合の処理のいずれを行うかを決定する。この例では、判断部12は入力画素4の値(あるいは誤差配分を受けた後の画素値)が周囲のいずれかの画素と値が一致するか否かを判断し、一致する場合にフィードバックが発生しないと判断する。また、一致する画素が存在しない場合に、フィードバックが発生すると判断する。なお、この例ではフィードバックが発生しない場合には、入力画素4をそのまま、あるいは所定の処理を施して、出力画素5として出力する。あるいは、一致した画素位置を特定する情報などを出力画素5として出力する場合もある。また、誤差分配部3には、誤差として0が渡される。さらに、この判断部12の判断結果は決定信号16として入力制御部11に渡される。また、判断結果は打ち切り部13に渡される。
【0028】
打ち切り部13は、判断部12の判断結果に従って、例えばフィードバックが発生しないと判断された場合に、並列演算部14における当該入力画素4に対するパイプライン処理を停止させる。
【0029】
並列演算部14は、フィードバックが発生する場合の処理を、並列パイプライン構成によって実行する。すなわち、入力制御部11から入力画素4が入力されると、誤差分配部3から渡される分配誤差8をもとに、フィードバックが発生する場合にその入力画素4が処理後に取り得る値を予測し、その取り得る値毎に並列して以下に説明するような処理を行う。ここでは一例として4段のパイプラインを構成しており、それぞれ、処理A、処理B、処理C、処理Dを実行する。また、並列して処理された結果は、直前の出力画素5の値によってセレクタ15で選択して、出力画素5として出力する。なお、打ち切り部13から処理の打ち切りの処理が行われた場合には、打ち切られた入力画素4に対するそれ以後の処理は行われない。
【0030】
図1に示した構成によって実行される画像符号化処理の一例を図2に示している。この図2に示した処理は、上述のように特願2001−182955号に記載されている画像符号化技術を応用したものである。入力画素4(あるいは入力画素4に分配誤差を加えた値)は、S21において複数の符号化予測データ(具体的には図3に示す注目画素xの周囲の画素a〜eなど)と比較され、一致する符号化予測データの有無を判断する。一致する符号化予測データが一つでもあれば、フィードバックを行わないものと判断し、入力画素4を出力画素5として符号化部2に出力し、また誤差分配部3に対して誤差として0を出力する。そしてS26において、符号化部2で出力画素5を符号化処理し、符号データ6として出力する。
【0031】
S21で一致する符号化予測データがないと判断された場合、S22において入力画素4に対して分配誤差を加算する。分配誤差は、画素値変更部1が生成した誤差を入力として誤差分配部3で生成されたものであり、例えば誤差拡散法や平均誤差法に従い、図3に示すように周囲の画素からの誤差に重み行列を乗算して算出されたものである。
【0032】
S23では、S22で分配誤差を加算した画素と符号化予測データの差分を算出する。S24では、S23で算出された差分のうち最小となるものを探索する。S25では、S24で探索した最小となる差分と規定値を大小比較し、差分が規定値以下であれば、最小となる差分のもととなった符号化予測データを出力画素5として符号化部2に出力し、誤差として最小となる差分を出力する。逆に最小となる差分が規定値より大きい場合は、分配誤差を加算した画素を出力画素5として符号化部2に出力し、誤差として0を出力する。いずれの場合も、S26において、符号化部2で出力画素5を符号化し、符号データ6を出力する。
【0033】
この図2に示した処理自体は、逐次処理でも実行可能であるが、S22における分配誤差の加算時に直前の画素の処理結果を予測し、直前の画素においてフィードバックが発生した場合に取り得る1ないし複数通りの場合についてそれぞれ並列して演算を行うことによって並列パイプライン構成を実現する。上述のように、直前の入力画素についてフィードバックが発生すると判定されている場合、直前の画素からの分配誤差は決定されていない。そのため、直接的にはS22において分配誤差の加算を行うことができない。しかし、その前までの画素値が決定され、直前の入力画素値がわかれば、直前の入力画素に対応する出力画素値及び誤差を1ないし複数通りに絞ることができる。この1ないし複数通りについて予測し、それぞれについて並行して演算を行えばよい。
【0034】
上述の説明を踏まえた上で、図1に示した構成について、動作の一例を説明する。入力画素4は、入力制御部11を介して判断部12、並列演算部14に入力され、判断部12において各符号化予測データと入力画素4が一致するか否かを判断する。この判断部12における判断処理と並行して、並列演算部14での演算を開始する。この並列演算部14では、まずパイプラインの初段である処理Aにおいて、次に処理される画素が予測データと一致しなかった場合に行う分配誤差加算(図2におけるS22の処理のうち誤差部分の加算処理)を、当該入力画素4の出力結果が決定する前に行う。例えば図3に示すような周囲画素からの誤差分配を行う場合、この時点で行う処理は、画素a〜eから注目画素xに分配される誤差部分の計算である。画素aが符号化予測データと一致していない場合、すなわちフィードバックが発生する場合には、この時点では画素aの出力値は計算されていない。そのため、この画素aが取り得るすべての値を予測して、それぞれの予測値について並列に演算する。この画素aが取り得る値とは、入力画素4に対する出力画素5が取り得る値のことであり、画素aに対する分配誤差と、入力画素4(すなわち画素aの処理前の値)と、画素aに対する符号化予測データとから演算することができる。なお、画素aに対する分配誤差は、画素aの直前の画素まで処理が終了していれば確定する。そして、画素aが取り得る値と、その他の周囲の画素b〜eから分配される誤差とを加算することによって、注目画素xに対して分配される誤差の総量を計算することができる。なお、この時点では次に処理される画素(注目画素x)については、まだ入力されていない。
【0035】
判断部12において入力画素4と一致する符号化予測データが存在すると判断されると、入力画素4がそのまま出力画素5として出力され、誤差7として0が出力される。同時に、判断部12における判断結果が打ち切り部13に伝えられ、打ち切り部13によって、並列演算部14における当該入力画素4についての処理を停止させる。
【0036】
逆に判断部12において入力画素4と一致する符号化予測データが存在しないと判断されると、打ち切り部13は並列演算部14の処理をそのまま続行させる。並列演算部14は、上述のようにパイプラインの初段において上述のように図2におけるS22の処理を予測値によって進めている。そして、2段目において図2におけるS23の処理、3段目において図2におけるS24の処理、最終段において図2におけるS25の処理を実行する。すなわち、2段目においては、初段で計算された分配誤差を、新たに入力された入力画素4に対して加算した上で、符号化予測データとの差分値をそれぞれ計算する。さらに3段目において、2段目で計算された差分値のうちから最小値を探索する。そして最終段において、3段目において探索された差分値の最小値と既定値を比較し、差分が規定値以下であれば、最小となる差分のもととなった符号化予測データを出力画素5として出力し、誤差として最小となる差分を出力する。逆に最小となる差分が規定値より大きい場合は、分配誤差を加算した画素を出力画素5として符号化部2に出力し、誤差として0を出力する。
【0037】
このようなパイプライン処理を、初段と2段目を1単位とし、3段目と最終段を1単位とした2単位を、それぞれ並行して処理を行う。すなわち、初段と3段目、2段目と最終段を並行して実行する。そのため、この並列演算部14の動作は以下のようになる。まずフィードバックが発生しない場合の処理について示す。なお、N番目の画素が入力される前のN−1番目の画素については符号化予測データと一致しており、フィードバックが発生しないものとする。この場合、入力制御部11は連続して入力画像4を判断部12及び並列演算部14に転送する。
【0038】
N番目の画素が入力されると、その入力画素4の入力と同じサイクルで、判断部12と並列演算部14の初段で同時に処理が実行される。次のサイクルでN+1番目の画素が入力されると、この入力画素は判断部12と並列演算部14の初段で同時に処理され、並列演算部14の初段で処理されたN番目の画素は並列演算部14の2段目で処理される。ここで、N+1番目の入力画素が判断部12で予測データと一致すると判断されれば、N+1番目の入力画素の画素値変更はおこなわれないため、並列演算部14の2段目で処理されたN回目のデータについての演算は必要がないので3段目以降の処理は打ち切られる。このようにして、入力画素4が符号化予測データと一致し、フィードバックが発生しない場合には、パイプライン処理は途中で打ち切られ、1サイクル毎に、入力画素4が入力されて出力画素5が出力されることになる。
【0039】
次に、フィードバックが発生する場合について説明する。フィードバックが発生する場合には、入力制御部11は2サイクルを1単位とする動作により、1サイクルおきに入力画素4を判断部12及び並列演算部14に転送するように制御する。なお、N−1番目の画素が符号化予測データと一致していないものとして動作するものとして説明する。この場合、N番目の画素に対する分配誤差の演算はN番目の画素が入力される前に並列演算部14の初段ですでに終了している。N番目の画素が入力されると、並列演算部14の2段目でN番目の画素への分配誤差とN番目の画素との和が演算されるとともに各符号化予測データとの差分が計算される。
【0040】
次のサイクル(これが1単位の前半のサイクルとなる)でN番目の画素が判断部12と並列演算部14の初段で同時に処理が実行される。並列演算部14の初段では、N+1番目の画素への分配誤差の演算が行われる。また、並列演算部14の3段目においてN番目の画素について差分の最小値が探索される。このサイクルでの入力画素4の転送は行われない。ここでは判断部12はフィードバックが発生すると判断したものとする。
【0041】
次のサイクル(1単位の後半のサイクル)でN+1番目の画素が入力されると、並列演算部14の初段における処理結果が2段目に送られ、入力されたN+1番目の入力画素4を用いて2段目において差分値算出処理が行われる。また、並列演算部14の4段目においてN番目の画素について既定値との比較処理が行われる。
【0042】
そして次のサイクル(1単位の前半のサイクル)において、演算が終了したN番目の画素に対応する出力画素5及び誤差7が出力される。このとき、N番目の画素の処理結果は並列に複数計算されているが、N−1番目の画素の処理結果によってセレクタ15によりいずれかが選択され、出力画素5及び誤差7として出力される。また、N番目の画素の演算結果である出力画素5及び誤差7が決まったことによって、N+1番目の画素への分配誤差が決定する。誤差分配部3は、誤差7を用いて、N+1番目の画素の出力値が決定しない段階で、N+1番目の画素からN+2番目の画素への分配誤差を予測計算し、並列演算部14の初段に入力される。このとき、直前のサイクルで入力されたN+1番目の画素とともにN+2番目の画素へ分配される誤差を計算する。また、直前のサイクルで入力されたN+1番目の画素については、判断部12における判断処理が並行して実行される。さらに、並列演算部14の2段目で演算していたN+1番目の画素については、並列演算部14の3段目に送られて演算が続けられる。
【0043】
このように、1単位の前半のサイクルでは、N番目の画素について演算結果として出力画素5及び誤差7の出力と、N+1番目の画素について並列演算部14の3段目における演算と、入力されたN+1番目の画素に対する判断部12による判断処理と、同じく入力されたN+1番目の画素と誤差分配部3からの分配誤差8を用いた並列演算部14の初段におけるN+2番目の画素への分配誤差の計算が行われる。また1単位の後半のサイクルでは、N+2番目の画素の入力によるN+2番目の画素の符号化予測データとの差分演算を並列演算部14の2段目で行うとともに、N+1番目の画素について既定値との比較処理を並列演算部14の4段目で行う。フィードバックが発生する場合には、このような2サイクルを1単位とした並列パイプライン処理を繰り返して行う。
【0044】
なお、直前の入力画素に対する判断結果がフィードバックが発生しない判断であり、当該入力画素に対する判断結果がフィードバックが発生する判断であった場合には、その判断直後から入力制御部11は2サイクル毎の入力画素の転送処理に移行するとともに、並列演算部14の処理についても動作の調整を行う。また逆に、直前の入力画素に対する判断結果がフィードバックが発生する判断であり、当該入力画素に対する判断結果がフィードバックが発生しない判断であった場合には、次の入力画素以降について、入力制御部11は連続した入力画素の転送を行うとともに、打ち切り部13は当該入力画素について先行して実行している並列演算部14における処理を打ち切り、以後、フィードバックが発生しない場合の処理を行う。
【0045】
図4は、本発明の情報処理装置の実施の一形態における動作の一例を示すタイミングチャートである。上述の動作の一例を、図4に示すタイミングチャートを用いてさらに説明する。図4において、ハッチングを施した入力画素は符号化予測データと一致する画素、すなわちフィードバックが発生しない画素を示し、ハッチングを施していない入力画素は符号化予測データと一致しない画素、すなわちフィードバックが発生する画素を示している。また、パイプライン処理においては図2に示した処理ステップをそれぞれ示している。さらに、矢印で示された点線の処理は、打ち切られたことを示している。なお、図4においては、画素1の前に入力された画素が符号化予測データと一致していたものとして図示している。
【0046】
画素1が入力される前に、すでに並列演算部14の初段において、画素1に分配される誤差を算出するための演算(S22)は終了している。処理サイクルAにおいて、画素1が入力される。入力された画素1は、判断部12及び並列演算部14に入力される。判断部12において画素1の判断処理を行う時、この判断処理と並行して、並列演算部14の2段目において画素1における差分値の演算(S23)と、初段において画素2に分配される誤差を算出するための演算(S22)を行う。この例では、画素1は符号化予測データと一致する画素であるので、判断部12はフィードバックは発生しないと判断する。
【0047】
処理サイクルBでは、処理サイクルAにおける判断部12の判断結果、すなわちフィードバックが発生しないとの判断結果が打ち切り部13に通知され、打ち切り部13は画素1に対する処理(並列演算部14の3段目以降の処理)を打ち切る。また、画素1に対応する出力画素が出力されるとともに誤差として0が出力される。この処理サイクルBでは、画素2が入力され、並列演算部14の2段目において画素2における差分値の演算(S23)と、初段において次に入力される画素3に分配される誤差の算出(S22)が並行して実行される。
【0048】
処理サイクルCでは、処理サイクルBにおける判断部12の判断結果、すなわちフィードバックが発生しないとの判断結果が打ち切り部13に通知され、打ち切り部13は画素2に対する処理(並列演算部14の3段目以降の処理)を打ち切る。また、画素2に対応する出力画素が出力されるとともに誤差として0が出力される。この処理サイクルCでは、画素3が入力され、並列演算部14の2段目において画素3における差分値の演算(S23)と、初段において次に入力される画素4に分配される誤差の算出(S22)が並行して実行される。このようにして、フィードバックが発生しない画素が連続して入力される場合には、このような処理が連続して実行されることになる。
【0049】
画素3は、符号化予測データと一致せず、フィードバックが発生する。そのため、これ以後の処理サイクルでは、フィードバックが発生したときの2サイクルを1単位とした動作に切り替わる。
【0050】
処理サイクルDでは、画素3に対する処理が継続され、並列演算部14の3段目において画素3における最小値の探索処理(S24)が行われる。また、未入力の画素4に対する処理も継続されるが、ここではタイミング調整のため、並列演算部14の初段の処理を再度実行する。あるいは1サイクル分、処理を休止してもよい。
【0051】
処理サイクルEでは、画素3に対する処理が継続され、並列演算部14の最終段において画素3における規定値との比較処理(S25)が行われる。また、画素4が入力され、並列演算部14の2段目において画素4に対する符号化予測データとの差分値の算出処理(S23)が行われる。この時点ではまだ画素3の値が確定していないので、画素4に対する判断部12における判断処理及び並列演算部14の初段における分配誤差の算出処理は行わない。
【0052】
処理サイクルFでは、画素3に対する処理が終了し、出力画素及び誤差が出力される。これを受けて、画素4に対する判断部12における判断処理、及び、並列演算部14の初段における画素5に対する分配誤差の算出処理(S22)が行われる。なお、画素4はフィードバックが発生すると判断されるので、打ち切り部13による処理の打ち切りは行われない。また処理サイクルFでは、並列演算部14の3段目における画素4に対する最小値の探索処理(S24)が行われる。この最小値の探索処理では、画素3が確定したことによって、確定した画素3の値に対応する組み合わせのみについて探索処理を行えばよく、処理すべきデータ量を減少させることが可能である。
【0053】
処理サイクルGは処理サイクルEと同様であり、並列演算部14の最終段において画素4における規定値との比較処理(S25)が行われ、また、画素5が入力されて、並列演算部14の2段目において画素5に対する符号化予測データとの差分値の算出処理(S23)が行われる。フィードバックが発生する場合には、この処理サイクルF、Gに示すような2サイクルの処理を1単位として繰り返すことによって処理が進められる。
【0054】
処理サイクルHも処理サイクルFと同様であり、画素4に対する処理が終了し、出力画素及び誤差が出力される。これを受けて、画素5に対する判断部12における判断処理、及び、並列演算部14の初段における画素6に対する分配誤差の算出処理(S22)が行われる。また、並列演算部14の3段目における画素5に対する最小値の探索処理(S24)が行われる。
【0055】
処理サイクルIでは、並列演算部14の最終段において画素5における規定値との比較処理(S25)が行われ、また、画素6が入力されて、並列演算部14の2段目において画素6に対する符号化予測データとの差分値の算出処理(S23)が行われる。入力された画素6は、符号化予測データと一致し、フィードバックが発生しない画素であるが、この時点ではまだ画素5の値が確定していないので、画素6に対する判断部12における判断処理及び並列演算部14の初段における分配誤差の算出処理は行わない。
【0056】
処理サイクルJでは、画素5に対する処理が終了し、出力画素及び誤差が出力される。これを受けて、画素6に対する判断部12における判断処理、及び、並列演算部14の初段における画素7に対する分配誤差の算出処理(S22)が行われる。なお、画素6に対する判断部12における判断処理によって、画素6は符号化予測データと一致し、フィードバックが発生しないと判断される。また処理サイクルJでは、並列演算部14の3段目における画素6に対する最小値の探索処理(S24)が行われる。
【0057】
処理サイクルKでは、処理サイクルJにおける判断部12の判断結果、すなわちフィードバックが発生しないとの判断結果が打ち切り部13に通知され、打ち切り部13は画素6に対する処理(並列演算部14の最終段の処理)を打ち切る。また、この判断結果が入力制御部11に通知され、以後、フィードバックが発生しないときの処理タイミング、すなわち連続して入力画素の転送を行う。また、この処理サイクルKにおいて、画素6に対応する出力画素が出力されるとともに誤差として0が出力される。さらに、画素7が入力され、並列演算部14の2段目において画素7における差分値の演算(S23)と、図示していないが、初段において次に入力される画素8に分配される誤差の算出が並行して実行される。また、入力された画素7に対する判断部12における判断処理も並行して行われる。画素7も符号化予測データと一致するため、処理サイクルLにおいて打ち切り部13は画素7に対する処理(並列演算部14の3段目以降の処理)を打ち切り、画素7に対応する出力画素及び誤差が出力される。
【0058】
このようにして、入力画素に適した処理方式で演算を行うように切り替えることによって、符号化予測データと一致した場合は1サイクルで、不一致であった場合は平均して2サイクルで出力を得ることができる。
【0059】
図5は、本発明による処理時間と従来の逐次処理及び並列パイプライン処理による処理時間の比較例の説明図である。ここでは、図2に示した処理を、従来の図7に示すように逐次処理によって実行した場合と、同じく従来の図9に示したように並列パイプライン処理によって実行した場合、及び、上述の本発明によって実行した場合を示している。いずれも、全てフィードバックが発生するデータあるいは全てフィードバックが発生しないデータを入力した場合の処理時間の一例を示している。入力したデータは、600dpi、A4フルカラーのデータ(30Mpixel)である。また、各処理サイクルにおける動作周波数を100MHzとしている。
【0060】
本発明では、フィードバックが発生する場合には並列処理の場合と同様に動作し、フィードバックが発生しない場合には並列処理を打ち切ることによって逐次処理と同様に動作する。従って、図5に示したように、フィードバックが発生する場合も、またフィードバックが発生しない場合についても、いずれの場合も高速に処理を行うことができる。
【0061】
上述の説明では、判断部12における判断方法として、入力画素(あるいは入力画素に誤差を分配した後の値)と符号化予測データとの比較を行うものとしたが、これに限られるものではない。その他の判断方法として、入力画素と1つ前のサイクルでの処理結果を用いた演算から、画素変更すべきか否かを判定し、処理方式を選択することも可能である。また、誤差拡散法あるいは平均誤差法において参照される周囲画素は図3に示した画素に限られるものではなく、任意の位置及び個数の周囲画素を用いることができる。
【0062】
また、並列演算部14におけるパイプラインの段数は4段に限られるものではなく、フィードバックが発生する場合に行う処理に応じて段数を設計すればよい。その場合、直前の画素のみについて出力画素値の予測を行うためには段数の半分のサイクルを1単位として、単位毎に動作させる必要がある。もちろん、直前の画素とともにそれより前の画素についても予測するように構成することもでき、その場合には1単位のサイクル数を減少させてパイプラインでより高速に演算を行うことができる。しかしその場合には予測される値の場合分けが多数となることが予想されるので、並列して実行するための回路規模とのトレードオフとなる。
【0063】
さらに、上述の構成ではフィードバックが発生しない場合にはそのまま出力されているが、フィードバックが発生しない場合のみについて行われる処理が存在していてもよい。このような処理が付加されている場合、判断部12においてフィードバックが発生すると判断されたときには、打ち切り部13によってこのフィードバックが発生しない場合の処理が打ち切られることになる。
【0064】
上述の実施の形態では、本発明を画像符号化装置に適用する例を示したが、本発明はこれに限られるものではなく、フィードバックが発生する場合の処理とフィードバックが発生しない場合の処理とを切り替えて実行するようなあらゆる処理に対して適用可能である。もちろん、処理対象となるデータも画像データに限られるものではなく、種々のデータに対して適用可能である。
【0065】
【発明の効果】
以上の説明から明らかなように、本発明によれば、入力データによって、フィードバックが発生する処理と発生しない処理のうちいずれかを選択して実行する場合に、選択した処理内容に適した処理方式を選択して実行するので、フィードバックが発生する処理と発生しない処理のいずれを実行した場合でも、ともに高速に処理を行うことができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の情報処理装置の実施の一形態を含む画像符号化装置の一例を示すブロック図である。
【図2】 画像符号化処理の一例を示すフローチャートである。
【図3】 誤差拡散法あるいは平均誤差法における誤差分配の一例の説明図である。
【図4】 本発明の情報処理装置の実施の一形態における動作の一例を示すタイミングチャートである。
【図5】 本発明による処理時間と従来の逐次処理及び並列パイプライン処理による処理時間の比較例の説明図である。
【図6】 フィードバックが発生する処理と発生しない処理を切り替えて実行する処理の一例を示すフローチャートである。
【図7】 図6に示す処理を逐次処理で行う場合の概念図である。
【図8】 図6に示す処理を逐次処理で行う場合のタイミングチャートである。
【図9】 図6に示す処理をパイプライン処理で行う場合の概念図である。
【図10】 図6に示す処理をパイプライン処理で行う場合のタイミングチャートである。
【図11】 逐次処理及び並列パイプライン処理による処理時間の一例の説明図である。
【符号の説明】
1…画素値変更部、2…符号化部、3…誤差分配部、4…入力画素、5…出力画素、6…符号データ、7…誤差、8…分配誤差、11…入力制御部、12…判断部、13…打ち切り部、14…並列演算部、15…セレクタ、16…決定信号。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus that selects and executes either a process in which feedback occurs or a process in which feedback does not occur from input data.
[0002]
[Prior art]
There is a case where it is desired to execute a process at a high speed by making a decision based on input data and branching to a process in which feedback occurs or a process in which feedback does not occur. FIG. 6 is a flowchart illustrating an example of processing executed by switching between processing in which feedback occurs and processing in which feedback does not occur. FIG. 6 shows processing for one input data. In S31, it is determined whether or not feedback is generated based on the input data. If feedback is not generated, in this example, it is output as it is in S36 and the processing for the input data is terminated.
[0003]
If it is determined in S31 that feedback will occur, a feedback loop constituted by processes A to D in S32 to S35 is executed. This execution result is output in S36 and fed back to determine the next input data.
[0004]
In this example, the processing result corresponding to the previous input data is applied to the next input data, and the determination in S31 is performed. Therefore, if it is determined that feedback will occur for the immediately preceding input data, it is not possible to determine the next input data unless the processing between the processes D for the immediately preceding input data is completed. Therefore, when such processing is handled by hardware, sequential processing is usually used.
[0005]
FIG. 7 is a conceptual diagram when the processing shown in FIG. 6 is performed sequentially, and FIG. 8 is a timing chart. When the processing of the flowchart shown in FIG. 6 is sequentially performed, as shown in FIG. 7, first, determination processing is performed, and when it is determined that feedback occurs, processing A, processing B, processing C, and processing D are sequentially performed. Process and output. Further, when determining the next input data, the determination is performed in consideration of the result of the process D. Conversely, when it is determined that no feedback occurs, when the determination process is completed, the data at the time of determination is output as it is, and the result is not used for determination on the next data.
[0006]
This process is shown in a timing chart as shown in FIG. In FIG. 8, the processing in the feedback loop of FIG. 6 (processing A to processing D in S32 to S35) is illustrated as being completed in one cycle. Of the input data in FIG. 8, feedback is not generated for input data that is hatched, and feedback is generated for input data that is not hatched.
[0007]
When feedback does not occur, output is not required in the next input data determination process, so that data output and next data input can be performed simultaneously. On the other hand, when feedback occurs, data is input in the next cycle of data output because output is required for the next input data determination process. Also, four cycles are required until the input data is output. Therefore, when feedback occurs, data is input at intervals of 5 cycles.
[0008]
Therefore, in sequential processing, when data that does not generate feedback is input, processing can be performed with one output per cycle, whereas data with feedback requires five cycles per output. That is, it can be seen that the sequential processing has a problem that the throughput is remarkably lowered when there is a lot of data that generates feedback.
[0009]
As described above, with respect to the problem that the throughput decreases when there is a lot of data for which feedback occurs in the sequential processing, for example, by applying a processing method as described in JP 2000-152005 A, feedback It is possible to improve the throughput at the time of occurrence. In the processing method described in Japanese Patent Laid-Open No. 2000-152005, in the binarization process using error diffusion in which feedback always occurs, error values for all possible values of output data, that is, 0 or 1, are obtained. The feedback loop is reduced by performing the calculation first. By applying such prediction processing, processing can be pipelined.
[0010]
FIG. 9 is a conceptual diagram when the processing shown in FIG. 6 is performed by pipeline processing, and FIG. 10 is a timing chart. When the processing of the flowchart shown in FIG. 6 is executed by pipeline processing, when the input data is data that generates feedback, the calculation is performed in advance for all the values that the output data can take. deep. Therefore, as shown in FIG. 9, processing A, processing B, processing C, and processing D are executed in parallel for a plurality of cases. Then, any one of a plurality of processing results may be selected according to the output value of the data input immediately before.
[0011]
As a result, the operation for the next data can be taken out of the feedback loop. As a result, it is not necessary to wait for the output data to be fed back, so that it is possible to expect an improvement in throughput with the data for which feedback occurs.
[0012]
However, since the technique applying the technique described in Japanese Patent Application Laid-Open No. 2000-152005 is configured to perform prediction necessary for the immediately preceding data and perform calculations necessary for processing the next data, at least two previous times. If the calculation for the data is not completed, the processing of the input data cannot be started. Conversely, a pipeline cannot be configured unless all processing is completed in two cycles. Therefore, in order to configure a pipeline for executing the processing shown in FIG. 6, two processing steps must be operated in one cycle so that the four processing are executed in two cycles.
[0013]
Therefore, when the process shown in FIG. 6 is configured with a pipeline by applying the technique described in Japanese Patent Application Laid-Open No. 2000-152005, two processing steps are performed as shown in the timing chart of FIG. Is executed as one unit. In FIG. 10, the operating frequency at which each processing step operates is the same as in FIG. Therefore, the time for executing one unit is the execution time for two processing steps.
[0014]
As can be seen from FIG. 10, with the pipeline configuration, an output can be obtained for each unit (two processing steps) regardless of whether or not feedback occurs. Therefore, with respect to input data that generates feedback shown without being hatched, output data can be obtained in about half the processing time compared to the sequential processing shown in FIG. However, since the processing time corresponding to two processing steps is required for input data that does not generate feedback shown by hatching, it takes twice as long as the sequential processing shown in FIG. That is, in the pipeline configuration, the throughput with data that does not generate feedback is reduced as compared with the sequential processing.
[0015]
FIG. 11 is an explanatory diagram of an example of processing time by sequential processing and parallel pipeline processing. Here, in the case where the processing shown in FIG. 6 is executed by sequential processing as shown in FIG. 7 and the case where it is executed by parallel pipeline processing as shown in FIG. An example of processing time when data that does not occur is input is shown. The input data is 30 million pieces each. The operating frequency in each process is 100 MHz. Accordingly, the operating frequency per unit in the case of parallel pipeline processing is 50 MHz.
[0016]
As shown in FIG. 11, in the case of sequential processing, when feedback does not occur, the processing is completed in 0.3 seconds, but when feedback occurs, five times 1.5 seconds are required. . In parallel pipeline processing, processing can be performed in 0.6 seconds regardless of whether or not feedback occurs. Therefore, it is understood that sequential processing is suitable for data that does not generate feedback, and parallel pipeline processing is suitable for data that generates feedback. Therefore, it can be seen that if either one of the processing methods is selected, there is a problem that the throughput is lowered due to the input data.
[0017]
In the above-described parallel pipeline processing, the case of a four-stage pipeline configuration is shown. However, even in the case of a pipeline with a larger number of stages, for example, in order to predict only the immediately preceding data, half of the total number of stages is 1 It will be operated as a unit. Therefore, when the number of stages is larger, the difference in processing time is further increased in data where no feedback occurs.
[0018]
By predicting not only the data immediately before but also the previous data, it is conceivable to reduce the number of stages per unit for operating the pipeline and increase the speed. However, when the number of values that can be taken by the output to be fed back is M, M × N− (N−1) prediction data is required for the prediction N times before. For example, if the number of data predicted from the immediately preceding data is 10, the number of predicted data increases by 9N + 1. Therefore, in the case of predicting up to the previous data, the calculation may be performed in parallel with respect to the 10 predicted data. However, when the prediction is performed up to the second previous data, 19 is predicted and the data up to the third previous data is 28. Must be performed in parallel on the predicted data. For example, if data is input in each processing cycle in the above-described four-stage pipeline configuration, prediction is performed up to three previous data, so 28 prediction data are calculated in parallel. I have to go. When 2 cycles are taken as 1 unit, 10 predicted data need only be calculated in parallel, so about three times as many circuits are required as compared to this case.
[0019]
As described above, in order to perform the parallel operation by predicting the data before the previous data, the amount of hardware becomes enormous and the circuit scale becomes unrealistic. Therefore, in reality, it is almost impossible to solve the problem by constructing a pipeline that predicts data before the previous time.
[0020]
[Problems to be solved by the invention]
The present invention has been made in view of the above-described circumstances, and when data that generates feedback is input when one of processing that generates feedback and processing that does not occur is selected from input data and executed. However, it is an object of the present invention to provide an information processing apparatus that can perform high-speed processing even when data that does not generate feedback is input.
[0021]
[Means for Solving the Problems]
According to the present invention, in an information processing apparatus that performs processing on input data by selecting one of processing that generates feedback and processing that does not generate feedback from the input data, the processing that generates feedback is generated A computing means for performing pipeline processing on input data in parallel for all possible values; a judging means for selecting one of a process in which feedback is generated by the input data and a process in which no feedback is generated; and a judging means There is means for aborting one of the processes according to the selection result of the process. When data is input, the process is selected by the judging means, and the aborting means aborts one of the processes according to the selection result.
[0022]
For example, if feedback does not occur, the pipeline processing for the input data being performed in the computing means is discontinued, and processing when no feedback occurs is performed. As a result, in the case of data for which no feedback occurs, the delay due to the pipeline processing does not occur, and therefore it can be executed at high speed. In addition, when feedback occurs, pipeline processing is performed in parallel in the arithmetic means, so that execution can be performed at a higher speed than when sequential processing is performed.
[0023]
Therefore, even when data that does not generate feedback is input or when data that generates feedback is input, the processing method suitable for the processing content selected by the input data is applied, so processing is performed at high speed. can do.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing an example of an image encoding apparatus including an embodiment of the information processing apparatus of the present invention, FIG. 2 is a flowchart showing an example of an image encoding process, and FIG. It is explanatory drawing of an example of the error distribution in an average error method. In the figure, 1 is a pixel value changing unit, 2 is an encoding unit, 3 is an error distribution unit, 4 is an input pixel, 5 is an output pixel, 6 is code data, 7 is an error, 8 is a distribution error, and 11 is input control. , 12 is a determination unit, 13 is a truncation unit, 14 is a parallel operation unit, 15 is a selector, and 16 is a decision signal. In the example shown in FIG. 1, for example, an example in which the information processing apparatus of the present invention is applied to the configuration of the image encoding apparatus shown as Example 1 of Japanese Patent Application No. 2001-182955 is shown.
[0025]
In this image encoding device, the pixel value changing unit 1 that changes the input pixel 4 using the information processing device of the present invention and the output pixel 5 that is output from the pixel value changing unit 1 are input and the code data 6 is output. The encoding unit 2 and the error distribution unit 3 that outputs the distribution error 8 with the error 7 that is another output of the pixel value changing unit 1 as an input. The encoding unit 2 encodes the output pixel 5 by any lossless encoding or lossy encoding method. The error distributor 3 distributes the input error 7 to surrounding pixels. Actually, for example, as shown in FIG. 3, when the target pixel is x, an error is transferred to the target pixel x from the surrounding processed pixels, for example, the pixels a to e. Therefore, the error distribution unit 3 outputs the error transferred to the target pixel x in the pixel value changing unit 1 as the distribution error 8. At this time, the pixel a is a pixel immediately before the target pixel x, and if the value of the pixel a is not determined, the error distributed from the pixel a to the target pixel x is not determined, but this error is predicted as described later. The pixel value changing unit 1 performs calculation. For this prediction, the change value of the pixel a must be determined or predicted. As will be described later, since a cycle that is half the number of pipeline stages of the parallel operation unit 14 is operated as one unit, the error distribution unit 3 determines the pixel value before the pixel a and determines the change value of the pixel a. Thus, the change value of the pixel a and the error distributed from the other surrounding pixels to the target pixel x can be output as the distribution error 8.
[0026]
The pixel value changing unit 1 includes an input control unit 11, a determination unit 12, an abort unit 13, and a parallel calculation unit 14. The input control unit 11 receives the input pixel 4 and passes it to the determination unit 12 and the parallel calculation unit 14. At this time, when the determination unit 12 determines that feedback does not occur according to the determination signal 16 sent from the determination unit 12, the input unit 4 is continuously transferred, and the determination unit 12 determines that feedback occurs. In this case, the input timing is controlled so that the input pixel 4 is transferred every other cycle.
[0027]
The determination unit 12 determines, based on the input pixel 4 transferred from the input control unit 11, whether to perform processing when feedback occurs or processing when feedback does not occur. In this example, the determination unit 12 determines whether or not the value of the input pixel 4 (or the pixel value after receiving the error distribution) matches any of the surrounding pixels, and if the value matches, feedback is given. Judge that it does not occur. Further, it is determined that feedback occurs when there is no matching pixel. In this example, when no feedback occurs, the input pixel 4 is output as the output pixel 5 as it is or after being subjected to predetermined processing. Alternatively, there are cases where information for identifying the matching pixel position is output as the output pixel 5. Further, 0 is passed to the error distribution unit 3 as an error. Further, the determination result of the determination unit 12 is passed to the input control unit 11 as a determination signal 16. The determination result is passed to the censoring unit 13.
[0028]
For example, when it is determined that feedback does not occur according to the determination result of the determination unit 12, the abort unit 13 stops the pipeline processing for the input pixel 4 in the parallel calculation unit 14.
[0029]
The parallel computing unit 14 executes processing when feedback occurs with a parallel pipeline configuration. That is, when the input pixel 4 is input from the input control unit 11, based on the distribution error 8 passed from the error distribution unit 3, when feedback occurs, a value that the input pixel 4 can take after processing is predicted. The processing as described below is performed in parallel for each possible value. Here, a four-stage pipeline is configured as an example, and processing A, processing B, processing C, and processing D are executed. The result processed in parallel is selected by the selector 15 according to the value of the previous output pixel 5 and is output as the output pixel 5. Note that, when the process is terminated from the abort unit 13, the subsequent process is not performed on the input pixel 4 that has been aborted.
[0030]
An example of the image encoding process executed by the configuration shown in FIG. 1 is shown in FIG. The processing shown in FIG. 2 is an application of the image coding technique described in Japanese Patent Application No. 2001-182955 as described above. The input pixel 4 (or a value obtained by adding a distribution error to the input pixel 4) is compared with a plurality of encoded prediction data (specifically, pixels a to e around the target pixel x shown in FIG. 3) in S21. Then, the presence / absence of matching encoded prediction data is determined. If there is at least one encoded prediction data, it is determined that feedback is not performed, the input pixel 4 is output as the output pixel 5 to the encoding unit 2, and the error distribution unit 3 is set to 0 as an error. Output. In step S <b> 26, the output pixel 5 is encoded by the encoding unit 2 and output as code data 6.
[0031]
When it is determined that there is no matching encoded prediction data in S21, a distribution error is added to the input pixel 4 in S22. The distribution error is generated by the error distribution unit 3 using the error generated by the pixel value changing unit 1 as an input. For example, according to the error diffusion method or the average error method, the error from the surrounding pixels as shown in FIG. Is multiplied by a weight matrix.
[0032]
In S23, the difference between the pixel added with the distribution error in S22 and the encoded prediction data is calculated. In S24, the smallest difference among the differences calculated in S23 is searched. In S25, the minimum difference searched in S24 is compared in magnitude with the specified value, and if the difference is equal to or less than the specified value, the encoded prediction data that is the source of the minimum difference is used as the output pixel 5, and the encoding unit 2 and outputs the difference that minimizes the error. On the other hand, when the minimum difference is larger than the specified value, the pixel added with the distribution error is output to the encoding unit 2 as the output pixel 5 and 0 is output as the error. In any case, in S26, the encoding unit 2 encodes the output pixel 5 and outputs the code data 6.
[0033]
The processing shown in FIG. 2 can be executed by sequential processing, but the processing result of the immediately preceding pixel is predicted when the distribution error is added in S22, and can be taken when feedback occurs in the immediately preceding pixel. A parallel pipeline configuration is realized by performing operations in parallel for a plurality of cases. As described above, when it is determined that feedback occurs for the immediately preceding input pixel, the distribution error from the immediately preceding pixel is not determined. Therefore, the distribution error cannot be added directly in S22. However, if the previous pixel value is determined and the previous input pixel value is known, the output pixel value and error corresponding to the previous input pixel can be narrowed down to one or more. One or a plurality of patterns may be predicted, and calculation may be performed in parallel for each.
[0034]
Based on the above description, an example of the operation of the configuration shown in FIG. 1 will be described. The input pixel 4 is input to the determination unit 12 and the parallel calculation unit 14 via the input control unit 11, and the determination unit 12 determines whether each encoded prediction data matches the input pixel 4. In parallel with the determination process in the determination unit 12, the calculation in the parallel calculation unit 14 is started. In the parallel operation unit 14, first, in process A, which is the first stage of the pipeline, distribution error addition is performed when the pixel to be processed next does not match the prediction data (the error part of the process of S22 in FIG. 2). (Addition processing) is performed before the output result of the input pixel 4 is determined. For example, when error distribution from surrounding pixels as shown in FIG. 3 is performed, the processing performed at this time is calculation of an error portion distributed from the pixels a to e to the target pixel x. If the pixel a does not match the encoded prediction data, that is, if feedback occurs, the output value of the pixel a is not calculated at this point. For this reason, all the possible values of the pixel a are predicted, and the predicted values are calculated in parallel. The value that can be taken by the pixel a is a value that can be taken by the output pixel 5 with respect to the input pixel 4. The distribution error for the pixel a, the input pixel 4 (that is, the value before processing of the pixel a), and the pixel a Can be calculated from the encoded prediction data for. Note that the distribution error for the pixel a is determined if the processing is completed up to the pixel immediately before the pixel a. Then, the total amount of errors distributed to the target pixel x can be calculated by adding the values that the pixel a can take and the errors distributed from the other surrounding pixels b to e. At this time, the pixel to be processed next (target pixel x) has not been input yet.
[0035]
If the determination unit 12 determines that there is encoded prediction data that matches the input pixel 4, the input pixel 4 is output as it is as the output pixel 5, and 0 is output as the error 7. At the same time, the determination result in the determination unit 12 is transmitted to the abort unit 13, and the abort unit 13 stops the processing for the input pixel 4 in the parallel calculation unit 14.
[0036]
Conversely, when the determination unit 12 determines that there is no encoded prediction data that matches the input pixel 4, the truncation unit 13 continues the processing of the parallel calculation unit 14 as it is. As described above, the parallel processing unit 14 advances the processing of S22 in FIG. 2 by the predicted value at the first stage of the pipeline as described above. Then, the process of S23 in FIG. 2 is executed in the second stage, the process of S24 in FIG. 2 is executed in the third stage, and the process of S25 in FIG. 2 is executed in the final stage. That is, in the second stage, the distribution error calculated in the first stage is added to the newly input pixel 4, and then the difference value from the encoded prediction data is calculated. Further, in the third stage, the minimum value is searched from the difference values calculated in the second stage. Then, in the final stage, the minimum value of the difference value searched in the third stage is compared with a predetermined value, and if the difference is equal to or less than a specified value, the encoded prediction data that is the source of the minimum difference is output pixel 5 is output, and the difference that minimizes the error is output. On the other hand, when the minimum difference is larger than the specified value, the pixel added with the distribution error is output to the encoding unit 2 as the output pixel 5 and 0 is output as the error.
[0037]
Such pipeline processing is performed in parallel on two units each having the first and second stages as one unit and the third and last stages as one unit. That is, the first stage, the third stage, the second stage, and the last stage are executed in parallel. Therefore, the operation of the parallel computing unit 14 is as follows. First, processing when no feedback occurs will be described. Note that the (N-1) th pixel before the Nth pixel is input matches the encoded prediction data, and no feedback is generated. In this case, the input control unit 11 continuously transfers the input image 4 to the determination unit 12 and the parallel calculation unit 14.
[0038]
When the Nth pixel is input, processing is executed simultaneously in the first stage of the determination unit 12 and the parallel operation unit 14 in the same cycle as the input of the input pixel 4. When the (N + 1) th pixel is input in the next cycle, this input pixel is processed simultaneously in the first stage of the determination unit 12 and the parallel operation unit 14, and the Nth pixel processed in the first stage of the parallel operation unit 14 is processed in parallel. Processing is performed in the second stage of the unit 14. Here, if the determination unit 12 determines that the (N + 1) th input pixel matches the prediction data, the pixel value of the (N + 1) th input pixel is not changed, so that the processing is performed in the second stage of the parallel operation unit 14. Since the calculation for the Nth data is not necessary, the third and subsequent steps are aborted. In this way, when the input pixel 4 matches the encoded prediction data and no feedback occurs, the pipeline processing is interrupted in the middle, and the input pixel 4 is input and the output pixel 5 is changed every cycle. Will be output.
[0039]
Next, a case where feedback occurs will be described. When feedback occurs, the input control unit 11 performs control so that the input pixel 4 is transferred to the determination unit 12 and the parallel calculation unit 14 every other cycle by an operation with two cycles as one unit. In the following description, it is assumed that the (N−1) th pixel does not match the encoded prediction data. In this case, the calculation of the distribution error for the Nth pixel has already been completed at the first stage of the parallel operation unit 14 before the Nth pixel is input. When the Nth pixel is input, the sum of the distribution error to the Nth pixel and the Nth pixel is calculated at the second stage of the parallel operation unit 14 and the difference between each encoded prediction data is calculated. Is done.
[0040]
In the next cycle (this is the first half cycle of one unit), the Nth pixel is simultaneously processed in the first stage of the determination unit 12 and the parallel operation unit 14. In the first stage of the parallel operation unit 14, a calculation of a distribution error to the (N + 1) th pixel is performed. Further, the minimum value of the difference is searched for the Nth pixel in the third stage of the parallel operation unit 14. The input pixel 4 is not transferred in this cycle. Here, it is assumed that the determination unit 12 determines that feedback occurs.
[0041]
When the (N + 1) th pixel is input in the next cycle (the second half cycle of one unit), the processing result in the first stage of the parallel operation unit 14 is sent to the second stage, and the input N + 1th input pixel 4 is used. In the second stage, the difference value calculation process is performed. In the fourth stage of the parallel operation unit 14, the Nth pixel is compared with a predetermined value.
[0042]
In the next cycle (the first half cycle of one unit), the output pixel 5 and the error 7 corresponding to the Nth pixel for which the calculation has been completed are output. At this time, a plurality of processing results of the Nth pixel are calculated in parallel, but one is selected by the selector 15 according to the processing result of the (N−1) th pixel, and is output as the output pixel 5 and the error 7. Further, since the output pixel 5 and the error 7 as the calculation result of the Nth pixel are determined, the distribution error to the (N + 1) th pixel is determined. The error distribution unit 3 predicts and calculates a distribution error from the (N + 1) th pixel to the (N + 2) th pixel at the stage where the output value of the (N + 1) th pixel is not determined using the error 7 and Entered. At this time, an error distributed to the (N + 2) th pixel together with the (N + 1) th pixel input in the immediately preceding cycle is calculated. For the (N + 1) th pixel input in the immediately preceding cycle, the determination process in the determination unit 12 is executed in parallel. Further, the N + 1-th pixel that has been calculated in the second stage of the parallel calculation unit 14 is sent to the third stage of the parallel calculation unit 14 and the calculation is continued.
[0043]
As described above, in the first half cycle of one unit, the output of the output pixel 5 and the error 7 is input as the calculation result for the Nth pixel, and the calculation at the third stage of the parallel calculation unit 14 is input for the N + 1th pixel. The determination process by the determination unit 12 for the (N + 1) th pixel, and the distribution error to the (N + 2) th pixel in the first stage of the parallel operation unit 14 using the same input N + 1th pixel and the distribution error 8 from the error distribution unit 3 Calculation is performed. In the latter half cycle of one unit, the difference calculation with the encoded prediction data of the (N + 2) th pixel by the input of the (N + 2) th pixel is performed in the second stage of the parallel operation unit 14, and the default value is set for the (N + 1) th pixel. Is compared at the fourth stage of the parallel operation unit 14. When feedback occurs, such parallel pipeline processing with two cycles as one unit is repeated.
[0044]
If the determination result for the previous input pixel is a determination that feedback does not occur, and the determination result for the input pixel is a determination that feedback occurs, the input control unit 11 immediately after the determination makes every two cycles. While shifting to the input pixel transfer process, the operation of the parallel calculation unit 14 is also adjusted. Conversely, if the determination result for the previous input pixel is a determination that feedback occurs and the determination result for the input pixel is a determination that feedback does not occur, the input control unit 11 for the next input pixel and thereafter. Performs transfer of continuous input pixels, and the truncation unit 13 aborts the processing in the parallel computing unit 14 that is executed in advance for the input pixel, and thereafter performs processing when no feedback occurs.
[0045]
FIG. 4 is a timing chart showing an example of the operation in the embodiment of the information processing apparatus of the present invention. An example of the above operation will be further described with reference to a timing chart shown in FIG. In FIG. 4, hatched input pixels indicate pixels that match the encoded prediction data, that is, pixels that do not generate feedback, and unhatched input pixels indicate pixels that do not match the encoded prediction data, that is, feedback occurs. The pixel which performs is shown. In the pipeline processing, the processing steps shown in FIG. 2 are shown. Furthermore, the process indicated by the dotted line indicated by the arrow indicates that the processing has been terminated. In FIG. 4, the pixel input before the pixel 1 is illustrated as matching with the encoded prediction data.
[0046]
Before the pixel 1 is input, the calculation (S22) for calculating the error distributed to the pixel 1 has already been completed in the first stage of the parallel calculation unit 14. In processing cycle A, pixel 1 is input. The input pixel 1 is input to the determination unit 12 and the parallel calculation unit 14. When the determination process of the pixel 1 is performed by the determination unit 12, in parallel with this determination process, the difference value calculation (S 23) in the pixel 1 is performed in the second stage of the parallel calculation unit 14, and the pixel 2 is distributed in the first stage. An operation (S22) for calculating the error is performed. In this example, since the pixel 1 is a pixel that matches the encoded prediction data, the determination unit 12 determines that feedback does not occur.
[0047]
In the processing cycle B, the determination result of the determination unit 12 in the processing cycle A, that is, the determination result that feedback does not occur is notified to the truncation unit 13, and the truncation unit 13 performs processing on the pixel 1 (the third stage of the parallel arithmetic unit 14). Cancel the subsequent processing. In addition, an output pixel corresponding to the pixel 1 is output and 0 is output as an error. In this processing cycle B, the pixel 2 is input, the difference value calculation in the pixel 2 is performed in the second stage of the parallel operation unit 14 (S23), and the error distributed to the pixel 3 that is input next in the first stage is calculated (S23). S22) is executed in parallel.
[0048]
In the processing cycle C, the determination result of the determination unit 12 in the processing cycle B, that is, the determination result that feedback does not occur is notified to the truncation unit 13, and the truncation unit 13 performs processing on the pixel 2 (the third stage of the parallel arithmetic unit 14). Cancel the subsequent processing. In addition, an output pixel corresponding to the pixel 2 is output and 0 is output as an error. In this processing cycle C, the pixel 3 is input, the difference value calculation in the pixel 3 is performed in the second stage of the parallel operation unit 14 (S23), and the error distributed to the pixel 4 that is input next in the first stage is calculated (S23). S22) is executed in parallel. In this way, when pixels that do not generate feedback are continuously input, such processing is continuously executed.
[0049]
Pixel 3 does not match the encoded prediction data, and feedback occurs. For this reason, in subsequent processing cycles, the operation is switched to an operation in which two cycles when feedback occurs are set as one unit.
[0050]
In the processing cycle D, the processing for the pixel 3 is continued, and the search processing for the minimum value in the pixel 3 (S24) is performed in the third stage of the parallel operation unit 14. Further, although the processing for the non-input pixel 4 is continued, here, the first stage processing of the parallel operation unit 14 is executed again for timing adjustment. Alternatively, the processing may be paused for one cycle.
[0051]
In the processing cycle E, the processing for the pixel 3 is continued, and the comparison processing (S25) with the specified value in the pixel 3 is performed in the final stage of the parallel operation unit 14. Also, the pixel 4 is input, and a difference value calculation process (S23) with the encoded prediction data for the pixel 4 is performed in the second stage of the parallel operation unit 14. At this time, since the value of the pixel 3 has not yet been determined, the determination process for the pixel 4 in the determination unit 12 and the calculation process of the distribution error in the first stage of the parallel calculation unit 14 are not performed.
[0052]
In the processing cycle F, the processing for the pixel 3 ends, and the output pixel and the error are output. In response to this, the determination process for the pixel 4 in the determination unit 12 and the distribution error calculation process (S22) for the pixel 5 in the first stage of the parallel calculation unit 14 are performed. In addition, since it is determined that the feedback occurs in the pixel 4, the process is not aborted by the abort unit 13. Further, in the processing cycle F, the minimum value search process (S24) for the pixel 4 in the third stage of the parallel operation unit 14 is performed. In the search process for the minimum value, since the pixel 3 is determined, the search process may be performed only for the combination corresponding to the determined value of the pixel 3, and the amount of data to be processed can be reduced.
[0053]
The processing cycle G is the same as the processing cycle E. In the final stage of the parallel operation unit 14, comparison processing (S 25) with the specified value in the pixel 4 is performed, and the pixel 5 is input and the parallel operation unit 14 In the second stage, a difference value calculation process (S23) with the encoded prediction data for the pixel 5 is performed. When feedback occurs, the processing is advanced by repeating the processing of two cycles as shown in processing cycles F and G as one unit.
[0054]
The processing cycle H is the same as the processing cycle F, the processing for the pixel 4 is completed, and the output pixel and the error are output. In response to this, a determination process for the pixel 5 in the determination unit 12 and a distribution error calculation process (S22) for the pixel 6 in the first stage of the parallel calculation unit 14 are performed. In addition, the minimum value search process (S24) for the pixel 5 in the third stage of the parallel operation unit 14 is performed.
[0055]
In the processing cycle I, comparison processing (S25) with the specified value in the pixel 5 is performed in the final stage of the parallel operation unit 14, and the pixel 6 is input, and the pixel 6 is input in the second stage of the parallel operation unit 14. A difference value calculation process (S23) with the encoded prediction data is performed. The input pixel 6 is a pixel that matches the encoded prediction data and does not generate feedback. However, since the value of the pixel 5 has not yet been determined at this time, the determination process in the determination unit 12 for the pixel 6 and parallel processing are performed. The distribution error calculation process at the first stage of the calculation unit 14 is not performed.
[0056]
In the processing cycle J, the processing for the pixel 5 ends, and the output pixel and the error are output. In response to this, a determination process for the pixel 6 in the determination unit 12 and a distribution error calculation process (S22) for the pixel 7 in the first stage of the parallel calculation unit 14 are performed. Note that, by the determination process in the determination unit 12 for the pixel 6, it is determined that the pixel 6 matches the encoded prediction data and no feedback is generated. Further, in the processing cycle J, the minimum value search process (S24) for the pixel 6 in the third stage of the parallel operation unit 14 is performed.
[0057]
In the processing cycle K, the determination result of the determination unit 12 in the processing cycle J, that is, the determination result that feedback does not occur is notified to the truncation unit 13, and the truncation unit 13 performs processing for the pixel 6 (the final stage of the parallel operation unit 14). Discontinue processing. The determination result is notified to the input control unit 11, and thereafter, the processing timing when feedback does not occur, that is, the transfer of the input pixels is performed continuously. In this processing cycle K, an output pixel corresponding to the pixel 6 is output and 0 is output as an error. Further, the pixel 7 is input, the difference value calculation (S23) in the pixel 7 is performed in the second stage of the parallel operation unit 14, and the error distributed to the pixel 8 that is input next in the first stage is not illustrated. Calculations are performed in parallel. In addition, determination processing in the determination unit 12 for the input pixel 7 is also performed in parallel. Since the pixel 7 also matches the encoded prediction data, in the processing cycle L, the truncation unit 13 aborts the processing for the pixel 7 (processing after the third stage of the parallel computing unit 14), and the output pixel and error corresponding to the pixel 7 are Is output.
[0058]
In this way, by switching so as to perform the calculation with a processing method suitable for the input pixel, an output is obtained in one cycle when it matches the encoded prediction data, and on average in two cycles when it does not match. be able to.
[0059]
FIG. 5 is an explanatory diagram of a comparative example of the processing time according to the present invention and the processing time according to the conventional sequential processing and parallel pipeline processing. Here, when the processing shown in FIG. 2 is executed by sequential processing as shown in FIG. 7 in the prior art, when it is executed by parallel pipeline processing as shown in FIG. The case is shown according to the present invention. In either case, an example of the processing time when all the data that generate feedback or all the data that does not generate feedback is input is shown. The input data is 600 dpi, A4 full color data (30 Mpixel). The operating frequency in each processing cycle is 100 MHz.
[0060]
In the present invention, when feedback occurs, the operation is the same as in the case of parallel processing, and when feedback does not occur, the operation is similar to the sequential processing by discontinuing the parallel processing. Therefore, as shown in FIG. 5, processing can be performed at high speed in both cases where feedback occurs and when feedback does not occur.
[0061]
In the above description, the determination unit 12 compares the input pixel (or the value after the error is distributed to the input pixel) and the encoded prediction data as a determination method. However, the present invention is not limited to this. . As another determination method, it is also possible to determine whether or not to change the pixel based on the calculation using the input pixel and the processing result in the previous cycle, and to select the processing method. Further, the surrounding pixels referred in the error diffusion method or the average error method are not limited to the pixels shown in FIG. 3, and any number of surrounding pixels can be used.
[0062]
In addition, the number of pipeline stages in the parallel operation unit 14 is not limited to four, and the number of stages may be designed according to the processing to be performed when feedback occurs. In that case, in order to predict the output pixel value for only the immediately preceding pixel, it is necessary to operate for each unit, with a cycle of half the number of stages as one unit. Of course, it can be configured to predict not only the previous pixel but also the previous pixel, and in that case, the number of cycles per unit can be reduced and the operation can be performed at higher speed in the pipeline. However, in that case, it is expected that there will be a large number of cases of predicted values, which is a trade-off with the circuit scale for parallel execution.
[0063]
Further, in the above-described configuration, when the feedback is not generated, it is output as it is, but there may be a process performed only when the feedback is not generated. In the case where such processing is added, when the determination unit 12 determines that feedback is generated, the processing when the feedback is not generated is canceled by the cancellation unit 13.
[0064]
In the above-described embodiment, an example in which the present invention is applied to an image encoding device has been described. However, the present invention is not limited to this, and processing when feedback occurs and processing when feedback does not occur It is applicable to any processing that is executed by switching between the two. Of course, the data to be processed is not limited to image data, and can be applied to various data.
[0065]
【The invention's effect】
As is apparent from the above description, according to the present invention, a processing method suitable for the selected processing content in the case of selecting and executing either a process in which feedback occurs or a process in which feedback does not occur according to input data. Therefore, there is an effect that processing can be performed at high speed regardless of whether processing that generates feedback or processing that does not occur is performed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of an image encoding device including an embodiment of an information processing device of the present invention.
FIG. 2 is a flowchart illustrating an example of an image encoding process.
FIG. 3 is an explanatory diagram of an example of error distribution in an error diffusion method or an average error method.
FIG. 4 is a timing chart showing an example of an operation in the embodiment of the information processing apparatus of the present invention.
FIG. 5 is an explanatory diagram of a comparative example of processing time according to the present invention and processing time according to conventional sequential processing and parallel pipeline processing;
FIG. 6 is a flowchart illustrating an example of processing executed by switching between processing in which feedback occurs and processing in which feedback does not occur.
7 is a conceptual diagram when the process shown in FIG. 6 is performed sequentially.
FIG. 8 is a timing chart when the processing shown in FIG. 6 is performed sequentially.
FIG. 9 is a conceptual diagram when the processing shown in FIG. 6 is performed by pipeline processing.
FIG. 10 is a timing chart when the processing shown in FIG. 6 is performed by pipeline processing.
FIG. 11 is an explanatory diagram of an example of processing time by sequential processing and parallel pipeline processing;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Pixel value change part, 2 ... Encoding part, 3 ... Error distribution part, 4 ... Input pixel, 5 ... Output pixel, 6 ... Code data, 7 ... Error, 8 ... Distribution error, 11 ... Input control part, 12 ...... Determining unit, 13 ... Censoring unit, 14 ... Parallel computing unit, 15 ... Selector, 16 ... Determination signal.

Claims (8)

フィードバックが発生する処理とフィードバックが発生しない処理のうちいずれかを入力データから選択して当該入力データに対して処理を行う情報処理装置において、前記フィードバックが発生する処理をフィードバックが発生したときに取り得る値のすべてについて前記入力データに対して並列にパイプライン処理する演算手段と、前記入力データにより前記フィードバックが発生する処理と前記フィードバックが発生しない処理のうちいずれかを選択する判断手段と、該判断手段による処理の選択結果により一方の処理を打ち切る打ち切り手段を有することを特徴とする情報処理装置。In an information processing apparatus that selects from among input data a process that generates feedback and a process that does not generate feedback and processes the input data, the process that generates the feedback is performed when the feedback occurs. Calculating means for performing pipeline processing in parallel with respect to the input data for all of the obtained values; determining means for selecting any one of the processing in which the feedback is generated by the input data and the processing in which the feedback is not generated; An information processing apparatus comprising: aborting means for aborting one of the processes according to a selection result of the process by the judging means. 前記演算手段は、前記判断手段による処理の選択と並行してパイプライン処理を開始することを特徴とする請求項1に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the calculation unit starts pipeline processing in parallel with selection of processing by the determination unit. 前記判断手段は、処理済のデータを含む1つ以上のデータと前記入力データとを比較することにより処理を選択することを特徴とする請求項1または請求項2に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the determination unit selects a process by comparing one or more data including processed data with the input data. 前記判断手段は、前記入力データと処理済のデータとの演算の結果により処理を選択することを特徴とする請求項1または請求項2に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the determination unit selects a process based on a result of an operation between the input data and processed data. 前記打ち切り手段は、前記判断手段により前記フィードバックが発生しない処理が選択されたときに当該入力データに対する前記演算手段によるパイプライン処理を打ち切ることを特徴とする請求項1ないし請求項4のいずれか1項に記載の情報処理装置。5. The aborting means according to any one of claims 1 to 4, wherein the aborting means aborts the pipeline processing by the computing means for the input data when a process that does not generate the feedback is selected by the determining means. The information processing apparatus according to item. さらに、前記判断手段の結果により前記入力データを入力するタイミングを制御する入力制御手段を有し、該入力制御手段は、前記判断手段により前記フィードバックが発生する処理が選択された場合には、前記入力データを入力する間隔を長くするように制御することを特徴とする請求項1ないし請求項5のいずれか1項に記載の情報処理装置。Furthermore, it has an input control means for controlling the timing of inputting the input data according to the result of the judgment means, and the input control means, when the process for generating the feedback is selected by the judgment means, 6. The information processing apparatus according to claim 1, wherein control is performed so as to lengthen an interval for inputting input data. 前記入力データは画像データであり、前記フィードバックが発生する処理は誤差拡散法を用いた画素値変更処理であることを特徴とする請求項1ないし請求項6のいずれか1項に記載の情報処理装置。The information processing according to any one of claims 1 to 6, wherein the input data is image data, and a process in which the feedback is generated is a pixel value changing process using an error diffusion method. apparatus. 前記入力データは画像データであり、前記フィードバックが発生する処理は平均誤差法を用いた画素値変更処理であることを特徴とする請求項1ないし請求項6のいずれか1項に記載の情報処理装置。The information processing according to any one of claims 1 to 6, wherein the input data is image data, and the process in which the feedback is generated is a pixel value changing process using an average error method. apparatus.
JP2001311383A 2001-10-09 2001-10-09 Information processing device Expired - Fee Related JP3666586B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001311383A JP3666586B2 (en) 2001-10-09 2001-10-09 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001311383A JP3666586B2 (en) 2001-10-09 2001-10-09 Information processing device

Publications (2)

Publication Number Publication Date
JP2003122556A JP2003122556A (en) 2003-04-25
JP3666586B2 true JP3666586B2 (en) 2005-06-29

Family

ID=19130224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001311383A Expired - Fee Related JP3666586B2 (en) 2001-10-09 2001-10-09 Information processing device

Country Status (1)

Country Link
JP (1) JP3666586B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4581775B2 (en) * 2005-03-23 2010-11-17 セイコーエプソン株式会社 Printing device
JP4958224B2 (en) * 2007-06-29 2012-06-20 日本電信電話株式会社 Processing circuit
JP4988789B2 (en) * 2009-05-19 2012-08-01 インターナショナル・ビジネス・マシーンズ・コーポレーション Simulation system, method and program

Also Published As

Publication number Publication date
JP2003122556A (en) 2003-04-25

Similar Documents

Publication Publication Date Title
Naderi et al. Scheduling open shops with parallel machines to minimize total completion time
Yamada et al. Job-shop scheduling by simulated annealing combined with deterministic local search
US6611620B1 (en) Reversible coding method, reversible coding apparatus, and memory medium used therein
US11442728B2 (en) Sequence alignment method of vector processor
KR102214837B1 (en) Convolution neural network parameter optimization method, neural network computing method and apparatus
Lisnianski et al. Structure optimization of multi-state system with time redundancy
JP2001236337A (en) Predicting device using neural network
CN110764885B (en) Method for splitting and unloading DNN tasks of multiple mobile devices
JP2000010762A (en) Floating-point operation device
JP2004537102A (en) Data smoothing method and apparatus
KR102247896B1 (en) Convolution neural network parameter optimization method, neural network computing method and apparatus
Kim et al. Insertion of new idle time for unrelated parallel machine scheduling with job splitting and machine breakdowns
US6668020B2 (en) Method for motion estimation in video coding
JP3666586B2 (en) Information processing device
US10727855B2 (en) Analog-to-digital conversion apparatus
JP5381302B2 (en) Parallelization scheduling device
KR101987475B1 (en) Neural network parameter optimization method, neural network computing method and apparatus thereof suitable for hardware implementation
Salami et al. Lossless image compression by evolvable hardware
KR20220121568A (en) Device and method for production process using reinforcement learning
JPH1145926A (en) Substrate processing device
Nguyen et al. Jointly optimize coding and node selection for distributed computing over wireless edge networks
CN112740174B (en) Data processing method, device, electronic equipment and computer readable storage medium
US5729759A (en) Data processing apparatus for performing cumulative processing on time series data
CN118573890A (en) Hardware friendly architecture for AV1 intra-frame coarse mode decision
JPH10327419A (en) Data compression device and its method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050304

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: 20050316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees