(57)【特許請求の範囲】
【請求項１】
ＤＭＡ(Direct Memory Access)転送されてくる画像データを順次格納するためのレジスタを必要数備えたレジスタ部と、
前記レジスタに格納してあるデータを、中間画素を生成する方向を設定する設定信号に応じて適宜選択し出力するデータ選択部と、
前記データ選択部からの出力を入力とし、画像データを構成する画素データに対しその中間画素を生成する中間画素演算を行う中間画素値演算部と、
前記中間画素値演算部における演算結果を必要に応じて加工出力するデータ出力部とを備え、
画像データのＤＭＡ転送時にデータイネーブル信号を転送し、かつ前記画像データの中間画素値演算をＤＭＡ転送中に行うことを特徴とする中間画素演算装置。
【請求項２】
請求項１記載の中間画素演算装置において、
前記画像データは複数の画素データが一緒にされたパッキングデータとして入力されるものであり、前記中間画素値演算部は前記パッキングデータを構成する画素データに対し並列に中間画素演算を行うものであることを特徴とする中間画素演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル画像処理における画素間の中間画素値を生成する中間画素演算装置の改良を図ったものに関するものである。
【０００２】
【従来の技術】
ディジタル画像処理におけるデータ圧縮処理では、効率的なデータ圧縮を行うために画素間の中間に配置すべき画素の中間画素値を求め、これを圧縮処理に用いる場合がある。図７は、本来の画素と中間画素との関係を示したもので、中間画素には水平方向、垂直方向、斜め方向の３通りのものがある。この図７では本来の画素を“○”印で、水平方向の中間画素を“■”印で、垂直方向の中間画素を“●”印で、斜め方向の中間画素を“▲”印で、それぞれ示している。
【０００３】
そして、水平方向の中間画素値を算出するには、水平方向で隣り合う２つの画素のデータをそれぞれａ１，ａ２とすれば、これを（ａ１＋ａ２）／２  で求めることができる。また、垂直方向の中間画素値を算出するには、垂直方向で隣り合う２つの画素のデータをそれぞれａ１，ｂ１とすれば、これを（ａ１＋ｂ１）／２  で求めることができる。さらに斜め方向の中間画素値を算出するには、水平方向で隣り合う２つの画素のデータをそれぞれａ１，ａ２とし、かつこれらと１ライン分ずれて配置され、かつ水平方向で隣り合う２つの画素のデータをそれぞれｂ１，ｂ２とすれば、この中間画素を（ａ１＋ａ２＋ｂ１＋ｂ２）／４  で求めることができる。
【０００４】
従来、中間画素値を求める中間画素演算装置は、例えば、特開平９−３１１９３４号公報に示されているように、中間画素値を求めるために予め画像データを並び替え、もしくは分割する手段と、並び替え、もしくは分割した画像データを格納する記憶装置と、中間画素値を求めるための中間画素（ハーフペル）演算回路とを備え、前記記憶装置から決められた手順で格納されている画像データを読み出し、前記中間画素演算回路に入力することにより中間画素値を求めていた。
【０００５】
図８は、上記従来の中間画素演算装置の構成を示すブロック図である。図において、８０１はＡメモリとＢメモリのアドレスを生成するアドレス生成回路、８００はデータ入力端子、８０１ａはＡメモリとＢメモリの書き込みを制御する書き込み制御部、８０１ｂはＡメモリとＢメモリの読み出しを制御する読み出し制御部、８０２および８０３は中間画素値を求めるために予め分割された画像データを格納するためのＡメモリとＢメモリ、８０４はＡメモリ８０２とＢメモリ８０３に格納された画像データを用いて中間画素値を求める中間画素演算回路、８０５および８０６はトライステートバッファ、８１０はデータ出力端子である。
【０００６】
次に、上記従来の中間画素演算装置において中間画素値を生成する動作について説明する。
最初に、アドレス生成回路８０１は、データ入力端子８００より入力されてくる画像データに対し、書き込み制御部８０１ａによってトライステートバッファ８０５，８０６を制御し、これらを１画素幅で水平方向の二つの画素列に分割するとともに、書き込み信号を出力してＡメモリ８０２とＢメモリ８０３にそれぞれ書き込む。
【０００７】
次いで、読み出し制御部８０１ｂより読み出し信号を出力して、Ａメモリ８０２とＢメモリ８０３に格納した画像データを同時に読み出し、中間画素演算回路８０４の入力とする。中間画素演算回路８０４では、Ａメモリ８０２とＢメモリ８０３からそれぞれ読み出された画像データを用いて、上述のような中間画素演算を行うことにより、中間画素値を生成し、データ出力端子８１０よりこれを出力する。
【０００８】
【発明が解決しようとする課題】
従来の中間画素演算装置は上記のように構成されており、データ圧縮を行うためなどに用いる画素間の中間画素値を生成することができる。
しかしながら、上記のような中間画素演算を行う画像処理装置では、中間画素演算を行うために、予め画像データを並び替え、もしくは分割する必要があり、そのための制御手段と、並び替え、もしくは分割された画像データを格納するための記憶装置が必要であった。また、このように記憶装置を用いてデータの並び替え、分割を行うために、ＤＭＡ転送中には中間画素演算を行うことができなかった。
【０００９】
本発明は、上記のような従来のものの問題点を解決するためになされたもので、中間画素演算を行う際に、予めデータの並び替えや分割等を行って記憶装置に格納することなく、中間画素値を生成することが可能な中間画素演算装置を提供することを目的とする。
また、ＤＭＡ転送に特別な制御を加えることなしに、生成した中間画素値を転送先に出力することで、ＤＭＡ転送中に中間画素値を生成することが可能な中間画素演算装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
この課題を解決するために、本願の請求項１の発明に係る中間画素演算装置は、ＤＭＡ転送されてくる画像データを順次格納するためのレジスタを必要数備えたレジスタ部と、前記レジスタに格納してあるデータを、中間画素を生成する方向を設定する設定信号に応じて適宜選択し出力するデータ選択部と、前記データ選択部からの出力を入力とし、画像データを構成する画素データに対しその中間画素を生成する中間画素演算を行う中間画素値演算部と、前記中間画素値演算部における演算結果を必要に応じて加工出力するデータ出力部とを備え、画像データのＤＭＡ転送時にデータイネーブル信号を転送し、かつ前記画像データの中間画素値演算をＤＭＡ転送中に行うようにしたものである。
【００１１】
また、本願の請求項２の発明に係る中間画素演算装置は、請求項１記載の中間画素演算装置において、前記画像データは複数の画素データが一緒にされたパッキングデータとして入力されるものであり、前記中間画素値演算部は前記パッキングデータを構成する画素データに対し並列に中間画素演算を行うものとしたものである。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態について、図１ないし図６を用いて説明する。
（実施の形態１）
この実施の形態１は、画素間の中間画素値の生成において、２次元的に配列された画像データを順次入力して中間画素値を生成することにより、中間画素演算のために予めデータの並び替えや格納をすることなしに、ＤＭＡ転送されてきたデータを順次入力して中間画素演算を行うようにしたものである。
【００１３】
図１は本発明の実施の形態１による中間画素演算装置のブロック図を示し、図１において、１０１はＤＭＡ転送中に中間画素値を生成出力することが可能な，本実施の形態１による中間画素演算装置、１１７は外部メモリ、１１８は内部メモリであり、この図１に示した例では、外部メモリ１１７から内部メモリ１１８へ画像データをＤＭＡ転送するとともに、転送する画像データに合わせてデータイネーブル信号も転送している。また、１０６は中間画素演算装置１０１で行う中間画素演算のモードを設定するためのモード設定信号、１０７は外部メモリ１１７からＤＭＡ転送されてきたデータを、そのまま出力するか、あるいは転送されてきた画像データに対し中間画素値を生成して出力するかの切り替えを行うための演算ＯＮ／ＯＦＦ信号である。
【００１４】
また、中間画素演算装置１０１のブロックの内部において、１０８は外部メモリ１１７からＤＭＡ転送されてくる画像データとデータイネーブル信号を入力とするデータ入力部、１０９はデータ入力部１０８からのデータを順次格納していくレジスタ部、１１０はレジスタ部１０９に格納してあるデータのなかからモード設定信号１０６に応じて中間画素演算に必要なデータを選択しこれを出力するデータ選択部、１１１はデータ選択部１１０からの出力を入力とし、モード設定信号１０６によって設定された中間画素値演算により中間画素値の生成を行う中間画素値演算部、１１２は必要に応じて中間画素値演算部１１１からの演算結果出力を、データ入力部１０８に入力されるデータと同じ形式に加工して出力するデータ出力部、１１５は演算ＯＮ／ＯＦＦ信号１０７により、外部メモリ１１７からのＤＭＡ転送データと、本中間画素演算装置１０１により生成された中間画素値のいずれかを選択し出力するセレクタ、１１６は演算ＯＮ／ＯＦＦ信号１０７により、外部メモリ１１７からのデータイネーブル信号と、本中間画素演算装置１０１により生成されたデータイネーブル信号のいずれかを選択し出力するセレクタである。
【００１５】
以上のように構成された中間画素演算装置について、以下、その動作を述べる。
図１のデータ入力部１０８は、外部メモリ１１７から転送される入力画像データ１０２とともに、画像データに合わせて転送される入力データイネーブル信号１０３を入力とする。レジスタ部１０９は、データ入力部１０８から入力される画像データを順次格納していく。モード設定信号１０６により、データ選択部１１０はレジスタ部１０９に格納されている画像データの中から必要なものを選択し、そのデータに対し中間画素値演算部１１１はモード設定信号１０６により設定された，水平または垂直あるいは斜め方向の中間画素値を生成する。データ出力部１１２では、中間画素値演算部１１１からの出力をデータ入力部１０８に入力される入力画像データ１０２と同じ形式で出力するとともに、データ出力部１１２から出力される中間画素データ１１３に合わせて、データイネーブル信号１１４を出力する。セレクタ１１５と１１６は、演算ＯＮ／ＯＦＦ信号１０７により、ＤＭＡ転送のみのときは、外部メモリ１１７からの入力画像データ１０２と入力データイネーブル信号１０３を選択してこれらを出力し、中間画素値を生成する場合は、データ出力部１１２からの中間画素データ１１３と中間画素データイネーブル信号１１４を選択しこれらを出力する。
【００１６】
ところで、外部メモリ１１７からの入力画像データ１０２と中間画素演算装置１０１で生成した中間画素データ１１３の間には、中間画素の演算上、データの個数に違いが発生する。また、中間画素データが出力されるまでに遅延も生じてしまう。
【００１７】
しかるに、本実施の形態１の中間画素演算装置１０１では、生成される中間画素データに合わせてデータ出力部１１２がデータイネーブル信号も加工し出力するため、ＤＭＡ転送制御に特別な制御手段や回路を必要としない。従って、ＤＭＡ転送中に中間画素値の生成が可能である。
【００１８】
このように、本実施の形態１によれば、データ入力部１０８により、外部の装置から入力画像データ１０２とともに入力データイネーブル信号１０３を入力し、これをレジスタ部１０９によりその内部で順次シフトしてゆき、その際、データ選択部１１０で適宜中間画素値の演算に必要な画素データを取得するようにレジスタ部１０９の出力を選択し、中間画素値演算部１１１はその選択した画素データに基づき中間画素値を生成する演算を行い、データ出力部１１２により、その演算結果を必要に応じて加工し出力するようにしたので、中間画素演算を行うために予めデータの並び替えや格納を要することなく、ＤＭＡ転送されてきたデータを順次入力して中間画素演算を行うことができる。
【００１９】
（実施の形態２）
この実施の形態２は、ＤＭＡ転送される画像データを順次入力し、中間画素値を生成するとともに、ＤＭＡ転送に特別な制御を加えることなしに、生成した中間画素値を並列に演算し入力されてきたデータと同じパッキング形式で出力することにより、ＤＭＡ転送中に、中間画素値を少ない遅延で生成することを可能としたものである。
【００２０】
図２は本発明の実施の形態２による中間画素演算装置におけるレジスタ部１０９の構成の一例を示したものである。図２で示したレジスタ部は、４画素、８画素、１６画素数の水平方向の中間画素、垂直方向の中間画素、斜め方向の中間画素を、同一のレジスタ部からのデータで生成することが可能なようにこれを構成したものである。
【００２１】
図２において、１０９ａないし１０９ｕはそれぞれ画像データを一時記憶するレジスタＡないしレジスタＵであり、レジスタＡ１０９ａ，レジスタＣ１０９ｃ，レジスタＥ１０９ｅ，レジスタＧ１０９ｇ，レジスタＩ１０９ｉ，レジスタＫ１０９ｋ，レジスタＭ１０９ｍ，レジスタＯ１０９ｏ，レジスタＱ１０９ｑ，レジスタＳ１０９ｓはデータ入力部１０８が出力する入力画像データ１０２の上位８ビットを入力しこれらをこの順で順次パラレルに転送してゆくものである。また、レジスタＢ１０９ｂ，レジスタＤ１０９ｄ，レジスタＦ１０９ｆ，レジスタＨ１０９ｈ，レジスタＪ１０９ｊ，レジスタＬ１０９ｌ，レジスタＮ１０９ｎ，レジスタＰ１０９ｐ，レジスタＲ１０９ｒ，レジスタＴ１０９ｔ，レジスタＵ１０９ｕはデータ入力部１０８が出力する入力画像データ１０２の下位８ビットを入力しこれらをこの順で順次パラレルに転送してゆくものである。
【００２２】
また、これらのレジスタのなかで、レジスタＡ１０９ａ，レジスタＢ１０９ｂ，レジスタＤ１０９ｄ，レジスタＥ１０９ｅ，レジスタＦ１０９ｆ，レジスタＧ１０９ｇ，レジスタＨ１０９ｈ，レジスタＩ１０９ｉ，レジスタＪ１０９ｊ，レジスタＫ１０９ｋ，レジスタＬ１０９ｌ，レジスタＮ１０９ｎ，レジスタＱ１０９ｑ，レジスタＲ１０９ｒ，レジスタＳ１０９ｓ，レジスタＴ１０９ｔ，レジスタＵ１０９ｕの出力はそれぞれデータ選択部１１０に入力されている。
【００２３】
以下、８×８画素数の中間画素値を生成する場合の本実施の形態２による中間画素演算装置の動作について述べる。
図３は、２次元的に配列されている画像データを表している。ａ１、ａ２、ａ３、…、ｊ９、ｊ１０  、ｊ１１  、…は個々の画素のデータである。外部メモリ１１７には、画像データが２画素分を一緒にしたパッキングデータとして、例えばデータａ１とａ２、データａ３とａ４をそれぞれ一緒にして１６ビットで格納されている場合を例として述べる。
【００２４】
表１，表２，表３はそれぞれ水平方向，垂直方向，斜め方向に対し、８画素分の中間画素演算を行う場合の、図２のレジスタ部のレジスタのサイクル毎の値の変化と中間画素演算値との関係を示したものであり、各表の枠の最上行における数字“０”ないし“１２”はサイクルの値を示している。また、各表中で黒で表示したレジスタは、中間値演算を行うにあたってその出力が選択されるレジスタを示している。
【００２５】
【表１】
0003633807.tif 000002
【００２６】
【表２】
0003633807.tif 000003
【００２７】
【表３】
0003633807.tif 000004
【００２８】
図１の外部メモリ１１７からは画像データとして２画素分づつが１６ビットで転送されてくる。中間画素値を生成するために、データ入力部１０８はレジスタ部１０９に転送されてくるデータを順次格納していく。図２および表１に示すように、サイクル０においてデータ入力部１０８から出力されたデータａ１、ａ２はサイクル１において、レジスタＡにデータａ１が、レジスタＢにデータａ２がそれぞれ格納され、次のサイクルではレジスタＡにデータａ３が、レジスタＢにデータａ４が格納されるというように、データ入力部１０８からのデータを順次格納していく。水平方向の中間画素値を生成する際は、レジスタＡとＢ、レジスタＤとレジスタＡに格納してあるデータを用いて並列に中間画素値演算が行われるように、モード設定信号１０６により、データ選択部１１０がデータを選択しこれが中間画素値演算部１１１に出力される。中間画素値演算部１１１では、並列に水平方向の中間画素演算を行い、２つの中間画素値を同時に生成する。これにより、例えば１サイクル目でレジスタＡとＢに格納されるデータａ１とａ２を用いてその水平方向の中間画素値（ａ１＋ａ２）／２  が演算される。また２サイクル目ではレジスタＤに格納されるデータａ２とレジスタＡに格納されるデータａ３を用いてその水平方向の中間画素値（ａ２＋ａ３）／２  が演算されるとともに、レジスタＡに格納されるデータａ３とレジスタＢに格納されるデータａ４を用いてその水平方向の中間画素値（ａ３＋ａ４）／２  がこれと並列に演算される。
【００２９】
中間画素値演算部１１１で生成された中間画素値は、データ出力部１１２によって、データ入力部１０８に入力されるデータと同じように２つの中間画素値を一緒にして１６ビットのデータとして出力される。同時にデータ出力部１１２からは、出力される中間画素値に合わせてデータイネーブル信号を出力する。水平方向の中間画素値を生成する場合の、画像データとデータイネーブル信号との関係を示したのが図４である。このとき、水平方向に８画素分の中間画素値を生成するには、９画素分の画像データの入力が必要になるため、入力画像データ１０２と生成した中間画素値である出力画像データ１０４との間には、データの個数に差ができるが、出力画像データイネーブル信号１０５は、データ出力部１１２からの出力画像データ１０４に合わせて、中間画素値が出力されない期間は一旦ロウレベルとなり、再び中間画素値が出力される期間はハイレベルとなるようにデータイネーブル信号が出力されるため、この出力画像データイネーブル信号１０５により、ＤＭＡ転送は特別な制御をする必要がない。
【００３０】
次に、垂直方向の中間画素値を生成する場合について、その動作を述べる。外部メモリ１１７からＤＭＡ転送されてくる画像データをデータ入力部１０８を介し、レジスタ部１０９に順次格納していくのはモードの設定にかかわらず同じである。すなわち、図２および表２に示すように、サイクル０においてデータ入力部１０８から出力されたデータａ１、ａ２はサイクル１において、レジスタＡにデータａ１が、レジスタＢにデータａ２がそれぞれ格納され、次のサイクルではレジスタＡにデータａ３が、レジスタＢにデータａ４が格納されるというように、データ入力部１０８からのデータを順次格納していく。８×８の中間画素値を生成する際の垂直方向の中間画素値の生成は、図２のレジスタ部１０９におけるレジスタＩとレジスタＡ、レジスタＪとレジスタＢに格納してあるデータを用いて並列に中間画素値演算が行われるように、モード設定信号１０６により、データ選択部１１０から中間画素値演算部１１１にデータが選択出力されることで行われる。中間画素値演算部１１１では並列に垂直方向の中間画素演算を行い、２つの中間画素値を同時に生成する。
【００３１】
これにより、例えば５サイクル目でレジスタＩに格納されるデータａ１とレジスタＡに格納されるデータｂ１を用いてその垂直方向の中間画素値（ａ１＋ｂ１）／２  が演算されるとともに、５サイクル目でレジスタＪに格納されるデータａ２とレジスタＢに格納されるデータｂ２を用いてその垂直方向の中間画素値（ａ２＋ｂ２）／２  がこれと並列に演算される。
【００３２】
中間画素値演算部１１１で生成された中間画素値は、データ出力部１１２によって、データ入力部１０８に入力されるデータと同じように２つの中間画素値を一緒にして１６ビットのデータとして出力される。このとき、垂直方向に８画素分の中間画素値を生成するには、９ライン分の画像データの入力が必要になるため、入力画像データ１０２と生成した中間画素値である出力画像データ１０４との間には、データの個数に差ができる。また、データの出力には少なくとも１ライン分のデータ入力のための遅延が発生するが、データ出力部１１２からの出力データに合わせてデータイネーブル信号が出力されるため、出力画像データイネーブル信号１０５により、ＤＭＡ転送は特別な制御をする必要がない。垂直方向の中間画素値を生成する場合の、データとデータイネーブルとの関係を示したのが図５である。
【００３３】
さらに、斜め方向の中間画素値を生成する場合について、その動作を述べる。外部メモリ１１７からＤＭＡ転送されてくる画像データをデータ入力部１０８を介し、レジスタ部１０９に順次格納していくのはモードの設定にかかわらず同じである。図２および表３に示すように、サイクル０においてデータ入力部１０８から出力されたデータａ１、ａ２はサイクル１において、レジスタＡにデータａ１が、レジスタＢにデータａ２がそれぞれ格納され、次のサイクルではレジスタＡにデータａ３が、レジスタＢにデータａ４が格納されるというように、データ入力部１０８からのデータを順次格納していく。８×８の中間画素値を生成する際の斜め方向の中間画素値の生成は、図２のレジスタ部１０９におけるレジスタＫとレジスタＬとレジスタＡとレジスタＢ、レジスタＮとレジスタＫとレジスタＤとレジスタＡに格納してあるデータを用いて並列に中間画素値演算が行われるように、モード設定信号１０６により、データ選択部１１０から中間画素値演算部１１１にデータが選択出力されることで行われる。中間画素値演算部１１１では、並列に斜め方向の中間画素演算を行い、２つの中間画素値を同時に生成する。
【００３４】
これにより、例えば６サイクル目でレジスタＫ，レジスタＬとレジスタＡ，レジスタＢにそれぞれ格納されるデータａ１，ａ２  とｂ１，ｂ２  を用いてその斜め方向の中間画素値（ａ１＋ａ２＋ｂ１＋ｂ２）／４  が演算され、７サイクル目でレジスタＮに格納されるデータａ２とレジスタＫに格納されるデータａ３とレジスタＤに格納されるデータｂ２とレジスタＡに格納されるデータｂ３を用いてその斜め方向の中間画素値（ａ２＋ａ３＋ｂ２＋ｂ３）／４  が演算されるとともに、レジスタＫに格納されるデータａ３とレジスタＬに格納されるデータａ４とレジスタＡに格納されるデータｂ３とレジスタＢに格納されるデータｂ４を用いてその斜め方向の中間画素値（ａ３＋ａ４＋ｂ３＋ｂ４）／４  が並列に演算される。
【００３５】
中間画素値演算部１１１で生成された中間画素値は、データ出力部１１２によって、データ入力部１０８に入力されるデータと同じように２つの中間画素値を一緒にして１６ビットのデータとして出力される。このとき、斜め方向に８×８画素分の中間画素値を生成するには、水平方向に１ライン９画素分、垂直方向に９ライン分の画像データの入力が必要になるため、入力画像データ１０２と生成した中間画素値である出力画像データ１０４との間には、データの個数に違いが生じる。また、中間画素値の出力までに遅延が発生するが、データ出力部１１２からの出力データに合わせてデータイネーブル信号が出力されるため、出力画像データイネーブル信号１０５により、ＤＭＡ転送は特別な制御をする必要がない。斜め方向の中間画素値を生成する場合の、データとデータイネーブルとの関係を示したのが図６である。
【００３６】
なお、以上の説明は８画素の場合に関するものであるが、水平，垂直，斜め方向の中間画素値を４画素分演算する場合や、１６画素分演算する場合においても同様の処理により中間画素値を演算することができる。４画素の場合のレジスタのサイクル毎の値の変化と中間画素演算値との関係を表４ないし表６に、１６画素の場合のレジスタのサイクル毎の値の変化と中間画素演算値との関係を表７ないし表９に、それぞれ示している。
【００３７】
【表４】
0003633807.tif 000005
【００３８】
【表５】
0003633807.tif 000006
【００３９】
【表６】
0003633807.tif 000007
【００４０】
【表７】
0003633807.tif 000008
【００４１】
【表８】
0003633807.tif 000009
【００４２】
【表９】
0003633807.tif 000010
【００４３】
次にこのようなＤＭＡ転送の際に特別な制御を必要としないように、出力データに合わせて出力されるデータイネーブル信号の生成について説明する。
図９は本発明の実施の形態２による中間画素演算装置におけるレジスタ部１０９の構成の一例を示したものである。図９で示したレジスタ部は、図２で示したレジスタ部とともに設けられ、図２で示したレジスタ部が４画素、８画素、１６画素数の水平方向の中間画素、垂直方向の中間画素、斜め方向の中間画素を同一のレジスタ部からのデータで生成することが可能なように構成しているのに対し、これらの中間画素を生成する際のデータイネーブル信号を、同一のレジスタ部からのデータで生成することが可能なようにこれを構成したものである。
【００４４】
図９において、１０９１ないし１０９１０はそれぞれデータイネーブル信号を一時記憶するレジスタ１ないしレジスタ１０であり、レジスタ１    １０９１，レジスタ２    １０９２，レジスタ３    １０９３，レジスタ４    １０９４，レジスタ５    １０９５，レジスタ６    １０９６，レジスタ７    １０９７，レジスタ８    １０９８，レジスタ９    １０９９，レジスタ１０    １０９１０は、データ入力部１０８が出力する入力データイネーブル信号９０１を入力しこれをこの順で順次転送してゆくものである。
【００４５】
また、これらのレジスタのなかで、レジスタ１    １０９１の出力９０２はデータ出力部１１２に入力されており、レジスタ３    １０９３，レジスタ４    １０９４，レジスタ５    １０９５，レジスタ６    １０９６，レジスタ９    １０９９，レジスタ１０    １０９１０の出力はそれぞれデータ選択部１１０に入力されている。
【００４６】
また、図１０は本発明の実施の形態２による中間画素演算装置におけるデータ出力部１１２の構成の一例を示したものである。
図１０において、１００７は図９のレジスタ部１０９のレジスタ１    １０９１からのデータイネーブル信号９０２およびデータ選択部１１０からの出力信号９０３を入力とするＡＮＤ  回路、１００５はＡＮＤ  回路１００７の出力１００４およびデータイネーブル信号９０２を入力とするセレクタ、１００２はセレクタ１００５の出力１００１をカウントするカウンタ部、１００６はカウンタ部１００２の出力１００３およびＡＮＤ  回路１００７の出力１００４を入力とするセレクタ、１１４はこのセレクタ１００６の出力信号である中間画素データイネーブル信号である。
【００４７】
また、１００８および１００９は中間画素値演算部１１１が演算し並列に出力する演算結果、１０１０はこの演算結果１００８を入力とするレジスタ、１０１２はこのレジスタ１０１０の出力１０１１および演算結果１００８を入力とするセレクタ、１１３はこのセレクタ１０１２の出力と中間画素値演算部１１１の演算結果１００９がパッキングされた中間画素値生成データ１１３である。
【００４８】
また、図１１は水平方向に中間画素値を４画素生成する場合のデータイネーブル信号生成部内の信号を示すものである。
また、図１２は垂直方向に中間画素値を４画素生成する場合のデータイネーブル信号生成部内の信号を示すものである。
さらに、図１３は斜め方向に中間画素値を４画素生成する場合のデータイネーブル信号生成部内の信号を示すものである。
【００４９】
次に、データイネーブル信号を生成する場合について、その動作を述べる。
図１の外部メモリ１１７からの入力データイネーブル信号１０３は、図９に示すように、データ入力部１０８により入力され、このデータ入力部１０８からのデータイネーブル信号９０１はレジスタ部１０９のレジスタ１    １０９１に格納される。このレジスタ１    １０９１の出力９０２はモード設定信号１０６によるモード設定にかかわらず、常にデータ出力部１１２に出力される。また、データイネーブル信号９０１はレジスタ部１０９のレジスタ１    １０９１からレジスタ２    １０９２，レジスタ３    １０９３，…，レジスタ９    １０９９，レジスタ１０    １０９１０に順次格納され、データ選択部１１０はモード設定信号１０６に応じて、垂直方向に中間画素を４画素生成する場合はレジスタ３    １０９３の出力を、斜め方向に中間画素を４画素生成する場合はレジスタ４    １０９４の出力を、垂直方向に中間画素を８画素生成する場合はレジスタ５    １０９５の出力を、斜め方向に中間画素を８画素生成する場合はレジスタ６    １０９６の出力を、垂直方向に中間画素を１６画素生成する場合はレジスタ９    １０９９の出力を、斜め方向に中間画素を１６画素生成する場合はレジスタ１０    １０９１０の出力を、それぞれ選択し、選択データ９０３として出力する。また、水平方向の中間画素値を生成する場合は、生成画素数にかかわらず、レジスタ１    １０９１の出力９０２のみをデータイネーブル信号生成に用いるものであり、データ選択部１１０で選択、出力された出力９０３はこれを必要としない。
【００５０】
次に、図１０において、データ出力部１１２に入力された，図９のレジスタ１１０９１の出力９０２およびデータ選択部１１０の出力９０３はＡＮＤ  回路１００７によって論理積がとられ、その出力１００４とレジスタ１    １０９１の出力９０２がモード設定信号１０６に応じてセレクタ１００５によって選択され、カウンタ部１００２はこのセレクタ１００５の出力１００１をカウント信号として、この信号１００１が“Ｈ”の期間モード設定信号により設定された値までカウントを行う。中間画素値を４画素数生成する場合は、“０”，“１”，“２”，“０”，“１”，“２”，…のカウントを繰り返す。同様に、中間画素値を８画素数生成する場合は、“０”，“１”，“２”，“３”，“４”，“０”，“１”，“２”，“３”，“４”，…のカウントを繰り返す。さらに、中間画素値を１６画素数生成する場合は、“０”，“１”，“２”，“３”，“４”，“５”，“６”，“７”，“８”，“０”，“１”，“２”，“３”，“４”，“５”，“６”，“７”，“８”，…のカウントを繰り返す。そして、カウント値が“０”の場合はカウンタ部１００２の出力１００３として、“０”を出力し、他の場合は“１”を出力する。
【００５１】
データイネーブル信号の生成は、水平方向の中間画素値演算の場合はレジスタ部１０９からの出力９０２をカウント信号セレクタ１００５で選択し、カウンタ部１００２のカウント信号１００１とする。そしてこのカウンタ部１００２からの出力１００３をデータイネーブル出力セレクタ１００６で選択し、中間画素データイネーブル信号１１４とする。    即ち、図１１に示すように、水平方向に４画素分の中間画素を生成する場合、レジスタ部１０９からの入力９０２が“Ｈ”の期間、カウンタ部１００２のカウンタは“０”，“１”，“２”，“０”，“１”，“２”，…のカウントを繰り返し、カウンタ部１００２はカウント値が“０”の場合は出力１００３として、“０”を出力し、他の場合は“１”を出力する。このため、図１１（ａ）  に示すように入力９０２が与えられると、カウンタ部１００２からの出力は図１１（ｂ）  に示すようになり、これがセレクタ１００６で選択されて中間画素データイネーブル信号１１４となる。従って、ｏ１＝（ａ１＋ａ２）／２，  ｏ２  ＝（ａ２＋ａ３）／２，  ｏ３  ＝（ａ３＋ａ４）／２，  ｏ４  ＝（ａ４＋ａ５）／２  の４つの中間画素が演算され、これらが、ｏ１，  ｏ２とｏ３，  ｏ４をそれぞれ１組として、２タイミングを要して出力すべき時に出力データイネーブル信号は“１”，“１”、即ち“Ｈ”，“Ｈ”となるように生成されており、次のタイミングで、入力画像データはａ５，ａ６  が入力されるが、このａ６は中間画素演算に用いないものであり、かつこの時カウンタ部１００２のカウント値が“０”となっているため、出力データイネーブル信号は“０”、即ち“Ｌ”となるように生成される。そしてその次のタイミングで、入力画像データはｂ１，ｂ２  が入力され、さらにその次のタイミングで、入力画像データはｂ３，ｂ４  が入力されるが、これらはともに中間画素演算に用いるものであり、かつこの時カウンタ部１００２のカウント値がそれぞれ“１”，“２”となっているため、出力データイネーブル信号は“１”，“１”、即ち“Ｈ”，“Ｈ”となるように生成される。
【００５２】
これに対し、垂直方向の中間画素値演算の場合は、ＡＮＤ  回路１００７の出力１００４をデータイネーブル出力セレクタ１００６で選択し、これを中間画素データイネーブル信号１１４とする。即ち、図１２に示すように、垂直方向に４画素分の中間画素を生成する場合、レジスタ部１０９からの入力９０２とデータ選択部１１０からの入力９０３としてのレジスタ３    １０９３の出力の論理積をＡＮＤ  回路１００７でとり、これをセレクタ１００６で選択し、中間画素データイネーブル信号１１４とする。このため、図１２（ａ）  に示すように入力９０２が与えられ、これよりレジスタ２    １０９２，レジスタ３    １０９３を通過する分遅れて図１２（ｂ）  に示すように入力９０３が与えられると、ＡＮＤ  回路１００７の出力１００４は図１２（ｃ）  に示すようになり、これがセレクタ１００６で選択されて中間画素データイネーブル信号１１４となる。従って、ｏ１＝（ａ１＋ｂ１）／２，  ｏ２  ＝（ａ２＋ｂ２）／２，  ｏ３  ＝（ｂ１＋ｂ２）／２，  ｏ４  ＝（ｂ３＋ｂ４）／２  の４つの中間画素が演算され、これらが、ｏ１，  ｏ２とｏ３，  ｏ４をそれぞれ１組として出力される際に、ａ１，  ａ２，  …よりそれぞれ２タイミング遅れて入力されるｂ１，ｂ２，…の入力タイミングに合わせて出力データイネーブル信号が“Ｈ”になり、かつこの垂直方向に４画素分の中間画素を演算する場合、水平方向に４画素分の中間画素を演算する場合のように、中間画素演算に用いない画素は水平方向には存在しないので、生成される出力データイネーブル信号は、水平方向の時のように一旦“Ｌ”になることはなく、最初に遅延が発生するのみである。
【００５３】
さらに、斜め方向の中間画素値演算の場合はＡＮＤ  回路１００７の出力１００４をカウント信号セレクタ１００５で選択してこれをカウンタ部１００２のカウント信号１００１とし、カウンタ部１００２の出力１００３をデータイネーブル出力セレクタ１００６で選択し、これを中間画素データイネーブル信号１１４とする。即ち、図１３に示すように、斜め方向に４画素分の中間画素を生成する場合、レジスタ部１０９からの入力９０２とデータ選択部１１０からの入力９０３としてのレジスタ３    １０９３の出力の論理積をＡＮＤ  回路１００７でとり、これをセレクタ１００５で選択してカウンタ部１００２への入力１００１とし、このカウント部１００２の出力１００３をセレクタ１００６で選択し、これを中間画素データイネーブル信号１１４とする。このため、図１３（ａ）  に示すように入力９０２が与えられ、これよりレジスタ２    １０９２，レジスタ３    １０９３を通過する分遅れて図１３（ｂ）  に示すように入力９０３が与えられると、ＡＮＤ  回路１００７の出力１００４は図１３（ｃ）  に示すようになり、このＡＮＤ  回路１００７の出力１００４が“Ｈ”の期間、カウンタ部１００２のカウンタは“０”，“１”，“２”，“０”，“１”，“２”，…のカウントを繰り返し、カウンタ部１００２はカウント値が“０”の場合は出力１００３として、“０”を出力し、他の場合は“１”を出力する。これにより、カウンタ部１００２の出力は図１３（ｄ）  に示すようになり、これがセレクタ１００６で選択されて中間画素データイネーブル信号１１４となる。従って、ｏ１＝（ａ１＋ａ２＋ｂ１＋ｂ２）／４，  ｏ２  ＝（ａ２＋ａ３＋ｂ２＋ｂ３）／４，  ｏ３  ＝（ａ３＋ａ４＋ｂ３＋ｂ４）／４，  ｏ４  ＝（ａ４＋ａ５＋ｂ４＋ｂ５）／４  の４つの中間画素が演算される際、ａ１，  ａ２，  …よりそれぞれ２タイミング遅れて入力されるｂ１，ｂ２，…の入力タイミングに合わせて出力データイネーブル信号が“Ｈ”になり、かつその後ａ５，ａ６  が入力されるが、このａ６は水平方向に４画素分の中間画素を演算する場合と同様に画素演算に用いないものであり、従って、これ以降は、水平方向に４画素分の中間画素を演算する場合と同様に、出力データイネーブル信号は“０”，“１”，“１”、即ち“Ｌ”，“Ｈ”，“Ｈ”を繰り返すように生成される。
【００５４】
一方、画像データについては、中間画素値が中間画素値演算部１１１で並列に演算され、出力される中間画素値演算結果１００８，１００９をデータ出力部１１２の入力とし、水平方向および斜め方向の中間画素値演算の場合は一方の演算結果１００８をレジスタ１０１０に格納し、その出力１０１１をセレクタ１０１２で選択出力し、他方の演算結果１００９と一緒にして中間画素値生成データ１１３とする。これに対し、垂直方向の中間画素値演算の場合は、セレクタ１０１２で中間画素値演算部１１１からの一方の入力１００８を選択し、これを中間画素値演算部１１１からの他方の入力１００９と一緒にして中間画素値生成データ１１３とする。
【００５５】
即ち、水平方向および斜め方向に４画素分の中間画素を演算する場合、ｏ１，  ｏ２，ｏ３，  ｏ４，…が出力されるが、これらのなかで、ｏ２，ｏ４，…はｏ１，  ｏ３，  …に対し、それぞれ１タイミング遅れて出力されるため、これを補償すべく、ｏ１，  ｏ３，  …を一旦レジスタ１０１０に格納している。これに対し、垂直方向に４画素分の中間画素を演算する場合、ｏ１，  ｏ２，ｏ３，  ｏ４，…が出力されるが、ｏ２，ｏ４，…はｏ１，  ｏ３，  …と同じタイミングでそれぞれ出力されるため、ｏ１，  ｏ３，  …をレジスタ１０１０に格納することなくそれぞれｏ２，ｏ４，…と一緒にして出力するようにしている。
【００５６】
なお、以上の説明は４画素の場合に関するものであるが、水平，垂直，斜め方向の中間画素値を８画素分演算する場合や、水平，垂直，斜め方向の中間画素値を１６画素分演算する場合においても同様の処理により出力データイネーブル信号を生成することができる。
【００５７】
このように、この実施の形態２によれば、８ビットの画素データが２画素分ずつ入力される際に、これらに対し並列に中間画素値演算を行うようにしたので、ＤＭＡ転送されてくる画像データを順次入力することにより、水平、垂直、斜め方向の中間画素値を生成することが可能であり、中間画素演算を行うために予めデータの並び替えやデータの分割を行って複数のメモリに格納する必要がなく、生成した中間画素値を入力される画像データと同じ形式で出力し、その出力データに合わせてイネーブル信号を出力することで、ＤＭＡ転送に対し、特別な制御をする必要もない。また、複数の画像データを一緒に入力する場合、並列に中間画素演算を行うことで、生成した中間画素値を出力するまでの遅延を小さくすることができる。
【００５８】
なお、上記実施の形態２では、最初から中間画素演算に必要な２画素が一緒にパッキングされて入力されるものとしたが、最初に１画素が入力され、その後２画素ずつ入力される等の場合は、データ入力部１０８で最初から２画素が一緒になるようにパッキングしなおして中間画素値を求めるようにしてもよい。
【００５９】
【発明の効果】
以上のように、本願の請求項１の発明に係る中間画素演算装置によれば、ＤＭＡ転送されてくる画像データを順次格納するためのレジスタを必要数備えたレジスタ部と、前記レジスタに格納してあるデータを、中間画素を生成する方向を設定する設定信号に応じて適宜選択し出力するデータ選択部と、前記データ選択部からの出力を入力とし、画像データを構成する画素データに対しその中間画素を生成する中間画素演算を行う中間画素値演算部と、前記中間画素値演算部における演算結果を必要に応じて加工出力するデータ出力部とを備え、画像データのＤＭＡ転送時にデータイネーブル信号を転送し、かつ前記画像データの中間画素値演算をＤＭＡ転送中に行うようにしたので、中間画素値の生成において、演算のためのデータを予め用意するための制御や記憶装置が不要となり、また、画像データのＤＭＡ転送中に、中間画素値の生成を行うことができるという効果が得られる。
【００６０】
また、本願の請求項２の発明に係る中間画素演算装置によれば、請求項１記載の中間画素演算装置において、前記画像データは複数の画素データが一緒にされたパッキングデータとして入力されるものであり、前記中間画素値演算部は前記パッキングデータを構成する画素データに対し並列に中間画素演算を行うものとしたので、中間画素値の生成において、演算のためのデータを予め用意するための制御や記憶装置が不要となり、画像データのＤＭＡ転送中に、中間画素値の生成を行うことができ、しかも、一緒に入力した複数の画像データに対し、並列に中間画素演算を行うことで、生成した中間画素値を出力するまでの遅延を小さくすることができる効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態１による中間画素演算装置を示すブロック図。
【図２】本発明の実施の形態２によるレジスタ部の構成例を示す構成図。
【図３】２次元的に配列された画像データの概念図。
【図４】本発明の実施の形態２による水平方向の中間画素値生成の説明図。
【図５】本発明の実施の形態２による垂直方向の中間画素値生成の説明図。
【図６】本発明の実施の形態２による斜め方向の中間画素値生成の説明図。
【図７】中間画素の説明図。
【図８】従来のアドレス生成回路を示す一構成図。
【図９】本発明の実施の形態２によるレジスタ部の構成例を示すブロック図。
【図１０】本発明の実施の形態２によるデータ出力部の構成例を示すブロック図。
【図１１】本発明の実施の形態２によるデータイネーブル信号の生成過程の一例を示す信号波形図。
【図１２】本発明の実施の形態２によるデータイネーブル信号の生成過程の他の例を示す信号波形図。
【図１３】本発明の実施の形態２によるデータイネーブル信号の生成過程のさらに他の例を示す信号波形図。
【符号の説明】
１０１    中間画素演算装置
１０２    入力画像データ
１０３    入力データイネーブル
１０４    出力画像データ
１０５    出力データイネーブル
１０６    モード設定信号
１０７    演算ＯＮ／ＯＦＦ信号
１０８    データ入力部
１０９    レジスタ部
１０９ａ    レジスタＡ
１０９ｂ    レジスタＢ
１０９ｃ    レジスタＣ
１０９ｄ    レジスタＤ
１０９ｅ    レジスタＥ
１０９ｆ    レジスタＦ
１０９ｇ    レジスタＧ
１０９ｈ    レジスタＨ
１０９ｉ    レジスタＩ
１０９ｊ    レジスタＪ
１０９ｋ    レジスタＫ
１０９ｌ    レジスタＬ
１０９ｍ    レジスタＭ
１０９ｎ    レジスタＮ
１０９ｏ    レジスタＯ
１０９ｐ    レジスタＰ
１０９ｑ    レジスタＱ
１０９ｒ    レジスタＲ
１０９ｓ    レジスタＳ
１０９ｔ    レジスタＴ
１０９ｕ    レジスタＵ
１１０    データ選択部
１１１    中間画素値演算部
１１２    データ出力部
１１３    中間画素値生成データ
１１４    中間画素データイネーブル信号
１１５    画像データ用セレクタ
１１６    データイネーブル信号用セレクタ
１１７    外部メモリ
１１８    内部メモリ
９０１    データイネーブル信号
９０２    レジスタ１    １０９１の出力
９０３    データ選択部１１０の出力
１００１    セレクタ１００５の出力
１００２    カウンタ部
１００３    カウンタ部１００２の出力
１００４    ＡＮＤ  回路１００７の出力
１００５    セレクタ
１００６    セレクタ
１００７    ＡＮＤ  回路
１００８    中間画素値演算結果
１００９    中間画素値演算結果
１０１０    レジスタ
１０１１    レジスタ１０１０の出力
１０１２    セレクタ
１０９１    レジスタ１
１０９２    レジスタ２
１０９３    レジスタ３
１０９４    レジスタ４
１０９５    レジスタ５
１０９６    レジスタ６
１０９７    レジスタ７
１０９８    レジスタ８
１０９９    レジスタ９
１０９１０    レジスタ１０
【図１】
0003633807.tif 000011
【図２】
0003633807.tif 000012
【図３】
0003633807.tif 000013
【図４】
0003633807.tif 000014
【図５】
0003633807.tif 000015
【図６】
0003633807.tif 000016
【図７】
0003633807.tif 000017
【図８】
0003633807.tif 000018
【図９】
0003633807.tif 000019
【図１０】
0003633807.tif 000020
【図１１】
0003633807.tif 000021
【図１２】
0003633807.tif 000022
【図１３】
0003633807.tif 000023