JP3846142B2 - 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
JP3846142B2
JP3846142B2 JP2000017522A JP2000017522A JP3846142B2 JP 3846142 B2 JP3846142 B2 JP 3846142B2 JP 2000017522 A JP2000017522 A JP 2000017522A JP 2000017522 A JP2000017522 A JP 2000017522A JP 3846142 B2 JP3846142 B2 JP 3846142B2
Authority
JP
Japan
Prior art keywords
transfer
image data
address
block
area
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
JP2000017522A
Other languages
Japanese (ja)
Other versions
JP2001209370A (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 JP2000017522A priority Critical patent/JP3846142B2/en
Publication of JP2001209370A publication Critical patent/JP2001209370A/en
Application granted granted Critical
Publication of JP3846142B2 publication Critical patent/JP3846142B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Digital Computer Display Output (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、CRT(Cathode Ray Tube)等のラスタースキャン型表示装置において、平面上に表現された画像を構成するデータの画像表示処理システムに関し、特に特定領域の画像データを転送する画像データ転送装及び画像表示処理システムに関する。
【0002】
【従来の技術】
従来より、CRT等のラスタースキャン型表示装置を使用した2次元画像データ処理装置としては、例えば特開昭60−214392号公報に開示されているものなどが知られている。
【0003】
この種の画像表示処理システムは、中央演算処理装置(CPU)の負担を軽減するため、画像表示処理のためのディスプレイコントローラが備えられる。
【0004】
このような装置の構成は、例えば図30に示すようなものになる。同図に示すディスプレイコントローラ(以下、DCと略称する。)101内部の画像データ処理回路110は、CRT表示装置105の画面の走査速度に対応してビデオRAM(以下、VRAMと呼ぶ。)104内に記憶されている静止画像データ及び動画像データ等をインターフェイス111を介して読み出すと共に、CRT表示装置105へ画像の走査に必要な同期信号SYNCを出力する。
【0005】
この場合の静止画及び動画像データは、表示画面上のドットの色を指定する2,4又は8ビットのカラーコードからなり、画像データ処理回路110は、読み出したカラーコードをカラーパレット112に出力する。カラーパレット112は、読み出したカラーコードをRGB(赤,緑,青)信号に変換してCRT表示装置に供給する。
【0006】
また、画像データ処理回路110は、CPU102からインターフェイス113を介して供給される画像データを、画面の非表示期間(垂直帰線期間等)にVRAM104に書き込む。更に、VRAM104をアクセスしているとき(書き込み及び読み出し時)は、信号S1をコマンド処理回路115に供給してアクセス中であることを知らせる。
【0007】
コマンド処理回路115は、CPU2からインターフェイス113を介して供給される各種のコマンドに対応する処理を行う回路である。
【0008】
上記の構成の画像表示処理システムにおいては、静止画像を含む矩形領域の移動を短時間でCPUを介さずに行うことや、上述したカラーコードの転送に際して、転送すべきドットのカラーコードの各ビットと転送先のドットのカラーコードの各ビットとの間の論理演算を行い、この結果を転送先のドットに対応するVRAM104の記憶エリアへ書き込む論理演算処理及び転送元領域の各ドットのカラーコードのうち透明のカラーコードについてはカラーコードの転送を行わず、それ以外のカラーコードについてのみ転送を行う透明処理(トランスペアレント処理)等を行うことができる。
【0009】
また、このシステムでは、カラーコードをドット単位で転送するドット単位転送モードと、カラーコードをバイト単位で転送するバイト単位転送モードとを備えている。
【0010】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像表示処理システムでは、高速転送を実現しつつ所定の論理演算処理や透明処理を実行することができなかった。特に現在では画像処理技術の著しい向上やそれに伴う画像データ転送量の急激な増大等によって、上述したような装置ではもはや高速転送と細かな画像処理の要請に答えることが困難になってきた。
【0011】
この発明は、このような問題点に鑑みてなされたもので、更に効率的に画像処理及び転送データ制御等を行うことができる画像データ転送装及び画像表示処理システムを提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明に係る画像データ転送装置は、指定された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置において、前記画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、前記1ピクセルの画像データよりも大きい複数バイトからなるブロック単位で画像データを転送し、且つ転送元領域と転送先領域とでブロック内における位置合わせを行って前記演算処理を実行し、前記1ピクセル分の画像データは、バイト毎にカラータグが設定されたものであり、前記ブロック内の転送画像開始バイトアドレスに基づいて各バイトのカラータグが設定されるものであることを特徴とする。
【0013】
また、本発明に係る画像表示処理システムは、画像データを記憶する画像データ記憶装置と、この画像データ記憶装置内に記憶された画像データの転送元領域及び転送先領域に関するパラメータを出力する中央処理装置と、この中央処理装置から出力された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置と、前記画像データ記憶装置に記憶された画像データを表示する画像データ表示装置と、を備えた画像表示処理システムにおいて、前記画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、前記中央処理装置は、前記1ピクセルを構成するバイト数を前記画像データ転送装置に出力し、前記画像データ転送装置は、前記1ピクセルの画像データよりも大きい複数バイトからなるブロック単位で画像データを転送し、且つ転送元領域と転送先領域とでブロック内における位置合わせを行って前記演算処理を実行したのち、前記画像データ記憶装置に格納するものであり、前記1ピクセル分の画像データは、バイト毎にカラータグが設定されたものであり、前記画像データ転送装置は、前記ブロック内の転送画像開始バイトアドレスに基づいて各バイトのカラータグを設定するものであることを特徴とする。
【0014】
画像データ転送装置は、好ましくは前記指定された転送元領域及び転送先領域に関するパラメータ及び1ピクセル当たりのバイト数に基づいて、前記転送元領域及び転送先領域を含む各走査ライン毎に転送開始ブロックアドレス及び転送終了ブロックアドレスを算出し、前記転送開始ブロックアドレスを含む転送開始ブロックから前記転送終了ブロックアドレスを含む転送終了ブロックまで連続的に前記画像データを転送するものである。
【0015】
また、画像データ転送装置においては、好ましくは前記各ブロック内の転送画像開始バイトアドレス及び転送画像終了バイトアドレスに基づいて前記転送元領域及び転送先領域以外の領域をマスクするマスクパターンを生成すると共に、このマスクパターンを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行う。
【0017】
この発明によれば、指定された転送元及び転送先領域(以下、この段落のみ「転送領域」とする。)に関するパラメータに基づき、画像データ記憶装置に記憶された転送領域の画像データを演算処理し転送する際に、画像データを1ピクセルが1又は複数のバイトで構成された画像データであるとして、この1ピクセルの画像データよりも大きい複数バイトからなるブロック単位で画像データを転送し、転送領域でブロック内における位置合わせを行い演算処理を実行し、画像データ1ピクセル分のバイト毎にカラータグが設定され、ブロック内の転送画像開始バイトアドレスに基づき各バイトのカラータグが設定される画像データ転送装置を採用することで、画像データの高速転送をすることができると共に、画像表示処理効率を向上させることができる。また、この画像データ転送装置は、各走査ライン毎に転送開始及び転送終了ブロックアドレスを算出し、転送開始ブロックから転送終了ブロックまで連続的に画像データを転送するので、画像データを高速に転送することができる。更に、この画像データ転送装置では、各ブロック内の転送画像開始及び終了バイトアドレスに基づき転送領域以外をマスクするマスクパターンを生成し、転送領域でブロック内における位置合わせを行うので、高速に画像データを転送することができる。従って、画像表示処理システムにこの画像データ転送装置を組み込むことで、画像表示処理の高速化及び高効率化を図ることが可能となる。
【0018】
【発明の実施の形態】
以下、図面を参照して、この発明に係る画像表示処理システムの実施例を説明する。
【0019】
図1は、この発明の一実施例に係る画像表示処理システムの基本構成を説明するためのブロック図である。
【0020】
この画像表示処理システムは、表示すべき画像データが記憶されるDRAM(Dynamic Random Access Memory)等からなるローカルメモリ4と、このローカルメモリ4に記憶された画像データの任意の矩形領域を転送するための種々のパラメータを出力するCPU1と、このCPU1から与えられるパラメータに基づいて前記ローカルメモリ4上の矩形領域の画像データを転送処理する画像データ転送装置2と、この画像データ転送装置2とローカルメモリ4との間のインターフェイスであって画像データのアクセスを制御するメモリコントローラ3と、ローカルメモリ4のスクリーンエリアの画像データを表示するCRTディスプレイ、液晶ディスプレイ等の表示装置5とを備えて構成されている。
【0021】
このうち画像データ転送装置2は、図2にその機能を概略的に示すように、CPU1から与えられる転送元データ(以下、ソースデータと呼ぶ。)Sの矩形領域及び転送データ(以下、デスティネーションデータと呼ぶ。)Dの矩形領域をそれぞれ定義するパラメータ、並びにソースデータSに付加される任意のパターンデータPの矩形領域を定義するパラメータを受け取り、ローカルメモリ4からソース、デスティネーション及びパターンの各データを取り込み、これらのデータ間で所定のラスタ演算処理を施してデスティネーションエリアに書き込む処理を実行する。
【0022】
以下、この画像データ転送装置2について詳細に説明する。
図3は、この画像データ転送装置2の詳細な構成を示すブロック図である。
【0023】
CPU1から送られてくるデスティネーションエリア、ソースエリア及びパターンエリアに特定するパラメータは、インターフェイス11を介してデスティネーションアドレス計算回路12、ソースアドレス計算回路13及びパターンアドレス計算回路14にそれぞれ供給される。これらのアドレス計算回路12,13,14では、1スキャンライン毎にデスティネーションエリア、ソースエリア及びパターンエリアのローカルメモリ4上での転送開始を示すスタートアドレスと転送終了を示すエンドアドレスとを次のように計算する。
【0024】
即ち、図4(a)は、転送矩形領域を含む画像データの矩形(表示)領域を更に詳細に示す図である。この矩形領域は、ソースデータS及びデスティネーションデータDについてはスクリーン領域、パターンデータPについてはオフスクリーン領域に対応する。この例では、1ピクセルが1〜4バイトから構成される。この1ピクセルを構成するバイト数を、ここではBPP(バイト・パー・ピクセル)と呼ぶ。ここに表示された各パラメータは、前述したようにCPU1から画像データ転送装置2に与えられるものであって、次の通りである。
【0025】
BASE:転送矩形領域を含む矩形領域の基準位置(通常は領域の最も左上の画素の位置)に対応するローカルメモリ4上の座標値をバイトで表したデータ。スクリーンエリアの基点を示す場合もあれば、オフスクリーンエリアの基点を示す場合もある。
PTCH:転送矩形領域を含む矩形領域の1ラインの幅をバイト数で表したデータ。
XS:転送矩形領域の転送開始X座標値をピクセルで表したデータ。
YS:転送矩形領域の転送開始Y座標値をスキャンラインで表したデータ。
XEXT:転送矩形領域のX方向の幅をピクセル数で表したデータ。
YEXT:転送矩形領域のY方向の幅をスキャンライン数で表したデータ。
XDIR:転送がXの正・負のいずれの方向から行われるかを示したデータで、0のとき正(右向き)で、1のとき負(左向き)。即ち、図5に示すように、XDIRが0の場合、XSは転送矩形領域の左端となり、XはXSから正の方向に更新される。また、XDIRが1の場合、XSは転送矩形領域の右端となり、XはXSから負の方向に更新される。
YDIR:転送がYの正・負のいずれの方向から行われるかを示したデータで、0のとき正(下向き)で、1のとき負(上向き)。即ち、図5に示すように、YDIRが0の場合、YSは転送矩形領域の上端となり、YはYSから正の方向に更新される。また、YDIRが1の場合、YSは転送矩形領域の下端となり、YはYSから負の方向に更新される。
【0026】
なお、XDIR/YDIRは、図5にも示すように、ソースエリアSとデスティネーションエリアDとが重なる場合に、転送すべきピクセルが転送前に書き替えられないように転送順序を指定するために必要になる。
【0027】
ここで、スキャンラインY=nで与えられたときの第nライン内のスタートアドレス(FBSPn)及びエンドアドレス(FBEPn)は、XDIR=0のとき、次式で与えられる。
【0028】
【数1】
FBSPn=BASE+n×PTCH+XS×BPP
FBEPn=BASE+n×PTCH+(XS+XEXT)×BPP−1
【0029】
また、XDIR=1のときは、次式で与えられる。
【0030】
【数2】
FBSPn=BASE+n×PTCH+(XS+1)×BPP−1
FBEPn=BASE+n×PTCH+(XS−XEXT+1)×BPP
【0031】
図4(b)は、BASE=0としたときのY=Ynにおけるスタートアドレス(FBSPn)及びエンドアドレス(FBEPn)をローカルメモリ4上の連続したデータとして示した図である。
【0032】
このように、デスティネーションアドレス計算回路12、ソースアドレス計算回路13及びパターンアドレス計算回路14でそれぞれ計算されたスタートアドレスとエンドアドレスとは、デスティネーションアドレスカウンタ15、ソースアドレスカウンタ16及びパターンアドレスカウンタ17に1スキャンライン毎にセットされる。
【0033】
一方、この画像データ転送装置2には、ローカルメモリ4から転送された画像データを一時格納するための3つのSRAM(Static Random Access Memory)、即ち、デスティネーションSRAM18、ソースSRAM19及びパターンSRAM20が備えられている。各アドレスカウンタ15,16,17は、ローカルメモリ4を階層化し、画像データ転送装置2とローカルメモリ4とのインターフェイスを、メモリコントローラ3を経由して一連の連続したデータ単位毎に行うことで、効率的にデータを転送する。このため、アドレスを次のように分解する。
【0034】
即ち、各アドレスカウンタ15,16,17は、受け取ったスタートアドレス(FBSPn)とエンドアドレス(FBEPn)とを、図6(a)に示すように、上位側からセクタアドレスUビット、ブロックアドレスVビット及びバイトアドレスWビットに分解することで、ローカルメモリ4を階層化する。全体のビット数は、同図(b)に示すように、U+V+Wビットとなり、ローカルメモリ4の容量は、最大2U+V+Wバイトとなる。換言すると、ローカルメモリ4は、2U個のセクタで構成され、1セクタは2V個のブロックで構成される。1ブロックは、2Wバイトから構成される。図6(a)の例は、V=3,W=3の例である。
【0035】
1ブロックのバイト数2Wバイトは、ローカルメモリ4のデータバス幅と等しい。即ち、ローカルメモリ4への1アドレスのアクセスで2Wバイト(1ブロック)分のデータを転送することができる。ローカルメモリ4へのアクセスは、2Wバイト(1ブロック)を単位として連続的に行われる。2Wバイト(1ブロック)分のデータ転送が最小で1回、最大で2V回連続し、最大の場合には、1セクタ分のデータが連続して転送されることになる。各SRAMのデータバス幅は、ローカルメモリ4のバス幅と等しい2Wバイトであり、アドレスはVビットとなる。これは1セクタ分のデータのサイズと等しい。
【0036】
図6(b)に示すように、ローカルメモリ4のアドレスの上位をローアドレス、下位をカラムアドレスとし、ローアドレスを固定、カラムアドレスのみを連続的に変化させるページモード伝送によって更に高速のデータ転送が実現される。
【0037】
また、転送開始と転送終了の際の1ブロックの転送データには、転送すべきピクセルデータ以外のデータが含まれることがあるので、各アドレスカウンタ15,16,17は、これらのデータをマスクするためのマスクデータを生成し、マスク演算回路23に供給する。マスク演算回路23は、入力されたマスクデータに基づいて、各SRAM18,19,20からデータを読み出して、ラスタ演算回路21にデータを送るための計算を実行する。ラスタ演算回路21は、各SRAM18,19,20からセクタデータを1ブロック単位で読み出し、マスク演算回路23からの演算結果も読み出してラスタ演算を行い、その演算結果を出力FIFO22に格納する。コントローラ24は、CPU1からの制御命令に従い、各回路をコントロールする。
【0038】
図7は、画像データ転送装置2の処理の流れを示すフローチャートである。
まず、各アドレス計算回路12,13,14の内部に設定される転送スキャンラインYの初期値としてY=YSがロードされる(S1)。次に、そのスキャンラインのスタートアドレス(FBSPn)とエンドアドレス(FBEPn)とが、それぞれアドレス計算回路12,13,14で計算され(S2)、その値がそれぞれアドレスカウンタ15,16,17に渡される。各アドレスカウンタ15,16,17で生成されるアドレスに従ってローカルメモリ4から各SRAM18,19,20に1セクタ分のデスティネーションデータD、ソースデータS及びパターンデータPがそれぞれ転送される(S3,S4)。SRAM18,19,20への転送後は、1ブロック単位で、各SRAM18,19,20からデータを読み出す。読み出されたデータは、マスク演算回路23による演算結果に従い、ラスタ演算回路21にてラスタ演算され、出力FIFO22にストアされる(S5)。
【0039】
もし、ソースSRAM19にストアさているセクタデータの処理が終了した場合には(S7)、次のセクタデータを転送する(S4)。また、デスティネーションSRAM18にストアされているセクタデータの処理が終了した場合には、ラスタ演算終了後、出力FIFO22にストアされたデータをローカルメモリ4に書き込み(S8)、新たなセクタデータをデスティネーションSRAM18に転送する(S2)。また、パターンSRAM20にストアされているセクタデータの処理が終了した場合には(S7)、次のセクタデータを転送する(S4)。
【0040】
以上の処理を繰り返し、1ライン分のデータの処理が終了したら(S9)、Yを更新し(S10)、次のラインの処理に移る。そして、最後のラインの処理を終了したら、矩形領域の処理は終了する(S11)。
【0041】
図8は、アドレスカウンタ15〜17内の基本構成を示す図である。なお、パターンアドレスカウンタ17においてのみ、カラータグ計算用カウンタ40はないものとする。
【0042】
スタートアドレス(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にロードされる。
【0043】
最初に、デスティネーションSRAM18,ソースSRAM19,パターンSRAM20にローカルメモリ4内のデータを転送するために、レジスタ32に格納されたローカルメモリ4のセクタのアドレスを示すセクタアドレス(SEC)がメモリコントローラ3に出力されると共に、そのセクタにおいて転送すべきブロック数(BLKCNT)及びセクタ内の転送すべき最初のブロックのアドレス(セクタ内のブロックがスタートするアドレス)を示すブロックスタートアドレス(BLKSTR)がセクタ内ブロック演算回路45等で計算され、メモリコントローラ3に送られる。また、セクタ内ブロック演算回路45は、上述したブロック数(BLKCNT)及びブロックスタートアドレス(BLKSTR)の他、セクタ内のブロックが終了するアドレスを示すブロックエンドアドレス(BLKEND)も計算する。
【0044】
このセクタ内ブロック演算回路45での計算には、セクタスタートコンパレータ37の出力であるセクタスタートフラグ(SECSTRF)、セクタエンドコンパレータ36の出力であるセクタエンドフラグ(SECENDF)、スタートアドレスレジスタ30に格納されたブロックスタートアドレス(FBSP[V+W−1:W])、エンドアドレスレジスタ35に格納されたブロックエンドアドレス(FBEP[V+W−1:W])及び転送のXの方向を表すXDIR等が入力され用いられる。
【0045】
セクタスタートコンパレータ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とする。
【0046】
図9は、セクタアドレスレジスタ32に格納されているセクタデータを説明するための図である。
【0047】
例えば、XDIR=0と定義され、SECSTRF,SECENDFが0のとき、セクタアドレスレジスタ32に格納されているセクタアドレスは、図9(a)に示すように、矩形領域を構成するラインの最初のセクタではなく、最後のセクタでもないことがわかる。この場合、セクタ内にあるブロックの数(BLKCNT)は2V個で、ブロックのスタートアドレス(BLKSTR)は0、エンドアドレス(BLKEND)は2V−1となる。
【0048】
SECSTRFが1でSECENDFが0のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最初のセクタであることが同図(b)から分かる。この場合、セクタ内にあるブロックの数は、2V−FBSP[V+W−1:W]個となり、ブロックのスタートアドレスはFBSP[V+W−1:W]、エンドアドレスは2V−1となる。
【0049】
また、SECSTRFが0でSECENDFが1のとき、セクタアドレスレジスタ32に格納されているセクタは、矩形領域を構成するラインの最後のセクタであることが同図(c)から分かる。この場合、セクタ内にあるブロックの数はFBEP[V+W−1:W]+1個となり、ブロックのスタートアドレスは0でエンドアドレスはFBEP[V+W−1:W]となる。
【0050】
更に、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のときのそれぞれの場合を追加した形で表にまとめると、図10に示すようなものになる。
【0051】
ブロックスタートコンパレータ39は、スタートアドレスレジスタ30のブロックアドレス(FBSP[V+W−1:W])部分とブロックアドレスレジスタ33に格納されたブロックアドレス(BLK)とを比較し、等しいときはその出力データ(BLKSTRF)を1、等しくないときは0として出力するものである。また、ブロックエンドコンパレータ38は、エンドアドレスレジスタ35のブロックアドレス(FBEP[V+W−1:W])部分とブロックアドレスレジスタ33に格納されたブロックアドレス(BLK)とを比較し、等しいときはその出力データ(BLKENDF)を1、等しくないときは0として出力するものである。
【0052】
上述の各コンパレータ36〜39の出力SECENDF,SECSTRF,BLKENDF,BLKSTRFに基づき、スタートマスク演算回路46でスタートマスク(STRMSK)、エンドマスク演算回路47でエンドマスク(ENDMSK)がそれぞれ計算される。図11に示すように、スタート及びエンドマスクは共に0又は1のデータからなる連続した2Wビットのパターンであり、各マスクの1ビットが各SRAM18,19,20から読み出された1バイト分のデータに対応し、2Wビットのパターンは1ブロック分のデータに対応するものである。
【0053】
マスク論理積演算回路48は、スタート及びエンドマスク演算回路46,47からの出力データであるスタート及びエンドマスクを入力し、これらの論理積データ(AMSK)を計算することで、スタートアドレス(FBSP)とエンドアドレス(FBEP)との間に存在するバイトには1を、それ以外には0をフラグとして与える役割を担っている。
【0054】
例えば、図12(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)を計算する。
【0055】
一方、同図(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に送られるのである。
【0056】
スタートフラグ回路50は、セクタスタートコンパレータ37の出力SECSTRF及びブロックスタートコンパレータ39の出力BLKSTRFを入力してスタートフラグXSTRFを出力する。エンドフラグ回路51は、セクタエンドコンパレータ36の出力SECENDF及びブロックエンドコンパレータ38の出力BLKENDFを入力してエンドフラグXENDFを出力する。
【0057】
次に、カラータグ計算用カウンタ40とアドレス更新回路31について説明する。カラータグ計算用カウンタ40は、トランスペアレント処理(透明処理)の計算のために後段で用いられるものであり、スタートアドレス(FBSP)及びエンドアドレス(FBEP)が入力されるときに初期化するように設定されている。このカラータグ計算用カウンタ40は、ブロックアドレスレジスタ33からの出力BLKが更新されるのに同期して、その出力タグブロックアドレス(TGBLK)を更新する。
【0058】
その更新パターンは、BPとXDIRとによって決まるもので、初期値と更新パターンとは、図13に示すようなものになる。例えば、1ピクセル当たり2バイト(BPが2)でXDIRが0のときは、TGBLKは0,1,0,1…を繰り返すように更新される。なお、デスティネーションアドレスカウンタ15及びソースアドレスカウンタ16内のカラータグ計算用カウンタ40の出力TGBLKは、後述するように、それぞれデスティネーションSRAM18,ソースSRAM19へ送られ、各SRAM内にあるタグ選択回路93の出力を選択するのに利用される。
【0059】
アドレス更新回路31は、セクタアドレスレジスタ32からの出力セクタアドレス(SEC)とブロックアドレスレジスタ33からの出力ブロックアドレス(BLK)とを一連の値として捉え、コントローラ24からの指示によりエンドアドレスレジスタ35内の値と一致するまでBLK単位でアドレスをインクリメントし、上記セクタアドレス(SEC)とブロックアドレス(BLK)を更新する。この場合、エンドアドレスレジスタ35内の値と一致するかどうかは、エンドフラグ回路51にてSECENDF及びBLKENDFが共に1であることにより検出される。
【0060】
次に、この画像データ転送装置2内のマスク演算回路23について説明する。
【0061】
マスク演算回路23は、主に各アドレスカウンタ15,16,17から送られてきたデスティネーション,ソース,パターンの各マスクデータAMSK(以下、これをそれぞれDSTMSK,SRCMSK,PATMSKと呼ぶ。)及び各ブロック内スタートアドレスBYTSTR(以下、これをそれぞれDBYTSTR,SBYTSTR,PBYTSTRと呼ぶ。)等に基づき、画像表示装置5のデータ転送を制御するための計算を行うものである。なお、各スタートアドレスは、そのときのマスクがスタートするアドレスを表しているものである。
【0062】
図14に示すように、デスティネーション,ソース,パターンの各スタートアドレス(FBSP)は、ローカルメモリ4内の任意のアドレスを指している。マスク演算回路23は、これらのアドレスに基づいて、データ転送時にデスティネーション,ソース,パターンの各バイトが転送のスタートバイトからそれぞれ1対1で転送されるように対応させ、転送を制御している。
【0063】
図15は、このマスク演算回路23の内部構成を示すブロック図である。
マスク演算回路23は、ローカルメモリ4からSRAM18〜20にそれぞれ転送されたデスティネーション,ソース,パターンのいずれかのセクタデータがなくなるまで、各SRAM18,19,20からそのデータを読み出してラスタ演算回路21に出力するための計算を行う。
【0064】
はじめに、図16(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に入力される。
【0065】
減算器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は、これらのマスクデータの他、DSTMSKを入力し論理積を計算することでDSTMSK内で処理すべきバイトを決定する役割を担っている。
【0066】
同時に、減算器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との計算に寄与した部分を示している。
【0067】
図16(c)及び(d)に示すように、ソースマスク論理演算回路77及びパターンマスク論理演算回路79は、ソースマスクSRCMSK,パターンマスクPATMSKから、それぞれマスクSRCREV及びPATREVに対応する部分のマスクを取り除く演算をする。その結果、取り除かれ出力されたマスク(SRCUDT,PATUDT)が次に計算すべきSRCMSK,PATMSKとして更新されると共に、これらはそれぞれソースマスクセレクタ54及びパターンマスクセレクタ55を通り、レジスタ57,58に格納される。また、両論理演算回路77,79は、マスクが存在しないことが分かった時点でマスクがゼロとなったことを表す信号(SRCZR,PATZR)をそれぞれコントローラ24に対して出力する。この信号SRCZR及びPATZRを受けたコントローラ24は、新たな1ブロック分のマスクデータをソース及びパターンマスクセレクタ54,55を通してレジスタ57,58に格納するように制御を行う。
【0068】
また、このときコントローラ24は、ソース及びパターンアドレスカウンタ16,17にブロックを更新するように指示を出し、各アドレスカウンタ16,17から出力された新たな1ブロック分のマスクデータがレジスタ57,58に格納される。このマスクデータがレジスタ57,58に格納されるのと同時に、新たなスタートアドレスSBYTSTR,PBYTSTRが各アドレスカウンタ16,17からソース及びパターンアドレスセレクタ61,62に入力され、その後マスクスタートアドレス(SSTAD,PSTAD)として前述のように減算器63〜66に出力される。
【0069】
このように更新されたソース及びパターンマスク(SRCMSK,PATMSK)は、それぞれソースプライオリティエンコーダ(SPRIENC)81,パターンプライオリティエンコーダ(PPRIENC)80に入力され、マスクがスタートするアドレスSXUDT,PXUDTが計算される。また、更新されたマスクがゼロでない場合、ソース及びパターンアドレスセレクタ61,62は、先に計算されたアドレスSXUDT,PXUDTをマスクスタートアドレスSSTAD,PSTADとして、SSTADは減算器63,64へ、PSTADは減算器65,66へとそれぞれ出力する。
【0070】
一方、図16(b)に示すように、デスティネーションマスク論理演算回路76は、入力したデスティネーションマスクデータDSTMSKの論理演算回路73からのPRCMSKと一致する部分を取り除く処理をする。その出力である取り除かれたマスクDSTUDTは、次に計算すべきDSTMSKとして更新され、デスティネーションマスクセレクタ53を通ってレジスタ56に格納されるものである。この論理演算回路76もまた、マスクが存在しないとわかった場合、マスクがゼロとなったことを表す信号DSTZRをコントローラ24に出力する。この信号DSTZRを受けたコントローラ24は、デスティネーションアドレスカウンタ15にブロックを更新させ、新たな1ブロック分のマスクデータを出力させる。このマスクデータは、デスティネーションマスクセレクタ53に入力され、レジスタ56に格納される。
【0071】
この更新されたデスティネーションマスクDSTMSKは、デスティネーションプライオリティエンコーダ(DPRIENC)82に入力され、そこでマスクがスタートするアドレスDXUDTが計算される。更新されたマスクがゼロでない場合、デスティネーションアドレスセレクタ60は、先に計算されたアドレスDXUDTをマスクスタートアドレスDSTADとして、減算器63〜66へとそれぞれ出力する。
【0072】
上述のようなマスク演算処理過程において、例えばソースのマスクがゼロとなり、且つソースSRAM19にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、次のセクタデータをソースSRAM19に転送するように制御を行う。また、デスティネーションのマスクがゼロとなり、且つデスティネーションSRAM18にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、ラスタ演算回路21によるラスタ演算の終了を待って出力FIFO22に格納された更新後のデスティネーションデータをローカルメモリ4に書き込み、次のセクタデータをデスティネーションSRAM18に転送する制御を行う。更に、パターンのマスクがゼロとなり、且つパターンSRAM20にローカルメモリ4から転送された1セクタ内の全ブロックの更新が終了した場合、コントローラ24は、次のセクタデータをパターンSRAM20に転送するように制御を行う。
【0073】
また、このとき論理演算回路78は、ソースデータのバイトパターンの中で、PRCMSKに寄与のある部分を示すマスク(SRCPRC)を計算する。このマスクSRCPRCは、以下のような計算によって得ることができる。即ち、SRCPRCがゼロのバイトはPRCMSKに対して寄与しないが、SRCPRCが1のバイトはPRCMSKに対して寄与することが前提としてある場合は、SRCPRC=SRCMSK&SRCRMVとして求めることができる。これは、後段のラスタ演算回路21にて、イネーブルフラグの計算に用いられるものである。
【0074】
次に、この画像データ転送装置2内の各SRAM18〜20で行われるカラータグ演算処理について、各SRAM18〜20の内部構成を示す図である図17を参照しながら説明する。但し、パターンSRAM20内には、スタートバイトレジスタ90,タグブロックレジスタ91,タグ計算回路92,タグ選択回路93及びトランスペアレントフラグ計算回路(TRP)95はないものとする。
【0075】
デスティネーション,ソース及びパターンSRAM18〜20内のラインアドレスカウンタ(CNTR)85は、それぞれ対応するデスティネーション,ソース及びパターンアドレスカウンタ15,16,17からブロックスタート信号(BLKSTR)及びブロックカウンタ信号(BLKCNT)を受け取る。これらの信号は、同時にメモリコントローラ3へも出力される。
【0076】
メモリコントローラ3は、ローカルメモリ4からセクタアドレスSECと、BLKSTRにより指定されるアドレスからBLKCNTで指定されるだけのデータを読み出し、画像表示装置5内にあるSRAM等のメモリ(図示せず)にこのデータを転送する。このBLKSTRは、SRAM88のライトアドレスのスタートとなり、そのアドレスからBLKCNTで与えられるアドレス分だけローカルメモリ4からデータが転送され、その転送されたデータがSRAM88に書き込まれる。データがSRAM88に転送された後に、今度はデータの読み出しが行われる。このデータは、各アドレスカウンタ15,16,17から送られるそれぞれの対応するブロックアドレス(BLK)により読み出される。
【0077】
このとき、SRAM88のアドレスは、コントローラ24からの指示により、セレクタ86で各アドレスカウンタ15〜17のそれぞれが出力するBLK側に切り換えられ、このBLKによりSRAM88から読み出された1ブロック分のデータは、後段のラスタ演算回路21に転送される。
【0078】
またこのとき、カラータグを用いて、各SRAM18〜20でトランスペアレント処理(透明処理)のための計算も同時に行われる。以下にこれを説明する。
【0079】
スタートバイトレジスタ90は、矩形領域を構成する1ラインの最初のFBSPのバイトアドレスを1ラインの処理が継続する間中保持し続ける。タグブロックレジスタ91は、各ブロックごとのタグブロックを保持するレジスタであり、ブロックの処理ごとに更新されるものである。このスタートバイトレジスタ90の出力データBYTSTRは、続くタグ計算回路(TAGTBL)92をアクセスし、タグブロックレジスタ91の出力データTGBLKは、タグ選択回路(MUX)93をアクセスする。このタグ選択回路93は、タグ計算回路92からの複数の出力データTAGTBLのうちの1つを選択する役割を担っている。
【0080】
ここで、図18に示すように、1ピクセルは最大4バイトのデータで構成され、この最大4バイトのピクセルデータに対して、各バイトに0から3までのカラータグ(CT)を定義すると、1ピクセルが1バイトのときカラータグは0となることが分かる。同図より、1ピクセルが2バイトのときは上位側のバイトが1で下位側が0、3バイトのときは上位側から2,1,0、4バイトのときは上位側から3,2,1,0となることが分かる。
【0081】
このカラータグは、図19に示すように、スタートアドレスFBSPで指定される最初のバイトから順番に割り付けられ、BPPの単位でエンドアドレスFBEPまで繰り返される。ここで、BPPの最大が4バイトであることから、タグ計算回路92は、最大で2W×4バイト分のカラータグを出力することが分かる。2Wバイトのデータを同時に処理することから、2Wバイト分ごとのカラータグをタグブロックTGBLKとすると、その構成は図20に示すように定義される。
【0082】
このようにして定義されたカラータグ,タグブロック,BPPの関係をタグ計算回路92の出力TAGTBLとして考えると、図21〜23に示すようになる。なお、この場合の下位ビットWは、W=3とする。
【0083】
図21(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)に示すようになる。
【0084】
また、BPPが3バイトのときのカラータグの値は、図22に示すように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のときは同図()に示すようにそれぞれ定義される。
【0085】
更に、BPPが4バイトのときのカラータグの値は、図23に示すように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]=のときは同図(d)に示すようにそれぞれ定義されるのである。
【0086】
タグ計算回路92の出力であるTAGTBLは、タグ選択回路93に入力され、そこでデスティネーション及びソースアドレスカウンタ15,16内のカラータグ計算用カウンタ40で計算されたTGBLKで指定された部分が選択され、カラータグ(CT)となる。カラータグは、2ビットから構成される2W個のデータであり、1ブロック内の各バイトデータのカラータグを示す。このカラータグは、トランスペアレント計算のためにトランスペアレント計算回路(TRP)95に出力される。
【0087】
ここで、トランスペアレント計算回路(TRP)95について説明する。
図24は、このトランスペアレント計算回路95の内部構成を示す図である。
【0088】
トランスペアレント計算回路95は、主にFG/BGセレクタ120,2W個のセレクタ121〜126,2W個の比較器127〜132,2W個のレジスタ133〜138,2W個の演算器139〜144,レジスタ145及びR/Lセレクタ146から構成される。なお、2W個からなるセレクタ,比較器,レジスタ,演算器は、それぞれ1ブロック内にある各バイトデータに対応して設けられているものである。
【0089】
FG/BGセレクタ120は、図示しないインターフェイスから送られてくる転送先領域の背景色(FG:フォアグラウンドカラー)と転送元領域の背景色(BG:バックグラウンドカラー)とを、同じく送られてくる前トランスペアレントカラーデータ(FGTR)を利用して選択し、どちらをトランスペアレントカラーとするかを決定する。その結果、このFG/BGセレクタ120の出力TRCOLが、新たなトランスペアレントカラーとなる。このトランスペアレント計算回路95は、デスティネーション領域又はソース領域に格納されているピクセルデータとトランスペアレントカラーとをピクセル単位で比較し、その結果等しい場合は、そのピクセルデータはトランスペアレントであるとし、図17に示すように新しいデータに書き換えないようにするためのフラグ(TRPF)を後段に出力する。
【0090】
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に出力する。
【0091】
ここで、図25に示すように、1ブロック内でバイトアドレスのゼロバイトに近づく方向を左、2W−1バイトに近づく方向を右とすると、BPPの最大が4バイトであることから、現在のカラータグを含めて最大で左右に3バイト分の各比較器127〜132での比較結果を参照すれば、そのピクセルがトランスペアレントとして与えられたカラーと等しいかどうかを判断することができる。
【0092】
また、このとき、1ピクセル内のバイトデータがブロック間をまたぐ場合があり、この場合、図26に示すように、現在処理中のブロックの一つ前又は一つ後のブロックデータの各比較器127〜132での比較結果を参照する。
【0093】
更に、PEQは、現在の処理に対して一つ前に処理されたブロックの各比較器127〜132での比較結果となり、NEQは、現在の処理に対して一つ後に処理されるブロックの各比較器127〜132での比較結果となる。現在の処理の各比較器127〜132での比較結果CEQのゼロバイトから2W−1バイトまでの各バイトに対する左右に隣接するそれぞれ3バイトは、図27で示すように表すことができる。
【0094】
この図27の表(a),(b)から、
CEQ0に対するleft3,left2,left1と、
CEQ1に対するleft3,left2と、
CEQ2に対するleft3と、
CEQ2W−3に対するright3と、
CEQ2W−2に対するright3,right2と、
CEQ2W−1に対するright3,right2,right1とが、XDIRにより異なっているということが導き出せる。
【0095】
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ならトランスペアレントであるといえる。
【0096】
例えば、図28(a)に示すように、BPPが2のときは、現在の処理に対して左右に1バイトずつの各比較器127〜132での比較結果を参照すれば、左右どちらかの比較結果を参照すべきかは、現在処理中のカラータグの値により決まる。現在の処理のカラータグがゼロの場合、右の1バイトが同一ピクセルであり、現在の処理のカラータグが1の場合、左の1バイトが同一ピクセルであることが分かる。もし、各比較器127〜132での比較結果が共に1であるならば、このピクセルはトランスペアレントであるということができる。図28では、白地以外の部分が同一ピクセルであることを示している。
【0097】
また、BPが3のときは、現在の処理に対して最大2バイトずつの各比較器127〜132での比較結果を参照することができる。もし、同一ピクセル部分の各比較器127〜132での比較結果がすべてならば、このピクセルはトランスペアレントであるということができる。
【0098】
更に、BPPが4のときは、現在の処理に対して左右に最大3バイトずつの各比較器127〜132での比較結果を参照することができる。従って、上記と同様に同一ピクセル部分の各比較器127〜132での比較結果がすべて1であるならば、このピクセルはトランスペアレントであるということができる。以上のように各比較器127〜132で計算された結果が、TRPFとしてラスタ演算回路21に出力される。
【0099】
最後に、この画像データ転送装置2内のラスタ演算回路21について簡単に説明する。図29は、ラスタ演算回路21の内部構成を示す図であり、このラスタ演算回路21は、デスティネーション,ソース,パターンの各SRAM18,19,20から読み出したデータに対してラスタ演算するものである。
【0100】
ラスタ演算回路21は、主にソースSRAM19からの1ブロック分のデータを、バイトデータを単位としてシフトするSBシフタ150,パターンSRAM20からの1ブロック分のデータを、同じくバイトデータを単位としてシフトするPBシフタ151,8ビットのラスタ演算を実行する2W個の8ビットラスタ演算回路1521〜152n,書き込みイネーブルのデータを計算するイネーブルデータ計算回路153,このイネーブルデータ計算回路153内で、ソーストランスペアレントフラグをシフトするシフタ(図示せず),ラスタ演算の結果を格納する2W個のレジスタ1541〜154n等から構成されている。
【0101】
まず、デスティネーション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になるデータのみを格納している。
【0102】
イネーブルデータ計算回路153は、デスティネーションSRAM18からのトランスペアレントフラグ(DTRPF),ソースSRAM19からのトランスペアレントフラグ(STRPF),マスク演算回路23からのSRCPRC,SRCSFT,PRCMSK等を入力する。これらの入力情報に基づき、イネーブルデータ計算回路153は、各バイトデータ毎のローカルメモリ4への書き込みが行われるかどうかを決定するイネーブルフラグENを計算する。トランスペアレントの場合は、ローカルメモリ4への書き込みが行われず、以前の値がそのままローカルメモリ4内で維持されるように、イネーブルフラグENを変更する。
【0103】
このラスタ演算回路21の後段にある出力FIFO22は、1ブロック内のすべてのバイトデータのラスタ演算が終了したところで、レジスタ1541〜154nに格納されている結果を自身のメモリ(図示せず)に書き込む。デスティネーションの1セクタ分のデータがすべて出力FIFO22内にあるメモリに書き込まれたところで、メモリコントローラ3に1セクタ分のデータを連続的に出力し、そのデータをローカルメモリ4に書き込むことで、データの転送を行っている。
【0104】
【発明の効果】
以上述べたように、この発明によれば、(1)画像データを演算処理し転送する際に、画像データを1ピクセルが1又は複数のバイトで構成された画像データとして、この1ピクセルの画像データよりも大きい複数バイトからなるブロック単位で画像データを転送し位置合わせを行い演算処理を実行する、(2)各走査ライン毎に転送開始及び転送終了ブロックアドレスを算出し転送開始ブロックから転送終了ブロックまで連続的に画像データを転送する、(3)各ブロック内の転送画像開始及び終了バイトアドレスに基づき転送領域以外をマスクするマスクパターンを生成し転送領域でブロック内における位置合わせを行う、(4)画像データ1ピクセル分のバイト毎にカラータグが設定されブロック内の転送画像開始バイトアドレスに基づき各バイトのカラータグが設定される、という画像データ転送装置を採用し画像表示処理システムにこの画像データ転送装置を組み込むことで、画像表示処理の高速化及び高効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の一実施例に係る画像表示処理システムの基本構成を説明するためのブロック図である。
【図2】 同システムにおける画像データ転送装置の機能を概略的に示す図である。
【図3】 同装置の詳細な構成を示すブロック図である。
【図4】 同装置における転送矩形領域を含む画像データの矩形(表示)領域を更に詳細に示す図である。
【図5】 同装置における転送矩形領域のXDIR,YDIRを概略的に示す図である。
【図6】 同装置におけるローカルメモリ内に構築されている画像データの構成を示す図である。
【図7】 同装置の処理の流れを示すフローチャートである。
【図8】 同装置内のアドレスカウンタ内部の基本構成を示す図である。
【図9】 同カウンタ内部のセクタアドレスレジスタに格納されているセクタデータを説明するための図である。
【図10】 同カウンタ内部のセクタアドレスレジスタに格納されているセクタデータを示す図である。
【図11】 同カウンタ内部におけるマスク演算処理時の各データの構成を説明するための図である。
【図12】 同カウンタ内部におけるマスク演算処理の結果を説明するための図である。
【図13】 同カウンタ内部におけるカラータグ計算用カウンタの初期値と更新パターンとを示す図である。
【図14】 同装置におけるデスティネーション,ソース,パターンの各スタートアドレスのローカルメモリ内の構成を示す図である。
【図15】 同装置におけるマスク演算回路の内部構成を示すブロック図である。
【図16】 同装置におけるマスク演算回路での各データの処理を説明するための図である。
【図17】 同装置における各SRAMの内部構成を示す図である。
【図18】 同装置における各SRAMでのカラータグ演算処理のデータ構成を説明するための図である。
【図19】 同処理のデータ構成を説明するための図である。
【図20】 同処理のデータ構成を説明するための図である。
【図21】 同処理におけるカラータグ,タグブロック,BPPの関係を示す図である。
【図22】 同処理におけるカラータグ,タグブロック,BPPの関係を示す図である。
【図23】 同カラータグ演算処理におけるカラータグ,タグブロック,BPPの関係示す図である。
【図24】 同装置における各SRAMにあるトランスペアレント計算回路の内部構成を示す図である。
【図25】 同回路におけるトランスペアレント計算処理のデータの構成を説明するための図である。
【図26】 同処理におけるデータの比較方法を説明するための図である。
【図27】 同処理におけるデータの比較結果の構成を表した図である。
【図28】 同処理におけるデータの比較結果を表した図である。
【図29】 同装置におけるラスタ演算回路の内部構成を示す図である。
【図30】 従来の画像表示処理システムの構成を示すブロック図である。
【符号の説明】
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 image data conversion for transferring image data of a specific area. Sending Place as well as 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, for example, one disclosed in Japanese Patent Application Laid-Open No. 60-214392 is known.
[0003]
This type of image display processing system includes a display controller for image display processing in order to reduce the burden on the central processing unit (CPU).
[0004]
The configuration of such an apparatus is as shown in FIG. 30, for example. The image data processing circuit 110 in the display controller (hereinafter abbreviated as DC) 101 shown in FIG. 1 corresponds to the scanning speed of the screen of the CRT display device 105 in the video RAM (hereinafter referred to as VRAM) 104. In addition to reading out still image data, moving image data, and the like stored in the image data via the interface 111, a synchronization signal SYNC necessary for image scanning is output to the CRT display device 105.
[0005]
The still image and moving image data in this case is composed of a 2, 4 or 8-bit color code that specifies the color of the dot on the display screen, and the image data processing circuit 110 outputs the read color code to the color palette 112. To do. The color palette 112 converts the read color code into RGB (red, green, blue) signals and supplies them to the CRT display device.
[0006]
Further, the image data processing circuit 110 writes the image data supplied from the CPU 102 via the interface 113 to the VRAM 104 during a non-display period (such as a vertical blanking period) of the screen. Further, when accessing the VRAM 104 (during writing and reading), the signal S1 is supplied to the command processing circuit 115 to notify that it is being accessed.
[0007]
The command processing circuit 115 is a circuit that performs processing corresponding to various commands supplied from the CPU 2 via the interface 113.
[0008]
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 write the result to the storage area of the VRAM 104 corresponding to the transfer destination dot, and the color code of each dot of the transfer source area 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.
[0009]
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.
[0010]
[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, nowadays, due to the remarkable improvement in image processing technology and the accompanying rapid increase in the amount of image data transfer, it has become difficult for the apparatus as described above to meet the demands for high-speed transfer and fine image processing.
[0011]
The present invention has been made in view of such problems, and image data transfer capable of performing image processing and transfer data control more efficiently. Sending Place as well as An object is to provide an image display processing system.
[0012]
[Means for Solving the Problems]
Image data transfer according to the present invention Sending The image processing unit calculates the transfer destination area image data and the transfer destination area image data stored in the image data storage device on the basis of the designated transfer source area and transfer destination area parameters, and then transfers the transfer destination area. In the image data transfer device for transferring to an area, the image data is image data in which one pixel is composed of one or a plurality of bytes, and the image data is a block unit composed of a plurality of bytes larger than the image data of one pixel. , And the above processing is executed by aligning the blocks in the transfer source area and transfer destination area. In the image data for one pixel, a color tag is set for each byte, and a color tag for each byte is set based on the transfer image start byte address in the block. It is characterized by that.
[0013]
The 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 area; and an image data display device that displays the image data stored in the image data storage device. The pixel is image data composed of one or a plurality of bytes, and the central processing unit configures the one pixel. The number of bytes is output to the image data transfer device, and the image data transfer device transfers the image data in units of blocks composed of a plurality of bytes larger than the image data of one pixel, and includes a transfer source area, a transfer destination area, In the block, alignment is performed in the block and the arithmetic processing is executed, and then stored in the image data storage device. The image data for one pixel has a color tag set for each byte, and the image data transfer device sets the color tag for each byte based on the transfer image start byte address in the block. To do It is characterized by that.
[0014]
The image data transfer apparatus preferably includes a transfer start block for each scan line including the transfer source area and the transfer destination area, based on the parameters related to the designated transfer source area and the transfer destination area and the number of bytes per pixel. An address and a transfer end block address are calculated, and 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.
[0015]
Also, image data transfer Sending Preferably, a mask pattern for masking areas other than the transfer source area and the transfer destination area is generated based on the transfer image start byte address and the transfer image end byte address in each block, and the mask pattern is In use, the transfer source area and the transfer destination area are aligned in the block.
[0017]
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. Performs arithmetic processing by aligning the blocks within the area. 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. Image data transfer Sending Image data can be transferred at high speed. In addition, the image display processing efficiency can be improved. . Further, this image data transfer apparatus calculates transfer start and transfer end block addresses for each scanning line and continuously transfers the image data from the transfer start block to the transfer end block, so that the image data is transferred at high speed. be able to. In addition, this image data transfer Sending Since the mask pattern for masking the areas other than the transfer area is generated based on the start and end byte addresses of the transfer image in each block and the alignment in the block is performed in the transfer area, the image data can be transferred at high speed. . Obedience Thus, 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.
[0018]
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.
[0019]
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.
[0020]
This image display processing system transfers a local memory 4 composed of a DRAM (Dynamic Random Access Memory) or the like in which image data to be displayed is stored, and an arbitrary rectangular area of the image data stored in the local memory 4. The CPU 1 that outputs various parameters of the above, 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. Yes.
[0021]
Among these, the image data transfer apparatus 2 has a rectangular area of transfer source data (hereinafter referred to as source data) S given from the CPU 1 and transfer as schematically shown in FIG. Ahead Data (hereinafter referred to as destination data) D are received as parameters for defining a rectangular area of D and a parameter for defining a rectangular area of arbitrary pattern data P added to source data S. Destination and pattern data are fetched, a predetermined raster calculation process is performed between these data, and a process of writing to the destination area is executed.
[0022]
Hereinafter, the image data transfer apparatus 2 will be described in detail.
FIG. 3 is a block diagram showing a detailed configuration of the image data transfer apparatus 2.
[0023]
The 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, for each scan line, the start address indicating the start of transfer on the local memory 4 in the destination area, source area and pattern area and the end address indicating the end of transfer are Calculate as follows.
[0024]
That is, FIG. 4A 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 source data S and the destination data D, and corresponds to the off-screen area for the pattern data P. In this example, one pixel is composed of 1 to 4 bytes. This number of bytes constituting one pixel is referred to herein as BPP (byte per pixel). 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.
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. 5, 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.
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. 5, when YDIR is 0, YS is 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.
[0026]
As shown in FIG. 5, XDIR / YDIR is used to specify the transfer order so that pixels to be transferred are not rewritten before transfer when the source area S and the destination area D overlap. I need it.
[0027]
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.
[0028]
[Expression 1]
FBSPn = BASE + n × PTCH + XS × BPP
FBEPn = BASE + n × PTCH + (XS + XEXT) × BPP-1
[0029]
When XDIR = 1, it is given by the following equation.
[0030]
[Expression 2]
FBSPn = BASE + n × PTCH + (XS + 1) × BPP-1
FBEPn = BASE + n × PTCH + (XS−XEXT + 1) × BPP
[0031]
FIG. 4B is a diagram showing the start address (FBSPn) and end address (FBEPn) at Y = Yn when BASE = 0, as continuous data on the local memory 4.
[0032]
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.
[0033]
On the other hand, the image data transfer device 2 includes 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 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.
[0034]
That is, each of the address counters 15, 16, and 17 converts the received start address (FBSPn) and end address (FBEPn) from the upper side to the sector address U bit and block address V bit as shown in FIG. And the local memory 4 is hierarchized by breaking it down into byte addresses 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. 6A is an example where V = 3 and W = 3.
[0035]
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.
[0036]
As shown in FIG. 6B, higher-speed data transfer is performed by page mode transmission in which the upper address of the local memory 4 is a row address, the lower address is a column address, the row address is fixed, and only the column address is continuously changed. Is realized.
[0037]
In addition, since one block of transfer data at the start and end of transfer may contain data other than the pixel data to be transferred, each address counter 15, 16, 17 masks these data. Mask data is generated and supplied 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 controller 24 controls each circuit in accordance with a control command from the CPU 1.
[0038]
FIG. 7 is a flowchart showing a process 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. 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. 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).
[0039]
If it is stored in the source SRAM 19, This When the processing of the sector data being completed 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).
[0040]
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).
[0041]
FIG. 8 is a diagram showing a basic configuration in the address counters 15 to 17. Note that only the pattern address counter 17 does not have the color tag calculation counter 40.
[0042]
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.
[0043]
First, in order to transfer the data in the local memory 4 to the destination SRAM 18, the source SRAM 19, and the pattern SRAM 20, a sector address (SEC) indicating the address of the sector of the local memory 4 stored in the register 32 is sent to the memory controller 3. A block start address (BLKSTR) indicating the number of blocks to be transferred in the sector (BLKCNT) and the address of the first block to be transferred in the sector (address where the block in the sector starts) is output. It is calculated by the arithmetic circuit 45 or 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.
[0044]
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. Block stored in the block start address (FBSP [V + W-1: W]) and end address register 35 End An address (FBEP [V + W-1: W]), XDIR indicating the X direction of transfer, and the like are input and used.
[0045]
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.
[0046]
FIG. 9 is a diagram for explaining sector data stored in the sector address register 32.
[0047]
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.
[0048]
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.
[0049]
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].
[0050]
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]. When the above results and the cases when XDIR = 1 are newly added are summarized in a table, the result is as shown in FIG.
[0051]
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. The data (BLKENDF) is output as 1, and when it is not equal, 0 is output.
[0052]
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. 11, 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.
[0053]
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.
[0054]
For example, as shown in FIG. 12A, the calculation of the start mask in the start mask calculation circuit 46 is performed when the binary pattern (2) in which X bits are all 1 when XDIR = 0. W -1) is shifted to the right by the byte address (BYT) in the byte address register 34, and zeros are padded 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 to the left 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.
[0055]
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. Also in this case, when the start address is in the block, it can be said that both SECSTRF and BLKSTRF are 1. Each mask calculated in this way is sent to the mask calculation circuit 23 for each block.
[0056]
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.
[0057]
Next, the color tag calculation counter 40 and the address update circuit 31 will be described. 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.
[0058]
The update pattern is B P It is determined by P and XDIR, and the initial value and the update pattern are as shown in FIG. For example, 2 bytes per pixel (B P When P is 2) and XDIR is 0, TGBLK is updated to repeat 0, 1, 0, 1. 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.
[0059]
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.
[0060]
Next, the mask calculation circuit 23 in the image data transfer apparatus 2 will be described.
[0061]
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.
[0062]
As shown in FIG. 14, the destination, source, and pattern start addresses (FBSP) point to 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. .
[0063]
FIG. 15 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.
[0064]
First, as shown in FIG. 16 (a), 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
[0065]
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 logical operation circuit 73 as mask data (SRCADJ, PATADJ), respectively. The logical operation circuit 73 plays a role of determining bytes to be processed in DSTMSK by inputting DSTMSK in addition to the mask data and calculating a logical product.
[0066]
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.
[0067]
As shown in FIGS. 16C and 16D, the source mask logic operation circuit 77 and the pattern mask logic operation circuit 79 perform masks corresponding to the masks SRCREV and PATREV from the source mask SRCMSK and the pattern mask PATMSK, respectively. 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.
[0068]
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 sent from the address counters 16 and 17 to the source and pattern address selectors. 61, 62 And then output to the subtracters 63 to 66 as mask start addresses (SSTAD, PSTAD) as described above.
[0069]
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.
[0070]
On the other hand, as shown in FIG. 16B, the destination mask logic operation circuit 76 performs processing for 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.
[0071]
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.
[0072]
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.
[0073]
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.
[0074]
Next, color tag calculation processing performed in each of the SRAMs 18 to 20 in the image data transfer apparatus 2 will be described with reference to FIG. 17 which is a diagram showing an internal configuration of each of the SRAMs 18 to 20. However, it is assumed that the pattern SRAM 20 does not include the start byte register 90, the tag block register 91, the tag calculation circuit 92, the tag selection circuit 93, and the transparent flag calculation circuit (TRP) 95.
[0075]
The line address counter (CNTR) 85 in the destination, source and pattern SRAMs 18 to 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. Receive. These signals are also output to the memory controller 3 at the same time.
[0076]
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 is read by the corresponding block address (BLK) sent from each address counter 15, 16, and 17.
[0077]
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 Then, it is transferred to the raster operation circuit 21 at the subsequent stage.
[0078]
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.
[0079]
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.
[0080]
Here, as shown in FIG. 18, one pixel is composed of data of up to 4 bytes, and when a color tag (CT) from 0 to 3 is defined for each byte for the pixel data of up to 4 bytes, 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.
[0081]
As shown in FIG. 19, 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.
[0082]
When the relationship between the color tag, tag block, and BPP defined in this way is considered as an output TAGTBL of the tag calculation circuit 92, it is as shown in FIGS. In this case, the lower bit W is W = 3.
[0083]
As shown in FIG. 21A, 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, 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.
[0084]
Further, as shown in FIG. 22, 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, c ) Are defined respectively.
[0085]
Further, when the BPP is 4 bytes, the value of the color tag is determined by 2 bits on the LSB side of XDIR and BYTSTR 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, as shown in FIG.
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
XDIR = 1 and BYTSTR [1: 0] = 0 Are defined as shown in FIG.
[0086]
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.
[0087]
Here, the transparent calculation circuit (TRP) 95 will be described.
FIG. 24 is a diagram showing an internal configuration of the transparent calculation circuit 95.
[0088]
The transparent calculation circuit 95 is mainly composed of FG / BG selectors 120 and 2. W Selectors 121 to 126, 2 W 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.
[0089]
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, and 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.
[0090]
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.
[0091]
Here, as shown in FIG. 25, 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, so refer to the comparison results of each comparator 127-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.
[0092]
At this time, there is a case where byte data in one pixel straddles between blocks. In this case, as shown in FIG. 26, 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.
[0093]
Further, the PEQ is a comparison result of each of the comparators 127 to 132 of the block processed immediately before the current process, and the NEQ is each block of the block processed immediately after the current process. 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 three bytes adjacent to the left and right for each byte up to -1 byte can be represented as shown in FIG.
[0094]
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 It can be derived that right3, right2, and right1 for -1 are different depending on XDIR.
[0095]
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.
[0096]
For example, as shown in FIG. 28A, when the BPP is 2, referring to the comparison result of each of the comparators 127 to 132 of 1 byte to the left and right with respect to the current process, either the left or the 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. 28 shows that portions other than the white background are the same pixel.
[0097]
B P When P is 3, it is possible to refer to the comparison results in the respective comparators 127 to 132 of up to 2 bytes for the current process. If the comparison results of the comparators 127 to 132 in the same pixel portion are all, it can be said that the pixel is transparent.
[0098]
Further, when the BPP is 4, the comparison result of each of the comparators 127 to 132 of up to 3 bytes on the left and right with respect to the current process can be referred to. Therefore, if the comparison results of the comparators 127 to 132 in the same pixel portion are all 1 as described above, 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.
[0099]
Finally, the raster operation circuit 21 in the image data transfer device 2 will be briefly described. FIG. 29 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. .
[0100]
The raster arithmetic circuit 21 mainly shifts 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 arithmetic circuit 152 1 ~ 152 n , An enable data calculation circuit 153 for calculating write enable data, a shifter (not shown) for shifting the source transparent flag in the enable data calculation circuit 153, and 2 for storing the result of the raster operation. W Registers 154 1 ~ 154 n Etc.
[0101]
First, 2 read from the destination SRAM 18 W The byte destination data is stored in the corresponding 8-bit raster arithmetic circuit 152. 1 ~ 152 n Is input. 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. 8-bit raster arithmetic circuit 152 1 ~ 152 n Performs a raster operation on the destination, source, and pattern data according to the specified code, and stores the result in the register 154. 1 ~ 154 n To store. At this time, the PRCMSK calculated by the mask arithmetic circuit 23 is stored in each register 154. 1 ~ 154 n Is stored, and only the data for which PRCMSK becomes 1 is stored.
[0102]
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.
[0103]
The output FIFO 22 in the subsequent stage of the raster operation circuit 21 is set in the register 154 when the raster operation of all the byte data in one block is completed. 1 ~ 154 n The result stored in is stored in its own memory (not shown). 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.
[0104]
【The invention's effect】
As described above, according to the present invention, (1) When image data is processed and transferred, the image data is converted into image data in which one pixel is composed of one or more bytes, and the image data is transferred in units of blocks that are larger than the one-pixel image data. Align and execute arithmetic processing (2) Calculate the transfer start and transfer end block addresses for each scan line and transfer the image data continuously from the transfer start block to the transfer end block (3) 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 alignment within the block is performed in the transfer area. (Four) 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. Sending By incorporating the image data transfer device into the image display processing system, it is possible to increase the speed and efficiency of the image display processing.
[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 block diagram showing a detailed configuration of the apparatus.
FIG. 4 is a diagram showing in more detail a rectangular (display) area of image data including a transfer rectangular area in the apparatus.
FIG. 5 is a diagram schematically showing XDIR and YDIR of a transfer rectangular area in the apparatus.
FIG. 6 is a diagram showing a configuration of image data built in a local memory in the apparatus.
FIG. 7 is a flowchart showing a processing flow of the apparatus.
FIG. 8 is a diagram showing a basic configuration inside an address counter in the apparatus.
FIG. 9 is a diagram for explaining sector data stored in a sector address register in the counter.
FIG. 10 is a diagram showing sector data stored in a sector address register in the counter.
FIG. 11 is a diagram for explaining a configuration of each data at the time of mask calculation processing in the counter.
FIG. 12 is a diagram for explaining a result of mask calculation processing in the counter.
FIG. 13 is a diagram showing an initial value and an update pattern of a color tag calculation counter inside the counter.
FIG. 14 is a diagram showing a configuration in a local memory of each start address of destination, source, and pattern in the same device.
FIG. 15 is a block diagram showing an internal configuration of a mask arithmetic circuit in the same device.
FIG. 16 is a diagram for explaining processing of each data in a mask arithmetic circuit in the same device.
FIG. 17 is a diagram showing an internal configuration of each SRAM in the same device.
FIG. 18 is a diagram for explaining a data configuration of color tag calculation processing in each SRAM in the same device;
FIG. 19 is a diagram for explaining a data configuration of the same process.
FIG. 20 is a diagram for explaining a data configuration of the same process.
FIG. 21 is a diagram showing the relationship among color tags, tag blocks, and BPPs in the same processing.
FIG. 22 is a diagram showing the relationship among color tags, tag blocks, and BPPs in the same processing.
FIG. 23 is a diagram showing a relationship among color tags, tag blocks, and BPPs in the color tag calculation process.
FIG. 24 is a diagram showing an internal configuration of a transparent calculation circuit in each SRAM in the same device.
FIG. 25 is a diagram for explaining a data configuration of transparent calculation processing in the circuit;
FIG. 26 is a diagram for explaining a data comparison method in the processing;
FIG. 27 is a diagram showing a configuration of a data comparison result in the same processing.
FIG. 28 is a diagram showing a comparison result of data in the same processing.
FIG. 29 is a diagram showing an internal configuration of a raster operation circuit in the same device.
FIG. 30 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 Circuit: 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 (6)

指定された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置において、
前記画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、前記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 is image data in which one pixel is composed of one or a plurality of bytes, and the image data is transferred in block units each having a plurality of bytes larger than the image data of one pixel, and is transferred to a transfer source area. Perform the above-mentioned arithmetic processing by performing alignment within the block with the destination area ,
The image data for one pixel has a color tag set for each byte, and a color tag for each byte is set based on a transfer image start byte address in the block. 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
The image data transfer device according to claim 1, 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.
前記各ブロック内の転送画像開始バイトアドレス及び転送画像終了バイトアドレスに基づいて前記転送元領域及び転送先領域以外の領域をマスクするマスクパターンを生成すると共に、このマスクパターンを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行う
ことを特徴とする請求項1又は2記載の画像データ転送装置。
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 using the mask pattern. The image data transfer apparatus according to claim 1 or 2, wherein the area and the transfer destination area are aligned in a block.
画像データを記憶する画像データ記憶装置と、
この画像データ記憶装置内に記憶された画像データの転送元領域及び転送先領域に関するパラメータを出力する中央処理装置と、
この中央処理装置から出力された転送元領域及び転送先領域に関するパラメータに基づいて画像データ記憶装置に記憶された前記転送元領域の画像データと前記転送先領域の画像データとを演算処理した後に前記転送先領域に転送する画像データ転送装置と、
前記画像データ記憶装置に記憶された画像データを表示する画像データ表示装置と、
を備えた画像表示処理システムにおいて、
前記画像データは、1ピクセルが1又は複数のバイトで構成された画像データであり、
前記中央処理装置は、前記1ピクセルを構成するバイト数を前記画像データ転送装置に出力し、
前記画像データ転送装置は、前記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;
An image data display device for displaying the image data stored in the image data storage device;
In an image display processing system comprising:
The image data 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 the image data in units of blocks each having a plurality of bytes larger than the image data of one pixel, and performs alignment in the block between a transfer source area and a transfer destination area, and the arithmetic processing After the execution state, and are not to be stored in the image data storage device,
The image data for one pixel is a color tag set for each byte,
The image display processing system, wherein the image data transfer device sets a color tag for each byte based on a transfer image start byte address in the block .
前記画像データ転送装置は、
前記指定された転送元領域及び転送先領域に関するパラメータ及び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, 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
The image display processing system according to claim 4 , 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.
前記画像データ転送装置は、
前記各ブロック内の転送画像開始バイトアドレス及び転送画像終了バイトアドレスに基づいて前記転送元領域及び転送先領域以外の領域をマスクするマスクパターンを生成すると共に、このマスクパターンを使用して前記転送元領域と転送先領域とでブロック内における位置合わせを行うものである
ことを特徴とする請求項又は記載の画像表示処理システム。
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 using the mask pattern. The image display processing system according to claim 4 or 5, wherein alignment in the block is performed between the area and the transfer destination area.
JP2000017522A 2000-01-26 2000-01-26 Image data transfer apparatus and image display processing system Expired - Fee Related JP3846142B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000017522A JP3846142B2 (en) 2000-01-26 2000-01-26 Image data transfer apparatus and image display processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000017522A JP3846142B2 (en) 2000-01-26 2000-01-26 Image data transfer apparatus and image display processing system

Publications (2)

Publication Number Publication Date
JP2001209370A JP2001209370A (en) 2001-08-03
JP3846142B2 true JP3846142B2 (en) 2006-11-15

Family

ID=18544511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000017522A Expired - Fee Related JP3846142B2 (en) 2000-01-26 2000-01-26 Image data transfer apparatus and image display processing system

Country Status (1)

Country Link
JP (1) JP3846142B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4919805B2 (en) * 2004-10-13 2012-04-18 パナソニック株式会社 Rectangular image drawing apparatus, rectangular image drawing method, and integrated circuit

Also Published As

Publication number Publication date
JP2001209370A (en) 2001-08-03

Similar Documents

Publication Publication Date Title
JP3656857B2 (en) Full-motion video NTSC display device and method
KR950012931B1 (en) Graphic display device
JPH0695273B2 (en) Display control device
JPH09245179A (en) Computer graphic device
JPH0154752B2 (en)
JP3662607B2 (en) Frame buffer device equipped with high-speed copy means and method for executing double buffered video using this device
JPS6360395B2 (en)
JP2001195230A (en) Plotting system and semiconductor integrated circuit for performing plotting arithmetic operation
KR100281949B1 (en) Video drawing device
JP3846142B2 (en) Image data transfer apparatus and image display processing system
JPH0562348B2 (en)
JPH05249953A (en) Image display device
JP4048731B2 (en) Image data transfer apparatus and image display processing system
US7050064B2 (en) Method and apparatus for displaying higher color resolution on a hand-held LCD device
JP3969017B2 (en) Image data transfer apparatus and image display processing system
JPH08138067A (en) Line segment anti-aliasing device
JP2898482B2 (en) Computer game equipment
JP2554876B2 (en) Address translation device
JP3337385B2 (en) Display control circuit
JP2506825B2 (en) Color mixing processing control method
JPH03164872A (en) Graphic processing system
JPS62211784A (en) Display controller
JPS6117189A (en) Graphic processor
KR100252648B1 (en) Graphics system and method of graphics drawing
JP2002149141A (en) Method and device for transferring image data, and image display processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060623

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060814

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees