(57)【要約】【課題】ラインバッファを用い、単一の演算回路で複数の解像度に対応することを可能とする。【解決手段】ラインバッファ部１０４は、画素クロックと水平同期信号に同期して画像データの各画素値をライン単位に、順次に格納する。出力カウンタ１０２は、所定クロックのカウント値と水平同期信号に基づいて、第２画像データ中の画素位置を特定する座標値を順次に生成し、データリクエスト部１０２は生成された座標値を設定倍率値に基づいて入力画像データ中の画素位置に変換する。この画素位置に基づいて演算に必要な画素の画素値がラインバッファ部１０４より取得され、演算部１０５は上記座標値に対応する画素の画素値を算出する。演算部１０５による画素値の演算が遂行できない場合、当該演算の遂行が可能な状態となるまで出力カウンタ１０１による座標値の生成を停止させる。【選択図】　図１
2004101910.tif 000002
【特許請求の範囲】
【請求項１】
画素クロックと水平同期信号に同期して第１画像データの各画素値をライン単位に、順次格納する複数のラインバッファと、
所定クロックのカウント値と前記水平同期信号に基づいて、第２画像データ中の画素位置を特定する座標値を順次に生成する生成手段と、
前記生成手段で生成された座標値を解像度変換の倍率値に基づいて前記第１画像データ中の画素位置に変換する変換手段と、
前記変換手段で得られた画素位置に基づいて演算に必要な画素の画素値を前記複数のラインバッファより取得し、前記座標値に対応する画素の画素値を算出する演算手段と、
前記演算手段による画素値の演算が遂行できない場合、当該演算の遂行が可能な状態となるまで前記生成手段による座標値の生成を停止させる停止手段と
を備えることを特徴とする解像度変換装置。
【請求項２】
前記変換手段は、前記座標値を前記倍率値で除算して得られた商の整数部を用いて前記第１画像データ中の画素位置とすることを特徴とする請求項１に記載の解像度変換装置。
【請求項３】
前記演算手段は、前記変換手段の除算で得られた小数部に基づいて、前記座標値に対応する画素の画素値の算出に用いる係数を変更することを特徴とする請求項２に記載の解像度変換装置。
【請求項４】
前記生成手段は、
前記水平同期信号、前記所定クロック及び前記倍率に基づいて擬似的な水平同期信号を発生する発生手段と、
前記疑似的な水平同期信号によってクリアされ、前記所定クロックをカウントする第１カウンタと、
前記疑似的な水平同期信号をカウントする第２カウンタとを備え、
前記第１カウンタ及び前記第２カウンタのカウント値を前記座標とすることを特徴とする請求項１に記載の解像度変換装置。
【請求項５】
前記停止手段は、前記演算手段の演算に必要な画素を含むラインの、前記複数のラインバッファへの入力が完了していない場合に、前記第２カウンタのカウント動作を停止することを特徴とする請求項４に記載の解像度変換装置。
【請求項６】
前記停止手段は、前記算出手段の演算処理が追従しない場合に、前記第１カウンタのカウント動作を停止することを特徴とする請求項４に記載の解像度変換装置。
【請求項７】
画素クロックと水平同期信号に同期して第１画像データの各画素値をライン単位に、複数のラインバッファに順次格納する格納工程と、
所定クロックのカウント値と前記水平同期信号に基づいて、第２画像データ中の画素位置を特定する座標値を順次に生成する生成工程と、
前記生成工程で生成された座標値を解像度変換の倍率値に基づいて前記第１画像データ中の画素位置に変換する変換工程と、
前記変換工程で得られた画素位置に基づいて演算に必要な画素の画素値を前記複数のラインバッファより取得し、前記座標値に対応する画素の画素値を算出する演算工程と、
前記演算工程による画素値の演算が遂行できない場合、当該演算の遂行が可能な状態となるまで前記生成工程による座標値の生成を停止させる停止工程と
を備えることを特徴とする解像度変換方法。
【請求項８】
前記変換工程は、前記座標値を前記倍率値で除算して得られた商の整数部を用いて前記第１画像データ中の画素位置とすることを特徴とする請求項７に記載の解像度変換方法。
【請求項９】
前記演算工程は、前記変換工程の除算で得られた小数部に基づいて、前記座標値に対応する画素の画素値の算出に用いる係数を変更することを特徴とする請求項８に記載の解像度変換方法。
【請求項１０】
前記生成工程は、
前記水平同期信号、前記所定クロック及び前記倍率に基づいて疑似的な水平同期信号を発生する発生工程と、
前記疑似的な水平同期信号によってクリアされ、前記所定クロックをカウントする第１カウンタ工程と、
前記疑似的な水平同期信号をカウントする第２カウンタ工程とを備え、
前記第１カウンタ工程及び前記第２カウンタ工程によるカウント値を前記座標とすることを特徴とする請求項７に記載の解像度変換方法。
【請求項１１】
前記停止工程は、前記演算工程の演算に必要な画素を含むラインの、前記複数のラインバッファへの入力が完了していない場合に、前記第２カウンタ工程のカウント動作を停止することを特徴とする請求項１０に記載の解像度変換方法。
【請求項１２】
前記停止工程は、前記算出工程の演算処理が追従しない場合に、前記第１カウンタ工程のカウント動作を停止することを特徴とする請求項１０に記載の解像度変換方法。
【請求項１３】
請求項１乃至６のいずれかに記載の解像度変換装置と、
表示対象画像データを前記第１画像データとして前記解像度変換装置に入力する手段と、
前記解像度変換装置より得られた第２画像データを保持するバッファと、
前記バッファに格納された前記第２画像データを表示する表示手段と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータやテレビ等の画像表示における解像度変換に関するものである。
【０００２】
【従来の技術】
一般にコンピュータは表示装置の解像度にあわせて複数種類の解像度を表示させることが可能である。例えば表示装置の最高解像度がＸＧＡであるならば、コンピュータはＸＧＡとそれ以下の解像度（ＶＧＡ，ＳＶＧＡ）の画像を表示させることが必要とされる場合が多い。これはユーザの好みにより、より多くの情報を画面上に表示したり、より見やすくするために大きく表示したりすることを選択可能とするためである。
【０００３】
この場合、コンピュータ本体が表示装置に対して所望の解像度を提供するために解像度変換技術が必要となる。
【０００４】
また、テレビに関しては日本ではＮＴＳＣ方式が採用されてきた。これは走査線が４８３〜４８５本、走査線１本当たりの画素数は７２０〜７６０、総画素数約３５万である。ただし通常はインターレースで表示されるため、実際は１５万画素程度の分解能となっている。
【０００５】
これに対し近年ではハイビジョン方式も多く使われるようになってきた。ハイビジョン方式はＨＤとも呼ばれ、約７５万画素である。これに対応して従来のＮＴＳＣ放送はＳＤと呼ばれる。
【０００６】
さらにはデジタル放送では４８０ｉ、７２０ｐ、１０８０ｉといった画像フォーマットがある。４８０ｉは６４０×４８０のインターレース、７２０ｐは１０２４×７２０のプログレッシブ、１０８０ｉは１２８０×１０８０のインターレースを表している。
【０００７】
他にもパソコンの画像表示やゲーム、デジカメの映像表示といった用途や、複数の画面を表示させるマルチ画面表示といった用途があり、テレビ上に多くの画像フォーマットを表示する機会が増えてきた。
【０００８】
ここで、従来のＮＴＳＣ放送のようなアナログデータならば、サンプリングレートを変えることによって比較的容易に画像のフォーマット変換が可能である。しかし、デジタル放送やデジカメ画像といったデジタルデータのフォーマット変換を行うためには画像データの補間や間引きを行う必要がある。
【０００９】
また、マルチ画面表示のような表示効果をもたせるためには画像のフォーマット変換と共に、画像を拡大縮小するための解像度変換が必要となる。
【００１０】
一般にこのような解像度変換を行うためには大きなフレームメモリが必要とされていた。フレームメモリを持たずに解像度変換を行うためには入力画像の１Ｖ（１垂直期間）内に全ての処理を終わらせる必要がある。処理時間が１Ｖを越えてしまうと次のフレーム処理にも影響を及ぼし、結果として大きなメモリを必要としてしまうためである。
【００１１】
フレームメモリを使わずに解像度変換を行う例は「スキャンコンバータ」（特開平１１−３３８４０８号公報）などにも提示されている。しかしながら、ここで提示されている方式は画像のフォーマット変換に主眼をおいたものであり、ユーザによって自在な解像度変換が行われた場合の高画質化を目指したものではない。
【００１２】
高画質化を目指すためには複数の画素を参照する方法が一般的に用いられている。単独画素のみの参照で補間するとその画素からの予測にすぎない。しかしながら、複数の画素を用いることによって、補間する画素位置の前後の画素変化をみることができるようになり、その予測の確実性を増すことができる。このときの画素変化は参照画素が２点なら直線になり、３点以上なら曲線で表すことができる。
【００１３】
このような複数の画素を参照して補間をする方式としては、線形補間方式、３次元畳み込み方式などが知られている。線形補間は２点（縦横４点）から補間し、３次元畳み込み方式は４点（縦横１６点）から画素補間を行う。一般的には参照画素数が多い方が画質はよくなるが、演算処理は複雑になる
ここで畳み込み演算方式について説明する。畳み込み演算では出力１画素につき元画像中の１６個の画素と、８個の係数が用いられる。
【００１４】
ここで、
変換前座標：ｘ，ｙ
変換後座標：Ｘ，Ｙ
変換式：Ｘ＝Ａ＊ｘ、Ｙ＝Ｂ＊ｙ（Ａ：ｘ方向倍率、Ｂ：ｙ方向倍率）
とすると、実際には変換前座標（ｘ，ｙ）は非連続数であり、変換後座標（Ｘ，Ｙ）は連続数となるから、
2004101910.tif 000003
を用いて変換前座標を求める。
【００１５】
この逆変換の整数部は変換前座標として元画像の画素値を引き出すために使われる。また小数部（余り）は係数作成に用いられる。
【００１６】
（Ｘ，Ｙ）各画素につき、元画像座標（ｘ，ｙ）から１６個の元画像画素値Ｇを取得する。
【００１７】
【数１】
2004101910.tif 000004
【００１８】
また、逆変換により求まった値の小数部をｘ−［ｘ］、ｙ−［ｙ］と表すと、係数ｆ（ｔ）は以下の計算により求まる。
【００１９】
【数２】
2004101910.tif 000005
【００２０】
以上の元画像の１６個の画素値（Ｇ１１〜Ｇ４４）と８個の係数（ｘ１〜ｘ４、ｙ１〜ｙ４）から以下の計算により変換後の画像の画素値Ｐが求まる。
【００２１】
【数３】
2004101910.tif 000006
【００２２】
ここで、係数の算出のためには３次元の演算が必要になってしまう。この計算量を削減するために、最初のｘ−［ｘ］値、ｙ−［ｙ］値から条件選択を行い、予め計算しておいた係数テーブルから固定係数を選択することも可能である。
【００２３】
以上のように畳み込み演算方式では出力の各画素に元画像の１６個の画素値が必要となる。この１６個の画素値は、倍率によって読み出し方が変わり、さらには同じ画素に異なる係数を乗算する場合もある。このため入力画素を順次処理してゆくという方法を用いることができない。よって、フレームメモリか複数のラインバッファが必要になる。
【００２４】
フレームメモリを用いずに、このような３次元畳み込み演算を行う方式は「表示制御装置及び方法及び表示装置」（特許文献１参照）にも提示されている。ここでは複数の演算部処理を持つことによって、ラインバッファのみで３次元畳み込み演算方式で解像度変換を行う手法が提示されている。
【００２５】
【特許文献１】特開平８−２９７４７７号公報
【００２６】
【発明が解決しようとする課題】
しかしながら、畳み込み演算方式は乗算が多く、回路が複雑になるため、複数の演算処理部を備える特許文献１の装置では回路規模が大きくなってしまう。
一方、フレームメモリを用いずに、単独の演算処理部で演算を行う場合は、入力の画素クロックに対して約４倍のクロックで演算処理を行えば縦横２倍までの解像度変換を行うことが可能である。しかし、畳み込み演算の場合には、上述のように１画素につき縦４×横４個の画素を読み込む必要がある。縦方向については必要な本数のラインバッファがあれば同時読み出しが可能であるが、横方向については１クロックにつき１画素（列）の読み出ししかできない。
【００２７】
本発明は、上記の課題に鑑みてなされたものであり、ラインバッファを用い、単一の演算回路で複数種類の解像度変換に対応可能とすることを目的とする。
また、本発明の他の目的は、ラインバッファを用い、単一の演算回路で、３次元畳み込み演算方式を用いた複数種類の解像度変換に対応可能とすることを目的とする。
【００２８】
【課題を解決するための手段】
上記の目的を達成するための本発明による解像度変換装置は、以下の構成を備える。すなわち、
画素クロックと水平同期信号に同期して第１画像データの各画素値をライン単位に、順次格納する複数のラインバッファと、
所定クロックのカウント値と前記水平同期信号に基づいて、第２画像データ中の画素位置を特定する座標値を順次に生成する生成手段と、
前記生成手段で生成された座標値を解像度変換の倍率値に基づいて前記第１画像データ中の画素位置に変換する変換手段と、
前記変換手段で得られた画素位置に基づいて演算に必要な画素の画素値を前記複数のラインバッファより取得し、前記座標値に対応する画素の画素値を算出する演算手段と、
前記演算手段による画素値の演算が遂行できない場合、当該演算の遂行が可能な状態となるまで前記生成手段による座標値の生成を停止させる停止手段とを備える。
【００２９】
また、上記の目的を達成する本発明の解像度変換方法は、
画素クロックと水平同期信号に同期して第１画像データの各画素値をライン単位に、複数のラインバッファに順次格納する格納工程と、
所定クロックのカウント値と前記水平同期信号に基づいて、第２画像データ中の画素位置を特定する座標値を順次に生成する生成工程と、
前記生成工程で生成された座標値を解像度変換の倍率値に基づいて前記第１画像データ中の画素位置に変換する変換工程と、
前記変換工程で得られた画素位置に基づいて演算に必要な画素の画素値を前記複数のラインバッファより取得し、前記座標値に対応する画素の画素値を算出する演算工程と、
前記演算工程による画素値の演算が遂行できない場合、当該演算の遂行が可能な状態となるまで前記生成工程による座標値の生成を停止させる停止工程とを備える。
【００３０】
また、本発明によれば、上記解像度変換装置を用いて画像表示を行う情報処理装置が提供される。
【００３１】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００３２】
本実施形態はメモリの増加を避けつつ、且つ、単独の演算処理部により、畳み込み演算方式を用いた複数種類の解像度変換を行う。構成及び動作の概要について、図１を参照して説明する。
【００３３】
ラインバッファ部１０４には、入力画素クロックとＨｓｙｎｃにより元画像の画素データが入力され、複数ライン分の画像データが格納される。一方、出力カウンタ１０１は、演算用の画素クロック及びＨｓｙｎｃに基づいて出力画像データ分のｘ方向ビット数およびｙ方向ライン数をカウントする。次に、そのカウンタ値をデータリクエスト部１０２でリクエストデータに変換する。具体的には、カウンタ値を設定倍率で割ることによって、リクエストデータをＱＵＯＴ（商）信号とＲＥＭＤ（余り）信号に分ける。そして、これらのうち、ＱＵＯＴ信号はラインバッファ部１０４に対する画像データのリクエストに用い、ＲＥＭＤ信号は３次元畳み込み演算のための係数データのリクエストに用いる。
【００３４】
また、データリクエスト部１０２は、生成されたリクエストデータによって指定された画素のデータを用いた３次元畳み込み演算が実行可能かの判定を行う。例えば、この判定は、リクエストデータで要求されるラインがラインバッファ部１０４に格納済みとなっているか否かに基づいて行われる。そして、この判定結果を示すイネーブル信号が出力カウンタ１０１に送られることにより、出力カウンタのカウントタイミングが制御される。
【００３５】
ここで、データリクエスト部１０２から発せられるＱＵＯＴ信号によってデータを取り出す手順について説明する。ＱＵＯＴ信号はデータリクエスト部１０２により算出されたｘ，ｙ座標アドレスを表しており、ｘ方向はＸＱＵＯＴ，ｙ方向はＹＱＵＯＴで表される。
【００３６】
ｙ方向については、入力の水平同期信号（Ｈｓｙｎｃ）のカウント値がｙ方向のＱＵＯＴ（ＹＱＵＯＴ）に基づいて要求される最大ライン番号と合致しているかどうかを判定する。もし合致していれば蓄えられている複数のラインバッファの中からＹＱＵＯＴに対応する４本のラインバッファ（ＹＱＵＯＴ−１、ＹＱＵＯＴ、ＹＱＵＯＴ＋１、ＹＱＵＯＴ＋２）を選択する。合致していなければイネーブル信号を制御して出力カウンタのカウントを止め、ＹＱＵＯＴに対応するラインの画像データが入力されるまで待つ。
【００３７】
ｘ方向については、ＹＱＵＯＴにより選択された４本のラインバッファよりｘ方向のＱＵＯＴ（ＸＱＵＯＴ）で指定されるｘ座標のデータ（ＸＱＵＯＴ−１、ＸＱＵＯＴ、ＸＱＵＯＴ＋１、ＸＱＵＯＴ＋２）が順次読み出される。すなわち、各ｘ座標について４つずつの画素データが読み出され、読み出されたデータは演算部１０５に送られる。
【００３８】
演算部１０５では、送られてきた４つの画素データについて、上記ＲＥＭＤに基づいて得られた係数を用いて畳み込み演算のための演算処理を行い、演算結果をレジスタに保持する。演算部１０５には４つのレジスタ（図４の４０４〜４０７）があり、ＦＩＦＯのように新しいデータが入力されると古いデータから順に消去される仕組みになっている。
【００３９】
演算部１０５において、送られてきた新しいデータを入力するかしないかはデータリクエスト部１０２によって制御される。たとえば、ＸＱＵＯＴによって、同じアドレスが指定されれば演算部１０５に新しいデータは入力されないが、一つ前のクロックの場合と異なるアドレスが指定された時は演算部１０５に新しいデータが入力される。
【００４０】
また、設定された倍率によっては演算部１０５に新しいデータが入力されても、その演算結果の出力を行わないように、データリクエスト部１０２が制御を行う。
【００４１】
例えば、ｘ方向に１／４縮小を行う場合を考える。各画素の演算にはｘ方向に４画素分のデータが用いられる。１／４縮小の場合はＸ方向４画素分で１画素を作り出すことになるので、１画素作成の演算を行ったあと、次の演算には前の演算に用いられたｘ方向４画素分のデータはそっくり入れ替えられることになる。
【００４２】
この時、ラインバッファからｘ座標をＸＱＵＯＴで指定して読み出すことになるので、４画素分のデータを１クロックで読み出すことは困難である。もし１クロックで読み出そうとするなら同じデータのラインバッファを４本づつ用意しなければならなくなる。そこで、４画素のデータをそっくり入れ替えるためには４クロック必要になることになる。
【００４３】
従って、データの入れ替えの途中である３クロックの間は演算結果の出力を行わないようにする必要がある。これに伴い、出力カウンタに対するイネーブル信号を制御し演算データが揃うまで次のカウントを行わないようにする。
【００４４】
このようにして出力カウンタ１０１とラインバッファ部１０４と演算部１０５のタイミングコントロールをデータリクエスト部１０２によって行うことにより、数本のラインバッファで畳み込み演算による解像度変換を実現する解像度変換回路を提供できる。
【００４５】
以下、本実施形態の解像度変換装置についてより詳細に説明する。
【００４６】
図１において、１０１は出力カウンタ、１０２はデータリクエスト部、１０３はルックアップテーブル（以下、ＬＵＴと記す）、１０４はラインバッファ部、１０５は演算部、１０６は出力バッファを表している。
【００４７】
出力カウンタ１０１には、入力画像の垂直同期信号（以下、Ｖｓｙｎｃ）、水平同期信号（以下、Ｈｓｙｎｃ）、および演算の画素クロックとなるＰＣＬＫが入力される。ここで、ＰＣＬＫはユーザにより任意の周波数を外部から設定可能であるとする。ただし、縦横ともに２倍までの解像度変換を可能にするためには、入力画像の画素クロック（ＰＩＣＬＫ）の約４倍の周波数が必要となる。
【００４８】
出力カウンタ１０１はｘ，ｙの各座標値を０からユーザにより設定される出力画像サイズまでカウントアップを行う。このときのカウントアップのタイミングはｘ方向はＰＣＬＫ、ｙ方向はＨｓｙｎｃ（厳密にはＹＦＬＡＧ（後述））に同期する。出力カウンタ１０１によってカウントされたカウント値のデータはデータリクエスト部１０２に送られる。また、Ｘ方向のカウントは、Ｈｓｙｎｃ（ＹＦＬＡＧ）によってリセットされ、Ｙ方向のカウントは垂直同期信号Ｖｓｙｎｃによってリセットされる。
【００４９】
データリクエスト部１０２ではｘ，ｙ各カウント値からリクエストデータを生成する。リクエストデータの生成法は下式、
ＸＣＯＵＮＴ／ＸＺＯＯＭ　＝　ＸＱＵＯＴ　・・・ＸＲＥＭＤ　　　　　（式１）
ＹＣＯＵＮＴ／ＹＺＯＯＭ　＝　ＹＱＵＯＴ　・・・ＹＲＥＭＤ　　　　　（式２）
による。ここで、ＸＣＯＵＮＴは出力カウンタ１０１によって生成されるｘ方向のカウント値、ＸＺＯＯＭはｘ方向の倍率、ＸＱＵＯＴは上記計算の商、ＸＲＥＭＤは余りの値を表している。ＹＣＯＵＮＴ、ＹＺＯＯＭ、ＹＱＵＯＴ、ＹＲＥＭＤは、ｙ方向に関して上記と同じ内容の値を表している。こうして得られたＸＱＵＯＴ、ＸＲＥＭＤ、ＹＱＵＯＴ、ＹＲＥＭＤがリクエストデータとなる。
【００５０】
ここで、座標（ＸＣＯＵＮＴ、ＹＣＯＵＮＴ）を解像度変換後の座標データと見立てると、（ＸＱＵＯＴ、ＹＱＵＯＴ）は変換前の画像における、上記変換後の座標データの近傍座標であると捉えることができる。このときＸＲＥＭＤ、ＹＲＥＭＤがゼロならば、ＸＱＵＯＴ、ＹＱＵＯＴは変換前座標そのものの値である。つまり、ＸＲＥＭＤ、ＹＲＥＭＤは、変換後の座標（ＸＣＯＵＮＴ、ＹＣＯＵＮＴ）が、変換前の座標（ＸＱＵＯＴ、ＹＱＵＯＴ）からどれだけ離れているかを表している。
【００５１】
データリクエスト部１０２は生成したＸＱＵＯＴ、ＹＱＵＯＴ信号を監視し、これに基づいて生成したイネーブル信号を出力カウンタ１０１にフィードバックする。このときのイネーブル信号の生成法については後述する。
【００５２】
次に、ＸＲＥＭＤ，ＹＲＥＭＤ信号はＬＵＴ１０３に送られる。ＬＵＴ１０３は予め算出しておいた畳み込み演算係数を登録した係数テーブルであり、入力されたＸＲＥＭＤ、ＹＲＥＭＤに対し、それぞれ一意に決まる４つの係数を出力する。ＬＵＴ１０３から出力された係数データは演算部１０５に送られる。
【００５３】
一方、ＸＱＵＯＴ，ＹＱＵＯＴ信号はラインバッファ部１０４に送られる。ラインバッファ部１０４は入力画像データを格納しておくラインバッファを４本以上備えている。ラインバッファ部１０４は入力のＨｓｙｎｃごとに１つのラインバッファを割り当てる。このようにして常に４本以上のラインバッファに異なるラインの画素データが格納されているようにする。
【００５４】
格納されるライン毎のデータはＶｓｙｎｃを起点としてラインアドレスが割り振られている。このラインアドレスはＹＱＵＯＴに対応している。ラインバッファ部１０４は格納しているラインバッファの中から入力されたＹＱＵＯＴに対して、ＹＱＵＯＴ−１、ＹＱＵＯＴ、ＹＱＵＯＴ＋１、ＹＱＵＯＴ＋２のラインアドレスのラインバッファを選択する。ここで、１ライン中を通して同じラインバッファが選択されつづけることになる。
【００５５】
このとき、ラインバッファ部１０４に格納されているラインバッファのラインアドレスはデータリクエスト部１０２によって監視されている。必要なラインアドレスのデータがまだラインバッファ部１０４に入力されていない場合は、データリクエスト部１０２がイネーブル信号を制御して出力カウンタ１０１のカウントアップを停止させる。なお、必要なラインアドレスとは、本例では、ＹＱＵＯＴ−１、ＹＱＵＯＴ、ＹＱＵＯＴ＋１、ＹＱＵＯＴ＋２のラインアドレスのデータである。ここで、ラインバッファ部１０４にはライン順次に格納されるので、実際にはＹＱＵＯＴ＋２のラインのデータがラインバッファ部１０４に格納されているかどうかをチェックすればよい。必要なラインアドレスのデータが格納されると、出力カウンタ１０１のカウントアップを再開させる。
【００５６】
次に、ラインバッファ部１０４は選択されたラインバッファのなかからＸＱＵＯＴに対応する画素データを読み出す。ここでラインバッファに格納されているデータはＨｓｙｎｃを起点としてビットアドレスが割り振られている。この時のＸＱＵＯＴとビットアドレスの対応の仕方は倍率によって異なる。この対応の仕方については後述する。
【００５７】
次に、ラインバッファ部１０４から読み出されたデータは演算部１０５に送られる。演算部１０５ではＬＵＴ１０３からの係数データと、ラインバッファ部１０４からの画素データを用い、畳み込み演算により解像度変換後の画素データを算出する。算出された画素データは出力バッファ１０６に送られる。
【００５８】
出力バッファ１０６では演算の画素クロック（ＰＣＬＫ）で生成された画素データを一時的に格納する。格納されたデータは表示装置に出力するためのＶｓｙｎｃ，Ｈｓｙｎｃ，および画素クロック（ＰＯＣＬＫ）に従って順次出力される。このようにして解像度変換後のデータを生成する。
【００５９】
なお、図１に示した解像度変換装置を情報処理装置に適用すれば、ＣＰＵの制御下で生成された画像データを表示器上に表示する際に、その生成された画像データをラインバッファ部１０４に入力し、出力バッファ１０６に格納された解像度変換後の画像データを表示する構成が得られる。このようにすれば、ＣＰＵ側で出力先の表示器の解像度に応じて画像データの解像度を変更する必要がなくなる。
【００６０】
次に各ブロックについて説明する。
図２はラインバッファ部１０４の構造を表した図である。図２において、２０１は入力バッファ制御回路、２０２はラインバッファブロック、２０３は並べ替え回路を表している。ラインバッファブロック２０２には複数のラインバッファが設けられており、Ｈｓｙｎｃ、Ｖｓｙｎｃ、入力画素クロックＰＩＣＬＫに同期して各ラインバッファにライン単位で画素データが保持される。
【００６１】
入力バッファ制御回路２０１はｙ方向のデータリクエスト信号ＹＱＵＯＴから対応するラインアドレスのラインバッファをラインバッファブロック２０２の中から選び出し、その選び出されたラインバッファから順次、データを読み出す。この時、読み出したデータのカウントを行い、ｘ方向のデータリクエスト信号ＸＱＵＯＴの要求を満たすとｘ方向の演算が行われるようになっている。
【００６２】
ラインバッファブロック２０２は５ライン以上を格納できる容量を持ち、それぞれラインが選択可能であり、その選択した複数（ここでは４つ）のラインから同時に指定したビットアドレスのデータを引き出すことが可能なメモリを表している。
【００６３】
図３はラインバッファブロック２０２の構成及び動作を説明した図である。ここでは、ラインバッファ２０２がラインバッファを５ライン分持つ構造を示している。
【００６４】
いま、図３ではラインバッファ１に入力データを格納中であり、残りの４本のラインバッファ２〜５から画素データを読み出しているところを表している。
【００６５】
次のＨｓｙｎｃではラインバッファ２に入力データが格納され、残りのラインバッファ１，３，４，５からデータが読み出される。さらに次のＨｓｙｎｃではラインバッファ３に入力データが格納され、残りのラインバッファ１，２，４，５からデータが読み出される。このようにして順次最新の４ライン分のデータがラインバッファに格納されているようにする。
【００６６】
ラインバッファブロック２０２から読み出されるデータは４ライン分のデータ中の同じビットアドレスのデータが読み出される。このとき、どのラインバッファから読み出すかによってデータの並び方が異なってしまう。後段の演算部１０５では、これら各画素データに対応した畳み込み演算係数を掛け合わせるのでデータの並び方をそろえておく必要がある。そこで並び替え回路２０３を設け、各ラインバッファから読み出されたデータを時系列で古い順に並び替えて演算部１０５へ出力するようにしている。
【００６７】
図４は演算部１０５の構造を表した図である。図４において、４０１は乗算器（図中の同一シンボルで示されたものは同じ構成であることを示す）、４０２は和算器、４０３はシフト制御回路、４０４は第１のレジスタ、４０５は第２のレジスタ、４０６は第３のレジスタ、４０７は第４のレジスタを表す。また、図中記載のＧＸ１、ＧＸ２、ＧＸ３、ＧＸ４はラインバッファ部１０４から読み出された画素データを表し、ｆ（ｙ１）、ｆ（ｙ２）、ｆ（ｙ３）、ｆ（ｙ４）はｙ方向の係数データを表し、ｆ（ｘ１）、ｆ（ｘ２）、ｆ（ｘ３）、ｆ（ｘ４）はｘ方向の係数データを表している。
【００６８】
画素データＧＸ１、ＧＸ２、ＧＸ３、ＧＸ４が入力されると、まずｙ方向の係数データｆ（ｙ１）、ｆ（ｙ２）、ｆ（ｙ３）、ｆ（ｙ４）とそれぞれ乗算が行われる。このとき、ＧＸ１はｆ（ｙ１）と、ＧＸ２はｆ（ｙ２）といったようにそれぞれ対応するデータが決まっている。またこのときのｙ方向の係数は１ライン中一定である。乗算されたデータはすべて足しあわされて、第１のレジスタ４０４に格納される。
【００６９】
次のクロックで新たな画素データＧＸ１、ＧＸ２、ＧＸ３、ＧＸ４が入力されると、上述と同様に内積演算が行われ、新たな演算データが第１のレジスタ４０４に格納される。このとき、すでに第１のレジスタ４０４に格納されていたデータは第２のレジスタ４０５にシフトして格納される。さらに第２のレジスタ４０５にすでに格納されていたデータは第３のレジスタ４０６へ、第３のレジスタ４０６に格納されていたデータは第４のレジスタ４０７に上書きされ、格納される。
【００７０】
このようにして、第１〜第４レジスタ４０４〜４０７にデータが格納されると、今度はそれぞれのレジスタに対応したｘ方向の係数ｆ（ｘ１）、ｆ（ｘ２）、ｆ（ｘ３）、ｆ（ｘ４）との間で乗算が行われ、その結果を足し合わせたものが演算結果として出力される。
【００７１】
これらの処理はパイプライン処理をされるので、１クロックごとに１画素の演算データを出力することが可能である。
【００７２】
ここで、倍率によっては同じ画素データが数クロック連続して入力される場合がある。その時はデータリクエスト部１０２から送られてくるシフトイネーブル信号（ＳＥＮ）によりシフト制御回路４０３が新たなデータを受け入れないようにする。
【００７３】
また、他の倍率によっては画素データをひとつづつシフトするのではなく、複数個づつシフトする必要がある場合がある。しかし入力画素データは１クロックに１画素づつしか入力できない。つまり１クロックで１画素入力を行い、レジスタを１個づつシフトさせてゆくと、演算データとして有効な値はクロックに対してとびとびの状態になってしまう。そこでシフト制御回路４０３からアクティブ信号（ＡＣＴ）を発生させてこれを制御する。ＡＣＴ信号は出力画素データが有効な場合はハイ、出力データが非有効な場合はローを出力する。前述のように出力画素データがとびとびに有効データを出力する場合はそれに併せてＡＣＴ信号を制御する。
【００７４】
このＡＣＴ信号と出力画素データをペアで出力バッファ１０６に送り、ＡＣＴ信号がハイの場合は書き込みを行い、ローの場合は書き込みを行わないようにする。
【００７５】
図５は出力カウンタ１０１の構成例を示したブロック図である。図５において、５０１はｘ方向のカウンタ（以下、ｘカウンタ）、５０２はカウント制御回路、５０３はｙ方向のカウンタ（以下、ｙカウンタ）である。
【００７６】
ｘカウンタ５０１は入力のＨｓｙｎｃを起点にＨｓｙｎｃの有効画像領域内を演算用の画素クロック（ＰＣＬＫ）でカウントアップし、その値をＸＣＯＵＮＴとして出力する。このとき、データリクエスト部１０２からフィードバックされてくるｘ方向のイネーブル信号（ＸＥＮ）に従ってカウントの実行が制御される。すなわち、ＸＥＮがハイの時はカウントアップを行い、ＸＥＮがローの時はカウントアップを行わないように制御される。また、Ｘカウンタ５０１のカウント値は、ＹＦＬＡＧ（後述）により０にリセットされる。
【００７７】
また、ｘカウンタ５０１には、ひとつ前のＨｓｙｎｃの有効画像領域内においてＸＥＮに関係なくＰＣＬＫがいくつカウントされたかという値（ＨＳＩＺＥ）が記憶される。このＨＳＩＺＥ信号はカウント制御回路５０２に送られる。
【００７８】
カウント制御回路５０２は前述のＨＳＩＺＥ信号と、入力のＨｓｙｎｃと、Ｙ方向の倍率（ＹＺＯＯＭ）と、データリクエスト部１０２からフィードバックされてくるｙ方向のイネーブル信号（ＹＥＮ）、及びＸＣＯＵＮＴ値からＹＦＬＡＧ信号を生成する。
【００７９】
ｙカウンタ５０３では入力のＶｓｙｎｃを起点にしてＶｓｉｎｃの有効画像領域内で、ＹＦＬＡＧ信号の立ち上がり、もしくは立下りをカウントアップする。このカウントアップした値はＹＣＯＵＮＴとして出力される。なお、本実施形態では、ＹＥＮによってＹＦＬＡＧを出力するか否かを制御して、結果的にｙカウンタ５０３のカウントアップを制御するものとするが、ＹＦＬＡＧをＹＥＮにかかわらず出力し、ｙカウンタ５０３にＹＥＮを供給してｙカウンタのカウントアップを制御するようにしてもよい。
【００８０】
次にデータリクエスト部１０２について説明する。図６はデータリクエスト部の一部であり、ｙ方向のカウンタ制御部の構造を示したものである。
図６において、６０１はＤｉｖｉｄｅｒ、６０２はｙ方向のＥＮＡＢＬＥ信号発生回路を表している。Ｄｉｖｉｄｅｒ６０１には出力カウンタ１０１によって生成されるｙ方向のカウンタ値（ＹＣＯＵＮＴ）と、ユーザによって任意に指定されるｙ方向の倍率（ＹＺＯＯＭ）が入力される。
【００８１】
Ｄｉｖｉｄｅｒ６０１は前述の（式２）に従い割り算を行い、ＹＱＵＯＴとＹＲＥＭＤ信号を生成する。次にＥＮＡＢＬＥ信号発生回路６０２にはラインバッファ部１０４からのラインアドレス情報と、Ｄｉｖｉｄｅｒ６０１によって生成されたＹＱＵＯＴとが入力される。ラインアドレス情報は現在書き込み中のラインアドレスを示す情報であり、このラインアドレスから前の４ライン分のデータがラインバッファ部１０４に格納されていることがわかる。
【００８２】
これにより、ＥＮＡＢＬＥ信号発生回路６０２は、ラインアドレス情報とＹＱＵＯＴとの比較を行い、
ラインアドレス情報＝ＹＱＵＯＴ＋３　　　（式３）
であれば、ラインバッファ部に演算可能なデータが蓄積されたことになるので、ｙ方向のイネーブル信号（ＹＥＮ）をハイにする。
【００８３】
一方、
ラインアドレス情報＜ＹＱＵＯＴ＋３　　　（式４）
ならば、未だＹＱＵＯＴ＋２のラインの格納が完了していないので、ＥＮＡＢＬＥ信号発生回路６０２は、ＹＥＮをローに落として、（式３）の条件が満たされるまでＹＣＯＵＮＴのカウントアップを一時停止させる。
【００８４】
図７はデータリクエスト部１０２の一部であり、ｘ方向のカウンタ制御部の構造を示したブロック図である。７０１はＤｉｖｉｄｅｒ、７０２はｘ方向のＥＮＡＢＬＥ信号発生回路を表している。
【００８５】
Ｄｉｖｉｄｅｒ７０１には出力カウンタ１０１によって生成されるｘ方向のカウンタ値（ＸＣＯＵＮＴ）と、ユーザによって任意に指定されるｘ方向の倍率（ＸＺＯＯＭ）が入力される。Ｄｉｖｉｄｅｒ７０１は前述の（式１）に従い割り算を行い、ＸＱＵＯＴとＸＲＥＭＤ信号を生成する。
【００８６】
次にＥＮＡＢＬＥ信号発生回路７０２には演算部１０５からのレジスタ情報と、Ｄｉｖｉｄｅｒ７０１によって生成されたＸＱＵＯＴとが入力される。レジスタ情報は演算部１０５の最も新しいレジスタである第１のレジスタ４０４に格納されているデータが対応する画素アドレスを示すものである。この画素アドレスのデータと、このアドレスから前の３画素分のデータが演算部１０５の４つのレジスタに格納されていることがわかる。
【００８７】
これにより、ＥＮＡＢＬＥ信号発生回路７０２は、レジスタ情報とＸＱＵＯＴとの比較を行い、
レジスタ情報＝ＸＱＵＯＴ＋２　　　（式５）
であれば演算部１０５に演算出力を可能とするデータが蓄積されたことになるので、ｘ方向のイネーブル信号（ＸＥＮ）をハイにする。
【００８８】
一方、
レジスタ情報＜ＸＱＵＯＴ＋２　　　（式６）
ならば、ＥＮＡＢＬＥ信号発生回路７０２は、ＸＥＮをローに落として（式５）の条件を満たすまでＸＣＯＵＮＴのカウントアップを一時停止させる。
【００８９】
また、ＥＮＡＢＬＥ信号発生回路７０２は、ＸＥＮが有効になっているときのＸＱＵＯＴが連続して同じ値をとるかどうかを監視している。もし同じ値になった場合はシフトイネーブル信号（ＳＥＮ）をローに落として、演算部１０５のシフト制御回路４０３が新しいデータを受け入れないようにする。これにより第１〜第４レジスタ（４０４〜４０７）のシフト動作も発生しない。
【００９０】
以上説明してきた動作を、図８〜図１５に具体的なタイミングチャートで表す。以下、これらのタイミングチャートを参照して、本実施形態の解像度変換装置のより具体的な動作を説明する。
【００９１】
図８はｙ方向を２倍に拡大したときのタイミングチャートである。ここで、ＹＦＬＡＧは前述の図５のカウント制御回路５０２により生成される信号であり、ＹＣＯＵＮＴはｙカウンタ５０３により生成される信号であり、ＹＱＵＯＴ、ＹＲＥＭＤは図６のＤｉｖｉｄｅｒ６０１により生成される信号である。また、ＹＥＮはＥＮＡＢＬＥ信号発生回路６０２により生成される信号である。
【００９２】
ｙ方向の拡大率ＹＺＯＯＭが１≦ＹＺＯＯＭ≦２倍までの間は入力のＨｓｙｎｃの有効画素期間を２等分するような信号がＹＦＬＡＧとして生成される。これは、例えば、Ｈｓｙｎｃに同期してＹＦＬＡＧをセットするとともに、Ｘカウンタ５０１のカウント値（ＸＣＯＵＮＴ）を監視して、ＨＳＩＺＥで示される画素数の１／２となったところでＹＦＬＡＧをセットすることで実現される。また、２＜ＹＺＯＯＭ≦３倍までは入力のＨｓｙｎｃを３等分するような信号がＹＦＬＡＧとして生成される。これは、例えば、Ｈｓｙｎｃに同期してＹＦＬＡＧをセットするとともに、Ｘカウンタ５０１のカウント値（ＸＣＯＵＮＴ）を監視して、ＨＳＩＺＥで示される画素数の１／３、及び２／３となったところでＹＦＬＡＧをセットすることで実現される。
【００９３】
以上を基本形としてＹＥＮ信号によりデータマスクされたものがＹＦＬＡＧとして出力される。そして、このＹＦＬＡＧの立下りもしくは立ち上がりでカウントアップを行ったものがＹＣＯＵＮＴである。
【００９４】
図８で、ＹＣＯＵＮＴ＝２の時、ＹＱＵＯＴ＝１である。ラインバッファから読み出されるラインアドレスはＹＱＵＯＴ−１、ＹＱＵＯＴ、ＹＱＵＯＴ＋１、ＹＱＵＯＴ＋２の４ラインであるから、ここでは０，１，２，３のラインアドレスのデータが読み出されることになる。ＹＣＯＵＮＴ＝３の時もＹＱＵＯＴ＝１である。この時も０，１，２，３のラインアドレスのデータが読み出されることになる。
【００９５】
これらはいずれも入力ラインアドレス＝４の期間に処理が可能である。すなわち、１Ｈ（１水平期間）の間に２ライン分のデータが出力できることを表している。
【００９６】
よって、ｙ方向に２倍の倍率設定のとき、ＹＥＮ信号は常にハイであり、ＹＦＬＡＧは図８に示すようなタイミングで出力される。これにより出力ラインは連続して出力される。
【００９７】
図９はｙ方向を１．５倍に拡大したときのタイミングチャートである。図９で、ＹＣＯＵＮＴ＝２の時、ＹＱＵＯＴ＝１であるので、ここでは０，１，２，３のラインアドレスのデータが読み出されることになる。ＹＣＯＵＮＴ＝３の時、ＹＱＵＯＴ＝２である。この時は１，２，３，４のラインアドレスデータの読み出しが必用である。しかし、この時ラインアドレス＝４のデータはラインバッファに書き込み中であり、読み出し不可の状態にある。そこでＥＮＡＢＬＥ信号発生回路６０２がＹＥＮ＝ローを出力し、ＹＦＬＡＧをマスクすることによって（図９のＹＦＬＡＧの破線部）、ＹＣＯＵＮＴのカウントアップを一時停止する。
【００９８】
その後、ラインアドレス＝４のデータの書き込みが完了し、読み出し可能となった時点でＹＥＮはハイになる。こうして、ｙ方向を１．５倍にする倍率設定の時、ＹＥＮ信号は図９に示すような形で出力される。これによりＹＦＬＡＧが変化し、ＹＣＯＵＮＴのカウントアップが制御される。
【００９９】
図１０はｙ方向を１／２倍に縮小したときのタイミングチャートである。縮小の場合のＹＦＬＡＧは入力のＨｓｙｎｃを基本形として生成される。これをＹＥＮ信号によりデータマスクされたものがＹＦＬＡＧとして出力される。図１０で、ＹＣＯＵＮＴ＝１の時、ＹＱＵＯＴ＝２であるので、ここでは１，２，３，４のラインアドレスのデータが読み出されることになる。
【０１００】
次にＹＣＯＵＮＴ＝２の時、ＹＱＵＯＴ＝４である。この時は３，４，５，６のラインアドレスデータの読み出しが必要である。しかし、この時点において、ラインアドレス＝６の入力画像データはラインバッファに書き込み中であり、読み出し不可の状態にある。そこでＥＮＡＢＬＥ信号発生回路６０２がＹＥＮ＝ローを出力し、ＹＦＬＡＧをマスクすることによって（図１０のＹＦＬＡＧの破線部）、ＹＣＯＵＮＴのカウントアップを一時停止する。
【０１０１】
その後、ラインアドレス＝６のデータの書き込みが完了し、３，４，５，６のラインアドレスデータの読み出し可能となった時点でＹＥＮはハイになる。よって、ｙ方向に１／２倍の時、ＹＥＮ信号は図１０に示すような形で出力される。これによりＹＦＬＡＧのオンするタイミングが変化し、ＹＣＯＵＮＴのカウントアップが制御される。
【０１０２】
図１１はｙ方向を３／４倍に縮小したときのタイミングチャートである。この倍率設定も縮小であるので、ＹＦＬＡＧは図１０の場合と同様な手法で生成されることになる。
【０１０３】
図１１において、ＹＣＯＵＮＴ＝１の時点でＹＱＵＯＴ＝１であるので、ここでは０，１，２，３のラインアドレスのデータが読み出されることになる。次にＹＣＯＵＮＴ＝２の時点でＹＱＵＯＴ＝２である。この時は１，２，３，４のラインアドレスデータが読み出される。
【０１０４】
次にＹＣＯＵＮＴ＝３の時点ではＹＱＵＯＴ＝４である。この時は３，４，５，６のラインアドレスデータの読み出しが必要となる。しかし、この時点でラインアドレス＝６のデータはラインバッファに書き込み中であり、読み出し不可の状態にある。そこでＥＮＡＢＬＥ信号発生回路６０２がＹＥＮ＝ローを出力し、ＹＦＬＡＧをマスクすることによって（図１１のＹＦＬＡＧの破線部）、ＹＣＯＵＮＴのカウントアップを一時停止する。その後、ラインアドレス＝６のデータの書き込みが完了し、読み出し可能となった時点でＹＥＮはハイになる。
【０１０５】
よって、ｙ方向３／４倍の時、ＹＥＮ信号は図１１に示すような形で出力される。これによりＹＦＬＡＧが変化し、ＹＣＯＵＮＴのカウントアップが制御される。
【０１０６】
以上のような手法により、どの倍率においてもＹＣＯＵＮＴのカウントアップスタートのタイミングも制御可能である。
【０１０７】
次にｘ方向の拡大縮小の説明を行う。
【０１０８】
図１２はｘ方向を２倍に拡大したときのタイミングチャートである。ここで、ＸＣＯＵＮＴはｘカウンタ５０１により生成される信号であり、ＸＱＵＯＴ，ＸＲＥＭＤは図７のＤｉｖｉｄｅｒ７０１により生成される信号である。またＳＥＮ、ＸＥＮはＥＮＡＢＬＥ信号発生回路７０２により生成される信号である。
【０１０９】
図１２で、ＸＣＯＵＮＴ＝２の時、ＸＱＵＯＴ＝１である。選択される画素アドレスはＸＱＵＯＴ−１、ＸＱＵＯＴ、ＸＱＵＯＴ＋１、ＸＱＵＯＴ＋２の４画素であるから、ここでは画素アドレスが０，１，２，３の画素データが選択される。
【０１１０】
この時、演算部１０５のレジスタ（４０４〜４０７）に格納されているデータの画素アドレスが０，１，２，３だとすると、ＳＥＮ＝ハイ、ＸＥＮ＝ハイとなり、現在レジスタに格納されているデータと、この時のＸＲＥＭＤによりＬＵＴ１０３から別途引き出される係数データ（ｆ（ｘ１）〜ｆ（ｘ４））により演算が行われ、演算結果が出力される。なお、係数データｆ（ｙ１）〜ｆ（ｙ４）は、その時点のＹＣＯＵＮＴ値から得られるＹＲＥＭＤによりＬＵＴ１０３から取得される。
【０１１１】
次に、ＸＣＯＵＮＴ＝３の時、ＸＱＵＯＴ＝１である。ここでも画素アドレス＝０，１，２，３の画素データが選択される。この時、選択画素アドレスが前クロックの選択画素アドレスと同一になるのでＳＥＮ＝ローとなり、第１〜第４レジスタ（４０４〜４０７）のデータの入れ替えは行われない。しかし、ＸＲＥＭＤが変化しているので係数データは入れ替わる。よって、新たな演算が行われて、その演算結果が出力される。
【０１１２】
次に、ＸＣＯＵＮＴ＝４の時、ＸＱＵＯＴ＝２である。ここで、画素アドレス＝１，２，３，４の画素データが選択される。この時、ＳＥＮ＝ハイ、ＸＥＮ＝ハイとなり、新たなデータが読み込まれ、レジスタのシフトが行われる。この新たなレジスタデータと別途ＸＲＥＭＤに基づいてＬＵＴ１０３より引き出される係数データにより演算が行われ、演算結果が出力される。
このようにしてｘ方向２倍の画素データが生成される。
【０１１３】
図１３はｘ方向を１．５倍に拡大したときのタイミングチャートである。
図１３で、ＸＣＯＵＮＴ＝２の時、ＸＱＵＯＴ＝１である。選択される画素アドレスはＸＱＵＯＴ−１、ＸＱＵＯＴ、ＸＱＵＯＴ＋１、ＸＱＵＯＴ＋２の４画素であるから、ここでは画素アドレス＝０，１，２，３の画素データが選択される。
【０１１４】
この時、演算部１０５のレジスタ（４０４〜４０７）に格納されているデータの画素アドレスが０，１，２，３だとすると、ＳＥＮ＝ハイ、ＸＥＮ＝ハイとなり、現在レジスタに格納されているデータと、この時のＸＲＥＭＤにより別途引き出される係数データにより演算が行われ、演算結果が出力される。
【０１１５】
次に、ＸＣＯＵＮＴ＝３の時、ＸＱＵＯＴ＝２である。よって、画素アドレス＝１，２，３，４の画素データが選択される。この時、ＳＥＮ＝ハイ、ＸＥＮ＝ハイであり、新たなデータが読み込まれ、レジスタのシフトが行われる。この新たなレジスタデータと、別途引き出される係数データにより演算が行われ、演算結果が出力される。
【０１１６】
次に、ＸＣＯＵＮＴ＝４の時、ＸＱＵＯＴ＝２である。ここでも画素アドレス＝１，２，３，４の画素データが選択される。この時、選択画素アドレスが前クロックの選択画素アドレスと同一になるのでＳＥＮ＝ローとなり、レジスタ（４０４〜４０７）のデータの入れ替えは行われない。しかし、ＸＲＥＭＤが変化しているので係数データは入れ替わる。よって、新たな演算が行われて、演算結果が出力される。
このようにしてｘ方向１．５倍の画素データが生成される。
【０１１７】
図１４はｘ方向を１／２倍に縮小したときのタイミングチャートである。
図１４で、ＸＣＯＵＮＴ＝１の時、ＸＱＵＯＴ＝２であるので、画素アドレス＝１，２，３，４の画素データが選択される。この時、演算部１０５の第１〜第４レジスタ（４０４〜４０７）に格納されているデータの画素アドレスが１，２，３，４だとすると、ＳＥＮ＝ハイ、ＸＥＮ＝ハイであり、現在レジスタに格納されているデータと、この時のＸＲＥＭＤにより別途引き出される係数データにより演算が行われ、演算結果が出力される。
【０１１８】
次に、ＸＣＯＵＮＴ＝２の時、ＸＱＵＯＴ＝４である。よって、画素アドレス＝３，４，５，６の画素データが選択される。この時、ＳＥＮ＝ハイとなり新たなデータが読み込まれ、レジスタのシフトが行われる。しかしシフトが行われた後のレジスタの画素アドレスは２，３，４，５であり、ＸＱＵＯＴからの選択画素アドレスと合致しない。そこで、ＸＥＮ＝ローとなり、ＸＣＯＵＮＴのカウントアップを一時停止する。
【０１１９】
次のクロックでもう１画素が読み込まれ、レジスタのシフトが行われる。ここでレジスタのアドレス＝３，４，５，６となり、選択アドレスと合致したのでＸＥＮ＝ハイとなり、この新たなレジスタデータと、別途引き出される係数データにより演算が行われ、演算結果が出力される。出力画素Ｎｏ．において、ローの部分はメモリへの書込みが行われない異になるが、これはＡＣＴ信号がＬＯＷとなることで制御される。
このようにしてｘ方向に１／２倍の画素データが生成される。
【０１２０】
図１５はｘ方向を３／４倍に縮小したときのタイミングチャートである。
図１５で、ＸＣＯＵＮＴ＝１の時、ＸＱＵＯＴ＝１である。ここで、画素アドレス＝０，１，２，３の画素データが選択される。この時、演算部１０５のレジスタ（４０４〜４０７）に格納されているデータの画素アドレスが０，１，２，３だとすると、ＳＥＮ＝ハイ、ＸＥＮ＝ハイとなり、現在レジスタに格納されているデータと、この時のＸＲＥＭＤにより別途引き出される係数データにより演算が行われ、演算結果が出力される。
【０１２１】
次に、ＸＣＯＵＮＴ＝２の時、ＸＱＵＯＴ＝２である。ここで、画素アドレス＝１，２，３，４の画素データが選択される。この時、ＳＥＮ＝ハイとなり新たなデータが読み込まれ、レジスタのシフトが行われる。この時のレジスタに格納されているデータの画素アドレス＝１，２，３，４となり、選択画素アドレスと合致するので、このデータを用いて演算が行われ、演算結果が出力される。
【０１２２】
次に、ＸＣＯＵＮＴ＝３の時、ＸＱＵＯＴ＝４である。ここで、画素アドレス＝３，４，５，６の画素データが選択される。この時、ＳＥＮ＝ハイとなり新たなデータが読み込まれ、レジスタのシフトが行われる。しかしシフトが行われた後のレジスタの画素アドレス＝２，３，４，５であり、ＸＱＵＯＴからの選択画素アドレスと合致しない。そこで、ＸＥＮ＝ローとなり、ＸＣＯＵＮＴのカウントアップを一時停止する。
【０１２３】
次のクロックで次の１画素が読み込まれ、レジスタのシフトが行われる。ここでレジスタのアドレス＝３，４，５，６となり、選択アドレスと合致したのでＸＥＮ＝ハイとなり、この新たなレジスタデータと、別途引き出される係数データにより演算が行われ、演算結果が出力される。
このようにしてｘ方向３／４倍の画素データが生成される。
【０１２４】
以上の動作について概要を述べると次の通りである。すなわち、ＸＱＵＯＴが要求するデータは、ＸＱＵＯＴ−１、ＸＱＵＯＴ、ＸＱＵＯＴ＋１、ＸＱＵＯＴ＋２の４画素であるのに対し、Ｘ方向のデータはひとつのラインバッファから読み出すことになるので、本実施形態では１ＣＬＫで１データしか読み出せない。そこで、図４で説明したように、レジスタに読み出したデータを溜めていく手法をとっている。ここではＹ方向の演算を行ったデータをＸ方向のデータとしてレジスタに溜めていく構成を用いている。そして、ＸＱＵＯＴが要求するデータがそろわないうちはＸＥＮ＝ローとすることで演算を行わないようにし、且つＸＣＯＵＮＴのカウントアップを止めてＸＱＵＯＴの値が変わらないようにしている。縮小の場合はレジスタに溜まっているデータよりもＸＱＵＯＴの方が先行するため、ＳＥＮが常にハイになることで１ＣＬＫ毎にデータを読み出すようにしている。逆に拡大の場合はＸＱＵＯＴの変化よりもラインバッファにデータが溜まる方が先行するため、ＳＥＮを変化させてタイミング制御を行う。以上のような手法により、どの倍率においてもＸＣＯＵＮＴのカウントアップスタートのタイミングも制御可能となる。
【０１２５】
以上、説明したように本実施形態によれば、単一の演算回路で、３次元畳み込み演算のような複数の画素データを参照する拡大／縮小演算回路を具現化することが可能となる。
【０１２６】
【発明の効果】
以上説明したように、本発明によれば、ラインバッファを用い、単一の演算回路で複数の解像度に対応することが可能となる。
また、本発明によれば、ラインバッファと単一の演算回路を用いた構成で、３次元畳み込み演算方式を用いた複数種類の解像度変換に対応することが可能である。
【図面の簡単な説明】
【図１】実施形態による解像度変換装置の構成を示すブロック図である。
【図２】ラインバッファ部ク１０４の構成例を示したブロック図である。
【図３】ラインバッファブロック２０２の構成とデータの流れを説明する図である。
【図４】演算部１０５の構成例を示したブロック図である。
【図５】出力カウンタ１０１の構成例を示したブロック図である。
【図６】データリクエスト部１０２における、Ｙ方向に関する構成を示したブロック図である。
【図７】データリクエスト部１０２における、Ｘ方向に関する構成を示したブロック図である。
【図８】本実施形態の解像度変換処理における、ｙ方向２倍設定時のタイミングチャートである。
【図９】本実施形態の解像度変換処理における、ｙ方向１．５倍設定時のタイミングチャートである。
【図１０】本実施形態の解像度変換処理における、ｙ方向１／２倍設定時のタイミングチャートである。
【図１１】本実施形態の解像度変換処理における、ｙ方向３／４倍設定時のタイミングチャートである。
【図１２】本実施形態の解像度変換処理における、ｘ方向２倍設定時のタイミングチャートである。
【図１３】本実施形態の解像度変換処理における、ｘ方向１．５倍設定時のタイミングチャートである。
【図１４】本実施形態の解像度変換処理における、ｘ方向１／２倍設定時のタイミングチャートである。
【図１５】本実施形態の解像度変換処理における、ｘ方向３／４倍設定時のタイミングチャートである。
【図１】
2004101910.tif 000007
【図２】
2004101910.tif 000008
【図３】
2004101910.tif 000009
【図４】
2004101910.tif 000010
【図５】
2004101910.tif 000011
【図６】
2004101910.tif 000012
【図７】
2004101910.tif 000013
【図８】
2004101910.tif 000014
【図９】
2004101910.tif 000015
【図１０】
2004101910.tif 000016
【図１１】
2004101910.tif 000017
【図１２】
2004101910.tif 000018
【図１３】
2004101910.tif 000019
【図１４】
2004101910.tif 000020
【図１５】
2004101910.tif 000021