JP3969017B2 - Image data transfer apparatus and image display processing system - Google Patents

Image data transfer apparatus and image display processing system Download PDF

Info

Publication number
JP3969017B2
JP3969017B2 JP2001170165A JP2001170165A JP3969017B2 JP 3969017 B2 JP3969017 B2 JP 3969017B2 JP 2001170165 A JP2001170165 A JP 2001170165A JP 2001170165 A JP2001170165 A JP 2001170165A JP 3969017 B2 JP3969017 B2 JP 3969017B2
Authority
JP
Japan
Prior art keywords
transfer
image data
data
address
color
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
JP2001170165A
Other languages
Japanese (ja)
Other versions
JP2002366131A (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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2001170165A priority Critical patent/JP3969017B2/en
Publication of JP2002366131A publication Critical patent/JP2002366131A/en
Application granted granted Critical
Publication of JP3969017B2 publication Critical patent/JP3969017B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Input (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【0001】
【発明の属する技術分野】
この発明はCRT(Cathode Ray Tube)等のラスタースキャン型表示装置において、平面上に表現された画像を構成するデータの画像表示処理システムに関し、特に特定領域の画像データを転送する画像データ転送装置及び画像表示処理システムに関する。
【0002】
【従来の技術】
従来より、CRT等のラスタースキャン型表示装置を使用した2次元画像データ処理装置としては、例えば特開昭60−214392号公報に開示されているものが知られている。この画像表示処理システムは、図41に示すように、中央演算処理装置(CPU)202の負担を軽減するため、画像表示処理のためのディスプレイコントローラ201が備えられる。ディスプレイコントローラ201内部の画像データ処理回路210は、CRT表示装置205の画面の走査速度に対応してビデオRAM(以下、VRAMと呼ぶ。)204内に記憶されている静止画像データ及び動画像データ等をインターフェイス211を介して読み出すと共に、CRT表示装置205へ画像の走査に必要な同期信号SYNCを出力する。
【0003】
この場合の静止画及び動画像データは、表示画面上のドットの色を指定する2,4又は8ビットのカラーコードからなり、画像データ処理回路210は、読み出したカラーコードをカラーパレット212に出力する。カラーパレット212は、読み出したカラーコードをRGB(赤,緑,青)信号に変換してCRT表示装置に供給する。
【0004】
また、画像データ処理回路210は、CPU202からインターフェイス213を介して供給される画像データを、画面の非表示期間(垂直帰線期間等)にVRAM204に書き込む。更に、VRAM204をアクセスしているとき(書き込み及び読み出し時)は、信号S1をコマンド処理回路215に供給してアクセス中であることを知らせる。コマンド処理回路215は、CPU2からインターフェイス213を介して供給される各種のコマンドに対応する処理を行う。
【0005】
上記の構成の画像表示処理システムにおいては、静止画像を含む矩形領域の移動を短時間でCPUを介さずに行うことや、上述したカラーコードの転送に際して、転送すべきドットのカラーコードの各ビットと転送先のドットのカラーコードの各ビットとの間の論理演算を行い、この結果を転送先のドットに対応するVRAM204の記憶エリアへ書き込む論理演算処理及び転送元領域の各ドットのカラーコードのうち透明のカラーコードについてはカラーコードの転送を行わず、それ以外のカラーコードについてのみ転送を行う透明処理(トランスペアレント処理)等を行うことができる。また、このシステムでは、カラーコードをドット単位で転送するドット単位転送モードと、カラーコードをバイト単位で転送するバイト単位転送モードとを備えている。
【0006】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像表示処理システムでは、高速転送を実現しつつ所定の論理演算処理や透明処理を実行することができなかった。特に現在では画像処理技術の著しい向上やそれに伴う画像データ転送量の急激な増大等によって、上述したような装置ではもはや高速転送と細かな画像処理の要請とに応えることが困難になってきた。更に、定型的なパターンであっても、そのカラーコードが種々変化する場合には、カラーコード毎にソースデータを記憶しなければならず、記憶すべきデータ量が多くなるという問題もあった。
【0007】
この発明は、このような問題点に鑑みてなされたもので、更に効率的に画像処理及び転送データ制御等を行うことができると共にメモリ容量の削減を図ることができる画像データ転送装置及び画像表示処理システムを提供することを目的とする。
【0008】
【課題を解決するための手段】
この発明に係る画像データ転送装置は、指定された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置において、前記転送元領域の画像データは、1ピクセルが1ビットで構成されたモノクロームの画像データ、前記転送先領域の画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、前記画像データ記憶装置の転送元領域及び転送先領域から1ピクセルの画像データよりも大きいブロック単位で画像データを読み出すアドレスカウンタと、前記画像データ記憶装置から読み出されたブロック単位の画像データを記憶すると共に、転送元領域の1ピクセルをそのビット値に応じて予め設定された2色のデータのうちの1色を表す1又は複数のバイトで構成された画像データに拡張するデータ拡張機能付きのデータ格納手段と、前記拡張された転送元領域の画像データと前記転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行する演算手段とを備え、前記データ格納手段は、転送元領域の各ピクセルの1ビットのデータを転送先領域の各ピクセルのバイト数に応じてコピーして、コピー後の各ビットにカラータグを設定して、予め設定された2色のデータのうちの1色を表す1又は複数のバイトのカラーピクセルデータのうち前記カラータグで指定されたバイトを割り当てることにより画像データを拡張するモノクローム拡張手段を備えてなることを特徴とする。
【0009】
また、この発明に係る画像表示処理システムは、画像データを記憶する画像データ記憶装置と、この画像データ記憶装置内に記憶された画像データの転送元領域及び転送先領域に関するパラメータを出力する中央処理装置と、この中央処理装置から出力された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置と、前記画像データ記憶装置に記憶された画像データを表示する画像表示装置とを備えた画像表示処理システムにおいて、前記転送元領域の画像データは、1ピクセルが1ビットで構成されたモノクロームの画像データ、前記転送先領域の画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、前記中央処理装置は、前記1ピクセルを構成するバイト数を前記画像データ転送装置に出力し、前記画像データ転送装置は、前記1ピクセルの画像データよりも大きいブロック単位で画像データを転送し、且つ転送元領域の1ピクセルをそのビット値に応じて予め設定された2色のデータのうちの1色を表す1又は複数のバイトで構成された画像データに拡張し、この拡張された転送元領域の画像データと転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行したのち、前記画像データ記憶装置に格納すると共に、前記画像データ転送装置は、転送元領域の各ピクセルの1ビットのデータを転送先領域の各ピクセルのバイト数に応じてコピーして、コピー後の各ビットにカラータグを設定して、予め設定された2色のデータのうちの1色を表す1又は複数のバイトのカラーピクセルデータのうち前記カラータグで指定されたバイトを割り当てることにより画像データを拡張するものであることを特徴とする。
【0010】
この発明によれば、指定された転送元及び転送先領域(以下、この段落のみ「転送領域」とする。)に関するパラメータに基づき、画像データ記憶装置に記憶された転送領域の画像データを演算処理し転送する際に、画像データを1ピクセルが1又は複数のバイトで構成された画像データであるとして、この1ピクセルの画像データよりも大きい複数バイトからなるブロック単位で画像データを転送し、転送領域でブロック内における位置合わせを行い演算処理を実行することで、画像データの高速転送をすることができる。
【0011】
また、この発明では、転送元領域の画像データは、1ピクセルが1ビットで構成されたモノクロームの画像データであり、転送処理の際に、転送元領域の1ピクセルをそのビット値に応じて予め設定された2色のデータのうちの1色を表す1又は複数のバイトで構成された画像データに拡張するようにしているので、画像データ記憶手段に記憶させる転送元領域の画像データのデータ量を削減することができる。特に、同一パターンで異なる複数種類のカラーのパターンを表示するような場合、パターン自体は1種類だけを記憶し、その着色データを種々変えるようにすれば良く、記憶すべきデータ量を格段に削減することができる。
【0012】
なお、この発明において、各走査ライン毎に転送開始及び転送終了ブロックアドレスを算出し、転送開始ブロックから転送終了ブロックまで連続的に画像データを転送するようにすると、画像データを高速に転送することができる。更に、この発明において、各ブロック内の転送画像開始及び終了バイトアドレスに基づき転送領域以外をマスクするマスクパターンを生成し、転送領域でブロック内における位置合わせを行うようにすると、ピクセルが何バイトで構成されていても任意の位置に記憶された転送元及び転送先のデータの位置を合わせて演算処理を行うことができる。また、画像データ1ピクセル分のバイト毎にカラータグが設定されブロック内の転送画像開始バイトアドレスに基づき各バイトのカラータグが設定されることにより、画像表示処理効率が向上する。従って、画像表示処理システムにこの画像データ転送装置を組み込むことで、画像表示処理の高速化及び高効率化を図ることが可能となる。
【0013】
なお、この発明のより具体的な態様においては、前記画像データの拡張は、前記転送元領域の各ピクセルの1ビットのデータを各ピクセルのバイト数に応じてコピーして、コピー後の各ビットにカラータグを設定して、予め設定された2色のデータのうちの1色を表す1又は複数のバイトのカラーピクセルデータのうち前記カラータグで指定されたバイトを割り当てることによりおこなうようにすれば良い。
【0014】
【発明の実施の形態】
以下、図面を参照して、この発明に係る画像表示処理システムの実施例を説明する。
図1は、この発明の一実施例に係る画像表示処理システムの基本構成を説明するためのブロック図である。
この画像表示処理システムは、表示すべき画像データを記憶するDRAM(Dynamic Random Access Memory)等からなるローカルメモリ4と、このローカルメモリ4に記憶された画像データの任意の矩形領域を転送するための種々のパラメータを出力するCPU1と、このCPU1から与えられるパラメータに基づいて前記ローカルメモリ4上の矩形領域の画像データを転送処理する画像データ転送装置2と、この画像データ転送装置2とローカルメモリ4との間のインターフェイスであって画像データのアクセスを制御するメモリコントローラ3と、ローカルメモリ4のスクリーンエリアの画像データを表示するCRTディスプレイ、液晶ディスプレイ等の表示装置5とを備えて構成されている。
【0015】
このうち画像データ転送装置2の機能の概略を図2に示す。画像データ転送装置2は、ローカルメモリ4上の非表示領域に記憶された転送元データ(以下、ソースデータと呼ぶ。)Sの矩形領域及び表示領域に記憶された転送先データ(以下、デスティネーションデータと呼ぶ。)Dの矩形領域をそれぞれ定義するパラメータ、並びにソースデータSに付加される非表示領域に記憶された任意のパターンデータPの矩形領域を定義するパラメータをCPU1から受け取り、ローカルメモリ4からソース、デスティネーション及びパターンの各データを取り込み、これらのデータ間で所定のラスタ演算処理を施してデスティネーションエリアに書き込む処理を実行する。
【0016】
ここで、ソースデータSは、各ピクセルが1又は複数のバイトからなるカラーデータである場合の他に、各ピクセルが2色で定義されるモノクロームデータである場合も許容する。ソースデータがモノクロームデータの場合、1ピクセルは1ビットで構成される。図3は、8ピクセル×8ラインで“×”印をモノクロームのソースパターンとして記憶した例を示している。図3の場合、8ピクセル×8ラインのパターンには、8バイトの容量しか必要としないので、メモリへの記憶容量を大幅に削減できる。ここで、例えば各ピクセルの値が0の場合はバックグラウンドカラー、1の場合はフォアグラウンドカラーであると定義しておく。バックグラウンドカラー及びフォアグラウンドカラーは、この例では、1ピクセルにつき1〜4バイトで構成され、予め後述するレジスタに転送されストアされている。この1ピクセルを構成するバイト数を、ここではBPP(バイト・パー・ピクセル)と呼ぶ。ソースデータがそれ自体カラーデータである場合には、1ピクセルがBPPで定義される。画像データ転送装置2は、ソースデータがモノクロームデータで定義される場合、ソースデータの1ピクセルに相当する1ビットのデータを、0がバックグラウンドカラー、1がフォアグラウンドカラーとしてBPPで定義されているバイト数に拡張し、デスティネーションエリアDに転送する。
【0017】
以下、この画像データ転送装置2について詳細に説明する。
図4は、この画像データ転送装置2の詳細な構成を示すブロック図である。
CPU1から送られてくるデスティネーションエリア、ソースエリア及びパターンエリアを特定するパラメータは、インターフェイス11を介してデスティネーションアドレス計算回路12、ソースアドレス計算回路13及びパターンアドレス計算回路14にそれぞれ供給される。これらのアドレス計算回路12,13,14では、1スキャンライン毎にデスティネーションエリア、ソースエリア及びパターンエリアのローカルメモリ4上での転送開始を示すスタートアドレス(FBSPn)と転送終了を示すエンドアドレス(FBEPn)とを計算する。その値がそれぞれデスティネーションアドレスカウンタ15、ソースアドレスカウンタ16及びパターンアドレスカウンタ17に渡される。
【0018】
なお、ソースアドレス計算回路13は、図5に示すように、カラーアドレス計算回路131と、モノクロームアドレス計算回路132と、これらの出力を選択するマルチプレクサ133とを備える。マルチプレクサ133は、インターフェイス11に設けられたMONOレジスタ(図示せず)を参照することにより、ソースデータがカラーデータかモノクロームデータかを判断し、出力を切り換える。これにより、ソースデータがカラーデータである場合には、カラーソースアドレス計算回路131の出力をソースアドレスカウンタ16に出力し、ソースデータがモノクロームデータである場合には、モノクロームソースアドレス計算回路132の出力をソースアドレスカウンタ16に出力する。
【0019】
一方、この画像データ転送装置2には、ローカルメモリ4から転送された画像データを一時格納するための3つのSRAM(Static Random Access Memory)、即ち、デスティネーションSRAM18、ソースSRAM19及びパターンSRAM20が備えられている。各アドレスカウンタ15,16,17は、ローカルメモリ4をセクタ、ブロック及びバイトの単位にそれぞれ階層化し、各SRAM18,19,20に転送するセクタのアドレスを出力する。これにより、一セクタ分のデータがブロック単位でSRAM18,19,20に転送される。
【0020】
また、転送開始ピクセルと転送終了ピクセルとが丁度ブロックの先頭及び末尾であるとは限らないので、転送開始及び転送終了の際のブロックには、転送すべきピクセルデータ以外のデータが含まれることがある。各アドレスカウンタ15,16,17は、これらのデータをマスクするためのマスクデータを生成し、マスク演算回路23に供給する。マスク演算回路23は、入力されたマスクデータに基づいて、各SRAM18,19,20からデータを読み出して、ラスタ演算回路21にデータを送るための計算を実行する。ラスタ演算回路21は、各SRAM18,19,20からセクタデータを1ブロック単位で読み出し、マスク演算回路23からの演算結果も読み出してラスタ演算を行い、その演算結果を出力FIFO22に格納する。FIFO22に格納されたデータは、所定のタイミングでローカルメモリ4のデスティネーションエリアに転送される。コントローラ24は、CPU1からの制御命令に従い、各回路をコントロールする。なお、ソースSRAM19の内部には、後述するモノクローム拡張装置96が設けられており、ソースデータがモノクロームデータで定義される場合、ソースデータの1ピクセルに相当する1ビットのデータを、0がバックグラウンドカラー、1がフォアグラウンドカラーとしてBPPで定義されているバイト数に拡張し、デスティネーションエリアに転送する。
【0021】
図6は、この画像データ転送装置2の処理の流れを示すフローチャートである。
まず、各アドレス計算回路12,13,14の内部に設定される転送スキャンラインYの初期値としてY=YSがロードされる(S1)。次に、そのスキャンラインのスタートアドレス(FBSPn)とエンドアドレス(FBEPn)とが、それぞれアドレス計算回路12,13,14で計算され(S2)、その値がそれぞれアドレスカウンタ15,16,17に渡される。ソースデータがモノクロームデータの場合、アドレス計算回路13でスタートアドレス(MSPj)とエンドアドレス(MEPj)とが計算され(S2)、その値がアドレスカウンタ16に渡される。各アドレスカウンタ15,16,17で生成されるアドレスに従ってローカルメモリ4から各SRAM18,19,20に1セクタ分のデスティネーションデータD、ソースデータS及びパターンデータPがそれぞれ転送される(S3,S4)。SRAM18,19,20への転送後は、1ブロック単位で、各SRAM18,19,20からデータを読み出す。また、ソースデータがモノクロームデータの場合には、BPPに応じてデータが拡張されてソースSRAM19から読み出される。読み出されたデータは、マスク演算回路23による演算結果に従い、ラスタ演算回路21にてラスタ演算され、出力FIFO22にストアされる(S5)。
【0022】
もし、ソースSRAM19にストアされているセクタデータの処理が終了した場合には(S7)、次のセクタデータを転送する(S4)。また、デスティネーションSRAM18にストアされているセクタデータの処理が終了した場合には、ラスタ演算終了後、出力FIFO22にストアされたデータをローカルメモリ4に書き込み(S8)、新たなセクタデータをデスティネーションSRAM18に転送する(S2)。また、パターンSRAM20にストアされているセクタデータの処理が終了した場合には(S7)、次のセクタデータを転送する(S4)。
【0023】
以上の処理を繰り返し、1ライン分のデータの処理が終了したら(S9)、Yを更新し(S10)、次のラインの処理に移る。そして、最後のラインの処理を終了したら、矩形領域の処理は終了する(S11)。
【0024】
次に、この画像データ転送装置2のより具体的な動作について説明する。
図7(a)は、転送矩形領域を含む画像データの矩形(表示)領域を更に詳細に示す図である。この矩形領域は、デスティネーションデータDについてはスクリーン領域、ソースデータS及びパターンデータPについてはオフスクリーン領域に対応する。また、ソースデータについては、カラーデータの転送イメージを示している。ここに表示された各パラメータは、前述したようにCPU1から画像データ転送装置2に与えられるものであって、次の通りである。
【0025】
BASE:転送矩形領域を含む矩形領域の基準位置(通常は領域の最も左上の画素の位置)に対応するローカルメモリ4上の座標値をバイトで表したデータ。スクリーンエリアの基点を示す場合もあれば、オフスクリーンエリアの基点を示す場合もある。
PTCH:転送矩形領域を含む矩形領域の1ラインの幅をバイト数で表したデータ。
XS:転送矩形領域の転送開始X座標値をピクセルで表したデータ。
YS:転送矩形領域の転送開始Y座標値をスキャンラインで表したデータ。
XEXT:転送矩形領域のX方向の幅をピクセル数で表したデータ。
YEXT:転送矩形領域のY方向の幅をスキャンライン数で表したデータ。
【0026】
XDIR:転送がXの正・負のいずれの方向から行われるかを示したデータで、0のとき正(右向き)で、1のとき負(左向き)。即ち、図8に示すように、XDIRが0の場合、XSは転送矩形領域の左端となり、XはXSから正の方向に更新される。また、XDIRが1の場合、XSは転送矩形領域の右端となり、XはXSから負の方向に更新される。
【0027】
YDIR:転送がYの正・負のいずれの方向から行われるかを示したデータで、0のとき正(下向き)で、1のとき負(上向き)。即ち、図8に示すように、YDIRが0の場合、YSは転送矩形領域の上端となり、YはYSから正の方向に更新される。また、YDIRが1の場合、YSは転送矩形領域の下端となり、YはYSから負の方向に更新される。
【0028】
ここで、スキャンラインY=nで与えられたときの第nライン内のスタートアドレス(FBSPn)及びエンドアドレス(FBEPn)は、XDIR=0のとき、次式で与えられる。
【0029】
【数1】
FBSPn=BASE+n×PTCH+XS×BPP
FBEPn=BASE+n×PTCH+(XS+XEXT)×BPP−1
【0030】
また、XDIR=1のときは、次式で与えられる。
【0031】
【数2】
FBSPn=BASE+n×PTCH+(XS+1)×BPP−1
FBEPn=BASE+n×PTCH+(XS−XEXT+1)×BPP
【0032】
図7(b)は、BASE=0としたときのY=nにおけるスタートアドレス(FBSPn)及びエンドアドレス(FBEPn)をローカルメモリ4上の連続したデータとして示した図である。
【0033】
一方、ソースデータがモノクロームデータの場合、CPU1から画像データ転送装置2に与えられるパラメータは、図9に示すように、次の通りとなる。
【0034】
SBASE:ソースデータSを格納する基準となる座標値のローカルメモリ4上の座標値をバイトで表したデータ。
MOFST:モノクロームのオフセットであり、SBASEからのモノクロームデータの格納開始位置をバイト数で表したもの。複数のモノクロームデータを格納した場合、MOFSTの値を変えることにより、その格納開始位置を指定できる。
MPTCH:モノクロームピクセルピッチであり、モノクロームパターンの1ライン中のピクセル数を定義する。1ライン中のピクセル数は、8の倍数を基準として定義される。即ち、
【0035】
MPTCH=1のとき8ピクセル/ライン、
MPTCH=2のとき16ピクセル/ライン、
MPTCH=3のとき24ピクセル/ライン、
MPTCH=4のとき32ピクセル/ライン、
【0036】
のように定義される。図3のパターンは、MPTCH=1の例である。
転送先のデスティネーションの領域のサイズと、ソースの領域のサイズとは一致していなくてはならない。転送はバイト単位のアドレスで指定されるため、デスティネーションのサイズが8の倍数でない場合は、それ以下である最大の整数がMPTCHとして採用される。即ち、8*(MPTCH−1)<XEXT(デスティネーションのX転送領域幅)≦8*MPTCHとなるMPTCHが選ばれる。8の倍数でない場合、各ラインのモノクロームデータは、図9に示すように、有効なモノクロームデータがバイトの先頭に合うように格納される。図示の例は、1ライン中のピクセル数が14の例であり、この場合、MPTCHとして2が選択され、2バイトのデータの1ビット目から14ビット目までにモノクロームデータが割り当てられている例である。
【0037】
ソースデータがモノクロームデータである場合、デスティネーションへの転送は、常にX,Yともに正の方向に行われるものとする。デスティネーションのスキャンラインYに、スタートのスキャンラインであるYSがセットされるのと同期して、モノクロームパターン内のスキャンラインもインクリメントされる。モノクロームソースアドレス計算回路132では、Y=jで与えられたときの、第jライン内のソースのスタートアドレス(MSPj)及びエンドアドレス(MEPj)を、以下の式で計算する。
【0038】
【数3】
MSPj=SBASE+MOFST+j*MPTCH
MEPj=SBASE+MOFST+(j+1)*MPTCH−1
【0039】
ソースで指定されたバイトは、スタートアドレスMSPjから順にビット単位に展開され、デスティネーションのライン単位に処理される。ソーススタートアドレスMSPj及びソースエンドアドレスMEPjの計算は、初期値にMPTCHを順次加算することで可能となる。
【0040】
このように、デスティネーションアドレス計算回路12、ソースアドレス計算回路13及びパターンアドレス計算回路14でそれぞれ計算されたスタートアドレスとエンドアドレスとは、デスティネーションアドレスカウンタ15、ソースアドレスカウンタ16及びパターンアドレスカウンタ17に1スキャンライン毎にセットされる。
【0041】
各アドレスカウンタ15,16,17は、ローカルメモリ4を階層化し、画像データ転送装置2とローカルメモリ4とのインターフェイスを、メモリコントローラ3を経由して一連の連続したデータ単位毎に行うことで、効率的にデータを転送する。このため、アドレスを次のように分解する。
【0042】
即ち、ソースデータがカラーデータの場合、各アドレスカウンタ15,16,17は、受け取ったスタートアドレス(FBSPn)とエンドアドレス(FBEPn)とを、図10(a)に示すように、上位側からセクタアドレスUビット、ブロックアドレスVビット及びバイトアドレスWビットに分解することで、ローカルメモリ4を階層化する。全体のビット数は、同図(b)に示すように、U+V+Wビットとなり、ローカルメモリ4の容量は、最大2U+V+Wバイトとなる。換言すると、ローカルメモリ4は、2U個のセクタで構成され、1セクタは2V個のブロックで構成される。1ブロックは、2Wバイトから構成される。図10(a)の例は、V=3,W=3の例である。
【0043】
1ブロックのバイト数2Wバイトは、ローカルメモリ4のデータバス幅と等しい。即ち、ローカルメモリ4への1アドレスのアクセスで2Wバイト(1ブロック)分のデータを転送することができる。ローカルメモリ4へのアクセスは、2Wバイト(1ブロック)を単位として連続的に行われる。2Wバイト(1ブロック)分のデータ転送が最小で1回、最大で2V回連続し、最大の場合には、1セクタ分のデータが連続して転送されることになる。各SRAMのデータバス幅は、ローカルメモリ4のバス幅と等しい2Wバイトであり、アドレスはVビットとなる。これは1セクタ分のデータのサイズと等しい。
【0044】
図10(b)に示すように、ローカルメモリ4のアドレスの上位をローアドレス、下位をカラムアドレスとし、ローアドレスを固定、カラムアドレスのみを連続的に変化させるページモード伝送によって更に高速のデータ転送が実現される。
【0045】
ソースデータがモノクロームデータで定義される場合、ソースデータの1ピクセルに相当する1ビットのデータを、0がバックグラウンドカラー、1がフォアグラウンドカラーとしてBPPで定義されているバイト数に拡張し、デスティネーションエリアに転送する。図11は、このデータ拡張の様子を示している。ここに示された例は、1セクタが8ブロックから構成され、1ブロックが8バイトで構成される場合の拡張の例である。図11に示すように、1バイト(8ビット)のモノクロームのソースデータSは、BPPが1のときは8バイトに、BPPが2のときは16バイトに、BPPが3のときは24バイトに、BPPが4のときは32バイトのデータに拡張され、ディスティネーションエリアに転送される。
【0046】
図12は、ソースアドレスカウンタ16の基本構成を示す図である。なお、デスティネーションアドレスカウンタ15及びパターンアドレスカウンタ17も基本的にはソースアドレスカウンタ16と同様の構成であるが、信号NXMQD、MONOによる選択はない。また、パターンアドレスカウンタ17には、カラータグ計算用カウンタ40はない。
【0047】
スタートアドレス(FBSP)は、スタートアドレスレジスタ30にロードされる。同時にFBSPは、アドレス更新回路31を経由して、上位Uビット(FBSP[U+V+W−1:V+W])がセクタアドレスレジスタ32に、中央のVビット(FBSP[V+W−1:W])がブロックアドレスレジスタ33に、下位Wビット(FBSP[W−1:0])がバイトアドレスレジスタ34にそれぞれロードされる。エンドアドレス(FBEP)は、エンドアドレスレジスタ35にロードされる。
【0048】
最初に、ソースSRAM19(デスティネーションSRAM18,パターンSRAM20)にローカルメモリ4内のデータを転送するために、レジスタ32に格納されたローカルメモリ4のセクタのアドレスを示すセクタアドレス(SEC)がメモリコントローラ3に出力されると共に、そのセクタにおいて転送すべきブロック数(BLKCNT)及びセクタ内の転送すべき最初のブロックのアドレス(セクタ内のブロックがスタートするアドレス)を示すブロックスタートアドレス(BLKSTR)がセクタ内ブロック演算回路45等で計算され、メモリコントローラ3に送られる。また、セクタ内ブロック演算回路45は、上述したブロック数(BLKCNT)及びブロックスタートアドレス(BLKSTR)の他、セクタ内のブロックが終了するアドレスを示すブロックエンドアドレス(BLKEND)も計算する。
【0049】
このセクタ内ブロック演算回路45での計算には、セクタスタートコンパレータ37の出力であるセクタスタートフラグ(SECSTRF)、セクタエンドコンパレータ36の出力であるセクタエンドフラグ(SECENDF)、スタートアドレスレジスタ30に格納されたブロックスタートアドレス(FBSP[V+W−1:W])、エンドアドレスレジスタ35に格納されたブロックエンドアドレス(FBEP[V+W−1:W])及び転送のXの方向を表すXDIR等が入力され用いられる。
【0050】
セクタスタートコンパレータ37はスタートアドレスレジスタ30からのスタートアドレスのセクタアドレス(FBSP[U+V+W−1:V+W])とセクタアドレスレジスタ32からのセクタアドレス(SEC)とを比較し、等しいときはその出力データ(SECSTRF)を1とし、等しくないときは0とする。また、セクタエンドコンパレータ36はエンドアドレスレジスタ35からのエンドアドレスのセクタアドレス(FBEP[U+V+W−1:V+W])とセクタアドレスレジスタ32からのセクタアドレス(SEC)とを比較し、等しいときはその出力データ(SECENDF)を1とし、等しくないときは0とする。
【0051】
図13は、セクタアドレスレジスタ32に格納されているセクタデータを説明するための図である。
【0052】
例えば、XDIR=0と定義され、SECSTRF,SECENDFが0のとき、セクタアドレスレジスタ32に格納されているセクタアドレスは、図13(a)に示すように、矩形領域を構成するラインの最初のセクタではなく、最後のセクタでもないことがわかる。この場合、セクタ内にあるブロックの数(BLKCNT)は2V個で、ブロックのスタートアドレス(BLKSTR)は0、エンドアドレス(BLKEND)は2V-1となる。
【0053】
SECSTRFが1でSECENDFが0のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最初のセクタであることが同図(b)から分かる。この場合、セクタ内にあるブロックの数は、2V−FBSP[V+W−1:W]個となり、ブロックのスタートアドレスはFBSP[V+W−1:W]、エンドアドレスは2V-1となる。
【0054】
また、SECSTRFが0でSECENDFが1のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最後のセクタであることが同図(c)から分かる。この場合、セクタ内にあるブロックの数はFBEP[V+W−1:W]+1個となり、ブロックのスタートアドレスは0でエンドアドレスはFBEP[V+W−1:W]となる。
【0055】
更に、SECSTRF,SECENDFともに1のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最初のセクタであり、最後のセクタでもあることが同図(d)から分かる。この場合、ブロックの数は、FBEP[V+W−1:W]−FBSP[V+W−1:W]+1個となり、ブロックのスタートアドレスはFBSP[V+W−1:W]、エンドアドレスはFBEP[V+W−1:W]となる。上記の結果と、XDIR=1のときのそれぞれの場合とを表にまとめると、図14のようになる。
【0056】
ブロックスタートコンパレータ39は、スタートアドレスレジスタ30のブロックアドレス(FBSP[V+W−1:W])部分とブロックアドレスレジスタ33に格納されたブロックアドレス(BLK)とを比較し、等しいときはその出力データ(BLKSTRF)を1、等しくないときは0として出力する。また、ブロックエンドコンパレータ38は、エンドアドレスレジスタ35のブロックアドレス(FBEP[V+W−1:W])部分とブロックアドレスレジスタ33に格納されたブロックアドレス(BLK)とを比較し、等しいときはその出力データ(BLKENDF)を1、等しくないときは0として出力する。
【0057】
上述の各コンパレータ36〜39の出力SECENDF,SECSTRF,BLKENDF,BLKSTRFに基づき、スタートマスク演算回路46でスタートマスク(STRMSK)、エンドマスク演算回路47でエンドマスク(ENDMSK)がそれぞれ計算される。図15に示すように、スタート及びエンドマスクは共に0又は1のデータからなる連続した2Wビットのパターンであり、各マスクの1ビットが各SRAM18,19,20から読み出された1バイト分のデータに対応し、2Wビットのパターンは1ブロック分のデータに対応するものである。
【0058】
マスク論理積演算回路48は、スタート及びエンドマスク演算回路46,47からの出力データであるスタート及びエンドマスクを入力し、これらの論理積データ(AMSK)を計算することで、スタートアドレス(FBSP)とエンドアドレス(FBEP)との間に存在するバイトには1を、それ以外には0をフラグとして与える役割を担っている。
【0059】
例えば、図16(a)に示すように、スタートマスク演算回路46でのスタートマスクの計算は、XDIR=0のときは、Wビット内のすべてが1である2進数パターン(2W−1)をバイトアドレスレジスタ34内のバイトアドレス(BYT)で示される数だけ右にシフトして左から0を詰めることで行われる。同様に、同図(b)に示すように、XDIR=1のときのスタートマスクの計算は、Wビット内のすべて1である2進数パターン(2W−1)を2W−1−BYT(バイトアドレス)で示される数だけ左にシフトし、右から0を詰めることで行われる。この場合、スタートアドレス(FBSP)がブロック内にあるときはSECSTRF及びBLKSTRFが共に1となる。また、ブロック内スタートアドレス演算回路49は、このときのマスクがスタートするブロック内のアドレス(BYTSTR)を計算する。
【0060】
一方、同図(c)に示すように、エンドマスク演算回路47でのエンドマスクの計算は、XDIR=0のとき、エンドアドレス(FBEP)のバイトアドレスがFBEP[W−1:0]とすると、Wビット内のすべて1である2進数パターン(2W−1)を2W−1−FBEP[W−1:0]だけ左にシフトし、右から0を詰めることで行われる。同様に、同図(d)に示すように、XDIR=1のときのエンドマスクの計算は、Wビット内のすべて1である2進数パターン(2W−1)をFBEP[W−1:0]だけ右にシフトし、左から0を詰めることで行われる。この場合もスタートアドレスがブロック内にあるときはSECSTRF及びBLKSTRFが共に1となる。このようにして計算された各マスクは、ブロック毎にマスク演算回路23に送られる。
【0061】
スタートフラグ回路50は、セクタスタートコンパレータ37の出力SECSTRF及びブロックスタートコンパレータ39の出力BLKSTRFを入力してスタートフラグXSTRFを出力する。エンドフラグ回路51は、セクタエンドコンパレータ36の出力SECENDF及びブロックエンドコンパレータ38の出力BLKENDFを入力してエンドフラグXENDFを出力する。
【0062】
カラータグ計算用カウンタ40は、トランスペアレント処理(透明処理)の計算のために後段で用いられるものであり、スタートアドレス(FBSP)及びエンドアドレス(FBEP)が入力されるときに初期化するように設定されている。このカラータグ計算用カウンタ40は、ブロックアドレスレジスタ33からの出力BLKが更新されるのに同期して、その出力タグブロックアドレス(TGBLK)を更新する。
【0063】
その更新パターンは、BPPとXDIRとによって決まるもので、初期値と更新パターンとは、図17に示すようになる。例えば、XDIRが0の場合、1ピクセル当たり1バイト(BPPが1)のときは初期値=0で常に0が出力され、1ピクセル当たり2バイト(BPPが2)のときは、初期値=0で、TGBLKは0,1,0,1…を繰り返すように更新され、1ピクセル当たり3バイト(BPPが3)のときは、初期値=0で、TGBLKは0,1,2,0,1,2…を繰り返すように更新され、1ピクセル当たり4バイト(BPPが4)のときは、初期値=0で、TGBLKは0,1,2,3,0,1,2,3…を繰り返すように更新される。また、XDIRが1の場合、1ピクセル当たり1バイト(BPPが1)のときは初期値=0で常に0が出力され、1ピクセル当たり2バイト(BPPが2)のときは、初期値=1で、TGBLKは1,0,1,0…を繰り返すように更新され、1ピクセル当たり3バイト(BPPが3)のときは、初期値=2で、TGBLKは2,1,0,2,1,0…を繰り返すように更新され、1ピクセル当たり4バイト(BPPが4)のときは、初期値=3で、TGBLKは3,2,1,0,3,2,1,0…を繰り返すように更新される。なお、デスティネーションアドレスカウンタ15及びソースアドレスカウンタ16内のカラータグ計算用カウンタ40の出力TGBLKは、後述するように、それぞれデスティネーションSRAM18,ソースSRAM19へ送られ、各SRAM内にあるタグ選択回路93の出力を選択するのに利用される。
【0064】
アドレス更新回路31は、セクタアドレスレジスタ32からの出力セクタアドレス(SEC)とブロックアドレスレジスタ33からの出力ブロックアドレス(BLK)とを一連の値として捉え、コントローラ24からの指示によりエンドアドレスレジスタ35内の値と一致するまでBLK単位でアドレスをインクリメントし、上記セクタアドレス(SEC)とブロックアドレス(BLK)を更新する。この場合、エンドアドレスレジスタ35内の値と一致するかどうかは、エンドフラグ回路51にてSECENDF及びBLKENDFが共に1であることにより検出される。
【0065】
以上は、ソースデータがカラーデータの場合であるが、ソースデータがモノクロームデータである場合のソースアドレスカウンタ16の特有の機能について説明する。
アドレス更新回路31は、ソースデータにカラーデータが選択されているときには、上述したように1ブロック(2Wバイト)単位でアドレスをインクリメントするが、ソースデータにモノクロームデータが選択された場合、タグブロックカウンタ40からの信号NXMQDにより、アドレスを1バイト単位でインクリメントする。信号NXMQDは、タグブロックカウンタ40が示すタグブロックが、ブロックの最後になったときに出力され、BPPによってその出力タイミングが異なる。その詳細を図18に示す。BPP=1のときには、信号NXMQDは常にON、BPP=2のときは、タグブロックが0でOFF、1でON、BPP=3のときは、タグブロックが0,1でOFF、2でON、BPP=4のときは、タグブロックが0,1,2でOFF、3でONとなる。
【0066】
スタートマスク演算回路46及びエンドマスク演算回路47は、モノクロームデータに対応するために、MONO信号がONになるとその機能を切り換え、スタートマスク(STRMSK)及びエンドマスク(ENDMSK)として常にオール1のデータを出力する。これにより、ソースデータのマスク(AMSK)の初期値は、常にオール1となる。同様に、バイトのスタートアドレス(BYTSTR)は、モノクロームデータの場合、常にBYTSTR=0として出力される。タグブロックカウンタ40は、信号NMEXを入力する。信号NXMEXはコントローラ24から出力され、ソースデータがモノクロームデータであり、且つソースのマスク値が0になると、次のマスク(オール1)をマスク演算回路23にロードし、タグブロックカウンタ40をインクリメントするために出力される。ソースデータがモノクロームデータの場合、タグブロックカウンタ40は、信号NXMEXによって更新される。タグブロックカウンタ40は、最後のブロックに更新されたとき、アドレス更新回路31をインクリメントするため、信号NXMQDを出力する。
【0067】
次に、この画像データ転送装置2内のマスク演算回路23について説明する。マスク演算回路23は、主に各アドレスカウンタ15,16,17から送られてきたデスティネーション,ソース,パターンの各マスクデータAMSK(以下、これをそれぞれDSTMSK,SRCMSK,PATMSKと呼ぶ。)及び各ブロック内スタートアドレスBYTSTR(以下、これをそれぞれDBYTSTR,SBYTSTR,PBYTSTRと呼ぶ。)等に基づき、画像表示装置5のデータ転送を制御するための計算を行うものである。なお、各スタートアドレスは、そのときのマスクがスタートするアドレスを表しているものである。
【0068】
図19に示すように、デスティネーション,ソース,パターンの各スタートアドレス(FBSP)は、ローカルメモリ4内の任意のアドレスを指している。マスク演算回路23は、これらのアドレスに基づいて、データ転送時にデスティネーション,ソース,パターンの各バイトが転送のスタートバイトからそれぞれ1対1で転送されるように対応させ、転送を制御している。
【0069】
図20は、このマスク演算回路23の内部構成を示すブロック図である。
マスク演算回路23は、ローカルメモリ4からSRAM18〜20にそれぞれ転送されたデスティネーション,ソース,パターンのいずれかのセクタデータがなくなるまで、各SRAM18,19,20からそのデータを読み出してラスタ演算回路21に出力するための計算を行う。
【0070】
はじめに、図21(a)に示すように、デスティネーションアドレスカウンタ15からのDSTMSKと、ソースアドレスカウンタ16からのSRCMSKと、パターンアドレスカウンタ17からのPATMSKとがマスク演算回路23に入力され、各マスクセレクタ53,54,55を通過し、それぞれのレジスタ56,57,58に格納される。一方、上記各アドレスカウンタ15,16,17からの各ブロック内スタートアドレスDBYTSTR,SBYTSTR,PBYTSTRは、各アドレスセレクタ60,61,62を通って後段の減算器63,64,65,66に入力される。
【0071】
減算器63は、DSTMSKとSRCMSKのマスクがスタートする1ブロック内のアドレス差(SRCSFT)を計算しレジスタ67に出力する。同様に減算器65は、DSATMSKとPATMSKのマスクがスタートする1ブロック内のアドレス差(PATSFT)を計算しレジスタ69に出力する。減算器63,65から出力されレジスタ67,69に格納されたアドレス差SRCSFT,PATSFTとXDIRとをシフタ71,72は入力し、シフタ71がソースマスクデータSRCMSKを、シフタ72がパターンマスクデータPATMSKをそれぞれそのマスクのスタートがDSTMSKに一致するまでシフトする。このときのシフトは、DSTMSKに対して正・負の両方向に可能なものである。そして、その結果は、調整済みのマスクデータ(SRCADJ,PATADJ)としてそれぞれシフタ71,72から論理演算回路73に出力される。論理演算回路73は、同図(a)に示すように、これらのマスクデータの他、DSTMSKを入力し論理積を計算することでDSTMSK内で処理すべきバイトを決定する。
【0072】
同時に、減算器64,66は、シフタ71,72がアドレス差SRCSFT,PATSFTに基づきシフトした方向と反対の方向へのシフトにあたるシフト数(SRCREV,PATREV)を計算してレジスタ68,70に出力する。シフタ74,75は、レジスタ68,70から格納されたシフト数SRCREV,PATREVを入力し、論理演算回路73からの出力マスクデータ(PRCMSK)をそれぞれ上記シフト数だけシフトしてマスク(SRCRMV,PATRMV)を算出しソースマスク論理演算回路77,パターンマスク論理演算回路79にそれぞれ出力している。このマスクSRCRMV,PATRMVは、ソースマスクSRCMSKとパターンマスクPATMSKのうち、デスティネーションマスクDSTMSKとの計算に寄与した部分を示している。
【0073】
図21(c)及び(d)に示すように、ソースマスク論理演算回路77及びパターンマスク論理演算回路79は、ソースマスクSRCMSK,パターンマスクPATMSKから、それぞれマスクSRCRMV及びPATRMVに対応する部分のマスクを取り除く演算をする。その結果、取り除かれ出力されたマスク(SRCUDT,PATUDT)が次に計算すべきSRCMSK,PATMSKとして更新されると共に、これらはそれぞれソースマスクセレクタ54及びパターンマスクセレクタ55を通り、レジスタ57,58に格納される。また、両論理演算回路77,79は、マスクが存在しないことが分かった時点でマスクがゼロとなったことを表す信号(SRCZR,PATZR)をそれぞれコントローラ24に対して出力する。この信号SRCZR及びPATZRを受けたコントローラ24は、新たな1ブロック分のマスクデータをソース及びパターンマスクセレクタ54,55を通してレジスタ57,58に格納するように制御を行う。
【0074】
また、このときコントローラ24は、ソース及びパターンアドレスカウンタ16,17にブロックを更新するように指示を出し、各アドレスカウンタ16,17から出力された新たな1ブロック分のマスクデータがレジスタ57,58に格納される。このマスクデータがレジスタ57,58に格納されるのと同時に、新たなスタートアドレスSBYTSTR,PBYTSTRが各アドレスカウンタ16,17からソース及びパターンアドレスセレクタ61,62に入力され、その後マスクスタートアドレス(SSTAD,PSTAD)として前述のように減算器63〜66に出力される。
【0075】
このように更新されたソース及びパターンマスク(SRCMSK,PATMSK)は、それぞれソースプライオリティエンコーダ(SPRIENC)81,パターンプライオリティエンコーダ(PPRIENC)80に入力され、マスクがスタートするアドレスSXUDT,PXUDTが計算される。また、更新されたマスクがゼロでない場合、ソース及びパターンアドレスセレクタ61,62は、先に計算されたアドレスSXUDT,PXUDTをマスクスタートアドレスSSTAD,PSTADとして、SSTADは減算器63,64へ、PSTADは減算器65,66へとそれぞれ出力する。
【0076】
一方、図21(b)に示すように、デスティネーションマスク論理演算回路76は、入力したデスティネーションマスクデータDSTMSKの論理演算回路73からのPRCMSKと一致する部分を取り除く処理をする。その出力である取り除かれたマスクDSTUDTは、次に計算すべきDSTMSKとして更新され、デスティネーションマスクセレクタ53を通ってレジスタ56に格納されるものである。この論理演算回路76もまた、マスクが存在しないとわかった場合、マスクがゼロとなったことを表す信号DSTZRをコントローラ24に出力する。この信号DSTZRを受けたコントローラ24は、デスティネーションアドレスカウンタ15にブロックを更新させ、新たな1ブロック分のマスクデータを出力させる。このマスクデータは、デスティネーションマスクセレクタ53に入力され、レジスタ56に格納される。
【0077】
この更新されたデスティネーションマスクDSTMSKは、デスティネーションプライオリティエンコーダ(DPRIENC)82に入力され、そこでマスクがスタートするアドレスDXUDTが計算される。更新されたマスクがゼロでない場合、デスティネーションアドレスセレクタ60は、先に計算されたアドレスDXUDTをマスクスタートアドレスDSTADとして、減算器63〜66へとそれぞれ出力する。
【0078】
上述のようなマスク演算処理過程において、例えばソースのマスクがゼロとなり、且つソースSRAM19にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、次のセクタデータをソースSRAM19に転送するように制御を行う。また、デスティネーションのマスクがゼロとなり、且つデスティネーションSRAM18にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、ラスタ演算回路21によるラスタ演算の終了を待って出力FIFO22に格納された更新後のデスティネーションデータをローカルメモリ4に書き込み、次のセクタデータをデスティネーションSRAM18に転送する制御を行う。更に、パターンのマスクがゼロとなり、且つパターンSRAM20にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、次のセクタデータをパターンSRAM20に転送するように制御を行う。
【0079】
また、このとき論理演算回路78は、ソースデータのバイトパターンの中で、PRCMSKに寄与のある部分を示すマスク(SRCPRC)を計算する。このマスクSRCPRCは、以下のような計算によって得ることができる。即ち、SRCPRCがゼロのバイトはPRCMSKに対して寄与しないが、SRCPRCが1のバイトはPRCMSKに対して寄与することが前提としてある場合は、SRCPRC=SRCMSK&SRCRMVとして求めることができる。これは、後段のラスタ演算回路21にて、イネーブルフラグの計算に用いられるものである。
【0080】
次に、この画像データ転送装置2内の各SRAM18〜20で行われるカラータグ演算処理について説明する。図22は、ソースSRAM19の構成を示すブロック図である。なお、デスティネーションSRAM18及びパターンSRAM20も基本的にはソースSRAM19と同様の構成であるが、デスティネーションSRAM18及びパターンSRAM20には、モノクローム拡張装置96及びこれに付随するカラー/モノクロデータ選択用の選択回路(MUX)97,98が備えられていない。また、パターンSRAM20内には、スタートバイトレジスタ90,タグブロックレジスタ91,タグ計算回路92,タグ選択回路93及びトランスペアレントフラグ計算回路(TRP)95はない。
【0081】
ソースSRAM19(デスティネーションSRAM18及びパターンSRAM20)内のラインアドレスカウンタ(CNTR)85は、それぞれ対応するデスティネーション,ソース及びパターンアドレスカウンタ15,16,17からブロックスタート信号(BLKSTR)及びブロックカウンタ信号(BLKCNT)を受け取る。これらの信号は、同時にメモリコントローラ3へも出力される。
【0082】
メモリコントローラ3は、ローカルメモリ4からセクタアドレスSECと、BLKSTRにより指定されるアドレスからBLKCNTで指定されるだけのデータを読み出し、画像表示装置5内にあるSRAM等のメモリ(図示せず)にこのデータを転送する。このBLKSTRは、SRAM88のライトアドレスのスタートとなり、そのアドレスからBLKCNTで与えられるアドレス分だけローカルメモリ4からデータが転送され、その転送されたデータがSRAM88に書き込まれる。データがSRAM88に転送された後に、今度はデータの読み出しが行われる。このデータの読み出しは、各アドレスカウンタ15,16,17から送られるそれぞれの対応するブロックアドレス(BLK)に基づき行われる。
【0083】
このとき、SRAM88のアドレスは、コントローラ24からの指示により、セレクタ86で各アドレスカウンタ15〜17のそれぞれが出力するBLK側に切り換えられ、このBLKによりSRAM88から読み出された1ブロック分のデータは、一旦、レジスタ89に格納されたのち、それがカラーデータの場合には、選択回路97及びレジスタ94を介して後段のラスタ演算回路21に転送される。また、モノクロームのデータの場合には、SRAM88から読み出された1ブロック分のデータは、モノクローム拡張装置96でカラーデータに拡張されたのち、選択回路97及びレジスタ94を介して後段のラスタ演算回路21に転送される。
【0084】
またこのとき、カラータグを用いて、各SRAM18〜20でトランスペアレント処理(透明処理)のための計算も同時に行われる。以下にこれを説明する。
【0085】
スタートバイトレジスタ90は、矩形領域を構成する1ラインの最初のFBSPのバイトアドレスを1ラインの処理が継続する間中保持し続ける。タグブロックレジスタ91は、各ブロックごとのタグブロックを保持するレジスタであり、ブロックの処理ごとに更新されるものである。このスタートバイトレジスタ90の出力データBYTSTRは、続くタグ計算回路(TAGTBL)92をアクセスし、タグブロックレジスタ91の出力データTGBLKは、タグ選択回路(MUX)93をアクセスする。このタグ選択回路93は、タグ計算回路92からの複数の出力データTAGTBLのうちの1つを選択する役割を担っている。
【0086】
ここで、図23に示すように、1ピクセルは最大4バイトのデータで構成され、この最大4バイトのピクセルデータに対して、各バイトに0から3までのカラータグ(CT)を定義すると、1ピクセルが1バイトのときカラータグは0となることが分かる。同図より、1ピクセルが2バイトのときは上位側のバイトが1で下位側が0、3バイトのときは上位側から2,1,0、4バイトのときは上位側から3,2,1,0となることが分かる。
【0087】
このカラータグは、図24に示すように、スタートアドレスFBSPで指定される最初のバイトから順番に割り付けられ、BPPの単位でエンドアドレスFBEPまで繰り返される。ここで、BPPの最大が4バイトであることから、タグ計算回路92は、最大で2W×4バイト分のカラータグを出力することが分かる。2Wバイトのデータを同時に処理することから、2Wバイト分ごとのカラータグをタグブロックTGBLKとすると、その構成は図25に示すように定義される。
【0088】
このようにして定義されたカラータグ,タグブロック,BPPの関係をタグ計算回路92の出力TAGTBLとして考えると、図26〜28に示すようになる。なお、この場合の下位ビットWは、W=3とする。
【0089】
図26(a)に示すように、BPPが1バイトのときのカラータグの値は常にゼロとなる。BPPが2バイトのときのカラータグの値は、XDIR及びスタートアドレスのバイト部分BYTSTRのLSB(Least Significant Bit/Byte)により決まる。
XDIR=0でBYTSTR[0]=0のとき、又は
XDIR=1でBYTSTR[0]=1のときは同図(b)に示すようになり、
XDIR=0でBYTSTR[0]=1のとき、又は
XDIR=1でBYTSTR[0]=0のときは同図(c)に示すようになる。
【0090】
また、BPPが3バイトのときのカラータグの値は、図27に示すようにXDIR及びスタートアドレスのバイト部分BYTSTRのLSB側3ビットにより決まる。
XDIR=0でBYTSTR[2:0]=0,3,6のとき、又は
XDIR=1でBYTSTR[2:0]=1,4,7のときは同図(a)に示すように、
XDIR=0でBYTSTR[2:0]=2,5のとき、又は
XDIR=1でBYTSTR[2:0]=0,3,6のときは同図(b)に示すように、
XDIR=0でBYTSTR[2:0]=1,4,7のとき、又は
XDIR=1でBYTSTR[2:0]=2,5のときは同図(c)に示すようにそれぞれ定義される。
【0091】
更に、BPPが4バイトのときのカラータグの値は、図28に示すようにXDIR及びBYTSTRのLSB側2ビットにより決まる。
XDIR=0でBYTSTR[1:0]=0のとき、又は
XDIR=1でBYTSTR[1:0]=3のときは同図(a)に示すように、
XDIR=0でBYTSTR[1:0]=3のとき、又は
XDIR=1でBYTSTR[1:0]=2のときは同図(b)に示すようになる。同様に、
XDIR=0でBYTSTR[1:0]=2のとき、又は
XDIR=1でBYTSTR[1:0]=1のときは同図(c)に示すように、
XDIR=0でBYTSTR[1:0]=1のとき、又は
XDIR=1でBYTSTR[1:0]=0のときは同図(d)に示すようにそれぞれ定義される。
【0092】
タグ計算回路92の出力であるTAGTBLは、タグ選択回路93に入力され、そこでデスティネーション及びソースアドレスカウンタ15,16内のカラータグ計算用カウンタ40で計算されたTGBLKで指定された部分が選択され、カラータグ(CT)となる。カラータグは、2ビットから構成される2W個のデータであり、1ブロック内の各バイトデータのカラータグを示す。このカラータグは、トランスペアレント計算のためにトランスペアレント計算回路(TRP)95に出力される。
【0093】
次に、モノクローム拡張装置96について説明する。モノクローム拡張装置96は、ソースデータがモノクロームデータのときに、各ピクセルのビット数を拡張するもので、バイトアドレスレジスタ(BYTREG)101と、バイトデータ選択回路(PXLMUX)102と、データ拡張回路(BYTEXP)103と、ブロック選択回路(BLKMUX)104と、カラー出力回路(COLEXP)105とを備えて構成されている。
【0094】
バイトアドレスレジスタ101は、ソースアドレスカウンタ16からのバイトアドレスBYTをストアするレジスタである。前段のソースアドレスカウンタ16は、ソースがモノクロームデータの場合、バイト単位でインクリメントされるため、このレジスタ101には、ローカルメモリ4から出力される2Wバイト(図示の例では8バイト)のデータのどのバイトを指し示すかのアドレスが格納されることになる。バイトデータ選択回路102は、2Wバイト分のカラー出力データをバイトレジスタ101に格納されたバイトアドレスBYTによって選択するための回路である。図29には、モノクローム拡張装置96の更に詳細を示す。バイトデータ選択回路102は、ローカルメモリ4から出力される2Wバイトの読出データRDT[63:0]のうち、バイトアドレスBYTで指定された1バイトのみを選択して後段に出力する。ソースアドレスカウンタ16を1バイトずつインクリメントすることで、バイトデータ選択回路102は、読出データRDTを1バイトずつ順番に選択し、後段に出力する。
【0095】
データ拡張回路103は、モノクロームの1ビットのデータをBPPの指定に基づいて1ビットから4ビットまでに拡張する。この拡張の様子を図30に示す。データ拡張回路103は、読出データRDTのうちバイトアドレスBYTにより選択された1バイトのデータを入力する。この1バイト(8ビット)のデータをBPPにより、最大32ビットまで拡張して拡張バイトBYTEXとして出力する。8ビットのデータは、モノクロームデータであるため、その0がバックグラウンドカラーを示し、1がフォアグラウンドカラーを示している。BPP=1の場合は、8ビットのデータがそのままBYTEXとして出力される。BPP=2の場合には、図30に示すように、8ビットデータの各ビットのデータがそれぞ2ビットずつコピーされて全体として16ビットデータのBYTEXに拡張される。図で、[0][0]と示されているのは、入力のビット[0]のデータ(0または1)が2ビットにコピーされたことを示している。コピーされた2ビットは、同一のピクセルであることを示している。同様に、BPP=3のときは、入力の1ビットが3ビットにコピーされて24ビットのBYTEXが出力され、BPP=4のときは、入力の1ビットが4ビットにコピーされて36ビットのBYTEXが出力される。
【0096】
ブロック選択回路104は、データ拡張回路103で拡張されたモノクロームデータBYTEXのうち、タグブロックTGBLKで指定された部分(8ビット)を選択し、モノクロームの出力ブロックMONFLGとして次段のカラー出力回路105に出力する。拡張されたビットデータ、タグブロックTGBLK、カラータグCTの関係を図31に示す。BPP=1の場合、TGBLK=0として8ビットのBYTEXの全体が選択されて出力される。BPP=2の場合、TGBLK=0で16ビットのBYTEXのうちの下位8ビットが選択され、TGBLK=1で上位8ビットが選択される。以下同様である。
【0097】
カラー出力回路105は、図32にその詳細構成を示すように、バス幅2Wが8バイトの場合、8つのカラー拡張ユニット(COL_EXP_UNIT)110〜117から構成される。1つのカラー拡張ユニット11nに拡張された1ビットのモノクロームデータMONFLGの1ビットを入力し、これを1バイトのカラー成分データMONEXに変換し出力する。各カラー拡張ユニット11nは、拡張されたモノクロームデータMONFLGが0であるか1であるか、並びにそれに対応するカラータグCTnCを参照し、あらかじめレジスタにストアされているフォアグラウンドカラーまたはバックグラウンドカラーの適当な成分を選ぶ。カラー拡張ユニット11nは、バックグラウンドカラーの成分を選ぶバックグラウンド選択回路(BGMUX)118a、フォアグラウンドカラーの成分を選ぶフォアグラウンド選択回路(FGMUX)118b及び出力データを選択するBG/FG選択回路(BFMUX)119から構成される。バックグラウンド選択回路118a及びフォアグラウンド選択回路118bは、ともにそれぞれに対応したカラータグCT0C〜CT7Cの値に応じて、バックグラウンドカラー、フォアグラウンドカラーを構成する32ビットのカラーデータのうちの8ビットの成分を選択する。BG/FG選択回路119は、モノクロームデータMONFLGが0のときはバックグラウンドカラー成分を選択し、モノクロームデータMONFLGが1のときはフォアグラウンドカラー成分を選択する。BG/FG選択回路119の出力MONEXは、カラーデータとモノクロームデータとを切り換えて出力するカラー/モノクロデータ選択用の選択回路(MUX)97に入力され、レジスタ94を介して後段のラスタ演算回路21に転送される。また、BG/FG選択回路119の出力MONEXは、同様の選択回路98を介してトランスペアレント計算回路(TRP)95にも入力される。
【0098】
次に、トランスペアレント計算回路95について説明する。トランスペアレント処理は、ピクセル値が予め定義されたトランスペアレントカラーと一致する場合に、そのピクセルの更新を行わない処理である。具体的には、ソースのピクセル値がソースペアレントカラーと一致する場合、そのピクセルの更新を行わないか、又はデスティネーションのピクセル値を上書きする。また、デスティネーションのピクセル値がデスティネーションカラーと一致する場合、そのピクセルの更新を行わないか、又はデスティネーションのピクセル値を上書きする。
【0099】
図33は、このトランスペアレント計算回路95の内部構成を示す図である。トランスペアレント計算回路95は、主にFG/BGセレクタ120,2W個のセレクタ121〜126,2W個の比較器127〜132,2W個のレジスタ133〜138,2W個の演算器139〜144,レジスタ145及びR/Lセレクタ146から構成される。なお、2W個からなるセレクタ,比較器,レジスタ,演算器は、それぞれ1ブロック内にある各バイトデータに対応して設けられているものである。
【0100】
FG/BGセレクタ120は、図示しないインターフェイスから送られてくる転送先領域の背景色(FG:フォアグラウンドカラー)と転送元領域の背景色(BG:バックグラウンドカラー)とを、同じく送られてくる前トランスペアレントカラーデータ(FGTR)を利用して選択し、どちらをトランスペアレントカラーとするかを決定する。その結果、このFG/BGセレクタ120の出力TRCOLが、新たなトランスペアレントカラーとなる。このトランスペアレント計算回路95は、デスティネーション領域又はソース領域に格納されているピクセルデータとトランスペアレントカラーとをピクセル単位で比較し、その結果等しい場合は、そのピクセルデータはトランスペアレントであるとし、図22に示すように新しいデータに書き換えないようにするためのフラグ(TRPF)を後段に出力する。
【0101】
FG/BGセレクタ120から出力されたTRCOLは、BPPの定義より、最大で4バイトとなる。各セレクタ121〜126は、カラータグ(CT0〜CT2W−1)により、TRCOLを構成するバイト成分をカラータグの値で選択し、各比較器127〜132に出力する。これを受けて各比較器127〜132は、図示しないメモリからの出力データ(RDT)と選択されたトランスペアレントカラー成分とをバイト単位で比較し、等しいときには1、等しくないときには0と定義して、比較結果NEQを出力する。各レジスタ133〜138は、各比較器127〜132で比較された結果NEQとそれに対応するカラータグ(CT)とを一時的に保持し、保持されたNEQとCTとをカレントデータのCEQ,CCTとして出力する。レジスタ145は、このカレントの比較結果CEQを保持し、それらをPEQとしてR/Lセレクタ146に出力する。
【0102】
ここで、図34に示すように、1ブロック内でバイトアドレスのゼロバイトに近づく方向を左、2W−1バイトに近づく方向を右とすると、BPPの最大が4バイトであることから、現在のカラータグを含めて最大で左右に3バイト分の各比較器127〜132での比較結果を参照すれば、そのピクセルがトランスペアレントとして与えられたカラーと等しいかどうかを判断することができる。
【0103】
また、このとき、1ピクセル内のバイトデータがブロック間をまたぐ場合があり、この場合、図35に示すように、現在処理中のブロックの一つ前又は一つ後のブロックデータの各比較器127〜132での比較結果を参照する。
【0104】
更に、PEQは、現在の処理に対して一つ前に処理されたブロックの各比較器127〜132での比較結果となり、NEQは、現在の処理に対して一つ後に処理されるブロックの各比較器127〜132での比較結果となる。現在の処理の各比較器127〜132での比較結果CEQのゼロバイトから2W−1バイトまでの各バイトに対する左右に隣接するそれぞれ3バイトは、図36で示すように表すことができる。
【0105】
この図36の表(a),(b)から明らかなように、
CEQ0に対するleft3,left2,left1と、
CEQ1に対するleft3,left2と、
CEQ2に対するleft3と、
CEQ2W−3に対するright3と、
CEQ2W−2に対するright3,right2と、
CEQ2W−1に対するright3,right2,right1とが、XDIRにより異なっている。
【0106】
R/Lセレクタ146は、上述のNEQ,PEQ及びXDIRを入力して選択し、適切なものをCEQ2W−1,CEQ2W−2,CEQ2W−3,CEQ2,CEQ1,CEQ0の各演算器139〜144に出力する。各演算器139〜144は、入力したCCTとBPPにより、左右のどの各比較器127〜132での比較結果を参照すればよいかを知ることができる。例えば、BPPが1のとき、ゼロバイトから2W−1バイトまでの各比較器127〜132での比較結果が、そのままトランスペアレントかどうかを示しているということができる。このとき、0ならトランスペアレントではなく、1ならトランスペアレントであるといえる。
【0107】
例えば、図37(a)に示すように、BPPが2のときは、現在の処理に対して左右に1バイトずつの各比較器127〜132での比較結果を参照すれば、左右どちらかの比較結果を参照すべきかは、現在処理中のカラータグの値により決まる。現在の処理のカラータグがゼロの場合、右の1バイトが同一ピクセルであり、現在の処理のカラータグが1の場合、左の1バイトが同一ピクセルであることが分かる。もし、各比較器127〜132での比較結果が共に1であるならば、このピクセルはトランスペアレントであるということができる。図37では、白地以外の部分が同一ピクセルであることを示している。
【0108】
また、BBPが3のときは、現在の処理に対して左右に最大2バイトずつの各比較器127〜132での比較結果を参照する。もし、同一ピクセル部分の各比較器127〜132での比較結果がすべて1ならば、このピクセルはトランスペアレントであるということができる。
【0109】
更に、BPPが4のときは、現在の処理に対して左右に最大3バイトずつの各比較器127〜132での比較結果を参照する。この場合も同様に同一ピクセル部分の各比較器127〜132での比較結果がすべて1であるならば、このピクセルはトランスペアレントであるということができる。以上のように各比較器127〜132で計算された結果が、TRPFとしてラスタ演算回路21に出力される。
【0110】
最後に、この画像データ転送装置2内のラスタ演算回路21について簡単に説明する。図38は、ラスタ演算回路21の内部構成を示す図であり、このラスタ演算回路21は、デスティネーション,ソース,パターンの各SRAM18,19,20から読み出したデータに対してラスタ演算するものである。
【0111】
ラスタ演算回路21は、主にソースSRAM19からの1ブロック分のデータを、バイトデータを単位としてシフトするSBシフタ150,パターンSRAM20からの1ブロック分のデータを、同じくバイトデータを単位としてシフトするPBシフタ151,8ビットのラスタ演算を実行する2W個の8ビットラスタ演算回路1521〜152n,書き込みイネーブルのデータを計算するイネーブルデータ計算回路153,このイネーブルデータ計算回路153内で、ソーストランスペアレントフラグをシフトするシフタ(図示せず),ラスタ演算の結果を格納する2W個のレジスタ1541〜154n等から構成されている。
【0112】
まず、デスティネーションSRAM18から読み出された2Wバイトのデスティネーションデータは、それぞれ対応する8ビットラスタ演算回路1521〜152nに入力される。ソースSRAM19から読み出された2Wバイトのソースデータは、マスク演算回路23で計算されたシフト分データである1ブロック内のアドレス差SRCSFTと等しい分だけSBシフタ150にてバイト単位でシフトされ、デスティネーションデータと対応させられる。同様に、パターンSRAM20から読み出された2Wバイトのパターンデータも、マスク演算回路23で計算されたPATSFTと等しい分だけPBシフタ151にてバイト単位でシフトされ、デスティネーションデータと対応させられる。8ビットラスタ演算回路1521〜152nは、指定されたコードにより、これらのデスティネーション,ソース,パターンデータでラスタ演算を行い、この結果をレジスタ1541〜154nに格納する。このとき、マスク演算回路23で計算されたPRCMSKを各レジスタ1541〜154nは入力し、PRCMSKが1になるデータのみを格納している。
【0113】
イネーブルデータ計算回路153は、デスティネーションSRAM18からのトランスペアレントフラグ(DTRPF),ソースSRAM19からのトランスペアレントフラグ(STRPF),マスク演算回路23からのSRCPRC,SRCSFT,PRCMSK等を入力する。これらの入力情報に基づき、イネーブルデータ計算回路153は、各バイトデータ毎のローカルメモリ4への書き込みが行われるかどうかを決定するイネーブルフラグENを計算する。トランスペアレントの場合は、ローカルメモリ4への書き込みが行われず、以前の値がそのままローカルメモリ4内で維持されるように、イネーブルフラグENを変更する。
【0114】
このラスタ演算回路21の後段にある出力FIFO22は、1ブロック内のすべてのバイトデータのラスタ演算が終了したところで、レジスタ1541〜154nに格納されている結果を自身のメモリ(図示せず)に書き込む。デスティネーションの1セクタ分のデータがすべて出力FIFO22内にあるメモリに書き込まれたところで、メモリコントローラ3に1セクタ分のデータを連続的に出力し、そのデータをローカルメモリ4に書き込むことで、データの転送を行っている。
【0115】
最後に、ソースデータがモノクロームデータで与えられた場合の具体的な処理例について説明する。
1セクタが8ブロック、1ブロックが8バイトからなり、BPP=3として、図39(a)で示す、16ピクセル×16ラインの×印のモノクロームデータの転送を、例を挙げて考える。
【0116】
インターフェイス11は、転送先のデスティネーションデータのパラメータ、モノクロームソースデータのパラメータを受け取り、デスティネーションアドレス計算回路12、ソースアドレス計算回路13内のモノクロームソースアドレス計算回路132の対応したレジスタにデータをセットする。計算されたデスティネーションアドレス(スタートアドレス及びエンドアドレス)、ソースモノクロームアドレス(スタートアドレス及びエンドアドレス)は、デスティネーションアドレスカウンタ15、ソースアドレスカウンタ16に転送される。その後、コントローラ24からの制御により、デスティネーションアドレスカウンタ15からのアドレスを用い、ローカルメモリ4にアクセスし、最初の1ライン分のデータを含むセクタをデスティネーションSRAM18に転送する。デスティネーションSRAM18に全データが転送出来ない場合は、セクタ単位で転送が繰り返される。同様に、ソースSRAM19にも最初の1ライン分のモノクロームデータを転送する。
【0117】
デスティネーションデータ、ソースデータともにローカルメモリ4から転送された後、SRAM18,19から読み出される。×印のデータは、図39(b)のようになる。たとえば、×印のモノクロームソースデータが、ローカルメモリ4の表示領域外のアドレスA000004番地から、図示のように格納されているものとする。ソースアドレスカウンタ16はアドレスA000004を分解し、バイトアドレスレジスタ34にはBYT=4が、ブロックアドレスレジスタ33には0が、セクタアドレスレジスタ32には280000がそれぞれセットされる。マスクがスタートするブロック内のスタートアドレス(BYTSTR)は、BYTSTR=0となる。カラータグ計算用カウンタ40は、TGBLK=0にリセットされる。ソースデータのマスク(AMSK)は11111111となり、これがマスク演算回路23にソースのマスクパターンとして出力される。
【0118】
ソースSRAM19内のSRAM88からは、1ブロック分のデータが一度に読み出される。読み出されたデータは、モノクローム拡張装置96のバイトデータ選択回路(PXLMUX)102に入力され、ソースアドレスカウンタ16から出力されたバイトアドレスBYTにより、対応した部分の1バイトのデータが選ばれる。図の場合、ブロック内のアドレスが4の80のデータが出力される。バイトデータ選択回路(PXLMUX)102からの出力は、データ拡張回路(BYTEXP)103に入力される。ここで、1バイトのデータ80は、BPP=3のデータに拡張される。したがって、1バイトのデータ80(10000000)は、111 000 000 000 000 000 000 000 と3バイトのデータに拡張される。ブロック選択回路(BLKMUX)104は、拡張された3バイトのデータのうちカラータグ計算用カウンタ40が示している部分(1バイト分)を選択し、これをモノクロームの出力ブロックMONFLGとして出力する。この場合は、TGBLK=0のとき111 000 00が選択され、カラー出力回路(COLEXP)105に入力される。
【0119】
カラー出力回路105には、カラータグ計算用カウンタ40と同期して動作しているカラータグCT0C〜CT7Cが入力される。カラータグCT0C〜CT7Cは、対応するカラー拡張ユニット110〜117内のフォアグラウンド選択回路118b及びバックグラウンド選択回路118aに入力され、予めストアされているフォアグランドカラー及びバックグラウンドカラーを構成する1バイトの成分を出力する。カラータグCT0C〜CT7Cのデータは、順に01201201…となる。出力ブロックMONFLGの0はバックグラウンドカラー、1はフォアグラウンドカラーに対応するものとする。フォアグラウンドカラーをFG[23:0]=123456h、バックグラウンドカラーをBG[23:0]=789ABChとすると、カラー拡張ユニット(#0)110は、カラータグCT0Cが0、出力ブロックMONFLGが1となり、フォアグラウンドカラーの成分の56を出力する。
これらを表に示すと図40の通りとなる。
【0120】
図40の表に示す通り、モノクローム拡張装置96から選択回路97を経由して、正しく割り当てられたフォアグラウンドカラー成分、バックグラウンドカラー成分が出力される。
【0121】
出力されたデータは、マスク演算回路23により制御される。ソースマスクデータが00000000となったところで、ソースアドレス計算回路13内のカラータグ計算用カウンタ40がインクリメントされ、同時にマスク演算回路23に新たにソースマスクとして11111111のマスクがロードされる。同時に、モノクローム拡張装置96内のブロック選択回路104に入力されるタグブロックTGBLKの値が1になり、カラータグCT0C〜CT7Cも更新される。ブロック選択回路104から出力される出力ブロックMONFLGは、拡張された24ビットのうちの真中の1バイトのデータ(0 000 000 0)となる[図40(b)]。
【0122】
同様に、ソースマスクデータが00000000となったところで、ソースアドレス計算回路13内のカラータグ計算用カウンタ40がインクリメントされ、同時にマスク演算回路23に新たにソースマスクとして11111111のマスクがロードされる。同時に、モノクローム拡張装置96内のブロック選択回路104に入力されるタグブロックTGBLKの値が2になり、カラータグCT0C〜CT7Cも更新される。出力ブロックMONFLGは、拡張された24ビットのうちの最後の1バイトのデータ(00 000 000)となる[図40(c)]。
【0123】
この状態で、ソースマスクが0となると、ソースアドレス計算回路13内のカラータグ計算用カウンタ40から信号NXMQDがアドレス更新回路31に送られる。これにより、アドレス更新回路31は、1バイトだけインクリメントされる。アドレス更新回路31がインクリメントされることにより、モノクローム拡張装置96のバイトアドレスレジスタ101にはBYT=5がセットされる。バイトアドレスレジスタ101に新たにセットされたBYT=5は、バイトデータ選択回路102に入力され、SRAM88から出力されたデータの対応した部分の1バイトのデータが選択される。この場合は、ブロック内のアドレスが5の01のデータが出力される。
【0124】
以下、同様の処理が行われる。1ラインの処理が終了する場合は、次のラインのアドレスが、デスティネーションアドレス計算回路12、ソースアドレス計算回路13で計算される。最初のラインと同様に、ローカルメモリ4からデスティネーションSRAM18、ソースSRAM19にデータが転送される。これにより、ソースアドレスカウンタは、A000006番地に更新される。バイトアドレスレジスタ101にはBYT=6がセットされる。ソースSRAM19内のバイトデータ選択回路102は、SRAM88から読み出されたデータのBYTにより、対応した部分の1バイトのデータを選ぶ。ブロック内のアドレスが6のデータ“40”が出力される。
以上を繰り返すことにより、モノクロームソースデータが指定されたデスティネーションに展開される。
【0125】
【発明の効果】
以上述べたように、この発明によれば、指定された転送元及び転送先領域転に関するパラメータに基づき、画像データ記憶装置に記憶された転送領域の画像データを演算処理し転送する際に、画像データを1ピクセルが1又は複数のバイトで構成された画像データであるとして、この1ピクセルの画像データよりも大きい複数バイトからなるブロック単位で画像データを転送し、転送領域でブロック内における位置合わせを行い演算処理を実行することで、画像データの高速転送が可能であると共に、転送元領域の画像データは、1ピクセルが1ビットで構成されたモノクロームの画像データであり、転送処理の際に、転送元領域の1ピクセルをそのビット値に応じて予め設定された2色のデータのうちの1色を表す1又は複数のバイトで構成された画像データに拡張するようにしているので、画像データ記憶手段に記憶させる転送元領域の画像データのデータ量を削減することができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の一実施例に係る画像表示処理システムの基本構成を説明するためのブロック図である。
【図2】 同システムにおける画像データ転送装置の機能を概略的に示す図である。
【図3】 同システムにおける画像データ転送装置のモノクローム転送の概要を示す図である。
【図4】 同装置の詳細な構成を示すブロック図である。
【図5】 同装置におけるソースアドレス計算回路の要部を示すブロック図である。
【図6】 同装置の動作を示すフローチャートである。
【図7】 同装置における転送矩形領域を含む画像データの矩形(表示)領域を更に詳細に示す図である。
【図8】 同装置における転送矩形領域のXDIR,YDIRを概略的に示す図である。
【図9】 同装置におけるモノクロームの画像データの構成を示す図である。
【図10】 同装置におけるローカルメモリ内に構築されている画像データの構成を示す図である。
【図11】 モノクロームの画像データの拡張を説明するための図である。
【図12】 同装置内のアドレスカウンタ内部の基本構成を示す図である。
【図13】 同カウンタ内部のセクタアドレスレジスタに格納されているセクタデータを説明するための図である。
【図14】 同カウンタ内部のセクタアドレスレジスタに格納されているセクタデータを示す図である。
【図15】 同カウンタ内部におけるマスク演算処理時の各データの構成を説明するための図である。
【図16】 同カウンタ内部におけるマスク演算処理の結果を説明するための図である。
【図17】 同カウンタ内部におけるカラータグ計算用カウンタの初期値と更新パターンとを示す図である。
【図18】 モノクロームの画像データ処理時のタグブロックとアドレス更新信号との関係を示す図である。
【図19】 同装置におけるデスティネーション,ソース,パターンの各スタートアドレスのローカルメモリ内の構成を示す図である。
【図20】 同装置におけるマスク演算回路の内部構成を示すブロック図である。
【図21】 同装置におけるマスク演算回路での各データの処理を説明するための図である。
【図22】 同装置における各SRAMの内部構成を示す図である。
【図23】 同装置における各SRAMでのカラータグ演算処理のデータ構成を説明するための図である。
【図24】 同処理のデータ構成を説明するための図である。
【図25】 同処理のデータ構成を説明するための図である。
【図26】 同処理におけるカラータグ,タグブロック,BPPの関係を示す図である。
【図27】 同処理におけるカラータグ,タグブロック,BPPの関係を示す図である。
【図28】 同カラータグ演算処理におけるカラータグ,タグブロック,BPPの関係示す図である。
【図29】 同装置におけるモノクローム拡張装置の詳細機能ブロック図である。
【図30】 同モノクローム拡張装置のビット拡張動作を説明するための図である。
【図31】 同モノクローム拡張装置のデータ拡張動作を説明するための図である。
【図32】 同モノクローム拡張装置のカラー拡張ユニットの詳細ブロック図である。
【図33】 各SRAMにあるトランスペアレント計算回路の内部構成を示す図である。
【図34】 同回路におけるトランスペアレント計算処理のデータの構成を説明するための図である。
【図35】 同処理におけるデータの比較方法を説明するための図である。
【図36】 同処理におけるデータの比較結果の構成を表した図である。
【図37】 同処理におけるデータの比較結果を表した図である。
【図38】 同装置におけるラスタ演算回路の内部構成を示す図である。
【図39】 同装置によるモノクロームデータの処理例を示すモノクロームの画像データとそのメモリへの格納状態を示す図である。
【図40】 同モノクロームデータの拡張されたデータを示す表である。
【図41】 従来の画像表示処理システムの構成を示すブロック図である。
【符号の説明】
1…CPU、2…画像データ転送装置、3…メモリコントローラ、4…ローカルメモリ、5…表示装置、11…インターフェイス、12…デスティネーションアドレス計算回路、13…ソースアドレス計算回路、14…パターンアドレス計算回路、15…デスティネーションアドレスカウンタ、16…ソースアドレスカウンタ、17…パターンアドレスカウンタ、18…デスティネーションSRAM、19…ソースSRAM、20…パターンSRAM、21…ラスタ演算回路、22…出力FIFO、23…マスク演算回路、24…コントローラ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image display processing system for data constituting an image expressed on a plane in a raster scan type display device such as a CRT (Cathode Ray Tube), and more particularly to an image data transfer device for transferring image data of a specific area, and The present invention relates to an image display processing system.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, as a two-dimensional image data processing apparatus using a raster scan type display device such as a CRT, one disclosed in, for example, Japanese Patent Laid-Open No. 60-214392 is known. As shown in FIG. 41, the image display processing system includes a display controller 201 for image display processing in order to reduce the burden on the central processing unit (CPU) 202. The image data processing circuit 210 inside the display controller 201 is a still image data and a moving image data stored in a video RAM (hereinafter referred to as VRAM) 204 corresponding to the screen scanning speed of the CRT display device 205. Are output via the interface 211 and a synchronization signal SYNC necessary for scanning an image is output to the CRT display device 205.
[0003]
The still image and moving image data in this case is composed of a 2, 4 or 8-bit color code that specifies the dot color on the display screen, and the image data processing circuit 210 outputs the read color code to the color palette 212. To do. The color palette 212 converts the read color code into RGB (red, green, blue) signals and supplies them to the CRT display device.
[0004]
Further, the image data processing circuit 210 writes the image data supplied from the CPU 202 via the interface 213 in the VRAM 204 during the non-display period (such as a vertical blanking period) of the screen. Further, when accessing the VRAM 204 (during writing and reading), the signal S1 is supplied to the command processing circuit 215 to notify that it is being accessed. The command processing circuit 215 performs processing corresponding to various commands supplied from the CPU 2 via the interface 213.
[0005]
In the image display processing system having the above-described configuration, each bit of the color code of the dot to be transferred can be performed without moving the rectangular area including the still image in a short time without using the CPU, or when the color code is transferred. And a logical operation between each bit of the color code of the transfer destination dot and writing the result to the storage area of the VRAM 204 corresponding to the transfer destination dot and the color code of each dot of the transfer source region Among them, the transparent color code is not transferred, and a transparent process (transparent process) for transferring only the other color codes can be performed. In addition, this system includes a dot unit transfer mode in which a color code is transferred in units of dots and a byte unit transfer mode in which a color code is transferred in units of bytes.
[0006]
[Problems to be solved by the invention]
However, the above-described conventional image display processing system cannot execute predetermined logical operation processing and transparency processing while realizing high-speed transfer. In particular, at present, due to the remarkable improvement in image processing technology and the accompanying rapid increase in the amount of image data transferred, it has become difficult for the apparatus as described above to meet the demand for high-speed transfer and fine image processing. Furthermore, even if it is a regular pattern, when the color code changes variously, there is a problem that the source data must be stored for each color code, and the amount of data to be stored increases.
[0007]
The present invention has been made in view of such problems, and is capable of performing image processing and transfer data control more efficiently and reducing the memory capacity and image display. An object is to provide a processing system.
[0008]
[Means for Solving the Problems]
The image data transfer device according to the present invention is configured to store the image data of the transfer source region and the image data of the transfer destination region stored in the image data storage device on the basis of the parameters relating to the designated transfer source region and transfer destination region. In the image data transfer apparatus that performs arithmetic processing and transfers the data to the transfer destination area, the image data in the transfer source area is monochrome image data in which one pixel is composed of one bit, and the image data in the transfer destination area is 1 Image data in which a pixel is composed of one or more bytes, and the image data storage apparatus An address counter for reading out image data in units of blocks larger than image data of one pixel from the transfer source area and the transfer destination area, apparatus The image data of the block unit read from is stored, and one pixel of the transfer source area is composed of one or a plurality of bytes representing one color of two color data set in advance according to the bit value The data storage means with a data expansion function for expanding to the image data that has been expanded, and the image data of the expanded transfer source area and the image data of the transfer destination area are aligned in the block to execute the arithmetic processing Computing means to The data storage means copies 1-bit data of each pixel of the transfer source area according to the number of bytes of each pixel of the transfer destination area, sets a color tag to each bit after copying, Monochrome expansion means for expanding image data by allocating bytes designated by the color tag among color pixel data of one or a plurality of bytes representing one color of preset two color data. It is characterized by that.
[0009]
In addition, an image display processing system according to the present invention includes an image data storage device that stores image data, and a central processing that outputs parameters relating to a transfer source region and a transfer destination region of the image data stored in the image data storage device. And processing the image data of the transfer source area and the image data of the transfer destination area stored in the image data storage device based on the parameters relating to the transfer source area and the transfer destination area output from the central processing unit In the image display processing system, comprising: an image data transfer device that transfers the image data to the transfer destination region; and an image display device that displays the image data stored in the image data storage device. Monochrome image data in which 1 pixel consists of 1 bit and image data in the transfer destination area are 1 pixel. Is image data composed of one or a plurality of bytes, the central processing unit outputs the number of bytes constituting the one pixel to the image data transfer device, and the image data transfer device The image data is transferred in units of blocks larger than the image data, and one pixel in the transfer source area is composed of one or a plurality of bytes representing one color of two color data set in advance according to the bit value The image data is expanded to the image data, the image data of the expanded transfer source area and the image data of the transfer destination area are aligned in the block, the arithmetic processing is executed, and then stored in the image data storage device In addition, the image data transfer device copies 1-bit data of each pixel in the transfer source area according to the number of bytes of each pixel in the transfer destination area, and sets a color tag in each bit after copying. The image data is expanded by allocating the byte specified by the color tag among the color pixel data of one or a plurality of bytes representing one color of the preset two color data. It is characterized by that.
[0010]
According to the present invention, the image data in the transfer area stored in the image data storage device is processed based on the parameters relating to the designated transfer source and transfer destination areas (hereinafter referred to as “transfer area” only in this paragraph). When transferring, assuming that the image data is image data in which one pixel is composed of one or a plurality of bytes, the image data is transferred in units of blocks consisting of a plurality of bytes larger than the image data of one pixel and transferred. Image data can be transferred at high speed by aligning the areas within the block and executing arithmetic processing.
[0011]
In the present invention, the image data in the transfer source area is monochrome image data in which one pixel is composed of one bit, and one pixel in the transfer source area is preliminarily set according to the bit value at the time of transfer processing. Since the data is expanded to image data composed of one or more bytes representing one color of the set two color data, the data amount of the image data in the transfer source area stored in the image data storage means Can be reduced. In particular, when a plurality of different color patterns are displayed in the same pattern, it is only necessary to store only one type of pattern itself, and to change the coloring data in various ways, and the amount of data to be stored is greatly reduced. can do.
[0012]
In the present invention, if the transfer start and transfer end block addresses are calculated for each scanning line and the image data is transferred continuously from the transfer start block to the transfer end block, the image data can be transferred at high speed. Can do. Further, in the present invention, when a mask pattern for masking other than the transfer area is generated based on the transfer image start and end byte addresses in each block, and the alignment in the block is performed in the transfer area, the number of pixels is Even if it is configured, it is possible to perform arithmetic processing by matching the positions of the data of the transfer source and the transfer destination stored at an arbitrary position. In addition, a color tag is set for each byte of image data and a color tag for each byte is set based on the transfer image start byte address in the block, thereby improving image display processing efficiency. Therefore, by incorporating this image data transfer device into the image display processing system, it is possible to increase the speed and efficiency of the image display processing.
[0013]
In a more specific aspect of the present invention, the expansion of the image data is performed by copying 1-bit data of each pixel in the transfer source area according to the number of bytes of each pixel, and then copying each bit after copying. This is done by setting a color tag and assigning a byte designated by the color tag among one or more bytes of color pixel data representing one color of two preset color data. It ’s fine.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of an image display processing system according to the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram for explaining the basic configuration of an image display processing system according to an embodiment of the present invention.
This image display processing system transfers a local memory 4 composed of a DRAM (Dynamic Random Access Memory) or the like for storing image data to be displayed, and an arbitrary rectangular area of the image data stored in the local memory 4. The CPU 1 that outputs various parameters, the image data transfer device 2 that transfers the image data of the rectangular area on the local memory 4 based on the parameters given from the CPU 1, the image data transfer device 2 and the local memory 4 A memory controller 3 that controls access to image data and a display device 5 such as a CRT display or a liquid crystal display that displays image data in the screen area of the local memory 4. .
[0015]
Among these, the outline of the function of the image data transfer apparatus 2 is shown in FIG. The image data transfer device 2 includes transfer source data (hereinafter referred to as source data) S stored in a non-display area on the local memory 4 and transfer destination data (hereinafter referred to as destination) stored in a rectangular area and display area. (Referred to as data.) The parameters defining the rectangular areas of D and the parameters defining the rectangular area of the arbitrary pattern data P stored in the non-display area added to the source data S are received from the CPU 1 and the local memory 4 The data of the source, the destination, and the pattern are fetched from the data, and a predetermined raster calculation process is performed between these data to write the data into the destination area.
[0016]
Here, the source data S allows not only the case where each pixel is color data composed of one or a plurality of bytes but also the case where each pixel is monochrome data defined by two colors. When the source data is monochrome data, one pixel is composed of one bit. FIG. 3 shows an example in which “×” mark is stored as a monochrome source pattern with 8 pixels × 8 lines. In the case of FIG. 3, since an 8 pixel × 8 line pattern requires only a capacity of 8 bytes, the storage capacity in the memory can be greatly reduced. Here, for example, when the value of each pixel is 0, the background color is defined as 1 and the foreground color is defined as 1. In this example, the background color and the foreground color are composed of 1 to 4 bytes per pixel, and are transferred and stored in advance in a register to be described later. This number of bytes constituting one pixel is referred to herein as BPP (byte per pixel). If the source data is itself color data, one pixel is defined by BPP. When the source data is defined as monochrome data, the image data transfer apparatus 2 uses 1 bit data corresponding to one pixel of the source data, 0 as the background color, and 1 as the foreground color as a byte defined by BPP. The number is expanded to a number and transferred to the destination area D.
[0017]
Hereinafter, the image data transfer apparatus 2 will be described in detail.
FIG. 4 is a block diagram showing a detailed configuration of the image data transfer apparatus 2.
Parameters specifying the destination area, source area, and pattern area sent from the CPU 1 are supplied to the destination address calculation circuit 12, the source address calculation circuit 13, and the pattern address calculation circuit 14 via the interface 11, respectively. In these address calculation circuits 12, 13, and 14, a start address (FBSPn) indicating the start of transfer on the local memory 4 in the destination area, source area, and pattern area and an end address indicating the end of transfer (one scan line). FBEPn). The values are passed to the destination address counter 15, the source address counter 16, and the pattern address counter 17, respectively.
[0018]
As shown in FIG. 5, the source address calculation circuit 13 includes a color address calculation circuit 131, a monochrome address calculation circuit 132, and a multiplexer 133 that selects these outputs. The multiplexer 133 determines whether the source data is color data or monochrome data by referring to a MONO register (not shown) provided in the interface 11 and switches the output. Thus, when the source data is color data, the output of the color source address calculation circuit 131 is output to the source address counter 16, and when the source data is monochrome data, the output of the monochrome source address calculation circuit 132 is output. Is output to the source address counter 16.
[0019]
On the other hand, the image data transfer device 2 is provided with three SRAMs (Static Random Access Memory) for temporarily storing the image data transferred from the local memory 4, that is, a destination SRAM 18, a source SRAM 19, and a pattern SRAM 20. ing. Each address counter 15, 16, and 17 hierarchizes the local memory 4 in units of sectors, blocks, and bytes, and outputs the addresses of sectors to be transferred to the respective SRAMs 18, 19, and 20. As a result, data for one sector is transferred to the SRAMs 18, 19, and 20 in units of blocks.
[0020]
In addition, since the transfer start pixel and the transfer end pixel are not necessarily the beginning and end of the block, the block at the start and end of transfer may contain data other than the pixel data to be transferred. is there. Each address counter 15, 16, 17 generates mask data for masking these data and supplies the mask data to the mask operation circuit 23. The mask calculation circuit 23 reads out data from each of the SRAMs 18, 19, and 20 based on the input mask data, and executes a calculation for sending the data to the raster calculation circuit 21. The raster calculation circuit 21 reads sector data from each SRAM 18, 19, 20 in units of blocks, reads the calculation result from the mask calculation circuit 23, performs raster calculation, and stores the calculation result in the output FIFO 22. The data stored in the FIFO 22 is transferred to the destination area of the local memory 4 at a predetermined timing. The controller 24 controls each circuit in accordance with a control command from the CPU 1. The source SRAM 19 is provided with a monochrome expansion device 96 to be described later. When the source data is defined by monochrome data, 1 bit data corresponding to 1 pixel of the source data is represented by 0 as the background. Color 1 is extended to the number of bytes defined in the BPP as the foreground color and transferred to the destination area.
[0021]
FIG. 6 is a flowchart showing a processing flow of the image data transfer apparatus 2.
First, Y = YS is loaded as an initial value of the transfer scan line Y set in each address calculation circuit 12, 13, and 14 (S1). Next, the start address (FBSPn) and end address (FBEPn) of the scan line are respectively calculated by the address calculation circuits 12, 13, and 14 (S2), and the values are passed to the address counters 15, 16, and 17, respectively. It is. When the source data is monochrome data, the address calculation circuit 13 calculates a start address (MSPj) and an end address (MEPj) (S2), and passes the values to the address counter 16. Destination data D, source data S, and pattern data P for one sector are transferred from the local memory 4 to the SRAMs 18, 19, and 20 in accordance with the addresses generated by the address counters 15, 16, and 17, respectively (S3, S4). ). After transfer to the SRAMs 18, 19, and 20, data is read from the SRAMs 18, 19, and 20 in units of blocks. When the source data is monochrome data, the data is expanded according to BPP and read from the source SRAM 19. The read data is subjected to raster calculation by the raster calculation circuit 21 according to the calculation result by the mask calculation circuit 23 and stored in the output FIFO 22 (S5).
[0022]
If the processing of the sector data stored in the source SRAM 19 is completed (S7), the next sector data is transferred (S4). When the processing of the sector data stored in the destination SRAM 18 is completed, the data stored in the output FIFO 22 is written to the local memory 4 after the raster operation is completed (S8), and new sector data is stored in the destination. The data is transferred to the SRAM 18 (S2). If the processing of the sector data stored in the pattern SRAM 20 is completed (S7), the next sector data is transferred (S4).
[0023]
The above processing is repeated, and when processing of data for one line is completed (S9), Y is updated (S10), and the processing for the next line is started. Then, when the processing of the last line is finished, the processing of the rectangular area is finished (S11).
[0024]
Next, a more specific operation of the image data transfer device 2 will be described.
FIG. 7A is a diagram showing the rectangular (display) area of the image data including the transfer rectangular area in more detail. This rectangular area corresponds to the screen area for the destination data D and the off-screen area for the source data S and the pattern data P. As for source data, a transfer image of color data is shown. Each parameter displayed here is given from the CPU 1 to the image data transfer apparatus 2 as described above, and is as follows.
[0025]
BASE: Data representing the coordinate value on the local memory 4 in bytes corresponding to the reference position of the rectangular area including the transfer rectangular area (usually, the position of the upper leftmost pixel of the area). It may indicate the base point of the screen area, or it may indicate the base point of the off-screen area.
PTCH: Data representing the width of one line of a rectangular area including a transfer rectangular area in bytes.
XS: Data representing the transfer start X coordinate value of the transfer rectangular area in pixels.
YS: Data representing the transfer start Y coordinate value of the transfer rectangular area as a scan line.
XEXT: Data representing the width in the X direction of the transfer rectangular area in the number of pixels.
YEXT: Data representing the width of the transfer rectangular area in the Y direction by the number of scan lines.
[0026]
XDIR: Data indicating whether the transfer is performed from the positive or negative direction of X. 0 is positive (rightward) and 1 is negative (leftward). That is, as shown in FIG. 8, when XDIR is 0, XS is the left end of the transfer rectangular area, and X is updated in the positive direction from XS. When XDIR is 1, XS is the right end of the transfer rectangular area, and X is updated in the negative direction from XS.
[0027]
YDIR: Data indicating whether the transfer is performed from the positive or negative direction of Y. Positive (downward) when 0 and negative (upward) when 1. That is, as shown in FIG. 8, when YDIR is 0, YS becomes the upper end of the transfer rectangular area, and Y is updated from YS in the positive direction. When YDIR is 1, YS becomes the lower end of the transfer rectangular area, and Y is updated in a negative direction from YS.
[0028]
Here, the start address (FBSPn) and end address (FBEPn) in the n-th line when given by the scan line Y = n are given by the following equations when XDIR = 0.
[0029]
[Expression 1]
FBSPn = BASE + n × PTCH + XS × BPP
FBEPn = BASE + n × PTCH + (XS + XEXT) × BPP-1
[0030]
When XDIR = 1, it is given by the following equation.
[0031]
[Expression 2]
FBSPn = BASE + n × PTCH + (XS + 1) × BPP-1
FBEPn = BASE + n × PTCH + (XS−XEXT + 1) × BPP
[0032]
FIG. 7B is a diagram showing the start address (FBSPn) and the end address (FBEPn) at Y = n when BASE = 0, as continuous data on the local memory 4.
[0033]
On the other hand, when the source data is monochrome data, the parameters given from the CPU 1 to the image data transfer device 2 are as follows, as shown in FIG.
[0034]
SBASE: Data representing the coordinate value on the local memory 4 as a reference for storing the source data S in bytes.
MOFST: Monochrome offset, the monochrome data storage start position from SBASE expressed in bytes. When a plurality of monochrome data are stored, the storage start position can be designated by changing the value of MOFST.
MPTCH: Monochrome pixel pitch, which defines the number of pixels in one line of the monochrome pattern. The number of pixels in one line is defined based on a multiple of 8. That is,
[0035]
8 pixels / line when MPTCH = 1,
16 pixels / line when MPTCH = 2,
24 pixels / line when MPTCH = 3,
32 pixels / line when MPTCH = 4,
[0036]
Is defined as follows. The pattern in FIG. 3 is an example of MPTCH = 1.
The size of the destination area and the size of the source area must match. Since the transfer is specified by an address in byte units, if the destination size is not a multiple of 8, the largest integer less than that is adopted as MPTCH. That is, MPTCH is selected such that 8 * (MPTCH-1) <XEXT (destination X transfer area width) ≦ 8 * MPTCH. If it is not a multiple of 8, as shown in FIG. 9, the monochrome data of each line is stored so that valid monochrome data is aligned with the head of the byte. The illustrated example is an example in which the number of pixels in one line is 14, and in this case, 2 is selected as the MPTCH, and monochrome data is allocated from the first bit to the 14th bit of 2-byte data. It is.
[0037]
When the source data is monochrome data, transfer to the destination is always performed in the positive direction for both X and Y. In synchronization with the start scan line YS being set to the destination scan line Y, the scan line in the monochrome pattern is also incremented. The monochrome source address calculation circuit 132 calculates the start address (MSPj) and end address (MEPj) of the source in the j-th line when Y = j, using the following equations.
[0038]
[Equation 3]
MSPj = SBASE + MOFST + j * MPTCH
MEPj = SBASE + MOFST + (j + 1) * MPTCH-1
[0039]
The bytes specified by the source are expanded in bit units sequentially from the start address MSPj, and processed in units of destination lines. The source start address MSPj and the source end address MEPj can be calculated by sequentially adding MPTCH to the initial value.
[0040]
As described above, the start address and the end address calculated by the destination address calculation circuit 12, the source address calculation circuit 13, and the pattern address calculation circuit 14 are the destination address counter 15, the source address counter 16, and the pattern address counter 17, respectively. Is set for each scan line.
[0041]
Each of the address counters 15, 16, and 17 hierarchizes the local memory 4, and performs an interface between the image data transfer device 2 and the local memory 4 for each series of continuous data units via the memory controller 3. Transfer data efficiently. For this reason, the address is decomposed as follows.
[0042]
That is, when the source data is color data, each of the address counters 15, 16, and 17 receives the received start address (FBSPn) and end address (FBEPn) from the upper side as shown in FIG. The local memory 4 is hierarchized by breaking it down into address U bits, block address V bits, and byte address W bits. The total number of bits is U + V + W bits as shown in FIG. 2B, and the capacity of the local memory 4 is 2 at the maximum. U + V + W It becomes a byte. In other words, the local memory 4 is 2 U It consists of 1 sector, 1 sector is 2 V Consists of blocks. 1 block is 2 W Consists of bytes. The example of FIG. 10A is an example where V = 3 and W = 3.
[0043]
Number of bytes in one block 2 W The byte is equal to the data bus width of the local memory 4. That is, 2 is obtained by accessing one address to the local memory 4. W Data for one byte (one block) can be transferred. Access to local memory 4 is 2 W It is continuously performed in units of bytes (one block). 2 W Byte (1 block) data transfer is at least once and at most 2 V In the maximum case, data for one sector is continuously transferred. The data bus width of each SRAM is equal to the bus width of the local memory 2 2 W It is a byte and the address is V bits. This is equal to the size of data for one sector.
[0044]
As shown in FIG. 10B, higher-speed data transfer is achieved by page mode transmission in which the upper address of the local memory 4 is the row address, the lower address is the column address, the row address is fixed, and only the column address is changed continuously. Is realized.
[0045]
When the source data is defined as monochrome data, 1-bit data corresponding to one pixel of the source data is expanded to the number of bytes defined by BPP with 0 as the background color and 1 as the foreground color. Transfer to area. FIG. 11 shows the state of this data extension. The example shown here is an example of expansion when one sector is composed of 8 blocks and one block is composed of 8 bytes. As shown in FIG. 11, 1-byte (8-bit) monochrome source data S is 8 bytes when BPP is 1, 16 bytes when BPP is 2, and 24 bytes when BPP is 3. When BPP is 4, it is expanded to 32 bytes of data and transferred to the destination area.
[0046]
FIG. 12 is a diagram showing a basic configuration of the source address counter 16. The destination address counter 15 and the pattern address counter 17 have basically the same configuration as the source address counter 16, but are not selected by the signals NXMQD and MONO. The pattern address counter 17 does not have a color tag calculation counter 40.
[0047]
The start address (FBSP) is loaded into the start address register 30. At the same time, the FBSP passes through the address update circuit 31 and the upper U bit (FBSP [U + V + W−1: V + W]) is in the sector address register 32 and the central V bit (FBSP [V + W−1: W]) is the block address. The low-order W bits (FBSP [W−1: 0]) are loaded into the byte address register 34 in the register 33, respectively. The end address (FBEP) is loaded into the end address register 35.
[0048]
First, in order to transfer the data in the local memory 4 to the source SRAM 19 (destination SRAM 18, pattern SRAM 20), the sector address (SEC) indicating the address of the sector of the local memory 4 stored in the register 32 is stored in the memory controller 3. And a block start address (BLKSTR) indicating the number of blocks to be transferred in that sector (BLKCNT) and the address of the first block to be transferred in the sector (address where the block in the sector starts) It is calculated by the block arithmetic circuit 45 and the like and sent to the memory controller 3. The intra-sector block calculation circuit 45 also calculates a block end address (BLKEND) indicating an address at which the block in the sector ends, in addition to the number of blocks (BLKCNT) and the block start address (BLKSTR) described above.
[0049]
In the calculation by the intra-sector block arithmetic circuit 45, the sector start flag (SECSTRF) that is the output of the sector start comparator 37, the sector end flag (SECENDF) that is the output of the sector end comparator 36, and the start address register 30 are stored. The block start address (FBSP [V + W-1: W]), the block end address (FBEP [V + W-1: W]) stored in the end address register 35, and XDIR indicating the X direction of transfer are input and used. It is done.
[0050]
The sector start comparator 37 compares the sector address (FBSP [U + V + W−1: V + W]) of the start address from the start address register 30 with the sector address (SEC) from the sector address register 32. (SECSTRF) is set to 1, and is set to 0 when they are not equal. The sector end comparator 36 compares the sector address (FBEP [U + V + W-1: V + W]) of the end address from the end address register 35 with the sector address (SEC) from the sector address register 32, and outputs the output if they are equal. Data (SECENDF) is set to 1, and is set to 0 when they are not equal.
[0051]
FIG. 13 is a diagram for explaining sector data stored in the sector address register 32.
[0052]
For example, when XDIR = 0 is defined and SECSTRF and SECENDF are 0, the sector address stored in the sector address register 32 is the first sector of the line constituting the rectangular area as shown in FIG. It turns out that it is not the last sector. In this case, the number of blocks in the sector (BLKCNT) is 2 V The block start address (BLKSTR) is 0 and the end address (BLKEND) is 2. V-1 It becomes.
[0053]
When SECSTRF is 1 and SECENDF is 0, it can be seen from FIG. 4B that the sector stored in the sector address register 32 is the first sector of the line constituting the rectangular area. In this case, the number of blocks in the sector is 2 V -FBSP [V + W-1: W], the block start address is FBSP [V + W-1: W], and the end address is 2. V-1 It becomes.
[0054]
Also, when SECSTRF is 0 and SECENDF is 1, it can be seen from FIG. 5C that the sector stored in the sector address register 32 is the last sector of the line constituting the rectangular area. In this case, the number of blocks in the sector is FBEP [V + W−1: W] +1, the start address of the block is 0, and the end address is FBEP [V + W−1: W].
[0055]
Further, when both SECSTRF and SECENDF are 1, it can be seen from FIG. 4D that the sector stored in the sector address register 32 is the first sector and the last sector of the line constituting the rectangular area. In this case, the number of blocks is FBEP [V + W−1: W] −FBSP [V + W−1: W] +1, the block start address is FBSP [V + W−1: W], and the end address is FBEP [V + W−. 1: W]. The above results and the respective cases when XDIR = 1 are summarized in a table as shown in FIG.
[0056]
The block start comparator 39 compares the block address (FBSP [V + W−1: W]) portion of the start address register 30 with the block address (BLK) stored in the block address register 33, and if the block address is equal, the output data ( BLKSTRF) is output as 1, and when not equal, 0 is output. The block end comparator 38 compares the block address (FBEP [V + W−1: W]) portion of the end address register 35 with the block address (BLK) stored in the block address register 33, and outputs an output if they are equal. Data (BLKENDF) is output as 1 and when it is not equal, it is output as 0.
[0057]
Based on the outputs SECENDF, SECSTRF, BLKENDF, and BLKSTRF of each of the above-described comparators 36 to 39, the start mask calculation circuit 46 calculates a start mask (STRMSK), and the end mask calculation circuit 47 calculates an end mask (ENDMSK). As shown in FIG. 15, the start and end masks are both continuous 2 consisting of 0 or 1 data. W It is a bit pattern, and 1 bit of each mask corresponds to 1 byte of data read from each SRAM 18, 19, 20 and 2 bits. W The bit pattern corresponds to one block of data.
[0058]
The mask logical product operation circuit 48 receives the start and end masks, which are output data from the start and end mask operation circuits 46 and 47, and calculates the logical product data (AMSK), thereby starting address (FBSP). 1 is assigned to the byte existing between the address and the end address (FBEP), and 0 is assigned to the other byte as a flag.
[0059]
For example, as shown in FIG. 16A, the calculation of the start mask in the start mask calculation circuit 46 is performed when the binary pattern (2) in which all of the W bits are 1 when XDIR = 0. W -1) is shifted to the right by the number indicated by the byte address (BYT) in the byte address register 34, and zeros are filled from the left. Similarly, as shown in FIG. 4B, the calculation of the start mask when XDIR = 1 is performed by using a binary pattern (2 W -1) to 2 W This is done by shifting left by the number indicated by -1-BYT (byte address) and padding with zeros from the right. In this case, when the start address (FBSP) is in the block, both SECSTRF and BLKSTRF are 1. The intra-block start address calculation circuit 49 calculates an address (BYTSTR) in the block where the mask starts at this time.
[0060]
On the other hand, as shown in FIG. 6C, the end mask calculation in the end mask calculation circuit 47 is performed when the byte address of the end address (FBEP) is FBEP [W-1: 0] when XDIR = 0. , A binary pattern (2 W -1) to 2 W This is done by shifting left by -1-FBEP [W-1: 0] and padding with zeros from the right. Similarly, as shown in FIG. 4D, the calculation of the end mask when XDIR = 1 is the binary number pattern (2 W -1) is shifted to the right by FBEP [W-1: 0], and zeros are padded from the left. In this case, both SECSTRF and BLKSTRF are 1 when the start address is in the block. Each mask calculated in this way is sent to the mask arithmetic circuit 23 for each block.
[0061]
The start flag circuit 50 inputs the output SECSTRF of the sector start comparator 37 and the output BLKSTRF of the block start comparator 39 and outputs a start flag XSTRF. The end flag circuit 51 inputs the output SECENDF of the sector end comparator 36 and the output BLKENDF of the block end comparator 38 and outputs an end flag XENDF.
[0062]
The color tag calculation counter 40 is used in a subsequent stage for calculation of transparent processing (transparency processing), and is set to be initialized when a start address (FBSP) and an end address (FBEP) are input. Has been. The color tag calculation counter 40 updates the output tag block address (TGBLK) in synchronization with the output BLK from the block address register 33 being updated.
[0063]
The update pattern is determined by BPP and XDIR, and the initial value and the update pattern are as shown in FIG. For example, when XDIR is 0, when 1 byte per pixel (BPP is 1), the initial value = 0 and 0 is always output, and when 2 bytes per pixel (BPP is 2), the initial value = 0 TGBLK is updated to repeat 0, 1, 0, 1,..., And when 3 bytes per pixel (BPP is 3), the initial value = 0 and TGBLK is 0, 1, 2, 0, 1 , 2... Is updated, and when 4 bytes per pixel (BPP is 4), the initial value = 0 and TGBLK repeats 0, 1, 2, 3, 0, 1, 2, 3. As updated. In addition, when XDIR is 1, when 1 byte per pixel (BPP is 1), the initial value = 0, and 0 is always output. When 2 bytes per pixel (BPP is 2), the initial value = 1. TGBLK is updated so as to repeat 1, 0, 1, 0... When 3 bytes per pixel (BPP is 3), the initial value = 2 and TGBLK is 2, 1, 0, 2, 1 , 0... Is updated, and when 4 bytes per pixel (BPP is 4), the initial value = 3 and TGBLK repeats 3, 2, 1, 0, 3, 2, 1, 0. As updated. The output TGBLK of the color tag calculation counter 40 in the destination address counter 15 and the source address counter 16 is sent to the destination SRAM 18 and the source SRAM 19, respectively, as will be described later, and a tag selection circuit 93 in each SRAM. Used to select the output of.
[0064]
The address update circuit 31 recognizes the output sector address (SEC) from the sector address register 32 and the output block address (BLK) from the block address register 33 as a series of values, and in the end address register 35 according to an instruction from the controller 24. The address is incremented in increments of BLK until it matches the value of, and the sector address (SEC) and block address (BLK) are updated. In this case, whether the value matches the value in the end address register 35 is detected by the end flag circuit 51 when both SECENDF and BLKENDF are 1.
[0065]
The above is a case where the source data is color data, but the unique function of the source address counter 16 when the source data is monochrome data will be described.
When the color data is selected as the source data, the address update circuit 31 has one block (2 W The address is incremented in units of bytes). When monochrome data is selected as the source data, the address is incremented in units of 1 byte by the signal NXMQD from the tag block counter 40. The signal NXMQD is output when the tag block indicated by the tag block counter 40 comes to the end of the block, and the output timing differs depending on the BPP. The details are shown in FIG. When BPP = 1, the signal NXMQD is always ON. When BPP = 2, the tag block is 0 and OFF, 1 and ON. When BPP = 3, the tag block is 0 and 1 and OFF, and 2 and ON. When BPP = 4, the tag block is OFF at 0, 1, 2 and ON at 3.
[0066]
The start mask calculation circuit 46 and the end mask calculation circuit 47 switch their functions when the MONO signal is turned on in order to deal with monochrome data, and always set all 1 data as the start mask (STRMSK) and end mask (ENDMSK). Output. Thus, the initial value of the source data mask (AMSK) is always all 1. Similarly, in the case of monochrome data, the byte start address (BYTSTR) is always output as BYTSTR = 0. The tag block counter 40 receives the signal NMEX. The signal NMXEX is output from the controller 24. When the source data is monochrome data and the mask value of the source becomes 0, the next mask (all 1) is loaded into the mask arithmetic circuit 23 and the tag block counter 40 is incremented. Is output for When the source data is monochrome data, the tag block counter 40 is updated by the signal NXMEX. The tag block counter 40 outputs a signal NXMQD to increment the address update circuit 31 when updated to the last block.
[0067]
Next, the mask calculation circuit 23 in the image data transfer apparatus 2 will be described. The mask operation circuit 23 mainly receives mask data AMSK (hereinafter referred to as DSTMSK, SRCMSK, PATMSK, respectively) and blocks sent from the address counters 15, 16, and 17, respectively. Based on the internal start address BYTSTR (hereinafter referred to as DBYTSTR, SBYTSTR, and PBYTSTR), calculations for controlling the data transfer of the image display device 5 are performed. Each start address represents an address at which the mask at that time starts.
[0068]
As shown in FIG. 19, the destination, source, and pattern start addresses (FBSP) indicate arbitrary addresses in the local memory 4. Based on these addresses, the mask operation circuit 23 controls the transfer by making the destination, source, and pattern bytes be transferred one-to-one from the transfer start byte at the time of data transfer. .
[0069]
FIG. 20 is a block diagram showing the internal configuration of the mask arithmetic circuit 23. As shown in FIG.
The mask operation circuit 23 reads out the data from each of the SRAMs 18, 19, and 20 until the sector data of any one of the destination, the source, and the pattern transferred from the local memory 4 to the SRAMs 18 to 20, respectively, is lost. Calculate to output to.
[0070]
First, as shown in FIG. 21A, DSTMSK from the destination address counter 15, SRCMSK from the source address counter 16, and PATMSK from the pattern address counter 17 are input to the mask operation circuit 23, and each mask is inputted. It passes through the selectors 53, 54, 55 and is stored in the respective registers 56, 57, 58. On the other hand, the in-block start addresses DBYTSTR, SBYTSTR, and PBYTSTR from the address counters 15, 16, and 17 are input to the subsequent subtractors 63, 64, 65, and 66 through the address selectors 60, 61, and 62, respectively. The
[0071]
The subtractor 63 calculates an address difference (SRCSFT) within one block where the masking of DSTMSK and SRCMSK starts and outputs it to the register 67. Similarly, the subtractor 65 calculates an address difference (PATSFT) within one block where the DSATMSK and PATMSK masks start and outputs the calculated difference to the register 69. The shifters 71 and 72 input the address differences SRCSFT, PATSFT and XDIR output from the subtractors 63 and 65 and stored in the registers 67 and 69, the shifter 71 receives the source mask data SRCMSK, and the shifter 72 receives the pattern mask data PATMSK. Each shifts until the start of the mask matches DSTMSK. The shift at this time is possible in both positive and negative directions with respect to DSTMSK. The result is output from the shifters 71 and 72 to the logic operation circuit 73 as adjusted mask data (SRCADJ, PATADJ), respectively. As shown in FIG. 5A, the logical operation circuit 73 inputs DSTMSK in addition to these mask data and calculates a logical product to determine a byte to be processed in DSTMSK.
[0072]
At the same time, the subtracters 64 and 66 calculate the shift numbers (SRCREV and PATREV) corresponding to the shifts in the direction opposite to the direction shifted by the shifters 71 and 72 based on the address differences SRCSFT and PATSFT, and output them to the registers 68 and 70. . The shifters 74 and 75 receive the shift numbers SRCREV and PATREV stored from the registers 68 and 70, respectively, and shift the output mask data (PRCMSK) from the logical operation circuit 73 by the shift numbers to mask (SRCRMV, PATRMV). And is output to the source mask logic operation circuit 77 and the pattern mask logic operation circuit 79, respectively. The masks SRCRMV and PATRMV indicate portions of the source mask SRCMSK and the pattern mask PATMSK that contribute to the calculation of the destination mask DSTMSK.
[0073]
As shown in FIGS. 21C and 21D, the source mask logic operation circuit 77 and the pattern mask logic operation circuit 79 perform masks of portions corresponding to the masks SRCRMV and PATRMV, respectively, from the source mask SRCMSK and the pattern mask PATMSK. Calculate the removal. As a result, the masks (SRCUDT, PATUDT) removed and output are updated as SRCMSK and PATMSK to be calculated next, and these are stored in the registers 57 and 58 through the source mask selector 54 and the pattern mask selector 55, respectively. Is done. Both logical operation circuits 77 and 79 output signals (SRCZR and PATZR) indicating that the mask has become zero to the controller 24 when it is determined that there is no mask. Upon receiving the signals SRCZR and PATZR, the controller 24 performs control so that new one block of mask data is stored in the registers 57 and 58 through the source and pattern mask selectors 54 and 55.
[0074]
At this time, the controller 24 instructs the source and pattern address counters 16 and 17 to update the block, and the mask data for one new block output from the address counters 16 and 17 is stored in the registers 57 and 58. Stored in At the same time that the mask data is stored in the registers 57 and 58, new start addresses SBYTSTR and PBYTSTR are input from the address counters 16 and 17 to the source and pattern address selectors 61 and 62, and then the mask start addresses (SSTAD, PSTAD) is output to the subtracters 63 to 66 as described above.
[0075]
The updated source and pattern masks (SRCMSK, PATMSK) are input to the source priority encoder (SPRIENC) 81 and pattern priority encoder (PPRIENC) 80, respectively, and addresses SXUDT and PXUDT at which the mask starts are calculated. If the updated mask is not zero, the source and pattern address selectors 61 and 62 use the previously calculated addresses SXUDT and PXUDT as the mask start addresses SSTAD and PSTAD, SSTAD to the subtracters 63 and 64, and PSTAD Output to the subtracters 65 and 66, respectively.
[0076]
On the other hand, as shown in FIG. 21B, the destination mask logic operation circuit 76 performs a process of removing a portion of the input destination mask data DSTMSK that matches the PRCMSK from the logic operation circuit 73. The removed mask DSTUDT that is the output is updated as DSTMSK to be calculated next, and is stored in the register 56 through the destination mask selector 53. The logic operation circuit 76 also outputs a signal DSTZR indicating that the mask has become zero to the controller 24 when it is determined that the mask does not exist. Upon receiving this signal DSTZR, the controller 24 causes the destination address counter 15 to update the block and output mask data for a new block. This mask data is input to the destination mask selector 53 and stored in the register 56.
[0077]
This updated destination mask DSTMSK is input to a destination priority encoder (DPRIENC) 82, where an address DXUDT at which the mask starts is calculated. If the updated mask is not zero, the destination address selector 60 outputs the previously calculated address DXUDT to the subtracters 63 to 66 as the mask start address DSTAD.
[0078]
In the above mask calculation processing process, for example, when the source mask becomes zero and the update of all blocks in one sector transferred from the local memory 4 to the source SRAM 19 is completed, the controller 24 Is transferred to the source SRAM 19. When the destination mask becomes zero and the update of all the blocks in one sector transferred from the local memory 4 to the destination SRAM 18 is completed, the controller 24 waits for the raster operation by the raster operation circuit 21 to end. Then, the updated destination data stored in the output FIFO 22 is written to the local memory 4 and the next sector data is transferred to the destination SRAM 18. Further, when the pattern mask becomes zero and the update of all blocks in one sector transferred from the local memory 4 to the pattern SRAM 20 is completed, the controller 24 controls to transfer the next sector data to the pattern SRAM 20. I do.
[0079]
At this time, the logic operation circuit 78 calculates a mask (SRCPRC) indicating a part contributing to PRCMSK in the byte pattern of the source data. This mask SRCPRC can be obtained by the following calculation. That is, if SRCPRC has a zero byte does not contribute to PRCMSK, but SRCPRC has a premise that one byte contributes to PRCMSK, then SRCPRC = SRCMSK & SRCRMV can be obtained. This is used for the calculation of the enable flag in the subsequent raster operation circuit 21.
[0080]
Next, color tag calculation processing performed in each of the SRAMs 18 to 20 in the image data transfer device 2 will be described. FIG. 22 is a block diagram showing the configuration of the source SRAM 19. The destination SRAM 18 and the pattern SRAM 20 have basically the same configuration as that of the source SRAM 19. However, the destination SRAM 18 and the pattern SRAM 20 include a monochrome expansion device 96 and a selection circuit for selecting color / monochrome data associated therewith. (MUX) 97 and 98 are not provided. The pattern SRAM 20 does not have a start byte register 90, a tag block register 91, a tag calculation circuit 92, a tag selection circuit 93, and a transparent flag calculation circuit (TRP) 95.
[0081]
The line address counter (CNTR) 85 in the source SRAM 19 (destination SRAM 18 and pattern SRAM 20) receives the block start signal (BLKSTR) and block counter signal (BLKCNT) from the corresponding destination, source and pattern address counters 15, 16, and 17, respectively. ). These signals are also output to the memory controller 3 at the same time.
[0082]
The memory controller 3 reads the sector address SEC from the local memory 4 and the data specified by BLKCNT from the address specified by BLKSTR, and reads this data to a memory (not shown) such as SRAM in the image display device 5. Transfer data. This BLKSTR is the start of the write address of the SRAM 88, data is transferred from the local memory 4 by the address given by BLKCNT, and the transferred data is written to the SRAM 88. After the data is transferred to the SRAM 88, the data is read out this time. This data reading is performed based on the corresponding block address (BLK) sent from each address counter 15, 16, and 17.
[0083]
At this time, the address of the SRAM 88 is switched to the BLK side output from each of the address counters 15 to 17 by the selector 86 according to an instruction from the controller 24, and the data for one block read from the SRAM 88 by this BLK is Once stored in the register 89, if it is color data, it is transferred to the subsequent raster operation circuit 21 via the selection circuit 97 and the register 94. In the case of monochrome data, the data for one block read from the SRAM 88 is expanded to color data by the monochrome expansion device 96, and then the raster operation circuit in the subsequent stage via the selection circuit 97 and the register 94. 21 is transferred.
[0084]
At this time, calculation for transparent processing (transparency processing) is simultaneously performed in each of the SRAMs 18 to 20 using the color tag. This will be described below.
[0085]
The start byte register 90 keeps holding the byte address of the first FBSP of one line constituting the rectangular area throughout the process of one line. The tag block register 91 is a register that holds a tag block for each block, and is updated every time the block is processed. The output data BYTSTR of the start byte register 90 accesses a subsequent tag calculation circuit (TAGTBL) 92, and the output data TGBLK of the tag block register 91 accesses a tag selection circuit (MUX) 93. The tag selection circuit 93 plays a role of selecting one of the plurality of output data TAGTBL from the tag calculation circuit 92.
[0086]
Here, as shown in FIG. 23, one pixel is composed of data of up to 4 bytes. For this pixel data of up to 4 bytes, if a color tag (CT) from 0 to 3 is defined in each byte, It can be seen that the color tag is 0 when 1 pixel is 1 byte. From the figure, when one pixel is 2 bytes, the upper byte is 1, and the lower side is 0, 3 bytes are 2, 1, 0 from the upper side, and 4 bytes are 3, 2, 1 from the upper side. , 0.
[0087]
As shown in FIG. 24, the color tags are allocated in order from the first byte specified by the start address FBSP, and are repeated up to the end address FBEP in units of BPP. Here, since the maximum BPP is 4 bytes, the tag calculation circuit 92 has a maximum of 2 bytes. W It can be seen that a color tag of × 4 bytes is output. 2 W Since 2 bytes of data are processed simultaneously, 2 W If the color tag for each byte is a tag block TGBLK, the configuration is defined as shown in FIG.
[0088]
When the relationship between the color tag, tag block, and BPP defined in this way is considered as the output TAGTBL of the tag calculation circuit 92, it is as shown in FIGS. In this case, the lower bit W is W = 3.
[0089]
As shown in FIG. 26A, the value of the color tag when the BPP is 1 byte is always zero. The value of the color tag when BPP is 2 bytes is determined by the XSB and the LSB (Least Significant Bit / Byte) of the byte part BYTSTR of the start address.
When XDIR = 0 and BYTSTR [0] = 0, or
When XDIR = 1 and BYTSTR [0] = 1, the result is as shown in FIG.
When XDIR = 0 and BYTSTR [0] = 1, or
When XDIR = 1 and BYTSTR [0] = 0, the result is as shown in FIG.
[0090]
Further, as shown in FIG. 27, the value of the color tag when the BPP is 3 bytes is determined by 3 bits on the LSB side of the byte part BYTSTR of the XDIR and the start address.
When XDIR = 0 and BYTSTR [2: 0] = 0, 3, 6 or
When XDIR = 1 and BYTSTR [2: 0] = 1, 4, 7 as shown in FIG.
When XDIR = 0 and BYTSTR [2: 0] = 2, 5, or
When XDIR = 1 and BYTSTR [2: 0] = 0, 3, 6 as shown in FIG.
When XDIR = 0 and BYTSTR [2: 0] = 1, 4, 7 or
When XDIR = 1 and BYTSTR [2: 0] = 2, 5, they are defined as shown in FIG.
[0091]
Further, the color tag value when the BPP is 4 bytes is determined by 2 bits on the LSB side of the XDIR and BYSTR as shown in FIG.
When XDIR = 0 and BYTSTR [1: 0] = 0, or
When XDIR = 1 and BYTSTR [1: 0] = 3, as shown in FIG.
When XDIR = 0 and BYTSTR [1: 0] = 3, or
When XDIR = 1 and BYTSTR [1: 0] = 2, the result is as shown in FIG. Similarly,
When XDIR = 0 and BYTSTR [1: 0] = 2, or
When XDIR = 1 and BYTSTR [1: 0] = 1, as shown in FIG.
When XDIR = 0 and BYTSTR [1: 0] = 1, or
When XDIR = 1 and BYTSTR [1: 0] = 0, they are defined as shown in FIG.
[0092]
TAGTBL, which is the output of the tag calculation circuit 92, is input to the tag selection circuit 93, where the portion specified by TGBLK calculated by the color tag calculation counter 40 in the destination and source address counters 15 and 16 is selected. Color tag (CT). The color tag consists of 2 bits W The color tag of each byte data in one block. This color tag is output to a transparent calculation circuit (TRP) 95 for transparent calculation.
[0093]
Next, the monochrome expansion device 96 will be described. The monochrome expansion device 96 expands the number of bits of each pixel when the source data is monochrome data, and includes a byte address register (BYTREG) 101, a byte data selection circuit (PXLMUX) 102, and a data expansion circuit (BYTEXP). ) 103, a block selection circuit (BLKMUX) 104, and a color output circuit (COLEXP) 105.
[0094]
The byte address register 101 is a register that stores the byte address BYT from the source address counter 16. When the source is monochrome data, the source address counter 16 in the preceding stage is incremented in units of bytes, so that the register 101 outputs 2 from the local memory 4. W An address indicating which byte of the byte (8 bytes in the illustrated example) data is stored is stored. The byte data selection circuit 102 has 2 W This is a circuit for selecting the color output data for bytes by the byte address BYT stored in the byte register 101. FIG. 29 shows further details of the monochrome expansion device 96. The byte data selection circuit 102 outputs 2 from the local memory 4. W Of the byte read data RDT [63: 0], only one byte specified by the byte address BYT is selected and output to the subsequent stage. By incrementing the source address counter 16 byte by byte, the byte data selection circuit 102 sequentially selects the read data RDT byte by byte and outputs it to the subsequent stage.
[0095]
The data expansion circuit 103 expands monochrome 1-bit data from 1 bit to 4 bits based on the designation of BPP. The state of this expansion is shown in FIG. Data expansion circuit 103 inputs 1-byte data selected by byte address BYT from read data RDT. The 1-byte (8-bit) data is expanded by BPP to a maximum of 32 bits and output as an extended byte BYTEX. Since 8-bit data is monochrome data, 0 indicates the background color and 1 indicates the foreground color. When BPP = 1, 8-bit data is output as BYTEX as it is. In the case of BPP = 2, as shown in FIG. 30, the data of each bit of 8-bit data is copied by 2 bits each and is expanded to BYTEX of 16-bit data as a whole. In the figure, [0] [0] indicates that the data (0 or 1) of the input bit [0] is copied to 2 bits. The two copied bits indicate the same pixel. Similarly, when BPP = 3, 1 bit of the input is copied to 3 bits and 24 bits of BYTEX is output. When BPP = 4, 1 bit of the input is copied to 4 bits and 36 bits. BYTEX is output.
[0096]
The block selection circuit 104 selects a portion (8 bits) designated by the tag block TGBLK from the monochrome data BYTEX expanded by the data expansion circuit 103, and outputs it to the color output circuit 105 at the next stage as a monochrome output block MONFLG. Output. FIG. 31 shows the relationship between the expanded bit data, the tag block TGBLK, and the color tag CT. When BPP = 1, TGBLK = 0 and the entire 8-bit BYTEX is selected and output. When BPP = 2, the lower 8 bits of the 16-bit BYTEX are selected when TGBLK = 0, and the upper 8 bits are selected when TGBLK = 1. The same applies hereinafter.
[0097]
The color output circuit 105 has a bus width of 2 as shown in FIG. W Is 8 bytes, it is composed of eight color expansion units (COL_EXP_UNIT) 110-117. One bit of 1-bit monochrome data MONFLG that has been expanded is input to one color expansion unit 11n, which is converted into 1-byte color component data MONEX and output. Each color expansion unit 11n refers to whether the expanded monochrome data MONFLG is 0 or 1, and the corresponding color tag CTnC, and selects an appropriate foreground color or background color stored in the register in advance. Choose ingredients. The color expansion unit 11n includes a background selection circuit (BGMUX) 118a for selecting a background color component, a foreground selection circuit (FGMUX) 118b for selecting a foreground color component, and a BG / FG selection circuit (BFMUX) 119 for selecting output data. Consists of The background selection circuit 118a and the foreground selection circuit 118b both generate an 8-bit component of the 32-bit color data constituting the background color and the foreground color according to the values of the corresponding color tags CT0C to CT7C. select. The BG / FG selection circuit 119 selects the background color component when the monochrome data MONFLG is 0, and selects the foreground color component when the monochrome data MONFLG is 1. The output MONEX of the BG / FG selection circuit 119 is input to a color / monochrome data selection selection circuit (MUX) 97 that switches between color data and monochrome data for output, and the subsequent raster operation circuit 21 via the register 94. Forwarded to Further, the output MONEX from the BG / FG selection circuit 119 is also input to the transparent calculation circuit (TRP) 95 through the similar selection circuit 98.
[0098]
Next, the transparent calculation circuit 95 will be described. Transparent processing is processing that does not update a pixel when the pixel value matches a predefined transparent color. Specifically, if the source pixel value matches the source parent color, the pixel is not updated or the destination pixel value is overwritten. If the destination pixel value matches the destination color, the pixel is not updated or the destination pixel value is overwritten.
[0099]
FIG. 33 is a diagram showing an internal configuration of the transparent calculation circuit 95. The transparent calculation circuit 95 mainly includes an FG / BG selector 120, 2W selectors 121 to 126, and 2W comparators 127 to 132, 2 W Registers 133-138,2 W Each of the calculators 139 to 144, the register 145, and the R / L selector 146 is configured. 2 W Each of the selectors, comparators, registers, and arithmetic units is provided corresponding to each byte data in one block.
[0100]
The FG / BG selector 120 transmits the background color (FG: foreground color) of the transfer destination area and the background color (BG: background color) of the transfer source area sent from an interface (not shown) before being sent in the same way. Selection is made using transparent color data (FGTR), and which one is to be made transparent color is determined. As a result, the output TRCOL of the FG / BG selector 120 becomes a new transparent color. The transparent calculation circuit 95 compares the pixel data stored in the destination area or the source area with the transparent color in units of pixels. If the result is equal, the pixel data is assumed to be transparent, as shown in FIG. Thus, a flag (TRPF) for preventing rewriting to new data is output to the subsequent stage.
[0101]
TRCOL output from the FG / BG selector 120 is 4 bytes at the maximum according to the definition of BPP. Each selector 121-126 has a color tag (CT0-CT2). W -1), the byte component constituting TRCOL is selected by the value of the color tag, and is output to each of the comparators 127 to 132. In response to this, each of the comparators 127 to 132 compares output data (RDT) from a memory (not shown) with the selected transparent color component in byte units, and defines 1 when they are equal and 0 when they are not equal. The comparison result NEQ is output. Each of the registers 133 to 138 temporarily holds the result NEQ and the corresponding color tag (CT) compared with each of the comparators 127 to 132, and the held NEQ and CT are the CEQ and CCT of the current data. Output as. The register 145 holds the current comparison result CEQ and outputs them to the R / L selector 146 as a PEQ.
[0102]
Here, as shown in FIG. 34, the direction in which one byte approaches the zero byte of the byte address is left, 2 W If the direction approaching -1 byte is on the right, the maximum BPP is 4 bytes. Therefore, refer to the comparison results of the comparators 127 to 132 for 3 bytes at the maximum including the current color tag. For example, it can be determined whether the pixel is equal to the color given as transparent.
[0103]
At this time, there is a case where byte data in one pixel straddles between blocks. In this case, as shown in FIG. 35, each comparator of block data before or after the block currently being processed is compared. Reference is made to the comparison results at 127-132.
[0104]
Further, PEQ becomes a comparison result in each of the comparators 127 to 132 of the block processed immediately before the current processing, and NEQ indicates each block of the block processed immediately after the current processing. The comparison results in the comparators 127 to 132 are obtained. From the zero byte of the comparison result CEQ in each comparator 127 to 132 of the current process to 2 W Each of 3 bytes adjacent to the left and right for each byte up to -1 byte can be represented as shown in FIG.
[0105]
As is apparent from the tables (a) and (b) of FIG.
Left3, left2, left1 for CEQ0,
Left3, left2 for CEQ1,
Left3 for CEQ2,
CEQ2 W -3 for right-3,
CEQ2 W -Right3, -right2 for -2,
CEQ2 W Right3, right2, and right1 for -1 are different depending on XDIR.
[0106]
The R / L selector 146 inputs and selects the above-described NEQ, PEQ, and XDIR, and selects an appropriate one from the CEQ2 W -1, CEQ2 W -2, CEQ2 W -3, CEQ2, CEQ1, and CEQ0 are output to the calculators 139 to 144. Each of the calculators 139 to 144 can know which of the left and right comparators 127 to 132 should be referred to based on the input CCT and BPP. For example, when BPP is 1, zero bytes to 2 W It can be said that the comparison results of the comparators 127 to 132 up to −1 byte indicate whether or not they are transparent. At this time, it can be said that 0 is not transparent, and 1 is transparent.
[0107]
For example, as shown in FIG. 37 (a), when BPP is 2, referring to the comparison result of each comparator 127-132 of 1 byte each on the left and right for the current process, either left or right Whether to refer to the comparison result depends on the value of the color tag currently being processed. When the color tag of the current process is zero, the right byte is the same pixel, and when the color tag of the current process is 1, the left byte is the same pixel. If the comparison results of the comparators 127 to 132 are both 1, it can be said that this pixel is transparent. FIG. 37 shows that portions other than the white background are the same pixel.
[0108]
When BBP is 3, the comparison result in each of the comparators 127 to 132 is referred to at a maximum of 2 bytes on the left and right for the current process. If the comparison results of the comparators 127 to 132 in the same pixel portion are all 1, it can be said that the pixel is transparent.
[0109]
Further, when the BPP is 4, the comparison result of each of the comparators 127 to 132 of 3 bytes at the left and right is referred to the current process. In this case as well, if all the comparison results of the comparators 127 to 132 in the same pixel portion are 1, it can be said that this pixel is transparent. As described above, the results calculated by the comparators 127 to 132 are output to the raster operation circuit 21 as TRPF.
[0110]
Finally, the raster calculation circuit 21 in the image data transfer apparatus 2 will be briefly described. FIG. 38 is a diagram showing the internal configuration of the raster operation circuit 21. This raster operation circuit 21 performs raster operation on the data read from the destination SRAM 18, 18, and 20 of the pattern. .
[0111]
The raster arithmetic circuit 21 mainly shifts the data for one block from the source SRAM 19 in units of byte data, and shifts the data for one block from the pattern SRAM 20 in the same way. Shifter 151, 2 to perform 8-bit raster operation W 8-bit raster operation circuits 1521 to 152n, enable data calculation circuit 153 for calculating write enable data, shifter (not shown) for shifting the source transparent flag in the enable data calculation circuit 153, and the result of the raster operation 2 to store W Each register 1541 to 154n is configured.
[0112]
First, 2 read from the destination SRAM 18 W The byte destination data is input to the corresponding 8-bit raster arithmetic circuits 1521 to 152n. 2 read from the source SRAM 19 W The byte source data is shifted in byte units by the SB shifter 150 by an amount equal to the address difference SRCSFT in one block which is the shift data calculated by the mask arithmetic circuit 23, and is made to correspond to the destination data. Similarly, 2 read from the pattern SRAM 20 W The byte pattern data is also shifted in units of bytes by the PB shifter 151 by an amount equal to the PATSFT calculated by the mask operation circuit 23, and is made to correspond to the destination data. The 8-bit raster operation circuits 1521 to 152n perform raster operation with these destinations, sources, and pattern data according to the designated code, and store the results in the registers 1541 to 154n. At this time, the registers 1541 to 154n receive the PRCMSK calculated by the mask arithmetic circuit 23, and store only the data for which the PRCMSK is 1.
[0113]
The enable data calculation circuit 153 receives a transparent flag (DTRPF) from the destination SRAM 18, a transparent flag (STRPF) from the source SRAM 19, SRCPRC, SRCSFT, PRCMSK, etc. from the mask calculation circuit 23. Based on the input information, the enable data calculation circuit 153 calculates an enable flag EN that determines whether or not each byte data is written to the local memory 4. In the case of transparent, the enable flag EN is changed so that writing to the local memory 4 is not performed and the previous value is maintained in the local memory 4 as it is.
[0114]
The output FIFO 22 at the subsequent stage of the raster operation circuit 21 writes the result stored in the registers 1541 to 154n into its own memory (not shown) when the raster operation of all the byte data in one block is completed. . When all the data for one destination sector has been written to the memory in the output FIFO 22, the data for one sector is continuously output to the memory controller 3, and the data is written to the local memory 4. Is doing the transfer.
[0115]
Finally, a specific processing example when the source data is given as monochrome data will be described.
Consider the transfer of monochrome data with x marks of 16 pixels × 16 lines shown in FIG. 39 (a), assuming that one sector consists of 8 blocks, 1 block consists of 8 bytes, and BPP = 3.
[0116]
The interface 11 receives the destination destination data parameter and the monochrome source data parameter, and sets the data in the corresponding registers of the destination address calculation circuit 12 and the monochrome source address calculation circuit 132 in the source address calculation circuit 13. . The calculated destination address (start address and end address) and source monochrome address (start address and end address) are transferred to the destination address counter 15 and the source address counter 16. Thereafter, under the control of the controller 24, the address from the destination address counter 15 is used to access the local memory 4, and the sector including the first line of data is transferred to the destination SRAM 18. If all data cannot be transferred to the destination SRAM 18, the transfer is repeated in units of sectors. Similarly, the monochrome data for the first line is transferred to the source SRAM 19.
[0117]
Both the destination data and the source data are transferred from the local memory 4 and then read from the SRAMs 18 and 19. The data marked with x is as shown in FIG. For example, it is assumed that monochrome source data marked with “x” is stored as shown from the address A00004 outside the display area of the local memory 4. The source address counter 16 decomposes the address A000004, BYT = 4 is set in the byte address register 34, 0 is set in the block address register 33, and 280000 is set in the sector address register 32. The start address (BYTSTR) in the block where the mask starts is BYTSTR = 0. The color tag calculation counter 40 is reset to TGBLK = 0. The source data mask (AMSK) is 11111111, which is output to the mask operation circuit 23 as a source mask pattern.
[0118]
One block of data is read from the SRAM 88 in the source SRAM 19 at a time. The read data is input to the byte data selection circuit (PXLMUX) 102 of the monochrome expansion device 96, and 1-byte data of the corresponding portion is selected by the byte address BYT output from the source address counter 16. In the case of the figure, 80 data with the address 4 in the block is output. The output from the byte data selection circuit (PXLMUX) 102 is input to the data expansion circuit (BYTEXP) 103. Here, the 1-byte data 80 is expanded to BPP = 3 data. Accordingly, 1-byte data 80 (10000000) is expanded to 111 000 000 000 000 000 000 000 and 3-byte data. The block selection circuit (BLKMUX) 104 selects a portion (one byte) indicated by the color tag calculation counter 40 from the expanded three-byte data, and outputs this as a monochrome output block MONFLG. In this case, 111 000 00 is selected when TGBLK = 0, and is input to the color output circuit (COLEXP) 105.
[0119]
Color tags CT0C to CT7C operating in synchronization with the color tag calculation counter 40 are input to the color output circuit 105. The color tags CT0C to CT7C are input to the foreground selection circuit 118b and the background selection circuit 118a in the corresponding color expansion units 110 to 117, and are 1-byte components constituting the foreground color and background color stored in advance. Is output. The data of the color tags CT0C to CT7C are 01201201. In the output block MONFLG, 0 corresponds to the background color, and 1 corresponds to the foreground color. Assuming that the foreground color is FG [23: 0] = 123456h and the background color is BG [23: 0] = 789ABCh, the color expansion unit (# 0) 110 has the color tag CT0C set to 0 and the output block MONFLG set to 1. The foreground color component 56 is output.
These are shown in FIG.
[0120]
As shown in the table of FIG. 40, correctly assigned foreground color components and background color components are output from the monochrome expansion device 96 via the selection circuit 97.
[0121]
The output data is controlled by the mask calculation circuit 23. When the source mask data reaches 00000000, the color tag calculation counter 40 in the source address calculation circuit 13 is incremented, and at the same time, the mask calculation circuit 23 is newly loaded with a mask 11111111 as a source mask. At the same time, the value of the tag block TGBLK input to the block selection circuit 104 in the monochrome expansion device 96 becomes 1, and the color tags CT0C to CT7C are also updated. The output block MONFLG output from the block selection circuit 104 becomes 1-byte data (0 000 000 0) in the middle of the extended 24 bits [FIG. 40 (b)].
[0122]
Similarly, when the source mask data reaches 00000000, the color tag calculation counter 40 in the source address calculation circuit 13 is incremented, and at the same time, a new mask 11111111 is loaded into the mask calculation circuit 23 as a source mask. At the same time, the value of the tag block TGBLK input to the block selection circuit 104 in the monochrome expansion device 96 becomes 2, and the color tags CT0C to CT7C are also updated. The output block MONFLG becomes the last one byte data (00 000 000) of the expanded 24 bits [FIG. 40 (c)].
[0123]
In this state, when the source mask becomes 0, the signal NXMQD is sent from the color tag calculation counter 40 in the source address calculation circuit 13 to the address update circuit 31. As a result, the address update circuit 31 is incremented by 1 byte. By incrementing the address update circuit 31, BYT = 5 is set in the byte address register 101 of the monochrome expansion device 96. BYT = 5 newly set in the byte address register 101 is input to the byte data selection circuit 102, and 1-byte data corresponding to the data output from the SRAM 88 is selected. In this case, 01 data whose address is 5 in the block is output.
[0124]
Thereafter, the same processing is performed. When the processing for one line is completed, the address of the next line is calculated by the destination address calculation circuit 12 and the source address calculation circuit 13. Similarly to the first line, data is transferred from the local memory 4 to the destination SRAM 18 and the source SRAM 19. As a result, the source address counter is updated to address A000006. BYT = 6 is set in the byte address register 101. The byte data selection circuit 102 in the source SRAM 19 selects 1-byte data corresponding to the BYT of the data read from the SRAM 88. Data “40” with address 6 in the block is output.
By repeating the above, the monochrome source data is expanded to the designated destination.
[0125]
【The invention's effect】
As described above, according to the present invention, when the image data of the transfer area stored in the image data storage device is processed and transferred based on the designated transfer source and transfer destination area transfer parameters, Assuming that the data is image data composed of one or more bytes in one pixel, the image data is transferred in units of blocks consisting of a plurality of bytes larger than the image data of one pixel, and alignment within the block is performed in the transfer area. By executing the calculation process, the image data can be transferred at high speed, and the image data in the transfer source area is monochrome image data in which one pixel is composed of one bit. One pixel in the transfer source area is composed of one or a plurality of bytes representing one color of two color data set in advance according to the bit value. Since the way to expand the image data, an effect that it is possible to reduce the data amount of the image data in the source region to be stored in the image data storage means.
[Brief description of the drawings]
FIG. 1 is a block diagram for explaining a basic configuration of an image display processing system according to an embodiment of the present invention.
FIG. 2 is a diagram schematically illustrating a function of an image data transfer apparatus in the system.
FIG. 3 is a diagram showing an outline of monochrome transfer of the image data transfer apparatus in the system.
FIG. 4 is a block diagram showing a detailed configuration of the apparatus.
FIG. 5 is a block diagram showing a main part of a source address calculation circuit in the same device.
FIG. 6 is a flowchart showing the operation of the apparatus.
FIG. 7 is a diagram showing in more detail a rectangular (display) area of image data including a transfer rectangular area in the apparatus.
FIG. 8 is a diagram schematically showing XDIR and YDIR of a transfer rectangular area in the apparatus.
FIG. 9 is a diagram illustrating a configuration of monochrome image data in the apparatus.
FIG. 10 is a diagram showing a configuration of image data constructed in a local memory in the apparatus.
FIG. 11 is a diagram for explaining expansion of monochrome image data.
FIG. 12 is a diagram showing a basic configuration inside an address counter in the apparatus.
FIG. 13 is a diagram for explaining sector data stored in a sector address register in the counter.
FIG. 14 is a diagram showing sector data stored in a sector address register in the counter.
FIG. 15 is a diagram for explaining a configuration of each data at the time of mask calculation processing in the counter.
FIG. 16 is a diagram for explaining the result of mask calculation processing in the counter;
FIG. 17 is a diagram showing an initial value and an update pattern of a color tag calculation counter inside the counter.
FIG. 18 is a diagram illustrating a relationship between a tag block and an address update signal when monochrome image data is processed.
FIG. 19 is a diagram showing a configuration in the local memory of each start address of destination, source, and pattern in the same device.
FIG. 20 is a block diagram showing an internal configuration of a mask arithmetic circuit in the same device.
FIG. 21 is a diagram for explaining processing of each data in the mask arithmetic circuit in the same device.
FIG. 22 is a diagram showing an internal configuration of each SRAM in the same device.
FIG. 23 is a diagram for explaining a data configuration of color tag calculation processing in each SRAM in the same device;
FIG. 24 is a diagram for explaining a data configuration of the same process.
FIG. 25 is a diagram for explaining a data configuration of the same process.
FIG. 26 is a diagram showing the relationship among color tags, tag blocks, and BPPs in the same processing.
FIG. 27 is a diagram showing the relationship among color tags, tag blocks, and BPPs in the same processing.
FIG. 28 is a diagram showing the relationship among color tags, tag blocks, and BPPs in the color tag calculation process.
FIG. 29 is a detailed functional block diagram of a monochrome expansion device in the same device.
FIG. 30 is a diagram for explaining a bit expansion operation of the monochrome expansion apparatus.
FIG. 31 is a diagram for explaining a data expansion operation of the monochrome expansion apparatus.
FIG. 32 is a detailed block diagram of a color expansion unit of the monochrome expansion apparatus.
FIG. 33 is a diagram showing an internal configuration of a transparent calculation circuit in each SRAM.
FIG. 34 is a diagram for explaining a data configuration of transparent calculation processing in the circuit;
FIG. 35 is a diagram for explaining a data comparison method in the processing;
FIG. 36 is a diagram showing a configuration of a data comparison result in the same processing.
FIG. 37 shows a comparison result of data in the same process.
FIG. 38 is a diagram showing an internal configuration of a raster operation circuit in the same device.
FIG. 39 is a diagram showing monochrome image data showing a processing example of monochrome data by the same device and a storage state thereof in the memory;
FIG. 40 is a table showing expanded data of the monochrome data.
FIG. 41 is a block diagram illustrating a configuration of a conventional image display processing system.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... CPU, 2 ... Image data transfer apparatus, 3 ... Memory controller, 4 ... Local memory, 5 ... Display apparatus, 11 ... Interface, 12 ... Destination address calculation circuit, 13 ... Source address calculation circuit, 14 ... Pattern address calculation Circuits 15 ... Destination address counter 16 ... Source address counter 17 ... Pattern address counter 18 ... Destination SRAM 19 ... Source SRAM 20 ... Pattern SRAM 21 ... Raster arithmetic circuit 22 ... Output FIFO 23 ... Mask arithmetic circuit, 24... Controller.

Claims (8)

指定された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置において、
前記転送元領域の画像データは、1ピクセルが1ビットで構成されたモノクロームの画像データ、前記転送先領域の画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、
前記画像データ記憶装置の転送元領域及び転送先領域から1ピクセルの画像データよりも大きいブロック単位で画像データを読み出すアドレスカウンタと、
前記画像データ記憶装置から読み出されたブロック単位の画像データを記憶すると共に、転送元領域の1ピクセルをそのビット値に応じて予め設定された2色のデータのうちの1色を表す1又は複数のバイトで構成された画像データに拡張するデータ拡張機能付きのデータ格納手段と、
前記拡張された転送元領域の画像データと前記転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行する演算手段とを備え、
前記データ格納手段は、転送元領域の各ピクセルの1ビットのデータを転送先領域の各ピクセルのバイト数に応じてコピーして、コピー後の各ビットにカラータグを設定して、予め設定された2色のデータのうちの1色を表す1又は複数のバイトのカラーピクセルデータのうち前記カラータグで指定されたバイトを割り当てることにより画像データを拡張するモノクローム拡張手段を備えてなる
ことを特徴とする画像データ転送装置。
The image data in the transfer source area and the image data in the transfer destination area stored in the image data storage device are calculated based on the parameters relating to the designated transfer source area and transfer destination area, and then transferred to the transfer destination area. In the image data transfer device to
The image data in the transfer source area is monochrome image data in which one pixel is composed of 1 bit, and the image data in the transfer destination area is image data in which one pixel is composed of one or a plurality of bytes.
An address counter that reads out image data in block units larger than 1-pixel image data from the transfer source area and transfer destination area of the image data storage device ;
The block-unit image data read from the image data storage device is stored, and one pixel representing one color of two color data set in advance according to the bit value of one pixel in the transfer source area Data storage means with a data expansion function for expanding to image data composed of a plurality of bytes;
Arithmetic means for performing the arithmetic processing by aligning the image data of the extended transfer source area and the image data of the transfer destination area in a block ,
The data storage means is configured in advance by copying 1-bit data of each pixel of the transfer source area according to the number of bytes of each pixel of the transfer destination area, and setting a color tag for each bit after copying. And monochrome expansion means for extending image data by allocating bytes designated by the color tag among one or more bytes of color pixel data representing one color of the two colors of data. An image data transfer device.
前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのバイト数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し前記アドレスカウンタにセットするアドレス計算手段を更に備え、
前記アドレスカウンタは、転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送する
ことを特徴とする請求項1記載の画像データ転送装置。
Based on the parameters related to the designated transfer source area and transfer destination area and the number of bytes per pixel, a transfer start block address and a transfer end block address are calculated for each scanning line including the transfer source area and the transfer destination area. And an address calculation means for setting the address counter,
The image data transfer apparatus according to claim 1, wherein the address counter continuously transfers the image data from a transfer start block including a transfer start block address to a transfer end block including the transfer end block address.
前記アドレスカウンタは、前記各ブロック内の転送画像開始バイトアドレス及び転送画像終了バイトアドレスに基づいて前記転送元領域及び転送先領域以外の領域をマスクするマスクパターンを生成し、
このマスクパターンを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うマスク演算手段を更に備えた
ことを特徴とする請求項1又は2記載の画像データ転送装置。
The address counter generates a mask pattern for masking areas other than the transfer source area and the transfer destination area based on the transfer image start byte address and the transfer image end byte address in each block,
The image data transfer apparatus according to claim 1, further comprising a mask calculation means for performing alignment within the block between the transfer source area and the transfer destination area using the mask pattern.
前記1ピクセル分の画像データは、バイト毎にカラータグが設定されたものであり、
前記アドレスカウンタは、前記ブロック内の転送画像開始バイトアドレスに基づいて各バイトのカラータグを設定するものである
ことを特徴とする請求項1〜3のいずれか1項記載の画像データ転送装置。
The image data for one pixel is a color tag set for each byte,
The image data transfer device according to any one of claims 1 to 3, wherein the address counter sets a color tag of each byte based on a transfer image start byte address in the block.
画像データを記憶する画像データ記憶装置と、
この画像データ記憶装置内に記憶された画像データの転送元領域及び転送先領域に関するパラメータを出力する中央処理装置と、
この中央処理装置から出力された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置と、
前記画像データ記憶装置に記憶された画像データを表示する画像表示装置と
を備えた画像表示処理システムにおいて、
前記転送元領域の画像データは、1ピクセルが1ビットで構成されたモノクロームの画像データ、前記転送先領域の画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、
前記中央処理装置は、前記1ピクセルを構成するバイト数を前記画像データ転送装置に出力し、
前記画像データ転送装置は、前記1ピクセルの画像データよりも大きいブロック単位で画像データを転送し、且つ転送元領域の1ピクセルをそのビット値に応じて予め設定された2色のデータのうちの1色を表す1又は複数のバイトで構成された画像データに拡張し、この拡張された転送元領域の画像データと転送先領域の画像データとでブロック内における位置合わせを行って前記演算処理を実行したのち、前記画像データ記憶装置に格納すると共に、
前記画像データ転送装置は、転送元領域の各ピクセルの1ビットのデータを転送先領域の各ピクセルのバイト数に応じてコピーして、コピー後の各ビットにカラータグを設定して、予め設定された2色のデータのうちの1色を表す1又は複数のバイトのカラーピクセルデータのうち前記カラータグで指定されたバイトを割り当てることにより画像データを拡張するものである
ことを特徴とする画像表示処理システム。
An image data storage device for storing image data;
A central processing unit for outputting parameters relating to a transfer source area and a transfer destination area of image data stored in the image data storage device;
After the arithmetic processing of the image data of the transfer source area and the image data of the transfer destination area stored in the image data storage device based on the parameters relating to the transfer source area and the transfer destination area output from the central processing unit, An image data transfer device for transferring to the transfer destination area;
In an image display processing system comprising: an image display device that displays image data stored in the image data storage device;
The image data in the transfer source area is monochrome image data in which one pixel is composed of 1 bit, and the image data in the transfer destination area is image data in which one pixel is composed of one or a plurality of bytes.
The central processing unit outputs the number of bytes constituting the one pixel to the image data transfer device,
The image data transfer device transfers image data in units of blocks larger than the image data of one pixel, and one pixel of a transfer source area is selected from among two color data set in advance according to the bit value The arithmetic processing is performed by expanding the image data composed of one or a plurality of bytes representing one color, and performing alignment in the block with the image data of the expanded transfer source area and the image data of the transfer destination area. After executing, storing in the image data storage device ,
The image data transfer device copies 1-bit data of each pixel in the transfer source area according to the number of bytes of each pixel in the transfer destination area, sets a color tag for each bit after copying, and sets the data in advance An image characterized in that image data is expanded by assigning a byte designated by the color tag among one or a plurality of bytes of color pixel data representing one color of the two-color data. Display processing system.
前記画像データ転送装置は、
前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのバイト数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し、
前記転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送するものである
ことを特徴とする請求項記載の画像表示処理システム。
The image data transfer device includes:
Based on the parameters related to the designated transfer source area and transfer destination area and the number of bytes per pixel, the transfer start block address and transfer end block address are calculated for each scan line including the transfer source area and the transfer destination area. And
The image display processing system according to claim 5 , wherein the image data is continuously transferred from a transfer start block including the transfer start block address to a transfer end block including the transfer end block address.
前記画像データ転送装置は、
前記各ブロック内の転送画像開始バイトアドレス及び転送画像終了バイトアドレスに基づいて前記転送元領域及び転送先領域以外の領域をマスクするマスクパターンを生成すると共に、このマスクパターンを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うものである
ことを特徴とする請求項5又は6記載の画像表示処理システム。
The image data transfer device includes:
Based on the transfer image start byte address and the transfer image end byte address in each block, a mask pattern for masking an area other than the transfer source area and the transfer destination area is generated, and the transfer source is used by using the mask pattern. The image display processing system according to claim 5 or 6, wherein alignment in the block is performed between the area and the transfer destination area.
前記1ピクセル分の画像データは、バイト毎にカラータグが設定されたものであり、
前記画像データ転送装置は、前記ブロック内の転送画像開始バイトアドレスに基づいて各バイトのカラータグを設定するものである
ことを特徴とする請求項5〜7のいずれか1項記載の画像表示処理システム。
The image data for one pixel is a color tag set for each byte,
The image display processing according to claim 5 , wherein the image data transfer device sets a color tag for each byte based on a transfer image start byte address in the block. system.
JP2001170165A 2001-06-05 2001-06-05 Image data transfer apparatus and image display processing system Expired - Fee Related JP3969017B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001170165A JP3969017B2 (en) 2001-06-05 2001-06-05 Image data transfer apparatus and image display processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001170165A JP3969017B2 (en) 2001-06-05 2001-06-05 Image data transfer apparatus and image display processing system

Publications (2)

Publication Number Publication Date
JP2002366131A JP2002366131A (en) 2002-12-20
JP3969017B2 true JP3969017B2 (en) 2007-08-29

Family

ID=19012123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001170165A Expired - Fee Related JP3969017B2 (en) 2001-06-05 2001-06-05 Image data transfer apparatus and image display processing system

Country Status (1)

Country Link
JP (1) JP3969017B2 (en)

Also Published As

Publication number Publication date
JP2002366131A (en) 2002-12-20

Similar Documents

Publication Publication Date Title
US5321810A (en) Address method for computer graphics system
US5315696A (en) Graphics command processing method in a computer graphics system
JP2618101B2 (en) Image layout processing method
JPH0695273B2 (en) Display control device
JPH0850659A (en) Apparatus and method of ntsc-type display of full-motion animation
JPS62288984A (en) Video display unit
JPS6360395B2 (en)
GB2137857A (en) Computer Graphics System
US20050168475A1 (en) Image processing method and apparatus
US6084600A (en) Method and apparatus for high-speed block transfer of compressed and word-aligned bitmaps
JP3969017B2 (en) Image data transfer apparatus and image display processing system
JP3846142B2 (en) Image data transfer apparatus and image display processing system
JP3352458B2 (en) Graphic Coloring Method for Graphic Display System
JP4048731B2 (en) Image data transfer apparatus and image display processing system
JPH028314B2 (en)
KR100266930B1 (en) Method of drawing figure such as polygon and display control device
JPH0594167A (en) Method for displaying picture
JPS63287894A (en) Font data processor
JPH03164872A (en) Graphic processing system
JP2506825B2 (en) Color mixing processing control method
JPS63304293A (en) Display memory control circuit
JPS6117189A (en) Graphic processor
JPH08138067A (en) Line segment anti-aliasing device
JPS61254981A (en) Multiwindow display controller
JPH0194388A (en) Control of monitor screen display

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070416

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070528

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100615

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110615

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120615

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130615

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees